
/* 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 */
/* WARNING: Enum "LogEventType": Some values do not have unique names */

MagickBooleanType
ClutImage(Image *image,Image *clut_image,PixelInterpolateMethod method,ExceptionInfo *exception)

{
  PixelInterpolateMethod PVar1;
  size_t sVar2;
  bool bVar3;
  MagickBooleanType MVar4;
  CacheType CVar5;
  PixelInfo *memory;
  CacheView *pCVar6;
  MagickSizeType MVar7;
  size_t sVar8;
  MagickSizeType MVar9;
  ulong uVar10;
  PixelInfo *pixel;
  long lVar11;
  long in_FS_OFFSET;
  MagickOffsetType progress;
  Image *local_78;
  ExceptionInfo *local_70;
  CacheView *local_68;
  PixelInfo *local_60;
  MagickOffsetType *local_58;
  MagickBooleanType local_50;
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  if (image == (Image *)0x0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image != (Image *) NULL","MagickCore/enhance.c",0x359,"ClutImage");
  }
  if (image->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35a,"ClutImage"
                 );
  }
  if (image->debug != MagickFalse) {
    LogMagickEvent(TraceEvent,"MagickCore/enhance.c","ClutImage",0x35c,"%s",image->filename);
  }
  if (clut_image == (Image *)0x0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("clut_image != (Image *) NULL","MagickCore/enhance.c",0x35d,"ClutImage");
  }
  if (clut_image->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("clut_image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35e,
                  "ClutImage");
  }
  MVar4 = SetImageStorageClass(image,DirectClass,exception);
  if (MVar4 == MagickFalse) goto LAB_001f2803;
  if ((((image->colorspace == GRAYColorspace) || (image->colorspace == LinearGRAYColorspace)) &&
      (clut_image->colorspace != LinearGRAYColorspace)) &&
     (clut_image->colorspace != GRAYColorspace)) {
    SetImageColorspace(image,sRGBColorspace,exception);
  }
  memory = (PixelInfo *)AcquireQuantumMemory(0x10000,0x58);
  if (memory == (PixelInfo *)0x0) {
    ThrowMagickException
              (exception,"MagickCore/enhance.c","ClutImage",0x367,ErrorException,
               "MemoryAllocationFailed","`%s\'",image->filename);
    MVar4 = MagickFalse;
    goto LAB_001f2803;
  }
  progress = 0;
  PVar1 = clut_image->interpolate;
  pCVar6 = AcquireVirtualCacheView(clut_image,exception);
  lVar11 = 0;
  uVar10 = (ulong)(PVar1 != IntegerInterpolatePixel);
  pixel = memory;
  do {
    GetPixelInfo(clut_image,pixel);
    MVar4 = InterpolatePixelInfo
                      (clut_image,pCVar6,method,
                       ((double)(clut_image->columns - uVar10) * (double)lVar11) / DAT_003f95f8,
                       ((double)(clut_image->rows - uVar10) * (double)lVar11) / DAT_003f95f8,pixel,
                       exception);
    if (MVar4 == MagickFalse) break;
    lVar11 = lVar11 + 1;
    pixel = pixel + 1;
  } while (lVar11 != 0x10000);
  DestroyCacheView(pCVar6);
  pCVar6 = AcquireAuthenticCacheView(image,exception);
  CVar5 = GetImagePixelCacheType(image);
  if (((CVar5 == MemoryCache) || (CVar5 = GetImagePixelCacheType(image), CVar5 == MapCache)) &&
     ((CVar5 = GetImagePixelCacheType(image), CVar5 == MemoryCache ||
      (CVar5 = GetImagePixelCacheType(image), CVar5 == MapCache)))) {
    MVar7 = GetMagickResourceLimit(ThreadResource);
    sVar2 = image->rows;
    sVar8 = sVar2 + 0x3f;
    if (-1 < (long)sVar2) {
      sVar8 = sVar2;
    }
    bVar3 = 0x7f < (long)sVar2;
    if ((long)MVar7 < (long)sVar8 >> 6) {
      MVar7 = GetMagickResourceLimit(ThreadResource);
      bVar3 = 1 < (long)MVar7;
    }
    MVar9 = 1;
    if (bVar3) {
      MVar7 = GetMagickResourceLimit(ThreadResource);
      sVar2 = image->rows;
      sVar8 = sVar2 + 0x3f;
      if (-1 < (long)sVar2) {
        sVar8 = sVar2;
      }
      MVar9 = (long)sVar8 >> 6;
      if ((long)MVar7 < (long)MVar9) {
        MVar9 = GetMagickResourceLimit(ThreadResource);
      }
    }
  }
  else {
    MVar7 = GetMagickResourceLimit(ThreadResource);
    if (MVar7 < 2) {
      MVar7 = GetMagickResourceLimit(ThreadResource);
      MVar9 = 1;
      if (MVar7 < 2) goto LAB_001f2957;
    }
    MVar7 = GetMagickResourceLimit(ThreadResource);
    MVar9 = 2;
    if (MVar7 < 2) {
      MVar9 = GetMagickResourceLimit(ThreadResource);
    }
  }
LAB_001f2957:
  local_58 = &progress;
  local_78 = image;
  local_70 = exception;
  local_68 = pCVar6;
  local_60 = memory;
  local_50 = MVar4;
  GOMP_parallel(ClutImage__omp_fn_0,&local_78,MVar9,0);
  MVar4 = local_50;
  DestroyCacheView(pCVar6);
  RelinquishMagickMemory(memory);
  if ((clut_image->alpha_trait != UndefinedPixelTrait) &&
     ((image->channel_map[4].traits & UpdatePixelTrait) != UndefinedPixelTrait)) {
    SetImageAlphaChannel(image,ActivateAlphaChannel,exception);
  }
LAB_001f2803:
  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
    return MVar4;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}



int ClutImage(long param_1,long param_2,undefined4 param_3,undefined8 param_4)

{
  bool bVar1;
  int iVar2;
  int iVar3;
  long lVar4;
  undefined8 uVar5;
  ulong uVar6;
  long lVar7;
  long lVar8;
  long lVar9;
  long in_FS_OFFSET;
  undefined8 local_80;
  long local_78;
  undefined8 local_70;
  undefined8 local_68;
  long local_60;
  undefined8 *local_58;
  int local_50;
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  if (param_1 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image != (Image *) NULL","MagickCore/enhance.c",0x359,"ClutImage");
  }
  if (*(long *)(param_1 + 0x3450) != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35a,"ClutImage"
                 );
  }
  if (*(int *)(param_1 + 0x3418) != 0) {
    LogMagickEvent(0x8000,"MagickCore/enhance.c","ClutImage",0x35c,&DAT_0041fe36,param_1 + 0x3f8);
  }
  if (param_2 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("clut_image != (Image *) NULL","MagickCore/enhance.c",0x35d,"ClutImage");
  }
  if (*(long *)(param_2 + 0x3450) != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("clut_image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35e,
                  "ClutImage");
  }
  iVar2 = SetImageStorageClass(param_1,1,param_4);
  if (iVar2 == 0) goto LAB_001f2803;
  if ((((*(int *)(param_1 + 4) == 3) || (*(int *)(param_1 + 4) == 0x21)) &&
      (*(int *)(param_2 + 4) != 0x21)) && (*(int *)(param_2 + 4) != 3)) {
    SetImageColorspace(param_1,0x17,param_4);
  }
  lVar4 = AcquireQuantumMemory(0x10000,0x58);
  if (lVar4 == 0) {
    ThrowMagickException
              (param_4,"MagickCore/enhance.c","ClutImage",0x367,400,"MemoryAllocationFailed","`%s\'"
               ,param_1 + 0x3f8);
    iVar2 = 0;
    goto LAB_001f2803;
  }
  local_80 = 0;
  iVar2 = *(int *)(param_2 + 0x2f8);
  uVar5 = AcquireVirtualCacheView(param_2,param_4);
  lVar9 = 0;
  uVar6 = (ulong)(iVar2 != 8);
  lVar8 = lVar4;
  do {
    GetPixelInfo(param_2,lVar8);
    iVar2 = InterpolatePixelInfo
                      (((double)(*(long *)(param_2 + 0x20) - uVar6) * (double)lVar9) / DAT_003f95f8,
                       ((double)(*(long *)(param_2 + 0x28) - uVar6) * (double)lVar9) / DAT_003f95f8,
                       param_2,uVar5,param_3,lVar8,param_4);
    if (iVar2 == 0) break;
    lVar9 = lVar9 + 1;
    lVar8 = lVar8 + 0x58;
  } while (lVar9 != 0x10000);
  DestroyCacheView(uVar5);
  uVar5 = AcquireAuthenticCacheView(param_1,param_4);
  iVar3 = GetImagePixelCacheType(param_1);
  if (((iVar3 == 4) || (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)) &&
     ((iVar3 = GetImagePixelCacheType(param_1), iVar3 == 4 ||
      (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)))) {
    lVar7 = GetMagickResourceLimit(7);
    lVar8 = *(long *)(param_1 + 0x28);
    lVar9 = lVar8 + 0x3f;
    if (-1 < lVar8) {
      lVar9 = lVar8;
    }
    bVar1 = 0x7f < lVar8;
    if (lVar7 < lVar9 >> 6) {
      lVar8 = GetMagickResourceLimit(7);
      bVar1 = 1 < lVar8;
    }
    lVar8 = 1;
    if (bVar1) {
      lVar7 = GetMagickResourceLimit(7);
      lVar9 = *(long *)(param_1 + 0x28);
      lVar8 = lVar9 + 0x3f;
      if (-1 < lVar9) {
        lVar8 = lVar9;
      }
      lVar8 = lVar8 >> 6;
      if (lVar7 < lVar8) {
        lVar8 = GetMagickResourceLimit(7);
      }
    }
  }
  else {
    uVar6 = GetMagickResourceLimit(7);
    if (uVar6 < 2) {
      uVar6 = GetMagickResourceLimit(7);
      lVar8 = 1;
      if (uVar6 < 2) goto LAB_001f2957;
    }
    uVar6 = GetMagickResourceLimit(7);
    lVar8 = 2;
    if (uVar6 < 2) {
      lVar8 = GetMagickResourceLimit(7);
    }
  }
LAB_001f2957:
  local_58 = &local_80;
  local_78 = param_1;
  local_70 = param_4;
  local_68 = uVar5;
  local_60 = lVar4;
  local_50 = iVar2;
  GOMP_parallel(FUN_001ef856,&local_78,lVar8,0);
  iVar2 = local_50;
  DestroyCacheView(uVar5);
  RelinquishMagickMemory(lVar4);
  if ((*(int *)(param_2 + 0x33c) != 0) && ((*(byte *)(*(long *)(param_1 + 0x360) + 0x44) & 2) != 0))
  {
    SetImageAlphaChannel(param_1,1,param_4);
  }
LAB_001f2803:
  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
    return iVar2;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x78
