
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Enum "GravityType": Some values do not have unique names */
/* WARNING: Enum "DisposeType": Some values do not have unique names */
/* WARNING: Enum "ChannelType": Some values do not have unique names */
/* WARNING: Enum "PixelChannel": Some values do not have unique names */
/* WARNING: Enum "ExceptionType": Some values do not have unique names */

MagickBooleanType __regparm3
CopyImageRegion(Image *destination,Image *source,size_t columns,size_t rows,ssize_t sx,ssize_t sy,
               ssize_t dx,ssize_t dy,ExceptionInfo *exception)

{
  bool bVar1;
  MagickBooleanType MVar2;
  CacheView *cache_view;
  CacheView *cache_view_00;
  CacheType CVar3;
  int iVar4;
  size_t sVar5;
  int in_GS_OFFSET;
  MagickSizeType MVar6;
  Image *local_50;
  Image *local_4c;
  size_t local_48;
  size_t local_44;
  ssize_t local_40;
  ssize_t local_3c;
  ssize_t local_38;
  ssize_t local_34;
  ExceptionInfo *local_30;
  CacheView *local_2c;
  CacheView *local_28;
  MagickBooleanType local_24;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x1a566d;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  cache_view = AcquireVirtualCacheView(source,exception);
  cache_view_00 = AcquireAuthenticCacheView(destination,exception);
  CVar3 = GetImagePixelCacheType(source);
  if (((CVar3 == MemoryCache) || (CVar3 = GetImagePixelCacheType(source), CVar3 == MapCache)) &&
     ((CVar3 = GetImagePixelCacheType(destination), CVar3 == MemoryCache ||
      (CVar3 = GetImagePixelCacheType(destination), CVar3 == MapCache)))) {
    MVar6 = GetMagickResourceLimit(ThreadResource);
    sVar5 = rows + 0x3f;
    if (-1 < (int)rows) {
      sVar5 = rows;
    }
    iVar4 = (int)sVar5 >> 6;
    bVar1 = 0x7f < (int)rows;
    if ((int)MVar6 < iVar4) {
      MVar6 = GetMagickResourceLimit(ThreadResource);
      bVar1 = 1 < (int)MVar6;
    }
    if (bVar1) {
      MVar6 = GetMagickResourceLimit(ThreadResource);
      if ((int)MVar6 < iVar4) {
        MVar6 = GetMagickResourceLimit(ThreadResource);
        iVar4 = (int)MVar6;
      }
      goto LAB_001a56ff;
    }
LAB_001a581c:
    iVar4 = 1;
  }
  else {
    MVar6 = GetMagickResourceLimit(ThreadResource);
    if (((int)(MVar6 >> 0x20) == 0) && ((uint)MVar6 < 2)) {
      MVar6 = GetMagickResourceLimit(ThreadResource);
      if (((int)(MVar6 >> 0x20) == 0) && ((uint)MVar6 < 2)) goto LAB_001a581c;
    }
    MVar6 = GetMagickResourceLimit(ThreadResource);
    if (((int)(MVar6 >> 0x20) == 0) && ((uint)MVar6 < 2)) {
      MVar6 = GetMagickResourceLimit(ThreadResource);
      iVar4 = (int)MVar6;
    }
    else {
      iVar4 = 2;
    }
  }
LAB_001a56ff:
  local_30 = exception;
  local_24 = MagickTrue;
  local_44 = rows;
  local_34 = dy;
  local_38 = dx;
  local_3c = sy;
  local_40 = sx;
  local_50 = destination;
  local_4c = source;
  local_48 = columns;
  local_2c = cache_view;
  local_28 = cache_view_00;
  GOMP_parallel(CopyImageRegion__omp_fn_6,&local_50,iVar4,0);
  MVar2 = local_24;
  DestroyCacheView(cache_view_00);
  DestroyCacheView(cache_view);
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail_local();
  }
  return MVar2;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

undefined4 __regparm3
FUN_001a5660(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4,undefined4 param_5
            ,undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 param_9)

{
  bool bVar1;
  undefined4 uVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  int iVar5;
  int iVar6;
  int in_GS_OFFSET;
  undefined8 uVar7;
  undefined4 local_50;
  undefined4 local_4c;
  undefined4 local_48;
  int local_44;
  undefined4 local_40;
  undefined4 local_3c;
  undefined4 local_38;
  undefined4 local_34;
  undefined4 local_30;
  undefined4 local_2c;
  undefined4 local_28;
  undefined4 local_24;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x1a566d;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  uVar3 = AcquireVirtualCacheView(param_2,param_9);
  uVar4 = AcquireAuthenticCacheView(param_1,param_9);
  iVar5 = GetImagePixelCacheType(param_2);
  if (((iVar5 == 4) || (iVar5 = GetImagePixelCacheType(param_2), iVar5 == 3)) &&
     ((iVar5 = GetImagePixelCacheType(param_1), iVar5 == 4 ||
      (iVar5 = GetImagePixelCacheType(param_1), iVar5 == 3)))) {
    iVar6 = GetMagickResourceLimit(7);
    iVar5 = param_4 + 0x3f;
    if (-1 < param_4) {
      iVar5 = param_4;
    }
    iVar5 = iVar5 >> 6;
    bVar1 = 0x7f < param_4;
    if (iVar6 < iVar5) {
      iVar6 = GetMagickResourceLimit(7);
      bVar1 = 1 < iVar6;
    }
    if (bVar1) {
      iVar6 = GetMagickResourceLimit(7);
      if (iVar6 < iVar5) {
        iVar5 = GetMagickResourceLimit(7);
      }
      goto LAB_001a56ff;
    }
LAB_001a581c:
    iVar5 = 1;
  }
  else {
    uVar7 = GetMagickResourceLimit(7);
    if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) {
      uVar7 = GetMagickResourceLimit(7);
      if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) goto LAB_001a581c;
    }
    uVar7 = GetMagickResourceLimit(7);
    if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) {
      iVar5 = GetMagickResourceLimit(7);
    }
    else {
      iVar5 = 2;
    }
  }
LAB_001a56ff:
  local_30 = param_9;
  local_24 = 1;
  local_44 = param_4;
  local_34 = param_8;
  local_38 = param_7;
  local_3c = param_6;
  local_40 = param_5;
  local_50 = param_1;
  local_4c = param_2;
  local_48 = param_3;
  local_2c = uVar3;
  local_28 = uVar4;
  GOMP_parallel(FUN_001a43e0,&local_50,iVar5,0);
  uVar2 = local_24;
  DestroyCacheView(uVar4);
  DestroyCacheView(uVar3);
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_0029eab0();
  }
  return uVar2;
}


