
/* WARNING: Enum "GravityType": Some values do not have unique names */
/* WARNING: Enum "DisposeType": Some values do not have unique names */
/* WARNING: Enum "ChannelType": Some values do not have unique names */
/* WARNING: Enum "PixelChannel": Some values do not have unique names */
/* WARNING: Enum "ExceptionType": Some values do not have unique names */

Image * CloneImage(Image *image,size_t columns,size_t rows,MagickBooleanType detach,
                  ExceptionInfo *exception)

{
  undefined *puVar1;
  undefined *puVar2;
  Image *pIVar3;
  MagickBooleanType MVar4;
  undefined4 uVar5;
  _Image *p_Var6;
  BlobInfo *pBVar7;
  SemaphoreInfo *pSVar8;
  void *pvVar9;
  size_t sVar10;
  _Image *p_Var11;
  PixelInfo *pPVar12;
  _ImageInfo *p_Var13;
  PixelChannelMap *pPVar14;
  size_t sVar15;
  MagickProgressMonitor p_Var16;
  PixelTrait PVar17;
  ImageType IVar18;
  ChannelType CVar19;
  PixelTrait PVar20;
  ColorspaceType CVar21;
  size_t sVar22;
  size_t sVar23;
  size_t sVar24;
  double dVar25;
  int iVar26;
  double dVar27;
  double dVar28;
  
  if (image == (Image *)0x0) {
    pIVar3 = (Image *)(*(code *)PTR___assert_fail_003a9608)
                                (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x37b0,
                                 PTR_s_t_to_left_003a88e4 + -0x5b4c,0x316,
                                 PTR_s_t_to_left_003a88e4 + -0x5294);
    return pIVar3;
  }
  if (image->signature != 0xabacadab) {
    pIVar3 = (Image *)(*(code *)PTR___assert_fail_003a9608)
                                (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,
                                 PTR_s_t_to_left_003a88e4 + -0x5b4c,0x317,
                                 PTR_s_t_to_left_003a88e4 + -0x5294);
    return pIVar3;
  }
  if (image->debug != MagickFalse) {
    (*(code *)PTR_LogMagickEvent_003a91e0)
              (0x8000,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x319,
               PTR_s_t_to_left_003a88e4 + -0x62ac,image->filename);
  }
  if (exception == (ExceptionInfo *)0x0) {
    pIVar3 = (Image *)(*(code *)PTR___assert_fail_003a9608)
                                (PTR_LAB_003a88e0 + 0x1cac,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31a,
                                 PTR_s_t_to_left_003a88e4 + -0x5294);
    return pIVar3;
  }
  if (exception->signature != 0xabacadab) {
    pIVar3 = (Image *)(*(code *)PTR___assert_fail_003a9608)
                                (PTR_LAB_003a88e0 + 0x294c,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31b,
                                 PTR_s_t_to_left_003a88e4 + -0x5294);
    return pIVar3;
  }
  if ((image->columns != 0) && (image->rows != 0)) {
    pIVar3 = (Image *)(*(code *)PTR_AcquireCriticalMemory_003a9354)(0x33d8);
    (*(code *)PTR_memset_003a96d4)(pIVar3,0,0x33d8);
    puVar1 = PTR_CloneImageInfo_003a919c;
    sVar24 = image->number_channels;
    sVar23 = image->number_meta_channels;
    sVar22 = image->metacontent_extent;
    CVar21 = image->colorspace;
    PVar20 = image->alpha_trait;
    CVar19 = image->channels;
    PVar17 = image->mask_trait;
    sVar10 = image->rows;
    sVar15 = image->columns;
    MVar4 = image->dither;
    p_Var13 = image->image_info;
    pIVar3->storage_class = image->storage_class;
    pIVar3->number_channels = sVar24;
    pIVar3->number_meta_channels = sVar23;
    pIVar3->metacontent_extent = sVar22;
    pIVar3->colorspace = CVar21;
    pIVar3->alpha_trait = PVar20;
    pIVar3->channels = CVar19;
    pIVar3->mask_trait = PVar17;
    pIVar3->rows = sVar10;
    pIVar3->columns = sVar15;
    pIVar3->signature = 0xabacadab;
    pIVar3->dither = MVar4;
    p_Var13 = (_ImageInfo *)(*(code *)puVar1)(p_Var13);
    puVar1 = PTR_CloneImageProfiles_003a9348;
    pIVar3->image_info = p_Var13;
    (*(code *)puVar1)(pIVar3,image);
    (*(code *)PTR_CloneImageProperties_003a91ac)(pIVar3,image);
    (*(code *)PTR_CloneImageArtifacts_003a9500)(pIVar3,image);
    (*(code *)PTR_GetTimerInfo_003a9668)(&pIVar3->timer);
    if (image->ascii85 != (Ascii85Info *)0x0) {
      (*(code *)PTR_Ascii85Initialize_003a8d18)(pIVar3);
    }
    puVar1 = PTR_ClonePixelChannelMap_003a8d90;
    sVar15 = image->magick_columns;
    sVar10 = image->magick_rows;
    IVar18 = image->type;
    CVar19 = image->channel_mask;
    uVar5 = *(undefined4 *)&image->extent;
    pPVar14 = image->channel_map;
    *(int *)((int)&pIVar3->extent + 4) = (int)image->extent;
    pIVar3->magick_columns = sVar15;
    pIVar3->magick_rows = sVar10;
    pIVar3->type = IVar18;
    pIVar3->channel_mask = CVar19;
    *(undefined4 *)&pIVar3->extent = uVar5;
    pPVar14 = (PixelChannelMap *)(*(code *)puVar1)(pPVar14);
    puVar1 = PTR_CopyMagickString_003a983c;
    pIVar3->channel_map = pPVar14;
    (*(code *)puVar1)(pIVar3->magick_filename,image->magick_filename,0x1000);
    (*(code *)PTR_CopyMagickString_003a983c)(pIVar3->magick,image->magick,0x1000);
    (*(code *)PTR_CopyMagickString_003a983c)(pIVar3->filename,image->filename,0x1000);
    puVar1 = PTR_NewImageList_003a8e84;
    p_Var16 = image->progress_monitor;
    p_Var11 = image->next;
    p_Var6 = image->previous;
    pIVar3->client_data = image->client_data;
    pIVar3->progress_monitor = p_Var16;
    pIVar3->reference_count = 1;
    pIVar3->next = p_Var11;
    pIVar3->previous = p_Var6;
    p_Var6 = (_Image *)(*(code *)puVar1)();
    pIVar3->list = p_Var6;
    puVar1 = PTR_CloneBlobInfo_003a97e0;
    if (detach == MagickFalse) {
      pBVar7 = (BlobInfo *)(*(code *)PTR_ReferenceBlob_003a9294)(image->blob);
      pIVar3->blob = pBVar7;
    }
    else {
      pIVar3->next = p_Var6;
      pIVar3->previous = p_Var6;
      pBVar7 = (BlobInfo *)(*(code *)puVar1)(0);
      pIVar3->blob = pBVar7;
    }
    puVar1 = PTR_IsEventLogging_003a97a8;
    pIVar3->ping = image->ping;
    MVar4 = (*(code *)puVar1)();
    puVar1 = PTR_AcquireSemaphoreInfo_003a962c;
    pIVar3->debug = MVar4;
    pSVar8 = (SemaphoreInfo *)(*(code *)puVar1)();
    pPVar12 = image->colormap;
    pIVar3->semaphore = pSVar8;
    puVar1 = PTR_AcquireQuantumMemory_003a950c;
    if (pPVar12 != (PixelInfo *)0x0) {
      pIVar3->colors = image->colors;
      sVar10 = image->colors;
      pPVar12 = (PixelInfo *)(*(code *)puVar1)(sVar10 + 1,0x58);
      pIVar3->colormap = pPVar12;
      if (pPVar12 == (PixelInfo *)0x0) {
        (*(code *)PTR_DestroyImage_003a8f4c)(pIVar3);
        (*(code *)PTR_ThrowMagickException_003a8f20)
                  (exception,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,
                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,image->filename);
        return (Image *)0x0;
      }
      (*(code *)PTR_memcpy_003a9358)(pPVar12,image->colormap,sVar10 * 0x58);
    }
    puVar1 = PTR_LAB_003a88e0;
    if ((columns == 0) || (rows == 0)) {
      if (image->montage != (char *)0x0) {
        (*(code *)PTR_CloneString_003a9488)(&pIVar3->montage);
      }
      if (image->directory != (char *)0x0) {
        (*(code *)PTR_CloneString_003a9488)(&pIVar3->directory);
      }
      pvVar9 = (void *)(*(code *)PTR_ReferencePixelCache_003a8a84)(image->cache);
      pIVar3->cache = pvVar9;
    }
    else {
      sVar10 = image->columns;
      if (sVar10 == 0) {
        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438);
      }
      else {
        dVar27 = (double)(int)columns;
        if ((int)columns < 0) {
          dVar27 = dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1418);
        }
        dVar25 = (double)(int)sVar10;
        if ((int)sVar10 < 0) {
          dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);
        }
        dVar27 = dVar27 / dVar25;
      }
      sVar10 = (image->page).width;
      dVar25 = (double)(int)sVar10;
      if ((int)sVar10 < 0) {
        dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);
      }
      dVar25 = (double)(*(code *)PTR_floor_003a9670)
                                 (dVar25 * dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1400));
      puVar2 = PTR_ceil_003a8c20;
      if (dVar25 < *(double *)(puVar1 + 0x1410)) {
        sVar10 = (size_t)dVar25;
      }
      else {
        sVar10 = (int)(dVar25 - *(double *)(puVar1 + 0x1410)) | 0x80000000;
      }
      iVar26 = (image->page).x;
      dVar28 = *(double *)(puVar1 + 0x1400);
      (pIVar3->page).width = sVar10;
      dVar25 = (double)(*(code *)puVar2)((double)iVar26 * dVar27 - dVar28);
      puVar2 = PTR_ceil_003a8c20;
      iVar26 = (image->tile_offset).x;
      (pIVar3->page).x = (int)dVar25;
      dVar27 = (double)(*(code *)puVar2)((double)iVar26 * dVar27 - dVar28);
      sVar10 = image->rows;
      (pIVar3->tile_offset).x = (int)dVar27;
      if (sVar10 == 0) {
        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438);
      }
      else {
        dVar27 = (double)(int)rows;
        if ((int)rows < 0) {
          dVar27 = dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1418);
        }
        dVar25 = (double)(int)sVar10;
        if ((int)sVar10 < 0) {
          dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);
        }
        dVar27 = dVar27 / dVar25;
      }
      sVar10 = (image->page).height;
      dVar25 = (double)(int)sVar10;
      if ((int)sVar10 < 0) {
        dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);
      }
      dVar25 = (double)(*(code *)PTR_floor_003a9670)(dVar25 * dVar27 + *(double *)(puVar1 + 0x1400))
      ;
      puVar2 = PTR_ceil_003a8c20;
      if (dVar25 < *(double *)(puVar1 + 0x1410)) {
        sVar10 = (size_t)dVar25;
      }
      else {
        sVar10 = (int)(dVar25 - *(double *)(puVar1 + 0x1410)) | 0x80000000;
      }
      iVar26 = (image->page).y;
      dVar28 = *(double *)(puVar1 + 0x1400);
      (pIVar3->page).height = sVar10;
      dVar25 = (double)(*(code *)puVar2)((double)iVar26 * dVar27 - dVar28);
      puVar1 = PTR_ceil_003a8c20;
      iVar26 = (image->tile_offset).y;
      (pIVar3->page).y = (int)dVar25;
      dVar27 = (double)(*(code *)puVar1)((double)iVar26 * dVar27 - dVar28);
      puVar1 = PTR_ClonePixelCache_003a8a10;
      pvVar9 = image->cache;
      (pIVar3->tile_offset).y = (int)dVar27;
      pvVar9 = (void *)(*(code *)puVar1)(pvVar9);
      pIVar3->cache = pvVar9;
      iVar26 = (*(code *)PTR_SetImageExtent_003a94ac)(pIVar3,columns,rows,exception);
      if (iVar26 == 0) {
        pIVar3 = (Image *)(*(code *)PTR_DestroyImage_003a8f4c)(pIVar3);
        return pIVar3;
      }
    }
    return pIVar3;
  }
  (*(code *)PTR_ThrowMagickException_003a8f20)
            (exception,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x31e,
             0x1a9,PTR_s_t_to_left_003a88e4 + -0x5ac0,PTR_LAB_003a88e0 + 0x3e28,image->filename);
  return (Image *)0x0;
}



undefined4 * CloneImage(undefined4 *param_1,int param_2,int param_3,int param_4,int param_5)

{
  undefined *puVar1;
  undefined *puVar2;
  undefined4 *puVar3;
  undefined4 uVar4;
  uint uVar5;
  undefined4 uVar6;
  int iVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  int iVar17;
  double dVar18;
  double dVar19;
  double dVar20;
  
  if (param_1 == (undefined4 *)0x0) {
    puVar3 = (undefined4 *)
             (*(code *)PTR___assert_fail_003a9608)
                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x37b0,
                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x316,PTR_s_t_to_left_003a88e4 + -0x5294)
    ;
    return puVar3;
  }
  if (param_1[0xcdb] != -0x54535255) {
    puVar3 = (undefined4 *)
             (*(code *)PTR___assert_fail_003a9608)
                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,
                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x317,PTR_s_t_to_left_003a88e4 + -0x5294)
    ;
    return puVar3;
  }
  if (param_1[0xcd4] != 0) {
    (*(code *)PTR_LogMagickEvent_003a91e0)
              (0x8000,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x319,
               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1 + 0xd0);
  }
  if (param_5 == 0) {
    puVar3 = (undefined4 *)
             (*(code *)PTR___assert_fail_003a9608)
                       (PTR_LAB_003a88e0 + 0x1cac,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31a,
                        PTR_s_t_to_left_003a88e4 + -0x5294);
    return puVar3;
  }
  if (*(int *)(param_5 + 0x1c) != -0x54535255) {
    puVar3 = (undefined4 *)
             (*(code *)PTR___assert_fail_003a9608)
                       (PTR_LAB_003a88e0 + 0x294c,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31b,
                        PTR_s_t_to_left_003a88e4 + -0x5294);
    return puVar3;
  }
  if ((param_1[6] != 0) && (param_1[7] != 0)) {
    puVar3 = (undefined4 *)(*(code *)PTR_AcquireCriticalMemory_003a9354)(0x33d8);
    (*(code *)PTR_memset_003a96d4)(puVar3,0,0x33d8);
    puVar1 = PTR_CloneImageInfo_003a919c;
    uVar16 = param_1[0xb0];
    uVar15 = param_1[0xb1];
    uVar14 = param_1[0xb2];
    uVar13 = param_1[1];
    uVar12 = param_1[0xaf];
    uVar11 = param_1[0xcf4];
    uVar10 = param_1[0xcf3];
    uVar6 = param_1[7];
    uVar9 = param_1[6];
    uVar4 = param_1[0xa9];
    uVar8 = param_1[0xcd7];
    *puVar3 = *param_1;
    puVar3[0xb0] = uVar16;
    puVar3[0xb1] = uVar15;
    puVar3[0xb2] = uVar14;
    puVar3[1] = uVar13;
    puVar3[0xaf] = uVar12;
    puVar3[0xcf4] = uVar11;
    puVar3[0xcf3] = uVar10;
    puVar3[7] = uVar6;
    puVar3[6] = uVar9;
    puVar3[0xcdb] = 0xabacadab;
    puVar3[0xa9] = uVar4;
    uVar4 = (*(code *)puVar1)(uVar8);
    puVar1 = PTR_CloneImageProfiles_003a9348;
    puVar3[0xcd7] = uVar4;
    (*(code *)puVar1)(puVar3,param_1);
    (*(code *)PTR_CloneImageProperties_003a91ac)(puVar3,param_1);
    (*(code *)PTR_CloneImageArtifacts_003a9500)(puVar3,param_1);
    (*(code *)PTR_GetTimerInfo_003a9668)(puVar3 + 0xbc);
    if (param_1[0xcc] != 0) {
      (*(code *)PTR_Ascii85Initialize_003a8d18)(puVar3);
    }
    puVar1 = PTR_ClonePixelChannelMap_003a8d90;
    uVar11 = param_1[0xcd0];
    uVar10 = param_1[0xcd1];
    uVar9 = param_1[0xa8];
    uVar8 = param_1[0xb3];
    uVar4 = param_1[0xaa];
    uVar6 = param_1[0xb4];
    puVar3[0xab] = param_1[0xab];
    puVar3[0xcd0] = uVar11;
    puVar3[0xcd1] = uVar10;
    puVar3[0xa8] = uVar9;
    puVar3[0xb3] = uVar8;
    puVar3[0xaa] = uVar4;
    uVar4 = (*(code *)puVar1)(uVar6);
    puVar1 = PTR_CopyMagickString_003a983c;
    puVar3[0xb4] = uVar4;
    (*(code *)puVar1)(puVar3 + 0x4d0,param_1 + 0x4d0,0x1000);
    (*(code *)PTR_CopyMagickString_003a983c)(puVar3 + 0x8d0,param_1 + 0x8d0,0x1000);
    (*(code *)PTR_CopyMagickString_003a983c)(puVar3 + 0xd0,param_1 + 0xd0,0x1000);
    puVar1 = PTR_NewImageList_003a8e84;
    uVar8 = param_1[0xca];
    uVar6 = param_1[0xcda];
    uVar4 = param_1[0xcd9];
    puVar3[0xcb] = param_1[0xcb];
    puVar3[0xca] = uVar8;
    puVar3[0xcd5] = 1;
    puVar3[0xcda] = uVar6;
    puVar3[0xcd9] = uVar4;
    uVar4 = (*(code *)puVar1)();
    puVar3[0xcd8] = uVar4;
    puVar1 = PTR_CloneBlobInfo_003a97e0;
    if (param_4 == 0) {
      uVar4 = (*(code *)PTR_ReferenceBlob_003a9294)(param_1[0xcd2]);
      puVar3[0xcd2] = uVar4;
    }
    else {
      puVar3[0xcda] = uVar4;
      puVar3[0xcd9] = uVar4;
      uVar4 = (*(code *)puVar1)(0);
      puVar3[0xcd2] = uVar4;
    }
    puVar1 = PTR_IsEventLogging_003a97a8;
    puVar3[0xac] = param_1[0xac];
    uVar4 = (*(code *)puVar1)();
    puVar1 = PTR_AcquireSemaphoreInfo_003a962c;
    puVar3[0xcd4] = uVar4;
    uVar4 = (*(code *)puVar1)();
    iVar7 = param_1[10];
    puVar3[0xcd6] = uVar4;
    puVar1 = PTR_AcquireQuantumMemory_003a950c;
    if (iVar7 != 0) {
      puVar3[9] = param_1[9];
      iVar17 = param_1[9];
      iVar7 = (*(code *)puVar1)(iVar17 + 1,0x58);
      puVar3[10] = iVar7;
      if (iVar7 == 0) {
        (*(code *)PTR_DestroyImage_003a8f4c)(puVar3);
        (*(code *)PTR_ThrowMagickException_003a8f20)
                  (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,
                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);
        return (undefined4 *)0x0;
      }
      (*(code *)PTR_memcpy_003a9358)(iVar7,param_1[10],iVar17 * 0x58);
    }
    puVar1 = PTR_LAB_003a88e0;
    if ((param_2 == 0) || (param_3 == 0)) {
      if (param_1[0x81] != 0) {
        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x81);
      }
      if (param_1[0x82] != 0) {
        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x82);
      }
      uVar4 = (*(code *)PTR_FUN_003a8a84)(param_1[0xb5]);
      puVar3[0xb5] = uVar4;
    }
    else {
      iVar7 = param_1[6];
      if (iVar7 == 0) {
        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);
      }
      else {
        dVar19 = (double)param_2;
        if (param_2 < 0) {
          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);
        }
        dVar18 = (double)iVar7;
        if (iVar7 < 0) {
          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);
        }
        dVar19 = dVar19 / dVar18;
      }
      dVar18 = (double)(int)param_1[0x8a];
      if ((int)param_1[0x8a] < 0) {
        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);
      }
      dVar18 = (double)(*(code *)PTR_floor_003a9670)
                                 (dVar18 * dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1400));
      puVar2 = PTR_ceil_003a8c20;
      if (dVar18 < *(double *)(puVar1 + 0x1410)) {
        uVar5 = (uint)dVar18;
      }
      else {
        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;
      }
      iVar7 = param_1[0x8c];
      dVar20 = *(double *)(puVar1 + 0x1400);
      puVar3[0x8a] = uVar5;
      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);
      puVar2 = PTR_ceil_003a8c20;
      iVar7 = param_1[0xa6];
      puVar3[0x8c] = (int)dVar18;
      dVar19 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);
      iVar7 = param_1[7];
      puVar3[0xa6] = (int)dVar19;
      if (iVar7 == 0) {
        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);
      }
      else {
        dVar19 = (double)param_3;
        if (param_3 < 0) {
          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);
        }
        dVar18 = (double)iVar7;
        if (iVar7 < 0) {
          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);
        }
        dVar19 = dVar19 / dVar18;
      }
      dVar18 = (double)(int)param_1[0x8b];
      if ((int)param_1[0x8b] < 0) {
        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);
      }
      dVar18 = (double)(*(code *)PTR_floor_003a9670)(dVar18 * dVar19 + *(double *)(puVar1 + 0x1400))
      ;
      puVar2 = PTR_ceil_003a8c20;
      if (dVar18 < *(double *)(puVar1 + 0x1410)) {
        uVar5 = (uint)dVar18;
      }
      else {
        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;
      }
      iVar7 = param_1[0x8d];
      dVar20 = *(double *)(puVar1 + 0x1400);
      puVar3[0x8b] = uVar5;
      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);
      puVar1 = PTR_ceil_003a8c20;
      iVar7 = param_1[0xa7];
      puVar3[0x8d] = (int)dVar18;
      dVar19 = (double)(*(code *)puVar1)((double)iVar7 * dVar19 - dVar20);
      puVar1 = PTR_FUN_003a8a10;
      uVar4 = param_1[0xb5];
      puVar3[0xa7] = (int)dVar19;
      uVar4 = (*(code *)puVar1)(uVar4);
      puVar3[0xb5] = uVar4;
      iVar7 = (*(code *)PTR_SetImageExtent_003a94ac)(puVar3,param_2,param_3,param_5);
      if (iVar7 == 0) {
        puVar3 = (undefined4 *)(*(code *)PTR_DestroyImage_003a8f4c)(puVar3);
        return puVar3;
      }
    }
    return puVar3;
  }
  (*(code *)PTR_ThrowMagickException_003a8f20)
            (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x31e,
             0x1a9,PTR_s_t_to_left_003a88e4 + -0x5ac0,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);
  return (undefined4 *)0x0;
}


lui gp,0x2c
addiu gp,gp,-0x7e1c
addu gp,gp,t9
addiu sp,sp,-0x58
sdc1 f22,0x50(sp)
sw gp,0x20(sp)
sw s2,0x30(sp)
sw ra,0x44(sp)
sw s6,0x40(sp)
sw s5,0x3c(sp)
sw s4,0x38(sp)
sw s3,0x34(sp)
sw s1,0x2c(sp)
sw s0,0x28(sp)
sdc1 f20,0x48(sp)
beq a0,zero,0x000f8dfc
_lw s2,0x68(sp)
lui v0,0xabac
lw v1,0x336c(a0)
ori v0,v0,0xadab
bne v1,v0,0x000f8e40
_or s0,a0,zero
lw v0,0x3350(a0)
or s3,a1,zero
or s5,a2,zero
bne v0,zero,0x000f8a5c
_or s4,a3,zero
beq s2,zero,0x000f8dd8
_lui v0,0xabac
lw s6,0x1c(s2)
ori v0,v0,0xadab
bne s6,v0,0x000f8e20
_li a2,0x31b
lw v0,0x18(s0)
beq v0,zero,0x000f8a9c
_lw v0,-0x7fd0(gp)
lw v0,0x1c(s0)
beq v0,zero,0x000f8a98
_lw t9,-0x755c(gp)
jalr t9
_li a0,0x33d8
li a2,0x33d8
lw gp,0x20(sp)
or a1,zero,zero
or a0,v0,zero
lw t9,-0x71dc(gp)
jalr t9
_or s1,v0,zero
lw gp,0x20(sp)
lw t5,0x0(s0)
lw t4,0x2c0(s0)
lw t3,0x2c4(s0)
lw t2,0x2c8(s0)
lw t1,0x4(s0)
lw t0,0x2bc(s0)
lw a3,0x33d0(s0)
lw a2,0x33cc(s0)
lw v1,0x1c(s0)
lw a1,0x18(s0)
lw v0,0x2a4(s0)
lw a0,0x335c(s0)
lw t9,-0x7714(gp)
sw t5,0x0(s1)
sw t4,0x2c0(s1)
sw t3,0x2c4(s1)
sw t2,0x2c8(s1)
sw t1,0x4(s1)
sw t0,0x2bc(s1)
sw a3,0x33d0(s1)
sw a2,0x33cc(s1)
sw v1,0x1c(s1)
sw a1,0x18(s1)
sw s6,0x336c(s1)
jalr t9
_sw v0,0x2a4(s1)
or a1,s0,zero
lw gp,0x20(sp)
or a0,s1,zero
lw t9,-0x7568(gp)
jalr t9
_sw v0,0x335c(s1)
or a1,s0,zero
lw gp,0x20(sp)
lw t9,-0x7704(gp)
jalr t9
_or a0,s1,zero
or a0,s1,zero
lw gp,0x20(sp)
lw t9,-0x73b0(gp)
jalr t9
_or a1,s0,zero
lw gp,0x20(sp)
lw t9,-0x7248(gp)
jalr t9
_addiu a0,s1,0x2f0
lw v0,0x330(s0)
beq v0,zero,0x000f8864
_lw gp,0x20(sp)
lw t9,-0x7b98(gp)
jalr t9
_or a0,s1,zero
lw gp,0x20(sp)
lw v1,0x2ac(s0)
addiu s6,s0,0x340
lw t0,0x3340(s0)
lw a3,0x3344(s0)
lw a2,0x2a0(s0)
lw a1,0x2cc(s0)
lw v0,0x2a8(s0)
lw a0,0x2d0(s0)
lw t9,-0x7b20(gp)
sw v1,0x2ac(s1)
sw t0,0x3340(s1)
sw a3,0x3344(s1)
sw a2,0x2a0(s1)
sw a1,0x2cc(s1)
jalr t9
_sw v0,0x2a8(s1)
li a2,0x1000
lw gp,0x20(sp)
addiu a1,s0,0x1340
addiu a0,s1,0x1340
lw t9,-0x7074(gp)
jalr t9
_sw v0,0x2d0(s1)
li a2,0x1000
lw gp,0x20(sp)
addiu a1,s0,0x2340
lw t9,-0x7074(gp)
jalr t9
_addiu a0,s1,0x2340
li a2,0x1000
lw gp,0x20(sp)
addiu a0,s1,0x340
lw t9,-0x7074(gp)
jalr t9
_or a1,s6,zero
lw gp,0x20(sp)
lw a0,0x32c(s0)
lw a1,0x328(s0)
lw v1,0x3368(s0)
lw v0,0x3364(s0)
lw t9,-0x7a2c(gp)
sw a0,0x32c(s1)
li a0,0x1
sw a1,0x328(s1)
sw a0,0x3354(s1)
sw v1,0x3368(s1)
jalr t9
_sw v0,0x3364(s1)
lw gp,0x20(sp)
beq s4,zero,0x000f8a44
_sw v0,0x3360(s1)
lw t9,-0x70d0(gp)
or a0,zero,zero
sw v0,0x3368(s1)
jalr t9
_sw v0,0x3364(s1)
lw gp,0x20(sp)
sw v0,0x3348(s1)
lw v0,0x2b0(s0)
lw t9,-0x7108(gp)
jalr t9
_sw v0,0x2b0(s1)
lw gp,0x20(sp)
lw t9,-0x7284(gp)
jalr t9
_sw v0,0x3350(s1)
lw v1,0x28(s0)
lw gp,0x20(sp)
beq v1,zero,0x000f89c0
_sw v0,0x3358(s1)
lw v0,0x24(s0)
li a1,0x58
lw t9,-0x73a4(gp)
sw v0,0x24(s1)
lw s4,0x24(s0)
jalr t9
_addiu a0,s4,0x1
lw gp,0x20(sp)
beq v0,zero,0x000f8d78
_sw v0,0x28(s1)
li a2,0x58
lw t9,-0x7558(gp)
lw a1,0x28(s0)
or a0,v0,zero
jalr t9
_mul a2,s4,a2
lw gp,0x20(sp)
beq s3,zero,0x000f89d0
_nop
bne s5,zero,0x000f8b18
_nop
lw a1,0x204(s0)
beq a1,zero,0x000f89e8
_lw t9,-0x7428(gp)
jalr t9
_addiu a0,s1,0x204
lw gp,0x20(sp)
lw a1,0x208(s0)
beq a1,zero,0x000f8a00
_lw t9,-0x7428(gp)
jalr t9
_addiu a0,s1,0x208
lw gp,0x20(sp)
lw t9,-0x7e2c(gp)
jalr t9
_lw a0,0x2d4(s0)
sw v0,0x2d4(s1)
lw ra,0x44(sp)
or v0,s1,zero
lw s6,0x40(sp)
lw s5,0x3c(sp)
lw s4,0x38(sp)
lw s3,0x34(sp)
lw s2,0x30(sp)
lw s1,0x2c(sp)
lw s0,0x28(sp)
ldc1 f22,0x50(sp)
ldc1 f20,0x48(sp)
jr ra
_addiu sp,sp,0x58
lw t9,-0x761c(gp)
jalr t9
_lw a0,0x3348(s0)
lw gp,0x20(sp)
b 0x000f894c
_sw v0,0x3348(s1)
addiu v0,a0,0x340
lw a2,-0x7fcc(gp)
lw a1,-0x7fcc(gp)
li a3,0x319
lw t9,-0x76d0(gp)
ori a0,zero,0x8000
sw v0,0x14(sp)
addiu a2,a2,-0x52a0
lw v0,-0x7fcc(gp)
addiu a1,a1,-0x5b4c
addiu v0,v0,-0x62ac
jalr t9
_sw v0,0x10(sp)
b 0x000f8738
_lw gp,0x20(sp)
lw v0,-0x7fd0(gp)
addiu s0,s0,0x340
lw a2,-0x7fcc(gp)
li a3,0x31e
lw a1,-0x7fcc(gp)
or a0,s2,zero
addiu v0,v0,0x3e28
lw t9,-0x7990(gp)
addiu a2,a2,-0x52a0
sw s0,0x1c(sp)
sw v0,0x18(sp)
addiu a1,a1,-0x5b4c
lw v0,-0x7fcc(gp)
or s1,zero,zero
addiu v0,v0,-0x5ac0
sw v0,0x14(sp)
li v0,0x1a9
jalr t9
_sw v0,0x10(sp)
or v0,s1,zero
lw ra,0x44(sp)
lw s6,0x40(sp)
lw s5,0x3c(sp)
lw s4,0x38(sp)
lw s3,0x34(sp)
lw s2,0x30(sp)
lw s1,0x2c(sp)
lw s0,0x28(sp)
ldc1 f22,0x50(sp)
ldc1 f20,0x48(sp)
jr ra
_addiu sp,sp,0x58
lw v0,0x18(s0)
beq v0,zero,0x000f8d1c
_nop
mtc1 s3,f0
bgez s3,0x000f8b3c
_cvt.d.W f20,f0
lw v1,-0x7fd0(gp)
ldc1 f0,0x1418(v1)
add.D f20,f20,f0
mtc1 v0,f0
bltz v0,0x000f8d68
_cvt.d.W f0,f0
div.D f20,f20,f0
lw v0,0x228(s0)
mtc1 v0,f0
bgez v0,0x000f8b68
_cvt.d.W f0,f0
lw v0,-0x7fd0(gp)
ldc1 f2,0x1418(v0)
add.D f0,f0,f2
lw s4,-0x7fd0(gp)
lw t9,-0x7240(gp)
lw s6,-0x7fd0(gp)
ldc1 f12,0x1400(s4)
jalr t9
_madd.D f12,f12,f0,f20
ldc1 f2,0x1410(s6)
c.le.D f2,f0
bc1t 0x000f8d28
_lw gp,0x20(sp)
trunc.w.D f0,f0
mfc1 v0,f0
lwc1 f0,0x230(s0)
lw t9,-0x7c90(gp)
ldc1 f22,0x1400(s4)
sw v0,0x228(s1)
cvt.d.W f12,f0
jalr t9
_msub.D f12,f22,f12,f20
trunc.w.D f0,f0
lw gp,0x20(sp)
lw t9,-0x7c90(gp)
mfc1 v0,f0
lwc1 f0,0x298(s0)
sw v0,0x230(s1)
cvt.d.W f12,f0
jalr t9
_msub.D f12,f22,f12,f20
trunc.w.D f0,f0
lw v0,0x1c(s0)
lw gp,0x20(sp)
beq v0,zero,0x000f8d10
_swc1 f0,0x298(s1)
mtc1 s5,f0
bgez s5,0x000f8c04
_cvt.d.W f20,f0
lw v1,-0x7fd0(gp)
ldc1 f0,0x1418(v1)
add.D f20,f20,f0
mtc1 v0,f0
bltz v0,0x000f8d58
_cvt.d.W f0,f0
div.D f20,f20,f0
lw v0,0x22c(s0)
mtc1 v0,f0
bgez v0,0x000f8c30
_cvt.d.W f0,f0
lw v0,-0x7fd0(gp)
ldc1 f2,0x1418(v0)
add.D f0,f0,f2
ldc1 f12,0x1400(s4)
lw t9,-0x7240(gp)
jalr t9
_madd.D f12,f12,f0,f20
ldc1 f2,0x1410(s6)
c.le.D f2,f0
bc1t 0x1,0x000f8d40
_lw gp,0x20(sp)
trunc.w.D f0,f0
mfc1 v0,f0
lwc1 f0,0x234(s0)
lw t9,-0x7c90(gp)
ldc1 f22,0x1400(s4)
sw v0,0x22c(s1)
cvt.d.W f12,f0
jalr t9
_msub.D f12,f22,f12,f20
trunc.w.D f0,f0
lw gp,0x20(sp)
lw t9,-0x7c90(gp)
mfc1 v0,f0
lwc1 f0,0x29c(s0)
sw v0,0x234(s1)
cvt.d.W f12,f0
jalr t9
_msub.D f12,f22,f12,f20
trunc.w.D f0,f0
lw gp,0x20(sp)
lw a0,0x2d4(s0)
lw t9,-0x7ea0(gp)
jalr t9
_swc1 f0,0x29c(s1)
or a3,s2,zero
lw gp,0x20(sp)
or a2,s5,zero
sw v0,0x2d4(s1)
or a1,s3,zero
lw t9,-0x7404(gp)
jalr t9
_or a0,s1,zero
bne v0,zero,0x000f8a10
_lw gp,0x20(sp)
ldc1 f22,0x50(sp)
or a0,s1,zero
lw ra,0x44(sp)
ldc1 f20,0x48(sp)
lw s6,0x40(sp)
lw s5,0x3c(sp)
lw s4,0x38(sp)
lw s3,0x34(sp)
lw s2,0x30(sp)
lw s1,0x2c(sp)
lw s0,0x28(sp)
lw t9,-0x7964(gp)
jr t9
_addiu sp,sp,0x58
lw v0,-0x7fd0(gp)
b 0x000f8c14
_ldc1 f20,0x1438(v0)
lw v0,-0x7fd0(gp)
b 0x000f8b4c
_ldc1 f20,0x1438(v0)
sub.D D f0,f0,f2
lui v1,0x8000
trunc.w.D f0,f0
mfc1 v0,f0
b 0x000f8b98
_or v0,v0,v1
sub.D D f0,f0,f2
lui v1,0x8000
trunc.w.D f0,f0
mfc1 v0,f0
b 0x000f8c58
_or v0,v0,v1
lw v0,-0x7fd0(gp)
ldc1 f2,0x1418(v0)
b 0x000f8c10
_add.D f0,f0,f2
lw v0,-0x7fd0(gp)
ldc1 f2,0x1418(v0)
b 0x000f8b48
_add.D f0,f0,f2
lw t9,-0x7964(gp)
or a0,s1,zero
jalr t9
_or s1,zero,zero
li a3,0x35f
lw gp,0x20(sp)
or a0,s2,zero
sw s6,0x1c(sp)
lw v0,-0x7fd0(gp)
lw a2,-0x7fcc(gp)
lw a1,-0x7fcc(gp)
addiu v0,v0,0x3e28
lw t9,-0x7990(gp)
addiu a2,a2,-0x52a0
sw v0,0x18(sp)
addiu a1,a1,-0x5b4c
lw v0,-0x7fd0(gp)
addiu v0,v0,0x16f8
sw v0,0x14(sp)
li v0,0x190
jalr t9
_sw v0,0x10(sp)
b 0x000f8a14
_lw ra,0x44(sp)
lw a3,-0x7fcc(gp)
li a2,0x31a
lw a1,-0x7fcc(gp)
lw a0,-0x7fd0(gp)
lw t9,-0x72a8(gp)
addiu a3,a3,-0x5294
addiu a1,a1,-0x5b4c
jalr t9
_addiu a0,a0,0x1cac
lw a3,-0x7fcc(gp)
li a2,0x316
lw a1,-0x7fcc(gp)
lw a0,-0x7fc8(gp)
lw t9,-0x72a8(gp)
addiu a3,a3,-0x5294
addiu a1,a1,-0x5b4c
jalr t9
_addiu a0,a0,-0x37b0
lw a3,-0x7fcc(gp)
lw a1,-0x7fcc(gp)
lw a0,-0x7fd0(gp)
lw t9,-0x72a8(gp)
addiu a3,a3,-0x5294
addiu a1,a1,-0x5b4c
jalr t9
_addiu a0,a0,0x294c
lw a3,-0x7fcc(gp)
li a2,0x317
lw a1,-0x7fcc(gp)
lw a0,-0x7fc8(gp)
lw t9,-0x72a8(gp)
addiu a3,a3,-0x5294
addiu a1,a1,-0x5b4c
jalr t9
_addiu a0,a0,-0x3784
(translation_unit "undefined4 * CloneImage(undefined4 *param_1,int param_2,int param_3,int param_4,int param_5)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined4 *puVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  undefined4 uVar14;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  int iVar17;\n  double dVar18;\n  double dVar19;\n  double dVar20;\n  \n  if (param_1 == (undefined4 *)0x0) {\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x37b0,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x316,PTR_s_t_to_left_003a88e4 + -0x5294)\n    ;\n    return puVar3;\n  }\n  if (param_1[0xcdb] != -0x54535255) {\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x317,PTR_s_t_to_left_003a88e4 + -0x5294)\n    ;\n    return puVar3;\n  }\n  if (param_1[0xcd4] != 0) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x319,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1 + 0xd0);\n  }\n  if (param_5 == 0) {\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31a,\n                        PTR_s_t_to_left_003a88e4 + -0x5294);\n    return puVar3;\n  }\n  if (*(int *)(param_5 + 0x1c) != -0x54535255) {\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31b,\n                        PTR_s_t_to_left_003a88e4 + -0x5294);\n    return puVar3;\n  }\n  if ((param_1[6] != 0) && (param_1[7] != 0)) {\n    puVar3 = (undefined4 *)(*(code *)PTR_AcquireCriticalMemory_003a9354)(0x33d8);\n    (*(code *)PTR_memset_003a96d4)(puVar3,0,0x33d8);\n    puVar1 = PTR_CloneImageInfo_003a919c;\n    uVar16 = param_1[0xb0];\n    uVar15 = param_1[0xb1];\n    uVar14 = param_1[0xb2];\n    uVar13 = param_1[1];\n    uVar12 = param_1[0xaf];\n    uVar11 = param_1[0xcf4];\n    uVar10 = param_1[0xcf3];\n    uVar6 = param_1[7];\n    uVar9 = param_1[6];\n    uVar4 = param_1[0xa9];\n    uVar8 = param_1[0xcd7];\n    *puVar3 = *param_1;\n    puVar3[0xb0] = uVar16;\n    puVar3[0xb1] = uVar15;\n    puVar3[0xb2] = uVar14;\n    puVar3[1] = uVar13;\n    puVar3[0xaf] = uVar12;\n    puVar3[0xcf4] = uVar11;\n    puVar3[0xcf3] = uVar10;\n    puVar3[7] = uVar6;\n    puVar3[6] = uVar9;\n    puVar3[0xcdb] = 0xabacadab;\n    puVar3[0xa9] = uVar4;\n    uVar4 = (*(code *)puVar1)(uVar8);\n    puVar1 = PTR_CloneImageProfiles_003a9348;\n    puVar3[0xcd7] = uVar4;\n    (*(code *)puVar1)(puVar3,param_1);\n    (*(code *)PTR_CloneImageProperties_003a91ac)(puVar3,param_1);\n    (*(code *)PTR_CloneImageArtifacts_003a9500)(puVar3,param_1);\n    (*(code *)PTR_GetTimerInfo_003a9668)(puVar3 + 0xbc);\n    if (param_1[0xcc] != 0) {\n      (*(code *)PTR_Ascii85Initialize_003a8d18)(puVar3);\n    }\n    puVar1 = PTR_ClonePixelChannelMap_003a8d90;\n    uVar11 = param_1[0xcd0];\n    uVar10 = param_1[0xcd1];\n    uVar9 = param_1[0xa8];\n    uVar8 = param_1[0xb3];\n    uVar4 = param_1[0xaa];\n    uVar6 = param_1[0xb4];\n    puVar3[0xab] = param_1[0xab];\n    puVar3[0xcd0] = uVar11;\n    puVar3[0xcd1] = uVar10;\n    puVar3[0xa8] = uVar9;\n    puVar3[0xb3] = uVar8;\n    puVar3[0xaa] = uVar4;\n    uVar4 = (*(code *)puVar1)(uVar6);\n    puVar1 = PTR_CopyMagickString_003a983c;\n    puVar3[0xb4] = uVar4;\n    (*(code *)puVar1)(puVar3 + 0x4d0,param_1 + 0x4d0,0x1000);\n    (*(code *)PTR_CopyMagickString_003a983c)(puVar3 + 0x8d0,param_1 + 0x8d0,0x1000);\n    (*(code *)PTR_CopyMagickString_003a983c)(puVar3 + 0xd0,param_1 + 0xd0,0x1000);\n    puVar1 = PTR_NewImageList_003a8e84;\n    uVar8 = param_1[0xca];\n    uVar6 = param_1[0xcda];\n    uVar4 = param_1[0xcd9];\n    puVar3[0xcb] = param_1[0xcb];\n    puVar3[0xca] = uVar8;\n    puVar3[0xcd5] = 1;\n    puVar3[0xcda] = uVar6;\n    puVar3[0xcd9] = uVar4;\n    uVar4 = (*(code *)puVar1)();\n    puVar3[0xcd8] = uVar4;\n    puVar1 = PTR_CloneBlobInfo_003a97e0;\n    if (param_4 == 0) {\n      uVar4 = (*(code *)PTR_ReferenceBlob_003a9294)(param_1[0xcd2]);\n      puVar3[0xcd2] = uVar4;\n    }\n    else {\n      puVar3[0xcda] = uVar4;\n      puVar3[0xcd9] = uVar4;\n      uVar4 = (*(code *)puVar1)(0);\n      puVar3[0xcd2] = uVar4;\n    }\n    puVar1 = PTR_IsEventLogging_003a97a8;\n    puVar3[0xac] = param_1[0xac];\n    uVar4 = (*(code *)puVar1)();\n    puVar1 = PTR_AcquireSemaphoreInfo_003a962c;\n    puVar3[0xcd4] = uVar4;\n    uVar4 = (*(code *)puVar1)();\n    iVar7 = param_1[10];\n    puVar3[0xcd6] = uVar4;\n    puVar1 = PTR_AcquireQuantumMemory_003a950c;\n    if (iVar7 != 0) {\n      puVar3[9] = param_1[9];\n      iVar17 = param_1[9];\n      iVar7 = (*(code *)puVar1)(iVar17 + 1,0x58);\n      puVar3[10] = iVar7;\n      if (iVar7 == 0) {\n        (*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        (*(code *)PTR_ThrowMagickException_003a8f20)\n                  (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,\n                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);\n        return (undefined4 *)0x0;\n      }\n      (*(code *)PTR_memcpy_003a9358)(iVar7,param_1[10],iVar17 * 0x58);\n    }\n    puVar1 = PTR_LAB_003a88e0;\n    if ((param_2 == 0) || (param_3 == 0)) {\n      if (param_1[0x81] != 0) {\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x81);\n      }\n      if (param_1[0x82] != 0) {\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x82);\n      }\n      uVar4 = (*(code *)PTR_FUN_003a8a84)(param_1[0xb5]);\n      puVar3[0xb5] = uVar4;\n    }\n    else {\n      iVar7 = param_1[6];\n      if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_2;\n        if (param_2 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }\n      dVar18 = (double)(int)param_1[0x8a];\n      if ((int)param_1[0x8a] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar18 = (double)(*(code *)PTR_floor_003a9670)\n                                 (dVar18 * dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1400));\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar7 = param_1[0x8c];\n      dVar20 = *(double *)(puVar1 + 0x1400);\n      puVar3[0x8a] = uVar5;\n      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      puVar2 = PTR_ceil_003a8c20;\n      iVar7 = param_1[0xa6];\n      puVar3[0x8c] = (int)dVar18;\n      dVar19 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      iVar7 = param_1[7];\n      puVar3[0xa6] = (int)dVar19;\n      if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_3;\n        if (param_3 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }\n      dVar18 = (double)(int)param_1[0x8b];\n      if ((int)param_1[0x8b] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar18 = (double)(*(code *)PTR_floor_003a9670)(dVar18 * dVar19 + *(double *)(puVar1 + 0x1400))\n      ;\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar7 = param_1[0x8d];\n      dVar20 = *(double *)(puVar1 + 0x1400);\n      puVar3[0x8b] = uVar5;\n      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      puVar1 = PTR_ceil_003a8c20;\n      iVar7 = param_1[0xa7];\n      puVar3[0x8d] = (int)dVar18;\n      dVar19 = (double)(*(code *)puVar1)((double)iVar7 * dVar19 - dVar20);\n      puVar1 = PTR_FUN_003a8a10;\n      uVar4 = param_1[0xb5];\n      puVar3[0xa7] = (int)dVar19;\n      uVar4 = (*(code *)puVar1)(uVar4);\n      puVar3[0xb5] = uVar4;\n      iVar7 = (*(code *)PTR_SetImageExtent_003a94ac)(puVar3,param_2,param_3,param_5);\n      if (iVar7 == 0) {\n        puVar3 = (undefined4 *)(*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        return puVar3;\n      }\n    }\n    return puVar3;\n  }\n  (*(code *)PTR_ThrowMagickException_003a8f20)\n            (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x31e,\n             0x1a9,PTR_s_t_to_left_003a88e4 + -0x5ac0,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);\n  return (undefined4 *)0x0;\n}\n\n" (function_definition "undefined4 * CloneImage(undefined4 *param_1,int param_2,int param_3,int param_4,int param_5)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined4 *puVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  undefined4 uVar14;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  int iVar17;\n  double dVar18;\n  double dVar19;\n  double dVar20;\n  \n  if (param_1 == (undefined4 *)0x0) {\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x37b0,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x316,PTR_s_t_to_left_003a88e4 + -0x5294)\n    ;\n    return puVar3;\n  }\n  if (param_1[0xcdb] != -0x54535255) {\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x317,PTR_s_t_to_left_003a88e4 + -0x5294)\n    ;\n    return puVar3;\n  }\n  if (param_1[0xcd4] != 0) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x319,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1 + 0xd0);\n  }\n  if (param_5 == 0) {\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31a,\n                        PTR_s_t_to_left_003a88e4 + -0x5294);\n    return puVar3;\n  }\n  if (*(int *)(param_5 + 0x1c) != -0x54535255) {\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31b,\n                        PTR_s_t_to_left_003a88e4 + -0x5294);\n    return puVar3;\n  }\n  if ((param_1[6] != 0) && (param_1[7] != 0)) {\n    puVar3 = (undefined4 *)(*(code *)PTR_AcquireCriticalMemory_003a9354)(0x33d8);\n    (*(code *)PTR_memset_003a96d4)(puVar3,0,0x33d8);\n    puVar1 = PTR_CloneImageInfo_003a919c;\n    uVar16 = param_1[0xb0];\n    uVar15 = param_1[0xb1];\n    uVar14 = param_1[0xb2];\n    uVar13 = param_1[1];\n    uVar12 = param_1[0xaf];\n    uVar11 = param_1[0xcf4];\n    uVar10 = param_1[0xcf3];\n    uVar6 = param_1[7];\n    uVar9 = param_1[6];\n    uVar4 = param_1[0xa9];\n    uVar8 = param_1[0xcd7];\n    *puVar3 = *param_1;\n    puVar3[0xb0] = uVar16;\n    puVar3[0xb1] = uVar15;\n    puVar3[0xb2] = uVar14;\n    puVar3[1] = uVar13;\n    puVar3[0xaf] = uVar12;\n    puVar3[0xcf4] = uVar11;\n    puVar3[0xcf3] = uVar10;\n    puVar3[7] = uVar6;\n    puVar3[6] = uVar9;\n    puVar3[0xcdb] = 0xabacadab;\n    puVar3[0xa9] = uVar4;\n    uVar4 = (*(code *)puVar1)(uVar8);\n    puVar1 = PTR_CloneImageProfiles_003a9348;\n    puVar3[0xcd7] = uVar4;\n    (*(code *)puVar1)(puVar3,param_1);\n    (*(code *)PTR_CloneImageProperties_003a91ac)(puVar3,param_1);\n    (*(code *)PTR_CloneImageArtifacts_003a9500)(puVar3,param_1);\n    (*(code *)PTR_GetTimerInfo_003a9668)(puVar3 + 0xbc);\n    if (param_1[0xcc] != 0) {\n      (*(code *)PTR_Ascii85Initialize_003a8d18)(puVar3);\n    }\n    puVar1 = PTR_ClonePixelChannelMap_003a8d90;\n    uVar11 = param_1[0xcd0];\n    uVar10 = param_1[0xcd1];\n    uVar9 = param_1[0xa8];\n    uVar8 = param_1[0xb3];\n    uVar4 = param_1[0xaa];\n    uVar6 = param_1[0xb4];\n    puVar3[0xab] = param_1[0xab];\n    puVar3[0xcd0] = uVar11;\n    puVar3[0xcd1] = uVar10;\n    puVar3[0xa8] = uVar9;\n    puVar3[0xb3] = uVar8;\n    puVar3[0xaa] = uVar4;\n    uVar4 = (*(code *)puVar1)(uVar6);\n    puVar1 = PTR_CopyMagickString_003a983c;\n    puVar3[0xb4] = uVar4;\n    (*(code *)puVar1)(puVar3 + 0x4d0,param_1 + 0x4d0,0x1000);\n    (*(code *)PTR_CopyMagickString_003a983c)(puVar3 + 0x8d0,param_1 + 0x8d0,0x1000);\n    (*(code *)PTR_CopyMagickString_003a983c)(puVar3 + 0xd0,param_1 + 0xd0,0x1000);\n    puVar1 = PTR_NewImageList_003a8e84;\n    uVar8 = param_1[0xca];\n    uVar6 = param_1[0xcda];\n    uVar4 = param_1[0xcd9];\n    puVar3[0xcb] = param_1[0xcb];\n    puVar3[0xca] = uVar8;\n    puVar3[0xcd5] = 1;\n    puVar3[0xcda] = uVar6;\n    puVar3[0xcd9] = uVar4;\n    uVar4 = (*(code *)puVar1)();\n    puVar3[0xcd8] = uVar4;\n    puVar1 = PTR_CloneBlobInfo_003a97e0;\n    if (param_4 == 0) {\n      uVar4 = (*(code *)PTR_ReferenceBlob_003a9294)(param_1[0xcd2]);\n      puVar3[0xcd2] = uVar4;\n    }\n    else {\n      puVar3[0xcda] = uVar4;\n      puVar3[0xcd9] = uVar4;\n      uVar4 = (*(code *)puVar1)(0);\n      puVar3[0xcd2] = uVar4;\n    }\n    puVar1 = PTR_IsEventLogging_003a97a8;\n    puVar3[0xac] = param_1[0xac];\n    uVar4 = (*(code *)puVar1)();\n    puVar1 = PTR_AcquireSemaphoreInfo_003a962c;\n    puVar3[0xcd4] = uVar4;\n    uVar4 = (*(code *)puVar1)();\n    iVar7 = param_1[10];\n    puVar3[0xcd6] = uVar4;\n    puVar1 = PTR_AcquireQuantumMemory_003a950c;\n    if (iVar7 != 0) {\n      puVar3[9] = param_1[9];\n      iVar17 = param_1[9];\n      iVar7 = (*(code *)puVar1)(iVar17 + 1,0x58);\n      puVar3[10] = iVar7;\n      if (iVar7 == 0) {\n        (*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        (*(code *)PTR_ThrowMagickException_003a8f20)\n                  (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,\n                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);\n        return (undefined4 *)0x0;\n      }\n      (*(code *)PTR_memcpy_003a9358)(iVar7,param_1[10],iVar17 * 0x58);\n    }\n    puVar1 = PTR_LAB_003a88e0;\n    if ((param_2 == 0) || (param_3 == 0)) {\n      if (param_1[0x81] != 0) {\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x81);\n      }\n      if (param_1[0x82] != 0) {\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x82);\n      }\n      uVar4 = (*(code *)PTR_FUN_003a8a84)(param_1[0xb5]);\n      puVar3[0xb5] = uVar4;\n    }\n    else {\n      iVar7 = param_1[6];\n      if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_2;\n        if (param_2 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }\n      dVar18 = (double)(int)param_1[0x8a];\n      if ((int)param_1[0x8a] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar18 = (double)(*(code *)PTR_floor_003a9670)\n                                 (dVar18 * dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1400));\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar7 = param_1[0x8c];\n      dVar20 = *(double *)(puVar1 + 0x1400);\n      puVar3[0x8a] = uVar5;\n      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      puVar2 = PTR_ceil_003a8c20;\n      iVar7 = param_1[0xa6];\n      puVar3[0x8c] = (int)dVar18;\n      dVar19 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      iVar7 = param_1[7];\n      puVar3[0xa6] = (int)dVar19;\n      if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_3;\n        if (param_3 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }\n      dVar18 = (double)(int)param_1[0x8b];\n      if ((int)param_1[0x8b] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar18 = (double)(*(code *)PTR_floor_003a9670)(dVar18 * dVar19 + *(double *)(puVar1 + 0x1400))\n      ;\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar7 = param_1[0x8d];\n      dVar20 = *(double *)(puVar1 + 0x1400);\n      puVar3[0x8b] = uVar5;\n      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      puVar1 = PTR_ceil_003a8c20;\n      iVar7 = param_1[0xa7];\n      puVar3[0x8d] = (int)dVar18;\n      dVar19 = (double)(*(code *)puVar1)((double)iVar7 * dVar19 - dVar20);\n      puVar1 = PTR_FUN_003a8a10;\n      uVar4 = param_1[0xb5];\n      puVar3[0xa7] = (int)dVar19;\n      uVar4 = (*(code *)puVar1)(uVar4);\n      puVar3[0xb5] = uVar4;\n      iVar7 = (*(code *)PTR_SetImageExtent_003a94ac)(puVar3,param_2,param_3,param_5);\n      if (iVar7 == 0) {\n        puVar3 = (undefined4 *)(*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        return puVar3;\n      }\n    }\n    return puVar3;\n  }\n  (*(code *)PTR_ThrowMagickException_003a8f20)\n            (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x31e,\n             0x1a9,PTR_s_t_to_left_003a88e4 + -0x5ac0,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);\n  return (undefined4 *)0x0;\n}" type_identifier (pointer_declarator "* CloneImage(undefined4 *param_1,int param_2,int param_3,int param_4,int param_5)" * (function_declarator "CloneImage(undefined4 *param_1,int param_2,int param_3,int param_4,int param_5)" identifier (parameter_list "(undefined4 *param_1,int param_2,int param_3,int param_4,int param_5)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "int param_5" primitive_type identifier) )))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined4 *puVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  undefined4 uVar14;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  int iVar17;\n  double dVar18;\n  double dVar19;\n  double dVar20;\n  \n  if (param_1 == (undefined4 *)0x0) {\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x37b0,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x316,PTR_s_t_to_left_003a88e4 + -0x5294)\n    ;\n    return puVar3;\n  }\n  if (param_1[0xcdb] != -0x54535255) {\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x317,PTR_s_t_to_left_003a88e4 + -0x5294)\n    ;\n    return puVar3;\n  }\n  if (param_1[0xcd4] != 0) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x319,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1 + 0xd0);\n  }\n  if (param_5 == 0) {\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31a,\n                        PTR_s_t_to_left_003a88e4 + -0x5294);\n    return puVar3;\n  }\n  if (*(int *)(param_5 + 0x1c) != -0x54535255) {\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31b,\n                        PTR_s_t_to_left_003a88e4 + -0x5294);\n    return puVar3;\n  }\n  if ((param_1[6] != 0) && (param_1[7] != 0)) {\n    puVar3 = (undefined4 *)(*(code *)PTR_AcquireCriticalMemory_003a9354)(0x33d8);\n    (*(code *)PTR_memset_003a96d4)(puVar3,0,0x33d8);\n    puVar1 = PTR_CloneImageInfo_003a919c;\n    uVar16 = param_1[0xb0];\n    uVar15 = param_1[0xb1];\n    uVar14 = param_1[0xb2];\n    uVar13 = param_1[1];\n    uVar12 = param_1[0xaf];\n    uVar11 = param_1[0xcf4];\n    uVar10 = param_1[0xcf3];\n    uVar6 = param_1[7];\n    uVar9 = param_1[6];\n    uVar4 = param_1[0xa9];\n    uVar8 = param_1[0xcd7];\n    *puVar3 = *param_1;\n    puVar3[0xb0] = uVar16;\n    puVar3[0xb1] = uVar15;\n    puVar3[0xb2] = uVar14;\n    puVar3[1] = uVar13;\n    puVar3[0xaf] = uVar12;\n    puVar3[0xcf4] = uVar11;\n    puVar3[0xcf3] = uVar10;\n    puVar3[7] = uVar6;\n    puVar3[6] = uVar9;\n    puVar3[0xcdb] = 0xabacadab;\n    puVar3[0xa9] = uVar4;\n    uVar4 = (*(code *)puVar1)(uVar8);\n    puVar1 = PTR_CloneImageProfiles_003a9348;\n    puVar3[0xcd7] = uVar4;\n    (*(code *)puVar1)(puVar3,param_1);\n    (*(code *)PTR_CloneImageProperties_003a91ac)(puVar3,param_1);\n    (*(code *)PTR_CloneImageArtifacts_003a9500)(puVar3,param_1);\n    (*(code *)PTR_GetTimerInfo_003a9668)(puVar3 + 0xbc);\n    if (param_1[0xcc] != 0) {\n      (*(code *)PTR_Ascii85Initialize_003a8d18)(puVar3);\n    }\n    puVar1 = PTR_ClonePixelChannelMap_003a8d90;\n    uVar11 = param_1[0xcd0];\n    uVar10 = param_1[0xcd1];\n    uVar9 = param_1[0xa8];\n    uVar8 = param_1[0xb3];\n    uVar4 = param_1[0xaa];\n    uVar6 = param_1[0xb4];\n    puVar3[0xab] = param_1[0xab];\n    puVar3[0xcd0] = uVar11;\n    puVar3[0xcd1] = uVar10;\n    puVar3[0xa8] = uVar9;\n    puVar3[0xb3] = uVar8;\n    puVar3[0xaa] = uVar4;\n    uVar4 = (*(code *)puVar1)(uVar6);\n    puVar1 = PTR_CopyMagickString_003a983c;\n    puVar3[0xb4] = uVar4;\n    (*(code *)puVar1)(puVar3 + 0x4d0,param_1 + 0x4d0,0x1000);\n    (*(code *)PTR_CopyMagickString_003a983c)(puVar3 + 0x8d0,param_1 + 0x8d0,0x1000);\n    (*(code *)PTR_CopyMagickString_003a983c)(puVar3 + 0xd0,param_1 + 0xd0,0x1000);\n    puVar1 = PTR_NewImageList_003a8e84;\n    uVar8 = param_1[0xca];\n    uVar6 = param_1[0xcda];\n    uVar4 = param_1[0xcd9];\n    puVar3[0xcb] = param_1[0xcb];\n    puVar3[0xca] = uVar8;\n    puVar3[0xcd5] = 1;\n    puVar3[0xcda] = uVar6;\n    puVar3[0xcd9] = uVar4;\n    uVar4 = (*(code *)puVar1)();\n    puVar3[0xcd8] = uVar4;\n    puVar1 = PTR_CloneBlobInfo_003a97e0;\n    if (param_4 == 0) {\n      uVar4 = (*(code *)PTR_ReferenceBlob_003a9294)(param_1[0xcd2]);\n      puVar3[0xcd2] = uVar4;\n    }\n    else {\n      puVar3[0xcda] = uVar4;\n      puVar3[0xcd9] = uVar4;\n      uVar4 = (*(code *)puVar1)(0);\n      puVar3[0xcd2] = uVar4;\n    }\n    puVar1 = PTR_IsEventLogging_003a97a8;\n    puVar3[0xac] = param_1[0xac];\n    uVar4 = (*(code *)puVar1)();\n    puVar1 = PTR_AcquireSemaphoreInfo_003a962c;\n    puVar3[0xcd4] = uVar4;\n    uVar4 = (*(code *)puVar1)();\n    iVar7 = param_1[10];\n    puVar3[0xcd6] = uVar4;\n    puVar1 = PTR_AcquireQuantumMemory_003a950c;\n    if (iVar7 != 0) {\n      puVar3[9] = param_1[9];\n      iVar17 = param_1[9];\n      iVar7 = (*(code *)puVar1)(iVar17 + 1,0x58);\n      puVar3[10] = iVar7;\n      if (iVar7 == 0) {\n        (*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        (*(code *)PTR_ThrowMagickException_003a8f20)\n                  (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,\n                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);\n        return (undefined4 *)0x0;\n      }\n      (*(code *)PTR_memcpy_003a9358)(iVar7,param_1[10],iVar17 * 0x58);\n    }\n    puVar1 = PTR_LAB_003a88e0;\n    if ((param_2 == 0) || (param_3 == 0)) {\n      if (param_1[0x81] != 0) {\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x81);\n      }\n      if (param_1[0x82] != 0) {\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x82);\n      }\n      uVar4 = (*(code *)PTR_FUN_003a8a84)(param_1[0xb5]);\n      puVar3[0xb5] = uVar4;\n    }\n    else {\n      iVar7 = param_1[6];\n      if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_2;\n        if (param_2 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }\n      dVar18 = (double)(int)param_1[0x8a];\n      if ((int)param_1[0x8a] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar18 = (double)(*(code *)PTR_floor_003a9670)\n                                 (dVar18 * dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1400));\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar7 = param_1[0x8c];\n      dVar20 = *(double *)(puVar1 + 0x1400);\n      puVar3[0x8a] = uVar5;\n      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      puVar2 = PTR_ceil_003a8c20;\n      iVar7 = param_1[0xa6];\n      puVar3[0x8c] = (int)dVar18;\n      dVar19 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      iVar7 = param_1[7];\n      puVar3[0xa6] = (int)dVar19;\n      if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_3;\n        if (param_3 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }\n      dVar18 = (double)(int)param_1[0x8b];\n      if ((int)param_1[0x8b] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar18 = (double)(*(code *)PTR_floor_003a9670)(dVar18 * dVar19 + *(double *)(puVar1 + 0x1400))\n      ;\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar7 = param_1[0x8d];\n      dVar20 = *(double *)(puVar1 + 0x1400);\n      puVar3[0x8b] = uVar5;\n      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      puVar1 = PTR_ceil_003a8c20;\n      iVar7 = param_1[0xa7];\n      puVar3[0x8d] = (int)dVar18;\n      dVar19 = (double)(*(code *)puVar1)((double)iVar7 * dVar19 - dVar20);\n      puVar1 = PTR_FUN_003a8a10;\n      uVar4 = param_1[0xb5];\n      puVar3[0xa7] = (int)dVar19;\n      uVar4 = (*(code *)puVar1)(uVar4);\n      puVar3[0xb5] = uVar4;\n      iVar7 = (*(code *)PTR_SetImageExtent_003a94ac)(puVar3,param_2,param_3,param_5);\n      if (iVar7 == 0) {\n        puVar3 = (undefined4 *)(*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        return puVar3;\n      }\n    }\n    return puVar3;\n  }\n  (*(code *)PTR_ThrowMagickException_003a8f20)\n            (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x31e,\n             0x1a9,PTR_s_t_to_left_003a88e4 + -0x5ac0,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);\n  return (undefined4 *)0x0;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "undefined4 uVar13;" type_identifier identifier ;) (declaration "undefined4 uVar14;" type_identifier identifier ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "undefined4 uVar16;" type_identifier identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "double dVar18;" primitive_type identifier ;) (declaration "double dVar19;" primitive_type identifier ;) (declaration "double dVar20;" primitive_type identifier ;) (if_statement "if (param_1 == (undefined4 *)0x0) {\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x37b0,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x316,PTR_s_t_to_left_003a88e4 + -0x5294)\n    ;\n    return puVar3;\n  }" if (parenthesized_expression "(param_1 == (undefined4 *)0x0)" ( (binary_expression "param_1 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x37b0,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x316,PTR_s_t_to_left_003a88e4 + -0x5294)\n    ;\n    return puVar3;\n  }" { (expression_statement "puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x37b0,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x316,PTR_s_t_to_left_003a88e4 + -0x5294)\n    ;" (assignment_expression "puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x37b0,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x316,PTR_s_t_to_left_003a88e4 + -0x5294)" identifier = (cast_expression "(undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x37b0,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x316,PTR_s_t_to_left_003a88e4 + -0x5294)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x37b0,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x316,PTR_s_t_to_left_003a88e4 + -0x5294)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x37b0,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x316,PTR_s_t_to_left_003a88e4 + -0x5294)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x37b0" identifier + number_literal) , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5b4c" identifier + number_literal) , number_literal , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5294" identifier + number_literal) ))))) ;) (return_statement "return puVar3;" return identifier ;) })) (if_statement "if (param_1[0xcdb] != -0x54535255) {\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x317,PTR_s_t_to_left_003a88e4 + -0x5294)\n    ;\n    return puVar3;\n  }" if (parenthesized_expression "(param_1[0xcdb] != -0x54535255)" ( (binary_expression "param_1[0xcdb] != -0x54535255" (subscript_expression "param_1[0xcdb]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x317,PTR_s_t_to_left_003a88e4 + -0x5294)\n    ;\n    return puVar3;\n  }" { (expression_statement "puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x317,PTR_s_t_to_left_003a88e4 + -0x5294)\n    ;" (assignment_expression "puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x317,PTR_s_t_to_left_003a88e4 + -0x5294)" identifier = (cast_expression "(undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x317,PTR_s_t_to_left_003a88e4 + -0x5294)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x317,PTR_s_t_to_left_003a88e4 + -0x5294)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x317,PTR_s_t_to_left_003a88e4 + -0x5294)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784" identifier + number_literal) , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5b4c" identifier + number_literal) , number_literal , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5294" identifier + number_literal) ))))) ;) (return_statement "return puVar3;" return identifier ;) })) (if_statement "if (param_1[0xcd4] != 0) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x319,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1 + 0xd0);\n  }" if (parenthesized_expression "(param_1[0xcd4] != 0)" ( (binary_expression "param_1[0xcd4] != 0" (subscript_expression "param_1[0xcd4]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x319,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1 + 0xd0);\n  }" { (expression_statement "(*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x319,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1 + 0xd0);" (call_expression "(*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x319,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1 + 0xd0)" (parenthesized_expression "(*(code *)PTR_LogMagickEvent_003a91e0)" ( (pointer_expression "*(code *)PTR_LogMagickEvent_003a91e0" * (cast_expression "(code *)PTR_LogMagickEvent_003a91e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x8000,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x319,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1 + 0xd0)" ( number_literal , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5b4c" identifier + number_literal) , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x52a0" identifier + number_literal) , number_literal , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x62ac" identifier + number_literal) , (binary_expression "param_1 + 0xd0" identifier + number_literal) ))) ;) })) (if_statement "if (param_5 == 0) {\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31a,\n                        PTR_s_t_to_left_003a88e4 + -0x5294);\n    return puVar3;\n  }" if (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) (compound_statement "{\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31a,\n                        PTR_s_t_to_left_003a88e4 + -0x5294);\n    return puVar3;\n  }" { (expression_statement "puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31a,\n                        PTR_s_t_to_left_003a88e4 + -0x5294);" (assignment_expression "puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31a,\n                        PTR_s_t_to_left_003a88e4 + -0x5294)" identifier = (cast_expression "(undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31a,\n                        PTR_s_t_to_left_003a88e4 + -0x5294)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31a,\n                        PTR_s_t_to_left_003a88e4 + -0x5294)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_003a88e0 + 0x1cac,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31a,\n                        PTR_s_t_to_left_003a88e4 + -0x5294)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1cac" identifier + number_literal) , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5b4c" identifier + number_literal) , number_literal , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5294" identifier + number_literal) ))))) ;) (return_statement "return puVar3;" return identifier ;) })) (if_statement "if (*(int *)(param_5 + 0x1c) != -0x54535255) {\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31b,\n                        PTR_s_t_to_left_003a88e4 + -0x5294);\n    return puVar3;\n  }" if (parenthesized_expression "(*(int *)(param_5 + 0x1c) != -0x54535255)" ( (binary_expression "*(int *)(param_5 + 0x1c) != -0x54535255" (pointer_expression "*(int *)(param_5 + 0x1c)" * (cast_expression "(int *)(param_5 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x1c)" ( (binary_expression "param_5 + 0x1c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31b,\n                        PTR_s_t_to_left_003a88e4 + -0x5294);\n    return puVar3;\n  }" { (expression_statement "puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31b,\n                        PTR_s_t_to_left_003a88e4 + -0x5294);" (assignment_expression "puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31b,\n                        PTR_s_t_to_left_003a88e4 + -0x5294)" identifier = (cast_expression "(undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31b,\n                        PTR_s_t_to_left_003a88e4 + -0x5294)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31b,\n                        PTR_s_t_to_left_003a88e4 + -0x5294)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_003a88e0 + 0x294c,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31b,\n                        PTR_s_t_to_left_003a88e4 + -0x5294)" ( (binary_expression "PTR_LAB_003a88e0 + 0x294c" identifier + number_literal) , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5b4c" identifier + number_literal) , number_literal , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5294" identifier + number_literal) ))))) ;) (return_statement "return puVar3;" return identifier ;) })) (if_statement "if ((param_1[6] != 0) && (param_1[7] != 0)) {\n    puVar3 = (undefined4 *)(*(code *)PTR_AcquireCriticalMemory_003a9354)(0x33d8);\n    (*(code *)PTR_memset_003a96d4)(puVar3,0,0x33d8);\n    puVar1 = PTR_CloneImageInfo_003a919c;\n    uVar16 = param_1[0xb0];\n    uVar15 = param_1[0xb1];\n    uVar14 = param_1[0xb2];\n    uVar13 = param_1[1];\n    uVar12 = param_1[0xaf];\n    uVar11 = param_1[0xcf4];\n    uVar10 = param_1[0xcf3];\n    uVar6 = param_1[7];\n    uVar9 = param_1[6];\n    uVar4 = param_1[0xa9];\n    uVar8 = param_1[0xcd7];\n    *puVar3 = *param_1;\n    puVar3[0xb0] = uVar16;\n    puVar3[0xb1] = uVar15;\n    puVar3[0xb2] = uVar14;\n    puVar3[1] = uVar13;\n    puVar3[0xaf] = uVar12;\n    puVar3[0xcf4] = uVar11;\n    puVar3[0xcf3] = uVar10;\n    puVar3[7] = uVar6;\n    puVar3[6] = uVar9;\n    puVar3[0xcdb] = 0xabacadab;\n    puVar3[0xa9] = uVar4;\n    uVar4 = (*(code *)puVar1)(uVar8);\n    puVar1 = PTR_CloneImageProfiles_003a9348;\n    puVar3[0xcd7] = uVar4;\n    (*(code *)puVar1)(puVar3,param_1);\n    (*(code *)PTR_CloneImageProperties_003a91ac)(puVar3,param_1);\n    (*(code *)PTR_CloneImageArtifacts_003a9500)(puVar3,param_1);\n    (*(code *)PTR_GetTimerInfo_003a9668)(puVar3 + 0xbc);\n    if (param_1[0xcc] != 0) {\n      (*(code *)PTR_Ascii85Initialize_003a8d18)(puVar3);\n    }\n    puVar1 = PTR_ClonePixelChannelMap_003a8d90;\n    uVar11 = param_1[0xcd0];\n    uVar10 = param_1[0xcd1];\n    uVar9 = param_1[0xa8];\n    uVar8 = param_1[0xb3];\n    uVar4 = param_1[0xaa];\n    uVar6 = param_1[0xb4];\n    puVar3[0xab] = param_1[0xab];\n    puVar3[0xcd0] = uVar11;\n    puVar3[0xcd1] = uVar10;\n    puVar3[0xa8] = uVar9;\n    puVar3[0xb3] = uVar8;\n    puVar3[0xaa] = uVar4;\n    uVar4 = (*(code *)puVar1)(uVar6);\n    puVar1 = PTR_CopyMagickString_003a983c;\n    puVar3[0xb4] = uVar4;\n    (*(code *)puVar1)(puVar3 + 0x4d0,param_1 + 0x4d0,0x1000);\n    (*(code *)PTR_CopyMagickString_003a983c)(puVar3 + 0x8d0,param_1 + 0x8d0,0x1000);\n    (*(code *)PTR_CopyMagickString_003a983c)(puVar3 + 0xd0,param_1 + 0xd0,0x1000);\n    puVar1 = PTR_NewImageList_003a8e84;\n    uVar8 = param_1[0xca];\n    uVar6 = param_1[0xcda];\n    uVar4 = param_1[0xcd9];\n    puVar3[0xcb] = param_1[0xcb];\n    puVar3[0xca] = uVar8;\n    puVar3[0xcd5] = 1;\n    puVar3[0xcda] = uVar6;\n    puVar3[0xcd9] = uVar4;\n    uVar4 = (*(code *)puVar1)();\n    puVar3[0xcd8] = uVar4;\n    puVar1 = PTR_CloneBlobInfo_003a97e0;\n    if (param_4 == 0) {\n      uVar4 = (*(code *)PTR_ReferenceBlob_003a9294)(param_1[0xcd2]);\n      puVar3[0xcd2] = uVar4;\n    }\n    else {\n      puVar3[0xcda] = uVar4;\n      puVar3[0xcd9] = uVar4;\n      uVar4 = (*(code *)puVar1)(0);\n      puVar3[0xcd2] = uVar4;\n    }\n    puVar1 = PTR_IsEventLogging_003a97a8;\n    puVar3[0xac] = param_1[0xac];\n    uVar4 = (*(code *)puVar1)();\n    puVar1 = PTR_AcquireSemaphoreInfo_003a962c;\n    puVar3[0xcd4] = uVar4;\n    uVar4 = (*(code *)puVar1)();\n    iVar7 = param_1[10];\n    puVar3[0xcd6] = uVar4;\n    puVar1 = PTR_AcquireQuantumMemory_003a950c;\n    if (iVar7 != 0) {\n      puVar3[9] = param_1[9];\n      iVar17 = param_1[9];\n      iVar7 = (*(code *)puVar1)(iVar17 + 1,0x58);\n      puVar3[10] = iVar7;\n      if (iVar7 == 0) {\n        (*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        (*(code *)PTR_ThrowMagickException_003a8f20)\n                  (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,\n                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);\n        return (undefined4 *)0x0;\n      }\n      (*(code *)PTR_memcpy_003a9358)(iVar7,param_1[10],iVar17 * 0x58);\n    }\n    puVar1 = PTR_LAB_003a88e0;\n    if ((param_2 == 0) || (param_3 == 0)) {\n      if (param_1[0x81] != 0) {\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x81);\n      }\n      if (param_1[0x82] != 0) {\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x82);\n      }\n      uVar4 = (*(code *)PTR_FUN_003a8a84)(param_1[0xb5]);\n      puVar3[0xb5] = uVar4;\n    }\n    else {\n      iVar7 = param_1[6];\n      if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_2;\n        if (param_2 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }\n      dVar18 = (double)(int)param_1[0x8a];\n      if ((int)param_1[0x8a] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar18 = (double)(*(code *)PTR_floor_003a9670)\n                                 (dVar18 * dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1400));\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar7 = param_1[0x8c];\n      dVar20 = *(double *)(puVar1 + 0x1400);\n      puVar3[0x8a] = uVar5;\n      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      puVar2 = PTR_ceil_003a8c20;\n      iVar7 = param_1[0xa6];\n      puVar3[0x8c] = (int)dVar18;\n      dVar19 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      iVar7 = param_1[7];\n      puVar3[0xa6] = (int)dVar19;\n      if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_3;\n        if (param_3 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }\n      dVar18 = (double)(int)param_1[0x8b];\n      if ((int)param_1[0x8b] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar18 = (double)(*(code *)PTR_floor_003a9670)(dVar18 * dVar19 + *(double *)(puVar1 + 0x1400))\n      ;\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar7 = param_1[0x8d];\n      dVar20 = *(double *)(puVar1 + 0x1400);\n      puVar3[0x8b] = uVar5;\n      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      puVar1 = PTR_ceil_003a8c20;\n      iVar7 = param_1[0xa7];\n      puVar3[0x8d] = (int)dVar18;\n      dVar19 = (double)(*(code *)puVar1)((double)iVar7 * dVar19 - dVar20);\n      puVar1 = PTR_FUN_003a8a10;\n      uVar4 = param_1[0xb5];\n      puVar3[0xa7] = (int)dVar19;\n      uVar4 = (*(code *)puVar1)(uVar4);\n      puVar3[0xb5] = uVar4;\n      iVar7 = (*(code *)PTR_SetImageExtent_003a94ac)(puVar3,param_2,param_3,param_5);\n      if (iVar7 == 0) {\n        puVar3 = (undefined4 *)(*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        return puVar3;\n      }\n    }\n    return puVar3;\n  }" if (parenthesized_expression "((param_1[6] != 0) && (param_1[7] != 0))" ( (binary_expression "(param_1[6] != 0) && (param_1[7] != 0)" (parenthesized_expression "(param_1[6] != 0)" ( (binary_expression "param_1[6] != 0" (subscript_expression "param_1[6]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(param_1[7] != 0)" ( (binary_expression "param_1[7] != 0" (subscript_expression "param_1[7]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n    puVar3 = (undefined4 *)(*(code *)PTR_AcquireCriticalMemory_003a9354)(0x33d8);\n    (*(code *)PTR_memset_003a96d4)(puVar3,0,0x33d8);\n    puVar1 = PTR_CloneImageInfo_003a919c;\n    uVar16 = param_1[0xb0];\n    uVar15 = param_1[0xb1];\n    uVar14 = param_1[0xb2];\n    uVar13 = param_1[1];\n    uVar12 = param_1[0xaf];\n    uVar11 = param_1[0xcf4];\n    uVar10 = param_1[0xcf3];\n    uVar6 = param_1[7];\n    uVar9 = param_1[6];\n    uVar4 = param_1[0xa9];\n    uVar8 = param_1[0xcd7];\n    *puVar3 = *param_1;\n    puVar3[0xb0] = uVar16;\n    puVar3[0xb1] = uVar15;\n    puVar3[0xb2] = uVar14;\n    puVar3[1] = uVar13;\n    puVar3[0xaf] = uVar12;\n    puVar3[0xcf4] = uVar11;\n    puVar3[0xcf3] = uVar10;\n    puVar3[7] = uVar6;\n    puVar3[6] = uVar9;\n    puVar3[0xcdb] = 0xabacadab;\n    puVar3[0xa9] = uVar4;\n    uVar4 = (*(code *)puVar1)(uVar8);\n    puVar1 = PTR_CloneImageProfiles_003a9348;\n    puVar3[0xcd7] = uVar4;\n    (*(code *)puVar1)(puVar3,param_1);\n    (*(code *)PTR_CloneImageProperties_003a91ac)(puVar3,param_1);\n    (*(code *)PTR_CloneImageArtifacts_003a9500)(puVar3,param_1);\n    (*(code *)PTR_GetTimerInfo_003a9668)(puVar3 + 0xbc);\n    if (param_1[0xcc] != 0) {\n      (*(code *)PTR_Ascii85Initialize_003a8d18)(puVar3);\n    }\n    puVar1 = PTR_ClonePixelChannelMap_003a8d90;\n    uVar11 = param_1[0xcd0];\n    uVar10 = param_1[0xcd1];\n    uVar9 = param_1[0xa8];\n    uVar8 = param_1[0xb3];\n    uVar4 = param_1[0xaa];\n    uVar6 = param_1[0xb4];\n    puVar3[0xab] = param_1[0xab];\n    puVar3[0xcd0] = uVar11;\n    puVar3[0xcd1] = uVar10;\n    puVar3[0xa8] = uVar9;\n    puVar3[0xb3] = uVar8;\n    puVar3[0xaa] = uVar4;\n    uVar4 = (*(code *)puVar1)(uVar6);\n    puVar1 = PTR_CopyMagickString_003a983c;\n    puVar3[0xb4] = uVar4;\n    (*(code *)puVar1)(puVar3 + 0x4d0,param_1 + 0x4d0,0x1000);\n    (*(code *)PTR_CopyMagickString_003a983c)(puVar3 + 0x8d0,param_1 + 0x8d0,0x1000);\n    (*(code *)PTR_CopyMagickString_003a983c)(puVar3 + 0xd0,param_1 + 0xd0,0x1000);\n    puVar1 = PTR_NewImageList_003a8e84;\n    uVar8 = param_1[0xca];\n    uVar6 = param_1[0xcda];\n    uVar4 = param_1[0xcd9];\n    puVar3[0xcb] = param_1[0xcb];\n    puVar3[0xca] = uVar8;\n    puVar3[0xcd5] = 1;\n    puVar3[0xcda] = uVar6;\n    puVar3[0xcd9] = uVar4;\n    uVar4 = (*(code *)puVar1)();\n    puVar3[0xcd8] = uVar4;\n    puVar1 = PTR_CloneBlobInfo_003a97e0;\n    if (param_4 == 0) {\n      uVar4 = (*(code *)PTR_ReferenceBlob_003a9294)(param_1[0xcd2]);\n      puVar3[0xcd2] = uVar4;\n    }\n    else {\n      puVar3[0xcda] = uVar4;\n      puVar3[0xcd9] = uVar4;\n      uVar4 = (*(code *)puVar1)(0);\n      puVar3[0xcd2] = uVar4;\n    }\n    puVar1 = PTR_IsEventLogging_003a97a8;\n    puVar3[0xac] = param_1[0xac];\n    uVar4 = (*(code *)puVar1)();\n    puVar1 = PTR_AcquireSemaphoreInfo_003a962c;\n    puVar3[0xcd4] = uVar4;\n    uVar4 = (*(code *)puVar1)();\n    iVar7 = param_1[10];\n    puVar3[0xcd6] = uVar4;\n    puVar1 = PTR_AcquireQuantumMemory_003a950c;\n    if (iVar7 != 0) {\n      puVar3[9] = param_1[9];\n      iVar17 = param_1[9];\n      iVar7 = (*(code *)puVar1)(iVar17 + 1,0x58);\n      puVar3[10] = iVar7;\n      if (iVar7 == 0) {\n        (*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        (*(code *)PTR_ThrowMagickException_003a8f20)\n                  (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,\n                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);\n        return (undefined4 *)0x0;\n      }\n      (*(code *)PTR_memcpy_003a9358)(iVar7,param_1[10],iVar17 * 0x58);\n    }\n    puVar1 = PTR_LAB_003a88e0;\n    if ((param_2 == 0) || (param_3 == 0)) {\n      if (param_1[0x81] != 0) {\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x81);\n      }\n      if (param_1[0x82] != 0) {\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x82);\n      }\n      uVar4 = (*(code *)PTR_FUN_003a8a84)(param_1[0xb5]);\n      puVar3[0xb5] = uVar4;\n    }\n    else {\n      iVar7 = param_1[6];\n      if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_2;\n        if (param_2 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }\n      dVar18 = (double)(int)param_1[0x8a];\n      if ((int)param_1[0x8a] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar18 = (double)(*(code *)PTR_floor_003a9670)\n                                 (dVar18 * dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1400));\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar7 = param_1[0x8c];\n      dVar20 = *(double *)(puVar1 + 0x1400);\n      puVar3[0x8a] = uVar5;\n      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      puVar2 = PTR_ceil_003a8c20;\n      iVar7 = param_1[0xa6];\n      puVar3[0x8c] = (int)dVar18;\n      dVar19 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      iVar7 = param_1[7];\n      puVar3[0xa6] = (int)dVar19;\n      if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_3;\n        if (param_3 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }\n      dVar18 = (double)(int)param_1[0x8b];\n      if ((int)param_1[0x8b] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar18 = (double)(*(code *)PTR_floor_003a9670)(dVar18 * dVar19 + *(double *)(puVar1 + 0x1400))\n      ;\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar7 = param_1[0x8d];\n      dVar20 = *(double *)(puVar1 + 0x1400);\n      puVar3[0x8b] = uVar5;\n      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      puVar1 = PTR_ceil_003a8c20;\n      iVar7 = param_1[0xa7];\n      puVar3[0x8d] = (int)dVar18;\n      dVar19 = (double)(*(code *)puVar1)((double)iVar7 * dVar19 - dVar20);\n      puVar1 = PTR_FUN_003a8a10;\n      uVar4 = param_1[0xb5];\n      puVar3[0xa7] = (int)dVar19;\n      uVar4 = (*(code *)puVar1)(uVar4);\n      puVar3[0xb5] = uVar4;\n      iVar7 = (*(code *)PTR_SetImageExtent_003a94ac)(puVar3,param_2,param_3,param_5);\n      if (iVar7 == 0) {\n        puVar3 = (undefined4 *)(*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        return puVar3;\n      }\n    }\n    return puVar3;\n  }" { (expression_statement "puVar3 = (undefined4 *)(*(code *)PTR_AcquireCriticalMemory_003a9354)(0x33d8);" (assignment_expression "puVar3 = (undefined4 *)(*(code *)PTR_AcquireCriticalMemory_003a9354)(0x33d8)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_AcquireCriticalMemory_003a9354)(0x33d8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_AcquireCriticalMemory_003a9354)(0x33d8)" (parenthesized_expression "(*(code *)PTR_AcquireCriticalMemory_003a9354)" ( (pointer_expression "*(code *)PTR_AcquireCriticalMemory_003a9354" * (cast_expression "(code *)PTR_AcquireCriticalMemory_003a9354" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x33d8)" ( number_literal ))))) ;) (expression_statement "(*(code *)PTR_memset_003a96d4)(puVar3,0,0x33d8);" (call_expression "(*(code *)PTR_memset_003a96d4)(puVar3,0,0x33d8)" (parenthesized_expression "(*(code *)PTR_memset_003a96d4)" ( (pointer_expression "*(code *)PTR_memset_003a96d4" * (cast_expression "(code *)PTR_memset_003a96d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar3,0,0x33d8)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "puVar1 = PTR_CloneImageInfo_003a919c;" (assignment_expression "puVar1 = PTR_CloneImageInfo_003a919c" identifier = identifier) ;) (expression_statement "uVar16 = param_1[0xb0];" (assignment_expression "uVar16 = param_1[0xb0]" identifier = (subscript_expression "param_1[0xb0]" identifier [ number_literal ])) ;) (expression_statement "uVar15 = param_1[0xb1];" (assignment_expression "uVar15 = param_1[0xb1]" identifier = (subscript_expression "param_1[0xb1]" identifier [ number_literal ])) ;) (expression_statement "uVar14 = param_1[0xb2];" (assignment_expression "uVar14 = param_1[0xb2]" identifier = (subscript_expression "param_1[0xb2]" identifier [ number_literal ])) ;) (expression_statement "uVar13 = param_1[1];" (assignment_expression "uVar13 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "uVar12 = param_1[0xaf];" (assignment_expression "uVar12 = param_1[0xaf]" identifier = (subscript_expression "param_1[0xaf]" identifier [ number_literal ])) ;) (expression_statement "uVar11 = param_1[0xcf4];" (assignment_expression "uVar11 = param_1[0xcf4]" identifier = (subscript_expression "param_1[0xcf4]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = param_1[0xcf3];" (assignment_expression "uVar10 = param_1[0xcf3]" identifier = (subscript_expression "param_1[0xcf3]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = param_1[7];" (assignment_expression "uVar6 = param_1[7]" identifier = (subscript_expression "param_1[7]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = param_1[6];" (assignment_expression "uVar9 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = param_1[0xa9];" (assignment_expression "uVar4 = param_1[0xa9]" identifier = (subscript_expression "param_1[0xa9]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = param_1[0xcd7];" (assignment_expression "uVar8 = param_1[0xcd7]" identifier = (subscript_expression "param_1[0xcd7]" identifier [ number_literal ])) ;) (expression_statement "*puVar3 = *param_1;" (assignment_expression "*puVar3 = *param_1" (pointer_expression "*puVar3" * identifier) = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "puVar3[0xb0] = uVar16;" (assignment_expression "puVar3[0xb0] = uVar16" (subscript_expression "puVar3[0xb0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[0xb1] = uVar15;" (assignment_expression "puVar3[0xb1] = uVar15" (subscript_expression "puVar3[0xb1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[0xb2] = uVar14;" (assignment_expression "puVar3[0xb2] = uVar14" (subscript_expression "puVar3[0xb2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[1] = uVar13;" (assignment_expression "puVar3[1] = uVar13" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[0xaf] = uVar12;" (assignment_expression "puVar3[0xaf] = uVar12" (subscript_expression "puVar3[0xaf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[0xcf4] = uVar11;" (assignment_expression "puVar3[0xcf4] = uVar11" (subscript_expression "puVar3[0xcf4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[0xcf3] = uVar10;" (assignment_expression "puVar3[0xcf3] = uVar10" (subscript_expression "puVar3[0xcf3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[7] = uVar6;" (assignment_expression "puVar3[7] = uVar6" (subscript_expression "puVar3[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[6] = uVar9;" (assignment_expression "puVar3[6] = uVar9" (subscript_expression "puVar3[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[0xcdb] = 0xabacadab;" (assignment_expression "puVar3[0xcdb] = 0xabacadab" (subscript_expression "puVar3[0xcdb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xa9] = uVar4;" (assignment_expression "puVar3[0xa9] = uVar4" (subscript_expression "puVar3[0xa9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar4 = (*(code *)puVar1)(uVar8);" (assignment_expression "uVar4 = (*(code *)puVar1)(uVar8)" identifier = (call_expression "(*(code *)puVar1)(uVar8)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar8)" ( identifier )))) ;) (expression_statement "puVar1 = PTR_CloneImageProfiles_003a9348;" (assignment_expression "puVar1 = PTR_CloneImageProfiles_003a9348" identifier = identifier) ;) (expression_statement "puVar3[0xcd7] = uVar4;" (assignment_expression "puVar3[0xcd7] = uVar4" (subscript_expression "puVar3[0xcd7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "(*(code *)puVar1)(puVar3,param_1);" (call_expression "(*(code *)puVar1)(puVar3,param_1)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar3,param_1)" ( identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_CloneImageProperties_003a91ac)(puVar3,param_1);" (call_expression "(*(code *)PTR_CloneImageProperties_003a91ac)(puVar3,param_1)" (parenthesized_expression "(*(code *)PTR_CloneImageProperties_003a91ac)" ( (pointer_expression "*(code *)PTR_CloneImageProperties_003a91ac" * (cast_expression "(code *)PTR_CloneImageProperties_003a91ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar3,param_1)" ( identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_CloneImageArtifacts_003a9500)(puVar3,param_1);" (call_expression "(*(code *)PTR_CloneImageArtifacts_003a9500)(puVar3,param_1)" (parenthesized_expression "(*(code *)PTR_CloneImageArtifacts_003a9500)" ( (pointer_expression "*(code *)PTR_CloneImageArtifacts_003a9500" * (cast_expression "(code *)PTR_CloneImageArtifacts_003a9500" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar3,param_1)" ( identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_GetTimerInfo_003a9668)(puVar3 + 0xbc);" (call_expression "(*(code *)PTR_GetTimerInfo_003a9668)(puVar3 + 0xbc)" (parenthesized_expression "(*(code *)PTR_GetTimerInfo_003a9668)" ( (pointer_expression "*(code *)PTR_GetTimerInfo_003a9668" * (cast_expression "(code *)PTR_GetTimerInfo_003a9668" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar3 + 0xbc)" ( (binary_expression "puVar3 + 0xbc" identifier + number_literal) ))) ;) (if_statement "if (param_1[0xcc] != 0) {\n      (*(code *)PTR_Ascii85Initialize_003a8d18)(puVar3);\n    }" if (parenthesized_expression "(param_1[0xcc] != 0)" ( (binary_expression "param_1[0xcc] != 0" (subscript_expression "param_1[0xcc]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      (*(code *)PTR_Ascii85Initialize_003a8d18)(puVar3);\n    }" { (expression_statement "(*(code *)PTR_Ascii85Initialize_003a8d18)(puVar3);" (call_expression "(*(code *)PTR_Ascii85Initialize_003a8d18)(puVar3)" (parenthesized_expression "(*(code *)PTR_Ascii85Initialize_003a8d18)" ( (pointer_expression "*(code *)PTR_Ascii85Initialize_003a8d18" * (cast_expression "(code *)PTR_Ascii85Initialize_003a8d18" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar3)" ( identifier ))) ;) })) (expression_statement "puVar1 = PTR_ClonePixelChannelMap_003a8d90;" (assignment_expression "puVar1 = PTR_ClonePixelChannelMap_003a8d90" identifier = identifier) ;) (expression_statement "uVar11 = param_1[0xcd0];" (assignment_expression "uVar11 = param_1[0xcd0]" identifier = (subscript_expression "param_1[0xcd0]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = param_1[0xcd1];" (assignment_expression "uVar10 = param_1[0xcd1]" identifier = (subscript_expression "param_1[0xcd1]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = param_1[0xa8];" (assignment_expression "uVar9 = param_1[0xa8]" identifier = (subscript_expression "param_1[0xa8]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = param_1[0xb3];" (assignment_expression "uVar8 = param_1[0xb3]" identifier = (subscript_expression "param_1[0xb3]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = param_1[0xaa];" (assignment_expression "uVar4 = param_1[0xaa]" identifier = (subscript_expression "param_1[0xaa]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = param_1[0xb4];" (assignment_expression "uVar6 = param_1[0xb4]" identifier = (subscript_expression "param_1[0xb4]" identifier [ number_literal ])) ;) (expression_statement "puVar3[0xab] = param_1[0xab];" (assignment_expression "puVar3[0xab] = param_1[0xab]" (subscript_expression "puVar3[0xab]" identifier [ number_literal ]) = (subscript_expression "param_1[0xab]" identifier [ number_literal ])) ;) (expression_statement "puVar3[0xcd0] = uVar11;" (assignment_expression "puVar3[0xcd0] = uVar11" (subscript_expression "puVar3[0xcd0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[0xcd1] = uVar10;" (assignment_expression "puVar3[0xcd1] = uVar10" (subscript_expression "puVar3[0xcd1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[0xa8] = uVar9;" (assignment_expression "puVar3[0xa8] = uVar9" (subscript_expression "puVar3[0xa8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[0xb3] = uVar8;" (assignment_expression "puVar3[0xb3] = uVar8" (subscript_expression "puVar3[0xb3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[0xaa] = uVar4;" (assignment_expression "puVar3[0xaa] = uVar4" (subscript_expression "puVar3[0xaa]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar4 = (*(code *)puVar1)(uVar6);" (assignment_expression "uVar4 = (*(code *)puVar1)(uVar6)" identifier = (call_expression "(*(code *)puVar1)(uVar6)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar6)" ( identifier )))) ;) (expression_statement "puVar1 = PTR_CopyMagickString_003a983c;" (assignment_expression "puVar1 = PTR_CopyMagickString_003a983c" identifier = identifier) ;) (expression_statement "puVar3[0xb4] = uVar4;" (assignment_expression "puVar3[0xb4] = uVar4" (subscript_expression "puVar3[0xb4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "(*(code *)puVar1)(puVar3 + 0x4d0,param_1 + 0x4d0,0x1000);" (call_expression "(*(code *)puVar1)(puVar3 + 0x4d0,param_1 + 0x4d0,0x1000)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar3 + 0x4d0,param_1 + 0x4d0,0x1000)" ( (binary_expression "puVar3 + 0x4d0" identifier + number_literal) , (binary_expression "param_1 + 0x4d0" identifier + number_literal) , number_literal ))) ;) (expression_statement "(*(code *)PTR_CopyMagickString_003a983c)(puVar3 + 0x8d0,param_1 + 0x8d0,0x1000);" (call_expression "(*(code *)PTR_CopyMagickString_003a983c)(puVar3 + 0x8d0,param_1 + 0x8d0,0x1000)" (parenthesized_expression "(*(code *)PTR_CopyMagickString_003a983c)" ( (pointer_expression "*(code *)PTR_CopyMagickString_003a983c" * (cast_expression "(code *)PTR_CopyMagickString_003a983c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar3 + 0x8d0,param_1 + 0x8d0,0x1000)" ( (binary_expression "puVar3 + 0x8d0" identifier + number_literal) , (binary_expression "param_1 + 0x8d0" identifier + number_literal) , number_literal ))) ;) (expression_statement "(*(code *)PTR_CopyMagickString_003a983c)(puVar3 + 0xd0,param_1 + 0xd0,0x1000);" (call_expression "(*(code *)PTR_CopyMagickString_003a983c)(puVar3 + 0xd0,param_1 + 0xd0,0x1000)" (parenthesized_expression "(*(code *)PTR_CopyMagickString_003a983c)" ( (pointer_expression "*(code *)PTR_CopyMagickString_003a983c" * (cast_expression "(code *)PTR_CopyMagickString_003a983c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar3 + 0xd0,param_1 + 0xd0,0x1000)" ( (binary_expression "puVar3 + 0xd0" identifier + number_literal) , (binary_expression "param_1 + 0xd0" identifier + number_literal) , number_literal ))) ;) (expression_statement "puVar1 = PTR_NewImageList_003a8e84;" (assignment_expression "puVar1 = PTR_NewImageList_003a8e84" identifier = identifier) ;) (expression_statement "uVar8 = param_1[0xca];" (assignment_expression "uVar8 = param_1[0xca]" identifier = (subscript_expression "param_1[0xca]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = param_1[0xcda];" (assignment_expression "uVar6 = param_1[0xcda]" identifier = (subscript_expression "param_1[0xcda]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = param_1[0xcd9];" (assignment_expression "uVar4 = param_1[0xcd9]" identifier = (subscript_expression "param_1[0xcd9]" identifier [ number_literal ])) ;) (expression_statement "puVar3[0xcb] = param_1[0xcb];" (assignment_expression "puVar3[0xcb] = param_1[0xcb]" (subscript_expression "puVar3[0xcb]" identifier [ number_literal ]) = (subscript_expression "param_1[0xcb]" identifier [ number_literal ])) ;) (expression_statement "puVar3[0xca] = uVar8;" (assignment_expression "puVar3[0xca] = uVar8" (subscript_expression "puVar3[0xca]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[0xcd5] = 1;" (assignment_expression "puVar3[0xcd5] = 1" (subscript_expression "puVar3[0xcd5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xcda] = uVar6;" (assignment_expression "puVar3[0xcda] = uVar6" (subscript_expression "puVar3[0xcda]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[0xcd9] = uVar4;" (assignment_expression "puVar3[0xcd9] = uVar4" (subscript_expression "puVar3[0xcd9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar4 = (*(code *)puVar1)();" (assignment_expression "uVar4 = (*(code *)puVar1)()" identifier = (call_expression "(*(code *)puVar1)()" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "puVar3[0xcd8] = uVar4;" (assignment_expression "puVar3[0xcd8] = uVar4" (subscript_expression "puVar3[0xcd8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1 = PTR_CloneBlobInfo_003a97e0;" (assignment_expression "puVar1 = PTR_CloneBlobInfo_003a97e0" identifier = identifier) ;) (if_statement "if (param_4 == 0) {\n      uVar4 = (*(code *)PTR_ReferenceBlob_003a9294)(param_1[0xcd2]);\n      puVar3[0xcd2] = uVar4;\n    }\n    else {\n      puVar3[0xcda] = uVar4;\n      puVar3[0xcd9] = uVar4;\n      uVar4 = (*(code *)puVar1)(0);\n      puVar3[0xcd2] = uVar4;\n    }" if (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar4 = (*(code *)PTR_ReferenceBlob_003a9294)(param_1[0xcd2]);\n      puVar3[0xcd2] = uVar4;\n    }" { (expression_statement "uVar4 = (*(code *)PTR_ReferenceBlob_003a9294)(param_1[0xcd2]);" (assignment_expression "uVar4 = (*(code *)PTR_ReferenceBlob_003a9294)(param_1[0xcd2])" identifier = (call_expression "(*(code *)PTR_ReferenceBlob_003a9294)(param_1[0xcd2])" (parenthesized_expression "(*(code *)PTR_ReferenceBlob_003a9294)" ( (pointer_expression "*(code *)PTR_ReferenceBlob_003a9294" * (cast_expression "(code *)PTR_ReferenceBlob_003a9294" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1[0xcd2])" ( (subscript_expression "param_1[0xcd2]" identifier [ number_literal ]) )))) ;) (expression_statement "puVar3[0xcd2] = uVar4;" (assignment_expression "puVar3[0xcd2] = uVar4" (subscript_expression "puVar3[0xcd2]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n      puVar3[0xcda] = uVar4;\n      puVar3[0xcd9] = uVar4;\n      uVar4 = (*(code *)puVar1)(0);\n      puVar3[0xcd2] = uVar4;\n    }" else (compound_statement "{\n      puVar3[0xcda] = uVar4;\n      puVar3[0xcd9] = uVar4;\n      uVar4 = (*(code *)puVar1)(0);\n      puVar3[0xcd2] = uVar4;\n    }" { (expression_statement "puVar3[0xcda] = uVar4;" (assignment_expression "puVar3[0xcda] = uVar4" (subscript_expression "puVar3[0xcda]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[0xcd9] = uVar4;" (assignment_expression "puVar3[0xcd9] = uVar4" (subscript_expression "puVar3[0xcd9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar4 = (*(code *)puVar1)(0);" (assignment_expression "uVar4 = (*(code *)puVar1)(0)" identifier = (call_expression "(*(code *)puVar1)(0)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0)" ( number_literal )))) ;) (expression_statement "puVar3[0xcd2] = uVar4;" (assignment_expression "puVar3[0xcd2] = uVar4" (subscript_expression "puVar3[0xcd2]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "puVar1 = PTR_IsEventLogging_003a97a8;" (assignment_expression "puVar1 = PTR_IsEventLogging_003a97a8" identifier = identifier) ;) (expression_statement "puVar3[0xac] = param_1[0xac];" (assignment_expression "puVar3[0xac] = param_1[0xac]" (subscript_expression "puVar3[0xac]" identifier [ number_literal ]) = (subscript_expression "param_1[0xac]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = (*(code *)puVar1)();" (assignment_expression "uVar4 = (*(code *)puVar1)()" identifier = (call_expression "(*(code *)puVar1)()" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "puVar1 = PTR_AcquireSemaphoreInfo_003a962c;" (assignment_expression "puVar1 = PTR_AcquireSemaphoreInfo_003a962c" identifier = identifier) ;) (expression_statement "puVar3[0xcd4] = uVar4;" (assignment_expression "puVar3[0xcd4] = uVar4" (subscript_expression "puVar3[0xcd4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar4 = (*(code *)puVar1)();" (assignment_expression "uVar4 = (*(code *)puVar1)()" identifier = (call_expression "(*(code *)puVar1)()" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "iVar7 = param_1[10];" (assignment_expression "iVar7 = param_1[10]" identifier = (subscript_expression "param_1[10]" identifier [ number_literal ])) ;) (expression_statement "puVar3[0xcd6] = uVar4;" (assignment_expression "puVar3[0xcd6] = uVar4" (subscript_expression "puVar3[0xcd6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1 = PTR_AcquireQuantumMemory_003a950c;" (assignment_expression "puVar1 = PTR_AcquireQuantumMemory_003a950c" identifier = identifier) ;) (if_statement "if (iVar7 != 0) {\n      puVar3[9] = param_1[9];\n      iVar17 = param_1[9];\n      iVar7 = (*(code *)puVar1)(iVar17 + 1,0x58);\n      puVar3[10] = iVar7;\n      if (iVar7 == 0) {\n        (*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        (*(code *)PTR_ThrowMagickException_003a8f20)\n                  (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,\n                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);\n        return (undefined4 *)0x0;\n      }\n      (*(code *)PTR_memcpy_003a9358)(iVar7,param_1[10],iVar17 * 0x58);\n    }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n      puVar3[9] = param_1[9];\n      iVar17 = param_1[9];\n      iVar7 = (*(code *)puVar1)(iVar17 + 1,0x58);\n      puVar3[10] = iVar7;\n      if (iVar7 == 0) {\n        (*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        (*(code *)PTR_ThrowMagickException_003a8f20)\n                  (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,\n                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);\n        return (undefined4 *)0x0;\n      }\n      (*(code *)PTR_memcpy_003a9358)(iVar7,param_1[10],iVar17 * 0x58);\n    }" { (expression_statement "puVar3[9] = param_1[9];" (assignment_expression "puVar3[9] = param_1[9]" (subscript_expression "puVar3[9]" identifier [ number_literal ]) = (subscript_expression "param_1[9]" identifier [ number_literal ])) ;) (expression_statement "iVar17 = param_1[9];" (assignment_expression "iVar17 = param_1[9]" identifier = (subscript_expression "param_1[9]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = (*(code *)puVar1)(iVar17 + 1,0x58);" (assignment_expression "iVar7 = (*(code *)puVar1)(iVar17 + 1,0x58)" identifier = (call_expression "(*(code *)puVar1)(iVar17 + 1,0x58)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar17 + 1,0x58)" ( (binary_expression "iVar17 + 1" identifier + number_literal) , number_literal )))) ;) (expression_statement "puVar3[10] = iVar7;" (assignment_expression "puVar3[10] = iVar7" (subscript_expression "puVar3[10]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar7 == 0) {\n        (*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        (*(code *)PTR_ThrowMagickException_003a8f20)\n                  (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,\n                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);\n        return (undefined4 *)0x0;\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        (*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        (*(code *)PTR_ThrowMagickException_003a8f20)\n                  (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,\n                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);\n        return (undefined4 *)0x0;\n      }" { (expression_statement "(*(code *)PTR_DestroyImage_003a8f4c)(puVar3);" (call_expression "(*(code *)PTR_DestroyImage_003a8f4c)(puVar3)" (parenthesized_expression "(*(code *)PTR_DestroyImage_003a8f4c)" ( (pointer_expression "*(code *)PTR_DestroyImage_003a8f4c" * (cast_expression "(code *)PTR_DestroyImage_003a8f4c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar3)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_ThrowMagickException_003a8f20)\n                  (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,\n                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);" (call_expression "(*(code *)PTR_ThrowMagickException_003a8f20)\n                  (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,\n                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0)" (parenthesized_expression "(*(code *)PTR_ThrowMagickException_003a8f20)" ( (pointer_expression "*(code *)PTR_ThrowMagickException_003a8f20" * (cast_expression "(code *)PTR_ThrowMagickException_003a8f20" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,\n                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0)" ( identifier , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5b4c" identifier + number_literal) , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x52a0" identifier + number_literal) , number_literal , number_literal , (binary_expression "PTR_LAB_003a88e0 + 0x16f8" identifier + number_literal) , (binary_expression "PTR_LAB_003a88e0 + 0x3e28" identifier + number_literal) , (binary_expression "param_1 + 0xd0" identifier + number_literal) ))) ;) (return_statement "return (undefined4 *)0x0;" return (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "(*(code *)PTR_memcpy_003a9358)(iVar7,param_1[10],iVar17 * 0x58);" (call_expression "(*(code *)PTR_memcpy_003a9358)(iVar7,param_1[10],iVar17 * 0x58)" (parenthesized_expression "(*(code *)PTR_memcpy_003a9358)" ( (pointer_expression "*(code *)PTR_memcpy_003a9358" * (cast_expression "(code *)PTR_memcpy_003a9358" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar7,param_1[10],iVar17 * 0x58)" ( identifier , (subscript_expression "param_1[10]" identifier [ number_literal ]) , (binary_expression "iVar17 * 0x58" identifier * number_literal) ))) ;) })) (expression_statement "puVar1 = PTR_LAB_003a88e0;" (assignment_expression "puVar1 = PTR_LAB_003a88e0" identifier = identifier) ;) (if_statement "if ((param_2 == 0) || (param_3 == 0)) {\n      if (param_1[0x81] != 0) {\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x81);\n      }\n      if (param_1[0x82] != 0) {\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x82);\n      }\n      uVar4 = (*(code *)PTR_FUN_003a8a84)(param_1[0xb5]);\n      puVar3[0xb5] = uVar4;\n    }\n    else {\n      iVar7 = param_1[6];\n      if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_2;\n        if (param_2 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }\n      dVar18 = (double)(int)param_1[0x8a];\n      if ((int)param_1[0x8a] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar18 = (double)(*(code *)PTR_floor_003a9670)\n                                 (dVar18 * dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1400));\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar7 = param_1[0x8c];\n      dVar20 = *(double *)(puVar1 + 0x1400);\n      puVar3[0x8a] = uVar5;\n      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      puVar2 = PTR_ceil_003a8c20;\n      iVar7 = param_1[0xa6];\n      puVar3[0x8c] = (int)dVar18;\n      dVar19 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      iVar7 = param_1[7];\n      puVar3[0xa6] = (int)dVar19;\n      if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_3;\n        if (param_3 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }\n      dVar18 = (double)(int)param_1[0x8b];\n      if ((int)param_1[0x8b] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar18 = (double)(*(code *)PTR_floor_003a9670)(dVar18 * dVar19 + *(double *)(puVar1 + 0x1400))\n      ;\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar7 = param_1[0x8d];\n      dVar20 = *(double *)(puVar1 + 0x1400);\n      puVar3[0x8b] = uVar5;\n      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      puVar1 = PTR_ceil_003a8c20;\n      iVar7 = param_1[0xa7];\n      puVar3[0x8d] = (int)dVar18;\n      dVar19 = (double)(*(code *)puVar1)((double)iVar7 * dVar19 - dVar20);\n      puVar1 = PTR_FUN_003a8a10;\n      uVar4 = param_1[0xb5];\n      puVar3[0xa7] = (int)dVar19;\n      uVar4 = (*(code *)puVar1)(uVar4);\n      puVar3[0xb5] = uVar4;\n      iVar7 = (*(code *)PTR_SetImageExtent_003a94ac)(puVar3,param_2,param_3,param_5);\n      if (iVar7 == 0) {\n        puVar3 = (undefined4 *)(*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        return puVar3;\n      }\n    }" if (parenthesized_expression "((param_2 == 0) || (param_3 == 0))" ( (binary_expression "(param_2 == 0) || (param_3 == 0)" (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) || (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) ))) )) (compound_statement "{\n      if (param_1[0x81] != 0) {\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x81);\n      }\n      if (param_1[0x82] != 0) {\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x82);\n      }\n      uVar4 = (*(code *)PTR_FUN_003a8a84)(param_1[0xb5]);\n      puVar3[0xb5] = uVar4;\n    }" { (if_statement "if (param_1[0x81] != 0) {\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x81);\n      }" if (parenthesized_expression "(param_1[0x81] != 0)" ( (binary_expression "param_1[0x81] != 0" (subscript_expression "param_1[0x81]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x81);\n      }" { (expression_statement "(*(code *)PTR_CloneString_003a9488)(puVar3 + 0x81);" (call_expression "(*(code *)PTR_CloneString_003a9488)(puVar3 + 0x81)" (parenthesized_expression "(*(code *)PTR_CloneString_003a9488)" ( (pointer_expression "*(code *)PTR_CloneString_003a9488" * (cast_expression "(code *)PTR_CloneString_003a9488" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar3 + 0x81)" ( (binary_expression "puVar3 + 0x81" identifier + number_literal) ))) ;) })) (if_statement "if (param_1[0x82] != 0) {\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x82);\n      }" if (parenthesized_expression "(param_1[0x82] != 0)" ( (binary_expression "param_1[0x82] != 0" (subscript_expression "param_1[0x82]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x82);\n      }" { (expression_statement "(*(code *)PTR_CloneString_003a9488)(puVar3 + 0x82);" (call_expression "(*(code *)PTR_CloneString_003a9488)(puVar3 + 0x82)" (parenthesized_expression "(*(code *)PTR_CloneString_003a9488)" ( (pointer_expression "*(code *)PTR_CloneString_003a9488" * (cast_expression "(code *)PTR_CloneString_003a9488" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar3 + 0x82)" ( (binary_expression "puVar3 + 0x82" identifier + number_literal) ))) ;) })) (expression_statement "uVar4 = (*(code *)PTR_FUN_003a8a84)(param_1[0xb5]);" (assignment_expression "uVar4 = (*(code *)PTR_FUN_003a8a84)(param_1[0xb5])" identifier = (call_expression "(*(code *)PTR_FUN_003a8a84)(param_1[0xb5])" (parenthesized_expression "(*(code *)PTR_FUN_003a8a84)" ( (pointer_expression "*(code *)PTR_FUN_003a8a84" * (cast_expression "(code *)PTR_FUN_003a8a84" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1[0xb5])" ( (subscript_expression "param_1[0xb5]" identifier [ number_literal ]) )))) ;) (expression_statement "puVar3[0xb5] = uVar4;" (assignment_expression "puVar3[0xb5] = uVar4" (subscript_expression "puVar3[0xb5]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n      iVar7 = param_1[6];\n      if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_2;\n        if (param_2 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }\n      dVar18 = (double)(int)param_1[0x8a];\n      if ((int)param_1[0x8a] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar18 = (double)(*(code *)PTR_floor_003a9670)\n                                 (dVar18 * dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1400));\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar7 = param_1[0x8c];\n      dVar20 = *(double *)(puVar1 + 0x1400);\n      puVar3[0x8a] = uVar5;\n      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      puVar2 = PTR_ceil_003a8c20;\n      iVar7 = param_1[0xa6];\n      puVar3[0x8c] = (int)dVar18;\n      dVar19 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      iVar7 = param_1[7];\n      puVar3[0xa6] = (int)dVar19;\n      if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_3;\n        if (param_3 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }\n      dVar18 = (double)(int)param_1[0x8b];\n      if ((int)param_1[0x8b] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar18 = (double)(*(code *)PTR_floor_003a9670)(dVar18 * dVar19 + *(double *)(puVar1 + 0x1400))\n      ;\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar7 = param_1[0x8d];\n      dVar20 = *(double *)(puVar1 + 0x1400);\n      puVar3[0x8b] = uVar5;\n      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      puVar1 = PTR_ceil_003a8c20;\n      iVar7 = param_1[0xa7];\n      puVar3[0x8d] = (int)dVar18;\n      dVar19 = (double)(*(code *)puVar1)((double)iVar7 * dVar19 - dVar20);\n      puVar1 = PTR_FUN_003a8a10;\n      uVar4 = param_1[0xb5];\n      puVar3[0xa7] = (int)dVar19;\n      uVar4 = (*(code *)puVar1)(uVar4);\n      puVar3[0xb5] = uVar4;\n      iVar7 = (*(code *)PTR_SetImageExtent_003a94ac)(puVar3,param_2,param_3,param_5);\n      if (iVar7 == 0) {\n        puVar3 = (undefined4 *)(*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        return puVar3;\n      }\n    }" else (compound_statement "{\n      iVar7 = param_1[6];\n      if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_2;\n        if (param_2 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }\n      dVar18 = (double)(int)param_1[0x8a];\n      if ((int)param_1[0x8a] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar18 = (double)(*(code *)PTR_floor_003a9670)\n                                 (dVar18 * dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1400));\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar7 = param_1[0x8c];\n      dVar20 = *(double *)(puVar1 + 0x1400);\n      puVar3[0x8a] = uVar5;\n      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      puVar2 = PTR_ceil_003a8c20;\n      iVar7 = param_1[0xa6];\n      puVar3[0x8c] = (int)dVar18;\n      dVar19 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      iVar7 = param_1[7];\n      puVar3[0xa6] = (int)dVar19;\n      if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_3;\n        if (param_3 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }\n      dVar18 = (double)(int)param_1[0x8b];\n      if ((int)param_1[0x8b] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar18 = (double)(*(code *)PTR_floor_003a9670)(dVar18 * dVar19 + *(double *)(puVar1 + 0x1400))\n      ;\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar7 = param_1[0x8d];\n      dVar20 = *(double *)(puVar1 + 0x1400);\n      puVar3[0x8b] = uVar5;\n      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      puVar1 = PTR_ceil_003a8c20;\n      iVar7 = param_1[0xa7];\n      puVar3[0x8d] = (int)dVar18;\n      dVar19 = (double)(*(code *)puVar1)((double)iVar7 * dVar19 - dVar20);\n      puVar1 = PTR_FUN_003a8a10;\n      uVar4 = param_1[0xb5];\n      puVar3[0xa7] = (int)dVar19;\n      uVar4 = (*(code *)puVar1)(uVar4);\n      puVar3[0xb5] = uVar4;\n      iVar7 = (*(code *)PTR_SetImageExtent_003a94ac)(puVar3,param_2,param_3,param_5);\n      if (iVar7 == 0) {\n        puVar3 = (undefined4 *)(*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        return puVar3;\n      }\n    }" { (expression_statement "iVar7 = param_1[6];" (assignment_expression "iVar7 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (if_statement "if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_2;\n        if (param_2 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }" { (expression_statement "dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);" (assignment_expression "dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1438)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1438)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1438" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        dVar19 = (double)param_2;\n        if (param_2 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }" else (compound_statement "{\n        dVar19 = (double)param_2;\n        if (param_2 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }" { (expression_statement "dVar19 = (double)param_2;" (assignment_expression "dVar19 = (double)param_2" identifier = (cast_expression "(double)param_2" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (param_2 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }" if (parenthesized_expression "(param_2 < 0)" ( (binary_expression "param_2 < 0" identifier < number_literal) )) (compound_statement "{\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }" { (expression_statement "dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);" (assignment_expression "dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" identifier = (binary_expression "dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" identifier + (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1418)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1418)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "dVar18 = (double)iVar7;" (assignment_expression "dVar18 = (double)iVar7" identifier = (cast_expression "(double)iVar7" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }" if (parenthesized_expression "(iVar7 < 0)" ( (binary_expression "iVar7 < 0" identifier < number_literal) )) (compound_statement "{\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }" { (expression_statement "dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);" (assignment_expression "dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" identifier = (binary_expression "dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" identifier + (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1418)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1418)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "dVar19 = dVar19 / dVar18;" (assignment_expression "dVar19 = dVar19 / dVar18" identifier = (binary_expression "dVar19 / dVar18" identifier / identifier)) ;) }))) (expression_statement "dVar18 = (double)(int)param_1[0x8a];" (assignment_expression "dVar18 = (double)(int)param_1[0x8a]" identifier = (cast_expression "(double)(int)param_1[0x8a]" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)param_1[0x8a]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[0x8a]" identifier [ number_literal ])))) ;) (if_statement "if ((int)param_1[0x8a] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }" if (parenthesized_expression "((int)param_1[0x8a] < 0)" ( (binary_expression "(int)param_1[0x8a] < 0" (cast_expression "(int)param_1[0x8a]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[0x8a]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }" { (expression_statement "dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);" (assignment_expression "dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" identifier = (binary_expression "dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" identifier + (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1418)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1418)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "dVar18 = (double)(*(code *)PTR_floor_003a9670)\n                                 (dVar18 * dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1400));" (assignment_expression "dVar18 = (double)(*(code *)PTR_floor_003a9670)\n                                 (dVar18 * dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1400))" identifier = (cast_expression "(double)(*(code *)PTR_floor_003a9670)\n                                 (dVar18 * dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1400))" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_floor_003a9670)\n                                 (dVar18 * dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1400))" (parenthesized_expression "(*(code *)PTR_floor_003a9670)" ( (pointer_expression "*(code *)PTR_floor_003a9670" * (cast_expression "(code *)PTR_floor_003a9670" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar18 * dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1400))" ( (binary_expression "dVar18 * dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1400)" (binary_expression "dVar18 * dVar19" identifier * identifier) + (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1400)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1400)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1400" identifier + number_literal) ))))) ))))) ;) (expression_statement "puVar2 = PTR_ceil_003a8c20;" (assignment_expression "puVar2 = PTR_ceil_003a8c20" identifier = identifier) ;) (if_statement "if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }" if (parenthesized_expression "(dVar18 < *(double *)(puVar1 + 0x1410))" ( (binary_expression "dVar18 < *(double *)(puVar1 + 0x1410)" identifier < (pointer_expression "*(double *)(puVar1 + 0x1410)" * (cast_expression "(double *)(puVar1 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x1410)" ( (binary_expression "puVar1 + 0x1410" identifier + number_literal) ))))) )) (compound_statement "{\n        uVar5 = (uint)dVar18;\n      }" { (expression_statement "uVar5 = (uint)dVar18;" (assignment_expression "uVar5 = (uint)dVar18" identifier = (cast_expression "(uint)dVar18" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }" else (compound_statement "{\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }" { (expression_statement "uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;" (assignment_expression "uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000" identifier = (binary_expression "(int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000" (cast_expression "(int)(dVar18 - *(double *)(puVar1 + 0x1410))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar18 - *(double *)(puVar1 + 0x1410))" ( (binary_expression "dVar18 - *(double *)(puVar1 + 0x1410)" identifier - (pointer_expression "*(double *)(puVar1 + 0x1410)" * (cast_expression "(double *)(puVar1 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x1410)" ( (binary_expression "puVar1 + 0x1410" identifier + number_literal) ))))) ))) | number_literal)) ;) }))) (expression_statement "iVar7 = param_1[0x8c];" (assignment_expression "iVar7 = param_1[0x8c]" identifier = (subscript_expression "param_1[0x8c]" identifier [ number_literal ])) ;) (expression_statement "dVar20 = *(double *)(puVar1 + 0x1400);" (assignment_expression "dVar20 = *(double *)(puVar1 + 0x1400)" identifier = (pointer_expression "*(double *)(puVar1 + 0x1400)" * (cast_expression "(double *)(puVar1 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x1400)" ( (binary_expression "puVar1 + 0x1400" identifier + number_literal) ))))) ;) (expression_statement "puVar3[0x8a] = uVar5;" (assignment_expression "puVar3[0x8a] = uVar5" (subscript_expression "puVar3[0x8a]" identifier [ number_literal ]) = identifier) ;) (expression_statement "dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);" (assignment_expression "dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20)" identifier = (cast_expression "(double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((double)iVar7 * dVar19 - dVar20)" ( (binary_expression "(double)iVar7 * dVar19 - dVar20" (binary_expression "(double)iVar7 * dVar19" (cast_expression "(double)iVar7" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) - identifier) ))))) ;) (expression_statement "puVar2 = PTR_ceil_003a8c20;" (assignment_expression "puVar2 = PTR_ceil_003a8c20" identifier = identifier) ;) (expression_statement "iVar7 = param_1[0xa6];" (assignment_expression "iVar7 = param_1[0xa6]" identifier = (subscript_expression "param_1[0xa6]" identifier [ number_literal ])) ;) (expression_statement "puVar3[0x8c] = (int)dVar18;" (assignment_expression "puVar3[0x8c] = (int)dVar18" (subscript_expression "puVar3[0x8c]" identifier [ number_literal ]) = (cast_expression "(int)dVar18" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "dVar19 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);" (assignment_expression "dVar19 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20)" identifier = (cast_expression "(double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((double)iVar7 * dVar19 - dVar20)" ( (binary_expression "(double)iVar7 * dVar19 - dVar20" (binary_expression "(double)iVar7 * dVar19" (cast_expression "(double)iVar7" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) - identifier) ))))) ;) (expression_statement "iVar7 = param_1[7];" (assignment_expression "iVar7 = param_1[7]" identifier = (subscript_expression "param_1[7]" identifier [ number_literal ])) ;) (expression_statement "puVar3[0xa6] = (int)dVar19;" (assignment_expression "puVar3[0xa6] = (int)dVar19" (subscript_expression "puVar3[0xa6]" identifier [ number_literal ]) = (cast_expression "(int)dVar19" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_3;\n        if (param_3 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }" { (expression_statement "dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);" (assignment_expression "dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1438)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1438)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1438" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        dVar19 = (double)param_3;\n        if (param_3 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }" else (compound_statement "{\n        dVar19 = (double)param_3;\n        if (param_3 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }" { (expression_statement "dVar19 = (double)param_3;" (assignment_expression "dVar19 = (double)param_3" identifier = (cast_expression "(double)param_3" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (param_3 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }" { (expression_statement "dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);" (assignment_expression "dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" identifier = (binary_expression "dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" identifier + (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1418)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1418)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "dVar18 = (double)iVar7;" (assignment_expression "dVar18 = (double)iVar7" identifier = (cast_expression "(double)iVar7" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }" if (parenthesized_expression "(iVar7 < 0)" ( (binary_expression "iVar7 < 0" identifier < number_literal) )) (compound_statement "{\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }" { (expression_statement "dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);" (assignment_expression "dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" identifier = (binary_expression "dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" identifier + (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1418)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1418)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "dVar19 = dVar19 / dVar18;" (assignment_expression "dVar19 = dVar19 / dVar18" identifier = (binary_expression "dVar19 / dVar18" identifier / identifier)) ;) }))) (expression_statement "dVar18 = (double)(int)param_1[0x8b];" (assignment_expression "dVar18 = (double)(int)param_1[0x8b]" identifier = (cast_expression "(double)(int)param_1[0x8b]" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)param_1[0x8b]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[0x8b]" identifier [ number_literal ])))) ;) (if_statement "if ((int)param_1[0x8b] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }" if (parenthesized_expression "((int)param_1[0x8b] < 0)" ( (binary_expression "(int)param_1[0x8b] < 0" (cast_expression "(int)param_1[0x8b]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[0x8b]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }" { (expression_statement "dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);" (assignment_expression "dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" identifier = (binary_expression "dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" identifier + (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1418)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1418)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "dVar18 = (double)(*(code *)PTR_floor_003a9670)(dVar18 * dVar19 + *(double *)(puVar1 + 0x1400))\n      ;" (assignment_expression "dVar18 = (double)(*(code *)PTR_floor_003a9670)(dVar18 * dVar19 + *(double *)(puVar1 + 0x1400))" identifier = (cast_expression "(double)(*(code *)PTR_floor_003a9670)(dVar18 * dVar19 + *(double *)(puVar1 + 0x1400))" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_floor_003a9670)(dVar18 * dVar19 + *(double *)(puVar1 + 0x1400))" (parenthesized_expression "(*(code *)PTR_floor_003a9670)" ( (pointer_expression "*(code *)PTR_floor_003a9670" * (cast_expression "(code *)PTR_floor_003a9670" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar18 * dVar19 + *(double *)(puVar1 + 0x1400))" ( (binary_expression "dVar18 * dVar19 + *(double *)(puVar1 + 0x1400)" (binary_expression "dVar18 * dVar19" identifier * identifier) + (pointer_expression "*(double *)(puVar1 + 0x1400)" * (cast_expression "(double *)(puVar1 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x1400)" ( (binary_expression "puVar1 + 0x1400" identifier + number_literal) ))))) ))))) ;) (expression_statement "puVar2 = PTR_ceil_003a8c20;" (assignment_expression "puVar2 = PTR_ceil_003a8c20" identifier = identifier) ;) (if_statement "if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }" if (parenthesized_expression "(dVar18 < *(double *)(puVar1 + 0x1410))" ( (binary_expression "dVar18 < *(double *)(puVar1 + 0x1410)" identifier < (pointer_expression "*(double *)(puVar1 + 0x1410)" * (cast_expression "(double *)(puVar1 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x1410)" ( (binary_expression "puVar1 + 0x1410" identifier + number_literal) ))))) )) (compound_statement "{\n        uVar5 = (uint)dVar18;\n      }" { (expression_statement "uVar5 = (uint)dVar18;" (assignment_expression "uVar5 = (uint)dVar18" identifier = (cast_expression "(uint)dVar18" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }" else (compound_statement "{\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }" { (expression_statement "uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;" (assignment_expression "uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000" identifier = (binary_expression "(int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000" (cast_expression "(int)(dVar18 - *(double *)(puVar1 + 0x1410))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar18 - *(double *)(puVar1 + 0x1410))" ( (binary_expression "dVar18 - *(double *)(puVar1 + 0x1410)" identifier - (pointer_expression "*(double *)(puVar1 + 0x1410)" * (cast_expression "(double *)(puVar1 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x1410)" ( (binary_expression "puVar1 + 0x1410" identifier + number_literal) ))))) ))) | number_literal)) ;) }))) (expression_statement "iVar7 = param_1[0x8d];" (assignment_expression "iVar7 = param_1[0x8d]" identifier = (subscript_expression "param_1[0x8d]" identifier [ number_literal ])) ;) (expression_statement "dVar20 = *(double *)(puVar1 + 0x1400);" (assignment_expression "dVar20 = *(double *)(puVar1 + 0x1400)" identifier = (pointer_expression "*(double *)(puVar1 + 0x1400)" * (cast_expression "(double *)(puVar1 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x1400)" ( (binary_expression "puVar1 + 0x1400" identifier + number_literal) ))))) ;) (expression_statement "puVar3[0x8b] = uVar5;" (assignment_expression "puVar3[0x8b] = uVar5" (subscript_expression "puVar3[0x8b]" identifier [ number_literal ]) = identifier) ;) (expression_statement "dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);" (assignment_expression "dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20)" identifier = (cast_expression "(double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((double)iVar7 * dVar19 - dVar20)" ( (binary_expression "(double)iVar7 * dVar19 - dVar20" (binary_expression "(double)iVar7 * dVar19" (cast_expression "(double)iVar7" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) - identifier) ))))) ;) (expression_statement "puVar1 = PTR_ceil_003a8c20;" (assignment_expression "puVar1 = PTR_ceil_003a8c20" identifier = identifier) ;) (expression_statement "iVar7 = param_1[0xa7];" (assignment_expression "iVar7 = param_1[0xa7]" identifier = (subscript_expression "param_1[0xa7]" identifier [ number_literal ])) ;) (expression_statement "puVar3[0x8d] = (int)dVar18;" (assignment_expression "puVar3[0x8d] = (int)dVar18" (subscript_expression "puVar3[0x8d]" identifier [ number_literal ]) = (cast_expression "(int)dVar18" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "dVar19 = (double)(*(code *)puVar1)((double)iVar7 * dVar19 - dVar20);" (assignment_expression "dVar19 = (double)(*(code *)puVar1)((double)iVar7 * dVar19 - dVar20)" identifier = (cast_expression "(double)(*(code *)puVar1)((double)iVar7 * dVar19 - dVar20)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)puVar1)((double)iVar7 * dVar19 - dVar20)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((double)iVar7 * dVar19 - dVar20)" ( (binary_expression "(double)iVar7 * dVar19 - dVar20" (binary_expression "(double)iVar7 * dVar19" (cast_expression "(double)iVar7" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) - identifier) ))))) ;) (expression_statement "puVar1 = PTR_FUN_003a8a10;" (assignment_expression "puVar1 = PTR_FUN_003a8a10" identifier = identifier) ;) (expression_statement "uVar4 = param_1[0xb5];" (assignment_expression "uVar4 = param_1[0xb5]" identifier = (subscript_expression "param_1[0xb5]" identifier [ number_literal ])) ;) (expression_statement "puVar3[0xa7] = (int)dVar19;" (assignment_expression "puVar3[0xa7] = (int)dVar19" (subscript_expression "puVar3[0xa7]" identifier [ number_literal ]) = (cast_expression "(int)dVar19" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "uVar4 = (*(code *)puVar1)(uVar4);" (assignment_expression "uVar4 = (*(code *)puVar1)(uVar4)" identifier = (call_expression "(*(code *)puVar1)(uVar4)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar4)" ( identifier )))) ;) (expression_statement "puVar3[0xb5] = uVar4;" (assignment_expression "puVar3[0xb5] = uVar4" (subscript_expression "puVar3[0xb5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar7 = (*(code *)PTR_SetImageExtent_003a94ac)(puVar3,param_2,param_3,param_5);" (assignment_expression "iVar7 = (*(code *)PTR_SetImageExtent_003a94ac)(puVar3,param_2,param_3,param_5)" identifier = (call_expression "(*(code *)PTR_SetImageExtent_003a94ac)(puVar3,param_2,param_3,param_5)" (parenthesized_expression "(*(code *)PTR_SetImageExtent_003a94ac)" ( (pointer_expression "*(code *)PTR_SetImageExtent_003a94ac" * (cast_expression "(code *)PTR_SetImageExtent_003a94ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar3,param_2,param_3,param_5)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar7 == 0) {\n        puVar3 = (undefined4 *)(*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        return puVar3;\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        puVar3 = (undefined4 *)(*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        return puVar3;\n      }" { (expression_statement "puVar3 = (undefined4 *)(*(code *)PTR_DestroyImage_003a8f4c)(puVar3);" (assignment_expression "puVar3 = (undefined4 *)(*(code *)PTR_DestroyImage_003a8f4c)(puVar3)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_DestroyImage_003a8f4c)(puVar3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_DestroyImage_003a8f4c)(puVar3)" (parenthesized_expression "(*(code *)PTR_DestroyImage_003a8f4c)" ( (pointer_expression "*(code *)PTR_DestroyImage_003a8f4c" * (cast_expression "(code *)PTR_DestroyImage_003a8f4c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar3)" ( identifier ))))) ;) (return_statement "return puVar3;" return identifier ;) })) }))) (return_statement "return puVar3;" return identifier ;) })) (expression_statement "(*(code *)PTR_ThrowMagickException_003a8f20)\n            (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x31e,\n             0x1a9,PTR_s_t_to_left_003a88e4 + -0x5ac0,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);" (call_expression "(*(code *)PTR_ThrowMagickException_003a8f20)\n            (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x31e,\n             0x1a9,PTR_s_t_to_left_003a88e4 + -0x5ac0,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0)" (parenthesized_expression "(*(code *)PTR_ThrowMagickException_003a8f20)" ( (pointer_expression "*(code *)PTR_ThrowMagickException_003a8f20" * (cast_expression "(code *)PTR_ThrowMagickException_003a8f20" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x31e,\n             0x1a9,PTR_s_t_to_left_003a88e4 + -0x5ac0,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0)" ( identifier , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5b4c" identifier + number_literal) , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x52a0" identifier + number_literal) , number_literal , number_literal , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5ac0" identifier + number_literal) , (binary_expression "PTR_LAB_003a88e0 + 0x3e28" identifier + number_literal) , (binary_expression "param_1 + 0xd0" identifier + number_literal) ))) ;) (return_statement "return (undefined4 *)0x0;" return (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })))
(translation_unit "/* WARNING: Enum "GravityType": Some values do not have unique names */\n/* WARNING: Enum "DisposeType": Some values do not have unique names */\n/* WARNING: Enum "ChannelType": Some values do not have unique names */\n/* WARNING: Enum "PixelChannel": Some values do not have unique names */\n/* WARNING: Enum "ExceptionType": Some values do not have unique names */\n\nImage * CloneImage(Image *image,size_t columns,size_t rows,MagickBooleanType detach,\n                  ExceptionInfo *exception)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  Image *pIVar3;\n  MagickBooleanType MVar4;\n  undefined4 uVar5;\n  _Image *p_Var6;\n  BlobInfo *pBVar7;\n  SemaphoreInfo *pSVar8;\n  void *pvVar9;\n  size_t sVar10;\n  _Image *p_Var11;\n  PixelInfo *pPVar12;\n  _ImageInfo *p_Var13;\n  PixelChannelMap *pPVar14;\n  size_t sVar15;\n  MagickProgressMonitor p_Var16;\n  PixelTrait PVar17;\n  ImageType IVar18;\n  ChannelType CVar19;\n  PixelTrait PVar20;\n  ColorspaceType CVar21;\n  size_t sVar22;\n  size_t sVar23;\n  size_t sVar24;\n  double dVar25;\n  int iVar26;\n  double dVar27;\n  double dVar28;\n  \n  if (image == (Image *)0x0) {\n    pIVar3 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x37b0,\n                                 PTR_s_t_to_left_003a88e4 + -0x5b4c,0x316,\n                                 PTR_s_t_to_left_003a88e4 + -0x5294);\n    return pIVar3;\n  }\n  if (image->signature != 0xabacadab) {\n    pIVar3 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n                                 PTR_s_t_to_left_003a88e4 + -0x5b4c,0x317,\n                                 PTR_s_t_to_left_003a88e4 + -0x5294);\n    return pIVar3;\n  }\n  if (image->debug != MagickFalse) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x319,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,image->filename);\n  }\n  if (exception == (ExceptionInfo *)0x0) {\n    pIVar3 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_LAB_003a88e0 + 0x1cac,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31a,\n                                 PTR_s_t_to_left_003a88e4 + -0x5294);\n    return pIVar3;\n  }\n  if (exception->signature != 0xabacadab) {\n    pIVar3 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_LAB_003a88e0 + 0x294c,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31b,\n                                 PTR_s_t_to_left_003a88e4 + -0x5294);\n    return pIVar3;\n  }\n  if ((image->columns != 0) && (image->rows != 0)) {\n    pIVar3 = (Image *)(*(code *)PTR_AcquireCriticalMemory_003a9354)(0x33d8);\n    (*(code *)PTR_memset_003a96d4)(pIVar3,0,0x33d8);\n    puVar1 = PTR_CloneImageInfo_003a919c;\n    sVar24 = image->number_channels;\n    sVar23 = image->number_meta_channels;\n    sVar22 = image->metacontent_extent;\n    CVar21 = image->colorspace;\n    PVar20 = image->alpha_trait;\n    CVar19 = image->channels;\n    PVar17 = image->mask_trait;\n    sVar10 = image->rows;\n    sVar15 = image->columns;\n    MVar4 = image->dither;\n    p_Var13 = image->image_info;\n    pIVar3->storage_class = image->storage_class;\n    pIVar3->number_channels = sVar24;\n    pIVar3->number_meta_channels = sVar23;\n    pIVar3->metacontent_extent = sVar22;\n    pIVar3->colorspace = CVar21;\n    pIVar3->alpha_trait = PVar20;\n    pIVar3->channels = CVar19;\n    pIVar3->mask_trait = PVar17;\n    pIVar3->rows = sVar10;\n    pIVar3->columns = sVar15;\n    pIVar3->signature = 0xabacadab;\n    pIVar3->dither = MVar4;\n    p_Var13 = (_ImageInfo *)(*(code *)puVar1)(p_Var13);\n    puVar1 = PTR_CloneImageProfiles_003a9348;\n    pIVar3->image_info = p_Var13;\n    (*(code *)puVar1)(pIVar3,image);\n    (*(code *)PTR_CloneImageProperties_003a91ac)(pIVar3,image);\n    (*(code *)PTR_CloneImageArtifacts_003a9500)(pIVar3,image);\n    (*(code *)PTR_GetTimerInfo_003a9668)(&pIVar3->timer);\n    if (image->ascii85 != (Ascii85Info *)0x0) {\n      (*(code *)PTR_Ascii85Initialize_003a8d18)(pIVar3);\n    }\n    puVar1 = PTR_ClonePixelChannelMap_003a8d90;\n    sVar15 = image->magick_columns;\n    sVar10 = image->magick_rows;\n    IVar18 = image->type;\n    CVar19 = image->channel_mask;\n    uVar5 = *(undefined4 *)&image->extent;\n    pPVar14 = image->channel_map;\n    *(int *)((int)&pIVar3->extent + 4) = (int)image->extent;\n    pIVar3->magick_columns = sVar15;\n    pIVar3->magick_rows = sVar10;\n    pIVar3->type = IVar18;\n    pIVar3->channel_mask = CVar19;\n    *(undefined4 *)&pIVar3->extent = uVar5;\n    pPVar14 = (PixelChannelMap *)(*(code *)puVar1)(pPVar14);\n    puVar1 = PTR_CopyMagickString_003a983c;\n    pIVar3->channel_map = pPVar14;\n    (*(code *)puVar1)(pIVar3->magick_filename,image->magick_filename,0x1000);\n    (*(code *)PTR_CopyMagickString_003a983c)(pIVar3->magick,image->magick,0x1000);\n    (*(code *)PTR_CopyMagickString_003a983c)(pIVar3->filename,image->filename,0x1000);\n    puVar1 = PTR_NewImageList_003a8e84;\n    p_Var16 = image->progress_monitor;\n    p_Var11 = image->next;\n    p_Var6 = image->previous;\n    pIVar3->client_data = image->client_data;\n    pIVar3->progress_monitor = p_Var16;\n    pIVar3->reference_count = 1;\n    pIVar3->next = p_Var11;\n    pIVar3->previous = p_Var6;\n    p_Var6 = (_Image *)(*(code *)puVar1)();\n    pIVar3->list = p_Var6;\n    puVar1 = PTR_CloneBlobInfo_003a97e0;\n    if (detach == MagickFalse) {\n      pBVar7 = (BlobInfo *)(*(code *)PTR_ReferenceBlob_003a9294)(image->blob);\n      pIVar3->blob = pBVar7;\n    }\n    else {\n      pIVar3->next = p_Var6;\n      pIVar3->previous = p_Var6;\n      pBVar7 = (BlobInfo *)(*(code *)puVar1)(0);\n      pIVar3->blob = pBVar7;\n    }\n    puVar1 = PTR_IsEventLogging_003a97a8;\n    pIVar3->ping = image->ping;\n    MVar4 = (*(code *)puVar1)();\n    puVar1 = PTR_AcquireSemaphoreInfo_003a962c;\n    pIVar3->debug = MVar4;\n    pSVar8 = (SemaphoreInfo *)(*(code *)puVar1)();\n    pPVar12 = image->colormap;\n    pIVar3->semaphore = pSVar8;\n    puVar1 = PTR_AcquireQuantumMemory_003a950c;\n    if (pPVar12 != (PixelInfo *)0x0) {\n      pIVar3->colors = image->colors;\n      sVar10 = image->colors;\n      pPVar12 = (PixelInfo *)(*(code *)puVar1)(sVar10 + 1,0x58);\n      pIVar3->colormap = pPVar12;\n      if (pPVar12 == (PixelInfo *)0x0) {\n        (*(code *)PTR_DestroyImage_003a8f4c)(pIVar3);\n        (*(code *)PTR_ThrowMagickException_003a8f20)\n                  (exception,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,\n                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,image->filename);\n        return (Image *)0x0;\n      }\n      (*(code *)PTR_memcpy_003a9358)(pPVar12,image->colormap,sVar10 * 0x58);\n    }\n    puVar1 = PTR_LAB_003a88e0;\n    if ((columns == 0) || (rows == 0)) {\n      if (image->montage != (char *)0x0) {\n        (*(code *)PTR_CloneString_003a9488)(&pIVar3->montage);\n      }\n      if (image->directory != (char *)0x0) {\n        (*(code *)PTR_CloneString_003a9488)(&pIVar3->directory);\n      }\n      pvVar9 = (void *)(*(code *)PTR_ReferencePixelCache_003a8a84)(image->cache);\n      pIVar3->cache = pvVar9;\n    }\n    else {\n      sVar10 = image->columns;\n      if (sVar10 == 0) {\n        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar27 = (double)(int)columns;\n        if ((int)columns < 0) {\n          dVar27 = dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar25 = (double)(int)sVar10;\n        if ((int)sVar10 < 0) {\n          dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar27 = dVar27 / dVar25;\n      }\n      sVar10 = (image->page).width;\n      dVar25 = (double)(int)sVar10;\n      if ((int)sVar10 < 0) {\n        dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar25 = (double)(*(code *)PTR_floor_003a9670)\n                                 (dVar25 * dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1400));\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar25 < *(double *)(puVar1 + 0x1410)) {\n        sVar10 = (size_t)dVar25;\n      }\n      else {\n        sVar10 = (int)(dVar25 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar26 = (image->page).x;\n      dVar28 = *(double *)(puVar1 + 0x1400);\n      (pIVar3->page).width = sVar10;\n      dVar25 = (double)(*(code *)puVar2)((double)iVar26 * dVar27 - dVar28);\n      puVar2 = PTR_ceil_003a8c20;\n      iVar26 = (image->tile_offset).x;\n      (pIVar3->page).x = (int)dVar25;\n      dVar27 = (double)(*(code *)puVar2)((double)iVar26 * dVar27 - dVar28);\n      sVar10 = image->rows;\n      (pIVar3->tile_offset).x = (int)dVar27;\n      if (sVar10 == 0) {\n        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar27 = (double)(int)rows;\n        if ((int)rows < 0) {\n          dVar27 = dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar25 = (double)(int)sVar10;\n        if ((int)sVar10 < 0) {\n          dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar27 = dVar27 / dVar25;\n      }\n      sVar10 = (image->page).height;\n      dVar25 = (double)(int)sVar10;\n      if ((int)sVar10 < 0) {\n        dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar25 = (double)(*(code *)PTR_floor_003a9670)(dVar25 * dVar27 + *(double *)(puVar1 + 0x1400))\n      ;\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar25 < *(double *)(puVar1 + 0x1410)) {\n        sVar10 = (size_t)dVar25;\n      }\n      else {\n        sVar10 = (int)(dVar25 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar26 = (image->page).y;\n      dVar28 = *(double *)(puVar1 + 0x1400);\n      (pIVar3->page).height = sVar10;\n      dVar25 = (double)(*(code *)puVar2)((double)iVar26 * dVar27 - dVar28);\n      puVar1 = PTR_ceil_003a8c20;\n      iVar26 = (image->tile_offset).y;\n      (pIVar3->page).y = (int)dVar25;\n      dVar27 = (double)(*(code *)puVar1)((double)iVar26 * dVar27 - dVar28);\n      puVar1 = PTR_ClonePixelCache_003a8a10;\n      pvVar9 = image->cache;\n      (pIVar3->tile_offset).y = (int)dVar27;\n      pvVar9 = (void *)(*(code *)puVar1)(pvVar9);\n      pIVar3->cache = pvVar9;\n      iVar26 = (*(code *)PTR_SetImageExtent_003a94ac)(pIVar3,columns,rows,exception);\n      if (iVar26 == 0) {\n        pIVar3 = (Image *)(*(code *)PTR_DestroyImage_003a8f4c)(pIVar3);\n        return pIVar3;\n      }\n    }\n    return pIVar3;\n  }\n  (*(code *)PTR_ThrowMagickException_003a8f20)\n            (exception,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x31e,\n             0x1a9,PTR_s_t_to_left_003a88e4 + -0x5ac0,PTR_LAB_003a88e0 + 0x3e28,image->filename);\n  return (Image *)0x0;\n}\n\n" comment comment comment comment comment (function_definition "Image * CloneImage(Image *image,size_t columns,size_t rows,MagickBooleanType detach,\n                  ExceptionInfo *exception)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  Image *pIVar3;\n  MagickBooleanType MVar4;\n  undefined4 uVar5;\n  _Image *p_Var6;\n  BlobInfo *pBVar7;\n  SemaphoreInfo *pSVar8;\n  void *pvVar9;\n  size_t sVar10;\n  _Image *p_Var11;\n  PixelInfo *pPVar12;\n  _ImageInfo *p_Var13;\n  PixelChannelMap *pPVar14;\n  size_t sVar15;\n  MagickProgressMonitor p_Var16;\n  PixelTrait PVar17;\n  ImageType IVar18;\n  ChannelType CVar19;\n  PixelTrait PVar20;\n  ColorspaceType CVar21;\n  size_t sVar22;\n  size_t sVar23;\n  size_t sVar24;\n  double dVar25;\n  int iVar26;\n  double dVar27;\n  double dVar28;\n  \n  if (image == (Image *)0x0) {\n    pIVar3 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x37b0,\n                                 PTR_s_t_to_left_003a88e4 + -0x5b4c,0x316,\n                                 PTR_s_t_to_left_003a88e4 + -0x5294);\n    return pIVar3;\n  }\n  if (image->signature != 0xabacadab) {\n    pIVar3 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n                                 PTR_s_t_to_left_003a88e4 + -0x5b4c,0x317,\n                                 PTR_s_t_to_left_003a88e4 + -0x5294);\n    return pIVar3;\n  }\n  if (image->debug != MagickFalse) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x319,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,image->filename);\n  }\n  if (exception == (ExceptionInfo *)0x0) {\n    pIVar3 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_LAB_003a88e0 + 0x1cac,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31a,\n                                 PTR_s_t_to_left_003a88e4 + -0x5294);\n    return pIVar3;\n  }\n  if (exception->signature != 0xabacadab) {\n    pIVar3 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_LAB_003a88e0 + 0x294c,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31b,\n                                 PTR_s_t_to_left_003a88e4 + -0x5294);\n    return pIVar3;\n  }\n  if ((image->columns != 0) && (image->rows != 0)) {\n    pIVar3 = (Image *)(*(code *)PTR_AcquireCriticalMemory_003a9354)(0x33d8);\n    (*(code *)PTR_memset_003a96d4)(pIVar3,0,0x33d8);\n    puVar1 = PTR_CloneImageInfo_003a919c;\n    sVar24 = image->number_channels;\n    sVar23 = image->number_meta_channels;\n    sVar22 = image->metacontent_extent;\n    CVar21 = image->colorspace;\n    PVar20 = image->alpha_trait;\n    CVar19 = image->channels;\n    PVar17 = image->mask_trait;\n    sVar10 = image->rows;\n    sVar15 = image->columns;\n    MVar4 = image->dither;\n    p_Var13 = image->image_info;\n    pIVar3->storage_class = image->storage_class;\n    pIVar3->number_channels = sVar24;\n    pIVar3->number_meta_channels = sVar23;\n    pIVar3->metacontent_extent = sVar22;\n    pIVar3->colorspace = CVar21;\n    pIVar3->alpha_trait = PVar20;\n    pIVar3->channels = CVar19;\n    pIVar3->mask_trait = PVar17;\n    pIVar3->rows = sVar10;\n    pIVar3->columns = sVar15;\n    pIVar3->signature = 0xabacadab;\n    pIVar3->dither = MVar4;\n    p_Var13 = (_ImageInfo *)(*(code *)puVar1)(p_Var13);\n    puVar1 = PTR_CloneImageProfiles_003a9348;\n    pIVar3->image_info = p_Var13;\n    (*(code *)puVar1)(pIVar3,image);\n    (*(code *)PTR_CloneImageProperties_003a91ac)(pIVar3,image);\n    (*(code *)PTR_CloneImageArtifacts_003a9500)(pIVar3,image);\n    (*(code *)PTR_GetTimerInfo_003a9668)(&pIVar3->timer);\n    if (image->ascii85 != (Ascii85Info *)0x0) {\n      (*(code *)PTR_Ascii85Initialize_003a8d18)(pIVar3);\n    }\n    puVar1 = PTR_ClonePixelChannelMap_003a8d90;\n    sVar15 = image->magick_columns;\n    sVar10 = image->magick_rows;\n    IVar18 = image->type;\n    CVar19 = image->channel_mask;\n    uVar5 = *(undefined4 *)&image->extent;\n    pPVar14 = image->channel_map;\n    *(int *)((int)&pIVar3->extent + 4) = (int)image->extent;\n    pIVar3->magick_columns = sVar15;\n    pIVar3->magick_rows = sVar10;\n    pIVar3->type = IVar18;\n    pIVar3->channel_mask = CVar19;\n    *(undefined4 *)&pIVar3->extent = uVar5;\n    pPVar14 = (PixelChannelMap *)(*(code *)puVar1)(pPVar14);\n    puVar1 = PTR_CopyMagickString_003a983c;\n    pIVar3->channel_map = pPVar14;\n    (*(code *)puVar1)(pIVar3->magick_filename,image->magick_filename,0x1000);\n    (*(code *)PTR_CopyMagickString_003a983c)(pIVar3->magick,image->magick,0x1000);\n    (*(code *)PTR_CopyMagickString_003a983c)(pIVar3->filename,image->filename,0x1000);\n    puVar1 = PTR_NewImageList_003a8e84;\n    p_Var16 = image->progress_monitor;\n    p_Var11 = image->next;\n    p_Var6 = image->previous;\n    pIVar3->client_data = image->client_data;\n    pIVar3->progress_monitor = p_Var16;\n    pIVar3->reference_count = 1;\n    pIVar3->next = p_Var11;\n    pIVar3->previous = p_Var6;\n    p_Var6 = (_Image *)(*(code *)puVar1)();\n    pIVar3->list = p_Var6;\n    puVar1 = PTR_CloneBlobInfo_003a97e0;\n    if (detach == MagickFalse) {\n      pBVar7 = (BlobInfo *)(*(code *)PTR_ReferenceBlob_003a9294)(image->blob);\n      pIVar3->blob = pBVar7;\n    }\n    else {\n      pIVar3->next = p_Var6;\n      pIVar3->previous = p_Var6;\n      pBVar7 = (BlobInfo *)(*(code *)puVar1)(0);\n      pIVar3->blob = pBVar7;\n    }\n    puVar1 = PTR_IsEventLogging_003a97a8;\n    pIVar3->ping = image->ping;\n    MVar4 = (*(code *)puVar1)();\n    puVar1 = PTR_AcquireSemaphoreInfo_003a962c;\n    pIVar3->debug = MVar4;\n    pSVar8 = (SemaphoreInfo *)(*(code *)puVar1)();\n    pPVar12 = image->colormap;\n    pIVar3->semaphore = pSVar8;\n    puVar1 = PTR_AcquireQuantumMemory_003a950c;\n    if (pPVar12 != (PixelInfo *)0x0) {\n      pIVar3->colors = image->colors;\n      sVar10 = image->colors;\n      pPVar12 = (PixelInfo *)(*(code *)puVar1)(sVar10 + 1,0x58);\n      pIVar3->colormap = pPVar12;\n      if (pPVar12 == (PixelInfo *)0x0) {\n        (*(code *)PTR_DestroyImage_003a8f4c)(pIVar3);\n        (*(code *)PTR_ThrowMagickException_003a8f20)\n                  (exception,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,\n                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,image->filename);\n        return (Image *)0x0;\n      }\n      (*(code *)PTR_memcpy_003a9358)(pPVar12,image->colormap,sVar10 * 0x58);\n    }\n    puVar1 = PTR_LAB_003a88e0;\n    if ((columns == 0) || (rows == 0)) {\n      if (image->montage != (char *)0x0) {\n        (*(code *)PTR_CloneString_003a9488)(&pIVar3->montage);\n      }\n      if (image->directory != (char *)0x0) {\n        (*(code *)PTR_CloneString_003a9488)(&pIVar3->directory);\n      }\n      pvVar9 = (void *)(*(code *)PTR_ReferencePixelCache_003a8a84)(image->cache);\n      pIVar3->cache = pvVar9;\n    }\n    else {\n      sVar10 = image->columns;\n      if (sVar10 == 0) {\n        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar27 = (double)(int)columns;\n        if ((int)columns < 0) {\n          dVar27 = dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar25 = (double)(int)sVar10;\n        if ((int)sVar10 < 0) {\n          dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar27 = dVar27 / dVar25;\n      }\n      sVar10 = (image->page).width;\n      dVar25 = (double)(int)sVar10;\n      if ((int)sVar10 < 0) {\n        dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar25 = (double)(*(code *)PTR_floor_003a9670)\n                                 (dVar25 * dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1400));\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar25 < *(double *)(puVar1 + 0x1410)) {\n        sVar10 = (size_t)dVar25;\n      }\n      else {\n        sVar10 = (int)(dVar25 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar26 = (image->page).x;\n      dVar28 = *(double *)(puVar1 + 0x1400);\n      (pIVar3->page).width = sVar10;\n      dVar25 = (double)(*(code *)puVar2)((double)iVar26 * dVar27 - dVar28);\n      puVar2 = PTR_ceil_003a8c20;\n      iVar26 = (image->tile_offset).x;\n      (pIVar3->page).x = (int)dVar25;\n      dVar27 = (double)(*(code *)puVar2)((double)iVar26 * dVar27 - dVar28);\n      sVar10 = image->rows;\n      (pIVar3->tile_offset).x = (int)dVar27;\n      if (sVar10 == 0) {\n        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar27 = (double)(int)rows;\n        if ((int)rows < 0) {\n          dVar27 = dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar25 = (double)(int)sVar10;\n        if ((int)sVar10 < 0) {\n          dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar27 = dVar27 / dVar25;\n      }\n      sVar10 = (image->page).height;\n      dVar25 = (double)(int)sVar10;\n      if ((int)sVar10 < 0) {\n        dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar25 = (double)(*(code *)PTR_floor_003a9670)(dVar25 * dVar27 + *(double *)(puVar1 + 0x1400))\n      ;\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar25 < *(double *)(puVar1 + 0x1410)) {\n        sVar10 = (size_t)dVar25;\n      }\n      else {\n        sVar10 = (int)(dVar25 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar26 = (image->page).y;\n      dVar28 = *(double *)(puVar1 + 0x1400);\n      (pIVar3->page).height = sVar10;\n      dVar25 = (double)(*(code *)puVar2)((double)iVar26 * dVar27 - dVar28);\n      puVar1 = PTR_ceil_003a8c20;\n      iVar26 = (image->tile_offset).y;\n      (pIVar3->page).y = (int)dVar25;\n      dVar27 = (double)(*(code *)puVar1)((double)iVar26 * dVar27 - dVar28);\n      puVar1 = PTR_ClonePixelCache_003a8a10;\n      pvVar9 = image->cache;\n      (pIVar3->tile_offset).y = (int)dVar27;\n      pvVar9 = (void *)(*(code *)puVar1)(pvVar9);\n      pIVar3->cache = pvVar9;\n      iVar26 = (*(code *)PTR_SetImageExtent_003a94ac)(pIVar3,columns,rows,exception);\n      if (iVar26 == 0) {\n        pIVar3 = (Image *)(*(code *)PTR_DestroyImage_003a8f4c)(pIVar3);\n        return pIVar3;\n      }\n    }\n    return pIVar3;\n  }\n  (*(code *)PTR_ThrowMagickException_003a8f20)\n            (exception,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x31e,\n             0x1a9,PTR_s_t_to_left_003a88e4 + -0x5ac0,PTR_LAB_003a88e0 + 0x3e28,image->filename);\n  return (Image *)0x0;\n}" type_identifier (pointer_declarator "* CloneImage(Image *image,size_t columns,size_t rows,MagickBooleanType detach,\n                  ExceptionInfo *exception)" * (function_declarator "CloneImage(Image *image,size_t columns,size_t rows,MagickBooleanType detach,\n                  ExceptionInfo *exception)" identifier (parameter_list "(Image *image,size_t columns,size_t rows,MagickBooleanType detach,\n                  ExceptionInfo *exception)" ( (parameter_declaration "Image *image" type_identifier (pointer_declarator "*image" * identifier)) , (parameter_declaration "size_t columns" primitive_type identifier) , (parameter_declaration "size_t rows" primitive_type identifier) , (parameter_declaration "MagickBooleanType detach" type_identifier identifier) , (parameter_declaration "ExceptionInfo *exception" type_identifier (pointer_declarator "*exception" * identifier)) )))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  Image *pIVar3;\n  MagickBooleanType MVar4;\n  undefined4 uVar5;\n  _Image *p_Var6;\n  BlobInfo *pBVar7;\n  SemaphoreInfo *pSVar8;\n  void *pvVar9;\n  size_t sVar10;\n  _Image *p_Var11;\n  PixelInfo *pPVar12;\n  _ImageInfo *p_Var13;\n  PixelChannelMap *pPVar14;\n  size_t sVar15;\n  MagickProgressMonitor p_Var16;\n  PixelTrait PVar17;\n  ImageType IVar18;\n  ChannelType CVar19;\n  PixelTrait PVar20;\n  ColorspaceType CVar21;\n  size_t sVar22;\n  size_t sVar23;\n  size_t sVar24;\n  double dVar25;\n  int iVar26;\n  double dVar27;\n  double dVar28;\n  \n  if (image == (Image *)0x0) {\n    pIVar3 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x37b0,\n                                 PTR_s_t_to_left_003a88e4 + -0x5b4c,0x316,\n                                 PTR_s_t_to_left_003a88e4 + -0x5294);\n    return pIVar3;\n  }\n  if (image->signature != 0xabacadab) {\n    pIVar3 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n                                 PTR_s_t_to_left_003a88e4 + -0x5b4c,0x317,\n                                 PTR_s_t_to_left_003a88e4 + -0x5294);\n    return pIVar3;\n  }\n  if (image->debug != MagickFalse) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x319,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,image->filename);\n  }\n  if (exception == (ExceptionInfo *)0x0) {\n    pIVar3 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_LAB_003a88e0 + 0x1cac,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31a,\n                                 PTR_s_t_to_left_003a88e4 + -0x5294);\n    return pIVar3;\n  }\n  if (exception->signature != 0xabacadab) {\n    pIVar3 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_LAB_003a88e0 + 0x294c,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31b,\n                                 PTR_s_t_to_left_003a88e4 + -0x5294);\n    return pIVar3;\n  }\n  if ((image->columns != 0) && (image->rows != 0)) {\n    pIVar3 = (Image *)(*(code *)PTR_AcquireCriticalMemory_003a9354)(0x33d8);\n    (*(code *)PTR_memset_003a96d4)(pIVar3,0,0x33d8);\n    puVar1 = PTR_CloneImageInfo_003a919c;\n    sVar24 = image->number_channels;\n    sVar23 = image->number_meta_channels;\n    sVar22 = image->metacontent_extent;\n    CVar21 = image->colorspace;\n    PVar20 = image->alpha_trait;\n    CVar19 = image->channels;\n    PVar17 = image->mask_trait;\n    sVar10 = image->rows;\n    sVar15 = image->columns;\n    MVar4 = image->dither;\n    p_Var13 = image->image_info;\n    pIVar3->storage_class = image->storage_class;\n    pIVar3->number_channels = sVar24;\n    pIVar3->number_meta_channels = sVar23;\n    pIVar3->metacontent_extent = sVar22;\n    pIVar3->colorspace = CVar21;\n    pIVar3->alpha_trait = PVar20;\n    pIVar3->channels = CVar19;\n    pIVar3->mask_trait = PVar17;\n    pIVar3->rows = sVar10;\n    pIVar3->columns = sVar15;\n    pIVar3->signature = 0xabacadab;\n    pIVar3->dither = MVar4;\n    p_Var13 = (_ImageInfo *)(*(code *)puVar1)(p_Var13);\n    puVar1 = PTR_CloneImageProfiles_003a9348;\n    pIVar3->image_info = p_Var13;\n    (*(code *)puVar1)(pIVar3,image);\n    (*(code *)PTR_CloneImageProperties_003a91ac)(pIVar3,image);\n    (*(code *)PTR_CloneImageArtifacts_003a9500)(pIVar3,image);\n    (*(code *)PTR_GetTimerInfo_003a9668)(&pIVar3->timer);\n    if (image->ascii85 != (Ascii85Info *)0x0) {\n      (*(code *)PTR_Ascii85Initialize_003a8d18)(pIVar3);\n    }\n    puVar1 = PTR_ClonePixelChannelMap_003a8d90;\n    sVar15 = image->magick_columns;\n    sVar10 = image->magick_rows;\n    IVar18 = image->type;\n    CVar19 = image->channel_mask;\n    uVar5 = *(undefined4 *)&image->extent;\n    pPVar14 = image->channel_map;\n    *(int *)((int)&pIVar3->extent + 4) = (int)image->extent;\n    pIVar3->magick_columns = sVar15;\n    pIVar3->magick_rows = sVar10;\n    pIVar3->type = IVar18;\n    pIVar3->channel_mask = CVar19;\n    *(undefined4 *)&pIVar3->extent = uVar5;\n    pPVar14 = (PixelChannelMap *)(*(code *)puVar1)(pPVar14);\n    puVar1 = PTR_CopyMagickString_003a983c;\n    pIVar3->channel_map = pPVar14;\n    (*(code *)puVar1)(pIVar3->magick_filename,image->magick_filename,0x1000);\n    (*(code *)PTR_CopyMagickString_003a983c)(pIVar3->magick,image->magick,0x1000);\n    (*(code *)PTR_CopyMagickString_003a983c)(pIVar3->filename,image->filename,0x1000);\n    puVar1 = PTR_NewImageList_003a8e84;\n    p_Var16 = image->progress_monitor;\n    p_Var11 = image->next;\n    p_Var6 = image->previous;\n    pIVar3->client_data = image->client_data;\n    pIVar3->progress_monitor = p_Var16;\n    pIVar3->reference_count = 1;\n    pIVar3->next = p_Var11;\n    pIVar3->previous = p_Var6;\n    p_Var6 = (_Image *)(*(code *)puVar1)();\n    pIVar3->list = p_Var6;\n    puVar1 = PTR_CloneBlobInfo_003a97e0;\n    if (detach == MagickFalse) {\n      pBVar7 = (BlobInfo *)(*(code *)PTR_ReferenceBlob_003a9294)(image->blob);\n      pIVar3->blob = pBVar7;\n    }\n    else {\n      pIVar3->next = p_Var6;\n      pIVar3->previous = p_Var6;\n      pBVar7 = (BlobInfo *)(*(code *)puVar1)(0);\n      pIVar3->blob = pBVar7;\n    }\n    puVar1 = PTR_IsEventLogging_003a97a8;\n    pIVar3->ping = image->ping;\n    MVar4 = (*(code *)puVar1)();\n    puVar1 = PTR_AcquireSemaphoreInfo_003a962c;\n    pIVar3->debug = MVar4;\n    pSVar8 = (SemaphoreInfo *)(*(code *)puVar1)();\n    pPVar12 = image->colormap;\n    pIVar3->semaphore = pSVar8;\n    puVar1 = PTR_AcquireQuantumMemory_003a950c;\n    if (pPVar12 != (PixelInfo *)0x0) {\n      pIVar3->colors = image->colors;\n      sVar10 = image->colors;\n      pPVar12 = (PixelInfo *)(*(code *)puVar1)(sVar10 + 1,0x58);\n      pIVar3->colormap = pPVar12;\n      if (pPVar12 == (PixelInfo *)0x0) {\n        (*(code *)PTR_DestroyImage_003a8f4c)(pIVar3);\n        (*(code *)PTR_ThrowMagickException_003a8f20)\n                  (exception,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,\n                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,image->filename);\n        return (Image *)0x0;\n      }\n      (*(code *)PTR_memcpy_003a9358)(pPVar12,image->colormap,sVar10 * 0x58);\n    }\n    puVar1 = PTR_LAB_003a88e0;\n    if ((columns == 0) || (rows == 0)) {\n      if (image->montage != (char *)0x0) {\n        (*(code *)PTR_CloneString_003a9488)(&pIVar3->montage);\n      }\n      if (image->directory != (char *)0x0) {\n        (*(code *)PTR_CloneString_003a9488)(&pIVar3->directory);\n      }\n      pvVar9 = (void *)(*(code *)PTR_ReferencePixelCache_003a8a84)(image->cache);\n      pIVar3->cache = pvVar9;\n    }\n    else {\n      sVar10 = image->columns;\n      if (sVar10 == 0) {\n        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar27 = (double)(int)columns;\n        if ((int)columns < 0) {\n          dVar27 = dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar25 = (double)(int)sVar10;\n        if ((int)sVar10 < 0) {\n          dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar27 = dVar27 / dVar25;\n      }\n      sVar10 = (image->page).width;\n      dVar25 = (double)(int)sVar10;\n      if ((int)sVar10 < 0) {\n        dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar25 = (double)(*(code *)PTR_floor_003a9670)\n                                 (dVar25 * dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1400));\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar25 < *(double *)(puVar1 + 0x1410)) {\n        sVar10 = (size_t)dVar25;\n      }\n      else {\n        sVar10 = (int)(dVar25 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar26 = (image->page).x;\n      dVar28 = *(double *)(puVar1 + 0x1400);\n      (pIVar3->page).width = sVar10;\n      dVar25 = (double)(*(code *)puVar2)((double)iVar26 * dVar27 - dVar28);\n      puVar2 = PTR_ceil_003a8c20;\n      iVar26 = (image->tile_offset).x;\n      (pIVar3->page).x = (int)dVar25;\n      dVar27 = (double)(*(code *)puVar2)((double)iVar26 * dVar27 - dVar28);\n      sVar10 = image->rows;\n      (pIVar3->tile_offset).x = (int)dVar27;\n      if (sVar10 == 0) {\n        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar27 = (double)(int)rows;\n        if ((int)rows < 0) {\n          dVar27 = dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar25 = (double)(int)sVar10;\n        if ((int)sVar10 < 0) {\n          dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar27 = dVar27 / dVar25;\n      }\n      sVar10 = (image->page).height;\n      dVar25 = (double)(int)sVar10;\n      if ((int)sVar10 < 0) {\n        dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar25 = (double)(*(code *)PTR_floor_003a9670)(dVar25 * dVar27 + *(double *)(puVar1 + 0x1400))\n      ;\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar25 < *(double *)(puVar1 + 0x1410)) {\n        sVar10 = (size_t)dVar25;\n      }\n      else {\n        sVar10 = (int)(dVar25 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar26 = (image->page).y;\n      dVar28 = *(double *)(puVar1 + 0x1400);\n      (pIVar3->page).height = sVar10;\n      dVar25 = (double)(*(code *)puVar2)((double)iVar26 * dVar27 - dVar28);\n      puVar1 = PTR_ceil_003a8c20;\n      iVar26 = (image->tile_offset).y;\n      (pIVar3->page).y = (int)dVar25;\n      dVar27 = (double)(*(code *)puVar1)((double)iVar26 * dVar27 - dVar28);\n      puVar1 = PTR_ClonePixelCache_003a8a10;\n      pvVar9 = image->cache;\n      (pIVar3->tile_offset).y = (int)dVar27;\n      pvVar9 = (void *)(*(code *)puVar1)(pvVar9);\n      pIVar3->cache = pvVar9;\n      iVar26 = (*(code *)PTR_SetImageExtent_003a94ac)(pIVar3,columns,rows,exception);\n      if (iVar26 == 0) {\n        pIVar3 = (Image *)(*(code *)PTR_DestroyImage_003a8f4c)(pIVar3);\n        return pIVar3;\n      }\n    }\n    return pIVar3;\n  }\n  (*(code *)PTR_ThrowMagickException_003a8f20)\n            (exception,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x31e,\n             0x1a9,PTR_s_t_to_left_003a88e4 + -0x5ac0,PTR_LAB_003a88e0 + 0x3e28,image->filename);\n  return (Image *)0x0;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "Image *pIVar3;" type_identifier (pointer_declarator "*pIVar3" * identifier) ;) (declaration "MagickBooleanType MVar4;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "_Image *p_Var6;" type_identifier (pointer_declarator "*p_Var6" * identifier) ;) (declaration "BlobInfo *pBVar7;" type_identifier (pointer_declarator "*pBVar7" * identifier) ;) (declaration "SemaphoreInfo *pSVar8;" type_identifier (pointer_declarator "*pSVar8" * identifier) ;) (declaration "void *pvVar9;" primitive_type (pointer_declarator "*pvVar9" * identifier) ;) (declaration "size_t sVar10;" primitive_type identifier ;) (declaration "_Image *p_Var11;" type_identifier (pointer_declarator "*p_Var11" * identifier) ;) (declaration "PixelInfo *pPVar12;" type_identifier (pointer_declarator "*pPVar12" * identifier) ;) (declaration "_ImageInfo *p_Var13;" type_identifier (pointer_declarator "*p_Var13" * identifier) ;) (declaration "PixelChannelMap *pPVar14;" type_identifier (pointer_declarator "*pPVar14" * identifier) ;) (declaration "size_t sVar15;" primitive_type identifier ;) (declaration "MagickProgressMonitor p_Var16;" type_identifier identifier ;) (declaration "PixelTrait PVar17;" type_identifier identifier ;) (declaration "ImageType IVar18;" type_identifier identifier ;) (declaration "ChannelType CVar19;" type_identifier identifier ;) (declaration "PixelTrait PVar20;" type_identifier identifier ;) (declaration "ColorspaceType CVar21;" type_identifier identifier ;) (declaration "size_t sVar22;" primitive_type identifier ;) (declaration "size_t sVar23;" primitive_type identifier ;) (declaration "size_t sVar24;" primitive_type identifier ;) (declaration "double dVar25;" primitive_type identifier ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "double dVar27;" primitive_type identifier ;) (declaration "double dVar28;" primitive_type identifier ;) (if_statement "if (image == (Image *)0x0) {\n    pIVar3 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x37b0,\n                                 PTR_s_t_to_left_003a88e4 + -0x5b4c,0x316,\n                                 PTR_s_t_to_left_003a88e4 + -0x5294);\n    return pIVar3;\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    pIVar3 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x37b0,\n                                 PTR_s_t_to_left_003a88e4 + -0x5b4c,0x316,\n                                 PTR_s_t_to_left_003a88e4 + -0x5294);\n    return pIVar3;\n  }" { (expression_statement "pIVar3 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x37b0,\n                                 PTR_s_t_to_left_003a88e4 + -0x5b4c,0x316,\n                                 PTR_s_t_to_left_003a88e4 + -0x5294);" (assignment_expression "pIVar3 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x37b0,\n                                 PTR_s_t_to_left_003a88e4 + -0x5b4c,0x316,\n                                 PTR_s_t_to_left_003a88e4 + -0x5294)" identifier = (cast_expression "(Image *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x37b0,\n                                 PTR_s_t_to_left_003a88e4 + -0x5b4c,0x316,\n                                 PTR_s_t_to_left_003a88e4 + -0x5294)" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x37b0,\n                                 PTR_s_t_to_left_003a88e4 + -0x5b4c,0x316,\n                                 PTR_s_t_to_left_003a88e4 + -0x5294)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x37b0,\n                                 PTR_s_t_to_left_003a88e4 + -0x5b4c,0x316,\n                                 PTR_s_t_to_left_003a88e4 + -0x5294)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x37b0" identifier + number_literal) , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5b4c" identifier + number_literal) , number_literal , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5294" identifier + number_literal) ))))) ;) (return_statement "return pIVar3;" return identifier ;) })) (if_statement "if (image->signature != 0xabacadab) {\n    pIVar3 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n                                 PTR_s_t_to_left_003a88e4 + -0x5b4c,0x317,\n                                 PTR_s_t_to_left_003a88e4 + -0x5294);\n    return pIVar3;\n  }" if (parenthesized_expression "(image->signature != 0xabacadab)" ( (binary_expression "image->signature != 0xabacadab" (field_expression "image->signature" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n    pIVar3 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n                                 PTR_s_t_to_left_003a88e4 + -0x5b4c,0x317,\n                                 PTR_s_t_to_left_003a88e4 + -0x5294);\n    return pIVar3;\n  }" { (expression_statement "pIVar3 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n                                 PTR_s_t_to_left_003a88e4 + -0x5b4c,0x317,\n                                 PTR_s_t_to_left_003a88e4 + -0x5294);" (assignment_expression "pIVar3 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n                                 PTR_s_t_to_left_003a88e4 + -0x5b4c,0x317,\n                                 PTR_s_t_to_left_003a88e4 + -0x5294)" identifier = (cast_expression "(Image *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n                                 PTR_s_t_to_left_003a88e4 + -0x5b4c,0x317,\n                                 PTR_s_t_to_left_003a88e4 + -0x5294)" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n                                 PTR_s_t_to_left_003a88e4 + -0x5b4c,0x317,\n                                 PTR_s_t_to_left_003a88e4 + -0x5294)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n                                 PTR_s_t_to_left_003a88e4 + -0x5b4c,0x317,\n                                 PTR_s_t_to_left_003a88e4 + -0x5294)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784" identifier + number_literal) , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5b4c" identifier + number_literal) , number_literal , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5294" identifier + number_literal) ))))) ;) (return_statement "return pIVar3;" return identifier ;) })) (if_statement "if (image->debug != MagickFalse) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x319,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,image->filename);\n  }" if (parenthesized_expression "(image->debug != MagickFalse)" ( (binary_expression "image->debug != MagickFalse" (field_expression "image->debug" identifier -> field_identifier) != identifier) )) (compound_statement "{\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x319,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,image->filename);\n  }" { (expression_statement "(*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x319,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,image->filename);" (call_expression "(*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x319,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,image->filename)" (parenthesized_expression "(*(code *)PTR_LogMagickEvent_003a91e0)" ( (pointer_expression "*(code *)PTR_LogMagickEvent_003a91e0" * (cast_expression "(code *)PTR_LogMagickEvent_003a91e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x8000,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x319,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,image->filename)" ( number_literal , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5b4c" identifier + number_literal) , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x52a0" identifier + number_literal) , number_literal , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x62ac" identifier + number_literal) , (field_expression "image->filename" identifier -> field_identifier) ))) ;) })) (if_statement "if (exception == (ExceptionInfo *)0x0) {\n    pIVar3 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_LAB_003a88e0 + 0x1cac,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31a,\n                                 PTR_s_t_to_left_003a88e4 + -0x5294);\n    return pIVar3;\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    pIVar3 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_LAB_003a88e0 + 0x1cac,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31a,\n                                 PTR_s_t_to_left_003a88e4 + -0x5294);\n    return pIVar3;\n  }" { (expression_statement "pIVar3 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_LAB_003a88e0 + 0x1cac,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31a,\n                                 PTR_s_t_to_left_003a88e4 + -0x5294);" (assignment_expression "pIVar3 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_LAB_003a88e0 + 0x1cac,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31a,\n                                 PTR_s_t_to_left_003a88e4 + -0x5294)" identifier = (cast_expression "(Image *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_LAB_003a88e0 + 0x1cac,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31a,\n                                 PTR_s_t_to_left_003a88e4 + -0x5294)" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_LAB_003a88e0 + 0x1cac,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31a,\n                                 PTR_s_t_to_left_003a88e4 + -0x5294)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_003a88e0 + 0x1cac,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31a,\n                                 PTR_s_t_to_left_003a88e4 + -0x5294)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1cac" identifier + number_literal) , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5b4c" identifier + number_literal) , number_literal , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5294" identifier + number_literal) ))))) ;) (return_statement "return pIVar3;" return identifier ;) })) (if_statement "if (exception->signature != 0xabacadab) {\n    pIVar3 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_LAB_003a88e0 + 0x294c,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31b,\n                                 PTR_s_t_to_left_003a88e4 + -0x5294);\n    return pIVar3;\n  }" if (parenthesized_expression "(exception->signature != 0xabacadab)" ( (binary_expression "exception->signature != 0xabacadab" (field_expression "exception->signature" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n    pIVar3 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_LAB_003a88e0 + 0x294c,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31b,\n                                 PTR_s_t_to_left_003a88e4 + -0x5294);\n    return pIVar3;\n  }" { (expression_statement "pIVar3 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_LAB_003a88e0 + 0x294c,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31b,\n                                 PTR_s_t_to_left_003a88e4 + -0x5294);" (assignment_expression "pIVar3 = (Image *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_LAB_003a88e0 + 0x294c,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31b,\n                                 PTR_s_t_to_left_003a88e4 + -0x5294)" identifier = (cast_expression "(Image *)(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_LAB_003a88e0 + 0x294c,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31b,\n                                 PTR_s_t_to_left_003a88e4 + -0x5294)" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                                (PTR_LAB_003a88e0 + 0x294c,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31b,\n                                 PTR_s_t_to_left_003a88e4 + -0x5294)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_003a88e0 + 0x294c,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31b,\n                                 PTR_s_t_to_left_003a88e4 + -0x5294)" ( (binary_expression "PTR_LAB_003a88e0 + 0x294c" identifier + number_literal) , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5b4c" identifier + number_literal) , number_literal , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5294" identifier + number_literal) ))))) ;) (return_statement "return pIVar3;" return identifier ;) })) (if_statement "if ((image->columns != 0) && (image->rows != 0)) {\n    pIVar3 = (Image *)(*(code *)PTR_AcquireCriticalMemory_003a9354)(0x33d8);\n    (*(code *)PTR_memset_003a96d4)(pIVar3,0,0x33d8);\n    puVar1 = PTR_CloneImageInfo_003a919c;\n    sVar24 = image->number_channels;\n    sVar23 = image->number_meta_channels;\n    sVar22 = image->metacontent_extent;\n    CVar21 = image->colorspace;\n    PVar20 = image->alpha_trait;\n    CVar19 = image->channels;\n    PVar17 = image->mask_trait;\n    sVar10 = image->rows;\n    sVar15 = image->columns;\n    MVar4 = image->dither;\n    p_Var13 = image->image_info;\n    pIVar3->storage_class = image->storage_class;\n    pIVar3->number_channels = sVar24;\n    pIVar3->number_meta_channels = sVar23;\n    pIVar3->metacontent_extent = sVar22;\n    pIVar3->colorspace = CVar21;\n    pIVar3->alpha_trait = PVar20;\n    pIVar3->channels = CVar19;\n    pIVar3->mask_trait = PVar17;\n    pIVar3->rows = sVar10;\n    pIVar3->columns = sVar15;\n    pIVar3->signature = 0xabacadab;\n    pIVar3->dither = MVar4;\n    p_Var13 = (_ImageInfo *)(*(code *)puVar1)(p_Var13);\n    puVar1 = PTR_CloneImageProfiles_003a9348;\n    pIVar3->image_info = p_Var13;\n    (*(code *)puVar1)(pIVar3,image);\n    (*(code *)PTR_CloneImageProperties_003a91ac)(pIVar3,image);\n    (*(code *)PTR_CloneImageArtifacts_003a9500)(pIVar3,image);\n    (*(code *)PTR_GetTimerInfo_003a9668)(&pIVar3->timer);\n    if (image->ascii85 != (Ascii85Info *)0x0) {\n      (*(code *)PTR_Ascii85Initialize_003a8d18)(pIVar3);\n    }\n    puVar1 = PTR_ClonePixelChannelMap_003a8d90;\n    sVar15 = image->magick_columns;\n    sVar10 = image->magick_rows;\n    IVar18 = image->type;\n    CVar19 = image->channel_mask;\n    uVar5 = *(undefined4 *)&image->extent;\n    pPVar14 = image->channel_map;\n    *(int *)((int)&pIVar3->extent + 4) = (int)image->extent;\n    pIVar3->magick_columns = sVar15;\n    pIVar3->magick_rows = sVar10;\n    pIVar3->type = IVar18;\n    pIVar3->channel_mask = CVar19;\n    *(undefined4 *)&pIVar3->extent = uVar5;\n    pPVar14 = (PixelChannelMap *)(*(code *)puVar1)(pPVar14);\n    puVar1 = PTR_CopyMagickString_003a983c;\n    pIVar3->channel_map = pPVar14;\n    (*(code *)puVar1)(pIVar3->magick_filename,image->magick_filename,0x1000);\n    (*(code *)PTR_CopyMagickString_003a983c)(pIVar3->magick,image->magick,0x1000);\n    (*(code *)PTR_CopyMagickString_003a983c)(pIVar3->filename,image->filename,0x1000);\n    puVar1 = PTR_NewImageList_003a8e84;\n    p_Var16 = image->progress_monitor;\n    p_Var11 = image->next;\n    p_Var6 = image->previous;\n    pIVar3->client_data = image->client_data;\n    pIVar3->progress_monitor = p_Var16;\n    pIVar3->reference_count = 1;\n    pIVar3->next = p_Var11;\n    pIVar3->previous = p_Var6;\n    p_Var6 = (_Image *)(*(code *)puVar1)();\n    pIVar3->list = p_Var6;\n    puVar1 = PTR_CloneBlobInfo_003a97e0;\n    if (detach == MagickFalse) {\n      pBVar7 = (BlobInfo *)(*(code *)PTR_ReferenceBlob_003a9294)(image->blob);\n      pIVar3->blob = pBVar7;\n    }\n    else {\n      pIVar3->next = p_Var6;\n      pIVar3->previous = p_Var6;\n      pBVar7 = (BlobInfo *)(*(code *)puVar1)(0);\n      pIVar3->blob = pBVar7;\n    }\n    puVar1 = PTR_IsEventLogging_003a97a8;\n    pIVar3->ping = image->ping;\n    MVar4 = (*(code *)puVar1)();\n    puVar1 = PTR_AcquireSemaphoreInfo_003a962c;\n    pIVar3->debug = MVar4;\n    pSVar8 = (SemaphoreInfo *)(*(code *)puVar1)();\n    pPVar12 = image->colormap;\n    pIVar3->semaphore = pSVar8;\n    puVar1 = PTR_AcquireQuantumMemory_003a950c;\n    if (pPVar12 != (PixelInfo *)0x0) {\n      pIVar3->colors = image->colors;\n      sVar10 = image->colors;\n      pPVar12 = (PixelInfo *)(*(code *)puVar1)(sVar10 + 1,0x58);\n      pIVar3->colormap = pPVar12;\n      if (pPVar12 == (PixelInfo *)0x0) {\n        (*(code *)PTR_DestroyImage_003a8f4c)(pIVar3);\n        (*(code *)PTR_ThrowMagickException_003a8f20)\n                  (exception,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,\n                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,image->filename);\n        return (Image *)0x0;\n      }\n      (*(code *)PTR_memcpy_003a9358)(pPVar12,image->colormap,sVar10 * 0x58);\n    }\n    puVar1 = PTR_LAB_003a88e0;\n    if ((columns == 0) || (rows == 0)) {\n      if (image->montage != (char *)0x0) {\n        (*(code *)PTR_CloneString_003a9488)(&pIVar3->montage);\n      }\n      if (image->directory != (char *)0x0) {\n        (*(code *)PTR_CloneString_003a9488)(&pIVar3->directory);\n      }\n      pvVar9 = (void *)(*(code *)PTR_ReferencePixelCache_003a8a84)(image->cache);\n      pIVar3->cache = pvVar9;\n    }\n    else {\n      sVar10 = image->columns;\n      if (sVar10 == 0) {\n        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar27 = (double)(int)columns;\n        if ((int)columns < 0) {\n          dVar27 = dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar25 = (double)(int)sVar10;\n        if ((int)sVar10 < 0) {\n          dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar27 = dVar27 / dVar25;\n      }\n      sVar10 = (image->page).width;\n      dVar25 = (double)(int)sVar10;\n      if ((int)sVar10 < 0) {\n        dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar25 = (double)(*(code *)PTR_floor_003a9670)\n                                 (dVar25 * dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1400));\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar25 < *(double *)(puVar1 + 0x1410)) {\n        sVar10 = (size_t)dVar25;\n      }\n      else {\n        sVar10 = (int)(dVar25 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar26 = (image->page).x;\n      dVar28 = *(double *)(puVar1 + 0x1400);\n      (pIVar3->page).width = sVar10;\n      dVar25 = (double)(*(code *)puVar2)((double)iVar26 * dVar27 - dVar28);\n      puVar2 = PTR_ceil_003a8c20;\n      iVar26 = (image->tile_offset).x;\n      (pIVar3->page).x = (int)dVar25;\n      dVar27 = (double)(*(code *)puVar2)((double)iVar26 * dVar27 - dVar28);\n      sVar10 = image->rows;\n      (pIVar3->tile_offset).x = (int)dVar27;\n      if (sVar10 == 0) {\n        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar27 = (double)(int)rows;\n        if ((int)rows < 0) {\n          dVar27 = dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar25 = (double)(int)sVar10;\n        if ((int)sVar10 < 0) {\n          dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar27 = dVar27 / dVar25;\n      }\n      sVar10 = (image->page).height;\n      dVar25 = (double)(int)sVar10;\n      if ((int)sVar10 < 0) {\n        dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar25 = (double)(*(code *)PTR_floor_003a9670)(dVar25 * dVar27 + *(double *)(puVar1 + 0x1400))\n      ;\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar25 < *(double *)(puVar1 + 0x1410)) {\n        sVar10 = (size_t)dVar25;\n      }\n      else {\n        sVar10 = (int)(dVar25 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar26 = (image->page).y;\n      dVar28 = *(double *)(puVar1 + 0x1400);\n      (pIVar3->page).height = sVar10;\n      dVar25 = (double)(*(code *)puVar2)((double)iVar26 * dVar27 - dVar28);\n      puVar1 = PTR_ceil_003a8c20;\n      iVar26 = (image->tile_offset).y;\n      (pIVar3->page).y = (int)dVar25;\n      dVar27 = (double)(*(code *)puVar1)((double)iVar26 * dVar27 - dVar28);\n      puVar1 = PTR_ClonePixelCache_003a8a10;\n      pvVar9 = image->cache;\n      (pIVar3->tile_offset).y = (int)dVar27;\n      pvVar9 = (void *)(*(code *)puVar1)(pvVar9);\n      pIVar3->cache = pvVar9;\n      iVar26 = (*(code *)PTR_SetImageExtent_003a94ac)(pIVar3,columns,rows,exception);\n      if (iVar26 == 0) {\n        pIVar3 = (Image *)(*(code *)PTR_DestroyImage_003a8f4c)(pIVar3);\n        return pIVar3;\n      }\n    }\n    return pIVar3;\n  }" if (parenthesized_expression "((image->columns != 0) && (image->rows != 0))" ( (binary_expression "(image->columns != 0) && (image->rows != 0)" (parenthesized_expression "(image->columns != 0)" ( (binary_expression "image->columns != 0" (field_expression "image->columns" identifier -> field_identifier) != number_literal) )) && (parenthesized_expression "(image->rows != 0)" ( (binary_expression "image->rows != 0" (field_expression "image->rows" identifier -> field_identifier) != number_literal) ))) )) (compound_statement "{\n    pIVar3 = (Image *)(*(code *)PTR_AcquireCriticalMemory_003a9354)(0x33d8);\n    (*(code *)PTR_memset_003a96d4)(pIVar3,0,0x33d8);\n    puVar1 = PTR_CloneImageInfo_003a919c;\n    sVar24 = image->number_channels;\n    sVar23 = image->number_meta_channels;\n    sVar22 = image->metacontent_extent;\n    CVar21 = image->colorspace;\n    PVar20 = image->alpha_trait;\n    CVar19 = image->channels;\n    PVar17 = image->mask_trait;\n    sVar10 = image->rows;\n    sVar15 = image->columns;\n    MVar4 = image->dither;\n    p_Var13 = image->image_info;\n    pIVar3->storage_class = image->storage_class;\n    pIVar3->number_channels = sVar24;\n    pIVar3->number_meta_channels = sVar23;\n    pIVar3->metacontent_extent = sVar22;\n    pIVar3->colorspace = CVar21;\n    pIVar3->alpha_trait = PVar20;\n    pIVar3->channels = CVar19;\n    pIVar3->mask_trait = PVar17;\n    pIVar3->rows = sVar10;\n    pIVar3->columns = sVar15;\n    pIVar3->signature = 0xabacadab;\n    pIVar3->dither = MVar4;\n    p_Var13 = (_ImageInfo *)(*(code *)puVar1)(p_Var13);\n    puVar1 = PTR_CloneImageProfiles_003a9348;\n    pIVar3->image_info = p_Var13;\n    (*(code *)puVar1)(pIVar3,image);\n    (*(code *)PTR_CloneImageProperties_003a91ac)(pIVar3,image);\n    (*(code *)PTR_CloneImageArtifacts_003a9500)(pIVar3,image);\n    (*(code *)PTR_GetTimerInfo_003a9668)(&pIVar3->timer);\n    if (image->ascii85 != (Ascii85Info *)0x0) {\n      (*(code *)PTR_Ascii85Initialize_003a8d18)(pIVar3);\n    }\n    puVar1 = PTR_ClonePixelChannelMap_003a8d90;\n    sVar15 = image->magick_columns;\n    sVar10 = image->magick_rows;\n    IVar18 = image->type;\n    CVar19 = image->channel_mask;\n    uVar5 = *(undefined4 *)&image->extent;\n    pPVar14 = image->channel_map;\n    *(int *)((int)&pIVar3->extent + 4) = (int)image->extent;\n    pIVar3->magick_columns = sVar15;\n    pIVar3->magick_rows = sVar10;\n    pIVar3->type = IVar18;\n    pIVar3->channel_mask = CVar19;\n    *(undefined4 *)&pIVar3->extent = uVar5;\n    pPVar14 = (PixelChannelMap *)(*(code *)puVar1)(pPVar14);\n    puVar1 = PTR_CopyMagickString_003a983c;\n    pIVar3->channel_map = pPVar14;\n    (*(code *)puVar1)(pIVar3->magick_filename,image->magick_filename,0x1000);\n    (*(code *)PTR_CopyMagickString_003a983c)(pIVar3->magick,image->magick,0x1000);\n    (*(code *)PTR_CopyMagickString_003a983c)(pIVar3->filename,image->filename,0x1000);\n    puVar1 = PTR_NewImageList_003a8e84;\n    p_Var16 = image->progress_monitor;\n    p_Var11 = image->next;\n    p_Var6 = image->previous;\n    pIVar3->client_data = image->client_data;\n    pIVar3->progress_monitor = p_Var16;\n    pIVar3->reference_count = 1;\n    pIVar3->next = p_Var11;\n    pIVar3->previous = p_Var6;\n    p_Var6 = (_Image *)(*(code *)puVar1)();\n    pIVar3->list = p_Var6;\n    puVar1 = PTR_CloneBlobInfo_003a97e0;\n    if (detach == MagickFalse) {\n      pBVar7 = (BlobInfo *)(*(code *)PTR_ReferenceBlob_003a9294)(image->blob);\n      pIVar3->blob = pBVar7;\n    }\n    else {\n      pIVar3->next = p_Var6;\n      pIVar3->previous = p_Var6;\n      pBVar7 = (BlobInfo *)(*(code *)puVar1)(0);\n      pIVar3->blob = pBVar7;\n    }\n    puVar1 = PTR_IsEventLogging_003a97a8;\n    pIVar3->ping = image->ping;\n    MVar4 = (*(code *)puVar1)();\n    puVar1 = PTR_AcquireSemaphoreInfo_003a962c;\n    pIVar3->debug = MVar4;\n    pSVar8 = (SemaphoreInfo *)(*(code *)puVar1)();\n    pPVar12 = image->colormap;\n    pIVar3->semaphore = pSVar8;\n    puVar1 = PTR_AcquireQuantumMemory_003a950c;\n    if (pPVar12 != (PixelInfo *)0x0) {\n      pIVar3->colors = image->colors;\n      sVar10 = image->colors;\n      pPVar12 = (PixelInfo *)(*(code *)puVar1)(sVar10 + 1,0x58);\n      pIVar3->colormap = pPVar12;\n      if (pPVar12 == (PixelInfo *)0x0) {\n        (*(code *)PTR_DestroyImage_003a8f4c)(pIVar3);\n        (*(code *)PTR_ThrowMagickException_003a8f20)\n                  (exception,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,\n                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,image->filename);\n        return (Image *)0x0;\n      }\n      (*(code *)PTR_memcpy_003a9358)(pPVar12,image->colormap,sVar10 * 0x58);\n    }\n    puVar1 = PTR_LAB_003a88e0;\n    if ((columns == 0) || (rows == 0)) {\n      if (image->montage != (char *)0x0) {\n        (*(code *)PTR_CloneString_003a9488)(&pIVar3->montage);\n      }\n      if (image->directory != (char *)0x0) {\n        (*(code *)PTR_CloneString_003a9488)(&pIVar3->directory);\n      }\n      pvVar9 = (void *)(*(code *)PTR_ReferencePixelCache_003a8a84)(image->cache);\n      pIVar3->cache = pvVar9;\n    }\n    else {\n      sVar10 = image->columns;\n      if (sVar10 == 0) {\n        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar27 = (double)(int)columns;\n        if ((int)columns < 0) {\n          dVar27 = dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar25 = (double)(int)sVar10;\n        if ((int)sVar10 < 0) {\n          dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar27 = dVar27 / dVar25;\n      }\n      sVar10 = (image->page).width;\n      dVar25 = (double)(int)sVar10;\n      if ((int)sVar10 < 0) {\n        dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar25 = (double)(*(code *)PTR_floor_003a9670)\n                                 (dVar25 * dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1400));\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar25 < *(double *)(puVar1 + 0x1410)) {\n        sVar10 = (size_t)dVar25;\n      }\n      else {\n        sVar10 = (int)(dVar25 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar26 = (image->page).x;\n      dVar28 = *(double *)(puVar1 + 0x1400);\n      (pIVar3->page).width = sVar10;\n      dVar25 = (double)(*(code *)puVar2)((double)iVar26 * dVar27 - dVar28);\n      puVar2 = PTR_ceil_003a8c20;\n      iVar26 = (image->tile_offset).x;\n      (pIVar3->page).x = (int)dVar25;\n      dVar27 = (double)(*(code *)puVar2)((double)iVar26 * dVar27 - dVar28);\n      sVar10 = image->rows;\n      (pIVar3->tile_offset).x = (int)dVar27;\n      if (sVar10 == 0) {\n        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar27 = (double)(int)rows;\n        if ((int)rows < 0) {\n          dVar27 = dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar25 = (double)(int)sVar10;\n        if ((int)sVar10 < 0) {\n          dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar27 = dVar27 / dVar25;\n      }\n      sVar10 = (image->page).height;\n      dVar25 = (double)(int)sVar10;\n      if ((int)sVar10 < 0) {\n        dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar25 = (double)(*(code *)PTR_floor_003a9670)(dVar25 * dVar27 + *(double *)(puVar1 + 0x1400))\n      ;\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar25 < *(double *)(puVar1 + 0x1410)) {\n        sVar10 = (size_t)dVar25;\n      }\n      else {\n        sVar10 = (int)(dVar25 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar26 = (image->page).y;\n      dVar28 = *(double *)(puVar1 + 0x1400);\n      (pIVar3->page).height = sVar10;\n      dVar25 = (double)(*(code *)puVar2)((double)iVar26 * dVar27 - dVar28);\n      puVar1 = PTR_ceil_003a8c20;\n      iVar26 = (image->tile_offset).y;\n      (pIVar3->page).y = (int)dVar25;\n      dVar27 = (double)(*(code *)puVar1)((double)iVar26 * dVar27 - dVar28);\n      puVar1 = PTR_ClonePixelCache_003a8a10;\n      pvVar9 = image->cache;\n      (pIVar3->tile_offset).y = (int)dVar27;\n      pvVar9 = (void *)(*(code *)puVar1)(pvVar9);\n      pIVar3->cache = pvVar9;\n      iVar26 = (*(code *)PTR_SetImageExtent_003a94ac)(pIVar3,columns,rows,exception);\n      if (iVar26 == 0) {\n        pIVar3 = (Image *)(*(code *)PTR_DestroyImage_003a8f4c)(pIVar3);\n        return pIVar3;\n      }\n    }\n    return pIVar3;\n  }" { (expression_statement "pIVar3 = (Image *)(*(code *)PTR_AcquireCriticalMemory_003a9354)(0x33d8);" (assignment_expression "pIVar3 = (Image *)(*(code *)PTR_AcquireCriticalMemory_003a9354)(0x33d8)" identifier = (cast_expression "(Image *)(*(code *)PTR_AcquireCriticalMemory_003a9354)(0x33d8)" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_AcquireCriticalMemory_003a9354)(0x33d8)" (parenthesized_expression "(*(code *)PTR_AcquireCriticalMemory_003a9354)" ( (pointer_expression "*(code *)PTR_AcquireCriticalMemory_003a9354" * (cast_expression "(code *)PTR_AcquireCriticalMemory_003a9354" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x33d8)" ( number_literal ))))) ;) (expression_statement "(*(code *)PTR_memset_003a96d4)(pIVar3,0,0x33d8);" (call_expression "(*(code *)PTR_memset_003a96d4)(pIVar3,0,0x33d8)" (parenthesized_expression "(*(code *)PTR_memset_003a96d4)" ( (pointer_expression "*(code *)PTR_memset_003a96d4" * (cast_expression "(code *)PTR_memset_003a96d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar3,0,0x33d8)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "puVar1 = PTR_CloneImageInfo_003a919c;" (assignment_expression "puVar1 = PTR_CloneImageInfo_003a919c" identifier = identifier) ;) (expression_statement "sVar24 = image->number_channels;" (assignment_expression "sVar24 = image->number_channels" identifier = (field_expression "image->number_channels" identifier -> field_identifier)) ;) (expression_statement "sVar23 = image->number_meta_channels;" (assignment_expression "sVar23 = image->number_meta_channels" identifier = (field_expression "image->number_meta_channels" identifier -> field_identifier)) ;) (expression_statement "sVar22 = image->metacontent_extent;" (assignment_expression "sVar22 = image->metacontent_extent" identifier = (field_expression "image->metacontent_extent" identifier -> field_identifier)) ;) (expression_statement "CVar21 = image->colorspace;" (assignment_expression "CVar21 = image->colorspace" identifier = (field_expression "image->colorspace" identifier -> field_identifier)) ;) (expression_statement "PVar20 = image->alpha_trait;" (assignment_expression "PVar20 = image->alpha_trait" identifier = (field_expression "image->alpha_trait" identifier -> field_identifier)) ;) (expression_statement "CVar19 = image->channels;" (assignment_expression "CVar19 = image->channels" identifier = (field_expression "image->channels" identifier -> field_identifier)) ;) (expression_statement "PVar17 = image->mask_trait;" (assignment_expression "PVar17 = image->mask_trait" identifier = (field_expression "image->mask_trait" identifier -> field_identifier)) ;) (expression_statement "sVar10 = image->rows;" (assignment_expression "sVar10 = image->rows" identifier = (field_expression "image->rows" identifier -> field_identifier)) ;) (expression_statement "sVar15 = image->columns;" (assignment_expression "sVar15 = image->columns" identifier = (field_expression "image->columns" identifier -> field_identifier)) ;) (expression_statement "MVar4 = image->dither;" (assignment_expression "MVar4 = image->dither" identifier = (field_expression "image->dither" identifier -> field_identifier)) ;) (expression_statement "p_Var13 = image->image_info;" (assignment_expression "p_Var13 = image->image_info" identifier = (field_expression "image->image_info" identifier -> field_identifier)) ;) (expression_statement "pIVar3->storage_class = image->storage_class;" (assignment_expression "pIVar3->storage_class = image->storage_class" (field_expression "pIVar3->storage_class" identifier -> field_identifier) = (field_expression "image->storage_class" identifier -> field_identifier)) ;) (expression_statement "pIVar3->number_channels = sVar24;" (assignment_expression "pIVar3->number_channels = sVar24" (field_expression "pIVar3->number_channels" identifier -> field_identifier) = identifier) ;) (expression_statement "pIVar3->number_meta_channels = sVar23;" (assignment_expression "pIVar3->number_meta_channels = sVar23" (field_expression "pIVar3->number_meta_channels" identifier -> field_identifier) = identifier) ;) (expression_statement "pIVar3->metacontent_extent = sVar22;" (assignment_expression "pIVar3->metacontent_extent = sVar22" (field_expression "pIVar3->metacontent_extent" identifier -> field_identifier) = identifier) ;) (expression_statement "pIVar3->colorspace = CVar21;" (assignment_expression "pIVar3->colorspace = CVar21" (field_expression "pIVar3->colorspace" identifier -> field_identifier) = identifier) ;) (expression_statement "pIVar3->alpha_trait = PVar20;" (assignment_expression "pIVar3->alpha_trait = PVar20" (field_expression "pIVar3->alpha_trait" identifier -> field_identifier) = identifier) ;) (expression_statement "pIVar3->channels = CVar19;" (assignment_expression "pIVar3->channels = CVar19" (field_expression "pIVar3->channels" identifier -> field_identifier) = identifier) ;) (expression_statement "pIVar3->mask_trait = PVar17;" (assignment_expression "pIVar3->mask_trait = PVar17" (field_expression "pIVar3->mask_trait" identifier -> field_identifier) = identifier) ;) (expression_statement "pIVar3->rows = sVar10;" (assignment_expression "pIVar3->rows = sVar10" (field_expression "pIVar3->rows" identifier -> field_identifier) = identifier) ;) (expression_statement "pIVar3->columns = sVar15;" (assignment_expression "pIVar3->columns = sVar15" (field_expression "pIVar3->columns" identifier -> field_identifier) = identifier) ;) (expression_statement "pIVar3->signature = 0xabacadab;" (assignment_expression "pIVar3->signature = 0xabacadab" (field_expression "pIVar3->signature" identifier -> field_identifier) = number_literal) ;) (expression_statement "pIVar3->dither = MVar4;" (assignment_expression "pIVar3->dither = MVar4" (field_expression "pIVar3->dither" identifier -> field_identifier) = identifier) ;) (expression_statement "p_Var13 = (_ImageInfo *)(*(code *)puVar1)(p_Var13);" (assignment_expression "p_Var13 = (_ImageInfo *)(*(code *)puVar1)(p_Var13)" identifier = (cast_expression "(_ImageInfo *)(*(code *)puVar1)(p_Var13)" ( (type_descriptor "_ImageInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar1)(p_Var13)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(p_Var13)" ( identifier ))))) ;) (expression_statement "puVar1 = PTR_CloneImageProfiles_003a9348;" (assignment_expression "puVar1 = PTR_CloneImageProfiles_003a9348" identifier = identifier) ;) (expression_statement "pIVar3->image_info = p_Var13;" (assignment_expression "pIVar3->image_info = p_Var13" (field_expression "pIVar3->image_info" identifier -> field_identifier) = identifier) ;) (expression_statement "(*(code *)puVar1)(pIVar3,image);" (call_expression "(*(code *)puVar1)(pIVar3,image)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar3,image)" ( identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_CloneImageProperties_003a91ac)(pIVar3,image);" (call_expression "(*(code *)PTR_CloneImageProperties_003a91ac)(pIVar3,image)" (parenthesized_expression "(*(code *)PTR_CloneImageProperties_003a91ac)" ( (pointer_expression "*(code *)PTR_CloneImageProperties_003a91ac" * (cast_expression "(code *)PTR_CloneImageProperties_003a91ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar3,image)" ( identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_CloneImageArtifacts_003a9500)(pIVar3,image);" (call_expression "(*(code *)PTR_CloneImageArtifacts_003a9500)(pIVar3,image)" (parenthesized_expression "(*(code *)PTR_CloneImageArtifacts_003a9500)" ( (pointer_expression "*(code *)PTR_CloneImageArtifacts_003a9500" * (cast_expression "(code *)PTR_CloneImageArtifacts_003a9500" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar3,image)" ( identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_GetTimerInfo_003a9668)(&pIVar3->timer);" (call_expression "(*(code *)PTR_GetTimerInfo_003a9668)(&pIVar3->timer)" (parenthesized_expression "(*(code *)PTR_GetTimerInfo_003a9668)" ( (pointer_expression "*(code *)PTR_GetTimerInfo_003a9668" * (cast_expression "(code *)PTR_GetTimerInfo_003a9668" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&pIVar3->timer)" ( (pointer_expression "&pIVar3->timer" & (field_expression "pIVar3->timer" identifier -> field_identifier)) ))) ;) (if_statement "if (image->ascii85 != (Ascii85Info *)0x0) {\n      (*(code *)PTR_Ascii85Initialize_003a8d18)(pIVar3);\n    }" if (parenthesized_expression "(image->ascii85 != (Ascii85Info *)0x0)" ( (binary_expression "image->ascii85 != (Ascii85Info *)0x0" (field_expression "image->ascii85" identifier -> field_identifier) != (cast_expression "(Ascii85Info *)0x0" ( (type_descriptor "Ascii85Info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (*(code *)PTR_Ascii85Initialize_003a8d18)(pIVar3);\n    }" { (expression_statement "(*(code *)PTR_Ascii85Initialize_003a8d18)(pIVar3);" (call_expression "(*(code *)PTR_Ascii85Initialize_003a8d18)(pIVar3)" (parenthesized_expression "(*(code *)PTR_Ascii85Initialize_003a8d18)" ( (pointer_expression "*(code *)PTR_Ascii85Initialize_003a8d18" * (cast_expression "(code *)PTR_Ascii85Initialize_003a8d18" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar3)" ( identifier ))) ;) })) (expression_statement "puVar1 = PTR_ClonePixelChannelMap_003a8d90;" (assignment_expression "puVar1 = PTR_ClonePixelChannelMap_003a8d90" identifier = identifier) ;) (expression_statement "sVar15 = image->magick_columns;" (assignment_expression "sVar15 = image->magick_columns" identifier = (field_expression "image->magick_columns" identifier -> field_identifier)) ;) (expression_statement "sVar10 = image->magick_rows;" (assignment_expression "sVar10 = image->magick_rows" identifier = (field_expression "image->magick_rows" identifier -> field_identifier)) ;) (expression_statement "IVar18 = image->type;" (assignment_expression "IVar18 = image->type" identifier = (field_expression "image->type" identifier -> field_identifier)) ;) (expression_statement "CVar19 = image->channel_mask;" (assignment_expression "CVar19 = image->channel_mask" identifier = (field_expression "image->channel_mask" identifier -> field_identifier)) ;) (expression_statement "uVar5 = *(undefined4 *)&image->extent;" (assignment_expression "uVar5 = *(undefined4 *)&image->extent" identifier = (pointer_expression "*(undefined4 *)&image->extent" * (cast_expression "(undefined4 *)&image->extent" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&image->extent" & (field_expression "image->extent" identifier -> field_identifier))))) ;) (expression_statement "pPVar14 = image->channel_map;" (assignment_expression "pPVar14 = image->channel_map" identifier = (field_expression "image->channel_map" identifier -> field_identifier)) ;) (expression_statement "*(int *)((int)&pIVar3->extent + 4) = (int)image->extent;" (assignment_expression "*(int *)((int)&pIVar3->extent + 4) = (int)image->extent" (pointer_expression "*(int *)((int)&pIVar3->extent + 4)" * (cast_expression "(int *)((int)&pIVar3->extent + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pIVar3->extent + 4)" ( (binary_expression "(int)&pIVar3->extent + 4" (cast_expression "(int)&pIVar3->extent" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pIVar3->extent" & (field_expression "pIVar3->extent" identifier -> field_identifier))) + number_literal) )))) = (cast_expression "(int)image->extent" ( (type_descriptor "int" primitive_type) ) (field_expression "image->extent" identifier -> field_identifier))) ;) (expression_statement "pIVar3->magick_columns = sVar15;" (assignment_expression "pIVar3->magick_columns = sVar15" (field_expression "pIVar3->magick_columns" identifier -> field_identifier) = identifier) ;) (expression_statement "pIVar3->magick_rows = sVar10;" (assignment_expression "pIVar3->magick_rows = sVar10" (field_expression "pIVar3->magick_rows" identifier -> field_identifier) = identifier) ;) (expression_statement "pIVar3->type = IVar18;" (assignment_expression "pIVar3->type = IVar18" (field_expression "pIVar3->type" identifier -> field_identifier) = identifier) ;) (expression_statement "pIVar3->channel_mask = CVar19;" (assignment_expression "pIVar3->channel_mask = CVar19" (field_expression "pIVar3->channel_mask" identifier -> field_identifier) = identifier) ;) (expression_statement "*(undefined4 *)&pIVar3->extent = uVar5;" (assignment_expression "*(undefined4 *)&pIVar3->extent = uVar5" (pointer_expression "*(undefined4 *)&pIVar3->extent" * (cast_expression "(undefined4 *)&pIVar3->extent" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pIVar3->extent" & (field_expression "pIVar3->extent" identifier -> field_identifier)))) = identifier) ;) (expression_statement "pPVar14 = (PixelChannelMap *)(*(code *)puVar1)(pPVar14);" (assignment_expression "pPVar14 = (PixelChannelMap *)(*(code *)puVar1)(pPVar14)" identifier = (cast_expression "(PixelChannelMap *)(*(code *)puVar1)(pPVar14)" ( (type_descriptor "PixelChannelMap *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar1)(pPVar14)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pPVar14)" ( identifier ))))) ;) (expression_statement "puVar1 = PTR_CopyMagickString_003a983c;" (assignment_expression "puVar1 = PTR_CopyMagickString_003a983c" identifier = identifier) ;) (expression_statement "pIVar3->channel_map = pPVar14;" (assignment_expression "pIVar3->channel_map = pPVar14" (field_expression "pIVar3->channel_map" identifier -> field_identifier) = identifier) ;) (expression_statement "(*(code *)puVar1)(pIVar3->magick_filename,image->magick_filename,0x1000);" (call_expression "(*(code *)puVar1)(pIVar3->magick_filename,image->magick_filename,0x1000)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar3->magick_filename,image->magick_filename,0x1000)" ( (field_expression "pIVar3->magick_filename" identifier -> field_identifier) , (field_expression "image->magick_filename" identifier -> field_identifier) , number_literal ))) ;) (expression_statement "(*(code *)PTR_CopyMagickString_003a983c)(pIVar3->magick,image->magick,0x1000);" (call_expression "(*(code *)PTR_CopyMagickString_003a983c)(pIVar3->magick,image->magick,0x1000)" (parenthesized_expression "(*(code *)PTR_CopyMagickString_003a983c)" ( (pointer_expression "*(code *)PTR_CopyMagickString_003a983c" * (cast_expression "(code *)PTR_CopyMagickString_003a983c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar3->magick,image->magick,0x1000)" ( (field_expression "pIVar3->magick" identifier -> field_identifier) , (field_expression "image->magick" identifier -> field_identifier) , number_literal ))) ;) (expression_statement "(*(code *)PTR_CopyMagickString_003a983c)(pIVar3->filename,image->filename,0x1000);" (call_expression "(*(code *)PTR_CopyMagickString_003a983c)(pIVar3->filename,image->filename,0x1000)" (parenthesized_expression "(*(code *)PTR_CopyMagickString_003a983c)" ( (pointer_expression "*(code *)PTR_CopyMagickString_003a983c" * (cast_expression "(code *)PTR_CopyMagickString_003a983c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar3->filename,image->filename,0x1000)" ( (field_expression "pIVar3->filename" identifier -> field_identifier) , (field_expression "image->filename" identifier -> field_identifier) , number_literal ))) ;) (expression_statement "puVar1 = PTR_NewImageList_003a8e84;" (assignment_expression "puVar1 = PTR_NewImageList_003a8e84" identifier = identifier) ;) (expression_statement "p_Var16 = image->progress_monitor;" (assignment_expression "p_Var16 = image->progress_monitor" identifier = (field_expression "image->progress_monitor" identifier -> field_identifier)) ;) (expression_statement "p_Var11 = image->next;" (assignment_expression "p_Var11 = image->next" identifier = (field_expression "image->next" identifier -> field_identifier)) ;) (expression_statement "p_Var6 = image->previous;" (assignment_expression "p_Var6 = image->previous" identifier = (field_expression "image->previous" identifier -> field_identifier)) ;) (expression_statement "pIVar3->client_data = image->client_data;" (assignment_expression "pIVar3->client_data = image->client_data" (field_expression "pIVar3->client_data" identifier -> field_identifier) = (field_expression "image->client_data" identifier -> field_identifier)) ;) (expression_statement "pIVar3->progress_monitor = p_Var16;" (assignment_expression "pIVar3->progress_monitor = p_Var16" (field_expression "pIVar3->progress_monitor" identifier -> field_identifier) = identifier) ;) (expression_statement "pIVar3->reference_count = 1;" (assignment_expression "pIVar3->reference_count = 1" (field_expression "pIVar3->reference_count" identifier -> field_identifier) = number_literal) ;) (expression_statement "pIVar3->next = p_Var11;" (assignment_expression "pIVar3->next = p_Var11" (field_expression "pIVar3->next" identifier -> field_identifier) = identifier) ;) (expression_statement "pIVar3->previous = p_Var6;" (assignment_expression "pIVar3->previous = p_Var6" (field_expression "pIVar3->previous" identifier -> field_identifier) = identifier) ;) (expression_statement "p_Var6 = (_Image *)(*(code *)puVar1)();" (assignment_expression "p_Var6 = (_Image *)(*(code *)puVar1)()" identifier = (cast_expression "(_Image *)(*(code *)puVar1)()" ( (type_descriptor "_Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar1)()" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "pIVar3->list = p_Var6;" (assignment_expression "pIVar3->list = p_Var6" (field_expression "pIVar3->list" identifier -> field_identifier) = identifier) ;) (expression_statement "puVar1 = PTR_CloneBlobInfo_003a97e0;" (assignment_expression "puVar1 = PTR_CloneBlobInfo_003a97e0" identifier = identifier) ;) (if_statement "if (detach == MagickFalse) {\n      pBVar7 = (BlobInfo *)(*(code *)PTR_ReferenceBlob_003a9294)(image->blob);\n      pIVar3->blob = pBVar7;\n    }\n    else {\n      pIVar3->next = p_Var6;\n      pIVar3->previous = p_Var6;\n      pBVar7 = (BlobInfo *)(*(code *)puVar1)(0);\n      pIVar3->blob = pBVar7;\n    }" if (parenthesized_expression "(detach == MagickFalse)" ( (binary_expression "detach == MagickFalse" identifier == identifier) )) (compound_statement "{\n      pBVar7 = (BlobInfo *)(*(code *)PTR_ReferenceBlob_003a9294)(image->blob);\n      pIVar3->blob = pBVar7;\n    }" { (expression_statement "pBVar7 = (BlobInfo *)(*(code *)PTR_ReferenceBlob_003a9294)(image->blob);" (assignment_expression "pBVar7 = (BlobInfo *)(*(code *)PTR_ReferenceBlob_003a9294)(image->blob)" identifier = (cast_expression "(BlobInfo *)(*(code *)PTR_ReferenceBlob_003a9294)(image->blob)" ( (type_descriptor "BlobInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_ReferenceBlob_003a9294)(image->blob)" (parenthesized_expression "(*(code *)PTR_ReferenceBlob_003a9294)" ( (pointer_expression "*(code *)PTR_ReferenceBlob_003a9294" * (cast_expression "(code *)PTR_ReferenceBlob_003a9294" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(image->blob)" ( (field_expression "image->blob" identifier -> field_identifier) ))))) ;) (expression_statement "pIVar3->blob = pBVar7;" (assignment_expression "pIVar3->blob = pBVar7" (field_expression "pIVar3->blob" identifier -> field_identifier) = identifier) ;) }) (else_clause "else {\n      pIVar3->next = p_Var6;\n      pIVar3->previous = p_Var6;\n      pBVar7 = (BlobInfo *)(*(code *)puVar1)(0);\n      pIVar3->blob = pBVar7;\n    }" else (compound_statement "{\n      pIVar3->next = p_Var6;\n      pIVar3->previous = p_Var6;\n      pBVar7 = (BlobInfo *)(*(code *)puVar1)(0);\n      pIVar3->blob = pBVar7;\n    }" { (expression_statement "pIVar3->next = p_Var6;" (assignment_expression "pIVar3->next = p_Var6" (field_expression "pIVar3->next" identifier -> field_identifier) = identifier) ;) (expression_statement "pIVar3->previous = p_Var6;" (assignment_expression "pIVar3->previous = p_Var6" (field_expression "pIVar3->previous" identifier -> field_identifier) = identifier) ;) (expression_statement "pBVar7 = (BlobInfo *)(*(code *)puVar1)(0);" (assignment_expression "pBVar7 = (BlobInfo *)(*(code *)puVar1)(0)" identifier = (cast_expression "(BlobInfo *)(*(code *)puVar1)(0)" ( (type_descriptor "BlobInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar1)(0)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0)" ( number_literal ))))) ;) (expression_statement "pIVar3->blob = pBVar7;" (assignment_expression "pIVar3->blob = pBVar7" (field_expression "pIVar3->blob" identifier -> field_identifier) = identifier) ;) }))) (expression_statement "puVar1 = PTR_IsEventLogging_003a97a8;" (assignment_expression "puVar1 = PTR_IsEventLogging_003a97a8" identifier = identifier) ;) (expression_statement "pIVar3->ping = image->ping;" (assignment_expression "pIVar3->ping = image->ping" (field_expression "pIVar3->ping" identifier -> field_identifier) = (field_expression "image->ping" identifier -> field_identifier)) ;) (expression_statement "MVar4 = (*(code *)puVar1)();" (assignment_expression "MVar4 = (*(code *)puVar1)()" identifier = (call_expression "(*(code *)puVar1)()" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "puVar1 = PTR_AcquireSemaphoreInfo_003a962c;" (assignment_expression "puVar1 = PTR_AcquireSemaphoreInfo_003a962c" identifier = identifier) ;) (expression_statement "pIVar3->debug = MVar4;" (assignment_expression "pIVar3->debug = MVar4" (field_expression "pIVar3->debug" identifier -> field_identifier) = identifier) ;) (expression_statement "pSVar8 = (SemaphoreInfo *)(*(code *)puVar1)();" (assignment_expression "pSVar8 = (SemaphoreInfo *)(*(code *)puVar1)()" identifier = (cast_expression "(SemaphoreInfo *)(*(code *)puVar1)()" ( (type_descriptor "SemaphoreInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar1)()" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "pPVar12 = image->colormap;" (assignment_expression "pPVar12 = image->colormap" identifier = (field_expression "image->colormap" identifier -> field_identifier)) ;) (expression_statement "pIVar3->semaphore = pSVar8;" (assignment_expression "pIVar3->semaphore = pSVar8" (field_expression "pIVar3->semaphore" identifier -> field_identifier) = identifier) ;) (expression_statement "puVar1 = PTR_AcquireQuantumMemory_003a950c;" (assignment_expression "puVar1 = PTR_AcquireQuantumMemory_003a950c" identifier = identifier) ;) (if_statement "if (pPVar12 != (PixelInfo *)0x0) {\n      pIVar3->colors = image->colors;\n      sVar10 = image->colors;\n      pPVar12 = (PixelInfo *)(*(code *)puVar1)(sVar10 + 1,0x58);\n      pIVar3->colormap = pPVar12;\n      if (pPVar12 == (PixelInfo *)0x0) {\n        (*(code *)PTR_DestroyImage_003a8f4c)(pIVar3);\n        (*(code *)PTR_ThrowMagickException_003a8f20)\n                  (exception,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,\n                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,image->filename);\n        return (Image *)0x0;\n      }\n      (*(code *)PTR_memcpy_003a9358)(pPVar12,image->colormap,sVar10 * 0x58);\n    }" if (parenthesized_expression "(pPVar12 != (PixelInfo *)0x0)" ( (binary_expression "pPVar12 != (PixelInfo *)0x0" identifier != (cast_expression "(PixelInfo *)0x0" ( (type_descriptor "PixelInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pIVar3->colors = image->colors;\n      sVar10 = image->colors;\n      pPVar12 = (PixelInfo *)(*(code *)puVar1)(sVar10 + 1,0x58);\n      pIVar3->colormap = pPVar12;\n      if (pPVar12 == (PixelInfo *)0x0) {\n        (*(code *)PTR_DestroyImage_003a8f4c)(pIVar3);\n        (*(code *)PTR_ThrowMagickException_003a8f20)\n                  (exception,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,\n                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,image->filename);\n        return (Image *)0x0;\n      }\n      (*(code *)PTR_memcpy_003a9358)(pPVar12,image->colormap,sVar10 * 0x58);\n    }" { (expression_statement "pIVar3->colors = image->colors;" (assignment_expression "pIVar3->colors = image->colors" (field_expression "pIVar3->colors" identifier -> field_identifier) = (field_expression "image->colors" identifier -> field_identifier)) ;) (expression_statement "sVar10 = image->colors;" (assignment_expression "sVar10 = image->colors" identifier = (field_expression "image->colors" identifier -> field_identifier)) ;) (expression_statement "pPVar12 = (PixelInfo *)(*(code *)puVar1)(sVar10 + 1,0x58);" (assignment_expression "pPVar12 = (PixelInfo *)(*(code *)puVar1)(sVar10 + 1,0x58)" identifier = (cast_expression "(PixelInfo *)(*(code *)puVar1)(sVar10 + 1,0x58)" ( (type_descriptor "PixelInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar1)(sVar10 + 1,0x58)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(sVar10 + 1,0x58)" ( (binary_expression "sVar10 + 1" identifier + number_literal) , number_literal ))))) ;) (expression_statement "pIVar3->colormap = pPVar12;" (assignment_expression "pIVar3->colormap = pPVar12" (field_expression "pIVar3->colormap" identifier -> field_identifier) = identifier) ;) (if_statement "if (pPVar12 == (PixelInfo *)0x0) {\n        (*(code *)PTR_DestroyImage_003a8f4c)(pIVar3);\n        (*(code *)PTR_ThrowMagickException_003a8f20)\n                  (exception,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,\n                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,image->filename);\n        return (Image *)0x0;\n      }" if (parenthesized_expression "(pPVar12 == (PixelInfo *)0x0)" ( (binary_expression "pPVar12 == (PixelInfo *)0x0" identifier == (cast_expression "(PixelInfo *)0x0" ( (type_descriptor "PixelInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (*(code *)PTR_DestroyImage_003a8f4c)(pIVar3);\n        (*(code *)PTR_ThrowMagickException_003a8f20)\n                  (exception,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,\n                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,image->filename);\n        return (Image *)0x0;\n      }" { (expression_statement "(*(code *)PTR_DestroyImage_003a8f4c)(pIVar3);" (call_expression "(*(code *)PTR_DestroyImage_003a8f4c)(pIVar3)" (parenthesized_expression "(*(code *)PTR_DestroyImage_003a8f4c)" ( (pointer_expression "*(code *)PTR_DestroyImage_003a8f4c" * (cast_expression "(code *)PTR_DestroyImage_003a8f4c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar3)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_ThrowMagickException_003a8f20)\n                  (exception,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,\n                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,image->filename);" (call_expression "(*(code *)PTR_ThrowMagickException_003a8f20)\n                  (exception,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,\n                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,image->filename)" (parenthesized_expression "(*(code *)PTR_ThrowMagickException_003a8f20)" ( (pointer_expression "*(code *)PTR_ThrowMagickException_003a8f20" * (cast_expression "(code *)PTR_ThrowMagickException_003a8f20" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(exception,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,\n                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,image->filename)" ( identifier , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5b4c" identifier + number_literal) , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x52a0" identifier + number_literal) , number_literal , number_literal , (binary_expression "PTR_LAB_003a88e0 + 0x16f8" identifier + number_literal) , (binary_expression "PTR_LAB_003a88e0 + 0x3e28" identifier + number_literal) , (field_expression "image->filename" identifier -> field_identifier) ))) ;) (return_statement "return (Image *)0x0;" return (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "(*(code *)PTR_memcpy_003a9358)(pPVar12,image->colormap,sVar10 * 0x58);" (call_expression "(*(code *)PTR_memcpy_003a9358)(pPVar12,image->colormap,sVar10 * 0x58)" (parenthesized_expression "(*(code *)PTR_memcpy_003a9358)" ( (pointer_expression "*(code *)PTR_memcpy_003a9358" * (cast_expression "(code *)PTR_memcpy_003a9358" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pPVar12,image->colormap,sVar10 * 0x58)" ( identifier , (field_expression "image->colormap" identifier -> field_identifier) , (binary_expression "sVar10 * 0x58" identifier * number_literal) ))) ;) })) (expression_statement "puVar1 = PTR_LAB_003a88e0;" (assignment_expression "puVar1 = PTR_LAB_003a88e0" identifier = identifier) ;) (if_statement "if ((columns == 0) || (rows == 0)) {\n      if (image->montage != (char *)0x0) {\n        (*(code *)PTR_CloneString_003a9488)(&pIVar3->montage);\n      }\n      if (image->directory != (char *)0x0) {\n        (*(code *)PTR_CloneString_003a9488)(&pIVar3->directory);\n      }\n      pvVar9 = (void *)(*(code *)PTR_ReferencePixelCache_003a8a84)(image->cache);\n      pIVar3->cache = pvVar9;\n    }\n    else {\n      sVar10 = image->columns;\n      if (sVar10 == 0) {\n        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar27 = (double)(int)columns;\n        if ((int)columns < 0) {\n          dVar27 = dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar25 = (double)(int)sVar10;\n        if ((int)sVar10 < 0) {\n          dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar27 = dVar27 / dVar25;\n      }\n      sVar10 = (image->page).width;\n      dVar25 = (double)(int)sVar10;\n      if ((int)sVar10 < 0) {\n        dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar25 = (double)(*(code *)PTR_floor_003a9670)\n                                 (dVar25 * dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1400));\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar25 < *(double *)(puVar1 + 0x1410)) {\n        sVar10 = (size_t)dVar25;\n      }\n      else {\n        sVar10 = (int)(dVar25 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar26 = (image->page).x;\n      dVar28 = *(double *)(puVar1 + 0x1400);\n      (pIVar3->page).width = sVar10;\n      dVar25 = (double)(*(code *)puVar2)((double)iVar26 * dVar27 - dVar28);\n      puVar2 = PTR_ceil_003a8c20;\n      iVar26 = (image->tile_offset).x;\n      (pIVar3->page).x = (int)dVar25;\n      dVar27 = (double)(*(code *)puVar2)((double)iVar26 * dVar27 - dVar28);\n      sVar10 = image->rows;\n      (pIVar3->tile_offset).x = (int)dVar27;\n      if (sVar10 == 0) {\n        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar27 = (double)(int)rows;\n        if ((int)rows < 0) {\n          dVar27 = dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar25 = (double)(int)sVar10;\n        if ((int)sVar10 < 0) {\n          dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar27 = dVar27 / dVar25;\n      }\n      sVar10 = (image->page).height;\n      dVar25 = (double)(int)sVar10;\n      if ((int)sVar10 < 0) {\n        dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar25 = (double)(*(code *)PTR_floor_003a9670)(dVar25 * dVar27 + *(double *)(puVar1 + 0x1400))\n      ;\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar25 < *(double *)(puVar1 + 0x1410)) {\n        sVar10 = (size_t)dVar25;\n      }\n      else {\n        sVar10 = (int)(dVar25 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar26 = (image->page).y;\n      dVar28 = *(double *)(puVar1 + 0x1400);\n      (pIVar3->page).height = sVar10;\n      dVar25 = (double)(*(code *)puVar2)((double)iVar26 * dVar27 - dVar28);\n      puVar1 = PTR_ceil_003a8c20;\n      iVar26 = (image->tile_offset).y;\n      (pIVar3->page).y = (int)dVar25;\n      dVar27 = (double)(*(code *)puVar1)((double)iVar26 * dVar27 - dVar28);\n      puVar1 = PTR_ClonePixelCache_003a8a10;\n      pvVar9 = image->cache;\n      (pIVar3->tile_offset).y = (int)dVar27;\n      pvVar9 = (void *)(*(code *)puVar1)(pvVar9);\n      pIVar3->cache = pvVar9;\n      iVar26 = (*(code *)PTR_SetImageExtent_003a94ac)(pIVar3,columns,rows,exception);\n      if (iVar26 == 0) {\n        pIVar3 = (Image *)(*(code *)PTR_DestroyImage_003a8f4c)(pIVar3);\n        return pIVar3;\n      }\n    }" if (parenthesized_expression "((columns == 0) || (rows == 0))" ( (binary_expression "(columns == 0) || (rows == 0)" (parenthesized_expression "(columns == 0)" ( (binary_expression "columns == 0" identifier == number_literal) )) || (parenthesized_expression "(rows == 0)" ( (binary_expression "rows == 0" identifier == number_literal) ))) )) (compound_statement "{\n      if (image->montage != (char *)0x0) {\n        (*(code *)PTR_CloneString_003a9488)(&pIVar3->montage);\n      }\n      if (image->directory != (char *)0x0) {\n        (*(code *)PTR_CloneString_003a9488)(&pIVar3->directory);\n      }\n      pvVar9 = (void *)(*(code *)PTR_ReferencePixelCache_003a8a84)(image->cache);\n      pIVar3->cache = pvVar9;\n    }" { (if_statement "if (image->montage != (char *)0x0) {\n        (*(code *)PTR_CloneString_003a9488)(&pIVar3->montage);\n      }" if (parenthesized_expression "(image->montage != (char *)0x0)" ( (binary_expression "image->montage != (char *)0x0" (field_expression "image->montage" identifier -> field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (*(code *)PTR_CloneString_003a9488)(&pIVar3->montage);\n      }" { (expression_statement "(*(code *)PTR_CloneString_003a9488)(&pIVar3->montage);" (call_expression "(*(code *)PTR_CloneString_003a9488)(&pIVar3->montage)" (parenthesized_expression "(*(code *)PTR_CloneString_003a9488)" ( (pointer_expression "*(code *)PTR_CloneString_003a9488" * (cast_expression "(code *)PTR_CloneString_003a9488" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&pIVar3->montage)" ( (pointer_expression "&pIVar3->montage" & (field_expression "pIVar3->montage" identifier -> field_identifier)) ))) ;) })) (if_statement "if (image->directory != (char *)0x0) {\n        (*(code *)PTR_CloneString_003a9488)(&pIVar3->directory);\n      }" if (parenthesized_expression "(image->directory != (char *)0x0)" ( (binary_expression "image->directory != (char *)0x0" (field_expression "image->directory" identifier -> field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (*(code *)PTR_CloneString_003a9488)(&pIVar3->directory);\n      }" { (expression_statement "(*(code *)PTR_CloneString_003a9488)(&pIVar3->directory);" (call_expression "(*(code *)PTR_CloneString_003a9488)(&pIVar3->directory)" (parenthesized_expression "(*(code *)PTR_CloneString_003a9488)" ( (pointer_expression "*(code *)PTR_CloneString_003a9488" * (cast_expression "(code *)PTR_CloneString_003a9488" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&pIVar3->directory)" ( (pointer_expression "&pIVar3->directory" & (field_expression "pIVar3->directory" identifier -> field_identifier)) ))) ;) })) (expression_statement "pvVar9 = (void *)(*(code *)PTR_ReferencePixelCache_003a8a84)(image->cache);" (assignment_expression "pvVar9 = (void *)(*(code *)PTR_ReferencePixelCache_003a8a84)(image->cache)" identifier = (cast_expression "(void *)(*(code *)PTR_ReferencePixelCache_003a8a84)(image->cache)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_ReferencePixelCache_003a8a84)(image->cache)" (parenthesized_expression "(*(code *)PTR_ReferencePixelCache_003a8a84)" ( (pointer_expression "*(code *)PTR_ReferencePixelCache_003a8a84" * (cast_expression "(code *)PTR_ReferencePixelCache_003a8a84" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(image->cache)" ( (field_expression "image->cache" identifier -> field_identifier) ))))) ;) (expression_statement "pIVar3->cache = pvVar9;" (assignment_expression "pIVar3->cache = pvVar9" (field_expression "pIVar3->cache" identifier -> field_identifier) = identifier) ;) }) (else_clause "else {\n      sVar10 = image->columns;\n      if (sVar10 == 0) {\n        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar27 = (double)(int)columns;\n        if ((int)columns < 0) {\n          dVar27 = dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar25 = (double)(int)sVar10;\n        if ((int)sVar10 < 0) {\n          dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar27 = dVar27 / dVar25;\n      }\n      sVar10 = (image->page).width;\n      dVar25 = (double)(int)sVar10;\n      if ((int)sVar10 < 0) {\n        dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar25 = (double)(*(code *)PTR_floor_003a9670)\n                                 (dVar25 * dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1400));\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar25 < *(double *)(puVar1 + 0x1410)) {\n        sVar10 = (size_t)dVar25;\n      }\n      else {\n        sVar10 = (int)(dVar25 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar26 = (image->page).x;\n      dVar28 = *(double *)(puVar1 + 0x1400);\n      (pIVar3->page).width = sVar10;\n      dVar25 = (double)(*(code *)puVar2)((double)iVar26 * dVar27 - dVar28);\n      puVar2 = PTR_ceil_003a8c20;\n      iVar26 = (image->tile_offset).x;\n      (pIVar3->page).x = (int)dVar25;\n      dVar27 = (double)(*(code *)puVar2)((double)iVar26 * dVar27 - dVar28);\n      sVar10 = image->rows;\n      (pIVar3->tile_offset).x = (int)dVar27;\n      if (sVar10 == 0) {\n        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar27 = (double)(int)rows;\n        if ((int)rows < 0) {\n          dVar27 = dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar25 = (double)(int)sVar10;\n        if ((int)sVar10 < 0) {\n          dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar27 = dVar27 / dVar25;\n      }\n      sVar10 = (image->page).height;\n      dVar25 = (double)(int)sVar10;\n      if ((int)sVar10 < 0) {\n        dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar25 = (double)(*(code *)PTR_floor_003a9670)(dVar25 * dVar27 + *(double *)(puVar1 + 0x1400))\n      ;\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar25 < *(double *)(puVar1 + 0x1410)) {\n        sVar10 = (size_t)dVar25;\n      }\n      else {\n        sVar10 = (int)(dVar25 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar26 = (image->page).y;\n      dVar28 = *(double *)(puVar1 + 0x1400);\n      (pIVar3->page).height = sVar10;\n      dVar25 = (double)(*(code *)puVar2)((double)iVar26 * dVar27 - dVar28);\n      puVar1 = PTR_ceil_003a8c20;\n      iVar26 = (image->tile_offset).y;\n      (pIVar3->page).y = (int)dVar25;\n      dVar27 = (double)(*(code *)puVar1)((double)iVar26 * dVar27 - dVar28);\n      puVar1 = PTR_ClonePixelCache_003a8a10;\n      pvVar9 = image->cache;\n      (pIVar3->tile_offset).y = (int)dVar27;\n      pvVar9 = (void *)(*(code *)puVar1)(pvVar9);\n      pIVar3->cache = pvVar9;\n      iVar26 = (*(code *)PTR_SetImageExtent_003a94ac)(pIVar3,columns,rows,exception);\n      if (iVar26 == 0) {\n        pIVar3 = (Image *)(*(code *)PTR_DestroyImage_003a8f4c)(pIVar3);\n        return pIVar3;\n      }\n    }" else (compound_statement "{\n      sVar10 = image->columns;\n      if (sVar10 == 0) {\n        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar27 = (double)(int)columns;\n        if ((int)columns < 0) {\n          dVar27 = dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar25 = (double)(int)sVar10;\n        if ((int)sVar10 < 0) {\n          dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar27 = dVar27 / dVar25;\n      }\n      sVar10 = (image->page).width;\n      dVar25 = (double)(int)sVar10;\n      if ((int)sVar10 < 0) {\n        dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar25 = (double)(*(code *)PTR_floor_003a9670)\n                                 (dVar25 * dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1400));\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar25 < *(double *)(puVar1 + 0x1410)) {\n        sVar10 = (size_t)dVar25;\n      }\n      else {\n        sVar10 = (int)(dVar25 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar26 = (image->page).x;\n      dVar28 = *(double *)(puVar1 + 0x1400);\n      (pIVar3->page).width = sVar10;\n      dVar25 = (double)(*(code *)puVar2)((double)iVar26 * dVar27 - dVar28);\n      puVar2 = PTR_ceil_003a8c20;\n      iVar26 = (image->tile_offset).x;\n      (pIVar3->page).x = (int)dVar25;\n      dVar27 = (double)(*(code *)puVar2)((double)iVar26 * dVar27 - dVar28);\n      sVar10 = image->rows;\n      (pIVar3->tile_offset).x = (int)dVar27;\n      if (sVar10 == 0) {\n        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar27 = (double)(int)rows;\n        if ((int)rows < 0) {\n          dVar27 = dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar25 = (double)(int)sVar10;\n        if ((int)sVar10 < 0) {\n          dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar27 = dVar27 / dVar25;\n      }\n      sVar10 = (image->page).height;\n      dVar25 = (double)(int)sVar10;\n      if ((int)sVar10 < 0) {\n        dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar25 = (double)(*(code *)PTR_floor_003a9670)(dVar25 * dVar27 + *(double *)(puVar1 + 0x1400))\n      ;\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar25 < *(double *)(puVar1 + 0x1410)) {\n        sVar10 = (size_t)dVar25;\n      }\n      else {\n        sVar10 = (int)(dVar25 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar26 = (image->page).y;\n      dVar28 = *(double *)(puVar1 + 0x1400);\n      (pIVar3->page).height = sVar10;\n      dVar25 = (double)(*(code *)puVar2)((double)iVar26 * dVar27 - dVar28);\n      puVar1 = PTR_ceil_003a8c20;\n      iVar26 = (image->tile_offset).y;\n      (pIVar3->page).y = (int)dVar25;\n      dVar27 = (double)(*(code *)puVar1)((double)iVar26 * dVar27 - dVar28);\n      puVar1 = PTR_ClonePixelCache_003a8a10;\n      pvVar9 = image->cache;\n      (pIVar3->tile_offset).y = (int)dVar27;\n      pvVar9 = (void *)(*(code *)puVar1)(pvVar9);\n      pIVar3->cache = pvVar9;\n      iVar26 = (*(code *)PTR_SetImageExtent_003a94ac)(pIVar3,columns,rows,exception);\n      if (iVar26 == 0) {\n        pIVar3 = (Image *)(*(code *)PTR_DestroyImage_003a8f4c)(pIVar3);\n        return pIVar3;\n      }\n    }" { (expression_statement "sVar10 = image->columns;" (assignment_expression "sVar10 = image->columns" identifier = (field_expression "image->columns" identifier -> field_identifier)) ;) (if_statement "if (sVar10 == 0) {\n        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar27 = (double)(int)columns;\n        if ((int)columns < 0) {\n          dVar27 = dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar25 = (double)(int)sVar10;\n        if ((int)sVar10 < 0) {\n          dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar27 = dVar27 / dVar25;\n      }" if (parenthesized_expression "(sVar10 == 0)" ( (binary_expression "sVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }" { (expression_statement "dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438);" (assignment_expression "dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1438)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1438)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1438" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        dVar27 = (double)(int)columns;\n        if ((int)columns < 0) {\n          dVar27 = dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar25 = (double)(int)sVar10;\n        if ((int)sVar10 < 0) {\n          dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar27 = dVar27 / dVar25;\n      }" else (compound_statement "{\n        dVar27 = (double)(int)columns;\n        if ((int)columns < 0) {\n          dVar27 = dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar25 = (double)(int)sVar10;\n        if ((int)sVar10 < 0) {\n          dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar27 = dVar27 / dVar25;\n      }" { (expression_statement "dVar27 = (double)(int)columns;" (assignment_expression "dVar27 = (double)(int)columns" identifier = (cast_expression "(double)(int)columns" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)columns" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)columns < 0) {\n          dVar27 = dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }" if (parenthesized_expression "((int)columns < 0)" ( (binary_expression "(int)columns < 0" (cast_expression "(int)columns" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          dVar27 = dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }" { (expression_statement "dVar27 = dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1418);" (assignment_expression "dVar27 = dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" identifier = (binary_expression "dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" identifier + (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1418)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1418)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "dVar25 = (double)(int)sVar10;" (assignment_expression "dVar25 = (double)(int)sVar10" identifier = (cast_expression "(double)(int)sVar10" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)sVar10" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)sVar10 < 0) {\n          dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }" if (parenthesized_expression "((int)sVar10 < 0)" ( (binary_expression "(int)sVar10 < 0" (cast_expression "(int)sVar10" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }" { (expression_statement "dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);" (assignment_expression "dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" identifier = (binary_expression "dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" identifier + (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1418)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1418)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "dVar27 = dVar27 / dVar25;" (assignment_expression "dVar27 = dVar27 / dVar25" identifier = (binary_expression "dVar27 / dVar25" identifier / identifier)) ;) }))) (expression_statement "sVar10 = (image->page).width;" (assignment_expression "sVar10 = (image->page).width" identifier = (field_expression "(image->page).width" (parenthesized_expression "(image->page)" ( (field_expression "image->page" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "dVar25 = (double)(int)sVar10;" (assignment_expression "dVar25 = (double)(int)sVar10" identifier = (cast_expression "(double)(int)sVar10" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)sVar10" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)sVar10 < 0) {\n        dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }" if (parenthesized_expression "((int)sVar10 < 0)" ( (binary_expression "(int)sVar10 < 0" (cast_expression "(int)sVar10" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }" { (expression_statement "dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);" (assignment_expression "dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" identifier = (binary_expression "dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" identifier + (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1418)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1418)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "dVar25 = (double)(*(code *)PTR_floor_003a9670)\n                                 (dVar25 * dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1400));" (assignment_expression "dVar25 = (double)(*(code *)PTR_floor_003a9670)\n                                 (dVar25 * dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1400))" identifier = (cast_expression "(double)(*(code *)PTR_floor_003a9670)\n                                 (dVar25 * dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1400))" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_floor_003a9670)\n                                 (dVar25 * dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1400))" (parenthesized_expression "(*(code *)PTR_floor_003a9670)" ( (pointer_expression "*(code *)PTR_floor_003a9670" * (cast_expression "(code *)PTR_floor_003a9670" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar25 * dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1400))" ( (binary_expression "dVar25 * dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1400)" (binary_expression "dVar25 * dVar27" identifier * identifier) + (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1400)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1400)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1400" identifier + number_literal) ))))) ))))) ;) (expression_statement "puVar2 = PTR_ceil_003a8c20;" (assignment_expression "puVar2 = PTR_ceil_003a8c20" identifier = identifier) ;) (if_statement "if (dVar25 < *(double *)(puVar1 + 0x1410)) {\n        sVar10 = (size_t)dVar25;\n      }\n      else {\n        sVar10 = (int)(dVar25 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }" if (parenthesized_expression "(dVar25 < *(double *)(puVar1 + 0x1410))" ( (binary_expression "dVar25 < *(double *)(puVar1 + 0x1410)" identifier < (pointer_expression "*(double *)(puVar1 + 0x1410)" * (cast_expression "(double *)(puVar1 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x1410)" ( (binary_expression "puVar1 + 0x1410" identifier + number_literal) ))))) )) (compound_statement "{\n        sVar10 = (size_t)dVar25;\n      }" { (expression_statement "sVar10 = (size_t)dVar25;" (assignment_expression "sVar10 = (size_t)dVar25" identifier = (cast_expression "(size_t)dVar25" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) }) (else_clause "else {\n        sVar10 = (int)(dVar25 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }" else (compound_statement "{\n        sVar10 = (int)(dVar25 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }" { (expression_statement "sVar10 = (int)(dVar25 - *(double *)(puVar1 + 0x1410)) | 0x80000000;" (assignment_expression "sVar10 = (int)(dVar25 - *(double *)(puVar1 + 0x1410)) | 0x80000000" identifier = (binary_expression "(int)(dVar25 - *(double *)(puVar1 + 0x1410)) | 0x80000000" (cast_expression "(int)(dVar25 - *(double *)(puVar1 + 0x1410))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar25 - *(double *)(puVar1 + 0x1410))" ( (binary_expression "dVar25 - *(double *)(puVar1 + 0x1410)" identifier - (pointer_expression "*(double *)(puVar1 + 0x1410)" * (cast_expression "(double *)(puVar1 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x1410)" ( (binary_expression "puVar1 + 0x1410" identifier + number_literal) ))))) ))) | number_literal)) ;) }))) (expression_statement "iVar26 = (image->page).x;" (assignment_expression "iVar26 = (image->page).x" identifier = (field_expression "(image->page).x" (parenthesized_expression "(image->page)" ( (field_expression "image->page" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "dVar28 = *(double *)(puVar1 + 0x1400);" (assignment_expression "dVar28 = *(double *)(puVar1 + 0x1400)" identifier = (pointer_expression "*(double *)(puVar1 + 0x1400)" * (cast_expression "(double *)(puVar1 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x1400)" ( (binary_expression "puVar1 + 0x1400" identifier + number_literal) ))))) ;) (expression_statement "(pIVar3->page).width = sVar10;" (assignment_expression "(pIVar3->page).width = sVar10" (field_expression "(pIVar3->page).width" (parenthesized_expression "(pIVar3->page)" ( (field_expression "pIVar3->page" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "dVar25 = (double)(*(code *)puVar2)((double)iVar26 * dVar27 - dVar28);" (assignment_expression "dVar25 = (double)(*(code *)puVar2)((double)iVar26 * dVar27 - dVar28)" identifier = (cast_expression "(double)(*(code *)puVar2)((double)iVar26 * dVar27 - dVar28)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)puVar2)((double)iVar26 * dVar27 - dVar28)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((double)iVar26 * dVar27 - dVar28)" ( (binary_expression "(double)iVar26 * dVar27 - dVar28" (binary_expression "(double)iVar26 * dVar27" (cast_expression "(double)iVar26" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) - identifier) ))))) ;) (expression_statement "puVar2 = PTR_ceil_003a8c20;" (assignment_expression "puVar2 = PTR_ceil_003a8c20" identifier = identifier) ;) (expression_statement "iVar26 = (image->tile_offset).x;" (assignment_expression "iVar26 = (image->tile_offset).x" identifier = (field_expression "(image->tile_offset).x" (parenthesized_expression "(image->tile_offset)" ( (field_expression "image->tile_offset" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "(pIVar3->page).x = (int)dVar25;" (assignment_expression "(pIVar3->page).x = (int)dVar25" (field_expression "(pIVar3->page).x" (parenthesized_expression "(pIVar3->page)" ( (field_expression "pIVar3->page" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(int)dVar25" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "dVar27 = (double)(*(code *)puVar2)((double)iVar26 * dVar27 - dVar28);" (assignment_expression "dVar27 = (double)(*(code *)puVar2)((double)iVar26 * dVar27 - dVar28)" identifier = (cast_expression "(double)(*(code *)puVar2)((double)iVar26 * dVar27 - dVar28)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)puVar2)((double)iVar26 * dVar27 - dVar28)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((double)iVar26 * dVar27 - dVar28)" ( (binary_expression "(double)iVar26 * dVar27 - dVar28" (binary_expression "(double)iVar26 * dVar27" (cast_expression "(double)iVar26" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) - identifier) ))))) ;) (expression_statement "sVar10 = image->rows;" (assignment_expression "sVar10 = image->rows" identifier = (field_expression "image->rows" identifier -> field_identifier)) ;) (expression_statement "(pIVar3->tile_offset).x = (int)dVar27;" (assignment_expression "(pIVar3->tile_offset).x = (int)dVar27" (field_expression "(pIVar3->tile_offset).x" (parenthesized_expression "(pIVar3->tile_offset)" ( (field_expression "pIVar3->tile_offset" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(int)dVar27" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (sVar10 == 0) {\n        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar27 = (double)(int)rows;\n        if ((int)rows < 0) {\n          dVar27 = dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar25 = (double)(int)sVar10;\n        if ((int)sVar10 < 0) {\n          dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar27 = dVar27 / dVar25;\n      }" if (parenthesized_expression "(sVar10 == 0)" ( (binary_expression "sVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }" { (expression_statement "dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438);" (assignment_expression "dVar27 = *(double *)(PTR_LAB_003a88e0 + 0x1438)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1438)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1438)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1438" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        dVar27 = (double)(int)rows;\n        if ((int)rows < 0) {\n          dVar27 = dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar25 = (double)(int)sVar10;\n        if ((int)sVar10 < 0) {\n          dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar27 = dVar27 / dVar25;\n      }" else (compound_statement "{\n        dVar27 = (double)(int)rows;\n        if ((int)rows < 0) {\n          dVar27 = dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar25 = (double)(int)sVar10;\n        if ((int)sVar10 < 0) {\n          dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar27 = dVar27 / dVar25;\n      }" { (expression_statement "dVar27 = (double)(int)rows;" (assignment_expression "dVar27 = (double)(int)rows" identifier = (cast_expression "(double)(int)rows" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)rows" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)rows < 0) {\n          dVar27 = dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }" if (parenthesized_expression "((int)rows < 0)" ( (binary_expression "(int)rows < 0" (cast_expression "(int)rows" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          dVar27 = dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }" { (expression_statement "dVar27 = dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1418);" (assignment_expression "dVar27 = dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" identifier = (binary_expression "dVar27 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" identifier + (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1418)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1418)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "dVar25 = (double)(int)sVar10;" (assignment_expression "dVar25 = (double)(int)sVar10" identifier = (cast_expression "(double)(int)sVar10" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)sVar10" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)sVar10 < 0) {\n          dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }" if (parenthesized_expression "((int)sVar10 < 0)" ( (binary_expression "(int)sVar10 < 0" (cast_expression "(int)sVar10" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }" { (expression_statement "dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);" (assignment_expression "dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" identifier = (binary_expression "dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" identifier + (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1418)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1418)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "dVar27 = dVar27 / dVar25;" (assignment_expression "dVar27 = dVar27 / dVar25" identifier = (binary_expression "dVar27 / dVar25" identifier / identifier)) ;) }))) (expression_statement "sVar10 = (image->page).height;" (assignment_expression "sVar10 = (image->page).height" identifier = (field_expression "(image->page).height" (parenthesized_expression "(image->page)" ( (field_expression "image->page" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "dVar25 = (double)(int)sVar10;" (assignment_expression "dVar25 = (double)(int)sVar10" identifier = (cast_expression "(double)(int)sVar10" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)sVar10" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)sVar10 < 0) {\n        dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }" if (parenthesized_expression "((int)sVar10 < 0)" ( (binary_expression "(int)sVar10 < 0" (cast_expression "(int)sVar10" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }" { (expression_statement "dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418);" (assignment_expression "dVar25 = dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" identifier = (binary_expression "dVar25 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" identifier + (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1418)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1418)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "dVar25 = (double)(*(code *)PTR_floor_003a9670)(dVar25 * dVar27 + *(double *)(puVar1 + 0x1400))\n      ;" (assignment_expression "dVar25 = (double)(*(code *)PTR_floor_003a9670)(dVar25 * dVar27 + *(double *)(puVar1 + 0x1400))" identifier = (cast_expression "(double)(*(code *)PTR_floor_003a9670)(dVar25 * dVar27 + *(double *)(puVar1 + 0x1400))" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_floor_003a9670)(dVar25 * dVar27 + *(double *)(puVar1 + 0x1400))" (parenthesized_expression "(*(code *)PTR_floor_003a9670)" ( (pointer_expression "*(code *)PTR_floor_003a9670" * (cast_expression "(code *)PTR_floor_003a9670" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar25 * dVar27 + *(double *)(puVar1 + 0x1400))" ( (binary_expression "dVar25 * dVar27 + *(double *)(puVar1 + 0x1400)" (binary_expression "dVar25 * dVar27" identifier * identifier) + (pointer_expression "*(double *)(puVar1 + 0x1400)" * (cast_expression "(double *)(puVar1 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x1400)" ( (binary_expression "puVar1 + 0x1400" identifier + number_literal) ))))) ))))) ;) (expression_statement "puVar2 = PTR_ceil_003a8c20;" (assignment_expression "puVar2 = PTR_ceil_003a8c20" identifier = identifier) ;) (if_statement "if (dVar25 < *(double *)(puVar1 + 0x1410)) {\n        sVar10 = (size_t)dVar25;\n      }\n      else {\n        sVar10 = (int)(dVar25 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }" if (parenthesized_expression "(dVar25 < *(double *)(puVar1 + 0x1410))" ( (binary_expression "dVar25 < *(double *)(puVar1 + 0x1410)" identifier < (pointer_expression "*(double *)(puVar1 + 0x1410)" * (cast_expression "(double *)(puVar1 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x1410)" ( (binary_expression "puVar1 + 0x1410" identifier + number_literal) ))))) )) (compound_statement "{\n        sVar10 = (size_t)dVar25;\n      }" { (expression_statement "sVar10 = (size_t)dVar25;" (assignment_expression "sVar10 = (size_t)dVar25" identifier = (cast_expression "(size_t)dVar25" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) }) (else_clause "else {\n        sVar10 = (int)(dVar25 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }" else (compound_statement "{\n        sVar10 = (int)(dVar25 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }" { (expression_statement "sVar10 = (int)(dVar25 - *(double *)(puVar1 + 0x1410)) | 0x80000000;" (assignment_expression "sVar10 = (int)(dVar25 - *(double *)(puVar1 + 0x1410)) | 0x80000000" identifier = (binary_expression "(int)(dVar25 - *(double *)(puVar1 + 0x1410)) | 0x80000000" (cast_expression "(int)(dVar25 - *(double *)(puVar1 + 0x1410))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar25 - *(double *)(puVar1 + 0x1410))" ( (binary_expression "dVar25 - *(double *)(puVar1 + 0x1410)" identifier - (pointer_expression "*(double *)(puVar1 + 0x1410)" * (cast_expression "(double *)(puVar1 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x1410)" ( (binary_expression "puVar1 + 0x1410" identifier + number_literal) ))))) ))) | number_literal)) ;) }))) (expression_statement "iVar26 = (image->page).y;" (assignment_expression "iVar26 = (image->page).y" identifier = (field_expression "(image->page).y" (parenthesized_expression "(image->page)" ( (field_expression "image->page" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "dVar28 = *(double *)(puVar1 + 0x1400);" (assignment_expression "dVar28 = *(double *)(puVar1 + 0x1400)" identifier = (pointer_expression "*(double *)(puVar1 + 0x1400)" * (cast_expression "(double *)(puVar1 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x1400)" ( (binary_expression "puVar1 + 0x1400" identifier + number_literal) ))))) ;) (expression_statement "(pIVar3->page).height = sVar10;" (assignment_expression "(pIVar3->page).height = sVar10" (field_expression "(pIVar3->page).height" (parenthesized_expression "(pIVar3->page)" ( (field_expression "pIVar3->page" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "dVar25 = (double)(*(code *)puVar2)((double)iVar26 * dVar27 - dVar28);" (assignment_expression "dVar25 = (double)(*(code *)puVar2)((double)iVar26 * dVar27 - dVar28)" identifier = (cast_expression "(double)(*(code *)puVar2)((double)iVar26 * dVar27 - dVar28)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)puVar2)((double)iVar26 * dVar27 - dVar28)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((double)iVar26 * dVar27 - dVar28)" ( (binary_expression "(double)iVar26 * dVar27 - dVar28" (binary_expression "(double)iVar26 * dVar27" (cast_expression "(double)iVar26" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) - identifier) ))))) ;) (expression_statement "puVar1 = PTR_ceil_003a8c20;" (assignment_expression "puVar1 = PTR_ceil_003a8c20" identifier = identifier) ;) (expression_statement "iVar26 = (image->tile_offset).y;" (assignment_expression "iVar26 = (image->tile_offset).y" identifier = (field_expression "(image->tile_offset).y" (parenthesized_expression "(image->tile_offset)" ( (field_expression "image->tile_offset" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "(pIVar3->page).y = (int)dVar25;" (assignment_expression "(pIVar3->page).y = (int)dVar25" (field_expression "(pIVar3->page).y" (parenthesized_expression "(pIVar3->page)" ( (field_expression "pIVar3->page" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(int)dVar25" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "dVar27 = (double)(*(code *)puVar1)((double)iVar26 * dVar27 - dVar28);" (assignment_expression "dVar27 = (double)(*(code *)puVar1)((double)iVar26 * dVar27 - dVar28)" identifier = (cast_expression "(double)(*(code *)puVar1)((double)iVar26 * dVar27 - dVar28)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)puVar1)((double)iVar26 * dVar27 - dVar28)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((double)iVar26 * dVar27 - dVar28)" ( (binary_expression "(double)iVar26 * dVar27 - dVar28" (binary_expression "(double)iVar26 * dVar27" (cast_expression "(double)iVar26" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) - identifier) ))))) ;) (expression_statement "puVar1 = PTR_ClonePixelCache_003a8a10;" (assignment_expression "puVar1 = PTR_ClonePixelCache_003a8a10" identifier = identifier) ;) (expression_statement "pvVar9 = image->cache;" (assignment_expression "pvVar9 = image->cache" identifier = (field_expression "image->cache" identifier -> field_identifier)) ;) (expression_statement "(pIVar3->tile_offset).y = (int)dVar27;" (assignment_expression "(pIVar3->tile_offset).y = (int)dVar27" (field_expression "(pIVar3->tile_offset).y" (parenthesized_expression "(pIVar3->tile_offset)" ( (field_expression "pIVar3->tile_offset" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(int)dVar27" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pvVar9 = (void *)(*(code *)puVar1)(pvVar9);" (assignment_expression "pvVar9 = (void *)(*(code *)puVar1)(pvVar9)" identifier = (cast_expression "(void *)(*(code *)puVar1)(pvVar9)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)puVar1)(pvVar9)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pvVar9)" ( identifier ))))) ;) (expression_statement "pIVar3->cache = pvVar9;" (assignment_expression "pIVar3->cache = pvVar9" (field_expression "pIVar3->cache" identifier -> field_identifier) = identifier) ;) (expression_statement "iVar26 = (*(code *)PTR_SetImageExtent_003a94ac)(pIVar3,columns,rows,exception);" (assignment_expression "iVar26 = (*(code *)PTR_SetImageExtent_003a94ac)(pIVar3,columns,rows,exception)" identifier = (call_expression "(*(code *)PTR_SetImageExtent_003a94ac)(pIVar3,columns,rows,exception)" (parenthesized_expression "(*(code *)PTR_SetImageExtent_003a94ac)" ( (pointer_expression "*(code *)PTR_SetImageExtent_003a94ac" * (cast_expression "(code *)PTR_SetImageExtent_003a94ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar3,columns,rows,exception)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar26 == 0) {\n        pIVar3 = (Image *)(*(code *)PTR_DestroyImage_003a8f4c)(pIVar3);\n        return pIVar3;\n      }" if (parenthesized_expression "(iVar26 == 0)" ( (binary_expression "iVar26 == 0" identifier == number_literal) )) (compound_statement "{\n        pIVar3 = (Image *)(*(code *)PTR_DestroyImage_003a8f4c)(pIVar3);\n        return pIVar3;\n      }" { (expression_statement "pIVar3 = (Image *)(*(code *)PTR_DestroyImage_003a8f4c)(pIVar3);" (assignment_expression "pIVar3 = (Image *)(*(code *)PTR_DestroyImage_003a8f4c)(pIVar3)" identifier = (cast_expression "(Image *)(*(code *)PTR_DestroyImage_003a8f4c)(pIVar3)" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_DestroyImage_003a8f4c)(pIVar3)" (parenthesized_expression "(*(code *)PTR_DestroyImage_003a8f4c)" ( (pointer_expression "*(code *)PTR_DestroyImage_003a8f4c" * (cast_expression "(code *)PTR_DestroyImage_003a8f4c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pIVar3)" ( identifier ))))) ;) (return_statement "return pIVar3;" return identifier ;) })) }))) (return_statement "return pIVar3;" return identifier ;) })) (expression_statement "(*(code *)PTR_ThrowMagickException_003a8f20)\n            (exception,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x31e,\n             0x1a9,PTR_s_t_to_left_003a88e4 + -0x5ac0,PTR_LAB_003a88e0 + 0x3e28,image->filename);" (call_expression "(*(code *)PTR_ThrowMagickException_003a8f20)\n            (exception,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x31e,\n             0x1a9,PTR_s_t_to_left_003a88e4 + -0x5ac0,PTR_LAB_003a88e0 + 0x3e28,image->filename)" (parenthesized_expression "(*(code *)PTR_ThrowMagickException_003a8f20)" ( (pointer_expression "*(code *)PTR_ThrowMagickException_003a8f20" * (cast_expression "(code *)PTR_ThrowMagickException_003a8f20" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(exception,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x31e,\n             0x1a9,PTR_s_t_to_left_003a88e4 + -0x5ac0,PTR_LAB_003a88e0 + 0x3e28,image->filename)" ( identifier , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5b4c" identifier + number_literal) , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x52a0" identifier + number_literal) , number_literal , number_literal , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5ac0" identifier + number_literal) , (binary_expression "PTR_LAB_003a88e0 + 0x3e28" identifier + number_literal) , (field_expression "image->filename" identifier -> field_identifier) ))) ;) (return_statement "return (Image *)0x0;" return (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })))
(translation_unit "undefined4 * CloneImage(undefined4 *param_1,int param_2,int param_3,int param_4,int param_5)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined4 *puVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  undefined4 uVar14;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  int iVar17;\n  double dVar18;\n  double dVar19;\n  double dVar20;\n  \n  if (param_1 == (undefined4 *)0x0) {\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x37b0,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x316,PTR_s_t_to_left_003a88e4 + -0x5294)\n    ;\n    return puVar3;\n  }\n  if (param_1[0xcdb] != -0x54535255) {\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x317,PTR_s_t_to_left_003a88e4 + -0x5294)\n    ;\n    return puVar3;\n  }\n  if (param_1[0xcd4] != 0) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x319,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1 + 0xd0);\n  }\n  if (param_5 == 0) {\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31a,\n                        PTR_s_t_to_left_003a88e4 + -0x5294);\n    return puVar3;\n  }\n  if (*(int *)(param_5 + 0x1c) != -0x54535255) {\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31b,\n                        PTR_s_t_to_left_003a88e4 + -0x5294);\n    return puVar3;\n  }\n  if ((param_1[6] != 0) && (param_1[7] != 0)) {\n    puVar3 = (undefined4 *)(*(code *)PTR_AcquireCriticalMemory_003a9354)(0x33d8);\n    (*(code *)PTR_memset_003a96d4)(puVar3,0,0x33d8);\n    puVar1 = PTR_CloneImageInfo_003a919c;\n    uVar16 = param_1[0xb0];\n    uVar15 = param_1[0xb1];\n    uVar14 = param_1[0xb2];\n    uVar13 = param_1[1];\n    uVar12 = param_1[0xaf];\n    uVar11 = param_1[0xcf4];\n    uVar10 = param_1[0xcf3];\n    uVar6 = param_1[7];\n    uVar9 = param_1[6];\n    uVar4 = param_1[0xa9];\n    uVar8 = param_1[0xcd7];\n    *puVar3 = *param_1;\n    puVar3[0xb0] = uVar16;\n    puVar3[0xb1] = uVar15;\n    puVar3[0xb2] = uVar14;\n    puVar3[1] = uVar13;\n    puVar3[0xaf] = uVar12;\n    puVar3[0xcf4] = uVar11;\n    puVar3[0xcf3] = uVar10;\n    puVar3[7] = uVar6;\n    puVar3[6] = uVar9;\n    puVar3[0xcdb] = 0xabacadab;\n    puVar3[0xa9] = uVar4;\n    uVar4 = (*(code *)puVar1)(uVar8);\n    puVar1 = PTR_CloneImageProfiles_003a9348;\n    puVar3[0xcd7] = uVar4;\n    (*(code *)puVar1)(puVar3,param_1);\n    (*(code *)PTR_CloneImageProperties_003a91ac)(puVar3,param_1);\n    (*(code *)PTR_CloneImageArtifacts_003a9500)(puVar3,param_1);\n    (*(code *)PTR_GetTimerInfo_003a9668)(puVar3 + 0xbc);\n    if (param_1[0xcc] != 0) {\n      (*(code *)PTR_Ascii85Initialize_003a8d18)(puVar3);\n    }\n    puVar1 = PTR_ClonePixelChannelMap_003a8d90;\n    uVar11 = param_1[0xcd0];\n    uVar10 = param_1[0xcd1];\n    uVar9 = param_1[0xa8];\n    uVar8 = param_1[0xb3];\n    uVar4 = param_1[0xaa];\n    uVar6 = param_1[0xb4];\n    puVar3[0xab] = param_1[0xab];\n    puVar3[0xcd0] = uVar11;\n    puVar3[0xcd1] = uVar10;\n    puVar3[0xa8] = uVar9;\n    puVar3[0xb3] = uVar8;\n    puVar3[0xaa] = uVar4;\n    uVar4 = (*(code *)puVar1)(uVar6);\n    puVar1 = PTR_CopyMagickString_003a983c;\n    puVar3[0xb4] = uVar4;\n    (*(code *)puVar1)(puVar3 + 0x4d0,param_1 + 0x4d0,0x1000);\n    (*(code *)PTR_CopyMagickString_003a983c)(puVar3 + 0x8d0,param_1 + 0x8d0,0x1000);\n    (*(code *)PTR_CopyMagickString_003a983c)(puVar3 + 0xd0,param_1 + 0xd0,0x1000);\n    puVar1 = PTR_NewImageList_003a8e84;\n    uVar8 = param_1[0xca];\n    uVar6 = param_1[0xcda];\n    uVar4 = param_1[0xcd9];\n    puVar3[0xcb] = param_1[0xcb];\n    puVar3[0xca] = uVar8;\n    puVar3[0xcd5] = 1;\n    puVar3[0xcda] = uVar6;\n    puVar3[0xcd9] = uVar4;\n    uVar4 = (*(code *)puVar1)();\n    puVar3[0xcd8] = uVar4;\n    puVar1 = PTR_CloneBlobInfo_003a97e0;\n    if (param_4 == 0) {\n      uVar4 = (*(code *)PTR_ReferenceBlob_003a9294)(param_1[0xcd2]);\n      puVar3[0xcd2] = uVar4;\n    }\n    else {\n      puVar3[0xcda] = uVar4;\n      puVar3[0xcd9] = uVar4;\n      uVar4 = (*(code *)puVar1)(0);\n      puVar3[0xcd2] = uVar4;\n    }\n    puVar1 = PTR_IsEventLogging_003a97a8;\n    puVar3[0xac] = param_1[0xac];\n    uVar4 = (*(code *)puVar1)();\n    puVar1 = PTR_AcquireSemaphoreInfo_003a962c;\n    puVar3[0xcd4] = uVar4;\n    uVar4 = (*(code *)puVar1)();\n    iVar7 = param_1[10];\n    puVar3[0xcd6] = uVar4;\n    puVar1 = PTR_AcquireQuantumMemory_003a950c;\n    if (iVar7 != 0) {\n      puVar3[9] = param_1[9];\n      iVar17 = param_1[9];\n      iVar7 = (*(code *)puVar1)(iVar17 + 1,0x58);\n      puVar3[10] = iVar7;\n      if (iVar7 == 0) {\n        (*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        (*(code *)PTR_ThrowMagickException_003a8f20)\n                  (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,\n                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);\n        return (undefined4 *)0x0;\n      }\n      (*(code *)PTR_memcpy_003a9358)(iVar7,param_1[10],iVar17 * 0x58);\n    }\n    puVar1 = PTR_LAB_003a88e0;\n    if ((param_2 == 0) || (param_3 == 0)) {\n      if (param_1[0x81] != 0) {\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x81);\n      }\n      if (param_1[0x82] != 0) {\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x82);\n      }\n      uVar4 = (*(code *)PTR_FUN_003a8a84)(param_1[0xb5]);\n      puVar3[0xb5] = uVar4;\n    }\n    else {\n      iVar7 = param_1[6];\n      if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_2;\n        if (param_2 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }\n      dVar18 = (double)(int)param_1[0x8a];\n      if ((int)param_1[0x8a] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar18 = (double)(*(code *)PTR_floor_003a9670)\n                                 (dVar18 * dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1400));\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar7 = param_1[0x8c];\n      dVar20 = *(double *)(puVar1 + 0x1400);\n      puVar3[0x8a] = uVar5;\n      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      puVar2 = PTR_ceil_003a8c20;\n      iVar7 = param_1[0xa6];\n      puVar3[0x8c] = (int)dVar18;\n      dVar19 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      iVar7 = param_1[7];\n      puVar3[0xa6] = (int)dVar19;\n      if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_3;\n        if (param_3 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }\n      dVar18 = (double)(int)param_1[0x8b];\n      if ((int)param_1[0x8b] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar18 = (double)(*(code *)PTR_floor_003a9670)(dVar18 * dVar19 + *(double *)(puVar1 + 0x1400))\n      ;\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar7 = param_1[0x8d];\n      dVar20 = *(double *)(puVar1 + 0x1400);\n      puVar3[0x8b] = uVar5;\n      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      puVar1 = PTR_ceil_003a8c20;\n      iVar7 = param_1[0xa7];\n      puVar3[0x8d] = (int)dVar18;\n      dVar19 = (double)(*(code *)puVar1)((double)iVar7 * dVar19 - dVar20);\n      puVar1 = PTR_FUN_003a8a10;\n      uVar4 = param_1[0xb5];\n      puVar3[0xa7] = (int)dVar19;\n      uVar4 = (*(code *)puVar1)(uVar4);\n      puVar3[0xb5] = uVar4;\n      iVar7 = (*(code *)PTR_SetImageExtent_003a94ac)(puVar3,param_2,param_3,param_5);\n      if (iVar7 == 0) {\n        puVar3 = (undefined4 *)(*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        return puVar3;\n      }\n    }\n    return puVar3;\n  }\n  (*(code *)PTR_ThrowMagickException_003a8f20)\n            (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x31e,\n             0x1a9,PTR_s_t_to_left_003a88e4 + -0x5ac0,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);\n  return (undefined4 *)0x0;\n}\n\n" (function_definition "undefined4 * CloneImage(undefined4 *param_1,int param_2,int param_3,int param_4,int param_5)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined4 *puVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  undefined4 uVar14;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  int iVar17;\n  double dVar18;\n  double dVar19;\n  double dVar20;\n  \n  if (param_1 == (undefined4 *)0x0) {\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x37b0,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x316,PTR_s_t_to_left_003a88e4 + -0x5294)\n    ;\n    return puVar3;\n  }\n  if (param_1[0xcdb] != -0x54535255) {\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x317,PTR_s_t_to_left_003a88e4 + -0x5294)\n    ;\n    return puVar3;\n  }\n  if (param_1[0xcd4] != 0) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x319,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1 + 0xd0);\n  }\n  if (param_5 == 0) {\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31a,\n                        PTR_s_t_to_left_003a88e4 + -0x5294);\n    return puVar3;\n  }\n  if (*(int *)(param_5 + 0x1c) != -0x54535255) {\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31b,\n                        PTR_s_t_to_left_003a88e4 + -0x5294);\n    return puVar3;\n  }\n  if ((param_1[6] != 0) && (param_1[7] != 0)) {\n    puVar3 = (undefined4 *)(*(code *)PTR_AcquireCriticalMemory_003a9354)(0x33d8);\n    (*(code *)PTR_memset_003a96d4)(puVar3,0,0x33d8);\n    puVar1 = PTR_CloneImageInfo_003a919c;\n    uVar16 = param_1[0xb0];\n    uVar15 = param_1[0xb1];\n    uVar14 = param_1[0xb2];\n    uVar13 = param_1[1];\n    uVar12 = param_1[0xaf];\n    uVar11 = param_1[0xcf4];\n    uVar10 = param_1[0xcf3];\n    uVar6 = param_1[7];\n    uVar9 = param_1[6];\n    uVar4 = param_1[0xa9];\n    uVar8 = param_1[0xcd7];\n    *puVar3 = *param_1;\n    puVar3[0xb0] = uVar16;\n    puVar3[0xb1] = uVar15;\n    puVar3[0xb2] = uVar14;\n    puVar3[1] = uVar13;\n    puVar3[0xaf] = uVar12;\n    puVar3[0xcf4] = uVar11;\n    puVar3[0xcf3] = uVar10;\n    puVar3[7] = uVar6;\n    puVar3[6] = uVar9;\n    puVar3[0xcdb] = 0xabacadab;\n    puVar3[0xa9] = uVar4;\n    uVar4 = (*(code *)puVar1)(uVar8);\n    puVar1 = PTR_CloneImageProfiles_003a9348;\n    puVar3[0xcd7] = uVar4;\n    (*(code *)puVar1)(puVar3,param_1);\n    (*(code *)PTR_CloneImageProperties_003a91ac)(puVar3,param_1);\n    (*(code *)PTR_CloneImageArtifacts_003a9500)(puVar3,param_1);\n    (*(code *)PTR_GetTimerInfo_003a9668)(puVar3 + 0xbc);\n    if (param_1[0xcc] != 0) {\n      (*(code *)PTR_Ascii85Initialize_003a8d18)(puVar3);\n    }\n    puVar1 = PTR_ClonePixelChannelMap_003a8d90;\n    uVar11 = param_1[0xcd0];\n    uVar10 = param_1[0xcd1];\n    uVar9 = param_1[0xa8];\n    uVar8 = param_1[0xb3];\n    uVar4 = param_1[0xaa];\n    uVar6 = param_1[0xb4];\n    puVar3[0xab] = param_1[0xab];\n    puVar3[0xcd0] = uVar11;\n    puVar3[0xcd1] = uVar10;\n    puVar3[0xa8] = uVar9;\n    puVar3[0xb3] = uVar8;\n    puVar3[0xaa] = uVar4;\n    uVar4 = (*(code *)puVar1)(uVar6);\n    puVar1 = PTR_CopyMagickString_003a983c;\n    puVar3[0xb4] = uVar4;\n    (*(code *)puVar1)(puVar3 + 0x4d0,param_1 + 0x4d0,0x1000);\n    (*(code *)PTR_CopyMagickString_003a983c)(puVar3 + 0x8d0,param_1 + 0x8d0,0x1000);\n    (*(code *)PTR_CopyMagickString_003a983c)(puVar3 + 0xd0,param_1 + 0xd0,0x1000);\n    puVar1 = PTR_NewImageList_003a8e84;\n    uVar8 = param_1[0xca];\n    uVar6 = param_1[0xcda];\n    uVar4 = param_1[0xcd9];\n    puVar3[0xcb] = param_1[0xcb];\n    puVar3[0xca] = uVar8;\n    puVar3[0xcd5] = 1;\n    puVar3[0xcda] = uVar6;\n    puVar3[0xcd9] = uVar4;\n    uVar4 = (*(code *)puVar1)();\n    puVar3[0xcd8] = uVar4;\n    puVar1 = PTR_CloneBlobInfo_003a97e0;\n    if (param_4 == 0) {\n      uVar4 = (*(code *)PTR_ReferenceBlob_003a9294)(param_1[0xcd2]);\n      puVar3[0xcd2] = uVar4;\n    }\n    else {\n      puVar3[0xcda] = uVar4;\n      puVar3[0xcd9] = uVar4;\n      uVar4 = (*(code *)puVar1)(0);\n      puVar3[0xcd2] = uVar4;\n    }\n    puVar1 = PTR_IsEventLogging_003a97a8;\n    puVar3[0xac] = param_1[0xac];\n    uVar4 = (*(code *)puVar1)();\n    puVar1 = PTR_AcquireSemaphoreInfo_003a962c;\n    puVar3[0xcd4] = uVar4;\n    uVar4 = (*(code *)puVar1)();\n    iVar7 = param_1[10];\n    puVar3[0xcd6] = uVar4;\n    puVar1 = PTR_AcquireQuantumMemory_003a950c;\n    if (iVar7 != 0) {\n      puVar3[9] = param_1[9];\n      iVar17 = param_1[9];\n      iVar7 = (*(code *)puVar1)(iVar17 + 1,0x58);\n      puVar3[10] = iVar7;\n      if (iVar7 == 0) {\n        (*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        (*(code *)PTR_ThrowMagickException_003a8f20)\n                  (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,\n                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);\n        return (undefined4 *)0x0;\n      }\n      (*(code *)PTR_memcpy_003a9358)(iVar7,param_1[10],iVar17 * 0x58);\n    }\n    puVar1 = PTR_LAB_003a88e0;\n    if ((param_2 == 0) || (param_3 == 0)) {\n      if (param_1[0x81] != 0) {\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x81);\n      }\n      if (param_1[0x82] != 0) {\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x82);\n      }\n      uVar4 = (*(code *)PTR_FUN_003a8a84)(param_1[0xb5]);\n      puVar3[0xb5] = uVar4;\n    }\n    else {\n      iVar7 = param_1[6];\n      if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_2;\n        if (param_2 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }\n      dVar18 = (double)(int)param_1[0x8a];\n      if ((int)param_1[0x8a] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar18 = (double)(*(code *)PTR_floor_003a9670)\n                                 (dVar18 * dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1400));\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar7 = param_1[0x8c];\n      dVar20 = *(double *)(puVar1 + 0x1400);\n      puVar3[0x8a] = uVar5;\n      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      puVar2 = PTR_ceil_003a8c20;\n      iVar7 = param_1[0xa6];\n      puVar3[0x8c] = (int)dVar18;\n      dVar19 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      iVar7 = param_1[7];\n      puVar3[0xa6] = (int)dVar19;\n      if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_3;\n        if (param_3 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }\n      dVar18 = (double)(int)param_1[0x8b];\n      if ((int)param_1[0x8b] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar18 = (double)(*(code *)PTR_floor_003a9670)(dVar18 * dVar19 + *(double *)(puVar1 + 0x1400))\n      ;\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar7 = param_1[0x8d];\n      dVar20 = *(double *)(puVar1 + 0x1400);\n      puVar3[0x8b] = uVar5;\n      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      puVar1 = PTR_ceil_003a8c20;\n      iVar7 = param_1[0xa7];\n      puVar3[0x8d] = (int)dVar18;\n      dVar19 = (double)(*(code *)puVar1)((double)iVar7 * dVar19 - dVar20);\n      puVar1 = PTR_FUN_003a8a10;\n      uVar4 = param_1[0xb5];\n      puVar3[0xa7] = (int)dVar19;\n      uVar4 = (*(code *)puVar1)(uVar4);\n      puVar3[0xb5] = uVar4;\n      iVar7 = (*(code *)PTR_SetImageExtent_003a94ac)(puVar3,param_2,param_3,param_5);\n      if (iVar7 == 0) {\n        puVar3 = (undefined4 *)(*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        return puVar3;\n      }\n    }\n    return puVar3;\n  }\n  (*(code *)PTR_ThrowMagickException_003a8f20)\n            (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x31e,\n             0x1a9,PTR_s_t_to_left_003a88e4 + -0x5ac0,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);\n  return (undefined4 *)0x0;\n}" type_identifier (pointer_declarator "* CloneImage(undefined4 *param_1,int param_2,int param_3,int param_4,int param_5)" * (function_declarator "CloneImage(undefined4 *param_1,int param_2,int param_3,int param_4,int param_5)" identifier (parameter_list "(undefined4 *param_1,int param_2,int param_3,int param_4,int param_5)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "int param_5" primitive_type identifier) )))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined4 *puVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  undefined4 uVar14;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  int iVar17;\n  double dVar18;\n  double dVar19;\n  double dVar20;\n  \n  if (param_1 == (undefined4 *)0x0) {\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x37b0,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x316,PTR_s_t_to_left_003a88e4 + -0x5294)\n    ;\n    return puVar3;\n  }\n  if (param_1[0xcdb] != -0x54535255) {\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x317,PTR_s_t_to_left_003a88e4 + -0x5294)\n    ;\n    return puVar3;\n  }\n  if (param_1[0xcd4] != 0) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x319,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1 + 0xd0);\n  }\n  if (param_5 == 0) {\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31a,\n                        PTR_s_t_to_left_003a88e4 + -0x5294);\n    return puVar3;\n  }\n  if (*(int *)(param_5 + 0x1c) != -0x54535255) {\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31b,\n                        PTR_s_t_to_left_003a88e4 + -0x5294);\n    return puVar3;\n  }\n  if ((param_1[6] != 0) && (param_1[7] != 0)) {\n    puVar3 = (undefined4 *)(*(code *)PTR_AcquireCriticalMemory_003a9354)(0x33d8);\n    (*(code *)PTR_memset_003a96d4)(puVar3,0,0x33d8);\n    puVar1 = PTR_CloneImageInfo_003a919c;\n    uVar16 = param_1[0xb0];\n    uVar15 = param_1[0xb1];\n    uVar14 = param_1[0xb2];\n    uVar13 = param_1[1];\n    uVar12 = param_1[0xaf];\n    uVar11 = param_1[0xcf4];\n    uVar10 = param_1[0xcf3];\n    uVar6 = param_1[7];\n    uVar9 = param_1[6];\n    uVar4 = param_1[0xa9];\n    uVar8 = param_1[0xcd7];\n    *puVar3 = *param_1;\n    puVar3[0xb0] = uVar16;\n    puVar3[0xb1] = uVar15;\n    puVar3[0xb2] = uVar14;\n    puVar3[1] = uVar13;\n    puVar3[0xaf] = uVar12;\n    puVar3[0xcf4] = uVar11;\n    puVar3[0xcf3] = uVar10;\n    puVar3[7] = uVar6;\n    puVar3[6] = uVar9;\n    puVar3[0xcdb] = 0xabacadab;\n    puVar3[0xa9] = uVar4;\n    uVar4 = (*(code *)puVar1)(uVar8);\n    puVar1 = PTR_CloneImageProfiles_003a9348;\n    puVar3[0xcd7] = uVar4;\n    (*(code *)puVar1)(puVar3,param_1);\n    (*(code *)PTR_CloneImageProperties_003a91ac)(puVar3,param_1);\n    (*(code *)PTR_CloneImageArtifacts_003a9500)(puVar3,param_1);\n    (*(code *)PTR_GetTimerInfo_003a9668)(puVar3 + 0xbc);\n    if (param_1[0xcc] != 0) {\n      (*(code *)PTR_Ascii85Initialize_003a8d18)(puVar3);\n    }\n    puVar1 = PTR_ClonePixelChannelMap_003a8d90;\n    uVar11 = param_1[0xcd0];\n    uVar10 = param_1[0xcd1];\n    uVar9 = param_1[0xa8];\n    uVar8 = param_1[0xb3];\n    uVar4 = param_1[0xaa];\n    uVar6 = param_1[0xb4];\n    puVar3[0xab] = param_1[0xab];\n    puVar3[0xcd0] = uVar11;\n    puVar3[0xcd1] = uVar10;\n    puVar3[0xa8] = uVar9;\n    puVar3[0xb3] = uVar8;\n    puVar3[0xaa] = uVar4;\n    uVar4 = (*(code *)puVar1)(uVar6);\n    puVar1 = PTR_CopyMagickString_003a983c;\n    puVar3[0xb4] = uVar4;\n    (*(code *)puVar1)(puVar3 + 0x4d0,param_1 + 0x4d0,0x1000);\n    (*(code *)PTR_CopyMagickString_003a983c)(puVar3 + 0x8d0,param_1 + 0x8d0,0x1000);\n    (*(code *)PTR_CopyMagickString_003a983c)(puVar3 + 0xd0,param_1 + 0xd0,0x1000);\n    puVar1 = PTR_NewImageList_003a8e84;\n    uVar8 = param_1[0xca];\n    uVar6 = param_1[0xcda];\n    uVar4 = param_1[0xcd9];\n    puVar3[0xcb] = param_1[0xcb];\n    puVar3[0xca] = uVar8;\n    puVar3[0xcd5] = 1;\n    puVar3[0xcda] = uVar6;\n    puVar3[0xcd9] = uVar4;\n    uVar4 = (*(code *)puVar1)();\n    puVar3[0xcd8] = uVar4;\n    puVar1 = PTR_CloneBlobInfo_003a97e0;\n    if (param_4 == 0) {\n      uVar4 = (*(code *)PTR_ReferenceBlob_003a9294)(param_1[0xcd2]);\n      puVar3[0xcd2] = uVar4;\n    }\n    else {\n      puVar3[0xcda] = uVar4;\n      puVar3[0xcd9] = uVar4;\n      uVar4 = (*(code *)puVar1)(0);\n      puVar3[0xcd2] = uVar4;\n    }\n    puVar1 = PTR_IsEventLogging_003a97a8;\n    puVar3[0xac] = param_1[0xac];\n    uVar4 = (*(code *)puVar1)();\n    puVar1 = PTR_AcquireSemaphoreInfo_003a962c;\n    puVar3[0xcd4] = uVar4;\n    uVar4 = (*(code *)puVar1)();\n    iVar7 = param_1[10];\n    puVar3[0xcd6] = uVar4;\n    puVar1 = PTR_AcquireQuantumMemory_003a950c;\n    if (iVar7 != 0) {\n      puVar3[9] = param_1[9];\n      iVar17 = param_1[9];\n      iVar7 = (*(code *)puVar1)(iVar17 + 1,0x58);\n      puVar3[10] = iVar7;\n      if (iVar7 == 0) {\n        (*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        (*(code *)PTR_ThrowMagickException_003a8f20)\n                  (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,\n                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);\n        return (undefined4 *)0x0;\n      }\n      (*(code *)PTR_memcpy_003a9358)(iVar7,param_1[10],iVar17 * 0x58);\n    }\n    puVar1 = PTR_LAB_003a88e0;\n    if ((param_2 == 0) || (param_3 == 0)) {\n      if (param_1[0x81] != 0) {\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x81);\n      }\n      if (param_1[0x82] != 0) {\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x82);\n      }\n      uVar4 = (*(code *)PTR_FUN_003a8a84)(param_1[0xb5]);\n      puVar3[0xb5] = uVar4;\n    }\n    else {\n      iVar7 = param_1[6];\n      if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_2;\n        if (param_2 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }\n      dVar18 = (double)(int)param_1[0x8a];\n      if ((int)param_1[0x8a] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar18 = (double)(*(code *)PTR_floor_003a9670)\n                                 (dVar18 * dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1400));\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar7 = param_1[0x8c];\n      dVar20 = *(double *)(puVar1 + 0x1400);\n      puVar3[0x8a] = uVar5;\n      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      puVar2 = PTR_ceil_003a8c20;\n      iVar7 = param_1[0xa6];\n      puVar3[0x8c] = (int)dVar18;\n      dVar19 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      iVar7 = param_1[7];\n      puVar3[0xa6] = (int)dVar19;\n      if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_3;\n        if (param_3 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }\n      dVar18 = (double)(int)param_1[0x8b];\n      if ((int)param_1[0x8b] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar18 = (double)(*(code *)PTR_floor_003a9670)(dVar18 * dVar19 + *(double *)(puVar1 + 0x1400))\n      ;\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar7 = param_1[0x8d];\n      dVar20 = *(double *)(puVar1 + 0x1400);\n      puVar3[0x8b] = uVar5;\n      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      puVar1 = PTR_ceil_003a8c20;\n      iVar7 = param_1[0xa7];\n      puVar3[0x8d] = (int)dVar18;\n      dVar19 = (double)(*(code *)puVar1)((double)iVar7 * dVar19 - dVar20);\n      puVar1 = PTR_FUN_003a8a10;\n      uVar4 = param_1[0xb5];\n      puVar3[0xa7] = (int)dVar19;\n      uVar4 = (*(code *)puVar1)(uVar4);\n      puVar3[0xb5] = uVar4;\n      iVar7 = (*(code *)PTR_SetImageExtent_003a94ac)(puVar3,param_2,param_3,param_5);\n      if (iVar7 == 0) {\n        puVar3 = (undefined4 *)(*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        return puVar3;\n      }\n    }\n    return puVar3;\n  }\n  (*(code *)PTR_ThrowMagickException_003a8f20)\n            (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x31e,\n             0x1a9,PTR_s_t_to_left_003a88e4 + -0x5ac0,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);\n  return (undefined4 *)0x0;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "undefined4 uVar13;" type_identifier identifier ;) (declaration "undefined4 uVar14;" type_identifier identifier ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "undefined4 uVar16;" type_identifier identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "double dVar18;" primitive_type identifier ;) (declaration "double dVar19;" primitive_type identifier ;) (declaration "double dVar20;" primitive_type identifier ;) (if_statement "if (param_1 == (undefined4 *)0x0) {\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x37b0,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x316,PTR_s_t_to_left_003a88e4 + -0x5294)\n    ;\n    return puVar3;\n  }" if (parenthesized_expression "(param_1 == (undefined4 *)0x0)" ( (binary_expression "param_1 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x37b0,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x316,PTR_s_t_to_left_003a88e4 + -0x5294)\n    ;\n    return puVar3;\n  }" { (expression_statement "puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x37b0,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x316,PTR_s_t_to_left_003a88e4 + -0x5294)\n    ;" (assignment_expression "puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x37b0,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x316,PTR_s_t_to_left_003a88e4 + -0x5294)" identifier = (cast_expression "(undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x37b0,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x316,PTR_s_t_to_left_003a88e4 + -0x5294)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x37b0,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x316,PTR_s_t_to_left_003a88e4 + -0x5294)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x37b0,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x316,PTR_s_t_to_left_003a88e4 + -0x5294)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x37b0" identifier + number_literal) , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5b4c" identifier + number_literal) , number_literal , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5294" identifier + number_literal) ))))) ;) (return_statement "return puVar3;" return identifier ;) })) (if_statement "if (param_1[0xcdb] != -0x54535255) {\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x317,PTR_s_t_to_left_003a88e4 + -0x5294)\n    ;\n    return puVar3;\n  }" if (parenthesized_expression "(param_1[0xcdb] != -0x54535255)" ( (binary_expression "param_1[0xcdb] != -0x54535255" (subscript_expression "param_1[0xcdb]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x317,PTR_s_t_to_left_003a88e4 + -0x5294)\n    ;\n    return puVar3;\n  }" { (expression_statement "puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x317,PTR_s_t_to_left_003a88e4 + -0x5294)\n    ;" (assignment_expression "puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x317,PTR_s_t_to_left_003a88e4 + -0x5294)" identifier = (cast_expression "(undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x317,PTR_s_t_to_left_003a88e4 + -0x5294)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x317,PTR_s_t_to_left_003a88e4 + -0x5294)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x317,PTR_s_t_to_left_003a88e4 + -0x5294)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784" identifier + number_literal) , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5b4c" identifier + number_literal) , number_literal , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5294" identifier + number_literal) ))))) ;) (return_statement "return puVar3;" return identifier ;) })) (if_statement "if (param_1[0xcd4] != 0) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x319,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1 + 0xd0);\n  }" if (parenthesized_expression "(param_1[0xcd4] != 0)" ( (binary_expression "param_1[0xcd4] != 0" (subscript_expression "param_1[0xcd4]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x319,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1 + 0xd0);\n  }" { (expression_statement "(*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x319,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1 + 0xd0);" (call_expression "(*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x319,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1 + 0xd0)" (parenthesized_expression "(*(code *)PTR_LogMagickEvent_003a91e0)" ( (pointer_expression "*(code *)PTR_LogMagickEvent_003a91e0" * (cast_expression "(code *)PTR_LogMagickEvent_003a91e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x8000,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x319,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1 + 0xd0)" ( number_literal , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5b4c" identifier + number_literal) , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x52a0" identifier + number_literal) , number_literal , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x62ac" identifier + number_literal) , (binary_expression "param_1 + 0xd0" identifier + number_literal) ))) ;) })) (if_statement "if (param_5 == 0) {\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31a,\n                        PTR_s_t_to_left_003a88e4 + -0x5294);\n    return puVar3;\n  }" if (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) (compound_statement "{\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31a,\n                        PTR_s_t_to_left_003a88e4 + -0x5294);\n    return puVar3;\n  }" { (expression_statement "puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31a,\n                        PTR_s_t_to_left_003a88e4 + -0x5294);" (assignment_expression "puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31a,\n                        PTR_s_t_to_left_003a88e4 + -0x5294)" identifier = (cast_expression "(undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31a,\n                        PTR_s_t_to_left_003a88e4 + -0x5294)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31a,\n                        PTR_s_t_to_left_003a88e4 + -0x5294)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_003a88e0 + 0x1cac,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31a,\n                        PTR_s_t_to_left_003a88e4 + -0x5294)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1cac" identifier + number_literal) , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5b4c" identifier + number_literal) , number_literal , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5294" identifier + number_literal) ))))) ;) (return_statement "return puVar3;" return identifier ;) })) (if_statement "if (*(int *)(param_5 + 0x1c) != -0x54535255) {\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31b,\n                        PTR_s_t_to_left_003a88e4 + -0x5294);\n    return puVar3;\n  }" if (parenthesized_expression "(*(int *)(param_5 + 0x1c) != -0x54535255)" ( (binary_expression "*(int *)(param_5 + 0x1c) != -0x54535255" (pointer_expression "*(int *)(param_5 + 0x1c)" * (cast_expression "(int *)(param_5 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x1c)" ( (binary_expression "param_5 + 0x1c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31b,\n                        PTR_s_t_to_left_003a88e4 + -0x5294);\n    return puVar3;\n  }" { (expression_statement "puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31b,\n                        PTR_s_t_to_left_003a88e4 + -0x5294);" (assignment_expression "puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31b,\n                        PTR_s_t_to_left_003a88e4 + -0x5294)" identifier = (cast_expression "(undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31b,\n                        PTR_s_t_to_left_003a88e4 + -0x5294)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31b,\n                        PTR_s_t_to_left_003a88e4 + -0x5294)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_003a88e0 + 0x294c,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31b,\n                        PTR_s_t_to_left_003a88e4 + -0x5294)" ( (binary_expression "PTR_LAB_003a88e0 + 0x294c" identifier + number_literal) , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5b4c" identifier + number_literal) , number_literal , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5294" identifier + number_literal) ))))) ;) (return_statement "return puVar3;" return identifier ;) })) (if_statement "if ((param_1[6] != 0) && (param_1[7] != 0)) {\n    puVar3 = (undefined4 *)(*(code *)PTR_AcquireCriticalMemory_003a9354)(0x33d8);\n    (*(code *)PTR_memset_003a96d4)(puVar3,0,0x33d8);\n    puVar1 = PTR_CloneImageInfo_003a919c;\n    uVar16 = param_1[0xb0];\n    uVar15 = param_1[0xb1];\n    uVar14 = param_1[0xb2];\n    uVar13 = param_1[1];\n    uVar12 = param_1[0xaf];\n    uVar11 = param_1[0xcf4];\n    uVar10 = param_1[0xcf3];\n    uVar6 = param_1[7];\n    uVar9 = param_1[6];\n    uVar4 = param_1[0xa9];\n    uVar8 = param_1[0xcd7];\n    *puVar3 = *param_1;\n    puVar3[0xb0] = uVar16;\n    puVar3[0xb1] = uVar15;\n    puVar3[0xb2] = uVar14;\n    puVar3[1] = uVar13;\n    puVar3[0xaf] = uVar12;\n    puVar3[0xcf4] = uVar11;\n    puVar3[0xcf3] = uVar10;\n    puVar3[7] = uVar6;\n    puVar3[6] = uVar9;\n    puVar3[0xcdb] = 0xabacadab;\n    puVar3[0xa9] = uVar4;\n    uVar4 = (*(code *)puVar1)(uVar8);\n    puVar1 = PTR_CloneImageProfiles_003a9348;\n    puVar3[0xcd7] = uVar4;\n    (*(code *)puVar1)(puVar3,param_1);\n    (*(code *)PTR_CloneImageProperties_003a91ac)(puVar3,param_1);\n    (*(code *)PTR_CloneImageArtifacts_003a9500)(puVar3,param_1);\n    (*(code *)PTR_GetTimerInfo_003a9668)(puVar3 + 0xbc);\n    if (param_1[0xcc] != 0) {\n      (*(code *)PTR_Ascii85Initialize_003a8d18)(puVar3);\n    }\n    puVar1 = PTR_ClonePixelChannelMap_003a8d90;\n    uVar11 = param_1[0xcd0];\n    uVar10 = param_1[0xcd1];\n    uVar9 = param_1[0xa8];\n    uVar8 = param_1[0xb3];\n    uVar4 = param_1[0xaa];\n    uVar6 = param_1[0xb4];\n    puVar3[0xab] = param_1[0xab];\n    puVar3[0xcd0] = uVar11;\n    puVar3[0xcd1] = uVar10;\n    puVar3[0xa8] = uVar9;\n    puVar3[0xb3] = uVar8;\n    puVar3[0xaa] = uVar4;\n    uVar4 = (*(code *)puVar1)(uVar6);\n    puVar1 = PTR_CopyMagickString_003a983c;\n    puVar3[0xb4] = uVar4;\n    (*(code *)puVar1)(puVar3 + 0x4d0,param_1 + 0x4d0,0x1000);\n    (*(code *)PTR_CopyMagickString_003a983c)(puVar3 + 0x8d0,param_1 + 0x8d0,0x1000);\n    (*(code *)PTR_CopyMagickString_003a983c)(puVar3 + 0xd0,param_1 + 0xd0,0x1000);\n    puVar1 = PTR_NewImageList_003a8e84;\n    uVar8 = param_1[0xca];\n    uVar6 = param_1[0xcda];\n    uVar4 = param_1[0xcd9];\n    puVar3[0xcb] = param_1[0xcb];\n    puVar3[0xca] = uVar8;\n    puVar3[0xcd5] = 1;\n    puVar3[0xcda] = uVar6;\n    puVar3[0xcd9] = uVar4;\n    uVar4 = (*(code *)puVar1)();\n    puVar3[0xcd8] = uVar4;\n    puVar1 = PTR_CloneBlobInfo_003a97e0;\n    if (param_4 == 0) {\n      uVar4 = (*(code *)PTR_ReferenceBlob_003a9294)(param_1[0xcd2]);\n      puVar3[0xcd2] = uVar4;\n    }\n    else {\n      puVar3[0xcda] = uVar4;\n      puVar3[0xcd9] = uVar4;\n      uVar4 = (*(code *)puVar1)(0);\n      puVar3[0xcd2] = uVar4;\n    }\n    puVar1 = PTR_IsEventLogging_003a97a8;\n    puVar3[0xac] = param_1[0xac];\n    uVar4 = (*(code *)puVar1)();\n    puVar1 = PTR_AcquireSemaphoreInfo_003a962c;\n    puVar3[0xcd4] = uVar4;\n    uVar4 = (*(code *)puVar1)();\n    iVar7 = param_1[10];\n    puVar3[0xcd6] = uVar4;\n    puVar1 = PTR_AcquireQuantumMemory_003a950c;\n    if (iVar7 != 0) {\n      puVar3[9] = param_1[9];\n      iVar17 = param_1[9];\n      iVar7 = (*(code *)puVar1)(iVar17 + 1,0x58);\n      puVar3[10] = iVar7;\n      if (iVar7 == 0) {\n        (*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        (*(code *)PTR_ThrowMagickException_003a8f20)\n                  (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,\n                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);\n        return (undefined4 *)0x0;\n      }\n      (*(code *)PTR_memcpy_003a9358)(iVar7,param_1[10],iVar17 * 0x58);\n    }\n    puVar1 = PTR_LAB_003a88e0;\n    if ((param_2 == 0) || (param_3 == 0)) {\n      if (param_1[0x81] != 0) {\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x81);\n      }\n      if (param_1[0x82] != 0) {\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x82);\n      }\n      uVar4 = (*(code *)PTR_FUN_003a8a84)(param_1[0xb5]);\n      puVar3[0xb5] = uVar4;\n    }\n    else {\n      iVar7 = param_1[6];\n      if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_2;\n        if (param_2 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }\n      dVar18 = (double)(int)param_1[0x8a];\n      if ((int)param_1[0x8a] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar18 = (double)(*(code *)PTR_floor_003a9670)\n                                 (dVar18 * dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1400));\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar7 = param_1[0x8c];\n      dVar20 = *(double *)(puVar1 + 0x1400);\n      puVar3[0x8a] = uVar5;\n      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      puVar2 = PTR_ceil_003a8c20;\n      iVar7 = param_1[0xa6];\n      puVar3[0x8c] = (int)dVar18;\n      dVar19 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      iVar7 = param_1[7];\n      puVar3[0xa6] = (int)dVar19;\n      if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_3;\n        if (param_3 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }\n      dVar18 = (double)(int)param_1[0x8b];\n      if ((int)param_1[0x8b] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar18 = (double)(*(code *)PTR_floor_003a9670)(dVar18 * dVar19 + *(double *)(puVar1 + 0x1400))\n      ;\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar7 = param_1[0x8d];\n      dVar20 = *(double *)(puVar1 + 0x1400);\n      puVar3[0x8b] = uVar5;\n      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      puVar1 = PTR_ceil_003a8c20;\n      iVar7 = param_1[0xa7];\n      puVar3[0x8d] = (int)dVar18;\n      dVar19 = (double)(*(code *)puVar1)((double)iVar7 * dVar19 - dVar20);\n      puVar1 = PTR_FUN_003a8a10;\n      uVar4 = param_1[0xb5];\n      puVar3[0xa7] = (int)dVar19;\n      uVar4 = (*(code *)puVar1)(uVar4);\n      puVar3[0xb5] = uVar4;\n      iVar7 = (*(code *)PTR_SetImageExtent_003a94ac)(puVar3,param_2,param_3,param_5);\n      if (iVar7 == 0) {\n        puVar3 = (undefined4 *)(*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        return puVar3;\n      }\n    }\n    return puVar3;\n  }" if (parenthesized_expression "((param_1[6] != 0) && (param_1[7] != 0))" ( (binary_expression "(param_1[6] != 0) && (param_1[7] != 0)" (parenthesized_expression "(param_1[6] != 0)" ( (binary_expression "param_1[6] != 0" (subscript_expression "param_1[6]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(param_1[7] != 0)" ( (binary_expression "param_1[7] != 0" (subscript_expression "param_1[7]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n    puVar3 = (undefined4 *)(*(code *)PTR_AcquireCriticalMemory_003a9354)(0x33d8);\n    (*(code *)PTR_memset_003a96d4)(puVar3,0,0x33d8);\n    puVar1 = PTR_CloneImageInfo_003a919c;\n    uVar16 = param_1[0xb0];\n    uVar15 = param_1[0xb1];\n    uVar14 = param_1[0xb2];\n    uVar13 = param_1[1];\n    uVar12 = param_1[0xaf];\n    uVar11 = param_1[0xcf4];\n    uVar10 = param_1[0xcf3];\n    uVar6 = param_1[7];\n    uVar9 = param_1[6];\n    uVar4 = param_1[0xa9];\n    uVar8 = param_1[0xcd7];\n    *puVar3 = *param_1;\n    puVar3[0xb0] = uVar16;\n    puVar3[0xb1] = uVar15;\n    puVar3[0xb2] = uVar14;\n    puVar3[1] = uVar13;\n    puVar3[0xaf] = uVar12;\n    puVar3[0xcf4] = uVar11;\n    puVar3[0xcf3] = uVar10;\n    puVar3[7] = uVar6;\n    puVar3[6] = uVar9;\n    puVar3[0xcdb] = 0xabacadab;\n    puVar3[0xa9] = uVar4;\n    uVar4 = (*(code *)puVar1)(uVar8);\n    puVar1 = PTR_CloneImageProfiles_003a9348;\n    puVar3[0xcd7] = uVar4;\n    (*(code *)puVar1)(puVar3,param_1);\n    (*(code *)PTR_CloneImageProperties_003a91ac)(puVar3,param_1);\n    (*(code *)PTR_CloneImageArtifacts_003a9500)(puVar3,param_1);\n    (*(code *)PTR_GetTimerInfo_003a9668)(puVar3 + 0xbc);\n    if (param_1[0xcc] != 0) {\n      (*(code *)PTR_Ascii85Initialize_003a8d18)(puVar3);\n    }\n    puVar1 = PTR_ClonePixelChannelMap_003a8d90;\n    uVar11 = param_1[0xcd0];\n    uVar10 = param_1[0xcd1];\n    uVar9 = param_1[0xa8];\n    uVar8 = param_1[0xb3];\n    uVar4 = param_1[0xaa];\n    uVar6 = param_1[0xb4];\n    puVar3[0xab] = param_1[0xab];\n    puVar3[0xcd0] = uVar11;\n    puVar3[0xcd1] = uVar10;\n    puVar3[0xa8] = uVar9;\n    puVar3[0xb3] = uVar8;\n    puVar3[0xaa] = uVar4;\n    uVar4 = (*(code *)puVar1)(uVar6);\n    puVar1 = PTR_CopyMagickString_003a983c;\n    puVar3[0xb4] = uVar4;\n    (*(code *)puVar1)(puVar3 + 0x4d0,param_1 + 0x4d0,0x1000);\n    (*(code *)PTR_CopyMagickString_003a983c)(puVar3 + 0x8d0,param_1 + 0x8d0,0x1000);\n    (*(code *)PTR_CopyMagickString_003a983c)(puVar3 + 0xd0,param_1 + 0xd0,0x1000);\n    puVar1 = PTR_NewImageList_003a8e84;\n    uVar8 = param_1[0xca];\n    uVar6 = param_1[0xcda];\n    uVar4 = param_1[0xcd9];\n    puVar3[0xcb] = param_1[0xcb];\n    puVar3[0xca] = uVar8;\n    puVar3[0xcd5] = 1;\n    puVar3[0xcda] = uVar6;\n    puVar3[0xcd9] = uVar4;\n    uVar4 = (*(code *)puVar1)();\n    puVar3[0xcd8] = uVar4;\n    puVar1 = PTR_CloneBlobInfo_003a97e0;\n    if (param_4 == 0) {\n      uVar4 = (*(code *)PTR_ReferenceBlob_003a9294)(param_1[0xcd2]);\n      puVar3[0xcd2] = uVar4;\n    }\n    else {\n      puVar3[0xcda] = uVar4;\n      puVar3[0xcd9] = uVar4;\n      uVar4 = (*(code *)puVar1)(0);\n      puVar3[0xcd2] = uVar4;\n    }\n    puVar1 = PTR_IsEventLogging_003a97a8;\n    puVar3[0xac] = param_1[0xac];\n    uVar4 = (*(code *)puVar1)();\n    puVar1 = PTR_AcquireSemaphoreInfo_003a962c;\n    puVar3[0xcd4] = uVar4;\n    uVar4 = (*(code *)puVar1)();\n    iVar7 = param_1[10];\n    puVar3[0xcd6] = uVar4;\n    puVar1 = PTR_AcquireQuantumMemory_003a950c;\n    if (iVar7 != 0) {\n      puVar3[9] = param_1[9];\n      iVar17 = param_1[9];\n      iVar7 = (*(code *)puVar1)(iVar17 + 1,0x58);\n      puVar3[10] = iVar7;\n      if (iVar7 == 0) {\n        (*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        (*(code *)PTR_ThrowMagickException_003a8f20)\n                  (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,\n                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);\n        return (undefined4 *)0x0;\n      }\n      (*(code *)PTR_memcpy_003a9358)(iVar7,param_1[10],iVar17 * 0x58);\n    }\n    puVar1 = PTR_LAB_003a88e0;\n    if ((param_2 == 0) || (param_3 == 0)) {\n      if (param_1[0x81] != 0) {\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x81);\n      }\n      if (param_1[0x82] != 0) {\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x82);\n      }\n      uVar4 = (*(code *)PTR_FUN_003a8a84)(param_1[0xb5]);\n      puVar3[0xb5] = uVar4;\n    }\n    else {\n      iVar7 = param_1[6];\n      if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_2;\n        if (param_2 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }\n      dVar18 = (double)(int)param_1[0x8a];\n      if ((int)param_1[0x8a] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar18 = (double)(*(code *)PTR_floor_003a9670)\n                                 (dVar18 * dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1400));\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar7 = param_1[0x8c];\n      dVar20 = *(double *)(puVar1 + 0x1400);\n      puVar3[0x8a] = uVar5;\n      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      puVar2 = PTR_ceil_003a8c20;\n      iVar7 = param_1[0xa6];\n      puVar3[0x8c] = (int)dVar18;\n      dVar19 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      iVar7 = param_1[7];\n      puVar3[0xa6] = (int)dVar19;\n      if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_3;\n        if (param_3 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }\n      dVar18 = (double)(int)param_1[0x8b];\n      if ((int)param_1[0x8b] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar18 = (double)(*(code *)PTR_floor_003a9670)(dVar18 * dVar19 + *(double *)(puVar1 + 0x1400))\n      ;\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar7 = param_1[0x8d];\n      dVar20 = *(double *)(puVar1 + 0x1400);\n      puVar3[0x8b] = uVar5;\n      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      puVar1 = PTR_ceil_003a8c20;\n      iVar7 = param_1[0xa7];\n      puVar3[0x8d] = (int)dVar18;\n      dVar19 = (double)(*(code *)puVar1)((double)iVar7 * dVar19 - dVar20);\n      puVar1 = PTR_FUN_003a8a10;\n      uVar4 = param_1[0xb5];\n      puVar3[0xa7] = (int)dVar19;\n      uVar4 = (*(code *)puVar1)(uVar4);\n      puVar3[0xb5] = uVar4;\n      iVar7 = (*(code *)PTR_SetImageExtent_003a94ac)(puVar3,param_2,param_3,param_5);\n      if (iVar7 == 0) {\n        puVar3 = (undefined4 *)(*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        return puVar3;\n      }\n    }\n    return puVar3;\n  }" { (expression_statement "puVar3 = (undefined4 *)(*(code *)PTR_AcquireCriticalMemory_003a9354)(0x33d8);" (assignment_expression "puVar3 = (undefined4 *)(*(code *)PTR_AcquireCriticalMemory_003a9354)(0x33d8)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_AcquireCriticalMemory_003a9354)(0x33d8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_AcquireCriticalMemory_003a9354)(0x33d8)" (parenthesized_expression "(*(code *)PTR_AcquireCriticalMemory_003a9354)" ( (pointer_expression "*(code *)PTR_AcquireCriticalMemory_003a9354" * (cast_expression "(code *)PTR_AcquireCriticalMemory_003a9354" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x33d8)" ( number_literal ))))) ;) (expression_statement "(*(code *)PTR_memset_003a96d4)(puVar3,0,0x33d8);" (call_expression "(*(code *)PTR_memset_003a96d4)(puVar3,0,0x33d8)" (parenthesized_expression "(*(code *)PTR_memset_003a96d4)" ( (pointer_expression "*(code *)PTR_memset_003a96d4" * (cast_expression "(code *)PTR_memset_003a96d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar3,0,0x33d8)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "puVar1 = PTR_CloneImageInfo_003a919c;" (assignment_expression "puVar1 = PTR_CloneImageInfo_003a919c" identifier = identifier) ;) (expression_statement "uVar16 = param_1[0xb0];" (assignment_expression "uVar16 = param_1[0xb0]" identifier = (subscript_expression "param_1[0xb0]" identifier [ number_literal ])) ;) (expression_statement "uVar15 = param_1[0xb1];" (assignment_expression "uVar15 = param_1[0xb1]" identifier = (subscript_expression "param_1[0xb1]" identifier [ number_literal ])) ;) (expression_statement "uVar14 = param_1[0xb2];" (assignment_expression "uVar14 = param_1[0xb2]" identifier = (subscript_expression "param_1[0xb2]" identifier [ number_literal ])) ;) (expression_statement "uVar13 = param_1[1];" (assignment_expression "uVar13 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "uVar12 = param_1[0xaf];" (assignment_expression "uVar12 = param_1[0xaf]" identifier = (subscript_expression "param_1[0xaf]" identifier [ number_literal ])) ;) (expression_statement "uVar11 = param_1[0xcf4];" (assignment_expression "uVar11 = param_1[0xcf4]" identifier = (subscript_expression "param_1[0xcf4]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = param_1[0xcf3];" (assignment_expression "uVar10 = param_1[0xcf3]" identifier = (subscript_expression "param_1[0xcf3]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = param_1[7];" (assignment_expression "uVar6 = param_1[7]" identifier = (subscript_expression "param_1[7]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = param_1[6];" (assignment_expression "uVar9 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = param_1[0xa9];" (assignment_expression "uVar4 = param_1[0xa9]" identifier = (subscript_expression "param_1[0xa9]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = param_1[0xcd7];" (assignment_expression "uVar8 = param_1[0xcd7]" identifier = (subscript_expression "param_1[0xcd7]" identifier [ number_literal ])) ;) (expression_statement "*puVar3 = *param_1;" (assignment_expression "*puVar3 = *param_1" (pointer_expression "*puVar3" * identifier) = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "puVar3[0xb0] = uVar16;" (assignment_expression "puVar3[0xb0] = uVar16" (subscript_expression "puVar3[0xb0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[0xb1] = uVar15;" (assignment_expression "puVar3[0xb1] = uVar15" (subscript_expression "puVar3[0xb1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[0xb2] = uVar14;" (assignment_expression "puVar3[0xb2] = uVar14" (subscript_expression "puVar3[0xb2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[1] = uVar13;" (assignment_expression "puVar3[1] = uVar13" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[0xaf] = uVar12;" (assignment_expression "puVar3[0xaf] = uVar12" (subscript_expression "puVar3[0xaf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[0xcf4] = uVar11;" (assignment_expression "puVar3[0xcf4] = uVar11" (subscript_expression "puVar3[0xcf4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[0xcf3] = uVar10;" (assignment_expression "puVar3[0xcf3] = uVar10" (subscript_expression "puVar3[0xcf3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[7] = uVar6;" (assignment_expression "puVar3[7] = uVar6" (subscript_expression "puVar3[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[6] = uVar9;" (assignment_expression "puVar3[6] = uVar9" (subscript_expression "puVar3[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[0xcdb] = 0xabacadab;" (assignment_expression "puVar3[0xcdb] = 0xabacadab" (subscript_expression "puVar3[0xcdb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xa9] = uVar4;" (assignment_expression "puVar3[0xa9] = uVar4" (subscript_expression "puVar3[0xa9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar4 = (*(code *)puVar1)(uVar8);" (assignment_expression "uVar4 = (*(code *)puVar1)(uVar8)" identifier = (call_expression "(*(code *)puVar1)(uVar8)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar8)" ( identifier )))) ;) (expression_statement "puVar1 = PTR_CloneImageProfiles_003a9348;" (assignment_expression "puVar1 = PTR_CloneImageProfiles_003a9348" identifier = identifier) ;) (expression_statement "puVar3[0xcd7] = uVar4;" (assignment_expression "puVar3[0xcd7] = uVar4" (subscript_expression "puVar3[0xcd7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "(*(code *)puVar1)(puVar3,param_1);" (call_expression "(*(code *)puVar1)(puVar3,param_1)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar3,param_1)" ( identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_CloneImageProperties_003a91ac)(puVar3,param_1);" (call_expression "(*(code *)PTR_CloneImageProperties_003a91ac)(puVar3,param_1)" (parenthesized_expression "(*(code *)PTR_CloneImageProperties_003a91ac)" ( (pointer_expression "*(code *)PTR_CloneImageProperties_003a91ac" * (cast_expression "(code *)PTR_CloneImageProperties_003a91ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar3,param_1)" ( identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_CloneImageArtifacts_003a9500)(puVar3,param_1);" (call_expression "(*(code *)PTR_CloneImageArtifacts_003a9500)(puVar3,param_1)" (parenthesized_expression "(*(code *)PTR_CloneImageArtifacts_003a9500)" ( (pointer_expression "*(code *)PTR_CloneImageArtifacts_003a9500" * (cast_expression "(code *)PTR_CloneImageArtifacts_003a9500" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar3,param_1)" ( identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_GetTimerInfo_003a9668)(puVar3 + 0xbc);" (call_expression "(*(code *)PTR_GetTimerInfo_003a9668)(puVar3 + 0xbc)" (parenthesized_expression "(*(code *)PTR_GetTimerInfo_003a9668)" ( (pointer_expression "*(code *)PTR_GetTimerInfo_003a9668" * (cast_expression "(code *)PTR_GetTimerInfo_003a9668" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar3 + 0xbc)" ( (binary_expression "puVar3 + 0xbc" identifier + number_literal) ))) ;) (if_statement "if (param_1[0xcc] != 0) {\n      (*(code *)PTR_Ascii85Initialize_003a8d18)(puVar3);\n    }" if (parenthesized_expression "(param_1[0xcc] != 0)" ( (binary_expression "param_1[0xcc] != 0" (subscript_expression "param_1[0xcc]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      (*(code *)PTR_Ascii85Initialize_003a8d18)(puVar3);\n    }" { (expression_statement "(*(code *)PTR_Ascii85Initialize_003a8d18)(puVar3);" (call_expression "(*(code *)PTR_Ascii85Initialize_003a8d18)(puVar3)" (parenthesized_expression "(*(code *)PTR_Ascii85Initialize_003a8d18)" ( (pointer_expression "*(code *)PTR_Ascii85Initialize_003a8d18" * (cast_expression "(code *)PTR_Ascii85Initialize_003a8d18" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar3)" ( identifier ))) ;) })) (expression_statement "puVar1 = PTR_ClonePixelChannelMap_003a8d90;" (assignment_expression "puVar1 = PTR_ClonePixelChannelMap_003a8d90" identifier = identifier) ;) (expression_statement "uVar11 = param_1[0xcd0];" (assignment_expression "uVar11 = param_1[0xcd0]" identifier = (subscript_expression "param_1[0xcd0]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = param_1[0xcd1];" (assignment_expression "uVar10 = param_1[0xcd1]" identifier = (subscript_expression "param_1[0xcd1]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = param_1[0xa8];" (assignment_expression "uVar9 = param_1[0xa8]" identifier = (subscript_expression "param_1[0xa8]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = param_1[0xb3];" (assignment_expression "uVar8 = param_1[0xb3]" identifier = (subscript_expression "param_1[0xb3]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = param_1[0xaa];" (assignment_expression "uVar4 = param_1[0xaa]" identifier = (subscript_expression "param_1[0xaa]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = param_1[0xb4];" (assignment_expression "uVar6 = param_1[0xb4]" identifier = (subscript_expression "param_1[0xb4]" identifier [ number_literal ])) ;) (expression_statement "puVar3[0xab] = param_1[0xab];" (assignment_expression "puVar3[0xab] = param_1[0xab]" (subscript_expression "puVar3[0xab]" identifier [ number_literal ]) = (subscript_expression "param_1[0xab]" identifier [ number_literal ])) ;) (expression_statement "puVar3[0xcd0] = uVar11;" (assignment_expression "puVar3[0xcd0] = uVar11" (subscript_expression "puVar3[0xcd0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[0xcd1] = uVar10;" (assignment_expression "puVar3[0xcd1] = uVar10" (subscript_expression "puVar3[0xcd1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[0xa8] = uVar9;" (assignment_expression "puVar3[0xa8] = uVar9" (subscript_expression "puVar3[0xa8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[0xb3] = uVar8;" (assignment_expression "puVar3[0xb3] = uVar8" (subscript_expression "puVar3[0xb3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[0xaa] = uVar4;" (assignment_expression "puVar3[0xaa] = uVar4" (subscript_expression "puVar3[0xaa]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar4 = (*(code *)puVar1)(uVar6);" (assignment_expression "uVar4 = (*(code *)puVar1)(uVar6)" identifier = (call_expression "(*(code *)puVar1)(uVar6)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar6)" ( identifier )))) ;) (expression_statement "puVar1 = PTR_CopyMagickString_003a983c;" (assignment_expression "puVar1 = PTR_CopyMagickString_003a983c" identifier = identifier) ;) (expression_statement "puVar3[0xb4] = uVar4;" (assignment_expression "puVar3[0xb4] = uVar4" (subscript_expression "puVar3[0xb4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "(*(code *)puVar1)(puVar3 + 0x4d0,param_1 + 0x4d0,0x1000);" (call_expression "(*(code *)puVar1)(puVar3 + 0x4d0,param_1 + 0x4d0,0x1000)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar3 + 0x4d0,param_1 + 0x4d0,0x1000)" ( (binary_expression "puVar3 + 0x4d0" identifier + number_literal) , (binary_expression "param_1 + 0x4d0" identifier + number_literal) , number_literal ))) ;) (expression_statement "(*(code *)PTR_CopyMagickString_003a983c)(puVar3 + 0x8d0,param_1 + 0x8d0,0x1000);" (call_expression "(*(code *)PTR_CopyMagickString_003a983c)(puVar3 + 0x8d0,param_1 + 0x8d0,0x1000)" (parenthesized_expression "(*(code *)PTR_CopyMagickString_003a983c)" ( (pointer_expression "*(code *)PTR_CopyMagickString_003a983c" * (cast_expression "(code *)PTR_CopyMagickString_003a983c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar3 + 0x8d0,param_1 + 0x8d0,0x1000)" ( (binary_expression "puVar3 + 0x8d0" identifier + number_literal) , (binary_expression "param_1 + 0x8d0" identifier + number_literal) , number_literal ))) ;) (expression_statement "(*(code *)PTR_CopyMagickString_003a983c)(puVar3 + 0xd0,param_1 + 0xd0,0x1000);" (call_expression "(*(code *)PTR_CopyMagickString_003a983c)(puVar3 + 0xd0,param_1 + 0xd0,0x1000)" (parenthesized_expression "(*(code *)PTR_CopyMagickString_003a983c)" ( (pointer_expression "*(code *)PTR_CopyMagickString_003a983c" * (cast_expression "(code *)PTR_CopyMagickString_003a983c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar3 + 0xd0,param_1 + 0xd0,0x1000)" ( (binary_expression "puVar3 + 0xd0" identifier + number_literal) , (binary_expression "param_1 + 0xd0" identifier + number_literal) , number_literal ))) ;) (expression_statement "puVar1 = PTR_NewImageList_003a8e84;" (assignment_expression "puVar1 = PTR_NewImageList_003a8e84" identifier = identifier) ;) (expression_statement "uVar8 = param_1[0xca];" (assignment_expression "uVar8 = param_1[0xca]" identifier = (subscript_expression "param_1[0xca]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = param_1[0xcda];" (assignment_expression "uVar6 = param_1[0xcda]" identifier = (subscript_expression "param_1[0xcda]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = param_1[0xcd9];" (assignment_expression "uVar4 = param_1[0xcd9]" identifier = (subscript_expression "param_1[0xcd9]" identifier [ number_literal ])) ;) (expression_statement "puVar3[0xcb] = param_1[0xcb];" (assignment_expression "puVar3[0xcb] = param_1[0xcb]" (subscript_expression "puVar3[0xcb]" identifier [ number_literal ]) = (subscript_expression "param_1[0xcb]" identifier [ number_literal ])) ;) (expression_statement "puVar3[0xca] = uVar8;" (assignment_expression "puVar3[0xca] = uVar8" (subscript_expression "puVar3[0xca]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[0xcd5] = 1;" (assignment_expression "puVar3[0xcd5] = 1" (subscript_expression "puVar3[0xcd5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3[0xcda] = uVar6;" (assignment_expression "puVar3[0xcda] = uVar6" (subscript_expression "puVar3[0xcda]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[0xcd9] = uVar4;" (assignment_expression "puVar3[0xcd9] = uVar4" (subscript_expression "puVar3[0xcd9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar4 = (*(code *)puVar1)();" (assignment_expression "uVar4 = (*(code *)puVar1)()" identifier = (call_expression "(*(code *)puVar1)()" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "puVar3[0xcd8] = uVar4;" (assignment_expression "puVar3[0xcd8] = uVar4" (subscript_expression "puVar3[0xcd8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1 = PTR_CloneBlobInfo_003a97e0;" (assignment_expression "puVar1 = PTR_CloneBlobInfo_003a97e0" identifier = identifier) ;) (if_statement "if (param_4 == 0) {\n      uVar4 = (*(code *)PTR_ReferenceBlob_003a9294)(param_1[0xcd2]);\n      puVar3[0xcd2] = uVar4;\n    }\n    else {\n      puVar3[0xcda] = uVar4;\n      puVar3[0xcd9] = uVar4;\n      uVar4 = (*(code *)puVar1)(0);\n      puVar3[0xcd2] = uVar4;\n    }" if (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar4 = (*(code *)PTR_ReferenceBlob_003a9294)(param_1[0xcd2]);\n      puVar3[0xcd2] = uVar4;\n    }" { (expression_statement "uVar4 = (*(code *)PTR_ReferenceBlob_003a9294)(param_1[0xcd2]);" (assignment_expression "uVar4 = (*(code *)PTR_ReferenceBlob_003a9294)(param_1[0xcd2])" identifier = (call_expression "(*(code *)PTR_ReferenceBlob_003a9294)(param_1[0xcd2])" (parenthesized_expression "(*(code *)PTR_ReferenceBlob_003a9294)" ( (pointer_expression "*(code *)PTR_ReferenceBlob_003a9294" * (cast_expression "(code *)PTR_ReferenceBlob_003a9294" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1[0xcd2])" ( (subscript_expression "param_1[0xcd2]" identifier [ number_literal ]) )))) ;) (expression_statement "puVar3[0xcd2] = uVar4;" (assignment_expression "puVar3[0xcd2] = uVar4" (subscript_expression "puVar3[0xcd2]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n      puVar3[0xcda] = uVar4;\n      puVar3[0xcd9] = uVar4;\n      uVar4 = (*(code *)puVar1)(0);\n      puVar3[0xcd2] = uVar4;\n    }" else (compound_statement "{\n      puVar3[0xcda] = uVar4;\n      puVar3[0xcd9] = uVar4;\n      uVar4 = (*(code *)puVar1)(0);\n      puVar3[0xcd2] = uVar4;\n    }" { (expression_statement "puVar3[0xcda] = uVar4;" (assignment_expression "puVar3[0xcda] = uVar4" (subscript_expression "puVar3[0xcda]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar3[0xcd9] = uVar4;" (assignment_expression "puVar3[0xcd9] = uVar4" (subscript_expression "puVar3[0xcd9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar4 = (*(code *)puVar1)(0);" (assignment_expression "uVar4 = (*(code *)puVar1)(0)" identifier = (call_expression "(*(code *)puVar1)(0)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0)" ( number_literal )))) ;) (expression_statement "puVar3[0xcd2] = uVar4;" (assignment_expression "puVar3[0xcd2] = uVar4" (subscript_expression "puVar3[0xcd2]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "puVar1 = PTR_IsEventLogging_003a97a8;" (assignment_expression "puVar1 = PTR_IsEventLogging_003a97a8" identifier = identifier) ;) (expression_statement "puVar3[0xac] = param_1[0xac];" (assignment_expression "puVar3[0xac] = param_1[0xac]" (subscript_expression "puVar3[0xac]" identifier [ number_literal ]) = (subscript_expression "param_1[0xac]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = (*(code *)puVar1)();" (assignment_expression "uVar4 = (*(code *)puVar1)()" identifier = (call_expression "(*(code *)puVar1)()" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "puVar1 = PTR_AcquireSemaphoreInfo_003a962c;" (assignment_expression "puVar1 = PTR_AcquireSemaphoreInfo_003a962c" identifier = identifier) ;) (expression_statement "puVar3[0xcd4] = uVar4;" (assignment_expression "puVar3[0xcd4] = uVar4" (subscript_expression "puVar3[0xcd4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar4 = (*(code *)puVar1)();" (assignment_expression "uVar4 = (*(code *)puVar1)()" identifier = (call_expression "(*(code *)puVar1)()" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "iVar7 = param_1[10];" (assignment_expression "iVar7 = param_1[10]" identifier = (subscript_expression "param_1[10]" identifier [ number_literal ])) ;) (expression_statement "puVar3[0xcd6] = uVar4;" (assignment_expression "puVar3[0xcd6] = uVar4" (subscript_expression "puVar3[0xcd6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar1 = PTR_AcquireQuantumMemory_003a950c;" (assignment_expression "puVar1 = PTR_AcquireQuantumMemory_003a950c" identifier = identifier) ;) (if_statement "if (iVar7 != 0) {\n      puVar3[9] = param_1[9];\n      iVar17 = param_1[9];\n      iVar7 = (*(code *)puVar1)(iVar17 + 1,0x58);\n      puVar3[10] = iVar7;\n      if (iVar7 == 0) {\n        (*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        (*(code *)PTR_ThrowMagickException_003a8f20)\n                  (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,\n                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);\n        return (undefined4 *)0x0;\n      }\n      (*(code *)PTR_memcpy_003a9358)(iVar7,param_1[10],iVar17 * 0x58);\n    }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n      puVar3[9] = param_1[9];\n      iVar17 = param_1[9];\n      iVar7 = (*(code *)puVar1)(iVar17 + 1,0x58);\n      puVar3[10] = iVar7;\n      if (iVar7 == 0) {\n        (*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        (*(code *)PTR_ThrowMagickException_003a8f20)\n                  (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,\n                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);\n        return (undefined4 *)0x0;\n      }\n      (*(code *)PTR_memcpy_003a9358)(iVar7,param_1[10],iVar17 * 0x58);\n    }" { (expression_statement "puVar3[9] = param_1[9];" (assignment_expression "puVar3[9] = param_1[9]" (subscript_expression "puVar3[9]" identifier [ number_literal ]) = (subscript_expression "param_1[9]" identifier [ number_literal ])) ;) (expression_statement "iVar17 = param_1[9];" (assignment_expression "iVar17 = param_1[9]" identifier = (subscript_expression "param_1[9]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = (*(code *)puVar1)(iVar17 + 1,0x58);" (assignment_expression "iVar7 = (*(code *)puVar1)(iVar17 + 1,0x58)" identifier = (call_expression "(*(code *)puVar1)(iVar17 + 1,0x58)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar17 + 1,0x58)" ( (binary_expression "iVar17 + 1" identifier + number_literal) , number_literal )))) ;) (expression_statement "puVar3[10] = iVar7;" (assignment_expression "puVar3[10] = iVar7" (subscript_expression "puVar3[10]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar7 == 0) {\n        (*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        (*(code *)PTR_ThrowMagickException_003a8f20)\n                  (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,\n                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);\n        return (undefined4 *)0x0;\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        (*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        (*(code *)PTR_ThrowMagickException_003a8f20)\n                  (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,\n                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);\n        return (undefined4 *)0x0;\n      }" { (expression_statement "(*(code *)PTR_DestroyImage_003a8f4c)(puVar3);" (call_expression "(*(code *)PTR_DestroyImage_003a8f4c)(puVar3)" (parenthesized_expression "(*(code *)PTR_DestroyImage_003a8f4c)" ( (pointer_expression "*(code *)PTR_DestroyImage_003a8f4c" * (cast_expression "(code *)PTR_DestroyImage_003a8f4c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar3)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_ThrowMagickException_003a8f20)\n                  (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,\n                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);" (call_expression "(*(code *)PTR_ThrowMagickException_003a8f20)\n                  (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,\n                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0)" (parenthesized_expression "(*(code *)PTR_ThrowMagickException_003a8f20)" ( (pointer_expression "*(code *)PTR_ThrowMagickException_003a8f20" * (cast_expression "(code *)PTR_ThrowMagickException_003a8f20" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,\n                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0)" ( identifier , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5b4c" identifier + number_literal) , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x52a0" identifier + number_literal) , number_literal , number_literal , (binary_expression "PTR_LAB_003a88e0 + 0x16f8" identifier + number_literal) , (binary_expression "PTR_LAB_003a88e0 + 0x3e28" identifier + number_literal) , (binary_expression "param_1 + 0xd0" identifier + number_literal) ))) ;) (return_statement "return (undefined4 *)0x0;" return (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "(*(code *)PTR_memcpy_003a9358)(iVar7,param_1[10],iVar17 * 0x58);" (call_expression "(*(code *)PTR_memcpy_003a9358)(iVar7,param_1[10],iVar17 * 0x58)" (parenthesized_expression "(*(code *)PTR_memcpy_003a9358)" ( (pointer_expression "*(code *)PTR_memcpy_003a9358" * (cast_expression "(code *)PTR_memcpy_003a9358" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar7,param_1[10],iVar17 * 0x58)" ( identifier , (subscript_expression "param_1[10]" identifier [ number_literal ]) , (binary_expression "iVar17 * 0x58" identifier * number_literal) ))) ;) })) (expression_statement "puVar1 = PTR_LAB_003a88e0;" (assignment_expression "puVar1 = PTR_LAB_003a88e0" identifier = identifier) ;) (if_statement "if ((param_2 == 0) || (param_3 == 0)) {\n      if (param_1[0x81] != 0) {\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x81);\n      }\n      if (param_1[0x82] != 0) {\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x82);\n      }\n      uVar4 = (*(code *)PTR_FUN_003a8a84)(param_1[0xb5]);\n      puVar3[0xb5] = uVar4;\n    }\n    else {\n      iVar7 = param_1[6];\n      if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_2;\n        if (param_2 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }\n      dVar18 = (double)(int)param_1[0x8a];\n      if ((int)param_1[0x8a] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar18 = (double)(*(code *)PTR_floor_003a9670)\n                                 (dVar18 * dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1400));\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar7 = param_1[0x8c];\n      dVar20 = *(double *)(puVar1 + 0x1400);\n      puVar3[0x8a] = uVar5;\n      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      puVar2 = PTR_ceil_003a8c20;\n      iVar7 = param_1[0xa6];\n      puVar3[0x8c] = (int)dVar18;\n      dVar19 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      iVar7 = param_1[7];\n      puVar3[0xa6] = (int)dVar19;\n      if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_3;\n        if (param_3 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }\n      dVar18 = (double)(int)param_1[0x8b];\n      if ((int)param_1[0x8b] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar18 = (double)(*(code *)PTR_floor_003a9670)(dVar18 * dVar19 + *(double *)(puVar1 + 0x1400))\n      ;\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar7 = param_1[0x8d];\n      dVar20 = *(double *)(puVar1 + 0x1400);\n      puVar3[0x8b] = uVar5;\n      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      puVar1 = PTR_ceil_003a8c20;\n      iVar7 = param_1[0xa7];\n      puVar3[0x8d] = (int)dVar18;\n      dVar19 = (double)(*(code *)puVar1)((double)iVar7 * dVar19 - dVar20);\n      puVar1 = PTR_FUN_003a8a10;\n      uVar4 = param_1[0xb5];\n      puVar3[0xa7] = (int)dVar19;\n      uVar4 = (*(code *)puVar1)(uVar4);\n      puVar3[0xb5] = uVar4;\n      iVar7 = (*(code *)PTR_SetImageExtent_003a94ac)(puVar3,param_2,param_3,param_5);\n      if (iVar7 == 0) {\n        puVar3 = (undefined4 *)(*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        return puVar3;\n      }\n    }" if (parenthesized_expression "((param_2 == 0) || (param_3 == 0))" ( (binary_expression "(param_2 == 0) || (param_3 == 0)" (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) || (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) ))) )) (compound_statement "{\n      if (param_1[0x81] != 0) {\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x81);\n      }\n      if (param_1[0x82] != 0) {\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x82);\n      }\n      uVar4 = (*(code *)PTR_FUN_003a8a84)(param_1[0xb5]);\n      puVar3[0xb5] = uVar4;\n    }" { (if_statement "if (param_1[0x81] != 0) {\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x81);\n      }" if (parenthesized_expression "(param_1[0x81] != 0)" ( (binary_expression "param_1[0x81] != 0" (subscript_expression "param_1[0x81]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x81);\n      }" { (expression_statement "(*(code *)PTR_CloneString_003a9488)(puVar3 + 0x81);" (call_expression "(*(code *)PTR_CloneString_003a9488)(puVar3 + 0x81)" (parenthesized_expression "(*(code *)PTR_CloneString_003a9488)" ( (pointer_expression "*(code *)PTR_CloneString_003a9488" * (cast_expression "(code *)PTR_CloneString_003a9488" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar3 + 0x81)" ( (binary_expression "puVar3 + 0x81" identifier + number_literal) ))) ;) })) (if_statement "if (param_1[0x82] != 0) {\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x82);\n      }" if (parenthesized_expression "(param_1[0x82] != 0)" ( (binary_expression "param_1[0x82] != 0" (subscript_expression "param_1[0x82]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x82);\n      }" { (expression_statement "(*(code *)PTR_CloneString_003a9488)(puVar3 + 0x82);" (call_expression "(*(code *)PTR_CloneString_003a9488)(puVar3 + 0x82)" (parenthesized_expression "(*(code *)PTR_CloneString_003a9488)" ( (pointer_expression "*(code *)PTR_CloneString_003a9488" * (cast_expression "(code *)PTR_CloneString_003a9488" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar3 + 0x82)" ( (binary_expression "puVar3 + 0x82" identifier + number_literal) ))) ;) })) (expression_statement "uVar4 = (*(code *)PTR_FUN_003a8a84)(param_1[0xb5]);" (assignment_expression "uVar4 = (*(code *)PTR_FUN_003a8a84)(param_1[0xb5])" identifier = (call_expression "(*(code *)PTR_FUN_003a8a84)(param_1[0xb5])" (parenthesized_expression "(*(code *)PTR_FUN_003a8a84)" ( (pointer_expression "*(code *)PTR_FUN_003a8a84" * (cast_expression "(code *)PTR_FUN_003a8a84" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1[0xb5])" ( (subscript_expression "param_1[0xb5]" identifier [ number_literal ]) )))) ;) (expression_statement "puVar3[0xb5] = uVar4;" (assignment_expression "puVar3[0xb5] = uVar4" (subscript_expression "puVar3[0xb5]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n      iVar7 = param_1[6];\n      if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_2;\n        if (param_2 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }\n      dVar18 = (double)(int)param_1[0x8a];\n      if ((int)param_1[0x8a] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar18 = (double)(*(code *)PTR_floor_003a9670)\n                                 (dVar18 * dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1400));\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar7 = param_1[0x8c];\n      dVar20 = *(double *)(puVar1 + 0x1400);\n      puVar3[0x8a] = uVar5;\n      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      puVar2 = PTR_ceil_003a8c20;\n      iVar7 = param_1[0xa6];\n      puVar3[0x8c] = (int)dVar18;\n      dVar19 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      iVar7 = param_1[7];\n      puVar3[0xa6] = (int)dVar19;\n      if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_3;\n        if (param_3 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }\n      dVar18 = (double)(int)param_1[0x8b];\n      if ((int)param_1[0x8b] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar18 = (double)(*(code *)PTR_floor_003a9670)(dVar18 * dVar19 + *(double *)(puVar1 + 0x1400))\n      ;\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar7 = param_1[0x8d];\n      dVar20 = *(double *)(puVar1 + 0x1400);\n      puVar3[0x8b] = uVar5;\n      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      puVar1 = PTR_ceil_003a8c20;\n      iVar7 = param_1[0xa7];\n      puVar3[0x8d] = (int)dVar18;\n      dVar19 = (double)(*(code *)puVar1)((double)iVar7 * dVar19 - dVar20);\n      puVar1 = PTR_FUN_003a8a10;\n      uVar4 = param_1[0xb5];\n      puVar3[0xa7] = (int)dVar19;\n      uVar4 = (*(code *)puVar1)(uVar4);\n      puVar3[0xb5] = uVar4;\n      iVar7 = (*(code *)PTR_SetImageExtent_003a94ac)(puVar3,param_2,param_3,param_5);\n      if (iVar7 == 0) {\n        puVar3 = (undefined4 *)(*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        return puVar3;\n      }\n    }" else (compound_statement "{\n      iVar7 = param_1[6];\n      if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_2;\n        if (param_2 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }\n      dVar18 = (double)(int)param_1[0x8a];\n      if ((int)param_1[0x8a] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar18 = (double)(*(code *)PTR_floor_003a9670)\n                                 (dVar18 * dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1400));\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar7 = param_1[0x8c];\n      dVar20 = *(double *)(puVar1 + 0x1400);\n      puVar3[0x8a] = uVar5;\n      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      puVar2 = PTR_ceil_003a8c20;\n      iVar7 = param_1[0xa6];\n      puVar3[0x8c] = (int)dVar18;\n      dVar19 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      iVar7 = param_1[7];\n      puVar3[0xa6] = (int)dVar19;\n      if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_3;\n        if (param_3 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }\n      dVar18 = (double)(int)param_1[0x8b];\n      if ((int)param_1[0x8b] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar18 = (double)(*(code *)PTR_floor_003a9670)(dVar18 * dVar19 + *(double *)(puVar1 + 0x1400))\n      ;\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar7 = param_1[0x8d];\n      dVar20 = *(double *)(puVar1 + 0x1400);\n      puVar3[0x8b] = uVar5;\n      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      puVar1 = PTR_ceil_003a8c20;\n      iVar7 = param_1[0xa7];\n      puVar3[0x8d] = (int)dVar18;\n      dVar19 = (double)(*(code *)puVar1)((double)iVar7 * dVar19 - dVar20);\n      puVar1 = PTR_FUN_003a8a10;\n      uVar4 = param_1[0xb5];\n      puVar3[0xa7] = (int)dVar19;\n      uVar4 = (*(code *)puVar1)(uVar4);\n      puVar3[0xb5] = uVar4;\n      iVar7 = (*(code *)PTR_SetImageExtent_003a94ac)(puVar3,param_2,param_3,param_5);\n      if (iVar7 == 0) {\n        puVar3 = (undefined4 *)(*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        return puVar3;\n      }\n    }" { (expression_statement "iVar7 = param_1[6];" (assignment_expression "iVar7 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (if_statement "if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_2;\n        if (param_2 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }" { (expression_statement "dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);" (assignment_expression "dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1438)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1438)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1438" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        dVar19 = (double)param_2;\n        if (param_2 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }" else (compound_statement "{\n        dVar19 = (double)param_2;\n        if (param_2 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }" { (expression_statement "dVar19 = (double)param_2;" (assignment_expression "dVar19 = (double)param_2" identifier = (cast_expression "(double)param_2" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (param_2 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }" if (parenthesized_expression "(param_2 < 0)" ( (binary_expression "param_2 < 0" identifier < number_literal) )) (compound_statement "{\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }" { (expression_statement "dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);" (assignment_expression "dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" identifier = (binary_expression "dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" identifier + (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1418)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1418)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "dVar18 = (double)iVar7;" (assignment_expression "dVar18 = (double)iVar7" identifier = (cast_expression "(double)iVar7" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }" if (parenthesized_expression "(iVar7 < 0)" ( (binary_expression "iVar7 < 0" identifier < number_literal) )) (compound_statement "{\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }" { (expression_statement "dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);" (assignment_expression "dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" identifier = (binary_expression "dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" identifier + (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1418)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1418)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "dVar19 = dVar19 / dVar18;" (assignment_expression "dVar19 = dVar19 / dVar18" identifier = (binary_expression "dVar19 / dVar18" identifier / identifier)) ;) }))) (expression_statement "dVar18 = (double)(int)param_1[0x8a];" (assignment_expression "dVar18 = (double)(int)param_1[0x8a]" identifier = (cast_expression "(double)(int)param_1[0x8a]" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)param_1[0x8a]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[0x8a]" identifier [ number_literal ])))) ;) (if_statement "if ((int)param_1[0x8a] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }" if (parenthesized_expression "((int)param_1[0x8a] < 0)" ( (binary_expression "(int)param_1[0x8a] < 0" (cast_expression "(int)param_1[0x8a]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[0x8a]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }" { (expression_statement "dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);" (assignment_expression "dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" identifier = (binary_expression "dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" identifier + (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1418)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1418)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "dVar18 = (double)(*(code *)PTR_floor_003a9670)\n                                 (dVar18 * dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1400));" (assignment_expression "dVar18 = (double)(*(code *)PTR_floor_003a9670)\n                                 (dVar18 * dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1400))" identifier = (cast_expression "(double)(*(code *)PTR_floor_003a9670)\n                                 (dVar18 * dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1400))" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_floor_003a9670)\n                                 (dVar18 * dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1400))" (parenthesized_expression "(*(code *)PTR_floor_003a9670)" ( (pointer_expression "*(code *)PTR_floor_003a9670" * (cast_expression "(code *)PTR_floor_003a9670" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar18 * dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1400))" ( (binary_expression "dVar18 * dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1400)" (binary_expression "dVar18 * dVar19" identifier * identifier) + (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1400)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1400)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1400" identifier + number_literal) ))))) ))))) ;) (expression_statement "puVar2 = PTR_ceil_003a8c20;" (assignment_expression "puVar2 = PTR_ceil_003a8c20" identifier = identifier) ;) (if_statement "if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }" if (parenthesized_expression "(dVar18 < *(double *)(puVar1 + 0x1410))" ( (binary_expression "dVar18 < *(double *)(puVar1 + 0x1410)" identifier < (pointer_expression "*(double *)(puVar1 + 0x1410)" * (cast_expression "(double *)(puVar1 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x1410)" ( (binary_expression "puVar1 + 0x1410" identifier + number_literal) ))))) )) (compound_statement "{\n        uVar5 = (uint)dVar18;\n      }" { (expression_statement "uVar5 = (uint)dVar18;" (assignment_expression "uVar5 = (uint)dVar18" identifier = (cast_expression "(uint)dVar18" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }" else (compound_statement "{\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }" { (expression_statement "uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;" (assignment_expression "uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000" identifier = (binary_expression "(int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000" (cast_expression "(int)(dVar18 - *(double *)(puVar1 + 0x1410))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar18 - *(double *)(puVar1 + 0x1410))" ( (binary_expression "dVar18 - *(double *)(puVar1 + 0x1410)" identifier - (pointer_expression "*(double *)(puVar1 + 0x1410)" * (cast_expression "(double *)(puVar1 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x1410)" ( (binary_expression "puVar1 + 0x1410" identifier + number_literal) ))))) ))) | number_literal)) ;) }))) (expression_statement "iVar7 = param_1[0x8c];" (assignment_expression "iVar7 = param_1[0x8c]" identifier = (subscript_expression "param_1[0x8c]" identifier [ number_literal ])) ;) (expression_statement "dVar20 = *(double *)(puVar1 + 0x1400);" (assignment_expression "dVar20 = *(double *)(puVar1 + 0x1400)" identifier = (pointer_expression "*(double *)(puVar1 + 0x1400)" * (cast_expression "(double *)(puVar1 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x1400)" ( (binary_expression "puVar1 + 0x1400" identifier + number_literal) ))))) ;) (expression_statement "puVar3[0x8a] = uVar5;" (assignment_expression "puVar3[0x8a] = uVar5" (subscript_expression "puVar3[0x8a]" identifier [ number_literal ]) = identifier) ;) (expression_statement "dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);" (assignment_expression "dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20)" identifier = (cast_expression "(double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((double)iVar7 * dVar19 - dVar20)" ( (binary_expression "(double)iVar7 * dVar19 - dVar20" (binary_expression "(double)iVar7 * dVar19" (cast_expression "(double)iVar7" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) - identifier) ))))) ;) (expression_statement "puVar2 = PTR_ceil_003a8c20;" (assignment_expression "puVar2 = PTR_ceil_003a8c20" identifier = identifier) ;) (expression_statement "iVar7 = param_1[0xa6];" (assignment_expression "iVar7 = param_1[0xa6]" identifier = (subscript_expression "param_1[0xa6]" identifier [ number_literal ])) ;) (expression_statement "puVar3[0x8c] = (int)dVar18;" (assignment_expression "puVar3[0x8c] = (int)dVar18" (subscript_expression "puVar3[0x8c]" identifier [ number_literal ]) = (cast_expression "(int)dVar18" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "dVar19 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);" (assignment_expression "dVar19 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20)" identifier = (cast_expression "(double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((double)iVar7 * dVar19 - dVar20)" ( (binary_expression "(double)iVar7 * dVar19 - dVar20" (binary_expression "(double)iVar7 * dVar19" (cast_expression "(double)iVar7" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) - identifier) ))))) ;) (expression_statement "iVar7 = param_1[7];" (assignment_expression "iVar7 = param_1[7]" identifier = (subscript_expression "param_1[7]" identifier [ number_literal ])) ;) (expression_statement "puVar3[0xa6] = (int)dVar19;" (assignment_expression "puVar3[0xa6] = (int)dVar19" (subscript_expression "puVar3[0xa6]" identifier [ number_literal ]) = (cast_expression "(int)dVar19" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_3;\n        if (param_3 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }" { (expression_statement "dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);" (assignment_expression "dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438)" identifier = (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1438)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1438)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1438" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        dVar19 = (double)param_3;\n        if (param_3 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }" else (compound_statement "{\n        dVar19 = (double)param_3;\n        if (param_3 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }" { (expression_statement "dVar19 = (double)param_3;" (assignment_expression "dVar19 = (double)param_3" identifier = (cast_expression "(double)param_3" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (param_3 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }" if (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) )) (compound_statement "{\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }" { (expression_statement "dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);" (assignment_expression "dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" identifier = (binary_expression "dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" identifier + (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1418)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1418)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "dVar18 = (double)iVar7;" (assignment_expression "dVar18 = (double)iVar7" identifier = (cast_expression "(double)iVar7" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }" if (parenthesized_expression "(iVar7 < 0)" ( (binary_expression "iVar7 < 0" identifier < number_literal) )) (compound_statement "{\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }" { (expression_statement "dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);" (assignment_expression "dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" identifier = (binary_expression "dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" identifier + (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1418)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1418)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "dVar19 = dVar19 / dVar18;" (assignment_expression "dVar19 = dVar19 / dVar18" identifier = (binary_expression "dVar19 / dVar18" identifier / identifier)) ;) }))) (expression_statement "dVar18 = (double)(int)param_1[0x8b];" (assignment_expression "dVar18 = (double)(int)param_1[0x8b]" identifier = (cast_expression "(double)(int)param_1[0x8b]" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)param_1[0x8b]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[0x8b]" identifier [ number_literal ])))) ;) (if_statement "if ((int)param_1[0x8b] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }" if (parenthesized_expression "((int)param_1[0x8b] < 0)" ( (binary_expression "(int)param_1[0x8b] < 0" (cast_expression "(int)param_1[0x8b]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[0x8b]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }" { (expression_statement "dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);" (assignment_expression "dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" identifier = (binary_expression "dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" identifier + (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1418)" * (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1418)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1418" identifier + number_literal) )))))) ;) })) (expression_statement "dVar18 = (double)(*(code *)PTR_floor_003a9670)(dVar18 * dVar19 + *(double *)(puVar1 + 0x1400))\n      ;" (assignment_expression "dVar18 = (double)(*(code *)PTR_floor_003a9670)(dVar18 * dVar19 + *(double *)(puVar1 + 0x1400))" identifier = (cast_expression "(double)(*(code *)PTR_floor_003a9670)(dVar18 * dVar19 + *(double *)(puVar1 + 0x1400))" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_floor_003a9670)(dVar18 * dVar19 + *(double *)(puVar1 + 0x1400))" (parenthesized_expression "(*(code *)PTR_floor_003a9670)" ( (pointer_expression "*(code *)PTR_floor_003a9670" * (cast_expression "(code *)PTR_floor_003a9670" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dVar18 * dVar19 + *(double *)(puVar1 + 0x1400))" ( (binary_expression "dVar18 * dVar19 + *(double *)(puVar1 + 0x1400)" (binary_expression "dVar18 * dVar19" identifier * identifier) + (pointer_expression "*(double *)(puVar1 + 0x1400)" * (cast_expression "(double *)(puVar1 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x1400)" ( (binary_expression "puVar1 + 0x1400" identifier + number_literal) ))))) ))))) ;) (expression_statement "puVar2 = PTR_ceil_003a8c20;" (assignment_expression "puVar2 = PTR_ceil_003a8c20" identifier = identifier) ;) (if_statement "if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }" if (parenthesized_expression "(dVar18 < *(double *)(puVar1 + 0x1410))" ( (binary_expression "dVar18 < *(double *)(puVar1 + 0x1410)" identifier < (pointer_expression "*(double *)(puVar1 + 0x1410)" * (cast_expression "(double *)(puVar1 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x1410)" ( (binary_expression "puVar1 + 0x1410" identifier + number_literal) ))))) )) (compound_statement "{\n        uVar5 = (uint)dVar18;\n      }" { (expression_statement "uVar5 = (uint)dVar18;" (assignment_expression "uVar5 = (uint)dVar18" identifier = (cast_expression "(uint)dVar18" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }" else (compound_statement "{\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }" { (expression_statement "uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;" (assignment_expression "uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000" identifier = (binary_expression "(int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000" (cast_expression "(int)(dVar18 - *(double *)(puVar1 + 0x1410))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar18 - *(double *)(puVar1 + 0x1410))" ( (binary_expression "dVar18 - *(double *)(puVar1 + 0x1410)" identifier - (pointer_expression "*(double *)(puVar1 + 0x1410)" * (cast_expression "(double *)(puVar1 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x1410)" ( (binary_expression "puVar1 + 0x1410" identifier + number_literal) ))))) ))) | number_literal)) ;) }))) (expression_statement "iVar7 = param_1[0x8d];" (assignment_expression "iVar7 = param_1[0x8d]" identifier = (subscript_expression "param_1[0x8d]" identifier [ number_literal ])) ;) (expression_statement "dVar20 = *(double *)(puVar1 + 0x1400);" (assignment_expression "dVar20 = *(double *)(puVar1 + 0x1400)" identifier = (pointer_expression "*(double *)(puVar1 + 0x1400)" * (cast_expression "(double *)(puVar1 + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x1400)" ( (binary_expression "puVar1 + 0x1400" identifier + number_literal) ))))) ;) (expression_statement "puVar3[0x8b] = uVar5;" (assignment_expression "puVar3[0x8b] = uVar5" (subscript_expression "puVar3[0x8b]" identifier [ number_literal ]) = identifier) ;) (expression_statement "dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);" (assignment_expression "dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20)" identifier = (cast_expression "(double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((double)iVar7 * dVar19 - dVar20)" ( (binary_expression "(double)iVar7 * dVar19 - dVar20" (binary_expression "(double)iVar7 * dVar19" (cast_expression "(double)iVar7" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) - identifier) ))))) ;) (expression_statement "puVar1 = PTR_ceil_003a8c20;" (assignment_expression "puVar1 = PTR_ceil_003a8c20" identifier = identifier) ;) (expression_statement "iVar7 = param_1[0xa7];" (assignment_expression "iVar7 = param_1[0xa7]" identifier = (subscript_expression "param_1[0xa7]" identifier [ number_literal ])) ;) (expression_statement "puVar3[0x8d] = (int)dVar18;" (assignment_expression "puVar3[0x8d] = (int)dVar18" (subscript_expression "puVar3[0x8d]" identifier [ number_literal ]) = (cast_expression "(int)dVar18" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "dVar19 = (double)(*(code *)puVar1)((double)iVar7 * dVar19 - dVar20);" (assignment_expression "dVar19 = (double)(*(code *)puVar1)((double)iVar7 * dVar19 - dVar20)" identifier = (cast_expression "(double)(*(code *)puVar1)((double)iVar7 * dVar19 - dVar20)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)puVar1)((double)iVar7 * dVar19 - dVar20)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((double)iVar7 * dVar19 - dVar20)" ( (binary_expression "(double)iVar7 * dVar19 - dVar20" (binary_expression "(double)iVar7 * dVar19" (cast_expression "(double)iVar7" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) - identifier) ))))) ;) (expression_statement "puVar1 = PTR_FUN_003a8a10;" (assignment_expression "puVar1 = PTR_FUN_003a8a10" identifier = identifier) ;) (expression_statement "uVar4 = param_1[0xb5];" (assignment_expression "uVar4 = param_1[0xb5]" identifier = (subscript_expression "param_1[0xb5]" identifier [ number_literal ])) ;) (expression_statement "puVar3[0xa7] = (int)dVar19;" (assignment_expression "puVar3[0xa7] = (int)dVar19" (subscript_expression "puVar3[0xa7]" identifier [ number_literal ]) = (cast_expression "(int)dVar19" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "uVar4 = (*(code *)puVar1)(uVar4);" (assignment_expression "uVar4 = (*(code *)puVar1)(uVar4)" identifier = (call_expression "(*(code *)puVar1)(uVar4)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar4)" ( identifier )))) ;) (expression_statement "puVar3[0xb5] = uVar4;" (assignment_expression "puVar3[0xb5] = uVar4" (subscript_expression "puVar3[0xb5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar7 = (*(code *)PTR_SetImageExtent_003a94ac)(puVar3,param_2,param_3,param_5);" (assignment_expression "iVar7 = (*(code *)PTR_SetImageExtent_003a94ac)(puVar3,param_2,param_3,param_5)" identifier = (call_expression "(*(code *)PTR_SetImageExtent_003a94ac)(puVar3,param_2,param_3,param_5)" (parenthesized_expression "(*(code *)PTR_SetImageExtent_003a94ac)" ( (pointer_expression "*(code *)PTR_SetImageExtent_003a94ac" * (cast_expression "(code *)PTR_SetImageExtent_003a94ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar3,param_2,param_3,param_5)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar7 == 0) {\n        puVar3 = (undefined4 *)(*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        return puVar3;\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        puVar3 = (undefined4 *)(*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        return puVar3;\n      }" { (expression_statement "puVar3 = (undefined4 *)(*(code *)PTR_DestroyImage_003a8f4c)(puVar3);" (assignment_expression "puVar3 = (undefined4 *)(*(code *)PTR_DestroyImage_003a8f4c)(puVar3)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_DestroyImage_003a8f4c)(puVar3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_DestroyImage_003a8f4c)(puVar3)" (parenthesized_expression "(*(code *)PTR_DestroyImage_003a8f4c)" ( (pointer_expression "*(code *)PTR_DestroyImage_003a8f4c" * (cast_expression "(code *)PTR_DestroyImage_003a8f4c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar3)" ( identifier ))))) ;) (return_statement "return puVar3;" return identifier ;) })) }))) (return_statement "return puVar3;" return identifier ;) })) (expression_statement "(*(code *)PTR_ThrowMagickException_003a8f20)\n            (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x31e,\n             0x1a9,PTR_s_t_to_left_003a88e4 + -0x5ac0,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);" (call_expression "(*(code *)PTR_ThrowMagickException_003a8f20)\n            (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x31e,\n             0x1a9,PTR_s_t_to_left_003a88e4 + -0x5ac0,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0)" (parenthesized_expression "(*(code *)PTR_ThrowMagickException_003a8f20)" ( (pointer_expression "*(code *)PTR_ThrowMagickException_003a8f20" * (cast_expression "(code *)PTR_ThrowMagickException_003a8f20" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x31e,\n             0x1a9,PTR_s_t_to_left_003a88e4 + -0x5ac0,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0)" ( identifier , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5b4c" identifier + number_literal) , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x52a0" identifier + number_literal) , number_literal , number_literal , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5ac0" identifier + number_literal) , (binary_expression "PTR_LAB_003a88e0 + 0x3e28" identifier + number_literal) , (binary_expression "param_1 + 0xd0" identifier + number_literal) ))) ;) (return_statement "return (undefined4 *)0x0;" return (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) )))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE 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 ;) (if_statement if (parenthesized_expression ( (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 *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_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 = (subscript_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 = (subscript_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 = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_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 = (subscript_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 (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_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 (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (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 ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , LIT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) ))) ;) (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) , (binary_expression IDENT * LIT) ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT / IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression (binary_expression IDENT * IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) | 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) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT) - IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT) - IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT / IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression (binary_expression IDENT * IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) | 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) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT) - IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT) - IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (return_statement return IDENT ;) })) }))) (return_statement return IDENT ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , LIT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) ))) ;) (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })))
(function_definition "undefined4 * CloneImage(undefined4 *param_1,int param_2,int param_3,int param_4,int param_5)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined4 *puVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  undefined4 uVar14;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  int iVar17;\n  double dVar18;\n  double dVar19;\n  double dVar20;\n  \n  if (param_1 == (undefined4 *)0x0) {\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x37b0,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x316,PTR_s_t_to_left_003a88e4 + -0x5294)\n    ;\n    return puVar3;\n  }\n  if (param_1[0xcdb] != -0x54535255) {\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x317,PTR_s_t_to_left_003a88e4 + -0x5294)\n    ;\n    return puVar3;\n  }\n  if (param_1[0xcd4] != 0) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x319,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1 + 0xd0);\n  }\n  if (param_5 == 0) {\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31a,\n                        PTR_s_t_to_left_003a88e4 + -0x5294);\n    return puVar3;\n  }\n  if (*(int *)(param_5 + 0x1c) != -0x54535255) {\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31b,\n                        PTR_s_t_to_left_003a88e4 + -0x5294);\n    return puVar3;\n  }\n  if ((param_1[6] != 0) && (param_1[7] != 0)) {\n    puVar3 = (undefined4 *)(*(code *)PTR_AcquireCriticalMemory_003a9354)(0x33d8);\n    (*(code *)PTR_memset_003a96d4)(puVar3,0,0x33d8);\n    puVar1 = PTR_CloneImageInfo_003a919c;\n    uVar16 = param_1[0xb0];\n    uVar15 = param_1[0xb1];\n    uVar14 = param_1[0xb2];\n    uVar13 = param_1[1];\n    uVar12 = param_1[0xaf];\n    uVar11 = param_1[0xcf4];\n    uVar10 = param_1[0xcf3];\n    uVar6 = param_1[7];\n    uVar9 = param_1[6];\n    uVar4 = param_1[0xa9];\n    uVar8 = param_1[0xcd7];\n    *puVar3 = *param_1;\n    puVar3[0xb0] = uVar16;\n    puVar3[0xb1] = uVar15;\n    puVar3[0xb2] = uVar14;\n    puVar3[1] = uVar13;\n    puVar3[0xaf] = uVar12;\n    puVar3[0xcf4] = uVar11;\n    puVar3[0xcf3] = uVar10;\n    puVar3[7] = uVar6;\n    puVar3[6] = uVar9;\n    puVar3[0xcdb] = 0xabacadab;\n    puVar3[0xa9] = uVar4;\n    uVar4 = (*(code *)puVar1)(uVar8);\n    puVar1 = PTR_CloneImageProfiles_003a9348;\n    puVar3[0xcd7] = uVar4;\n    (*(code *)puVar1)(puVar3,param_1);\n    (*(code *)PTR_CloneImageProperties_003a91ac)(puVar3,param_1);\n    (*(code *)PTR_CloneImageArtifacts_003a9500)(puVar3,param_1);\n    (*(code *)PTR_GetTimerInfo_003a9668)(puVar3 + 0xbc);\n    if (param_1[0xcc] != 0) {\n      (*(code *)PTR_Ascii85Initialize_003a8d18)(puVar3);\n    }\n    puVar1 = PTR_ClonePixelChannelMap_003a8d90;\n    uVar11 = param_1[0xcd0];\n    uVar10 = param_1[0xcd1];\n    uVar9 = param_1[0xa8];\n    uVar8 = param_1[0xb3];\n    uVar4 = param_1[0xaa];\n    uVar6 = param_1[0xb4];\n    puVar3[0xab] = param_1[0xab];\n    puVar3[0xcd0] = uVar11;\n    puVar3[0xcd1] = uVar10;\n    puVar3[0xa8] = uVar9;\n    puVar3[0xb3] = uVar8;\n    puVar3[0xaa] = uVar4;\n    uVar4 = (*(code *)puVar1)(uVar6);\n    puVar1 = PTR_CopyMagickString_003a983c;\n    puVar3[0xb4] = uVar4;\n    (*(code *)puVar1)(puVar3 + 0x4d0,param_1 + 0x4d0,0x1000);\n    (*(code *)PTR_CopyMagickString_003a983c)(puVar3 + 0x8d0,param_1 + 0x8d0,0x1000);\n    (*(code *)PTR_CopyMagickString_003a983c)(puVar3 + 0xd0,param_1 + 0xd0,0x1000);\n    puVar1 = PTR_NewImageList_003a8e84;\n    uVar8 = param_1[0xca];\n    uVar6 = param_1[0xcda];\n    uVar4 = param_1[0xcd9];\n    puVar3[0xcb] = param_1[0xcb];\n    puVar3[0xca] = uVar8;\n    puVar3[0xcd5] = 1;\n    puVar3[0xcda] = uVar6;\n    puVar3[0xcd9] = uVar4;\n    uVar4 = (*(code *)puVar1)();\n    puVar3[0xcd8] = uVar4;\n    puVar1 = PTR_CloneBlobInfo_003a97e0;\n    if (param_4 == 0) {\n      uVar4 = (*(code *)PTR_ReferenceBlob_003a9294)(param_1[0xcd2]);\n      puVar3[0xcd2] = uVar4;\n    }\n    else {\n      puVar3[0xcda] = uVar4;\n      puVar3[0xcd9] = uVar4;\n      uVar4 = (*(code *)puVar1)(0);\n      puVar3[0xcd2] = uVar4;\n    }\n    puVar1 = PTR_IsEventLogging_003a97a8;\n    puVar3[0xac] = param_1[0xac];\n    uVar4 = (*(code *)puVar1)();\n    puVar1 = PTR_AcquireSemaphoreInfo_003a962c;\n    puVar3[0xcd4] = uVar4;\n    uVar4 = (*(code *)puVar1)();\n    iVar7 = param_1[10];\n    puVar3[0xcd6] = uVar4;\n    puVar1 = PTR_AcquireQuantumMemory_003a950c;\n    if (iVar7 != 0) {\n      puVar3[9] = param_1[9];\n      iVar17 = param_1[9];\n      iVar7 = (*(code *)puVar1)(iVar17 + 1,0x58);\n      puVar3[10] = iVar7;\n      if (iVar7 == 0) {\n        (*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        (*(code *)PTR_ThrowMagickException_003a8f20)\n                  (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,\n                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);\n        return (undefined4 *)0x0;\n      }\n      (*(code *)PTR_memcpy_003a9358)(iVar7,param_1[10],iVar17 * 0x58);\n    }\n    puVar1 = PTR_LAB_003a88e0;\n    if ((param_2 == 0) || (param_3 == 0)) {\n      if (param_1[0x81] != 0) {\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x81);\n      }\n      if (param_1[0x82] != 0) {\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x82);\n      }\n      uVar4 = (*(code *)PTR_FUN_003a8a84)(param_1[0xb5]);\n      puVar3[0xb5] = uVar4;\n    }\n    else {\n      iVar7 = param_1[6];\n      if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_2;\n        if (param_2 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }\n      dVar18 = (double)(int)param_1[0x8a];\n      if ((int)param_1[0x8a] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar18 = (double)(*(code *)PTR_floor_003a9670)\n                                 (dVar18 * dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1400));\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar7 = param_1[0x8c];\n      dVar20 = *(double *)(puVar1 + 0x1400);\n      puVar3[0x8a] = uVar5;\n      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      puVar2 = PTR_ceil_003a8c20;\n      iVar7 = param_1[0xa6];\n      puVar3[0x8c] = (int)dVar18;\n      dVar19 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      iVar7 = param_1[7];\n      puVar3[0xa6] = (int)dVar19;\n      if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_3;\n        if (param_3 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }\n      dVar18 = (double)(int)param_1[0x8b];\n      if ((int)param_1[0x8b] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar18 = (double)(*(code *)PTR_floor_003a9670)(dVar18 * dVar19 + *(double *)(puVar1 + 0x1400))\n      ;\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar7 = param_1[0x8d];\n      dVar20 = *(double *)(puVar1 + 0x1400);\n      puVar3[0x8b] = uVar5;\n      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      puVar1 = PTR_ceil_003a8c20;\n      iVar7 = param_1[0xa7];\n      puVar3[0x8d] = (int)dVar18;\n      dVar19 = (double)(*(code *)puVar1)((double)iVar7 * dVar19 - dVar20);\n      puVar1 = PTR_FUN_003a8a10;\n      uVar4 = param_1[0xb5];\n      puVar3[0xa7] = (int)dVar19;\n      uVar4 = (*(code *)puVar1)(uVar4);\n      puVar3[0xb5] = uVar4;\n      iVar7 = (*(code *)PTR_SetImageExtent_003a94ac)(puVar3,param_2,param_3,param_5);\n      if (iVar7 == 0) {\n        puVar3 = (undefined4 *)(*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        return puVar3;\n      }\n    }\n    return puVar3;\n  }\n  (*(code *)PTR_ThrowMagickException_003a8f20)\n            (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x31e,\n             0x1a9,PTR_s_t_to_left_003a88e4 + -0x5ac0,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);\n  return (undefined4 *)0x0;\n}" (type_identifier "undefined4") (pointer_declarator "* CloneImage(undefined4 *param_1,int param_2,int param_3,int param_4,int param_5)" (* "*") (function_declarator "CloneImage(undefined4 *param_1,int param_2,int param_3,int param_4,int param_5)" (identifier "CloneImage") (parameter_list "(undefined4 *param_1,int param_2,int param_3,int param_4,int param_5)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) (, ",") (parameter_declaration "int param_5" (primitive_type "int") (identifier "param_5")) () ")")))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  undefined4 *puVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  undefined4 uVar12;\n  undefined4 uVar13;\n  undefined4 uVar14;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  int iVar17;\n  double dVar18;\n  double dVar19;\n  double dVar20;\n  \n  if (param_1 == (undefined4 *)0x0) {\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x37b0,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x316,PTR_s_t_to_left_003a88e4 + -0x5294)\n    ;\n    return puVar3;\n  }\n  if (param_1[0xcdb] != -0x54535255) {\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x317,PTR_s_t_to_left_003a88e4 + -0x5294)\n    ;\n    return puVar3;\n  }\n  if (param_1[0xcd4] != 0) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x319,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1 + 0xd0);\n  }\n  if (param_5 == 0) {\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31a,\n                        PTR_s_t_to_left_003a88e4 + -0x5294);\n    return puVar3;\n  }\n  if (*(int *)(param_5 + 0x1c) != -0x54535255) {\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31b,\n                        PTR_s_t_to_left_003a88e4 + -0x5294);\n    return puVar3;\n  }\n  if ((param_1[6] != 0) && (param_1[7] != 0)) {\n    puVar3 = (undefined4 *)(*(code *)PTR_AcquireCriticalMemory_003a9354)(0x33d8);\n    (*(code *)PTR_memset_003a96d4)(puVar3,0,0x33d8);\n    puVar1 = PTR_CloneImageInfo_003a919c;\n    uVar16 = param_1[0xb0];\n    uVar15 = param_1[0xb1];\n    uVar14 = param_1[0xb2];\n    uVar13 = param_1[1];\n    uVar12 = param_1[0xaf];\n    uVar11 = param_1[0xcf4];\n    uVar10 = param_1[0xcf3];\n    uVar6 = param_1[7];\n    uVar9 = param_1[6];\n    uVar4 = param_1[0xa9];\n    uVar8 = param_1[0xcd7];\n    *puVar3 = *param_1;\n    puVar3[0xb0] = uVar16;\n    puVar3[0xb1] = uVar15;\n    puVar3[0xb2] = uVar14;\n    puVar3[1] = uVar13;\n    puVar3[0xaf] = uVar12;\n    puVar3[0xcf4] = uVar11;\n    puVar3[0xcf3] = uVar10;\n    puVar3[7] = uVar6;\n    puVar3[6] = uVar9;\n    puVar3[0xcdb] = 0xabacadab;\n    puVar3[0xa9] = uVar4;\n    uVar4 = (*(code *)puVar1)(uVar8);\n    puVar1 = PTR_CloneImageProfiles_003a9348;\n    puVar3[0xcd7] = uVar4;\n    (*(code *)puVar1)(puVar3,param_1);\n    (*(code *)PTR_CloneImageProperties_003a91ac)(puVar3,param_1);\n    (*(code *)PTR_CloneImageArtifacts_003a9500)(puVar3,param_1);\n    (*(code *)PTR_GetTimerInfo_003a9668)(puVar3 + 0xbc);\n    if (param_1[0xcc] != 0) {\n      (*(code *)PTR_Ascii85Initialize_003a8d18)(puVar3);\n    }\n    puVar1 = PTR_ClonePixelChannelMap_003a8d90;\n    uVar11 = param_1[0xcd0];\n    uVar10 = param_1[0xcd1];\n    uVar9 = param_1[0xa8];\n    uVar8 = param_1[0xb3];\n    uVar4 = param_1[0xaa];\n    uVar6 = param_1[0xb4];\n    puVar3[0xab] = param_1[0xab];\n    puVar3[0xcd0] = uVar11;\n    puVar3[0xcd1] = uVar10;\n    puVar3[0xa8] = uVar9;\n    puVar3[0xb3] = uVar8;\n    puVar3[0xaa] = uVar4;\n    uVar4 = (*(code *)puVar1)(uVar6);\n    puVar1 = PTR_CopyMagickString_003a983c;\n    puVar3[0xb4] = uVar4;\n    (*(code *)puVar1)(puVar3 + 0x4d0,param_1 + 0x4d0,0x1000);\n    (*(code *)PTR_CopyMagickString_003a983c)(puVar3 + 0x8d0,param_1 + 0x8d0,0x1000);\n    (*(code *)PTR_CopyMagickString_003a983c)(puVar3 + 0xd0,param_1 + 0xd0,0x1000);\n    puVar1 = PTR_NewImageList_003a8e84;\n    uVar8 = param_1[0xca];\n    uVar6 = param_1[0xcda];\n    uVar4 = param_1[0xcd9];\n    puVar3[0xcb] = param_1[0xcb];\n    puVar3[0xca] = uVar8;\n    puVar3[0xcd5] = 1;\n    puVar3[0xcda] = uVar6;\n    puVar3[0xcd9] = uVar4;\n    uVar4 = (*(code *)puVar1)();\n    puVar3[0xcd8] = uVar4;\n    puVar1 = PTR_CloneBlobInfo_003a97e0;\n    if (param_4 == 0) {\n      uVar4 = (*(code *)PTR_ReferenceBlob_003a9294)(param_1[0xcd2]);\n      puVar3[0xcd2] = uVar4;\n    }\n    else {\n      puVar3[0xcda] = uVar4;\n      puVar3[0xcd9] = uVar4;\n      uVar4 = (*(code *)puVar1)(0);\n      puVar3[0xcd2] = uVar4;\n    }\n    puVar1 = PTR_IsEventLogging_003a97a8;\n    puVar3[0xac] = param_1[0xac];\n    uVar4 = (*(code *)puVar1)();\n    puVar1 = PTR_AcquireSemaphoreInfo_003a962c;\n    puVar3[0xcd4] = uVar4;\n    uVar4 = (*(code *)puVar1)();\n    iVar7 = param_1[10];\n    puVar3[0xcd6] = uVar4;\n    puVar1 = PTR_AcquireQuantumMemory_003a950c;\n    if (iVar7 != 0) {\n      puVar3[9] = param_1[9];\n      iVar17 = param_1[9];\n      iVar7 = (*(code *)puVar1)(iVar17 + 1,0x58);\n      puVar3[10] = iVar7;\n      if (iVar7 == 0) {\n        (*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        (*(code *)PTR_ThrowMagickException_003a8f20)\n                  (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,\n                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);\n        return (undefined4 *)0x0;\n      }\n      (*(code *)PTR_memcpy_003a9358)(iVar7,param_1[10],iVar17 * 0x58);\n    }\n    puVar1 = PTR_LAB_003a88e0;\n    if ((param_2 == 0) || (param_3 == 0)) {\n      if (param_1[0x81] != 0) {\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x81);\n      }\n      if (param_1[0x82] != 0) {\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x82);\n      }\n      uVar4 = (*(code *)PTR_FUN_003a8a84)(param_1[0xb5]);\n      puVar3[0xb5] = uVar4;\n    }\n    else {\n      iVar7 = param_1[6];\n      if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_2;\n        if (param_2 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }\n      dVar18 = (double)(int)param_1[0x8a];\n      if ((int)param_1[0x8a] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar18 = (double)(*(code *)PTR_floor_003a9670)\n                                 (dVar18 * dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1400));\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar7 = param_1[0x8c];\n      dVar20 = *(double *)(puVar1 + 0x1400);\n      puVar3[0x8a] = uVar5;\n      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      puVar2 = PTR_ceil_003a8c20;\n      iVar7 = param_1[0xa6];\n      puVar3[0x8c] = (int)dVar18;\n      dVar19 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      iVar7 = param_1[7];\n      puVar3[0xa6] = (int)dVar19;\n      if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_3;\n        if (param_3 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }\n      dVar18 = (double)(int)param_1[0x8b];\n      if ((int)param_1[0x8b] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar18 = (double)(*(code *)PTR_floor_003a9670)(dVar18 * dVar19 + *(double *)(puVar1 + 0x1400))\n      ;\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar7 = param_1[0x8d];\n      dVar20 = *(double *)(puVar1 + 0x1400);\n      puVar3[0x8b] = uVar5;\n      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      puVar1 = PTR_ceil_003a8c20;\n      iVar7 = param_1[0xa7];\n      puVar3[0x8d] = (int)dVar18;\n      dVar19 = (double)(*(code *)puVar1)((double)iVar7 * dVar19 - dVar20);\n      puVar1 = PTR_FUN_003a8a10;\n      uVar4 = param_1[0xb5];\n      puVar3[0xa7] = (int)dVar19;\n      uVar4 = (*(code *)puVar1)(uVar4);\n      puVar3[0xb5] = uVar4;\n      iVar7 = (*(code *)PTR_SetImageExtent_003a94ac)(puVar3,param_2,param_3,param_5);\n      if (iVar7 == 0) {\n        puVar3 = (undefined4 *)(*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        return puVar3;\n      }\n    }\n    return puVar3;\n  }\n  (*(code *)PTR_ThrowMagickException_003a8f20)\n            (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x31e,\n             0x1a9,PTR_s_t_to_left_003a88e4 + -0x5ac0,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);\n  return (undefined4 *)0x0;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined4 *puVar3;" (type_identifier "undefined4") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "undefined4 uVar8;" (type_identifier "undefined4") (identifier "uVar8") (; ";")) (declaration "undefined4 uVar9;" (type_identifier "undefined4") (identifier "uVar9") (; ";")) (declaration "undefined4 uVar10;" (type_identifier "undefined4") (identifier "uVar10") (; ";")) (declaration "undefined4 uVar11;" (type_identifier "undefined4") (identifier "uVar11") (; ";")) (declaration "undefined4 uVar12;" (type_identifier "undefined4") (identifier "uVar12") (; ";")) (declaration "undefined4 uVar13;" (type_identifier "undefined4") (identifier "uVar13") (; ";")) (declaration "undefined4 uVar14;" (type_identifier "undefined4") (identifier "uVar14") (; ";")) (declaration "undefined4 uVar15;" (type_identifier "undefined4") (identifier "uVar15") (; ";")) (declaration "undefined4 uVar16;" (type_identifier "undefined4") (identifier "uVar16") (; ";")) (declaration "int iVar17;" (primitive_type "int") (identifier "iVar17") (; ";")) (declaration "double dVar18;" (primitive_type "double") (identifier "dVar18") (; ";")) (declaration "double dVar19;" (primitive_type "double") (identifier "dVar19") (; ";")) (declaration "double dVar20;" (primitive_type "double") (identifier "dVar20") (; ";")) (if_statement "if (param_1 == (undefined4 *)0x0) {\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x37b0,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x316,PTR_s_t_to_left_003a88e4 + -0x5294)\n    ;\n    return puVar3;\n  }" (if "if") (parenthesized_expression "(param_1 == (undefined4 *)0x0)" (( "(") (binary_expression "param_1 == (undefined4 *)0x0" (identifier "param_1") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x37b0,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x316,PTR_s_t_to_left_003a88e4 + -0x5294)\n    ;\n    return puVar3;\n  }" ({ "{") (expression_statement "puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x37b0,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x316,PTR_s_t_to_left_003a88e4 + -0x5294)\n    ;" (assignment_expression "puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x37b0,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x316,PTR_s_t_to_left_003a88e4 + -0x5294)" (identifier "puVar3") (= "=") (cast_expression "(undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x37b0,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x316,PTR_s_t_to_left_003a88e4 + -0x5294)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x37b0,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x316,PTR_s_t_to_left_003a88e4 + -0x5294)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_003a9608" (* "*") (cast_expression "(code *)PTR___assert_fail_003a9608" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_003a9608"))) () ")")) (argument_list "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x37b0,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x316,PTR_s_t_to_left_003a88e4 + -0x5294)" (( "(") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x37b0" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "-0x37b0")) (, ",") (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5b4c" (identifier "PTR_s_t_to_left_003a88e4") (+ "+") (number_literal "-0x5b4c")) (, ",") (number_literal "0x316") (, ",") (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5294" (identifier "PTR_s_t_to_left_003a88e4") (+ "+") (number_literal "-0x5294")) () ")"))))) (; ";")) (return_statement "return puVar3;" (return "return") (identifier "puVar3") (; ";")) (} "}"))) (if_statement "if (param_1[0xcdb] != -0x54535255) {\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x317,PTR_s_t_to_left_003a88e4 + -0x5294)\n    ;\n    return puVar3;\n  }" (if "if") (parenthesized_expression "(param_1[0xcdb] != -0x54535255)" (( "(") (binary_expression "param_1[0xcdb] != -0x54535255" (subscript_expression "param_1[0xcdb]" (identifier "param_1") ([ "[") (number_literal "0xcdb") (] "]")) (!= "!=") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x317,PTR_s_t_to_left_003a88e4 + -0x5294)\n    ;\n    return puVar3;\n  }" ({ "{") (expression_statement "puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x317,PTR_s_t_to_left_003a88e4 + -0x5294)\n    ;" (assignment_expression "puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x317,PTR_s_t_to_left_003a88e4 + -0x5294)" (identifier "puVar3") (= "=") (cast_expression "(undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x317,PTR_s_t_to_left_003a88e4 + -0x5294)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x317,PTR_s_t_to_left_003a88e4 + -0x5294)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_003a9608" (* "*") (cast_expression "(code *)PTR___assert_fail_003a9608" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_003a9608"))) () ")")) (argument_list "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,\n                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x317,PTR_s_t_to_left_003a88e4 + -0x5294)" (( "(") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "-0x3784")) (, ",") (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5b4c" (identifier "PTR_s_t_to_left_003a88e4") (+ "+") (number_literal "-0x5b4c")) (, ",") (number_literal "0x317") (, ",") (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5294" (identifier "PTR_s_t_to_left_003a88e4") (+ "+") (number_literal "-0x5294")) () ")"))))) (; ";")) (return_statement "return puVar3;" (return "return") (identifier "puVar3") (; ";")) (} "}"))) (if_statement "if (param_1[0xcd4] != 0) {\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x319,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1 + 0xd0);\n  }" (if "if") (parenthesized_expression "(param_1[0xcd4] != 0)" (( "(") (binary_expression "param_1[0xcd4] != 0" (subscript_expression "param_1[0xcd4]" (identifier "param_1") ([ "[") (number_literal "0xcd4") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    (*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x319,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1 + 0xd0);\n  }" ({ "{") (expression_statement "(*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x319,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1 + 0xd0);" (call_expression "(*(code *)PTR_LogMagickEvent_003a91e0)\n              (0x8000,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x319,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1 + 0xd0)" (parenthesized_expression "(*(code *)PTR_LogMagickEvent_003a91e0)" (( "(") (pointer_expression "*(code *)PTR_LogMagickEvent_003a91e0" (* "*") (cast_expression "(code *)PTR_LogMagickEvent_003a91e0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_LogMagickEvent_003a91e0"))) () ")")) (argument_list "(0x8000,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x319,\n               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1 + 0xd0)" (( "(") (number_literal "0x8000") (, ",") (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5b4c" (identifier "PTR_s_t_to_left_003a88e4") (+ "+") (number_literal "-0x5b4c")) (, ",") (binary_expression "PTR_s_t_to_left_003a88e4 + -0x52a0" (identifier "PTR_s_t_to_left_003a88e4") (+ "+") (number_literal "-0x52a0")) (, ",") (number_literal "0x319") (, ",") (binary_expression "PTR_s_t_to_left_003a88e4 + -0x62ac" (identifier "PTR_s_t_to_left_003a88e4") (+ "+") (number_literal "-0x62ac")) (, ",") (binary_expression "param_1 + 0xd0" (identifier "param_1") (+ "+") (number_literal "0xd0")) () ")"))) (; ";")) (} "}"))) (if_statement "if (param_5 == 0) {\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31a,\n                        PTR_s_t_to_left_003a88e4 + -0x5294);\n    return puVar3;\n  }" (if "if") (parenthesized_expression "(param_5 == 0)" (( "(") (binary_expression "param_5 == 0" (identifier "param_5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31a,\n                        PTR_s_t_to_left_003a88e4 + -0x5294);\n    return puVar3;\n  }" ({ "{") (expression_statement "puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31a,\n                        PTR_s_t_to_left_003a88e4 + -0x5294);" (assignment_expression "puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31a,\n                        PTR_s_t_to_left_003a88e4 + -0x5294)" (identifier "puVar3") (= "=") (cast_expression "(undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31a,\n                        PTR_s_t_to_left_003a88e4 + -0x5294)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x1cac,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31a,\n                        PTR_s_t_to_left_003a88e4 + -0x5294)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_003a9608" (* "*") (cast_expression "(code *)PTR___assert_fail_003a9608" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_003a9608"))) () ")")) (argument_list "(PTR_LAB_003a88e0 + 0x1cac,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31a,\n                        PTR_s_t_to_left_003a88e4 + -0x5294)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1cac" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1cac")) (, ",") (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5b4c" (identifier "PTR_s_t_to_left_003a88e4") (+ "+") (number_literal "-0x5b4c")) (, ",") (number_literal "0x31a") (, ",") (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5294" (identifier "PTR_s_t_to_left_003a88e4") (+ "+") (number_literal "-0x5294")) () ")"))))) (; ";")) (return_statement "return puVar3;" (return "return") (identifier "puVar3") (; ";")) (} "}"))) (if_statement "if (*(int *)(param_5 + 0x1c) != -0x54535255) {\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31b,\n                        PTR_s_t_to_left_003a88e4 + -0x5294);\n    return puVar3;\n  }" (if "if") (parenthesized_expression "(*(int *)(param_5 + 0x1c) != -0x54535255)" (( "(") (binary_expression "*(int *)(param_5 + 0x1c) != -0x54535255" (pointer_expression "*(int *)(param_5 + 0x1c)" (* "*") (cast_expression "(int *)(param_5 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0x1c)" (( "(") (binary_expression "param_5 + 0x1c" (identifier "param_5") (+ "+") (number_literal "0x1c")) () ")")))) (!= "!=") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n    puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31b,\n                        PTR_s_t_to_left_003a88e4 + -0x5294);\n    return puVar3;\n  }" ({ "{") (expression_statement "puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31b,\n                        PTR_s_t_to_left_003a88e4 + -0x5294);" (assignment_expression "puVar3 = (undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31b,\n                        PTR_s_t_to_left_003a88e4 + -0x5294)" (identifier "puVar3") (= "=") (cast_expression "(undefined4 *)\n             (*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31b,\n                        PTR_s_t_to_left_003a88e4 + -0x5294)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___assert_fail_003a9608)\n                       (PTR_LAB_003a88e0 + 0x294c,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31b,\n                        PTR_s_t_to_left_003a88e4 + -0x5294)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_003a9608" (* "*") (cast_expression "(code *)PTR___assert_fail_003a9608" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_003a9608"))) () ")")) (argument_list "(PTR_LAB_003a88e0 + 0x294c,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31b,\n                        PTR_s_t_to_left_003a88e4 + -0x5294)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x294c" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x294c")) (, ",") (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5b4c" (identifier "PTR_s_t_to_left_003a88e4") (+ "+") (number_literal "-0x5b4c")) (, ",") (number_literal "0x31b") (, ",") (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5294" (identifier "PTR_s_t_to_left_003a88e4") (+ "+") (number_literal "-0x5294")) () ")"))))) (; ";")) (return_statement "return puVar3;" (return "return") (identifier "puVar3") (; ";")) (} "}"))) (if_statement "if ((param_1[6] != 0) && (param_1[7] != 0)) {\n    puVar3 = (undefined4 *)(*(code *)PTR_AcquireCriticalMemory_003a9354)(0x33d8);\n    (*(code *)PTR_memset_003a96d4)(puVar3,0,0x33d8);\n    puVar1 = PTR_CloneImageInfo_003a919c;\n    uVar16 = param_1[0xb0];\n    uVar15 = param_1[0xb1];\n    uVar14 = param_1[0xb2];\n    uVar13 = param_1[1];\n    uVar12 = param_1[0xaf];\n    uVar11 = param_1[0xcf4];\n    uVar10 = param_1[0xcf3];\n    uVar6 = param_1[7];\n    uVar9 = param_1[6];\n    uVar4 = param_1[0xa9];\n    uVar8 = param_1[0xcd7];\n    *puVar3 = *param_1;\n    puVar3[0xb0] = uVar16;\n    puVar3[0xb1] = uVar15;\n    puVar3[0xb2] = uVar14;\n    puVar3[1] = uVar13;\n    puVar3[0xaf] = uVar12;\n    puVar3[0xcf4] = uVar11;\n    puVar3[0xcf3] = uVar10;\n    puVar3[7] = uVar6;\n    puVar3[6] = uVar9;\n    puVar3[0xcdb] = 0xabacadab;\n    puVar3[0xa9] = uVar4;\n    uVar4 = (*(code *)puVar1)(uVar8);\n    puVar1 = PTR_CloneImageProfiles_003a9348;\n    puVar3[0xcd7] = uVar4;\n    (*(code *)puVar1)(puVar3,param_1);\n    (*(code *)PTR_CloneImageProperties_003a91ac)(puVar3,param_1);\n    (*(code *)PTR_CloneImageArtifacts_003a9500)(puVar3,param_1);\n    (*(code *)PTR_GetTimerInfo_003a9668)(puVar3 + 0xbc);\n    if (param_1[0xcc] != 0) {\n      (*(code *)PTR_Ascii85Initialize_003a8d18)(puVar3);\n    }\n    puVar1 = PTR_ClonePixelChannelMap_003a8d90;\n    uVar11 = param_1[0xcd0];\n    uVar10 = param_1[0xcd1];\n    uVar9 = param_1[0xa8];\n    uVar8 = param_1[0xb3];\n    uVar4 = param_1[0xaa];\n    uVar6 = param_1[0xb4];\n    puVar3[0xab] = param_1[0xab];\n    puVar3[0xcd0] = uVar11;\n    puVar3[0xcd1] = uVar10;\n    puVar3[0xa8] = uVar9;\n    puVar3[0xb3] = uVar8;\n    puVar3[0xaa] = uVar4;\n    uVar4 = (*(code *)puVar1)(uVar6);\n    puVar1 = PTR_CopyMagickString_003a983c;\n    puVar3[0xb4] = uVar4;\n    (*(code *)puVar1)(puVar3 + 0x4d0,param_1 + 0x4d0,0x1000);\n    (*(code *)PTR_CopyMagickString_003a983c)(puVar3 + 0x8d0,param_1 + 0x8d0,0x1000);\n    (*(code *)PTR_CopyMagickString_003a983c)(puVar3 + 0xd0,param_1 + 0xd0,0x1000);\n    puVar1 = PTR_NewImageList_003a8e84;\n    uVar8 = param_1[0xca];\n    uVar6 = param_1[0xcda];\n    uVar4 = param_1[0xcd9];\n    puVar3[0xcb] = param_1[0xcb];\n    puVar3[0xca] = uVar8;\n    puVar3[0xcd5] = 1;\n    puVar3[0xcda] = uVar6;\n    puVar3[0xcd9] = uVar4;\n    uVar4 = (*(code *)puVar1)();\n    puVar3[0xcd8] = uVar4;\n    puVar1 = PTR_CloneBlobInfo_003a97e0;\n    if (param_4 == 0) {\n      uVar4 = (*(code *)PTR_ReferenceBlob_003a9294)(param_1[0xcd2]);\n      puVar3[0xcd2] = uVar4;\n    }\n    else {\n      puVar3[0xcda] = uVar4;\n      puVar3[0xcd9] = uVar4;\n      uVar4 = (*(code *)puVar1)(0);\n      puVar3[0xcd2] = uVar4;\n    }\n    puVar1 = PTR_IsEventLogging_003a97a8;\n    puVar3[0xac] = param_1[0xac];\n    uVar4 = (*(code *)puVar1)();\n    puVar1 = PTR_AcquireSemaphoreInfo_003a962c;\n    puVar3[0xcd4] = uVar4;\n    uVar4 = (*(code *)puVar1)();\n    iVar7 = param_1[10];\n    puVar3[0xcd6] = uVar4;\n    puVar1 = PTR_AcquireQuantumMemory_003a950c;\n    if (iVar7 != 0) {\n      puVar3[9] = param_1[9];\n      iVar17 = param_1[9];\n      iVar7 = (*(code *)puVar1)(iVar17 + 1,0x58);\n      puVar3[10] = iVar7;\n      if (iVar7 == 0) {\n        (*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        (*(code *)PTR_ThrowMagickException_003a8f20)\n                  (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,\n                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);\n        return (undefined4 *)0x0;\n      }\n      (*(code *)PTR_memcpy_003a9358)(iVar7,param_1[10],iVar17 * 0x58);\n    }\n    puVar1 = PTR_LAB_003a88e0;\n    if ((param_2 == 0) || (param_3 == 0)) {\n      if (param_1[0x81] != 0) {\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x81);\n      }\n      if (param_1[0x82] != 0) {\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x82);\n      }\n      uVar4 = (*(code *)PTR_FUN_003a8a84)(param_1[0xb5]);\n      puVar3[0xb5] = uVar4;\n    }\n    else {\n      iVar7 = param_1[6];\n      if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_2;\n        if (param_2 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }\n      dVar18 = (double)(int)param_1[0x8a];\n      if ((int)param_1[0x8a] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar18 = (double)(*(code *)PTR_floor_003a9670)\n                                 (dVar18 * dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1400));\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar7 = param_1[0x8c];\n      dVar20 = *(double *)(puVar1 + 0x1400);\n      puVar3[0x8a] = uVar5;\n      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      puVar2 = PTR_ceil_003a8c20;\n      iVar7 = param_1[0xa6];\n      puVar3[0x8c] = (int)dVar18;\n      dVar19 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      iVar7 = param_1[7];\n      puVar3[0xa6] = (int)dVar19;\n      if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_3;\n        if (param_3 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }\n      dVar18 = (double)(int)param_1[0x8b];\n      if ((int)param_1[0x8b] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar18 = (double)(*(code *)PTR_floor_003a9670)(dVar18 * dVar19 + *(double *)(puVar1 + 0x1400))\n      ;\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar7 = param_1[0x8d];\n      dVar20 = *(double *)(puVar1 + 0x1400);\n      puVar3[0x8b] = uVar5;\n      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      puVar1 = PTR_ceil_003a8c20;\n      iVar7 = param_1[0xa7];\n      puVar3[0x8d] = (int)dVar18;\n      dVar19 = (double)(*(code *)puVar1)((double)iVar7 * dVar19 - dVar20);\n      puVar1 = PTR_FUN_003a8a10;\n      uVar4 = param_1[0xb5];\n      puVar3[0xa7] = (int)dVar19;\n      uVar4 = (*(code *)puVar1)(uVar4);\n      puVar3[0xb5] = uVar4;\n      iVar7 = (*(code *)PTR_SetImageExtent_003a94ac)(puVar3,param_2,param_3,param_5);\n      if (iVar7 == 0) {\n        puVar3 = (undefined4 *)(*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        return puVar3;\n      }\n    }\n    return puVar3;\n  }" (if "if") (parenthesized_expression "((param_1[6] != 0) && (param_1[7] != 0))" (( "(") (binary_expression "(param_1[6] != 0) && (param_1[7] != 0)" (parenthesized_expression "(param_1[6] != 0)" (( "(") (binary_expression "param_1[6] != 0" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(param_1[7] != 0)" (( "(") (binary_expression "param_1[7] != 0" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    puVar3 = (undefined4 *)(*(code *)PTR_AcquireCriticalMemory_003a9354)(0x33d8);\n    (*(code *)PTR_memset_003a96d4)(puVar3,0,0x33d8);\n    puVar1 = PTR_CloneImageInfo_003a919c;\n    uVar16 = param_1[0xb0];\n    uVar15 = param_1[0xb1];\n    uVar14 = param_1[0xb2];\n    uVar13 = param_1[1];\n    uVar12 = param_1[0xaf];\n    uVar11 = param_1[0xcf4];\n    uVar10 = param_1[0xcf3];\n    uVar6 = param_1[7];\n    uVar9 = param_1[6];\n    uVar4 = param_1[0xa9];\n    uVar8 = param_1[0xcd7];\n    *puVar3 = *param_1;\n    puVar3[0xb0] = uVar16;\n    puVar3[0xb1] = uVar15;\n    puVar3[0xb2] = uVar14;\n    puVar3[1] = uVar13;\n    puVar3[0xaf] = uVar12;\n    puVar3[0xcf4] = uVar11;\n    puVar3[0xcf3] = uVar10;\n    puVar3[7] = uVar6;\n    puVar3[6] = uVar9;\n    puVar3[0xcdb] = 0xabacadab;\n    puVar3[0xa9] = uVar4;\n    uVar4 = (*(code *)puVar1)(uVar8);\n    puVar1 = PTR_CloneImageProfiles_003a9348;\n    puVar3[0xcd7] = uVar4;\n    (*(code *)puVar1)(puVar3,param_1);\n    (*(code *)PTR_CloneImageProperties_003a91ac)(puVar3,param_1);\n    (*(code *)PTR_CloneImageArtifacts_003a9500)(puVar3,param_1);\n    (*(code *)PTR_GetTimerInfo_003a9668)(puVar3 + 0xbc);\n    if (param_1[0xcc] != 0) {\n      (*(code *)PTR_Ascii85Initialize_003a8d18)(puVar3);\n    }\n    puVar1 = PTR_ClonePixelChannelMap_003a8d90;\n    uVar11 = param_1[0xcd0];\n    uVar10 = param_1[0xcd1];\n    uVar9 = param_1[0xa8];\n    uVar8 = param_1[0xb3];\n    uVar4 = param_1[0xaa];\n    uVar6 = param_1[0xb4];\n    puVar3[0xab] = param_1[0xab];\n    puVar3[0xcd0] = uVar11;\n    puVar3[0xcd1] = uVar10;\n    puVar3[0xa8] = uVar9;\n    puVar3[0xb3] = uVar8;\n    puVar3[0xaa] = uVar4;\n    uVar4 = (*(code *)puVar1)(uVar6);\n    puVar1 = PTR_CopyMagickString_003a983c;\n    puVar3[0xb4] = uVar4;\n    (*(code *)puVar1)(puVar3 + 0x4d0,param_1 + 0x4d0,0x1000);\n    (*(code *)PTR_CopyMagickString_003a983c)(puVar3 + 0x8d0,param_1 + 0x8d0,0x1000);\n    (*(code *)PTR_CopyMagickString_003a983c)(puVar3 + 0xd0,param_1 + 0xd0,0x1000);\n    puVar1 = PTR_NewImageList_003a8e84;\n    uVar8 = param_1[0xca];\n    uVar6 = param_1[0xcda];\n    uVar4 = param_1[0xcd9];\n    puVar3[0xcb] = param_1[0xcb];\n    puVar3[0xca] = uVar8;\n    puVar3[0xcd5] = 1;\n    puVar3[0xcda] = uVar6;\n    puVar3[0xcd9] = uVar4;\n    uVar4 = (*(code *)puVar1)();\n    puVar3[0xcd8] = uVar4;\n    puVar1 = PTR_CloneBlobInfo_003a97e0;\n    if (param_4 == 0) {\n      uVar4 = (*(code *)PTR_ReferenceBlob_003a9294)(param_1[0xcd2]);\n      puVar3[0xcd2] = uVar4;\n    }\n    else {\n      puVar3[0xcda] = uVar4;\n      puVar3[0xcd9] = uVar4;\n      uVar4 = (*(code *)puVar1)(0);\n      puVar3[0xcd2] = uVar4;\n    }\n    puVar1 = PTR_IsEventLogging_003a97a8;\n    puVar3[0xac] = param_1[0xac];\n    uVar4 = (*(code *)puVar1)();\n    puVar1 = PTR_AcquireSemaphoreInfo_003a962c;\n    puVar3[0xcd4] = uVar4;\n    uVar4 = (*(code *)puVar1)();\n    iVar7 = param_1[10];\n    puVar3[0xcd6] = uVar4;\n    puVar1 = PTR_AcquireQuantumMemory_003a950c;\n    if (iVar7 != 0) {\n      puVar3[9] = param_1[9];\n      iVar17 = param_1[9];\n      iVar7 = (*(code *)puVar1)(iVar17 + 1,0x58);\n      puVar3[10] = iVar7;\n      if (iVar7 == 0) {\n        (*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        (*(code *)PTR_ThrowMagickException_003a8f20)\n                  (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,\n                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);\n        return (undefined4 *)0x0;\n      }\n      (*(code *)PTR_memcpy_003a9358)(iVar7,param_1[10],iVar17 * 0x58);\n    }\n    puVar1 = PTR_LAB_003a88e0;\n    if ((param_2 == 0) || (param_3 == 0)) {\n      if (param_1[0x81] != 0) {\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x81);\n      }\n      if (param_1[0x82] != 0) {\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x82);\n      }\n      uVar4 = (*(code *)PTR_FUN_003a8a84)(param_1[0xb5]);\n      puVar3[0xb5] = uVar4;\n    }\n    else {\n      iVar7 = param_1[6];\n      if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_2;\n        if (param_2 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }\n      dVar18 = (double)(int)param_1[0x8a];\n      if ((int)param_1[0x8a] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar18 = (double)(*(code *)PTR_floor_003a9670)\n                                 (dVar18 * dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1400));\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar7 = param_1[0x8c];\n      dVar20 = *(double *)(puVar1 + 0x1400);\n      puVar3[0x8a] = uVar5;\n      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      puVar2 = PTR_ceil_003a8c20;\n      iVar7 = param_1[0xa6];\n      puVar3[0x8c] = (int)dVar18;\n      dVar19 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      iVar7 = param_1[7];\n      puVar3[0xa6] = (int)dVar19;\n      if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_3;\n        if (param_3 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }\n      dVar18 = (double)(int)param_1[0x8b];\n      if ((int)param_1[0x8b] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar18 = (double)(*(code *)PTR_floor_003a9670)(dVar18 * dVar19 + *(double *)(puVar1 + 0x1400))\n      ;\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar7 = param_1[0x8d];\n      dVar20 = *(double *)(puVar1 + 0x1400);\n      puVar3[0x8b] = uVar5;\n      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      puVar1 = PTR_ceil_003a8c20;\n      iVar7 = param_1[0xa7];\n      puVar3[0x8d] = (int)dVar18;\n      dVar19 = (double)(*(code *)puVar1)((double)iVar7 * dVar19 - dVar20);\n      puVar1 = PTR_FUN_003a8a10;\n      uVar4 = param_1[0xb5];\n      puVar3[0xa7] = (int)dVar19;\n      uVar4 = (*(code *)puVar1)(uVar4);\n      puVar3[0xb5] = uVar4;\n      iVar7 = (*(code *)PTR_SetImageExtent_003a94ac)(puVar3,param_2,param_3,param_5);\n      if (iVar7 == 0) {\n        puVar3 = (undefined4 *)(*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        return puVar3;\n      }\n    }\n    return puVar3;\n  }" ({ "{") (expression_statement "puVar3 = (undefined4 *)(*(code *)PTR_AcquireCriticalMemory_003a9354)(0x33d8);" (assignment_expression "puVar3 = (undefined4 *)(*(code *)PTR_AcquireCriticalMemory_003a9354)(0x33d8)" (identifier "puVar3") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR_AcquireCriticalMemory_003a9354)(0x33d8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_AcquireCriticalMemory_003a9354)(0x33d8)" (parenthesized_expression "(*(code *)PTR_AcquireCriticalMemory_003a9354)" (( "(") (pointer_expression "*(code *)PTR_AcquireCriticalMemory_003a9354" (* "*") (cast_expression "(code *)PTR_AcquireCriticalMemory_003a9354" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_AcquireCriticalMemory_003a9354"))) () ")")) (argument_list "(0x33d8)" (( "(") (number_literal "0x33d8") () ")"))))) (; ";")) (expression_statement "(*(code *)PTR_memset_003a96d4)(puVar3,0,0x33d8);" (call_expression "(*(code *)PTR_memset_003a96d4)(puVar3,0,0x33d8)" (parenthesized_expression "(*(code *)PTR_memset_003a96d4)" (( "(") (pointer_expression "*(code *)PTR_memset_003a96d4" (* "*") (cast_expression "(code *)PTR_memset_003a96d4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memset_003a96d4"))) () ")")) (argument_list "(puVar3,0,0x33d8)" (( "(") (identifier "puVar3") (, ",") (number_literal "0") (, ",") (number_literal "0x33d8") () ")"))) (; ";")) (expression_statement "puVar1 = PTR_CloneImageInfo_003a919c;" (assignment_expression "puVar1 = PTR_CloneImageInfo_003a919c" (identifier "puVar1") (= "=") (identifier "PTR_CloneImageInfo_003a919c")) (; ";")) (expression_statement "uVar16 = param_1[0xb0];" (assignment_expression "uVar16 = param_1[0xb0]" (identifier "uVar16") (= "=") (subscript_expression "param_1[0xb0]" (identifier "param_1") ([ "[") (number_literal "0xb0") (] "]"))) (; ";")) (expression_statement "uVar15 = param_1[0xb1];" (assignment_expression "uVar15 = param_1[0xb1]" (identifier "uVar15") (= "=") (subscript_expression "param_1[0xb1]" (identifier "param_1") ([ "[") (number_literal "0xb1") (] "]"))) (; ";")) (expression_statement "uVar14 = param_1[0xb2];" (assignment_expression "uVar14 = param_1[0xb2]" (identifier "uVar14") (= "=") (subscript_expression "param_1[0xb2]" (identifier "param_1") ([ "[") (number_literal "0xb2") (] "]"))) (; ";")) (expression_statement "uVar13 = param_1[1];" (assignment_expression "uVar13 = param_1[1]" (identifier "uVar13") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar12 = param_1[0xaf];" (assignment_expression "uVar12 = param_1[0xaf]" (identifier "uVar12") (= "=") (subscript_expression "param_1[0xaf]" (identifier "param_1") ([ "[") (number_literal "0xaf") (] "]"))) (; ";")) (expression_statement "uVar11 = param_1[0xcf4];" (assignment_expression "uVar11 = param_1[0xcf4]" (identifier "uVar11") (= "=") (subscript_expression "param_1[0xcf4]" (identifier "param_1") ([ "[") (number_literal "0xcf4") (] "]"))) (; ";")) (expression_statement "uVar10 = param_1[0xcf3];" (assignment_expression "uVar10 = param_1[0xcf3]" (identifier "uVar10") (= "=") (subscript_expression "param_1[0xcf3]" (identifier "param_1") ([ "[") (number_literal "0xcf3") (] "]"))) (; ";")) (expression_statement "uVar6 = param_1[7];" (assignment_expression "uVar6 = param_1[7]" (identifier "uVar6") (= "=") (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "uVar9 = param_1[6];" (assignment_expression "uVar9 = param_1[6]" (identifier "uVar9") (= "=") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "uVar4 = param_1[0xa9];" (assignment_expression "uVar4 = param_1[0xa9]" (identifier "uVar4") (= "=") (subscript_expression "param_1[0xa9]" (identifier "param_1") ([ "[") (number_literal "0xa9") (] "]"))) (; ";")) (expression_statement "uVar8 = param_1[0xcd7];" (assignment_expression "uVar8 = param_1[0xcd7]" (identifier "uVar8") (= "=") (subscript_expression "param_1[0xcd7]" (identifier "param_1") ([ "[") (number_literal "0xcd7") (] "]"))) (; ";")) (expression_statement "*puVar3 = *param_1;" (assignment_expression "*puVar3 = *param_1" (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "puVar3[0xb0] = uVar16;" (assignment_expression "puVar3[0xb0] = uVar16" (subscript_expression "puVar3[0xb0]" (identifier "puVar3") ([ "[") (number_literal "0xb0") (] "]")) (= "=") (identifier "uVar16")) (; ";")) (expression_statement "puVar3[0xb1] = uVar15;" (assignment_expression "puVar3[0xb1] = uVar15" (subscript_expression "puVar3[0xb1]" (identifier "puVar3") ([ "[") (number_literal "0xb1") (] "]")) (= "=") (identifier "uVar15")) (; ";")) (expression_statement "puVar3[0xb2] = uVar14;" (assignment_expression "puVar3[0xb2] = uVar14" (subscript_expression "puVar3[0xb2]" (identifier "puVar3") ([ "[") (number_literal "0xb2") (] "]")) (= "=") (identifier "uVar14")) (; ";")) (expression_statement "puVar3[1] = uVar13;" (assignment_expression "puVar3[1] = uVar13" (subscript_expression "puVar3[1]" (identifier "puVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "puVar3[0xaf] = uVar12;" (assignment_expression "puVar3[0xaf] = uVar12" (subscript_expression "puVar3[0xaf]" (identifier "puVar3") ([ "[") (number_literal "0xaf") (] "]")) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "puVar3[0xcf4] = uVar11;" (assignment_expression "puVar3[0xcf4] = uVar11" (subscript_expression "puVar3[0xcf4]" (identifier "puVar3") ([ "[") (number_literal "0xcf4") (] "]")) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "puVar3[0xcf3] = uVar10;" (assignment_expression "puVar3[0xcf3] = uVar10" (subscript_expression "puVar3[0xcf3]" (identifier "puVar3") ([ "[") (number_literal "0xcf3") (] "]")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "puVar3[7] = uVar6;" (assignment_expression "puVar3[7] = uVar6" (subscript_expression "puVar3[7]" (identifier "puVar3") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "puVar3[6] = uVar9;" (assignment_expression "puVar3[6] = uVar9" (subscript_expression "puVar3[6]" (identifier "puVar3") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "puVar3[0xcdb] = 0xabacadab;" (assignment_expression "puVar3[0xcdb] = 0xabacadab" (subscript_expression "puVar3[0xcdb]" (identifier "puVar3") ([ "[") (number_literal "0xcdb") (] "]")) (= "=") (number_literal "0xabacadab")) (; ";")) (expression_statement "puVar3[0xa9] = uVar4;" (assignment_expression "puVar3[0xa9] = uVar4" (subscript_expression "puVar3[0xa9]" (identifier "puVar3") ([ "[") (number_literal "0xa9") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "uVar4 = (*(code *)puVar1)(uVar8);" (assignment_expression "uVar4 = (*(code *)puVar1)(uVar8)" (identifier "uVar4") (= "=") (call_expression "(*(code *)puVar1)(uVar8)" (parenthesized_expression "(*(code *)puVar1)" (( "(") (pointer_expression "*(code *)puVar1" (* "*") (cast_expression "(code *)puVar1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) () ")")) (argument_list "(uVar8)" (( "(") (identifier "uVar8") () ")")))) (; ";")) (expression_statement "puVar1 = PTR_CloneImageProfiles_003a9348;" (assignment_expression "puVar1 = PTR_CloneImageProfiles_003a9348" (identifier "puVar1") (= "=") (identifier "PTR_CloneImageProfiles_003a9348")) (; ";")) (expression_statement "puVar3[0xcd7] = uVar4;" (assignment_expression "puVar3[0xcd7] = uVar4" (subscript_expression "puVar3[0xcd7]" (identifier "puVar3") ([ "[") (number_literal "0xcd7") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "(*(code *)puVar1)(puVar3,param_1);" (call_expression "(*(code *)puVar1)(puVar3,param_1)" (parenthesized_expression "(*(code *)puVar1)" (( "(") (pointer_expression "*(code *)puVar1" (* "*") (cast_expression "(code *)puVar1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) () ")")) (argument_list "(puVar3,param_1)" (( "(") (identifier "puVar3") (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_CloneImageProperties_003a91ac)(puVar3,param_1);" (call_expression "(*(code *)PTR_CloneImageProperties_003a91ac)(puVar3,param_1)" (parenthesized_expression "(*(code *)PTR_CloneImageProperties_003a91ac)" (( "(") (pointer_expression "*(code *)PTR_CloneImageProperties_003a91ac" (* "*") (cast_expression "(code *)PTR_CloneImageProperties_003a91ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_CloneImageProperties_003a91ac"))) () ")")) (argument_list "(puVar3,param_1)" (( "(") (identifier "puVar3") (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_CloneImageArtifacts_003a9500)(puVar3,param_1);" (call_expression "(*(code *)PTR_CloneImageArtifacts_003a9500)(puVar3,param_1)" (parenthesized_expression "(*(code *)PTR_CloneImageArtifacts_003a9500)" (( "(") (pointer_expression "*(code *)PTR_CloneImageArtifacts_003a9500" (* "*") (cast_expression "(code *)PTR_CloneImageArtifacts_003a9500" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_CloneImageArtifacts_003a9500"))) () ")")) (argument_list "(puVar3,param_1)" (( "(") (identifier "puVar3") (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_GetTimerInfo_003a9668)(puVar3 + 0xbc);" (call_expression "(*(code *)PTR_GetTimerInfo_003a9668)(puVar3 + 0xbc)" (parenthesized_expression "(*(code *)PTR_GetTimerInfo_003a9668)" (( "(") (pointer_expression "*(code *)PTR_GetTimerInfo_003a9668" (* "*") (cast_expression "(code *)PTR_GetTimerInfo_003a9668" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetTimerInfo_003a9668"))) () ")")) (argument_list "(puVar3 + 0xbc)" (( "(") (binary_expression "puVar3 + 0xbc" (identifier "puVar3") (+ "+") (number_literal "0xbc")) () ")"))) (; ";")) (if_statement "if (param_1[0xcc] != 0) {\n      (*(code *)PTR_Ascii85Initialize_003a8d18)(puVar3);\n    }" (if "if") (parenthesized_expression "(param_1[0xcc] != 0)" (( "(") (binary_expression "param_1[0xcc] != 0" (subscript_expression "param_1[0xcc]" (identifier "param_1") ([ "[") (number_literal "0xcc") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      (*(code *)PTR_Ascii85Initialize_003a8d18)(puVar3);\n    }" ({ "{") (expression_statement "(*(code *)PTR_Ascii85Initialize_003a8d18)(puVar3);" (call_expression "(*(code *)PTR_Ascii85Initialize_003a8d18)(puVar3)" (parenthesized_expression "(*(code *)PTR_Ascii85Initialize_003a8d18)" (( "(") (pointer_expression "*(code *)PTR_Ascii85Initialize_003a8d18" (* "*") (cast_expression "(code *)PTR_Ascii85Initialize_003a8d18" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_Ascii85Initialize_003a8d18"))) () ")")) (argument_list "(puVar3)" (( "(") (identifier "puVar3") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar1 = PTR_ClonePixelChannelMap_003a8d90;" (assignment_expression "puVar1 = PTR_ClonePixelChannelMap_003a8d90" (identifier "puVar1") (= "=") (identifier "PTR_ClonePixelChannelMap_003a8d90")) (; ";")) (expression_statement "uVar11 = param_1[0xcd0];" (assignment_expression "uVar11 = param_1[0xcd0]" (identifier "uVar11") (= "=") (subscript_expression "param_1[0xcd0]" (identifier "param_1") ([ "[") (number_literal "0xcd0") (] "]"))) (; ";")) (expression_statement "uVar10 = param_1[0xcd1];" (assignment_expression "uVar10 = param_1[0xcd1]" (identifier "uVar10") (= "=") (subscript_expression "param_1[0xcd1]" (identifier "param_1") ([ "[") (number_literal "0xcd1") (] "]"))) (; ";")) (expression_statement "uVar9 = param_1[0xa8];" (assignment_expression "uVar9 = param_1[0xa8]" (identifier "uVar9") (= "=") (subscript_expression "param_1[0xa8]" (identifier "param_1") ([ "[") (number_literal "0xa8") (] "]"))) (; ";")) (expression_statement "uVar8 = param_1[0xb3];" (assignment_expression "uVar8 = param_1[0xb3]" (identifier "uVar8") (= "=") (subscript_expression "param_1[0xb3]" (identifier "param_1") ([ "[") (number_literal "0xb3") (] "]"))) (; ";")) (expression_statement "uVar4 = param_1[0xaa];" (assignment_expression "uVar4 = param_1[0xaa]" (identifier "uVar4") (= "=") (subscript_expression "param_1[0xaa]" (identifier "param_1") ([ "[") (number_literal "0xaa") (] "]"))) (; ";")) (expression_statement "uVar6 = param_1[0xb4];" (assignment_expression "uVar6 = param_1[0xb4]" (identifier "uVar6") (= "=") (subscript_expression "param_1[0xb4]" (identifier "param_1") ([ "[") (number_literal "0xb4") (] "]"))) (; ";")) (expression_statement "puVar3[0xab] = param_1[0xab];" (assignment_expression "puVar3[0xab] = param_1[0xab]" (subscript_expression "puVar3[0xab]" (identifier "puVar3") ([ "[") (number_literal "0xab") (] "]")) (= "=") (subscript_expression "param_1[0xab]" (identifier "param_1") ([ "[") (number_literal "0xab") (] "]"))) (; ";")) (expression_statement "puVar3[0xcd0] = uVar11;" (assignment_expression "puVar3[0xcd0] = uVar11" (subscript_expression "puVar3[0xcd0]" (identifier "puVar3") ([ "[") (number_literal "0xcd0") (] "]")) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "puVar3[0xcd1] = uVar10;" (assignment_expression "puVar3[0xcd1] = uVar10" (subscript_expression "puVar3[0xcd1]" (identifier "puVar3") ([ "[") (number_literal "0xcd1") (] "]")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "puVar3[0xa8] = uVar9;" (assignment_expression "puVar3[0xa8] = uVar9" (subscript_expression "puVar3[0xa8]" (identifier "puVar3") ([ "[") (number_literal "0xa8") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "puVar3[0xb3] = uVar8;" (assignment_expression "puVar3[0xb3] = uVar8" (subscript_expression "puVar3[0xb3]" (identifier "puVar3") ([ "[") (number_literal "0xb3") (] "]")) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "puVar3[0xaa] = uVar4;" (assignment_expression "puVar3[0xaa] = uVar4" (subscript_expression "puVar3[0xaa]" (identifier "puVar3") ([ "[") (number_literal "0xaa") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "uVar4 = (*(code *)puVar1)(uVar6);" (assignment_expression "uVar4 = (*(code *)puVar1)(uVar6)" (identifier "uVar4") (= "=") (call_expression "(*(code *)puVar1)(uVar6)" (parenthesized_expression "(*(code *)puVar1)" (( "(") (pointer_expression "*(code *)puVar1" (* "*") (cast_expression "(code *)puVar1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) () ")")) (argument_list "(uVar6)" (( "(") (identifier "uVar6") () ")")))) (; ";")) (expression_statement "puVar1 = PTR_CopyMagickString_003a983c;" (assignment_expression "puVar1 = PTR_CopyMagickString_003a983c" (identifier "puVar1") (= "=") (identifier "PTR_CopyMagickString_003a983c")) (; ";")) (expression_statement "puVar3[0xb4] = uVar4;" (assignment_expression "puVar3[0xb4] = uVar4" (subscript_expression "puVar3[0xb4]" (identifier "puVar3") ([ "[") (number_literal "0xb4") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "(*(code *)puVar1)(puVar3 + 0x4d0,param_1 + 0x4d0,0x1000);" (call_expression "(*(code *)puVar1)(puVar3 + 0x4d0,param_1 + 0x4d0,0x1000)" (parenthesized_expression "(*(code *)puVar1)" (( "(") (pointer_expression "*(code *)puVar1" (* "*") (cast_expression "(code *)puVar1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) () ")")) (argument_list "(puVar3 + 0x4d0,param_1 + 0x4d0,0x1000)" (( "(") (binary_expression "puVar3 + 0x4d0" (identifier "puVar3") (+ "+") (number_literal "0x4d0")) (, ",") (binary_expression "param_1 + 0x4d0" (identifier "param_1") (+ "+") (number_literal "0x4d0")) (, ",") (number_literal "0x1000") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_CopyMagickString_003a983c)(puVar3 + 0x8d0,param_1 + 0x8d0,0x1000);" (call_expression "(*(code *)PTR_CopyMagickString_003a983c)(puVar3 + 0x8d0,param_1 + 0x8d0,0x1000)" (parenthesized_expression "(*(code *)PTR_CopyMagickString_003a983c)" (( "(") (pointer_expression "*(code *)PTR_CopyMagickString_003a983c" (* "*") (cast_expression "(code *)PTR_CopyMagickString_003a983c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_CopyMagickString_003a983c"))) () ")")) (argument_list "(puVar3 + 0x8d0,param_1 + 0x8d0,0x1000)" (( "(") (binary_expression "puVar3 + 0x8d0" (identifier "puVar3") (+ "+") (number_literal "0x8d0")) (, ",") (binary_expression "param_1 + 0x8d0" (identifier "param_1") (+ "+") (number_literal "0x8d0")) (, ",") (number_literal "0x1000") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_CopyMagickString_003a983c)(puVar3 + 0xd0,param_1 + 0xd0,0x1000);" (call_expression "(*(code *)PTR_CopyMagickString_003a983c)(puVar3 + 0xd0,param_1 + 0xd0,0x1000)" (parenthesized_expression "(*(code *)PTR_CopyMagickString_003a983c)" (( "(") (pointer_expression "*(code *)PTR_CopyMagickString_003a983c" (* "*") (cast_expression "(code *)PTR_CopyMagickString_003a983c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_CopyMagickString_003a983c"))) () ")")) (argument_list "(puVar3 + 0xd0,param_1 + 0xd0,0x1000)" (( "(") (binary_expression "puVar3 + 0xd0" (identifier "puVar3") (+ "+") (number_literal "0xd0")) (, ",") (binary_expression "param_1 + 0xd0" (identifier "param_1") (+ "+") (number_literal "0xd0")) (, ",") (number_literal "0x1000") () ")"))) (; ";")) (expression_statement "puVar1 = PTR_NewImageList_003a8e84;" (assignment_expression "puVar1 = PTR_NewImageList_003a8e84" (identifier "puVar1") (= "=") (identifier "PTR_NewImageList_003a8e84")) (; ";")) (expression_statement "uVar8 = param_1[0xca];" (assignment_expression "uVar8 = param_1[0xca]" (identifier "uVar8") (= "=") (subscript_expression "param_1[0xca]" (identifier "param_1") ([ "[") (number_literal "0xca") (] "]"))) (; ";")) (expression_statement "uVar6 = param_1[0xcda];" (assignment_expression "uVar6 = param_1[0xcda]" (identifier "uVar6") (= "=") (subscript_expression "param_1[0xcda]" (identifier "param_1") ([ "[") (number_literal "0xcda") (] "]"))) (; ";")) (expression_statement "uVar4 = param_1[0xcd9];" (assignment_expression "uVar4 = param_1[0xcd9]" (identifier "uVar4") (= "=") (subscript_expression "param_1[0xcd9]" (identifier "param_1") ([ "[") (number_literal "0xcd9") (] "]"))) (; ";")) (expression_statement "puVar3[0xcb] = param_1[0xcb];" (assignment_expression "puVar3[0xcb] = param_1[0xcb]" (subscript_expression "puVar3[0xcb]" (identifier "puVar3") ([ "[") (number_literal "0xcb") (] "]")) (= "=") (subscript_expression "param_1[0xcb]" (identifier "param_1") ([ "[") (number_literal "0xcb") (] "]"))) (; ";")) (expression_statement "puVar3[0xca] = uVar8;" (assignment_expression "puVar3[0xca] = uVar8" (subscript_expression "puVar3[0xca]" (identifier "puVar3") ([ "[") (number_literal "0xca") (] "]")) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "puVar3[0xcd5] = 1;" (assignment_expression "puVar3[0xcd5] = 1" (subscript_expression "puVar3[0xcd5]" (identifier "puVar3") ([ "[") (number_literal "0xcd5") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar3[0xcda] = uVar6;" (assignment_expression "puVar3[0xcda] = uVar6" (subscript_expression "puVar3[0xcda]" (identifier "puVar3") ([ "[") (number_literal "0xcda") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "puVar3[0xcd9] = uVar4;" (assignment_expression "puVar3[0xcd9] = uVar4" (subscript_expression "puVar3[0xcd9]" (identifier "puVar3") ([ "[") (number_literal "0xcd9") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "uVar4 = (*(code *)puVar1)();" (assignment_expression "uVar4 = (*(code *)puVar1)()" (identifier "uVar4") (= "=") (call_expression "(*(code *)puVar1)()" (parenthesized_expression "(*(code *)puVar1)" (( "(") (pointer_expression "*(code *)puVar1" (* "*") (cast_expression "(code *)puVar1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "puVar3[0xcd8] = uVar4;" (assignment_expression "puVar3[0xcd8] = uVar4" (subscript_expression "puVar3[0xcd8]" (identifier "puVar3") ([ "[") (number_literal "0xcd8") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "puVar1 = PTR_CloneBlobInfo_003a97e0;" (assignment_expression "puVar1 = PTR_CloneBlobInfo_003a97e0" (identifier "puVar1") (= "=") (identifier "PTR_CloneBlobInfo_003a97e0")) (; ";")) (if_statement "if (param_4 == 0) {\n      uVar4 = (*(code *)PTR_ReferenceBlob_003a9294)(param_1[0xcd2]);\n      puVar3[0xcd2] = uVar4;\n    }\n    else {\n      puVar3[0xcda] = uVar4;\n      puVar3[0xcd9] = uVar4;\n      uVar4 = (*(code *)puVar1)(0);\n      puVar3[0xcd2] = uVar4;\n    }" (if "if") (parenthesized_expression "(param_4 == 0)" (( "(") (binary_expression "param_4 == 0" (identifier "param_4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar4 = (*(code *)PTR_ReferenceBlob_003a9294)(param_1[0xcd2]);\n      puVar3[0xcd2] = uVar4;\n    }" ({ "{") (expression_statement "uVar4 = (*(code *)PTR_ReferenceBlob_003a9294)(param_1[0xcd2]);" (assignment_expression "uVar4 = (*(code *)PTR_ReferenceBlob_003a9294)(param_1[0xcd2])" (identifier "uVar4") (= "=") (call_expression "(*(code *)PTR_ReferenceBlob_003a9294)(param_1[0xcd2])" (parenthesized_expression "(*(code *)PTR_ReferenceBlob_003a9294)" (( "(") (pointer_expression "*(code *)PTR_ReferenceBlob_003a9294" (* "*") (cast_expression "(code *)PTR_ReferenceBlob_003a9294" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ReferenceBlob_003a9294"))) () ")")) (argument_list "(param_1[0xcd2])" (( "(") (subscript_expression "param_1[0xcd2]" (identifier "param_1") ([ "[") (number_literal "0xcd2") (] "]")) () ")")))) (; ";")) (expression_statement "puVar3[0xcd2] = uVar4;" (assignment_expression "puVar3[0xcd2] = uVar4" (subscript_expression "puVar3[0xcd2]" (identifier "puVar3") ([ "[") (number_literal "0xcd2") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (} "}")) (else_clause "else {\n      puVar3[0xcda] = uVar4;\n      puVar3[0xcd9] = uVar4;\n      uVar4 = (*(code *)puVar1)(0);\n      puVar3[0xcd2] = uVar4;\n    }" (else "else") (compound_statement "{\n      puVar3[0xcda] = uVar4;\n      puVar3[0xcd9] = uVar4;\n      uVar4 = (*(code *)puVar1)(0);\n      puVar3[0xcd2] = uVar4;\n    }" ({ "{") (expression_statement "puVar3[0xcda] = uVar4;" (assignment_expression "puVar3[0xcda] = uVar4" (subscript_expression "puVar3[0xcda]" (identifier "puVar3") ([ "[") (number_literal "0xcda") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "puVar3[0xcd9] = uVar4;" (assignment_expression "puVar3[0xcd9] = uVar4" (subscript_expression "puVar3[0xcd9]" (identifier "puVar3") ([ "[") (number_literal "0xcd9") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "uVar4 = (*(code *)puVar1)(0);" (assignment_expression "uVar4 = (*(code *)puVar1)(0)" (identifier "uVar4") (= "=") (call_expression "(*(code *)puVar1)(0)" (parenthesized_expression "(*(code *)puVar1)" (( "(") (pointer_expression "*(code *)puVar1" (* "*") (cast_expression "(code *)puVar1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) () ")")) (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";")) (expression_statement "puVar3[0xcd2] = uVar4;" (assignment_expression "puVar3[0xcd2] = uVar4" (subscript_expression "puVar3[0xcd2]" (identifier "puVar3") ([ "[") (number_literal "0xcd2") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (} "}")))) (expression_statement "puVar1 = PTR_IsEventLogging_003a97a8;" (assignment_expression "puVar1 = PTR_IsEventLogging_003a97a8" (identifier "puVar1") (= "=") (identifier "PTR_IsEventLogging_003a97a8")) (; ";")) (expression_statement "puVar3[0xac] = param_1[0xac];" (assignment_expression "puVar3[0xac] = param_1[0xac]" (subscript_expression "puVar3[0xac]" (identifier "puVar3") ([ "[") (number_literal "0xac") (] "]")) (= "=") (subscript_expression "param_1[0xac]" (identifier "param_1") ([ "[") (number_literal "0xac") (] "]"))) (; ";")) (expression_statement "uVar4 = (*(code *)puVar1)();" (assignment_expression "uVar4 = (*(code *)puVar1)()" (identifier "uVar4") (= "=") (call_expression "(*(code *)puVar1)()" (parenthesized_expression "(*(code *)puVar1)" (( "(") (pointer_expression "*(code *)puVar1" (* "*") (cast_expression "(code *)puVar1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "puVar1 = PTR_AcquireSemaphoreInfo_003a962c;" (assignment_expression "puVar1 = PTR_AcquireSemaphoreInfo_003a962c" (identifier "puVar1") (= "=") (identifier "PTR_AcquireSemaphoreInfo_003a962c")) (; ";")) (expression_statement "puVar3[0xcd4] = uVar4;" (assignment_expression "puVar3[0xcd4] = uVar4" (subscript_expression "puVar3[0xcd4]" (identifier "puVar3") ([ "[") (number_literal "0xcd4") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "uVar4 = (*(code *)puVar1)();" (assignment_expression "uVar4 = (*(code *)puVar1)()" (identifier "uVar4") (= "=") (call_expression "(*(code *)puVar1)()" (parenthesized_expression "(*(code *)puVar1)" (( "(") (pointer_expression "*(code *)puVar1" (* "*") (cast_expression "(code *)puVar1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar7 = param_1[10];" (assignment_expression "iVar7 = param_1[10]" (identifier "iVar7") (= "=") (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]"))) (; ";")) (expression_statement "puVar3[0xcd6] = uVar4;" (assignment_expression "puVar3[0xcd6] = uVar4" (subscript_expression "puVar3[0xcd6]" (identifier "puVar3") ([ "[") (number_literal "0xcd6") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "puVar1 = PTR_AcquireQuantumMemory_003a950c;" (assignment_expression "puVar1 = PTR_AcquireQuantumMemory_003a950c" (identifier "puVar1") (= "=") (identifier "PTR_AcquireQuantumMemory_003a950c")) (; ";")) (if_statement "if (iVar7 != 0) {\n      puVar3[9] = param_1[9];\n      iVar17 = param_1[9];\n      iVar7 = (*(code *)puVar1)(iVar17 + 1,0x58);\n      puVar3[10] = iVar7;\n      if (iVar7 == 0) {\n        (*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        (*(code *)PTR_ThrowMagickException_003a8f20)\n                  (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,\n                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);\n        return (undefined4 *)0x0;\n      }\n      (*(code *)PTR_memcpy_003a9358)(iVar7,param_1[10],iVar17 * 0x58);\n    }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      puVar3[9] = param_1[9];\n      iVar17 = param_1[9];\n      iVar7 = (*(code *)puVar1)(iVar17 + 1,0x58);\n      puVar3[10] = iVar7;\n      if (iVar7 == 0) {\n        (*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        (*(code *)PTR_ThrowMagickException_003a8f20)\n                  (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,\n                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);\n        return (undefined4 *)0x0;\n      }\n      (*(code *)PTR_memcpy_003a9358)(iVar7,param_1[10],iVar17 * 0x58);\n    }" ({ "{") (expression_statement "puVar3[9] = param_1[9];" (assignment_expression "puVar3[9] = param_1[9]" (subscript_expression "puVar3[9]" (identifier "puVar3") ([ "[") (number_literal "9") (] "]")) (= "=") (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "iVar17 = param_1[9];" (assignment_expression "iVar17 = param_1[9]" (identifier "iVar17") (= "=") (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "iVar7 = (*(code *)puVar1)(iVar17 + 1,0x58);" (assignment_expression "iVar7 = (*(code *)puVar1)(iVar17 + 1,0x58)" (identifier "iVar7") (= "=") (call_expression "(*(code *)puVar1)(iVar17 + 1,0x58)" (parenthesized_expression "(*(code *)puVar1)" (( "(") (pointer_expression "*(code *)puVar1" (* "*") (cast_expression "(code *)puVar1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) () ")")) (argument_list "(iVar17 + 1,0x58)" (( "(") (binary_expression "iVar17 + 1" (identifier "iVar17") (+ "+") (number_literal "1")) (, ",") (number_literal "0x58") () ")")))) (; ";")) (expression_statement "puVar3[10] = iVar7;" (assignment_expression "puVar3[10] = iVar7" (subscript_expression "puVar3[10]" (identifier "puVar3") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (if_statement "if (iVar7 == 0) {\n        (*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        (*(code *)PTR_ThrowMagickException_003a8f20)\n                  (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,\n                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);\n        return (undefined4 *)0x0;\n      }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        (*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        (*(code *)PTR_ThrowMagickException_003a8f20)\n                  (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,\n                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);\n        return (undefined4 *)0x0;\n      }" ({ "{") (expression_statement "(*(code *)PTR_DestroyImage_003a8f4c)(puVar3);" (call_expression "(*(code *)PTR_DestroyImage_003a8f4c)(puVar3)" (parenthesized_expression "(*(code *)PTR_DestroyImage_003a8f4c)" (( "(") (pointer_expression "*(code *)PTR_DestroyImage_003a8f4c" (* "*") (cast_expression "(code *)PTR_DestroyImage_003a8f4c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DestroyImage_003a8f4c"))) () ")")) (argument_list "(puVar3)" (( "(") (identifier "puVar3") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_ThrowMagickException_003a8f20)\n                  (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,\n                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);" (call_expression "(*(code *)PTR_ThrowMagickException_003a8f20)\n                  (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,\n                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0)" (parenthesized_expression "(*(code *)PTR_ThrowMagickException_003a8f20)" (( "(") (pointer_expression "*(code *)PTR_ThrowMagickException_003a8f20" (* "*") (cast_expression "(code *)PTR_ThrowMagickException_003a8f20" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ThrowMagickException_003a8f20"))) () ")")) (argument_list "(param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,\n                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0)" (( "(") (identifier "param_5") (, ",") (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5b4c" (identifier "PTR_s_t_to_left_003a88e4") (+ "+") (number_literal "-0x5b4c")) (, ",") (binary_expression "PTR_s_t_to_left_003a88e4 + -0x52a0" (identifier "PTR_s_t_to_left_003a88e4") (+ "+") (number_literal "-0x52a0")) (, ",") (number_literal "0x35f") (, ",") (number_literal "400") (, ",") (binary_expression "PTR_LAB_003a88e0 + 0x16f8" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x16f8")) (, ",") (binary_expression "PTR_LAB_003a88e0 + 0x3e28" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x3e28")) (, ",") (binary_expression "param_1 + 0xd0" (identifier "param_1") (+ "+") (number_literal "0xd0")) () ")"))) (; ";")) (return_statement "return (undefined4 *)0x0;" (return "return") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_memcpy_003a9358)(iVar7,param_1[10],iVar17 * 0x58);" (call_expression "(*(code *)PTR_memcpy_003a9358)(iVar7,param_1[10],iVar17 * 0x58)" (parenthesized_expression "(*(code *)PTR_memcpy_003a9358)" (( "(") (pointer_expression "*(code *)PTR_memcpy_003a9358" (* "*") (cast_expression "(code *)PTR_memcpy_003a9358" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memcpy_003a9358"))) () ")")) (argument_list "(iVar7,param_1[10],iVar17 * 0x58)" (( "(") (identifier "iVar7") (, ",") (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (, ",") (binary_expression "iVar17 * 0x58" (identifier "iVar17") (* "*") (number_literal "0x58")) () ")"))) (; ";")) (} "}"))) (expression_statement "puVar1 = PTR_LAB_003a88e0;" (assignment_expression "puVar1 = PTR_LAB_003a88e0" (identifier "puVar1") (= "=") (identifier "PTR_LAB_003a88e0")) (; ";")) (if_statement "if ((param_2 == 0) || (param_3 == 0)) {\n      if (param_1[0x81] != 0) {\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x81);\n      }\n      if (param_1[0x82] != 0) {\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x82);\n      }\n      uVar4 = (*(code *)PTR_FUN_003a8a84)(param_1[0xb5]);\n      puVar3[0xb5] = uVar4;\n    }\n    else {\n      iVar7 = param_1[6];\n      if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_2;\n        if (param_2 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }\n      dVar18 = (double)(int)param_1[0x8a];\n      if ((int)param_1[0x8a] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar18 = (double)(*(code *)PTR_floor_003a9670)\n                                 (dVar18 * dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1400));\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar7 = param_1[0x8c];\n      dVar20 = *(double *)(puVar1 + 0x1400);\n      puVar3[0x8a] = uVar5;\n      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      puVar2 = PTR_ceil_003a8c20;\n      iVar7 = param_1[0xa6];\n      puVar3[0x8c] = (int)dVar18;\n      dVar19 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      iVar7 = param_1[7];\n      puVar3[0xa6] = (int)dVar19;\n      if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_3;\n        if (param_3 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }\n      dVar18 = (double)(int)param_1[0x8b];\n      if ((int)param_1[0x8b] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar18 = (double)(*(code *)PTR_floor_003a9670)(dVar18 * dVar19 + *(double *)(puVar1 + 0x1400))\n      ;\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar7 = param_1[0x8d];\n      dVar20 = *(double *)(puVar1 + 0x1400);\n      puVar3[0x8b] = uVar5;\n      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      puVar1 = PTR_ceil_003a8c20;\n      iVar7 = param_1[0xa7];\n      puVar3[0x8d] = (int)dVar18;\n      dVar19 = (double)(*(code *)puVar1)((double)iVar7 * dVar19 - dVar20);\n      puVar1 = PTR_FUN_003a8a10;\n      uVar4 = param_1[0xb5];\n      puVar3[0xa7] = (int)dVar19;\n      uVar4 = (*(code *)puVar1)(uVar4);\n      puVar3[0xb5] = uVar4;\n      iVar7 = (*(code *)PTR_SetImageExtent_003a94ac)(puVar3,param_2,param_3,param_5);\n      if (iVar7 == 0) {\n        puVar3 = (undefined4 *)(*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        return puVar3;\n      }\n    }" (if "if") (parenthesized_expression "((param_2 == 0) || (param_3 == 0))" (( "(") (binary_expression "(param_2 == 0) || (param_3 == 0)" (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(param_3 == 0)" (( "(") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      if (param_1[0x81] != 0) {\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x81);\n      }\n      if (param_1[0x82] != 0) {\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x82);\n      }\n      uVar4 = (*(code *)PTR_FUN_003a8a84)(param_1[0xb5]);\n      puVar3[0xb5] = uVar4;\n    }" ({ "{") (if_statement "if (param_1[0x81] != 0) {\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x81);\n      }" (if "if") (parenthesized_expression "(param_1[0x81] != 0)" (( "(") (binary_expression "param_1[0x81] != 0" (subscript_expression "param_1[0x81]" (identifier "param_1") ([ "[") (number_literal "0x81") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x81);\n      }" ({ "{") (expression_statement "(*(code *)PTR_CloneString_003a9488)(puVar3 + 0x81);" (call_expression "(*(code *)PTR_CloneString_003a9488)(puVar3 + 0x81)" (parenthesized_expression "(*(code *)PTR_CloneString_003a9488)" (( "(") (pointer_expression "*(code *)PTR_CloneString_003a9488" (* "*") (cast_expression "(code *)PTR_CloneString_003a9488" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_CloneString_003a9488"))) () ")")) (argument_list "(puVar3 + 0x81)" (( "(") (binary_expression "puVar3 + 0x81" (identifier "puVar3") (+ "+") (number_literal "0x81")) () ")"))) (; ";")) (} "}"))) (if_statement "if (param_1[0x82] != 0) {\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x82);\n      }" (if "if") (parenthesized_expression "(param_1[0x82] != 0)" (( "(") (binary_expression "param_1[0x82] != 0" (subscript_expression "param_1[0x82]" (identifier "param_1") ([ "[") (number_literal "0x82") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x82);\n      }" ({ "{") (expression_statement "(*(code *)PTR_CloneString_003a9488)(puVar3 + 0x82);" (call_expression "(*(code *)PTR_CloneString_003a9488)(puVar3 + 0x82)" (parenthesized_expression "(*(code *)PTR_CloneString_003a9488)" (( "(") (pointer_expression "*(code *)PTR_CloneString_003a9488" (* "*") (cast_expression "(code *)PTR_CloneString_003a9488" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_CloneString_003a9488"))) () ")")) (argument_list "(puVar3 + 0x82)" (( "(") (binary_expression "puVar3 + 0x82" (identifier "puVar3") (+ "+") (number_literal "0x82")) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar4 = (*(code *)PTR_FUN_003a8a84)(param_1[0xb5]);" (assignment_expression "uVar4 = (*(code *)PTR_FUN_003a8a84)(param_1[0xb5])" (identifier "uVar4") (= "=") (call_expression "(*(code *)PTR_FUN_003a8a84)(param_1[0xb5])" (parenthesized_expression "(*(code *)PTR_FUN_003a8a84)" (( "(") (pointer_expression "*(code *)PTR_FUN_003a8a84" (* "*") (cast_expression "(code *)PTR_FUN_003a8a84" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_003a8a84"))) () ")")) (argument_list "(param_1[0xb5])" (( "(") (subscript_expression "param_1[0xb5]" (identifier "param_1") ([ "[") (number_literal "0xb5") (] "]")) () ")")))) (; ";")) (expression_statement "puVar3[0xb5] = uVar4;" (assignment_expression "puVar3[0xb5] = uVar4" (subscript_expression "puVar3[0xb5]" (identifier "puVar3") ([ "[") (number_literal "0xb5") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (} "}")) (else_clause "else {\n      iVar7 = param_1[6];\n      if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_2;\n        if (param_2 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }\n      dVar18 = (double)(int)param_1[0x8a];\n      if ((int)param_1[0x8a] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar18 = (double)(*(code *)PTR_floor_003a9670)\n                                 (dVar18 * dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1400));\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar7 = param_1[0x8c];\n      dVar20 = *(double *)(puVar1 + 0x1400);\n      puVar3[0x8a] = uVar5;\n      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      puVar2 = PTR_ceil_003a8c20;\n      iVar7 = param_1[0xa6];\n      puVar3[0x8c] = (int)dVar18;\n      dVar19 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      iVar7 = param_1[7];\n      puVar3[0xa6] = (int)dVar19;\n      if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_3;\n        if (param_3 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }\n      dVar18 = (double)(int)param_1[0x8b];\n      if ((int)param_1[0x8b] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar18 = (double)(*(code *)PTR_floor_003a9670)(dVar18 * dVar19 + *(double *)(puVar1 + 0x1400))\n      ;\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar7 = param_1[0x8d];\n      dVar20 = *(double *)(puVar1 + 0x1400);\n      puVar3[0x8b] = uVar5;\n      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      puVar1 = PTR_ceil_003a8c20;\n      iVar7 = param_1[0xa7];\n      puVar3[0x8d] = (int)dVar18;\n      dVar19 = (double)(*(code *)puVar1)((double)iVar7 * dVar19 - dVar20);\n      puVar1 = PTR_FUN_003a8a10;\n      uVar4 = param_1[0xb5];\n      puVar3[0xa7] = (int)dVar19;\n      uVar4 = (*(code *)puVar1)(uVar4);\n      puVar3[0xb5] = uVar4;\n      iVar7 = (*(code *)PTR_SetImageExtent_003a94ac)(puVar3,param_2,param_3,param_5);\n      if (iVar7 == 0) {\n        puVar3 = (undefined4 *)(*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        return puVar3;\n      }\n    }" (else "else") (compound_statement "{\n      iVar7 = param_1[6];\n      if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_2;\n        if (param_2 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }\n      dVar18 = (double)(int)param_1[0x8a];\n      if ((int)param_1[0x8a] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar18 = (double)(*(code *)PTR_floor_003a9670)\n                                 (dVar18 * dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1400));\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar7 = param_1[0x8c];\n      dVar20 = *(double *)(puVar1 + 0x1400);\n      puVar3[0x8a] = uVar5;\n      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      puVar2 = PTR_ceil_003a8c20;\n      iVar7 = param_1[0xa6];\n      puVar3[0x8c] = (int)dVar18;\n      dVar19 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      iVar7 = param_1[7];\n      puVar3[0xa6] = (int)dVar19;\n      if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_3;\n        if (param_3 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }\n      dVar18 = (double)(int)param_1[0x8b];\n      if ((int)param_1[0x8b] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }\n      dVar18 = (double)(*(code *)PTR_floor_003a9670)(dVar18 * dVar19 + *(double *)(puVar1 + 0x1400))\n      ;\n      puVar2 = PTR_ceil_003a8c20;\n      if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }\n      iVar7 = param_1[0x8d];\n      dVar20 = *(double *)(puVar1 + 0x1400);\n      puVar3[0x8b] = uVar5;\n      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);\n      puVar1 = PTR_ceil_003a8c20;\n      iVar7 = param_1[0xa7];\n      puVar3[0x8d] = (int)dVar18;\n      dVar19 = (double)(*(code *)puVar1)((double)iVar7 * dVar19 - dVar20);\n      puVar1 = PTR_FUN_003a8a10;\n      uVar4 = param_1[0xb5];\n      puVar3[0xa7] = (int)dVar19;\n      uVar4 = (*(code *)puVar1)(uVar4);\n      puVar3[0xb5] = uVar4;\n      iVar7 = (*(code *)PTR_SetImageExtent_003a94ac)(puVar3,param_2,param_3,param_5);\n      if (iVar7 == 0) {\n        puVar3 = (undefined4 *)(*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        return puVar3;\n      }\n    }" ({ "{") (expression_statement "iVar7 = param_1[6];" (assignment_expression "iVar7 = param_1[6]" (identifier "iVar7") (= "=") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]"))) (; ";")) (if_statement "if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_2;\n        if (param_2 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }" ({ "{") (expression_statement "dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);" (assignment_expression "dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438)" (identifier "dVar19") (= "=") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1438)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1438)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1438)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1438" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1438")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n        dVar19 = (double)param_2;\n        if (param_2 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }" (else "else") (compound_statement "{\n        dVar19 = (double)param_2;\n        if (param_2 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }" ({ "{") (expression_statement "dVar19 = (double)param_2;" (assignment_expression "dVar19 = (double)param_2" (identifier "dVar19") (= "=") (cast_expression "(double)param_2" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "param_2"))) (; ";")) (if_statement "if (param_2 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }" (if "if") (parenthesized_expression "(param_2 < 0)" (( "(") (binary_expression "param_2 < 0" (identifier "param_2") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }" ({ "{") (expression_statement "dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);" (assignment_expression "dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" (identifier "dVar19") (= "=") (binary_expression "dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" (identifier "dVar19") (+ "+") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1418)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1418)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1418" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "dVar18 = (double)iVar7;" (assignment_expression "dVar18 = (double)iVar7" (identifier "dVar18") (= "=") (cast_expression "(double)iVar7" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar7"))) (; ";")) (if_statement "if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }" (if "if") (parenthesized_expression "(iVar7 < 0)" (( "(") (binary_expression "iVar7 < 0" (identifier "iVar7") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }" ({ "{") (expression_statement "dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);" (assignment_expression "dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" (identifier "dVar18") (= "=") (binary_expression "dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" (identifier "dVar18") (+ "+") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1418)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1418)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1418" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "dVar19 = dVar19 / dVar18;" (assignment_expression "dVar19 = dVar19 / dVar18" (identifier "dVar19") (= "=") (binary_expression "dVar19 / dVar18" (identifier "dVar19") (/ "/") (identifier "dVar18"))) (; ";")) (} "}")))) (expression_statement "dVar18 = (double)(int)param_1[0x8a];" (assignment_expression "dVar18 = (double)(int)param_1[0x8a]" (identifier "dVar18") (= "=") (cast_expression "(double)(int)param_1[0x8a]" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(int)param_1[0x8a]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_1[0x8a]" (identifier "param_1") ([ "[") (number_literal "0x8a") (] "]"))))) (; ";")) (if_statement "if ((int)param_1[0x8a] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }" (if "if") (parenthesized_expression "((int)param_1[0x8a] < 0)" (( "(") (binary_expression "(int)param_1[0x8a] < 0" (cast_expression "(int)param_1[0x8a]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_1[0x8a]" (identifier "param_1") ([ "[") (number_literal "0x8a") (] "]"))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }" ({ "{") (expression_statement "dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);" (assignment_expression "dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" (identifier "dVar18") (= "=") (binary_expression "dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" (identifier "dVar18") (+ "+") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1418)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1418)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1418" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "dVar18 = (double)(*(code *)PTR_floor_003a9670)\n                                 (dVar18 * dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1400));" (assignment_expression "dVar18 = (double)(*(code *)PTR_floor_003a9670)\n                                 (dVar18 * dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1400))" (identifier "dVar18") (= "=") (cast_expression "(double)(*(code *)PTR_floor_003a9670)\n                                 (dVar18 * dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1400))" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(*(code *)PTR_floor_003a9670)\n                                 (dVar18 * dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1400))" (parenthesized_expression "(*(code *)PTR_floor_003a9670)" (( "(") (pointer_expression "*(code *)PTR_floor_003a9670" (* "*") (cast_expression "(code *)PTR_floor_003a9670" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_floor_003a9670"))) () ")")) (argument_list "(dVar18 * dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1400))" (( "(") (binary_expression "dVar18 * dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1400)" (binary_expression "dVar18 * dVar19" (identifier "dVar18") (* "*") (identifier "dVar19")) (+ "+") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1400)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1400)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1400)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1400" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1400")) () ")"))))) () ")"))))) (; ";")) (expression_statement "puVar2 = PTR_ceil_003a8c20;" (assignment_expression "puVar2 = PTR_ceil_003a8c20" (identifier "puVar2") (= "=") (identifier "PTR_ceil_003a8c20")) (; ";")) (if_statement "if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }" (if "if") (parenthesized_expression "(dVar18 < *(double *)(puVar1 + 0x1410))" (( "(") (binary_expression "dVar18 < *(double *)(puVar1 + 0x1410)" (identifier "dVar18") (< "<") (pointer_expression "*(double *)(puVar1 + 0x1410)" (* "*") (cast_expression "(double *)(puVar1 + 0x1410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 0x1410)" (( "(") (binary_expression "puVar1 + 0x1410" (identifier "puVar1") (+ "+") (number_literal "0x1410")) () ")"))))) () ")")) (compound_statement "{\n        uVar5 = (uint)dVar18;\n      }" ({ "{") (expression_statement "uVar5 = (uint)dVar18;" (assignment_expression "uVar5 = (uint)dVar18" (identifier "uVar5") (= "=") (cast_expression "(uint)dVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "dVar18"))) (; ";")) (} "}")) (else_clause "else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }" (else "else") (compound_statement "{\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }" ({ "{") (expression_statement "uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;" (assignment_expression "uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000" (identifier "uVar5") (= "=") (binary_expression "(int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000" (cast_expression "(int)(dVar18 - *(double *)(puVar1 + 0x1410))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(dVar18 - *(double *)(puVar1 + 0x1410))" (( "(") (binary_expression "dVar18 - *(double *)(puVar1 + 0x1410)" (identifier "dVar18") (- "-") (pointer_expression "*(double *)(puVar1 + 0x1410)" (* "*") (cast_expression "(double *)(puVar1 + 0x1410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 0x1410)" (( "(") (binary_expression "puVar1 + 0x1410" (identifier "puVar1") (+ "+") (number_literal "0x1410")) () ")"))))) () ")"))) (| "|") (number_literal "0x80000000"))) (; ";")) (} "}")))) (expression_statement "iVar7 = param_1[0x8c];" (assignment_expression "iVar7 = param_1[0x8c]" (identifier "iVar7") (= "=") (subscript_expression "param_1[0x8c]" (identifier "param_1") ([ "[") (number_literal "0x8c") (] "]"))) (; ";")) (expression_statement "dVar20 = *(double *)(puVar1 + 0x1400);" (assignment_expression "dVar20 = *(double *)(puVar1 + 0x1400)" (identifier "dVar20") (= "=") (pointer_expression "*(double *)(puVar1 + 0x1400)" (* "*") (cast_expression "(double *)(puVar1 + 0x1400)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 0x1400)" (( "(") (binary_expression "puVar1 + 0x1400" (identifier "puVar1") (+ "+") (number_literal "0x1400")) () ")"))))) (; ";")) (expression_statement "puVar3[0x8a] = uVar5;" (assignment_expression "puVar3[0x8a] = uVar5" (subscript_expression "puVar3[0x8a]" (identifier "puVar3") ([ "[") (number_literal "0x8a") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);" (assignment_expression "dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20)" (identifier "dVar18") (= "=") (cast_expression "(double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20)" (parenthesized_expression "(*(code *)puVar2)" (( "(") (pointer_expression "*(code *)puVar2" (* "*") (cast_expression "(code *)puVar2" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2"))) () ")")) (argument_list "((double)iVar7 * dVar19 - dVar20)" (( "(") (binary_expression "(double)iVar7 * dVar19 - dVar20" (binary_expression "(double)iVar7 * dVar19" (cast_expression "(double)iVar7" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar7")) (* "*") (identifier "dVar19")) (- "-") (identifier "dVar20")) () ")"))))) (; ";")) (expression_statement "puVar2 = PTR_ceil_003a8c20;" (assignment_expression "puVar2 = PTR_ceil_003a8c20" (identifier "puVar2") (= "=") (identifier "PTR_ceil_003a8c20")) (; ";")) (expression_statement "iVar7 = param_1[0xa6];" (assignment_expression "iVar7 = param_1[0xa6]" (identifier "iVar7") (= "=") (subscript_expression "param_1[0xa6]" (identifier "param_1") ([ "[") (number_literal "0xa6") (] "]"))) (; ";")) (expression_statement "puVar3[0x8c] = (int)dVar18;" (assignment_expression "puVar3[0x8c] = (int)dVar18" (subscript_expression "puVar3[0x8c]" (identifier "puVar3") ([ "[") (number_literal "0x8c") (] "]")) (= "=") (cast_expression "(int)dVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar18"))) (; ";")) (expression_statement "dVar19 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);" (assignment_expression "dVar19 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20)" (identifier "dVar19") (= "=") (cast_expression "(double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20)" (parenthesized_expression "(*(code *)puVar2)" (( "(") (pointer_expression "*(code *)puVar2" (* "*") (cast_expression "(code *)puVar2" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2"))) () ")")) (argument_list "((double)iVar7 * dVar19 - dVar20)" (( "(") (binary_expression "(double)iVar7 * dVar19 - dVar20" (binary_expression "(double)iVar7 * dVar19" (cast_expression "(double)iVar7" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar7")) (* "*") (identifier "dVar19")) (- "-") (identifier "dVar20")) () ")"))))) (; ";")) (expression_statement "iVar7 = param_1[7];" (assignment_expression "iVar7 = param_1[7]" (identifier "iVar7") (= "=") (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "puVar3[0xa6] = (int)dVar19;" (assignment_expression "puVar3[0xa6] = (int)dVar19" (subscript_expression "puVar3[0xa6]" (identifier "puVar3") ([ "[") (number_literal "0xa6") (] "]")) (= "=") (cast_expression "(int)dVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar19"))) (; ";")) (if_statement "if (iVar7 == 0) {\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }\n      else {\n        dVar19 = (double)param_3;\n        if (param_3 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);\n      }" ({ "{") (expression_statement "dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);" (assignment_expression "dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438)" (identifier "dVar19") (= "=") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1438)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1438)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1438)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1438" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1438")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n        dVar19 = (double)param_3;\n        if (param_3 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }" (else "else") (compound_statement "{\n        dVar19 = (double)param_3;\n        if (param_3 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar18 = (double)iVar7;\n        if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }\n        dVar19 = dVar19 / dVar18;\n      }" ({ "{") (expression_statement "dVar19 = (double)param_3;" (assignment_expression "dVar19 = (double)param_3" (identifier "dVar19") (= "=") (cast_expression "(double)param_3" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "param_3"))) (; ";")) (if_statement "if (param_3 < 0) {\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }" (if "if") (parenthesized_expression "(param_3 < 0)" (( "(") (binary_expression "param_3 < 0" (identifier "param_3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }" ({ "{") (expression_statement "dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);" (assignment_expression "dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" (identifier "dVar19") (= "=") (binary_expression "dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" (identifier "dVar19") (+ "+") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1418)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1418)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1418" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "dVar18 = (double)iVar7;" (assignment_expression "dVar18 = (double)iVar7" (identifier "dVar18") (= "=") (cast_expression "(double)iVar7" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar7"))) (; ";")) (if_statement "if (iVar7 < 0) {\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }" (if "if") (parenthesized_expression "(iVar7 < 0)" (( "(") (binary_expression "iVar7 < 0" (identifier "iVar7") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n        }" ({ "{") (expression_statement "dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);" (assignment_expression "dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" (identifier "dVar18") (= "=") (binary_expression "dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" (identifier "dVar18") (+ "+") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1418)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1418)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1418" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "dVar19 = dVar19 / dVar18;" (assignment_expression "dVar19 = dVar19 / dVar18" (identifier "dVar19") (= "=") (binary_expression "dVar19 / dVar18" (identifier "dVar19") (/ "/") (identifier "dVar18"))) (; ";")) (} "}")))) (expression_statement "dVar18 = (double)(int)param_1[0x8b];" (assignment_expression "dVar18 = (double)(int)param_1[0x8b]" (identifier "dVar18") (= "=") (cast_expression "(double)(int)param_1[0x8b]" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(int)param_1[0x8b]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_1[0x8b]" (identifier "param_1") ([ "[") (number_literal "0x8b") (] "]"))))) (; ";")) (if_statement "if ((int)param_1[0x8b] < 0) {\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }" (if "if") (parenthesized_expression "((int)param_1[0x8b] < 0)" (( "(") (binary_expression "(int)param_1[0x8b] < 0" (cast_expression "(int)param_1[0x8b]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_1[0x8b]" (identifier "param_1") ([ "[") (number_literal "0x8b") (] "]"))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);\n      }" ({ "{") (expression_statement "dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);" (assignment_expression "dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" (identifier "dVar18") (= "=") (binary_expression "dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418)" (identifier "dVar18") (+ "+") (pointer_expression "*(double *)(PTR_LAB_003a88e0 + 0x1418)" (* "*") (cast_expression "(double *)(PTR_LAB_003a88e0 + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1418)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1418" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "dVar18 = (double)(*(code *)PTR_floor_003a9670)(dVar18 * dVar19 + *(double *)(puVar1 + 0x1400))\n      ;" (assignment_expression "dVar18 = (double)(*(code *)PTR_floor_003a9670)(dVar18 * dVar19 + *(double *)(puVar1 + 0x1400))" (identifier "dVar18") (= "=") (cast_expression "(double)(*(code *)PTR_floor_003a9670)(dVar18 * dVar19 + *(double *)(puVar1 + 0x1400))" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(*(code *)PTR_floor_003a9670)(dVar18 * dVar19 + *(double *)(puVar1 + 0x1400))" (parenthesized_expression "(*(code *)PTR_floor_003a9670)" (( "(") (pointer_expression "*(code *)PTR_floor_003a9670" (* "*") (cast_expression "(code *)PTR_floor_003a9670" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_floor_003a9670"))) () ")")) (argument_list "(dVar18 * dVar19 + *(double *)(puVar1 + 0x1400))" (( "(") (binary_expression "dVar18 * dVar19 + *(double *)(puVar1 + 0x1400)" (binary_expression "dVar18 * dVar19" (identifier "dVar18") (* "*") (identifier "dVar19")) (+ "+") (pointer_expression "*(double *)(puVar1 + 0x1400)" (* "*") (cast_expression "(double *)(puVar1 + 0x1400)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 0x1400)" (( "(") (binary_expression "puVar1 + 0x1400" (identifier "puVar1") (+ "+") (number_literal "0x1400")) () ")"))))) () ")"))))) (; ";")) (expression_statement "puVar2 = PTR_ceil_003a8c20;" (assignment_expression "puVar2 = PTR_ceil_003a8c20" (identifier "puVar2") (= "=") (identifier "PTR_ceil_003a8c20")) (; ";")) (if_statement "if (dVar18 < *(double *)(puVar1 + 0x1410)) {\n        uVar5 = (uint)dVar18;\n      }\n      else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }" (if "if") (parenthesized_expression "(dVar18 < *(double *)(puVar1 + 0x1410))" (( "(") (binary_expression "dVar18 < *(double *)(puVar1 + 0x1410)" (identifier "dVar18") (< "<") (pointer_expression "*(double *)(puVar1 + 0x1410)" (* "*") (cast_expression "(double *)(puVar1 + 0x1410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 0x1410)" (( "(") (binary_expression "puVar1 + 0x1410" (identifier "puVar1") (+ "+") (number_literal "0x1410")) () ")"))))) () ")")) (compound_statement "{\n        uVar5 = (uint)dVar18;\n      }" ({ "{") (expression_statement "uVar5 = (uint)dVar18;" (assignment_expression "uVar5 = (uint)dVar18" (identifier "uVar5") (= "=") (cast_expression "(uint)dVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "dVar18"))) (; ";")) (} "}")) (else_clause "else {\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }" (else "else") (compound_statement "{\n        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;\n      }" ({ "{") (expression_statement "uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;" (assignment_expression "uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000" (identifier "uVar5") (= "=") (binary_expression "(int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000" (cast_expression "(int)(dVar18 - *(double *)(puVar1 + 0x1410))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(dVar18 - *(double *)(puVar1 + 0x1410))" (( "(") (binary_expression "dVar18 - *(double *)(puVar1 + 0x1410)" (identifier "dVar18") (- "-") (pointer_expression "*(double *)(puVar1 + 0x1410)" (* "*") (cast_expression "(double *)(puVar1 + 0x1410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 0x1410)" (( "(") (binary_expression "puVar1 + 0x1410" (identifier "puVar1") (+ "+") (number_literal "0x1410")) () ")"))))) () ")"))) (| "|") (number_literal "0x80000000"))) (; ";")) (} "}")))) (expression_statement "iVar7 = param_1[0x8d];" (assignment_expression "iVar7 = param_1[0x8d]" (identifier "iVar7") (= "=") (subscript_expression "param_1[0x8d]" (identifier "param_1") ([ "[") (number_literal "0x8d") (] "]"))) (; ";")) (expression_statement "dVar20 = *(double *)(puVar1 + 0x1400);" (assignment_expression "dVar20 = *(double *)(puVar1 + 0x1400)" (identifier "dVar20") (= "=") (pointer_expression "*(double *)(puVar1 + 0x1400)" (* "*") (cast_expression "(double *)(puVar1 + 0x1400)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 0x1400)" (( "(") (binary_expression "puVar1 + 0x1400" (identifier "puVar1") (+ "+") (number_literal "0x1400")) () ")"))))) (; ";")) (expression_statement "puVar3[0x8b] = uVar5;" (assignment_expression "puVar3[0x8b] = uVar5" (subscript_expression "puVar3[0x8b]" (identifier "puVar3") ([ "[") (number_literal "0x8b") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);" (assignment_expression "dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20)" (identifier "dVar18") (= "=") (cast_expression "(double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20)" (parenthesized_expression "(*(code *)puVar2)" (( "(") (pointer_expression "*(code *)puVar2" (* "*") (cast_expression "(code *)puVar2" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2"))) () ")")) (argument_list "((double)iVar7 * dVar19 - dVar20)" (( "(") (binary_expression "(double)iVar7 * dVar19 - dVar20" (binary_expression "(double)iVar7 * dVar19" (cast_expression "(double)iVar7" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar7")) (* "*") (identifier "dVar19")) (- "-") (identifier "dVar20")) () ")"))))) (; ";")) (expression_statement "puVar1 = PTR_ceil_003a8c20;" (assignment_expression "puVar1 = PTR_ceil_003a8c20" (identifier "puVar1") (= "=") (identifier "PTR_ceil_003a8c20")) (; ";")) (expression_statement "iVar7 = param_1[0xa7];" (assignment_expression "iVar7 = param_1[0xa7]" (identifier "iVar7") (= "=") (subscript_expression "param_1[0xa7]" (identifier "param_1") ([ "[") (number_literal "0xa7") (] "]"))) (; ";")) (expression_statement "puVar3[0x8d] = (int)dVar18;" (assignment_expression "puVar3[0x8d] = (int)dVar18" (subscript_expression "puVar3[0x8d]" (identifier "puVar3") ([ "[") (number_literal "0x8d") (] "]")) (= "=") (cast_expression "(int)dVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar18"))) (; ";")) (expression_statement "dVar19 = (double)(*(code *)puVar1)((double)iVar7 * dVar19 - dVar20);" (assignment_expression "dVar19 = (double)(*(code *)puVar1)((double)iVar7 * dVar19 - dVar20)" (identifier "dVar19") (= "=") (cast_expression "(double)(*(code *)puVar1)((double)iVar7 * dVar19 - dVar20)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(*(code *)puVar1)((double)iVar7 * dVar19 - dVar20)" (parenthesized_expression "(*(code *)puVar1)" (( "(") (pointer_expression "*(code *)puVar1" (* "*") (cast_expression "(code *)puVar1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) () ")")) (argument_list "((double)iVar7 * dVar19 - dVar20)" (( "(") (binary_expression "(double)iVar7 * dVar19 - dVar20" (binary_expression "(double)iVar7 * dVar19" (cast_expression "(double)iVar7" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar7")) (* "*") (identifier "dVar19")) (- "-") (identifier "dVar20")) () ")"))))) (; ";")) (expression_statement "puVar1 = PTR_FUN_003a8a10;" (assignment_expression "puVar1 = PTR_FUN_003a8a10" (identifier "puVar1") (= "=") (identifier "PTR_FUN_003a8a10")) (; ";")) (expression_statement "uVar4 = param_1[0xb5];" (assignment_expression "uVar4 = param_1[0xb5]" (identifier "uVar4") (= "=") (subscript_expression "param_1[0xb5]" (identifier "param_1") ([ "[") (number_literal "0xb5") (] "]"))) (; ";")) (expression_statement "puVar3[0xa7] = (int)dVar19;" (assignment_expression "puVar3[0xa7] = (int)dVar19" (subscript_expression "puVar3[0xa7]" (identifier "puVar3") ([ "[") (number_literal "0xa7") (] "]")) (= "=") (cast_expression "(int)dVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar19"))) (; ";")) (expression_statement "uVar4 = (*(code *)puVar1)(uVar4);" (assignment_expression "uVar4 = (*(code *)puVar1)(uVar4)" (identifier "uVar4") (= "=") (call_expression "(*(code *)puVar1)(uVar4)" (parenthesized_expression "(*(code *)puVar1)" (( "(") (pointer_expression "*(code *)puVar1" (* "*") (cast_expression "(code *)puVar1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) () ")")) (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")")))) (; ";")) (expression_statement "puVar3[0xb5] = uVar4;" (assignment_expression "puVar3[0xb5] = uVar4" (subscript_expression "puVar3[0xb5]" (identifier "puVar3") ([ "[") (number_literal "0xb5") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "iVar7 = (*(code *)PTR_SetImageExtent_003a94ac)(puVar3,param_2,param_3,param_5);" (assignment_expression "iVar7 = (*(code *)PTR_SetImageExtent_003a94ac)(puVar3,param_2,param_3,param_5)" (identifier "iVar7") (= "=") (call_expression "(*(code *)PTR_SetImageExtent_003a94ac)(puVar3,param_2,param_3,param_5)" (parenthesized_expression "(*(code *)PTR_SetImageExtent_003a94ac)" (( "(") (pointer_expression "*(code *)PTR_SetImageExtent_003a94ac" (* "*") (cast_expression "(code *)PTR_SetImageExtent_003a94ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_SetImageExtent_003a94ac"))) () ")")) (argument_list "(puVar3,param_2,param_3,param_5)" (( "(") (identifier "puVar3") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_5") () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\n        puVar3 = (undefined4 *)(*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        return puVar3;\n      }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        puVar3 = (undefined4 *)(*(code *)PTR_DestroyImage_003a8f4c)(puVar3);\n        return puVar3;\n      }" ({ "{") (expression_statement "puVar3 = (undefined4 *)(*(code *)PTR_DestroyImage_003a8f4c)(puVar3);" (assignment_expression "puVar3 = (undefined4 *)(*(code *)PTR_DestroyImage_003a8f4c)(puVar3)" (identifier "puVar3") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR_DestroyImage_003a8f4c)(puVar3)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_DestroyImage_003a8f4c)(puVar3)" (parenthesized_expression "(*(code *)PTR_DestroyImage_003a8f4c)" (( "(") (pointer_expression "*(code *)PTR_DestroyImage_003a8f4c" (* "*") (cast_expression "(code *)PTR_DestroyImage_003a8f4c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DestroyImage_003a8f4c"))) () ")")) (argument_list "(puVar3)" (( "(") (identifier "puVar3") () ")"))))) (; ";")) (return_statement "return puVar3;" (return "return") (identifier "puVar3") (; ";")) (} "}"))) (} "}")))) (return_statement "return puVar3;" (return "return") (identifier "puVar3") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_ThrowMagickException_003a8f20)\n            (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x31e,\n             0x1a9,PTR_s_t_to_left_003a88e4 + -0x5ac0,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);" (call_expression "(*(code *)PTR_ThrowMagickException_003a8f20)\n            (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x31e,\n             0x1a9,PTR_s_t_to_left_003a88e4 + -0x5ac0,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0)" (parenthesized_expression "(*(code *)PTR_ThrowMagickException_003a8f20)" (( "(") (pointer_expression "*(code *)PTR_ThrowMagickException_003a8f20" (* "*") (cast_expression "(code *)PTR_ThrowMagickException_003a8f20" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ThrowMagickException_003a8f20"))) () ")")) (argument_list "(param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x31e,\n             0x1a9,PTR_s_t_to_left_003a88e4 + -0x5ac0,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0)" (( "(") (identifier "param_5") (, ",") (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5b4c" (identifier "PTR_s_t_to_left_003a88e4") (+ "+") (number_literal "-0x5b4c")) (, ",") (binary_expression "PTR_s_t_to_left_003a88e4 + -0x52a0" (identifier "PTR_s_t_to_left_003a88e4") (+ "+") (number_literal "-0x52a0")) (, ",") (number_literal "0x31e") (, ",") (number_literal "0x1a9") (, ",") (binary_expression "PTR_s_t_to_left_003a88e4 + -0x5ac0" (identifier "PTR_s_t_to_left_003a88e4") (+ "+") (number_literal "-0x5ac0")) (, ",") (binary_expression "PTR_LAB_003a88e0 + 0x3e28" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x3e28")) (, ",") (binary_expression "param_1 + 0xd0" (identifier "param_1") (+ "+") (number_literal "0xd0")) () ")"))) (; ";")) (return_statement "return (undefined4 *)0x0;" (return "return") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}")))

/* WARNING: Enum "GravityType": Some values do not have unique names */
/* WARNING: Enum "DisposeType": Some values do not have unique names */
/* WARNING: Enum "ChannelType": Some values do not have unique names */
/* WARNING: Enum "PixelChannel": Some values do not have unique names */
/* WARNING: Enum "ExceptionType": Some values do not have unique names */

type_1 * function_1(type_1 *var_1,size_t var_10,size_t var_11,type_2 var_7,
                  type_3 *var_5)

{
  type_4 *var_14;
  type_4 *puVar2;
  type_1 *pIVar3;
  type_2 MVar4;
  type_5 uVar5;
  type_6 *p_Var6;
  type_7 *pBVar7;
  type_8 *pSVar8;
  void *pvVar9;
  size_t var_9;
  type_6 *p_Var11;
  type_9 *var_8;
  type_10 *p_Var13;
  type_11 *pPVar14;
  size_t sVar15;
  type_12 p_Var16;
  type_13 PVar17;
  type_14 IVar18;
  type_15 CVar19;
  type_13 PVar20;
  type_16 CVar21;
  size_t sVar22;
  size_t sVar23;
  size_t sVar24;
  double var_13;
  int var_16;
  double var_12;
  double var_15;
  
  if (var_1 == (type_1 *)0x0) {
    pIVar3 = (type_1 *)(*(type_17 *)PTR___assert_fail_003a9608)
                                (var_2 + -0x37b0,
                                 var_3 + -0x5b4c,0x316,
                                 var_3 + -0x5294);
    return pIVar3;
  }
  if (var_1->signature != 0xabacadab) {
    pIVar3 = (type_1 *)(*(type_17 *)PTR___assert_fail_003a9608)
                                (var_2 + -0x3784,
                                 var_3 + -0x5b4c,0x317,
                                 var_3 + -0x5294);
    return pIVar3;
  }
  if (var_1->debug != var_4) {
    (*(type_17 *)PTR_LogMagickEvent_003a91e0)
              (0x8000,var_3 + -0x5b4c,var_3 + -0x52a0,0x319,
               var_3 + -0x62ac,var_1->filename);
  }
  if (var_5 == (type_3 *)0x0) {
    pIVar3 = (type_1 *)(*(type_17 *)PTR___assert_fail_003a9608)
                                (var_6 + 0x1cac,var_3 + -0x5b4c,0x31a,
                                 var_3 + -0x5294);
    return pIVar3;
  }
  if (var_5->signature != 0xabacadab) {
    pIVar3 = (type_1 *)(*(type_17 *)PTR___assert_fail_003a9608)
                                (var_6 + 0x294c,var_3 + -0x5b4c,0x31b,
                                 var_3 + -0x5294);
    return pIVar3;
  }
  if ((var_1->var_10 != 0) && (var_1->var_11 != 0)) {
    pIVar3 = (type_1 *)(*(type_17 *)PTR_AcquireCriticalMemory_003a9354)(0x33d8);
    (*(type_17 *)PTR_memset_003a96d4)(pIVar3,0,0x33d8);
    var_14 = PTR_CloneImageInfo_003a919c;
    sVar24 = var_1->number_channels;
    sVar23 = var_1->number_meta_channels;
    sVar22 = var_1->metacontent_extent;
    CVar21 = var_1->colorspace;
    PVar20 = var_1->alpha_trait;
    CVar19 = var_1->channels;
    PVar17 = var_1->mask_trait;
    var_9 = var_1->var_11;
    sVar15 = var_1->var_10;
    MVar4 = var_1->dither;
    p_Var13 = var_1->image_info;
    pIVar3->storage_class = var_1->storage_class;
    pIVar3->number_channels = sVar24;
    pIVar3->number_meta_channels = sVar23;
    pIVar3->metacontent_extent = sVar22;
    pIVar3->colorspace = CVar21;
    pIVar3->alpha_trait = PVar20;
    pIVar3->channels = CVar19;
    pIVar3->mask_trait = PVar17;
    pIVar3->var_11 = var_9;
    pIVar3->var_10 = sVar15;
    pIVar3->signature = 0xabacadab;
    pIVar3->dither = MVar4;
    p_Var13 = (type_10 *)(*(type_17 *)var_14)(p_Var13);
    var_14 = PTR_CloneImageProfiles_003a9348;
    pIVar3->image_info = p_Var13;
    (*(type_17 *)var_14)(pIVar3,var_1);
    (*(type_17 *)PTR_CloneImageProperties_003a91ac)(pIVar3,var_1);
    (*(type_17 *)PTR_CloneImageArtifacts_003a9500)(pIVar3,var_1);
    (*(type_17 *)PTR_GetTimerInfo_003a9668)(&pIVar3->timer);
    if (var_1->ascii85 != (type_18 *)0x0) {
      (*(type_17 *)PTR_Ascii85Initialize_003a8d18)(pIVar3);
    }
    var_14 = PTR_ClonePixelChannelMap_003a8d90;
    sVar15 = var_1->magick_columns;
    var_9 = var_1->magick_rows;
    IVar18 = var_1->type;
    CVar19 = var_1->channel_mask;
    uVar5 = *(type_5 *)&var_1->extent;
    pPVar14 = var_1->channel_map;
    *(int *)((int)&pIVar3->extent + 4) = (int)var_1->extent;
    pIVar3->magick_columns = sVar15;
    pIVar3->magick_rows = var_9;
    pIVar3->type = IVar18;
    pIVar3->channel_mask = CVar19;
    *(type_5 *)&pIVar3->extent = uVar5;
    pPVar14 = (type_11 *)(*(type_17 *)var_14)(pPVar14);
    var_14 = PTR_CopyMagickString_003a983c;
    pIVar3->channel_map = pPVar14;
    (*(type_17 *)var_14)(pIVar3->magick_filename,var_1->magick_filename,0x1000);
    (*(type_17 *)PTR_CopyMagickString_003a983c)(pIVar3->magick,var_1->magick,0x1000);
    (*(type_17 *)PTR_CopyMagickString_003a983c)(pIVar3->filename,var_1->filename,0x1000);
    var_14 = PTR_NewImageList_003a8e84;
    p_Var16 = var_1->progress_monitor;
    p_Var11 = var_1->next;
    p_Var6 = var_1->previous;
    pIVar3->client_data = var_1->client_data;
    pIVar3->progress_monitor = p_Var16;
    pIVar3->reference_count = 1;
    pIVar3->next = p_Var11;
    pIVar3->previous = p_Var6;
    p_Var6 = (type_6 *)(*(type_17 *)var_14)();
    pIVar3->list = p_Var6;
    var_14 = PTR_CloneBlobInfo_003a97e0;
    if (var_7 == var_4) {
      pBVar7 = (type_7 *)(*(type_17 *)PTR_ReferenceBlob_003a9294)(var_1->blob);
      pIVar3->blob = pBVar7;
    }
    else {
      pIVar3->next = p_Var6;
      pIVar3->previous = p_Var6;
      pBVar7 = (type_7 *)(*(type_17 *)var_14)(0);
      pIVar3->blob = pBVar7;
    }
    var_14 = PTR_IsEventLogging_003a97a8;
    pIVar3->ping = var_1->ping;
    MVar4 = (*(type_17 *)var_14)();
    var_14 = PTR_AcquireSemaphoreInfo_003a962c;
    pIVar3->debug = MVar4;
    pSVar8 = (type_8 *)(*(type_17 *)var_14)();
    var_8 = var_1->colormap;
    pIVar3->semaphore = pSVar8;
    var_14 = PTR_AcquireQuantumMemory_003a950c;
    if (var_8 != (type_9 *)0x0) {
      pIVar3->colors = var_1->colors;
      var_9 = var_1->colors;
      var_8 = (type_9 *)(*(type_17 *)var_14)(var_9 + 1,0x58);
      pIVar3->colormap = var_8;
      if (var_8 == (type_9 *)0x0) {
        (*(type_17 *)PTR_DestroyImage_003a8f4c)(pIVar3);
        (*(type_17 *)PTR_ThrowMagickException_003a8f20)
                  (var_5,var_3 + -0x5b4c,var_3 + -0x52a0,
                   0x35f,400,var_6 + 0x16f8,var_6 + 0x3e28,var_1->filename);
        return (type_1 *)0x0;
      }
      (*(type_17 *)PTR_memcpy_003a9358)(var_8,var_1->colormap,var_9 * 0x58);
    }
    var_14 = var_6;
    if ((var_10 == 0) || (var_11 == 0)) {
      if (var_1->montage != (char *)0x0) {
        (*(type_17 *)PTR_CloneString_003a9488)(&pIVar3->montage);
      }
      if (var_1->directory != (char *)0x0) {
        (*(type_17 *)PTR_CloneString_003a9488)(&pIVar3->directory);
      }
      pvVar9 = (void *)(*(type_17 *)PTR_ReferencePixelCache_003a8a84)(var_1->cache);
      pIVar3->cache = pvVar9;
    }
    else {
      var_9 = var_1->var_10;
      if (var_9 == 0) {
        var_12 = *(double *)(var_6 + 0x1438);
      }
      else {
        var_12 = (double)(int)var_10;
        if ((int)var_10 < 0) {
          var_12 = var_12 + *(double *)(var_6 + 0x1418);
        }
        var_13 = (double)(int)var_9;
        if ((int)var_9 < 0) {
          var_13 = var_13 + *(double *)(var_6 + 0x1418);
        }
        var_12 = var_12 / var_13;
      }
      var_9 = (var_1->page).width;
      var_13 = (double)(int)var_9;
      if ((int)var_9 < 0) {
        var_13 = var_13 + *(double *)(var_6 + 0x1418);
      }
      var_13 = (double)(*(type_17 *)PTR_floor_003a9670)
                                 (var_13 * var_12 + *(double *)(var_6 + 0x1400));
      puVar2 = PTR_ceil_003a8c20;
      if (var_13 < *(double *)(var_14 + 0x1410)) {
        var_9 = (size_t)var_13;
      }
      else {
        var_9 = (int)(var_13 - *(double *)(var_14 + 0x1410)) | 0x80000000;
      }
      var_16 = (var_1->page).x;
      var_15 = *(double *)(var_14 + 0x1400);
      (pIVar3->page).width = var_9;
      var_13 = (double)(*(type_17 *)puVar2)((double)var_16 * var_12 - var_15);
      puVar2 = PTR_ceil_003a8c20;
      var_16 = (var_1->tile_offset).x;
      (pIVar3->page).x = (int)var_13;
      var_12 = (double)(*(type_17 *)puVar2)((double)var_16 * var_12 - var_15);
      var_9 = var_1->var_11;
      (pIVar3->tile_offset).x = (int)var_12;
      if (var_9 == 0) {
        var_12 = *(double *)(var_6 + 0x1438);
      }
      else {
        var_12 = (double)(int)var_11;
        if ((int)var_11 < 0) {
          var_12 = var_12 + *(double *)(var_6 + 0x1418);
        }
        var_13 = (double)(int)var_9;
        if ((int)var_9 < 0) {
          var_13 = var_13 + *(double *)(var_6 + 0x1418);
        }
        var_12 = var_12 / var_13;
      }
      var_9 = (var_1->page).height;
      var_13 = (double)(int)var_9;
      if ((int)var_9 < 0) {
        var_13 = var_13 + *(double *)(var_6 + 0x1418);
      }
      var_13 = (double)(*(type_17 *)PTR_floor_003a9670)(var_13 * var_12 + *(double *)(var_14 + 0x1400))
      ;
      puVar2 = PTR_ceil_003a8c20;
      if (var_13 < *(double *)(var_14 + 0x1410)) {
        var_9 = (size_t)var_13;
      }
      else {
        var_9 = (int)(var_13 - *(double *)(var_14 + 0x1410)) | 0x80000000;
      }
      var_16 = (var_1->page).y;
      var_15 = *(double *)(var_14 + 0x1400);
      (pIVar3->page).height = var_9;
      var_13 = (double)(*(type_17 *)puVar2)((double)var_16 * var_12 - var_15);
      var_14 = PTR_ceil_003a8c20;
      var_16 = (var_1->tile_offset).y;
      (pIVar3->page).y = (int)var_13;
      var_12 = (double)(*(type_17 *)var_14)((double)var_16 * var_12 - var_15);
      var_14 = PTR_ClonePixelCache_003a8a10;
      pvVar9 = var_1->cache;
      (pIVar3->tile_offset).y = (int)var_12;
      pvVar9 = (void *)(*(type_17 *)var_14)(pvVar9);
      pIVar3->cache = pvVar9;
      var_16 = (*(type_17 *)PTR_SetImageExtent_003a94ac)(pIVar3,var_10,var_11,var_5);
      if (var_16 == 0) {
        pIVar3 = (type_1 *)(*(type_17 *)PTR_DestroyImage_003a8f4c)(pIVar3);
        return pIVar3;
      }
    }
    return pIVar3;
  }
  (*(type_17 *)PTR_ThrowMagickException_003a8f20)
            (var_5,var_3 + -0x5b4c,var_3 + -0x52a0,0x31e,
             0x1a9,var_3 + -0x5ac0,var_6 + 0x3e28,var_1->filename);
  return (type_1 *)0x0;
}


(translation_unit (function_definition type: (type_identifier) declarator: (pointer_declarator declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))))) (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))))) (return_statement (identifier)))) (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: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (number_literal) (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))))) (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))))) (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (number_literal) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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: (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: (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: (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: (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: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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: (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: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (number_literal) (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal))))) (return_statement (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal)) (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (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: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))) (expression_statement (assignment_expression left: (identifier) right: (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 (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (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: (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))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))) (expression_statement (assignment_expression left: (identifier) right: (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 (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (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: (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))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier) (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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))))) (return_statement (identifier))))))) (return_statement (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (number_literal) (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal))))) (return_statement (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))))

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

{
  undefined *puVar1;
  undefined *puVar2;
  undefined4 *puVar3;
  undefined4 uVar4;
  uint uVar5;
  undefined4 uVar6;
  int iVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  undefined4 uVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  undefined4 uVar16;
  int iVar17;
  double dVar18;
  double dVar19;
  double dVar20;
  
  if (param_1 == (undefined4 *)0x0) {
    puVar3 = (undefined4 *)
             (*(code *)PTR___assert_fail_003a9608)
                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x37b0,
                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x316,PTR_s_t_to_left_003a88e4 + -0x5294)
    ;
    return puVar3;
  }
  if (param_1[0xcdb] != -0x54535255) {
    puVar3 = (undefined4 *)
             (*(code *)PTR___assert_fail_003a9608)
                       (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x3784,
                        PTR_s_t_to_left_003a88e4 + -0x5b4c,0x317,PTR_s_t_to_left_003a88e4 + -0x5294)
    ;
    return puVar3;
  }
  if (param_1[0xcd4] != 0) {
    (*(code *)PTR_LogMagickEvent_003a91e0)
              (0x8000,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x319,
               PTR_s_t_to_left_003a88e4 + -0x62ac,param_1 + 0xd0);
  }
  if (param_5 == 0) {
    puVar3 = (undefined4 *)
             (*(code *)PTR___assert_fail_003a9608)
                       (PTR_LAB_003a88e0 + 0x1cac,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31a,
                        PTR_s_t_to_left_003a88e4 + -0x5294);
    return puVar3;
  }
  if (*(int *)(param_5 + 0x1c) != -0x54535255) {
    puVar3 = (undefined4 *)
             (*(code *)PTR___assert_fail_003a9608)
                       (PTR_LAB_003a88e0 + 0x294c,PTR_s_t_to_left_003a88e4 + -0x5b4c,0x31b,
                        PTR_s_t_to_left_003a88e4 + -0x5294);
    return puVar3;
  }
  if ((param_1[6] != 0) && (param_1[7] != 0)) {
    puVar3 = (undefined4 *)(*(code *)PTR_AcquireCriticalMemory_003a9354)(0x33d8);
    (*(code *)PTR_memset_003a96d4)(puVar3,0,0x33d8);
    puVar1 = PTR_MASKEDInfo_003a919c;
    uVar16 = param_1[0xb0];
    uVar15 = param_1[0xb1];
    uVar14 = param_1[0xb2];
    uVar13 = param_1[1];
    uVar12 = param_1[0xaf];
    uVar11 = param_1[0xcf4];
    uVar10 = param_1[0xcf3];
    uVar6 = param_1[7];
    uVar9 = param_1[6];
    uVar4 = param_1[0xa9];
    uVar8 = param_1[0xcd7];
    *puVar3 = *param_1;
    puVar3[0xb0] = uVar16;
    puVar3[0xb1] = uVar15;
    puVar3[0xb2] = uVar14;
    puVar3[1] = uVar13;
    puVar3[0xaf] = uVar12;
    puVar3[0xcf4] = uVar11;
    puVar3[0xcf3] = uVar10;
    puVar3[7] = uVar6;
    puVar3[6] = uVar9;
    puVar3[0xcdb] = 0xabacadab;
    puVar3[0xa9] = uVar4;
    uVar4 = (*(code *)puVar1)(uVar8);
    puVar1 = PTR_MASKEDProfiles_003a9348;
    puVar3[0xcd7] = uVar4;
    (*(code *)puVar1)(puVar3,param_1);
    (*(code *)PTR_MASKEDProperties_003a91ac)(puVar3,param_1);
    (*(code *)PTR_MASKEDArtifacts_003a9500)(puVar3,param_1);
    (*(code *)PTR_GetTimerInfo_003a9668)(puVar3 + 0xbc);
    if (param_1[0xcc] != 0) {
      (*(code *)PTR_Ascii85Initialize_003a8d18)(puVar3);
    }
    puVar1 = PTR_ClonePixelChannelMap_003a8d90;
    uVar11 = param_1[0xcd0];
    uVar10 = param_1[0xcd1];
    uVar9 = param_1[0xa8];
    uVar8 = param_1[0xb3];
    uVar4 = param_1[0xaa];
    uVar6 = param_1[0xb4];
    puVar3[0xab] = param_1[0xab];
    puVar3[0xcd0] = uVar11;
    puVar3[0xcd1] = uVar10;
    puVar3[0xa8] = uVar9;
    puVar3[0xb3] = uVar8;
    puVar3[0xaa] = uVar4;
    uVar4 = (*(code *)puVar1)(uVar6);
    puVar1 = PTR_CopyMagickString_003a983c;
    puVar3[0xb4] = uVar4;
    (*(code *)puVar1)(puVar3 + 0x4d0,param_1 + 0x4d0,0x1000);
    (*(code *)PTR_CopyMagickString_003a983c)(puVar3 + 0x8d0,param_1 + 0x8d0,0x1000);
    (*(code *)PTR_CopyMagickString_003a983c)(puVar3 + 0xd0,param_1 + 0xd0,0x1000);
    puVar1 = PTR_NewImageList_003a8e84;
    uVar8 = param_1[0xca];
    uVar6 = param_1[0xcda];
    uVar4 = param_1[0xcd9];
    puVar3[0xcb] = param_1[0xcb];
    puVar3[0xca] = uVar8;
    puVar3[0xcd5] = 1;
    puVar3[0xcda] = uVar6;
    puVar3[0xcd9] = uVar4;
    uVar4 = (*(code *)puVar1)();
    puVar3[0xcd8] = uVar4;
    puVar1 = PTR_CloneBlobInfo_003a97e0;
    if (param_4 == 0) {
      uVar4 = (*(code *)PTR_ReferenceBlob_003a9294)(param_1[0xcd2]);
      puVar3[0xcd2] = uVar4;
    }
    else {
      puVar3[0xcda] = uVar4;
      puVar3[0xcd9] = uVar4;
      uVar4 = (*(code *)puVar1)(0);
      puVar3[0xcd2] = uVar4;
    }
    puVar1 = PTR_IsEventLogging_003a97a8;
    puVar3[0xac] = param_1[0xac];
    uVar4 = (*(code *)puVar1)();
    puVar1 = PTR_AcquireSemaphoreInfo_003a962c;
    puVar3[0xcd4] = uVar4;
    uVar4 = (*(code *)puVar1)();
    iVar7 = param_1[10];
    puVar3[0xcd6] = uVar4;
    puVar1 = PTR_AcquireQuantumMemory_003a950c;
    if (iVar7 != 0) {
      puVar3[9] = param_1[9];
      iVar17 = param_1[9];
      iVar7 = (*(code *)puVar1)(iVar17 + 1,0x58);
      puVar3[10] = iVar7;
      if (iVar7 == 0) {
        (*(code *)PTR_DestroyImage_003a8f4c)(puVar3);
        (*(code *)PTR_ThrowMagickException_003a8f20)
                  (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,
                   0x35f,400,PTR_LAB_003a88e0 + 0x16f8,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);
        return (undefined4 *)0x0;
      }
      (*(code *)PTR_memcpy_003a9358)(iVar7,param_1[10],iVar17 * 0x58);
    }
    puVar1 = PTR_LAB_003a88e0;
    if ((param_2 == 0) || (param_3 == 0)) {
      if (param_1[0x81] != 0) {
        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x81);
      }
      if (param_1[0x82] != 0) {
        (*(code *)PTR_CloneString_003a9488)(puVar3 + 0x82);
      }
      uVar4 = (*(code *)PTR_FUN_003a8a84)(param_1[0xb5]);
      puVar3[0xb5] = uVar4;
    }
    else {
      iVar7 = param_1[6];
      if (iVar7 == 0) {
        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);
      }
      else {
        dVar19 = (double)param_2;
        if (param_2 < 0) {
          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);
        }
        dVar18 = (double)iVar7;
        if (iVar7 < 0) {
          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);
        }
        dVar19 = dVar19 / dVar18;
      }
      dVar18 = (double)(int)param_1[0x8a];
      if ((int)param_1[0x8a] < 0) {
        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);
      }
      dVar18 = (double)(*(code *)PTR_floor_003a9670)
                                 (dVar18 * dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1400));
      puVar2 = PTR_ceil_003a8c20;
      if (dVar18 < *(double *)(puVar1 + 0x1410)) {
        uVar5 = (uint)dVar18;
      }
      else {
        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;
      }
      iVar7 = param_1[0x8c];
      dVar20 = *(double *)(puVar1 + 0x1400);
      puVar3[0x8a] = uVar5;
      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);
      puVar2 = PTR_ceil_003a8c20;
      iVar7 = param_1[0xa6];
      puVar3[0x8c] = (int)dVar18;
      dVar19 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);
      iVar7 = param_1[7];
      puVar3[0xa6] = (int)dVar19;
      if (iVar7 == 0) {
        dVar19 = *(double *)(PTR_LAB_003a88e0 + 0x1438);
      }
      else {
        dVar19 = (double)param_3;
        if (param_3 < 0) {
          dVar19 = dVar19 + *(double *)(PTR_LAB_003a88e0 + 0x1418);
        }
        dVar18 = (double)iVar7;
        if (iVar7 < 0) {
          dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);
        }
        dVar19 = dVar19 / dVar18;
      }
      dVar18 = (double)(int)param_1[0x8b];
      if ((int)param_1[0x8b] < 0) {
        dVar18 = dVar18 + *(double *)(PTR_LAB_003a88e0 + 0x1418);
      }
      dVar18 = (double)(*(code *)PTR_floor_003a9670)(dVar18 * dVar19 + *(double *)(puVar1 + 0x1400))
      ;
      puVar2 = PTR_ceil_003a8c20;
      if (dVar18 < *(double *)(puVar1 + 0x1410)) {
        uVar5 = (uint)dVar18;
      }
      else {
        uVar5 = (int)(dVar18 - *(double *)(puVar1 + 0x1410)) | 0x80000000;
      }
      iVar7 = param_1[0x8d];
      dVar20 = *(double *)(puVar1 + 0x1400);
      puVar3[0x8b] = uVar5;
      dVar18 = (double)(*(code *)puVar2)((double)iVar7 * dVar19 - dVar20);
      puVar1 = PTR_ceil_003a8c20;
      iVar7 = param_1[0xa7];
      puVar3[0x8d] = (int)dVar18;
      dVar19 = (double)(*(code *)puVar1)((double)iVar7 * dVar19 - dVar20);
      puVar1 = PTR_FUN_003a8a10;
      uVar4 = param_1[0xb5];
      puVar3[0xa7] = (int)dVar19;
      uVar4 = (*(code *)puVar1)(uVar4);
      puVar3[0xb5] = uVar4;
      iVar7 = (*(code *)PTR_SetImageExtent_003a94ac)(puVar3,param_2,param_3,param_5);
      if (iVar7 == 0) {
        puVar3 = (undefined4 *)(*(code *)PTR_DestroyImage_003a8f4c)(puVar3);
        return puVar3;
      }
    }
    return puVar3;
  }
  (*(code *)PTR_ThrowMagickException_003a8f20)
            (param_5,PTR_s_t_to_left_003a88e4 + -0x5b4c,PTR_s_t_to_left_003a88e4 + -0x52a0,0x31e,
             0x1a9,PTR_s_t_to_left_003a88e4 + -0x5ac0,PTR_LAB_003a88e0 + 0x3e28,param_1 + 0xd0);
  return (undefined4 *)0x0;
}