MOV dword ptr [RSP + 0xc],EDX
MOV qword ptr [RSP],RCX
MOV RAX,qword ptr FS:[0x28]
MOV qword ptr [RSP + 0x68],RAX
XOR EAX,EAX
TEST RDI,RDI
JZ 0x001f26de
MOV R15,RDI
MOV RBX,RSI
MOV EAX,0xabacadab
CMP qword ptr [RDI + 0x3450],RAX
JNZ 0x001f26fd
CMP dword ptr [RDI + 0x3418],0x0
JNZ 0x001f271c
TEST RBX,RBX
JZ 0x001f2751
MOV EAX,0xabacadab
CMP qword ptr [RBX + 0x3450],RAX
JNZ 0x001f2770
MOV RDX,qword ptr [RSP]
MOV ESI,0x1
MOV RDI,R15
CALL 0x0014a120
MOV EBP,EAX
TEST EAX,EAX
JZ 0x001f2803
MOV EAX,dword ptr [R15 + 0x4]
CMP EAX,0x3
JZ 0x001f278f
CMP EAX,0x21
JZ 0x001f278f
MOV ESI,0x58
MOV EDI,0x10000
CALL 0x0014af40
MOV qword ptr [RSP + 0x18],RAX
TEST RAX,RAX
JZ 0x001f27ba
MOV qword ptr [RSP + 0x28],0x0
CMP dword ptr [RBX + 0x2f8],0x8
SETNZ BPL
MOV RSI,qword ptr [RSP]
MOV RDI,RBX
CALL 0x0014a510
MOV qword ptr [RSP + 0x10],RAX
MOV R12,qword ptr [RSP + 0x18]
MOV R13D,0x0
MOVZX EBP,BPL
JMP 0x001f289b
LEA RCX,[0x41b118]
MOV EDX,0x359
LEA RSI,[0x41ac00]
LEA RDI,[0x420571]
CALL 0x0014a360
LEA RCX,[0x41b118]
MOV EDX,0x35a
LEA RSI,[0x41ac00]
LEA RDI,[0x3f98f0]
CALL 0x0014a360
LEA R9,[RDI + 0x3f8]
LEA R8,[0x41fe36]
MOV ECX,0x35c
LEA RDX,[0x41b108]
LEA RSI,[0x41ac00]
MOV EDI,0x8000
MOV EAX,0x0
CALL 0x0014be20
JMP 0x001f263c
LEA RCX,[0x41b118]
MOV EDX,0x35d
LEA RSI,[0x41ac00]
LEA RDI,[0x41ad25]
CALL 0x0014a360
LEA RCX,[0x41b118]
MOV EDX,0x35e
LEA RSI,[0x41ac00]
LEA RDI,[0x41b188]
CALL 0x0014a360
MOV EAX,dword ptr [RBX + 0x4]
CMP EAX,0x21
JZ 0x001f2688
CMP EAX,0x3
JZ 0x001f2688
MOV RDX,qword ptr [RSP]
MOV ESI,0x17
MOV RDI,R15
CALL 0x0014d4d0
JMP 0x001f2688
ADD R15,0x3f8
PUSH R15
LEA RAX,[0x3fcd40]
PUSH RAX
LEA R9,[0x3f86c0]
MOV R8D,0x190
MOV ECX,0x367
LEA RDX,[0x41b108]
LEA RSI,[0x41ac00]
MOV RDI,qword ptr [RSP + 0x10]
MOV EAX,0x0
CALL 0x0014cb70
ADD RSP,0x10
MOV EBP,0x0
MOV EAX,EBP
MOV RCX,qword ptr [RSP + 0x68]
XOR RCX,qword ptr FS:[0x28]
JNZ 0x001f2ab6
ADD RSP,0x78
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV RDX,RAX
SHR RDX,0x1
AND EAX,0x1
OR RDX,RAX
PXOR XMM1,XMM1
CVTSI2SD XMM1,RDX
ADDSD XMM1,XMM1
JMP 0x001f28c8
MOV RDX,RAX
SHR RDX,0x1
AND EAX,0x1
OR RDX,RAX
PXOR XMM0,XMM0
CVTSI2SD XMM0,RDX
ADDSD XMM0,XMM0
MULSD XMM0,XMM2
DIVSD XMM0,qword ptr [0x003f95f8]
MOV R8,qword ptr [RSP]
MOV RCX,R14
MOV EDX,dword ptr [RSP + 0xc]
MOV RSI,qword ptr [RSP + 0x10]
MOV RDI,RBX
CALL 0x0014c4d0
MOV R14D,EAX
TEST EAX,EAX
JZ 0x001f28ef
ADD R13,0x1
ADD R12,0x58
CMP R13,0x10000
JZ 0x001f28ef
MOV R14,R12
MOV RSI,R12
MOV RDI,RBX
CALL 0x0014ba50
PXOR XMM2,XMM2
CVTSI2SD XMM2,R13
MOV RAX,qword ptr [RBX + 0x28]
SUB RAX,RBP
JS 0x001f2828
PXOR XMM1,XMM1
CVTSI2SD XMM1,RAX
MULSD XMM1,XMM2
DIVSD XMM1,qword ptr [0x003f95f8]
MOV RAX,qword ptr [RBX + 0x20]
SUB RAX,RBP
JS 0x001f2846
PXOR XMM0,XMM0
CVTSI2SD XMM0,RAX
JMP 0x001f285f
MOV RDI,qword ptr [RSP + 0x10]
CALL 0x0014cc70
MOV RSI,qword ptr [RSP]
MOV RDI,R15
CALL 0x0014cd50
MOV R12,RAX
MOV RDI,R15
CALL 0x0014b110
CMP EAX,0x4
JZ 0x001f29e1
MOV RDI,R15
CALL 0x0014b110
CMP EAX,0x3
JZ 0x001f29e1
MOV EDI,0x7
CALL 0x0014c170
CMP RAX,0x1
JBE 0x001f2a70
MOV EDI,0x7
CALL 0x0014c170
MOV EDX,0x2
CMP RAX,0x1
JBE 0x001f2a8e
MOV R13,qword ptr [RSP + 0x18]
MOV qword ptr [RSP + 0x48],R13
MOV qword ptr [RSP + 0x40],R12
MOV RAX,qword ptr [RSP]
MOV qword ptr [RSP + 0x38],RAX
MOV qword ptr [RSP + 0x30],R15
LEA RAX,[RSP + 0x28]
MOV qword ptr [RSP + 0x50],RAX
MOV dword ptr [RSP + 0x58],R14D
LEA RSI,[RSP + 0x30]
MOV ECX,0x0
LEA RDI,[0x1ef856]
CALL 0x0014bf70
MOV EBP,dword ptr [RSP + 0x58]
MOV RDI,R12
CALL 0x0014cc70
MOV RDI,R13
CALL 0x0014dad8
CMP dword ptr [RBX + 0x33c],0x0
JZ 0x001f2803
MOV RAX,qword ptr [R15 + 0x360]
TEST byte ptr [RAX + 0x44],0x2
JZ 0x001f2803
MOV RDX,qword ptr [RSP]
MOV ESI,0x1
MOV RDI,R15
CALL 0x0014d5a0
JMP 0x001f2803
MOV RDI,R15
CALL 0x0014b110
CMP EAX,0x4
JZ 0x001f29ff
MOV RDI,R15
CALL 0x0014b110
CMP EAX,0x3
JNZ 0x001f292a
MOV EDI,0x7
CALL 0x0014c170
MOV RCX,qword ptr [R15 + 0x28]
LEA RDX,[RCX + 0x3f]
TEST RCX,RCX
CMOVNS RDX,RCX
SAR RDX,0x6
CMP RCX,0x7f
SETG CL
CMP RAX,RDX
JL 0x001f2aa0
MOV EDX,0x1
TEST CL,CL
JZ 0x001f2957
MOV EDI,0x7
CALL 0x0014c170
MOV RDX,qword ptr [R15 + 0x28]
LEA RCX,[RDX + 0x3f]
TEST RDX,RDX
CMOVNS RCX,RDX
SAR RCX,0x6
MOV RDX,RCX
CMP RAX,RCX
JGE 0x001f2957
MOV EDI,0x7
CALL 0x0014c170
MOV RDX,RAX
JMP 0x001f2957
MOV EDI,0x7
CALL 0x0014c170
MOV EDX,0x1
CMP RAX,0x1
JA 0x001f293e
JMP 0x001f2957
MOV EDI,0x7
CALL 0x0014c170
MOV RDX,RAX
JMP 0x001f2957
MOV EDI,0x7
CALL 0x0014c170
CMP RAX,0x1
SETG CL
JMP 0x001f2a28
CALL 0x0014c5c0
(translation_unit "int ClutImage(long param_1,long param_2,undefined4 param_3,undefined8 param_4)\n\n{\n  bool bVar1;\n  int iVar2;\n  int iVar3;\n  long lVar4;\n  undefined8 uVar5;\n  ulong uVar6;\n  long lVar7;\n  long lVar8;\n  long lVar9;\n  long in_FS_OFFSET;\n  undefined8 local_80;\n  long local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  long local_60;\n  undefined8 *local_58;\n  int local_50;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/enhance.c",0x359,"ClutImage");\n  }\n  if (*(long *)(param_1 + 0x3450) != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35a,"ClutImage"\n                 );\n  }\n  if (*(int *)(param_1 + 0x3418) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/enhance.c","ClutImage",0x35c,&DAT_0041fe36,param_1 + 0x3f8);\n  }\n  if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("clut_image != (Image *) NULL","MagickCore/enhance.c",0x35d,"ClutImage");\n  }\n  if (*(long *)(param_2 + 0x3450) != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("clut_image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35e,\n                  "ClutImage");\n  }\n  iVar2 = SetImageStorageClass(param_1,1,param_4);\n  if (iVar2 == 0) goto LAB_001f2803;\n  if ((((*(int *)(param_1 + 4) == 3) || (*(int *)(param_1 + 4) == 0x21)) &&\n      (*(int *)(param_2 + 4) != 0x21)) && (*(int *)(param_2 + 4) != 3)) {\n    SetImageColorspace(param_1,0x17,param_4);\n  }\n  lVar4 = AcquireQuantumMemory(0x10000,0x58);\n  if (lVar4 == 0) {\n    ThrowMagickException\n              (param_4,"MagickCore/enhance.c","ClutImage",0x367,400,"MemoryAllocationFailed","`%s\'"\n               ,param_1 + 0x3f8);\n    iVar2 = 0;\n    goto LAB_001f2803;\n  }\n  local_80 = 0;\n  iVar2 = *(int *)(param_2 + 0x2f8);\n  uVar5 = AcquireVirtualCacheView(param_2,param_4);\n  lVar9 = 0;\n  uVar6 = (ulong)(iVar2 != 8);\n  lVar8 = lVar4;\n  do {\n    GetPixelInfo(param_2,lVar8);\n    iVar2 = InterpolatePixelInfo\n                      (((double)(*(long *)(param_2 + 0x20) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       ((double)(*(long *)(param_2 + 0x28) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       param_2,uVar5,param_3,lVar8,param_4);\n    if (iVar2 == 0) break;\n    lVar9 = lVar9 + 1;\n    lVar8 = lVar8 + 0x58;\n  } while (lVar9 != 0x10000);\n  DestroyCacheView(uVar5);\n  uVar5 = AcquireAuthenticCacheView(param_1,param_4);\n  iVar3 = GetImagePixelCacheType(param_1);\n  if (((iVar3 == 4) || (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)) &&\n     ((iVar3 = GetImagePixelCacheType(param_1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)))) {\n    lVar7 = GetMagickResourceLimit(7);\n    lVar8 = *(long *)(param_1 + 0x28);\n    lVar9 = lVar8 + 0x3f;\n    if (-1 < lVar8) {\n      lVar9 = lVar8;\n    }\n    bVar1 = 0x7f < lVar8;\n    if (lVar7 < lVar9 >> 6) {\n      lVar8 = GetMagickResourceLimit(7);\n      bVar1 = 1 < lVar8;\n    }\n    lVar8 = 1;\n    if (bVar1) {\n      lVar7 = GetMagickResourceLimit(7);\n      lVar9 = *(long *)(param_1 + 0x28);\n      lVar8 = lVar9 + 0x3f;\n      if (-1 < lVar9) {\n        lVar8 = lVar9;\n      }\n      lVar8 = lVar8 >> 6;\n      if (lVar7 < lVar8) {\n        lVar8 = GetMagickResourceLimit(7);\n      }\n    }\n  }\n  else {\n    uVar6 = GetMagickResourceLimit(7);\n    if (uVar6 < 2) {\n      uVar6 = GetMagickResourceLimit(7);\n      lVar8 = 1;\n      if (uVar6 < 2) goto LAB_001f2957;\n    }\n    uVar6 = GetMagickResourceLimit(7);\n    lVar8 = 2;\n    if (uVar6 < 2) {\n      lVar8 = GetMagickResourceLimit(7);\n    }\n  }\nLAB_001f2957:\n  local_58 = &local_80;\n  local_78 = param_1;\n  local_70 = param_4;\n  local_68 = uVar5;\n  local_60 = lVar4;\n  local_50 = iVar2;\n  GOMP_parallel(FUN_001ef856,&local_78,lVar8,0);\n  iVar2 = local_50;\n  DestroyCacheView(uVar5);\n  RelinquishMagickMemory(lVar4);\n  if ((*(int *)(param_2 + 0x33c) != 0) && ((*(byte *)(*(long *)(param_1 + 0x360) + 0x44) & 2) != 0))\n  {\n    SetImageAlphaChannel(param_1,1,param_4);\n  }\nLAB_001f2803:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}\n\n" (function_definition "int ClutImage(long param_1,long param_2,undefined4 param_3,undefined8 param_4)\n\n{\n  bool bVar1;\n  int iVar2;\n  int iVar3;\n  long lVar4;\n  undefined8 uVar5;\n  ulong uVar6;\n  long lVar7;\n  long lVar8;\n  long lVar9;\n  long in_FS_OFFSET;\n  undefined8 local_80;\n  long local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  long local_60;\n  undefined8 *local_58;\n  int local_50;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/enhance.c",0x359,"ClutImage");\n  }\n  if (*(long *)(param_1 + 0x3450) != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35a,"ClutImage"\n                 );\n  }\n  if (*(int *)(param_1 + 0x3418) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/enhance.c","ClutImage",0x35c,&DAT_0041fe36,param_1 + 0x3f8);\n  }\n  if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("clut_image != (Image *) NULL","MagickCore/enhance.c",0x35d,"ClutImage");\n  }\n  if (*(long *)(param_2 + 0x3450) != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("clut_image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35e,\n                  "ClutImage");\n  }\n  iVar2 = SetImageStorageClass(param_1,1,param_4);\n  if (iVar2 == 0) goto LAB_001f2803;\n  if ((((*(int *)(param_1 + 4) == 3) || (*(int *)(param_1 + 4) == 0x21)) &&\n      (*(int *)(param_2 + 4) != 0x21)) && (*(int *)(param_2 + 4) != 3)) {\n    SetImageColorspace(param_1,0x17,param_4);\n  }\n  lVar4 = AcquireQuantumMemory(0x10000,0x58);\n  if (lVar4 == 0) {\n    ThrowMagickException\n              (param_4,"MagickCore/enhance.c","ClutImage",0x367,400,"MemoryAllocationFailed","`%s\'"\n               ,param_1 + 0x3f8);\n    iVar2 = 0;\n    goto LAB_001f2803;\n  }\n  local_80 = 0;\n  iVar2 = *(int *)(param_2 + 0x2f8);\n  uVar5 = AcquireVirtualCacheView(param_2,param_4);\n  lVar9 = 0;\n  uVar6 = (ulong)(iVar2 != 8);\n  lVar8 = lVar4;\n  do {\n    GetPixelInfo(param_2,lVar8);\n    iVar2 = InterpolatePixelInfo\n                      (((double)(*(long *)(param_2 + 0x20) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       ((double)(*(long *)(param_2 + 0x28) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       param_2,uVar5,param_3,lVar8,param_4);\n    if (iVar2 == 0) break;\n    lVar9 = lVar9 + 1;\n    lVar8 = lVar8 + 0x58;\n  } while (lVar9 != 0x10000);\n  DestroyCacheView(uVar5);\n  uVar5 = AcquireAuthenticCacheView(param_1,param_4);\n  iVar3 = GetImagePixelCacheType(param_1);\n  if (((iVar3 == 4) || (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)) &&\n     ((iVar3 = GetImagePixelCacheType(param_1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)))) {\n    lVar7 = GetMagickResourceLimit(7);\n    lVar8 = *(long *)(param_1 + 0x28);\n    lVar9 = lVar8 + 0x3f;\n    if (-1 < lVar8) {\n      lVar9 = lVar8;\n    }\n    bVar1 = 0x7f < lVar8;\n    if (lVar7 < lVar9 >> 6) {\n      lVar8 = GetMagickResourceLimit(7);\n      bVar1 = 1 < lVar8;\n    }\n    lVar8 = 1;\n    if (bVar1) {\n      lVar7 = GetMagickResourceLimit(7);\n      lVar9 = *(long *)(param_1 + 0x28);\n      lVar8 = lVar9 + 0x3f;\n      if (-1 < lVar9) {\n        lVar8 = lVar9;\n      }\n      lVar8 = lVar8 >> 6;\n      if (lVar7 < lVar8) {\n        lVar8 = GetMagickResourceLimit(7);\n      }\n    }\n  }\n  else {\n    uVar6 = GetMagickResourceLimit(7);\n    if (uVar6 < 2) {\n      uVar6 = GetMagickResourceLimit(7);\n      lVar8 = 1;\n      if (uVar6 < 2) goto LAB_001f2957;\n    }\n    uVar6 = GetMagickResourceLimit(7);\n    lVar8 = 2;\n    if (uVar6 < 2) {\n      lVar8 = GetMagickResourceLimit(7);\n    }\n  }\nLAB_001f2957:\n  local_58 = &local_80;\n  local_78 = param_1;\n  local_70 = param_4;\n  local_68 = uVar5;\n  local_60 = lVar4;\n  local_50 = iVar2;\n  GOMP_parallel(FUN_001ef856,&local_78,lVar8,0);\n  iVar2 = local_50;\n  DestroyCacheView(uVar5);\n  RelinquishMagickMemory(lVar4);\n  if ((*(int *)(param_2 + 0x33c) != 0) && ((*(byte *)(*(long *)(param_1 + 0x360) + 0x44) & 2) != 0))\n  {\n    SetImageAlphaChannel(param_1,1,param_4);\n  }\nLAB_001f2803:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" primitive_type (function_declarator "ClutImage(long param_1,long param_2,undefined4 param_3,undefined8 param_4)" identifier (parameter_list "(long param_1,long param_2,undefined4 param_3,undefined8 param_4)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined8 param_4" type_identifier identifier) ))) (compound_statement "{\n  bool bVar1;\n  int iVar2;\n  int iVar3;\n  long lVar4;\n  undefined8 uVar5;\n  ulong uVar6;\n  long lVar7;\n  long lVar8;\n  long lVar9;\n  long in_FS_OFFSET;\n  undefined8 local_80;\n  long local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  long local_60;\n  undefined8 *local_58;\n  int local_50;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/enhance.c",0x359,"ClutImage");\n  }\n  if (*(long *)(param_1 + 0x3450) != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35a,"ClutImage"\n                 );\n  }\n  if (*(int *)(param_1 + 0x3418) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/enhance.c","ClutImage",0x35c,&DAT_0041fe36,param_1 + 0x3f8);\n  }\n  if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("clut_image != (Image *) NULL","MagickCore/enhance.c",0x35d,"ClutImage");\n  }\n  if (*(long *)(param_2 + 0x3450) != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("clut_image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35e,\n                  "ClutImage");\n  }\n  iVar2 = SetImageStorageClass(param_1,1,param_4);\n  if (iVar2 == 0) goto LAB_001f2803;\n  if ((((*(int *)(param_1 + 4) == 3) || (*(int *)(param_1 + 4) == 0x21)) &&\n      (*(int *)(param_2 + 4) != 0x21)) && (*(int *)(param_2 + 4) != 3)) {\n    SetImageColorspace(param_1,0x17,param_4);\n  }\n  lVar4 = AcquireQuantumMemory(0x10000,0x58);\n  if (lVar4 == 0) {\n    ThrowMagickException\n              (param_4,"MagickCore/enhance.c","ClutImage",0x367,400,"MemoryAllocationFailed","`%s\'"\n               ,param_1 + 0x3f8);\n    iVar2 = 0;\n    goto LAB_001f2803;\n  }\n  local_80 = 0;\n  iVar2 = *(int *)(param_2 + 0x2f8);\n  uVar5 = AcquireVirtualCacheView(param_2,param_4);\n  lVar9 = 0;\n  uVar6 = (ulong)(iVar2 != 8);\n  lVar8 = lVar4;\n  do {\n    GetPixelInfo(param_2,lVar8);\n    iVar2 = InterpolatePixelInfo\n                      (((double)(*(long *)(param_2 + 0x20) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       ((double)(*(long *)(param_2 + 0x28) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       param_2,uVar5,param_3,lVar8,param_4);\n    if (iVar2 == 0) break;\n    lVar9 = lVar9 + 1;\n    lVar8 = lVar8 + 0x58;\n  } while (lVar9 != 0x10000);\n  DestroyCacheView(uVar5);\n  uVar5 = AcquireAuthenticCacheView(param_1,param_4);\n  iVar3 = GetImagePixelCacheType(param_1);\n  if (((iVar3 == 4) || (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)) &&\n     ((iVar3 = GetImagePixelCacheType(param_1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)))) {\n    lVar7 = GetMagickResourceLimit(7);\n    lVar8 = *(long *)(param_1 + 0x28);\n    lVar9 = lVar8 + 0x3f;\n    if (-1 < lVar8) {\n      lVar9 = lVar8;\n    }\n    bVar1 = 0x7f < lVar8;\n    if (lVar7 < lVar9 >> 6) {\n      lVar8 = GetMagickResourceLimit(7);\n      bVar1 = 1 < lVar8;\n    }\n    lVar8 = 1;\n    if (bVar1) {\n      lVar7 = GetMagickResourceLimit(7);\n      lVar9 = *(long *)(param_1 + 0x28);\n      lVar8 = lVar9 + 0x3f;\n      if (-1 < lVar9) {\n        lVar8 = lVar9;\n      }\n      lVar8 = lVar8 >> 6;\n      if (lVar7 < lVar8) {\n        lVar8 = GetMagickResourceLimit(7);\n      }\n    }\n  }\n  else {\n    uVar6 = GetMagickResourceLimit(7);\n    if (uVar6 < 2) {\n      uVar6 = GetMagickResourceLimit(7);\n      lVar8 = 1;\n      if (uVar6 < 2) goto LAB_001f2957;\n    }\n    uVar6 = GetMagickResourceLimit(7);\n    lVar8 = 2;\n    if (uVar6 < 2) {\n      lVar8 = GetMagickResourceLimit(7);\n    }\n  }\nLAB_001f2957:\n  local_58 = &local_80;\n  local_78 = param_1;\n  local_70 = param_4;\n  local_68 = uVar5;\n  local_60 = lVar4;\n  local_50 = iVar2;\n  GOMP_parallel(FUN_001ef856,&local_78,lVar8,0);\n  iVar2 = local_50;\n  DestroyCacheView(uVar5);\n  RelinquishMagickMemory(lVar4);\n  if ((*(int *)(param_2 + 0x33c) != 0) && ((*(byte *)(*(long *)(param_1 + 0x360) + 0x44) & 2) != 0))\n  {\n    SetImageAlphaChannel(param_1,1,param_4);\n  }\nLAB_001f2803:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "ulong uVar6;" type_identifier identifier ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 local_80;" type_identifier identifier ;) (declaration "long local_78;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 local_70;" type_identifier identifier ;) (declaration "undefined8 local_68;" type_identifier identifier ;) (declaration "long local_60;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/enhance.c",0x359,"ClutImage");\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/enhance.c",0x359,"ClutImage");\n  }" { comment (expression_statement "__assert_fail("image != (Image *) NULL","MagickCore/enhance.c",0x359,"ClutImage");" (call_expression "__assert_fail("image != (Image *) NULL","MagickCore/enhance.c",0x359,"ClutImage")" identifier (argument_list "("image != (Image *) NULL","MagickCore/enhance.c",0x359,"ClutImage")" ( (string_literal ""image != (Image *) NULL"" " string_content ") , (string_literal ""MagickCore/enhance.c"" " string_content ") , number_literal , (string_literal ""ClutImage"" " string_content ") ))) ;) })) (if_statement "if (*(long *)(param_1 + 0x3450) != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35a,"ClutImage"\n                 );\n  }" if (parenthesized_expression "(*(long *)(param_1 + 0x3450) != 0xabacadab)" ( (binary_expression "*(long *)(param_1 + 0x3450) != 0xabacadab" (pointer_expression "*(long *)(param_1 + 0x3450)" * (cast_expression "(long *)(param_1 + 0x3450)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3450)" ( (binary_expression "param_1 + 0x3450" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35a,"ClutImage"\n                 );\n  }" { comment (expression_statement "__assert_fail("image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35a,"ClutImage"\n                 );" (call_expression "__assert_fail("image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35a,"ClutImage"\n                 )" identifier (argument_list "("image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35a,"ClutImage"\n                 )" ( (string_literal ""image->signature == MagickCoreSignature"" " string_content ") , (string_literal ""MagickCore/enhance.c"" " string_content ") , number_literal , (string_literal ""ClutImage"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x3418) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/enhance.c","ClutImage",0x35c,&DAT_0041fe36,param_1 + 0x3f8);\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x3418) != 0)" ( (binary_expression "*(int *)(param_1 + 0x3418) != 0" (pointer_expression "*(int *)(param_1 + 0x3418)" * (cast_expression "(int *)(param_1 + 0x3418)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3418)" ( (binary_expression "param_1 + 0x3418" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    LogMagickEvent(0x8000,"MagickCore/enhance.c","ClutImage",0x35c,&DAT_0041fe36,param_1 + 0x3f8);\n  }" { (expression_statement "LogMagickEvent(0x8000,"MagickCore/enhance.c","ClutImage",0x35c,&DAT_0041fe36,param_1 + 0x3f8);" (call_expression "LogMagickEvent(0x8000,"MagickCore/enhance.c","ClutImage",0x35c,&DAT_0041fe36,param_1 + 0x3f8)" identifier (argument_list "(0x8000,"MagickCore/enhance.c","ClutImage",0x35c,&DAT_0041fe36,param_1 + 0x3f8)" ( number_literal , (string_literal ""MagickCore/enhance.c"" " string_content ") , (string_literal ""ClutImage"" " string_content ") , number_literal , (pointer_expression "&DAT_0041fe36" & identifier) , (binary_expression "param_1 + 0x3f8" identifier + number_literal) ))) ;) })) (if_statement "if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("clut_image != (Image *) NULL","MagickCore/enhance.c",0x35d,"ClutImage");\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("clut_image != (Image *) NULL","MagickCore/enhance.c",0x35d,"ClutImage");\n  }" { comment (expression_statement "__assert_fail("clut_image != (Image *) NULL","MagickCore/enhance.c",0x35d,"ClutImage");" (call_expression "__assert_fail("clut_image != (Image *) NULL","MagickCore/enhance.c",0x35d,"ClutImage")" identifier (argument_list "("clut_image != (Image *) NULL","MagickCore/enhance.c",0x35d,"ClutImage")" ( (string_literal ""clut_image != (Image *) NULL"" " string_content ") , (string_literal ""MagickCore/enhance.c"" " string_content ") , number_literal , (string_literal ""ClutImage"" " string_content ") ))) ;) })) (if_statement "if (*(long *)(param_2 + 0x3450) != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("clut_image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35e,\n                  "ClutImage");\n  }" if (parenthesized_expression "(*(long *)(param_2 + 0x3450) != 0xabacadab)" ( (binary_expression "*(long *)(param_2 + 0x3450) != 0xabacadab" (pointer_expression "*(long *)(param_2 + 0x3450)" * (cast_expression "(long *)(param_2 + 0x3450)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3450)" ( (binary_expression "param_2 + 0x3450" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("clut_image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35e,\n                  "ClutImage");\n  }" { comment (expression_statement "__assert_fail("clut_image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35e,\n                  "ClutImage");" (call_expression "__assert_fail("clut_image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35e,\n                  "ClutImage")" identifier (argument_list "("clut_image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35e,\n                  "ClutImage")" ( (string_literal ""clut_image->signature == MagickCoreSignature"" " string_content ") , (string_literal ""MagickCore/enhance.c"" " string_content ") , number_literal , (string_literal ""ClutImage"" " string_content ") ))) ;) })) (expression_statement "iVar2 = SetImageStorageClass(param_1,1,param_4);" (assignment_expression "iVar2 = SetImageStorageClass(param_1,1,param_4)" identifier = (call_expression "SetImageStorageClass(param_1,1,param_4)" identifier (argument_list "(param_1,1,param_4)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (iVar2 == 0) goto LAB_001f2803;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001f2803;" goto statement_identifier ;)) (if_statement "if ((((*(int *)(param_1 + 4) == 3) || (*(int *)(param_1 + 4) == 0x21)) &&\n      (*(int *)(param_2 + 4) != 0x21)) && (*(int *)(param_2 + 4) != 3)) {\n    SetImageColorspace(param_1,0x17,param_4);\n  }" if (parenthesized_expression "((((*(int *)(param_1 + 4) == 3) || (*(int *)(param_1 + 4) == 0x21)) &&\n      (*(int *)(param_2 + 4) != 0x21)) && (*(int *)(param_2 + 4) != 3))" ( (binary_expression "(((*(int *)(param_1 + 4) == 3) || (*(int *)(param_1 + 4) == 0x21)) &&\n      (*(int *)(param_2 + 4) != 0x21)) && (*(int *)(param_2 + 4) != 3)" (parenthesized_expression "(((*(int *)(param_1 + 4) == 3) || (*(int *)(param_1 + 4) == 0x21)) &&\n      (*(int *)(param_2 + 4) != 0x21))" ( (binary_expression "((*(int *)(param_1 + 4) == 3) || (*(int *)(param_1 + 4) == 0x21)) &&\n      (*(int *)(param_2 + 4) != 0x21)" (parenthesized_expression "((*(int *)(param_1 + 4) == 3) || (*(int *)(param_1 + 4) == 0x21))" ( (binary_expression "(*(int *)(param_1 + 4) == 3) || (*(int *)(param_1 + 4) == 0x21)" (parenthesized_expression "(*(int *)(param_1 + 4) == 3)" ( (binary_expression "*(int *)(param_1 + 4) == 3" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(*(int *)(param_1 + 4) == 0x21)" ( (binary_expression "*(int *)(param_1 + 4) == 0x21" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) == number_literal) ))) )) && (parenthesized_expression "(*(int *)(param_2 + 4) != 0x21)" ( (binary_expression "*(int *)(param_2 + 4) != 0x21" (pointer_expression "*(int *)(param_2 + 4)" * (cast_expression "(int *)(param_2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))) != number_literal) ))) )) && (parenthesized_expression "(*(int *)(param_2 + 4) != 3)" ( (binary_expression "*(int *)(param_2 + 4) != 3" (pointer_expression "*(int *)(param_2 + 4)" * (cast_expression "(int *)(param_2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n    SetImageColorspace(param_1,0x17,param_4);\n  }" { (expression_statement "SetImageColorspace(param_1,0x17,param_4);" (call_expression "SetImageColorspace(param_1,0x17,param_4)" identifier (argument_list "(param_1,0x17,param_4)" ( identifier , number_literal , identifier ))) ;) })) (expression_statement "lVar4 = AcquireQuantumMemory(0x10000,0x58);" (assignment_expression "lVar4 = AcquireQuantumMemory(0x10000,0x58)" identifier = (call_expression "AcquireQuantumMemory(0x10000,0x58)" identifier (argument_list "(0x10000,0x58)" ( number_literal , number_literal )))) ;) (if_statement "if (lVar4 == 0) {\n    ThrowMagickException\n              (param_4,"MagickCore/enhance.c","ClutImage",0x367,400,"MemoryAllocationFailed","`%s\'"\n               ,param_1 + 0x3f8);\n    iVar2 = 0;\n    goto LAB_001f2803;\n  }" if (parenthesized_expression "(lVar4 == 0)" ( (binary_expression "lVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    ThrowMagickException\n              (param_4,"MagickCore/enhance.c","ClutImage",0x367,400,"MemoryAllocationFailed","`%s\'"\n               ,param_1 + 0x3f8);\n    iVar2 = 0;\n    goto LAB_001f2803;\n  }" { (expression_statement "ThrowMagickException\n              (param_4,"MagickCore/enhance.c","ClutImage",0x367,400,"MemoryAllocationFailed","`%s\'"\n               ,param_1 + 0x3f8);" (call_expression "ThrowMagickException\n              (param_4,"MagickCore/enhance.c","ClutImage",0x367,400,"MemoryAllocationFailed","`%s\'"\n               ,param_1 + 0x3f8)" identifier (argument_list "(param_4,"MagickCore/enhance.c","ClutImage",0x367,400,"MemoryAllocationFailed","`%s\'"\n               ,param_1 + 0x3f8)" ( identifier , (string_literal ""MagickCore/enhance.c"" " string_content ") , (string_literal ""ClutImage"" " string_content ") , number_literal , number_literal , (string_literal ""MemoryAllocationFailed"" " string_content ") , (string_literal ""`%s\'"" " string_content escape_sequence ") , (binary_expression "param_1 + 0x3f8" identifier + number_literal) ))) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_001f2803;" goto statement_identifier ;) })) (expression_statement "local_80 = 0;" (assignment_expression "local_80 = 0" identifier = number_literal) ;) (expression_statement "iVar2 = *(int *)(param_2 + 0x2f8);" (assignment_expression "iVar2 = *(int *)(param_2 + 0x2f8)" identifier = (pointer_expression "*(int *)(param_2 + 0x2f8)" * (cast_expression "(int *)(param_2 + 0x2f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2f8)" ( (binary_expression "param_2 + 0x2f8" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = AcquireVirtualCacheView(param_2,param_4);" (assignment_expression "uVar5 = AcquireVirtualCacheView(param_2,param_4)" identifier = (call_expression "AcquireVirtualCacheView(param_2,param_4)" identifier (argument_list "(param_2,param_4)" ( identifier , identifier )))) ;) (expression_statement "lVar9 = 0;" (assignment_expression "lVar9 = 0" identifier = number_literal) ;) (expression_statement "uVar6 = (ulong)(iVar2 != 8);" (assignment_expression "uVar6 = (ulong)(iVar2 != 8)" identifier = (call_expression "(ulong)(iVar2 != 8)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar2 != 8)" ( (binary_expression "iVar2 != 8" identifier != number_literal) )))) ;) (expression_statement "lVar8 = lVar4;" (assignment_expression "lVar8 = lVar4" identifier = identifier) ;) (do_statement "do {\n    GetPixelInfo(param_2,lVar8);\n    iVar2 = InterpolatePixelInfo\n                      (((double)(*(long *)(param_2 + 0x20) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       ((double)(*(long *)(param_2 + 0x28) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       param_2,uVar5,param_3,lVar8,param_4);\n    if (iVar2 == 0) break;\n    lVar9 = lVar9 + 1;\n    lVar8 = lVar8 + 0x58;\n  } while (lVar9 != 0x10000);" do (compound_statement "{\n    GetPixelInfo(param_2,lVar8);\n    iVar2 = InterpolatePixelInfo\n                      (((double)(*(long *)(param_2 + 0x20) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       ((double)(*(long *)(param_2 + 0x28) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       param_2,uVar5,param_3,lVar8,param_4);\n    if (iVar2 == 0) break;\n    lVar9 = lVar9 + 1;\n    lVar8 = lVar8 + 0x58;\n  }" { (expression_statement "GetPixelInfo(param_2,lVar8);" (call_expression "GetPixelInfo(param_2,lVar8)" identifier (argument_list "(param_2,lVar8)" ( identifier , identifier ))) ;) (expression_statement "iVar2 = InterpolatePixelInfo\n                      (((double)(*(long *)(param_2 + 0x20) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       ((double)(*(long *)(param_2 + 0x28) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       param_2,uVar5,param_3,lVar8,param_4);" (assignment_expression "iVar2 = InterpolatePixelInfo\n                      (((double)(*(long *)(param_2 + 0x20) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       ((double)(*(long *)(param_2 + 0x28) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       param_2,uVar5,param_3,lVar8,param_4)" identifier = (call_expression "InterpolatePixelInfo\n                      (((double)(*(long *)(param_2 + 0x20) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       ((double)(*(long *)(param_2 + 0x28) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       param_2,uVar5,param_3,lVar8,param_4)" identifier (argument_list "(((double)(*(long *)(param_2 + 0x20) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       ((double)(*(long *)(param_2 + 0x28) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       param_2,uVar5,param_3,lVar8,param_4)" ( (binary_expression "((double)(*(long *)(param_2 + 0x20) - uVar6) * (double)lVar9) / DAT_003f95f8" (parenthesized_expression "((double)(*(long *)(param_2 + 0x20) - uVar6) * (double)lVar9)" ( (binary_expression "(double)(*(long *)(param_2 + 0x20) - uVar6) * (double)lVar9" (cast_expression "(double)(*(long *)(param_2 + 0x20) - uVar6)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(*(long *)(param_2 + 0x20) - uVar6)" ( (binary_expression "*(long *)(param_2 + 0x20) - uVar6" (pointer_expression "*(long *)(param_2 + 0x20)" * (cast_expression "(long *)(param_2 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x20)" ( (binary_expression "param_2 + 0x20" identifier + number_literal) )))) - identifier) ))) * (cast_expression "(double)lVar9" ( (type_descriptor "double" primitive_type) ) identifier)) )) / identifier) , (binary_expression "((double)(*(long *)(param_2 + 0x28) - uVar6) * (double)lVar9) / DAT_003f95f8" (parenthesized_expression "((double)(*(long *)(param_2 + 0x28) - uVar6) * (double)lVar9)" ( (binary_expression "(double)(*(long *)(param_2 + 0x28) - uVar6) * (double)lVar9" (cast_expression "(double)(*(long *)(param_2 + 0x28) - uVar6)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(*(long *)(param_2 + 0x28) - uVar6)" ( (binary_expression "*(long *)(param_2 + 0x28) - uVar6" (pointer_expression "*(long *)(param_2 + 0x28)" * (cast_expression "(long *)(param_2 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x28)" ( (binary_expression "param_2 + 0x28" identifier + number_literal) )))) - identifier) ))) * (cast_expression "(double)lVar9" ( (type_descriptor "double" primitive_type) ) identifier)) )) / identifier) , identifier , identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar2 == 0) break;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar9 = lVar9 + 1;" (assignment_expression "lVar9 = lVar9 + 1" identifier = (binary_expression "lVar9 + 1" identifier + number_literal)) ;) (expression_statement "lVar8 = lVar8 + 0x58;" (assignment_expression "lVar8 = lVar8 + 0x58" identifier = (binary_expression "lVar8 + 0x58" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar9 != 0x10000)" ( (binary_expression "lVar9 != 0x10000" identifier != number_literal) )) ;) (expression_statement "DestroyCacheView(uVar5);" (call_expression "DestroyCacheView(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) (expression_statement "uVar5 = AcquireAuthenticCacheView(param_1,param_4);" (assignment_expression "uVar5 = AcquireAuthenticCacheView(param_1,param_4)" identifier = (call_expression "AcquireAuthenticCacheView(param_1,param_4)" identifier (argument_list "(param_1,param_4)" ( identifier , identifier )))) ;) (expression_statement "iVar3 = GetImagePixelCacheType(param_1);" (assignment_expression "iVar3 = GetImagePixelCacheType(param_1)" identifier = (call_expression "GetImagePixelCacheType(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (((iVar3 == 4) || (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)) &&\n     ((iVar3 = GetImagePixelCacheType(param_1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)))) {\n    lVar7 = GetMagickResourceLimit(7);\n    lVar8 = *(long *)(param_1 + 0x28);\n    lVar9 = lVar8 + 0x3f;\n    if (-1 < lVar8) {\n      lVar9 = lVar8;\n    }\n    bVar1 = 0x7f < lVar8;\n    if (lVar7 < lVar9 >> 6) {\n      lVar8 = GetMagickResourceLimit(7);\n      bVar1 = 1 < lVar8;\n    }\n    lVar8 = 1;\n    if (bVar1) {\n      lVar7 = GetMagickResourceLimit(7);\n      lVar9 = *(long *)(param_1 + 0x28);\n      lVar8 = lVar9 + 0x3f;\n      if (-1 < lVar9) {\n        lVar8 = lVar9;\n      }\n      lVar8 = lVar8 >> 6;\n      if (lVar7 < lVar8) {\n        lVar8 = GetMagickResourceLimit(7);\n      }\n    }\n  }\n  else {\n    uVar6 = GetMagickResourceLimit(7);\n    if (uVar6 < 2) {\n      uVar6 = GetMagickResourceLimit(7);\n      lVar8 = 1;\n      if (uVar6 < 2) goto LAB_001f2957;\n    }\n    uVar6 = GetMagickResourceLimit(7);\n    lVar8 = 2;\n    if (uVar6 < 2) {\n      lVar8 = GetMagickResourceLimit(7);\n    }\n  }" if (parenthesized_expression "(((iVar3 == 4) || (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)) &&\n     ((iVar3 = GetImagePixelCacheType(param_1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3))))" ( (binary_expression "((iVar3 == 4) || (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)) &&\n     ((iVar3 = GetImagePixelCacheType(param_1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)))" (parenthesized_expression "((iVar3 == 4) || (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3))" ( (binary_expression "(iVar3 == 4) || (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)" (parenthesized_expression "(iVar3 == 4)" ( (binary_expression "iVar3 == 4" identifier == number_literal) )) || (parenthesized_expression "(iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)" ( (comma_expression "iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3" (assignment_expression "iVar3 = GetImagePixelCacheType(param_1)" identifier = (call_expression "GetImagePixelCacheType(param_1)" identifier (argument_list "(param_1)" ( identifier )))) , (binary_expression "iVar3 == 3" identifier == number_literal)) ))) )) && (parenthesized_expression "((iVar3 = GetImagePixelCacheType(param_1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)))" ( (parenthesized_expression "(iVar3 = GetImagePixelCacheType(param_1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3))" ( (comma_expression "iVar3 = GetImagePixelCacheType(param_1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)" (assignment_expression "iVar3 = GetImagePixelCacheType(param_1)" identifier = (call_expression "GetImagePixelCacheType(param_1)" identifier (argument_list "(param_1)" ( identifier )))) , (binary_expression "iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)" (binary_expression "iVar3 == 4" identifier == number_literal) || (parenthesized_expression "(iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)" ( (comma_expression "iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3" (assignment_expression "iVar3 = GetImagePixelCacheType(param_1)" identifier = (call_expression "GetImagePixelCacheType(param_1)" identifier (argument_list "(param_1)" ( identifier )))) , (binary_expression "iVar3 == 3" identifier == number_literal)) )))) )) ))) )) (compound_statement "{\n    lVar7 = GetMagickResourceLimit(7);\n    lVar8 = *(long *)(param_1 + 0x28);\n    lVar9 = lVar8 + 0x3f;\n    if (-1 < lVar8) {\n      lVar9 = lVar8;\n    }\n    bVar1 = 0x7f < lVar8;\n    if (lVar7 < lVar9 >> 6) {\n      lVar8 = GetMagickResourceLimit(7);\n      bVar1 = 1 < lVar8;\n    }\n    lVar8 = 1;\n    if (bVar1) {\n      lVar7 = GetMagickResourceLimit(7);\n      lVar9 = *(long *)(param_1 + 0x28);\n      lVar8 = lVar9 + 0x3f;\n      if (-1 < lVar9) {\n        lVar8 = lVar9;\n      }\n      lVar8 = lVar8 >> 6;\n      if (lVar7 < lVar8) {\n        lVar8 = GetMagickResourceLimit(7);\n      }\n    }\n  }" { (expression_statement "lVar7 = GetMagickResourceLimit(7);" (assignment_expression "lVar7 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (expression_statement "lVar8 = *(long *)(param_1 + 0x28);" (assignment_expression "lVar8 = *(long *)(param_1 + 0x28)" identifier = (pointer_expression "*(long *)(param_1 + 0x28)" * (cast_expression "(long *)(param_1 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "lVar9 = lVar8 + 0x3f;" (assignment_expression "lVar9 = lVar8 + 0x3f" identifier = (binary_expression "lVar8 + 0x3f" identifier + number_literal)) ;) (if_statement "if (-1 < lVar8) {\n      lVar9 = lVar8;\n    }" if (parenthesized_expression "(-1 < lVar8)" ( (binary_expression "-1 < lVar8" number_literal < identifier) )) (compound_statement "{\n      lVar9 = lVar8;\n    }" { (expression_statement "lVar9 = lVar8;" (assignment_expression "lVar9 = lVar8" identifier = identifier) ;) })) (expression_statement "bVar1 = 0x7f < lVar8;" (assignment_expression "bVar1 = 0x7f < lVar8" identifier = (binary_expression "0x7f < lVar8" number_literal < identifier)) ;) (if_statement "if (lVar7 < lVar9 >> 6) {\n      lVar8 = GetMagickResourceLimit(7);\n      bVar1 = 1 < lVar8;\n    }" if (parenthesized_expression "(lVar7 < lVar9 >> 6)" ( (binary_expression "lVar7 < lVar9 >> 6" identifier < (binary_expression "lVar9 >> 6" identifier >> number_literal)) )) (compound_statement "{\n      lVar8 = GetMagickResourceLimit(7);\n      bVar1 = 1 < lVar8;\n    }" { (expression_statement "lVar8 = GetMagickResourceLimit(7);" (assignment_expression "lVar8 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (expression_statement "bVar1 = 1 < lVar8;" (assignment_expression "bVar1 = 1 < lVar8" identifier = (binary_expression "1 < lVar8" number_literal < identifier)) ;) })) (expression_statement "lVar8 = 1;" (assignment_expression "lVar8 = 1" identifier = number_literal) ;) (if_statement "if (bVar1) {\n      lVar7 = GetMagickResourceLimit(7);\n      lVar9 = *(long *)(param_1 + 0x28);\n      lVar8 = lVar9 + 0x3f;\n      if (-1 < lVar9) {\n        lVar8 = lVar9;\n      }\n      lVar8 = lVar8 >> 6;\n      if (lVar7 < lVar8) {\n        lVar8 = GetMagickResourceLimit(7);\n      }\n    }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n      lVar7 = GetMagickResourceLimit(7);\n      lVar9 = *(long *)(param_1 + 0x28);\n      lVar8 = lVar9 + 0x3f;\n      if (-1 < lVar9) {\n        lVar8 = lVar9;\n      }\n      lVar8 = lVar8 >> 6;\n      if (lVar7 < lVar8) {\n        lVar8 = GetMagickResourceLimit(7);\n      }\n    }" { (expression_statement "lVar7 = GetMagickResourceLimit(7);" (assignment_expression "lVar7 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (expression_statement "lVar9 = *(long *)(param_1 + 0x28);" (assignment_expression "lVar9 = *(long *)(param_1 + 0x28)" identifier = (pointer_expression "*(long *)(param_1 + 0x28)" * (cast_expression "(long *)(param_1 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "lVar8 = lVar9 + 0x3f;" (assignment_expression "lVar8 = lVar9 + 0x3f" identifier = (binary_expression "lVar9 + 0x3f" identifier + number_literal)) ;) (if_statement "if (-1 < lVar9) {\n        lVar8 = lVar9;\n      }" if (parenthesized_expression "(-1 < lVar9)" ( (binary_expression "-1 < lVar9" number_literal < identifier) )) (compound_statement "{\n        lVar8 = lVar9;\n      }" { (expression_statement "lVar8 = lVar9;" (assignment_expression "lVar8 = lVar9" identifier = identifier) ;) })) (expression_statement "lVar8 = lVar8 >> 6;" (assignment_expression "lVar8 = lVar8 >> 6" identifier = (binary_expression "lVar8 >> 6" identifier >> number_literal)) ;) (if_statement "if (lVar7 < lVar8) {\n        lVar8 = GetMagickResourceLimit(7);\n      }" if (parenthesized_expression "(lVar7 < lVar8)" ( (binary_expression "lVar7 < lVar8" identifier < identifier) )) (compound_statement "{\n        lVar8 = GetMagickResourceLimit(7);\n      }" { (expression_statement "lVar8 = GetMagickResourceLimit(7);" (assignment_expression "lVar8 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) })) })) }) (else_clause "else {\n    uVar6 = GetMagickResourceLimit(7);\n    if (uVar6 < 2) {\n      uVar6 = GetMagickResourceLimit(7);\n      lVar8 = 1;\n      if (uVar6 < 2) goto LAB_001f2957;\n    }\n    uVar6 = GetMagickResourceLimit(7);\n    lVar8 = 2;\n    if (uVar6 < 2) {\n      lVar8 = GetMagickResourceLimit(7);\n    }\n  }" else (compound_statement "{\n    uVar6 = GetMagickResourceLimit(7);\n    if (uVar6 < 2) {\n      uVar6 = GetMagickResourceLimit(7);\n      lVar8 = 1;\n      if (uVar6 < 2) goto LAB_001f2957;\n    }\n    uVar6 = GetMagickResourceLimit(7);\n    lVar8 = 2;\n    if (uVar6 < 2) {\n      lVar8 = GetMagickResourceLimit(7);\n    }\n  }" { (expression_statement "uVar6 = GetMagickResourceLimit(7);" (assignment_expression "uVar6 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (if_statement "if (uVar6 < 2) {\n      uVar6 = GetMagickResourceLimit(7);\n      lVar8 = 1;\n      if (uVar6 < 2) goto LAB_001f2957;\n    }" if (parenthesized_expression "(uVar6 < 2)" ( (binary_expression "uVar6 < 2" identifier < number_literal) )) (compound_statement "{\n      uVar6 = GetMagickResourceLimit(7);\n      lVar8 = 1;\n      if (uVar6 < 2) goto LAB_001f2957;\n    }" { (expression_statement "uVar6 = GetMagickResourceLimit(7);" (assignment_expression "uVar6 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (expression_statement "lVar8 = 1;" (assignment_expression "lVar8 = 1" identifier = number_literal) ;) (if_statement "if (uVar6 < 2) goto LAB_001f2957;" if (parenthesized_expression "(uVar6 < 2)" ( (binary_expression "uVar6 < 2" identifier < number_literal) )) (goto_statement "goto LAB_001f2957;" goto statement_identifier ;)) })) (expression_statement "uVar6 = GetMagickResourceLimit(7);" (assignment_expression "uVar6 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (expression_statement "lVar8 = 2;" (assignment_expression "lVar8 = 2" identifier = number_literal) ;) (if_statement "if (uVar6 < 2) {\n      lVar8 = GetMagickResourceLimit(7);\n    }" if (parenthesized_expression "(uVar6 < 2)" ( (binary_expression "uVar6 < 2" identifier < number_literal) )) (compound_statement "{\n      lVar8 = GetMagickResourceLimit(7);\n    }" { (expression_statement "lVar8 = GetMagickResourceLimit(7);" (assignment_expression "lVar8 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) })) }))) (labeled_statement "LAB_001f2957:\n  local_58 = &local_80;" statement_identifier : (expression_statement "local_58 = &local_80;" (assignment_expression "local_58 = &local_80" identifier = (pointer_expression "&local_80" & identifier)) ;)) (expression_statement "local_78 = param_1;" (assignment_expression "local_78 = param_1" identifier = identifier) ;) (expression_statement "local_70 = param_4;" (assignment_expression "local_70 = param_4" identifier = identifier) ;) (expression_statement "local_68 = uVar5;" (assignment_expression "local_68 = uVar5" identifier = identifier) ;) (expression_statement "local_60 = lVar4;" (assignment_expression "local_60 = lVar4" identifier = identifier) ;) (expression_statement "local_50 = iVar2;" (assignment_expression "local_50 = iVar2" identifier = identifier) ;) (expression_statement "GOMP_parallel(FUN_001ef856,&local_78,lVar8,0);" (call_expression "GOMP_parallel(FUN_001ef856,&local_78,lVar8,0)" identifier (argument_list "(FUN_001ef856,&local_78,lVar8,0)" ( identifier , (pointer_expression "&local_78" & identifier) , identifier , number_literal ))) ;) (expression_statement "iVar2 = local_50;" (assignment_expression "iVar2 = local_50" identifier = identifier) ;) (expression_statement "DestroyCacheView(uVar5);" (call_expression "DestroyCacheView(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) (expression_statement "RelinquishMagickMemory(lVar4);" (call_expression "RelinquishMagickMemory(lVar4)" identifier (argument_list "(lVar4)" ( identifier ))) ;) (if_statement "if ((*(int *)(param_2 + 0x33c) != 0) && ((*(byte *)(*(long *)(param_1 + 0x360) + 0x44) & 2) != 0))\n  {\n    SetImageAlphaChannel(param_1,1,param_4);\n  }" if (parenthesized_expression "((*(int *)(param_2 + 0x33c) != 0) && ((*(byte *)(*(long *)(param_1 + 0x360) + 0x44) & 2) != 0))" ( (binary_expression "(*(int *)(param_2 + 0x33c) != 0) && ((*(byte *)(*(long *)(param_1 + 0x360) + 0x44) & 2) != 0)" (parenthesized_expression "(*(int *)(param_2 + 0x33c) != 0)" ( (binary_expression "*(int *)(param_2 + 0x33c) != 0" (pointer_expression "*(int *)(param_2 + 0x33c)" * (cast_expression "(int *)(param_2 + 0x33c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x33c)" ( (binary_expression "param_2 + 0x33c" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "((*(byte *)(*(long *)(param_1 + 0x360) + 0x44) & 2) != 0)" ( (binary_expression "(*(byte *)(*(long *)(param_1 + 0x360) + 0x44) & 2) != 0" (parenthesized_expression "(*(byte *)(*(long *)(param_1 + 0x360) + 0x44) & 2)" ( (binary_expression "*(byte *)(*(long *)(param_1 + 0x360) + 0x44) & 2" (pointer_expression "*(byte *)(*(long *)(param_1 + 0x360) + 0x44)" * (cast_expression "(byte *)(*(long *)(param_1 + 0x360) + 0x44)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0x360) + 0x44)" ( (binary_expression "*(long *)(param_1 + 0x360) + 0x44" (pointer_expression "*(long *)(param_1 + 0x360)" * (cast_expression "(long *)(param_1 + 0x360)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x360)" ( (binary_expression "param_1 + 0x360" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    SetImageAlphaChannel(param_1,1,param_4);\n  }" { (expression_statement "SetImageAlphaChannel(param_1,1,param_4);" (call_expression "SetImageAlphaChannel(param_1,1,param_4)" identifier (argument_list "(param_1,1,param_4)" ( identifier , number_literal , identifier ))) ;) })) (labeled_statement "LAB_001f2803:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }" statement_identifier : (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }" if (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return iVar2;\n  }" { (return_statement "return iVar2;" return identifier ;) }))) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(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/* WARNING: Enum "LogEventType": Some values do not have unique names */\n\nMagickBooleanType\nClutImage(Image *image,Image *clut_image,PixelInterpolateMethod method,ExceptionInfo *exception)\n\n{\n  PixelInterpolateMethod PVar1;\n  size_t sVar2;\n  bool bVar3;\n  MagickBooleanType MVar4;\n  CacheType CVar5;\n  PixelInfo *memory;\n  CacheView *pCVar6;\n  MagickSizeType MVar7;\n  size_t sVar8;\n  MagickSizeType MVar9;\n  ulong uVar10;\n  PixelInfo *pixel;\n  long lVar11;\n  long in_FS_OFFSET;\n  MagickOffsetType progress;\n  Image *local_78;\n  ExceptionInfo *local_70;\n  CacheView *local_68;\n  PixelInfo *local_60;\n  MagickOffsetType *local_58;\n  MagickBooleanType local_50;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (image == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/enhance.c",0x359,"ClutImage");\n  }\n  if (image->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35a,"ClutImage"\n                 );\n  }\n  if (image->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"MagickCore/enhance.c","ClutImage",0x35c,"%s",image->filename);\n  }\n  if (clut_image == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("clut_image != (Image *) NULL","MagickCore/enhance.c",0x35d,"ClutImage");\n  }\n  if (clut_image->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("clut_image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35e,\n                  "ClutImage");\n  }\n  MVar4 = SetImageStorageClass(image,DirectClass,exception);\n  if (MVar4 == MagickFalse) goto LAB_001f2803;\n  if ((((image->colorspace == GRAYColorspace) || (image->colorspace == LinearGRAYColorspace)) &&\n      (clut_image->colorspace != LinearGRAYColorspace)) &&\n     (clut_image->colorspace != GRAYColorspace)) {\n    SetImageColorspace(image,sRGBColorspace,exception);\n  }\n  memory = (PixelInfo *)AcquireQuantumMemory(0x10000,0x58);\n  if (memory == (PixelInfo *)0x0) {\n    ThrowMagickException\n              (exception,"MagickCore/enhance.c","ClutImage",0x367,ErrorException,\n               "MemoryAllocationFailed","`%s\'",image->filename);\n    MVar4 = MagickFalse;\n    goto LAB_001f2803;\n  }\n  progress = 0;\n  PVar1 = clut_image->interpolate;\n  pCVar6 = AcquireVirtualCacheView(clut_image,exception);\n  lVar11 = 0;\n  uVar10 = (ulong)(PVar1 != IntegerInterpolatePixel);\n  pixel = memory;\n  do {\n    GetPixelInfo(clut_image,pixel);\n    MVar4 = InterpolatePixelInfo\n                      (clut_image,pCVar6,method,\n                       ((double)(clut_image->columns - uVar10) * (double)lVar11) / DAT_003f95f8,\n                       ((double)(clut_image->rows - uVar10) * (double)lVar11) / DAT_003f95f8,pixel,\n                       exception);\n    if (MVar4 == MagickFalse) break;\n    lVar11 = lVar11 + 1;\n    pixel = pixel + 1;\n  } while (lVar11 != 0x10000);\n  DestroyCacheView(pCVar6);\n  pCVar6 = AcquireAuthenticCacheView(image,exception);\n  CVar5 = GetImagePixelCacheType(image);\n  if (((CVar5 == MemoryCache) || (CVar5 = GetImagePixelCacheType(image), CVar5 == MapCache)) &&\n     ((CVar5 = GetImagePixelCacheType(image), CVar5 == MemoryCache ||\n      (CVar5 = GetImagePixelCacheType(image), CVar5 == MapCache)))) {\n    MVar7 = GetMagickResourceLimit(ThreadResource);\n    sVar2 = image->rows;\n    sVar8 = sVar2 + 0x3f;\n    if (-1 < (long)sVar2) {\n      sVar8 = sVar2;\n    }\n    bVar3 = 0x7f < (long)sVar2;\n    if ((long)MVar7 < (long)sVar8 >> 6) {\n      MVar7 = GetMagickResourceLimit(ThreadResource);\n      bVar3 = 1 < (long)MVar7;\n    }\n    MVar9 = 1;\n    if (bVar3) {\n      MVar7 = GetMagickResourceLimit(ThreadResource);\n      sVar2 = image->rows;\n      sVar8 = sVar2 + 0x3f;\n      if (-1 < (long)sVar2) {\n        sVar8 = sVar2;\n      }\n      MVar9 = (long)sVar8 >> 6;\n      if ((long)MVar7 < (long)MVar9) {\n        MVar9 = GetMagickResourceLimit(ThreadResource);\n      }\n    }\n  }\n  else {\n    MVar7 = GetMagickResourceLimit(ThreadResource);\n    if (MVar7 < 2) {\n      MVar7 = GetMagickResourceLimit(ThreadResource);\n      MVar9 = 1;\n      if (MVar7 < 2) goto LAB_001f2957;\n    }\n    MVar7 = GetMagickResourceLimit(ThreadResource);\n    MVar9 = 2;\n    if (MVar7 < 2) {\n      MVar9 = GetMagickResourceLimit(ThreadResource);\n    }\n  }\nLAB_001f2957:\n  local_58 = &progress;\n  local_78 = image;\n  local_70 = exception;\n  local_68 = pCVar6;\n  local_60 = memory;\n  local_50 = MVar4;\n  GOMP_parallel(ClutImage__omp_fn_0,&local_78,MVar9,0);\n  MVar4 = local_50;\n  DestroyCacheView(pCVar6);\n  RelinquishMagickMemory(memory);\n  if ((clut_image->alpha_trait != UndefinedPixelTrait) &&\n     ((image->channel_map[4].traits & UpdatePixelTrait) != UndefinedPixelTrait)) {\n    SetImageAlphaChannel(image,ActivateAlphaChannel,exception);\n  }\nLAB_001f2803:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return MVar4;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}\n\n" comment comment comment comment comment comment (function_definition "MagickBooleanType\nClutImage(Image *image,Image *clut_image,PixelInterpolateMethod method,ExceptionInfo *exception)\n\n{\n  PixelInterpolateMethod PVar1;\n  size_t sVar2;\n  bool bVar3;\n  MagickBooleanType MVar4;\n  CacheType CVar5;\n  PixelInfo *memory;\n  CacheView *pCVar6;\n  MagickSizeType MVar7;\n  size_t sVar8;\n  MagickSizeType MVar9;\n  ulong uVar10;\n  PixelInfo *pixel;\n  long lVar11;\n  long in_FS_OFFSET;\n  MagickOffsetType progress;\n  Image *local_78;\n  ExceptionInfo *local_70;\n  CacheView *local_68;\n  PixelInfo *local_60;\n  MagickOffsetType *local_58;\n  MagickBooleanType local_50;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (image == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/enhance.c",0x359,"ClutImage");\n  }\n  if (image->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35a,"ClutImage"\n                 );\n  }\n  if (image->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"MagickCore/enhance.c","ClutImage",0x35c,"%s",image->filename);\n  }\n  if (clut_image == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("clut_image != (Image *) NULL","MagickCore/enhance.c",0x35d,"ClutImage");\n  }\n  if (clut_image->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("clut_image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35e,\n                  "ClutImage");\n  }\n  MVar4 = SetImageStorageClass(image,DirectClass,exception);\n  if (MVar4 == MagickFalse) goto LAB_001f2803;\n  if ((((image->colorspace == GRAYColorspace) || (image->colorspace == LinearGRAYColorspace)) &&\n      (clut_image->colorspace != LinearGRAYColorspace)) &&\n     (clut_image->colorspace != GRAYColorspace)) {\n    SetImageColorspace(image,sRGBColorspace,exception);\n  }\n  memory = (PixelInfo *)AcquireQuantumMemory(0x10000,0x58);\n  if (memory == (PixelInfo *)0x0) {\n    ThrowMagickException\n              (exception,"MagickCore/enhance.c","ClutImage",0x367,ErrorException,\n               "MemoryAllocationFailed","`%s\'",image->filename);\n    MVar4 = MagickFalse;\n    goto LAB_001f2803;\n  }\n  progress = 0;\n  PVar1 = clut_image->interpolate;\n  pCVar6 = AcquireVirtualCacheView(clut_image,exception);\n  lVar11 = 0;\n  uVar10 = (ulong)(PVar1 != IntegerInterpolatePixel);\n  pixel = memory;\n  do {\n    GetPixelInfo(clut_image,pixel);\n    MVar4 = InterpolatePixelInfo\n                      (clut_image,pCVar6,method,\n                       ((double)(clut_image->columns - uVar10) * (double)lVar11) / DAT_003f95f8,\n                       ((double)(clut_image->rows - uVar10) * (double)lVar11) / DAT_003f95f8,pixel,\n                       exception);\n    if (MVar4 == MagickFalse) break;\n    lVar11 = lVar11 + 1;\n    pixel = pixel + 1;\n  } while (lVar11 != 0x10000);\n  DestroyCacheView(pCVar6);\n  pCVar6 = AcquireAuthenticCacheView(image,exception);\n  CVar5 = GetImagePixelCacheType(image);\n  if (((CVar5 == MemoryCache) || (CVar5 = GetImagePixelCacheType(image), CVar5 == MapCache)) &&\n     ((CVar5 = GetImagePixelCacheType(image), CVar5 == MemoryCache ||\n      (CVar5 = GetImagePixelCacheType(image), CVar5 == MapCache)))) {\n    MVar7 = GetMagickResourceLimit(ThreadResource);\n    sVar2 = image->rows;\n    sVar8 = sVar2 + 0x3f;\n    if (-1 < (long)sVar2) {\n      sVar8 = sVar2;\n    }\n    bVar3 = 0x7f < (long)sVar2;\n    if ((long)MVar7 < (long)sVar8 >> 6) {\n      MVar7 = GetMagickResourceLimit(ThreadResource);\n      bVar3 = 1 < (long)MVar7;\n    }\n    MVar9 = 1;\n    if (bVar3) {\n      MVar7 = GetMagickResourceLimit(ThreadResource);\n      sVar2 = image->rows;\n      sVar8 = sVar2 + 0x3f;\n      if (-1 < (long)sVar2) {\n        sVar8 = sVar2;\n      }\n      MVar9 = (long)sVar8 >> 6;\n      if ((long)MVar7 < (long)MVar9) {\n        MVar9 = GetMagickResourceLimit(ThreadResource);\n      }\n    }\n  }\n  else {\n    MVar7 = GetMagickResourceLimit(ThreadResource);\n    if (MVar7 < 2) {\n      MVar7 = GetMagickResourceLimit(ThreadResource);\n      MVar9 = 1;\n      if (MVar7 < 2) goto LAB_001f2957;\n    }\n    MVar7 = GetMagickResourceLimit(ThreadResource);\n    MVar9 = 2;\n    if (MVar7 < 2) {\n      MVar9 = GetMagickResourceLimit(ThreadResource);\n    }\n  }\nLAB_001f2957:\n  local_58 = &progress;\n  local_78 = image;\n  local_70 = exception;\n  local_68 = pCVar6;\n  local_60 = memory;\n  local_50 = MVar4;\n  GOMP_parallel(ClutImage__omp_fn_0,&local_78,MVar9,0);\n  MVar4 = local_50;\n  DestroyCacheView(pCVar6);\n  RelinquishMagickMemory(memory);\n  if ((clut_image->alpha_trait != UndefinedPixelTrait) &&\n     ((image->channel_map[4].traits & UpdatePixelTrait) != UndefinedPixelTrait)) {\n    SetImageAlphaChannel(image,ActivateAlphaChannel,exception);\n  }\nLAB_001f2803:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return MVar4;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" type_identifier (function_declarator "ClutImage(Image *image,Image *clut_image,PixelInterpolateMethod method,ExceptionInfo *exception)" identifier (parameter_list "(Image *image,Image *clut_image,PixelInterpolateMethod method,ExceptionInfo *exception)" ( (parameter_declaration "Image *image" type_identifier (pointer_declarator "*image" * identifier)) , (parameter_declaration "Image *clut_image" type_identifier (pointer_declarator "*clut_image" * identifier)) , (parameter_declaration "PixelInterpolateMethod method" type_identifier identifier) , (parameter_declaration "ExceptionInfo *exception" type_identifier (pointer_declarator "*exception" * identifier)) ))) (compound_statement "{\n  PixelInterpolateMethod PVar1;\n  size_t sVar2;\n  bool bVar3;\n  MagickBooleanType MVar4;\n  CacheType CVar5;\n  PixelInfo *memory;\n  CacheView *pCVar6;\n  MagickSizeType MVar7;\n  size_t sVar8;\n  MagickSizeType MVar9;\n  ulong uVar10;\n  PixelInfo *pixel;\n  long lVar11;\n  long in_FS_OFFSET;\n  MagickOffsetType progress;\n  Image *local_78;\n  ExceptionInfo *local_70;\n  CacheView *local_68;\n  PixelInfo *local_60;\n  MagickOffsetType *local_58;\n  MagickBooleanType local_50;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (image == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/enhance.c",0x359,"ClutImage");\n  }\n  if (image->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35a,"ClutImage"\n                 );\n  }\n  if (image->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"MagickCore/enhance.c","ClutImage",0x35c,"%s",image->filename);\n  }\n  if (clut_image == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("clut_image != (Image *) NULL","MagickCore/enhance.c",0x35d,"ClutImage");\n  }\n  if (clut_image->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("clut_image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35e,\n                  "ClutImage");\n  }\n  MVar4 = SetImageStorageClass(image,DirectClass,exception);\n  if (MVar4 == MagickFalse) goto LAB_001f2803;\n  if ((((image->colorspace == GRAYColorspace) || (image->colorspace == LinearGRAYColorspace)) &&\n      (clut_image->colorspace != LinearGRAYColorspace)) &&\n     (clut_image->colorspace != GRAYColorspace)) {\n    SetImageColorspace(image,sRGBColorspace,exception);\n  }\n  memory = (PixelInfo *)AcquireQuantumMemory(0x10000,0x58);\n  if (memory == (PixelInfo *)0x0) {\n    ThrowMagickException\n              (exception,"MagickCore/enhance.c","ClutImage",0x367,ErrorException,\n               "MemoryAllocationFailed","`%s\'",image->filename);\n    MVar4 = MagickFalse;\n    goto LAB_001f2803;\n  }\n  progress = 0;\n  PVar1 = clut_image->interpolate;\n  pCVar6 = AcquireVirtualCacheView(clut_image,exception);\n  lVar11 = 0;\n  uVar10 = (ulong)(PVar1 != IntegerInterpolatePixel);\n  pixel = memory;\n  do {\n    GetPixelInfo(clut_image,pixel);\n    MVar4 = InterpolatePixelInfo\n                      (clut_image,pCVar6,method,\n                       ((double)(clut_image->columns - uVar10) * (double)lVar11) / DAT_003f95f8,\n                       ((double)(clut_image->rows - uVar10) * (double)lVar11) / DAT_003f95f8,pixel,\n                       exception);\n    if (MVar4 == MagickFalse) break;\n    lVar11 = lVar11 + 1;\n    pixel = pixel + 1;\n  } while (lVar11 != 0x10000);\n  DestroyCacheView(pCVar6);\n  pCVar6 = AcquireAuthenticCacheView(image,exception);\n  CVar5 = GetImagePixelCacheType(image);\n  if (((CVar5 == MemoryCache) || (CVar5 = GetImagePixelCacheType(image), CVar5 == MapCache)) &&\n     ((CVar5 = GetImagePixelCacheType(image), CVar5 == MemoryCache ||\n      (CVar5 = GetImagePixelCacheType(image), CVar5 == MapCache)))) {\n    MVar7 = GetMagickResourceLimit(ThreadResource);\n    sVar2 = image->rows;\n    sVar8 = sVar2 + 0x3f;\n    if (-1 < (long)sVar2) {\n      sVar8 = sVar2;\n    }\n    bVar3 = 0x7f < (long)sVar2;\n    if ((long)MVar7 < (long)sVar8 >> 6) {\n      MVar7 = GetMagickResourceLimit(ThreadResource);\n      bVar3 = 1 < (long)MVar7;\n    }\n    MVar9 = 1;\n    if (bVar3) {\n      MVar7 = GetMagickResourceLimit(ThreadResource);\n      sVar2 = image->rows;\n      sVar8 = sVar2 + 0x3f;\n      if (-1 < (long)sVar2) {\n        sVar8 = sVar2;\n      }\n      MVar9 = (long)sVar8 >> 6;\n      if ((long)MVar7 < (long)MVar9) {\n        MVar9 = GetMagickResourceLimit(ThreadResource);\n      }\n    }\n  }\n  else {\n    MVar7 = GetMagickResourceLimit(ThreadResource);\n    if (MVar7 < 2) {\n      MVar7 = GetMagickResourceLimit(ThreadResource);\n      MVar9 = 1;\n      if (MVar7 < 2) goto LAB_001f2957;\n    }\n    MVar7 = GetMagickResourceLimit(ThreadResource);\n    MVar9 = 2;\n    if (MVar7 < 2) {\n      MVar9 = GetMagickResourceLimit(ThreadResource);\n    }\n  }\nLAB_001f2957:\n  local_58 = &progress;\n  local_78 = image;\n  local_70 = exception;\n  local_68 = pCVar6;\n  local_60 = memory;\n  local_50 = MVar4;\n  GOMP_parallel(ClutImage__omp_fn_0,&local_78,MVar9,0);\n  MVar4 = local_50;\n  DestroyCacheView(pCVar6);\n  RelinquishMagickMemory(memory);\n  if ((clut_image->alpha_trait != UndefinedPixelTrait) &&\n     ((image->channel_map[4].traits & UpdatePixelTrait) != UndefinedPixelTrait)) {\n    SetImageAlphaChannel(image,ActivateAlphaChannel,exception);\n  }\nLAB_001f2803:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return MVar4;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" { (declaration "PixelInterpolateMethod PVar1;" type_identifier identifier ;) (declaration "size_t sVar2;" primitive_type identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "MagickBooleanType MVar4;" type_identifier identifier ;) (declaration "CacheType CVar5;" type_identifier identifier ;) (declaration "PixelInfo *memory;" type_identifier (pointer_declarator "*memory" * identifier) ;) (declaration "CacheView *pCVar6;" type_identifier (pointer_declarator "*pCVar6" * identifier) ;) (declaration "MagickSizeType MVar7;" type_identifier identifier ;) (declaration "size_t sVar8;" primitive_type identifier ;) (declaration "MagickSizeType MVar9;" type_identifier identifier ;) (declaration "ulong uVar10;" type_identifier identifier ;) (declaration "PixelInfo *pixel;" type_identifier (pointer_declarator "*pixel" * identifier) ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "MagickOffsetType progress;" type_identifier identifier ;) (declaration "Image *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "ExceptionInfo *local_70;" type_identifier (pointer_declarator "*local_70" * identifier) ;) (declaration "CacheView *local_68;" type_identifier (pointer_declarator "*local_68" * identifier) ;) (declaration "PixelInfo *local_60;" type_identifier (pointer_declarator "*local_60" * identifier) ;) (declaration "MagickOffsetType *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "MagickBooleanType local_50;" type_identifier identifier ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (image == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/enhance.c",0x359,"ClutImage");\n  }" if (parenthesized_expression "(image == (Image *)0x0)" ( (binary_expression "image == (Image *)0x0" identifier == (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/enhance.c",0x359,"ClutImage");\n  }" { comment (expression_statement "__assert_fail("image != (Image *) NULL","MagickCore/enhance.c",0x359,"ClutImage");" (call_expression "__assert_fail("image != (Image *) NULL","MagickCore/enhance.c",0x359,"ClutImage")" identifier (argument_list "("image != (Image *) NULL","MagickCore/enhance.c",0x359,"ClutImage")" ( (string_literal ""image != (Image *) NULL"" " string_content ") , (string_literal ""MagickCore/enhance.c"" " string_content ") , number_literal , (string_literal ""ClutImage"" " string_content ") ))) ;) })) (if_statement "if (image->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35a,"ClutImage"\n                 );\n  }" if (parenthesized_expression "(image->signature != 0xabacadab)" ( (binary_expression "image->signature != 0xabacadab" (field_expression "image->signature" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35a,"ClutImage"\n                 );\n  }" { comment (expression_statement "__assert_fail("image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35a,"ClutImage"\n                 );" (call_expression "__assert_fail("image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35a,"ClutImage"\n                 )" identifier (argument_list "("image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35a,"ClutImage"\n                 )" ( (string_literal ""image->signature == MagickCoreSignature"" " string_content ") , (string_literal ""MagickCore/enhance.c"" " string_content ") , number_literal , (string_literal ""ClutImage"" " string_content ") ))) ;) })) (if_statement "if (image->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"MagickCore/enhance.c","ClutImage",0x35c,"%s",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    LogMagickEvent(TraceEvent,"MagickCore/enhance.c","ClutImage",0x35c,"%s",image->filename);\n  }" { (expression_statement "LogMagickEvent(TraceEvent,"MagickCore/enhance.c","ClutImage",0x35c,"%s",image->filename);" (call_expression "LogMagickEvent(TraceEvent,"MagickCore/enhance.c","ClutImage",0x35c,"%s",image->filename)" identifier (argument_list "(TraceEvent,"MagickCore/enhance.c","ClutImage",0x35c,"%s",image->filename)" ( identifier , (string_literal ""MagickCore/enhance.c"" " string_content ") , (string_literal ""ClutImage"" " string_content ") , number_literal , (string_literal ""%s"" " string_content ") , (field_expression "image->filename" identifier -> field_identifier) ))) ;) })) (if_statement "if (clut_image == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("clut_image != (Image *) NULL","MagickCore/enhance.c",0x35d,"ClutImage");\n  }" if (parenthesized_expression "(clut_image == (Image *)0x0)" ( (binary_expression "clut_image == (Image *)0x0" identifier == (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("clut_image != (Image *) NULL","MagickCore/enhance.c",0x35d,"ClutImage");\n  }" { comment (expression_statement "__assert_fail("clut_image != (Image *) NULL","MagickCore/enhance.c",0x35d,"ClutImage");" (call_expression "__assert_fail("clut_image != (Image *) NULL","MagickCore/enhance.c",0x35d,"ClutImage")" identifier (argument_list "("clut_image != (Image *) NULL","MagickCore/enhance.c",0x35d,"ClutImage")" ( (string_literal ""clut_image != (Image *) NULL"" " string_content ") , (string_literal ""MagickCore/enhance.c"" " string_content ") , number_literal , (string_literal ""ClutImage"" " string_content ") ))) ;) })) (if_statement "if (clut_image->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("clut_image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35e,\n                  "ClutImage");\n  }" if (parenthesized_expression "(clut_image->signature != 0xabacadab)" ( (binary_expression "clut_image->signature != 0xabacadab" (field_expression "clut_image->signature" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("clut_image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35e,\n                  "ClutImage");\n  }" { comment (expression_statement "__assert_fail("clut_image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35e,\n                  "ClutImage");" (call_expression "__assert_fail("clut_image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35e,\n                  "ClutImage")" identifier (argument_list "("clut_image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35e,\n                  "ClutImage")" ( (string_literal ""clut_image->signature == MagickCoreSignature"" " string_content ") , (string_literal ""MagickCore/enhance.c"" " string_content ") , number_literal , (string_literal ""ClutImage"" " string_content ") ))) ;) })) (expression_statement "MVar4 = SetImageStorageClass(image,DirectClass,exception);" (assignment_expression "MVar4 = SetImageStorageClass(image,DirectClass,exception)" identifier = (call_expression "SetImageStorageClass(image,DirectClass,exception)" identifier (argument_list "(image,DirectClass,exception)" ( identifier , identifier , identifier )))) ;) (if_statement "if (MVar4 == MagickFalse) goto LAB_001f2803;" if (parenthesized_expression "(MVar4 == MagickFalse)" ( (binary_expression "MVar4 == MagickFalse" identifier == identifier) )) (goto_statement "goto LAB_001f2803;" goto statement_identifier ;)) (if_statement "if ((((image->colorspace == GRAYColorspace) || (image->colorspace == LinearGRAYColorspace)) &&\n      (clut_image->colorspace != LinearGRAYColorspace)) &&\n     (clut_image->colorspace != GRAYColorspace)) {\n    SetImageColorspace(image,sRGBColorspace,exception);\n  }" if (parenthesized_expression "((((image->colorspace == GRAYColorspace) || (image->colorspace == LinearGRAYColorspace)) &&\n      (clut_image->colorspace != LinearGRAYColorspace)) &&\n     (clut_image->colorspace != GRAYColorspace))" ( (binary_expression "(((image->colorspace == GRAYColorspace) || (image->colorspace == LinearGRAYColorspace)) &&\n      (clut_image->colorspace != LinearGRAYColorspace)) &&\n     (clut_image->colorspace != GRAYColorspace)" (parenthesized_expression "(((image->colorspace == GRAYColorspace) || (image->colorspace == LinearGRAYColorspace)) &&\n      (clut_image->colorspace != LinearGRAYColorspace))" ( (binary_expression "((image->colorspace == GRAYColorspace) || (image->colorspace == LinearGRAYColorspace)) &&\n      (clut_image->colorspace != LinearGRAYColorspace)" (parenthesized_expression "((image->colorspace == GRAYColorspace) || (image->colorspace == LinearGRAYColorspace))" ( (binary_expression "(image->colorspace == GRAYColorspace) || (image->colorspace == LinearGRAYColorspace)" (parenthesized_expression "(image->colorspace == GRAYColorspace)" ( (binary_expression "image->colorspace == GRAYColorspace" (field_expression "image->colorspace" identifier -> field_identifier) == identifier) )) || (parenthesized_expression "(image->colorspace == LinearGRAYColorspace)" ( (binary_expression "image->colorspace == LinearGRAYColorspace" (field_expression "image->colorspace" identifier -> field_identifier) == identifier) ))) )) && (parenthesized_expression "(clut_image->colorspace != LinearGRAYColorspace)" ( (binary_expression "clut_image->colorspace != LinearGRAYColorspace" (field_expression "clut_image->colorspace" identifier -> field_identifier) != identifier) ))) )) && (parenthesized_expression "(clut_image->colorspace != GRAYColorspace)" ( (binary_expression "clut_image->colorspace != GRAYColorspace" (field_expression "clut_image->colorspace" identifier -> field_identifier) != identifier) ))) )) (compound_statement "{\n    SetImageColorspace(image,sRGBColorspace,exception);\n  }" { (expression_statement "SetImageColorspace(image,sRGBColorspace,exception);" (call_expression "SetImageColorspace(image,sRGBColorspace,exception)" identifier (argument_list "(image,sRGBColorspace,exception)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "memory = (PixelInfo *)AcquireQuantumMemory(0x10000,0x58);" (assignment_expression "memory = (PixelInfo *)AcquireQuantumMemory(0x10000,0x58)" identifier = (cast_expression "(PixelInfo *)AcquireQuantumMemory(0x10000,0x58)" ( (type_descriptor "PixelInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireQuantumMemory(0x10000,0x58)" identifier (argument_list "(0x10000,0x58)" ( number_literal , number_literal ))))) ;) (if_statement "if (memory == (PixelInfo *)0x0) {\n    ThrowMagickException\n              (exception,"MagickCore/enhance.c","ClutImage",0x367,ErrorException,\n               "MemoryAllocationFailed","`%s\'",image->filename);\n    MVar4 = MagickFalse;\n    goto LAB_001f2803;\n  }" if (parenthesized_expression "(memory == (PixelInfo *)0x0)" ( (binary_expression "memory == (PixelInfo *)0x0" identifier == (cast_expression "(PixelInfo *)0x0" ( (type_descriptor "PixelInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    ThrowMagickException\n              (exception,"MagickCore/enhance.c","ClutImage",0x367,ErrorException,\n               "MemoryAllocationFailed","`%s\'",image->filename);\n    MVar4 = MagickFalse;\n    goto LAB_001f2803;\n  }" { (expression_statement "ThrowMagickException\n              (exception,"MagickCore/enhance.c","ClutImage",0x367,ErrorException,\n               "MemoryAllocationFailed","`%s\'",image->filename);" (call_expression "ThrowMagickException\n              (exception,"MagickCore/enhance.c","ClutImage",0x367,ErrorException,\n               "MemoryAllocationFailed","`%s\'",image->filename)" identifier (argument_list "(exception,"MagickCore/enhance.c","ClutImage",0x367,ErrorException,\n               "MemoryAllocationFailed","`%s\'",image->filename)" ( identifier , (string_literal ""MagickCore/enhance.c"" " string_content ") , (string_literal ""ClutImage"" " string_content ") , number_literal , identifier , (string_literal ""MemoryAllocationFailed"" " string_content ") , (string_literal ""`%s\'"" " string_content escape_sequence ") , (field_expression "image->filename" identifier -> field_identifier) ))) ;) (expression_statement "MVar4 = MagickFalse;" (assignment_expression "MVar4 = MagickFalse" identifier = identifier) ;) (goto_statement "goto LAB_001f2803;" goto statement_identifier ;) })) (expression_statement "progress = 0;" (assignment_expression "progress = 0" identifier = number_literal) ;) (expression_statement "PVar1 = clut_image->interpolate;" (assignment_expression "PVar1 = clut_image->interpolate" identifier = (field_expression "clut_image->interpolate" identifier -> field_identifier)) ;) (expression_statement "pCVar6 = AcquireVirtualCacheView(clut_image,exception);" (assignment_expression "pCVar6 = AcquireVirtualCacheView(clut_image,exception)" identifier = (call_expression "AcquireVirtualCacheView(clut_image,exception)" identifier (argument_list "(clut_image,exception)" ( identifier , identifier )))) ;) (expression_statement "lVar11 = 0;" (assignment_expression "lVar11 = 0" identifier = number_literal) ;) (expression_statement "uVar10 = (ulong)(PVar1 != IntegerInterpolatePixel);" (assignment_expression "uVar10 = (ulong)(PVar1 != IntegerInterpolatePixel)" identifier = (call_expression "(ulong)(PVar1 != IntegerInterpolatePixel)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(PVar1 != IntegerInterpolatePixel)" ( (binary_expression "PVar1 != IntegerInterpolatePixel" identifier != identifier) )))) ;) (expression_statement "pixel = memory;" (assignment_expression "pixel = memory" identifier = identifier) ;) (do_statement "do {\n    GetPixelInfo(clut_image,pixel);\n    MVar4 = InterpolatePixelInfo\n                      (clut_image,pCVar6,method,\n                       ((double)(clut_image->columns - uVar10) * (double)lVar11) / DAT_003f95f8,\n                       ((double)(clut_image->rows - uVar10) * (double)lVar11) / DAT_003f95f8,pixel,\n                       exception);\n    if (MVar4 == MagickFalse) break;\n    lVar11 = lVar11 + 1;\n    pixel = pixel + 1;\n  } while (lVar11 != 0x10000);" do (compound_statement "{\n    GetPixelInfo(clut_image,pixel);\n    MVar4 = InterpolatePixelInfo\n                      (clut_image,pCVar6,method,\n                       ((double)(clut_image->columns - uVar10) * (double)lVar11) / DAT_003f95f8,\n                       ((double)(clut_image->rows - uVar10) * (double)lVar11) / DAT_003f95f8,pixel,\n                       exception);\n    if (MVar4 == MagickFalse) break;\n    lVar11 = lVar11 + 1;\n    pixel = pixel + 1;\n  }" { (expression_statement "GetPixelInfo(clut_image,pixel);" (call_expression "GetPixelInfo(clut_image,pixel)" identifier (argument_list "(clut_image,pixel)" ( identifier , identifier ))) ;) (expression_statement "MVar4 = InterpolatePixelInfo\n                      (clut_image,pCVar6,method,\n                       ((double)(clut_image->columns - uVar10) * (double)lVar11) / DAT_003f95f8,\n                       ((double)(clut_image->rows - uVar10) * (double)lVar11) / DAT_003f95f8,pixel,\n                       exception);" (assignment_expression "MVar4 = InterpolatePixelInfo\n                      (clut_image,pCVar6,method,\n                       ((double)(clut_image->columns - uVar10) * (double)lVar11) / DAT_003f95f8,\n                       ((double)(clut_image->rows - uVar10) * (double)lVar11) / DAT_003f95f8,pixel,\n                       exception)" identifier = (call_expression "InterpolatePixelInfo\n                      (clut_image,pCVar6,method,\n                       ((double)(clut_image->columns - uVar10) * (double)lVar11) / DAT_003f95f8,\n                       ((double)(clut_image->rows - uVar10) * (double)lVar11) / DAT_003f95f8,pixel,\n                       exception)" identifier (argument_list "(clut_image,pCVar6,method,\n                       ((double)(clut_image->columns - uVar10) * (double)lVar11) / DAT_003f95f8,\n                       ((double)(clut_image->rows - uVar10) * (double)lVar11) / DAT_003f95f8,pixel,\n                       exception)" ( identifier , identifier , identifier , (binary_expression "((double)(clut_image->columns - uVar10) * (double)lVar11) / DAT_003f95f8" (parenthesized_expression "((double)(clut_image->columns - uVar10) * (double)lVar11)" ( (binary_expression "(double)(clut_image->columns - uVar10) * (double)lVar11" (cast_expression "(double)(clut_image->columns - uVar10)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(clut_image->columns - uVar10)" ( (binary_expression "clut_image->columns - uVar10" (field_expression "clut_image->columns" identifier -> field_identifier) - identifier) ))) * (cast_expression "(double)lVar11" ( (type_descriptor "double" primitive_type) ) identifier)) )) / identifier) , (binary_expression "((double)(clut_image->rows - uVar10) * (double)lVar11) / DAT_003f95f8" (parenthesized_expression "((double)(clut_image->rows - uVar10) * (double)lVar11)" ( (binary_expression "(double)(clut_image->rows - uVar10) * (double)lVar11" (cast_expression "(double)(clut_image->rows - uVar10)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(clut_image->rows - uVar10)" ( (binary_expression "clut_image->rows - uVar10" (field_expression "clut_image->rows" identifier -> field_identifier) - identifier) ))) * (cast_expression "(double)lVar11" ( (type_descriptor "double" primitive_type) ) identifier)) )) / identifier) , identifier , identifier )))) ;) (if_statement "if (MVar4 == MagickFalse) break;" if (parenthesized_expression "(MVar4 == MagickFalse)" ( (binary_expression "MVar4 == MagickFalse" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "lVar11 = lVar11 + 1;" (assignment_expression "lVar11 = lVar11 + 1" identifier = (binary_expression "lVar11 + 1" identifier + number_literal)) ;) (expression_statement "pixel = pixel + 1;" (assignment_expression "pixel = pixel + 1" identifier = (binary_expression "pixel + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar11 != 0x10000)" ( (binary_expression "lVar11 != 0x10000" identifier != number_literal) )) ;) (expression_statement "DestroyCacheView(pCVar6);" (call_expression "DestroyCacheView(pCVar6)" identifier (argument_list "(pCVar6)" ( identifier ))) ;) (expression_statement "pCVar6 = AcquireAuthenticCacheView(image,exception);" (assignment_expression "pCVar6 = AcquireAuthenticCacheView(image,exception)" identifier = (call_expression "AcquireAuthenticCacheView(image,exception)" identifier (argument_list "(image,exception)" ( identifier , identifier )))) ;) (expression_statement "CVar5 = GetImagePixelCacheType(image);" (assignment_expression "CVar5 = GetImagePixelCacheType(image)" identifier = (call_expression "GetImagePixelCacheType(image)" identifier (argument_list "(image)" ( identifier )))) ;) (if_statement "if (((CVar5 == MemoryCache) || (CVar5 = GetImagePixelCacheType(image), CVar5 == MapCache)) &&\n     ((CVar5 = GetImagePixelCacheType(image), CVar5 == MemoryCache ||\n      (CVar5 = GetImagePixelCacheType(image), CVar5 == MapCache)))) {\n    MVar7 = GetMagickResourceLimit(ThreadResource);\n    sVar2 = image->rows;\n    sVar8 = sVar2 + 0x3f;\n    if (-1 < (long)sVar2) {\n      sVar8 = sVar2;\n    }\n    bVar3 = 0x7f < (long)sVar2;\n    if ((long)MVar7 < (long)sVar8 >> 6) {\n      MVar7 = GetMagickResourceLimit(ThreadResource);\n      bVar3 = 1 < (long)MVar7;\n    }\n    MVar9 = 1;\n    if (bVar3) {\n      MVar7 = GetMagickResourceLimit(ThreadResource);\n      sVar2 = image->rows;\n      sVar8 = sVar2 + 0x3f;\n      if (-1 < (long)sVar2) {\n        sVar8 = sVar2;\n      }\n      MVar9 = (long)sVar8 >> 6;\n      if ((long)MVar7 < (long)MVar9) {\n        MVar9 = GetMagickResourceLimit(ThreadResource);\n      }\n    }\n  }\n  else {\n    MVar7 = GetMagickResourceLimit(ThreadResource);\n    if (MVar7 < 2) {\n      MVar7 = GetMagickResourceLimit(ThreadResource);\n      MVar9 = 1;\n      if (MVar7 < 2) goto LAB_001f2957;\n    }\n    MVar7 = GetMagickResourceLimit(ThreadResource);\n    MVar9 = 2;\n    if (MVar7 < 2) {\n      MVar9 = GetMagickResourceLimit(ThreadResource);\n    }\n  }" if (parenthesized_expression "(((CVar5 == MemoryCache) || (CVar5 = GetImagePixelCacheType(image), CVar5 == MapCache)) &&\n     ((CVar5 = GetImagePixelCacheType(image), CVar5 == MemoryCache ||\n      (CVar5 = GetImagePixelCacheType(image), CVar5 == MapCache))))" ( (binary_expression "((CVar5 == MemoryCache) || (CVar5 = GetImagePixelCacheType(image), CVar5 == MapCache)) &&\n     ((CVar5 = GetImagePixelCacheType(image), CVar5 == MemoryCache ||\n      (CVar5 = GetImagePixelCacheType(image), CVar5 == MapCache)))" (parenthesized_expression "((CVar5 == MemoryCache) || (CVar5 = GetImagePixelCacheType(image), CVar5 == MapCache))" ( (binary_expression "(CVar5 == MemoryCache) || (CVar5 = GetImagePixelCacheType(image), CVar5 == MapCache)" (parenthesized_expression "(CVar5 == MemoryCache)" ( (binary_expression "CVar5 == MemoryCache" identifier == identifier) )) || (parenthesized_expression "(CVar5 = GetImagePixelCacheType(image), CVar5 == MapCache)" ( (comma_expression "CVar5 = GetImagePixelCacheType(image), CVar5 == MapCache" (assignment_expression "CVar5 = GetImagePixelCacheType(image)" identifier = (call_expression "GetImagePixelCacheType(image)" identifier (argument_list "(image)" ( identifier )))) , (binary_expression "CVar5 == MapCache" identifier == identifier)) ))) )) && (parenthesized_expression "((CVar5 = GetImagePixelCacheType(image), CVar5 == MemoryCache ||\n      (CVar5 = GetImagePixelCacheType(image), CVar5 == MapCache)))" ( (parenthesized_expression "(CVar5 = GetImagePixelCacheType(image), CVar5 == MemoryCache ||\n      (CVar5 = GetImagePixelCacheType(image), CVar5 == MapCache))" ( (comma_expression "CVar5 = GetImagePixelCacheType(image), CVar5 == MemoryCache ||\n      (CVar5 = GetImagePixelCacheType(image), CVar5 == MapCache)" (assignment_expression "CVar5 = GetImagePixelCacheType(image)" identifier = (call_expression "GetImagePixelCacheType(image)" identifier (argument_list "(image)" ( identifier )))) , (binary_expression "CVar5 == MemoryCache ||\n      (CVar5 = GetImagePixelCacheType(image), CVar5 == MapCache)" (binary_expression "CVar5 == MemoryCache" identifier == identifier) || (parenthesized_expression "(CVar5 = GetImagePixelCacheType(image), CVar5 == MapCache)" ( (comma_expression "CVar5 = GetImagePixelCacheType(image), CVar5 == MapCache" (assignment_expression "CVar5 = GetImagePixelCacheType(image)" identifier = (call_expression "GetImagePixelCacheType(image)" identifier (argument_list "(image)" ( identifier )))) , (binary_expression "CVar5 == MapCache" identifier == identifier)) )))) )) ))) )) (compound_statement "{\n    MVar7 = GetMagickResourceLimit(ThreadResource);\n    sVar2 = image->rows;\n    sVar8 = sVar2 + 0x3f;\n    if (-1 < (long)sVar2) {\n      sVar8 = sVar2;\n    }\n    bVar3 = 0x7f < (long)sVar2;\n    if ((long)MVar7 < (long)sVar8 >> 6) {\n      MVar7 = GetMagickResourceLimit(ThreadResource);\n      bVar3 = 1 < (long)MVar7;\n    }\n    MVar9 = 1;\n    if (bVar3) {\n      MVar7 = GetMagickResourceLimit(ThreadResource);\n      sVar2 = image->rows;\n      sVar8 = sVar2 + 0x3f;\n      if (-1 < (long)sVar2) {\n        sVar8 = sVar2;\n      }\n      MVar9 = (long)sVar8 >> 6;\n      if ((long)MVar7 < (long)MVar9) {\n        MVar9 = GetMagickResourceLimit(ThreadResource);\n      }\n    }\n  }" { (expression_statement "MVar7 = GetMagickResourceLimit(ThreadResource);" (assignment_expression "MVar7 = GetMagickResourceLimit(ThreadResource)" identifier = (call_expression "GetMagickResourceLimit(ThreadResource)" identifier (argument_list "(ThreadResource)" ( identifier )))) ;) (expression_statement "sVar2 = image->rows;" (assignment_expression "sVar2 = image->rows" identifier = (field_expression "image->rows" identifier -> field_identifier)) ;) (expression_statement "sVar8 = sVar2 + 0x3f;" (assignment_expression "sVar8 = sVar2 + 0x3f" identifier = (binary_expression "sVar2 + 0x3f" identifier + number_literal)) ;) (if_statement "if (-1 < (long)sVar2) {\n      sVar8 = sVar2;\n    }" if (parenthesized_expression "(-1 < (long)sVar2)" ( (binary_expression "-1 < (long)sVar2" number_literal < (cast_expression "(long)sVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\n      sVar8 = sVar2;\n    }" { (expression_statement "sVar8 = sVar2;" (assignment_expression "sVar8 = sVar2" identifier = identifier) ;) })) (expression_statement "bVar3 = 0x7f < (long)sVar2;" (assignment_expression "bVar3 = 0x7f < (long)sVar2" identifier = (binary_expression "0x7f < (long)sVar2" number_literal < (cast_expression "(long)sVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (if_statement "if ((long)MVar7 < (long)sVar8 >> 6) {\n      MVar7 = GetMagickResourceLimit(ThreadResource);\n      bVar3 = 1 < (long)MVar7;\n    }" if (parenthesized_expression "((long)MVar7 < (long)sVar8 >> 6)" ( (binary_expression "(long)MVar7 < (long)sVar8 >> 6" (cast_expression "(long)MVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < (binary_expression "(long)sVar8 >> 6" (cast_expression "(long)sVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) >> number_literal)) )) (compound_statement "{\n      MVar7 = GetMagickResourceLimit(ThreadResource);\n      bVar3 = 1 < (long)MVar7;\n    }" { (expression_statement "MVar7 = GetMagickResourceLimit(ThreadResource);" (assignment_expression "MVar7 = GetMagickResourceLimit(ThreadResource)" identifier = (call_expression "GetMagickResourceLimit(ThreadResource)" identifier (argument_list "(ThreadResource)" ( identifier )))) ;) (expression_statement "bVar3 = 1 < (long)MVar7;" (assignment_expression "bVar3 = 1 < (long)MVar7" identifier = (binary_expression "1 < (long)MVar7" number_literal < (cast_expression "(long)MVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) })) (expression_statement "MVar9 = 1;" (assignment_expression "MVar9 = 1" identifier = number_literal) ;) (if_statement "if (bVar3) {\n      MVar7 = GetMagickResourceLimit(ThreadResource);\n      sVar2 = image->rows;\n      sVar8 = sVar2 + 0x3f;\n      if (-1 < (long)sVar2) {\n        sVar8 = sVar2;\n      }\n      MVar9 = (long)sVar8 >> 6;\n      if ((long)MVar7 < (long)MVar9) {\n        MVar9 = GetMagickResourceLimit(ThreadResource);\n      }\n    }" if (parenthesized_expression "(bVar3)" ( identifier )) (compound_statement "{\n      MVar7 = GetMagickResourceLimit(ThreadResource);\n      sVar2 = image->rows;\n      sVar8 = sVar2 + 0x3f;\n      if (-1 < (long)sVar2) {\n        sVar8 = sVar2;\n      }\n      MVar9 = (long)sVar8 >> 6;\n      if ((long)MVar7 < (long)MVar9) {\n        MVar9 = GetMagickResourceLimit(ThreadResource);\n      }\n    }" { (expression_statement "MVar7 = GetMagickResourceLimit(ThreadResource);" (assignment_expression "MVar7 = GetMagickResourceLimit(ThreadResource)" identifier = (call_expression "GetMagickResourceLimit(ThreadResource)" identifier (argument_list "(ThreadResource)" ( identifier )))) ;) (expression_statement "sVar2 = image->rows;" (assignment_expression "sVar2 = image->rows" identifier = (field_expression "image->rows" identifier -> field_identifier)) ;) (expression_statement "sVar8 = sVar2 + 0x3f;" (assignment_expression "sVar8 = sVar2 + 0x3f" identifier = (binary_expression "sVar2 + 0x3f" identifier + number_literal)) ;) (if_statement "if (-1 < (long)sVar2) {\n        sVar8 = sVar2;\n      }" if (parenthesized_expression "(-1 < (long)sVar2)" ( (binary_expression "-1 < (long)sVar2" number_literal < (cast_expression "(long)sVar2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\n        sVar8 = sVar2;\n      }" { (expression_statement "sVar8 = sVar2;" (assignment_expression "sVar8 = sVar2" identifier = identifier) ;) })) (expression_statement "MVar9 = (long)sVar8 >> 6;" (assignment_expression "MVar9 = (long)sVar8 >> 6" identifier = (binary_expression "(long)sVar8 >> 6" (cast_expression "(long)sVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) >> number_literal)) ;) (if_statement "if ((long)MVar7 < (long)MVar9) {\n        MVar9 = GetMagickResourceLimit(ThreadResource);\n      }" if (parenthesized_expression "((long)MVar7 < (long)MVar9)" ( (binary_expression "(long)MVar7 < (long)MVar9" (cast_expression "(long)MVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < (cast_expression "(long)MVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\n        MVar9 = GetMagickResourceLimit(ThreadResource);\n      }" { (expression_statement "MVar9 = GetMagickResourceLimit(ThreadResource);" (assignment_expression "MVar9 = GetMagickResourceLimit(ThreadResource)" identifier = (call_expression "GetMagickResourceLimit(ThreadResource)" identifier (argument_list "(ThreadResource)" ( identifier )))) ;) })) })) }) (else_clause "else {\n    MVar7 = GetMagickResourceLimit(ThreadResource);\n    if (MVar7 < 2) {\n      MVar7 = GetMagickResourceLimit(ThreadResource);\n      MVar9 = 1;\n      if (MVar7 < 2) goto LAB_001f2957;\n    }\n    MVar7 = GetMagickResourceLimit(ThreadResource);\n    MVar9 = 2;\n    if (MVar7 < 2) {\n      MVar9 = GetMagickResourceLimit(ThreadResource);\n    }\n  }" else (compound_statement "{\n    MVar7 = GetMagickResourceLimit(ThreadResource);\n    if (MVar7 < 2) {\n      MVar7 = GetMagickResourceLimit(ThreadResource);\n      MVar9 = 1;\n      if (MVar7 < 2) goto LAB_001f2957;\n    }\n    MVar7 = GetMagickResourceLimit(ThreadResource);\n    MVar9 = 2;\n    if (MVar7 < 2) {\n      MVar9 = GetMagickResourceLimit(ThreadResource);\n    }\n  }" { (expression_statement "MVar7 = GetMagickResourceLimit(ThreadResource);" (assignment_expression "MVar7 = GetMagickResourceLimit(ThreadResource)" identifier = (call_expression "GetMagickResourceLimit(ThreadResource)" identifier (argument_list "(ThreadResource)" ( identifier )))) ;) (if_statement "if (MVar7 < 2) {\n      MVar7 = GetMagickResourceLimit(ThreadResource);\n      MVar9 = 1;\n      if (MVar7 < 2) goto LAB_001f2957;\n    }" if (parenthesized_expression "(MVar7 < 2)" ( (binary_expression "MVar7 < 2" identifier < number_literal) )) (compound_statement "{\n      MVar7 = GetMagickResourceLimit(ThreadResource);\n      MVar9 = 1;\n      if (MVar7 < 2) goto LAB_001f2957;\n    }" { (expression_statement "MVar7 = GetMagickResourceLimit(ThreadResource);" (assignment_expression "MVar7 = GetMagickResourceLimit(ThreadResource)" identifier = (call_expression "GetMagickResourceLimit(ThreadResource)" identifier (argument_list "(ThreadResource)" ( identifier )))) ;) (expression_statement "MVar9 = 1;" (assignment_expression "MVar9 = 1" identifier = number_literal) ;) (if_statement "if (MVar7 < 2) goto LAB_001f2957;" if (parenthesized_expression "(MVar7 < 2)" ( (binary_expression "MVar7 < 2" identifier < number_literal) )) (goto_statement "goto LAB_001f2957;" goto statement_identifier ;)) })) (expression_statement "MVar7 = GetMagickResourceLimit(ThreadResource);" (assignment_expression "MVar7 = GetMagickResourceLimit(ThreadResource)" identifier = (call_expression "GetMagickResourceLimit(ThreadResource)" identifier (argument_list "(ThreadResource)" ( identifier )))) ;) (expression_statement "MVar9 = 2;" (assignment_expression "MVar9 = 2" identifier = number_literal) ;) (if_statement "if (MVar7 < 2) {\n      MVar9 = GetMagickResourceLimit(ThreadResource);\n    }" if (parenthesized_expression "(MVar7 < 2)" ( (binary_expression "MVar7 < 2" identifier < number_literal) )) (compound_statement "{\n      MVar9 = GetMagickResourceLimit(ThreadResource);\n    }" { (expression_statement "MVar9 = GetMagickResourceLimit(ThreadResource);" (assignment_expression "MVar9 = GetMagickResourceLimit(ThreadResource)" identifier = (call_expression "GetMagickResourceLimit(ThreadResource)" identifier (argument_list "(ThreadResource)" ( identifier )))) ;) })) }))) (labeled_statement "LAB_001f2957:\n  local_58 = &progress;" statement_identifier : (expression_statement "local_58 = &progress;" (assignment_expression "local_58 = &progress" identifier = (pointer_expression "&progress" & identifier)) ;)) (expression_statement "local_78 = image;" (assignment_expression "local_78 = image" identifier = identifier) ;) (expression_statement "local_70 = exception;" (assignment_expression "local_70 = exception" identifier = identifier) ;) (expression_statement "local_68 = pCVar6;" (assignment_expression "local_68 = pCVar6" identifier = identifier) ;) (expression_statement "local_60 = memory;" (assignment_expression "local_60 = memory" identifier = identifier) ;) (expression_statement "local_50 = MVar4;" (assignment_expression "local_50 = MVar4" identifier = identifier) ;) (expression_statement "GOMP_parallel(ClutImage__omp_fn_0,&local_78,MVar9,0);" (call_expression "GOMP_parallel(ClutImage__omp_fn_0,&local_78,MVar9,0)" identifier (argument_list "(ClutImage__omp_fn_0,&local_78,MVar9,0)" ( identifier , (pointer_expression "&local_78" & identifier) , identifier , number_literal ))) ;) (expression_statement "MVar4 = local_50;" (assignment_expression "MVar4 = local_50" identifier = identifier) ;) (expression_statement "DestroyCacheView(pCVar6);" (call_expression "DestroyCacheView(pCVar6)" identifier (argument_list "(pCVar6)" ( identifier ))) ;) (expression_statement "RelinquishMagickMemory(memory);" (call_expression "RelinquishMagickMemory(memory)" identifier (argument_list "(memory)" ( identifier ))) ;) (if_statement "if ((clut_image->alpha_trait != UndefinedPixelTrait) &&\n     ((image->channel_map[4].traits & UpdatePixelTrait) != UndefinedPixelTrait)) {\n    SetImageAlphaChannel(image,ActivateAlphaChannel,exception);\n  }" if (parenthesized_expression "((clut_image->alpha_trait != UndefinedPixelTrait) &&\n     ((image->channel_map[4].traits & UpdatePixelTrait) != UndefinedPixelTrait))" ( (binary_expression "(clut_image->alpha_trait != UndefinedPixelTrait) &&\n     ((image->channel_map[4].traits & UpdatePixelTrait) != UndefinedPixelTrait)" (parenthesized_expression "(clut_image->alpha_trait != UndefinedPixelTrait)" ( (binary_expression "clut_image->alpha_trait != UndefinedPixelTrait" (field_expression "clut_image->alpha_trait" identifier -> field_identifier) != identifier) )) && (parenthesized_expression "((image->channel_map[4].traits & UpdatePixelTrait) != UndefinedPixelTrait)" ( (binary_expression "(image->channel_map[4].traits & UpdatePixelTrait) != UndefinedPixelTrait" (parenthesized_expression "(image->channel_map[4].traits & UpdatePixelTrait)" ( (binary_expression "image->channel_map[4].traits & UpdatePixelTrait" (field_expression "image->channel_map[4].traits" (subscript_expression "image->channel_map[4]" (field_expression "image->channel_map" identifier -> field_identifier) [ number_literal ]) . field_identifier) & identifier) )) != identifier) ))) )) (compound_statement "{\n    SetImageAlphaChannel(image,ActivateAlphaChannel,exception);\n  }" { (expression_statement "SetImageAlphaChannel(image,ActivateAlphaChannel,exception);" (call_expression "SetImageAlphaChannel(image,ActivateAlphaChannel,exception)" identifier (argument_list "(image,ActivateAlphaChannel,exception)" ( identifier , identifier , identifier ))) ;) })) (labeled_statement "LAB_001f2803:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return MVar4;\n  }" statement_identifier : (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return MVar4;\n  }" if (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return MVar4;\n  }" { (return_statement "return MVar4;" return identifier ;) }))) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "int ClutImage(long param_1,long param_2,undefined4 param_3,undefined8 param_4)\n\n{\n  bool bVar1;\n  int iVar2;\n  int iVar3;\n  long lVar4;\n  undefined8 uVar5;\n  ulong uVar6;\n  long lVar7;\n  long lVar8;\n  long lVar9;\n  long in_FS_OFFSET;\n  undefined8 local_80;\n  long local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  long local_60;\n  undefined8 *local_58;\n  int local_50;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/enhance.c",0x359,"ClutImage");\n  }\n  if (*(long *)(param_1 + 0x3450) != 0xabacadab) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35a,"ClutImage"\n                 );\n  }\n  if (*(int *)(param_1 + 0x3418) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/enhance.c","ClutImage",0x35c,&DAT_0041fe36,param_1 + 0x3f8);\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail("clut_image != (Image *) NULL","MagickCore/enhance.c",0x35d,"ClutImage");\n  }\n  if (*(long *)(param_2 + 0x3450) != 0xabacadab) {\n                    \n    __assert_fail("clut_image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35e,\n                  "ClutImage");\n  }\n  iVar2 = SetImageStorageClass(param_1,1,param_4);\n  if (iVar2 == 0) goto LAB_001f2803;\n  if ((((*(int *)(param_1 + 4) == 3) || (*(int *)(param_1 + 4) == 0x21)) &&\n      (*(int *)(param_2 + 4) != 0x21)) && (*(int *)(param_2 + 4) != 3)) {\n    SetImageColorspace(param_1,0x17,param_4);\n  }\n  lVar4 = AcquireQuantumMemory(0x10000,0x58);\n  if (lVar4 == 0) {\n    ThrowMagickException\n              (param_4,"MagickCore/enhance.c","ClutImage",0x367,400,"MemoryAllocationFailed","`%s\'"\n               ,param_1 + 0x3f8);\n    iVar2 = 0;\n    goto LAB_001f2803;\n  }\n  local_80 = 0;\n  iVar2 = *(int *)(param_2 + 0x2f8);\n  uVar5 = AcquireVirtualCacheView(param_2,param_4);\n  lVar9 = 0;\n  uVar6 = (ulong)(iVar2 != 8);\n  lVar8 = lVar4;\n  do {\n    GetPixelInfo(param_2,lVar8);\n    iVar2 = InterpolatePixelInfo\n                      (((double)(*(long *)(param_2 + 0x20) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       ((double)(*(long *)(param_2 + 0x28) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       param_2,uVar5,param_3,lVar8,param_4);\n    if (iVar2 == 0) break;\n    lVar9 = lVar9 + 1;\n    lVar8 = lVar8 + 0x58;\n  } while (lVar9 != 0x10000);\n  DestroyCacheView(uVar5);\n  uVar5 = AcquireAuthenticCacheView(param_1,param_4);\n  iVar3 = GetImagePixelCacheType(param_1);\n  if (((iVar3 == 4) || (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)) &&\n     ((iVar3 = GetImagePixelCacheType(param_1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)))) {\n    lVar7 = GetMagickResourceLimit(7);\n    lVar8 = *(long *)(param_1 + 0x28);\n    lVar9 = lVar8 + 0x3f;\n    if (-1 < lVar8) {\n      lVar9 = lVar8;\n    }\n    bVar1 = 0x7f < lVar8;\n    if (lVar7 < lVar9 >> 6) {\n      lVar8 = GetMagickResourceLimit(7);\n      bVar1 = 1 < lVar8;\n    }\n    lVar8 = 1;\n    if (bVar1) {\n      lVar7 = GetMagickResourceLimit(7);\n      lVar9 = *(long *)(param_1 + 0x28);\n      lVar8 = lVar9 + 0x3f;\n      if (-1 < lVar9) {\n        lVar8 = lVar9;\n      }\n      lVar8 = lVar8 >> 6;\n      if (lVar7 < lVar8) {\n        lVar8 = GetMagickResourceLimit(7);\n      }\n    }\n  }\n  else {\n    uVar6 = GetMagickResourceLimit(7);\n    if (uVar6 < 2) {\n      uVar6 = GetMagickResourceLimit(7);\n      lVar8 = 1;\n      if (uVar6 < 2) goto LAB_001f2957;\n    }\n    uVar6 = GetMagickResourceLimit(7);\n    lVar8 = 2;\n    if (uVar6 < 2) {\n      lVar8 = GetMagickResourceLimit(7);\n    }\n  }\nLAB_001f2957:\n  local_58 = &local_80;\n  local_78 = param_1;\n  local_70 = param_4;\n  local_68 = uVar5;\n  local_60 = lVar4;\n  local_50 = iVar2;\n  GOMP_parallel(FUN_001ef856,&local_78,lVar8,0);\n  iVar2 = local_50;\n  DestroyCacheView(uVar5);\n  RelinquishMagickMemory(lVar4);\n  if ((*(int *)(param_2 + 0x33c) != 0) && ((*(byte *)(*(long *)(param_1 + 0x360) + 0x44) & 2) != 0))\n  {\n    SetImageAlphaChannel(param_1,1,param_4);\n  }\nLAB_001f2803:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }\n                    \n  __stack_chk_fail();\n}\n\n" (function_definition "int ClutImage(long param_1,long param_2,undefined4 param_3,undefined8 param_4)\n\n{\n  bool bVar1;\n  int iVar2;\n  int iVar3;\n  long lVar4;\n  undefined8 uVar5;\n  ulong uVar6;\n  long lVar7;\n  long lVar8;\n  long lVar9;\n  long in_FS_OFFSET;\n  undefined8 local_80;\n  long local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  long local_60;\n  undefined8 *local_58;\n  int local_50;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/enhance.c",0x359,"ClutImage");\n  }\n  if (*(long *)(param_1 + 0x3450) != 0xabacadab) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35a,"ClutImage"\n                 );\n  }\n  if (*(int *)(param_1 + 0x3418) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/enhance.c","ClutImage",0x35c,&DAT_0041fe36,param_1 + 0x3f8);\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail("clut_image != (Image *) NULL","MagickCore/enhance.c",0x35d,"ClutImage");\n  }\n  if (*(long *)(param_2 + 0x3450) != 0xabacadab) {\n                    \n    __assert_fail("clut_image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35e,\n                  "ClutImage");\n  }\n  iVar2 = SetImageStorageClass(param_1,1,param_4);\n  if (iVar2 == 0) goto LAB_001f2803;\n  if ((((*(int *)(param_1 + 4) == 3) || (*(int *)(param_1 + 4) == 0x21)) &&\n      (*(int *)(param_2 + 4) != 0x21)) && (*(int *)(param_2 + 4) != 3)) {\n    SetImageColorspace(param_1,0x17,param_4);\n  }\n  lVar4 = AcquireQuantumMemory(0x10000,0x58);\n  if (lVar4 == 0) {\n    ThrowMagickException\n              (param_4,"MagickCore/enhance.c","ClutImage",0x367,400,"MemoryAllocationFailed","`%s\'"\n               ,param_1 + 0x3f8);\n    iVar2 = 0;\n    goto LAB_001f2803;\n  }\n  local_80 = 0;\n  iVar2 = *(int *)(param_2 + 0x2f8);\n  uVar5 = AcquireVirtualCacheView(param_2,param_4);\n  lVar9 = 0;\n  uVar6 = (ulong)(iVar2 != 8);\n  lVar8 = lVar4;\n  do {\n    GetPixelInfo(param_2,lVar8);\n    iVar2 = InterpolatePixelInfo\n                      (((double)(*(long *)(param_2 + 0x20) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       ((double)(*(long *)(param_2 + 0x28) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       param_2,uVar5,param_3,lVar8,param_4);\n    if (iVar2 == 0) break;\n    lVar9 = lVar9 + 1;\n    lVar8 = lVar8 + 0x58;\n  } while (lVar9 != 0x10000);\n  DestroyCacheView(uVar5);\n  uVar5 = AcquireAuthenticCacheView(param_1,param_4);\n  iVar3 = GetImagePixelCacheType(param_1);\n  if (((iVar3 == 4) || (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)) &&\n     ((iVar3 = GetImagePixelCacheType(param_1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)))) {\n    lVar7 = GetMagickResourceLimit(7);\n    lVar8 = *(long *)(param_1 + 0x28);\n    lVar9 = lVar8 + 0x3f;\n    if (-1 < lVar8) {\n      lVar9 = lVar8;\n    }\n    bVar1 = 0x7f < lVar8;\n    if (lVar7 < lVar9 >> 6) {\n      lVar8 = GetMagickResourceLimit(7);\n      bVar1 = 1 < lVar8;\n    }\n    lVar8 = 1;\n    if (bVar1) {\n      lVar7 = GetMagickResourceLimit(7);\n      lVar9 = *(long *)(param_1 + 0x28);\n      lVar8 = lVar9 + 0x3f;\n      if (-1 < lVar9) {\n        lVar8 = lVar9;\n      }\n      lVar8 = lVar8 >> 6;\n      if (lVar7 < lVar8) {\n        lVar8 = GetMagickResourceLimit(7);\n      }\n    }\n  }\n  else {\n    uVar6 = GetMagickResourceLimit(7);\n    if (uVar6 < 2) {\n      uVar6 = GetMagickResourceLimit(7);\n      lVar8 = 1;\n      if (uVar6 < 2) goto LAB_001f2957;\n    }\n    uVar6 = GetMagickResourceLimit(7);\n    lVar8 = 2;\n    if (uVar6 < 2) {\n      lVar8 = GetMagickResourceLimit(7);\n    }\n  }\nLAB_001f2957:\n  local_58 = &local_80;\n  local_78 = param_1;\n  local_70 = param_4;\n  local_68 = uVar5;\n  local_60 = lVar4;\n  local_50 = iVar2;\n  GOMP_parallel(FUN_001ef856,&local_78,lVar8,0);\n  iVar2 = local_50;\n  DestroyCacheView(uVar5);\n  RelinquishMagickMemory(lVar4);\n  if ((*(int *)(param_2 + 0x33c) != 0) && ((*(byte *)(*(long *)(param_1 + 0x360) + 0x44) & 2) != 0))\n  {\n    SetImageAlphaChannel(param_1,1,param_4);\n  }\nLAB_001f2803:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }\n                    \n  __stack_chk_fail();\n}" primitive_type (function_declarator "ClutImage(long param_1,long param_2,undefined4 param_3,undefined8 param_4)" identifier (parameter_list "(long param_1,long param_2,undefined4 param_3,undefined8 param_4)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined8 param_4" type_identifier identifier) ))) (compound_statement "{\n  bool bVar1;\n  int iVar2;\n  int iVar3;\n  long lVar4;\n  undefined8 uVar5;\n  ulong uVar6;\n  long lVar7;\n  long lVar8;\n  long lVar9;\n  long in_FS_OFFSET;\n  undefined8 local_80;\n  long local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  long local_60;\n  undefined8 *local_58;\n  int local_50;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/enhance.c",0x359,"ClutImage");\n  }\n  if (*(long *)(param_1 + 0x3450) != 0xabacadab) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35a,"ClutImage"\n                 );\n  }\n  if (*(int *)(param_1 + 0x3418) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/enhance.c","ClutImage",0x35c,&DAT_0041fe36,param_1 + 0x3f8);\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail("clut_image != (Image *) NULL","MagickCore/enhance.c",0x35d,"ClutImage");\n  }\n  if (*(long *)(param_2 + 0x3450) != 0xabacadab) {\n                    \n    __assert_fail("clut_image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35e,\n                  "ClutImage");\n  }\n  iVar2 = SetImageStorageClass(param_1,1,param_4);\n  if (iVar2 == 0) goto LAB_001f2803;\n  if ((((*(int *)(param_1 + 4) == 3) || (*(int *)(param_1 + 4) == 0x21)) &&\n      (*(int *)(param_2 + 4) != 0x21)) && (*(int *)(param_2 + 4) != 3)) {\n    SetImageColorspace(param_1,0x17,param_4);\n  }\n  lVar4 = AcquireQuantumMemory(0x10000,0x58);\n  if (lVar4 == 0) {\n    ThrowMagickException\n              (param_4,"MagickCore/enhance.c","ClutImage",0x367,400,"MemoryAllocationFailed","`%s\'"\n               ,param_1 + 0x3f8);\n    iVar2 = 0;\n    goto LAB_001f2803;\n  }\n  local_80 = 0;\n  iVar2 = *(int *)(param_2 + 0x2f8);\n  uVar5 = AcquireVirtualCacheView(param_2,param_4);\n  lVar9 = 0;\n  uVar6 = (ulong)(iVar2 != 8);\n  lVar8 = lVar4;\n  do {\n    GetPixelInfo(param_2,lVar8);\n    iVar2 = InterpolatePixelInfo\n                      (((double)(*(long *)(param_2 + 0x20) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       ((double)(*(long *)(param_2 + 0x28) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       param_2,uVar5,param_3,lVar8,param_4);\n    if (iVar2 == 0) break;\n    lVar9 = lVar9 + 1;\n    lVar8 = lVar8 + 0x58;\n  } while (lVar9 != 0x10000);\n  DestroyCacheView(uVar5);\n  uVar5 = AcquireAuthenticCacheView(param_1,param_4);\n  iVar3 = GetImagePixelCacheType(param_1);\n  if (((iVar3 == 4) || (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)) &&\n     ((iVar3 = GetImagePixelCacheType(param_1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)))) {\n    lVar7 = GetMagickResourceLimit(7);\n    lVar8 = *(long *)(param_1 + 0x28);\n    lVar9 = lVar8 + 0x3f;\n    if (-1 < lVar8) {\n      lVar9 = lVar8;\n    }\n    bVar1 = 0x7f < lVar8;\n    if (lVar7 < lVar9 >> 6) {\n      lVar8 = GetMagickResourceLimit(7);\n      bVar1 = 1 < lVar8;\n    }\n    lVar8 = 1;\n    if (bVar1) {\n      lVar7 = GetMagickResourceLimit(7);\n      lVar9 = *(long *)(param_1 + 0x28);\n      lVar8 = lVar9 + 0x3f;\n      if (-1 < lVar9) {\n        lVar8 = lVar9;\n      }\n      lVar8 = lVar8 >> 6;\n      if (lVar7 < lVar8) {\n        lVar8 = GetMagickResourceLimit(7);\n      }\n    }\n  }\n  else {\n    uVar6 = GetMagickResourceLimit(7);\n    if (uVar6 < 2) {\n      uVar6 = GetMagickResourceLimit(7);\n      lVar8 = 1;\n      if (uVar6 < 2) goto LAB_001f2957;\n    }\n    uVar6 = GetMagickResourceLimit(7);\n    lVar8 = 2;\n    if (uVar6 < 2) {\n      lVar8 = GetMagickResourceLimit(7);\n    }\n  }\nLAB_001f2957:\n  local_58 = &local_80;\n  local_78 = param_1;\n  local_70 = param_4;\n  local_68 = uVar5;\n  local_60 = lVar4;\n  local_50 = iVar2;\n  GOMP_parallel(FUN_001ef856,&local_78,lVar8,0);\n  iVar2 = local_50;\n  DestroyCacheView(uVar5);\n  RelinquishMagickMemory(lVar4);\n  if ((*(int *)(param_2 + 0x33c) != 0) && ((*(byte *)(*(long *)(param_1 + 0x360) + 0x44) & 2) != 0))\n  {\n    SetImageAlphaChannel(param_1,1,param_4);\n  }\nLAB_001f2803:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }\n                    \n  __stack_chk_fail();\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "ulong uVar6;" type_identifier identifier ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 local_80;" type_identifier identifier ;) (declaration "long local_78;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 local_70;" type_identifier identifier ;) (declaration "undefined8 local_68;" type_identifier identifier ;) (declaration "long local_60;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (param_1 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/enhance.c",0x359,"ClutImage");\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/enhance.c",0x359,"ClutImage");\n  }" { (expression_statement "__assert_fail("image != (Image *) NULL","MagickCore/enhance.c",0x359,"ClutImage");" (call_expression "__assert_fail("image != (Image *) NULL","MagickCore/enhance.c",0x359,"ClutImage")" identifier (argument_list "("image != (Image *) NULL","MagickCore/enhance.c",0x359,"ClutImage")" ( (string_literal ""image != (Image *) NULL"" " string_content ") , (string_literal ""MagickCore/enhance.c"" " string_content ") , number_literal , (string_literal ""ClutImage"" " string_content ") ))) ;) })) (if_statement "if (*(long *)(param_1 + 0x3450) != 0xabacadab) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35a,"ClutImage"\n                 );\n  }" if (parenthesized_expression "(*(long *)(param_1 + 0x3450) != 0xabacadab)" ( (binary_expression "*(long *)(param_1 + 0x3450) != 0xabacadab" (pointer_expression "*(long *)(param_1 + 0x3450)" * (cast_expression "(long *)(param_1 + 0x3450)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3450)" ( (binary_expression "param_1 + 0x3450" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35a,"ClutImage"\n                 );\n  }" { (expression_statement "__assert_fail("image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35a,"ClutImage"\n                 );" (call_expression "__assert_fail("image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35a,"ClutImage"\n                 )" identifier (argument_list "("image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35a,"ClutImage"\n                 )" ( (string_literal ""image->signature == MagickCoreSignature"" " string_content ") , (string_literal ""MagickCore/enhance.c"" " string_content ") , number_literal , (string_literal ""ClutImage"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x3418) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/enhance.c","ClutImage",0x35c,&DAT_0041fe36,param_1 + 0x3f8);\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x3418) != 0)" ( (binary_expression "*(int *)(param_1 + 0x3418) != 0" (pointer_expression "*(int *)(param_1 + 0x3418)" * (cast_expression "(int *)(param_1 + 0x3418)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3418)" ( (binary_expression "param_1 + 0x3418" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    LogMagickEvent(0x8000,"MagickCore/enhance.c","ClutImage",0x35c,&DAT_0041fe36,param_1 + 0x3f8);\n  }" { (expression_statement "LogMagickEvent(0x8000,"MagickCore/enhance.c","ClutImage",0x35c,&DAT_0041fe36,param_1 + 0x3f8);" (call_expression "LogMagickEvent(0x8000,"MagickCore/enhance.c","ClutImage",0x35c,&DAT_0041fe36,param_1 + 0x3f8)" identifier (argument_list "(0x8000,"MagickCore/enhance.c","ClutImage",0x35c,&DAT_0041fe36,param_1 + 0x3f8)" ( number_literal , (string_literal ""MagickCore/enhance.c"" " string_content ") , (string_literal ""ClutImage"" " string_content ") , number_literal , (pointer_expression "&DAT_0041fe36" & identifier) , (binary_expression "param_1 + 0x3f8" identifier + number_literal) ))) ;) })) (if_statement "if (param_2 == 0) {\n                    \n    __assert_fail("clut_image != (Image *) NULL","MagickCore/enhance.c",0x35d,"ClutImage");\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    __assert_fail("clut_image != (Image *) NULL","MagickCore/enhance.c",0x35d,"ClutImage");\n  }" { (expression_statement "__assert_fail("clut_image != (Image *) NULL","MagickCore/enhance.c",0x35d,"ClutImage");" (call_expression "__assert_fail("clut_image != (Image *) NULL","MagickCore/enhance.c",0x35d,"ClutImage")" identifier (argument_list "("clut_image != (Image *) NULL","MagickCore/enhance.c",0x35d,"ClutImage")" ( (string_literal ""clut_image != (Image *) NULL"" " string_content ") , (string_literal ""MagickCore/enhance.c"" " string_content ") , number_literal , (string_literal ""ClutImage"" " string_content ") ))) ;) })) (if_statement "if (*(long *)(param_2 + 0x3450) != 0xabacadab) {\n                    \n    __assert_fail("clut_image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35e,\n                  "ClutImage");\n  }" if (parenthesized_expression "(*(long *)(param_2 + 0x3450) != 0xabacadab)" ( (binary_expression "*(long *)(param_2 + 0x3450) != 0xabacadab" (pointer_expression "*(long *)(param_2 + 0x3450)" * (cast_expression "(long *)(param_2 + 0x3450)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3450)" ( (binary_expression "param_2 + 0x3450" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    \n    __assert_fail("clut_image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35e,\n                  "ClutImage");\n  }" { (expression_statement "__assert_fail("clut_image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35e,\n                  "ClutImage");" (call_expression "__assert_fail("clut_image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35e,\n                  "ClutImage")" identifier (argument_list "("clut_image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35e,\n                  "ClutImage")" ( (string_literal ""clut_image->signature == MagickCoreSignature"" " string_content ") , (string_literal ""MagickCore/enhance.c"" " string_content ") , number_literal , (string_literal ""ClutImage"" " string_content ") ))) ;) })) (expression_statement "iVar2 = SetImageStorageClass(param_1,1,param_4);" (assignment_expression "iVar2 = SetImageStorageClass(param_1,1,param_4)" identifier = (call_expression "SetImageStorageClass(param_1,1,param_4)" identifier (argument_list "(param_1,1,param_4)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (iVar2 == 0) goto LAB_001f2803;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001f2803;" goto statement_identifier ;)) (if_statement "if ((((*(int *)(param_1 + 4) == 3) || (*(int *)(param_1 + 4) == 0x21)) &&\n      (*(int *)(param_2 + 4) != 0x21)) && (*(int *)(param_2 + 4) != 3)) {\n    SetImageColorspace(param_1,0x17,param_4);\n  }" if (parenthesized_expression "((((*(int *)(param_1 + 4) == 3) || (*(int *)(param_1 + 4) == 0x21)) &&\n      (*(int *)(param_2 + 4) != 0x21)) && (*(int *)(param_2 + 4) != 3))" ( (binary_expression "(((*(int *)(param_1 + 4) == 3) || (*(int *)(param_1 + 4) == 0x21)) &&\n      (*(int *)(param_2 + 4) != 0x21)) && (*(int *)(param_2 + 4) != 3)" (parenthesized_expression "(((*(int *)(param_1 + 4) == 3) || (*(int *)(param_1 + 4) == 0x21)) &&\n      (*(int *)(param_2 + 4) != 0x21))" ( (binary_expression "((*(int *)(param_1 + 4) == 3) || (*(int *)(param_1 + 4) == 0x21)) &&\n      (*(int *)(param_2 + 4) != 0x21)" (parenthesized_expression "((*(int *)(param_1 + 4) == 3) || (*(int *)(param_1 + 4) == 0x21))" ( (binary_expression "(*(int *)(param_1 + 4) == 3) || (*(int *)(param_1 + 4) == 0x21)" (parenthesized_expression "(*(int *)(param_1 + 4) == 3)" ( (binary_expression "*(int *)(param_1 + 4) == 3" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(*(int *)(param_1 + 4) == 0x21)" ( (binary_expression "*(int *)(param_1 + 4) == 0x21" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) == number_literal) ))) )) && (parenthesized_expression "(*(int *)(param_2 + 4) != 0x21)" ( (binary_expression "*(int *)(param_2 + 4) != 0x21" (pointer_expression "*(int *)(param_2 + 4)" * (cast_expression "(int *)(param_2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))) != number_literal) ))) )) && (parenthesized_expression "(*(int *)(param_2 + 4) != 3)" ( (binary_expression "*(int *)(param_2 + 4) != 3" (pointer_expression "*(int *)(param_2 + 4)" * (cast_expression "(int *)(param_2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n    SetImageColorspace(param_1,0x17,param_4);\n  }" { (expression_statement "SetImageColorspace(param_1,0x17,param_4);" (call_expression "SetImageColorspace(param_1,0x17,param_4)" identifier (argument_list "(param_1,0x17,param_4)" ( identifier , number_literal , identifier ))) ;) })) (expression_statement "lVar4 = AcquireQuantumMemory(0x10000,0x58);" (assignment_expression "lVar4 = AcquireQuantumMemory(0x10000,0x58)" identifier = (call_expression "AcquireQuantumMemory(0x10000,0x58)" identifier (argument_list "(0x10000,0x58)" ( number_literal , number_literal )))) ;) (if_statement "if (lVar4 == 0) {\n    ThrowMagickException\n              (param_4,"MagickCore/enhance.c","ClutImage",0x367,400,"MemoryAllocationFailed","`%s\'"\n               ,param_1 + 0x3f8);\n    iVar2 = 0;\n    goto LAB_001f2803;\n  }" if (parenthesized_expression "(lVar4 == 0)" ( (binary_expression "lVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    ThrowMagickException\n              (param_4,"MagickCore/enhance.c","ClutImage",0x367,400,"MemoryAllocationFailed","`%s\'"\n               ,param_1 + 0x3f8);\n    iVar2 = 0;\n    goto LAB_001f2803;\n  }" { (expression_statement "ThrowMagickException\n              (param_4,"MagickCore/enhance.c","ClutImage",0x367,400,"MemoryAllocationFailed","`%s\'"\n               ,param_1 + 0x3f8);" (call_expression "ThrowMagickException\n              (param_4,"MagickCore/enhance.c","ClutImage",0x367,400,"MemoryAllocationFailed","`%s\'"\n               ,param_1 + 0x3f8)" identifier (argument_list "(param_4,"MagickCore/enhance.c","ClutImage",0x367,400,"MemoryAllocationFailed","`%s\'"\n               ,param_1 + 0x3f8)" ( identifier , (string_literal ""MagickCore/enhance.c"" " string_content ") , (string_literal ""ClutImage"" " string_content ") , number_literal , number_literal , (string_literal ""MemoryAllocationFailed"" " string_content ") , (string_literal ""`%s\'"" " string_content escape_sequence ") , (binary_expression "param_1 + 0x3f8" identifier + number_literal) ))) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_001f2803;" goto statement_identifier ;) })) (expression_statement "local_80 = 0;" (assignment_expression "local_80 = 0" identifier = number_literal) ;) (expression_statement "iVar2 = *(int *)(param_2 + 0x2f8);" (assignment_expression "iVar2 = *(int *)(param_2 + 0x2f8)" identifier = (pointer_expression "*(int *)(param_2 + 0x2f8)" * (cast_expression "(int *)(param_2 + 0x2f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2f8)" ( (binary_expression "param_2 + 0x2f8" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = AcquireVirtualCacheView(param_2,param_4);" (assignment_expression "uVar5 = AcquireVirtualCacheView(param_2,param_4)" identifier = (call_expression "AcquireVirtualCacheView(param_2,param_4)" identifier (argument_list "(param_2,param_4)" ( identifier , identifier )))) ;) (expression_statement "lVar9 = 0;" (assignment_expression "lVar9 = 0" identifier = number_literal) ;) (expression_statement "uVar6 = (ulong)(iVar2 != 8);" (assignment_expression "uVar6 = (ulong)(iVar2 != 8)" identifier = (call_expression "(ulong)(iVar2 != 8)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar2 != 8)" ( (binary_expression "iVar2 != 8" identifier != number_literal) )))) ;) (expression_statement "lVar8 = lVar4;" (assignment_expression "lVar8 = lVar4" identifier = identifier) ;) (do_statement "do {\n    GetPixelInfo(param_2,lVar8);\n    iVar2 = InterpolatePixelInfo\n                      (((double)(*(long *)(param_2 + 0x20) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       ((double)(*(long *)(param_2 + 0x28) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       param_2,uVar5,param_3,lVar8,param_4);\n    if (iVar2 == 0) break;\n    lVar9 = lVar9 + 1;\n    lVar8 = lVar8 + 0x58;\n  } while (lVar9 != 0x10000);" do (compound_statement "{\n    GetPixelInfo(param_2,lVar8);\n    iVar2 = InterpolatePixelInfo\n                      (((double)(*(long *)(param_2 + 0x20) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       ((double)(*(long *)(param_2 + 0x28) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       param_2,uVar5,param_3,lVar8,param_4);\n    if (iVar2 == 0) break;\n    lVar9 = lVar9 + 1;\n    lVar8 = lVar8 + 0x58;\n  }" { (expression_statement "GetPixelInfo(param_2,lVar8);" (call_expression "GetPixelInfo(param_2,lVar8)" identifier (argument_list "(param_2,lVar8)" ( identifier , identifier ))) ;) (expression_statement "iVar2 = InterpolatePixelInfo\n                      (((double)(*(long *)(param_2 + 0x20) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       ((double)(*(long *)(param_2 + 0x28) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       param_2,uVar5,param_3,lVar8,param_4);" (assignment_expression "iVar2 = InterpolatePixelInfo\n                      (((double)(*(long *)(param_2 + 0x20) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       ((double)(*(long *)(param_2 + 0x28) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       param_2,uVar5,param_3,lVar8,param_4)" identifier = (call_expression "InterpolatePixelInfo\n                      (((double)(*(long *)(param_2 + 0x20) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       ((double)(*(long *)(param_2 + 0x28) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       param_2,uVar5,param_3,lVar8,param_4)" identifier (argument_list "(((double)(*(long *)(param_2 + 0x20) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       ((double)(*(long *)(param_2 + 0x28) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       param_2,uVar5,param_3,lVar8,param_4)" ( (binary_expression "((double)(*(long *)(param_2 + 0x20) - uVar6) * (double)lVar9) / DAT_003f95f8" (parenthesized_expression "((double)(*(long *)(param_2 + 0x20) - uVar6) * (double)lVar9)" ( (binary_expression "(double)(*(long *)(param_2 + 0x20) - uVar6) * (double)lVar9" (cast_expression "(double)(*(long *)(param_2 + 0x20) - uVar6)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(*(long *)(param_2 + 0x20) - uVar6)" ( (binary_expression "*(long *)(param_2 + 0x20) - uVar6" (pointer_expression "*(long *)(param_2 + 0x20)" * (cast_expression "(long *)(param_2 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x20)" ( (binary_expression "param_2 + 0x20" identifier + number_literal) )))) - identifier) ))) * (cast_expression "(double)lVar9" ( (type_descriptor "double" primitive_type) ) identifier)) )) / identifier) , (binary_expression "((double)(*(long *)(param_2 + 0x28) - uVar6) * (double)lVar9) / DAT_003f95f8" (parenthesized_expression "((double)(*(long *)(param_2 + 0x28) - uVar6) * (double)lVar9)" ( (binary_expression "(double)(*(long *)(param_2 + 0x28) - uVar6) * (double)lVar9" (cast_expression "(double)(*(long *)(param_2 + 0x28) - uVar6)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(*(long *)(param_2 + 0x28) - uVar6)" ( (binary_expression "*(long *)(param_2 + 0x28) - uVar6" (pointer_expression "*(long *)(param_2 + 0x28)" * (cast_expression "(long *)(param_2 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x28)" ( (binary_expression "param_2 + 0x28" identifier + number_literal) )))) - identifier) ))) * (cast_expression "(double)lVar9" ( (type_descriptor "double" primitive_type) ) identifier)) )) / identifier) , identifier , identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar2 == 0) break;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar9 = lVar9 + 1;" (assignment_expression "lVar9 = lVar9 + 1" identifier = (binary_expression "lVar9 + 1" identifier + number_literal)) ;) (expression_statement "lVar8 = lVar8 + 0x58;" (assignment_expression "lVar8 = lVar8 + 0x58" identifier = (binary_expression "lVar8 + 0x58" identifier + number_literal)) ;) }) while (parenthesized_expression "(lVar9 != 0x10000)" ( (binary_expression "lVar9 != 0x10000" identifier != number_literal) )) ;) (expression_statement "DestroyCacheView(uVar5);" (call_expression "DestroyCacheView(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) (expression_statement "uVar5 = AcquireAuthenticCacheView(param_1,param_4);" (assignment_expression "uVar5 = AcquireAuthenticCacheView(param_1,param_4)" identifier = (call_expression "AcquireAuthenticCacheView(param_1,param_4)" identifier (argument_list "(param_1,param_4)" ( identifier , identifier )))) ;) (expression_statement "iVar3 = GetImagePixelCacheType(param_1);" (assignment_expression "iVar3 = GetImagePixelCacheType(param_1)" identifier = (call_expression "GetImagePixelCacheType(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (((iVar3 == 4) || (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)) &&\n     ((iVar3 = GetImagePixelCacheType(param_1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)))) {\n    lVar7 = GetMagickResourceLimit(7);\n    lVar8 = *(long *)(param_1 + 0x28);\n    lVar9 = lVar8 + 0x3f;\n    if (-1 < lVar8) {\n      lVar9 = lVar8;\n    }\n    bVar1 = 0x7f < lVar8;\n    if (lVar7 < lVar9 >> 6) {\n      lVar8 = GetMagickResourceLimit(7);\n      bVar1 = 1 < lVar8;\n    }\n    lVar8 = 1;\n    if (bVar1) {\n      lVar7 = GetMagickResourceLimit(7);\n      lVar9 = *(long *)(param_1 + 0x28);\n      lVar8 = lVar9 + 0x3f;\n      if (-1 < lVar9) {\n        lVar8 = lVar9;\n      }\n      lVar8 = lVar8 >> 6;\n      if (lVar7 < lVar8) {\n        lVar8 = GetMagickResourceLimit(7);\n      }\n    }\n  }\n  else {\n    uVar6 = GetMagickResourceLimit(7);\n    if (uVar6 < 2) {\n      uVar6 = GetMagickResourceLimit(7);\n      lVar8 = 1;\n      if (uVar6 < 2) goto LAB_001f2957;\n    }\n    uVar6 = GetMagickResourceLimit(7);\n    lVar8 = 2;\n    if (uVar6 < 2) {\n      lVar8 = GetMagickResourceLimit(7);\n    }\n  }" if (parenthesized_expression "(((iVar3 == 4) || (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)) &&\n     ((iVar3 = GetImagePixelCacheType(param_1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3))))" ( (binary_expression "((iVar3 == 4) || (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)) &&\n     ((iVar3 = GetImagePixelCacheType(param_1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)))" (parenthesized_expression "((iVar3 == 4) || (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3))" ( (binary_expression "(iVar3 == 4) || (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)" (parenthesized_expression "(iVar3 == 4)" ( (binary_expression "iVar3 == 4" identifier == number_literal) )) || (parenthesized_expression "(iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)" ( (comma_expression "iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3" (assignment_expression "iVar3 = GetImagePixelCacheType(param_1)" identifier = (call_expression "GetImagePixelCacheType(param_1)" identifier (argument_list "(param_1)" ( identifier )))) , (binary_expression "iVar3 == 3" identifier == number_literal)) ))) )) && (parenthesized_expression "((iVar3 = GetImagePixelCacheType(param_1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)))" ( (parenthesized_expression "(iVar3 = GetImagePixelCacheType(param_1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3))" ( (comma_expression "iVar3 = GetImagePixelCacheType(param_1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)" (assignment_expression "iVar3 = GetImagePixelCacheType(param_1)" identifier = (call_expression "GetImagePixelCacheType(param_1)" identifier (argument_list "(param_1)" ( identifier )))) , (binary_expression "iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)" (binary_expression "iVar3 == 4" identifier == number_literal) || (parenthesized_expression "(iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)" ( (comma_expression "iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3" (assignment_expression "iVar3 = GetImagePixelCacheType(param_1)" identifier = (call_expression "GetImagePixelCacheType(param_1)" identifier (argument_list "(param_1)" ( identifier )))) , (binary_expression "iVar3 == 3" identifier == number_literal)) )))) )) ))) )) (compound_statement "{\n    lVar7 = GetMagickResourceLimit(7);\n    lVar8 = *(long *)(param_1 + 0x28);\n    lVar9 = lVar8 + 0x3f;\n    if (-1 < lVar8) {\n      lVar9 = lVar8;\n    }\n    bVar1 = 0x7f < lVar8;\n    if (lVar7 < lVar9 >> 6) {\n      lVar8 = GetMagickResourceLimit(7);\n      bVar1 = 1 < lVar8;\n    }\n    lVar8 = 1;\n    if (bVar1) {\n      lVar7 = GetMagickResourceLimit(7);\n      lVar9 = *(long *)(param_1 + 0x28);\n      lVar8 = lVar9 + 0x3f;\n      if (-1 < lVar9) {\n        lVar8 = lVar9;\n      }\n      lVar8 = lVar8 >> 6;\n      if (lVar7 < lVar8) {\n        lVar8 = GetMagickResourceLimit(7);\n      }\n    }\n  }" { (expression_statement "lVar7 = GetMagickResourceLimit(7);" (assignment_expression "lVar7 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (expression_statement "lVar8 = *(long *)(param_1 + 0x28);" (assignment_expression "lVar8 = *(long *)(param_1 + 0x28)" identifier = (pointer_expression "*(long *)(param_1 + 0x28)" * (cast_expression "(long *)(param_1 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "lVar9 = lVar8 + 0x3f;" (assignment_expression "lVar9 = lVar8 + 0x3f" identifier = (binary_expression "lVar8 + 0x3f" identifier + number_literal)) ;) (if_statement "if (-1 < lVar8) {\n      lVar9 = lVar8;\n    }" if (parenthesized_expression "(-1 < lVar8)" ( (binary_expression "-1 < lVar8" number_literal < identifier) )) (compound_statement "{\n      lVar9 = lVar8;\n    }" { (expression_statement "lVar9 = lVar8;" (assignment_expression "lVar9 = lVar8" identifier = identifier) ;) })) (expression_statement "bVar1 = 0x7f < lVar8;" (assignment_expression "bVar1 = 0x7f < lVar8" identifier = (binary_expression "0x7f < lVar8" number_literal < identifier)) ;) (if_statement "if (lVar7 < lVar9 >> 6) {\n      lVar8 = GetMagickResourceLimit(7);\n      bVar1 = 1 < lVar8;\n    }" if (parenthesized_expression "(lVar7 < lVar9 >> 6)" ( (binary_expression "lVar7 < lVar9 >> 6" identifier < (binary_expression "lVar9 >> 6" identifier >> number_literal)) )) (compound_statement "{\n      lVar8 = GetMagickResourceLimit(7);\n      bVar1 = 1 < lVar8;\n    }" { (expression_statement "lVar8 = GetMagickResourceLimit(7);" (assignment_expression "lVar8 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (expression_statement "bVar1 = 1 < lVar8;" (assignment_expression "bVar1 = 1 < lVar8" identifier = (binary_expression "1 < lVar8" number_literal < identifier)) ;) })) (expression_statement "lVar8 = 1;" (assignment_expression "lVar8 = 1" identifier = number_literal) ;) (if_statement "if (bVar1) {\n      lVar7 = GetMagickResourceLimit(7);\n      lVar9 = *(long *)(param_1 + 0x28);\n      lVar8 = lVar9 + 0x3f;\n      if (-1 < lVar9) {\n        lVar8 = lVar9;\n      }\n      lVar8 = lVar8 >> 6;\n      if (lVar7 < lVar8) {\n        lVar8 = GetMagickResourceLimit(7);\n      }\n    }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n      lVar7 = GetMagickResourceLimit(7);\n      lVar9 = *(long *)(param_1 + 0x28);\n      lVar8 = lVar9 + 0x3f;\n      if (-1 < lVar9) {\n        lVar8 = lVar9;\n      }\n      lVar8 = lVar8 >> 6;\n      if (lVar7 < lVar8) {\n        lVar8 = GetMagickResourceLimit(7);\n      }\n    }" { (expression_statement "lVar7 = GetMagickResourceLimit(7);" (assignment_expression "lVar7 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (expression_statement "lVar9 = *(long *)(param_1 + 0x28);" (assignment_expression "lVar9 = *(long *)(param_1 + 0x28)" identifier = (pointer_expression "*(long *)(param_1 + 0x28)" * (cast_expression "(long *)(param_1 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "lVar8 = lVar9 + 0x3f;" (assignment_expression "lVar8 = lVar9 + 0x3f" identifier = (binary_expression "lVar9 + 0x3f" identifier + number_literal)) ;) (if_statement "if (-1 < lVar9) {\n        lVar8 = lVar9;\n      }" if (parenthesized_expression "(-1 < lVar9)" ( (binary_expression "-1 < lVar9" number_literal < identifier) )) (compound_statement "{\n        lVar8 = lVar9;\n      }" { (expression_statement "lVar8 = lVar9;" (assignment_expression "lVar8 = lVar9" identifier = identifier) ;) })) (expression_statement "lVar8 = lVar8 >> 6;" (assignment_expression "lVar8 = lVar8 >> 6" identifier = (binary_expression "lVar8 >> 6" identifier >> number_literal)) ;) (if_statement "if (lVar7 < lVar8) {\n        lVar8 = GetMagickResourceLimit(7);\n      }" if (parenthesized_expression "(lVar7 < lVar8)" ( (binary_expression "lVar7 < lVar8" identifier < identifier) )) (compound_statement "{\n        lVar8 = GetMagickResourceLimit(7);\n      }" { (expression_statement "lVar8 = GetMagickResourceLimit(7);" (assignment_expression "lVar8 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) })) })) }) (else_clause "else {\n    uVar6 = GetMagickResourceLimit(7);\n    if (uVar6 < 2) {\n      uVar6 = GetMagickResourceLimit(7);\n      lVar8 = 1;\n      if (uVar6 < 2) goto LAB_001f2957;\n    }\n    uVar6 = GetMagickResourceLimit(7);\n    lVar8 = 2;\n    if (uVar6 < 2) {\n      lVar8 = GetMagickResourceLimit(7);\n    }\n  }" else (compound_statement "{\n    uVar6 = GetMagickResourceLimit(7);\n    if (uVar6 < 2) {\n      uVar6 = GetMagickResourceLimit(7);\n      lVar8 = 1;\n      if (uVar6 < 2) goto LAB_001f2957;\n    }\n    uVar6 = GetMagickResourceLimit(7);\n    lVar8 = 2;\n    if (uVar6 < 2) {\n      lVar8 = GetMagickResourceLimit(7);\n    }\n  }" { (expression_statement "uVar6 = GetMagickResourceLimit(7);" (assignment_expression "uVar6 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (if_statement "if (uVar6 < 2) {\n      uVar6 = GetMagickResourceLimit(7);\n      lVar8 = 1;\n      if (uVar6 < 2) goto LAB_001f2957;\n    }" if (parenthesized_expression "(uVar6 < 2)" ( (binary_expression "uVar6 < 2" identifier < number_literal) )) (compound_statement "{\n      uVar6 = GetMagickResourceLimit(7);\n      lVar8 = 1;\n      if (uVar6 < 2) goto LAB_001f2957;\n    }" { (expression_statement "uVar6 = GetMagickResourceLimit(7);" (assignment_expression "uVar6 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (expression_statement "lVar8 = 1;" (assignment_expression "lVar8 = 1" identifier = number_literal) ;) (if_statement "if (uVar6 < 2) goto LAB_001f2957;" if (parenthesized_expression "(uVar6 < 2)" ( (binary_expression "uVar6 < 2" identifier < number_literal) )) (goto_statement "goto LAB_001f2957;" goto statement_identifier ;)) })) (expression_statement "uVar6 = GetMagickResourceLimit(7);" (assignment_expression "uVar6 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (expression_statement "lVar8 = 2;" (assignment_expression "lVar8 = 2" identifier = number_literal) ;) (if_statement "if (uVar6 < 2) {\n      lVar8 = GetMagickResourceLimit(7);\n    }" if (parenthesized_expression "(uVar6 < 2)" ( (binary_expression "uVar6 < 2" identifier < number_literal) )) (compound_statement "{\n      lVar8 = GetMagickResourceLimit(7);\n    }" { (expression_statement "lVar8 = GetMagickResourceLimit(7);" (assignment_expression "lVar8 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) })) }))) (labeled_statement "LAB_001f2957:\n  local_58 = &local_80;" statement_identifier : (expression_statement "local_58 = &local_80;" (assignment_expression "local_58 = &local_80" identifier = (pointer_expression "&local_80" & identifier)) ;)) (expression_statement "local_78 = param_1;" (assignment_expression "local_78 = param_1" identifier = identifier) ;) (expression_statement "local_70 = param_4;" (assignment_expression "local_70 = param_4" identifier = identifier) ;) (expression_statement "local_68 = uVar5;" (assignment_expression "local_68 = uVar5" identifier = identifier) ;) (expression_statement "local_60 = lVar4;" (assignment_expression "local_60 = lVar4" identifier = identifier) ;) (expression_statement "local_50 = iVar2;" (assignment_expression "local_50 = iVar2" identifier = identifier) ;) (expression_statement "GOMP_parallel(FUN_001ef856,&local_78,lVar8,0);" (call_expression "GOMP_parallel(FUN_001ef856,&local_78,lVar8,0)" identifier (argument_list "(FUN_001ef856,&local_78,lVar8,0)" ( identifier , (pointer_expression "&local_78" & identifier) , identifier , number_literal ))) ;) (expression_statement "iVar2 = local_50;" (assignment_expression "iVar2 = local_50" identifier = identifier) ;) (expression_statement "DestroyCacheView(uVar5);" (call_expression "DestroyCacheView(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) (expression_statement "RelinquishMagickMemory(lVar4);" (call_expression "RelinquishMagickMemory(lVar4)" identifier (argument_list "(lVar4)" ( identifier ))) ;) (if_statement "if ((*(int *)(param_2 + 0x33c) != 0) && ((*(byte *)(*(long *)(param_1 + 0x360) + 0x44) & 2) != 0))\n  {\n    SetImageAlphaChannel(param_1,1,param_4);\n  }" if (parenthesized_expression "((*(int *)(param_2 + 0x33c) != 0) && ((*(byte *)(*(long *)(param_1 + 0x360) + 0x44) & 2) != 0))" ( (binary_expression "(*(int *)(param_2 + 0x33c) != 0) && ((*(byte *)(*(long *)(param_1 + 0x360) + 0x44) & 2) != 0)" (parenthesized_expression "(*(int *)(param_2 + 0x33c) != 0)" ( (binary_expression "*(int *)(param_2 + 0x33c) != 0" (pointer_expression "*(int *)(param_2 + 0x33c)" * (cast_expression "(int *)(param_2 + 0x33c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x33c)" ( (binary_expression "param_2 + 0x33c" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "((*(byte *)(*(long *)(param_1 + 0x360) + 0x44) & 2) != 0)" ( (binary_expression "(*(byte *)(*(long *)(param_1 + 0x360) + 0x44) & 2) != 0" (parenthesized_expression "(*(byte *)(*(long *)(param_1 + 0x360) + 0x44) & 2)" ( (binary_expression "*(byte *)(*(long *)(param_1 + 0x360) + 0x44) & 2" (pointer_expression "*(byte *)(*(long *)(param_1 + 0x360) + 0x44)" * (cast_expression "(byte *)(*(long *)(param_1 + 0x360) + 0x44)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0x360) + 0x44)" ( (binary_expression "*(long *)(param_1 + 0x360) + 0x44" (pointer_expression "*(long *)(param_1 + 0x360)" * (cast_expression "(long *)(param_1 + 0x360)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x360)" ( (binary_expression "param_1 + 0x360" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    SetImageAlphaChannel(param_1,1,param_4);\n  }" { (expression_statement "SetImageAlphaChannel(param_1,1,param_4);" (call_expression "SetImageAlphaChannel(param_1,1,param_4)" identifier (argument_list "(param_1,1,param_4)" ( identifier , number_literal , identifier ))) ;) })) (labeled_statement "LAB_001f2803:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }" statement_identifier : (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }" if (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return iVar2;\n  }" { (return_statement "return iVar2;" return identifier ;) }))) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , (string_literal " string_content ") , LIT , (pointer_expression & IDENT) , (binary_expression IDENT + LIT) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) ))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) ))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (string_literal " string_content ") , LIT , LIT , (string_literal " string_content ") , (string_literal " string_content escape_sequence ") , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - IDENT) ))) * (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) / IDENT) , (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - IDENT) ))) * (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) / IDENT) , IDENT , IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT == LIT)) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression (binary_expression IDENT == LIT) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT == LIT)) )))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression LIT < IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression IDENT >> LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT < IDENT)) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) })) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "int ClutImage(long param_1,long param_2,undefined4 param_3,undefined8 param_4)\n\n{\n  bool bVar1;\n  int iVar2;\n  int iVar3;\n  long lVar4;\n  undefined8 uVar5;\n  ulong uVar6;\n  long lVar7;\n  long lVar8;\n  long lVar9;\n  long in_FS_OFFSET;\n  undefined8 local_80;\n  long local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  long local_60;\n  undefined8 *local_58;\n  int local_50;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/enhance.c",0x359,"ClutImage");\n  }\n  if (*(long *)(param_1 + 0x3450) != 0xabacadab) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35a,"ClutImage"\n                 );\n  }\n  if (*(int *)(param_1 + 0x3418) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/enhance.c","ClutImage",0x35c,&DAT_0041fe36,param_1 + 0x3f8);\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail("clut_image != (Image *) NULL","MagickCore/enhance.c",0x35d,"ClutImage");\n  }\n  if (*(long *)(param_2 + 0x3450) != 0xabacadab) {\n                    \n    __assert_fail("clut_image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35e,\n                  "ClutImage");\n  }\n  iVar2 = SetImageStorageClass(param_1,1,param_4);\n  if (iVar2 == 0) goto LAB_001f2803;\n  if ((((*(int *)(param_1 + 4) == 3) || (*(int *)(param_1 + 4) == 0x21)) &&\n      (*(int *)(param_2 + 4) != 0x21)) && (*(int *)(param_2 + 4) != 3)) {\n    SetImageColorspace(param_1,0x17,param_4);\n  }\n  lVar4 = AcquireQuantumMemory(0x10000,0x58);\n  if (lVar4 == 0) {\n    ThrowMagickException\n              (param_4,"MagickCore/enhance.c","ClutImage",0x367,400,"MemoryAllocationFailed","`%s\'"\n               ,param_1 + 0x3f8);\n    iVar2 = 0;\n    goto LAB_001f2803;\n  }\n  local_80 = 0;\n  iVar2 = *(int *)(param_2 + 0x2f8);\n  uVar5 = AcquireVirtualCacheView(param_2,param_4);\n  lVar9 = 0;\n  uVar6 = (ulong)(iVar2 != 8);\n  lVar8 = lVar4;\n  do {\n    GetPixelInfo(param_2,lVar8);\n    iVar2 = InterpolatePixelInfo\n                      (((double)(*(long *)(param_2 + 0x20) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       ((double)(*(long *)(param_2 + 0x28) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       param_2,uVar5,param_3,lVar8,param_4);\n    if (iVar2 == 0) break;\n    lVar9 = lVar9 + 1;\n    lVar8 = lVar8 + 0x58;\n  } while (lVar9 != 0x10000);\n  DestroyCacheView(uVar5);\n  uVar5 = AcquireAuthenticCacheView(param_1,param_4);\n  iVar3 = GetImagePixelCacheType(param_1);\n  if (((iVar3 == 4) || (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)) &&\n     ((iVar3 = GetImagePixelCacheType(param_1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)))) {\n    lVar7 = GetMagickResourceLimit(7);\n    lVar8 = *(long *)(param_1 + 0x28);\n    lVar9 = lVar8 + 0x3f;\n    if (-1 < lVar8) {\n      lVar9 = lVar8;\n    }\n    bVar1 = 0x7f < lVar8;\n    if (lVar7 < lVar9 >> 6) {\n      lVar8 = GetMagickResourceLimit(7);\n      bVar1 = 1 < lVar8;\n    }\n    lVar8 = 1;\n    if (bVar1) {\n      lVar7 = GetMagickResourceLimit(7);\n      lVar9 = *(long *)(param_1 + 0x28);\n      lVar8 = lVar9 + 0x3f;\n      if (-1 < lVar9) {\n        lVar8 = lVar9;\n      }\n      lVar8 = lVar8 >> 6;\n      if (lVar7 < lVar8) {\n        lVar8 = GetMagickResourceLimit(7);\n      }\n    }\n  }\n  else {\n    uVar6 = GetMagickResourceLimit(7);\n    if (uVar6 < 2) {\n      uVar6 = GetMagickResourceLimit(7);\n      lVar8 = 1;\n      if (uVar6 < 2) goto LAB_001f2957;\n    }\n    uVar6 = GetMagickResourceLimit(7);\n    lVar8 = 2;\n    if (uVar6 < 2) {\n      lVar8 = GetMagickResourceLimit(7);\n    }\n  }\nLAB_001f2957:\n  local_58 = &local_80;\n  local_78 = param_1;\n  local_70 = param_4;\n  local_68 = uVar5;\n  local_60 = lVar4;\n  local_50 = iVar2;\n  GOMP_parallel(FUN_001ef856,&local_78,lVar8,0);\n  iVar2 = local_50;\n  DestroyCacheView(uVar5);\n  RelinquishMagickMemory(lVar4);\n  if ((*(int *)(param_2 + 0x33c) != 0) && ((*(byte *)(*(long *)(param_1 + 0x360) + 0x44) & 2) != 0))\n  {\n    SetImageAlphaChannel(param_1,1,param_4);\n  }\nLAB_001f2803:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }\n                    \n  __stack_chk_fail();\n}" (primitive_type "int") (function_declarator "ClutImage(long param_1,long param_2,undefined4 param_3,undefined8 param_4)" (identifier "ClutImage") (parameter_list "(long param_1,long param_2,undefined4 param_3,undefined8 param_4)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "long param_2" (sized_type_specifier "long" (long "long")) (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "undefined8 param_4" (type_identifier "undefined8") (identifier "param_4")) () ")"))) (compound_statement "{\n  bool bVar1;\n  int iVar2;\n  int iVar3;\n  long lVar4;\n  undefined8 uVar5;\n  ulong uVar6;\n  long lVar7;\n  long lVar8;\n  long lVar9;\n  long in_FS_OFFSET;\n  undefined8 local_80;\n  long local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  long local_60;\n  undefined8 *local_58;\n  int local_50;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/enhance.c",0x359,"ClutImage");\n  }\n  if (*(long *)(param_1 + 0x3450) != 0xabacadab) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35a,"ClutImage"\n                 );\n  }\n  if (*(int *)(param_1 + 0x3418) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/enhance.c","ClutImage",0x35c,&DAT_0041fe36,param_1 + 0x3f8);\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail("clut_image != (Image *) NULL","MagickCore/enhance.c",0x35d,"ClutImage");\n  }\n  if (*(long *)(param_2 + 0x3450) != 0xabacadab) {\n                    \n    __assert_fail("clut_image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35e,\n                  "ClutImage");\n  }\n  iVar2 = SetImageStorageClass(param_1,1,param_4);\n  if (iVar2 == 0) goto LAB_001f2803;\n  if ((((*(int *)(param_1 + 4) == 3) || (*(int *)(param_1 + 4) == 0x21)) &&\n      (*(int *)(param_2 + 4) != 0x21)) && (*(int *)(param_2 + 4) != 3)) {\n    SetImageColorspace(param_1,0x17,param_4);\n  }\n  lVar4 = AcquireQuantumMemory(0x10000,0x58);\n  if (lVar4 == 0) {\n    ThrowMagickException\n              (param_4,"MagickCore/enhance.c","ClutImage",0x367,400,"MemoryAllocationFailed","`%s\'"\n               ,param_1 + 0x3f8);\n    iVar2 = 0;\n    goto LAB_001f2803;\n  }\n  local_80 = 0;\n  iVar2 = *(int *)(param_2 + 0x2f8);\n  uVar5 = AcquireVirtualCacheView(param_2,param_4);\n  lVar9 = 0;\n  uVar6 = (ulong)(iVar2 != 8);\n  lVar8 = lVar4;\n  do {\n    GetPixelInfo(param_2,lVar8);\n    iVar2 = InterpolatePixelInfo\n                      (((double)(*(long *)(param_2 + 0x20) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       ((double)(*(long *)(param_2 + 0x28) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       param_2,uVar5,param_3,lVar8,param_4);\n    if (iVar2 == 0) break;\n    lVar9 = lVar9 + 1;\n    lVar8 = lVar8 + 0x58;\n  } while (lVar9 != 0x10000);\n  DestroyCacheView(uVar5);\n  uVar5 = AcquireAuthenticCacheView(param_1,param_4);\n  iVar3 = GetImagePixelCacheType(param_1);\n  if (((iVar3 == 4) || (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)) &&\n     ((iVar3 = GetImagePixelCacheType(param_1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)))) {\n    lVar7 = GetMagickResourceLimit(7);\n    lVar8 = *(long *)(param_1 + 0x28);\n    lVar9 = lVar8 + 0x3f;\n    if (-1 < lVar8) {\n      lVar9 = lVar8;\n    }\n    bVar1 = 0x7f < lVar8;\n    if (lVar7 < lVar9 >> 6) {\n      lVar8 = GetMagickResourceLimit(7);\n      bVar1 = 1 < lVar8;\n    }\n    lVar8 = 1;\n    if (bVar1) {\n      lVar7 = GetMagickResourceLimit(7);\n      lVar9 = *(long *)(param_1 + 0x28);\n      lVar8 = lVar9 + 0x3f;\n      if (-1 < lVar9) {\n        lVar8 = lVar9;\n      }\n      lVar8 = lVar8 >> 6;\n      if (lVar7 < lVar8) {\n        lVar8 = GetMagickResourceLimit(7);\n      }\n    }\n  }\n  else {\n    uVar6 = GetMagickResourceLimit(7);\n    if (uVar6 < 2) {\n      uVar6 = GetMagickResourceLimit(7);\n      lVar8 = 1;\n      if (uVar6 < 2) goto LAB_001f2957;\n    }\n    uVar6 = GetMagickResourceLimit(7);\n    lVar8 = 2;\n    if (uVar6 < 2) {\n      lVar8 = GetMagickResourceLimit(7);\n    }\n  }\nLAB_001f2957:\n  local_58 = &local_80;\n  local_78 = param_1;\n  local_70 = param_4;\n  local_68 = uVar5;\n  local_60 = lVar4;\n  local_50 = iVar2;\n  GOMP_parallel(FUN_001ef856,&local_78,lVar8,0);\n  iVar2 = local_50;\n  DestroyCacheView(uVar5);\n  RelinquishMagickMemory(lVar4);\n  if ((*(int *)(param_2 + 0x33c) != 0) && ((*(byte *)(*(long *)(param_1 + 0x360) + 0x44) & 2) != 0))\n  {\n    SetImageAlphaChannel(param_1,1,param_4);\n  }\nLAB_001f2803:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }\n                    \n  __stack_chk_fail();\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "long lVar4;" (sized_type_specifier "long" (long "long")) (identifier "lVar4") (; ";")) (declaration "undefined8 uVar5;" (type_identifier "undefined8") (identifier "uVar5") (; ";")) (declaration "ulong uVar6;" (type_identifier "ulong") (identifier "uVar6") (; ";")) (declaration "long lVar7;" (sized_type_specifier "long" (long "long")) (identifier "lVar7") (; ";")) (declaration "long lVar8;" (sized_type_specifier "long" (long "long")) (identifier "lVar8") (; ";")) (declaration "long lVar9;" (sized_type_specifier "long" (long "long")) (identifier "lVar9") (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "undefined8 local_80;" (type_identifier "undefined8") (identifier "local_80") (; ";")) (declaration "long local_78;" (sized_type_specifier "long" (long "long")) (identifier "local_78") (; ";")) (declaration "undefined8 local_70;" (type_identifier "undefined8") (identifier "local_70") (; ";")) (declaration "undefined8 local_68;" (type_identifier "undefined8") (identifier "local_68") (; ";")) (declaration "long local_60;" (sized_type_specifier "long" (long "long")) (identifier "local_60") (; ";")) (declaration "undefined8 *local_58;" (type_identifier "undefined8") (pointer_declarator "*local_58" (* "*") (identifier "local_58")) (; ";")) (declaration "int local_50;" (primitive_type "int") (identifier "local_50") (; ";")) (declaration "long local_40;" (sized_type_specifier "long" (long "long")) (identifier "local_40") (; ";")) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (= "=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (if_statement "if (param_1 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/enhance.c",0x359,"ClutImage");\n  }" (if "if") (parenthesized_expression "(param_1 == 0)" (( "(") (binary_expression "param_1 == 0" (identifier "param_1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/enhance.c",0x359,"ClutImage");\n  }" ({ "{") (expression_statement "__assert_fail("image != (Image *) NULL","MagickCore/enhance.c",0x359,"ClutImage");" (call_expression "__assert_fail("image != (Image *) NULL","MagickCore/enhance.c",0x359,"ClutImage")" (identifier "__assert_fail") (argument_list "("image != (Image *) NULL","MagickCore/enhance.c",0x359,"ClutImage")" (( "(") (string_literal ""image != (Image *) NULL"" (" """) (string_content "image != (Image *) NULL") (" """)) (, ",") (string_literal ""MagickCore/enhance.c"" (" """) (string_content "MagickCore/enhance.c") (" """)) (, ",") (number_literal "0x359") (, ",") (string_literal ""ClutImage"" (" """) (string_content "ClutImage") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(long *)(param_1 + 0x3450) != 0xabacadab) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35a,"ClutImage"\n                 );\n  }" (if "if") (parenthesized_expression "(*(long *)(param_1 + 0x3450) != 0xabacadab)" (( "(") (binary_expression "*(long *)(param_1 + 0x3450) != 0xabacadab" (pointer_expression "*(long *)(param_1 + 0x3450)" (* "*") (cast_expression "(long *)(param_1 + 0x3450)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x3450)" (( "(") (binary_expression "param_1 + 0x3450" (identifier "param_1") (+ "+") (number_literal "0x3450")) () ")")))) (!= "!=") (number_literal "0xabacadab")) () ")")) (compound_statement "{\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35a,"ClutImage"\n                 );\n  }" ({ "{") (expression_statement "__assert_fail("image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35a,"ClutImage"\n                 );" (call_expression "__assert_fail("image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35a,"ClutImage"\n                 )" (identifier "__assert_fail") (argument_list "("image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35a,"ClutImage"\n                 )" (( "(") (string_literal ""image->signature == MagickCoreSignature"" (" """) (string_content "image->signature == MagickCoreSignature") (" """)) (, ",") (string_literal ""MagickCore/enhance.c"" (" """) (string_content "MagickCore/enhance.c") (" """)) (, ",") (number_literal "0x35a") (, ",") (string_literal ""ClutImage"" (" """) (string_content "ClutImage") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0x3418) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/enhance.c","ClutImage",0x35c,&DAT_0041fe36,param_1 + 0x3f8);\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x3418) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x3418) != 0" (pointer_expression "*(int *)(param_1 + 0x3418)" (* "*") (cast_expression "(int *)(param_1 + 0x3418)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x3418)" (( "(") (binary_expression "param_1 + 0x3418" (identifier "param_1") (+ "+") (number_literal "0x3418")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    LogMagickEvent(0x8000,"MagickCore/enhance.c","ClutImage",0x35c,&DAT_0041fe36,param_1 + 0x3f8);\n  }" ({ "{") (expression_statement "LogMagickEvent(0x8000,"MagickCore/enhance.c","ClutImage",0x35c,&DAT_0041fe36,param_1 + 0x3f8);" (call_expression "LogMagickEvent(0x8000,"MagickCore/enhance.c","ClutImage",0x35c,&DAT_0041fe36,param_1 + 0x3f8)" (identifier "LogMagickEvent") (argument_list "(0x8000,"MagickCore/enhance.c","ClutImage",0x35c,&DAT_0041fe36,param_1 + 0x3f8)" (( "(") (number_literal "0x8000") (, ",") (string_literal ""MagickCore/enhance.c"" (" """) (string_content "MagickCore/enhance.c") (" """)) (, ",") (string_literal ""ClutImage"" (" """) (string_content "ClutImage") (" """)) (, ",") (number_literal "0x35c") (, ",") (pointer_expression "&DAT_0041fe36" (& "&") (identifier "DAT_0041fe36")) (, ",") (binary_expression "param_1 + 0x3f8" (identifier "param_1") (+ "+") (number_literal "0x3f8")) () ")"))) (; ";")) (} "}"))) (if_statement "if (param_2 == 0) {\n                    \n    __assert_fail("clut_image != (Image *) NULL","MagickCore/enhance.c",0x35d,"ClutImage");\n  }" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    __assert_fail("clut_image != (Image *) NULL","MagickCore/enhance.c",0x35d,"ClutImage");\n  }" ({ "{") (expression_statement "__assert_fail("clut_image != (Image *) NULL","MagickCore/enhance.c",0x35d,"ClutImage");" (call_expression "__assert_fail("clut_image != (Image *) NULL","MagickCore/enhance.c",0x35d,"ClutImage")" (identifier "__assert_fail") (argument_list "("clut_image != (Image *) NULL","MagickCore/enhance.c",0x35d,"ClutImage")" (( "(") (string_literal ""clut_image != (Image *) NULL"" (" """) (string_content "clut_image != (Image *) NULL") (" """)) (, ",") (string_literal ""MagickCore/enhance.c"" (" """) (string_content "MagickCore/enhance.c") (" """)) (, ",") (number_literal "0x35d") (, ",") (string_literal ""ClutImage"" (" """) (string_content "ClutImage") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(long *)(param_2 + 0x3450) != 0xabacadab) {\n                    \n    __assert_fail("clut_image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35e,\n                  "ClutImage");\n  }" (if "if") (parenthesized_expression "(*(long *)(param_2 + 0x3450) != 0xabacadab)" (( "(") (binary_expression "*(long *)(param_2 + 0x3450) != 0xabacadab" (pointer_expression "*(long *)(param_2 + 0x3450)" (* "*") (cast_expression "(long *)(param_2 + 0x3450)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x3450)" (( "(") (binary_expression "param_2 + 0x3450" (identifier "param_2") (+ "+") (number_literal "0x3450")) () ")")))) (!= "!=") (number_literal "0xabacadab")) () ")")) (compound_statement "{\n                    \n    __assert_fail("clut_image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35e,\n                  "ClutImage");\n  }" ({ "{") (expression_statement "__assert_fail("clut_image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35e,\n                  "ClutImage");" (call_expression "__assert_fail("clut_image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35e,\n                  "ClutImage")" (identifier "__assert_fail") (argument_list "("clut_image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35e,\n                  "ClutImage")" (( "(") (string_literal ""clut_image->signature == MagickCoreSignature"" (" """) (string_content "clut_image->signature == MagickCoreSignature") (" """)) (, ",") (string_literal ""MagickCore/enhance.c"" (" """) (string_content "MagickCore/enhance.c") (" """)) (, ",") (number_literal "0x35e") (, ",") (string_literal ""ClutImage"" (" """) (string_content "ClutImage") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar2 = SetImageStorageClass(param_1,1,param_4);" (assignment_expression "iVar2 = SetImageStorageClass(param_1,1,param_4)" (identifier "iVar2") (= "=") (call_expression "SetImageStorageClass(param_1,1,param_4)" (identifier "SetImageStorageClass") (argument_list "(param_1,1,param_4)" (( "(") (identifier "param_1") (, ",") (number_literal "1") (, ",") (identifier "param_4") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) goto LAB_001f2803;" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001f2803;" (goto "goto") (statement_identifier "LAB_001f2803") (; ";"))) (if_statement "if ((((*(int *)(param_1 + 4) == 3) || (*(int *)(param_1 + 4) == 0x21)) &&\n      (*(int *)(param_2 + 4) != 0x21)) && (*(int *)(param_2 + 4) != 3)) {\n    SetImageColorspace(param_1,0x17,param_4);\n  }" (if "if") (parenthesized_expression "((((*(int *)(param_1 + 4) == 3) || (*(int *)(param_1 + 4) == 0x21)) &&\n      (*(int *)(param_2 + 4) != 0x21)) && (*(int *)(param_2 + 4) != 3))" (( "(") (binary_expression "(((*(int *)(param_1 + 4) == 3) || (*(int *)(param_1 + 4) == 0x21)) &&\n      (*(int *)(param_2 + 4) != 0x21)) && (*(int *)(param_2 + 4) != 3)" (parenthesized_expression "(((*(int *)(param_1 + 4) == 3) || (*(int *)(param_1 + 4) == 0x21)) &&\n      (*(int *)(param_2 + 4) != 0x21))" (( "(") (binary_expression "((*(int *)(param_1 + 4) == 3) || (*(int *)(param_1 + 4) == 0x21)) &&\n      (*(int *)(param_2 + 4) != 0x21)" (parenthesized_expression "((*(int *)(param_1 + 4) == 3) || (*(int *)(param_1 + 4) == 0x21))" (( "(") (binary_expression "(*(int *)(param_1 + 4) == 3) || (*(int *)(param_1 + 4) == 0x21)" (parenthesized_expression "(*(int *)(param_1 + 4) == 3)" (( "(") (binary_expression "*(int *)(param_1 + 4) == 3" (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "3")) () ")")) (|| "||") (parenthesized_expression "(*(int *)(param_1 + 4) == 0x21)" (( "(") (binary_expression "*(int *)(param_1 + 4) == 0x21" (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "0x21")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(param_2 + 4) != 0x21)" (( "(") (binary_expression "*(int *)(param_2 + 4) != 0x21" (pointer_expression "*(int *)(param_2 + 4)" (* "*") (cast_expression "(int *)(param_2 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 4)" (( "(") (binary_expression "param_2 + 4" (identifier "param_2") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "0x21")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(param_2 + 4) != 3)" (( "(") (binary_expression "*(int *)(param_2 + 4) != 3" (pointer_expression "*(int *)(param_2 + 4)" (* "*") (cast_expression "(int *)(param_2 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 4)" (( "(") (binary_expression "param_2 + 4" (identifier "param_2") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "3")) () ")"))) () ")")) (compound_statement "{\n    SetImageColorspace(param_1,0x17,param_4);\n  }" ({ "{") (expression_statement "SetImageColorspace(param_1,0x17,param_4);" (call_expression "SetImageColorspace(param_1,0x17,param_4)" (identifier "SetImageColorspace") (argument_list "(param_1,0x17,param_4)" (( "(") (identifier "param_1") (, ",") (number_literal "0x17") (, ",") (identifier "param_4") () ")"))) (; ";")) (} "}"))) (expression_statement "lVar4 = AcquireQuantumMemory(0x10000,0x58);" (assignment_expression "lVar4 = AcquireQuantumMemory(0x10000,0x58)" (identifier "lVar4") (= "=") (call_expression "AcquireQuantumMemory(0x10000,0x58)" (identifier "AcquireQuantumMemory") (argument_list "(0x10000,0x58)" (( "(") (number_literal "0x10000") (, ",") (number_literal "0x58") () ")")))) (; ";")) (if_statement "if (lVar4 == 0) {\n    ThrowMagickException\n              (param_4,"MagickCore/enhance.c","ClutImage",0x367,400,"MemoryAllocationFailed","`%s\'"\n               ,param_1 + 0x3f8);\n    iVar2 = 0;\n    goto LAB_001f2803;\n  }" (if "if") (parenthesized_expression "(lVar4 == 0)" (( "(") (binary_expression "lVar4 == 0" (identifier "lVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    ThrowMagickException\n              (param_4,"MagickCore/enhance.c","ClutImage",0x367,400,"MemoryAllocationFailed","`%s\'"\n               ,param_1 + 0x3f8);\n    iVar2 = 0;\n    goto LAB_001f2803;\n  }" ({ "{") (expression_statement "ThrowMagickException\n              (param_4,"MagickCore/enhance.c","ClutImage",0x367,400,"MemoryAllocationFailed","`%s\'"\n               ,param_1 + 0x3f8);" (call_expression "ThrowMagickException\n              (param_4,"MagickCore/enhance.c","ClutImage",0x367,400,"MemoryAllocationFailed","`%s\'"\n               ,param_1 + 0x3f8)" (identifier "ThrowMagickException") (argument_list "(param_4,"MagickCore/enhance.c","ClutImage",0x367,400,"MemoryAllocationFailed","`%s\'"\n               ,param_1 + 0x3f8)" (( "(") (identifier "param_4") (, ",") (string_literal ""MagickCore/enhance.c"" (" """) (string_content "MagickCore/enhance.c") (" """)) (, ",") (string_literal ""ClutImage"" (" """) (string_content "ClutImage") (" """)) (, ",") (number_literal "0x367") (, ",") (number_literal "400") (, ",") (string_literal ""MemoryAllocationFailed"" (" """) (string_content "MemoryAllocationFailed") (" """)) (, ",") (string_literal ""`%s\'"" (" """) (string_content "`%s") (escape_sequence "\'") (" """)) (, ",") (binary_expression "param_1 + 0x3f8" (identifier "param_1") (+ "+") (number_literal "0x3f8")) () ")"))) (; ";")) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" (identifier "iVar2") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_001f2803;" (goto "goto") (statement_identifier "LAB_001f2803") (; ";")) (} "}"))) (expression_statement "local_80 = 0;" (assignment_expression "local_80 = 0" (identifier "local_80") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar2 = *(int *)(param_2 + 0x2f8);" (assignment_expression "iVar2 = *(int *)(param_2 + 0x2f8)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(param_2 + 0x2f8)" (* "*") (cast_expression "(int *)(param_2 + 0x2f8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x2f8)" (( "(") (binary_expression "param_2 + 0x2f8" (identifier "param_2") (+ "+") (number_literal "0x2f8")) () ")"))))) (; ";")) (expression_statement "uVar5 = AcquireVirtualCacheView(param_2,param_4);" (assignment_expression "uVar5 = AcquireVirtualCacheView(param_2,param_4)" (identifier "uVar5") (= "=") (call_expression "AcquireVirtualCacheView(param_2,param_4)" (identifier "AcquireVirtualCacheView") (argument_list "(param_2,param_4)" (( "(") (identifier "param_2") (, ",") (identifier "param_4") () ")")))) (; ";")) (expression_statement "lVar9 = 0;" (assignment_expression "lVar9 = 0" (identifier "lVar9") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar6 = (ulong)(iVar2 != 8);" (assignment_expression "uVar6 = (ulong)(iVar2 != 8)" (identifier "uVar6") (= "=") (call_expression "(ulong)(iVar2 != 8)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(iVar2 != 8)" (( "(") (binary_expression "iVar2 != 8" (identifier "iVar2") (!= "!=") (number_literal "8")) () ")")))) (; ";")) (expression_statement "lVar8 = lVar4;" (assignment_expression "lVar8 = lVar4" (identifier "lVar8") (= "=") (identifier "lVar4")) (; ";")) (do_statement "do {\n    GetPixelInfo(param_2,lVar8);\n    iVar2 = InterpolatePixelInfo\n                      (((double)(*(long *)(param_2 + 0x20) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       ((double)(*(long *)(param_2 + 0x28) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       param_2,uVar5,param_3,lVar8,param_4);\n    if (iVar2 == 0) break;\n    lVar9 = lVar9 + 1;\n    lVar8 = lVar8 + 0x58;\n  } while (lVar9 != 0x10000);" (do "do") (compound_statement "{\n    GetPixelInfo(param_2,lVar8);\n    iVar2 = InterpolatePixelInfo\n                      (((double)(*(long *)(param_2 + 0x20) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       ((double)(*(long *)(param_2 + 0x28) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       param_2,uVar5,param_3,lVar8,param_4);\n    if (iVar2 == 0) break;\n    lVar9 = lVar9 + 1;\n    lVar8 = lVar8 + 0x58;\n  }" ({ "{") (expression_statement "GetPixelInfo(param_2,lVar8);" (call_expression "GetPixelInfo(param_2,lVar8)" (identifier "GetPixelInfo") (argument_list "(param_2,lVar8)" (( "(") (identifier "param_2") (, ",") (identifier "lVar8") () ")"))) (; ";")) (expression_statement "iVar2 = InterpolatePixelInfo\n                      (((double)(*(long *)(param_2 + 0x20) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       ((double)(*(long *)(param_2 + 0x28) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       param_2,uVar5,param_3,lVar8,param_4);" (assignment_expression "iVar2 = InterpolatePixelInfo\n                      (((double)(*(long *)(param_2 + 0x20) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       ((double)(*(long *)(param_2 + 0x28) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       param_2,uVar5,param_3,lVar8,param_4)" (identifier "iVar2") (= "=") (call_expression "InterpolatePixelInfo\n                      (((double)(*(long *)(param_2 + 0x20) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       ((double)(*(long *)(param_2 + 0x28) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       param_2,uVar5,param_3,lVar8,param_4)" (identifier "InterpolatePixelInfo") (argument_list "(((double)(*(long *)(param_2 + 0x20) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       ((double)(*(long *)(param_2 + 0x28) - uVar6) * (double)lVar9) / DAT_003f95f8,\n                       param_2,uVar5,param_3,lVar8,param_4)" (( "(") (binary_expression "((double)(*(long *)(param_2 + 0x20) - uVar6) * (double)lVar9) / DAT_003f95f8" (parenthesized_expression "((double)(*(long *)(param_2 + 0x20) - uVar6) * (double)lVar9)" (( "(") (binary_expression "(double)(*(long *)(param_2 + 0x20) - uVar6) * (double)lVar9" (cast_expression "(double)(*(long *)(param_2 + 0x20) - uVar6)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (parenthesized_expression "(*(long *)(param_2 + 0x20) - uVar6)" (( "(") (binary_expression "*(long *)(param_2 + 0x20) - uVar6" (pointer_expression "*(long *)(param_2 + 0x20)" (* "*") (cast_expression "(long *)(param_2 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x20)" (( "(") (binary_expression "param_2 + 0x20" (identifier "param_2") (+ "+") (number_literal "0x20")) () ")")))) (- "-") (identifier "uVar6")) () ")"))) (* "*") (cast_expression "(double)lVar9" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "lVar9"))) () ")")) (/ "/") (identifier "DAT_003f95f8")) (, ",") (binary_expression "((double)(*(long *)(param_2 + 0x28) - uVar6) * (double)lVar9) / DAT_003f95f8" (parenthesized_expression "((double)(*(long *)(param_2 + 0x28) - uVar6) * (double)lVar9)" (( "(") (binary_expression "(double)(*(long *)(param_2 + 0x28) - uVar6) * (double)lVar9" (cast_expression "(double)(*(long *)(param_2 + 0x28) - uVar6)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (parenthesized_expression "(*(long *)(param_2 + 0x28) - uVar6)" (( "(") (binary_expression "*(long *)(param_2 + 0x28) - uVar6" (pointer_expression "*(long *)(param_2 + 0x28)" (* "*") (cast_expression "(long *)(param_2 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x28)" (( "(") (binary_expression "param_2 + 0x28" (identifier "param_2") (+ "+") (number_literal "0x28")) () ")")))) (- "-") (identifier "uVar6")) () ")"))) (* "*") (cast_expression "(double)lVar9" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "lVar9"))) () ")")) (/ "/") (identifier "DAT_003f95f8")) (, ",") (identifier "param_2") (, ",") (identifier "uVar5") (, ",") (identifier "param_3") (, ",") (identifier "lVar8") (, ",") (identifier "param_4") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) break;" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar9 = lVar9 + 1;" (assignment_expression "lVar9 = lVar9 + 1" (identifier "lVar9") (= "=") (binary_expression "lVar9 + 1" (identifier "lVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "lVar8 = lVar8 + 0x58;" (assignment_expression "lVar8 = lVar8 + 0x58" (identifier "lVar8") (= "=") (binary_expression "lVar8 + 0x58" (identifier "lVar8") (+ "+") (number_literal "0x58"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(lVar9 != 0x10000)" (( "(") (binary_expression "lVar9 != 0x10000" (identifier "lVar9") (!= "!=") (number_literal "0x10000")) () ")")) (; ";")) (expression_statement "DestroyCacheView(uVar5);" (call_expression "DestroyCacheView(uVar5)" (identifier "DestroyCacheView") (argument_list "(uVar5)" (( "(") (identifier "uVar5") () ")"))) (; ";")) (expression_statement "uVar5 = AcquireAuthenticCacheView(param_1,param_4);" (assignment_expression "uVar5 = AcquireAuthenticCacheView(param_1,param_4)" (identifier "uVar5") (= "=") (call_expression "AcquireAuthenticCacheView(param_1,param_4)" (identifier "AcquireAuthenticCacheView") (argument_list "(param_1,param_4)" (( "(") (identifier "param_1") (, ",") (identifier "param_4") () ")")))) (; ";")) (expression_statement "iVar3 = GetImagePixelCacheType(param_1);" (assignment_expression "iVar3 = GetImagePixelCacheType(param_1)" (identifier "iVar3") (= "=") (call_expression "GetImagePixelCacheType(param_1)" (identifier "GetImagePixelCacheType") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (((iVar3 == 4) || (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)) &&\n     ((iVar3 = GetImagePixelCacheType(param_1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)))) {\n    lVar7 = GetMagickResourceLimit(7);\n    lVar8 = *(long *)(param_1 + 0x28);\n    lVar9 = lVar8 + 0x3f;\n    if (-1 < lVar8) {\n      lVar9 = lVar8;\n    }\n    bVar1 = 0x7f < lVar8;\n    if (lVar7 < lVar9 >> 6) {\n      lVar8 = GetMagickResourceLimit(7);\n      bVar1 = 1 < lVar8;\n    }\n    lVar8 = 1;\n    if (bVar1) {\n      lVar7 = GetMagickResourceLimit(7);\n      lVar9 = *(long *)(param_1 + 0x28);\n      lVar8 = lVar9 + 0x3f;\n      if (-1 < lVar9) {\n        lVar8 = lVar9;\n      }\n      lVar8 = lVar8 >> 6;\n      if (lVar7 < lVar8) {\n        lVar8 = GetMagickResourceLimit(7);\n      }\n    }\n  }\n  else {\n    uVar6 = GetMagickResourceLimit(7);\n    if (uVar6 < 2) {\n      uVar6 = GetMagickResourceLimit(7);\n      lVar8 = 1;\n      if (uVar6 < 2) goto LAB_001f2957;\n    }\n    uVar6 = GetMagickResourceLimit(7);\n    lVar8 = 2;\n    if (uVar6 < 2) {\n      lVar8 = GetMagickResourceLimit(7);\n    }\n  }" (if "if") (parenthesized_expression "(((iVar3 == 4) || (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)) &&\n     ((iVar3 = GetImagePixelCacheType(param_1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3))))" (( "(") (binary_expression "((iVar3 == 4) || (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)) &&\n     ((iVar3 = GetImagePixelCacheType(param_1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)))" (parenthesized_expression "((iVar3 == 4) || (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3))" (( "(") (binary_expression "(iVar3 == 4) || (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)" (parenthesized_expression "(iVar3 == 4)" (( "(") (binary_expression "iVar3 == 4" (identifier "iVar3") (== "==") (number_literal "4")) () ")")) (|| "||") (parenthesized_expression "(iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)" (( "(") (comma_expression "iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3" (assignment_expression "iVar3 = GetImagePixelCacheType(param_1)" (identifier "iVar3") (= "=") (call_expression "GetImagePixelCacheType(param_1)" (identifier "GetImagePixelCacheType") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (, ",") (binary_expression "iVar3 == 3" (identifier "iVar3") (== "==") (number_literal "3"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((iVar3 = GetImagePixelCacheType(param_1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)))" (( "(") (parenthesized_expression "(iVar3 = GetImagePixelCacheType(param_1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3))" (( "(") (comma_expression "iVar3 = GetImagePixelCacheType(param_1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)" (assignment_expression "iVar3 = GetImagePixelCacheType(param_1)" (identifier "iVar3") (= "=") (call_expression "GetImagePixelCacheType(param_1)" (identifier "GetImagePixelCacheType") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (, ",") (binary_expression "iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)" (binary_expression "iVar3 == 4" (identifier "iVar3") (== "==") (number_literal "4")) (|| "||") (parenthesized_expression "(iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)" (( "(") (comma_expression "iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3" (assignment_expression "iVar3 = GetImagePixelCacheType(param_1)" (identifier "iVar3") (= "=") (call_expression "GetImagePixelCacheType(param_1)" (identifier "GetImagePixelCacheType") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (, ",") (binary_expression "iVar3 == 3" (identifier "iVar3") (== "==") (number_literal "3"))) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n    lVar7 = GetMagickResourceLimit(7);\n    lVar8 = *(long *)(param_1 + 0x28);\n    lVar9 = lVar8 + 0x3f;\n    if (-1 < lVar8) {\n      lVar9 = lVar8;\n    }\n    bVar1 = 0x7f < lVar8;\n    if (lVar7 < lVar9 >> 6) {\n      lVar8 = GetMagickResourceLimit(7);\n      bVar1 = 1 < lVar8;\n    }\n    lVar8 = 1;\n    if (bVar1) {\n      lVar7 = GetMagickResourceLimit(7);\n      lVar9 = *(long *)(param_1 + 0x28);\n      lVar8 = lVar9 + 0x3f;\n      if (-1 < lVar9) {\n        lVar8 = lVar9;\n      }\n      lVar8 = lVar8 >> 6;\n      if (lVar7 < lVar8) {\n        lVar8 = GetMagickResourceLimit(7);\n      }\n    }\n  }" ({ "{") (expression_statement "lVar7 = GetMagickResourceLimit(7);" (assignment_expression "lVar7 = GetMagickResourceLimit(7)" (identifier "lVar7") (= "=") (call_expression "GetMagickResourceLimit(7)" (identifier "GetMagickResourceLimit") (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (expression_statement "lVar8 = *(long *)(param_1 + 0x28);" (assignment_expression "lVar8 = *(long *)(param_1 + 0x28)" (identifier "lVar8") (= "=") (pointer_expression "*(long *)(param_1 + 0x28)" (* "*") (cast_expression "(long *)(param_1 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "lVar9 = lVar8 + 0x3f;" (assignment_expression "lVar9 = lVar8 + 0x3f" (identifier "lVar9") (= "=") (binary_expression "lVar8 + 0x3f" (identifier "lVar8") (+ "+") (number_literal "0x3f"))) (; ";")) (if_statement "if (-1 < lVar8) {\n      lVar9 = lVar8;\n    }" (if "if") (parenthesized_expression "(-1 < lVar8)" (( "(") (binary_expression "-1 < lVar8" (number_literal "-1") (< "<") (identifier "lVar8")) () ")")) (compound_statement "{\n      lVar9 = lVar8;\n    }" ({ "{") (expression_statement "lVar9 = lVar8;" (assignment_expression "lVar9 = lVar8" (identifier "lVar9") (= "=") (identifier "lVar8")) (; ";")) (} "}"))) (expression_statement "bVar1 = 0x7f < lVar8;" (assignment_expression "bVar1 = 0x7f < lVar8" (identifier "bVar1") (= "=") (binary_expression "0x7f < lVar8" (number_literal "0x7f") (< "<") (identifier "lVar8"))) (; ";")) (if_statement "if (lVar7 < lVar9 >> 6) {\n      lVar8 = GetMagickResourceLimit(7);\n      bVar1 = 1 < lVar8;\n    }" (if "if") (parenthesized_expression "(lVar7 < lVar9 >> 6)" (( "(") (binary_expression "lVar7 < lVar9 >> 6" (identifier "lVar7") (< "<") (binary_expression "lVar9 >> 6" (identifier "lVar9") (>> ">>") (number_literal "6"))) () ")")) (compound_statement "{\n      lVar8 = GetMagickResourceLimit(7);\n      bVar1 = 1 < lVar8;\n    }" ({ "{") (expression_statement "lVar8 = GetMagickResourceLimit(7);" (assignment_expression "lVar8 = GetMagickResourceLimit(7)" (identifier "lVar8") (= "=") (call_expression "GetMagickResourceLimit(7)" (identifier "GetMagickResourceLimit") (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (expression_statement "bVar1 = 1 < lVar8;" (assignment_expression "bVar1 = 1 < lVar8" (identifier "bVar1") (= "=") (binary_expression "1 < lVar8" (number_literal "1") (< "<") (identifier "lVar8"))) (; ";")) (} "}"))) (expression_statement "lVar8 = 1;" (assignment_expression "lVar8 = 1" (identifier "lVar8") (= "=") (number_literal "1")) (; ";")) (if_statement "if (bVar1) {\n      lVar7 = GetMagickResourceLimit(7);\n      lVar9 = *(long *)(param_1 + 0x28);\n      lVar8 = lVar9 + 0x3f;\n      if (-1 < lVar9) {\n        lVar8 = lVar9;\n      }\n      lVar8 = lVar8 >> 6;\n      if (lVar7 < lVar8) {\n        lVar8 = GetMagickResourceLimit(7);\n      }\n    }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\n      lVar7 = GetMagickResourceLimit(7);\n      lVar9 = *(long *)(param_1 + 0x28);\n      lVar8 = lVar9 + 0x3f;\n      if (-1 < lVar9) {\n        lVar8 = lVar9;\n      }\n      lVar8 = lVar8 >> 6;\n      if (lVar7 < lVar8) {\n        lVar8 = GetMagickResourceLimit(7);\n      }\n    }" ({ "{") (expression_statement "lVar7 = GetMagickResourceLimit(7);" (assignment_expression "lVar7 = GetMagickResourceLimit(7)" (identifier "lVar7") (= "=") (call_expression "GetMagickResourceLimit(7)" (identifier "GetMagickResourceLimit") (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (expression_statement "lVar9 = *(long *)(param_1 + 0x28);" (assignment_expression "lVar9 = *(long *)(param_1 + 0x28)" (identifier "lVar9") (= "=") (pointer_expression "*(long *)(param_1 + 0x28)" (* "*") (cast_expression "(long *)(param_1 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "lVar8 = lVar9 + 0x3f;" (assignment_expression "lVar8 = lVar9 + 0x3f" (identifier "lVar8") (= "=") (binary_expression "lVar9 + 0x3f" (identifier "lVar9") (+ "+") (number_literal "0x3f"))) (; ";")) (if_statement "if (-1 < lVar9) {\n        lVar8 = lVar9;\n      }" (if "if") (parenthesized_expression "(-1 < lVar9)" (( "(") (binary_expression "-1 < lVar9" (number_literal "-1") (< "<") (identifier "lVar9")) () ")")) (compound_statement "{\n        lVar8 = lVar9;\n      }" ({ "{") (expression_statement "lVar8 = lVar9;" (assignment_expression "lVar8 = lVar9" (identifier "lVar8") (= "=") (identifier "lVar9")) (; ";")) (} "}"))) (expression_statement "lVar8 = lVar8 >> 6;" (assignment_expression "lVar8 = lVar8 >> 6" (identifier "lVar8") (= "=") (binary_expression "lVar8 >> 6" (identifier "lVar8") (>> ">>") (number_literal "6"))) (; ";")) (if_statement "if (lVar7 < lVar8) {\n        lVar8 = GetMagickResourceLimit(7);\n      }" (if "if") (parenthesized_expression "(lVar7 < lVar8)" (( "(") (binary_expression "lVar7 < lVar8" (identifier "lVar7") (< "<") (identifier "lVar8")) () ")")) (compound_statement "{\n        lVar8 = GetMagickResourceLimit(7);\n      }" ({ "{") (expression_statement "lVar8 = GetMagickResourceLimit(7);" (assignment_expression "lVar8 = GetMagickResourceLimit(7)" (identifier "lVar8") (= "=") (call_expression "GetMagickResourceLimit(7)" (identifier "GetMagickResourceLimit") (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n    uVar6 = GetMagickResourceLimit(7);\n    if (uVar6 < 2) {\n      uVar6 = GetMagickResourceLimit(7);\n      lVar8 = 1;\n      if (uVar6 < 2) goto LAB_001f2957;\n    }\n    uVar6 = GetMagickResourceLimit(7);\n    lVar8 = 2;\n    if (uVar6 < 2) {\n      lVar8 = GetMagickResourceLimit(7);\n    }\n  }" (else "else") (compound_statement "{\n    uVar6 = GetMagickResourceLimit(7);\n    if (uVar6 < 2) {\n      uVar6 = GetMagickResourceLimit(7);\n      lVar8 = 1;\n      if (uVar6 < 2) goto LAB_001f2957;\n    }\n    uVar6 = GetMagickResourceLimit(7);\n    lVar8 = 2;\n    if (uVar6 < 2) {\n      lVar8 = GetMagickResourceLimit(7);\n    }\n  }" ({ "{") (expression_statement "uVar6 = GetMagickResourceLimit(7);" (assignment_expression "uVar6 = GetMagickResourceLimit(7)" (identifier "uVar6") (= "=") (call_expression "GetMagickResourceLimit(7)" (identifier "GetMagickResourceLimit") (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (if_statement "if (uVar6 < 2) {\n      uVar6 = GetMagickResourceLimit(7);\n      lVar8 = 1;\n      if (uVar6 < 2) goto LAB_001f2957;\n    }" (if "if") (parenthesized_expression "(uVar6 < 2)" (( "(") (binary_expression "uVar6 < 2" (identifier "uVar6") (< "<") (number_literal "2")) () ")")) (compound_statement "{\n      uVar6 = GetMagickResourceLimit(7);\n      lVar8 = 1;\n      if (uVar6 < 2) goto LAB_001f2957;\n    }" ({ "{") (expression_statement "uVar6 = GetMagickResourceLimit(7);" (assignment_expression "uVar6 = GetMagickResourceLimit(7)" (identifier "uVar6") (= "=") (call_expression "GetMagickResourceLimit(7)" (identifier "GetMagickResourceLimit") (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (expression_statement "lVar8 = 1;" (assignment_expression "lVar8 = 1" (identifier "lVar8") (= "=") (number_literal "1")) (; ";")) (if_statement "if (uVar6 < 2) goto LAB_001f2957;" (if "if") (parenthesized_expression "(uVar6 < 2)" (( "(") (binary_expression "uVar6 < 2" (identifier "uVar6") (< "<") (number_literal "2")) () ")")) (goto_statement "goto LAB_001f2957;" (goto "goto") (statement_identifier "LAB_001f2957") (; ";"))) (} "}"))) (expression_statement "uVar6 = GetMagickResourceLimit(7);" (assignment_expression "uVar6 = GetMagickResourceLimit(7)" (identifier "uVar6") (= "=") (call_expression "GetMagickResourceLimit(7)" (identifier "GetMagickResourceLimit") (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (expression_statement "lVar8 = 2;" (assignment_expression "lVar8 = 2" (identifier "lVar8") (= "=") (number_literal "2")) (; ";")) (if_statement "if (uVar6 < 2) {\n      lVar8 = GetMagickResourceLimit(7);\n    }" (if "if") (parenthesized_expression "(uVar6 < 2)" (( "(") (binary_expression "uVar6 < 2" (identifier "uVar6") (< "<") (number_literal "2")) () ")")) (compound_statement "{\n      lVar8 = GetMagickResourceLimit(7);\n    }" ({ "{") (expression_statement "lVar8 = GetMagickResourceLimit(7);" (assignment_expression "lVar8 = GetMagickResourceLimit(7)" (identifier "lVar8") (= "=") (call_expression "GetMagickResourceLimit(7)" (identifier "GetMagickResourceLimit") (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_001f2957:\n  local_58 = &local_80;" (statement_identifier "LAB_001f2957") (: ":") (expression_statement "local_58 = &local_80;" (assignment_expression "local_58 = &local_80" (identifier "local_58") (= "=") (pointer_expression "&local_80" (& "&") (identifier "local_80"))) (; ";"))) (expression_statement "local_78 = param_1;" (assignment_expression "local_78 = param_1" (identifier "local_78") (= "=") (identifier "param_1")) (; ";")) (expression_statement "local_70 = param_4;" (assignment_expression "local_70 = param_4" (identifier "local_70") (= "=") (identifier "param_4")) (; ";")) (expression_statement "local_68 = uVar5;" (assignment_expression "local_68 = uVar5" (identifier "local_68") (= "=") (identifier "uVar5")) (; ";")) (expression_statement "local_60 = lVar4;" (assignment_expression "local_60 = lVar4" (identifier "local_60") (= "=") (identifier "lVar4")) (; ";")) (expression_statement "local_50 = iVar2;" (assignment_expression "local_50 = iVar2" (identifier "local_50") (= "=") (identifier "iVar2")) (; ";")) (expression_statement "GOMP_parallel(FUN_001ef856,&local_78,lVar8,0);" (call_expression "GOMP_parallel(FUN_001ef856,&local_78,lVar8,0)" (identifier "GOMP_parallel") (argument_list "(FUN_001ef856,&local_78,lVar8,0)" (( "(") (identifier "FUN_001ef856") (, ",") (pointer_expression "&local_78" (& "&") (identifier "local_78")) (, ",") (identifier "lVar8") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "iVar2 = local_50;" (assignment_expression "iVar2 = local_50" (identifier "iVar2") (= "=") (identifier "local_50")) (; ";")) (expression_statement "DestroyCacheView(uVar5);" (call_expression "DestroyCacheView(uVar5)" (identifier "DestroyCacheView") (argument_list "(uVar5)" (( "(") (identifier "uVar5") () ")"))) (; ";")) (expression_statement "RelinquishMagickMemory(lVar4);" (call_expression "RelinquishMagickMemory(lVar4)" (identifier "RelinquishMagickMemory") (argument_list "(lVar4)" (( "(") (identifier "lVar4") () ")"))) (; ";")) (if_statement "if ((*(int *)(param_2 + 0x33c) != 0) && ((*(byte *)(*(long *)(param_1 + 0x360) + 0x44) & 2) != 0))\n  {\n    SetImageAlphaChannel(param_1,1,param_4);\n  }" (if "if") (parenthesized_expression "((*(int *)(param_2 + 0x33c) != 0) && ((*(byte *)(*(long *)(param_1 + 0x360) + 0x44) & 2) != 0))" (( "(") (binary_expression "(*(int *)(param_2 + 0x33c) != 0) && ((*(byte *)(*(long *)(param_1 + 0x360) + 0x44) & 2) != 0)" (parenthesized_expression "(*(int *)(param_2 + 0x33c) != 0)" (( "(") (binary_expression "*(int *)(param_2 + 0x33c) != 0" (pointer_expression "*(int *)(param_2 + 0x33c)" (* "*") (cast_expression "(int *)(param_2 + 0x33c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x33c)" (( "(") (binary_expression "param_2 + 0x33c" (identifier "param_2") (+ "+") (number_literal "0x33c")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(*(long *)(param_1 + 0x360) + 0x44) & 2) != 0)" (( "(") (binary_expression "(*(byte *)(*(long *)(param_1 + 0x360) + 0x44) & 2) != 0" (parenthesized_expression "(*(byte *)(*(long *)(param_1 + 0x360) + 0x44) & 2)" (( "(") (binary_expression "*(byte *)(*(long *)(param_1 + 0x360) + 0x44) & 2" (pointer_expression "*(byte *)(*(long *)(param_1 + 0x360) + 0x44)" (* "*") (cast_expression "(byte *)(*(long *)(param_1 + 0x360) + 0x44)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_1 + 0x360) + 0x44)" (( "(") (binary_expression "*(long *)(param_1 + 0x360) + 0x44" (pointer_expression "*(long *)(param_1 + 0x360)" (* "*") (cast_expression "(long *)(param_1 + 0x360)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x360)" (( "(") (binary_expression "param_1 + 0x360" (identifier "param_1") (+ "+") (number_literal "0x360")) () ")")))) (+ "+") (number_literal "0x44")) () ")")))) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    SetImageAlphaChannel(param_1,1,param_4);\n  }" ({ "{") (expression_statement "SetImageAlphaChannel(param_1,1,param_4);" (call_expression "SetImageAlphaChannel(param_1,1,param_4)" (identifier "SetImageAlphaChannel") (argument_list "(param_1,1,param_4)" (( "(") (identifier "param_1") (, ",") (number_literal "1") (, ",") (identifier "param_4") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_001f2803:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }" (statement_identifier "LAB_001f2803") (: ":") (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }" (if "if") (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" (( "(") (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (== "==") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (compound_statement "{\n    return iVar2;\n  }" ({ "{") (return_statement "return iVar2;" (return "return") (identifier "iVar2") (; ";")) (} "}")))) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

/* 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 */
/* WARNING: Enum "LogEventType": Some values do not have unique names */

type_1
function_1(type_2 *var_2,type_2 *var_6,type_3 method,type_4 *exception)

{
  type_3 var_16;
  size_t var_31;
  bool bVar3;
  type_1 var_8;
  type_5 var_27;
  type_6 *var_13;
  type_7 *pCVar6;
  type_8 var_32;
  size_t sVar8;
  type_8 MVar9;
  type_9 var_20;
  type_6 *var_23;
  long var_22;
  long var_1;
  type_10 progress;
  type_2 *local_78;
  type_4 *local_70;
  type_7 *local_68;
  type_6 *local_60;
  type_10 *local_58;
  type_1 local_50;
  long var_38;
  
  var_38 = *(long *)(var_1 + 0x28);
  if (var_2 == (type_2 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_3("image != (Image *) NULL","MagickCore/enhance.c",0x359,"ClutImage");
  }
  if (var_2->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    var_3("image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35a,"ClutImage"
                 );
  }
  if (var_2->debug != var_4) {
    var_5(TraceEvent,"MagickCore/enhance.c","ClutImage",0x35c,"%s",var_2->filename);
  }
  if (var_6 == (type_2 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_3("clut_image != (Image *) NULL","MagickCore/enhance.c",0x35d,"ClutImage");
  }
  if (var_6->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    var_3("clut_image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35e,
                  "ClutImage");
  }
  var_8 = var_7(var_2,DirectClass,exception);
  if (var_8 == var_4) goto LAB_001f2803;
  if ((((var_2->colorspace == var_9) || (var_2->colorspace == var_10)) &&
      (var_6->colorspace != var_10)) &&
     (var_6->colorspace != var_9)) {
    var_11(var_2,sRGBColorspace,exception);
  }
  var_13 = (type_6 *)var_12(0x10000,0x58);
  if (var_13 == (type_6 *)0x0) {
    var_14
              (exception,"MagickCore/enhance.c","ClutImage",0x367,ErrorException,
               "MemoryAllocationFailed","`%s\'",var_2->filename);
    var_8 = var_4;
    goto LAB_001f2803;
  }
  progress = 0;
  var_16 = var_6->interpolate;
  pCVar6 = var_15(var_6,exception);
  var_22 = 0;
  var_20 = (type_9)(var_16 != var_17);
  var_23 = var_13;
  do {
    var_18(var_6,var_23);
    var_8 = var_19
                      (var_6,pCVar6,method,
                       ((double)(var_6->columns - var_20) * (double)var_22) / var_21,
                       ((double)(var_6->rows - var_20) * (double)var_22) / var_21,var_23,
                       exception);
    if (var_8 == var_4) break;
    var_22 = var_22 + 1;
    var_23 = var_23 + 1;
  } while (var_22 != 0x10000);
  var_24(pCVar6);
  pCVar6 = var_25(var_2,exception);
  var_27 = var_26(var_2);
  if (((var_27 == var_28) || (var_27 = var_26(var_2), var_27 == var_29)) &&
     ((var_27 = var_26(var_2), var_27 == var_28 ||
      (var_27 = var_26(var_2), var_27 == var_29)))) {
    var_32 = var_30(ThreadResource);
    var_31 = var_2->rows;
    sVar8 = var_31 + 0x3f;
    if (-1 < (long)var_31) {
      sVar8 = var_31;
    }
    bVar3 = 0x7f < (long)var_31;
    if ((long)var_32 < (long)sVar8 >> 6) {
      var_32 = var_30(ThreadResource);
      bVar3 = 1 < (long)var_32;
    }
    MVar9 = 1;
    if (bVar3) {
      var_32 = var_30(ThreadResource);
      var_31 = var_2->rows;
      sVar8 = var_31 + 0x3f;
      if (-1 < (long)var_31) {
        sVar8 = var_31;
      }
      MVar9 = (long)sVar8 >> 6;
      if ((long)var_32 < (long)MVar9) {
        MVar9 = var_30(ThreadResource);
      }
    }
  }
  else {
    var_32 = var_30(ThreadResource);
    if (var_32 < 2) {
      var_32 = var_30(ThreadResource);
      MVar9 = 1;
      if (var_32 < 2) goto LAB_001f2957;
    }
    var_32 = var_30(ThreadResource);
    MVar9 = 2;
    if (var_32 < 2) {
      MVar9 = var_30(ThreadResource);
    }
  }
LAB_001f2957:
  local_58 = &progress;
  local_78 = var_2;
  local_70 = exception;
  local_68 = pCVar6;
  local_60 = var_13;
  local_50 = var_8;
  var_33(ClutImage__omp_fn_0,&local_78,MVar9,0);
  var_8 = local_50;
  var_24(pCVar6);
  var_34(var_13);
  if ((var_6->alpha_trait != var_35) &&
     ((var_2->channel_map[4].traits & var_36) != var_35)) {
    var_37(var_2,ActivateAlphaChannel,exception);
  }
LAB_001f2803:
  if (var_38 == *(long *)(var_1 + 0x28)) {
    return var_8;
  }
                    /* WARNING: Subroutine does not return */
  var_39();
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (sized_type_specifier) declarator: (identifier)) (parameter_declaration type: (sized_type_specifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (string_literal (string_content)) (number_literal) (pointer_expression argument: (identifier)) (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (string_literal (string_content)) (number_literal) (number_literal) (string_literal (string_content)) (string_literal (string_content) (escape_sequence)) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (identifier)) (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) right: (identifier)) (identifier) (identifier) (identifier) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (number_literal) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (number_literal) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal)))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal)))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier)))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (return_statement (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))))

