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

MagickBooleanType
RangeThresholdImage(Image *image,double low_black,double low_white,double high_white,
                   double high_black,ExceptionInfo *exception)

{
  size_t sVar1;
  bool bVar2;
  MagickBooleanType MVar3;
  CacheType CVar4;
  CacheView *cache_view;
  MagickSizeType MVar5;
  MagickSizeType MVar6;
  size_t sVar7;
  long in_FS_OFFSET;
  MagickOffsetType progress;
  Image *local_88;
  double local_80;
  double local_78;
  double local_70;
  double local_68;
  ExceptionInfo *local_60;
  CacheView *local_58;
  MagickOffsetType *local_50;
  MagickBooleanType local_48;
  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/threshold.c",0x94e,"RangeThresholdImage");
  }
  if (image->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image->signature == MagickCoreSignature","MagickCore/threshold.c",0x94f,
                  "RangeThresholdImage");
  }
  if (image->debug != MagickFalse) {
    LogMagickEvent(TraceEvent,"MagickCore/threshold.c","RangeThresholdImage",0x951,"%s",
                   image->filename,low_black,low_white);
  }
  MVar3 = SetImageStorageClass(image,DirectClass,exception);
  if (MVar3 == MagickFalse) goto LAB_002e36b8;
  if ((image->colorspace == LinearGRAYColorspace) || (image->colorspace == GRAYColorspace)) {
    TransformImageColorspace(image,sRGBColorspace,exception);
  }
  progress = 0;
  cache_view = AcquireAuthenticCacheView(image,exception);
  CVar4 = GetImagePixelCacheType(image);
  if (((CVar4 == MemoryCache) || (CVar4 = GetImagePixelCacheType(image), CVar4 == MapCache)) &&
     ((CVar4 = GetImagePixelCacheType(image), CVar4 == MemoryCache ||
      (CVar4 = GetImagePixelCacheType(image), CVar4 == MapCache)))) {
    MVar5 = GetMagickResourceLimit(ThreadResource);
    sVar1 = image->rows;
    sVar7 = sVar1 + 0x3f;
    if (-1 < (long)sVar1) {
      sVar7 = sVar1;
    }
    bVar2 = 0x7f < (long)sVar1;
    if ((long)MVar5 < (long)sVar7 >> 6) {
      MVar5 = GetMagickResourceLimit(ThreadResource);
      bVar2 = 1 < (long)MVar5;
    }
    MVar5 = 1;
    if (bVar2) {
      MVar6 = GetMagickResourceLimit(ThreadResource);
      sVar1 = image->rows;
      sVar7 = sVar1 + 0x3f;
      if (-1 < (long)sVar1) {
        sVar7 = sVar1;
      }
      MVar5 = (long)sVar7 >> 6;
      if ((long)MVar6 < (long)MVar5) {
        MVar5 = GetMagickResourceLimit(ThreadResource);
      }
    }
  }
  else {
    MVar5 = GetMagickResourceLimit(ThreadResource);
    if (MVar5 < 2) {
      MVar6 = GetMagickResourceLimit(ThreadResource);
      MVar5 = 1;
      if (MVar6 < 2) goto LAB_002e3654;
    }
    MVar6 = GetMagickResourceLimit(ThreadResource);
    MVar5 = 2;
    if (MVar6 < 2) {
      MVar5 = GetMagickResourceLimit(ThreadResource);
    }
  }
LAB_002e3654:
  local_50 = &progress;
  local_48 = MagickTrue;
  local_88 = image;
  local_80 = low_black;
  local_78 = low_white;
  local_70 = high_white;
  local_68 = high_black;
  local_60 = exception;
  local_58 = cache_view;
  GOMP_parallel(RangeThresholdImage__omp_fn_8,&local_88,MVar5,0);
  MVar3 = local_48;
  DestroyCacheView(cache_view);
LAB_002e36b8:
  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return MVar3;
}



int RangeThresholdImage(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,
                       long param_5,undefined8 param_6)

{
  bool bVar1;
  int iVar2;
  undefined8 uVar3;
  ulong uVar4;
  long lVar5;
  long lVar6;
  long lVar7;
  long in_FS_OFFSET;
  undefined8 local_90;
  long local_88;
  undefined8 local_80;
  undefined8 local_78;
  undefined8 local_70;
  undefined8 local_68;
  undefined8 local_60;
  undefined8 local_58;
  undefined8 *local_50;
  int local_48;
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  if (param_5 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image != (Image *) NULL","MagickCore/threshold.c",0x94e,"RangeThresholdImage");
  }
  if (*(long *)(param_5 + 0x3450) != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image->signature == MagickCoreSignature","MagickCore/threshold.c",0x94f,
                  "RangeThresholdImage");
  }
  if (*(int *)(param_5 + 0x3418) != 0) {
    LogMagickEvent(0x8000,"MagickCore/threshold.c","RangeThresholdImage",0x951,&DAT_0041fe36,
                   param_5 + 0x3f8,param_1,param_2);
  }
  iVar2 = SetImageStorageClass(param_5,1,param_6);
  if (iVar2 == 0) goto LAB_002e36b8;
  if ((*(int *)(param_5 + 4) == 0x21) || (*(int *)(param_5 + 4) == 3)) {
    TransformImageColorspace(param_5,0x17,param_6);
  }
  local_90 = 0;
  uVar3 = AcquireAuthenticCacheView(param_5,param_6);
  iVar2 = GetImagePixelCacheType(param_5);
  if (((iVar2 == 4) || (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)) &&
     ((iVar2 = GetImagePixelCacheType(param_5), iVar2 == 4 ||
      (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)))) {
    lVar5 = GetMagickResourceLimit(7);
    lVar6 = *(long *)(param_5 + 0x28);
    lVar7 = lVar6 + 0x3f;
    if (-1 < lVar6) {
      lVar7 = lVar6;
    }
    bVar1 = 0x7f < lVar6;
    if (lVar5 < lVar7 >> 6) {
      lVar6 = GetMagickResourceLimit(7);
      bVar1 = 1 < lVar6;
    }
    lVar6 = 1;
    if (bVar1) {
      lVar5 = GetMagickResourceLimit(7);
      lVar7 = *(long *)(param_5 + 0x28);
      lVar6 = lVar7 + 0x3f;
      if (-1 < lVar7) {
        lVar6 = lVar7;
      }
      lVar6 = lVar6 >> 6;
      if (lVar5 < lVar6) {
        lVar6 = GetMagickResourceLimit(7);
      }
    }
  }
  else {
    uVar4 = GetMagickResourceLimit(7);
    if (uVar4 < 2) {
      uVar4 = GetMagickResourceLimit(7);
      lVar6 = 1;
      if (uVar4 < 2) goto LAB_002e3654;
    }
    uVar4 = GetMagickResourceLimit(7);
    lVar6 = 2;
    if (uVar4 < 2) {
      lVar6 = GetMagickResourceLimit(7);
    }
  }
LAB_002e3654:
  local_50 = &local_90;
  local_48 = 1;
  local_88 = param_5;
  local_80 = param_1;
  local_78 = param_2;
  local_70 = param_3;
  local_68 = param_4;
  local_60 = param_6;
  local_58 = uVar3;
  GOMP_parallel(FUN_002dee3f,&local_88,lVar6,0);
  iVar2 = local_48;
  DestroyCacheView(uVar3);
LAB_002e36b8:
  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return iVar2;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x78