PUSH EBP
MOV EBP,EAX
PUSH EDI
PUSH ESI
MOV ESI,EDX
PUSH EBX
CALL 0x00038830
ADD EBX,0x233993
SUB ESP,0x74
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0x64],EAX
XOR EAX,EAX
MOV EDI,dword ptr [ESP + 0x9c]
MOV dword ptr [ESP + 0x1c],ECX
PUSH EDI
PUSH EDX
CALL 0x00030eb0
MOV dword ptr [ESP + 0x1c],EAX
POP ECX
POP EAX
PUSH EDI
PUSH EBP
CALL 0x00032fa0
MOV dword ptr [ESP],ESI
MOV dword ptr [ESP + 0x20],EAX
CALL 0x000318f0
ADD ESP,0x10
CMP EAX,0x4
JZ 0x001a57b0
SUB ESP,0xc
PUSH ESI
CALL 0x000318f0
ADD ESP,0x10
CMP EAX,0x3
JZ 0x001a57b0
SUB ESP,0xc
PUSH 0x7
CALL 0x00032640
ADD ESP,0x10
CMP EDX,0x0
JBE 0x001a5830
SUB ESP,0xc
PUSH 0x7
CALL 0x00032640
ADD ESP,0x10
CMP EDX,0x0
JBE 0x001a5860
MOV EAX,0x2
MOV EDX,dword ptr [ESP + 0xc]
MOV dword ptr [ESP + 0x4c],EDI
MOV EDI,dword ptr [ESP + 0x80]
MOV dword ptr [ESP + 0x30],ESI
MOV ECX,dword ptr [ESP + 0x10]
MOV dword ptr [ESP + 0x2c],EBP
MOV dword ptr [ESP + 0x58],0x1
MOV dword ptr [ESP + 0x50],EDX
MOV EDX,dword ptr [ESP + 0x90]
MOV dword ptr [ESP + 0x38],EDI
MOV EDI,dword ptr [ESP + 0x14]
MOV dword ptr [ESP + 0x54],ECX
MOV dword ptr [ESP + 0x48],EDX
MOV EDX,dword ptr [ESP + 0x8c]
MOV dword ptr [ESP + 0x34],EDI
MOV dword ptr [ESP + 0x44],EDX
MOV EDX,dword ptr [ESP + 0x88]
MOV dword ptr [ESP + 0x40],EDX
MOV EDX,dword ptr [ESP + 0x84]
MOV dword ptr [ESP + 0x3c],EDX
PUSH 0x0
PUSH EAX
LEA EAX,[ESP + 0x34]
PUSH EAX
LEA EAX,[EBX + 0xffdcb3e0]
PUSH EAX
CALL 0x000324d0
MOV ESI,dword ptr [ESP + 0x68]
POP EAX
PUSH dword ptr [ESP + 0x1c]
CALL 0x00032f30
POP EDX
PUSH dword ptr [ESP + 0x18]
CALL 0x00032f30
ADD ESP,0x10
MOV EAX,ESI
MOV ECX,dword ptr [ESP + 0x5c]
XOR ECX,dword ptr GS:[0x14]
JNZ 0x001a58e3
ADD ESP,0x6c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0xc
PUSH EBP
CALL 0x000318f0
ADD ESP,0x10
CMP EAX,0x4
JZ 0x001a57d6
SUB ESP,0xc
PUSH EBP
CALL 0x000318f0
ADD ESP,0x10
CMP EAX,0x3
JNZ 0x001a56ce
SUB ESP,0xc
PUSH 0x7
CALL 0x00032640
MOV ECX,dword ptr [ESP + 0x90]
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x80]
ADD ECX,0x3f
TEST EDX,EDX
CMOVNS ECX,dword ptr [ESP + 0x80]
SAR ECX,0x6
CMP dword ptr [ESP + 0x80],0x7f
MOV dword ptr [ESP + 0x18],ECX
SETG DL
CMP ECX,EAX
JG 0x001a58a8
TEST DL,DL
JNZ 0x001a5880
MOV EAX,0x1
JMP 0x001a56ff
CMP EAX,0x1
JA 0x001a56e4
SUB ESP,0xc
PUSH 0x7
CALL 0x00032640
ADD ESP,0x10
CMP EDX,0x0
JA 0x001a56e4
CMP EAX,0x1
JA 0x001a56e4
JMP 0x001a581c
CMP EAX,0x1
JA 0x001a56fa
SUB ESP,0xc
PUSH 0x7
CALL 0x00032640
ADD ESP,0x10
JMP 0x001a56ff
MOV dword ptr [ESP + 0x1c],ECX
SUB ESP,0xc
PUSH 0x7
CALL 0x00032640
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x1c]
CMP ECX,EAX
JG 0x001a58d0
MOV EAX,dword ptr [ESP + 0x18]
JMP 0x001a56ff
MOV dword ptr [ESP + 0x1c],ECX
SUB ESP,0xc
PUSH 0x7
CALL 0x00032640
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x1c]
CMP EAX,0x1
SETG DL
JMP 0x001a5818
SUB ESP,0xc
PUSH 0x7
CALL 0x00032640
MOV dword ptr [ESP + 0x28],EAX
ADD ESP,0x10
JMP 0x001a5899
CALL 0x0029eab0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4 __regparm3\nFUN_001a5660(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4,undefined4 param_5\n            ,undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 param_9)\n\n{\n  bool bVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int iVar6;\n  int in_GS_OFFSET;\n  undefined8 uVar7;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  int local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1a566d;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar3 = AcquireVirtualCacheView(param_2,param_9);\n  uVar4 = AcquireAuthenticCacheView(param_1,param_9);\n  iVar5 = GetImagePixelCacheType(param_2);\n  if (((iVar5 == 4) || (iVar5 = GetImagePixelCacheType(param_2), iVar5 == 3)) &&\n     ((iVar5 = GetImagePixelCacheType(param_1), iVar5 == 4 ||\n      (iVar5 = GetImagePixelCacheType(param_1), iVar5 == 3)))) {\n    iVar6 = GetMagickResourceLimit(7);\n    iVar5 = param_4 + 0x3f;\n    if (-1 < param_4) {\n      iVar5 = param_4;\n    }\n    iVar5 = iVar5 >> 6;\n    bVar1 = 0x7f < param_4;\n    if (iVar6 < iVar5) {\n      iVar6 = GetMagickResourceLimit(7);\n      bVar1 = 1 < iVar6;\n    }\n    if (bVar1) {\n      iVar6 = GetMagickResourceLimit(7);\n      if (iVar6 < iVar5) {\n        iVar5 = GetMagickResourceLimit(7);\n      }\n      goto LAB_001a56ff;\n    }\nLAB_001a581c:\n    iVar5 = 1;\n  }\n  else {\n    uVar7 = GetMagickResourceLimit(7);\n    if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) {\n      uVar7 = GetMagickResourceLimit(7);\n      if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) goto LAB_001a581c;\n    }\n    uVar7 = GetMagickResourceLimit(7);\n    if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) {\n      iVar5 = GetMagickResourceLimit(7);\n    }\n    else {\n      iVar5 = 2;\n    }\n  }\nLAB_001a56ff:\n  local_30 = param_9;\n  local_24 = 1;\n  local_44 = param_4;\n  local_34 = param_8;\n  local_38 = param_7;\n  local_3c = param_6;\n  local_40 = param_5;\n  local_50 = param_1;\n  local_4c = param_2;\n  local_48 = param_3;\n  local_2c = uVar3;\n  local_28 = uVar4;\n  GOMP_parallel(FUN_001a43e0,&local_50,iVar5,0);\n  uVar2 = local_24;\n  DestroyCacheView(uVar4);\n  DestroyCacheView(uVar3);\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0029eab0();\n  }\n  return uVar2;\n}\n\n" comment (function_definition "undefined4 __regparm3\nFUN_001a5660(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4,undefined4 param_5\n            ,undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 param_9)\n\n{\n  bool bVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int iVar6;\n  int in_GS_OFFSET;\n  undefined8 uVar7;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  int local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1a566d;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar3 = AcquireVirtualCacheView(param_2,param_9);\n  uVar4 = AcquireAuthenticCacheView(param_1,param_9);\n  iVar5 = GetImagePixelCacheType(param_2);\n  if (((iVar5 == 4) || (iVar5 = GetImagePixelCacheType(param_2), iVar5 == 3)) &&\n     ((iVar5 = GetImagePixelCacheType(param_1), iVar5 == 4 ||\n      (iVar5 = GetImagePixelCacheType(param_1), iVar5 == 3)))) {\n    iVar6 = GetMagickResourceLimit(7);\n    iVar5 = param_4 + 0x3f;\n    if (-1 < param_4) {\n      iVar5 = param_4;\n    }\n    iVar5 = iVar5 >> 6;\n    bVar1 = 0x7f < param_4;\n    if (iVar6 < iVar5) {\n      iVar6 = GetMagickResourceLimit(7);\n      bVar1 = 1 < iVar6;\n    }\n    if (bVar1) {\n      iVar6 = GetMagickResourceLimit(7);\n      if (iVar6 < iVar5) {\n        iVar5 = GetMagickResourceLimit(7);\n      }\n      goto LAB_001a56ff;\n    }\nLAB_001a581c:\n    iVar5 = 1;\n  }\n  else {\n    uVar7 = GetMagickResourceLimit(7);\n    if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) {\n      uVar7 = GetMagickResourceLimit(7);\n      if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) goto LAB_001a581c;\n    }\n    uVar7 = GetMagickResourceLimit(7);\n    if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) {\n      iVar5 = GetMagickResourceLimit(7);\n    }\n    else {\n      iVar5 = 2;\n    }\n  }\nLAB_001a56ff:\n  local_30 = param_9;\n  local_24 = 1;\n  local_44 = param_4;\n  local_34 = param_8;\n  local_38 = param_7;\n  local_3c = param_6;\n  local_40 = param_5;\n  local_50 = param_1;\n  local_4c = param_2;\n  local_48 = param_3;\n  local_2c = uVar3;\n  local_28 = uVar4;\n  GOMP_parallel(FUN_001a43e0,&local_50,iVar5,0);\n  uVar2 = local_24;\n  DestroyCacheView(uVar4);\n  DestroyCacheView(uVar3);\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0029eab0();\n  }\n  return uVar2;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_001a5660(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4,undefined4 param_5\n            ,undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 param_9)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4,undefined4 param_5\n            ,undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 param_9)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "undefined4 param_6" type_identifier identifier) , (parameter_declaration "undefined4 param_7" type_identifier identifier) , (parameter_declaration "undefined4 param_8" type_identifier identifier) , (parameter_declaration "undefined4 param_9" type_identifier identifier) ))) (compound_statement "{\n  bool bVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int iVar6;\n  int in_GS_OFFSET;\n  undefined8 uVar7;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  int local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1a566d;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar3 = AcquireVirtualCacheView(param_2,param_9);\n  uVar4 = AcquireAuthenticCacheView(param_1,param_9);\n  iVar5 = GetImagePixelCacheType(param_2);\n  if (((iVar5 == 4) || (iVar5 = GetImagePixelCacheType(param_2), iVar5 == 3)) &&\n     ((iVar5 = GetImagePixelCacheType(param_1), iVar5 == 4 ||\n      (iVar5 = GetImagePixelCacheType(param_1), iVar5 == 3)))) {\n    iVar6 = GetMagickResourceLimit(7);\n    iVar5 = param_4 + 0x3f;\n    if (-1 < param_4) {\n      iVar5 = param_4;\n    }\n    iVar5 = iVar5 >> 6;\n    bVar1 = 0x7f < param_4;\n    if (iVar6 < iVar5) {\n      iVar6 = GetMagickResourceLimit(7);\n      bVar1 = 1 < iVar6;\n    }\n    if (bVar1) {\n      iVar6 = GetMagickResourceLimit(7);\n      if (iVar6 < iVar5) {\n        iVar5 = GetMagickResourceLimit(7);\n      }\n      goto LAB_001a56ff;\n    }\nLAB_001a581c:\n    iVar5 = 1;\n  }\n  else {\n    uVar7 = GetMagickResourceLimit(7);\n    if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) {\n      uVar7 = GetMagickResourceLimit(7);\n      if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) goto LAB_001a581c;\n    }\n    uVar7 = GetMagickResourceLimit(7);\n    if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) {\n      iVar5 = GetMagickResourceLimit(7);\n    }\n    else {\n      iVar5 = 2;\n    }\n  }\nLAB_001a56ff:\n  local_30 = param_9;\n  local_24 = 1;\n  local_44 = param_4;\n  local_34 = param_8;\n  local_38 = param_7;\n  local_3c = param_6;\n  local_40 = param_5;\n  local_50 = param_1;\n  local_4c = param_2;\n  local_48 = param_3;\n  local_2c = uVar3;\n  local_28 = uVar4;\n  GOMP_parallel(FUN_001a43e0,&local_50,iVar5,0);\n  uVar2 = local_24;\n  DestroyCacheView(uVar4);\n  DestroyCacheView(uVar3);\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0029eab0();\n  }\n  return uVar2;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "undefined8 uVar7;" type_identifier identifier ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "int local_44;" primitive_type identifier ;) (declaration "undefined4 local_40;" type_identifier identifier ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x1a566d;" (assignment_expression "uStack_14 = 0x1a566d" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = AcquireVirtualCacheView(param_2,param_9);" (assignment_expression "uVar3 = AcquireVirtualCacheView(param_2,param_9)" identifier = (call_expression "AcquireVirtualCacheView(param_2,param_9)" identifier (argument_list "(param_2,param_9)" ( identifier , identifier )))) ;) (expression_statement "uVar4 = AcquireAuthenticCacheView(param_1,param_9);" (assignment_expression "uVar4 = AcquireAuthenticCacheView(param_1,param_9)" identifier = (call_expression "AcquireAuthenticCacheView(param_1,param_9)" identifier (argument_list "(param_1,param_9)" ( identifier , identifier )))) ;) (expression_statement "iVar5 = GetImagePixelCacheType(param_2);" (assignment_expression "iVar5 = GetImagePixelCacheType(param_2)" identifier = (call_expression "GetImagePixelCacheType(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (((iVar5 == 4) || (iVar5 = GetImagePixelCacheType(param_2), iVar5 == 3)) &&\n     ((iVar5 = GetImagePixelCacheType(param_1), iVar5 == 4 ||\n      (iVar5 = GetImagePixelCacheType(param_1), iVar5 == 3)))) {\n    iVar6 = GetMagickResourceLimit(7);\n    iVar5 = param_4 + 0x3f;\n    if (-1 < param_4) {\n      iVar5 = param_4;\n    }\n    iVar5 = iVar5 >> 6;\n    bVar1 = 0x7f < param_4;\n    if (iVar6 < iVar5) {\n      iVar6 = GetMagickResourceLimit(7);\n      bVar1 = 1 < iVar6;\n    }\n    if (bVar1) {\n      iVar6 = GetMagickResourceLimit(7);\n      if (iVar6 < iVar5) {\n        iVar5 = GetMagickResourceLimit(7);\n      }\n      goto LAB_001a56ff;\n    }\nLAB_001a581c:\n    iVar5 = 1;\n  }\n  else {\n    uVar7 = GetMagickResourceLimit(7);\n    if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) {\n      uVar7 = GetMagickResourceLimit(7);\n      if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) goto LAB_001a581c;\n    }\n    uVar7 = GetMagickResourceLimit(7);\n    if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) {\n      iVar5 = GetMagickResourceLimit(7);\n    }\n    else {\n      iVar5 = 2;\n    }\n  }" if (parenthesized_expression "(((iVar5 == 4) || (iVar5 = GetImagePixelCacheType(param_2), iVar5 == 3)) &&\n     ((iVar5 = GetImagePixelCacheType(param_1), iVar5 == 4 ||\n      (iVar5 = GetImagePixelCacheType(param_1), iVar5 == 3))))" ( (binary_expression "((iVar5 == 4) || (iVar5 = GetImagePixelCacheType(param_2), iVar5 == 3)) &&\n     ((iVar5 = GetImagePixelCacheType(param_1), iVar5 == 4 ||\n      (iVar5 = GetImagePixelCacheType(param_1), iVar5 == 3)))" (parenthesized_expression "((iVar5 == 4) || (iVar5 = GetImagePixelCacheType(param_2), iVar5 == 3))" ( (binary_expression "(iVar5 == 4) || (iVar5 = GetImagePixelCacheType(param_2), iVar5 == 3)" (parenthesized_expression "(iVar5 == 4)" ( (binary_expression "iVar5 == 4" identifier == number_literal) )) || (parenthesized_expression "(iVar5 = GetImagePixelCacheType(param_2), iVar5 == 3)" ( (comma_expression "iVar5 = GetImagePixelCacheType(param_2), iVar5 == 3" (assignment_expression "iVar5 = GetImagePixelCacheType(param_2)" identifier = (call_expression "GetImagePixelCacheType(param_2)" identifier (argument_list "(param_2)" ( identifier )))) , (binary_expression "iVar5 == 3" identifier == number_literal)) ))) )) && (parenthesized_expression "((iVar5 = GetImagePixelCacheType(param_1), iVar5 == 4 ||\n      (iVar5 = GetImagePixelCacheType(param_1), iVar5 == 3)))" ( (parenthesized_expression "(iVar5 = GetImagePixelCacheType(param_1), iVar5 == 4 ||\n      (iVar5 = GetImagePixelCacheType(param_1), iVar5 == 3))" ( (comma_expression "iVar5 = GetImagePixelCacheType(param_1), iVar5 == 4 ||\n      (iVar5 = GetImagePixelCacheType(param_1), iVar5 == 3)" (assignment_expression "iVar5 = GetImagePixelCacheType(param_1)" identifier = (call_expression "GetImagePixelCacheType(param_1)" identifier (argument_list "(param_1)" ( identifier )))) , (binary_expression "iVar5 == 4 ||\n      (iVar5 = GetImagePixelCacheType(param_1), iVar5 == 3)" (binary_expression "iVar5 == 4" identifier == number_literal) || (parenthesized_expression "(iVar5 = GetImagePixelCacheType(param_1), iVar5 == 3)" ( (comma_expression "iVar5 = GetImagePixelCacheType(param_1), iVar5 == 3" (assignment_expression "iVar5 = GetImagePixelCacheType(param_1)" identifier = (call_expression "GetImagePixelCacheType(param_1)" identifier (argument_list "(param_1)" ( identifier )))) , (binary_expression "iVar5 == 3" identifier == number_literal)) )))) )) ))) )) (compound_statement "{\n    iVar6 = GetMagickResourceLimit(7);\n    iVar5 = param_4 + 0x3f;\n    if (-1 < param_4) {\n      iVar5 = param_4;\n    }\n    iVar5 = iVar5 >> 6;\n    bVar1 = 0x7f < param_4;\n    if (iVar6 < iVar5) {\n      iVar6 = GetMagickResourceLimit(7);\n      bVar1 = 1 < iVar6;\n    }\n    if (bVar1) {\n      iVar6 = GetMagickResourceLimit(7);\n      if (iVar6 < iVar5) {\n        iVar5 = GetMagickResourceLimit(7);\n      }\n      goto LAB_001a56ff;\n    }\nLAB_001a581c:\n    iVar5 = 1;\n  }" { (expression_statement "iVar6 = GetMagickResourceLimit(7);" (assignment_expression "iVar6 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (expression_statement "iVar5 = param_4 + 0x3f;" (assignment_expression "iVar5 = param_4 + 0x3f" identifier = (binary_expression "param_4 + 0x3f" identifier + number_literal)) ;) (if_statement "if (-1 < param_4) {\n      iVar5 = param_4;\n    }" if (parenthesized_expression "(-1 < param_4)" ( (binary_expression "-1 < param_4" number_literal < identifier) )) (compound_statement "{\n      iVar5 = param_4;\n    }" { (expression_statement "iVar5 = param_4;" (assignment_expression "iVar5 = param_4" identifier = identifier) ;) })) (expression_statement "iVar5 = iVar5 >> 6;" (assignment_expression "iVar5 = iVar5 >> 6" identifier = (binary_expression "iVar5 >> 6" identifier >> number_literal)) ;) (expression_statement "bVar1 = 0x7f < param_4;" (assignment_expression "bVar1 = 0x7f < param_4" identifier = (binary_expression "0x7f < param_4" number_literal < identifier)) ;) (if_statement "if (iVar6 < iVar5) {\n      iVar6 = GetMagickResourceLimit(7);\n      bVar1 = 1 < iVar6;\n    }" if (parenthesized_expression "(iVar6 < iVar5)" ( (binary_expression "iVar6 < iVar5" identifier < identifier) )) (compound_statement "{\n      iVar6 = GetMagickResourceLimit(7);\n      bVar1 = 1 < iVar6;\n    }" { (expression_statement "iVar6 = GetMagickResourceLimit(7);" (assignment_expression "iVar6 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (expression_statement "bVar1 = 1 < iVar6;" (assignment_expression "bVar1 = 1 < iVar6" identifier = (binary_expression "1 < iVar6" number_literal < identifier)) ;) })) (if_statement "if (bVar1) {\n      iVar6 = GetMagickResourceLimit(7);\n      if (iVar6 < iVar5) {\n        iVar5 = GetMagickResourceLimit(7);\n      }\n      goto LAB_001a56ff;\n    }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n      iVar6 = GetMagickResourceLimit(7);\n      if (iVar6 < iVar5) {\n        iVar5 = GetMagickResourceLimit(7);\n      }\n      goto LAB_001a56ff;\n    }" { (expression_statement "iVar6 = GetMagickResourceLimit(7);" (assignment_expression "iVar6 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (if_statement "if (iVar6 < iVar5) {\n        iVar5 = GetMagickResourceLimit(7);\n      }" if (parenthesized_expression "(iVar6 < iVar5)" ( (binary_expression "iVar6 < iVar5" identifier < identifier) )) (compound_statement "{\n        iVar5 = GetMagickResourceLimit(7);\n      }" { (expression_statement "iVar5 = GetMagickResourceLimit(7);" (assignment_expression "iVar5 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) })) (goto_statement "goto LAB_001a56ff;" goto statement_identifier ;) })) (labeled_statement "LAB_001a581c:\n    iVar5 = 1;" statement_identifier : (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;)) }) (else_clause "else {\n    uVar7 = GetMagickResourceLimit(7);\n    if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) {\n      uVar7 = GetMagickResourceLimit(7);\n      if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) goto LAB_001a581c;\n    }\n    uVar7 = GetMagickResourceLimit(7);\n    if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) {\n      iVar5 = GetMagickResourceLimit(7);\n    }\n    else {\n      iVar5 = 2;\n    }\n  }" else (compound_statement "{\n    uVar7 = GetMagickResourceLimit(7);\n    if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) {\n      uVar7 = GetMagickResourceLimit(7);\n      if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) goto LAB_001a581c;\n    }\n    uVar7 = GetMagickResourceLimit(7);\n    if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) {\n      iVar5 = GetMagickResourceLimit(7);\n    }\n    else {\n      iVar5 = 2;\n    }\n  }" { (expression_statement "uVar7 = GetMagickResourceLimit(7);" (assignment_expression "uVar7 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (if_statement "if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) {\n      uVar7 = GetMagickResourceLimit(7);\n      if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) goto LAB_001a581c;\n    }" if (parenthesized_expression "(((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2))" ( (binary_expression "((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)" (parenthesized_expression "((int)((ulonglong)uVar7 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar7 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar7 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar7 >> 0x20)" ( (binary_expression "(ulonglong)uVar7 >> 0x20" (cast_expression "(ulonglong)uVar7" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) && (parenthesized_expression "((uint)uVar7 < 2)" ( (binary_expression "(uint)uVar7 < 2" (cast_expression "(uint)uVar7" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) ))) )) (compound_statement "{\n      uVar7 = GetMagickResourceLimit(7);\n      if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) goto LAB_001a581c;\n    }" { (expression_statement "uVar7 = GetMagickResourceLimit(7);" (assignment_expression "uVar7 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (if_statement "if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) goto LAB_001a581c;" if (parenthesized_expression "(((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2))" ( (binary_expression "((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)" (parenthesized_expression "((int)((ulonglong)uVar7 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar7 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar7 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar7 >> 0x20)" ( (binary_expression "(ulonglong)uVar7 >> 0x20" (cast_expression "(ulonglong)uVar7" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) && (parenthesized_expression "((uint)uVar7 < 2)" ( (binary_expression "(uint)uVar7 < 2" (cast_expression "(uint)uVar7" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) ))) )) (goto_statement "goto LAB_001a581c;" goto statement_identifier ;)) })) (expression_statement "uVar7 = GetMagickResourceLimit(7);" (assignment_expression "uVar7 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (if_statement "if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) {\n      iVar5 = GetMagickResourceLimit(7);\n    }\n    else {\n      iVar5 = 2;\n    }" if (parenthesized_expression "(((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2))" ( (binary_expression "((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)" (parenthesized_expression "((int)((ulonglong)uVar7 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar7 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar7 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar7 >> 0x20)" ( (binary_expression "(ulonglong)uVar7 >> 0x20" (cast_expression "(ulonglong)uVar7" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) && (parenthesized_expression "((uint)uVar7 < 2)" ( (binary_expression "(uint)uVar7 < 2" (cast_expression "(uint)uVar7" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) ))) )) (compound_statement "{\n      iVar5 = GetMagickResourceLimit(7);\n    }" { (expression_statement "iVar5 = GetMagickResourceLimit(7);" (assignment_expression "iVar5 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) }) (else_clause "else {\n      iVar5 = 2;\n    }" else (compound_statement "{\n      iVar5 = 2;\n    }" { (expression_statement "iVar5 = 2;" (assignment_expression "iVar5 = 2" identifier = number_literal) ;) }))) }))) (labeled_statement "LAB_001a56ff:\n  local_30 = param_9;" statement_identifier : (expression_statement "local_30 = param_9;" (assignment_expression "local_30 = param_9" identifier = identifier) ;)) (expression_statement "local_24 = 1;" (assignment_expression "local_24 = 1" identifier = number_literal) ;) (expression_statement "local_44 = param_4;" (assignment_expression "local_44 = param_4" identifier = identifier) ;) (expression_statement "local_34 = param_8;" (assignment_expression "local_34 = param_8" identifier = identifier) ;) (expression_statement "local_38 = param_7;" (assignment_expression "local_38 = param_7" identifier = identifier) ;) (expression_statement "local_3c = param_6;" (assignment_expression "local_3c = param_6" identifier = identifier) ;) (expression_statement "local_40 = param_5;" (assignment_expression "local_40 = param_5" identifier = identifier) ;) (expression_statement "local_50 = param_1;" (assignment_expression "local_50 = param_1" identifier = identifier) ;) (expression_statement "local_4c = param_2;" (assignment_expression "local_4c = param_2" identifier = identifier) ;) (expression_statement "local_48 = param_3;" (assignment_expression "local_48 = param_3" identifier = identifier) ;) (expression_statement "local_2c = uVar3;" (assignment_expression "local_2c = uVar3" identifier = identifier) ;) (expression_statement "local_28 = uVar4;" (assignment_expression "local_28 = uVar4" identifier = identifier) ;) (expression_statement "GOMP_parallel(FUN_001a43e0,&local_50,iVar5,0);" (call_expression "GOMP_parallel(FUN_001a43e0,&local_50,iVar5,0)" identifier (argument_list "(FUN_001a43e0,&local_50,iVar5,0)" ( identifier , (pointer_expression "&local_50" & identifier) , identifier , number_literal ))) ;) (expression_statement "uVar2 = local_24;" (assignment_expression "uVar2 = local_24" identifier = identifier) ;) (expression_statement "DestroyCacheView(uVar4);" (call_expression "DestroyCacheView(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "DestroyCacheView(uVar3);" (call_expression "DestroyCacheView(uVar3)" identifier (argument_list "(uVar3)" ( identifier ))) ;) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0029eab0();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0029eab0();\n  }" { comment (expression_statement "FUN_0029eab0();" (call_expression "FUN_0029eab0()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return uVar2;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\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 "ExceptionType": Some values do not have unique names */\n\nMagickBooleanType __regparm3\nCopyImageRegion(Image *destination,Image *source,size_t columns,size_t rows,ssize_t sx,ssize_t sy,\n               ssize_t dx,ssize_t dy,ExceptionInfo *exception)\n\n{\n  bool bVar1;\n  MagickBooleanType MVar2;\n  CacheView *cache_view;\n  CacheView *cache_view_00;\n  CacheType CVar3;\n  int iVar4;\n  size_t sVar5;\n  int in_GS_OFFSET;\n  MagickSizeType MVar6;\n  Image *local_50;\n  Image *local_4c;\n  size_t local_48;\n  size_t local_44;\n  ssize_t local_40;\n  ssize_t local_3c;\n  ssize_t local_38;\n  ssize_t local_34;\n  ExceptionInfo *local_30;\n  CacheView *local_2c;\n  CacheView *local_28;\n  MagickBooleanType local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1a566d;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  cache_view = AcquireVirtualCacheView(source,exception);\n  cache_view_00 = AcquireAuthenticCacheView(destination,exception);\n  CVar3 = GetImagePixelCacheType(source);\n  if (((CVar3 == MemoryCache) || (CVar3 = GetImagePixelCacheType(source), CVar3 == MapCache)) &&\n     ((CVar3 = GetImagePixelCacheType(destination), CVar3 == MemoryCache ||\n      (CVar3 = GetImagePixelCacheType(destination), CVar3 == MapCache)))) {\n    MVar6 = GetMagickResourceLimit(ThreadResource);\n    sVar5 = rows + 0x3f;\n    if (-1 < (int)rows) {\n      sVar5 = rows;\n    }\n    iVar4 = (int)sVar5 >> 6;\n    bVar1 = 0x7f < (int)rows;\n    if ((int)MVar6 < iVar4) {\n      MVar6 = GetMagickResourceLimit(ThreadResource);\n      bVar1 = 1 < (int)MVar6;\n    }\n    if (bVar1) {\n      MVar6 = GetMagickResourceLimit(ThreadResource);\n      if ((int)MVar6 < iVar4) {\n        MVar6 = GetMagickResourceLimit(ThreadResource);\n        iVar4 = (int)MVar6;\n      }\n      goto LAB_001a56ff;\n    }\nLAB_001a581c:\n    iVar4 = 1;\n  }\n  else {\n    MVar6 = GetMagickResourceLimit(ThreadResource);\n    if (((int)(MVar6 >> 0x20) == 0) && ((uint)MVar6 < 2)) {\n      MVar6 = GetMagickResourceLimit(ThreadResource);\n      if (((int)(MVar6 >> 0x20) == 0) && ((uint)MVar6 < 2)) goto LAB_001a581c;\n    }\n    MVar6 = GetMagickResourceLimit(ThreadResource);\n    if (((int)(MVar6 >> 0x20) == 0) && ((uint)MVar6 < 2)) {\n      MVar6 = GetMagickResourceLimit(ThreadResource);\n      iVar4 = (int)MVar6;\n    }\n    else {\n      iVar4 = 2;\n    }\n  }\nLAB_001a56ff:\n  local_30 = exception;\n  local_24 = MagickTrue;\n  local_44 = rows;\n  local_34 = dy;\n  local_38 = dx;\n  local_3c = sy;\n  local_40 = sx;\n  local_50 = destination;\n  local_4c = source;\n  local_48 = columns;\n  local_2c = cache_view;\n  local_28 = cache_view_00;\n  GOMP_parallel(CopyImageRegion__omp_fn_6,&local_50,iVar4,0);\n  MVar2 = local_24;\n  DestroyCacheView(cache_view_00);\n  DestroyCacheView(cache_view);\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return MVar2;\n}\n\n" comment comment comment comment comment comment (function_definition "MagickBooleanType __regparm3\nCopyImageRegion(Image *destination,Image *source,size_t columns,size_t rows,ssize_t sx,ssize_t sy,\n               ssize_t dx,ssize_t dy,ExceptionInfo *exception)\n\n{\n  bool bVar1;\n  MagickBooleanType MVar2;\n  CacheView *cache_view;\n  CacheView *cache_view_00;\n  CacheType CVar3;\n  int iVar4;\n  size_t sVar5;\n  int in_GS_OFFSET;\n  MagickSizeType MVar6;\n  Image *local_50;\n  Image *local_4c;\n  size_t local_48;\n  size_t local_44;\n  ssize_t local_40;\n  ssize_t local_3c;\n  ssize_t local_38;\n  ssize_t local_34;\n  ExceptionInfo *local_30;\n  CacheView *local_2c;\n  CacheView *local_28;\n  MagickBooleanType local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1a566d;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  cache_view = AcquireVirtualCacheView(source,exception);\n  cache_view_00 = AcquireAuthenticCacheView(destination,exception);\n  CVar3 = GetImagePixelCacheType(source);\n  if (((CVar3 == MemoryCache) || (CVar3 = GetImagePixelCacheType(source), CVar3 == MapCache)) &&\n     ((CVar3 = GetImagePixelCacheType(destination), CVar3 == MemoryCache ||\n      (CVar3 = GetImagePixelCacheType(destination), CVar3 == MapCache)))) {\n    MVar6 = GetMagickResourceLimit(ThreadResource);\n    sVar5 = rows + 0x3f;\n    if (-1 < (int)rows) {\n      sVar5 = rows;\n    }\n    iVar4 = (int)sVar5 >> 6;\n    bVar1 = 0x7f < (int)rows;\n    if ((int)MVar6 < iVar4) {\n      MVar6 = GetMagickResourceLimit(ThreadResource);\n      bVar1 = 1 < (int)MVar6;\n    }\n    if (bVar1) {\n      MVar6 = GetMagickResourceLimit(ThreadResource);\n      if ((int)MVar6 < iVar4) {\n        MVar6 = GetMagickResourceLimit(ThreadResource);\n        iVar4 = (int)MVar6;\n      }\n      goto LAB_001a56ff;\n    }\nLAB_001a581c:\n    iVar4 = 1;\n  }\n  else {\n    MVar6 = GetMagickResourceLimit(ThreadResource);\n    if (((int)(MVar6 >> 0x20) == 0) && ((uint)MVar6 < 2)) {\n      MVar6 = GetMagickResourceLimit(ThreadResource);\n      if (((int)(MVar6 >> 0x20) == 0) && ((uint)MVar6 < 2)) goto LAB_001a581c;\n    }\n    MVar6 = GetMagickResourceLimit(ThreadResource);\n    if (((int)(MVar6 >> 0x20) == 0) && ((uint)MVar6 < 2)) {\n      MVar6 = GetMagickResourceLimit(ThreadResource);\n      iVar4 = (int)MVar6;\n    }\n    else {\n      iVar4 = 2;\n    }\n  }\nLAB_001a56ff:\n  local_30 = exception;\n  local_24 = MagickTrue;\n  local_44 = rows;\n  local_34 = dy;\n  local_38 = dx;\n  local_3c = sy;\n  local_40 = sx;\n  local_50 = destination;\n  local_4c = source;\n  local_48 = columns;\n  local_2c = cache_view;\n  local_28 = cache_view_00;\n  GOMP_parallel(CopyImageRegion__omp_fn_6,&local_50,iVar4,0);\n  MVar2 = local_24;\n  DestroyCacheView(cache_view_00);\n  DestroyCacheView(cache_view);\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return MVar2;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "CopyImageRegion(Image *destination,Image *source,size_t columns,size_t rows,ssize_t sx,ssize_t sy,\n               ssize_t dx,ssize_t dy,ExceptionInfo *exception)" identifier (parameter_list "(Image *destination,Image *source,size_t columns,size_t rows,ssize_t sx,ssize_t sy,\n               ssize_t dx,ssize_t dy,ExceptionInfo *exception)" ( (parameter_declaration "Image *destination" type_identifier (pointer_declarator "*destination" * identifier)) , (parameter_declaration "Image *source" type_identifier (pointer_declarator "*source" * identifier)) , (parameter_declaration "size_t columns" primitive_type identifier) , (parameter_declaration "size_t rows" primitive_type identifier) , (parameter_declaration "ssize_t sx" primitive_type identifier) , (parameter_declaration "ssize_t sy" primitive_type identifier) , (parameter_declaration "ssize_t dx" primitive_type identifier) , (parameter_declaration "ssize_t dy" primitive_type identifier) , (parameter_declaration "ExceptionInfo *exception" type_identifier (pointer_declarator "*exception" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  MagickBooleanType MVar2;\n  CacheView *cache_view;\n  CacheView *cache_view_00;\n  CacheType CVar3;\n  int iVar4;\n  size_t sVar5;\n  int in_GS_OFFSET;\n  MagickSizeType MVar6;\n  Image *local_50;\n  Image *local_4c;\n  size_t local_48;\n  size_t local_44;\n  ssize_t local_40;\n  ssize_t local_3c;\n  ssize_t local_38;\n  ssize_t local_34;\n  ExceptionInfo *local_30;\n  CacheView *local_2c;\n  CacheView *local_28;\n  MagickBooleanType local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1a566d;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  cache_view = AcquireVirtualCacheView(source,exception);\n  cache_view_00 = AcquireAuthenticCacheView(destination,exception);\n  CVar3 = GetImagePixelCacheType(source);\n  if (((CVar3 == MemoryCache) || (CVar3 = GetImagePixelCacheType(source), CVar3 == MapCache)) &&\n     ((CVar3 = GetImagePixelCacheType(destination), CVar3 == MemoryCache ||\n      (CVar3 = GetImagePixelCacheType(destination), CVar3 == MapCache)))) {\n    MVar6 = GetMagickResourceLimit(ThreadResource);\n    sVar5 = rows + 0x3f;\n    if (-1 < (int)rows) {\n      sVar5 = rows;\n    }\n    iVar4 = (int)sVar5 >> 6;\n    bVar1 = 0x7f < (int)rows;\n    if ((int)MVar6 < iVar4) {\n      MVar6 = GetMagickResourceLimit(ThreadResource);\n      bVar1 = 1 < (int)MVar6;\n    }\n    if (bVar1) {\n      MVar6 = GetMagickResourceLimit(ThreadResource);\n      if ((int)MVar6 < iVar4) {\n        MVar6 = GetMagickResourceLimit(ThreadResource);\n        iVar4 = (int)MVar6;\n      }\n      goto LAB_001a56ff;\n    }\nLAB_001a581c:\n    iVar4 = 1;\n  }\n  else {\n    MVar6 = GetMagickResourceLimit(ThreadResource);\n    if (((int)(MVar6 >> 0x20) == 0) && ((uint)MVar6 < 2)) {\n      MVar6 = GetMagickResourceLimit(ThreadResource);\n      if (((int)(MVar6 >> 0x20) == 0) && ((uint)MVar6 < 2)) goto LAB_001a581c;\n    }\n    MVar6 = GetMagickResourceLimit(ThreadResource);\n    if (((int)(MVar6 >> 0x20) == 0) && ((uint)MVar6 < 2)) {\n      MVar6 = GetMagickResourceLimit(ThreadResource);\n      iVar4 = (int)MVar6;\n    }\n    else {\n      iVar4 = 2;\n    }\n  }\nLAB_001a56ff:\n  local_30 = exception;\n  local_24 = MagickTrue;\n  local_44 = rows;\n  local_34 = dy;\n  local_38 = dx;\n  local_3c = sy;\n  local_40 = sx;\n  local_50 = destination;\n  local_4c = source;\n  local_48 = columns;\n  local_2c = cache_view;\n  local_28 = cache_view_00;\n  GOMP_parallel(CopyImageRegion__omp_fn_6,&local_50,iVar4,0);\n  MVar2 = local_24;\n  DestroyCacheView(cache_view_00);\n  DestroyCacheView(cache_view);\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return MVar2;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "MagickBooleanType MVar2;" type_identifier identifier ;) (declaration "CacheView *cache_view;" type_identifier (pointer_declarator "*cache_view" * identifier) ;) (declaration "CacheView *cache_view_00;" type_identifier (pointer_declarator "*cache_view_00" * identifier) ;) (declaration "CacheType CVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "size_t sVar5;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "MagickSizeType MVar6;" type_identifier identifier ;) (declaration "Image *local_50;" type_identifier (pointer_declarator "*local_50" * identifier) ;) (declaration "Image *local_4c;" type_identifier (pointer_declarator "*local_4c" * identifier) ;) (declaration "size_t local_48;" primitive_type identifier ;) (declaration "size_t local_44;" primitive_type identifier ;) (declaration "ssize_t local_40;" primitive_type identifier ;) (declaration "ssize_t local_3c;" primitive_type identifier ;) (declaration "ssize_t local_38;" primitive_type identifier ;) (declaration "ssize_t local_34;" primitive_type identifier ;) (declaration "ExceptionInfo *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "CacheView *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (declaration "CacheView *local_28;" type_identifier (pointer_declarator "*local_28" * identifier) ;) (declaration "MagickBooleanType local_24;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x1a566d;" (assignment_expression "uStack_14 = 0x1a566d" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "cache_view = AcquireVirtualCacheView(source,exception);" (assignment_expression "cache_view = AcquireVirtualCacheView(source,exception)" identifier = (call_expression "AcquireVirtualCacheView(source,exception)" identifier (argument_list "(source,exception)" ( identifier , identifier )))) ;) (expression_statement "cache_view_00 = AcquireAuthenticCacheView(destination,exception);" (assignment_expression "cache_view_00 = AcquireAuthenticCacheView(destination,exception)" identifier = (call_expression "AcquireAuthenticCacheView(destination,exception)" identifier (argument_list "(destination,exception)" ( identifier , identifier )))) ;) (expression_statement "CVar3 = GetImagePixelCacheType(source);" (assignment_expression "CVar3 = GetImagePixelCacheType(source)" identifier = (call_expression "GetImagePixelCacheType(source)" identifier (argument_list "(source)" ( identifier )))) ;) (if_statement "if (((CVar3 == MemoryCache) || (CVar3 = GetImagePixelCacheType(source), CVar3 == MapCache)) &&\n     ((CVar3 = GetImagePixelCacheType(destination), CVar3 == MemoryCache ||\n      (CVar3 = GetImagePixelCacheType(destination), CVar3 == MapCache)))) {\n    MVar6 = GetMagickResourceLimit(ThreadResource);\n    sVar5 = rows + 0x3f;\n    if (-1 < (int)rows) {\n      sVar5 = rows;\n    }\n    iVar4 = (int)sVar5 >> 6;\n    bVar1 = 0x7f < (int)rows;\n    if ((int)MVar6 < iVar4) {\n      MVar6 = GetMagickResourceLimit(ThreadResource);\n      bVar1 = 1 < (int)MVar6;\n    }\n    if (bVar1) {\n      MVar6 = GetMagickResourceLimit(ThreadResource);\n      if ((int)MVar6 < iVar4) {\n        MVar6 = GetMagickResourceLimit(ThreadResource);\n        iVar4 = (int)MVar6;\n      }\n      goto LAB_001a56ff;\n    }\nLAB_001a581c:\n    iVar4 = 1;\n  }\n  else {\n    MVar6 = GetMagickResourceLimit(ThreadResource);\n    if (((int)(MVar6 >> 0x20) == 0) && ((uint)MVar6 < 2)) {\n      MVar6 = GetMagickResourceLimit(ThreadResource);\n      if (((int)(MVar6 >> 0x20) == 0) && ((uint)MVar6 < 2)) goto LAB_001a581c;\n    }\n    MVar6 = GetMagickResourceLimit(ThreadResource);\n    if (((int)(MVar6 >> 0x20) == 0) && ((uint)MVar6 < 2)) {\n      MVar6 = GetMagickResourceLimit(ThreadResource);\n      iVar4 = (int)MVar6;\n    }\n    else {\n      iVar4 = 2;\n    }\n  }" if (parenthesized_expression "(((CVar3 == MemoryCache) || (CVar3 = GetImagePixelCacheType(source), CVar3 == MapCache)) &&\n     ((CVar3 = GetImagePixelCacheType(destination), CVar3 == MemoryCache ||\n      (CVar3 = GetImagePixelCacheType(destination), CVar3 == MapCache))))" ( (binary_expression "((CVar3 == MemoryCache) || (CVar3 = GetImagePixelCacheType(source), CVar3 == MapCache)) &&\n     ((CVar3 = GetImagePixelCacheType(destination), CVar3 == MemoryCache ||\n      (CVar3 = GetImagePixelCacheType(destination), CVar3 == MapCache)))" (parenthesized_expression "((CVar3 == MemoryCache) || (CVar3 = GetImagePixelCacheType(source), CVar3 == MapCache))" ( (binary_expression "(CVar3 == MemoryCache) || (CVar3 = GetImagePixelCacheType(source), CVar3 == MapCache)" (parenthesized_expression "(CVar3 == MemoryCache)" ( (binary_expression "CVar3 == MemoryCache" identifier == identifier) )) || (parenthesized_expression "(CVar3 = GetImagePixelCacheType(source), CVar3 == MapCache)" ( (comma_expression "CVar3 = GetImagePixelCacheType(source), CVar3 == MapCache" (assignment_expression "CVar3 = GetImagePixelCacheType(source)" identifier = (call_expression "GetImagePixelCacheType(source)" identifier (argument_list "(source)" ( identifier )))) , (binary_expression "CVar3 == MapCache" identifier == identifier)) ))) )) && (parenthesized_expression "((CVar3 = GetImagePixelCacheType(destination), CVar3 == MemoryCache ||\n      (CVar3 = GetImagePixelCacheType(destination), CVar3 == MapCache)))" ( (parenthesized_expression "(CVar3 = GetImagePixelCacheType(destination), CVar3 == MemoryCache ||\n      (CVar3 = GetImagePixelCacheType(destination), CVar3 == MapCache))" ( (comma_expression "CVar3 = GetImagePixelCacheType(destination), CVar3 == MemoryCache ||\n      (CVar3 = GetImagePixelCacheType(destination), CVar3 == MapCache)" (assignment_expression "CVar3 = GetImagePixelCacheType(destination)" identifier = (call_expression "GetImagePixelCacheType(destination)" identifier (argument_list "(destination)" ( identifier )))) , (binary_expression "CVar3 == MemoryCache ||\n      (CVar3 = GetImagePixelCacheType(destination), CVar3 == MapCache)" (binary_expression "CVar3 == MemoryCache" identifier == identifier) || (parenthesized_expression "(CVar3 = GetImagePixelCacheType(destination), CVar3 == MapCache)" ( (comma_expression "CVar3 = GetImagePixelCacheType(destination), CVar3 == MapCache" (assignment_expression "CVar3 = GetImagePixelCacheType(destination)" identifier = (call_expression "GetImagePixelCacheType(destination)" identifier (argument_list "(destination)" ( identifier )))) , (binary_expression "CVar3 == MapCache" identifier == identifier)) )))) )) ))) )) (compound_statement "{\n    MVar6 = GetMagickResourceLimit(ThreadResource);\n    sVar5 = rows + 0x3f;\n    if (-1 < (int)rows) {\n      sVar5 = rows;\n    }\n    iVar4 = (int)sVar5 >> 6;\n    bVar1 = 0x7f < (int)rows;\n    if ((int)MVar6 < iVar4) {\n      MVar6 = GetMagickResourceLimit(ThreadResource);\n      bVar1 = 1 < (int)MVar6;\n    }\n    if (bVar1) {\n      MVar6 = GetMagickResourceLimit(ThreadResource);\n      if ((int)MVar6 < iVar4) {\n        MVar6 = GetMagickResourceLimit(ThreadResource);\n        iVar4 = (int)MVar6;\n      }\n      goto LAB_001a56ff;\n    }\nLAB_001a581c:\n    iVar4 = 1;\n  }" { (expression_statement "MVar6 = GetMagickResourceLimit(ThreadResource);" (assignment_expression "MVar6 = GetMagickResourceLimit(ThreadResource)" identifier = (call_expression "GetMagickResourceLimit(ThreadResource)" identifier (argument_list "(ThreadResource)" ( identifier )))) ;) (expression_statement "sVar5 = rows + 0x3f;" (assignment_expression "sVar5 = rows + 0x3f" identifier = (binary_expression "rows + 0x3f" identifier + number_literal)) ;) (if_statement "if (-1 < (int)rows) {\n      sVar5 = rows;\n    }" if (parenthesized_expression "(-1 < (int)rows)" ( (binary_expression "-1 < (int)rows" number_literal < (cast_expression "(int)rows" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      sVar5 = rows;\n    }" { (expression_statement "sVar5 = rows;" (assignment_expression "sVar5 = rows" identifier = identifier) ;) })) (expression_statement "iVar4 = (int)sVar5 >> 6;" (assignment_expression "iVar4 = (int)sVar5 >> 6" identifier = (binary_expression "(int)sVar5 >> 6" (cast_expression "(int)sVar5" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "bVar1 = 0x7f < (int)rows;" (assignment_expression "bVar1 = 0x7f < (int)rows" identifier = (binary_expression "0x7f < (int)rows" number_literal < (cast_expression "(int)rows" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)MVar6 < iVar4) {\n      MVar6 = GetMagickResourceLimit(ThreadResource);\n      bVar1 = 1 < (int)MVar6;\n    }" if (parenthesized_expression "((int)MVar6 < iVar4)" ( (binary_expression "(int)MVar6 < iVar4" (cast_expression "(int)MVar6" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) (compound_statement "{\n      MVar6 = GetMagickResourceLimit(ThreadResource);\n      bVar1 = 1 < (int)MVar6;\n    }" { (expression_statement "MVar6 = GetMagickResourceLimit(ThreadResource);" (assignment_expression "MVar6 = GetMagickResourceLimit(ThreadResource)" identifier = (call_expression "GetMagickResourceLimit(ThreadResource)" identifier (argument_list "(ThreadResource)" ( identifier )))) ;) (expression_statement "bVar1 = 1 < (int)MVar6;" (assignment_expression "bVar1 = 1 < (int)MVar6" identifier = (binary_expression "1 < (int)MVar6" number_literal < (cast_expression "(int)MVar6" ( (type_descriptor "int" primitive_type) ) identifier))) ;) })) (if_statement "if (bVar1) {\n      MVar6 = GetMagickResourceLimit(ThreadResource);\n      if ((int)MVar6 < iVar4) {\n        MVar6 = GetMagickResourceLimit(ThreadResource);\n        iVar4 = (int)MVar6;\n      }\n      goto LAB_001a56ff;\n    }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n      MVar6 = GetMagickResourceLimit(ThreadResource);\n      if ((int)MVar6 < iVar4) {\n        MVar6 = GetMagickResourceLimit(ThreadResource);\n        iVar4 = (int)MVar6;\n      }\n      goto LAB_001a56ff;\n    }" { (expression_statement "MVar6 = GetMagickResourceLimit(ThreadResource);" (assignment_expression "MVar6 = GetMagickResourceLimit(ThreadResource)" identifier = (call_expression "GetMagickResourceLimit(ThreadResource)" identifier (argument_list "(ThreadResource)" ( identifier )))) ;) (if_statement "if ((int)MVar6 < iVar4) {\n        MVar6 = GetMagickResourceLimit(ThreadResource);\n        iVar4 = (int)MVar6;\n      }" if (parenthesized_expression "((int)MVar6 < iVar4)" ( (binary_expression "(int)MVar6 < iVar4" (cast_expression "(int)MVar6" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) (compound_statement "{\n        MVar6 = GetMagickResourceLimit(ThreadResource);\n        iVar4 = (int)MVar6;\n      }" { (expression_statement "MVar6 = GetMagickResourceLimit(ThreadResource);" (assignment_expression "MVar6 = GetMagickResourceLimit(ThreadResource)" identifier = (call_expression "GetMagickResourceLimit(ThreadResource)" identifier (argument_list "(ThreadResource)" ( identifier )))) ;) (expression_statement "iVar4 = (int)MVar6;" (assignment_expression "iVar4 = (int)MVar6" identifier = (cast_expression "(int)MVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (goto_statement "goto LAB_001a56ff;" goto statement_identifier ;) })) (labeled_statement "LAB_001a581c:\n    iVar4 = 1;" statement_identifier : (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;)) }) (else_clause "else {\n    MVar6 = GetMagickResourceLimit(ThreadResource);\n    if (((int)(MVar6 >> 0x20) == 0) && ((uint)MVar6 < 2)) {\n      MVar6 = GetMagickResourceLimit(ThreadResource);\n      if (((int)(MVar6 >> 0x20) == 0) && ((uint)MVar6 < 2)) goto LAB_001a581c;\n    }\n    MVar6 = GetMagickResourceLimit(ThreadResource);\n    if (((int)(MVar6 >> 0x20) == 0) && ((uint)MVar6 < 2)) {\n      MVar6 = GetMagickResourceLimit(ThreadResource);\n      iVar4 = (int)MVar6;\n    }\n    else {\n      iVar4 = 2;\n    }\n  }" else (compound_statement "{\n    MVar6 = GetMagickResourceLimit(ThreadResource);\n    if (((int)(MVar6 >> 0x20) == 0) && ((uint)MVar6 < 2)) {\n      MVar6 = GetMagickResourceLimit(ThreadResource);\n      if (((int)(MVar6 >> 0x20) == 0) && ((uint)MVar6 < 2)) goto LAB_001a581c;\n    }\n    MVar6 = GetMagickResourceLimit(ThreadResource);\n    if (((int)(MVar6 >> 0x20) == 0) && ((uint)MVar6 < 2)) {\n      MVar6 = GetMagickResourceLimit(ThreadResource);\n      iVar4 = (int)MVar6;\n    }\n    else {\n      iVar4 = 2;\n    }\n  }" { (expression_statement "MVar6 = GetMagickResourceLimit(ThreadResource);" (assignment_expression "MVar6 = GetMagickResourceLimit(ThreadResource)" identifier = (call_expression "GetMagickResourceLimit(ThreadResource)" identifier (argument_list "(ThreadResource)" ( identifier )))) ;) (if_statement "if (((int)(MVar6 >> 0x20) == 0) && ((uint)MVar6 < 2)) {\n      MVar6 = GetMagickResourceLimit(ThreadResource);\n      if (((int)(MVar6 >> 0x20) == 0) && ((uint)MVar6 < 2)) goto LAB_001a581c;\n    }" if (parenthesized_expression "(((int)(MVar6 >> 0x20) == 0) && ((uint)MVar6 < 2))" ( (binary_expression "((int)(MVar6 >> 0x20) == 0) && ((uint)MVar6 < 2)" (parenthesized_expression "((int)(MVar6 >> 0x20) == 0)" ( (binary_expression "(int)(MVar6 >> 0x20) == 0" (cast_expression "(int)(MVar6 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(MVar6 >> 0x20)" ( (binary_expression "MVar6 >> 0x20" identifier >> number_literal) ))) == number_literal) )) && (parenthesized_expression "((uint)MVar6 < 2)" ( (binary_expression "(uint)MVar6 < 2" (cast_expression "(uint)MVar6" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) ))) )) (compound_statement "{\n      MVar6 = GetMagickResourceLimit(ThreadResource);\n      if (((int)(MVar6 >> 0x20) == 0) && ((uint)MVar6 < 2)) goto LAB_001a581c;\n    }" { (expression_statement "MVar6 = GetMagickResourceLimit(ThreadResource);" (assignment_expression "MVar6 = GetMagickResourceLimit(ThreadResource)" identifier = (call_expression "GetMagickResourceLimit(ThreadResource)" identifier (argument_list "(ThreadResource)" ( identifier )))) ;) (if_statement "if (((int)(MVar6 >> 0x20) == 0) && ((uint)MVar6 < 2)) goto LAB_001a581c;" if (parenthesized_expression "(((int)(MVar6 >> 0x20) == 0) && ((uint)MVar6 < 2))" ( (binary_expression "((int)(MVar6 >> 0x20) == 0) && ((uint)MVar6 < 2)" (parenthesized_expression "((int)(MVar6 >> 0x20) == 0)" ( (binary_expression "(int)(MVar6 >> 0x20) == 0" (cast_expression "(int)(MVar6 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(MVar6 >> 0x20)" ( (binary_expression "MVar6 >> 0x20" identifier >> number_literal) ))) == number_literal) )) && (parenthesized_expression "((uint)MVar6 < 2)" ( (binary_expression "(uint)MVar6 < 2" (cast_expression "(uint)MVar6" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) ))) )) (goto_statement "goto LAB_001a581c;" goto statement_identifier ;)) })) (expression_statement "MVar6 = GetMagickResourceLimit(ThreadResource);" (assignment_expression "MVar6 = GetMagickResourceLimit(ThreadResource)" identifier = (call_expression "GetMagickResourceLimit(ThreadResource)" identifier (argument_list "(ThreadResource)" ( identifier )))) ;) (if_statement "if (((int)(MVar6 >> 0x20) == 0) && ((uint)MVar6 < 2)) {\n      MVar6 = GetMagickResourceLimit(ThreadResource);\n      iVar4 = (int)MVar6;\n    }\n    else {\n      iVar4 = 2;\n    }" if (parenthesized_expression "(((int)(MVar6 >> 0x20) == 0) && ((uint)MVar6 < 2))" ( (binary_expression "((int)(MVar6 >> 0x20) == 0) && ((uint)MVar6 < 2)" (parenthesized_expression "((int)(MVar6 >> 0x20) == 0)" ( (binary_expression "(int)(MVar6 >> 0x20) == 0" (cast_expression "(int)(MVar6 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(MVar6 >> 0x20)" ( (binary_expression "MVar6 >> 0x20" identifier >> number_literal) ))) == number_literal) )) && (parenthesized_expression "((uint)MVar6 < 2)" ( (binary_expression "(uint)MVar6 < 2" (cast_expression "(uint)MVar6" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) ))) )) (compound_statement "{\n      MVar6 = GetMagickResourceLimit(ThreadResource);\n      iVar4 = (int)MVar6;\n    }" { (expression_statement "MVar6 = GetMagickResourceLimit(ThreadResource);" (assignment_expression "MVar6 = GetMagickResourceLimit(ThreadResource)" identifier = (call_expression "GetMagickResourceLimit(ThreadResource)" identifier (argument_list "(ThreadResource)" ( identifier )))) ;) (expression_statement "iVar4 = (int)MVar6;" (assignment_expression "iVar4 = (int)MVar6" identifier = (cast_expression "(int)MVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }) (else_clause "else {\n      iVar4 = 2;\n    }" else (compound_statement "{\n      iVar4 = 2;\n    }" { (expression_statement "iVar4 = 2;" (assignment_expression "iVar4 = 2" identifier = number_literal) ;) }))) }))) (labeled_statement "LAB_001a56ff:\n  local_30 = exception;" statement_identifier : (expression_statement "local_30 = exception;" (assignment_expression "local_30 = exception" identifier = identifier) ;)) (expression_statement "local_24 = MagickTrue;" (assignment_expression "local_24 = MagickTrue" identifier = identifier) ;) (expression_statement "local_44 = rows;" (assignment_expression "local_44 = rows" identifier = identifier) ;) (expression_statement "local_34 = dy;" (assignment_expression "local_34 = dy" identifier = identifier) ;) (expression_statement "local_38 = dx;" (assignment_expression "local_38 = dx" identifier = identifier) ;) (expression_statement "local_3c = sy;" (assignment_expression "local_3c = sy" identifier = identifier) ;) (expression_statement "local_40 = sx;" (assignment_expression "local_40 = sx" identifier = identifier) ;) (expression_statement "local_50 = destination;" (assignment_expression "local_50 = destination" identifier = identifier) ;) (expression_statement "local_4c = source;" (assignment_expression "local_4c = source" identifier = identifier) ;) (expression_statement "local_48 = columns;" (assignment_expression "local_48 = columns" identifier = identifier) ;) (expression_statement "local_2c = cache_view;" (assignment_expression "local_2c = cache_view" identifier = identifier) ;) (expression_statement "local_28 = cache_view_00;" (assignment_expression "local_28 = cache_view_00" identifier = identifier) ;) (expression_statement "GOMP_parallel(CopyImageRegion__omp_fn_6,&local_50,iVar4,0);" (call_expression "GOMP_parallel(CopyImageRegion__omp_fn_6,&local_50,iVar4,0)" identifier (argument_list "(CopyImageRegion__omp_fn_6,&local_50,iVar4,0)" ( identifier , (pointer_expression "&local_50" & identifier) , identifier , number_literal ))) ;) (expression_statement "MVar2 = local_24;" (assignment_expression "MVar2 = local_24" identifier = identifier) ;) (expression_statement "DestroyCacheView(cache_view_00);" (call_expression "DestroyCacheView(cache_view_00)" identifier (argument_list "(cache_view_00)" ( identifier ))) ;) (expression_statement "DestroyCacheView(cache_view);" (call_expression "DestroyCacheView(cache_view)" identifier (argument_list "(cache_view)" ( identifier ))) ;) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" { comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return MVar2;" return identifier ;) })))
(translation_unit "undefined4 __regparm3\nFUN_001a5660(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4,undefined4 param_5\n            ,undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 param_9)\n\n{\n  bool bVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int iVar6;\n  int in_GS_OFFSET;\n  undefined8 uVar7;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  int local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1a566d;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar3 = AcquireVirtualCacheView(param_2,param_9);\n  uVar4 = AcquireAuthenticCacheView(param_1,param_9);\n  iVar5 = GetImagePixelCacheType(param_2);\n  if (((iVar5 == 4) || (iVar5 = GetImagePixelCacheType(param_2), iVar5 == 3)) &&\n     ((iVar5 = GetImagePixelCacheType(param_1), iVar5 == 4 ||\n      (iVar5 = GetImagePixelCacheType(param_1), iVar5 == 3)))) {\n    iVar6 = GetMagickResourceLimit(7);\n    iVar5 = param_4 + 0x3f;\n    if (-1 < param_4) {\n      iVar5 = param_4;\n    }\n    iVar5 = iVar5 >> 6;\n    bVar1 = 0x7f < param_4;\n    if (iVar6 < iVar5) {\n      iVar6 = GetMagickResourceLimit(7);\n      bVar1 = 1 < iVar6;\n    }\n    if (bVar1) {\n      iVar6 = GetMagickResourceLimit(7);\n      if (iVar6 < iVar5) {\n        iVar5 = GetMagickResourceLimit(7);\n      }\n      goto LAB_001a56ff;\n    }\nLAB_001a581c:\n    iVar5 = 1;\n  }\n  else {\n    uVar7 = GetMagickResourceLimit(7);\n    if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) {\n      uVar7 = GetMagickResourceLimit(7);\n      if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) goto LAB_001a581c;\n    }\n    uVar7 = GetMagickResourceLimit(7);\n    if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) {\n      iVar5 = GetMagickResourceLimit(7);\n    }\n    else {\n      iVar5 = 2;\n    }\n  }\nLAB_001a56ff:\n  local_30 = param_9;\n  local_24 = 1;\n  local_44 = param_4;\n  local_34 = param_8;\n  local_38 = param_7;\n  local_3c = param_6;\n  local_40 = param_5;\n  local_50 = param_1;\n  local_4c = param_2;\n  local_48 = param_3;\n  local_2c = uVar3;\n  local_28 = uVar4;\n  GOMP_parallel(FUN_001a43e0,&local_50,iVar5,0);\n  uVar2 = local_24;\n  DestroyCacheView(uVar4);\n  DestroyCacheView(uVar3);\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0029eab0();\n  }\n  return uVar2;\n}\n\n" (function_definition "undefined4 __regparm3\nFUN_001a5660(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4,undefined4 param_5\n            ,undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 param_9)\n\n{\n  bool bVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int iVar6;\n  int in_GS_OFFSET;\n  undefined8 uVar7;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  int local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1a566d;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar3 = AcquireVirtualCacheView(param_2,param_9);\n  uVar4 = AcquireAuthenticCacheView(param_1,param_9);\n  iVar5 = GetImagePixelCacheType(param_2);\n  if (((iVar5 == 4) || (iVar5 = GetImagePixelCacheType(param_2), iVar5 == 3)) &&\n     ((iVar5 = GetImagePixelCacheType(param_1), iVar5 == 4 ||\n      (iVar5 = GetImagePixelCacheType(param_1), iVar5 == 3)))) {\n    iVar6 = GetMagickResourceLimit(7);\n    iVar5 = param_4 + 0x3f;\n    if (-1 < param_4) {\n      iVar5 = param_4;\n    }\n    iVar5 = iVar5 >> 6;\n    bVar1 = 0x7f < param_4;\n    if (iVar6 < iVar5) {\n      iVar6 = GetMagickResourceLimit(7);\n      bVar1 = 1 < iVar6;\n    }\n    if (bVar1) {\n      iVar6 = GetMagickResourceLimit(7);\n      if (iVar6 < iVar5) {\n        iVar5 = GetMagickResourceLimit(7);\n      }\n      goto LAB_001a56ff;\n    }\nLAB_001a581c:\n    iVar5 = 1;\n  }\n  else {\n    uVar7 = GetMagickResourceLimit(7);\n    if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) {\n      uVar7 = GetMagickResourceLimit(7);\n      if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) goto LAB_001a581c;\n    }\n    uVar7 = GetMagickResourceLimit(7);\n    if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) {\n      iVar5 = GetMagickResourceLimit(7);\n    }\n    else {\n      iVar5 = 2;\n    }\n  }\nLAB_001a56ff:\n  local_30 = param_9;\n  local_24 = 1;\n  local_44 = param_4;\n  local_34 = param_8;\n  local_38 = param_7;\n  local_3c = param_6;\n  local_40 = param_5;\n  local_50 = param_1;\n  local_4c = param_2;\n  local_48 = param_3;\n  local_2c = uVar3;\n  local_28 = uVar4;\n  GOMP_parallel(FUN_001a43e0,&local_50,iVar5,0);\n  uVar2 = local_24;\n  DestroyCacheView(uVar4);\n  DestroyCacheView(uVar3);\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0029eab0();\n  }\n  return uVar2;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_001a5660(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4,undefined4 param_5\n            ,undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 param_9)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4,undefined4 param_5\n            ,undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 param_9)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "undefined4 param_6" type_identifier identifier) , (parameter_declaration "undefined4 param_7" type_identifier identifier) , (parameter_declaration "undefined4 param_8" type_identifier identifier) , (parameter_declaration "undefined4 param_9" type_identifier identifier) ))) (compound_statement "{\n  bool bVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int iVar6;\n  int in_GS_OFFSET;\n  undefined8 uVar7;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  int local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1a566d;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar3 = AcquireVirtualCacheView(param_2,param_9);\n  uVar4 = AcquireAuthenticCacheView(param_1,param_9);\n  iVar5 = GetImagePixelCacheType(param_2);\n  if (((iVar5 == 4) || (iVar5 = GetImagePixelCacheType(param_2), iVar5 == 3)) &&\n     ((iVar5 = GetImagePixelCacheType(param_1), iVar5 == 4 ||\n      (iVar5 = GetImagePixelCacheType(param_1), iVar5 == 3)))) {\n    iVar6 = GetMagickResourceLimit(7);\n    iVar5 = param_4 + 0x3f;\n    if (-1 < param_4) {\n      iVar5 = param_4;\n    }\n    iVar5 = iVar5 >> 6;\n    bVar1 = 0x7f < param_4;\n    if (iVar6 < iVar5) {\n      iVar6 = GetMagickResourceLimit(7);\n      bVar1 = 1 < iVar6;\n    }\n    if (bVar1) {\n      iVar6 = GetMagickResourceLimit(7);\n      if (iVar6 < iVar5) {\n        iVar5 = GetMagickResourceLimit(7);\n      }\n      goto LAB_001a56ff;\n    }\nLAB_001a581c:\n    iVar5 = 1;\n  }\n  else {\n    uVar7 = GetMagickResourceLimit(7);\n    if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) {\n      uVar7 = GetMagickResourceLimit(7);\n      if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) goto LAB_001a581c;\n    }\n    uVar7 = GetMagickResourceLimit(7);\n    if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) {\n      iVar5 = GetMagickResourceLimit(7);\n    }\n    else {\n      iVar5 = 2;\n    }\n  }\nLAB_001a56ff:\n  local_30 = param_9;\n  local_24 = 1;\n  local_44 = param_4;\n  local_34 = param_8;\n  local_38 = param_7;\n  local_3c = param_6;\n  local_40 = param_5;\n  local_50 = param_1;\n  local_4c = param_2;\n  local_48 = param_3;\n  local_2c = uVar3;\n  local_28 = uVar4;\n  GOMP_parallel(FUN_001a43e0,&local_50,iVar5,0);\n  uVar2 = local_24;\n  DestroyCacheView(uVar4);\n  DestroyCacheView(uVar3);\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0029eab0();\n  }\n  return uVar2;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "undefined8 uVar7;" type_identifier identifier ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "int local_44;" primitive_type identifier ;) (declaration "undefined4 local_40;" type_identifier identifier ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x1a566d;" (assignment_expression "uStack_14 = 0x1a566d" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = AcquireVirtualCacheView(param_2,param_9);" (assignment_expression "uVar3 = AcquireVirtualCacheView(param_2,param_9)" identifier = (call_expression "AcquireVirtualCacheView(param_2,param_9)" identifier (argument_list "(param_2,param_9)" ( identifier , identifier )))) ;) (expression_statement "uVar4 = AcquireAuthenticCacheView(param_1,param_9);" (assignment_expression "uVar4 = AcquireAuthenticCacheView(param_1,param_9)" identifier = (call_expression "AcquireAuthenticCacheView(param_1,param_9)" identifier (argument_list "(param_1,param_9)" ( identifier , identifier )))) ;) (expression_statement "iVar5 = GetImagePixelCacheType(param_2);" (assignment_expression "iVar5 = GetImagePixelCacheType(param_2)" identifier = (call_expression "GetImagePixelCacheType(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (((iVar5 == 4) || (iVar5 = GetImagePixelCacheType(param_2), iVar5 == 3)) &&\n     ((iVar5 = GetImagePixelCacheType(param_1), iVar5 == 4 ||\n      (iVar5 = GetImagePixelCacheType(param_1), iVar5 == 3)))) {\n    iVar6 = GetMagickResourceLimit(7);\n    iVar5 = param_4 + 0x3f;\n    if (-1 < param_4) {\n      iVar5 = param_4;\n    }\n    iVar5 = iVar5 >> 6;\n    bVar1 = 0x7f < param_4;\n    if (iVar6 < iVar5) {\n      iVar6 = GetMagickResourceLimit(7);\n      bVar1 = 1 < iVar6;\n    }\n    if (bVar1) {\n      iVar6 = GetMagickResourceLimit(7);\n      if (iVar6 < iVar5) {\n        iVar5 = GetMagickResourceLimit(7);\n      }\n      goto LAB_001a56ff;\n    }\nLAB_001a581c:\n    iVar5 = 1;\n  }\n  else {\n    uVar7 = GetMagickResourceLimit(7);\n    if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) {\n      uVar7 = GetMagickResourceLimit(7);\n      if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) goto LAB_001a581c;\n    }\n    uVar7 = GetMagickResourceLimit(7);\n    if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) {\n      iVar5 = GetMagickResourceLimit(7);\n    }\n    else {\n      iVar5 = 2;\n    }\n  }" if (parenthesized_expression "(((iVar5 == 4) || (iVar5 = GetImagePixelCacheType(param_2), iVar5 == 3)) &&\n     ((iVar5 = GetImagePixelCacheType(param_1), iVar5 == 4 ||\n      (iVar5 = GetImagePixelCacheType(param_1), iVar5 == 3))))" ( (binary_expression "((iVar5 == 4) || (iVar5 = GetImagePixelCacheType(param_2), iVar5 == 3)) &&\n     ((iVar5 = GetImagePixelCacheType(param_1), iVar5 == 4 ||\n      (iVar5 = GetImagePixelCacheType(param_1), iVar5 == 3)))" (parenthesized_expression "((iVar5 == 4) || (iVar5 = GetImagePixelCacheType(param_2), iVar5 == 3))" ( (binary_expression "(iVar5 == 4) || (iVar5 = GetImagePixelCacheType(param_2), iVar5 == 3)" (parenthesized_expression "(iVar5 == 4)" ( (binary_expression "iVar5 == 4" identifier == number_literal) )) || (parenthesized_expression "(iVar5 = GetImagePixelCacheType(param_2), iVar5 == 3)" ( (comma_expression "iVar5 = GetImagePixelCacheType(param_2), iVar5 == 3" (assignment_expression "iVar5 = GetImagePixelCacheType(param_2)" identifier = (call_expression "GetImagePixelCacheType(param_2)" identifier (argument_list "(param_2)" ( identifier )))) , (binary_expression "iVar5 == 3" identifier == number_literal)) ))) )) && (parenthesized_expression "((iVar5 = GetImagePixelCacheType(param_1), iVar5 == 4 ||\n      (iVar5 = GetImagePixelCacheType(param_1), iVar5 == 3)))" ( (parenthesized_expression "(iVar5 = GetImagePixelCacheType(param_1), iVar5 == 4 ||\n      (iVar5 = GetImagePixelCacheType(param_1), iVar5 == 3))" ( (comma_expression "iVar5 = GetImagePixelCacheType(param_1), iVar5 == 4 ||\n      (iVar5 = GetImagePixelCacheType(param_1), iVar5 == 3)" (assignment_expression "iVar5 = GetImagePixelCacheType(param_1)" identifier = (call_expression "GetImagePixelCacheType(param_1)" identifier (argument_list "(param_1)" ( identifier )))) , (binary_expression "iVar5 == 4 ||\n      (iVar5 = GetImagePixelCacheType(param_1), iVar5 == 3)" (binary_expression "iVar5 == 4" identifier == number_literal) || (parenthesized_expression "(iVar5 = GetImagePixelCacheType(param_1), iVar5 == 3)" ( (comma_expression "iVar5 = GetImagePixelCacheType(param_1), iVar5 == 3" (assignment_expression "iVar5 = GetImagePixelCacheType(param_1)" identifier = (call_expression "GetImagePixelCacheType(param_1)" identifier (argument_list "(param_1)" ( identifier )))) , (binary_expression "iVar5 == 3" identifier == number_literal)) )))) )) ))) )) (compound_statement "{\n    iVar6 = GetMagickResourceLimit(7);\n    iVar5 = param_4 + 0x3f;\n    if (-1 < param_4) {\n      iVar5 = param_4;\n    }\n    iVar5 = iVar5 >> 6;\n    bVar1 = 0x7f < param_4;\n    if (iVar6 < iVar5) {\n      iVar6 = GetMagickResourceLimit(7);\n      bVar1 = 1 < iVar6;\n    }\n    if (bVar1) {\n      iVar6 = GetMagickResourceLimit(7);\n      if (iVar6 < iVar5) {\n        iVar5 = GetMagickResourceLimit(7);\n      }\n      goto LAB_001a56ff;\n    }\nLAB_001a581c:\n    iVar5 = 1;\n  }" { (expression_statement "iVar6 = GetMagickResourceLimit(7);" (assignment_expression "iVar6 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (expression_statement "iVar5 = param_4 + 0x3f;" (assignment_expression "iVar5 = param_4 + 0x3f" identifier = (binary_expression "param_4 + 0x3f" identifier + number_literal)) ;) (if_statement "if (-1 < param_4) {\n      iVar5 = param_4;\n    }" if (parenthesized_expression "(-1 < param_4)" ( (binary_expression "-1 < param_4" number_literal < identifier) )) (compound_statement "{\n      iVar5 = param_4;\n    }" { (expression_statement "iVar5 = param_4;" (assignment_expression "iVar5 = param_4" identifier = identifier) ;) })) (expression_statement "iVar5 = iVar5 >> 6;" (assignment_expression "iVar5 = iVar5 >> 6" identifier = (binary_expression "iVar5 >> 6" identifier >> number_literal)) ;) (expression_statement "bVar1 = 0x7f < param_4;" (assignment_expression "bVar1 = 0x7f < param_4" identifier = (binary_expression "0x7f < param_4" number_literal < identifier)) ;) (if_statement "if (iVar6 < iVar5) {\n      iVar6 = GetMagickResourceLimit(7);\n      bVar1 = 1 < iVar6;\n    }" if (parenthesized_expression "(iVar6 < iVar5)" ( (binary_expression "iVar6 < iVar5" identifier < identifier) )) (compound_statement "{\n      iVar6 = GetMagickResourceLimit(7);\n      bVar1 = 1 < iVar6;\n    }" { (expression_statement "iVar6 = GetMagickResourceLimit(7);" (assignment_expression "iVar6 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (expression_statement "bVar1 = 1 < iVar6;" (assignment_expression "bVar1 = 1 < iVar6" identifier = (binary_expression "1 < iVar6" number_literal < identifier)) ;) })) (if_statement "if (bVar1) {\n      iVar6 = GetMagickResourceLimit(7);\n      if (iVar6 < iVar5) {\n        iVar5 = GetMagickResourceLimit(7);\n      }\n      goto LAB_001a56ff;\n    }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n      iVar6 = GetMagickResourceLimit(7);\n      if (iVar6 < iVar5) {\n        iVar5 = GetMagickResourceLimit(7);\n      }\n      goto LAB_001a56ff;\n    }" { (expression_statement "iVar6 = GetMagickResourceLimit(7);" (assignment_expression "iVar6 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (if_statement "if (iVar6 < iVar5) {\n        iVar5 = GetMagickResourceLimit(7);\n      }" if (parenthesized_expression "(iVar6 < iVar5)" ( (binary_expression "iVar6 < iVar5" identifier < identifier) )) (compound_statement "{\n        iVar5 = GetMagickResourceLimit(7);\n      }" { (expression_statement "iVar5 = GetMagickResourceLimit(7);" (assignment_expression "iVar5 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) })) (goto_statement "goto LAB_001a56ff;" goto statement_identifier ;) })) (labeled_statement "LAB_001a581c:\n    iVar5 = 1;" statement_identifier : (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;)) }) (else_clause "else {\n    uVar7 = GetMagickResourceLimit(7);\n    if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) {\n      uVar7 = GetMagickResourceLimit(7);\n      if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) goto LAB_001a581c;\n    }\n    uVar7 = GetMagickResourceLimit(7);\n    if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) {\n      iVar5 = GetMagickResourceLimit(7);\n    }\n    else {\n      iVar5 = 2;\n    }\n  }" else (compound_statement "{\n    uVar7 = GetMagickResourceLimit(7);\n    if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) {\n      uVar7 = GetMagickResourceLimit(7);\n      if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) goto LAB_001a581c;\n    }\n    uVar7 = GetMagickResourceLimit(7);\n    if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) {\n      iVar5 = GetMagickResourceLimit(7);\n    }\n    else {\n      iVar5 = 2;\n    }\n  }" { (expression_statement "uVar7 = GetMagickResourceLimit(7);" (assignment_expression "uVar7 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (if_statement "if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) {\n      uVar7 = GetMagickResourceLimit(7);\n      if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) goto LAB_001a581c;\n    }" if (parenthesized_expression "(((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2))" ( (binary_expression "((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)" (parenthesized_expression "((int)((ulonglong)uVar7 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar7 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar7 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar7 >> 0x20)" ( (binary_expression "(ulonglong)uVar7 >> 0x20" (cast_expression "(ulonglong)uVar7" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) && (parenthesized_expression "((uint)uVar7 < 2)" ( (binary_expression "(uint)uVar7 < 2" (cast_expression "(uint)uVar7" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) ))) )) (compound_statement "{\n      uVar7 = GetMagickResourceLimit(7);\n      if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) goto LAB_001a581c;\n    }" { (expression_statement "uVar7 = GetMagickResourceLimit(7);" (assignment_expression "uVar7 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (if_statement "if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) goto LAB_001a581c;" if (parenthesized_expression "(((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2))" ( (binary_expression "((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)" (parenthesized_expression "((int)((ulonglong)uVar7 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar7 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar7 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar7 >> 0x20)" ( (binary_expression "(ulonglong)uVar7 >> 0x20" (cast_expression "(ulonglong)uVar7" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) && (parenthesized_expression "((uint)uVar7 < 2)" ( (binary_expression "(uint)uVar7 < 2" (cast_expression "(uint)uVar7" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) ))) )) (goto_statement "goto LAB_001a581c;" goto statement_identifier ;)) })) (expression_statement "uVar7 = GetMagickResourceLimit(7);" (assignment_expression "uVar7 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (if_statement "if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) {\n      iVar5 = GetMagickResourceLimit(7);\n    }\n    else {\n      iVar5 = 2;\n    }" if (parenthesized_expression "(((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2))" ( (binary_expression "((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)" (parenthesized_expression "((int)((ulonglong)uVar7 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar7 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar7 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar7 >> 0x20)" ( (binary_expression "(ulonglong)uVar7 >> 0x20" (cast_expression "(ulonglong)uVar7" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) && (parenthesized_expression "((uint)uVar7 < 2)" ( (binary_expression "(uint)uVar7 < 2" (cast_expression "(uint)uVar7" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) ))) )) (compound_statement "{\n      iVar5 = GetMagickResourceLimit(7);\n    }" { (expression_statement "iVar5 = GetMagickResourceLimit(7);" (assignment_expression "iVar5 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) }) (else_clause "else {\n      iVar5 = 2;\n    }" else (compound_statement "{\n      iVar5 = 2;\n    }" { (expression_statement "iVar5 = 2;" (assignment_expression "iVar5 = 2" identifier = number_literal) ;) }))) }))) (labeled_statement "LAB_001a56ff:\n  local_30 = param_9;" statement_identifier : (expression_statement "local_30 = param_9;" (assignment_expression "local_30 = param_9" identifier = identifier) ;)) (expression_statement "local_24 = 1;" (assignment_expression "local_24 = 1" identifier = number_literal) ;) (expression_statement "local_44 = param_4;" (assignment_expression "local_44 = param_4" identifier = identifier) ;) (expression_statement "local_34 = param_8;" (assignment_expression "local_34 = param_8" identifier = identifier) ;) (expression_statement "local_38 = param_7;" (assignment_expression "local_38 = param_7" identifier = identifier) ;) (expression_statement "local_3c = param_6;" (assignment_expression "local_3c = param_6" identifier = identifier) ;) (expression_statement "local_40 = param_5;" (assignment_expression "local_40 = param_5" identifier = identifier) ;) (expression_statement "local_50 = param_1;" (assignment_expression "local_50 = param_1" identifier = identifier) ;) (expression_statement "local_4c = param_2;" (assignment_expression "local_4c = param_2" identifier = identifier) ;) (expression_statement "local_48 = param_3;" (assignment_expression "local_48 = param_3" identifier = identifier) ;) (expression_statement "local_2c = uVar3;" (assignment_expression "local_2c = uVar3" identifier = identifier) ;) (expression_statement "local_28 = uVar4;" (assignment_expression "local_28 = uVar4" identifier = identifier) ;) (expression_statement "GOMP_parallel(FUN_001a43e0,&local_50,iVar5,0);" (call_expression "GOMP_parallel(FUN_001a43e0,&local_50,iVar5,0)" identifier (argument_list "(FUN_001a43e0,&local_50,iVar5,0)" ( identifier , (pointer_expression "&local_50" & identifier) , identifier , number_literal ))) ;) (expression_statement "uVar2 = local_24;" (assignment_expression "uVar2 = local_24" identifier = identifier) ;) (expression_statement "DestroyCacheView(uVar4);" (call_expression "DestroyCacheView(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "DestroyCacheView(uVar3);" (call_expression "DestroyCacheView(uVar3)" identifier (argument_list "(uVar3)" ( identifier ))) ;) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0029eab0();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n    FUN_0029eab0();\n  }" { (expression_statement "FUN_0029eab0();" (call_expression "FUN_0029eab0()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return uVar2;" return identifier ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (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 = (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)) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT < IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT < IDENT)) ;) })) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) == LIT) )) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) == LIT) )) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) ))) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) == LIT) )) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = 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 (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (return_statement return IDENT ;) })))
(function_definition "undefined4 __regparm3\nFUN_001a5660(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4,undefined4 param_5\n            ,undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 param_9)\n\n{\n  bool bVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int iVar6;\n  int in_GS_OFFSET;\n  undefined8 uVar7;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  int local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1a566d;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar3 = AcquireVirtualCacheView(param_2,param_9);\n  uVar4 = AcquireAuthenticCacheView(param_1,param_9);\n  iVar5 = GetImagePixelCacheType(param_2);\n  if (((iVar5 == 4) || (iVar5 = GetImagePixelCacheType(param_2), iVar5 == 3)) &&\n     ((iVar5 = GetImagePixelCacheType(param_1), iVar5 == 4 ||\n      (iVar5 = GetImagePixelCacheType(param_1), iVar5 == 3)))) {\n    iVar6 = GetMagickResourceLimit(7);\n    iVar5 = param_4 + 0x3f;\n    if (-1 < param_4) {\n      iVar5 = param_4;\n    }\n    iVar5 = iVar5 >> 6;\n    bVar1 = 0x7f < param_4;\n    if (iVar6 < iVar5) {\n      iVar6 = GetMagickResourceLimit(7);\n      bVar1 = 1 < iVar6;\n    }\n    if (bVar1) {\n      iVar6 = GetMagickResourceLimit(7);\n      if (iVar6 < iVar5) {\n        iVar5 = GetMagickResourceLimit(7);\n      }\n      goto LAB_001a56ff;\n    }\nLAB_001a581c:\n    iVar5 = 1;\n  }\n  else {\n    uVar7 = GetMagickResourceLimit(7);\n    if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) {\n      uVar7 = GetMagickResourceLimit(7);\n      if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) goto LAB_001a581c;\n    }\n    uVar7 = GetMagickResourceLimit(7);\n    if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) {\n      iVar5 = GetMagickResourceLimit(7);\n    }\n    else {\n      iVar5 = 2;\n    }\n  }\nLAB_001a56ff:\n  local_30 = param_9;\n  local_24 = 1;\n  local_44 = param_4;\n  local_34 = param_8;\n  local_38 = param_7;\n  local_3c = param_6;\n  local_40 = param_5;\n  local_50 = param_1;\n  local_4c = param_2;\n  local_48 = param_3;\n  local_2c = uVar3;\n  local_28 = uVar4;\n  GOMP_parallel(FUN_001a43e0,&local_50,iVar5,0);\n  uVar2 = local_24;\n  DestroyCacheView(uVar4);\n  DestroyCacheView(uVar3);\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0029eab0();\n  }\n  return uVar2;\n}" (type_identifier "undefined4") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_001a5660(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4,undefined4 param_5\n            ,undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 param_9)" (identifier "FUN_001a5660") (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4,undefined4 param_5\n            ,undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 param_9)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) (, ",") (parameter_declaration "undefined4 param_5" (type_identifier "undefined4") (identifier "param_5")) (, ",") (parameter_declaration "undefined4 param_6" (type_identifier "undefined4") (identifier "param_6")) (, ",") (parameter_declaration "undefined4 param_7" (type_identifier "undefined4") (identifier "param_7")) (, ",") (parameter_declaration "undefined4 param_8" (type_identifier "undefined4") (identifier "param_8")) (, ",") (parameter_declaration "undefined4 param_9" (type_identifier "undefined4") (identifier "param_9")) () ")"))) (compound_statement "{\n  bool bVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int iVar6;\n  int in_GS_OFFSET;\n  undefined8 uVar7;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  int local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1a566d;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar3 = AcquireVirtualCacheView(param_2,param_9);\n  uVar4 = AcquireAuthenticCacheView(param_1,param_9);\n  iVar5 = GetImagePixelCacheType(param_2);\n  if (((iVar5 == 4) || (iVar5 = GetImagePixelCacheType(param_2), iVar5 == 3)) &&\n     ((iVar5 = GetImagePixelCacheType(param_1), iVar5 == 4 ||\n      (iVar5 = GetImagePixelCacheType(param_1), iVar5 == 3)))) {\n    iVar6 = GetMagickResourceLimit(7);\n    iVar5 = param_4 + 0x3f;\n    if (-1 < param_4) {\n      iVar5 = param_4;\n    }\n    iVar5 = iVar5 >> 6;\n    bVar1 = 0x7f < param_4;\n    if (iVar6 < iVar5) {\n      iVar6 = GetMagickResourceLimit(7);\n      bVar1 = 1 < iVar6;\n    }\n    if (bVar1) {\n      iVar6 = GetMagickResourceLimit(7);\n      if (iVar6 < iVar5) {\n        iVar5 = GetMagickResourceLimit(7);\n      }\n      goto LAB_001a56ff;\n    }\nLAB_001a581c:\n    iVar5 = 1;\n  }\n  else {\n    uVar7 = GetMagickResourceLimit(7);\n    if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) {\n      uVar7 = GetMagickResourceLimit(7);\n      if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) goto LAB_001a581c;\n    }\n    uVar7 = GetMagickResourceLimit(7);\n    if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) {\n      iVar5 = GetMagickResourceLimit(7);\n    }\n    else {\n      iVar5 = 2;\n    }\n  }\nLAB_001a56ff:\n  local_30 = param_9;\n  local_24 = 1;\n  local_44 = param_4;\n  local_34 = param_8;\n  local_38 = param_7;\n  local_3c = param_6;\n  local_40 = param_5;\n  local_50 = param_1;\n  local_4c = param_2;\n  local_48 = param_3;\n  local_2c = uVar3;\n  local_28 = uVar4;\n  GOMP_parallel(FUN_001a43e0,&local_50,iVar5,0);\n  uVar2 = local_24;\n  DestroyCacheView(uVar4);\n  DestroyCacheView(uVar3);\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0029eab0();\n  }\n  return uVar2;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "undefined8 uVar7;" (type_identifier "undefined8") (identifier "uVar7") (; ";")) (declaration "undefined4 local_50;" (type_identifier "undefined4") (identifier "local_50") (; ";")) (declaration "undefined4 local_4c;" (type_identifier "undefined4") (identifier "local_4c") (; ";")) (declaration "undefined4 local_48;" (type_identifier "undefined4") (identifier "local_48") (; ";")) (declaration "int local_44;" (primitive_type "int") (identifier "local_44") (; ";")) (declaration "undefined4 local_40;" (type_identifier "undefined4") (identifier "local_40") (; ";")) (declaration "undefined4 local_3c;" (type_identifier "undefined4") (identifier "local_3c") (; ";")) (declaration "undefined4 local_38;" (type_identifier "undefined4") (identifier "local_38") (; ";")) (declaration "undefined4 local_34;" (type_identifier "undefined4") (identifier "local_34") (; ";")) (declaration "undefined4 local_30;" (type_identifier "undefined4") (identifier "local_30") (; ";")) (declaration "undefined4 local_2c;" (type_identifier "undefined4") (identifier "local_2c") (; ";")) (declaration "undefined4 local_28;" (type_identifier "undefined4") (identifier "local_28") (; ";")) (declaration "undefined4 local_24;" (type_identifier "undefined4") (identifier "local_24") (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x1a566d;" (assignment_expression "uStack_14 = 0x1a566d" (identifier "uStack_14") (= "=") (number_literal "0x1a566d")) (; ";")) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "uVar3 = AcquireVirtualCacheView(param_2,param_9);" (assignment_expression "uVar3 = AcquireVirtualCacheView(param_2,param_9)" (identifier "uVar3") (= "=") (call_expression "AcquireVirtualCacheView(param_2,param_9)" (identifier "AcquireVirtualCacheView") (argument_list "(param_2,param_9)" (( "(") (identifier "param_2") (, ",") (identifier "param_9") () ")")))) (; ";")) (expression_statement "uVar4 = AcquireAuthenticCacheView(param_1,param_9);" (assignment_expression "uVar4 = AcquireAuthenticCacheView(param_1,param_9)" (identifier "uVar4") (= "=") (call_expression "AcquireAuthenticCacheView(param_1,param_9)" (identifier "AcquireAuthenticCacheView") (argument_list "(param_1,param_9)" (( "(") (identifier "param_1") (, ",") (identifier "param_9") () ")")))) (; ";")) (expression_statement "iVar5 = GetImagePixelCacheType(param_2);" (assignment_expression "iVar5 = GetImagePixelCacheType(param_2)" (identifier "iVar5") (= "=") (call_expression "GetImagePixelCacheType(param_2)" (identifier "GetImagePixelCacheType") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (((iVar5 == 4) || (iVar5 = GetImagePixelCacheType(param_2), iVar5 == 3)) &&\n     ((iVar5 = GetImagePixelCacheType(param_1), iVar5 == 4 ||\n      (iVar5 = GetImagePixelCacheType(param_1), iVar5 == 3)))) {\n    iVar6 = GetMagickResourceLimit(7);\n    iVar5 = param_4 + 0x3f;\n    if (-1 < param_4) {\n      iVar5 = param_4;\n    }\n    iVar5 = iVar5 >> 6;\n    bVar1 = 0x7f < param_4;\n    if (iVar6 < iVar5) {\n      iVar6 = GetMagickResourceLimit(7);\n      bVar1 = 1 < iVar6;\n    }\n    if (bVar1) {\n      iVar6 = GetMagickResourceLimit(7);\n      if (iVar6 < iVar5) {\n        iVar5 = GetMagickResourceLimit(7);\n      }\n      goto LAB_001a56ff;\n    }\nLAB_001a581c:\n    iVar5 = 1;\n  }\n  else {\n    uVar7 = GetMagickResourceLimit(7);\n    if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) {\n      uVar7 = GetMagickResourceLimit(7);\n      if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) goto LAB_001a581c;\n    }\n    uVar7 = GetMagickResourceLimit(7);\n    if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) {\n      iVar5 = GetMagickResourceLimit(7);\n    }\n    else {\n      iVar5 = 2;\n    }\n  }" (if "if") (parenthesized_expression "(((iVar5 == 4) || (iVar5 = GetImagePixelCacheType(param_2), iVar5 == 3)) &&\n     ((iVar5 = GetImagePixelCacheType(param_1), iVar5 == 4 ||\n      (iVar5 = GetImagePixelCacheType(param_1), iVar5 == 3))))" (( "(") (binary_expression "((iVar5 == 4) || (iVar5 = GetImagePixelCacheType(param_2), iVar5 == 3)) &&\n     ((iVar5 = GetImagePixelCacheType(param_1), iVar5 == 4 ||\n      (iVar5 = GetImagePixelCacheType(param_1), iVar5 == 3)))" (parenthesized_expression "((iVar5 == 4) || (iVar5 = GetImagePixelCacheType(param_2), iVar5 == 3))" (( "(") (binary_expression "(iVar5 == 4) || (iVar5 = GetImagePixelCacheType(param_2), iVar5 == 3)" (parenthesized_expression "(iVar5 == 4)" (( "(") (binary_expression "iVar5 == 4" (identifier "iVar5") (== "==") (number_literal "4")) () ")")) (|| "||") (parenthesized_expression "(iVar5 = GetImagePixelCacheType(param_2), iVar5 == 3)" (( "(") (comma_expression "iVar5 = GetImagePixelCacheType(param_2), iVar5 == 3" (assignment_expression "iVar5 = GetImagePixelCacheType(param_2)" (identifier "iVar5") (= "=") (call_expression "GetImagePixelCacheType(param_2)" (identifier "GetImagePixelCacheType") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (, ",") (binary_expression "iVar5 == 3" (identifier "iVar5") (== "==") (number_literal "3"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((iVar5 = GetImagePixelCacheType(param_1), iVar5 == 4 ||\n      (iVar5 = GetImagePixelCacheType(param_1), iVar5 == 3)))" (( "(") (parenthesized_expression "(iVar5 = GetImagePixelCacheType(param_1), iVar5 == 4 ||\n      (iVar5 = GetImagePixelCacheType(param_1), iVar5 == 3))" (( "(") (comma_expression "iVar5 = GetImagePixelCacheType(param_1), iVar5 == 4 ||\n      (iVar5 = GetImagePixelCacheType(param_1), iVar5 == 3)" (assignment_expression "iVar5 = GetImagePixelCacheType(param_1)" (identifier "iVar5") (= "=") (call_expression "GetImagePixelCacheType(param_1)" (identifier "GetImagePixelCacheType") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (, ",") (binary_expression "iVar5 == 4 ||\n      (iVar5 = GetImagePixelCacheType(param_1), iVar5 == 3)" (binary_expression "iVar5 == 4" (identifier "iVar5") (== "==") (number_literal "4")) (|| "||") (parenthesized_expression "(iVar5 = GetImagePixelCacheType(param_1), iVar5 == 3)" (( "(") (comma_expression "iVar5 = GetImagePixelCacheType(param_1), iVar5 == 3" (assignment_expression "iVar5 = GetImagePixelCacheType(param_1)" (identifier "iVar5") (= "=") (call_expression "GetImagePixelCacheType(param_1)" (identifier "GetImagePixelCacheType") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (, ",") (binary_expression "iVar5 == 3" (identifier "iVar5") (== "==") (number_literal "3"))) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n    iVar6 = GetMagickResourceLimit(7);\n    iVar5 = param_4 + 0x3f;\n    if (-1 < param_4) {\n      iVar5 = param_4;\n    }\n    iVar5 = iVar5 >> 6;\n    bVar1 = 0x7f < param_4;\n    if (iVar6 < iVar5) {\n      iVar6 = GetMagickResourceLimit(7);\n      bVar1 = 1 < iVar6;\n    }\n    if (bVar1) {\n      iVar6 = GetMagickResourceLimit(7);\n      if (iVar6 < iVar5) {\n        iVar5 = GetMagickResourceLimit(7);\n      }\n      goto LAB_001a56ff;\n    }\nLAB_001a581c:\n    iVar5 = 1;\n  }" ({ "{") (expression_statement "iVar6 = GetMagickResourceLimit(7);" (assignment_expression "iVar6 = GetMagickResourceLimit(7)" (identifier "iVar6") (= "=") (call_expression "GetMagickResourceLimit(7)" (identifier "GetMagickResourceLimit") (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (expression_statement "iVar5 = param_4 + 0x3f;" (assignment_expression "iVar5 = param_4 + 0x3f" (identifier "iVar5") (= "=") (binary_expression "param_4 + 0x3f" (identifier "param_4") (+ "+") (number_literal "0x3f"))) (; ";")) (if_statement "if (-1 < param_4) {\n      iVar5 = param_4;\n    }" (if "if") (parenthesized_expression "(-1 < param_4)" (( "(") (binary_expression "-1 < param_4" (number_literal "-1") (< "<") (identifier "param_4")) () ")")) (compound_statement "{\n      iVar5 = param_4;\n    }" ({ "{") (expression_statement "iVar5 = param_4;" (assignment_expression "iVar5 = param_4" (identifier "iVar5") (= "=") (identifier "param_4")) (; ";")) (} "}"))) (expression_statement "iVar5 = iVar5 >> 6;" (assignment_expression "iVar5 = iVar5 >> 6" (identifier "iVar5") (= "=") (binary_expression "iVar5 >> 6" (identifier "iVar5") (>> ">>") (number_literal "6"))) (; ";")) (expression_statement "bVar1 = 0x7f < param_4;" (assignment_expression "bVar1 = 0x7f < param_4" (identifier "bVar1") (= "=") (binary_expression "0x7f < param_4" (number_literal "0x7f") (< "<") (identifier "param_4"))) (; ";")) (if_statement "if (iVar6 < iVar5) {\n      iVar6 = GetMagickResourceLimit(7);\n      bVar1 = 1 < iVar6;\n    }" (if "if") (parenthesized_expression "(iVar6 < iVar5)" (( "(") (binary_expression "iVar6 < iVar5" (identifier "iVar6") (< "<") (identifier "iVar5")) () ")")) (compound_statement "{\n      iVar6 = GetMagickResourceLimit(7);\n      bVar1 = 1 < iVar6;\n    }" ({ "{") (expression_statement "iVar6 = GetMagickResourceLimit(7);" (assignment_expression "iVar6 = GetMagickResourceLimit(7)" (identifier "iVar6") (= "=") (call_expression "GetMagickResourceLimit(7)" (identifier "GetMagickResourceLimit") (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (expression_statement "bVar1 = 1 < iVar6;" (assignment_expression "bVar1 = 1 < iVar6" (identifier "bVar1") (= "=") (binary_expression "1 < iVar6" (number_literal "1") (< "<") (identifier "iVar6"))) (; ";")) (} "}"))) (if_statement "if (bVar1) {\n      iVar6 = GetMagickResourceLimit(7);\n      if (iVar6 < iVar5) {\n        iVar5 = GetMagickResourceLimit(7);\n      }\n      goto LAB_001a56ff;\n    }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\n      iVar6 = GetMagickResourceLimit(7);\n      if (iVar6 < iVar5) {\n        iVar5 = GetMagickResourceLimit(7);\n      }\n      goto LAB_001a56ff;\n    }" ({ "{") (expression_statement "iVar6 = GetMagickResourceLimit(7);" (assignment_expression "iVar6 = GetMagickResourceLimit(7)" (identifier "iVar6") (= "=") (call_expression "GetMagickResourceLimit(7)" (identifier "GetMagickResourceLimit") (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (if_statement "if (iVar6 < iVar5) {\n        iVar5 = GetMagickResourceLimit(7);\n      }" (if "if") (parenthesized_expression "(iVar6 < iVar5)" (( "(") (binary_expression "iVar6 < iVar5" (identifier "iVar6") (< "<") (identifier "iVar5")) () ")")) (compound_statement "{\n        iVar5 = GetMagickResourceLimit(7);\n      }" ({ "{") (expression_statement "iVar5 = GetMagickResourceLimit(7);" (assignment_expression "iVar5 = GetMagickResourceLimit(7)" (identifier "iVar5") (= "=") (call_expression "GetMagickResourceLimit(7)" (identifier "GetMagickResourceLimit") (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (} "}"))) (goto_statement "goto LAB_001a56ff;" (goto "goto") (statement_identifier "LAB_001a56ff") (; ";")) (} "}"))) (labeled_statement "LAB_001a581c:\n    iVar5 = 1;" (statement_identifier "LAB_001a581c") (: ":") (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" (identifier "iVar5") (= "=") (number_literal "1")) (; ";"))) (} "}")) (else_clause "else {\n    uVar7 = GetMagickResourceLimit(7);\n    if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) {\n      uVar7 = GetMagickResourceLimit(7);\n      if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) goto LAB_001a581c;\n    }\n    uVar7 = GetMagickResourceLimit(7);\n    if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) {\n      iVar5 = GetMagickResourceLimit(7);\n    }\n    else {\n      iVar5 = 2;\n    }\n  }" (else "else") (compound_statement "{\n    uVar7 = GetMagickResourceLimit(7);\n    if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) {\n      uVar7 = GetMagickResourceLimit(7);\n      if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) goto LAB_001a581c;\n    }\n    uVar7 = GetMagickResourceLimit(7);\n    if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) {\n      iVar5 = GetMagickResourceLimit(7);\n    }\n    else {\n      iVar5 = 2;\n    }\n  }" ({ "{") (expression_statement "uVar7 = GetMagickResourceLimit(7);" (assignment_expression "uVar7 = GetMagickResourceLimit(7)" (identifier "uVar7") (= "=") (call_expression "GetMagickResourceLimit(7)" (identifier "GetMagickResourceLimit") (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (if_statement "if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) {\n      uVar7 = GetMagickResourceLimit(7);\n      if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) goto LAB_001a581c;\n    }" (if "if") (parenthesized_expression "(((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2))" (( "(") (binary_expression "((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)" (parenthesized_expression "((int)((ulonglong)uVar7 >> 0x20) == 0)" (( "(") (binary_expression "(int)((ulonglong)uVar7 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar7 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar7 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar7 >> 0x20" (cast_expression "(ulonglong)uVar7" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar7")) (>> ">>") (number_literal "0x20")) () ")"))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((uint)uVar7 < 2)" (( "(") (binary_expression "(uint)uVar7 < 2" (cast_expression "(uint)uVar7" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar7")) (< "<") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n      uVar7 = GetMagickResourceLimit(7);\n      if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) goto LAB_001a581c;\n    }" ({ "{") (expression_statement "uVar7 = GetMagickResourceLimit(7);" (assignment_expression "uVar7 = GetMagickResourceLimit(7)" (identifier "uVar7") (= "=") (call_expression "GetMagickResourceLimit(7)" (identifier "GetMagickResourceLimit") (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (if_statement "if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) goto LAB_001a581c;" (if "if") (parenthesized_expression "(((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2))" (( "(") (binary_expression "((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)" (parenthesized_expression "((int)((ulonglong)uVar7 >> 0x20) == 0)" (( "(") (binary_expression "(int)((ulonglong)uVar7 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar7 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar7 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar7 >> 0x20" (cast_expression "(ulonglong)uVar7" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar7")) (>> ">>") (number_literal "0x20")) () ")"))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((uint)uVar7 < 2)" (( "(") (binary_expression "(uint)uVar7 < 2" (cast_expression "(uint)uVar7" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar7")) (< "<") (number_literal "2")) () ")"))) () ")")) (goto_statement "goto LAB_001a581c;" (goto "goto") (statement_identifier "LAB_001a581c") (; ";"))) (} "}"))) (expression_statement "uVar7 = GetMagickResourceLimit(7);" (assignment_expression "uVar7 = GetMagickResourceLimit(7)" (identifier "uVar7") (= "=") (call_expression "GetMagickResourceLimit(7)" (identifier "GetMagickResourceLimit") (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (if_statement "if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) {\n      iVar5 = GetMagickResourceLimit(7);\n    }\n    else {\n      iVar5 = 2;\n    }" (if "if") (parenthesized_expression "(((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2))" (( "(") (binary_expression "((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)" (parenthesized_expression "((int)((ulonglong)uVar7 >> 0x20) == 0)" (( "(") (binary_expression "(int)((ulonglong)uVar7 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar7 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar7 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar7 >> 0x20" (cast_expression "(ulonglong)uVar7" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar7")) (>> ">>") (number_literal "0x20")) () ")"))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((uint)uVar7 < 2)" (( "(") (binary_expression "(uint)uVar7 < 2" (cast_expression "(uint)uVar7" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar7")) (< "<") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n      iVar5 = GetMagickResourceLimit(7);\n    }" ({ "{") (expression_statement "iVar5 = GetMagickResourceLimit(7);" (assignment_expression "iVar5 = GetMagickResourceLimit(7)" (identifier "iVar5") (= "=") (call_expression "GetMagickResourceLimit(7)" (identifier "GetMagickResourceLimit") (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (} "}")) (else_clause "else {\n      iVar5 = 2;\n    }" (else "else") (compound_statement "{\n      iVar5 = 2;\n    }" ({ "{") (expression_statement "iVar5 = 2;" (assignment_expression "iVar5 = 2" (identifier "iVar5") (= "=") (number_literal "2")) (; ";")) (} "}")))) (} "}")))) (labeled_statement "LAB_001a56ff:\n  local_30 = param_9;" (statement_identifier "LAB_001a56ff") (: ":") (expression_statement "local_30 = param_9;" (assignment_expression "local_30 = param_9" (identifier "local_30") (= "=") (identifier "param_9")) (; ";"))) (expression_statement "local_24 = 1;" (assignment_expression "local_24 = 1" (identifier "local_24") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_44 = param_4;" (assignment_expression "local_44 = param_4" (identifier "local_44") (= "=") (identifier "param_4")) (; ";")) (expression_statement "local_34 = param_8;" (assignment_expression "local_34 = param_8" (identifier "local_34") (= "=") (identifier "param_8")) (; ";")) (expression_statement "local_38 = param_7;" (assignment_expression "local_38 = param_7" (identifier "local_38") (= "=") (identifier "param_7")) (; ";")) (expression_statement "local_3c = param_6;" (assignment_expression "local_3c = param_6" (identifier "local_3c") (= "=") (identifier "param_6")) (; ";")) (expression_statement "local_40 = param_5;" (assignment_expression "local_40 = param_5" (identifier "local_40") (= "=") (identifier "param_5")) (; ";")) (expression_statement "local_50 = param_1;" (assignment_expression "local_50 = param_1" (identifier "local_50") (= "=") (identifier "param_1")) (; ";")) (expression_statement "local_4c = param_2;" (assignment_expression "local_4c = param_2" (identifier "local_4c") (= "=") (identifier "param_2")) (; ";")) (expression_statement "local_48 = param_3;" (assignment_expression "local_48 = param_3" (identifier "local_48") (= "=") (identifier "param_3")) (; ";")) (expression_statement "local_2c = uVar3;" (assignment_expression "local_2c = uVar3" (identifier "local_2c") (= "=") (identifier "uVar3")) (; ";")) (expression_statement "local_28 = uVar4;" (assignment_expression "local_28 = uVar4" (identifier "local_28") (= "=") (identifier "uVar4")) (; ";")) (expression_statement "GOMP_parallel(FUN_001a43e0,&local_50,iVar5,0);" (call_expression "GOMP_parallel(FUN_001a43e0,&local_50,iVar5,0)" (identifier "GOMP_parallel") (argument_list "(FUN_001a43e0,&local_50,iVar5,0)" (( "(") (identifier "FUN_001a43e0") (, ",") (pointer_expression "&local_50" (& "&") (identifier "local_50")) (, ",") (identifier "iVar5") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "uVar2 = local_24;" (assignment_expression "uVar2 = local_24" (identifier "uVar2") (= "=") (identifier "local_24")) (; ";")) (expression_statement "DestroyCacheView(uVar4);" (call_expression "DestroyCacheView(uVar4)" (identifier "DestroyCacheView") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")"))) (; ";")) (expression_statement "DestroyCacheView(uVar3);" (call_expression "DestroyCacheView(uVar3)" (identifier "DestroyCacheView") (argument_list "(uVar3)" (( "(") (identifier "uVar3") () ")"))) (; ";")) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0029eab0();\n  }" (if "if") (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (!= "!=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n                    \n    FUN_0029eab0();\n  }" ({ "{") (expression_statement "FUN_0029eab0();" (call_expression "FUN_0029eab0()" (identifier "FUN_0029eab0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return uVar2;" (return "return") (identifier "uVar2") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Enum "GravityType": Some values do not have unique names */
/* WARNING: Enum "DisposeType": Some values do not have unique names */
/* WARNING: Enum "ChannelType": Some values do not have unique names */
/* WARNING: Enum "PixelChannel": Some values do not have unique names */
/* WARNING: Enum "ExceptionType": Some values do not have unique names */

type_1 __regparm3
function_1(type_2 *destination,type_2 *source,size_t columns,size_t var_9,ssize_t sx,ssize_t sy,
               ssize_t dx,ssize_t dy,type_3 *exception)

{
  bool bVar1;
  type_1 MVar2;
  type_4 *cache_view;
  type_4 *cache_view_00;
  type_5 var_5;
  int var_10;
  size_t sVar5;
  int var_1;
  type_6 var_11;
  type_2 *local_50;
  type_2 *local_4c;
  size_t local_48;
  size_t local_44;
  ssize_t local_40;
  ssize_t local_3c;
  ssize_t local_38;
  ssize_t local_34;
  type_3 *local_30;
  type_4 *local_2c;
  type_4 *local_28;
  type_1 local_24;
  int var_14;
  type_7 uStack_14;
  
  uStack_14 = 0x1a566d;
  var_14 = *(int *)(var_1 + 0x14);
  cache_view = var_2(source,exception);
  cache_view_00 = var_3(destination,exception);
  var_5 = var_4(source);
  if (((var_5 == var_6) || (var_5 = var_4(source), var_5 == var_7)) &&
     ((var_5 = var_4(destination), var_5 == var_6 ||
      (var_5 = var_4(destination), var_5 == var_7)))) {
    var_11 = var_8(ThreadResource);
    sVar5 = var_9 + 0x3f;
    if (-1 < (int)var_9) {
      sVar5 = var_9;
    }
    var_10 = (int)sVar5 >> 6;
    bVar1 = 0x7f < (int)var_9;
    if ((int)var_11 < var_10) {
      var_11 = var_8(ThreadResource);
      bVar1 = 1 < (int)var_11;
    }
    if (bVar1) {
      var_11 = var_8(ThreadResource);
      if ((int)var_11 < var_10) {
        var_11 = var_8(ThreadResource);
        var_10 = (int)var_11;
      }
      goto LAB_001a56ff;
    }
LAB_001a581c:
    var_10 = 1;
  }
  else {
    var_11 = var_8(ThreadResource);
    if (((int)(var_11 >> 0x20) == 0) && ((type_8)var_11 < 2)) {
      var_11 = var_8(ThreadResource);
      if (((int)(var_11 >> 0x20) == 0) && ((type_8)var_11 < 2)) goto LAB_001a581c;
    }
    var_11 = var_8(ThreadResource);
    if (((int)(var_11 >> 0x20) == 0) && ((type_8)var_11 < 2)) {
      var_11 = var_8(ThreadResource);
      var_10 = (int)var_11;
    }
    else {
      var_10 = 2;
    }
  }
LAB_001a56ff:
  local_30 = exception;
  local_24 = MagickTrue;
  local_44 = var_9;
  local_34 = dy;
  local_38 = dx;
  local_3c = sy;
  local_40 = sx;
  local_50 = destination;
  local_4c = source;
  local_48 = columns;
  local_2c = cache_view;
  local_28 = cache_view_00;
  var_12(CopyImageRegion__omp_fn_6,&local_50,var_10,0);
  MVar2 = local_24;
  var_13(cache_view_00);
  var_13(cache_view);
  if (var_14 != *(int *)(var_1 + 0x14)) {
                    /* WARNING: Subroutine does not return */
    var_15();
  }
  return MVar2;
}


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

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

undefined4 __regparm3
MASKED(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4,undefined4 param_5
            ,undefined4 param_6,undefined4 param_7,undefined4 param_8,undefined4 param_9)

{
  bool bVar1;
  undefined4 uVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  int iVar5;
  int iVar6;
  int in_GS_OFFSET;
  undefined8 uVar7;
  undefined4 local_50;
  undefined4 local_4c;
  undefined4 local_48;
  int local_44;
  undefined4 local_40;
  undefined4 local_3c;
  undefined4 local_38;
  undefined4 local_34;
  undefined4 local_30;
  undefined4 local_2c;
  undefined4 local_28;
  undefined4 local_24;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x1a566d;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  uVar3 = AcquireVirtualCacheView(param_2,param_9);
  uVar4 = AcquireAuthenticCacheView(param_1,param_9);
  iVar5 = GetImagePixelCacheType(param_2);
  if (((iVar5 == 4) || (iVar5 = GetImagePixelCacheType(param_2), iVar5 == 3)) &&
     ((iVar5 = GetImagePixelCacheType(param_1), iVar5 == 4 ||
      (iVar5 = GetImagePixelCacheType(param_1), iVar5 == 3)))) {
    iVar6 = GetMagickResourceLimit(7);
    iVar5 = param_4 + 0x3f;
    if (-1 < param_4) {
      iVar5 = param_4;
    }
    iVar5 = iVar5 >> 6;
    bVar1 = 0x7f < param_4;
    if (iVar6 < iVar5) {
      iVar6 = GetMagickResourceLimit(7);
      bVar1 = 1 < iVar6;
    }
    if (bVar1) {
      iVar6 = GetMagickResourceLimit(7);
      if (iVar6 < iVar5) {
        iVar5 = GetMagickResourceLimit(7);
      }
      goto LAB_001a56ff;
    }
LAB_001a581c:
    iVar5 = 1;
  }
  else {
    uVar7 = GetMagickResourceLimit(7);
    if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) {
      uVar7 = GetMagickResourceLimit(7);
      if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) goto LAB_001a581c;
    }
    uVar7 = GetMagickResourceLimit(7);
    if (((int)((ulonglong)uVar7 >> 0x20) == 0) && ((uint)uVar7 < 2)) {
      iVar5 = GetMagickResourceLimit(7);
    }
    else {
      iVar5 = 2;
    }
  }
LAB_001a56ff:
  local_30 = param_9;
  local_24 = 1;
  local_44 = param_4;
  local_34 = param_8;
  local_38 = param_7;
  local_3c = param_6;
  local_40 = param_5;
  local_50 = param_1;
  local_4c = param_2;
  local_48 = param_3;
  local_2c = uVar3;
  local_28 = uVar4;
  GOMP_parallel(FUN_001a43e0,&local_50,iVar5,0);
  uVar2 = local_24;
  DestroyCacheView(uVar4);
  DestroyCacheView(uVar3);
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_0029eab0();
  }
  return uVar2;
}