int MASKED(long param_1,long param_2,undefined4 param_3,undefined8 param_4)

{
  bool bVar1;
  int iVar2;
  int iVar3;
  long lVar4;
  undefined8 uVar5;
  ulong uVar6;
  long lVar7;
  long lVar8;
  long lVar9;
  long in_FS_OFFSET;
  undefined8 local_80;
  long local_78;
  undefined8 local_70;
  undefined8 local_68;
  long local_60;
  undefined8 *local_58;
  int local_50;
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  if (param_1 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image != (Image *) NULL","MagickCore/enhance.c",0x359,"MASKED");
  }
  if (*(long *)(param_1 + 0x3450) != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35a,"MASKED"
                 );
  }
  if (*(int *)(param_1 + 0x3418) != 0) {
    LogMagickEvent(0x8000,"MagickCore/enhance.c","MASKED",0x35c,&DAT_0041fe36,param_1 + 0x3f8);
  }
  if (param_2 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("clut_image != (Image *) NULL","MagickCore/enhance.c",0x35d,"MASKED");
  }
  if (*(long *)(param_2 + 0x3450) != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("clut_image->signature == MagickCoreSignature","MagickCore/enhance.c",0x35e,
                  "MASKED");
  }
  iVar2 = SetImageStorageClass(param_1,1,param_4);
  if (iVar2 == 0) goto LAB_001f2803;
  if ((((*(int *)(param_1 + 4) == 3) || (*(int *)(param_1 + 4) == 0x21)) &&
      (*(int *)(param_2 + 4) != 0x21)) && (*(int *)(param_2 + 4) != 3)) {
    SetImageColorspace(param_1,0x17,param_4);
  }
  lVar4 = AcquireQuantumMemory(0x10000,0x58);
  if (lVar4 == 0) {
    ThrowMagickException
              (param_4,"MagickCore/enhance.c","MASKED",0x367,400,"MemoryAllocationFailed","`%s\'"
               ,param_1 + 0x3f8);
    iVar2 = 0;
    goto LAB_001f2803;
  }
  local_80 = 0;
  iVar2 = *(int *)(param_2 + 0x2f8);
  uVar5 = AcquireVirtualCacheView(param_2,param_4);
  lVar9 = 0;
  uVar6 = (ulong)(iVar2 != 8);
  lVar8 = lVar4;
  do {
    GetPixelInfo(param_2,lVar8);
    iVar2 = InterpolatePixelInfo
                      (((double)(*(long *)(param_2 + 0x20) - uVar6) * (double)lVar9) / DAT_003f95f8,
                       ((double)(*(long *)(param_2 + 0x28) - uVar6) * (double)lVar9) / DAT_003f95f8,
                       param_2,uVar5,param_3,lVar8,param_4);
    if (iVar2 == 0) break;
    lVar9 = lVar9 + 1;
    lVar8 = lVar8 + 0x58;
  } while (lVar9 != 0x10000);
  DestroyCacheView(uVar5);
  uVar5 = AcquireAuthenticCacheView(param_1,param_4);
  iVar3 = GetImagePixelCacheType(param_1);
  if (((iVar3 == 4) || (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)) &&
     ((iVar3 = GetImagePixelCacheType(param_1), iVar3 == 4 ||
      (iVar3 = GetImagePixelCacheType(param_1), iVar3 == 3)))) {
    lVar7 = GetMagickResourceLimit(7);
    lVar8 = *(long *)(param_1 + 0x28);
    lVar9 = lVar8 + 0x3f;
    if (-1 < lVar8) {
      lVar9 = lVar8;
    }
    bVar1 = 0x7f < lVar8;
    if (lVar7 < lVar9 >> 6) {
      lVar8 = GetMagickResourceLimit(7);
      bVar1 = 1 < lVar8;
    }
    lVar8 = 1;
    if (bVar1) {
      lVar7 = GetMagickResourceLimit(7);
      lVar9 = *(long *)(param_1 + 0x28);
      lVar8 = lVar9 + 0x3f;
      if (-1 < lVar9) {
        lVar8 = lVar9;
      }
      lVar8 = lVar8 >> 6;
      if (lVar7 < lVar8) {
        lVar8 = GetMagickResourceLimit(7);
      }
    }
  }
  else {
    uVar6 = GetMagickResourceLimit(7);
    if (uVar6 < 2) {
      uVar6 = GetMagickResourceLimit(7);
      lVar8 = 1;
      if (uVar6 < 2) goto LAB_001f2957;
    }
    uVar6 = GetMagickResourceLimit(7);
    lVar8 = 2;
    if (uVar6 < 2) {
      lVar8 = GetMagickResourceLimit(7);
    }
  }
LAB_001f2957:
  local_58 = &local_80;
  local_78 = param_1;
  local_70 = param_4;
  local_68 = uVar5;
  local_60 = lVar4;
  local_50 = iVar2;
  GOMP_parallel(FUN_001ef856,&local_78,lVar8,0);
  iVar2 = local_50;
  DestroyCacheView(uVar5);
  RelinquishMagickMemory(lVar4);
  if ((*(int *)(param_2 + 0x33c) != 0) && ((*(byte *)(*(long *)(param_1 + 0x360) + 0x44) & 2) != 0))
  {
    SetImageAlphaChannel(param_1,1,param_4);
  }
LAB_001f2803:
  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
    return iVar2;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}