MOVSD qword ptr [RSP],XMM0
MOVSD qword ptr [RSP + 0x8],XMM1
MOV RAX,qword ptr FS:[0x28]
MOV qword ptr [RSP + 0x68],RAX
XOR EAX,EAX
TEST RDI,RDI
JZ 0x002e36dd
MOV RBX,RDI
MOVQ R14,XMM2
MOVQ R15,XMM3
MOV R12,RSI
MOV EAX,0xabacadab
CMP qword ptr [RDI + 0x3450],RAX
JNZ 0x002e36fc
CMP dword ptr [RDI + 0x3418],0x0
JNZ 0x002e371b
MOV RDX,R12
MOV ESI,0x1
MOV RDI,RBX
CALL 0x0014a120
MOV EBP,EAX
TEST EAX,EAX
JZ 0x002e36b8
MOV EAX,dword ptr [RBX + 0x4]
CMP EAX,0x21
JZ 0x002e3750
CMP EAX,0x3
JZ 0x002e3750
MOV qword ptr [RSP + 0x18],0x0
MOV RSI,R12
MOV RDI,RBX
CALL 0x0014cd50
MOV R13,RAX
MOV RDI,RBX
CALL 0x0014b110
CMP EAX,0x4
JZ 0x002e3765
MOV RDI,RBX
CALL 0x0014b110
CMP EAX,0x3
JZ 0x002e3765
MOV EDI,0x7
CALL 0x0014c170
CMP RAX,0x1
JBE 0x002e37f4
MOV EDI,0x7
CALL 0x0014c170
MOV EDX,0x2
CMP RAX,0x1
JBE 0x002e3812
MOV qword ptr [RSP + 0x50],R13
MOV qword ptr [RSP + 0x48],R12
MOV qword ptr [RSP + 0x40],R15
MOV qword ptr [RSP + 0x38],R14
MOVSD XMM4,qword ptr [RSP + 0x8]
MOVSD qword ptr [RSP + 0x30],XMM4
MOVSD XMM5,qword ptr [RSP]
MOVSD qword ptr [RSP + 0x28],XMM5
MOV qword ptr [RSP + 0x20],RBX
LEA RAX,[RSP + 0x18]
MOV qword ptr [RSP + 0x58],RAX
MOV dword ptr [RSP + 0x60],0x1
LEA RSI,[RSP + 0x20]
MOV ECX,0x0
LEA RDI,[0x2dee3f]
CALL 0x0014bf70
MOV EBP,dword ptr [RSP + 0x60]
MOV RDI,R13
CALL 0x0014cc70
MOV EAX,EBP
MOV RCX,qword ptr [RSP + 0x68]
XOR RCX,qword ptr FS:[0x28]
JNZ 0x002e383a
ADD RSP,0x78
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
LEA RCX,[0x434bd0]
MOV EDX,0x94e
LEA RSI,[0x434926]
LEA RDI,[0x420571]
CALL 0x0014a360
LEA RCX,[0x434bd0]
MOV EDX,0x94f
LEA RSI,[0x434926]
LEA RDI,[0x3f98f0]
CALL 0x0014a360
LEA R9,[RDI + 0x3f8]
LEA R8,[0x41fe36]
MOV ECX,0x951
LEA RDX,[0x434bb0]
LEA RSI,[0x434926]
MOV EDI,0x8000
MOV EAX,0x0
CALL 0x0014be20
JMP 0x002e35bf
MOV RDX,R12
MOV ESI,0x17
MOV RDI,RBX
CALL 0x0014c000
JMP 0x002e35ee
MOV RDI,RBX
CALL 0x0014b110
CMP EAX,0x4
JZ 0x002e3783
MOV RDI,RBX
CALL 0x0014b110
CMP EAX,0x3
JNZ 0x002e3627
MOV EDI,0x7
CALL 0x0014c170
MOV RCX,qword ptr [RBX + 0x28]
LEA RDX,[RCX + 0x3f]
TEST RCX,RCX
CMOVNS RDX,RCX
SAR RDX,0x6
CMP RCX,0x7f
SETG CL
CMP RAX,RDX
JL 0x002e3824
MOV EDX,0x1
TEST CL,CL
JZ 0x002e3654
MOV EDI,0x7
CALL 0x0014c170
MOV RDX,qword ptr [RBX + 0x28]
LEA RCX,[RDX + 0x3f]
TEST RDX,RDX
CMOVNS RCX,RDX
SAR RCX,0x6
MOV RDX,RCX
CMP RAX,RCX
JGE 0x002e3654
MOV EDI,0x7
CALL 0x0014c170
MOV RDX,RAX
JMP 0x002e3654
MOV EDI,0x7
CALL 0x0014c170
MOV EDX,0x1
CMP RAX,0x1
JA 0x002e363b
JMP 0x002e3654
MOV EDI,0x7
CALL 0x0014c170
MOV RDX,RAX
JMP 0x002e3654
MOV EDI,0x7
CALL 0x0014c170
CMP RAX,0x1
SETG CL
JMP 0x002e37ac
CALL 0x0014c5c0
(translation_unit "int RangeThresholdImage(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                       long param_5,undefined8 param_6)\n\n{\n  bool bVar1;\n  int iVar2;\n  undefined8 uVar3;\n  ulong uVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  long in_FS_OFFSET;\n  undefined8 local_90;\n  long local_88;\n  undefined8 local_80;\n  undefined8 local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  undefined8 local_60;\n  undefined8 local_58;\n  undefined8 *local_50;\n  int local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_5 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/threshold.c",0x94e,"RangeThresholdImage");\n  }\n  if (*(long *)(param_5 + 0x3450) != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/threshold.c",0x94f,\n                  "RangeThresholdImage");\n  }\n  if (*(int *)(param_5 + 0x3418) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/threshold.c","RangeThresholdImage",0x951,&DAT_0041fe36,\n                   param_5 + 0x3f8,param_1,param_2);\n  }\n  iVar2 = SetImageStorageClass(param_5,1,param_6);\n  if (iVar2 == 0) goto LAB_002e36b8;\n  if ((*(int *)(param_5 + 4) == 0x21) || (*(int *)(param_5 + 4) == 3)) {\n    TransformImageColorspace(param_5,0x17,param_6);\n  }\n  local_90 = 0;\n  uVar3 = AcquireAuthenticCacheView(param_5,param_6);\n  iVar2 = GetImagePixelCacheType(param_5);\n  if (((iVar2 == 4) || (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)) &&\n     ((iVar2 = GetImagePixelCacheType(param_5), iVar2 == 4 ||\n      (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)))) {\n    lVar5 = GetMagickResourceLimit(7);\n    lVar6 = *(long *)(param_5 + 0x28);\n    lVar7 = lVar6 + 0x3f;\n    if (-1 < lVar6) {\n      lVar7 = lVar6;\n    }\n    bVar1 = 0x7f < lVar6;\n    if (lVar5 < lVar7 >> 6) {\n      lVar6 = GetMagickResourceLimit(7);\n      bVar1 = 1 < lVar6;\n    }\n    lVar6 = 1;\n    if (bVar1) {\n      lVar5 = GetMagickResourceLimit(7);\n      lVar7 = *(long *)(param_5 + 0x28);\n      lVar6 = lVar7 + 0x3f;\n      if (-1 < lVar7) {\n        lVar6 = lVar7;\n      }\n      lVar6 = lVar6 >> 6;\n      if (lVar5 < lVar6) {\n        lVar6 = GetMagickResourceLimit(7);\n      }\n    }\n  }\n  else {\n    uVar4 = GetMagickResourceLimit(7);\n    if (uVar4 < 2) {\n      uVar4 = GetMagickResourceLimit(7);\n      lVar6 = 1;\n      if (uVar4 < 2) goto LAB_002e3654;\n    }\n    uVar4 = GetMagickResourceLimit(7);\n    lVar6 = 2;\n    if (uVar4 < 2) {\n      lVar6 = GetMagickResourceLimit(7);\n    }\n  }\nLAB_002e3654:\n  local_50 = &local_90;\n  local_48 = 1;\n  local_88 = param_5;\n  local_80 = param_1;\n  local_78 = param_2;\n  local_70 = param_3;\n  local_68 = param_4;\n  local_60 = param_6;\n  local_58 = uVar3;\n  GOMP_parallel(FUN_002dee3f,&local_88,lVar6,0);\n  iVar2 = local_48;\n  DestroyCacheView(uVar3);\nLAB_002e36b8:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return iVar2;\n}\n\n" (function_definition "int RangeThresholdImage(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                       long param_5,undefined8 param_6)\n\n{\n  bool bVar1;\n  int iVar2;\n  undefined8 uVar3;\n  ulong uVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  long in_FS_OFFSET;\n  undefined8 local_90;\n  long local_88;\n  undefined8 local_80;\n  undefined8 local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  undefined8 local_60;\n  undefined8 local_58;\n  undefined8 *local_50;\n  int local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_5 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/threshold.c",0x94e,"RangeThresholdImage");\n  }\n  if (*(long *)(param_5 + 0x3450) != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/threshold.c",0x94f,\n                  "RangeThresholdImage");\n  }\n  if (*(int *)(param_5 + 0x3418) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/threshold.c","RangeThresholdImage",0x951,&DAT_0041fe36,\n                   param_5 + 0x3f8,param_1,param_2);\n  }\n  iVar2 = SetImageStorageClass(param_5,1,param_6);\n  if (iVar2 == 0) goto LAB_002e36b8;\n  if ((*(int *)(param_5 + 4) == 0x21) || (*(int *)(param_5 + 4) == 3)) {\n    TransformImageColorspace(param_5,0x17,param_6);\n  }\n  local_90 = 0;\n  uVar3 = AcquireAuthenticCacheView(param_5,param_6);\n  iVar2 = GetImagePixelCacheType(param_5);\n  if (((iVar2 == 4) || (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)) &&\n     ((iVar2 = GetImagePixelCacheType(param_5), iVar2 == 4 ||\n      (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)))) {\n    lVar5 = GetMagickResourceLimit(7);\n    lVar6 = *(long *)(param_5 + 0x28);\n    lVar7 = lVar6 + 0x3f;\n    if (-1 < lVar6) {\n      lVar7 = lVar6;\n    }\n    bVar1 = 0x7f < lVar6;\n    if (lVar5 < lVar7 >> 6) {\n      lVar6 = GetMagickResourceLimit(7);\n      bVar1 = 1 < lVar6;\n    }\n    lVar6 = 1;\n    if (bVar1) {\n      lVar5 = GetMagickResourceLimit(7);\n      lVar7 = *(long *)(param_5 + 0x28);\n      lVar6 = lVar7 + 0x3f;\n      if (-1 < lVar7) {\n        lVar6 = lVar7;\n      }\n      lVar6 = lVar6 >> 6;\n      if (lVar5 < lVar6) {\n        lVar6 = GetMagickResourceLimit(7);\n      }\n    }\n  }\n  else {\n    uVar4 = GetMagickResourceLimit(7);\n    if (uVar4 < 2) {\n      uVar4 = GetMagickResourceLimit(7);\n      lVar6 = 1;\n      if (uVar4 < 2) goto LAB_002e3654;\n    }\n    uVar4 = GetMagickResourceLimit(7);\n    lVar6 = 2;\n    if (uVar4 < 2) {\n      lVar6 = GetMagickResourceLimit(7);\n    }\n  }\nLAB_002e3654:\n  local_50 = &local_90;\n  local_48 = 1;\n  local_88 = param_5;\n  local_80 = param_1;\n  local_78 = param_2;\n  local_70 = param_3;\n  local_68 = param_4;\n  local_60 = param_6;\n  local_58 = uVar3;\n  GOMP_parallel(FUN_002dee3f,&local_88,lVar6,0);\n  iVar2 = local_48;\n  DestroyCacheView(uVar3);\nLAB_002e36b8:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return iVar2;\n}" primitive_type (function_declarator "RangeThresholdImage(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                       long param_5,undefined8 param_6)" identifier (parameter_list "(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                       long param_5,undefined8 param_6)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "undefined8 param_4" type_identifier identifier) , (parameter_declaration "long param_5" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_6" type_identifier identifier) ))) (compound_statement "{\n  bool bVar1;\n  int iVar2;\n  undefined8 uVar3;\n  ulong uVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  long in_FS_OFFSET;\n  undefined8 local_90;\n  long local_88;\n  undefined8 local_80;\n  undefined8 local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  undefined8 local_60;\n  undefined8 local_58;\n  undefined8 *local_50;\n  int local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_5 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/threshold.c",0x94e,"RangeThresholdImage");\n  }\n  if (*(long *)(param_5 + 0x3450) != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/threshold.c",0x94f,\n                  "RangeThresholdImage");\n  }\n  if (*(int *)(param_5 + 0x3418) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/threshold.c","RangeThresholdImage",0x951,&DAT_0041fe36,\n                   param_5 + 0x3f8,param_1,param_2);\n  }\n  iVar2 = SetImageStorageClass(param_5,1,param_6);\n  if (iVar2 == 0) goto LAB_002e36b8;\n  if ((*(int *)(param_5 + 4) == 0x21) || (*(int *)(param_5 + 4) == 3)) {\n    TransformImageColorspace(param_5,0x17,param_6);\n  }\n  local_90 = 0;\n  uVar3 = AcquireAuthenticCacheView(param_5,param_6);\n  iVar2 = GetImagePixelCacheType(param_5);\n  if (((iVar2 == 4) || (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)) &&\n     ((iVar2 = GetImagePixelCacheType(param_5), iVar2 == 4 ||\n      (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)))) {\n    lVar5 = GetMagickResourceLimit(7);\n    lVar6 = *(long *)(param_5 + 0x28);\n    lVar7 = lVar6 + 0x3f;\n    if (-1 < lVar6) {\n      lVar7 = lVar6;\n    }\n    bVar1 = 0x7f < lVar6;\n    if (lVar5 < lVar7 >> 6) {\n      lVar6 = GetMagickResourceLimit(7);\n      bVar1 = 1 < lVar6;\n    }\n    lVar6 = 1;\n    if (bVar1) {\n      lVar5 = GetMagickResourceLimit(7);\n      lVar7 = *(long *)(param_5 + 0x28);\n      lVar6 = lVar7 + 0x3f;\n      if (-1 < lVar7) {\n        lVar6 = lVar7;\n      }\n      lVar6 = lVar6 >> 6;\n      if (lVar5 < lVar6) {\n        lVar6 = GetMagickResourceLimit(7);\n      }\n    }\n  }\n  else {\n    uVar4 = GetMagickResourceLimit(7);\n    if (uVar4 < 2) {\n      uVar4 = GetMagickResourceLimit(7);\n      lVar6 = 1;\n      if (uVar4 < 2) goto LAB_002e3654;\n    }\n    uVar4 = GetMagickResourceLimit(7);\n    lVar6 = 2;\n    if (uVar4 < 2) {\n      lVar6 = GetMagickResourceLimit(7);\n    }\n  }\nLAB_002e3654:\n  local_50 = &local_90;\n  local_48 = 1;\n  local_88 = param_5;\n  local_80 = param_1;\n  local_78 = param_2;\n  local_70 = param_3;\n  local_68 = param_4;\n  local_60 = param_6;\n  local_58 = uVar3;\n  GOMP_parallel(FUN_002dee3f,&local_88,lVar6,0);\n  iVar2 = local_48;\n  DestroyCacheView(uVar3);\nLAB_002e36b8:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return iVar2;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "ulong uVar4;" type_identifier identifier ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 local_90;" type_identifier identifier ;) (declaration "long local_88;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 local_80;" type_identifier identifier ;) (declaration "undefined8 local_78;" type_identifier identifier ;) (declaration "undefined8 local_70;" type_identifier identifier ;) (declaration "undefined8 local_68;" type_identifier identifier ;) (declaration "undefined8 local_60;" type_identifier identifier ;) (declaration "undefined8 local_58;" type_identifier identifier ;) (declaration "undefined8 *local_50;" type_identifier (pointer_declarator "*local_50" * identifier) ;) (declaration "int local_48;" 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_5 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/threshold.c",0x94e,"RangeThresholdImage");\n  }" if (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/threshold.c",0x94e,"RangeThresholdImage");\n  }" { comment (expression_statement "__assert_fail("image != (Image *) NULL","MagickCore/threshold.c",0x94e,"RangeThresholdImage");" (call_expression "__assert_fail("image != (Image *) NULL","MagickCore/threshold.c",0x94e,"RangeThresholdImage")" identifier (argument_list "("image != (Image *) NULL","MagickCore/threshold.c",0x94e,"RangeThresholdImage")" ( (string_literal ""image != (Image *) NULL"" " string_content ") , (string_literal ""MagickCore/threshold.c"" " string_content ") , number_literal , (string_literal ""RangeThresholdImage"" " string_content ") ))) ;) })) (if_statement "if (*(long *)(param_5 + 0x3450) != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/threshold.c",0x94f,\n                  "RangeThresholdImage");\n  }" if (parenthesized_expression "(*(long *)(param_5 + 0x3450) != 0xabacadab)" ( (binary_expression "*(long *)(param_5 + 0x3450) != 0xabacadab" (pointer_expression "*(long *)(param_5 + 0x3450)" * (cast_expression "(long *)(param_5 + 0x3450)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x3450)" ( (binary_expression "param_5 + 0x3450" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/threshold.c",0x94f,\n                  "RangeThresholdImage");\n  }" { comment (expression_statement "__assert_fail("image->signature == MagickCoreSignature","MagickCore/threshold.c",0x94f,\n                  "RangeThresholdImage");" (call_expression "__assert_fail("image->signature == MagickCoreSignature","MagickCore/threshold.c",0x94f,\n                  "RangeThresholdImage")" identifier (argument_list "("image->signature == MagickCoreSignature","MagickCore/threshold.c",0x94f,\n                  "RangeThresholdImage")" ( (string_literal ""image->signature == MagickCoreSignature"" " string_content ") , (string_literal ""MagickCore/threshold.c"" " string_content ") , number_literal , (string_literal ""RangeThresholdImage"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_5 + 0x3418) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/threshold.c","RangeThresholdImage",0x951,&DAT_0041fe36,\n                   param_5 + 0x3f8,param_1,param_2);\n  }" if (parenthesized_expression "(*(int *)(param_5 + 0x3418) != 0)" ( (binary_expression "*(int *)(param_5 + 0x3418) != 0" (pointer_expression "*(int *)(param_5 + 0x3418)" * (cast_expression "(int *)(param_5 + 0x3418)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x3418)" ( (binary_expression "param_5 + 0x3418" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    LogMagickEvent(0x8000,"MagickCore/threshold.c","RangeThresholdImage",0x951,&DAT_0041fe36,\n                   param_5 + 0x3f8,param_1,param_2);\n  }" { (expression_statement "LogMagickEvent(0x8000,"MagickCore/threshold.c","RangeThresholdImage",0x951,&DAT_0041fe36,\n                   param_5 + 0x3f8,param_1,param_2);" (call_expression "LogMagickEvent(0x8000,"MagickCore/threshold.c","RangeThresholdImage",0x951,&DAT_0041fe36,\n                   param_5 + 0x3f8,param_1,param_2)" identifier (argument_list "(0x8000,"MagickCore/threshold.c","RangeThresholdImage",0x951,&DAT_0041fe36,\n                   param_5 + 0x3f8,param_1,param_2)" ( number_literal , (string_literal ""MagickCore/threshold.c"" " string_content ") , (string_literal ""RangeThresholdImage"" " string_content ") , number_literal , (pointer_expression "&DAT_0041fe36" & identifier) , (binary_expression "param_5 + 0x3f8" identifier + number_literal) , identifier , identifier ))) ;) })) (expression_statement "iVar2 = SetImageStorageClass(param_5,1,param_6);" (assignment_expression "iVar2 = SetImageStorageClass(param_5,1,param_6)" identifier = (call_expression "SetImageStorageClass(param_5,1,param_6)" identifier (argument_list "(param_5,1,param_6)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (iVar2 == 0) goto LAB_002e36b8;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_002e36b8;" goto statement_identifier ;)) (if_statement "if ((*(int *)(param_5 + 4) == 0x21) || (*(int *)(param_5 + 4) == 3)) {\n    TransformImageColorspace(param_5,0x17,param_6);\n  }" if (parenthesized_expression "((*(int *)(param_5 + 4) == 0x21) || (*(int *)(param_5 + 4) == 3))" ( (binary_expression "(*(int *)(param_5 + 4) == 0x21) || (*(int *)(param_5 + 4) == 3)" (parenthesized_expression "(*(int *)(param_5 + 4) == 0x21)" ( (binary_expression "*(int *)(param_5 + 4) == 0x21" (pointer_expression "*(int *)(param_5 + 4)" * (cast_expression "(int *)(param_5 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 4)" ( (binary_expression "param_5 + 4" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(*(int *)(param_5 + 4) == 3)" ( (binary_expression "*(int *)(param_5 + 4) == 3" (pointer_expression "*(int *)(param_5 + 4)" * (cast_expression "(int *)(param_5 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 4)" ( (binary_expression "param_5 + 4" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n    TransformImageColorspace(param_5,0x17,param_6);\n  }" { (expression_statement "TransformImageColorspace(param_5,0x17,param_6);" (call_expression "TransformImageColorspace(param_5,0x17,param_6)" identifier (argument_list "(param_5,0x17,param_6)" ( identifier , number_literal , identifier ))) ;) })) (expression_statement "local_90 = 0;" (assignment_expression "local_90 = 0" identifier = number_literal) ;) (expression_statement "uVar3 = AcquireAuthenticCacheView(param_5,param_6);" (assignment_expression "uVar3 = AcquireAuthenticCacheView(param_5,param_6)" identifier = (call_expression "AcquireAuthenticCacheView(param_5,param_6)" identifier (argument_list "(param_5,param_6)" ( identifier , identifier )))) ;) (expression_statement "iVar2 = GetImagePixelCacheType(param_5);" (assignment_expression "iVar2 = GetImagePixelCacheType(param_5)" identifier = (call_expression "GetImagePixelCacheType(param_5)" identifier (argument_list "(param_5)" ( identifier )))) ;) (if_statement "if (((iVar2 == 4) || (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)) &&\n     ((iVar2 = GetImagePixelCacheType(param_5), iVar2 == 4 ||\n      (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)))) {\n    lVar5 = GetMagickResourceLimit(7);\n    lVar6 = *(long *)(param_5 + 0x28);\n    lVar7 = lVar6 + 0x3f;\n    if (-1 < lVar6) {\n      lVar7 = lVar6;\n    }\n    bVar1 = 0x7f < lVar6;\n    if (lVar5 < lVar7 >> 6) {\n      lVar6 = GetMagickResourceLimit(7);\n      bVar1 = 1 < lVar6;\n    }\n    lVar6 = 1;\n    if (bVar1) {\n      lVar5 = GetMagickResourceLimit(7);\n      lVar7 = *(long *)(param_5 + 0x28);\n      lVar6 = lVar7 + 0x3f;\n      if (-1 < lVar7) {\n        lVar6 = lVar7;\n      }\n      lVar6 = lVar6 >> 6;\n      if (lVar5 < lVar6) {\n        lVar6 = GetMagickResourceLimit(7);\n      }\n    }\n  }\n  else {\n    uVar4 = GetMagickResourceLimit(7);\n    if (uVar4 < 2) {\n      uVar4 = GetMagickResourceLimit(7);\n      lVar6 = 1;\n      if (uVar4 < 2) goto LAB_002e3654;\n    }\n    uVar4 = GetMagickResourceLimit(7);\n    lVar6 = 2;\n    if (uVar4 < 2) {\n      lVar6 = GetMagickResourceLimit(7);\n    }\n  }" if (parenthesized_expression "(((iVar2 == 4) || (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)) &&\n     ((iVar2 = GetImagePixelCacheType(param_5), iVar2 == 4 ||\n      (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3))))" ( (binary_expression "((iVar2 == 4) || (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)) &&\n     ((iVar2 = GetImagePixelCacheType(param_5), iVar2 == 4 ||\n      (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)))" (parenthesized_expression "((iVar2 == 4) || (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3))" ( (binary_expression "(iVar2 == 4) || (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)" (parenthesized_expression "(iVar2 == 4)" ( (binary_expression "iVar2 == 4" identifier == number_literal) )) || (parenthesized_expression "(iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)" ( (comma_expression "iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3" (assignment_expression "iVar2 = GetImagePixelCacheType(param_5)" identifier = (call_expression "GetImagePixelCacheType(param_5)" identifier (argument_list "(param_5)" ( identifier )))) , (binary_expression "iVar2 == 3" identifier == number_literal)) ))) )) && (parenthesized_expression "((iVar2 = GetImagePixelCacheType(param_5), iVar2 == 4 ||\n      (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)))" ( (parenthesized_expression "(iVar2 = GetImagePixelCacheType(param_5), iVar2 == 4 ||\n      (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3))" ( (comma_expression "iVar2 = GetImagePixelCacheType(param_5), iVar2 == 4 ||\n      (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)" (assignment_expression "iVar2 = GetImagePixelCacheType(param_5)" identifier = (call_expression "GetImagePixelCacheType(param_5)" identifier (argument_list "(param_5)" ( identifier )))) , (binary_expression "iVar2 == 4 ||\n      (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)" (binary_expression "iVar2 == 4" identifier == number_literal) || (parenthesized_expression "(iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)" ( (comma_expression "iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3" (assignment_expression "iVar2 = GetImagePixelCacheType(param_5)" identifier = (call_expression "GetImagePixelCacheType(param_5)" identifier (argument_list "(param_5)" ( identifier )))) , (binary_expression "iVar2 == 3" identifier == number_literal)) )))) )) ))) )) (compound_statement "{\n    lVar5 = GetMagickResourceLimit(7);\n    lVar6 = *(long *)(param_5 + 0x28);\n    lVar7 = lVar6 + 0x3f;\n    if (-1 < lVar6) {\n      lVar7 = lVar6;\n    }\n    bVar1 = 0x7f < lVar6;\n    if (lVar5 < lVar7 >> 6) {\n      lVar6 = GetMagickResourceLimit(7);\n      bVar1 = 1 < lVar6;\n    }\n    lVar6 = 1;\n    if (bVar1) {\n      lVar5 = GetMagickResourceLimit(7);\n      lVar7 = *(long *)(param_5 + 0x28);\n      lVar6 = lVar7 + 0x3f;\n      if (-1 < lVar7) {\n        lVar6 = lVar7;\n      }\n      lVar6 = lVar6 >> 6;\n      if (lVar5 < lVar6) {\n        lVar6 = GetMagickResourceLimit(7);\n      }\n    }\n  }" { (expression_statement "lVar5 = GetMagickResourceLimit(7);" (assignment_expression "lVar5 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (expression_statement "lVar6 = *(long *)(param_5 + 0x28);" (assignment_expression "lVar6 = *(long *)(param_5 + 0x28)" identifier = (pointer_expression "*(long *)(param_5 + 0x28)" * (cast_expression "(long *)(param_5 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x28)" ( (binary_expression "param_5 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "lVar7 = lVar6 + 0x3f;" (assignment_expression "lVar7 = lVar6 + 0x3f" identifier = (binary_expression "lVar6 + 0x3f" identifier + number_literal)) ;) (if_statement "if (-1 < lVar6) {\n      lVar7 = lVar6;\n    }" if (parenthesized_expression "(-1 < lVar6)" ( (binary_expression "-1 < lVar6" number_literal < identifier) )) (compound_statement "{\n      lVar7 = lVar6;\n    }" { (expression_statement "lVar7 = lVar6;" (assignment_expression "lVar7 = lVar6" identifier = identifier) ;) })) (expression_statement "bVar1 = 0x7f < lVar6;" (assignment_expression "bVar1 = 0x7f < lVar6" identifier = (binary_expression "0x7f < lVar6" number_literal < identifier)) ;) (if_statement "if (lVar5 < lVar7 >> 6) {\n      lVar6 = GetMagickResourceLimit(7);\n      bVar1 = 1 < lVar6;\n    }" if (parenthesized_expression "(lVar5 < lVar7 >> 6)" ( (binary_expression "lVar5 < lVar7 >> 6" identifier < (binary_expression "lVar7 >> 6" identifier >> number_literal)) )) (compound_statement "{\n      lVar6 = GetMagickResourceLimit(7);\n      bVar1 = 1 < lVar6;\n    }" { (expression_statement "lVar6 = GetMagickResourceLimit(7);" (assignment_expression "lVar6 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (expression_statement "bVar1 = 1 < lVar6;" (assignment_expression "bVar1 = 1 < lVar6" identifier = (binary_expression "1 < lVar6" number_literal < identifier)) ;) })) (expression_statement "lVar6 = 1;" (assignment_expression "lVar6 = 1" identifier = number_literal) ;) (if_statement "if (bVar1) {\n      lVar5 = GetMagickResourceLimit(7);\n      lVar7 = *(long *)(param_5 + 0x28);\n      lVar6 = lVar7 + 0x3f;\n      if (-1 < lVar7) {\n        lVar6 = lVar7;\n      }\n      lVar6 = lVar6 >> 6;\n      if (lVar5 < lVar6) {\n        lVar6 = GetMagickResourceLimit(7);\n      }\n    }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n      lVar5 = GetMagickResourceLimit(7);\n      lVar7 = *(long *)(param_5 + 0x28);\n      lVar6 = lVar7 + 0x3f;\n      if (-1 < lVar7) {\n        lVar6 = lVar7;\n      }\n      lVar6 = lVar6 >> 6;\n      if (lVar5 < lVar6) {\n        lVar6 = GetMagickResourceLimit(7);\n      }\n    }" { (expression_statement "lVar5 = GetMagickResourceLimit(7);" (assignment_expression "lVar5 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (expression_statement "lVar7 = *(long *)(param_5 + 0x28);" (assignment_expression "lVar7 = *(long *)(param_5 + 0x28)" identifier = (pointer_expression "*(long *)(param_5 + 0x28)" * (cast_expression "(long *)(param_5 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x28)" ( (binary_expression "param_5 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "lVar6 = lVar7 + 0x3f;" (assignment_expression "lVar6 = lVar7 + 0x3f" identifier = (binary_expression "lVar7 + 0x3f" identifier + number_literal)) ;) (if_statement "if (-1 < lVar7) {\n        lVar6 = lVar7;\n      }" if (parenthesized_expression "(-1 < lVar7)" ( (binary_expression "-1 < lVar7" number_literal < identifier) )) (compound_statement "{\n        lVar6 = lVar7;\n      }" { (expression_statement "lVar6 = lVar7;" (assignment_expression "lVar6 = lVar7" identifier = identifier) ;) })) (expression_statement "lVar6 = lVar6 >> 6;" (assignment_expression "lVar6 = lVar6 >> 6" identifier = (binary_expression "lVar6 >> 6" identifier >> number_literal)) ;) (if_statement "if (lVar5 < lVar6) {\n        lVar6 = GetMagickResourceLimit(7);\n      }" if (parenthesized_expression "(lVar5 < lVar6)" ( (binary_expression "lVar5 < lVar6" identifier < identifier) )) (compound_statement "{\n        lVar6 = GetMagickResourceLimit(7);\n      }" { (expression_statement "lVar6 = GetMagickResourceLimit(7);" (assignment_expression "lVar6 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) })) })) }) (else_clause "else {\n    uVar4 = GetMagickResourceLimit(7);\n    if (uVar4 < 2) {\n      uVar4 = GetMagickResourceLimit(7);\n      lVar6 = 1;\n      if (uVar4 < 2) goto LAB_002e3654;\n    }\n    uVar4 = GetMagickResourceLimit(7);\n    lVar6 = 2;\n    if (uVar4 < 2) {\n      lVar6 = GetMagickResourceLimit(7);\n    }\n  }" else (compound_statement "{\n    uVar4 = GetMagickResourceLimit(7);\n    if (uVar4 < 2) {\n      uVar4 = GetMagickResourceLimit(7);\n      lVar6 = 1;\n      if (uVar4 < 2) goto LAB_002e3654;\n    }\n    uVar4 = GetMagickResourceLimit(7);\n    lVar6 = 2;\n    if (uVar4 < 2) {\n      lVar6 = GetMagickResourceLimit(7);\n    }\n  }" { (expression_statement "uVar4 = GetMagickResourceLimit(7);" (assignment_expression "uVar4 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (if_statement "if (uVar4 < 2) {\n      uVar4 = GetMagickResourceLimit(7);\n      lVar6 = 1;\n      if (uVar4 < 2) goto LAB_002e3654;\n    }" if (parenthesized_expression "(uVar4 < 2)" ( (binary_expression "uVar4 < 2" identifier < number_literal) )) (compound_statement "{\n      uVar4 = GetMagickResourceLimit(7);\n      lVar6 = 1;\n      if (uVar4 < 2) goto LAB_002e3654;\n    }" { (expression_statement "uVar4 = GetMagickResourceLimit(7);" (assignment_expression "uVar4 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (expression_statement "lVar6 = 1;" (assignment_expression "lVar6 = 1" identifier = number_literal) ;) (if_statement "if (uVar4 < 2) goto LAB_002e3654;" if (parenthesized_expression "(uVar4 < 2)" ( (binary_expression "uVar4 < 2" identifier < number_literal) )) (goto_statement "goto LAB_002e3654;" goto statement_identifier ;)) })) (expression_statement "uVar4 = GetMagickResourceLimit(7);" (assignment_expression "uVar4 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (expression_statement "lVar6 = 2;" (assignment_expression "lVar6 = 2" identifier = number_literal) ;) (if_statement "if (uVar4 < 2) {\n      lVar6 = GetMagickResourceLimit(7);\n    }" if (parenthesized_expression "(uVar4 < 2)" ( (binary_expression "uVar4 < 2" identifier < number_literal) )) (compound_statement "{\n      lVar6 = GetMagickResourceLimit(7);\n    }" { (expression_statement "lVar6 = GetMagickResourceLimit(7);" (assignment_expression "lVar6 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) })) }))) (labeled_statement "LAB_002e3654:\n  local_50 = &local_90;" statement_identifier : (expression_statement "local_50 = &local_90;" (assignment_expression "local_50 = &local_90" identifier = (pointer_expression "&local_90" & identifier)) ;)) (expression_statement "local_48 = 1;" (assignment_expression "local_48 = 1" identifier = number_literal) ;) (expression_statement "local_88 = param_5;" (assignment_expression "local_88 = param_5" identifier = identifier) ;) (expression_statement "local_80 = param_1;" (assignment_expression "local_80 = param_1" identifier = identifier) ;) (expression_statement "local_78 = param_2;" (assignment_expression "local_78 = param_2" identifier = identifier) ;) (expression_statement "local_70 = param_3;" (assignment_expression "local_70 = param_3" identifier = identifier) ;) (expression_statement "local_68 = param_4;" (assignment_expression "local_68 = param_4" identifier = identifier) ;) (expression_statement "local_60 = param_6;" (assignment_expression "local_60 = param_6" identifier = identifier) ;) (expression_statement "local_58 = uVar3;" (assignment_expression "local_58 = uVar3" identifier = identifier) ;) (expression_statement "GOMP_parallel(FUN_002dee3f,&local_88,lVar6,0);" (call_expression "GOMP_parallel(FUN_002dee3f,&local_88,lVar6,0)" identifier (argument_list "(FUN_002dee3f,&local_88,lVar6,0)" ( identifier , (pointer_expression "&local_88" & identifier) , identifier , number_literal ))) ;) (expression_statement "iVar2 = local_48;" (assignment_expression "iVar2 = local_48" identifier = identifier) ;) (expression_statement "DestroyCacheView(uVar3);" (call_expression "DestroyCacheView(uVar3)" identifier (argument_list "(uVar3)" ( identifier ))) ;) (labeled_statement "LAB_002e36b8:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" statement_identifier : (if_statement "if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\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                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" { comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return iVar2;" return identifier ;) })))
(translation_unit "/* WARNING: Enum "ExceptionType": Some values do not have unique names */\n/* WARNING: Enum "GravityType": Some values do not have unique names */\n/* WARNING: Enum "DisposeType": Some values do not have unique names */\n/* WARNING: Enum "ChannelType": Some values do not have unique names */\n/* WARNING: Enum "PixelChannel": Some values do not have unique names */\n/* WARNING: Enum "LogEventType": Some values do not have unique names */\n\nMagickBooleanType\nRangeThresholdImage(Image *image,double low_black,double low_white,double high_white,\n                   double high_black,ExceptionInfo *exception)\n\n{\n  size_t sVar1;\n  bool bVar2;\n  MagickBooleanType MVar3;\n  CacheType CVar4;\n  CacheView *cache_view;\n  MagickSizeType MVar5;\n  MagickSizeType MVar6;\n  size_t sVar7;\n  long in_FS_OFFSET;\n  MagickOffsetType progress;\n  Image *local_88;\n  double local_80;\n  double local_78;\n  double local_70;\n  double local_68;\n  ExceptionInfo *local_60;\n  CacheView *local_58;\n  MagickOffsetType *local_50;\n  MagickBooleanType local_48;\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/threshold.c",0x94e,"RangeThresholdImage");\n  }\n  if (image->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/threshold.c",0x94f,\n                  "RangeThresholdImage");\n  }\n  if (image->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"MagickCore/threshold.c","RangeThresholdImage",0x951,"%s",\n                   image->filename,low_black,low_white);\n  }\n  MVar3 = SetImageStorageClass(image,DirectClass,exception);\n  if (MVar3 == MagickFalse) goto LAB_002e36b8;\n  if ((image->colorspace == LinearGRAYColorspace) || (image->colorspace == GRAYColorspace)) {\n    TransformImageColorspace(image,sRGBColorspace,exception);\n  }\n  progress = 0;\n  cache_view = AcquireAuthenticCacheView(image,exception);\n  CVar4 = GetImagePixelCacheType(image);\n  if (((CVar4 == MemoryCache) || (CVar4 = GetImagePixelCacheType(image), CVar4 == MapCache)) &&\n     ((CVar4 = GetImagePixelCacheType(image), CVar4 == MemoryCache ||\n      (CVar4 = GetImagePixelCacheType(image), CVar4 == MapCache)))) {\n    MVar5 = GetMagickResourceLimit(ThreadResource);\n    sVar1 = image->rows;\n    sVar7 = sVar1 + 0x3f;\n    if (-1 < (long)sVar1) {\n      sVar7 = sVar1;\n    }\n    bVar2 = 0x7f < (long)sVar1;\n    if ((long)MVar5 < (long)sVar7 >> 6) {\n      MVar5 = GetMagickResourceLimit(ThreadResource);\n      bVar2 = 1 < (long)MVar5;\n    }\n    MVar5 = 1;\n    if (bVar2) {\n      MVar6 = GetMagickResourceLimit(ThreadResource);\n      sVar1 = image->rows;\n      sVar7 = sVar1 + 0x3f;\n      if (-1 < (long)sVar1) {\n        sVar7 = sVar1;\n      }\n      MVar5 = (long)sVar7 >> 6;\n      if ((long)MVar6 < (long)MVar5) {\n        MVar5 = GetMagickResourceLimit(ThreadResource);\n      }\n    }\n  }\n  else {\n    MVar5 = GetMagickResourceLimit(ThreadResource);\n    if (MVar5 < 2) {\n      MVar6 = GetMagickResourceLimit(ThreadResource);\n      MVar5 = 1;\n      if (MVar6 < 2) goto LAB_002e3654;\n    }\n    MVar6 = GetMagickResourceLimit(ThreadResource);\n    MVar5 = 2;\n    if (MVar6 < 2) {\n      MVar5 = GetMagickResourceLimit(ThreadResource);\n    }\n  }\nLAB_002e3654:\n  local_50 = &progress;\n  local_48 = MagickTrue;\n  local_88 = image;\n  local_80 = low_black;\n  local_78 = low_white;\n  local_70 = high_white;\n  local_68 = high_black;\n  local_60 = exception;\n  local_58 = cache_view;\n  GOMP_parallel(RangeThresholdImage__omp_fn_8,&local_88,MVar5,0);\n  MVar3 = local_48;\n  DestroyCacheView(cache_view);\nLAB_002e36b8:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return MVar3;\n}\n\n" comment comment comment comment comment comment (function_definition "MagickBooleanType\nRangeThresholdImage(Image *image,double low_black,double low_white,double high_white,\n                   double high_black,ExceptionInfo *exception)\n\n{\n  size_t sVar1;\n  bool bVar2;\n  MagickBooleanType MVar3;\n  CacheType CVar4;\n  CacheView *cache_view;\n  MagickSizeType MVar5;\n  MagickSizeType MVar6;\n  size_t sVar7;\n  long in_FS_OFFSET;\n  MagickOffsetType progress;\n  Image *local_88;\n  double local_80;\n  double local_78;\n  double local_70;\n  double local_68;\n  ExceptionInfo *local_60;\n  CacheView *local_58;\n  MagickOffsetType *local_50;\n  MagickBooleanType local_48;\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/threshold.c",0x94e,"RangeThresholdImage");\n  }\n  if (image->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/threshold.c",0x94f,\n                  "RangeThresholdImage");\n  }\n  if (image->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"MagickCore/threshold.c","RangeThresholdImage",0x951,"%s",\n                   image->filename,low_black,low_white);\n  }\n  MVar3 = SetImageStorageClass(image,DirectClass,exception);\n  if (MVar3 == MagickFalse) goto LAB_002e36b8;\n  if ((image->colorspace == LinearGRAYColorspace) || (image->colorspace == GRAYColorspace)) {\n    TransformImageColorspace(image,sRGBColorspace,exception);\n  }\n  progress = 0;\n  cache_view = AcquireAuthenticCacheView(image,exception);\n  CVar4 = GetImagePixelCacheType(image);\n  if (((CVar4 == MemoryCache) || (CVar4 = GetImagePixelCacheType(image), CVar4 == MapCache)) &&\n     ((CVar4 = GetImagePixelCacheType(image), CVar4 == MemoryCache ||\n      (CVar4 = GetImagePixelCacheType(image), CVar4 == MapCache)))) {\n    MVar5 = GetMagickResourceLimit(ThreadResource);\n    sVar1 = image->rows;\n    sVar7 = sVar1 + 0x3f;\n    if (-1 < (long)sVar1) {\n      sVar7 = sVar1;\n    }\n    bVar2 = 0x7f < (long)sVar1;\n    if ((long)MVar5 < (long)sVar7 >> 6) {\n      MVar5 = GetMagickResourceLimit(ThreadResource);\n      bVar2 = 1 < (long)MVar5;\n    }\n    MVar5 = 1;\n    if (bVar2) {\n      MVar6 = GetMagickResourceLimit(ThreadResource);\n      sVar1 = image->rows;\n      sVar7 = sVar1 + 0x3f;\n      if (-1 < (long)sVar1) {\n        sVar7 = sVar1;\n      }\n      MVar5 = (long)sVar7 >> 6;\n      if ((long)MVar6 < (long)MVar5) {\n        MVar5 = GetMagickResourceLimit(ThreadResource);\n      }\n    }\n  }\n  else {\n    MVar5 = GetMagickResourceLimit(ThreadResource);\n    if (MVar5 < 2) {\n      MVar6 = GetMagickResourceLimit(ThreadResource);\n      MVar5 = 1;\n      if (MVar6 < 2) goto LAB_002e3654;\n    }\n    MVar6 = GetMagickResourceLimit(ThreadResource);\n    MVar5 = 2;\n    if (MVar6 < 2) {\n      MVar5 = GetMagickResourceLimit(ThreadResource);\n    }\n  }\nLAB_002e3654:\n  local_50 = &progress;\n  local_48 = MagickTrue;\n  local_88 = image;\n  local_80 = low_black;\n  local_78 = low_white;\n  local_70 = high_white;\n  local_68 = high_black;\n  local_60 = exception;\n  local_58 = cache_view;\n  GOMP_parallel(RangeThresholdImage__omp_fn_8,&local_88,MVar5,0);\n  MVar3 = local_48;\n  DestroyCacheView(cache_view);\nLAB_002e36b8:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return MVar3;\n}" type_identifier (function_declarator "RangeThresholdImage(Image *image,double low_black,double low_white,double high_white,\n                   double high_black,ExceptionInfo *exception)" identifier (parameter_list "(Image *image,double low_black,double low_white,double high_white,\n                   double high_black,ExceptionInfo *exception)" ( (parameter_declaration "Image *image" type_identifier (pointer_declarator "*image" * identifier)) , (parameter_declaration "double low_black" primitive_type identifier) , (parameter_declaration "double low_white" primitive_type identifier) , (parameter_declaration "double high_white" primitive_type identifier) , (parameter_declaration "double high_black" primitive_type identifier) , (parameter_declaration "ExceptionInfo *exception" type_identifier (pointer_declarator "*exception" * identifier)) ))) (compound_statement "{\n  size_t sVar1;\n  bool bVar2;\n  MagickBooleanType MVar3;\n  CacheType CVar4;\n  CacheView *cache_view;\n  MagickSizeType MVar5;\n  MagickSizeType MVar6;\n  size_t sVar7;\n  long in_FS_OFFSET;\n  MagickOffsetType progress;\n  Image *local_88;\n  double local_80;\n  double local_78;\n  double local_70;\n  double local_68;\n  ExceptionInfo *local_60;\n  CacheView *local_58;\n  MagickOffsetType *local_50;\n  MagickBooleanType local_48;\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/threshold.c",0x94e,"RangeThresholdImage");\n  }\n  if (image->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/threshold.c",0x94f,\n                  "RangeThresholdImage");\n  }\n  if (image->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"MagickCore/threshold.c","RangeThresholdImage",0x951,"%s",\n                   image->filename,low_black,low_white);\n  }\n  MVar3 = SetImageStorageClass(image,DirectClass,exception);\n  if (MVar3 == MagickFalse) goto LAB_002e36b8;\n  if ((image->colorspace == LinearGRAYColorspace) || (image->colorspace == GRAYColorspace)) {\n    TransformImageColorspace(image,sRGBColorspace,exception);\n  }\n  progress = 0;\n  cache_view = AcquireAuthenticCacheView(image,exception);\n  CVar4 = GetImagePixelCacheType(image);\n  if (((CVar4 == MemoryCache) || (CVar4 = GetImagePixelCacheType(image), CVar4 == MapCache)) &&\n     ((CVar4 = GetImagePixelCacheType(image), CVar4 == MemoryCache ||\n      (CVar4 = GetImagePixelCacheType(image), CVar4 == MapCache)))) {\n    MVar5 = GetMagickResourceLimit(ThreadResource);\n    sVar1 = image->rows;\n    sVar7 = sVar1 + 0x3f;\n    if (-1 < (long)sVar1) {\n      sVar7 = sVar1;\n    }\n    bVar2 = 0x7f < (long)sVar1;\n    if ((long)MVar5 < (long)sVar7 >> 6) {\n      MVar5 = GetMagickResourceLimit(ThreadResource);\n      bVar2 = 1 < (long)MVar5;\n    }\n    MVar5 = 1;\n    if (bVar2) {\n      MVar6 = GetMagickResourceLimit(ThreadResource);\n      sVar1 = image->rows;\n      sVar7 = sVar1 + 0x3f;\n      if (-1 < (long)sVar1) {\n        sVar7 = sVar1;\n      }\n      MVar5 = (long)sVar7 >> 6;\n      if ((long)MVar6 < (long)MVar5) {\n        MVar5 = GetMagickResourceLimit(ThreadResource);\n      }\n    }\n  }\n  else {\n    MVar5 = GetMagickResourceLimit(ThreadResource);\n    if (MVar5 < 2) {\n      MVar6 = GetMagickResourceLimit(ThreadResource);\n      MVar5 = 1;\n      if (MVar6 < 2) goto LAB_002e3654;\n    }\n    MVar6 = GetMagickResourceLimit(ThreadResource);\n    MVar5 = 2;\n    if (MVar6 < 2) {\n      MVar5 = GetMagickResourceLimit(ThreadResource);\n    }\n  }\nLAB_002e3654:\n  local_50 = &progress;\n  local_48 = MagickTrue;\n  local_88 = image;\n  local_80 = low_black;\n  local_78 = low_white;\n  local_70 = high_white;\n  local_68 = high_black;\n  local_60 = exception;\n  local_58 = cache_view;\n  GOMP_parallel(RangeThresholdImage__omp_fn_8,&local_88,MVar5,0);\n  MVar3 = local_48;\n  DestroyCacheView(cache_view);\nLAB_002e36b8:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return MVar3;\n}" { (declaration "size_t sVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "MagickBooleanType MVar3;" type_identifier identifier ;) (declaration "CacheType CVar4;" type_identifier identifier ;) (declaration "CacheView *cache_view;" type_identifier (pointer_declarator "*cache_view" * identifier) ;) (declaration "MagickSizeType MVar5;" type_identifier identifier ;) (declaration "MagickSizeType MVar6;" type_identifier identifier ;) (declaration "size_t sVar7;" primitive_type identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "MagickOffsetType progress;" type_identifier identifier ;) (declaration "Image *local_88;" type_identifier (pointer_declarator "*local_88" * identifier) ;) (declaration "double local_80;" primitive_type identifier ;) (declaration "double local_78;" primitive_type identifier ;) (declaration "double local_70;" primitive_type identifier ;) (declaration "double local_68;" primitive_type identifier ;) (declaration "ExceptionInfo *local_60;" type_identifier (pointer_declarator "*local_60" * identifier) ;) (declaration "CacheView *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "MagickOffsetType *local_50;" type_identifier (pointer_declarator "*local_50" * identifier) ;) (declaration "MagickBooleanType local_48;" 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/threshold.c",0x94e,"RangeThresholdImage");\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/threshold.c",0x94e,"RangeThresholdImage");\n  }" { comment (expression_statement "__assert_fail("image != (Image *) NULL","MagickCore/threshold.c",0x94e,"RangeThresholdImage");" (call_expression "__assert_fail("image != (Image *) NULL","MagickCore/threshold.c",0x94e,"RangeThresholdImage")" identifier (argument_list "("image != (Image *) NULL","MagickCore/threshold.c",0x94e,"RangeThresholdImage")" ( (string_literal ""image != (Image *) NULL"" " string_content ") , (string_literal ""MagickCore/threshold.c"" " string_content ") , number_literal , (string_literal ""RangeThresholdImage"" " string_content ") ))) ;) })) (if_statement "if (image->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/threshold.c",0x94f,\n                  "RangeThresholdImage");\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/threshold.c",0x94f,\n                  "RangeThresholdImage");\n  }" { comment (expression_statement "__assert_fail("image->signature == MagickCoreSignature","MagickCore/threshold.c",0x94f,\n                  "RangeThresholdImage");" (call_expression "__assert_fail("image->signature == MagickCoreSignature","MagickCore/threshold.c",0x94f,\n                  "RangeThresholdImage")" identifier (argument_list "("image->signature == MagickCoreSignature","MagickCore/threshold.c",0x94f,\n                  "RangeThresholdImage")" ( (string_literal ""image->signature == MagickCoreSignature"" " string_content ") , (string_literal ""MagickCore/threshold.c"" " string_content ") , number_literal , (string_literal ""RangeThresholdImage"" " string_content ") ))) ;) })) (if_statement "if (image->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"MagickCore/threshold.c","RangeThresholdImage",0x951,"%s",\n                   image->filename,low_black,low_white);\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/threshold.c","RangeThresholdImage",0x951,"%s",\n                   image->filename,low_black,low_white);\n  }" { (expression_statement "LogMagickEvent(TraceEvent,"MagickCore/threshold.c","RangeThresholdImage",0x951,"%s",\n                   image->filename,low_black,low_white);" (call_expression "LogMagickEvent(TraceEvent,"MagickCore/threshold.c","RangeThresholdImage",0x951,"%s",\n                   image->filename,low_black,low_white)" identifier (argument_list "(TraceEvent,"MagickCore/threshold.c","RangeThresholdImage",0x951,"%s",\n                   image->filename,low_black,low_white)" ( identifier , (string_literal ""MagickCore/threshold.c"" " string_content ") , (string_literal ""RangeThresholdImage"" " string_content ") , number_literal , (string_literal ""%s"" " string_content ") , (field_expression "image->filename" identifier -> field_identifier) , identifier , identifier ))) ;) })) (expression_statement "MVar3 = SetImageStorageClass(image,DirectClass,exception);" (assignment_expression "MVar3 = SetImageStorageClass(image,DirectClass,exception)" identifier = (call_expression "SetImageStorageClass(image,DirectClass,exception)" identifier (argument_list "(image,DirectClass,exception)" ( identifier , identifier , identifier )))) ;) (if_statement "if (MVar3 == MagickFalse) goto LAB_002e36b8;" if (parenthesized_expression "(MVar3 == MagickFalse)" ( (binary_expression "MVar3 == MagickFalse" identifier == identifier) )) (goto_statement "goto LAB_002e36b8;" goto statement_identifier ;)) (if_statement "if ((image->colorspace == LinearGRAYColorspace) || (image->colorspace == GRAYColorspace)) {\n    TransformImageColorspace(image,sRGBColorspace,exception);\n  }" if (parenthesized_expression "((image->colorspace == LinearGRAYColorspace) || (image->colorspace == GRAYColorspace))" ( (binary_expression "(image->colorspace == LinearGRAYColorspace) || (image->colorspace == GRAYColorspace)" (parenthesized_expression "(image->colorspace == LinearGRAYColorspace)" ( (binary_expression "image->colorspace == LinearGRAYColorspace" (field_expression "image->colorspace" identifier -> field_identifier) == identifier) )) || (parenthesized_expression "(image->colorspace == GRAYColorspace)" ( (binary_expression "image->colorspace == GRAYColorspace" (field_expression "image->colorspace" identifier -> field_identifier) == identifier) ))) )) (compound_statement "{\n    TransformImageColorspace(image,sRGBColorspace,exception);\n  }" { (expression_statement "TransformImageColorspace(image,sRGBColorspace,exception);" (call_expression "TransformImageColorspace(image,sRGBColorspace,exception)" identifier (argument_list "(image,sRGBColorspace,exception)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "progress = 0;" (assignment_expression "progress = 0" identifier = number_literal) ;) (expression_statement "cache_view = AcquireAuthenticCacheView(image,exception);" (assignment_expression "cache_view = AcquireAuthenticCacheView(image,exception)" identifier = (call_expression "AcquireAuthenticCacheView(image,exception)" identifier (argument_list "(image,exception)" ( identifier , identifier )))) ;) (expression_statement "CVar4 = GetImagePixelCacheType(image);" (assignment_expression "CVar4 = GetImagePixelCacheType(image)" identifier = (call_expression "GetImagePixelCacheType(image)" identifier (argument_list "(image)" ( identifier )))) ;) (if_statement "if (((CVar4 == MemoryCache) || (CVar4 = GetImagePixelCacheType(image), CVar4 == MapCache)) &&\n     ((CVar4 = GetImagePixelCacheType(image), CVar4 == MemoryCache ||\n      (CVar4 = GetImagePixelCacheType(image), CVar4 == MapCache)))) {\n    MVar5 = GetMagickResourceLimit(ThreadResource);\n    sVar1 = image->rows;\n    sVar7 = sVar1 + 0x3f;\n    if (-1 < (long)sVar1) {\n      sVar7 = sVar1;\n    }\n    bVar2 = 0x7f < (long)sVar1;\n    if ((long)MVar5 < (long)sVar7 >> 6) {\n      MVar5 = GetMagickResourceLimit(ThreadResource);\n      bVar2 = 1 < (long)MVar5;\n    }\n    MVar5 = 1;\n    if (bVar2) {\n      MVar6 = GetMagickResourceLimit(ThreadResource);\n      sVar1 = image->rows;\n      sVar7 = sVar1 + 0x3f;\n      if (-1 < (long)sVar1) {\n        sVar7 = sVar1;\n      }\n      MVar5 = (long)sVar7 >> 6;\n      if ((long)MVar6 < (long)MVar5) {\n        MVar5 = GetMagickResourceLimit(ThreadResource);\n      }\n    }\n  }\n  else {\n    MVar5 = GetMagickResourceLimit(ThreadResource);\n    if (MVar5 < 2) {\n      MVar6 = GetMagickResourceLimit(ThreadResource);\n      MVar5 = 1;\n      if (MVar6 < 2) goto LAB_002e3654;\n    }\n    MVar6 = GetMagickResourceLimit(ThreadResource);\n    MVar5 = 2;\n    if (MVar6 < 2) {\n      MVar5 = GetMagickResourceLimit(ThreadResource);\n    }\n  }" if (parenthesized_expression "(((CVar4 == MemoryCache) || (CVar4 = GetImagePixelCacheType(image), CVar4 == MapCache)) &&\n     ((CVar4 = GetImagePixelCacheType(image), CVar4 == MemoryCache ||\n      (CVar4 = GetImagePixelCacheType(image), CVar4 == MapCache))))" ( (binary_expression "((CVar4 == MemoryCache) || (CVar4 = GetImagePixelCacheType(image), CVar4 == MapCache)) &&\n     ((CVar4 = GetImagePixelCacheType(image), CVar4 == MemoryCache ||\n      (CVar4 = GetImagePixelCacheType(image), CVar4 == MapCache)))" (parenthesized_expression "((CVar4 == MemoryCache) || (CVar4 = GetImagePixelCacheType(image), CVar4 == MapCache))" ( (binary_expression "(CVar4 == MemoryCache) || (CVar4 = GetImagePixelCacheType(image), CVar4 == MapCache)" (parenthesized_expression "(CVar4 == MemoryCache)" ( (binary_expression "CVar4 == MemoryCache" identifier == identifier) )) || (parenthesized_expression "(CVar4 = GetImagePixelCacheType(image), CVar4 == MapCache)" ( (comma_expression "CVar4 = GetImagePixelCacheType(image), CVar4 == MapCache" (assignment_expression "CVar4 = GetImagePixelCacheType(image)" identifier = (call_expression "GetImagePixelCacheType(image)" identifier (argument_list "(image)" ( identifier )))) , (binary_expression "CVar4 == MapCache" identifier == identifier)) ))) )) && (parenthesized_expression "((CVar4 = GetImagePixelCacheType(image), CVar4 == MemoryCache ||\n      (CVar4 = GetImagePixelCacheType(image), CVar4 == MapCache)))" ( (parenthesized_expression "(CVar4 = GetImagePixelCacheType(image), CVar4 == MemoryCache ||\n      (CVar4 = GetImagePixelCacheType(image), CVar4 == MapCache))" ( (comma_expression "CVar4 = GetImagePixelCacheType(image), CVar4 == MemoryCache ||\n      (CVar4 = GetImagePixelCacheType(image), CVar4 == MapCache)" (assignment_expression "CVar4 = GetImagePixelCacheType(image)" identifier = (call_expression "GetImagePixelCacheType(image)" identifier (argument_list "(image)" ( identifier )))) , (binary_expression "CVar4 == MemoryCache ||\n      (CVar4 = GetImagePixelCacheType(image), CVar4 == MapCache)" (binary_expression "CVar4 == MemoryCache" identifier == identifier) || (parenthesized_expression "(CVar4 = GetImagePixelCacheType(image), CVar4 == MapCache)" ( (comma_expression "CVar4 = GetImagePixelCacheType(image), CVar4 == MapCache" (assignment_expression "CVar4 = GetImagePixelCacheType(image)" identifier = (call_expression "GetImagePixelCacheType(image)" identifier (argument_list "(image)" ( identifier )))) , (binary_expression "CVar4 == MapCache" identifier == identifier)) )))) )) ))) )) (compound_statement "{\n    MVar5 = GetMagickResourceLimit(ThreadResource);\n    sVar1 = image->rows;\n    sVar7 = sVar1 + 0x3f;\n    if (-1 < (long)sVar1) {\n      sVar7 = sVar1;\n    }\n    bVar2 = 0x7f < (long)sVar1;\n    if ((long)MVar5 < (long)sVar7 >> 6) {\n      MVar5 = GetMagickResourceLimit(ThreadResource);\n      bVar2 = 1 < (long)MVar5;\n    }\n    MVar5 = 1;\n    if (bVar2) {\n      MVar6 = GetMagickResourceLimit(ThreadResource);\n      sVar1 = image->rows;\n      sVar7 = sVar1 + 0x3f;\n      if (-1 < (long)sVar1) {\n        sVar7 = sVar1;\n      }\n      MVar5 = (long)sVar7 >> 6;\n      if ((long)MVar6 < (long)MVar5) {\n        MVar5 = GetMagickResourceLimit(ThreadResource);\n      }\n    }\n  }" { (expression_statement "MVar5 = GetMagickResourceLimit(ThreadResource);" (assignment_expression "MVar5 = GetMagickResourceLimit(ThreadResource)" identifier = (call_expression "GetMagickResourceLimit(ThreadResource)" identifier (argument_list "(ThreadResource)" ( identifier )))) ;) (expression_statement "sVar1 = image->rows;" (assignment_expression "sVar1 = image->rows" identifier = (field_expression "image->rows" identifier -> field_identifier)) ;) (expression_statement "sVar7 = sVar1 + 0x3f;" (assignment_expression "sVar7 = sVar1 + 0x3f" identifier = (binary_expression "sVar1 + 0x3f" identifier + number_literal)) ;) (if_statement "if (-1 < (long)sVar1) {\n      sVar7 = sVar1;\n    }" if (parenthesized_expression "(-1 < (long)sVar1)" ( (binary_expression "-1 < (long)sVar1" number_literal < (cast_expression "(long)sVar1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\n      sVar7 = sVar1;\n    }" { (expression_statement "sVar7 = sVar1;" (assignment_expression "sVar7 = sVar1" identifier = identifier) ;) })) (expression_statement "bVar2 = 0x7f < (long)sVar1;" (assignment_expression "bVar2 = 0x7f < (long)sVar1" identifier = (binary_expression "0x7f < (long)sVar1" number_literal < (cast_expression "(long)sVar1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (if_statement "if ((long)MVar5 < (long)sVar7 >> 6) {\n      MVar5 = GetMagickResourceLimit(ThreadResource);\n      bVar2 = 1 < (long)MVar5;\n    }" if (parenthesized_expression "((long)MVar5 < (long)sVar7 >> 6)" ( (binary_expression "(long)MVar5 < (long)sVar7 >> 6" (cast_expression "(long)MVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < (binary_expression "(long)sVar7 >> 6" (cast_expression "(long)sVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) >> number_literal)) )) (compound_statement "{\n      MVar5 = GetMagickResourceLimit(ThreadResource);\n      bVar2 = 1 < (long)MVar5;\n    }" { (expression_statement "MVar5 = GetMagickResourceLimit(ThreadResource);" (assignment_expression "MVar5 = GetMagickResourceLimit(ThreadResource)" identifier = (call_expression "GetMagickResourceLimit(ThreadResource)" identifier (argument_list "(ThreadResource)" ( identifier )))) ;) (expression_statement "bVar2 = 1 < (long)MVar5;" (assignment_expression "bVar2 = 1 < (long)MVar5" identifier = (binary_expression "1 < (long)MVar5" number_literal < (cast_expression "(long)MVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) })) (expression_statement "MVar5 = 1;" (assignment_expression "MVar5 = 1" identifier = number_literal) ;) (if_statement "if (bVar2) {\n      MVar6 = GetMagickResourceLimit(ThreadResource);\n      sVar1 = image->rows;\n      sVar7 = sVar1 + 0x3f;\n      if (-1 < (long)sVar1) {\n        sVar7 = sVar1;\n      }\n      MVar5 = (long)sVar7 >> 6;\n      if ((long)MVar6 < (long)MVar5) {\n        MVar5 = GetMagickResourceLimit(ThreadResource);\n      }\n    }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n      MVar6 = GetMagickResourceLimit(ThreadResource);\n      sVar1 = image->rows;\n      sVar7 = sVar1 + 0x3f;\n      if (-1 < (long)sVar1) {\n        sVar7 = sVar1;\n      }\n      MVar5 = (long)sVar7 >> 6;\n      if ((long)MVar6 < (long)MVar5) {\n        MVar5 = GetMagickResourceLimit(ThreadResource);\n      }\n    }" { (expression_statement "MVar6 = GetMagickResourceLimit(ThreadResource);" (assignment_expression "MVar6 = GetMagickResourceLimit(ThreadResource)" identifier = (call_expression "GetMagickResourceLimit(ThreadResource)" identifier (argument_list "(ThreadResource)" ( identifier )))) ;) (expression_statement "sVar1 = image->rows;" (assignment_expression "sVar1 = image->rows" identifier = (field_expression "image->rows" identifier -> field_identifier)) ;) (expression_statement "sVar7 = sVar1 + 0x3f;" (assignment_expression "sVar7 = sVar1 + 0x3f" identifier = (binary_expression "sVar1 + 0x3f" identifier + number_literal)) ;) (if_statement "if (-1 < (long)sVar1) {\n        sVar7 = sVar1;\n      }" if (parenthesized_expression "(-1 < (long)sVar1)" ( (binary_expression "-1 < (long)sVar1" number_literal < (cast_expression "(long)sVar1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\n        sVar7 = sVar1;\n      }" { (expression_statement "sVar7 = sVar1;" (assignment_expression "sVar7 = sVar1" identifier = identifier) ;) })) (expression_statement "MVar5 = (long)sVar7 >> 6;" (assignment_expression "MVar5 = (long)sVar7 >> 6" identifier = (binary_expression "(long)sVar7 >> 6" (cast_expression "(long)sVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) >> number_literal)) ;) (if_statement "if ((long)MVar6 < (long)MVar5) {\n        MVar5 = GetMagickResourceLimit(ThreadResource);\n      }" if (parenthesized_expression "((long)MVar6 < (long)MVar5)" ( (binary_expression "(long)MVar6 < (long)MVar5" (cast_expression "(long)MVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < (cast_expression "(long)MVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\n        MVar5 = GetMagickResourceLimit(ThreadResource);\n      }" { (expression_statement "MVar5 = GetMagickResourceLimit(ThreadResource);" (assignment_expression "MVar5 = GetMagickResourceLimit(ThreadResource)" identifier = (call_expression "GetMagickResourceLimit(ThreadResource)" identifier (argument_list "(ThreadResource)" ( identifier )))) ;) })) })) }) (else_clause "else {\n    MVar5 = GetMagickResourceLimit(ThreadResource);\n    if (MVar5 < 2) {\n      MVar6 = GetMagickResourceLimit(ThreadResource);\n      MVar5 = 1;\n      if (MVar6 < 2) goto LAB_002e3654;\n    }\n    MVar6 = GetMagickResourceLimit(ThreadResource);\n    MVar5 = 2;\n    if (MVar6 < 2) {\n      MVar5 = GetMagickResourceLimit(ThreadResource);\n    }\n  }" else (compound_statement "{\n    MVar5 = GetMagickResourceLimit(ThreadResource);\n    if (MVar5 < 2) {\n      MVar6 = GetMagickResourceLimit(ThreadResource);\n      MVar5 = 1;\n      if (MVar6 < 2) goto LAB_002e3654;\n    }\n    MVar6 = GetMagickResourceLimit(ThreadResource);\n    MVar5 = 2;\n    if (MVar6 < 2) {\n      MVar5 = GetMagickResourceLimit(ThreadResource);\n    }\n  }" { (expression_statement "MVar5 = GetMagickResourceLimit(ThreadResource);" (assignment_expression "MVar5 = GetMagickResourceLimit(ThreadResource)" identifier = (call_expression "GetMagickResourceLimit(ThreadResource)" identifier (argument_list "(ThreadResource)" ( identifier )))) ;) (if_statement "if (MVar5 < 2) {\n      MVar6 = GetMagickResourceLimit(ThreadResource);\n      MVar5 = 1;\n      if (MVar6 < 2) goto LAB_002e3654;\n    }" if (parenthesized_expression "(MVar5 < 2)" ( (binary_expression "MVar5 < 2" identifier < number_literal) )) (compound_statement "{\n      MVar6 = GetMagickResourceLimit(ThreadResource);\n      MVar5 = 1;\n      if (MVar6 < 2) goto LAB_002e3654;\n    }" { (expression_statement "MVar6 = GetMagickResourceLimit(ThreadResource);" (assignment_expression "MVar6 = GetMagickResourceLimit(ThreadResource)" identifier = (call_expression "GetMagickResourceLimit(ThreadResource)" identifier (argument_list "(ThreadResource)" ( identifier )))) ;) (expression_statement "MVar5 = 1;" (assignment_expression "MVar5 = 1" identifier = number_literal) ;) (if_statement "if (MVar6 < 2) goto LAB_002e3654;" if (parenthesized_expression "(MVar6 < 2)" ( (binary_expression "MVar6 < 2" identifier < number_literal) )) (goto_statement "goto LAB_002e3654;" goto statement_identifier ;)) })) (expression_statement "MVar6 = GetMagickResourceLimit(ThreadResource);" (assignment_expression "MVar6 = GetMagickResourceLimit(ThreadResource)" identifier = (call_expression "GetMagickResourceLimit(ThreadResource)" identifier (argument_list "(ThreadResource)" ( identifier )))) ;) (expression_statement "MVar5 = 2;" (assignment_expression "MVar5 = 2" identifier = number_literal) ;) (if_statement "if (MVar6 < 2) {\n      MVar5 = GetMagickResourceLimit(ThreadResource);\n    }" if (parenthesized_expression "(MVar6 < 2)" ( (binary_expression "MVar6 < 2" identifier < number_literal) )) (compound_statement "{\n      MVar5 = GetMagickResourceLimit(ThreadResource);\n    }" { (expression_statement "MVar5 = GetMagickResourceLimit(ThreadResource);" (assignment_expression "MVar5 = GetMagickResourceLimit(ThreadResource)" identifier = (call_expression "GetMagickResourceLimit(ThreadResource)" identifier (argument_list "(ThreadResource)" ( identifier )))) ;) })) }))) (labeled_statement "LAB_002e3654:\n  local_50 = &progress;" statement_identifier : (expression_statement "local_50 = &progress;" (assignment_expression "local_50 = &progress" identifier = (pointer_expression "&progress" & identifier)) ;)) (expression_statement "local_48 = MagickTrue;" (assignment_expression "local_48 = MagickTrue" identifier = identifier) ;) (expression_statement "local_88 = image;" (assignment_expression "local_88 = image" identifier = identifier) ;) (expression_statement "local_80 = low_black;" (assignment_expression "local_80 = low_black" identifier = identifier) ;) (expression_statement "local_78 = low_white;" (assignment_expression "local_78 = low_white" identifier = identifier) ;) (expression_statement "local_70 = high_white;" (assignment_expression "local_70 = high_white" identifier = identifier) ;) (expression_statement "local_68 = high_black;" (assignment_expression "local_68 = high_black" identifier = identifier) ;) (expression_statement "local_60 = exception;" (assignment_expression "local_60 = exception" identifier = identifier) ;) (expression_statement "local_58 = cache_view;" (assignment_expression "local_58 = cache_view" identifier = identifier) ;) (expression_statement "GOMP_parallel(RangeThresholdImage__omp_fn_8,&local_88,MVar5,0);" (call_expression "GOMP_parallel(RangeThresholdImage__omp_fn_8,&local_88,MVar5,0)" identifier (argument_list "(RangeThresholdImage__omp_fn_8,&local_88,MVar5,0)" ( identifier , (pointer_expression "&local_88" & identifier) , identifier , number_literal ))) ;) (expression_statement "MVar3 = local_48;" (assignment_expression "MVar3 = local_48" identifier = identifier) ;) (expression_statement "DestroyCacheView(cache_view);" (call_expression "DestroyCacheView(cache_view)" identifier (argument_list "(cache_view)" ( identifier ))) ;) (labeled_statement "LAB_002e36b8:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" statement_identifier : (if_statement "if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\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                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" { comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return MVar3;" return identifier ;) })))
(translation_unit "int RangeThresholdImage(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                       long param_5,undefined8 param_6)\n\n{\n  bool bVar1;\n  int iVar2;\n  undefined8 uVar3;\n  ulong uVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  long in_FS_OFFSET;\n  undefined8 local_90;\n  long local_88;\n  undefined8 local_80;\n  undefined8 local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  undefined8 local_60;\n  undefined8 local_58;\n  undefined8 *local_50;\n  int local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_5 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/threshold.c",0x94e,"RangeThresholdImage");\n  }\n  if (*(long *)(param_5 + 0x3450) != 0xabacadab) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/threshold.c",0x94f,\n                  "RangeThresholdImage");\n  }\n  if (*(int *)(param_5 + 0x3418) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/threshold.c","RangeThresholdImage",0x951,&DAT_0041fe36,\n                   param_5 + 0x3f8,param_1,param_2);\n  }\n  iVar2 = SetImageStorageClass(param_5,1,param_6);\n  if (iVar2 == 0) goto LAB_002e36b8;\n  if ((*(int *)(param_5 + 4) == 0x21) || (*(int *)(param_5 + 4) == 3)) {\n    TransformImageColorspace(param_5,0x17,param_6);\n  }\n  local_90 = 0;\n  uVar3 = AcquireAuthenticCacheView(param_5,param_6);\n  iVar2 = GetImagePixelCacheType(param_5);\n  if (((iVar2 == 4) || (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)) &&\n     ((iVar2 = GetImagePixelCacheType(param_5), iVar2 == 4 ||\n      (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)))) {\n    lVar5 = GetMagickResourceLimit(7);\n    lVar6 = *(long *)(param_5 + 0x28);\n    lVar7 = lVar6 + 0x3f;\n    if (-1 < lVar6) {\n      lVar7 = lVar6;\n    }\n    bVar1 = 0x7f < lVar6;\n    if (lVar5 < lVar7 >> 6) {\n      lVar6 = GetMagickResourceLimit(7);\n      bVar1 = 1 < lVar6;\n    }\n    lVar6 = 1;\n    if (bVar1) {\n      lVar5 = GetMagickResourceLimit(7);\n      lVar7 = *(long *)(param_5 + 0x28);\n      lVar6 = lVar7 + 0x3f;\n      if (-1 < lVar7) {\n        lVar6 = lVar7;\n      }\n      lVar6 = lVar6 >> 6;\n      if (lVar5 < lVar6) {\n        lVar6 = GetMagickResourceLimit(7);\n      }\n    }\n  }\n  else {\n    uVar4 = GetMagickResourceLimit(7);\n    if (uVar4 < 2) {\n      uVar4 = GetMagickResourceLimit(7);\n      lVar6 = 1;\n      if (uVar4 < 2) goto LAB_002e3654;\n    }\n    uVar4 = GetMagickResourceLimit(7);\n    lVar6 = 2;\n    if (uVar4 < 2) {\n      lVar6 = GetMagickResourceLimit(7);\n    }\n  }\nLAB_002e3654:\n  local_50 = &local_90;\n  local_48 = 1;\n  local_88 = param_5;\n  local_80 = param_1;\n  local_78 = param_2;\n  local_70 = param_3;\n  local_68 = param_4;\n  local_60 = param_6;\n  local_58 = uVar3;\n  GOMP_parallel(FUN_002dee3f,&local_88,lVar6,0);\n  iVar2 = local_48;\n  DestroyCacheView(uVar3);\nLAB_002e36b8:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return iVar2;\n}\n\n" (function_definition "int RangeThresholdImage(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                       long param_5,undefined8 param_6)\n\n{\n  bool bVar1;\n  int iVar2;\n  undefined8 uVar3;\n  ulong uVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  long in_FS_OFFSET;\n  undefined8 local_90;\n  long local_88;\n  undefined8 local_80;\n  undefined8 local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  undefined8 local_60;\n  undefined8 local_58;\n  undefined8 *local_50;\n  int local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_5 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/threshold.c",0x94e,"RangeThresholdImage");\n  }\n  if (*(long *)(param_5 + 0x3450) != 0xabacadab) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/threshold.c",0x94f,\n                  "RangeThresholdImage");\n  }\n  if (*(int *)(param_5 + 0x3418) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/threshold.c","RangeThresholdImage",0x951,&DAT_0041fe36,\n                   param_5 + 0x3f8,param_1,param_2);\n  }\n  iVar2 = SetImageStorageClass(param_5,1,param_6);\n  if (iVar2 == 0) goto LAB_002e36b8;\n  if ((*(int *)(param_5 + 4) == 0x21) || (*(int *)(param_5 + 4) == 3)) {\n    TransformImageColorspace(param_5,0x17,param_6);\n  }\n  local_90 = 0;\n  uVar3 = AcquireAuthenticCacheView(param_5,param_6);\n  iVar2 = GetImagePixelCacheType(param_5);\n  if (((iVar2 == 4) || (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)) &&\n     ((iVar2 = GetImagePixelCacheType(param_5), iVar2 == 4 ||\n      (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)))) {\n    lVar5 = GetMagickResourceLimit(7);\n    lVar6 = *(long *)(param_5 + 0x28);\n    lVar7 = lVar6 + 0x3f;\n    if (-1 < lVar6) {\n      lVar7 = lVar6;\n    }\n    bVar1 = 0x7f < lVar6;\n    if (lVar5 < lVar7 >> 6) {\n      lVar6 = GetMagickResourceLimit(7);\n      bVar1 = 1 < lVar6;\n    }\n    lVar6 = 1;\n    if (bVar1) {\n      lVar5 = GetMagickResourceLimit(7);\n      lVar7 = *(long *)(param_5 + 0x28);\n      lVar6 = lVar7 + 0x3f;\n      if (-1 < lVar7) {\n        lVar6 = lVar7;\n      }\n      lVar6 = lVar6 >> 6;\n      if (lVar5 < lVar6) {\n        lVar6 = GetMagickResourceLimit(7);\n      }\n    }\n  }\n  else {\n    uVar4 = GetMagickResourceLimit(7);\n    if (uVar4 < 2) {\n      uVar4 = GetMagickResourceLimit(7);\n      lVar6 = 1;\n      if (uVar4 < 2) goto LAB_002e3654;\n    }\n    uVar4 = GetMagickResourceLimit(7);\n    lVar6 = 2;\n    if (uVar4 < 2) {\n      lVar6 = GetMagickResourceLimit(7);\n    }\n  }\nLAB_002e3654:\n  local_50 = &local_90;\n  local_48 = 1;\n  local_88 = param_5;\n  local_80 = param_1;\n  local_78 = param_2;\n  local_70 = param_3;\n  local_68 = param_4;\n  local_60 = param_6;\n  local_58 = uVar3;\n  GOMP_parallel(FUN_002dee3f,&local_88,lVar6,0);\n  iVar2 = local_48;\n  DestroyCacheView(uVar3);\nLAB_002e36b8:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return iVar2;\n}" primitive_type (function_declarator "RangeThresholdImage(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                       long param_5,undefined8 param_6)" identifier (parameter_list "(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                       long param_5,undefined8 param_6)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "undefined8 param_4" type_identifier identifier) , (parameter_declaration "long param_5" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_6" type_identifier identifier) ))) (compound_statement "{\n  bool bVar1;\n  int iVar2;\n  undefined8 uVar3;\n  ulong uVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  long in_FS_OFFSET;\n  undefined8 local_90;\n  long local_88;\n  undefined8 local_80;\n  undefined8 local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  undefined8 local_60;\n  undefined8 local_58;\n  undefined8 *local_50;\n  int local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_5 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/threshold.c",0x94e,"RangeThresholdImage");\n  }\n  if (*(long *)(param_5 + 0x3450) != 0xabacadab) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/threshold.c",0x94f,\n                  "RangeThresholdImage");\n  }\n  if (*(int *)(param_5 + 0x3418) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/threshold.c","RangeThresholdImage",0x951,&DAT_0041fe36,\n                   param_5 + 0x3f8,param_1,param_2);\n  }\n  iVar2 = SetImageStorageClass(param_5,1,param_6);\n  if (iVar2 == 0) goto LAB_002e36b8;\n  if ((*(int *)(param_5 + 4) == 0x21) || (*(int *)(param_5 + 4) == 3)) {\n    TransformImageColorspace(param_5,0x17,param_6);\n  }\n  local_90 = 0;\n  uVar3 = AcquireAuthenticCacheView(param_5,param_6);\n  iVar2 = GetImagePixelCacheType(param_5);\n  if (((iVar2 == 4) || (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)) &&\n     ((iVar2 = GetImagePixelCacheType(param_5), iVar2 == 4 ||\n      (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)))) {\n    lVar5 = GetMagickResourceLimit(7);\n    lVar6 = *(long *)(param_5 + 0x28);\n    lVar7 = lVar6 + 0x3f;\n    if (-1 < lVar6) {\n      lVar7 = lVar6;\n    }\n    bVar1 = 0x7f < lVar6;\n    if (lVar5 < lVar7 >> 6) {\n      lVar6 = GetMagickResourceLimit(7);\n      bVar1 = 1 < lVar6;\n    }\n    lVar6 = 1;\n    if (bVar1) {\n      lVar5 = GetMagickResourceLimit(7);\n      lVar7 = *(long *)(param_5 + 0x28);\n      lVar6 = lVar7 + 0x3f;\n      if (-1 < lVar7) {\n        lVar6 = lVar7;\n      }\n      lVar6 = lVar6 >> 6;\n      if (lVar5 < lVar6) {\n        lVar6 = GetMagickResourceLimit(7);\n      }\n    }\n  }\n  else {\n    uVar4 = GetMagickResourceLimit(7);\n    if (uVar4 < 2) {\n      uVar4 = GetMagickResourceLimit(7);\n      lVar6 = 1;\n      if (uVar4 < 2) goto LAB_002e3654;\n    }\n    uVar4 = GetMagickResourceLimit(7);\n    lVar6 = 2;\n    if (uVar4 < 2) {\n      lVar6 = GetMagickResourceLimit(7);\n    }\n  }\nLAB_002e3654:\n  local_50 = &local_90;\n  local_48 = 1;\n  local_88 = param_5;\n  local_80 = param_1;\n  local_78 = param_2;\n  local_70 = param_3;\n  local_68 = param_4;\n  local_60 = param_6;\n  local_58 = uVar3;\n  GOMP_parallel(FUN_002dee3f,&local_88,lVar6,0);\n  iVar2 = local_48;\n  DestroyCacheView(uVar3);\nLAB_002e36b8:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return iVar2;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "ulong uVar4;" type_identifier identifier ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 local_90;" type_identifier identifier ;) (declaration "long local_88;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 local_80;" type_identifier identifier ;) (declaration "undefined8 local_78;" type_identifier identifier ;) (declaration "undefined8 local_70;" type_identifier identifier ;) (declaration "undefined8 local_68;" type_identifier identifier ;) (declaration "undefined8 local_60;" type_identifier identifier ;) (declaration "undefined8 local_58;" type_identifier identifier ;) (declaration "undefined8 *local_50;" type_identifier (pointer_declarator "*local_50" * identifier) ;) (declaration "int local_48;" 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_5 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/threshold.c",0x94e,"RangeThresholdImage");\n  }" if (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/threshold.c",0x94e,"RangeThresholdImage");\n  }" { (expression_statement "__assert_fail("image != (Image *) NULL","MagickCore/threshold.c",0x94e,"RangeThresholdImage");" (call_expression "__assert_fail("image != (Image *) NULL","MagickCore/threshold.c",0x94e,"RangeThresholdImage")" identifier (argument_list "("image != (Image *) NULL","MagickCore/threshold.c",0x94e,"RangeThresholdImage")" ( (string_literal ""image != (Image *) NULL"" " string_content ") , (string_literal ""MagickCore/threshold.c"" " string_content ") , number_literal , (string_literal ""RangeThresholdImage"" " string_content ") ))) ;) })) (if_statement "if (*(long *)(param_5 + 0x3450) != 0xabacadab) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/threshold.c",0x94f,\n                  "RangeThresholdImage");\n  }" if (parenthesized_expression "(*(long *)(param_5 + 0x3450) != 0xabacadab)" ( (binary_expression "*(long *)(param_5 + 0x3450) != 0xabacadab" (pointer_expression "*(long *)(param_5 + 0x3450)" * (cast_expression "(long *)(param_5 + 0x3450)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x3450)" ( (binary_expression "param_5 + 0x3450" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/threshold.c",0x94f,\n                  "RangeThresholdImage");\n  }" { (expression_statement "__assert_fail("image->signature == MagickCoreSignature","MagickCore/threshold.c",0x94f,\n                  "RangeThresholdImage");" (call_expression "__assert_fail("image->signature == MagickCoreSignature","MagickCore/threshold.c",0x94f,\n                  "RangeThresholdImage")" identifier (argument_list "("image->signature == MagickCoreSignature","MagickCore/threshold.c",0x94f,\n                  "RangeThresholdImage")" ( (string_literal ""image->signature == MagickCoreSignature"" " string_content ") , (string_literal ""MagickCore/threshold.c"" " string_content ") , number_literal , (string_literal ""RangeThresholdImage"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_5 + 0x3418) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/threshold.c","RangeThresholdImage",0x951,&DAT_0041fe36,\n                   param_5 + 0x3f8,param_1,param_2);\n  }" if (parenthesized_expression "(*(int *)(param_5 + 0x3418) != 0)" ( (binary_expression "*(int *)(param_5 + 0x3418) != 0" (pointer_expression "*(int *)(param_5 + 0x3418)" * (cast_expression "(int *)(param_5 + 0x3418)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x3418)" ( (binary_expression "param_5 + 0x3418" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    LogMagickEvent(0x8000,"MagickCore/threshold.c","RangeThresholdImage",0x951,&DAT_0041fe36,\n                   param_5 + 0x3f8,param_1,param_2);\n  }" { (expression_statement "LogMagickEvent(0x8000,"MagickCore/threshold.c","RangeThresholdImage",0x951,&DAT_0041fe36,\n                   param_5 + 0x3f8,param_1,param_2);" (call_expression "LogMagickEvent(0x8000,"MagickCore/threshold.c","RangeThresholdImage",0x951,&DAT_0041fe36,\n                   param_5 + 0x3f8,param_1,param_2)" identifier (argument_list "(0x8000,"MagickCore/threshold.c","RangeThresholdImage",0x951,&DAT_0041fe36,\n                   param_5 + 0x3f8,param_1,param_2)" ( number_literal , (string_literal ""MagickCore/threshold.c"" " string_content ") , (string_literal ""RangeThresholdImage"" " string_content ") , number_literal , (pointer_expression "&DAT_0041fe36" & identifier) , (binary_expression "param_5 + 0x3f8" identifier + number_literal) , identifier , identifier ))) ;) })) (expression_statement "iVar2 = SetImageStorageClass(param_5,1,param_6);" (assignment_expression "iVar2 = SetImageStorageClass(param_5,1,param_6)" identifier = (call_expression "SetImageStorageClass(param_5,1,param_6)" identifier (argument_list "(param_5,1,param_6)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (iVar2 == 0) goto LAB_002e36b8;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_002e36b8;" goto statement_identifier ;)) (if_statement "if ((*(int *)(param_5 + 4) == 0x21) || (*(int *)(param_5 + 4) == 3)) {\n    TransformImageColorspace(param_5,0x17,param_6);\n  }" if (parenthesized_expression "((*(int *)(param_5 + 4) == 0x21) || (*(int *)(param_5 + 4) == 3))" ( (binary_expression "(*(int *)(param_5 + 4) == 0x21) || (*(int *)(param_5 + 4) == 3)" (parenthesized_expression "(*(int *)(param_5 + 4) == 0x21)" ( (binary_expression "*(int *)(param_5 + 4) == 0x21" (pointer_expression "*(int *)(param_5 + 4)" * (cast_expression "(int *)(param_5 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 4)" ( (binary_expression "param_5 + 4" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(*(int *)(param_5 + 4) == 3)" ( (binary_expression "*(int *)(param_5 + 4) == 3" (pointer_expression "*(int *)(param_5 + 4)" * (cast_expression "(int *)(param_5 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 4)" ( (binary_expression "param_5 + 4" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n    TransformImageColorspace(param_5,0x17,param_6);\n  }" { (expression_statement "TransformImageColorspace(param_5,0x17,param_6);" (call_expression "TransformImageColorspace(param_5,0x17,param_6)" identifier (argument_list "(param_5,0x17,param_6)" ( identifier , number_literal , identifier ))) ;) })) (expression_statement "local_90 = 0;" (assignment_expression "local_90 = 0" identifier = number_literal) ;) (expression_statement "uVar3 = AcquireAuthenticCacheView(param_5,param_6);" (assignment_expression "uVar3 = AcquireAuthenticCacheView(param_5,param_6)" identifier = (call_expression "AcquireAuthenticCacheView(param_5,param_6)" identifier (argument_list "(param_5,param_6)" ( identifier , identifier )))) ;) (expression_statement "iVar2 = GetImagePixelCacheType(param_5);" (assignment_expression "iVar2 = GetImagePixelCacheType(param_5)" identifier = (call_expression "GetImagePixelCacheType(param_5)" identifier (argument_list "(param_5)" ( identifier )))) ;) (if_statement "if (((iVar2 == 4) || (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)) &&\n     ((iVar2 = GetImagePixelCacheType(param_5), iVar2 == 4 ||\n      (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)))) {\n    lVar5 = GetMagickResourceLimit(7);\n    lVar6 = *(long *)(param_5 + 0x28);\n    lVar7 = lVar6 + 0x3f;\n    if (-1 < lVar6) {\n      lVar7 = lVar6;\n    }\n    bVar1 = 0x7f < lVar6;\n    if (lVar5 < lVar7 >> 6) {\n      lVar6 = GetMagickResourceLimit(7);\n      bVar1 = 1 < lVar6;\n    }\n    lVar6 = 1;\n    if (bVar1) {\n      lVar5 = GetMagickResourceLimit(7);\n      lVar7 = *(long *)(param_5 + 0x28);\n      lVar6 = lVar7 + 0x3f;\n      if (-1 < lVar7) {\n        lVar6 = lVar7;\n      }\n      lVar6 = lVar6 >> 6;\n      if (lVar5 < lVar6) {\n        lVar6 = GetMagickResourceLimit(7);\n      }\n    }\n  }\n  else {\n    uVar4 = GetMagickResourceLimit(7);\n    if (uVar4 < 2) {\n      uVar4 = GetMagickResourceLimit(7);\n      lVar6 = 1;\n      if (uVar4 < 2) goto LAB_002e3654;\n    }\n    uVar4 = GetMagickResourceLimit(7);\n    lVar6 = 2;\n    if (uVar4 < 2) {\n      lVar6 = GetMagickResourceLimit(7);\n    }\n  }" if (parenthesized_expression "(((iVar2 == 4) || (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)) &&\n     ((iVar2 = GetImagePixelCacheType(param_5), iVar2 == 4 ||\n      (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3))))" ( (binary_expression "((iVar2 == 4) || (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)) &&\n     ((iVar2 = GetImagePixelCacheType(param_5), iVar2 == 4 ||\n      (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)))" (parenthesized_expression "((iVar2 == 4) || (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3))" ( (binary_expression "(iVar2 == 4) || (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)" (parenthesized_expression "(iVar2 == 4)" ( (binary_expression "iVar2 == 4" identifier == number_literal) )) || (parenthesized_expression "(iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)" ( (comma_expression "iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3" (assignment_expression "iVar2 = GetImagePixelCacheType(param_5)" identifier = (call_expression "GetImagePixelCacheType(param_5)" identifier (argument_list "(param_5)" ( identifier )))) , (binary_expression "iVar2 == 3" identifier == number_literal)) ))) )) && (parenthesized_expression "((iVar2 = GetImagePixelCacheType(param_5), iVar2 == 4 ||\n      (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)))" ( (parenthesized_expression "(iVar2 = GetImagePixelCacheType(param_5), iVar2 == 4 ||\n      (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3))" ( (comma_expression "iVar2 = GetImagePixelCacheType(param_5), iVar2 == 4 ||\n      (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)" (assignment_expression "iVar2 = GetImagePixelCacheType(param_5)" identifier = (call_expression "GetImagePixelCacheType(param_5)" identifier (argument_list "(param_5)" ( identifier )))) , (binary_expression "iVar2 == 4 ||\n      (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)" (binary_expression "iVar2 == 4" identifier == number_literal) || (parenthesized_expression "(iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)" ( (comma_expression "iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3" (assignment_expression "iVar2 = GetImagePixelCacheType(param_5)" identifier = (call_expression "GetImagePixelCacheType(param_5)" identifier (argument_list "(param_5)" ( identifier )))) , (binary_expression "iVar2 == 3" identifier == number_literal)) )))) )) ))) )) (compound_statement "{\n    lVar5 = GetMagickResourceLimit(7);\n    lVar6 = *(long *)(param_5 + 0x28);\n    lVar7 = lVar6 + 0x3f;\n    if (-1 < lVar6) {\n      lVar7 = lVar6;\n    }\n    bVar1 = 0x7f < lVar6;\n    if (lVar5 < lVar7 >> 6) {\n      lVar6 = GetMagickResourceLimit(7);\n      bVar1 = 1 < lVar6;\n    }\n    lVar6 = 1;\n    if (bVar1) {\n      lVar5 = GetMagickResourceLimit(7);\n      lVar7 = *(long *)(param_5 + 0x28);\n      lVar6 = lVar7 + 0x3f;\n      if (-1 < lVar7) {\n        lVar6 = lVar7;\n      }\n      lVar6 = lVar6 >> 6;\n      if (lVar5 < lVar6) {\n        lVar6 = GetMagickResourceLimit(7);\n      }\n    }\n  }" { (expression_statement "lVar5 = GetMagickResourceLimit(7);" (assignment_expression "lVar5 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (expression_statement "lVar6 = *(long *)(param_5 + 0x28);" (assignment_expression "lVar6 = *(long *)(param_5 + 0x28)" identifier = (pointer_expression "*(long *)(param_5 + 0x28)" * (cast_expression "(long *)(param_5 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x28)" ( (binary_expression "param_5 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "lVar7 = lVar6 + 0x3f;" (assignment_expression "lVar7 = lVar6 + 0x3f" identifier = (binary_expression "lVar6 + 0x3f" identifier + number_literal)) ;) (if_statement "if (-1 < lVar6) {\n      lVar7 = lVar6;\n    }" if (parenthesized_expression "(-1 < lVar6)" ( (binary_expression "-1 < lVar6" number_literal < identifier) )) (compound_statement "{\n      lVar7 = lVar6;\n    }" { (expression_statement "lVar7 = lVar6;" (assignment_expression "lVar7 = lVar6" identifier = identifier) ;) })) (expression_statement "bVar1 = 0x7f < lVar6;" (assignment_expression "bVar1 = 0x7f < lVar6" identifier = (binary_expression "0x7f < lVar6" number_literal < identifier)) ;) (if_statement "if (lVar5 < lVar7 >> 6) {\n      lVar6 = GetMagickResourceLimit(7);\n      bVar1 = 1 < lVar6;\n    }" if (parenthesized_expression "(lVar5 < lVar7 >> 6)" ( (binary_expression "lVar5 < lVar7 >> 6" identifier < (binary_expression "lVar7 >> 6" identifier >> number_literal)) )) (compound_statement "{\n      lVar6 = GetMagickResourceLimit(7);\n      bVar1 = 1 < lVar6;\n    }" { (expression_statement "lVar6 = GetMagickResourceLimit(7);" (assignment_expression "lVar6 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (expression_statement "bVar1 = 1 < lVar6;" (assignment_expression "bVar1 = 1 < lVar6" identifier = (binary_expression "1 < lVar6" number_literal < identifier)) ;) })) (expression_statement "lVar6 = 1;" (assignment_expression "lVar6 = 1" identifier = number_literal) ;) (if_statement "if (bVar1) {\n      lVar5 = GetMagickResourceLimit(7);\n      lVar7 = *(long *)(param_5 + 0x28);\n      lVar6 = lVar7 + 0x3f;\n      if (-1 < lVar7) {\n        lVar6 = lVar7;\n      }\n      lVar6 = lVar6 >> 6;\n      if (lVar5 < lVar6) {\n        lVar6 = GetMagickResourceLimit(7);\n      }\n    }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n      lVar5 = GetMagickResourceLimit(7);\n      lVar7 = *(long *)(param_5 + 0x28);\n      lVar6 = lVar7 + 0x3f;\n      if (-1 < lVar7) {\n        lVar6 = lVar7;\n      }\n      lVar6 = lVar6 >> 6;\n      if (lVar5 < lVar6) {\n        lVar6 = GetMagickResourceLimit(7);\n      }\n    }" { (expression_statement "lVar5 = GetMagickResourceLimit(7);" (assignment_expression "lVar5 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (expression_statement "lVar7 = *(long *)(param_5 + 0x28);" (assignment_expression "lVar7 = *(long *)(param_5 + 0x28)" identifier = (pointer_expression "*(long *)(param_5 + 0x28)" * (cast_expression "(long *)(param_5 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x28)" ( (binary_expression "param_5 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "lVar6 = lVar7 + 0x3f;" (assignment_expression "lVar6 = lVar7 + 0x3f" identifier = (binary_expression "lVar7 + 0x3f" identifier + number_literal)) ;) (if_statement "if (-1 < lVar7) {\n        lVar6 = lVar7;\n      }" if (parenthesized_expression "(-1 < lVar7)" ( (binary_expression "-1 < lVar7" number_literal < identifier) )) (compound_statement "{\n        lVar6 = lVar7;\n      }" { (expression_statement "lVar6 = lVar7;" (assignment_expression "lVar6 = lVar7" identifier = identifier) ;) })) (expression_statement "lVar6 = lVar6 >> 6;" (assignment_expression "lVar6 = lVar6 >> 6" identifier = (binary_expression "lVar6 >> 6" identifier >> number_literal)) ;) (if_statement "if (lVar5 < lVar6) {\n        lVar6 = GetMagickResourceLimit(7);\n      }" if (parenthesized_expression "(lVar5 < lVar6)" ( (binary_expression "lVar5 < lVar6" identifier < identifier) )) (compound_statement "{\n        lVar6 = GetMagickResourceLimit(7);\n      }" { (expression_statement "lVar6 = GetMagickResourceLimit(7);" (assignment_expression "lVar6 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) })) })) }) (else_clause "else {\n    uVar4 = GetMagickResourceLimit(7);\n    if (uVar4 < 2) {\n      uVar4 = GetMagickResourceLimit(7);\n      lVar6 = 1;\n      if (uVar4 < 2) goto LAB_002e3654;\n    }\n    uVar4 = GetMagickResourceLimit(7);\n    lVar6 = 2;\n    if (uVar4 < 2) {\n      lVar6 = GetMagickResourceLimit(7);\n    }\n  }" else (compound_statement "{\n    uVar4 = GetMagickResourceLimit(7);\n    if (uVar4 < 2) {\n      uVar4 = GetMagickResourceLimit(7);\n      lVar6 = 1;\n      if (uVar4 < 2) goto LAB_002e3654;\n    }\n    uVar4 = GetMagickResourceLimit(7);\n    lVar6 = 2;\n    if (uVar4 < 2) {\n      lVar6 = GetMagickResourceLimit(7);\n    }\n  }" { (expression_statement "uVar4 = GetMagickResourceLimit(7);" (assignment_expression "uVar4 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (if_statement "if (uVar4 < 2) {\n      uVar4 = GetMagickResourceLimit(7);\n      lVar6 = 1;\n      if (uVar4 < 2) goto LAB_002e3654;\n    }" if (parenthesized_expression "(uVar4 < 2)" ( (binary_expression "uVar4 < 2" identifier < number_literal) )) (compound_statement "{\n      uVar4 = GetMagickResourceLimit(7);\n      lVar6 = 1;\n      if (uVar4 < 2) goto LAB_002e3654;\n    }" { (expression_statement "uVar4 = GetMagickResourceLimit(7);" (assignment_expression "uVar4 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (expression_statement "lVar6 = 1;" (assignment_expression "lVar6 = 1" identifier = number_literal) ;) (if_statement "if (uVar4 < 2) goto LAB_002e3654;" if (parenthesized_expression "(uVar4 < 2)" ( (binary_expression "uVar4 < 2" identifier < number_literal) )) (goto_statement "goto LAB_002e3654;" goto statement_identifier ;)) })) (expression_statement "uVar4 = GetMagickResourceLimit(7);" (assignment_expression "uVar4 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (expression_statement "lVar6 = 2;" (assignment_expression "lVar6 = 2" identifier = number_literal) ;) (if_statement "if (uVar4 < 2) {\n      lVar6 = GetMagickResourceLimit(7);\n    }" if (parenthesized_expression "(uVar4 < 2)" ( (binary_expression "uVar4 < 2" identifier < number_literal) )) (compound_statement "{\n      lVar6 = GetMagickResourceLimit(7);\n    }" { (expression_statement "lVar6 = GetMagickResourceLimit(7);" (assignment_expression "lVar6 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) })) }))) (labeled_statement "LAB_002e3654:\n  local_50 = &local_90;" statement_identifier : (expression_statement "local_50 = &local_90;" (assignment_expression "local_50 = &local_90" identifier = (pointer_expression "&local_90" & identifier)) ;)) (expression_statement "local_48 = 1;" (assignment_expression "local_48 = 1" identifier = number_literal) ;) (expression_statement "local_88 = param_5;" (assignment_expression "local_88 = param_5" identifier = identifier) ;) (expression_statement "local_80 = param_1;" (assignment_expression "local_80 = param_1" identifier = identifier) ;) (expression_statement "local_78 = param_2;" (assignment_expression "local_78 = param_2" identifier = identifier) ;) (expression_statement "local_70 = param_3;" (assignment_expression "local_70 = param_3" identifier = identifier) ;) (expression_statement "local_68 = param_4;" (assignment_expression "local_68 = param_4" identifier = identifier) ;) (expression_statement "local_60 = param_6;" (assignment_expression "local_60 = param_6" identifier = identifier) ;) (expression_statement "local_58 = uVar3;" (assignment_expression "local_58 = uVar3" identifier = identifier) ;) (expression_statement "GOMP_parallel(FUN_002dee3f,&local_88,lVar6,0);" (call_expression "GOMP_parallel(FUN_002dee3f,&local_88,lVar6,0)" identifier (argument_list "(FUN_002dee3f,&local_88,lVar6,0)" ( identifier , (pointer_expression "&local_88" & identifier) , identifier , number_literal ))) ;) (expression_statement "iVar2 = local_48;" (assignment_expression "iVar2 = local_48" identifier = identifier) ;) (expression_statement "DestroyCacheView(uVar3);" (call_expression "DestroyCacheView(uVar3)" identifier (argument_list "(uVar3)" ( identifier ))) ;) (labeled_statement "LAB_002e36b8:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" statement_identifier : (if_statement "if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\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                    \n    __stack_chk_fail();\n  }" { (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return iVar2;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE 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 TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE 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) , IDENT , IDENT ))) ;) })) (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 (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 = LIT) ;) (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 = LIT) ;) (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 (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 ))) ;) (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 { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (return_statement return IDENT ;) })))
(function_definition "int RangeThresholdImage(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                       long param_5,undefined8 param_6)\n\n{\n  bool bVar1;\n  int iVar2;\n  undefined8 uVar3;\n  ulong uVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  long in_FS_OFFSET;\n  undefined8 local_90;\n  long local_88;\n  undefined8 local_80;\n  undefined8 local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  undefined8 local_60;\n  undefined8 local_58;\n  undefined8 *local_50;\n  int local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_5 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/threshold.c",0x94e,"RangeThresholdImage");\n  }\n  if (*(long *)(param_5 + 0x3450) != 0xabacadab) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/threshold.c",0x94f,\n                  "RangeThresholdImage");\n  }\n  if (*(int *)(param_5 + 0x3418) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/threshold.c","RangeThresholdImage",0x951,&DAT_0041fe36,\n                   param_5 + 0x3f8,param_1,param_2);\n  }\n  iVar2 = SetImageStorageClass(param_5,1,param_6);\n  if (iVar2 == 0) goto LAB_002e36b8;\n  if ((*(int *)(param_5 + 4) == 0x21) || (*(int *)(param_5 + 4) == 3)) {\n    TransformImageColorspace(param_5,0x17,param_6);\n  }\n  local_90 = 0;\n  uVar3 = AcquireAuthenticCacheView(param_5,param_6);\n  iVar2 = GetImagePixelCacheType(param_5);\n  if (((iVar2 == 4) || (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)) &&\n     ((iVar2 = GetImagePixelCacheType(param_5), iVar2 == 4 ||\n      (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)))) {\n    lVar5 = GetMagickResourceLimit(7);\n    lVar6 = *(long *)(param_5 + 0x28);\n    lVar7 = lVar6 + 0x3f;\n    if (-1 < lVar6) {\n      lVar7 = lVar6;\n    }\n    bVar1 = 0x7f < lVar6;\n    if (lVar5 < lVar7 >> 6) {\n      lVar6 = GetMagickResourceLimit(7);\n      bVar1 = 1 < lVar6;\n    }\n    lVar6 = 1;\n    if (bVar1) {\n      lVar5 = GetMagickResourceLimit(7);\n      lVar7 = *(long *)(param_5 + 0x28);\n      lVar6 = lVar7 + 0x3f;\n      if (-1 < lVar7) {\n        lVar6 = lVar7;\n      }\n      lVar6 = lVar6 >> 6;\n      if (lVar5 < lVar6) {\n        lVar6 = GetMagickResourceLimit(7);\n      }\n    }\n  }\n  else {\n    uVar4 = GetMagickResourceLimit(7);\n    if (uVar4 < 2) {\n      uVar4 = GetMagickResourceLimit(7);\n      lVar6 = 1;\n      if (uVar4 < 2) goto LAB_002e3654;\n    }\n    uVar4 = GetMagickResourceLimit(7);\n    lVar6 = 2;\n    if (uVar4 < 2) {\n      lVar6 = GetMagickResourceLimit(7);\n    }\n  }\nLAB_002e3654:\n  local_50 = &local_90;\n  local_48 = 1;\n  local_88 = param_5;\n  local_80 = param_1;\n  local_78 = param_2;\n  local_70 = param_3;\n  local_68 = param_4;\n  local_60 = param_6;\n  local_58 = uVar3;\n  GOMP_parallel(FUN_002dee3f,&local_88,lVar6,0);\n  iVar2 = local_48;\n  DestroyCacheView(uVar3);\nLAB_002e36b8:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return iVar2;\n}" (primitive_type "int") (function_declarator "RangeThresholdImage(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                       long param_5,undefined8 param_6)" (identifier "RangeThresholdImage") (parameter_list "(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,\n                       long param_5,undefined8 param_6)" (( "(") (parameter_declaration "undefined8 param_1" (type_identifier "undefined8") (identifier "param_1")) (, ",") (parameter_declaration "undefined8 param_2" (type_identifier "undefined8") (identifier "param_2")) (, ",") (parameter_declaration "undefined8 param_3" (type_identifier "undefined8") (identifier "param_3")) (, ",") (parameter_declaration "undefined8 param_4" (type_identifier "undefined8") (identifier "param_4")) (, ",") (parameter_declaration "long param_5" (sized_type_specifier "long" (long "long")) (identifier "param_5")) (, ",") (parameter_declaration "undefined8 param_6" (type_identifier "undefined8") (identifier "param_6")) () ")"))) (compound_statement "{\n  bool bVar1;\n  int iVar2;\n  undefined8 uVar3;\n  ulong uVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  long in_FS_OFFSET;\n  undefined8 local_90;\n  long local_88;\n  undefined8 local_80;\n  undefined8 local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  undefined8 local_60;\n  undefined8 local_58;\n  undefined8 *local_50;\n  int local_48;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_5 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/threshold.c",0x94e,"RangeThresholdImage");\n  }\n  if (*(long *)(param_5 + 0x3450) != 0xabacadab) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/threshold.c",0x94f,\n                  "RangeThresholdImage");\n  }\n  if (*(int *)(param_5 + 0x3418) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/threshold.c","RangeThresholdImage",0x951,&DAT_0041fe36,\n                   param_5 + 0x3f8,param_1,param_2);\n  }\n  iVar2 = SetImageStorageClass(param_5,1,param_6);\n  if (iVar2 == 0) goto LAB_002e36b8;\n  if ((*(int *)(param_5 + 4) == 0x21) || (*(int *)(param_5 + 4) == 3)) {\n    TransformImageColorspace(param_5,0x17,param_6);\n  }\n  local_90 = 0;\n  uVar3 = AcquireAuthenticCacheView(param_5,param_6);\n  iVar2 = GetImagePixelCacheType(param_5);\n  if (((iVar2 == 4) || (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)) &&\n     ((iVar2 = GetImagePixelCacheType(param_5), iVar2 == 4 ||\n      (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)))) {\n    lVar5 = GetMagickResourceLimit(7);\n    lVar6 = *(long *)(param_5 + 0x28);\n    lVar7 = lVar6 + 0x3f;\n    if (-1 < lVar6) {\n      lVar7 = lVar6;\n    }\n    bVar1 = 0x7f < lVar6;\n    if (lVar5 < lVar7 >> 6) {\n      lVar6 = GetMagickResourceLimit(7);\n      bVar1 = 1 < lVar6;\n    }\n    lVar6 = 1;\n    if (bVar1) {\n      lVar5 = GetMagickResourceLimit(7);\n      lVar7 = *(long *)(param_5 + 0x28);\n      lVar6 = lVar7 + 0x3f;\n      if (-1 < lVar7) {\n        lVar6 = lVar7;\n      }\n      lVar6 = lVar6 >> 6;\n      if (lVar5 < lVar6) {\n        lVar6 = GetMagickResourceLimit(7);\n      }\n    }\n  }\n  else {\n    uVar4 = GetMagickResourceLimit(7);\n    if (uVar4 < 2) {\n      uVar4 = GetMagickResourceLimit(7);\n      lVar6 = 1;\n      if (uVar4 < 2) goto LAB_002e3654;\n    }\n    uVar4 = GetMagickResourceLimit(7);\n    lVar6 = 2;\n    if (uVar4 < 2) {\n      lVar6 = GetMagickResourceLimit(7);\n    }\n  }\nLAB_002e3654:\n  local_50 = &local_90;\n  local_48 = 1;\n  local_88 = param_5;\n  local_80 = param_1;\n  local_78 = param_2;\n  local_70 = param_3;\n  local_68 = param_4;\n  local_60 = param_6;\n  local_58 = uVar3;\n  GOMP_parallel(FUN_002dee3f,&local_88,lVar6,0);\n  iVar2 = local_48;\n  DestroyCacheView(uVar3);\nLAB_002e36b8:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return iVar2;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined8 uVar3;" (type_identifier "undefined8") (identifier "uVar3") (; ";")) (declaration "ulong uVar4;" (type_identifier "ulong") (identifier "uVar4") (; ";")) (declaration "long lVar5;" (sized_type_specifier "long" (long "long")) (identifier "lVar5") (; ";")) (declaration "long lVar6;" (sized_type_specifier "long" (long "long")) (identifier "lVar6") (; ";")) (declaration "long lVar7;" (sized_type_specifier "long" (long "long")) (identifier "lVar7") (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "undefined8 local_90;" (type_identifier "undefined8") (identifier "local_90") (; ";")) (declaration "long local_88;" (sized_type_specifier "long" (long "long")) (identifier "local_88") (; ";")) (declaration "undefined8 local_80;" (type_identifier "undefined8") (identifier "local_80") (; ";")) (declaration "undefined8 local_78;" (type_identifier "undefined8") (identifier "local_78") (; ";")) (declaration "undefined8 local_70;" (type_identifier "undefined8") (identifier "local_70") (; ";")) (declaration "undefined8 local_68;" (type_identifier "undefined8") (identifier "local_68") (; ";")) (declaration "undefined8 local_60;" (type_identifier "undefined8") (identifier "local_60") (; ";")) (declaration "undefined8 local_58;" (type_identifier "undefined8") (identifier "local_58") (; ";")) (declaration "undefined8 *local_50;" (type_identifier "undefined8") (pointer_declarator "*local_50" (* "*") (identifier "local_50")) (; ";")) (declaration "int local_48;" (primitive_type "int") (identifier "local_48") (; ";")) (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_5 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/threshold.c",0x94e,"RangeThresholdImage");\n  }" (if "if") (parenthesized_expression "(param_5 == 0)" (( "(") (binary_expression "param_5 == 0" (identifier "param_5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/threshold.c",0x94e,"RangeThresholdImage");\n  }" ({ "{") (expression_statement "__assert_fail("image != (Image *) NULL","MagickCore/threshold.c",0x94e,"RangeThresholdImage");" (call_expression "__assert_fail("image != (Image *) NULL","MagickCore/threshold.c",0x94e,"RangeThresholdImage")" (identifier "__assert_fail") (argument_list "("image != (Image *) NULL","MagickCore/threshold.c",0x94e,"RangeThresholdImage")" (( "(") (string_literal ""image != (Image *) NULL"" (" """) (string_content "image != (Image *) NULL") (" """)) (, ",") (string_literal ""MagickCore/threshold.c"" (" """) (string_content "MagickCore/threshold.c") (" """)) (, ",") (number_literal "0x94e") (, ",") (string_literal ""RangeThresholdImage"" (" """) (string_content "RangeThresholdImage") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(long *)(param_5 + 0x3450) != 0xabacadab) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/threshold.c",0x94f,\n                  "RangeThresholdImage");\n  }" (if "if") (parenthesized_expression "(*(long *)(param_5 + 0x3450) != 0xabacadab)" (( "(") (binary_expression "*(long *)(param_5 + 0x3450) != 0xabacadab" (pointer_expression "*(long *)(param_5 + 0x3450)" (* "*") (cast_expression "(long *)(param_5 + 0x3450)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0x3450)" (( "(") (binary_expression "param_5 + 0x3450" (identifier "param_5") (+ "+") (number_literal "0x3450")) () ")")))) (!= "!=") (number_literal "0xabacadab")) () ")")) (compound_statement "{\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/threshold.c",0x94f,\n                  "RangeThresholdImage");\n  }" ({ "{") (expression_statement "__assert_fail("image->signature == MagickCoreSignature","MagickCore/threshold.c",0x94f,\n                  "RangeThresholdImage");" (call_expression "__assert_fail("image->signature == MagickCoreSignature","MagickCore/threshold.c",0x94f,\n                  "RangeThresholdImage")" (identifier "__assert_fail") (argument_list "("image->signature == MagickCoreSignature","MagickCore/threshold.c",0x94f,\n                  "RangeThresholdImage")" (( "(") (string_literal ""image->signature == MagickCoreSignature"" (" """) (string_content "image->signature == MagickCoreSignature") (" """)) (, ",") (string_literal ""MagickCore/threshold.c"" (" """) (string_content "MagickCore/threshold.c") (" """)) (, ",") (number_literal "0x94f") (, ",") (string_literal ""RangeThresholdImage"" (" """) (string_content "RangeThresholdImage") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_5 + 0x3418) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/threshold.c","RangeThresholdImage",0x951,&DAT_0041fe36,\n                   param_5 + 0x3f8,param_1,param_2);\n  }" (if "if") (parenthesized_expression "(*(int *)(param_5 + 0x3418) != 0)" (( "(") (binary_expression "*(int *)(param_5 + 0x3418) != 0" (pointer_expression "*(int *)(param_5 + 0x3418)" (* "*") (cast_expression "(int *)(param_5 + 0x3418)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0x3418)" (( "(") (binary_expression "param_5 + 0x3418" (identifier "param_5") (+ "+") (number_literal "0x3418")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    LogMagickEvent(0x8000,"MagickCore/threshold.c","RangeThresholdImage",0x951,&DAT_0041fe36,\n                   param_5 + 0x3f8,param_1,param_2);\n  }" ({ "{") (expression_statement "LogMagickEvent(0x8000,"MagickCore/threshold.c","RangeThresholdImage",0x951,&DAT_0041fe36,\n                   param_5 + 0x3f8,param_1,param_2);" (call_expression "LogMagickEvent(0x8000,"MagickCore/threshold.c","RangeThresholdImage",0x951,&DAT_0041fe36,\n                   param_5 + 0x3f8,param_1,param_2)" (identifier "LogMagickEvent") (argument_list "(0x8000,"MagickCore/threshold.c","RangeThresholdImage",0x951,&DAT_0041fe36,\n                   param_5 + 0x3f8,param_1,param_2)" (( "(") (number_literal "0x8000") (, ",") (string_literal ""MagickCore/threshold.c"" (" """) (string_content "MagickCore/threshold.c") (" """)) (, ",") (string_literal ""RangeThresholdImage"" (" """) (string_content "RangeThresholdImage") (" """)) (, ",") (number_literal "0x951") (, ",") (pointer_expression "&DAT_0041fe36" (& "&") (identifier "DAT_0041fe36")) (, ",") (binary_expression "param_5 + 0x3f8" (identifier "param_5") (+ "+") (number_literal "0x3f8")) (, ",") (identifier "param_1") (, ",") (identifier "param_2") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar2 = SetImageStorageClass(param_5,1,param_6);" (assignment_expression "iVar2 = SetImageStorageClass(param_5,1,param_6)" (identifier "iVar2") (= "=") (call_expression "SetImageStorageClass(param_5,1,param_6)" (identifier "SetImageStorageClass") (argument_list "(param_5,1,param_6)" (( "(") (identifier "param_5") (, ",") (number_literal "1") (, ",") (identifier "param_6") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) goto LAB_002e36b8;" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_002e36b8;" (goto "goto") (statement_identifier "LAB_002e36b8") (; ";"))) (if_statement "if ((*(int *)(param_5 + 4) == 0x21) || (*(int *)(param_5 + 4) == 3)) {\n    TransformImageColorspace(param_5,0x17,param_6);\n  }" (if "if") (parenthesized_expression "((*(int *)(param_5 + 4) == 0x21) || (*(int *)(param_5 + 4) == 3))" (( "(") (binary_expression "(*(int *)(param_5 + 4) == 0x21) || (*(int *)(param_5 + 4) == 3)" (parenthesized_expression "(*(int *)(param_5 + 4) == 0x21)" (( "(") (binary_expression "*(int *)(param_5 + 4) == 0x21" (pointer_expression "*(int *)(param_5 + 4)" (* "*") (cast_expression "(int *)(param_5 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 4)" (( "(") (binary_expression "param_5 + 4" (identifier "param_5") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "0x21")) () ")")) (|| "||") (parenthesized_expression "(*(int *)(param_5 + 4) == 3)" (( "(") (binary_expression "*(int *)(param_5 + 4) == 3" (pointer_expression "*(int *)(param_5 + 4)" (* "*") (cast_expression "(int *)(param_5 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 4)" (( "(") (binary_expression "param_5 + 4" (identifier "param_5") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "3")) () ")"))) () ")")) (compound_statement "{\n    TransformImageColorspace(param_5,0x17,param_6);\n  }" ({ "{") (expression_statement "TransformImageColorspace(param_5,0x17,param_6);" (call_expression "TransformImageColorspace(param_5,0x17,param_6)" (identifier "TransformImageColorspace") (argument_list "(param_5,0x17,param_6)" (( "(") (identifier "param_5") (, ",") (number_literal "0x17") (, ",") (identifier "param_6") () ")"))) (; ";")) (} "}"))) (expression_statement "local_90 = 0;" (assignment_expression "local_90 = 0" (identifier "local_90") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar3 = AcquireAuthenticCacheView(param_5,param_6);" (assignment_expression "uVar3 = AcquireAuthenticCacheView(param_5,param_6)" (identifier "uVar3") (= "=") (call_expression "AcquireAuthenticCacheView(param_5,param_6)" (identifier "AcquireAuthenticCacheView") (argument_list "(param_5,param_6)" (( "(") (identifier "param_5") (, ",") (identifier "param_6") () ")")))) (; ";")) (expression_statement "iVar2 = GetImagePixelCacheType(param_5);" (assignment_expression "iVar2 = GetImagePixelCacheType(param_5)" (identifier "iVar2") (= "=") (call_expression "GetImagePixelCacheType(param_5)" (identifier "GetImagePixelCacheType") (argument_list "(param_5)" (( "(") (identifier "param_5") () ")")))) (; ";")) (if_statement "if (((iVar2 == 4) || (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)) &&\n     ((iVar2 = GetImagePixelCacheType(param_5), iVar2 == 4 ||\n      (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)))) {\n    lVar5 = GetMagickResourceLimit(7);\n    lVar6 = *(long *)(param_5 + 0x28);\n    lVar7 = lVar6 + 0x3f;\n    if (-1 < lVar6) {\n      lVar7 = lVar6;\n    }\n    bVar1 = 0x7f < lVar6;\n    if (lVar5 < lVar7 >> 6) {\n      lVar6 = GetMagickResourceLimit(7);\n      bVar1 = 1 < lVar6;\n    }\n    lVar6 = 1;\n    if (bVar1) {\n      lVar5 = GetMagickResourceLimit(7);\n      lVar7 = *(long *)(param_5 + 0x28);\n      lVar6 = lVar7 + 0x3f;\n      if (-1 < lVar7) {\n        lVar6 = lVar7;\n      }\n      lVar6 = lVar6 >> 6;\n      if (lVar5 < lVar6) {\n        lVar6 = GetMagickResourceLimit(7);\n      }\n    }\n  }\n  else {\n    uVar4 = GetMagickResourceLimit(7);\n    if (uVar4 < 2) {\n      uVar4 = GetMagickResourceLimit(7);\n      lVar6 = 1;\n      if (uVar4 < 2) goto LAB_002e3654;\n    }\n    uVar4 = GetMagickResourceLimit(7);\n    lVar6 = 2;\n    if (uVar4 < 2) {\n      lVar6 = GetMagickResourceLimit(7);\n    }\n  }" (if "if") (parenthesized_expression "(((iVar2 == 4) || (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)) &&\n     ((iVar2 = GetImagePixelCacheType(param_5), iVar2 == 4 ||\n      (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3))))" (( "(") (binary_expression "((iVar2 == 4) || (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)) &&\n     ((iVar2 = GetImagePixelCacheType(param_5), iVar2 == 4 ||\n      (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)))" (parenthesized_expression "((iVar2 == 4) || (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3))" (( "(") (binary_expression "(iVar2 == 4) || (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)" (parenthesized_expression "(iVar2 == 4)" (( "(") (binary_expression "iVar2 == 4" (identifier "iVar2") (== "==") (number_literal "4")) () ")")) (|| "||") (parenthesized_expression "(iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)" (( "(") (comma_expression "iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3" (assignment_expression "iVar2 = GetImagePixelCacheType(param_5)" (identifier "iVar2") (= "=") (call_expression "GetImagePixelCacheType(param_5)" (identifier "GetImagePixelCacheType") (argument_list "(param_5)" (( "(") (identifier "param_5") () ")")))) (, ",") (binary_expression "iVar2 == 3" (identifier "iVar2") (== "==") (number_literal "3"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((iVar2 = GetImagePixelCacheType(param_5), iVar2 == 4 ||\n      (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)))" (( "(") (parenthesized_expression "(iVar2 = GetImagePixelCacheType(param_5), iVar2 == 4 ||\n      (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3))" (( "(") (comma_expression "iVar2 = GetImagePixelCacheType(param_5), iVar2 == 4 ||\n      (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)" (assignment_expression "iVar2 = GetImagePixelCacheType(param_5)" (identifier "iVar2") (= "=") (call_expression "GetImagePixelCacheType(param_5)" (identifier "GetImagePixelCacheType") (argument_list "(param_5)" (( "(") (identifier "param_5") () ")")))) (, ",") (binary_expression "iVar2 == 4 ||\n      (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)" (binary_expression "iVar2 == 4" (identifier "iVar2") (== "==") (number_literal "4")) (|| "||") (parenthesized_expression "(iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)" (( "(") (comma_expression "iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3" (assignment_expression "iVar2 = GetImagePixelCacheType(param_5)" (identifier "iVar2") (= "=") (call_expression "GetImagePixelCacheType(param_5)" (identifier "GetImagePixelCacheType") (argument_list "(param_5)" (( "(") (identifier "param_5") () ")")))) (, ",") (binary_expression "iVar2 == 3" (identifier "iVar2") (== "==") (number_literal "3"))) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n    lVar5 = GetMagickResourceLimit(7);\n    lVar6 = *(long *)(param_5 + 0x28);\n    lVar7 = lVar6 + 0x3f;\n    if (-1 < lVar6) {\n      lVar7 = lVar6;\n    }\n    bVar1 = 0x7f < lVar6;\n    if (lVar5 < lVar7 >> 6) {\n      lVar6 = GetMagickResourceLimit(7);\n      bVar1 = 1 < lVar6;\n    }\n    lVar6 = 1;\n    if (bVar1) {\n      lVar5 = GetMagickResourceLimit(7);\n      lVar7 = *(long *)(param_5 + 0x28);\n      lVar6 = lVar7 + 0x3f;\n      if (-1 < lVar7) {\n        lVar6 = lVar7;\n      }\n      lVar6 = lVar6 >> 6;\n      if (lVar5 < lVar6) {\n        lVar6 = GetMagickResourceLimit(7);\n      }\n    }\n  }" ({ "{") (expression_statement "lVar5 = GetMagickResourceLimit(7);" (assignment_expression "lVar5 = GetMagickResourceLimit(7)" (identifier "lVar5") (= "=") (call_expression "GetMagickResourceLimit(7)" (identifier "GetMagickResourceLimit") (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (expression_statement "lVar6 = *(long *)(param_5 + 0x28);" (assignment_expression "lVar6 = *(long *)(param_5 + 0x28)" (identifier "lVar6") (= "=") (pointer_expression "*(long *)(param_5 + 0x28)" (* "*") (cast_expression "(long *)(param_5 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0x28)" (( "(") (binary_expression "param_5 + 0x28" (identifier "param_5") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "lVar7 = lVar6 + 0x3f;" (assignment_expression "lVar7 = lVar6 + 0x3f" (identifier "lVar7") (= "=") (binary_expression "lVar6 + 0x3f" (identifier "lVar6") (+ "+") (number_literal "0x3f"))) (; ";")) (if_statement "if (-1 < lVar6) {\n      lVar7 = lVar6;\n    }" (if "if") (parenthesized_expression "(-1 < lVar6)" (( "(") (binary_expression "-1 < lVar6" (number_literal "-1") (< "<") (identifier "lVar6")) () ")")) (compound_statement "{\n      lVar7 = lVar6;\n    }" ({ "{") (expression_statement "lVar7 = lVar6;" (assignment_expression "lVar7 = lVar6" (identifier "lVar7") (= "=") (identifier "lVar6")) (; ";")) (} "}"))) (expression_statement "bVar1 = 0x7f < lVar6;" (assignment_expression "bVar1 = 0x7f < lVar6" (identifier "bVar1") (= "=") (binary_expression "0x7f < lVar6" (number_literal "0x7f") (< "<") (identifier "lVar6"))) (; ";")) (if_statement "if (lVar5 < lVar7 >> 6) {\n      lVar6 = GetMagickResourceLimit(7);\n      bVar1 = 1 < lVar6;\n    }" (if "if") (parenthesized_expression "(lVar5 < lVar7 >> 6)" (( "(") (binary_expression "lVar5 < lVar7 >> 6" (identifier "lVar5") (< "<") (binary_expression "lVar7 >> 6" (identifier "lVar7") (>> ">>") (number_literal "6"))) () ")")) (compound_statement "{\n      lVar6 = GetMagickResourceLimit(7);\n      bVar1 = 1 < lVar6;\n    }" ({ "{") (expression_statement "lVar6 = GetMagickResourceLimit(7);" (assignment_expression "lVar6 = GetMagickResourceLimit(7)" (identifier "lVar6") (= "=") (call_expression "GetMagickResourceLimit(7)" (identifier "GetMagickResourceLimit") (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (expression_statement "bVar1 = 1 < lVar6;" (assignment_expression "bVar1 = 1 < lVar6" (identifier "bVar1") (= "=") (binary_expression "1 < lVar6" (number_literal "1") (< "<") (identifier "lVar6"))) (; ";")) (} "}"))) (expression_statement "lVar6 = 1;" (assignment_expression "lVar6 = 1" (identifier "lVar6") (= "=") (number_literal "1")) (; ";")) (if_statement "if (bVar1) {\n      lVar5 = GetMagickResourceLimit(7);\n      lVar7 = *(long *)(param_5 + 0x28);\n      lVar6 = lVar7 + 0x3f;\n      if (-1 < lVar7) {\n        lVar6 = lVar7;\n      }\n      lVar6 = lVar6 >> 6;\n      if (lVar5 < lVar6) {\n        lVar6 = GetMagickResourceLimit(7);\n      }\n    }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\n      lVar5 = GetMagickResourceLimit(7);\n      lVar7 = *(long *)(param_5 + 0x28);\n      lVar6 = lVar7 + 0x3f;\n      if (-1 < lVar7) {\n        lVar6 = lVar7;\n      }\n      lVar6 = lVar6 >> 6;\n      if (lVar5 < lVar6) {\n        lVar6 = GetMagickResourceLimit(7);\n      }\n    }" ({ "{") (expression_statement "lVar5 = GetMagickResourceLimit(7);" (assignment_expression "lVar5 = GetMagickResourceLimit(7)" (identifier "lVar5") (= "=") (call_expression "GetMagickResourceLimit(7)" (identifier "GetMagickResourceLimit") (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (expression_statement "lVar7 = *(long *)(param_5 + 0x28);" (assignment_expression "lVar7 = *(long *)(param_5 + 0x28)" (identifier "lVar7") (= "=") (pointer_expression "*(long *)(param_5 + 0x28)" (* "*") (cast_expression "(long *)(param_5 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0x28)" (( "(") (binary_expression "param_5 + 0x28" (identifier "param_5") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "lVar6 = lVar7 + 0x3f;" (assignment_expression "lVar6 = lVar7 + 0x3f" (identifier "lVar6") (= "=") (binary_expression "lVar7 + 0x3f" (identifier "lVar7") (+ "+") (number_literal "0x3f"))) (; ";")) (if_statement "if (-1 < lVar7) {\n        lVar6 = lVar7;\n      }" (if "if") (parenthesized_expression "(-1 < lVar7)" (( "(") (binary_expression "-1 < lVar7" (number_literal "-1") (< "<") (identifier "lVar7")) () ")")) (compound_statement "{\n        lVar6 = lVar7;\n      }" ({ "{") (expression_statement "lVar6 = lVar7;" (assignment_expression "lVar6 = lVar7" (identifier "lVar6") (= "=") (identifier "lVar7")) (; ";")) (} "}"))) (expression_statement "lVar6 = lVar6 >> 6;" (assignment_expression "lVar6 = lVar6 >> 6" (identifier "lVar6") (= "=") (binary_expression "lVar6 >> 6" (identifier "lVar6") (>> ">>") (number_literal "6"))) (; ";")) (if_statement "if (lVar5 < lVar6) {\n        lVar6 = GetMagickResourceLimit(7);\n      }" (if "if") (parenthesized_expression "(lVar5 < lVar6)" (( "(") (binary_expression "lVar5 < lVar6" (identifier "lVar5") (< "<") (identifier "lVar6")) () ")")) (compound_statement "{\n        lVar6 = GetMagickResourceLimit(7);\n      }" ({ "{") (expression_statement "lVar6 = GetMagickResourceLimit(7);" (assignment_expression "lVar6 = GetMagickResourceLimit(7)" (identifier "lVar6") (= "=") (call_expression "GetMagickResourceLimit(7)" (identifier "GetMagickResourceLimit") (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n    uVar4 = GetMagickResourceLimit(7);\n    if (uVar4 < 2) {\n      uVar4 = GetMagickResourceLimit(7);\n      lVar6 = 1;\n      if (uVar4 < 2) goto LAB_002e3654;\n    }\n    uVar4 = GetMagickResourceLimit(7);\n    lVar6 = 2;\n    if (uVar4 < 2) {\n      lVar6 = GetMagickResourceLimit(7);\n    }\n  }" (else "else") (compound_statement "{\n    uVar4 = GetMagickResourceLimit(7);\n    if (uVar4 < 2) {\n      uVar4 = GetMagickResourceLimit(7);\n      lVar6 = 1;\n      if (uVar4 < 2) goto LAB_002e3654;\n    }\n    uVar4 = GetMagickResourceLimit(7);\n    lVar6 = 2;\n    if (uVar4 < 2) {\n      lVar6 = GetMagickResourceLimit(7);\n    }\n  }" ({ "{") (expression_statement "uVar4 = GetMagickResourceLimit(7);" (assignment_expression "uVar4 = GetMagickResourceLimit(7)" (identifier "uVar4") (= "=") (call_expression "GetMagickResourceLimit(7)" (identifier "GetMagickResourceLimit") (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (if_statement "if (uVar4 < 2) {\n      uVar4 = GetMagickResourceLimit(7);\n      lVar6 = 1;\n      if (uVar4 < 2) goto LAB_002e3654;\n    }" (if "if") (parenthesized_expression "(uVar4 < 2)" (( "(") (binary_expression "uVar4 < 2" (identifier "uVar4") (< "<") (number_literal "2")) () ")")) (compound_statement "{\n      uVar4 = GetMagickResourceLimit(7);\n      lVar6 = 1;\n      if (uVar4 < 2) goto LAB_002e3654;\n    }" ({ "{") (expression_statement "uVar4 = GetMagickResourceLimit(7);" (assignment_expression "uVar4 = GetMagickResourceLimit(7)" (identifier "uVar4") (= "=") (call_expression "GetMagickResourceLimit(7)" (identifier "GetMagickResourceLimit") (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (expression_statement "lVar6 = 1;" (assignment_expression "lVar6 = 1" (identifier "lVar6") (= "=") (number_literal "1")) (; ";")) (if_statement "if (uVar4 < 2) goto LAB_002e3654;" (if "if") (parenthesized_expression "(uVar4 < 2)" (( "(") (binary_expression "uVar4 < 2" (identifier "uVar4") (< "<") (number_literal "2")) () ")")) (goto_statement "goto LAB_002e3654;" (goto "goto") (statement_identifier "LAB_002e3654") (; ";"))) (} "}"))) (expression_statement "uVar4 = GetMagickResourceLimit(7);" (assignment_expression "uVar4 = GetMagickResourceLimit(7)" (identifier "uVar4") (= "=") (call_expression "GetMagickResourceLimit(7)" (identifier "GetMagickResourceLimit") (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (expression_statement "lVar6 = 2;" (assignment_expression "lVar6 = 2" (identifier "lVar6") (= "=") (number_literal "2")) (; ";")) (if_statement "if (uVar4 < 2) {\n      lVar6 = GetMagickResourceLimit(7);\n    }" (if "if") (parenthesized_expression "(uVar4 < 2)" (( "(") (binary_expression "uVar4 < 2" (identifier "uVar4") (< "<") (number_literal "2")) () ")")) (compound_statement "{\n      lVar6 = GetMagickResourceLimit(7);\n    }" ({ "{") (expression_statement "lVar6 = GetMagickResourceLimit(7);" (assignment_expression "lVar6 = GetMagickResourceLimit(7)" (identifier "lVar6") (= "=") (call_expression "GetMagickResourceLimit(7)" (identifier "GetMagickResourceLimit") (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_002e3654:\n  local_50 = &local_90;" (statement_identifier "LAB_002e3654") (: ":") (expression_statement "local_50 = &local_90;" (assignment_expression "local_50 = &local_90" (identifier "local_50") (= "=") (pointer_expression "&local_90" (& "&") (identifier "local_90"))) (; ";"))) (expression_statement "local_48 = 1;" (assignment_expression "local_48 = 1" (identifier "local_48") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_88 = param_5;" (assignment_expression "local_88 = param_5" (identifier "local_88") (= "=") (identifier "param_5")) (; ";")) (expression_statement "local_80 = param_1;" (assignment_expression "local_80 = param_1" (identifier "local_80") (= "=") (identifier "param_1")) (; ";")) (expression_statement "local_78 = param_2;" (assignment_expression "local_78 = param_2" (identifier "local_78") (= "=") (identifier "param_2")) (; ";")) (expression_statement "local_70 = param_3;" (assignment_expression "local_70 = param_3" (identifier "local_70") (= "=") (identifier "param_3")) (; ";")) (expression_statement "local_68 = param_4;" (assignment_expression "local_68 = param_4" (identifier "local_68") (= "=") (identifier "param_4")) (; ";")) (expression_statement "local_60 = param_6;" (assignment_expression "local_60 = param_6" (identifier "local_60") (= "=") (identifier "param_6")) (; ";")) (expression_statement "local_58 = uVar3;" (assignment_expression "local_58 = uVar3" (identifier "local_58") (= "=") (identifier "uVar3")) (; ";")) (expression_statement "GOMP_parallel(FUN_002dee3f,&local_88,lVar6,0);" (call_expression "GOMP_parallel(FUN_002dee3f,&local_88,lVar6,0)" (identifier "GOMP_parallel") (argument_list "(FUN_002dee3f,&local_88,lVar6,0)" (( "(") (identifier "FUN_002dee3f") (, ",") (pointer_expression "&local_88" (& "&") (identifier "local_88")) (, ",") (identifier "lVar6") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "iVar2 = local_48;" (assignment_expression "iVar2 = local_48" (identifier "iVar2") (= "=") (identifier "local_48")) (; ";")) (expression_statement "DestroyCacheView(uVar3);" (call_expression "DestroyCacheView(uVar3)" (identifier "DestroyCacheView") (argument_list "(uVar3)" (( "(") (identifier "uVar3") () ")"))) (; ";")) (labeled_statement "LAB_002e36b8:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" (statement_identifier "LAB_002e36b8") (: ":") (if_statement "if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\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                    \n    __stack_chk_fail();\n  }" ({ "{") (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (return_statement "return iVar2;" (return "return") (identifier "iVar2") (; ";")) (} "}")))

/* WARNING: Enum "ExceptionType": Some values do not have unique names */
/* WARNING: Enum "GravityType": Some values do not have unique names */
/* WARNING: Enum "DisposeType": Some values do not have unique names */
/* WARNING: Enum "ChannelType": Some values do not have unique names */
/* WARNING: Enum "PixelChannel": 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,double low_black,double low_white,double high_white,
                   double high_black,type_3 *exception)

{
  size_t var_17;
  bool bVar2;
  type_1 var_7;
  type_4 var_13;
  type_5 *cache_view;
  type_6 var_18;
  type_6 var_19;
  size_t sVar7;
  long var_1;
  type_7 progress;
  type_2 *local_88;
  double local_80;
  double local_78;
  double local_70;
  double local_68;
  type_3 *local_60;
  type_5 *local_58;
  type_7 *local_50;
  type_1 local_48;
  long var_22;
  
  var_22 = *(long *)(var_1 + 0x28);
  if (var_2 == (type_2 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_3("image != (Image *) NULL","MagickCore/threshold.c",0x94e,"RangeThresholdImage");
  }
  if (var_2->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    var_3("image->signature == MagickCoreSignature","MagickCore/threshold.c",0x94f,
                  "RangeThresholdImage");
  }
  if (var_2->debug != var_4) {
    var_5(TraceEvent,"MagickCore/threshold.c","RangeThresholdImage",0x951,"%s",
                   var_2->filename,low_black,low_white);
  }
  var_7 = var_6(var_2,DirectClass,exception);
  if (var_7 == var_4) goto LAB_002e36b8;
  if ((var_2->colorspace == var_8) || (var_2->colorspace == var_9)) {
    var_10(var_2,sRGBColorspace,exception);
  }
  progress = 0;
  cache_view = var_11(var_2,exception);
  var_13 = var_12(var_2);
  if (((var_13 == var_14) || (var_13 = var_12(var_2), var_13 == var_15)) &&
     ((var_13 = var_12(var_2), var_13 == var_14 ||
      (var_13 = var_12(var_2), var_13 == var_15)))) {
    var_18 = var_16(ThreadResource);
    var_17 = var_2->rows;
    sVar7 = var_17 + 0x3f;
    if (-1 < (long)var_17) {
      sVar7 = var_17;
    }
    bVar2 = 0x7f < (long)var_17;
    if ((long)var_18 < (long)sVar7 >> 6) {
      var_18 = var_16(ThreadResource);
      bVar2 = 1 < (long)var_18;
    }
    var_18 = 1;
    if (bVar2) {
      var_19 = var_16(ThreadResource);
      var_17 = var_2->rows;
      sVar7 = var_17 + 0x3f;
      if (-1 < (long)var_17) {
        sVar7 = var_17;
      }
      var_18 = (long)sVar7 >> 6;
      if ((long)var_19 < (long)var_18) {
        var_18 = var_16(ThreadResource);
      }
    }
  }
  else {
    var_18 = var_16(ThreadResource);
    if (var_18 < 2) {
      var_19 = var_16(ThreadResource);
      var_18 = 1;
      if (var_19 < 2) goto LAB_002e3654;
    }
    var_19 = var_16(ThreadResource);
    var_18 = 2;
    if (var_19 < 2) {
      var_18 = var_16(ThreadResource);
    }
  }
LAB_002e3654:
  local_50 = &progress;
  local_48 = MagickTrue;
  local_88 = var_2;
  local_80 = low_black;
  local_78 = low_white;
  local_70 = high_white;
  local_68 = high_black;
  local_60 = exception;
  local_58 = cache_view;
  var_20(RangeThresholdImage__omp_fn_8,&local_88,var_18,0);
  var_7 = local_48;
  var_21(cache_view);
LAB_002e36b8:
  if (var_22 != *(long *)(var_1 + 0x28)) {
                    /* WARNING: Subroutine does not return */
    var_23();
  }
  return var_7;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (sized_type_specifier) 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: (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: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (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)) (identifier) (identifier)))))) (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: (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: (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: (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (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)))) (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 (expression_statement (call_expression function: (identifier) arguments: (argument_list)))))) (return_statement (identifier)))))

int MASKED(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4,
                       long param_5,undefined8 param_6)

{
  bool bVar1;
  int iVar2;
  undefined8 uVar3;
  ulong uVar4;
  long lVar5;
  long lVar6;
  long lVar7;
  long in_FS_OFFSET;
  undefined8 local_90;
  long local_88;
  undefined8 local_80;
  undefined8 local_78;
  undefined8 local_70;
  undefined8 local_68;
  undefined8 local_60;
  undefined8 local_58;
  undefined8 *local_50;
  int local_48;
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  if (param_5 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image != (Image *) NULL","MagickCore/threshold.c",0x94e,"MASKED");
  }
  if (*(long *)(param_5 + 0x3450) != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image->signature == MagickCoreSignature","MagickCore/threshold.c",0x94f,
                  "MASKED");
  }
  if (*(int *)(param_5 + 0x3418) != 0) {
    LogMagickEvent(0x8000,"MagickCore/threshold.c","MASKED",0x951,&DAT_0041fe36,
                   param_5 + 0x3f8,param_1,param_2);
  }
  iVar2 = SetImageStorageClass(param_5,1,param_6);
  if (iVar2 == 0) goto LAB_002e36b8;
  if ((*(int *)(param_5 + 4) == 0x21) || (*(int *)(param_5 + 4) == 3)) {
    TransformImageColorspace(param_5,0x17,param_6);
  }
  local_90 = 0;
  uVar3 = AcquireAuthenticCacheView(param_5,param_6);
  iVar2 = GetImagePixelCacheType(param_5);
  if (((iVar2 == 4) || (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)) &&
     ((iVar2 = GetImagePixelCacheType(param_5), iVar2 == 4 ||
      (iVar2 = GetImagePixelCacheType(param_5), iVar2 == 3)))) {
    lVar5 = GetMagickResourceLimit(7);
    lVar6 = *(long *)(param_5 + 0x28);
    lVar7 = lVar6 + 0x3f;
    if (-1 < lVar6) {
      lVar7 = lVar6;
    }
    bVar1 = 0x7f < lVar6;
    if (lVar5 < lVar7 >> 6) {
      lVar6 = GetMagickResourceLimit(7);
      bVar1 = 1 < lVar6;
    }
    lVar6 = 1;
    if (bVar1) {
      lVar5 = GetMagickResourceLimit(7);
      lVar7 = *(long *)(param_5 + 0x28);
      lVar6 = lVar7 + 0x3f;
      if (-1 < lVar7) {
        lVar6 = lVar7;
      }
      lVar6 = lVar6 >> 6;
      if (lVar5 < lVar6) {
        lVar6 = GetMagickResourceLimit(7);
      }
    }
  }
  else {
    uVar4 = GetMagickResourceLimit(7);
    if (uVar4 < 2) {
      uVar4 = GetMagickResourceLimit(7);
      lVar6 = 1;
      if (uVar4 < 2) goto LAB_002e3654;
    }
    uVar4 = GetMagickResourceLimit(7);
    lVar6 = 2;
    if (uVar4 < 2) {
      lVar6 = GetMagickResourceLimit(7);
    }
  }
LAB_002e3654:
  local_50 = &local_90;
  local_48 = 1;
  local_88 = param_5;
  local_80 = param_1;
  local_78 = param_2;
  local_70 = param_3;
  local_68 = param_4;
  local_60 = param_6;
  local_58 = uVar3;
  GOMP_parallel(FUN_002dee3f,&local_88,lVar6,0);
  iVar2 = local_48;
  DestroyCacheView(uVar3);
LAB_002e36b8:
  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return iVar2;
}

