
/* 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 SetWandViewIterator(WandView *destination,SetWandViewMethod set,void *context)

{
  Image *pIVar1;
  size_t sVar2;
  bool bVar3;
  MagickBooleanType MVar4;
  int iVar5;
  ulong uVar6;
  long lVar7;
  long lVar8;
  long lVar9;
  long in_FS_OFFSET;
  MagickOffsetType progress;
  WandView *local_78;
  SetWandViewMethod local_70;
  void *local_68;
  Image *local_60;
  MagickOffsetType *local_58;
  MagickBooleanType local_50;
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  if (destination == (WandView *)0x0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("destination != (WandView *) NULL","MagickWand/wand-view.c",0x3ab,
                  "SetWandViewIterator");
  }
  if (destination->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("destination->signature == MagickWandSignature","MagickWand/wand-view.c",0x3ac,
                  "SetWandViewIterator");
  }
  MVar4 = MagickFalse;
  if (set == (SetWandViewMethod)0x0) goto LAB_0020c3bf;
  pIVar1 = destination->wand->images;
  MVar4 = SetImageStorageClass(pIVar1,1,destination->exception);
  if (MVar4 == MagickFalse) goto LAB_0020c3bf;
  progress = 0;
  sVar2 = (destination->extent).height;
  lVar8 = (destination->extent).y;
  iVar5 = GetImagePixelCacheType(pIVar1);
  if (((iVar5 == 4) || (iVar5 = GetImagePixelCacheType(pIVar1), iVar5 == 3)) &&
     ((iVar5 = GetImagePixelCacheType(pIVar1), iVar5 == 4 ||
      (iVar5 = GetImagePixelCacheType(pIVar1), iVar5 == 3)))) {
    lVar7 = GetMagickResourceLimit(7);
    lVar8 = sVar2 - lVar8;
    lVar9 = lVar8 + 0x3f;
    if (-1 < lVar8) {
      lVar9 = lVar8;
    }
    lVar9 = lVar9 >> 6;
    bVar3 = 0x7f < lVar8;
    if (lVar7 < lVar9) {
      lVar8 = GetMagickResourceLimit(7);
      bVar3 = 1 < lVar8;
    }
    lVar8 = 1;
    if ((bVar3) && (lVar7 = GetMagickResourceLimit(7), lVar8 = lVar9, lVar7 < lVar9)) {
      lVar8 = GetMagickResourceLimit(7);
    }
  }
  else {
    uVar6 = GetMagickResourceLimit(7);
    if (uVar6 < 2) {
      uVar6 = GetMagickResourceLimit(7);
      lVar8 = 1;
      if (uVar6 < 2) goto LAB_0020c47e;
    }
    uVar6 = GetMagickResourceLimit(7);
    lVar8 = 2;
    if (uVar6 < 2) {
      lVar8 = GetMagickResourceLimit(7);
    }
  }
LAB_0020c47e:
  local_58 = &progress;
  local_50 = MagickTrue;
  local_78 = destination;
  local_70 = set;
  local_68 = context;
  local_60 = pIVar1;
  GOMP_parallel(SetWandViewIterator__omp_fn_2,&local_78,lVar8,0);
  MVar4 = local_50;
LAB_0020c3bf:
  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return MVar4;
}



ulong SetWandViewIterator(long param_1,long param_2,undefined8 param_3)

{
  undefined8 uVar1;
  bool bVar2;
  int iVar3;
  ulong uVar4;
  long lVar5;
  long lVar6;
  long lVar7;
  long in_FS_OFFSET;
  undefined8 local_80;
  long local_78;
  long local_70;
  undefined8 local_68;
  undefined8 local_60;
  undefined8 *local_58;
  uint local_50;
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  if (param_1 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("destination != (WandView *) NULL","MagickWand/wand-view.c",0x3ab,
                  "SetWandViewIterator");
  }
  if (*(long *)(param_1 + 0x1060) != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("destination->signature == MagickWandSignature","MagickWand/wand-view.c",0x3ac,
                  "SetWandViewIterator");
  }
  uVar4 = 0;
  if (param_2 == 0) goto LAB_0020c3bf;
  uVar1 = *(undefined8 *)(*(long *)(param_1 + 0x1030) + 0x1008);
  uVar4 = SetImageStorageClass(uVar1,1,*(undefined8 *)(param_1 + 0x1050));
  if ((int)uVar4 == 0) goto LAB_0020c3bf;
  local_80 = 0;
  lVar6 = *(long *)(param_1 + 0x1018);
  lVar7 = *(long *)(param_1 + 0x1028);
  iVar3 = GetImagePixelCacheType(uVar1);
  if (((iVar3 == 4) || (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)) &&
     ((iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 4 ||
      (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)))) {
    lVar5 = GetMagickResourceLimit(7);
    lVar6 = lVar6 - lVar7;
    lVar7 = lVar6 + 0x3f;
    if (-1 < lVar6) {
      lVar7 = lVar6;
    }
    lVar7 = lVar7 >> 6;
    bVar2 = 0x7f < lVar6;
    if (lVar5 < lVar7) {
      lVar6 = GetMagickResourceLimit(7);
      bVar2 = 1 < lVar6;
    }
    lVar6 = 1;
    if ((bVar2) && (lVar5 = GetMagickResourceLimit(7), lVar6 = lVar7, lVar5 < lVar7)) {
      lVar6 = GetMagickResourceLimit(7);
    }
  }
  else {
    uVar4 = GetMagickResourceLimit(7);
    if (uVar4 < 2) {
      uVar4 = GetMagickResourceLimit(7);
      lVar6 = 1;
      if (uVar4 < 2) goto LAB_0020c47e;
    }
    uVar4 = GetMagickResourceLimit(7);
    lVar6 = 2;
    if (uVar4 < 2) {
      lVar6 = GetMagickResourceLimit(7);
    }
  }
LAB_0020c47e:
  local_58 = &local_80;
  local_50 = 1;
  local_78 = param_1;
  local_70 = param_2;
  local_68 = param_3;
  local_60 = uVar1;
  GOMP_parallel(FUN_0020ab0c,&local_78,lVar6,0);
  uVar4 = (ulong)local_50;
LAB_0020c3bf:
  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return uVar4;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x58
MOV RAX,qword ptr FS:[0x28]
MOV qword ptr [RSP + 0x48],RAX
XOR EAX,EAX
TEST RDI,RDI
JZ 0x0020c3e2
MOV RBX,RDI
MOV RBP,RSI
MOV R13,RDX
MOV EAX,0xabacadab
CMP qword ptr [RDI + 0x1060],RAX
JNZ 0x0020c401
MOV EAX,0x0
TEST RSI,RSI
JZ 0x0020c3bf
MOV RAX,qword ptr [RDI + 0x1030]
MOV R12,qword ptr [RAX + 0x1008]
MOV RDX,qword ptr [RDI + 0x1050]
MOV ESI,0x1
MOV RDI,R12
CALL 0x00111710
TEST EAX,EAX
JNZ 0x0020c420
MOV RCX,qword ptr [RSP + 0x48]
XOR RCX,qword ptr FS:[0x28]
JNZ 0x0020c584
ADD RSP,0x58
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
LEA RCX,[0x22b610]
MOV EDX,0x3ab
LEA RSI,[0x22b461]
LEA RDI,[0x22b570]
CALL 0x00111850
LEA RCX,[0x22b610]
MOV EDX,0x3ac
LEA RSI,[0x22b461]
LEA RDI,[0x22b598]
CALL 0x00111850
MOV qword ptr [RSP + 0x8],0x0
MOV R14,qword ptr [RBX + 0x1018]
MOV R15,qword ptr [RBX + 0x1028]
MOV RDI,R12
CALL 0x00111f90
CMP EAX,0x4
JZ 0x0020c4c3
MOV RDI,R12
CALL 0x00111f90
CMP EAX,0x3
JZ 0x0020c4c3
MOV EDI,0x7
CALL 0x00112850
CMP RAX,0x1
JBE 0x0020c541
MOV EDI,0x7
CALL 0x00112850
MOV EDX,0x2
CMP RAX,0x1
JBE 0x0020c55f
MOV qword ptr [RSP + 0x28],R12
MOV qword ptr [RSP + 0x20],R13
MOV qword ptr [RSP + 0x18],RBP
MOV qword ptr [RSP + 0x10],RBX
LEA RAX,[RSP + 0x8]
MOV qword ptr [RSP + 0x30],RAX
MOV dword ptr [RSP + 0x38],0x1
LEA RSI,[RSP + 0x10]
MOV ECX,0x0
LEA RDI,[0x20ab0c]
CALL 0x00112730
MOV EAX,dword ptr [RSP + 0x38]
JMP 0x0020c3bf
MOV RDI,R12
CALL 0x00111f90
CMP EAX,0x4
JZ 0x0020c4e1
MOV RDI,R12
CALL 0x00111f90
CMP EAX,0x3
JNZ 0x0020c451
MOV EDI,0x7
CALL 0x00112850
MOV RDX,R14
SUB RDX,R15
LEA R14,[RDX + 0x3f]
TEST RDX,RDX
CMOVNS R14,RDX
SAR R14,0x6
CMP RDX,0x7f
SETG CL
CMP RAX,R14
JL 0x0020c571
MOV EDX,0x1
TEST CL,CL
JZ 0x0020c47e
MOV EDI,0x7
CALL 0x00112850
MOV RDX,R14
CMP R14,RAX
JLE 0x0020c47e
MOV EDI,0x7
CALL 0x00112850
MOV RDX,RAX
JMP 0x0020c47e
MOV EDI,0x7
CALL 0x00112850
MOV EDX,0x1
CMP RAX,0x1
JA 0x0020c465
JMP 0x0020c47e
MOV EDI,0x7
CALL 0x00112850
MOV RDX,RAX
JMP 0x0020c47e
MOV EDI,0x7
CALL 0x00112850
CMP RAX,0x1
SETG CL
JMP 0x0020c50c
CALL 0x00112a70
(translation_unit "ulong SetWandViewIterator(long param_1,long param_2,undefined8 param_3)\n\n{\n  undefined8 uVar1;\n  bool bVar2;\n  int iVar3;\n  ulong uVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  long in_FS_OFFSET;\n  undefined8 local_80;\n  long local_78;\n  long local_70;\n  undefined8 local_68;\n  undefined8 local_60;\n  undefined8 *local_58;\n  uint local_50;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("destination != (WandView *) NULL","MagickWand/wand-view.c",0x3ab,\n                  "SetWandViewIterator");\n  }\n  if (*(long *)(param_1 + 0x1060) != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("destination->signature == MagickWandSignature","MagickWand/wand-view.c",0x3ac,\n                  "SetWandViewIterator");\n  }\n  uVar4 = 0;\n  if (param_2 == 0) goto LAB_0020c3bf;\n  uVar1 = *(undefined8 *)(*(long *)(param_1 + 0x1030) + 0x1008);\n  uVar4 = SetImageStorageClass(uVar1,1,*(undefined8 *)(param_1 + 0x1050));\n  if ((int)uVar4 == 0) goto LAB_0020c3bf;\n  local_80 = 0;\n  lVar6 = *(long *)(param_1 + 0x1018);\n  lVar7 = *(long *)(param_1 + 0x1028);\n  iVar3 = GetImagePixelCacheType(uVar1);\n  if (((iVar3 == 4) || (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)) &&\n     ((iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)))) {\n    lVar5 = GetMagickResourceLimit(7);\n    lVar6 = lVar6 - lVar7;\n    lVar7 = lVar6 + 0x3f;\n    if (-1 < lVar6) {\n      lVar7 = lVar6;\n    }\n    lVar7 = lVar7 >> 6;\n    bVar2 = 0x7f < lVar6;\n    if (lVar5 < lVar7) {\n      lVar6 = GetMagickResourceLimit(7);\n      bVar2 = 1 < lVar6;\n    }\n    lVar6 = 1;\n    if ((bVar2) && (lVar5 = GetMagickResourceLimit(7), lVar6 = lVar7, lVar5 < lVar7)) {\n      lVar6 = GetMagickResourceLimit(7);\n    }\n  }\n  else {\n    uVar4 = GetMagickResourceLimit(7);\n    if (uVar4 < 2) {\n      uVar4 = GetMagickResourceLimit(7);\n      lVar6 = 1;\n      if (uVar4 < 2) goto LAB_0020c47e;\n    }\n    uVar4 = GetMagickResourceLimit(7);\n    lVar6 = 2;\n    if (uVar4 < 2) {\n      lVar6 = GetMagickResourceLimit(7);\n    }\n  }\nLAB_0020c47e:\n  local_58 = &local_80;\n  local_50 = 1;\n  local_78 = param_1;\n  local_70 = param_2;\n  local_68 = param_3;\n  local_60 = uVar1;\n  GOMP_parallel(FUN_0020ab0c,&local_78,lVar6,0);\n  uVar4 = (ulong)local_50;\nLAB_0020c3bf:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return uVar4;\n}\n\n" (function_definition "ulong SetWandViewIterator(long param_1,long param_2,undefined8 param_3)\n\n{\n  undefined8 uVar1;\n  bool bVar2;\n  int iVar3;\n  ulong uVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  long in_FS_OFFSET;\n  undefined8 local_80;\n  long local_78;\n  long local_70;\n  undefined8 local_68;\n  undefined8 local_60;\n  undefined8 *local_58;\n  uint local_50;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("destination != (WandView *) NULL","MagickWand/wand-view.c",0x3ab,\n                  "SetWandViewIterator");\n  }\n  if (*(long *)(param_1 + 0x1060) != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("destination->signature == MagickWandSignature","MagickWand/wand-view.c",0x3ac,\n                  "SetWandViewIterator");\n  }\n  uVar4 = 0;\n  if (param_2 == 0) goto LAB_0020c3bf;\n  uVar1 = *(undefined8 *)(*(long *)(param_1 + 0x1030) + 0x1008);\n  uVar4 = SetImageStorageClass(uVar1,1,*(undefined8 *)(param_1 + 0x1050));\n  if ((int)uVar4 == 0) goto LAB_0020c3bf;\n  local_80 = 0;\n  lVar6 = *(long *)(param_1 + 0x1018);\n  lVar7 = *(long *)(param_1 + 0x1028);\n  iVar3 = GetImagePixelCacheType(uVar1);\n  if (((iVar3 == 4) || (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)) &&\n     ((iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)))) {\n    lVar5 = GetMagickResourceLimit(7);\n    lVar6 = lVar6 - lVar7;\n    lVar7 = lVar6 + 0x3f;\n    if (-1 < lVar6) {\n      lVar7 = lVar6;\n    }\n    lVar7 = lVar7 >> 6;\n    bVar2 = 0x7f < lVar6;\n    if (lVar5 < lVar7) {\n      lVar6 = GetMagickResourceLimit(7);\n      bVar2 = 1 < lVar6;\n    }\n    lVar6 = 1;\n    if ((bVar2) && (lVar5 = GetMagickResourceLimit(7), lVar6 = lVar7, lVar5 < lVar7)) {\n      lVar6 = GetMagickResourceLimit(7);\n    }\n  }\n  else {\n    uVar4 = GetMagickResourceLimit(7);\n    if (uVar4 < 2) {\n      uVar4 = GetMagickResourceLimit(7);\n      lVar6 = 1;\n      if (uVar4 < 2) goto LAB_0020c47e;\n    }\n    uVar4 = GetMagickResourceLimit(7);\n    lVar6 = 2;\n    if (uVar4 < 2) {\n      lVar6 = GetMagickResourceLimit(7);\n    }\n  }\nLAB_0020c47e:\n  local_58 = &local_80;\n  local_50 = 1;\n  local_78 = param_1;\n  local_70 = param_2;\n  local_68 = param_3;\n  local_60 = uVar1;\n  GOMP_parallel(FUN_0020ab0c,&local_78,lVar6,0);\n  uVar4 = (ulong)local_50;\nLAB_0020c3bf:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return uVar4;\n}" type_identifier (function_declarator "SetWandViewIterator(long param_1,long param_2,undefined8 param_3)" identifier (parameter_list "(long param_1,long param_2,undefined8 param_3)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) ))) (compound_statement "{\n  undefined8 uVar1;\n  bool bVar2;\n  int iVar3;\n  ulong uVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  long in_FS_OFFSET;\n  undefined8 local_80;\n  long local_78;\n  long local_70;\n  undefined8 local_68;\n  undefined8 local_60;\n  undefined8 *local_58;\n  uint local_50;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("destination != (WandView *) NULL","MagickWand/wand-view.c",0x3ab,\n                  "SetWandViewIterator");\n  }\n  if (*(long *)(param_1 + 0x1060) != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("destination->signature == MagickWandSignature","MagickWand/wand-view.c",0x3ac,\n                  "SetWandViewIterator");\n  }\n  uVar4 = 0;\n  if (param_2 == 0) goto LAB_0020c3bf;\n  uVar1 = *(undefined8 *)(*(long *)(param_1 + 0x1030) + 0x1008);\n  uVar4 = SetImageStorageClass(uVar1,1,*(undefined8 *)(param_1 + 0x1050));\n  if ((int)uVar4 == 0) goto LAB_0020c3bf;\n  local_80 = 0;\n  lVar6 = *(long *)(param_1 + 0x1018);\n  lVar7 = *(long *)(param_1 + 0x1028);\n  iVar3 = GetImagePixelCacheType(uVar1);\n  if (((iVar3 == 4) || (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)) &&\n     ((iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)))) {\n    lVar5 = GetMagickResourceLimit(7);\n    lVar6 = lVar6 - lVar7;\n    lVar7 = lVar6 + 0x3f;\n    if (-1 < lVar6) {\n      lVar7 = lVar6;\n    }\n    lVar7 = lVar7 >> 6;\n    bVar2 = 0x7f < lVar6;\n    if (lVar5 < lVar7) {\n      lVar6 = GetMagickResourceLimit(7);\n      bVar2 = 1 < lVar6;\n    }\n    lVar6 = 1;\n    if ((bVar2) && (lVar5 = GetMagickResourceLimit(7), lVar6 = lVar7, lVar5 < lVar7)) {\n      lVar6 = GetMagickResourceLimit(7);\n    }\n  }\n  else {\n    uVar4 = GetMagickResourceLimit(7);\n    if (uVar4 < 2) {\n      uVar4 = GetMagickResourceLimit(7);\n      lVar6 = 1;\n      if (uVar4 < 2) goto LAB_0020c47e;\n    }\n    uVar4 = GetMagickResourceLimit(7);\n    lVar6 = 2;\n    if (uVar4 < 2) {\n      lVar6 = GetMagickResourceLimit(7);\n    }\n  }\nLAB_0020c47e:\n  local_58 = &local_80;\n  local_50 = 1;\n  local_78 = param_1;\n  local_70 = param_2;\n  local_68 = param_3;\n  local_60 = uVar1;\n  GOMP_parallel(FUN_0020ab0c,&local_78,lVar6,0);\n  uVar4 = (ulong)local_50;\nLAB_0020c3bf:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return uVar4;\n}" { (declaration "undefined8 uVar1;" type_identifier identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "ulong uVar4;" type_identifier identifier ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 local_80;" type_identifier identifier ;) (declaration "long local_78;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_70;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 local_68;" type_identifier identifier ;) (declaration "undefined8 local_60;" type_identifier identifier ;) (declaration "undefined8 *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("destination != (WandView *) NULL","MagickWand/wand-view.c",0x3ab,\n                  "SetWandViewIterator");\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("destination != (WandView *) NULL","MagickWand/wand-view.c",0x3ab,\n                  "SetWandViewIterator");\n  }" { comment (expression_statement "__assert_fail("destination != (WandView *) NULL","MagickWand/wand-view.c",0x3ab,\n                  "SetWandViewIterator");" (call_expression "__assert_fail("destination != (WandView *) NULL","MagickWand/wand-view.c",0x3ab,\n                  "SetWandViewIterator")" identifier (argument_list "("destination != (WandView *) NULL","MagickWand/wand-view.c",0x3ab,\n                  "SetWandViewIterator")" ( (string_literal ""destination != (WandView *) NULL"" " string_content ") , (string_literal ""MagickWand/wand-view.c"" " string_content ") , number_literal , (string_literal ""SetWandViewIterator"" " string_content ") ))) ;) })) (if_statement "if (*(long *)(param_1 + 0x1060) != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("destination->signature == MagickWandSignature","MagickWand/wand-view.c",0x3ac,\n                  "SetWandViewIterator");\n  }" if (parenthesized_expression "(*(long *)(param_1 + 0x1060) != 0xabacadab)" ( (binary_expression "*(long *)(param_1 + 0x1060) != 0xabacadab" (pointer_expression "*(long *)(param_1 + 0x1060)" * (cast_expression "(long *)(param_1 + 0x1060)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1060)" ( (binary_expression "param_1 + 0x1060" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("destination->signature == MagickWandSignature","MagickWand/wand-view.c",0x3ac,\n                  "SetWandViewIterator");\n  }" { comment (expression_statement "__assert_fail("destination->signature == MagickWandSignature","MagickWand/wand-view.c",0x3ac,\n                  "SetWandViewIterator");" (call_expression "__assert_fail("destination->signature == MagickWandSignature","MagickWand/wand-view.c",0x3ac,\n                  "SetWandViewIterator")" identifier (argument_list "("destination->signature == MagickWandSignature","MagickWand/wand-view.c",0x3ac,\n                  "SetWandViewIterator")" ( (string_literal ""destination->signature == MagickWandSignature"" " string_content ") , (string_literal ""MagickWand/wand-view.c"" " string_content ") , number_literal , (string_literal ""SetWandViewIterator"" " string_content ") ))) ;) })) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (if_statement "if (param_2 == 0) goto LAB_0020c3bf;" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0020c3bf;" goto statement_identifier ;)) (expression_statement "uVar1 = *(undefined8 *)(*(long *)(param_1 + 0x1030) + 0x1008);" (assignment_expression "uVar1 = *(undefined8 *)(*(long *)(param_1 + 0x1030) + 0x1008)" identifier = (pointer_expression "*(undefined8 *)(*(long *)(param_1 + 0x1030) + 0x1008)" * (cast_expression "(undefined8 *)(*(long *)(param_1 + 0x1030) + 0x1008)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0x1030) + 0x1008)" ( (binary_expression "*(long *)(param_1 + 0x1030) + 0x1008" (pointer_expression "*(long *)(param_1 + 0x1030)" * (cast_expression "(long *)(param_1 + 0x1030)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1030)" ( (binary_expression "param_1 + 0x1030" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar4 = SetImageStorageClass(uVar1,1,*(undefined8 *)(param_1 + 0x1050));" (assignment_expression "uVar4 = SetImageStorageClass(uVar1,1,*(undefined8 *)(param_1 + 0x1050))" identifier = (call_expression "SetImageStorageClass(uVar1,1,*(undefined8 *)(param_1 + 0x1050))" identifier (argument_list "(uVar1,1,*(undefined8 *)(param_1 + 0x1050))" ( identifier , number_literal , (pointer_expression "*(undefined8 *)(param_1 + 0x1050)" * (cast_expression "(undefined8 *)(param_1 + 0x1050)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1050)" ( (binary_expression "param_1 + 0x1050" identifier + number_literal) )))) )))) ;) (if_statement "if ((int)uVar4 == 0) goto LAB_0020c3bf;" if (parenthesized_expression "((int)uVar4 == 0)" ( (binary_expression "(int)uVar4 == 0" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (goto_statement "goto LAB_0020c3bf;" goto statement_identifier ;)) (expression_statement "local_80 = 0;" (assignment_expression "local_80 = 0" identifier = number_literal) ;) (expression_statement "lVar6 = *(long *)(param_1 + 0x1018);" (assignment_expression "lVar6 = *(long *)(param_1 + 0x1018)" identifier = (pointer_expression "*(long *)(param_1 + 0x1018)" * (cast_expression "(long *)(param_1 + 0x1018)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1018)" ( (binary_expression "param_1 + 0x1018" identifier + number_literal) ))))) ;) (expression_statement "lVar7 = *(long *)(param_1 + 0x1028);" (assignment_expression "lVar7 = *(long *)(param_1 + 0x1028)" identifier = (pointer_expression "*(long *)(param_1 + 0x1028)" * (cast_expression "(long *)(param_1 + 0x1028)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1028)" ( (binary_expression "param_1 + 0x1028" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = GetImagePixelCacheType(uVar1);" (assignment_expression "iVar3 = GetImagePixelCacheType(uVar1)" identifier = (call_expression "GetImagePixelCacheType(uVar1)" identifier (argument_list "(uVar1)" ( identifier )))) ;) (if_statement "if (((iVar3 == 4) || (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)) &&\n     ((iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)))) {\n    lVar5 = GetMagickResourceLimit(7);\n    lVar6 = lVar6 - lVar7;\n    lVar7 = lVar6 + 0x3f;\n    if (-1 < lVar6) {\n      lVar7 = lVar6;\n    }\n    lVar7 = lVar7 >> 6;\n    bVar2 = 0x7f < lVar6;\n    if (lVar5 < lVar7) {\n      lVar6 = GetMagickResourceLimit(7);\n      bVar2 = 1 < lVar6;\n    }\n    lVar6 = 1;\n    if ((bVar2) && (lVar5 = GetMagickResourceLimit(7), lVar6 = lVar7, lVar5 < lVar7)) {\n      lVar6 = GetMagickResourceLimit(7);\n    }\n  }\n  else {\n    uVar4 = GetMagickResourceLimit(7);\n    if (uVar4 < 2) {\n      uVar4 = GetMagickResourceLimit(7);\n      lVar6 = 1;\n      if (uVar4 < 2) goto LAB_0020c47e;\n    }\n    uVar4 = GetMagickResourceLimit(7);\n    lVar6 = 2;\n    if (uVar4 < 2) {\n      lVar6 = GetMagickResourceLimit(7);\n    }\n  }" if (parenthesized_expression "(((iVar3 == 4) || (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)) &&\n     ((iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3))))" ( (binary_expression "((iVar3 == 4) || (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)) &&\n     ((iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)))" (parenthesized_expression "((iVar3 == 4) || (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3))" ( (binary_expression "(iVar3 == 4) || (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)" (parenthesized_expression "(iVar3 == 4)" ( (binary_expression "iVar3 == 4" identifier == number_literal) )) || (parenthesized_expression "(iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)" ( (comma_expression "iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3" (assignment_expression "iVar3 = GetImagePixelCacheType(uVar1)" identifier = (call_expression "GetImagePixelCacheType(uVar1)" identifier (argument_list "(uVar1)" ( identifier )))) , (binary_expression "iVar3 == 3" identifier == number_literal)) ))) )) && (parenthesized_expression "((iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)))" ( (parenthesized_expression "(iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3))" ( (comma_expression "iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)" (assignment_expression "iVar3 = GetImagePixelCacheType(uVar1)" identifier = (call_expression "GetImagePixelCacheType(uVar1)" identifier (argument_list "(uVar1)" ( identifier )))) , (binary_expression "iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)" (binary_expression "iVar3 == 4" identifier == number_literal) || (parenthesized_expression "(iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)" ( (comma_expression "iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3" (assignment_expression "iVar3 = GetImagePixelCacheType(uVar1)" identifier = (call_expression "GetImagePixelCacheType(uVar1)" identifier (argument_list "(uVar1)" ( identifier )))) , (binary_expression "iVar3 == 3" identifier == number_literal)) )))) )) ))) )) (compound_statement "{\n    lVar5 = GetMagickResourceLimit(7);\n    lVar6 = lVar6 - lVar7;\n    lVar7 = lVar6 + 0x3f;\n    if (-1 < lVar6) {\n      lVar7 = lVar6;\n    }\n    lVar7 = lVar7 >> 6;\n    bVar2 = 0x7f < lVar6;\n    if (lVar5 < lVar7) {\n      lVar6 = GetMagickResourceLimit(7);\n      bVar2 = 1 < lVar6;\n    }\n    lVar6 = 1;\n    if ((bVar2) && (lVar5 = GetMagickResourceLimit(7), lVar6 = lVar7, lVar5 < lVar7)) {\n      lVar6 = GetMagickResourceLimit(7);\n    }\n  }" { (expression_statement "lVar5 = GetMagickResourceLimit(7);" (assignment_expression "lVar5 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (expression_statement "lVar6 = lVar6 - lVar7;" (assignment_expression "lVar6 = lVar6 - lVar7" identifier = (binary_expression "lVar6 - lVar7" identifier - identifier)) ;) (expression_statement "lVar7 = lVar6 + 0x3f;" (assignment_expression "lVar7 = lVar6 + 0x3f" identifier = (binary_expression "lVar6 + 0x3f" identifier + number_literal)) ;) (if_statement "if (-1 < lVar6) {\n      lVar7 = lVar6;\n    }" if (parenthesized_expression "(-1 < lVar6)" ( (binary_expression "-1 < lVar6" number_literal < identifier) )) (compound_statement "{\n      lVar7 = lVar6;\n    }" { (expression_statement "lVar7 = lVar6;" (assignment_expression "lVar7 = lVar6" identifier = identifier) ;) })) (expression_statement "lVar7 = lVar7 >> 6;" (assignment_expression "lVar7 = lVar7 >> 6" identifier = (binary_expression "lVar7 >> 6" identifier >> number_literal)) ;) (expression_statement "bVar2 = 0x7f < lVar6;" (assignment_expression "bVar2 = 0x7f < lVar6" identifier = (binary_expression "0x7f < lVar6" number_literal < identifier)) ;) (if_statement "if (lVar5 < lVar7) {\n      lVar6 = GetMagickResourceLimit(7);\n      bVar2 = 1 < lVar6;\n    }" if (parenthesized_expression "(lVar5 < lVar7)" ( (binary_expression "lVar5 < lVar7" identifier < identifier) )) (compound_statement "{\n      lVar6 = GetMagickResourceLimit(7);\n      bVar2 = 1 < lVar6;\n    }" { (expression_statement "lVar6 = GetMagickResourceLimit(7);" (assignment_expression "lVar6 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (expression_statement "bVar2 = 1 < lVar6;" (assignment_expression "bVar2 = 1 < lVar6" identifier = (binary_expression "1 < lVar6" number_literal < identifier)) ;) })) (expression_statement "lVar6 = 1;" (assignment_expression "lVar6 = 1" identifier = number_literal) ;) (if_statement "if ((bVar2) && (lVar5 = GetMagickResourceLimit(7), lVar6 = lVar7, lVar5 < lVar7)) {\n      lVar6 = GetMagickResourceLimit(7);\n    }" if (parenthesized_expression "((bVar2) && (lVar5 = GetMagickResourceLimit(7), lVar6 = lVar7, lVar5 < lVar7))" ( (binary_expression "(bVar2) && (lVar5 = GetMagickResourceLimit(7), lVar6 = lVar7, lVar5 < lVar7)" (parenthesized_expression "(bVar2)" ( identifier )) && (parenthesized_expression "(lVar5 = GetMagickResourceLimit(7), lVar6 = lVar7, lVar5 < lVar7)" ( (comma_expression "lVar5 = GetMagickResourceLimit(7), lVar6 = lVar7, lVar5 < lVar7" (assignment_expression "lVar5 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) , (comma_expression "lVar6 = lVar7, lVar5 < lVar7" (assignment_expression "lVar6 = lVar7" identifier = identifier) , (binary_expression "lVar5 < lVar7" identifier < identifier))) ))) )) (compound_statement "{\n      lVar6 = GetMagickResourceLimit(7);\n    }" { (expression_statement "lVar6 = GetMagickResourceLimit(7);" (assignment_expression "lVar6 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) })) }) (else_clause "else {\n    uVar4 = GetMagickResourceLimit(7);\n    if (uVar4 < 2) {\n      uVar4 = GetMagickResourceLimit(7);\n      lVar6 = 1;\n      if (uVar4 < 2) goto LAB_0020c47e;\n    }\n    uVar4 = GetMagickResourceLimit(7);\n    lVar6 = 2;\n    if (uVar4 < 2) {\n      lVar6 = GetMagickResourceLimit(7);\n    }\n  }" else (compound_statement "{\n    uVar4 = GetMagickResourceLimit(7);\n    if (uVar4 < 2) {\n      uVar4 = GetMagickResourceLimit(7);\n      lVar6 = 1;\n      if (uVar4 < 2) goto LAB_0020c47e;\n    }\n    uVar4 = GetMagickResourceLimit(7);\n    lVar6 = 2;\n    if (uVar4 < 2) {\n      lVar6 = GetMagickResourceLimit(7);\n    }\n  }" { (expression_statement "uVar4 = GetMagickResourceLimit(7);" (assignment_expression "uVar4 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (if_statement "if (uVar4 < 2) {\n      uVar4 = GetMagickResourceLimit(7);\n      lVar6 = 1;\n      if (uVar4 < 2) goto LAB_0020c47e;\n    }" if (parenthesized_expression "(uVar4 < 2)" ( (binary_expression "uVar4 < 2" identifier < number_literal) )) (compound_statement "{\n      uVar4 = GetMagickResourceLimit(7);\n      lVar6 = 1;\n      if (uVar4 < 2) goto LAB_0020c47e;\n    }" { (expression_statement "uVar4 = GetMagickResourceLimit(7);" (assignment_expression "uVar4 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (expression_statement "lVar6 = 1;" (assignment_expression "lVar6 = 1" identifier = number_literal) ;) (if_statement "if (uVar4 < 2) goto LAB_0020c47e;" if (parenthesized_expression "(uVar4 < 2)" ( (binary_expression "uVar4 < 2" identifier < number_literal) )) (goto_statement "goto LAB_0020c47e;" goto statement_identifier ;)) })) (expression_statement "uVar4 = GetMagickResourceLimit(7);" (assignment_expression "uVar4 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (expression_statement "lVar6 = 2;" (assignment_expression "lVar6 = 2" identifier = number_literal) ;) (if_statement "if (uVar4 < 2) {\n      lVar6 = GetMagickResourceLimit(7);\n    }" if (parenthesized_expression "(uVar4 < 2)" ( (binary_expression "uVar4 < 2" identifier < number_literal) )) (compound_statement "{\n      lVar6 = GetMagickResourceLimit(7);\n    }" { (expression_statement "lVar6 = GetMagickResourceLimit(7);" (assignment_expression "lVar6 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) })) }))) (labeled_statement "LAB_0020c47e:\n  local_58 = &local_80;" statement_identifier : (expression_statement "local_58 = &local_80;" (assignment_expression "local_58 = &local_80" identifier = (pointer_expression "&local_80" & identifier)) ;)) (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" identifier = number_literal) ;) (expression_statement "local_78 = param_1;" (assignment_expression "local_78 = param_1" identifier = identifier) ;) (expression_statement "local_70 = param_2;" (assignment_expression "local_70 = param_2" identifier = identifier) ;) (expression_statement "local_68 = param_3;" (assignment_expression "local_68 = param_3" identifier = identifier) ;) (expression_statement "local_60 = uVar1;" (assignment_expression "local_60 = uVar1" identifier = identifier) ;) (expression_statement "GOMP_parallel(FUN_0020ab0c,&local_78,lVar6,0);" (call_expression "GOMP_parallel(FUN_0020ab0c,&local_78,lVar6,0)" identifier (argument_list "(FUN_0020ab0c,&local_78,lVar6,0)" ( identifier , (pointer_expression "&local_78" & identifier) , identifier , number_literal ))) ;) (expression_statement "uVar4 = (ulong)local_50;" (assignment_expression "uVar4 = (ulong)local_50" identifier = (cast_expression "(ulong)local_50" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (labeled_statement "LAB_0020c3bf:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" statement_identifier : (if_statement "if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" if (parenthesized_expression "(local_40 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" { comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return uVar4;" return identifier ;) })))
(translation_unit "/* WARNING: Enum "GravityType": Some values do not have unique names */\n/* WARNING: Enum "DisposeType": Some values do not have unique names */\n/* WARNING: Enum "ChannelType": Some values do not have unique names */\n/* WARNING: Enum "PixelChannel": Some values do not have unique names */\n/* WARNING: Enum "ExceptionType": Some values do not have unique names */\n\nMagickBooleanType SetWandViewIterator(WandView *destination,SetWandViewMethod set,void *context)\n\n{\n  Image *pIVar1;\n  size_t sVar2;\n  bool bVar3;\n  MagickBooleanType MVar4;\n  int iVar5;\n  ulong uVar6;\n  long lVar7;\n  long lVar8;\n  long lVar9;\n  long in_FS_OFFSET;\n  MagickOffsetType progress;\n  WandView *local_78;\n  SetWandViewMethod local_70;\n  void *local_68;\n  Image *local_60;\n  MagickOffsetType *local_58;\n  MagickBooleanType local_50;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (destination == (WandView *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("destination != (WandView *) NULL","MagickWand/wand-view.c",0x3ab,\n                  "SetWandViewIterator");\n  }\n  if (destination->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("destination->signature == MagickWandSignature","MagickWand/wand-view.c",0x3ac,\n                  "SetWandViewIterator");\n  }\n  MVar4 = MagickFalse;\n  if (set == (SetWandViewMethod)0x0) goto LAB_0020c3bf;\n  pIVar1 = destination->wand->images;\n  MVar4 = SetImageStorageClass(pIVar1,1,destination->exception);\n  if (MVar4 == MagickFalse) goto LAB_0020c3bf;\n  progress = 0;\n  sVar2 = (destination->extent).height;\n  lVar8 = (destination->extent).y;\n  iVar5 = GetImagePixelCacheType(pIVar1);\n  if (((iVar5 == 4) || (iVar5 = GetImagePixelCacheType(pIVar1), iVar5 == 3)) &&\n     ((iVar5 = GetImagePixelCacheType(pIVar1), iVar5 == 4 ||\n      (iVar5 = GetImagePixelCacheType(pIVar1), iVar5 == 3)))) {\n    lVar7 = GetMagickResourceLimit(7);\n    lVar8 = sVar2 - lVar8;\n    lVar9 = lVar8 + 0x3f;\n    if (-1 < lVar8) {\n      lVar9 = lVar8;\n    }\n    lVar9 = lVar9 >> 6;\n    bVar3 = 0x7f < lVar8;\n    if (lVar7 < lVar9) {\n      lVar8 = GetMagickResourceLimit(7);\n      bVar3 = 1 < lVar8;\n    }\n    lVar8 = 1;\n    if ((bVar3) && (lVar7 = GetMagickResourceLimit(7), lVar8 = lVar9, lVar7 < lVar9)) {\n      lVar8 = GetMagickResourceLimit(7);\n    }\n  }\n  else {\n    uVar6 = GetMagickResourceLimit(7);\n    if (uVar6 < 2) {\n      uVar6 = GetMagickResourceLimit(7);\n      lVar8 = 1;\n      if (uVar6 < 2) goto LAB_0020c47e;\n    }\n    uVar6 = GetMagickResourceLimit(7);\n    lVar8 = 2;\n    if (uVar6 < 2) {\n      lVar8 = GetMagickResourceLimit(7);\n    }\n  }\nLAB_0020c47e:\n  local_58 = &progress;\n  local_50 = MagickTrue;\n  local_78 = destination;\n  local_70 = set;\n  local_68 = context;\n  local_60 = pIVar1;\n  GOMP_parallel(SetWandViewIterator__omp_fn_2,&local_78,lVar8,0);\n  MVar4 = local_50;\nLAB_0020c3bf:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return MVar4;\n}\n\n" comment comment comment comment comment (function_definition "MagickBooleanType SetWandViewIterator(WandView *destination,SetWandViewMethod set,void *context)\n\n{\n  Image *pIVar1;\n  size_t sVar2;\n  bool bVar3;\n  MagickBooleanType MVar4;\n  int iVar5;\n  ulong uVar6;\n  long lVar7;\n  long lVar8;\n  long lVar9;\n  long in_FS_OFFSET;\n  MagickOffsetType progress;\n  WandView *local_78;\n  SetWandViewMethod local_70;\n  void *local_68;\n  Image *local_60;\n  MagickOffsetType *local_58;\n  MagickBooleanType local_50;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (destination == (WandView *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("destination != (WandView *) NULL","MagickWand/wand-view.c",0x3ab,\n                  "SetWandViewIterator");\n  }\n  if (destination->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("destination->signature == MagickWandSignature","MagickWand/wand-view.c",0x3ac,\n                  "SetWandViewIterator");\n  }\n  MVar4 = MagickFalse;\n  if (set == (SetWandViewMethod)0x0) goto LAB_0020c3bf;\n  pIVar1 = destination->wand->images;\n  MVar4 = SetImageStorageClass(pIVar1,1,destination->exception);\n  if (MVar4 == MagickFalse) goto LAB_0020c3bf;\n  progress = 0;\n  sVar2 = (destination->extent).height;\n  lVar8 = (destination->extent).y;\n  iVar5 = GetImagePixelCacheType(pIVar1);\n  if (((iVar5 == 4) || (iVar5 = GetImagePixelCacheType(pIVar1), iVar5 == 3)) &&\n     ((iVar5 = GetImagePixelCacheType(pIVar1), iVar5 == 4 ||\n      (iVar5 = GetImagePixelCacheType(pIVar1), iVar5 == 3)))) {\n    lVar7 = GetMagickResourceLimit(7);\n    lVar8 = sVar2 - lVar8;\n    lVar9 = lVar8 + 0x3f;\n    if (-1 < lVar8) {\n      lVar9 = lVar8;\n    }\n    lVar9 = lVar9 >> 6;\n    bVar3 = 0x7f < lVar8;\n    if (lVar7 < lVar9) {\n      lVar8 = GetMagickResourceLimit(7);\n      bVar3 = 1 < lVar8;\n    }\n    lVar8 = 1;\n    if ((bVar3) && (lVar7 = GetMagickResourceLimit(7), lVar8 = lVar9, lVar7 < lVar9)) {\n      lVar8 = GetMagickResourceLimit(7);\n    }\n  }\n  else {\n    uVar6 = GetMagickResourceLimit(7);\n    if (uVar6 < 2) {\n      uVar6 = GetMagickResourceLimit(7);\n      lVar8 = 1;\n      if (uVar6 < 2) goto LAB_0020c47e;\n    }\n    uVar6 = GetMagickResourceLimit(7);\n    lVar8 = 2;\n    if (uVar6 < 2) {\n      lVar8 = GetMagickResourceLimit(7);\n    }\n  }\nLAB_0020c47e:\n  local_58 = &progress;\n  local_50 = MagickTrue;\n  local_78 = destination;\n  local_70 = set;\n  local_68 = context;\n  local_60 = pIVar1;\n  GOMP_parallel(SetWandViewIterator__omp_fn_2,&local_78,lVar8,0);\n  MVar4 = local_50;\nLAB_0020c3bf:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return MVar4;\n}" type_identifier (function_declarator "SetWandViewIterator(WandView *destination,SetWandViewMethod set,void *context)" identifier (parameter_list "(WandView *destination,SetWandViewMethod set,void *context)" ( (parameter_declaration "WandView *destination" type_identifier (pointer_declarator "*destination" * identifier)) , (parameter_declaration "SetWandViewMethod set" type_identifier identifier) , (parameter_declaration "void *context" primitive_type (pointer_declarator "*context" * identifier)) ))) (compound_statement "{\n  Image *pIVar1;\n  size_t sVar2;\n  bool bVar3;\n  MagickBooleanType MVar4;\n  int iVar5;\n  ulong uVar6;\n  long lVar7;\n  long lVar8;\n  long lVar9;\n  long in_FS_OFFSET;\n  MagickOffsetType progress;\n  WandView *local_78;\n  SetWandViewMethod local_70;\n  void *local_68;\n  Image *local_60;\n  MagickOffsetType *local_58;\n  MagickBooleanType local_50;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (destination == (WandView *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("destination != (WandView *) NULL","MagickWand/wand-view.c",0x3ab,\n                  "SetWandViewIterator");\n  }\n  if (destination->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("destination->signature == MagickWandSignature","MagickWand/wand-view.c",0x3ac,\n                  "SetWandViewIterator");\n  }\n  MVar4 = MagickFalse;\n  if (set == (SetWandViewMethod)0x0) goto LAB_0020c3bf;\n  pIVar1 = destination->wand->images;\n  MVar4 = SetImageStorageClass(pIVar1,1,destination->exception);\n  if (MVar4 == MagickFalse) goto LAB_0020c3bf;\n  progress = 0;\n  sVar2 = (destination->extent).height;\n  lVar8 = (destination->extent).y;\n  iVar5 = GetImagePixelCacheType(pIVar1);\n  if (((iVar5 == 4) || (iVar5 = GetImagePixelCacheType(pIVar1), iVar5 == 3)) &&\n     ((iVar5 = GetImagePixelCacheType(pIVar1), iVar5 == 4 ||\n      (iVar5 = GetImagePixelCacheType(pIVar1), iVar5 == 3)))) {\n    lVar7 = GetMagickResourceLimit(7);\n    lVar8 = sVar2 - lVar8;\n    lVar9 = lVar8 + 0x3f;\n    if (-1 < lVar8) {\n      lVar9 = lVar8;\n    }\n    lVar9 = lVar9 >> 6;\n    bVar3 = 0x7f < lVar8;\n    if (lVar7 < lVar9) {\n      lVar8 = GetMagickResourceLimit(7);\n      bVar3 = 1 < lVar8;\n    }\n    lVar8 = 1;\n    if ((bVar3) && (lVar7 = GetMagickResourceLimit(7), lVar8 = lVar9, lVar7 < lVar9)) {\n      lVar8 = GetMagickResourceLimit(7);\n    }\n  }\n  else {\n    uVar6 = GetMagickResourceLimit(7);\n    if (uVar6 < 2) {\n      uVar6 = GetMagickResourceLimit(7);\n      lVar8 = 1;\n      if (uVar6 < 2) goto LAB_0020c47e;\n    }\n    uVar6 = GetMagickResourceLimit(7);\n    lVar8 = 2;\n    if (uVar6 < 2) {\n      lVar8 = GetMagickResourceLimit(7);\n    }\n  }\nLAB_0020c47e:\n  local_58 = &progress;\n  local_50 = MagickTrue;\n  local_78 = destination;\n  local_70 = set;\n  local_68 = context;\n  local_60 = pIVar1;\n  GOMP_parallel(SetWandViewIterator__omp_fn_2,&local_78,lVar8,0);\n  MVar4 = local_50;\nLAB_0020c3bf:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return MVar4;\n}" { (declaration "Image *pIVar1;" type_identifier (pointer_declarator "*pIVar1" * identifier) ;) (declaration "size_t sVar2;" primitive_type identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "MagickBooleanType MVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "ulong uVar6;" type_identifier identifier ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "MagickOffsetType progress;" type_identifier identifier ;) (declaration "WandView *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "SetWandViewMethod local_70;" type_identifier identifier ;) (declaration "void *local_68;" primitive_type (pointer_declarator "*local_68" * identifier) ;) (declaration "Image *local_60;" type_identifier (pointer_declarator "*local_60" * identifier) ;) (declaration "MagickOffsetType *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "MagickBooleanType local_50;" type_identifier identifier ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (destination == (WandView *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("destination != (WandView *) NULL","MagickWand/wand-view.c",0x3ab,\n                  "SetWandViewIterator");\n  }" if (parenthesized_expression "(destination == (WandView *)0x0)" ( (binary_expression "destination == (WandView *)0x0" identifier == (cast_expression "(WandView *)0x0" ( (type_descriptor "WandView *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("destination != (WandView *) NULL","MagickWand/wand-view.c",0x3ab,\n                  "SetWandViewIterator");\n  }" { comment (expression_statement "__assert_fail("destination != (WandView *) NULL","MagickWand/wand-view.c",0x3ab,\n                  "SetWandViewIterator");" (call_expression "__assert_fail("destination != (WandView *) NULL","MagickWand/wand-view.c",0x3ab,\n                  "SetWandViewIterator")" identifier (argument_list "("destination != (WandView *) NULL","MagickWand/wand-view.c",0x3ab,\n                  "SetWandViewIterator")" ( (string_literal ""destination != (WandView *) NULL"" " string_content ") , (string_literal ""MagickWand/wand-view.c"" " string_content ") , number_literal , (string_literal ""SetWandViewIterator"" " string_content ") ))) ;) })) (if_statement "if (destination->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("destination->signature == MagickWandSignature","MagickWand/wand-view.c",0x3ac,\n                  "SetWandViewIterator");\n  }" if (parenthesized_expression "(destination->signature != 0xabacadab)" ( (binary_expression "destination->signature != 0xabacadab" (field_expression "destination->signature" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("destination->signature == MagickWandSignature","MagickWand/wand-view.c",0x3ac,\n                  "SetWandViewIterator");\n  }" { comment (expression_statement "__assert_fail("destination->signature == MagickWandSignature","MagickWand/wand-view.c",0x3ac,\n                  "SetWandViewIterator");" (call_expression "__assert_fail("destination->signature == MagickWandSignature","MagickWand/wand-view.c",0x3ac,\n                  "SetWandViewIterator")" identifier (argument_list "("destination->signature == MagickWandSignature","MagickWand/wand-view.c",0x3ac,\n                  "SetWandViewIterator")" ( (string_literal ""destination->signature == MagickWandSignature"" " string_content ") , (string_literal ""MagickWand/wand-view.c"" " string_content ") , number_literal , (string_literal ""SetWandViewIterator"" " string_content ") ))) ;) })) (expression_statement "MVar4 = MagickFalse;" (assignment_expression "MVar4 = MagickFalse" identifier = identifier) ;) (if_statement "if (set == (SetWandViewMethod)0x0) goto LAB_0020c3bf;" if (parenthesized_expression "(set == (SetWandViewMethod)0x0)" ( (binary_expression "set == (SetWandViewMethod)0x0" identifier == (cast_expression "(SetWandViewMethod)0x0" ( (type_descriptor "SetWandViewMethod" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_0020c3bf;" goto statement_identifier ;)) (expression_statement "pIVar1 = destination->wand->images;" (assignment_expression "pIVar1 = destination->wand->images" identifier = (field_expression "destination->wand->images" (field_expression "destination->wand" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "MVar4 = SetImageStorageClass(pIVar1,1,destination->exception);" (assignment_expression "MVar4 = SetImageStorageClass(pIVar1,1,destination->exception)" identifier = (call_expression "SetImageStorageClass(pIVar1,1,destination->exception)" identifier (argument_list "(pIVar1,1,destination->exception)" ( identifier , number_literal , (field_expression "destination->exception" identifier -> field_identifier) )))) ;) (if_statement "if (MVar4 == MagickFalse) goto LAB_0020c3bf;" if (parenthesized_expression "(MVar4 == MagickFalse)" ( (binary_expression "MVar4 == MagickFalse" identifier == identifier) )) (goto_statement "goto LAB_0020c3bf;" goto statement_identifier ;)) (expression_statement "progress = 0;" (assignment_expression "progress = 0" identifier = number_literal) ;) (expression_statement "sVar2 = (destination->extent).height;" (assignment_expression "sVar2 = (destination->extent).height" identifier = (field_expression "(destination->extent).height" (parenthesized_expression "(destination->extent)" ( (field_expression "destination->extent" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "lVar8 = (destination->extent).y;" (assignment_expression "lVar8 = (destination->extent).y" identifier = (field_expression "(destination->extent).y" (parenthesized_expression "(destination->extent)" ( (field_expression "destination->extent" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "iVar5 = GetImagePixelCacheType(pIVar1);" (assignment_expression "iVar5 = GetImagePixelCacheType(pIVar1)" identifier = (call_expression "GetImagePixelCacheType(pIVar1)" identifier (argument_list "(pIVar1)" ( identifier )))) ;) (if_statement "if (((iVar5 == 4) || (iVar5 = GetImagePixelCacheType(pIVar1), iVar5 == 3)) &&\n     ((iVar5 = GetImagePixelCacheType(pIVar1), iVar5 == 4 ||\n      (iVar5 = GetImagePixelCacheType(pIVar1), iVar5 == 3)))) {\n    lVar7 = GetMagickResourceLimit(7);\n    lVar8 = sVar2 - lVar8;\n    lVar9 = lVar8 + 0x3f;\n    if (-1 < lVar8) {\n      lVar9 = lVar8;\n    }\n    lVar9 = lVar9 >> 6;\n    bVar3 = 0x7f < lVar8;\n    if (lVar7 < lVar9) {\n      lVar8 = GetMagickResourceLimit(7);\n      bVar3 = 1 < lVar8;\n    }\n    lVar8 = 1;\n    if ((bVar3) && (lVar7 = GetMagickResourceLimit(7), lVar8 = lVar9, lVar7 < lVar9)) {\n      lVar8 = GetMagickResourceLimit(7);\n    }\n  }\n  else {\n    uVar6 = GetMagickResourceLimit(7);\n    if (uVar6 < 2) {\n      uVar6 = GetMagickResourceLimit(7);\n      lVar8 = 1;\n      if (uVar6 < 2) goto LAB_0020c47e;\n    }\n    uVar6 = GetMagickResourceLimit(7);\n    lVar8 = 2;\n    if (uVar6 < 2) {\n      lVar8 = GetMagickResourceLimit(7);\n    }\n  }" if (parenthesized_expression "(((iVar5 == 4) || (iVar5 = GetImagePixelCacheType(pIVar1), iVar5 == 3)) &&\n     ((iVar5 = GetImagePixelCacheType(pIVar1), iVar5 == 4 ||\n      (iVar5 = GetImagePixelCacheType(pIVar1), iVar5 == 3))))" ( (binary_expression "((iVar5 == 4) || (iVar5 = GetImagePixelCacheType(pIVar1), iVar5 == 3)) &&\n     ((iVar5 = GetImagePixelCacheType(pIVar1), iVar5 == 4 ||\n      (iVar5 = GetImagePixelCacheType(pIVar1), iVar5 == 3)))" (parenthesized_expression "((iVar5 == 4) || (iVar5 = GetImagePixelCacheType(pIVar1), iVar5 == 3))" ( (binary_expression "(iVar5 == 4) || (iVar5 = GetImagePixelCacheType(pIVar1), iVar5 == 3)" (parenthesized_expression "(iVar5 == 4)" ( (binary_expression "iVar5 == 4" identifier == number_literal) )) || (parenthesized_expression "(iVar5 = GetImagePixelCacheType(pIVar1), iVar5 == 3)" ( (comma_expression "iVar5 = GetImagePixelCacheType(pIVar1), iVar5 == 3" (assignment_expression "iVar5 = GetImagePixelCacheType(pIVar1)" identifier = (call_expression "GetImagePixelCacheType(pIVar1)" identifier (argument_list "(pIVar1)" ( identifier )))) , (binary_expression "iVar5 == 3" identifier == number_literal)) ))) )) && (parenthesized_expression "((iVar5 = GetImagePixelCacheType(pIVar1), iVar5 == 4 ||\n      (iVar5 = GetImagePixelCacheType(pIVar1), iVar5 == 3)))" ( (parenthesized_expression "(iVar5 = GetImagePixelCacheType(pIVar1), iVar5 == 4 ||\n      (iVar5 = GetImagePixelCacheType(pIVar1), iVar5 == 3))" ( (comma_expression "iVar5 = GetImagePixelCacheType(pIVar1), iVar5 == 4 ||\n      (iVar5 = GetImagePixelCacheType(pIVar1), iVar5 == 3)" (assignment_expression "iVar5 = GetImagePixelCacheType(pIVar1)" identifier = (call_expression "GetImagePixelCacheType(pIVar1)" identifier (argument_list "(pIVar1)" ( identifier )))) , (binary_expression "iVar5 == 4 ||\n      (iVar5 = GetImagePixelCacheType(pIVar1), iVar5 == 3)" (binary_expression "iVar5 == 4" identifier == number_literal) || (parenthesized_expression "(iVar5 = GetImagePixelCacheType(pIVar1), iVar5 == 3)" ( (comma_expression "iVar5 = GetImagePixelCacheType(pIVar1), iVar5 == 3" (assignment_expression "iVar5 = GetImagePixelCacheType(pIVar1)" identifier = (call_expression "GetImagePixelCacheType(pIVar1)" identifier (argument_list "(pIVar1)" ( identifier )))) , (binary_expression "iVar5 == 3" identifier == number_literal)) )))) )) ))) )) (compound_statement "{\n    lVar7 = GetMagickResourceLimit(7);\n    lVar8 = sVar2 - lVar8;\n    lVar9 = lVar8 + 0x3f;\n    if (-1 < lVar8) {\n      lVar9 = lVar8;\n    }\n    lVar9 = lVar9 >> 6;\n    bVar3 = 0x7f < lVar8;\n    if (lVar7 < lVar9) {\n      lVar8 = GetMagickResourceLimit(7);\n      bVar3 = 1 < lVar8;\n    }\n    lVar8 = 1;\n    if ((bVar3) && (lVar7 = GetMagickResourceLimit(7), lVar8 = lVar9, lVar7 < lVar9)) {\n      lVar8 = GetMagickResourceLimit(7);\n    }\n  }" { (expression_statement "lVar7 = GetMagickResourceLimit(7);" (assignment_expression "lVar7 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (expression_statement "lVar8 = sVar2 - lVar8;" (assignment_expression "lVar8 = sVar2 - lVar8" identifier = (binary_expression "sVar2 - lVar8" identifier - identifier)) ;) (expression_statement "lVar9 = lVar8 + 0x3f;" (assignment_expression "lVar9 = lVar8 + 0x3f" identifier = (binary_expression "lVar8 + 0x3f" identifier + number_literal)) ;) (if_statement "if (-1 < lVar8) {\n      lVar9 = lVar8;\n    }" if (parenthesized_expression "(-1 < lVar8)" ( (binary_expression "-1 < lVar8" number_literal < identifier) )) (compound_statement "{\n      lVar9 = lVar8;\n    }" { (expression_statement "lVar9 = lVar8;" (assignment_expression "lVar9 = lVar8" identifier = identifier) ;) })) (expression_statement "lVar9 = lVar9 >> 6;" (assignment_expression "lVar9 = lVar9 >> 6" identifier = (binary_expression "lVar9 >> 6" identifier >> number_literal)) ;) (expression_statement "bVar3 = 0x7f < lVar8;" (assignment_expression "bVar3 = 0x7f < lVar8" identifier = (binary_expression "0x7f < lVar8" number_literal < identifier)) ;) (if_statement "if (lVar7 < lVar9) {\n      lVar8 = GetMagickResourceLimit(7);\n      bVar3 = 1 < lVar8;\n    }" if (parenthesized_expression "(lVar7 < lVar9)" ( (binary_expression "lVar7 < lVar9" identifier < identifier) )) (compound_statement "{\n      lVar8 = GetMagickResourceLimit(7);\n      bVar3 = 1 < lVar8;\n    }" { (expression_statement "lVar8 = GetMagickResourceLimit(7);" (assignment_expression "lVar8 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (expression_statement "bVar3 = 1 < lVar8;" (assignment_expression "bVar3 = 1 < lVar8" identifier = (binary_expression "1 < lVar8" number_literal < identifier)) ;) })) (expression_statement "lVar8 = 1;" (assignment_expression "lVar8 = 1" identifier = number_literal) ;) (if_statement "if ((bVar3) && (lVar7 = GetMagickResourceLimit(7), lVar8 = lVar9, lVar7 < lVar9)) {\n      lVar8 = GetMagickResourceLimit(7);\n    }" if (parenthesized_expression "((bVar3) && (lVar7 = GetMagickResourceLimit(7), lVar8 = lVar9, lVar7 < lVar9))" ( (binary_expression "(bVar3) && (lVar7 = GetMagickResourceLimit(7), lVar8 = lVar9, lVar7 < lVar9)" (parenthesized_expression "(bVar3)" ( identifier )) && (parenthesized_expression "(lVar7 = GetMagickResourceLimit(7), lVar8 = lVar9, lVar7 < lVar9)" ( (comma_expression "lVar7 = GetMagickResourceLimit(7), lVar8 = lVar9, lVar7 < lVar9" (assignment_expression "lVar7 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) , (comma_expression "lVar8 = lVar9, lVar7 < lVar9" (assignment_expression "lVar8 = lVar9" identifier = identifier) , (binary_expression "lVar7 < lVar9" identifier < identifier))) ))) )) (compound_statement "{\n      lVar8 = GetMagickResourceLimit(7);\n    }" { (expression_statement "lVar8 = GetMagickResourceLimit(7);" (assignment_expression "lVar8 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) })) }) (else_clause "else {\n    uVar6 = GetMagickResourceLimit(7);\n    if (uVar6 < 2) {\n      uVar6 = GetMagickResourceLimit(7);\n      lVar8 = 1;\n      if (uVar6 < 2) goto LAB_0020c47e;\n    }\n    uVar6 = GetMagickResourceLimit(7);\n    lVar8 = 2;\n    if (uVar6 < 2) {\n      lVar8 = GetMagickResourceLimit(7);\n    }\n  }" else (compound_statement "{\n    uVar6 = GetMagickResourceLimit(7);\n    if (uVar6 < 2) {\n      uVar6 = GetMagickResourceLimit(7);\n      lVar8 = 1;\n      if (uVar6 < 2) goto LAB_0020c47e;\n    }\n    uVar6 = GetMagickResourceLimit(7);\n    lVar8 = 2;\n    if (uVar6 < 2) {\n      lVar8 = GetMagickResourceLimit(7);\n    }\n  }" { (expression_statement "uVar6 = GetMagickResourceLimit(7);" (assignment_expression "uVar6 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (if_statement "if (uVar6 < 2) {\n      uVar6 = GetMagickResourceLimit(7);\n      lVar8 = 1;\n      if (uVar6 < 2) goto LAB_0020c47e;\n    }" if (parenthesized_expression "(uVar6 < 2)" ( (binary_expression "uVar6 < 2" identifier < number_literal) )) (compound_statement "{\n      uVar6 = GetMagickResourceLimit(7);\n      lVar8 = 1;\n      if (uVar6 < 2) goto LAB_0020c47e;\n    }" { (expression_statement "uVar6 = GetMagickResourceLimit(7);" (assignment_expression "uVar6 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (expression_statement "lVar8 = 1;" (assignment_expression "lVar8 = 1" identifier = number_literal) ;) (if_statement "if (uVar6 < 2) goto LAB_0020c47e;" if (parenthesized_expression "(uVar6 < 2)" ( (binary_expression "uVar6 < 2" identifier < number_literal) )) (goto_statement "goto LAB_0020c47e;" goto statement_identifier ;)) })) (expression_statement "uVar6 = GetMagickResourceLimit(7);" (assignment_expression "uVar6 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (expression_statement "lVar8 = 2;" (assignment_expression "lVar8 = 2" identifier = number_literal) ;) (if_statement "if (uVar6 < 2) {\n      lVar8 = GetMagickResourceLimit(7);\n    }" if (parenthesized_expression "(uVar6 < 2)" ( (binary_expression "uVar6 < 2" identifier < number_literal) )) (compound_statement "{\n      lVar8 = GetMagickResourceLimit(7);\n    }" { (expression_statement "lVar8 = GetMagickResourceLimit(7);" (assignment_expression "lVar8 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) })) }))) (labeled_statement "LAB_0020c47e:\n  local_58 = &progress;" statement_identifier : (expression_statement "local_58 = &progress;" (assignment_expression "local_58 = &progress" identifier = (pointer_expression "&progress" & identifier)) ;)) (expression_statement "local_50 = MagickTrue;" (assignment_expression "local_50 = MagickTrue" identifier = identifier) ;) (expression_statement "local_78 = destination;" (assignment_expression "local_78 = destination" identifier = identifier) ;) (expression_statement "local_70 = set;" (assignment_expression "local_70 = set" identifier = identifier) ;) (expression_statement "local_68 = context;" (assignment_expression "local_68 = context" identifier = identifier) ;) (expression_statement "local_60 = pIVar1;" (assignment_expression "local_60 = pIVar1" identifier = identifier) ;) (expression_statement "GOMP_parallel(SetWandViewIterator__omp_fn_2,&local_78,lVar8,0);" (call_expression "GOMP_parallel(SetWandViewIterator__omp_fn_2,&local_78,lVar8,0)" identifier (argument_list "(SetWandViewIterator__omp_fn_2,&local_78,lVar8,0)" ( identifier , (pointer_expression "&local_78" & identifier) , identifier , number_literal ))) ;) (expression_statement "MVar4 = local_50;" (assignment_expression "MVar4 = local_50" identifier = identifier) ;) (labeled_statement "LAB_0020c3bf:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" statement_identifier : (if_statement "if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" if (parenthesized_expression "(local_40 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" { comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return MVar4;" return identifier ;) })))
(translation_unit "ulong SetWandViewIterator(long param_1,long param_2,undefined8 param_3)\n\n{\n  undefined8 uVar1;\n  bool bVar2;\n  int iVar3;\n  ulong uVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  long in_FS_OFFSET;\n  undefined8 local_80;\n  long local_78;\n  long local_70;\n  undefined8 local_68;\n  undefined8 local_60;\n  undefined8 *local_58;\n  uint local_50;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == 0) {\n                    \n    __assert_fail("destination != (WandView *) NULL","MagickWand/wand-view.c",0x3ab,\n                  "SetWandViewIterator");\n  }\n  if (*(long *)(param_1 + 0x1060) != 0xabacadab) {\n                    \n    __assert_fail("destination->signature == MagickWandSignature","MagickWand/wand-view.c",0x3ac,\n                  "SetWandViewIterator");\n  }\n  uVar4 = 0;\n  if (param_2 == 0) goto LAB_0020c3bf;\n  uVar1 = *(undefined8 *)(*(long *)(param_1 + 0x1030) + 0x1008);\n  uVar4 = SetImageStorageClass(uVar1,1,*(undefined8 *)(param_1 + 0x1050));\n  if ((int)uVar4 == 0) goto LAB_0020c3bf;\n  local_80 = 0;\n  lVar6 = *(long *)(param_1 + 0x1018);\n  lVar7 = *(long *)(param_1 + 0x1028);\n  iVar3 = GetImagePixelCacheType(uVar1);\n  if (((iVar3 == 4) || (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)) &&\n     ((iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)))) {\n    lVar5 = GetMagickResourceLimit(7);\n    lVar6 = lVar6 - lVar7;\n    lVar7 = lVar6 + 0x3f;\n    if (-1 < lVar6) {\n      lVar7 = lVar6;\n    }\n    lVar7 = lVar7 >> 6;\n    bVar2 = 0x7f < lVar6;\n    if (lVar5 < lVar7) {\n      lVar6 = GetMagickResourceLimit(7);\n      bVar2 = 1 < lVar6;\n    }\n    lVar6 = 1;\n    if ((bVar2) && (lVar5 = GetMagickResourceLimit(7), lVar6 = lVar7, lVar5 < lVar7)) {\n      lVar6 = GetMagickResourceLimit(7);\n    }\n  }\n  else {\n    uVar4 = GetMagickResourceLimit(7);\n    if (uVar4 < 2) {\n      uVar4 = GetMagickResourceLimit(7);\n      lVar6 = 1;\n      if (uVar4 < 2) goto LAB_0020c47e;\n    }\n    uVar4 = GetMagickResourceLimit(7);\n    lVar6 = 2;\n    if (uVar4 < 2) {\n      lVar6 = GetMagickResourceLimit(7);\n    }\n  }\nLAB_0020c47e:\n  local_58 = &local_80;\n  local_50 = 1;\n  local_78 = param_1;\n  local_70 = param_2;\n  local_68 = param_3;\n  local_60 = uVar1;\n  GOMP_parallel(FUN_0020ab0c,&local_78,lVar6,0);\n  uVar4 = (ulong)local_50;\nLAB_0020c3bf:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return uVar4;\n}\n\n" (function_definition "ulong SetWandViewIterator(long param_1,long param_2,undefined8 param_3)\n\n{\n  undefined8 uVar1;\n  bool bVar2;\n  int iVar3;\n  ulong uVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  long in_FS_OFFSET;\n  undefined8 local_80;\n  long local_78;\n  long local_70;\n  undefined8 local_68;\n  undefined8 local_60;\n  undefined8 *local_58;\n  uint local_50;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == 0) {\n                    \n    __assert_fail("destination != (WandView *) NULL","MagickWand/wand-view.c",0x3ab,\n                  "SetWandViewIterator");\n  }\n  if (*(long *)(param_1 + 0x1060) != 0xabacadab) {\n                    \n    __assert_fail("destination->signature == MagickWandSignature","MagickWand/wand-view.c",0x3ac,\n                  "SetWandViewIterator");\n  }\n  uVar4 = 0;\n  if (param_2 == 0) goto LAB_0020c3bf;\n  uVar1 = *(undefined8 *)(*(long *)(param_1 + 0x1030) + 0x1008);\n  uVar4 = SetImageStorageClass(uVar1,1,*(undefined8 *)(param_1 + 0x1050));\n  if ((int)uVar4 == 0) goto LAB_0020c3bf;\n  local_80 = 0;\n  lVar6 = *(long *)(param_1 + 0x1018);\n  lVar7 = *(long *)(param_1 + 0x1028);\n  iVar3 = GetImagePixelCacheType(uVar1);\n  if (((iVar3 == 4) || (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)) &&\n     ((iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)))) {\n    lVar5 = GetMagickResourceLimit(7);\n    lVar6 = lVar6 - lVar7;\n    lVar7 = lVar6 + 0x3f;\n    if (-1 < lVar6) {\n      lVar7 = lVar6;\n    }\n    lVar7 = lVar7 >> 6;\n    bVar2 = 0x7f < lVar6;\n    if (lVar5 < lVar7) {\n      lVar6 = GetMagickResourceLimit(7);\n      bVar2 = 1 < lVar6;\n    }\n    lVar6 = 1;\n    if ((bVar2) && (lVar5 = GetMagickResourceLimit(7), lVar6 = lVar7, lVar5 < lVar7)) {\n      lVar6 = GetMagickResourceLimit(7);\n    }\n  }\n  else {\n    uVar4 = GetMagickResourceLimit(7);\n    if (uVar4 < 2) {\n      uVar4 = GetMagickResourceLimit(7);\n      lVar6 = 1;\n      if (uVar4 < 2) goto LAB_0020c47e;\n    }\n    uVar4 = GetMagickResourceLimit(7);\n    lVar6 = 2;\n    if (uVar4 < 2) {\n      lVar6 = GetMagickResourceLimit(7);\n    }\n  }\nLAB_0020c47e:\n  local_58 = &local_80;\n  local_50 = 1;\n  local_78 = param_1;\n  local_70 = param_2;\n  local_68 = param_3;\n  local_60 = uVar1;\n  GOMP_parallel(FUN_0020ab0c,&local_78,lVar6,0);\n  uVar4 = (ulong)local_50;\nLAB_0020c3bf:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return uVar4;\n}" type_identifier (function_declarator "SetWandViewIterator(long param_1,long param_2,undefined8 param_3)" identifier (parameter_list "(long param_1,long param_2,undefined8 param_3)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) ))) (compound_statement "{\n  undefined8 uVar1;\n  bool bVar2;\n  int iVar3;\n  ulong uVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  long in_FS_OFFSET;\n  undefined8 local_80;\n  long local_78;\n  long local_70;\n  undefined8 local_68;\n  undefined8 local_60;\n  undefined8 *local_58;\n  uint local_50;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == 0) {\n                    \n    __assert_fail("destination != (WandView *) NULL","MagickWand/wand-view.c",0x3ab,\n                  "SetWandViewIterator");\n  }\n  if (*(long *)(param_1 + 0x1060) != 0xabacadab) {\n                    \n    __assert_fail("destination->signature == MagickWandSignature","MagickWand/wand-view.c",0x3ac,\n                  "SetWandViewIterator");\n  }\n  uVar4 = 0;\n  if (param_2 == 0) goto LAB_0020c3bf;\n  uVar1 = *(undefined8 *)(*(long *)(param_1 + 0x1030) + 0x1008);\n  uVar4 = SetImageStorageClass(uVar1,1,*(undefined8 *)(param_1 + 0x1050));\n  if ((int)uVar4 == 0) goto LAB_0020c3bf;\n  local_80 = 0;\n  lVar6 = *(long *)(param_1 + 0x1018);\n  lVar7 = *(long *)(param_1 + 0x1028);\n  iVar3 = GetImagePixelCacheType(uVar1);\n  if (((iVar3 == 4) || (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)) &&\n     ((iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)))) {\n    lVar5 = GetMagickResourceLimit(7);\n    lVar6 = lVar6 - lVar7;\n    lVar7 = lVar6 + 0x3f;\n    if (-1 < lVar6) {\n      lVar7 = lVar6;\n    }\n    lVar7 = lVar7 >> 6;\n    bVar2 = 0x7f < lVar6;\n    if (lVar5 < lVar7) {\n      lVar6 = GetMagickResourceLimit(7);\n      bVar2 = 1 < lVar6;\n    }\n    lVar6 = 1;\n    if ((bVar2) && (lVar5 = GetMagickResourceLimit(7), lVar6 = lVar7, lVar5 < lVar7)) {\n      lVar6 = GetMagickResourceLimit(7);\n    }\n  }\n  else {\n    uVar4 = GetMagickResourceLimit(7);\n    if (uVar4 < 2) {\n      uVar4 = GetMagickResourceLimit(7);\n      lVar6 = 1;\n      if (uVar4 < 2) goto LAB_0020c47e;\n    }\n    uVar4 = GetMagickResourceLimit(7);\n    lVar6 = 2;\n    if (uVar4 < 2) {\n      lVar6 = GetMagickResourceLimit(7);\n    }\n  }\nLAB_0020c47e:\n  local_58 = &local_80;\n  local_50 = 1;\n  local_78 = param_1;\n  local_70 = param_2;\n  local_68 = param_3;\n  local_60 = uVar1;\n  GOMP_parallel(FUN_0020ab0c,&local_78,lVar6,0);\n  uVar4 = (ulong)local_50;\nLAB_0020c3bf:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return uVar4;\n}" { (declaration "undefined8 uVar1;" type_identifier identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "ulong uVar4;" type_identifier identifier ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 local_80;" type_identifier identifier ;) (declaration "long local_78;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_70;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 local_68;" type_identifier identifier ;) (declaration "undefined8 local_60;" type_identifier identifier ;) (declaration "undefined8 *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (param_1 == 0) {\n                    \n    __assert_fail("destination != (WandView *) NULL","MagickWand/wand-view.c",0x3ab,\n                  "SetWandViewIterator");\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    __assert_fail("destination != (WandView *) NULL","MagickWand/wand-view.c",0x3ab,\n                  "SetWandViewIterator");\n  }" { (expression_statement "__assert_fail("destination != (WandView *) NULL","MagickWand/wand-view.c",0x3ab,\n                  "SetWandViewIterator");" (call_expression "__assert_fail("destination != (WandView *) NULL","MagickWand/wand-view.c",0x3ab,\n                  "SetWandViewIterator")" identifier (argument_list "("destination != (WandView *) NULL","MagickWand/wand-view.c",0x3ab,\n                  "SetWandViewIterator")" ( (string_literal ""destination != (WandView *) NULL"" " string_content ") , (string_literal ""MagickWand/wand-view.c"" " string_content ") , number_literal , (string_literal ""SetWandViewIterator"" " string_content ") ))) ;) })) (if_statement "if (*(long *)(param_1 + 0x1060) != 0xabacadab) {\n                    \n    __assert_fail("destination->signature == MagickWandSignature","MagickWand/wand-view.c",0x3ac,\n                  "SetWandViewIterator");\n  }" if (parenthesized_expression "(*(long *)(param_1 + 0x1060) != 0xabacadab)" ( (binary_expression "*(long *)(param_1 + 0x1060) != 0xabacadab" (pointer_expression "*(long *)(param_1 + 0x1060)" * (cast_expression "(long *)(param_1 + 0x1060)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1060)" ( (binary_expression "param_1 + 0x1060" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    \n    __assert_fail("destination->signature == MagickWandSignature","MagickWand/wand-view.c",0x3ac,\n                  "SetWandViewIterator");\n  }" { (expression_statement "__assert_fail("destination->signature == MagickWandSignature","MagickWand/wand-view.c",0x3ac,\n                  "SetWandViewIterator");" (call_expression "__assert_fail("destination->signature == MagickWandSignature","MagickWand/wand-view.c",0x3ac,\n                  "SetWandViewIterator")" identifier (argument_list "("destination->signature == MagickWandSignature","MagickWand/wand-view.c",0x3ac,\n                  "SetWandViewIterator")" ( (string_literal ""destination->signature == MagickWandSignature"" " string_content ") , (string_literal ""MagickWand/wand-view.c"" " string_content ") , number_literal , (string_literal ""SetWandViewIterator"" " string_content ") ))) ;) })) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (if_statement "if (param_2 == 0) goto LAB_0020c3bf;" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0020c3bf;" goto statement_identifier ;)) (expression_statement "uVar1 = *(undefined8 *)(*(long *)(param_1 + 0x1030) + 0x1008);" (assignment_expression "uVar1 = *(undefined8 *)(*(long *)(param_1 + 0x1030) + 0x1008)" identifier = (pointer_expression "*(undefined8 *)(*(long *)(param_1 + 0x1030) + 0x1008)" * (cast_expression "(undefined8 *)(*(long *)(param_1 + 0x1030) + 0x1008)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 0x1030) + 0x1008)" ( (binary_expression "*(long *)(param_1 + 0x1030) + 0x1008" (pointer_expression "*(long *)(param_1 + 0x1030)" * (cast_expression "(long *)(param_1 + 0x1030)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1030)" ( (binary_expression "param_1 + 0x1030" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar4 = SetImageStorageClass(uVar1,1,*(undefined8 *)(param_1 + 0x1050));" (assignment_expression "uVar4 = SetImageStorageClass(uVar1,1,*(undefined8 *)(param_1 + 0x1050))" identifier = (call_expression "SetImageStorageClass(uVar1,1,*(undefined8 *)(param_1 + 0x1050))" identifier (argument_list "(uVar1,1,*(undefined8 *)(param_1 + 0x1050))" ( identifier , number_literal , (pointer_expression "*(undefined8 *)(param_1 + 0x1050)" * (cast_expression "(undefined8 *)(param_1 + 0x1050)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1050)" ( (binary_expression "param_1 + 0x1050" identifier + number_literal) )))) )))) ;) (if_statement "if ((int)uVar4 == 0) goto LAB_0020c3bf;" if (parenthesized_expression "((int)uVar4 == 0)" ( (binary_expression "(int)uVar4 == 0" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (goto_statement "goto LAB_0020c3bf;" goto statement_identifier ;)) (expression_statement "local_80 = 0;" (assignment_expression "local_80 = 0" identifier = number_literal) ;) (expression_statement "lVar6 = *(long *)(param_1 + 0x1018);" (assignment_expression "lVar6 = *(long *)(param_1 + 0x1018)" identifier = (pointer_expression "*(long *)(param_1 + 0x1018)" * (cast_expression "(long *)(param_1 + 0x1018)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1018)" ( (binary_expression "param_1 + 0x1018" identifier + number_literal) ))))) ;) (expression_statement "lVar7 = *(long *)(param_1 + 0x1028);" (assignment_expression "lVar7 = *(long *)(param_1 + 0x1028)" identifier = (pointer_expression "*(long *)(param_1 + 0x1028)" * (cast_expression "(long *)(param_1 + 0x1028)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1028)" ( (binary_expression "param_1 + 0x1028" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = GetImagePixelCacheType(uVar1);" (assignment_expression "iVar3 = GetImagePixelCacheType(uVar1)" identifier = (call_expression "GetImagePixelCacheType(uVar1)" identifier (argument_list "(uVar1)" ( identifier )))) ;) (if_statement "if (((iVar3 == 4) || (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)) &&\n     ((iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)))) {\n    lVar5 = GetMagickResourceLimit(7);\n    lVar6 = lVar6 - lVar7;\n    lVar7 = lVar6 + 0x3f;\n    if (-1 < lVar6) {\n      lVar7 = lVar6;\n    }\n    lVar7 = lVar7 >> 6;\n    bVar2 = 0x7f < lVar6;\n    if (lVar5 < lVar7) {\n      lVar6 = GetMagickResourceLimit(7);\n      bVar2 = 1 < lVar6;\n    }\n    lVar6 = 1;\n    if ((bVar2) && (lVar5 = GetMagickResourceLimit(7), lVar6 = lVar7, lVar5 < lVar7)) {\n      lVar6 = GetMagickResourceLimit(7);\n    }\n  }\n  else {\n    uVar4 = GetMagickResourceLimit(7);\n    if (uVar4 < 2) {\n      uVar4 = GetMagickResourceLimit(7);\n      lVar6 = 1;\n      if (uVar4 < 2) goto LAB_0020c47e;\n    }\n    uVar4 = GetMagickResourceLimit(7);\n    lVar6 = 2;\n    if (uVar4 < 2) {\n      lVar6 = GetMagickResourceLimit(7);\n    }\n  }" if (parenthesized_expression "(((iVar3 == 4) || (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)) &&\n     ((iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3))))" ( (binary_expression "((iVar3 == 4) || (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)) &&\n     ((iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)))" (parenthesized_expression "((iVar3 == 4) || (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3))" ( (binary_expression "(iVar3 == 4) || (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)" (parenthesized_expression "(iVar3 == 4)" ( (binary_expression "iVar3 == 4" identifier == number_literal) )) || (parenthesized_expression "(iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)" ( (comma_expression "iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3" (assignment_expression "iVar3 = GetImagePixelCacheType(uVar1)" identifier = (call_expression "GetImagePixelCacheType(uVar1)" identifier (argument_list "(uVar1)" ( identifier )))) , (binary_expression "iVar3 == 3" identifier == number_literal)) ))) )) && (parenthesized_expression "((iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)))" ( (parenthesized_expression "(iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3))" ( (comma_expression "iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)" (assignment_expression "iVar3 = GetImagePixelCacheType(uVar1)" identifier = (call_expression "GetImagePixelCacheType(uVar1)" identifier (argument_list "(uVar1)" ( identifier )))) , (binary_expression "iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)" (binary_expression "iVar3 == 4" identifier == number_literal) || (parenthesized_expression "(iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)" ( (comma_expression "iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3" (assignment_expression "iVar3 = GetImagePixelCacheType(uVar1)" identifier = (call_expression "GetImagePixelCacheType(uVar1)" identifier (argument_list "(uVar1)" ( identifier )))) , (binary_expression "iVar3 == 3" identifier == number_literal)) )))) )) ))) )) (compound_statement "{\n    lVar5 = GetMagickResourceLimit(7);\n    lVar6 = lVar6 - lVar7;\n    lVar7 = lVar6 + 0x3f;\n    if (-1 < lVar6) {\n      lVar7 = lVar6;\n    }\n    lVar7 = lVar7 >> 6;\n    bVar2 = 0x7f < lVar6;\n    if (lVar5 < lVar7) {\n      lVar6 = GetMagickResourceLimit(7);\n      bVar2 = 1 < lVar6;\n    }\n    lVar6 = 1;\n    if ((bVar2) && (lVar5 = GetMagickResourceLimit(7), lVar6 = lVar7, lVar5 < lVar7)) {\n      lVar6 = GetMagickResourceLimit(7);\n    }\n  }" { (expression_statement "lVar5 = GetMagickResourceLimit(7);" (assignment_expression "lVar5 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (expression_statement "lVar6 = lVar6 - lVar7;" (assignment_expression "lVar6 = lVar6 - lVar7" identifier = (binary_expression "lVar6 - lVar7" identifier - identifier)) ;) (expression_statement "lVar7 = lVar6 + 0x3f;" (assignment_expression "lVar7 = lVar6 + 0x3f" identifier = (binary_expression "lVar6 + 0x3f" identifier + number_literal)) ;) (if_statement "if (-1 < lVar6) {\n      lVar7 = lVar6;\n    }" if (parenthesized_expression "(-1 < lVar6)" ( (binary_expression "-1 < lVar6" number_literal < identifier) )) (compound_statement "{\n      lVar7 = lVar6;\n    }" { (expression_statement "lVar7 = lVar6;" (assignment_expression "lVar7 = lVar6" identifier = identifier) ;) })) (expression_statement "lVar7 = lVar7 >> 6;" (assignment_expression "lVar7 = lVar7 >> 6" identifier = (binary_expression "lVar7 >> 6" identifier >> number_literal)) ;) (expression_statement "bVar2 = 0x7f < lVar6;" (assignment_expression "bVar2 = 0x7f < lVar6" identifier = (binary_expression "0x7f < lVar6" number_literal < identifier)) ;) (if_statement "if (lVar5 < lVar7) {\n      lVar6 = GetMagickResourceLimit(7);\n      bVar2 = 1 < lVar6;\n    }" if (parenthesized_expression "(lVar5 < lVar7)" ( (binary_expression "lVar5 < lVar7" identifier < identifier) )) (compound_statement "{\n      lVar6 = GetMagickResourceLimit(7);\n      bVar2 = 1 < lVar6;\n    }" { (expression_statement "lVar6 = GetMagickResourceLimit(7);" (assignment_expression "lVar6 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (expression_statement "bVar2 = 1 < lVar6;" (assignment_expression "bVar2 = 1 < lVar6" identifier = (binary_expression "1 < lVar6" number_literal < identifier)) ;) })) (expression_statement "lVar6 = 1;" (assignment_expression "lVar6 = 1" identifier = number_literal) ;) (if_statement "if ((bVar2) && (lVar5 = GetMagickResourceLimit(7), lVar6 = lVar7, lVar5 < lVar7)) {\n      lVar6 = GetMagickResourceLimit(7);\n    }" if (parenthesized_expression "((bVar2) && (lVar5 = GetMagickResourceLimit(7), lVar6 = lVar7, lVar5 < lVar7))" ( (binary_expression "(bVar2) && (lVar5 = GetMagickResourceLimit(7), lVar6 = lVar7, lVar5 < lVar7)" (parenthesized_expression "(bVar2)" ( identifier )) && (parenthesized_expression "(lVar5 = GetMagickResourceLimit(7), lVar6 = lVar7, lVar5 < lVar7)" ( (comma_expression "lVar5 = GetMagickResourceLimit(7), lVar6 = lVar7, lVar5 < lVar7" (assignment_expression "lVar5 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) , (comma_expression "lVar6 = lVar7, lVar5 < lVar7" (assignment_expression "lVar6 = lVar7" identifier = identifier) , (binary_expression "lVar5 < lVar7" identifier < identifier))) ))) )) (compound_statement "{\n      lVar6 = GetMagickResourceLimit(7);\n    }" { (expression_statement "lVar6 = GetMagickResourceLimit(7);" (assignment_expression "lVar6 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) })) }) (else_clause "else {\n    uVar4 = GetMagickResourceLimit(7);\n    if (uVar4 < 2) {\n      uVar4 = GetMagickResourceLimit(7);\n      lVar6 = 1;\n      if (uVar4 < 2) goto LAB_0020c47e;\n    }\n    uVar4 = GetMagickResourceLimit(7);\n    lVar6 = 2;\n    if (uVar4 < 2) {\n      lVar6 = GetMagickResourceLimit(7);\n    }\n  }" else (compound_statement "{\n    uVar4 = GetMagickResourceLimit(7);\n    if (uVar4 < 2) {\n      uVar4 = GetMagickResourceLimit(7);\n      lVar6 = 1;\n      if (uVar4 < 2) goto LAB_0020c47e;\n    }\n    uVar4 = GetMagickResourceLimit(7);\n    lVar6 = 2;\n    if (uVar4 < 2) {\n      lVar6 = GetMagickResourceLimit(7);\n    }\n  }" { (expression_statement "uVar4 = GetMagickResourceLimit(7);" (assignment_expression "uVar4 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (if_statement "if (uVar4 < 2) {\n      uVar4 = GetMagickResourceLimit(7);\n      lVar6 = 1;\n      if (uVar4 < 2) goto LAB_0020c47e;\n    }" if (parenthesized_expression "(uVar4 < 2)" ( (binary_expression "uVar4 < 2" identifier < number_literal) )) (compound_statement "{\n      uVar4 = GetMagickResourceLimit(7);\n      lVar6 = 1;\n      if (uVar4 < 2) goto LAB_0020c47e;\n    }" { (expression_statement "uVar4 = GetMagickResourceLimit(7);" (assignment_expression "uVar4 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (expression_statement "lVar6 = 1;" (assignment_expression "lVar6 = 1" identifier = number_literal) ;) (if_statement "if (uVar4 < 2) goto LAB_0020c47e;" if (parenthesized_expression "(uVar4 < 2)" ( (binary_expression "uVar4 < 2" identifier < number_literal) )) (goto_statement "goto LAB_0020c47e;" goto statement_identifier ;)) })) (expression_statement "uVar4 = GetMagickResourceLimit(7);" (assignment_expression "uVar4 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) (expression_statement "lVar6 = 2;" (assignment_expression "lVar6 = 2" identifier = number_literal) ;) (if_statement "if (uVar4 < 2) {\n      lVar6 = GetMagickResourceLimit(7);\n    }" if (parenthesized_expression "(uVar4 < 2)" ( (binary_expression "uVar4 < 2" identifier < number_literal) )) (compound_statement "{\n      lVar6 = GetMagickResourceLimit(7);\n    }" { (expression_statement "lVar6 = GetMagickResourceLimit(7);" (assignment_expression "lVar6 = GetMagickResourceLimit(7)" identifier = (call_expression "GetMagickResourceLimit(7)" identifier (argument_list "(7)" ( number_literal )))) ;) })) }))) (labeled_statement "LAB_0020c47e:\n  local_58 = &local_80;" statement_identifier : (expression_statement "local_58 = &local_80;" (assignment_expression "local_58 = &local_80" identifier = (pointer_expression "&local_80" & identifier)) ;)) (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" identifier = number_literal) ;) (expression_statement "local_78 = param_1;" (assignment_expression "local_78 = param_1" identifier = identifier) ;) (expression_statement "local_70 = param_2;" (assignment_expression "local_70 = param_2" identifier = identifier) ;) (expression_statement "local_68 = param_3;" (assignment_expression "local_68 = param_3" identifier = identifier) ;) (expression_statement "local_60 = uVar1;" (assignment_expression "local_60 = uVar1" identifier = identifier) ;) (expression_statement "GOMP_parallel(FUN_0020ab0c,&local_78,lVar6,0);" (call_expression "GOMP_parallel(FUN_0020ab0c,&local_78,lVar6,0)" identifier (argument_list "(FUN_0020ab0c,&local_78,lVar6,0)" ( identifier , (pointer_expression "&local_78" & identifier) , identifier , number_literal ))) ;) (expression_statement "uVar4 = (ulong)local_50;" (assignment_expression "uVar4 = (ulong)local_50" identifier = (cast_expression "(ulong)local_50" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (labeled_statement "LAB_0020c3bf:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" statement_identifier : (if_statement "if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" if (parenthesized_expression "(local_40 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n    __stack_chk_fail();\n  }" { (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return uVar4;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 - IDENT)) ;) (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)) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( IDENT )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT < IDENT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (return_statement return IDENT ;) })))
(function_definition "ulong SetWandViewIterator(long param_1,long param_2,undefined8 param_3)\n\n{\n  undefined8 uVar1;\n  bool bVar2;\n  int iVar3;\n  ulong uVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  long in_FS_OFFSET;\n  undefined8 local_80;\n  long local_78;\n  long local_70;\n  undefined8 local_68;\n  undefined8 local_60;\n  undefined8 *local_58;\n  uint local_50;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == 0) {\n                    \n    __assert_fail("destination != (WandView *) NULL","MagickWand/wand-view.c",0x3ab,\n                  "SetWandViewIterator");\n  }\n  if (*(long *)(param_1 + 0x1060) != 0xabacadab) {\n                    \n    __assert_fail("destination->signature == MagickWandSignature","MagickWand/wand-view.c",0x3ac,\n                  "SetWandViewIterator");\n  }\n  uVar4 = 0;\n  if (param_2 == 0) goto LAB_0020c3bf;\n  uVar1 = *(undefined8 *)(*(long *)(param_1 + 0x1030) + 0x1008);\n  uVar4 = SetImageStorageClass(uVar1,1,*(undefined8 *)(param_1 + 0x1050));\n  if ((int)uVar4 == 0) goto LAB_0020c3bf;\n  local_80 = 0;\n  lVar6 = *(long *)(param_1 + 0x1018);\n  lVar7 = *(long *)(param_1 + 0x1028);\n  iVar3 = GetImagePixelCacheType(uVar1);\n  if (((iVar3 == 4) || (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)) &&\n     ((iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)))) {\n    lVar5 = GetMagickResourceLimit(7);\n    lVar6 = lVar6 - lVar7;\n    lVar7 = lVar6 + 0x3f;\n    if (-1 < lVar6) {\n      lVar7 = lVar6;\n    }\n    lVar7 = lVar7 >> 6;\n    bVar2 = 0x7f < lVar6;\n    if (lVar5 < lVar7) {\n      lVar6 = GetMagickResourceLimit(7);\n      bVar2 = 1 < lVar6;\n    }\n    lVar6 = 1;\n    if ((bVar2) && (lVar5 = GetMagickResourceLimit(7), lVar6 = lVar7, lVar5 < lVar7)) {\n      lVar6 = GetMagickResourceLimit(7);\n    }\n  }\n  else {\n    uVar4 = GetMagickResourceLimit(7);\n    if (uVar4 < 2) {\n      uVar4 = GetMagickResourceLimit(7);\n      lVar6 = 1;\n      if (uVar4 < 2) goto LAB_0020c47e;\n    }\n    uVar4 = GetMagickResourceLimit(7);\n    lVar6 = 2;\n    if (uVar4 < 2) {\n      lVar6 = GetMagickResourceLimit(7);\n    }\n  }\nLAB_0020c47e:\n  local_58 = &local_80;\n  local_50 = 1;\n  local_78 = param_1;\n  local_70 = param_2;\n  local_68 = param_3;\n  local_60 = uVar1;\n  GOMP_parallel(FUN_0020ab0c,&local_78,lVar6,0);\n  uVar4 = (ulong)local_50;\nLAB_0020c3bf:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return uVar4;\n}" (type_identifier "ulong") (function_declarator "SetWandViewIterator(long param_1,long param_2,undefined8 param_3)" (identifier "SetWandViewIterator") (parameter_list "(long param_1,long param_2,undefined8 param_3)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "long param_2" (sized_type_specifier "long" (long "long")) (identifier "param_2")) (, ",") (parameter_declaration "undefined8 param_3" (type_identifier "undefined8") (identifier "param_3")) () ")"))) (compound_statement "{\n  undefined8 uVar1;\n  bool bVar2;\n  int iVar3;\n  ulong uVar4;\n  long lVar5;\n  long lVar6;\n  long lVar7;\n  long in_FS_OFFSET;\n  undefined8 local_80;\n  long local_78;\n  long local_70;\n  undefined8 local_68;\n  undefined8 local_60;\n  undefined8 *local_58;\n  uint local_50;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == 0) {\n                    \n    __assert_fail("destination != (WandView *) NULL","MagickWand/wand-view.c",0x3ab,\n                  "SetWandViewIterator");\n  }\n  if (*(long *)(param_1 + 0x1060) != 0xabacadab) {\n                    \n    __assert_fail("destination->signature == MagickWandSignature","MagickWand/wand-view.c",0x3ac,\n                  "SetWandViewIterator");\n  }\n  uVar4 = 0;\n  if (param_2 == 0) goto LAB_0020c3bf;\n  uVar1 = *(undefined8 *)(*(long *)(param_1 + 0x1030) + 0x1008);\n  uVar4 = SetImageStorageClass(uVar1,1,*(undefined8 *)(param_1 + 0x1050));\n  if ((int)uVar4 == 0) goto LAB_0020c3bf;\n  local_80 = 0;\n  lVar6 = *(long *)(param_1 + 0x1018);\n  lVar7 = *(long *)(param_1 + 0x1028);\n  iVar3 = GetImagePixelCacheType(uVar1);\n  if (((iVar3 == 4) || (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)) &&\n     ((iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)))) {\n    lVar5 = GetMagickResourceLimit(7);\n    lVar6 = lVar6 - lVar7;\n    lVar7 = lVar6 + 0x3f;\n    if (-1 < lVar6) {\n      lVar7 = lVar6;\n    }\n    lVar7 = lVar7 >> 6;\n    bVar2 = 0x7f < lVar6;\n    if (lVar5 < lVar7) {\n      lVar6 = GetMagickResourceLimit(7);\n      bVar2 = 1 < lVar6;\n    }\n    lVar6 = 1;\n    if ((bVar2) && (lVar5 = GetMagickResourceLimit(7), lVar6 = lVar7, lVar5 < lVar7)) {\n      lVar6 = GetMagickResourceLimit(7);\n    }\n  }\n  else {\n    uVar4 = GetMagickResourceLimit(7);\n    if (uVar4 < 2) {\n      uVar4 = GetMagickResourceLimit(7);\n      lVar6 = 1;\n      if (uVar4 < 2) goto LAB_0020c47e;\n    }\n    uVar4 = GetMagickResourceLimit(7);\n    lVar6 = 2;\n    if (uVar4 < 2) {\n      lVar6 = GetMagickResourceLimit(7);\n    }\n  }\nLAB_0020c47e:\n  local_58 = &local_80;\n  local_50 = 1;\n  local_78 = param_1;\n  local_70 = param_2;\n  local_68 = param_3;\n  local_60 = uVar1;\n  GOMP_parallel(FUN_0020ab0c,&local_78,lVar6,0);\n  uVar4 = (ulong)local_50;\nLAB_0020c3bf:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return uVar4;\n}" ({ "{") (declaration "undefined8 uVar1;" (type_identifier "undefined8") (identifier "uVar1") (; ";")) (declaration "bool bVar2;" (primitive_type "bool") (identifier "bVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "ulong uVar4;" (type_identifier "ulong") (identifier "uVar4") (; ";")) (declaration "long lVar5;" (sized_type_specifier "long" (long "long")) (identifier "lVar5") (; ";")) (declaration "long lVar6;" (sized_type_specifier "long" (long "long")) (identifier "lVar6") (; ";")) (declaration "long lVar7;" (sized_type_specifier "long" (long "long")) (identifier "lVar7") (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "undefined8 local_80;" (type_identifier "undefined8") (identifier "local_80") (; ";")) (declaration "long local_78;" (sized_type_specifier "long" (long "long")) (identifier "local_78") (; ";")) (declaration "long local_70;" (sized_type_specifier "long" (long "long")) (identifier "local_70") (; ";")) (declaration "undefined8 local_68;" (type_identifier "undefined8") (identifier "local_68") (; ";")) (declaration "undefined8 local_60;" (type_identifier "undefined8") (identifier "local_60") (; ";")) (declaration "undefined8 *local_58;" (type_identifier "undefined8") (pointer_declarator "*local_58" (* "*") (identifier "local_58")) (; ";")) (declaration "uint local_50;" (type_identifier "uint") (identifier "local_50") (; ";")) (declaration "long local_40;" (sized_type_specifier "long" (long "long")) (identifier "local_40") (; ";")) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (= "=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (if_statement "if (param_1 == 0) {\n                    \n    __assert_fail("destination != (WandView *) NULL","MagickWand/wand-view.c",0x3ab,\n                  "SetWandViewIterator");\n  }" (if "if") (parenthesized_expression "(param_1 == 0)" (( "(") (binary_expression "param_1 == 0" (identifier "param_1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    __assert_fail("destination != (WandView *) NULL","MagickWand/wand-view.c",0x3ab,\n                  "SetWandViewIterator");\n  }" ({ "{") (expression_statement "__assert_fail("destination != (WandView *) NULL","MagickWand/wand-view.c",0x3ab,\n                  "SetWandViewIterator");" (call_expression "__assert_fail("destination != (WandView *) NULL","MagickWand/wand-view.c",0x3ab,\n                  "SetWandViewIterator")" (identifier "__assert_fail") (argument_list "("destination != (WandView *) NULL","MagickWand/wand-view.c",0x3ab,\n                  "SetWandViewIterator")" (( "(") (string_literal ""destination != (WandView *) NULL"" (" """) (string_content "destination != (WandView *) NULL") (" """)) (, ",") (string_literal ""MagickWand/wand-view.c"" (" """) (string_content "MagickWand/wand-view.c") (" """)) (, ",") (number_literal "0x3ab") (, ",") (string_literal ""SetWandViewIterator"" (" """) (string_content "SetWandViewIterator") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(long *)(param_1 + 0x1060) != 0xabacadab) {\n                    \n    __assert_fail("destination->signature == MagickWandSignature","MagickWand/wand-view.c",0x3ac,\n                  "SetWandViewIterator");\n  }" (if "if") (parenthesized_expression "(*(long *)(param_1 + 0x1060) != 0xabacadab)" (( "(") (binary_expression "*(long *)(param_1 + 0x1060) != 0xabacadab" (pointer_expression "*(long *)(param_1 + 0x1060)" (* "*") (cast_expression "(long *)(param_1 + 0x1060)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1060)" (( "(") (binary_expression "param_1 + 0x1060" (identifier "param_1") (+ "+") (number_literal "0x1060")) () ")")))) (!= "!=") (number_literal "0xabacadab")) () ")")) (compound_statement "{\n                    \n    __assert_fail("destination->signature == MagickWandSignature","MagickWand/wand-view.c",0x3ac,\n                  "SetWandViewIterator");\n  }" ({ "{") (expression_statement "__assert_fail("destination->signature == MagickWandSignature","MagickWand/wand-view.c",0x3ac,\n                  "SetWandViewIterator");" (call_expression "__assert_fail("destination->signature == MagickWandSignature","MagickWand/wand-view.c",0x3ac,\n                  "SetWandViewIterator")" (identifier "__assert_fail") (argument_list "("destination->signature == MagickWandSignature","MagickWand/wand-view.c",0x3ac,\n                  "SetWandViewIterator")" (( "(") (string_literal ""destination->signature == MagickWandSignature"" (" """) (string_content "destination->signature == MagickWandSignature") (" """)) (, ",") (string_literal ""MagickWand/wand-view.c"" (" """) (string_content "MagickWand/wand-view.c") (" """)) (, ",") (number_literal "0x3ac") (, ",") (string_literal ""SetWandViewIterator"" (" """) (string_content "SetWandViewIterator") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" (identifier "uVar4") (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_2 == 0) goto LAB_0020c3bf;" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0020c3bf;" (goto "goto") (statement_identifier "LAB_0020c3bf") (; ";"))) (expression_statement "uVar1 = *(undefined8 *)(*(long *)(param_1 + 0x1030) + 0x1008);" (assignment_expression "uVar1 = *(undefined8 *)(*(long *)(param_1 + 0x1030) + 0x1008)" (identifier "uVar1") (= "=") (pointer_expression "*(undefined8 *)(*(long *)(param_1 + 0x1030) + 0x1008)" (* "*") (cast_expression "(undefined8 *)(*(long *)(param_1 + 0x1030) + 0x1008)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_1 + 0x1030) + 0x1008)" (( "(") (binary_expression "*(long *)(param_1 + 0x1030) + 0x1008" (pointer_expression "*(long *)(param_1 + 0x1030)" (* "*") (cast_expression "(long *)(param_1 + 0x1030)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1030)" (( "(") (binary_expression "param_1 + 0x1030" (identifier "param_1") (+ "+") (number_literal "0x1030")) () ")")))) (+ "+") (number_literal "0x1008")) () ")"))))) (; ";")) (expression_statement "uVar4 = SetImageStorageClass(uVar1,1,*(undefined8 *)(param_1 + 0x1050));" (assignment_expression "uVar4 = SetImageStorageClass(uVar1,1,*(undefined8 *)(param_1 + 0x1050))" (identifier "uVar4") (= "=") (call_expression "SetImageStorageClass(uVar1,1,*(undefined8 *)(param_1 + 0x1050))" (identifier "SetImageStorageClass") (argument_list "(uVar1,1,*(undefined8 *)(param_1 + 0x1050))" (( "(") (identifier "uVar1") (, ",") (number_literal "1") (, ",") (pointer_expression "*(undefined8 *)(param_1 + 0x1050)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x1050)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1050)" (( "(") (binary_expression "param_1 + 0x1050" (identifier "param_1") (+ "+") (number_literal "0x1050")) () ")")))) () ")")))) (; ";")) (if_statement "if ((int)uVar4 == 0) goto LAB_0020c3bf;" (if "if") (parenthesized_expression "((int)uVar4 == 0)" (( "(") (binary_expression "(int)uVar4 == 0" (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0020c3bf;" (goto "goto") (statement_identifier "LAB_0020c3bf") (; ";"))) (expression_statement "local_80 = 0;" (assignment_expression "local_80 = 0" (identifier "local_80") (= "=") (number_literal "0")) (; ";")) (expression_statement "lVar6 = *(long *)(param_1 + 0x1018);" (assignment_expression "lVar6 = *(long *)(param_1 + 0x1018)" (identifier "lVar6") (= "=") (pointer_expression "*(long *)(param_1 + 0x1018)" (* "*") (cast_expression "(long *)(param_1 + 0x1018)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1018)" (( "(") (binary_expression "param_1 + 0x1018" (identifier "param_1") (+ "+") (number_literal "0x1018")) () ")"))))) (; ";")) (expression_statement "lVar7 = *(long *)(param_1 + 0x1028);" (assignment_expression "lVar7 = *(long *)(param_1 + 0x1028)" (identifier "lVar7") (= "=") (pointer_expression "*(long *)(param_1 + 0x1028)" (* "*") (cast_expression "(long *)(param_1 + 0x1028)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1028)" (( "(") (binary_expression "param_1 + 0x1028" (identifier "param_1") (+ "+") (number_literal "0x1028")) () ")"))))) (; ";")) (expression_statement "iVar3 = GetImagePixelCacheType(uVar1);" (assignment_expression "iVar3 = GetImagePixelCacheType(uVar1)" (identifier "iVar3") (= "=") (call_expression "GetImagePixelCacheType(uVar1)" (identifier "GetImagePixelCacheType") (argument_list "(uVar1)" (( "(") (identifier "uVar1") () ")")))) (; ";")) (if_statement "if (((iVar3 == 4) || (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)) &&\n     ((iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)))) {\n    lVar5 = GetMagickResourceLimit(7);\n    lVar6 = lVar6 - lVar7;\n    lVar7 = lVar6 + 0x3f;\n    if (-1 < lVar6) {\n      lVar7 = lVar6;\n    }\n    lVar7 = lVar7 >> 6;\n    bVar2 = 0x7f < lVar6;\n    if (lVar5 < lVar7) {\n      lVar6 = GetMagickResourceLimit(7);\n      bVar2 = 1 < lVar6;\n    }\n    lVar6 = 1;\n    if ((bVar2) && (lVar5 = GetMagickResourceLimit(7), lVar6 = lVar7, lVar5 < lVar7)) {\n      lVar6 = GetMagickResourceLimit(7);\n    }\n  }\n  else {\n    uVar4 = GetMagickResourceLimit(7);\n    if (uVar4 < 2) {\n      uVar4 = GetMagickResourceLimit(7);\n      lVar6 = 1;\n      if (uVar4 < 2) goto LAB_0020c47e;\n    }\n    uVar4 = GetMagickResourceLimit(7);\n    lVar6 = 2;\n    if (uVar4 < 2) {\n      lVar6 = GetMagickResourceLimit(7);\n    }\n  }" (if "if") (parenthesized_expression "(((iVar3 == 4) || (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)) &&\n     ((iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3))))" (( "(") (binary_expression "((iVar3 == 4) || (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)) &&\n     ((iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)))" (parenthesized_expression "((iVar3 == 4) || (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3))" (( "(") (binary_expression "(iVar3 == 4) || (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)" (parenthesized_expression "(iVar3 == 4)" (( "(") (binary_expression "iVar3 == 4" (identifier "iVar3") (== "==") (number_literal "4")) () ")")) (|| "||") (parenthesized_expression "(iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)" (( "(") (comma_expression "iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3" (assignment_expression "iVar3 = GetImagePixelCacheType(uVar1)" (identifier "iVar3") (= "=") (call_expression "GetImagePixelCacheType(uVar1)" (identifier "GetImagePixelCacheType") (argument_list "(uVar1)" (( "(") (identifier "uVar1") () ")")))) (, ",") (binary_expression "iVar3 == 3" (identifier "iVar3") (== "==") (number_literal "3"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)))" (( "(") (parenthesized_expression "(iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3))" (( "(") (comma_expression "iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)" (assignment_expression "iVar3 = GetImagePixelCacheType(uVar1)" (identifier "iVar3") (= "=") (call_expression "GetImagePixelCacheType(uVar1)" (identifier "GetImagePixelCacheType") (argument_list "(uVar1)" (( "(") (identifier "uVar1") () ")")))) (, ",") (binary_expression "iVar3 == 4 ||\n      (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)" (binary_expression "iVar3 == 4" (identifier "iVar3") (== "==") (number_literal "4")) (|| "||") (parenthesized_expression "(iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)" (( "(") (comma_expression "iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3" (assignment_expression "iVar3 = GetImagePixelCacheType(uVar1)" (identifier "iVar3") (= "=") (call_expression "GetImagePixelCacheType(uVar1)" (identifier "GetImagePixelCacheType") (argument_list "(uVar1)" (( "(") (identifier "uVar1") () ")")))) (, ",") (binary_expression "iVar3 == 3" (identifier "iVar3") (== "==") (number_literal "3"))) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n    lVar5 = GetMagickResourceLimit(7);\n    lVar6 = lVar6 - lVar7;\n    lVar7 = lVar6 + 0x3f;\n    if (-1 < lVar6) {\n      lVar7 = lVar6;\n    }\n    lVar7 = lVar7 >> 6;\n    bVar2 = 0x7f < lVar6;\n    if (lVar5 < lVar7) {\n      lVar6 = GetMagickResourceLimit(7);\n      bVar2 = 1 < lVar6;\n    }\n    lVar6 = 1;\n    if ((bVar2) && (lVar5 = GetMagickResourceLimit(7), lVar6 = lVar7, lVar5 < lVar7)) {\n      lVar6 = GetMagickResourceLimit(7);\n    }\n  }" ({ "{") (expression_statement "lVar5 = GetMagickResourceLimit(7);" (assignment_expression "lVar5 = GetMagickResourceLimit(7)" (identifier "lVar5") (= "=") (call_expression "GetMagickResourceLimit(7)" (identifier "GetMagickResourceLimit") (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (expression_statement "lVar6 = lVar6 - lVar7;" (assignment_expression "lVar6 = lVar6 - lVar7" (identifier "lVar6") (= "=") (binary_expression "lVar6 - lVar7" (identifier "lVar6") (- "-") (identifier "lVar7"))) (; ";")) (expression_statement "lVar7 = lVar6 + 0x3f;" (assignment_expression "lVar7 = lVar6 + 0x3f" (identifier "lVar7") (= "=") (binary_expression "lVar6 + 0x3f" (identifier "lVar6") (+ "+") (number_literal "0x3f"))) (; ";")) (if_statement "if (-1 < lVar6) {\n      lVar7 = lVar6;\n    }" (if "if") (parenthesized_expression "(-1 < lVar6)" (( "(") (binary_expression "-1 < lVar6" (number_literal "-1") (< "<") (identifier "lVar6")) () ")")) (compound_statement "{\n      lVar7 = lVar6;\n    }" ({ "{") (expression_statement "lVar7 = lVar6;" (assignment_expression "lVar7 = lVar6" (identifier "lVar7") (= "=") (identifier "lVar6")) (; ";")) (} "}"))) (expression_statement "lVar7 = lVar7 >> 6;" (assignment_expression "lVar7 = lVar7 >> 6" (identifier "lVar7") (= "=") (binary_expression "lVar7 >> 6" (identifier "lVar7") (>> ">>") (number_literal "6"))) (; ";")) (expression_statement "bVar2 = 0x7f < lVar6;" (assignment_expression "bVar2 = 0x7f < lVar6" (identifier "bVar2") (= "=") (binary_expression "0x7f < lVar6" (number_literal "0x7f") (< "<") (identifier "lVar6"))) (; ";")) (if_statement "if (lVar5 < lVar7) {\n      lVar6 = GetMagickResourceLimit(7);\n      bVar2 = 1 < lVar6;\n    }" (if "if") (parenthesized_expression "(lVar5 < lVar7)" (( "(") (binary_expression "lVar5 < lVar7" (identifier "lVar5") (< "<") (identifier "lVar7")) () ")")) (compound_statement "{\n      lVar6 = GetMagickResourceLimit(7);\n      bVar2 = 1 < lVar6;\n    }" ({ "{") (expression_statement "lVar6 = GetMagickResourceLimit(7);" (assignment_expression "lVar6 = GetMagickResourceLimit(7)" (identifier "lVar6") (= "=") (call_expression "GetMagickResourceLimit(7)" (identifier "GetMagickResourceLimit") (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (expression_statement "bVar2 = 1 < lVar6;" (assignment_expression "bVar2 = 1 < lVar6" (identifier "bVar2") (= "=") (binary_expression "1 < lVar6" (number_literal "1") (< "<") (identifier "lVar6"))) (; ";")) (} "}"))) (expression_statement "lVar6 = 1;" (assignment_expression "lVar6 = 1" (identifier "lVar6") (= "=") (number_literal "1")) (; ";")) (if_statement "if ((bVar2) && (lVar5 = GetMagickResourceLimit(7), lVar6 = lVar7, lVar5 < lVar7)) {\n      lVar6 = GetMagickResourceLimit(7);\n    }" (if "if") (parenthesized_expression "((bVar2) && (lVar5 = GetMagickResourceLimit(7), lVar6 = lVar7, lVar5 < lVar7))" (( "(") (binary_expression "(bVar2) && (lVar5 = GetMagickResourceLimit(7), lVar6 = lVar7, lVar5 < lVar7)" (parenthesized_expression "(bVar2)" (( "(") (identifier "bVar2") () ")")) (&& "&&") (parenthesized_expression "(lVar5 = GetMagickResourceLimit(7), lVar6 = lVar7, lVar5 < lVar7)" (( "(") (comma_expression "lVar5 = GetMagickResourceLimit(7), lVar6 = lVar7, lVar5 < lVar7" (assignment_expression "lVar5 = GetMagickResourceLimit(7)" (identifier "lVar5") (= "=") (call_expression "GetMagickResourceLimit(7)" (identifier "GetMagickResourceLimit") (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (, ",") (comma_expression "lVar6 = lVar7, lVar5 < lVar7" (assignment_expression "lVar6 = lVar7" (identifier "lVar6") (= "=") (identifier "lVar7")) (, ",") (binary_expression "lVar5 < lVar7" (identifier "lVar5") (< "<") (identifier "lVar7")))) () ")"))) () ")")) (compound_statement "{\n      lVar6 = GetMagickResourceLimit(7);\n    }" ({ "{") (expression_statement "lVar6 = GetMagickResourceLimit(7);" (assignment_expression "lVar6 = GetMagickResourceLimit(7)" (identifier "lVar6") (= "=") (call_expression "GetMagickResourceLimit(7)" (identifier "GetMagickResourceLimit") (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    uVar4 = GetMagickResourceLimit(7);\n    if (uVar4 < 2) {\n      uVar4 = GetMagickResourceLimit(7);\n      lVar6 = 1;\n      if (uVar4 < 2) goto LAB_0020c47e;\n    }\n    uVar4 = GetMagickResourceLimit(7);\n    lVar6 = 2;\n    if (uVar4 < 2) {\n      lVar6 = GetMagickResourceLimit(7);\n    }\n  }" (else "else") (compound_statement "{\n    uVar4 = GetMagickResourceLimit(7);\n    if (uVar4 < 2) {\n      uVar4 = GetMagickResourceLimit(7);\n      lVar6 = 1;\n      if (uVar4 < 2) goto LAB_0020c47e;\n    }\n    uVar4 = GetMagickResourceLimit(7);\n    lVar6 = 2;\n    if (uVar4 < 2) {\n      lVar6 = GetMagickResourceLimit(7);\n    }\n  }" ({ "{") (expression_statement "uVar4 = GetMagickResourceLimit(7);" (assignment_expression "uVar4 = GetMagickResourceLimit(7)" (identifier "uVar4") (= "=") (call_expression "GetMagickResourceLimit(7)" (identifier "GetMagickResourceLimit") (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (if_statement "if (uVar4 < 2) {\n      uVar4 = GetMagickResourceLimit(7);\n      lVar6 = 1;\n      if (uVar4 < 2) goto LAB_0020c47e;\n    }" (if "if") (parenthesized_expression "(uVar4 < 2)" (( "(") (binary_expression "uVar4 < 2" (identifier "uVar4") (< "<") (number_literal "2")) () ")")) (compound_statement "{\n      uVar4 = GetMagickResourceLimit(7);\n      lVar6 = 1;\n      if (uVar4 < 2) goto LAB_0020c47e;\n    }" ({ "{") (expression_statement "uVar4 = GetMagickResourceLimit(7);" (assignment_expression "uVar4 = GetMagickResourceLimit(7)" (identifier "uVar4") (= "=") (call_expression "GetMagickResourceLimit(7)" (identifier "GetMagickResourceLimit") (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (expression_statement "lVar6 = 1;" (assignment_expression "lVar6 = 1" (identifier "lVar6") (= "=") (number_literal "1")) (; ";")) (if_statement "if (uVar4 < 2) goto LAB_0020c47e;" (if "if") (parenthesized_expression "(uVar4 < 2)" (( "(") (binary_expression "uVar4 < 2" (identifier "uVar4") (< "<") (number_literal "2")) () ")")) (goto_statement "goto LAB_0020c47e;" (goto "goto") (statement_identifier "LAB_0020c47e") (; ";"))) (} "}"))) (expression_statement "uVar4 = GetMagickResourceLimit(7);" (assignment_expression "uVar4 = GetMagickResourceLimit(7)" (identifier "uVar4") (= "=") (call_expression "GetMagickResourceLimit(7)" (identifier "GetMagickResourceLimit") (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (expression_statement "lVar6 = 2;" (assignment_expression "lVar6 = 2" (identifier "lVar6") (= "=") (number_literal "2")) (; ";")) (if_statement "if (uVar4 < 2) {\n      lVar6 = GetMagickResourceLimit(7);\n    }" (if "if") (parenthesized_expression "(uVar4 < 2)" (( "(") (binary_expression "uVar4 < 2" (identifier "uVar4") (< "<") (number_literal "2")) () ")")) (compound_statement "{\n      lVar6 = GetMagickResourceLimit(7);\n    }" ({ "{") (expression_statement "lVar6 = GetMagickResourceLimit(7);" (assignment_expression "lVar6 = GetMagickResourceLimit(7)" (identifier "lVar6") (= "=") (call_expression "GetMagickResourceLimit(7)" (identifier "GetMagickResourceLimit") (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_0020c47e:\n  local_58 = &local_80;" (statement_identifier "LAB_0020c47e") (: ":") (expression_statement "local_58 = &local_80;" (assignment_expression "local_58 = &local_80" (identifier "local_58") (= "=") (pointer_expression "&local_80" (& "&") (identifier "local_80"))) (; ";"))) (expression_statement "local_50 = 1;" (assignment_expression "local_50 = 1" (identifier "local_50") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_78 = param_1;" (assignment_expression "local_78 = param_1" (identifier "local_78") (= "=") (identifier "param_1")) (; ";")) (expression_statement "local_70 = param_2;" (assignment_expression "local_70 = param_2" (identifier "local_70") (= "=") (identifier "param_2")) (; ";")) (expression_statement "local_68 = param_3;" (assignment_expression "local_68 = param_3" (identifier "local_68") (= "=") (identifier "param_3")) (; ";")) (expression_statement "local_60 = uVar1;" (assignment_expression "local_60 = uVar1" (identifier "local_60") (= "=") (identifier "uVar1")) (; ";")) (expression_statement "GOMP_parallel(FUN_0020ab0c,&local_78,lVar6,0);" (call_expression "GOMP_parallel(FUN_0020ab0c,&local_78,lVar6,0)" (identifier "GOMP_parallel") (argument_list "(FUN_0020ab0c,&local_78,lVar6,0)" (( "(") (identifier "FUN_0020ab0c") (, ",") (pointer_expression "&local_78" (& "&") (identifier "local_78")) (, ",") (identifier "lVar6") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "uVar4 = (ulong)local_50;" (assignment_expression "uVar4 = (ulong)local_50" (identifier "uVar4") (= "=") (cast_expression "(ulong)local_50" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_50"))) (; ";")) (labeled_statement "LAB_0020c3bf:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" (statement_identifier "LAB_0020c3bf") (: ":") (if_statement "if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" (if "if") (parenthesized_expression "(local_40 != *(long *)(in_FS_OFFSET + 0x28))" (( "(") (binary_expression "local_40 != *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (!= "!=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (compound_statement "{\n                    \n    __stack_chk_fail();\n  }" ({ "{") (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}")))

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

type_1 function_1(type_2 *var_2,type_3 var_4,void *context)

{
  type_4 *pIVar1;
  size_t var_11;
  bool bVar3;
  type_1 var_6;
  int var_9;
  type_5 var_15;
  long var_14;
  long var_12;
  long var_13;
  long var_1;
  type_6 progress;
  type_2 *local_78;
  type_3 local_70;
  void *local_68;
  type_4 *local_60;
  type_6 *local_58;
  type_1 local_50;
  long var_17;
  
  var_17 = *(long *)(var_1 + 0x28);
  if (var_2 == (type_2 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_3("destination != (WandView *) NULL","MagickWand/wand-view.c",0x3ab,
                  "SetWandViewIterator");
  }
  if (var_2->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    var_3("destination->signature == MagickWandSignature","MagickWand/wand-view.c",0x3ac,
                  "SetWandViewIterator");
  }
  var_6 = var_7;
  if (var_4 == (type_3)0x0) goto LAB_0020c3bf;
  pIVar1 = var_2->wand->images;
  var_6 = var_5(pIVar1,1,var_2->exception);
  if (var_6 == var_7) goto LAB_0020c3bf;
  progress = 0;
  var_11 = (var_2->extent).height;
  var_12 = (var_2->extent).y;
  var_9 = var_8(pIVar1);
  if (((var_9 == 4) || (var_9 = var_8(pIVar1), var_9 == 3)) &&
     ((var_9 = var_8(pIVar1), var_9 == 4 ||
      (var_9 = var_8(pIVar1), var_9 == 3)))) {
    var_14 = var_10(7);
    var_12 = var_11 - var_12;
    var_13 = var_12 + 0x3f;
    if (-1 < var_12) {
      var_13 = var_12;
    }
    var_13 = var_13 >> 6;
    bVar3 = 0x7f < var_12;
    if (var_14 < var_13) {
      var_12 = var_10(7);
      bVar3 = 1 < var_12;
    }
    var_12 = 1;
    if ((bVar3) && (var_14 = var_10(7), var_12 = var_13, var_14 < var_13)) {
      var_12 = var_10(7);
    }
  }
  else {
    var_15 = var_10(7);
    if (var_15 < 2) {
      var_15 = var_10(7);
      var_12 = 1;
      if (var_15 < 2) goto LAB_0020c47e;
    }
    var_15 = var_10(7);
    var_12 = 2;
    if (var_15 < 2) {
      var_12 = var_10(7);
    }
  }
LAB_0020c47e:
  local_58 = &progress;
  local_50 = MagickTrue;
  local_78 = var_2;
  local_70 = var_4;
  local_68 = context;
  local_60 = pIVar1;
  var_16(SetWandViewIterator__omp_fn_2,&local_78,var_12,0);
  var_6 = local_50;
LAB_0020c3bf:
  if (var_17 != *(long *)(var_1 + 0x28)) {
                    /* WARNING: Subroutine does not return */
    var_18();
  }
  return var_6;
}


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

ulong MASKED(long param_1,long param_2,undefined8 param_3)

{
  undefined8 uVar1;
  bool bVar2;
  int iVar3;
  ulong uVar4;
  long lVar5;
  long lVar6;
  long lVar7;
  long in_FS_OFFSET;
  undefined8 local_80;
  long local_78;
  long local_70;
  undefined8 local_68;
  undefined8 local_60;
  undefined8 *local_58;
  uint local_50;
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  if (param_1 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("destination != (WandView *) NULL","MagickWand/wand-view.c",0x3ab,
                  "MASKED");
  }
  if (*(long *)(param_1 + 0x1060) != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("destination->signature == MagickWandSignature","MagickWand/wand-view.c",0x3ac,
                  "MASKED");
  }
  uVar4 = 0;
  if (param_2 == 0) goto LAB_0020c3bf;
  uVar1 = *(undefined8 *)(*(long *)(param_1 + 0x1030) + 0x1008);
  uVar4 = SetImageStorageClass(uVar1,1,*(undefined8 *)(param_1 + 0x1050));
  if ((int)uVar4 == 0) goto LAB_0020c3bf;
  local_80 = 0;
  lVar6 = *(long *)(param_1 + 0x1018);
  lVar7 = *(long *)(param_1 + 0x1028);
  iVar3 = GetImagePixelCacheType(uVar1);
  if (((iVar3 == 4) || (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)) &&
     ((iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 4 ||
      (iVar3 = GetImagePixelCacheType(uVar1), iVar3 == 3)))) {
    lVar5 = GetMagickResourceLimit(7);
    lVar6 = lVar6 - lVar7;
    lVar7 = lVar6 + 0x3f;
    if (-1 < lVar6) {
      lVar7 = lVar6;
    }
    lVar7 = lVar7 >> 6;
    bVar2 = 0x7f < lVar6;
    if (lVar5 < lVar7) {
      lVar6 = GetMagickResourceLimit(7);
      bVar2 = 1 < lVar6;
    }
    lVar6 = 1;
    if ((bVar2) && (lVar5 = GetMagickResourceLimit(7), lVar6 = lVar7, lVar5 < lVar7)) {
      lVar6 = GetMagickResourceLimit(7);
    }
  }
  else {
    uVar4 = GetMagickResourceLimit(7);
    if (uVar4 < 2) {
      uVar4 = GetMagickResourceLimit(7);
      lVar6 = 1;
      if (uVar4 < 2) goto LAB_0020c47e;
    }
    uVar4 = GetMagickResourceLimit(7);
    lVar6 = 2;
    if (uVar4 < 2) {
      lVar6 = GetMagickResourceLimit(7);
    }
  }
LAB_0020c47e:
  local_58 = &local_80;
  local_50 = 1;
  local_78 = param_1;
  local_70 = param_2;
  local_68 = param_3;
  local_60 = uVar1;
  GOMP_parallel(FUN_0020ab0c,&local_78,lVar6,0);
  uVar4 = (ulong)local_50;
LAB_0020c3bf:
  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return uVar4;
}

