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

void ClearDrawingWand(DrawingWand *wand)

{
  size_t sVar1;
  DrawInfo *pDVar2;
  char *pcVar3;
  Image *pIVar4;
  MagickBooleanType MVar5;
  undefined *puVar6;
  DrawingWand *unaff_s0;
  DrawInfo **ppDVar7;
  
  if (wand == (DrawingWand *)0x0) {
    puVar6 = PTR_s_oint_00178034 + -0x4588;
    (*(code *)PTR___assert_fail_00178728)
              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1a1,puVar6);
LAB_000766f4:
    pcVar3 = (char *)(*(code *)PTR___assert_fail_00178728)
                               (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1a2,
                                puVar6 + -0x4588);
  }
  else {
    puVar6 = PTR_s_oint_00178034;
    unaff_s0 = wand;
    if (wand->signature != 0xabacadab) goto LAB_000766f4;
    pcVar3 = wand->name;
    if (wand->debug == MagickFalse) {
      sVar1 = wand->index;
      goto joined_r0x00076600;
    }
  }
  (*(code *)PTR_LogMagickEvent_00178490)
            (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x459c,0x1a4,
             PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,pcVar3);
  sVar1 = unaff_s0->index;
joined_r0x00076600:
  while (sVar1 != 0) {
    ppDVar7 = unaff_s0->graphic_context;
    pDVar2 = (DrawInfo *)(*(code *)PTR_DestroyDrawInfo_00178340)(ppDVar7[sVar1]);
    ppDVar7[sVar1] = pDVar2;
    sVar1 = unaff_s0->index - 1;
    unaff_s0->index = sVar1;
  }
  ppDVar7 = unaff_s0->graphic_context;
  pDVar2 = (DrawInfo *)(*(code *)PTR_DestroyDrawInfo_00178340)(*ppDVar7);
  *ppDVar7 = pDVar2;
  ppDVar7 = (DrawInfo **)(*(code *)PTR_RelinquishMagickMemory_00178324)(unaff_s0->graphic_context);
  unaff_s0->graphic_context = ppDVar7;
  if (unaff_s0->pattern_id != (char *)0x0) {
    pcVar3 = (char *)(*(code *)PTR_DestroyString_0017839c)();
    unaff_s0->pattern_id = pcVar3;
  }
  pcVar3 = (char *)(*(code *)PTR_DestroyString_0017839c)(unaff_s0->mvg);
  unaff_s0->mvg = pcVar3;
  if ((unaff_s0->destroy == MagickFalse) || (unaff_s0->image == (Image *)0x0)) {
    unaff_s0->image = (Image *)0x0;
  }
  else {
    pIVar4 = (Image *)(*(code *)PTR_DestroyImage_001782ec)();
    unaff_s0->image = pIVar4;
  }
  unaff_s0->mvg = (char *)0x0;
  unaff_s0->mvg_alloc = 0;
  unaff_s0->mvg_length = 0;
  unaff_s0->mvg_width = 0;
  unaff_s0->pattern_id = (char *)0x0;
  unaff_s0->pattern_offset = 0;
  (unaff_s0->pattern_bounds).x = 0;
  (unaff_s0->pattern_bounds).y = 0;
  (unaff_s0->pattern_bounds).width = 0;
  (unaff_s0->pattern_bounds).height = 0;
  unaff_s0->index = 0;
  ppDVar7 = (DrawInfo **)(*(code *)PTR_AcquireQuantumMemory_00178694)(1,4);
  unaff_s0->graphic_context = ppDVar7;
  if (ppDVar7 == (DrawInfo **)0x0) {
    (*(code *)PTR_ThrowMagickException_001782c4)
              (unaff_s0->exception,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x459c,0x1c1
               ,400,PTR_s_ision_00178030 + -0x354,PTR_s_ision_00178030 + -0x35c,unaff_s0->name);
  }
  else {
    sVar1 = unaff_s0->index;
    pDVar2 = (DrawInfo *)(*(code *)PTR_CloneDrawInfo_001784ac)(0,0);
    ppDVar7[sVar1] = pDVar2;
    unaff_s0->filter_off = MagickTrue;
    unaff_s0->indent_depth = 0;
    unaff_s0->path_operation = PathDefaultOperation;
    unaff_s0->path_mode = DefaultPathMode;
    pIVar4 = (Image *)(*(code *)PTR_AcquireImage_0017872c)(0,unaff_s0->exception);
    unaff_s0->image = pIVar4;
    (*(code *)PTR_ClearMagickException_001783dc)(unaff_s0->exception);
    unaff_s0->destroy = MagickTrue;
    MVar5 = (*(code *)PTR_IsEventLogging_00178810)();
    unaff_s0->debug = MVar5;
  }
  return;
}



void ClearDrawingWand(int param_1)

{
  int iVar1;
  undefined4 uVar2;
  undefined *puVar3;
  int unaff_s0;
  undefined4 *puVar4;
  int iVar5;
  
  if (param_1 == 0) {
    puVar3 = PTR_s_oint_00178034 + -0x4588;
    (*(code *)PTR___assert_fail_00178728)
              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1a1,puVar3);
LAB_000766f4:
    iVar1 = (*(code *)PTR___assert_fail_00178728)
                      (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1a2,
                       puVar3 + -0x4588);
  }
  else {
    puVar3 = PTR_s_oint_00178034;
    unaff_s0 = param_1;
    if (*(int *)(param_1 + 0x1054) != -0x54535255) goto LAB_000766f4;
    iVar1 = param_1 + 4;
    if (*(int *)(param_1 + 0x1050) == 0) {
      iVar1 = *(int *)(param_1 + 0x1034);
      goto joined_r0x00076600;
    }
  }
  (*(code *)PTR_LogMagickEvent_00178490)
            (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x459c,0x1a4,
             PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,iVar1);
  iVar1 = *(int *)(unaff_s0 + 0x1034);
joined_r0x00076600:
  while (iVar1 != 0) {
    puVar4 = (undefined4 *)(*(int *)(unaff_s0 + 0x1038) + iVar1 * 4);
    uVar2 = (*(code *)PTR_DestroyDrawInfo_00178340)(*puVar4);
    *puVar4 = uVar2;
    iVar1 = *(int *)(unaff_s0 + 0x1034) + -1;
    *(int *)(unaff_s0 + 0x1034) = iVar1;
  }
  puVar4 = *(undefined4 **)(unaff_s0 + 0x1038);
  uVar2 = (*(code *)PTR_DestroyDrawInfo_00178340)(*puVar4);
  *puVar4 = uVar2;
  uVar2 = (*(code *)PTR_RelinquishMagickMemory_00178324)(*(undefined4 *)(unaff_s0 + 0x1038));
  *(undefined4 *)(unaff_s0 + 0x1038) = uVar2;
  if (*(int *)(unaff_s0 + 0x101c) != 0) {
    uVar2 = (*(code *)PTR_DestroyString_0017839c)();
    *(undefined4 *)(unaff_s0 + 0x101c) = uVar2;
  }
  uVar2 = (*(code *)PTR_DestroyString_0017839c)(*(undefined4 *)(unaff_s0 + 0x100c));
  *(undefined4 *)(unaff_s0 + 0x100c) = uVar2;
  if ((*(int *)(unaff_s0 + 0x104c) == 0) || (*(int *)(&DAT_00001004 + unaff_s0) == 0)) {
    *(undefined4 *)(&DAT_00001004 + unaff_s0) = 0;
  }
  else {
    uVar2 = (*(code *)PTR_DestroyImage_001782ec)();
    *(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2;
  }
  *(undefined4 *)(unaff_s0 + 0x100c) = 0;
  *(undefined4 *)(&DAT_00001010 + unaff_s0) = 0;
  *(undefined4 *)(&DAT_00001014 + unaff_s0) = 0;
  *(undefined4 *)(&DAT_00001018 + unaff_s0) = 0;
  *(undefined4 *)(unaff_s0 + 0x101c) = 0;
  *(undefined4 *)(unaff_s0 + 0x1030) = 0;
  *(undefined4 *)(unaff_s0 + 0x1028) = 0;
  *(undefined4 *)(unaff_s0 + 0x102c) = 0;
  *(undefined4 *)(unaff_s0 + 0x1020) = 0;
  *(undefined4 *)(unaff_s0 + 0x1024) = 0;
  *(undefined4 *)(unaff_s0 + 0x1034) = 0;
  iVar1 = (*(code *)PTR_AcquireQuantumMemory_00178694)(1,4);
  *(int *)(unaff_s0 + 0x1038) = iVar1;
  if (iVar1 == 0) {
    (*(code *)PTR_ThrowMagickException_001782c4)
              (*(undefined4 *)(&DAT_00001008 + unaff_s0),PTR_s_oint_00178034 + -0x6960,
               PTR_s_oint_00178034 + -0x459c,0x1c1,400,PTR_s_ision_00178030 + -0x354,
               PTR_s_ision_00178030 + -0x35c,unaff_s0 + 4);
  }
  else {
    iVar5 = *(int *)(unaff_s0 + 0x1034);
    uVar2 = (*(code *)PTR_CloneDrawInfo_001784ac)(0,0);
    *(undefined4 *)(iVar1 + iVar5 * 4) = uVar2;
    *(undefined4 *)(unaff_s0 + 0x103c) = 1;
    *(undefined4 *)(unaff_s0 + 0x1040) = 0;
    *(undefined4 *)(unaff_s0 + 0x1044) = 0;
    *(undefined4 *)(unaff_s0 + 0x1048) = 0;
    uVar2 = (*(code *)PTR_AcquireImage_0017872c)(0,*(undefined4 *)(&DAT_00001008 + unaff_s0));
    *(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2;
    (*(code *)PTR_ClearMagickException_001783dc)(*(undefined4 *)(&DAT_00001008 + unaff_s0));
    *(undefined4 *)(unaff_s0 + 0x104c) = 1;
    uVar2 = (*(code *)PTR_IsEventLogging_00178810)();
    *(undefined4 *)(unaff_s0 + 0x1050) = uVar2;
  }
  return;
}


lui gp,0x11
addiu gp,gp,-0x65b4
addu gp,gp,t9
addiu sp,sp,-0x38
sw ra,0x34(sp)
sw s1,0x30(sp)
sw s0,0x2c(sp)
sw gp,0x20(sp)
beq a0,zero,0x000766d0
_lw a3,-0x7fcc(gp)
lw v1,0x1054(a0)
lui v0,0xabac
ori v0,v0,0xadab
bne v1,v0,0x000766f4
_or s0,a0,zero
lw v0,0x1050(a0)
bne v0,zero,0x00076718
_addiu v0,a0,0x4
lw v0,0x1034(s0)
beq v0,zero,0x0007663c
_nop
sll v0,v0,0x2
lw s1,0x1038(s0)
addu s1,s1,v0
lw a0,0x0(s1)
lw t9,-0x7cc0(gp)
jalr t9
_nop
lw gp,0x20(sp)
sw v0,0x0(s1)
lw v0,0x1034(s0)
addiu v0,v0,-0x1
bne v0,zero,0x00076608
_sw v0,0x1034(s0)
lw s1,0x1038(s0)
lw a0,0x0(s1)
lw t9,-0x7cc0(gp)
jalr t9
_nop
lw gp,0x20(sp)
sw v0,0x0(s1)
lw a0,0x1038(s0)
lw t9,-0x7cdc(gp)
jalr t9
_nop
lw gp,0x20(sp)
sw v0,0x1038(s0)
lw a0,0x101c(s0)
beq a0,zero,0x0007668c
_lw t9,-0x7c64(gp)
jalr t9
_nop
lw gp,0x20(sp)
sw v0,0x101c(s0)
lw a0,0x100c(s0)
lw t9,-0x7c64(gp)
jalr t9
_nop
lw gp,0x20(sp)
sw v0,0x100c(s0)
lw v0,0x104c(s0)
beq v0,zero,0x00076758
_nop
lw a0,0x1004(s0)
beq a0,zero,0x00076758
_lw t9,-0x7d14(gp)
jalr t9
_nop
lw gp,0x20(sp)
b 0x0007675c
_sw v0,0x1004(s0)
addiu a3,a3,-0x4588
li a2,0x1a1
lw a1,-0x7fcc(gp)
addiu a1,a1,-0x6960
lw a0,-0x7fcc(gp)
addiu a0,a0,-0x6944
lw t9,-0x78d8(gp)
jalr t9
_nop
addiu a3,a3,-0x4588
li a2,0x1a2
lw a1,-0x7fcc(gp)
addiu a1,a1,-0x6960
lw a0,-0x7fcc(gp)
addiu a0,a0,-0x1e54
lw t9,-0x78d8(gp)
jalr t9
_nop
sw v0,0x14(sp)
lw v0,-0x7fc8(gp)
addiu v0,v0,-0x7318
sw v0,0x10(sp)
li a3,0x1a4
lw a2,-0x7fcc(gp)
addiu a2,a2,-0x459c
lw a1,-0x7fcc(gp)
addiu a1,a1,-0x6960
lui a0,0x4
lw t9,-0x7b70(gp)
jalr t9
_nop
lw gp,0x20(sp)
b 0x00076600
_lw v0,0x1034(s0)
sw zero,0x1004(s0)
sw zero,0x100c(s0)
sw zero,0x1010(s0)
sw zero,0x1014(s0)
sw zero,0x1018(s0)
sw zero,0x101c(s0)
sw zero,0x1030(s0)
sw zero,0x1028(s0)
sw zero,0x102c(s0)
sw zero,0x1020(s0)
sw zero,0x1024(s0)
sw zero,0x1034(s0)
li a1,0x4
li a0,0x1
lw t9,-0x796c(gp)
jalr t9
_nop
lw gp,0x20(sp)
beq v0,zero,0x00076840
_sw v0,0x1038(s0)
lw s1,0x1034(s0)
sll s1,s1,0x2
addu s1,v0,s1
or a1,zero,zero
or a0,zero,zero
lw t9,-0x7b54(gp)
jalr t9
_nop
lw gp,0x20(sp)
sw v0,0x0(s1)
li s1,0x1
sw s1,0x103c(s0)
sw zero,0x1040(s0)
sw zero,0x1044(s0)
sw zero,0x1048(s0)
lw a1,0x1008(s0)
or a0,zero,zero
lw t9,-0x78d4(gp)
jalr t9
_nop
lw gp,0x20(sp)
sw v0,0x1004(s0)
lw a0,0x1008(s0)
lw t9,-0x7c24(gp)
jalr t9
_nop
lw gp,0x20(sp)
sw s1,0x104c(s0)
lw t9,-0x77f0(gp)
jalr t9
_nop
lw gp,0x20(sp)
sw v0,0x1050(s0)
lw ra,0x34(sp)
lw s1,0x30(sp)
lw s0,0x2c(sp)
jr ra
_addiu sp,sp,0x38
lw a0,0x1008(s0)
addiu s0,s0,0x4
sw s0,0x1c(sp)
lw v0,-0x7fd0(gp)
addiu v0,v0,-0x35c
sw v0,0x18(sp)
lw v0,-0x7fd0(gp)
addiu v0,v0,-0x354
sw v0,0x14(sp)
li v0,0x190
sw v0,0x10(sp)
li a3,0x1c1
lw a2,-0x7fcc(gp)
addiu a2,a2,-0x459c
lw a1,-0x7fcc(gp)
addiu a1,a1,-0x6960
lw t9,-0x7d3c(gp)
jalr t9
_nop
lw gp,0x20(sp)
b 0x00076830
_lw ra,0x34(sp)
(translation_unit "void ClearDrawingWand(int param_1)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  undefined *puVar3;\n  int unaff_s0;\n  undefined4 *puVar4;\n  int iVar5;\n  \n  if (param_1 == 0) {\n    puVar3 = PTR_s_oint_00178034 + -0x4588;\n    (*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1a1,puVar3);\nLAB_000766f4:\n    iVar1 = (*(code *)PTR___assert_fail_00178728)\n                      (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1a2,\n                       puVar3 + -0x4588);\n  }\n  else {\n    puVar3 = PTR_s_oint_00178034;\n    unaff_s0 = param_1;\n    if (*(int *)(param_1 + 0x1054) != -0x54535255) goto LAB_000766f4;\n    iVar1 = param_1 + 4;\n    if (*(int *)(param_1 + 0x1050) == 0) {\n      iVar1 = *(int *)(param_1 + 0x1034);\n      goto joined_r0x00076600;\n    }\n  }\n  (*(code *)PTR_LogMagickEvent_00178490)\n            (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x459c,0x1a4,\n             PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,iVar1);\n  iVar1 = *(int *)(unaff_s0 + 0x1034);\njoined_r0x00076600:\n  while (iVar1 != 0) {\n    puVar4 = (undefined4 *)(*(int *)(unaff_s0 + 0x1038) + iVar1 * 4);\n    uVar2 = (*(code *)PTR_DestroyDrawInfo_00178340)(*puVar4);\n    *puVar4 = uVar2;\n    iVar1 = *(int *)(unaff_s0 + 0x1034) + -1;\n    *(int *)(unaff_s0 + 0x1034) = iVar1;\n  }\n  puVar4 = *(undefined4 **)(unaff_s0 + 0x1038);\n  uVar2 = (*(code *)PTR_DestroyDrawInfo_00178340)(*puVar4);\n  *puVar4 = uVar2;\n  uVar2 = (*(code *)PTR_RelinquishMagickMemory_00178324)(*(undefined4 *)(unaff_s0 + 0x1038));\n  *(undefined4 *)(unaff_s0 + 0x1038) = uVar2;\n  if (*(int *)(unaff_s0 + 0x101c) != 0) {\n    uVar2 = (*(code *)PTR_DestroyString_0017839c)();\n    *(undefined4 *)(unaff_s0 + 0x101c) = uVar2;\n  }\n  uVar2 = (*(code *)PTR_DestroyString_0017839c)(*(undefined4 *)(unaff_s0 + 0x100c));\n  *(undefined4 *)(unaff_s0 + 0x100c) = uVar2;\n  if ((*(int *)(unaff_s0 + 0x104c) == 0) || (*(int *)(&DAT_00001004 + unaff_s0) == 0)) {\n    *(undefined4 *)(&DAT_00001004 + unaff_s0) = 0;\n  }\n  else {\n    uVar2 = (*(code *)PTR_DestroyImage_001782ec)();\n    *(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2;\n  }\n  *(undefined4 *)(unaff_s0 + 0x100c) = 0;\n  *(undefined4 *)(&DAT_00001010 + unaff_s0) = 0;\n  *(undefined4 *)(&DAT_00001014 + unaff_s0) = 0;\n  *(undefined4 *)(&DAT_00001018 + unaff_s0) = 0;\n  *(undefined4 *)(unaff_s0 + 0x101c) = 0;\n  *(undefined4 *)(unaff_s0 + 0x1030) = 0;\n  *(undefined4 *)(unaff_s0 + 0x1028) = 0;\n  *(undefined4 *)(unaff_s0 + 0x102c) = 0;\n  *(undefined4 *)(unaff_s0 + 0x1020) = 0;\n  *(undefined4 *)(unaff_s0 + 0x1024) = 0;\n  *(undefined4 *)(unaff_s0 + 0x1034) = 0;\n  iVar1 = (*(code *)PTR_AcquireQuantumMemory_00178694)(1,4);\n  *(int *)(unaff_s0 + 0x1038) = iVar1;\n  if (iVar1 == 0) {\n    (*(code *)PTR_ThrowMagickException_001782c4)\n              (*(undefined4 *)(&DAT_00001008 + unaff_s0),PTR_s_oint_00178034 + -0x6960,\n               PTR_s_oint_00178034 + -0x459c,0x1c1,400,PTR_s_ision_00178030 + -0x354,\n               PTR_s_ision_00178030 + -0x35c,unaff_s0 + 4);\n  }\n  else {\n    iVar5 = *(int *)(unaff_s0 + 0x1034);\n    uVar2 = (*(code *)PTR_CloneDrawInfo_001784ac)(0,0);\n    *(undefined4 *)(iVar1 + iVar5 * 4) = uVar2;\n    *(undefined4 *)(unaff_s0 + 0x103c) = 1;\n    *(undefined4 *)(unaff_s0 + 0x1040) = 0;\n    *(undefined4 *)(unaff_s0 + 0x1044) = 0;\n    *(undefined4 *)(unaff_s0 + 0x1048) = 0;\n    uVar2 = (*(code *)PTR_AcquireImage_0017872c)(0,*(undefined4 *)(&DAT_00001008 + unaff_s0));\n    *(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2;\n    (*(code *)PTR_ClearMagickException_001783dc)(*(undefined4 *)(&DAT_00001008 + unaff_s0));\n    *(undefined4 *)(unaff_s0 + 0x104c) = 1;\n    uVar2 = (*(code *)PTR_IsEventLogging_00178810)();\n    *(undefined4 *)(unaff_s0 + 0x1050) = uVar2;\n  }\n  return;\n}\n\n" (function_definition "void ClearDrawingWand(int param_1)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  undefined *puVar3;\n  int unaff_s0;\n  undefined4 *puVar4;\n  int iVar5;\n  \n  if (param_1 == 0) {\n    puVar3 = PTR_s_oint_00178034 + -0x4588;\n    (*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1a1,puVar3);\nLAB_000766f4:\n    iVar1 = (*(code *)PTR___assert_fail_00178728)\n                      (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1a2,\n                       puVar3 + -0x4588);\n  }\n  else {\n    puVar3 = PTR_s_oint_00178034;\n    unaff_s0 = param_1;\n    if (*(int *)(param_1 + 0x1054) != -0x54535255) goto LAB_000766f4;\n    iVar1 = param_1 + 4;\n    if (*(int *)(param_1 + 0x1050) == 0) {\n      iVar1 = *(int *)(param_1 + 0x1034);\n      goto joined_r0x00076600;\n    }\n  }\n  (*(code *)PTR_LogMagickEvent_00178490)\n            (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x459c,0x1a4,\n             PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,iVar1);\n  iVar1 = *(int *)(unaff_s0 + 0x1034);\njoined_r0x00076600:\n  while (iVar1 != 0) {\n    puVar4 = (undefined4 *)(*(int *)(unaff_s0 + 0x1038) + iVar1 * 4);\n    uVar2 = (*(code *)PTR_DestroyDrawInfo_00178340)(*puVar4);\n    *puVar4 = uVar2;\n    iVar1 = *(int *)(unaff_s0 + 0x1034) + -1;\n    *(int *)(unaff_s0 + 0x1034) = iVar1;\n  }\n  puVar4 = *(undefined4 **)(unaff_s0 + 0x1038);\n  uVar2 = (*(code *)PTR_DestroyDrawInfo_00178340)(*puVar4);\n  *puVar4 = uVar2;\n  uVar2 = (*(code *)PTR_RelinquishMagickMemory_00178324)(*(undefined4 *)(unaff_s0 + 0x1038));\n  *(undefined4 *)(unaff_s0 + 0x1038) = uVar2;\n  if (*(int *)(unaff_s0 + 0x101c) != 0) {\n    uVar2 = (*(code *)PTR_DestroyString_0017839c)();\n    *(undefined4 *)(unaff_s0 + 0x101c) = uVar2;\n  }\n  uVar2 = (*(code *)PTR_DestroyString_0017839c)(*(undefined4 *)(unaff_s0 + 0x100c));\n  *(undefined4 *)(unaff_s0 + 0x100c) = uVar2;\n  if ((*(int *)(unaff_s0 + 0x104c) == 0) || (*(int *)(&DAT_00001004 + unaff_s0) == 0)) {\n    *(undefined4 *)(&DAT_00001004 + unaff_s0) = 0;\n  }\n  else {\n    uVar2 = (*(code *)PTR_DestroyImage_001782ec)();\n    *(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2;\n  }\n  *(undefined4 *)(unaff_s0 + 0x100c) = 0;\n  *(undefined4 *)(&DAT_00001010 + unaff_s0) = 0;\n  *(undefined4 *)(&DAT_00001014 + unaff_s0) = 0;\n  *(undefined4 *)(&DAT_00001018 + unaff_s0) = 0;\n  *(undefined4 *)(unaff_s0 + 0x101c) = 0;\n  *(undefined4 *)(unaff_s0 + 0x1030) = 0;\n  *(undefined4 *)(unaff_s0 + 0x1028) = 0;\n  *(undefined4 *)(unaff_s0 + 0x102c) = 0;\n  *(undefined4 *)(unaff_s0 + 0x1020) = 0;\n  *(undefined4 *)(unaff_s0 + 0x1024) = 0;\n  *(undefined4 *)(unaff_s0 + 0x1034) = 0;\n  iVar1 = (*(code *)PTR_AcquireQuantumMemory_00178694)(1,4);\n  *(int *)(unaff_s0 + 0x1038) = iVar1;\n  if (iVar1 == 0) {\n    (*(code *)PTR_ThrowMagickException_001782c4)\n              (*(undefined4 *)(&DAT_00001008 + unaff_s0),PTR_s_oint_00178034 + -0x6960,\n               PTR_s_oint_00178034 + -0x459c,0x1c1,400,PTR_s_ision_00178030 + -0x354,\n               PTR_s_ision_00178030 + -0x35c,unaff_s0 + 4);\n  }\n  else {\n    iVar5 = *(int *)(unaff_s0 + 0x1034);\n    uVar2 = (*(code *)PTR_CloneDrawInfo_001784ac)(0,0);\n    *(undefined4 *)(iVar1 + iVar5 * 4) = uVar2;\n    *(undefined4 *)(unaff_s0 + 0x103c) = 1;\n    *(undefined4 *)(unaff_s0 + 0x1040) = 0;\n    *(undefined4 *)(unaff_s0 + 0x1044) = 0;\n    *(undefined4 *)(unaff_s0 + 0x1048) = 0;\n    uVar2 = (*(code *)PTR_AcquireImage_0017872c)(0,*(undefined4 *)(&DAT_00001008 + unaff_s0));\n    *(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2;\n    (*(code *)PTR_ClearMagickException_001783dc)(*(undefined4 *)(&DAT_00001008 + unaff_s0));\n    *(undefined4 *)(unaff_s0 + 0x104c) = 1;\n    uVar2 = (*(code *)PTR_IsEventLogging_00178810)();\n    *(undefined4 *)(unaff_s0 + 0x1050) = uVar2;\n  }\n  return;\n}" primitive_type (function_declarator "ClearDrawingWand(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  undefined *puVar3;\n  int unaff_s0;\n  undefined4 *puVar4;\n  int iVar5;\n  \n  if (param_1 == 0) {\n    puVar3 = PTR_s_oint_00178034 + -0x4588;\n    (*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1a1,puVar3);\nLAB_000766f4:\n    iVar1 = (*(code *)PTR___assert_fail_00178728)\n                      (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1a2,\n                       puVar3 + -0x4588);\n  }\n  else {\n    puVar3 = PTR_s_oint_00178034;\n    unaff_s0 = param_1;\n    if (*(int *)(param_1 + 0x1054) != -0x54535255) goto LAB_000766f4;\n    iVar1 = param_1 + 4;\n    if (*(int *)(param_1 + 0x1050) == 0) {\n      iVar1 = *(int *)(param_1 + 0x1034);\n      goto joined_r0x00076600;\n    }\n  }\n  (*(code *)PTR_LogMagickEvent_00178490)\n            (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x459c,0x1a4,\n             PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,iVar1);\n  iVar1 = *(int *)(unaff_s0 + 0x1034);\njoined_r0x00076600:\n  while (iVar1 != 0) {\n    puVar4 = (undefined4 *)(*(int *)(unaff_s0 + 0x1038) + iVar1 * 4);\n    uVar2 = (*(code *)PTR_DestroyDrawInfo_00178340)(*puVar4);\n    *puVar4 = uVar2;\n    iVar1 = *(int *)(unaff_s0 + 0x1034) + -1;\n    *(int *)(unaff_s0 + 0x1034) = iVar1;\n  }\n  puVar4 = *(undefined4 **)(unaff_s0 + 0x1038);\n  uVar2 = (*(code *)PTR_DestroyDrawInfo_00178340)(*puVar4);\n  *puVar4 = uVar2;\n  uVar2 = (*(code *)PTR_RelinquishMagickMemory_00178324)(*(undefined4 *)(unaff_s0 + 0x1038));\n  *(undefined4 *)(unaff_s0 + 0x1038) = uVar2;\n  if (*(int *)(unaff_s0 + 0x101c) != 0) {\n    uVar2 = (*(code *)PTR_DestroyString_0017839c)();\n    *(undefined4 *)(unaff_s0 + 0x101c) = uVar2;\n  }\n  uVar2 = (*(code *)PTR_DestroyString_0017839c)(*(undefined4 *)(unaff_s0 + 0x100c));\n  *(undefined4 *)(unaff_s0 + 0x100c) = uVar2;\n  if ((*(int *)(unaff_s0 + 0x104c) == 0) || (*(int *)(&DAT_00001004 + unaff_s0) == 0)) {\n    *(undefined4 *)(&DAT_00001004 + unaff_s0) = 0;\n  }\n  else {\n    uVar2 = (*(code *)PTR_DestroyImage_001782ec)();\n    *(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2;\n  }\n  *(undefined4 *)(unaff_s0 + 0x100c) = 0;\n  *(undefined4 *)(&DAT_00001010 + unaff_s0) = 0;\n  *(undefined4 *)(&DAT_00001014 + unaff_s0) = 0;\n  *(undefined4 *)(&DAT_00001018 + unaff_s0) = 0;\n  *(undefined4 *)(unaff_s0 + 0x101c) = 0;\n  *(undefined4 *)(unaff_s0 + 0x1030) = 0;\n  *(undefined4 *)(unaff_s0 + 0x1028) = 0;\n  *(undefined4 *)(unaff_s0 + 0x102c) = 0;\n  *(undefined4 *)(unaff_s0 + 0x1020) = 0;\n  *(undefined4 *)(unaff_s0 + 0x1024) = 0;\n  *(undefined4 *)(unaff_s0 + 0x1034) = 0;\n  iVar1 = (*(code *)PTR_AcquireQuantumMemory_00178694)(1,4);\n  *(int *)(unaff_s0 + 0x1038) = iVar1;\n  if (iVar1 == 0) {\n    (*(code *)PTR_ThrowMagickException_001782c4)\n              (*(undefined4 *)(&DAT_00001008 + unaff_s0),PTR_s_oint_00178034 + -0x6960,\n               PTR_s_oint_00178034 + -0x459c,0x1c1,400,PTR_s_ision_00178030 + -0x354,\n               PTR_s_ision_00178030 + -0x35c,unaff_s0 + 4);\n  }\n  else {\n    iVar5 = *(int *)(unaff_s0 + 0x1034);\n    uVar2 = (*(code *)PTR_CloneDrawInfo_001784ac)(0,0);\n    *(undefined4 *)(iVar1 + iVar5 * 4) = uVar2;\n    *(undefined4 *)(unaff_s0 + 0x103c) = 1;\n    *(undefined4 *)(unaff_s0 + 0x1040) = 0;\n    *(undefined4 *)(unaff_s0 + 0x1044) = 0;\n    *(undefined4 *)(unaff_s0 + 0x1048) = 0;\n    uVar2 = (*(code *)PTR_AcquireImage_0017872c)(0,*(undefined4 *)(&DAT_00001008 + unaff_s0));\n    *(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2;\n    (*(code *)PTR_ClearMagickException_001783dc)(*(undefined4 *)(&DAT_00001008 + unaff_s0));\n    *(undefined4 *)(unaff_s0 + 0x104c) = 1;\n    uVar2 = (*(code *)PTR_IsEventLogging_00178810)();\n    *(undefined4 *)(unaff_s0 + 0x1050) = uVar2;\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int unaff_s0;" primitive_type identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (if_statement "if (param_1 == 0) {\n    puVar3 = PTR_s_oint_00178034 + -0x4588;\n    (*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1a1,puVar3);\nLAB_000766f4:\n    iVar1 = (*(code *)PTR___assert_fail_00178728)\n                      (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1a2,\n                       puVar3 + -0x4588);\n  }\n  else {\n    puVar3 = PTR_s_oint_00178034;\n    unaff_s0 = param_1;\n    if (*(int *)(param_1 + 0x1054) != -0x54535255) goto LAB_000766f4;\n    iVar1 = param_1 + 4;\n    if (*(int *)(param_1 + 0x1050) == 0) {\n      iVar1 = *(int *)(param_1 + 0x1034);\n      goto joined_r0x00076600;\n    }\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n    puVar3 = PTR_s_oint_00178034 + -0x4588;\n    (*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1a1,puVar3);\nLAB_000766f4:\n    iVar1 = (*(code *)PTR___assert_fail_00178728)\n                      (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1a2,\n                       puVar3 + -0x4588);\n  }" { (expression_statement "puVar3 = PTR_s_oint_00178034 + -0x4588;" (assignment_expression "puVar3 = PTR_s_oint_00178034 + -0x4588" identifier = (binary_expression "PTR_s_oint_00178034 + -0x4588" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1a1,puVar3);" (call_expression "(*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1a1,puVar3)" (parenthesized_expression "(*(code *)PTR___assert_fail_00178728)" ( (pointer_expression "*(code *)PTR___assert_fail_00178728" * (cast_expression "(code *)PTR___assert_fail_00178728" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1a1,puVar3)" ( (binary_expression "PTR_s_oint_00178034 + -0x6944" identifier + number_literal) , (binary_expression "PTR_s_oint_00178034 + -0x6960" identifier + number_literal) , number_literal , identifier ))) ;) (labeled_statement "LAB_000766f4:\n    iVar1 = (*(code *)PTR___assert_fail_00178728)\n                      (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1a2,\n                       puVar3 + -0x4588);" statement_identifier : (expression_statement "iVar1 = (*(code *)PTR___assert_fail_00178728)\n                      (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1a2,\n                       puVar3 + -0x4588);" (assignment_expression "iVar1 = (*(code *)PTR___assert_fail_00178728)\n                      (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1a2,\n                       puVar3 + -0x4588)" identifier = (call_expression "(*(code *)PTR___assert_fail_00178728)\n                      (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1a2,\n                       puVar3 + -0x4588)" (parenthesized_expression "(*(code *)PTR___assert_fail_00178728)" ( (pointer_expression "*(code *)PTR___assert_fail_00178728" * (cast_expression "(code *)PTR___assert_fail_00178728" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1a2,\n                       puVar3 + -0x4588)" ( (binary_expression "PTR_s_oint_00178034 + -0x1e54" identifier + number_literal) , (binary_expression "PTR_s_oint_00178034 + -0x6960" identifier + number_literal) , number_literal , (binary_expression "puVar3 + -0x4588" identifier + number_literal) )))) ;)) }) (else_clause "else {\n    puVar3 = PTR_s_oint_00178034;\n    unaff_s0 = param_1;\n    if (*(int *)(param_1 + 0x1054) != -0x54535255) goto LAB_000766f4;\n    iVar1 = param_1 + 4;\n    if (*(int *)(param_1 + 0x1050) == 0) {\n      iVar1 = *(int *)(param_1 + 0x1034);\n      goto joined_r0x00076600;\n    }\n  }" else (compound_statement "{\n    puVar3 = PTR_s_oint_00178034;\n    unaff_s0 = param_1;\n    if (*(int *)(param_1 + 0x1054) != -0x54535255) goto LAB_000766f4;\n    iVar1 = param_1 + 4;\n    if (*(int *)(param_1 + 0x1050) == 0) {\n      iVar1 = *(int *)(param_1 + 0x1034);\n      goto joined_r0x00076600;\n    }\n  }" { (expression_statement "puVar3 = PTR_s_oint_00178034;" (assignment_expression "puVar3 = PTR_s_oint_00178034" identifier = identifier) ;) (expression_statement "unaff_s0 = param_1;" (assignment_expression "unaff_s0 = param_1" identifier = identifier) ;) (if_statement "if (*(int *)(param_1 + 0x1054) != -0x54535255) goto LAB_000766f4;" if (parenthesized_expression "(*(int *)(param_1 + 0x1054) != -0x54535255)" ( (binary_expression "*(int *)(param_1 + 0x1054) != -0x54535255" (pointer_expression "*(int *)(param_1 + 0x1054)" * (cast_expression "(int *)(param_1 + 0x1054)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1054)" ( (binary_expression "param_1 + 0x1054" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_000766f4;" goto statement_identifier ;)) (expression_statement "iVar1 = param_1 + 4;" (assignment_expression "iVar1 = param_1 + 4" identifier = (binary_expression "param_1 + 4" identifier + number_literal)) ;) (if_statement "if (*(int *)(param_1 + 0x1050) == 0) {\n      iVar1 = *(int *)(param_1 + 0x1034);\n      goto joined_r0x00076600;\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0x1050) == 0)" ( (binary_expression "*(int *)(param_1 + 0x1050) == 0" (pointer_expression "*(int *)(param_1 + 0x1050)" * (cast_expression "(int *)(param_1 + 0x1050)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1050)" ( (binary_expression "param_1 + 0x1050" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      iVar1 = *(int *)(param_1 + 0x1034);\n      goto joined_r0x00076600;\n    }" { (expression_statement "iVar1 = *(int *)(param_1 + 0x1034);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x1034)" identifier = (pointer_expression "*(int *)(param_1 + 0x1034)" * (cast_expression "(int *)(param_1 + 0x1034)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1034)" ( (binary_expression "param_1 + 0x1034" identifier + number_literal) ))))) ;) (goto_statement "goto joined_r0x00076600;" goto statement_identifier ;) })) }))) (expression_statement "(*(code *)PTR_LogMagickEvent_00178490)\n            (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x459c,0x1a4,\n             PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,iVar1);" (call_expression "(*(code *)PTR_LogMagickEvent_00178490)\n            (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x459c,0x1a4,\n             PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,iVar1)" (parenthesized_expression "(*(code *)PTR_LogMagickEvent_00178490)" ( (pointer_expression "*(code *)PTR_LogMagickEvent_00178490" * (cast_expression "(code *)PTR_LogMagickEvent_00178490" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x459c,0x1a4,\n             PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,iVar1)" ( number_literal , (binary_expression "PTR_s_oint_00178034 + -0x6960" identifier + number_literal) , (binary_expression "PTR_s_oint_00178034 + -0x459c" identifier + number_literal) , number_literal , (binary_expression "PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar1 = *(int *)(unaff_s0 + 0x1034);" (assignment_expression "iVar1 = *(int *)(unaff_s0 + 0x1034)" identifier = (pointer_expression "*(int *)(unaff_s0 + 0x1034)" * (cast_expression "(int *)(unaff_s0 + 0x1034)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x1034)" ( (binary_expression "unaff_s0 + 0x1034" identifier + number_literal) ))))) ;) (labeled_statement "joined_r0x00076600:\n  while (iVar1 != 0) {\n    puVar4 = (undefined4 *)(*(int *)(unaff_s0 + 0x1038) + iVar1 * 4);\n    uVar2 = (*(code *)PTR_DestroyDrawInfo_00178340)(*puVar4);\n    *puVar4 = uVar2;\n    iVar1 = *(int *)(unaff_s0 + 0x1034) + -1;\n    *(int *)(unaff_s0 + 0x1034) = iVar1;\n  }" statement_identifier : (while_statement "while (iVar1 != 0) {\n    puVar4 = (undefined4 *)(*(int *)(unaff_s0 + 0x1038) + iVar1 * 4);\n    uVar2 = (*(code *)PTR_DestroyDrawInfo_00178340)(*puVar4);\n    *puVar4 = uVar2;\n    iVar1 = *(int *)(unaff_s0 + 0x1034) + -1;\n    *(int *)(unaff_s0 + 0x1034) = iVar1;\n  }" while (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    puVar4 = (undefined4 *)(*(int *)(unaff_s0 + 0x1038) + iVar1 * 4);\n    uVar2 = (*(code *)PTR_DestroyDrawInfo_00178340)(*puVar4);\n    *puVar4 = uVar2;\n    iVar1 = *(int *)(unaff_s0 + 0x1034) + -1;\n    *(int *)(unaff_s0 + 0x1034) = iVar1;\n  }" { (expression_statement "puVar4 = (undefined4 *)(*(int *)(unaff_s0 + 0x1038) + iVar1 * 4);" (assignment_expression "puVar4 = (undefined4 *)(*(int *)(unaff_s0 + 0x1038) + iVar1 * 4)" identifier = (cast_expression "(undefined4 *)(*(int *)(unaff_s0 + 0x1038) + iVar1 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(unaff_s0 + 0x1038) + iVar1 * 4)" ( (binary_expression "*(int *)(unaff_s0 + 0x1038) + iVar1 * 4" (pointer_expression "*(int *)(unaff_s0 + 0x1038)" * (cast_expression "(int *)(unaff_s0 + 0x1038)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x1038)" ( (binary_expression "unaff_s0 + 0x1038" identifier + number_literal) )))) + (binary_expression "iVar1 * 4" identifier * number_literal)) )))) ;) (expression_statement "uVar2 = (*(code *)PTR_DestroyDrawInfo_00178340)(*puVar4);" (assignment_expression "uVar2 = (*(code *)PTR_DestroyDrawInfo_00178340)(*puVar4)" identifier = (call_expression "(*(code *)PTR_DestroyDrawInfo_00178340)(*puVar4)" (parenthesized_expression "(*(code *)PTR_DestroyDrawInfo_00178340)" ( (pointer_expression "*(code *)PTR_DestroyDrawInfo_00178340" * (cast_expression "(code *)PTR_DestroyDrawInfo_00178340" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*puVar4)" ( (pointer_expression "*puVar4" * identifier) )))) ;) (expression_statement "*puVar4 = uVar2;" (assignment_expression "*puVar4 = uVar2" (pointer_expression "*puVar4" * identifier) = identifier) ;) (expression_statement "iVar1 = *(int *)(unaff_s0 + 0x1034) + -1;" (assignment_expression "iVar1 = *(int *)(unaff_s0 + 0x1034) + -1" identifier = (binary_expression "*(int *)(unaff_s0 + 0x1034) + -1" (pointer_expression "*(int *)(unaff_s0 + 0x1034)" * (cast_expression "(int *)(unaff_s0 + 0x1034)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x1034)" ( (binary_expression "unaff_s0 + 0x1034" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(unaff_s0 + 0x1034) = iVar1;" (assignment_expression "*(int *)(unaff_s0 + 0x1034) = iVar1" (pointer_expression "*(int *)(unaff_s0 + 0x1034)" * (cast_expression "(int *)(unaff_s0 + 0x1034)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x1034)" ( (binary_expression "unaff_s0 + 0x1034" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "puVar4 = *(undefined4 **)(unaff_s0 + 0x1038);" (assignment_expression "puVar4 = *(undefined4 **)(unaff_s0 + 0x1038)" identifier = (pointer_expression "*(undefined4 **)(unaff_s0 + 0x1038)" * (cast_expression "(undefined4 **)(unaff_s0 + 0x1038)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_s0 + 0x1038)" ( (binary_expression "unaff_s0 + 0x1038" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = (*(code *)PTR_DestroyDrawInfo_00178340)(*puVar4);" (assignment_expression "uVar2 = (*(code *)PTR_DestroyDrawInfo_00178340)(*puVar4)" identifier = (call_expression "(*(code *)PTR_DestroyDrawInfo_00178340)(*puVar4)" (parenthesized_expression "(*(code *)PTR_DestroyDrawInfo_00178340)" ( (pointer_expression "*(code *)PTR_DestroyDrawInfo_00178340" * (cast_expression "(code *)PTR_DestroyDrawInfo_00178340" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*puVar4)" ( (pointer_expression "*puVar4" * identifier) )))) ;) (expression_statement "*puVar4 = uVar2;" (assignment_expression "*puVar4 = uVar2" (pointer_expression "*puVar4" * identifier) = identifier) ;) (expression_statement "uVar2 = (*(code *)PTR_RelinquishMagickMemory_00178324)(*(undefined4 *)(unaff_s0 + 0x1038));" (assignment_expression "uVar2 = (*(code *)PTR_RelinquishMagickMemory_00178324)(*(undefined4 *)(unaff_s0 + 0x1038))" identifier = (call_expression "(*(code *)PTR_RelinquishMagickMemory_00178324)(*(undefined4 *)(unaff_s0 + 0x1038))" (parenthesized_expression "(*(code *)PTR_RelinquishMagickMemory_00178324)" ( (pointer_expression "*(code *)PTR_RelinquishMagickMemory_00178324" * (cast_expression "(code *)PTR_RelinquishMagickMemory_00178324" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(unaff_s0 + 0x1038))" ( (pointer_expression "*(undefined4 *)(unaff_s0 + 0x1038)" * (cast_expression "(undefined4 *)(unaff_s0 + 0x1038)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x1038)" ( (binary_expression "unaff_s0 + 0x1038" identifier + number_literal) )))) )))) ;) (expression_statement "*(undefined4 *)(unaff_s0 + 0x1038) = uVar2;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x1038) = uVar2" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x1038)" * (cast_expression "(undefined4 *)(unaff_s0 + 0x1038)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x1038)" ( (binary_expression "unaff_s0 + 0x1038" identifier + number_literal) )))) = identifier) ;) (if_statement "if (*(int *)(unaff_s0 + 0x101c) != 0) {\n    uVar2 = (*(code *)PTR_DestroyString_0017839c)();\n    *(undefined4 *)(unaff_s0 + 0x101c) = uVar2;\n  }" if (parenthesized_expression "(*(int *)(unaff_s0 + 0x101c) != 0)" ( (binary_expression "*(int *)(unaff_s0 + 0x101c) != 0" (pointer_expression "*(int *)(unaff_s0 + 0x101c)" * (cast_expression "(int *)(unaff_s0 + 0x101c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x101c)" ( (binary_expression "unaff_s0 + 0x101c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    uVar2 = (*(code *)PTR_DestroyString_0017839c)();\n    *(undefined4 *)(unaff_s0 + 0x101c) = uVar2;\n  }" { (expression_statement "uVar2 = (*(code *)PTR_DestroyString_0017839c)();" (assignment_expression "uVar2 = (*(code *)PTR_DestroyString_0017839c)()" identifier = (call_expression "(*(code *)PTR_DestroyString_0017839c)()" (parenthesized_expression "(*(code *)PTR_DestroyString_0017839c)" ( (pointer_expression "*(code *)PTR_DestroyString_0017839c" * (cast_expression "(code *)PTR_DestroyString_0017839c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(unaff_s0 + 0x101c) = uVar2;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x101c) = uVar2" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x101c)" * (cast_expression "(undefined4 *)(unaff_s0 + 0x101c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x101c)" ( (binary_expression "unaff_s0 + 0x101c" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "uVar2 = (*(code *)PTR_DestroyString_0017839c)(*(undefined4 *)(unaff_s0 + 0x100c));" (assignment_expression "uVar2 = (*(code *)PTR_DestroyString_0017839c)(*(undefined4 *)(unaff_s0 + 0x100c))" identifier = (call_expression "(*(code *)PTR_DestroyString_0017839c)(*(undefined4 *)(unaff_s0 + 0x100c))" (parenthesized_expression "(*(code *)PTR_DestroyString_0017839c)" ( (pointer_expression "*(code *)PTR_DestroyString_0017839c" * (cast_expression "(code *)PTR_DestroyString_0017839c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(unaff_s0 + 0x100c))" ( (pointer_expression "*(undefined4 *)(unaff_s0 + 0x100c)" * (cast_expression "(undefined4 *)(unaff_s0 + 0x100c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x100c)" ( (binary_expression "unaff_s0 + 0x100c" identifier + number_literal) )))) )))) ;) (expression_statement "*(undefined4 *)(unaff_s0 + 0x100c) = uVar2;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x100c) = uVar2" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x100c)" * (cast_expression "(undefined4 *)(unaff_s0 + 0x100c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x100c)" ( (binary_expression "unaff_s0 + 0x100c" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((*(int *)(unaff_s0 + 0x104c) == 0) || (*(int *)(&DAT_00001004 + unaff_s0) == 0)) {\n    *(undefined4 *)(&DAT_00001004 + unaff_s0) = 0;\n  }\n  else {\n    uVar2 = (*(code *)PTR_DestroyImage_001782ec)();\n    *(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2;\n  }" if (parenthesized_expression "((*(int *)(unaff_s0 + 0x104c) == 0) || (*(int *)(&DAT_00001004 + unaff_s0) == 0))" ( (binary_expression "(*(int *)(unaff_s0 + 0x104c) == 0) || (*(int *)(&DAT_00001004 + unaff_s0) == 0)" (parenthesized_expression "(*(int *)(unaff_s0 + 0x104c) == 0)" ( (binary_expression "*(int *)(unaff_s0 + 0x104c) == 0" (pointer_expression "*(int *)(unaff_s0 + 0x104c)" * (cast_expression "(int *)(unaff_s0 + 0x104c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x104c)" ( (binary_expression "unaff_s0 + 0x104c" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(*(int *)(&DAT_00001004 + unaff_s0) == 0)" ( (binary_expression "*(int *)(&DAT_00001004 + unaff_s0) == 0" (pointer_expression "*(int *)(&DAT_00001004 + unaff_s0)" * (cast_expression "(int *)(&DAT_00001004 + unaff_s0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00001004 + unaff_s0)" ( (binary_expression "&DAT_00001004 + unaff_s0" (pointer_expression "&DAT_00001004" & identifier) + identifier) )))) == number_literal) ))) )) (compound_statement "{\n    *(undefined4 *)(&DAT_00001004 + unaff_s0) = 0;\n  }" { (expression_statement "*(undefined4 *)(&DAT_00001004 + unaff_s0) = 0;" (assignment_expression "*(undefined4 *)(&DAT_00001004 + unaff_s0) = 0" (pointer_expression "*(undefined4 *)(&DAT_00001004 + unaff_s0)" * (cast_expression "(undefined4 *)(&DAT_00001004 + unaff_s0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00001004 + unaff_s0)" ( (binary_expression "&DAT_00001004 + unaff_s0" (pointer_expression "&DAT_00001004" & identifier) + identifier) )))) = number_literal) ;) }) (else_clause "else {\n    uVar2 = (*(code *)PTR_DestroyImage_001782ec)();\n    *(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2;\n  }" else (compound_statement "{\n    uVar2 = (*(code *)PTR_DestroyImage_001782ec)();\n    *(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2;\n  }" { (expression_statement "uVar2 = (*(code *)PTR_DestroyImage_001782ec)();" (assignment_expression "uVar2 = (*(code *)PTR_DestroyImage_001782ec)()" identifier = (call_expression "(*(code *)PTR_DestroyImage_001782ec)()" (parenthesized_expression "(*(code *)PTR_DestroyImage_001782ec)" ( (pointer_expression "*(code *)PTR_DestroyImage_001782ec" * (cast_expression "(code *)PTR_DestroyImage_001782ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2;" (assignment_expression "*(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2" (pointer_expression "*(undefined4 *)(&DAT_00001004 + unaff_s0)" * (cast_expression "(undefined4 *)(&DAT_00001004 + unaff_s0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00001004 + unaff_s0)" ( (binary_expression "&DAT_00001004 + unaff_s0" (pointer_expression "&DAT_00001004" & identifier) + identifier) )))) = identifier) ;) }))) (expression_statement "*(undefined4 *)(unaff_s0 + 0x100c) = 0;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x100c) = 0" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x100c)" * (cast_expression "(undefined4 *)(unaff_s0 + 0x100c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x100c)" ( (binary_expression "unaff_s0 + 0x100c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(&DAT_00001010 + unaff_s0) = 0;" (assignment_expression "*(undefined4 *)(&DAT_00001010 + unaff_s0) = 0" (pointer_expression "*(undefined4 *)(&DAT_00001010 + unaff_s0)" * (cast_expression "(undefined4 *)(&DAT_00001010 + unaff_s0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00001010 + unaff_s0)" ( (binary_expression "&DAT_00001010 + unaff_s0" (pointer_expression "&DAT_00001010" & identifier) + identifier) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(&DAT_00001014 + unaff_s0) = 0;" (assignment_expression "*(undefined4 *)(&DAT_00001014 + unaff_s0) = 0" (pointer_expression "*(undefined4 *)(&DAT_00001014 + unaff_s0)" * (cast_expression "(undefined4 *)(&DAT_00001014 + unaff_s0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00001014 + unaff_s0)" ( (binary_expression "&DAT_00001014 + unaff_s0" (pointer_expression "&DAT_00001014" & identifier) + identifier) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(&DAT_00001018 + unaff_s0) = 0;" (assignment_expression "*(undefined4 *)(&DAT_00001018 + unaff_s0) = 0" (pointer_expression "*(undefined4 *)(&DAT_00001018 + unaff_s0)" * (cast_expression "(undefined4 *)(&DAT_00001018 + unaff_s0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00001018 + unaff_s0)" ( (binary_expression "&DAT_00001018 + unaff_s0" (pointer_expression "&DAT_00001018" & identifier) + identifier) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(unaff_s0 + 0x101c) = 0;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x101c) = 0" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x101c)" * (cast_expression "(undefined4 *)(unaff_s0 + 0x101c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x101c)" ( (binary_expression "unaff_s0 + 0x101c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(unaff_s0 + 0x1030) = 0;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x1030) = 0" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x1030)" * (cast_expression "(undefined4 *)(unaff_s0 + 0x1030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x1030)" ( (binary_expression "unaff_s0 + 0x1030" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(unaff_s0 + 0x1028) = 0;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x1028) = 0" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x1028)" * (cast_expression "(undefined4 *)(unaff_s0 + 0x1028)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x1028)" ( (binary_expression "unaff_s0 + 0x1028" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(unaff_s0 + 0x102c) = 0;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x102c) = 0" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x102c)" * (cast_expression "(undefined4 *)(unaff_s0 + 0x102c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x102c)" ( (binary_expression "unaff_s0 + 0x102c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(unaff_s0 + 0x1020) = 0;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x1020) = 0" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x1020)" * (cast_expression "(undefined4 *)(unaff_s0 + 0x1020)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x1020)" ( (binary_expression "unaff_s0 + 0x1020" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(unaff_s0 + 0x1024) = 0;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x1024) = 0" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x1024)" * (cast_expression "(undefined4 *)(unaff_s0 + 0x1024)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x1024)" ( (binary_expression "unaff_s0 + 0x1024" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(unaff_s0 + 0x1034) = 0;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x1034) = 0" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x1034)" * (cast_expression "(undefined4 *)(unaff_s0 + 0x1034)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x1034)" ( (binary_expression "unaff_s0 + 0x1034" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar1 = (*(code *)PTR_AcquireQuantumMemory_00178694)(1,4);" (assignment_expression "iVar1 = (*(code *)PTR_AcquireQuantumMemory_00178694)(1,4)" identifier = (call_expression "(*(code *)PTR_AcquireQuantumMemory_00178694)(1,4)" (parenthesized_expression "(*(code *)PTR_AcquireQuantumMemory_00178694)" ( (pointer_expression "*(code *)PTR_AcquireQuantumMemory_00178694" * (cast_expression "(code *)PTR_AcquireQuantumMemory_00178694" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,4)" ( number_literal , number_literal )))) ;) (expression_statement "*(int *)(unaff_s0 + 0x1038) = iVar1;" (assignment_expression "*(int *)(unaff_s0 + 0x1038) = iVar1" (pointer_expression "*(int *)(unaff_s0 + 0x1038)" * (cast_expression "(int *)(unaff_s0 + 0x1038)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x1038)" ( (binary_expression "unaff_s0 + 0x1038" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar1 == 0) {\n    (*(code *)PTR_ThrowMagickException_001782c4)\n              (*(undefined4 *)(&DAT_00001008 + unaff_s0),PTR_s_oint_00178034 + -0x6960,\n               PTR_s_oint_00178034 + -0x459c,0x1c1,400,PTR_s_ision_00178030 + -0x354,\n               PTR_s_ision_00178030 + -0x35c,unaff_s0 + 4);\n  }\n  else {\n    iVar5 = *(int *)(unaff_s0 + 0x1034);\n    uVar2 = (*(code *)PTR_CloneDrawInfo_001784ac)(0,0);\n    *(undefined4 *)(iVar1 + iVar5 * 4) = uVar2;\n    *(undefined4 *)(unaff_s0 + 0x103c) = 1;\n    *(undefined4 *)(unaff_s0 + 0x1040) = 0;\n    *(undefined4 *)(unaff_s0 + 0x1044) = 0;\n    *(undefined4 *)(unaff_s0 + 0x1048) = 0;\n    uVar2 = (*(code *)PTR_AcquireImage_0017872c)(0,*(undefined4 *)(&DAT_00001008 + unaff_s0));\n    *(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2;\n    (*(code *)PTR_ClearMagickException_001783dc)(*(undefined4 *)(&DAT_00001008 + unaff_s0));\n    *(undefined4 *)(unaff_s0 + 0x104c) = 1;\n    uVar2 = (*(code *)PTR_IsEventLogging_00178810)();\n    *(undefined4 *)(unaff_s0 + 0x1050) = uVar2;\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    (*(code *)PTR_ThrowMagickException_001782c4)\n              (*(undefined4 *)(&DAT_00001008 + unaff_s0),PTR_s_oint_00178034 + -0x6960,\n               PTR_s_oint_00178034 + -0x459c,0x1c1,400,PTR_s_ision_00178030 + -0x354,\n               PTR_s_ision_00178030 + -0x35c,unaff_s0 + 4);\n  }" { (expression_statement "(*(code *)PTR_ThrowMagickException_001782c4)\n              (*(undefined4 *)(&DAT_00001008 + unaff_s0),PTR_s_oint_00178034 + -0x6960,\n               PTR_s_oint_00178034 + -0x459c,0x1c1,400,PTR_s_ision_00178030 + -0x354,\n               PTR_s_ision_00178030 + -0x35c,unaff_s0 + 4);" (call_expression "(*(code *)PTR_ThrowMagickException_001782c4)\n              (*(undefined4 *)(&DAT_00001008 + unaff_s0),PTR_s_oint_00178034 + -0x6960,\n               PTR_s_oint_00178034 + -0x459c,0x1c1,400,PTR_s_ision_00178030 + -0x354,\n               PTR_s_ision_00178030 + -0x35c,unaff_s0 + 4)" (parenthesized_expression "(*(code *)PTR_ThrowMagickException_001782c4)" ( (pointer_expression "*(code *)PTR_ThrowMagickException_001782c4" * (cast_expression "(code *)PTR_ThrowMagickException_001782c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(&DAT_00001008 + unaff_s0),PTR_s_oint_00178034 + -0x6960,\n               PTR_s_oint_00178034 + -0x459c,0x1c1,400,PTR_s_ision_00178030 + -0x354,\n               PTR_s_ision_00178030 + -0x35c,unaff_s0 + 4)" ( (pointer_expression "*(undefined4 *)(&DAT_00001008 + unaff_s0)" * (cast_expression "(undefined4 *)(&DAT_00001008 + unaff_s0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00001008 + unaff_s0)" ( (binary_expression "&DAT_00001008 + unaff_s0" (pointer_expression "&DAT_00001008" & identifier) + identifier) )))) , (binary_expression "PTR_s_oint_00178034 + -0x6960" identifier + number_literal) , (binary_expression "PTR_s_oint_00178034 + -0x459c" identifier + number_literal) , number_literal , number_literal , (binary_expression "PTR_s_ision_00178030 + -0x354" identifier + number_literal) , (binary_expression "PTR_s_ision_00178030 + -0x35c" identifier + number_literal) , (binary_expression "unaff_s0 + 4" identifier + number_literal) ))) ;) }) (else_clause "else {\n    iVar5 = *(int *)(unaff_s0 + 0x1034);\n    uVar2 = (*(code *)PTR_CloneDrawInfo_001784ac)(0,0);\n    *(undefined4 *)(iVar1 + iVar5 * 4) = uVar2;\n    *(undefined4 *)(unaff_s0 + 0x103c) = 1;\n    *(undefined4 *)(unaff_s0 + 0x1040) = 0;\n    *(undefined4 *)(unaff_s0 + 0x1044) = 0;\n    *(undefined4 *)(unaff_s0 + 0x1048) = 0;\n    uVar2 = (*(code *)PTR_AcquireImage_0017872c)(0,*(undefined4 *)(&DAT_00001008 + unaff_s0));\n    *(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2;\n    (*(code *)PTR_ClearMagickException_001783dc)(*(undefined4 *)(&DAT_00001008 + unaff_s0));\n    *(undefined4 *)(unaff_s0 + 0x104c) = 1;\n    uVar2 = (*(code *)PTR_IsEventLogging_00178810)();\n    *(undefined4 *)(unaff_s0 + 0x1050) = uVar2;\n  }" else (compound_statement "{\n    iVar5 = *(int *)(unaff_s0 + 0x1034);\n    uVar2 = (*(code *)PTR_CloneDrawInfo_001784ac)(0,0);\n    *(undefined4 *)(iVar1 + iVar5 * 4) = uVar2;\n    *(undefined4 *)(unaff_s0 + 0x103c) = 1;\n    *(undefined4 *)(unaff_s0 + 0x1040) = 0;\n    *(undefined4 *)(unaff_s0 + 0x1044) = 0;\n    *(undefined4 *)(unaff_s0 + 0x1048) = 0;\n    uVar2 = (*(code *)PTR_AcquireImage_0017872c)(0,*(undefined4 *)(&DAT_00001008 + unaff_s0));\n    *(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2;\n    (*(code *)PTR_ClearMagickException_001783dc)(*(undefined4 *)(&DAT_00001008 + unaff_s0));\n    *(undefined4 *)(unaff_s0 + 0x104c) = 1;\n    uVar2 = (*(code *)PTR_IsEventLogging_00178810)();\n    *(undefined4 *)(unaff_s0 + 0x1050) = uVar2;\n  }" { (expression_statement "iVar5 = *(int *)(unaff_s0 + 0x1034);" (assignment_expression "iVar5 = *(int *)(unaff_s0 + 0x1034)" identifier = (pointer_expression "*(int *)(unaff_s0 + 0x1034)" * (cast_expression "(int *)(unaff_s0 + 0x1034)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x1034)" ( (binary_expression "unaff_s0 + 0x1034" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = (*(code *)PTR_CloneDrawInfo_001784ac)(0,0);" (assignment_expression "uVar2 = (*(code *)PTR_CloneDrawInfo_001784ac)(0,0)" identifier = (call_expression "(*(code *)PTR_CloneDrawInfo_001784ac)(0,0)" (parenthesized_expression "(*(code *)PTR_CloneDrawInfo_001784ac)" ( (pointer_expression "*(code *)PTR_CloneDrawInfo_001784ac" * (cast_expression "(code *)PTR_CloneDrawInfo_001784ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,0)" ( number_literal , number_literal )))) ;) (expression_statement "*(undefined4 *)(iVar1 + iVar5 * 4) = uVar2;" (assignment_expression "*(undefined4 *)(iVar1 + iVar5 * 4) = uVar2" (pointer_expression "*(undefined4 *)(iVar1 + iVar5 * 4)" * (cast_expression "(undefined4 *)(iVar1 + iVar5 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + iVar5 * 4)" ( (binary_expression "iVar1 + iVar5 * 4" identifier + (binary_expression "iVar5 * 4" identifier * number_literal)) )))) = identifier) ;) (expression_statement "*(undefined4 *)(unaff_s0 + 0x103c) = 1;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x103c) = 1" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x103c)" * (cast_expression "(undefined4 *)(unaff_s0 + 0x103c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x103c)" ( (binary_expression "unaff_s0 + 0x103c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(unaff_s0 + 0x1040) = 0;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x1040) = 0" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x1040)" * (cast_expression "(undefined4 *)(unaff_s0 + 0x1040)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x1040)" ( (binary_expression "unaff_s0 + 0x1040" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(unaff_s0 + 0x1044) = 0;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x1044) = 0" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x1044)" * (cast_expression "(undefined4 *)(unaff_s0 + 0x1044)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x1044)" ( (binary_expression "unaff_s0 + 0x1044" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(unaff_s0 + 0x1048) = 0;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x1048) = 0" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x1048)" * (cast_expression "(undefined4 *)(unaff_s0 + 0x1048)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x1048)" ( (binary_expression "unaff_s0 + 0x1048" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar2 = (*(code *)PTR_AcquireImage_0017872c)(0,*(undefined4 *)(&DAT_00001008 + unaff_s0));" (assignment_expression "uVar2 = (*(code *)PTR_AcquireImage_0017872c)(0,*(undefined4 *)(&DAT_00001008 + unaff_s0))" identifier = (call_expression "(*(code *)PTR_AcquireImage_0017872c)(0,*(undefined4 *)(&DAT_00001008 + unaff_s0))" (parenthesized_expression "(*(code *)PTR_AcquireImage_0017872c)" ( (pointer_expression "*(code *)PTR_AcquireImage_0017872c" * (cast_expression "(code *)PTR_AcquireImage_0017872c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,*(undefined4 *)(&DAT_00001008 + unaff_s0))" ( number_literal , (pointer_expression "*(undefined4 *)(&DAT_00001008 + unaff_s0)" * (cast_expression "(undefined4 *)(&DAT_00001008 + unaff_s0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00001008 + unaff_s0)" ( (binary_expression "&DAT_00001008 + unaff_s0" (pointer_expression "&DAT_00001008" & identifier) + identifier) )))) )))) ;) (expression_statement "*(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2;" (assignment_expression "*(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2" (pointer_expression "*(undefined4 *)(&DAT_00001004 + unaff_s0)" * (cast_expression "(undefined4 *)(&DAT_00001004 + unaff_s0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00001004 + unaff_s0)" ( (binary_expression "&DAT_00001004 + unaff_s0" (pointer_expression "&DAT_00001004" & identifier) + identifier) )))) = identifier) ;) (expression_statement "(*(code *)PTR_ClearMagickException_001783dc)(*(undefined4 *)(&DAT_00001008 + unaff_s0));" (call_expression "(*(code *)PTR_ClearMagickException_001783dc)(*(undefined4 *)(&DAT_00001008 + unaff_s0))" (parenthesized_expression "(*(code *)PTR_ClearMagickException_001783dc)" ( (pointer_expression "*(code *)PTR_ClearMagickException_001783dc" * (cast_expression "(code *)PTR_ClearMagickException_001783dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(&DAT_00001008 + unaff_s0))" ( (pointer_expression "*(undefined4 *)(&DAT_00001008 + unaff_s0)" * (cast_expression "(undefined4 *)(&DAT_00001008 + unaff_s0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00001008 + unaff_s0)" ( (binary_expression "&DAT_00001008 + unaff_s0" (pointer_expression "&DAT_00001008" & identifier) + identifier) )))) ))) ;) (expression_statement "*(undefined4 *)(unaff_s0 + 0x104c) = 1;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x104c) = 1" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x104c)" * (cast_expression "(undefined4 *)(unaff_s0 + 0x104c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x104c)" ( (binary_expression "unaff_s0 + 0x104c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar2 = (*(code *)PTR_IsEventLogging_00178810)();" (assignment_expression "uVar2 = (*(code *)PTR_IsEventLogging_00178810)()" identifier = (call_expression "(*(code *)PTR_IsEventLogging_00178810)()" (parenthesized_expression "(*(code *)PTR_IsEventLogging_00178810)" ( (pointer_expression "*(code *)PTR_IsEventLogging_00178810" * (cast_expression "(code *)PTR_IsEventLogging_00178810" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(unaff_s0 + 0x1050) = uVar2;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x1050) = uVar2" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x1050)" * (cast_expression "(undefined4 *)(unaff_s0 + 0x1050)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x1050)" ( (binary_expression "unaff_s0 + 0x1050" identifier + number_literal) )))) = identifier) ;) }))) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Enum "GravityType": Some values do not have unique names */\n/* WARNING: Enum "DisposeType": Some values do not have unique names */\n/* WARNING: Enum "ChannelType": Some values do not have unique names */\n/* WARNING: Enum "PixelChannel": Some values do not have unique names */\n/* WARNING: Enum "ExceptionType": Some values do not have unique names */\n/* WARNING: Enum "ComplianceType": Some values do not have unique names */\n\nvoid ClearDrawingWand(DrawingWand *wand)\n\n{\n  size_t sVar1;\n  DrawInfo *pDVar2;\n  char *pcVar3;\n  Image *pIVar4;\n  MagickBooleanType MVar5;\n  undefined *puVar6;\n  DrawingWand *unaff_s0;\n  DrawInfo **ppDVar7;\n  \n  if (wand == (DrawingWand *)0x0) {\n    puVar6 = PTR_s_oint_00178034 + -0x4588;\n    (*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1a1,puVar6);\nLAB_000766f4:\n    pcVar3 = (char *)(*(code *)PTR___assert_fail_00178728)\n                               (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1a2,\n                                puVar6 + -0x4588);\n  }\n  else {\n    puVar6 = PTR_s_oint_00178034;\n    unaff_s0 = wand;\n    if (wand->signature != 0xabacadab) goto LAB_000766f4;\n    pcVar3 = wand->name;\n    if (wand->debug == MagickFalse) {\n      sVar1 = wand->index;\n      goto joined_r0x00076600;\n    }\n  }\n  (*(code *)PTR_LogMagickEvent_00178490)\n            (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x459c,0x1a4,\n             PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,pcVar3);\n  sVar1 = unaff_s0->index;\njoined_r0x00076600:\n  while (sVar1 != 0) {\n    ppDVar7 = unaff_s0->graphic_context;\n    pDVar2 = (DrawInfo *)(*(code *)PTR_DestroyDrawInfo_00178340)(ppDVar7[sVar1]);\n    ppDVar7[sVar1] = pDVar2;\n    sVar1 = unaff_s0->index - 1;\n    unaff_s0->index = sVar1;\n  }\n  ppDVar7 = unaff_s0->graphic_context;\n  pDVar2 = (DrawInfo *)(*(code *)PTR_DestroyDrawInfo_00178340)(*ppDVar7);\n  *ppDVar7 = pDVar2;\n  ppDVar7 = (DrawInfo **)(*(code *)PTR_RelinquishMagickMemory_00178324)(unaff_s0->graphic_context);\n  unaff_s0->graphic_context = ppDVar7;\n  if (unaff_s0->pattern_id != (char *)0x0) {\n    pcVar3 = (char *)(*(code *)PTR_DestroyString_0017839c)();\n    unaff_s0->pattern_id = pcVar3;\n  }\n  pcVar3 = (char *)(*(code *)PTR_DestroyString_0017839c)(unaff_s0->mvg);\n  unaff_s0->mvg = pcVar3;\n  if ((unaff_s0->destroy == MagickFalse) || (unaff_s0->image == (Image *)0x0)) {\n    unaff_s0->image = (Image *)0x0;\n  }\n  else {\n    pIVar4 = (Image *)(*(code *)PTR_DestroyImage_001782ec)();\n    unaff_s0->image = pIVar4;\n  }\n  unaff_s0->mvg = (char *)0x0;\n  unaff_s0->mvg_alloc = 0;\n  unaff_s0->mvg_length = 0;\n  unaff_s0->mvg_width = 0;\n  unaff_s0->pattern_id = (char *)0x0;\n  unaff_s0->pattern_offset = 0;\n  (unaff_s0->pattern_bounds).x = 0;\n  (unaff_s0->pattern_bounds).y = 0;\n  (unaff_s0->pattern_bounds).width = 0;\n  (unaff_s0->pattern_bounds).height = 0;\n  unaff_s0->index = 0;\n  ppDVar7 = (DrawInfo **)(*(code *)PTR_AcquireQuantumMemory_00178694)(1,4);\n  unaff_s0->graphic_context = ppDVar7;\n  if (ppDVar7 == (DrawInfo **)0x0) {\n    (*(code *)PTR_ThrowMagickException_001782c4)\n              (unaff_s0->exception,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x459c,0x1c1\n               ,400,PTR_s_ision_00178030 + -0x354,PTR_s_ision_00178030 + -0x35c,unaff_s0->name);\n  }\n  else {\n    sVar1 = unaff_s0->index;\n    pDVar2 = (DrawInfo *)(*(code *)PTR_CloneDrawInfo_001784ac)(0,0);\n    ppDVar7[sVar1] = pDVar2;\n    unaff_s0->filter_off = MagickTrue;\n    unaff_s0->indent_depth = 0;\n    unaff_s0->path_operation = PathDefaultOperation;\n    unaff_s0->path_mode = DefaultPathMode;\n    pIVar4 = (Image *)(*(code *)PTR_AcquireImage_0017872c)(0,unaff_s0->exception);\n    unaff_s0->image = pIVar4;\n    (*(code *)PTR_ClearMagickException_001783dc)(unaff_s0->exception);\n    unaff_s0->destroy = MagickTrue;\n    MVar5 = (*(code *)PTR_IsEventLogging_00178810)();\n    unaff_s0->debug = MVar5;\n  }\n  return;\n}\n\n" comment comment comment comment comment comment (function_definition "void ClearDrawingWand(DrawingWand *wand)\n\n{\n  size_t sVar1;\n  DrawInfo *pDVar2;\n  char *pcVar3;\n  Image *pIVar4;\n  MagickBooleanType MVar5;\n  undefined *puVar6;\n  DrawingWand *unaff_s0;\n  DrawInfo **ppDVar7;\n  \n  if (wand == (DrawingWand *)0x0) {\n    puVar6 = PTR_s_oint_00178034 + -0x4588;\n    (*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1a1,puVar6);\nLAB_000766f4:\n    pcVar3 = (char *)(*(code *)PTR___assert_fail_00178728)\n                               (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1a2,\n                                puVar6 + -0x4588);\n  }\n  else {\n    puVar6 = PTR_s_oint_00178034;\n    unaff_s0 = wand;\n    if (wand->signature != 0xabacadab) goto LAB_000766f4;\n    pcVar3 = wand->name;\n    if (wand->debug == MagickFalse) {\n      sVar1 = wand->index;\n      goto joined_r0x00076600;\n    }\n  }\n  (*(code *)PTR_LogMagickEvent_00178490)\n            (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x459c,0x1a4,\n             PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,pcVar3);\n  sVar1 = unaff_s0->index;\njoined_r0x00076600:\n  while (sVar1 != 0) {\n    ppDVar7 = unaff_s0->graphic_context;\n    pDVar2 = (DrawInfo *)(*(code *)PTR_DestroyDrawInfo_00178340)(ppDVar7[sVar1]);\n    ppDVar7[sVar1] = pDVar2;\n    sVar1 = unaff_s0->index - 1;\n    unaff_s0->index = sVar1;\n  }\n  ppDVar7 = unaff_s0->graphic_context;\n  pDVar2 = (DrawInfo *)(*(code *)PTR_DestroyDrawInfo_00178340)(*ppDVar7);\n  *ppDVar7 = pDVar2;\n  ppDVar7 = (DrawInfo **)(*(code *)PTR_RelinquishMagickMemory_00178324)(unaff_s0->graphic_context);\n  unaff_s0->graphic_context = ppDVar7;\n  if (unaff_s0->pattern_id != (char *)0x0) {\n    pcVar3 = (char *)(*(code *)PTR_DestroyString_0017839c)();\n    unaff_s0->pattern_id = pcVar3;\n  }\n  pcVar3 = (char *)(*(code *)PTR_DestroyString_0017839c)(unaff_s0->mvg);\n  unaff_s0->mvg = pcVar3;\n  if ((unaff_s0->destroy == MagickFalse) || (unaff_s0->image == (Image *)0x0)) {\n    unaff_s0->image = (Image *)0x0;\n  }\n  else {\n    pIVar4 = (Image *)(*(code *)PTR_DestroyImage_001782ec)();\n    unaff_s0->image = pIVar4;\n  }\n  unaff_s0->mvg = (char *)0x0;\n  unaff_s0->mvg_alloc = 0;\n  unaff_s0->mvg_length = 0;\n  unaff_s0->mvg_width = 0;\n  unaff_s0->pattern_id = (char *)0x0;\n  unaff_s0->pattern_offset = 0;\n  (unaff_s0->pattern_bounds).x = 0;\n  (unaff_s0->pattern_bounds).y = 0;\n  (unaff_s0->pattern_bounds).width = 0;\n  (unaff_s0->pattern_bounds).height = 0;\n  unaff_s0->index = 0;\n  ppDVar7 = (DrawInfo **)(*(code *)PTR_AcquireQuantumMemory_00178694)(1,4);\n  unaff_s0->graphic_context = ppDVar7;\n  if (ppDVar7 == (DrawInfo **)0x0) {\n    (*(code *)PTR_ThrowMagickException_001782c4)\n              (unaff_s0->exception,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x459c,0x1c1\n               ,400,PTR_s_ision_00178030 + -0x354,PTR_s_ision_00178030 + -0x35c,unaff_s0->name);\n  }\n  else {\n    sVar1 = unaff_s0->index;\n    pDVar2 = (DrawInfo *)(*(code *)PTR_CloneDrawInfo_001784ac)(0,0);\n    ppDVar7[sVar1] = pDVar2;\n    unaff_s0->filter_off = MagickTrue;\n    unaff_s0->indent_depth = 0;\n    unaff_s0->path_operation = PathDefaultOperation;\n    unaff_s0->path_mode = DefaultPathMode;\n    pIVar4 = (Image *)(*(code *)PTR_AcquireImage_0017872c)(0,unaff_s0->exception);\n    unaff_s0->image = pIVar4;\n    (*(code *)PTR_ClearMagickException_001783dc)(unaff_s0->exception);\n    unaff_s0->destroy = MagickTrue;\n    MVar5 = (*(code *)PTR_IsEventLogging_00178810)();\n    unaff_s0->debug = MVar5;\n  }\n  return;\n}" primitive_type (function_declarator "ClearDrawingWand(DrawingWand *wand)" identifier (parameter_list "(DrawingWand *wand)" ( (parameter_declaration "DrawingWand *wand" type_identifier (pointer_declarator "*wand" * identifier)) ))) (compound_statement "{\n  size_t sVar1;\n  DrawInfo *pDVar2;\n  char *pcVar3;\n  Image *pIVar4;\n  MagickBooleanType MVar5;\n  undefined *puVar6;\n  DrawingWand *unaff_s0;\n  DrawInfo **ppDVar7;\n  \n  if (wand == (DrawingWand *)0x0) {\n    puVar6 = PTR_s_oint_00178034 + -0x4588;\n    (*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1a1,puVar6);\nLAB_000766f4:\n    pcVar3 = (char *)(*(code *)PTR___assert_fail_00178728)\n                               (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1a2,\n                                puVar6 + -0x4588);\n  }\n  else {\n    puVar6 = PTR_s_oint_00178034;\n    unaff_s0 = wand;\n    if (wand->signature != 0xabacadab) goto LAB_000766f4;\n    pcVar3 = wand->name;\n    if (wand->debug == MagickFalse) {\n      sVar1 = wand->index;\n      goto joined_r0x00076600;\n    }\n  }\n  (*(code *)PTR_LogMagickEvent_00178490)\n            (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x459c,0x1a4,\n             PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,pcVar3);\n  sVar1 = unaff_s0->index;\njoined_r0x00076600:\n  while (sVar1 != 0) {\n    ppDVar7 = unaff_s0->graphic_context;\n    pDVar2 = (DrawInfo *)(*(code *)PTR_DestroyDrawInfo_00178340)(ppDVar7[sVar1]);\n    ppDVar7[sVar1] = pDVar2;\n    sVar1 = unaff_s0->index - 1;\n    unaff_s0->index = sVar1;\n  }\n  ppDVar7 = unaff_s0->graphic_context;\n  pDVar2 = (DrawInfo *)(*(code *)PTR_DestroyDrawInfo_00178340)(*ppDVar7);\n  *ppDVar7 = pDVar2;\n  ppDVar7 = (DrawInfo **)(*(code *)PTR_RelinquishMagickMemory_00178324)(unaff_s0->graphic_context);\n  unaff_s0->graphic_context = ppDVar7;\n  if (unaff_s0->pattern_id != (char *)0x0) {\n    pcVar3 = (char *)(*(code *)PTR_DestroyString_0017839c)();\n    unaff_s0->pattern_id = pcVar3;\n  }\n  pcVar3 = (char *)(*(code *)PTR_DestroyString_0017839c)(unaff_s0->mvg);\n  unaff_s0->mvg = pcVar3;\n  if ((unaff_s0->destroy == MagickFalse) || (unaff_s0->image == (Image *)0x0)) {\n    unaff_s0->image = (Image *)0x0;\n  }\n  else {\n    pIVar4 = (Image *)(*(code *)PTR_DestroyImage_001782ec)();\n    unaff_s0->image = pIVar4;\n  }\n  unaff_s0->mvg = (char *)0x0;\n  unaff_s0->mvg_alloc = 0;\n  unaff_s0->mvg_length = 0;\n  unaff_s0->mvg_width = 0;\n  unaff_s0->pattern_id = (char *)0x0;\n  unaff_s0->pattern_offset = 0;\n  (unaff_s0->pattern_bounds).x = 0;\n  (unaff_s0->pattern_bounds).y = 0;\n  (unaff_s0->pattern_bounds).width = 0;\n  (unaff_s0->pattern_bounds).height = 0;\n  unaff_s0->index = 0;\n  ppDVar7 = (DrawInfo **)(*(code *)PTR_AcquireQuantumMemory_00178694)(1,4);\n  unaff_s0->graphic_context = ppDVar7;\n  if (ppDVar7 == (DrawInfo **)0x0) {\n    (*(code *)PTR_ThrowMagickException_001782c4)\n              (unaff_s0->exception,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x459c,0x1c1\n               ,400,PTR_s_ision_00178030 + -0x354,PTR_s_ision_00178030 + -0x35c,unaff_s0->name);\n  }\n  else {\n    sVar1 = unaff_s0->index;\n    pDVar2 = (DrawInfo *)(*(code *)PTR_CloneDrawInfo_001784ac)(0,0);\n    ppDVar7[sVar1] = pDVar2;\n    unaff_s0->filter_off = MagickTrue;\n    unaff_s0->indent_depth = 0;\n    unaff_s0->path_operation = PathDefaultOperation;\n    unaff_s0->path_mode = DefaultPathMode;\n    pIVar4 = (Image *)(*(code *)PTR_AcquireImage_0017872c)(0,unaff_s0->exception);\n    unaff_s0->image = pIVar4;\n    (*(code *)PTR_ClearMagickException_001783dc)(unaff_s0->exception);\n    unaff_s0->destroy = MagickTrue;\n    MVar5 = (*(code *)PTR_IsEventLogging_00178810)();\n    unaff_s0->debug = MVar5;\n  }\n  return;\n}" { (declaration "size_t sVar1;" primitive_type identifier ;) (declaration "DrawInfo *pDVar2;" type_identifier (pointer_declarator "*pDVar2" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "Image *pIVar4;" type_identifier (pointer_declarator "*pIVar4" * identifier) ;) (declaration "MagickBooleanType MVar5;" type_identifier identifier ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "DrawingWand *unaff_s0;" type_identifier (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "DrawInfo **ppDVar7;" type_identifier (pointer_declarator "**ppDVar7" * (pointer_declarator "*ppDVar7" * identifier)) ;) (if_statement "if (wand == (DrawingWand *)0x0) {\n    puVar6 = PTR_s_oint_00178034 + -0x4588;\n    (*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1a1,puVar6);\nLAB_000766f4:\n    pcVar3 = (char *)(*(code *)PTR___assert_fail_00178728)\n                               (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1a2,\n                                puVar6 + -0x4588);\n  }\n  else {\n    puVar6 = PTR_s_oint_00178034;\n    unaff_s0 = wand;\n    if (wand->signature != 0xabacadab) goto LAB_000766f4;\n    pcVar3 = wand->name;\n    if (wand->debug == MagickFalse) {\n      sVar1 = wand->index;\n      goto joined_r0x00076600;\n    }\n  }" if (parenthesized_expression "(wand == (DrawingWand *)0x0)" ( (binary_expression "wand == (DrawingWand *)0x0" identifier == (cast_expression "(DrawingWand *)0x0" ( (type_descriptor "DrawingWand *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar6 = PTR_s_oint_00178034 + -0x4588;\n    (*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1a1,puVar6);\nLAB_000766f4:\n    pcVar3 = (char *)(*(code *)PTR___assert_fail_00178728)\n                               (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1a2,\n                                puVar6 + -0x4588);\n  }" { (expression_statement "puVar6 = PTR_s_oint_00178034 + -0x4588;" (assignment_expression "puVar6 = PTR_s_oint_00178034 + -0x4588" identifier = (binary_expression "PTR_s_oint_00178034 + -0x4588" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1a1,puVar6);" (call_expression "(*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1a1,puVar6)" (parenthesized_expression "(*(code *)PTR___assert_fail_00178728)" ( (pointer_expression "*(code *)PTR___assert_fail_00178728" * (cast_expression "(code *)PTR___assert_fail_00178728" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1a1,puVar6)" ( (binary_expression "PTR_s_oint_00178034 + -0x6944" identifier + number_literal) , (binary_expression "PTR_s_oint_00178034 + -0x6960" identifier + number_literal) , number_literal , identifier ))) ;) (labeled_statement "LAB_000766f4:\n    pcVar3 = (char *)(*(code *)PTR___assert_fail_00178728)\n                               (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1a2,\n                                puVar6 + -0x4588);" statement_identifier : (expression_statement "pcVar3 = (char *)(*(code *)PTR___assert_fail_00178728)\n                               (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1a2,\n                                puVar6 + -0x4588);" (assignment_expression "pcVar3 = (char *)(*(code *)PTR___assert_fail_00178728)\n                               (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1a2,\n                                puVar6 + -0x4588)" identifier = (cast_expression "(char *)(*(code *)PTR___assert_fail_00178728)\n                               (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1a2,\n                                puVar6 + -0x4588)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___assert_fail_00178728)\n                               (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1a2,\n                                puVar6 + -0x4588)" (parenthesized_expression "(*(code *)PTR___assert_fail_00178728)" ( (pointer_expression "*(code *)PTR___assert_fail_00178728" * (cast_expression "(code *)PTR___assert_fail_00178728" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1a2,\n                                puVar6 + -0x4588)" ( (binary_expression "PTR_s_oint_00178034 + -0x1e54" identifier + number_literal) , (binary_expression "PTR_s_oint_00178034 + -0x6960" identifier + number_literal) , number_literal , (binary_expression "puVar6 + -0x4588" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n    puVar6 = PTR_s_oint_00178034;\n    unaff_s0 = wand;\n    if (wand->signature != 0xabacadab) goto LAB_000766f4;\n    pcVar3 = wand->name;\n    if (wand->debug == MagickFalse) {\n      sVar1 = wand->index;\n      goto joined_r0x00076600;\n    }\n  }" else (compound_statement "{\n    puVar6 = PTR_s_oint_00178034;\n    unaff_s0 = wand;\n    if (wand->signature != 0xabacadab) goto LAB_000766f4;\n    pcVar3 = wand->name;\n    if (wand->debug == MagickFalse) {\n      sVar1 = wand->index;\n      goto joined_r0x00076600;\n    }\n  }" { (expression_statement "puVar6 = PTR_s_oint_00178034;" (assignment_expression "puVar6 = PTR_s_oint_00178034" identifier = identifier) ;) (expression_statement "unaff_s0 = wand;" (assignment_expression "unaff_s0 = wand" identifier = identifier) ;) (if_statement "if (wand->signature != 0xabacadab) goto LAB_000766f4;" if (parenthesized_expression "(wand->signature != 0xabacadab)" ( (binary_expression "wand->signature != 0xabacadab" (field_expression "wand->signature" identifier -> field_identifier) != number_literal) )) (goto_statement "goto LAB_000766f4;" goto statement_identifier ;)) (expression_statement "pcVar3 = wand->name;" (assignment_expression "pcVar3 = wand->name" identifier = (field_expression "wand->name" identifier -> field_identifier)) ;) (if_statement "if (wand->debug == MagickFalse) {\n      sVar1 = wand->index;\n      goto joined_r0x00076600;\n    }" if (parenthesized_expression "(wand->debug == MagickFalse)" ( (binary_expression "wand->debug == MagickFalse" (field_expression "wand->debug" identifier -> field_identifier) == identifier) )) (compound_statement "{\n      sVar1 = wand->index;\n      goto joined_r0x00076600;\n    }" { (expression_statement "sVar1 = wand->index;" (assignment_expression "sVar1 = wand->index" identifier = (field_expression "wand->index" identifier -> field_identifier)) ;) (goto_statement "goto joined_r0x00076600;" goto statement_identifier ;) })) }))) (expression_statement "(*(code *)PTR_LogMagickEvent_00178490)\n            (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x459c,0x1a4,\n             PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,pcVar3);" (call_expression "(*(code *)PTR_LogMagickEvent_00178490)\n            (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x459c,0x1a4,\n             PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,pcVar3)" (parenthesized_expression "(*(code *)PTR_LogMagickEvent_00178490)" ( (pointer_expression "*(code *)PTR_LogMagickEvent_00178490" * (cast_expression "(code *)PTR_LogMagickEvent_00178490" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x459c,0x1a4,\n             PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,pcVar3)" ( number_literal , (binary_expression "PTR_s_oint_00178034 + -0x6960" identifier + number_literal) , (binary_expression "PTR_s_oint_00178034 + -0x459c" identifier + number_literal) , number_literal , (binary_expression "PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318" identifier + number_literal) , identifier ))) ;) (expression_statement "sVar1 = unaff_s0->index;" (assignment_expression "sVar1 = unaff_s0->index" identifier = (field_expression "unaff_s0->index" identifier -> field_identifier)) ;) (labeled_statement "joined_r0x00076600:\n  while (sVar1 != 0) {\n    ppDVar7 = unaff_s0->graphic_context;\n    pDVar2 = (DrawInfo *)(*(code *)PTR_DestroyDrawInfo_00178340)(ppDVar7[sVar1]);\n    ppDVar7[sVar1] = pDVar2;\n    sVar1 = unaff_s0->index - 1;\n    unaff_s0->index = sVar1;\n  }" statement_identifier : (while_statement "while (sVar1 != 0) {\n    ppDVar7 = unaff_s0->graphic_context;\n    pDVar2 = (DrawInfo *)(*(code *)PTR_DestroyDrawInfo_00178340)(ppDVar7[sVar1]);\n    ppDVar7[sVar1] = pDVar2;\n    sVar1 = unaff_s0->index - 1;\n    unaff_s0->index = sVar1;\n  }" while (parenthesized_expression "(sVar1 != 0)" ( (binary_expression "sVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    ppDVar7 = unaff_s0->graphic_context;\n    pDVar2 = (DrawInfo *)(*(code *)PTR_DestroyDrawInfo_00178340)(ppDVar7[sVar1]);\n    ppDVar7[sVar1] = pDVar2;\n    sVar1 = unaff_s0->index - 1;\n    unaff_s0->index = sVar1;\n  }" { (expression_statement "ppDVar7 = unaff_s0->graphic_context;" (assignment_expression "ppDVar7 = unaff_s0->graphic_context" identifier = (field_expression "unaff_s0->graphic_context" identifier -> field_identifier)) ;) (expression_statement "pDVar2 = (DrawInfo *)(*(code *)PTR_DestroyDrawInfo_00178340)(ppDVar7[sVar1]);" (assignment_expression "pDVar2 = (DrawInfo *)(*(code *)PTR_DestroyDrawInfo_00178340)(ppDVar7[sVar1])" identifier = (cast_expression "(DrawInfo *)(*(code *)PTR_DestroyDrawInfo_00178340)(ppDVar7[sVar1])" ( (type_descriptor "DrawInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_DestroyDrawInfo_00178340)(ppDVar7[sVar1])" (parenthesized_expression "(*(code *)PTR_DestroyDrawInfo_00178340)" ( (pointer_expression "*(code *)PTR_DestroyDrawInfo_00178340" * (cast_expression "(code *)PTR_DestroyDrawInfo_00178340" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ppDVar7[sVar1])" ( (subscript_expression "ppDVar7[sVar1]" identifier [ identifier ]) ))))) ;) (expression_statement "ppDVar7[sVar1] = pDVar2;" (assignment_expression "ppDVar7[sVar1] = pDVar2" (subscript_expression "ppDVar7[sVar1]" identifier [ identifier ]) = identifier) ;) (expression_statement "sVar1 = unaff_s0->index - 1;" (assignment_expression "sVar1 = unaff_s0->index - 1" identifier = (binary_expression "unaff_s0->index - 1" (field_expression "unaff_s0->index" identifier -> field_identifier) - number_literal)) ;) (expression_statement "unaff_s0->index = sVar1;" (assignment_expression "unaff_s0->index = sVar1" (field_expression "unaff_s0->index" identifier -> field_identifier) = identifier) ;) }))) (expression_statement "ppDVar7 = unaff_s0->graphic_context;" (assignment_expression "ppDVar7 = unaff_s0->graphic_context" identifier = (field_expression "unaff_s0->graphic_context" identifier -> field_identifier)) ;) (expression_statement "pDVar2 = (DrawInfo *)(*(code *)PTR_DestroyDrawInfo_00178340)(*ppDVar7);" (assignment_expression "pDVar2 = (DrawInfo *)(*(code *)PTR_DestroyDrawInfo_00178340)(*ppDVar7)" identifier = (cast_expression "(DrawInfo *)(*(code *)PTR_DestroyDrawInfo_00178340)(*ppDVar7)" ( (type_descriptor "DrawInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_DestroyDrawInfo_00178340)(*ppDVar7)" (parenthesized_expression "(*(code *)PTR_DestroyDrawInfo_00178340)" ( (pointer_expression "*(code *)PTR_DestroyDrawInfo_00178340" * (cast_expression "(code *)PTR_DestroyDrawInfo_00178340" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*ppDVar7)" ( (pointer_expression "*ppDVar7" * identifier) ))))) ;) (expression_statement "*ppDVar7 = pDVar2;" (assignment_expression "*ppDVar7 = pDVar2" (pointer_expression "*ppDVar7" * identifier) = identifier) ;) (expression_statement "ppDVar7 = (DrawInfo **)(*(code *)PTR_RelinquishMagickMemory_00178324)(unaff_s0->graphic_context);" (assignment_expression "ppDVar7 = (DrawInfo **)(*(code *)PTR_RelinquishMagickMemory_00178324)(unaff_s0->graphic_context)" identifier = (cast_expression "(DrawInfo **)(*(code *)PTR_RelinquishMagickMemory_00178324)(unaff_s0->graphic_context)" ( (type_descriptor "DrawInfo **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(*(code *)PTR_RelinquishMagickMemory_00178324)(unaff_s0->graphic_context)" (parenthesized_expression "(*(code *)PTR_RelinquishMagickMemory_00178324)" ( (pointer_expression "*(code *)PTR_RelinquishMagickMemory_00178324" * (cast_expression "(code *)PTR_RelinquishMagickMemory_00178324" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s0->graphic_context)" ( (field_expression "unaff_s0->graphic_context" identifier -> field_identifier) ))))) ;) (expression_statement "unaff_s0->graphic_context = ppDVar7;" (assignment_expression "unaff_s0->graphic_context = ppDVar7" (field_expression "unaff_s0->graphic_context" identifier -> field_identifier) = identifier) ;) (if_statement "if (unaff_s0->pattern_id != (char *)0x0) {\n    pcVar3 = (char *)(*(code *)PTR_DestroyString_0017839c)();\n    unaff_s0->pattern_id = pcVar3;\n  }" if (parenthesized_expression "(unaff_s0->pattern_id != (char *)0x0)" ( (binary_expression "unaff_s0->pattern_id != (char *)0x0" (field_expression "unaff_s0->pattern_id" identifier -> field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar3 = (char *)(*(code *)PTR_DestroyString_0017839c)();\n    unaff_s0->pattern_id = pcVar3;\n  }" { (expression_statement "pcVar3 = (char *)(*(code *)PTR_DestroyString_0017839c)();" (assignment_expression "pcVar3 = (char *)(*(code *)PTR_DestroyString_0017839c)()" identifier = (cast_expression "(char *)(*(code *)PTR_DestroyString_0017839c)()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_DestroyString_0017839c)()" (parenthesized_expression "(*(code *)PTR_DestroyString_0017839c)" ( (pointer_expression "*(code *)PTR_DestroyString_0017839c" * (cast_expression "(code *)PTR_DestroyString_0017839c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "unaff_s0->pattern_id = pcVar3;" (assignment_expression "unaff_s0->pattern_id = pcVar3" (field_expression "unaff_s0->pattern_id" identifier -> field_identifier) = identifier) ;) })) (expression_statement "pcVar3 = (char *)(*(code *)PTR_DestroyString_0017839c)(unaff_s0->mvg);" (assignment_expression "pcVar3 = (char *)(*(code *)PTR_DestroyString_0017839c)(unaff_s0->mvg)" identifier = (cast_expression "(char *)(*(code *)PTR_DestroyString_0017839c)(unaff_s0->mvg)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_DestroyString_0017839c)(unaff_s0->mvg)" (parenthesized_expression "(*(code *)PTR_DestroyString_0017839c)" ( (pointer_expression "*(code *)PTR_DestroyString_0017839c" * (cast_expression "(code *)PTR_DestroyString_0017839c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s0->mvg)" ( (field_expression "unaff_s0->mvg" identifier -> field_identifier) ))))) ;) (expression_statement "unaff_s0->mvg = pcVar3;" (assignment_expression "unaff_s0->mvg = pcVar3" (field_expression "unaff_s0->mvg" identifier -> field_identifier) = identifier) ;) (if_statement "if ((unaff_s0->destroy == MagickFalse) || (unaff_s0->image == (Image *)0x0)) {\n    unaff_s0->image = (Image *)0x0;\n  }\n  else {\n    pIVar4 = (Image *)(*(code *)PTR_DestroyImage_001782ec)();\n    unaff_s0->image = pIVar4;\n  }" if (parenthesized_expression "((unaff_s0->destroy == MagickFalse) || (unaff_s0->image == (Image *)0x0))" ( (binary_expression "(unaff_s0->destroy == MagickFalse) || (unaff_s0->image == (Image *)0x0)" (parenthesized_expression "(unaff_s0->destroy == MagickFalse)" ( (binary_expression "unaff_s0->destroy == MagickFalse" (field_expression "unaff_s0->destroy" identifier -> field_identifier) == identifier) )) || (parenthesized_expression "(unaff_s0->image == (Image *)0x0)" ( (binary_expression "unaff_s0->image == (Image *)0x0" (field_expression "unaff_s0->image" identifier -> field_identifier) == (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    unaff_s0->image = (Image *)0x0;\n  }" { (expression_statement "unaff_s0->image = (Image *)0x0;" (assignment_expression "unaff_s0->image = (Image *)0x0" (field_expression "unaff_s0->image" identifier -> field_identifier) = (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    pIVar4 = (Image *)(*(code *)PTR_DestroyImage_001782ec)();\n    unaff_s0->image = pIVar4;\n  }" else (compound_statement "{\n    pIVar4 = (Image *)(*(code *)PTR_DestroyImage_001782ec)();\n    unaff_s0->image = pIVar4;\n  }" { (expression_statement "pIVar4 = (Image *)(*(code *)PTR_DestroyImage_001782ec)();" (assignment_expression "pIVar4 = (Image *)(*(code *)PTR_DestroyImage_001782ec)()" identifier = (cast_expression "(Image *)(*(code *)PTR_DestroyImage_001782ec)()" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_DestroyImage_001782ec)()" (parenthesized_expression "(*(code *)PTR_DestroyImage_001782ec)" ( (pointer_expression "*(code *)PTR_DestroyImage_001782ec" * (cast_expression "(code *)PTR_DestroyImage_001782ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "unaff_s0->image = pIVar4;" (assignment_expression "unaff_s0->image = pIVar4" (field_expression "unaff_s0->image" identifier -> field_identifier) = identifier) ;) }))) (expression_statement "unaff_s0->mvg = (char *)0x0;" (assignment_expression "unaff_s0->mvg = (char *)0x0" (field_expression "unaff_s0->mvg" identifier -> field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s0->mvg_alloc = 0;" (assignment_expression "unaff_s0->mvg_alloc = 0" (field_expression "unaff_s0->mvg_alloc" identifier -> field_identifier) = number_literal) ;) (expression_statement "unaff_s0->mvg_length = 0;" (assignment_expression "unaff_s0->mvg_length = 0" (field_expression "unaff_s0->mvg_length" identifier -> field_identifier) = number_literal) ;) (expression_statement "unaff_s0->mvg_width = 0;" (assignment_expression "unaff_s0->mvg_width = 0" (field_expression "unaff_s0->mvg_width" identifier -> field_identifier) = number_literal) ;) (expression_statement "unaff_s0->pattern_id = (char *)0x0;" (assignment_expression "unaff_s0->pattern_id = (char *)0x0" (field_expression "unaff_s0->pattern_id" identifier -> field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s0->pattern_offset = 0;" (assignment_expression "unaff_s0->pattern_offset = 0" (field_expression "unaff_s0->pattern_offset" identifier -> field_identifier) = number_literal) ;) (expression_statement "(unaff_s0->pattern_bounds).x = 0;" (assignment_expression "(unaff_s0->pattern_bounds).x = 0" (field_expression "(unaff_s0->pattern_bounds).x" (parenthesized_expression "(unaff_s0->pattern_bounds)" ( (field_expression "unaff_s0->pattern_bounds" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(unaff_s0->pattern_bounds).y = 0;" (assignment_expression "(unaff_s0->pattern_bounds).y = 0" (field_expression "(unaff_s0->pattern_bounds).y" (parenthesized_expression "(unaff_s0->pattern_bounds)" ( (field_expression "unaff_s0->pattern_bounds" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(unaff_s0->pattern_bounds).width = 0;" (assignment_expression "(unaff_s0->pattern_bounds).width = 0" (field_expression "(unaff_s0->pattern_bounds).width" (parenthesized_expression "(unaff_s0->pattern_bounds)" ( (field_expression "unaff_s0->pattern_bounds" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(unaff_s0->pattern_bounds).height = 0;" (assignment_expression "(unaff_s0->pattern_bounds).height = 0" (field_expression "(unaff_s0->pattern_bounds).height" (parenthesized_expression "(unaff_s0->pattern_bounds)" ( (field_expression "unaff_s0->pattern_bounds" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "unaff_s0->index = 0;" (assignment_expression "unaff_s0->index = 0" (field_expression "unaff_s0->index" identifier -> field_identifier) = number_literal) ;) (expression_statement "ppDVar7 = (DrawInfo **)(*(code *)PTR_AcquireQuantumMemory_00178694)(1,4);" (assignment_expression "ppDVar7 = (DrawInfo **)(*(code *)PTR_AcquireQuantumMemory_00178694)(1,4)" identifier = (cast_expression "(DrawInfo **)(*(code *)PTR_AcquireQuantumMemory_00178694)(1,4)" ( (type_descriptor "DrawInfo **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(*(code *)PTR_AcquireQuantumMemory_00178694)(1,4)" (parenthesized_expression "(*(code *)PTR_AcquireQuantumMemory_00178694)" ( (pointer_expression "*(code *)PTR_AcquireQuantumMemory_00178694" * (cast_expression "(code *)PTR_AcquireQuantumMemory_00178694" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,4)" ( number_literal , number_literal ))))) ;) (expression_statement "unaff_s0->graphic_context = ppDVar7;" (assignment_expression "unaff_s0->graphic_context = ppDVar7" (field_expression "unaff_s0->graphic_context" identifier -> field_identifier) = identifier) ;) (if_statement "if (ppDVar7 == (DrawInfo **)0x0) {\n    (*(code *)PTR_ThrowMagickException_001782c4)\n              (unaff_s0->exception,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x459c,0x1c1\n               ,400,PTR_s_ision_00178030 + -0x354,PTR_s_ision_00178030 + -0x35c,unaff_s0->name);\n  }\n  else {\n    sVar1 = unaff_s0->index;\n    pDVar2 = (DrawInfo *)(*(code *)PTR_CloneDrawInfo_001784ac)(0,0);\n    ppDVar7[sVar1] = pDVar2;\n    unaff_s0->filter_off = MagickTrue;\n    unaff_s0->indent_depth = 0;\n    unaff_s0->path_operation = PathDefaultOperation;\n    unaff_s0->path_mode = DefaultPathMode;\n    pIVar4 = (Image *)(*(code *)PTR_AcquireImage_0017872c)(0,unaff_s0->exception);\n    unaff_s0->image = pIVar4;\n    (*(code *)PTR_ClearMagickException_001783dc)(unaff_s0->exception);\n    unaff_s0->destroy = MagickTrue;\n    MVar5 = (*(code *)PTR_IsEventLogging_00178810)();\n    unaff_s0->debug = MVar5;\n  }" if (parenthesized_expression "(ppDVar7 == (DrawInfo **)0x0)" ( (binary_expression "ppDVar7 == (DrawInfo **)0x0" identifier == (cast_expression "(DrawInfo **)0x0" ( (type_descriptor "DrawInfo **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n    (*(code *)PTR_ThrowMagickException_001782c4)\n              (unaff_s0->exception,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x459c,0x1c1\n               ,400,PTR_s_ision_00178030 + -0x354,PTR_s_ision_00178030 + -0x35c,unaff_s0->name);\n  }" { (expression_statement "(*(code *)PTR_ThrowMagickException_001782c4)\n              (unaff_s0->exception,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x459c,0x1c1\n               ,400,PTR_s_ision_00178030 + -0x354,PTR_s_ision_00178030 + -0x35c,unaff_s0->name);" (call_expression "(*(code *)PTR_ThrowMagickException_001782c4)\n              (unaff_s0->exception,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x459c,0x1c1\n               ,400,PTR_s_ision_00178030 + -0x354,PTR_s_ision_00178030 + -0x35c,unaff_s0->name)" (parenthesized_expression "(*(code *)PTR_ThrowMagickException_001782c4)" ( (pointer_expression "*(code *)PTR_ThrowMagickException_001782c4" * (cast_expression "(code *)PTR_ThrowMagickException_001782c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s0->exception,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x459c,0x1c1\n               ,400,PTR_s_ision_00178030 + -0x354,PTR_s_ision_00178030 + -0x35c,unaff_s0->name)" ( (field_expression "unaff_s0->exception" identifier -> field_identifier) , (binary_expression "PTR_s_oint_00178034 + -0x6960" identifier + number_literal) , (binary_expression "PTR_s_oint_00178034 + -0x459c" identifier + number_literal) , number_literal , number_literal , (binary_expression "PTR_s_ision_00178030 + -0x354" identifier + number_literal) , (binary_expression "PTR_s_ision_00178030 + -0x35c" identifier + number_literal) , (field_expression "unaff_s0->name" identifier -> field_identifier) ))) ;) }) (else_clause "else {\n    sVar1 = unaff_s0->index;\n    pDVar2 = (DrawInfo *)(*(code *)PTR_CloneDrawInfo_001784ac)(0,0);\n    ppDVar7[sVar1] = pDVar2;\n    unaff_s0->filter_off = MagickTrue;\n    unaff_s0->indent_depth = 0;\n    unaff_s0->path_operation = PathDefaultOperation;\n    unaff_s0->path_mode = DefaultPathMode;\n    pIVar4 = (Image *)(*(code *)PTR_AcquireImage_0017872c)(0,unaff_s0->exception);\n    unaff_s0->image = pIVar4;\n    (*(code *)PTR_ClearMagickException_001783dc)(unaff_s0->exception);\n    unaff_s0->destroy = MagickTrue;\n    MVar5 = (*(code *)PTR_IsEventLogging_00178810)();\n    unaff_s0->debug = MVar5;\n  }" else (compound_statement "{\n    sVar1 = unaff_s0->index;\n    pDVar2 = (DrawInfo *)(*(code *)PTR_CloneDrawInfo_001784ac)(0,0);\n    ppDVar7[sVar1] = pDVar2;\n    unaff_s0->filter_off = MagickTrue;\n    unaff_s0->indent_depth = 0;\n    unaff_s0->path_operation = PathDefaultOperation;\n    unaff_s0->path_mode = DefaultPathMode;\n    pIVar4 = (Image *)(*(code *)PTR_AcquireImage_0017872c)(0,unaff_s0->exception);\n    unaff_s0->image = pIVar4;\n    (*(code *)PTR_ClearMagickException_001783dc)(unaff_s0->exception);\n    unaff_s0->destroy = MagickTrue;\n    MVar5 = (*(code *)PTR_IsEventLogging_00178810)();\n    unaff_s0->debug = MVar5;\n  }" { (expression_statement "sVar1 = unaff_s0->index;" (assignment_expression "sVar1 = unaff_s0->index" identifier = (field_expression "unaff_s0->index" identifier -> field_identifier)) ;) (expression_statement "pDVar2 = (DrawInfo *)(*(code *)PTR_CloneDrawInfo_001784ac)(0,0);" (assignment_expression "pDVar2 = (DrawInfo *)(*(code *)PTR_CloneDrawInfo_001784ac)(0,0)" identifier = (cast_expression "(DrawInfo *)(*(code *)PTR_CloneDrawInfo_001784ac)(0,0)" ( (type_descriptor "DrawInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_CloneDrawInfo_001784ac)(0,0)" (parenthesized_expression "(*(code *)PTR_CloneDrawInfo_001784ac)" ( (pointer_expression "*(code *)PTR_CloneDrawInfo_001784ac" * (cast_expression "(code *)PTR_CloneDrawInfo_001784ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,0)" ( number_literal , number_literal ))))) ;) (expression_statement "ppDVar7[sVar1] = pDVar2;" (assignment_expression "ppDVar7[sVar1] = pDVar2" (subscript_expression "ppDVar7[sVar1]" identifier [ identifier ]) = identifier) ;) (expression_statement "unaff_s0->filter_off = MagickTrue;" (assignment_expression "unaff_s0->filter_off = MagickTrue" (field_expression "unaff_s0->filter_off" identifier -> field_identifier) = identifier) ;) (expression_statement "unaff_s0->indent_depth = 0;" (assignment_expression "unaff_s0->indent_depth = 0" (field_expression "unaff_s0->indent_depth" identifier -> field_identifier) = number_literal) ;) (expression_statement "unaff_s0->path_operation = PathDefaultOperation;" (assignment_expression "unaff_s0->path_operation = PathDefaultOperation" (field_expression "unaff_s0->path_operation" identifier -> field_identifier) = identifier) ;) (expression_statement "unaff_s0->path_mode = DefaultPathMode;" (assignment_expression "unaff_s0->path_mode = DefaultPathMode" (field_expression "unaff_s0->path_mode" identifier -> field_identifier) = identifier) ;) (expression_statement "pIVar4 = (Image *)(*(code *)PTR_AcquireImage_0017872c)(0,unaff_s0->exception);" (assignment_expression "pIVar4 = (Image *)(*(code *)PTR_AcquireImage_0017872c)(0,unaff_s0->exception)" identifier = (cast_expression "(Image *)(*(code *)PTR_AcquireImage_0017872c)(0,unaff_s0->exception)" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_AcquireImage_0017872c)(0,unaff_s0->exception)" (parenthesized_expression "(*(code *)PTR_AcquireImage_0017872c)" ( (pointer_expression "*(code *)PTR_AcquireImage_0017872c" * (cast_expression "(code *)PTR_AcquireImage_0017872c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,unaff_s0->exception)" ( number_literal , (field_expression "unaff_s0->exception" identifier -> field_identifier) ))))) ;) (expression_statement "unaff_s0->image = pIVar4;" (assignment_expression "unaff_s0->image = pIVar4" (field_expression "unaff_s0->image" identifier -> field_identifier) = identifier) ;) (expression_statement "(*(code *)PTR_ClearMagickException_001783dc)(unaff_s0->exception);" (call_expression "(*(code *)PTR_ClearMagickException_001783dc)(unaff_s0->exception)" (parenthesized_expression "(*(code *)PTR_ClearMagickException_001783dc)" ( (pointer_expression "*(code *)PTR_ClearMagickException_001783dc" * (cast_expression "(code *)PTR_ClearMagickException_001783dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s0->exception)" ( (field_expression "unaff_s0->exception" identifier -> field_identifier) ))) ;) (expression_statement "unaff_s0->destroy = MagickTrue;" (assignment_expression "unaff_s0->destroy = MagickTrue" (field_expression "unaff_s0->destroy" identifier -> field_identifier) = identifier) ;) (expression_statement "MVar5 = (*(code *)PTR_IsEventLogging_00178810)();" (assignment_expression "MVar5 = (*(code *)PTR_IsEventLogging_00178810)()" identifier = (call_expression "(*(code *)PTR_IsEventLogging_00178810)()" (parenthesized_expression "(*(code *)PTR_IsEventLogging_00178810)" ( (pointer_expression "*(code *)PTR_IsEventLogging_00178810" * (cast_expression "(code *)PTR_IsEventLogging_00178810" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "unaff_s0->debug = MVar5;" (assignment_expression "unaff_s0->debug = MVar5" (field_expression "unaff_s0->debug" identifier -> field_identifier) = identifier) ;) }))) (return_statement "return;" return ;) })))
(translation_unit "void ClearDrawingWand(int param_1)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  undefined *puVar3;\n  int unaff_s0;\n  undefined4 *puVar4;\n  int iVar5;\n  \n  if (param_1 == 0) {\n    puVar3 = PTR_s_oint_00178034 + -0x4588;\n    (*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1a1,puVar3);\nLAB_000766f4:\n    iVar1 = (*(code *)PTR___assert_fail_00178728)\n                      (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1a2,\n                       puVar3 + -0x4588);\n  }\n  else {\n    puVar3 = PTR_s_oint_00178034;\n    unaff_s0 = param_1;\n    if (*(int *)(param_1 + 0x1054) != -0x54535255) goto LAB_000766f4;\n    iVar1 = param_1 + 4;\n    if (*(int *)(param_1 + 0x1050) == 0) {\n      iVar1 = *(int *)(param_1 + 0x1034);\n      goto joined_r0x00076600;\n    }\n  }\n  (*(code *)PTR_LogMagickEvent_00178490)\n            (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x459c,0x1a4,\n             PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,iVar1);\n  iVar1 = *(int *)(unaff_s0 + 0x1034);\njoined_r0x00076600:\n  while (iVar1 != 0) {\n    puVar4 = (undefined4 *)(*(int *)(unaff_s0 + 0x1038) + iVar1 * 4);\n    uVar2 = (*(code *)PTR_DestroyDrawInfo_00178340)(*puVar4);\n    *puVar4 = uVar2;\n    iVar1 = *(int *)(unaff_s0 + 0x1034) + -1;\n    *(int *)(unaff_s0 + 0x1034) = iVar1;\n  }\n  puVar4 = *(undefined4 **)(unaff_s0 + 0x1038);\n  uVar2 = (*(code *)PTR_DestroyDrawInfo_00178340)(*puVar4);\n  *puVar4 = uVar2;\n  uVar2 = (*(code *)PTR_RelinquishMagickMemory_00178324)(*(undefined4 *)(unaff_s0 + 0x1038));\n  *(undefined4 *)(unaff_s0 + 0x1038) = uVar2;\n  if (*(int *)(unaff_s0 + 0x101c) != 0) {\n    uVar2 = (*(code *)PTR_DestroyString_0017839c)();\n    *(undefined4 *)(unaff_s0 + 0x101c) = uVar2;\n  }\n  uVar2 = (*(code *)PTR_DestroyString_0017839c)(*(undefined4 *)(unaff_s0 + 0x100c));\n  *(undefined4 *)(unaff_s0 + 0x100c) = uVar2;\n  if ((*(int *)(unaff_s0 + 0x104c) == 0) || (*(int *)(&DAT_00001004 + unaff_s0) == 0)) {\n    *(undefined4 *)(&DAT_00001004 + unaff_s0) = 0;\n  }\n  else {\n    uVar2 = (*(code *)PTR_DestroyImage_001782ec)();\n    *(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2;\n  }\n  *(undefined4 *)(unaff_s0 + 0x100c) = 0;\n  *(undefined4 *)(&DAT_00001010 + unaff_s0) = 0;\n  *(undefined4 *)(&DAT_00001014 + unaff_s0) = 0;\n  *(undefined4 *)(&DAT_00001018 + unaff_s0) = 0;\n  *(undefined4 *)(unaff_s0 + 0x101c) = 0;\n  *(undefined4 *)(unaff_s0 + 0x1030) = 0;\n  *(undefined4 *)(unaff_s0 + 0x1028) = 0;\n  *(undefined4 *)(unaff_s0 + 0x102c) = 0;\n  *(undefined4 *)(unaff_s0 + 0x1020) = 0;\n  *(undefined4 *)(unaff_s0 + 0x1024) = 0;\n  *(undefined4 *)(unaff_s0 + 0x1034) = 0;\n  iVar1 = (*(code *)PTR_AcquireQuantumMemory_00178694)(1,4);\n  *(int *)(unaff_s0 + 0x1038) = iVar1;\n  if (iVar1 == 0) {\n    (*(code *)PTR_ThrowMagickException_001782c4)\n              (*(undefined4 *)(&DAT_00001008 + unaff_s0),PTR_s_oint_00178034 + -0x6960,\n               PTR_s_oint_00178034 + -0x459c,0x1c1,400,PTR_s_ision_00178030 + -0x354,\n               PTR_s_ision_00178030 + -0x35c,unaff_s0 + 4);\n  }\n  else {\n    iVar5 = *(int *)(unaff_s0 + 0x1034);\n    uVar2 = (*(code *)PTR_CloneDrawInfo_001784ac)(0,0);\n    *(undefined4 *)(iVar1 + iVar5 * 4) = uVar2;\n    *(undefined4 *)(unaff_s0 + 0x103c) = 1;\n    *(undefined4 *)(unaff_s0 + 0x1040) = 0;\n    *(undefined4 *)(unaff_s0 + 0x1044) = 0;\n    *(undefined4 *)(unaff_s0 + 0x1048) = 0;\n    uVar2 = (*(code *)PTR_AcquireImage_0017872c)(0,*(undefined4 *)(&DAT_00001008 + unaff_s0));\n    *(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2;\n    (*(code *)PTR_ClearMagickException_001783dc)(*(undefined4 *)(&DAT_00001008 + unaff_s0));\n    *(undefined4 *)(unaff_s0 + 0x104c) = 1;\n    uVar2 = (*(code *)PTR_IsEventLogging_00178810)();\n    *(undefined4 *)(unaff_s0 + 0x1050) = uVar2;\n  }\n  return;\n}\n\n" (function_definition "void ClearDrawingWand(int param_1)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  undefined *puVar3;\n  int unaff_s0;\n  undefined4 *puVar4;\n  int iVar5;\n  \n  if (param_1 == 0) {\n    puVar3 = PTR_s_oint_00178034 + -0x4588;\n    (*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1a1,puVar3);\nLAB_000766f4:\n    iVar1 = (*(code *)PTR___assert_fail_00178728)\n                      (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1a2,\n                       puVar3 + -0x4588);\n  }\n  else {\n    puVar3 = PTR_s_oint_00178034;\n    unaff_s0 = param_1;\n    if (*(int *)(param_1 + 0x1054) != -0x54535255) goto LAB_000766f4;\n    iVar1 = param_1 + 4;\n    if (*(int *)(param_1 + 0x1050) == 0) {\n      iVar1 = *(int *)(param_1 + 0x1034);\n      goto joined_r0x00076600;\n    }\n  }\n  (*(code *)PTR_LogMagickEvent_00178490)\n            (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x459c,0x1a4,\n             PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,iVar1);\n  iVar1 = *(int *)(unaff_s0 + 0x1034);\njoined_r0x00076600:\n  while (iVar1 != 0) {\n    puVar4 = (undefined4 *)(*(int *)(unaff_s0 + 0x1038) + iVar1 * 4);\n    uVar2 = (*(code *)PTR_DestroyDrawInfo_00178340)(*puVar4);\n    *puVar4 = uVar2;\n    iVar1 = *(int *)(unaff_s0 + 0x1034) + -1;\n    *(int *)(unaff_s0 + 0x1034) = iVar1;\n  }\n  puVar4 = *(undefined4 **)(unaff_s0 + 0x1038);\n  uVar2 = (*(code *)PTR_DestroyDrawInfo_00178340)(*puVar4);\n  *puVar4 = uVar2;\n  uVar2 = (*(code *)PTR_RelinquishMagickMemory_00178324)(*(undefined4 *)(unaff_s0 + 0x1038));\n  *(undefined4 *)(unaff_s0 + 0x1038) = uVar2;\n  if (*(int *)(unaff_s0 + 0x101c) != 0) {\n    uVar2 = (*(code *)PTR_DestroyString_0017839c)();\n    *(undefined4 *)(unaff_s0 + 0x101c) = uVar2;\n  }\n  uVar2 = (*(code *)PTR_DestroyString_0017839c)(*(undefined4 *)(unaff_s0 + 0x100c));\n  *(undefined4 *)(unaff_s0 + 0x100c) = uVar2;\n  if ((*(int *)(unaff_s0 + 0x104c) == 0) || (*(int *)(&DAT_00001004 + unaff_s0) == 0)) {\n    *(undefined4 *)(&DAT_00001004 + unaff_s0) = 0;\n  }\n  else {\n    uVar2 = (*(code *)PTR_DestroyImage_001782ec)();\n    *(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2;\n  }\n  *(undefined4 *)(unaff_s0 + 0x100c) = 0;\n  *(undefined4 *)(&DAT_00001010 + unaff_s0) = 0;\n  *(undefined4 *)(&DAT_00001014 + unaff_s0) = 0;\n  *(undefined4 *)(&DAT_00001018 + unaff_s0) = 0;\n  *(undefined4 *)(unaff_s0 + 0x101c) = 0;\n  *(undefined4 *)(unaff_s0 + 0x1030) = 0;\n  *(undefined4 *)(unaff_s0 + 0x1028) = 0;\n  *(undefined4 *)(unaff_s0 + 0x102c) = 0;\n  *(undefined4 *)(unaff_s0 + 0x1020) = 0;\n  *(undefined4 *)(unaff_s0 + 0x1024) = 0;\n  *(undefined4 *)(unaff_s0 + 0x1034) = 0;\n  iVar1 = (*(code *)PTR_AcquireQuantumMemory_00178694)(1,4);\n  *(int *)(unaff_s0 + 0x1038) = iVar1;\n  if (iVar1 == 0) {\n    (*(code *)PTR_ThrowMagickException_001782c4)\n              (*(undefined4 *)(&DAT_00001008 + unaff_s0),PTR_s_oint_00178034 + -0x6960,\n               PTR_s_oint_00178034 + -0x459c,0x1c1,400,PTR_s_ision_00178030 + -0x354,\n               PTR_s_ision_00178030 + -0x35c,unaff_s0 + 4);\n  }\n  else {\n    iVar5 = *(int *)(unaff_s0 + 0x1034);\n    uVar2 = (*(code *)PTR_CloneDrawInfo_001784ac)(0,0);\n    *(undefined4 *)(iVar1 + iVar5 * 4) = uVar2;\n    *(undefined4 *)(unaff_s0 + 0x103c) = 1;\n    *(undefined4 *)(unaff_s0 + 0x1040) = 0;\n    *(undefined4 *)(unaff_s0 + 0x1044) = 0;\n    *(undefined4 *)(unaff_s0 + 0x1048) = 0;\n    uVar2 = (*(code *)PTR_AcquireImage_0017872c)(0,*(undefined4 *)(&DAT_00001008 + unaff_s0));\n    *(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2;\n    (*(code *)PTR_ClearMagickException_001783dc)(*(undefined4 *)(&DAT_00001008 + unaff_s0));\n    *(undefined4 *)(unaff_s0 + 0x104c) = 1;\n    uVar2 = (*(code *)PTR_IsEventLogging_00178810)();\n    *(undefined4 *)(unaff_s0 + 0x1050) = uVar2;\n  }\n  return;\n}" primitive_type (function_declarator "ClearDrawingWand(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  undefined *puVar3;\n  int unaff_s0;\n  undefined4 *puVar4;\n  int iVar5;\n  \n  if (param_1 == 0) {\n    puVar3 = PTR_s_oint_00178034 + -0x4588;\n    (*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1a1,puVar3);\nLAB_000766f4:\n    iVar1 = (*(code *)PTR___assert_fail_00178728)\n                      (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1a2,\n                       puVar3 + -0x4588);\n  }\n  else {\n    puVar3 = PTR_s_oint_00178034;\n    unaff_s0 = param_1;\n    if (*(int *)(param_1 + 0x1054) != -0x54535255) goto LAB_000766f4;\n    iVar1 = param_1 + 4;\n    if (*(int *)(param_1 + 0x1050) == 0) {\n      iVar1 = *(int *)(param_1 + 0x1034);\n      goto joined_r0x00076600;\n    }\n  }\n  (*(code *)PTR_LogMagickEvent_00178490)\n            (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x459c,0x1a4,\n             PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,iVar1);\n  iVar1 = *(int *)(unaff_s0 + 0x1034);\njoined_r0x00076600:\n  while (iVar1 != 0) {\n    puVar4 = (undefined4 *)(*(int *)(unaff_s0 + 0x1038) + iVar1 * 4);\n    uVar2 = (*(code *)PTR_DestroyDrawInfo_00178340)(*puVar4);\n    *puVar4 = uVar2;\n    iVar1 = *(int *)(unaff_s0 + 0x1034) + -1;\n    *(int *)(unaff_s0 + 0x1034) = iVar1;\n  }\n  puVar4 = *(undefined4 **)(unaff_s0 + 0x1038);\n  uVar2 = (*(code *)PTR_DestroyDrawInfo_00178340)(*puVar4);\n  *puVar4 = uVar2;\n  uVar2 = (*(code *)PTR_RelinquishMagickMemory_00178324)(*(undefined4 *)(unaff_s0 + 0x1038));\n  *(undefined4 *)(unaff_s0 + 0x1038) = uVar2;\n  if (*(int *)(unaff_s0 + 0x101c) != 0) {\n    uVar2 = (*(code *)PTR_DestroyString_0017839c)();\n    *(undefined4 *)(unaff_s0 + 0x101c) = uVar2;\n  }\n  uVar2 = (*(code *)PTR_DestroyString_0017839c)(*(undefined4 *)(unaff_s0 + 0x100c));\n  *(undefined4 *)(unaff_s0 + 0x100c) = uVar2;\n  if ((*(int *)(unaff_s0 + 0x104c) == 0) || (*(int *)(&DAT_00001004 + unaff_s0) == 0)) {\n    *(undefined4 *)(&DAT_00001004 + unaff_s0) = 0;\n  }\n  else {\n    uVar2 = (*(code *)PTR_DestroyImage_001782ec)();\n    *(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2;\n  }\n  *(undefined4 *)(unaff_s0 + 0x100c) = 0;\n  *(undefined4 *)(&DAT_00001010 + unaff_s0) = 0;\n  *(undefined4 *)(&DAT_00001014 + unaff_s0) = 0;\n  *(undefined4 *)(&DAT_00001018 + unaff_s0) = 0;\n  *(undefined4 *)(unaff_s0 + 0x101c) = 0;\n  *(undefined4 *)(unaff_s0 + 0x1030) = 0;\n  *(undefined4 *)(unaff_s0 + 0x1028) = 0;\n  *(undefined4 *)(unaff_s0 + 0x102c) = 0;\n  *(undefined4 *)(unaff_s0 + 0x1020) = 0;\n  *(undefined4 *)(unaff_s0 + 0x1024) = 0;\n  *(undefined4 *)(unaff_s0 + 0x1034) = 0;\n  iVar1 = (*(code *)PTR_AcquireQuantumMemory_00178694)(1,4);\n  *(int *)(unaff_s0 + 0x1038) = iVar1;\n  if (iVar1 == 0) {\n    (*(code *)PTR_ThrowMagickException_001782c4)\n              (*(undefined4 *)(&DAT_00001008 + unaff_s0),PTR_s_oint_00178034 + -0x6960,\n               PTR_s_oint_00178034 + -0x459c,0x1c1,400,PTR_s_ision_00178030 + -0x354,\n               PTR_s_ision_00178030 + -0x35c,unaff_s0 + 4);\n  }\n  else {\n    iVar5 = *(int *)(unaff_s0 + 0x1034);\n    uVar2 = (*(code *)PTR_CloneDrawInfo_001784ac)(0,0);\n    *(undefined4 *)(iVar1 + iVar5 * 4) = uVar2;\n    *(undefined4 *)(unaff_s0 + 0x103c) = 1;\n    *(undefined4 *)(unaff_s0 + 0x1040) = 0;\n    *(undefined4 *)(unaff_s0 + 0x1044) = 0;\n    *(undefined4 *)(unaff_s0 + 0x1048) = 0;\n    uVar2 = (*(code *)PTR_AcquireImage_0017872c)(0,*(undefined4 *)(&DAT_00001008 + unaff_s0));\n    *(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2;\n    (*(code *)PTR_ClearMagickException_001783dc)(*(undefined4 *)(&DAT_00001008 + unaff_s0));\n    *(undefined4 *)(unaff_s0 + 0x104c) = 1;\n    uVar2 = (*(code *)PTR_IsEventLogging_00178810)();\n    *(undefined4 *)(unaff_s0 + 0x1050) = uVar2;\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int unaff_s0;" primitive_type identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (if_statement "if (param_1 == 0) {\n    puVar3 = PTR_s_oint_00178034 + -0x4588;\n    (*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1a1,puVar3);\nLAB_000766f4:\n    iVar1 = (*(code *)PTR___assert_fail_00178728)\n                      (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1a2,\n                       puVar3 + -0x4588);\n  }\n  else {\n    puVar3 = PTR_s_oint_00178034;\n    unaff_s0 = param_1;\n    if (*(int *)(param_1 + 0x1054) != -0x54535255) goto LAB_000766f4;\n    iVar1 = param_1 + 4;\n    if (*(int *)(param_1 + 0x1050) == 0) {\n      iVar1 = *(int *)(param_1 + 0x1034);\n      goto joined_r0x00076600;\n    }\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n    puVar3 = PTR_s_oint_00178034 + -0x4588;\n    (*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1a1,puVar3);\nLAB_000766f4:\n    iVar1 = (*(code *)PTR___assert_fail_00178728)\n                      (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1a2,\n                       puVar3 + -0x4588);\n  }" { (expression_statement "puVar3 = PTR_s_oint_00178034 + -0x4588;" (assignment_expression "puVar3 = PTR_s_oint_00178034 + -0x4588" identifier = (binary_expression "PTR_s_oint_00178034 + -0x4588" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1a1,puVar3);" (call_expression "(*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1a1,puVar3)" (parenthesized_expression "(*(code *)PTR___assert_fail_00178728)" ( (pointer_expression "*(code *)PTR___assert_fail_00178728" * (cast_expression "(code *)PTR___assert_fail_00178728" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1a1,puVar3)" ( (binary_expression "PTR_s_oint_00178034 + -0x6944" identifier + number_literal) , (binary_expression "PTR_s_oint_00178034 + -0x6960" identifier + number_literal) , number_literal , identifier ))) ;) (labeled_statement "LAB_000766f4:\n    iVar1 = (*(code *)PTR___assert_fail_00178728)\n                      (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1a2,\n                       puVar3 + -0x4588);" statement_identifier : (expression_statement "iVar1 = (*(code *)PTR___assert_fail_00178728)\n                      (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1a2,\n                       puVar3 + -0x4588);" (assignment_expression "iVar1 = (*(code *)PTR___assert_fail_00178728)\n                      (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1a2,\n                       puVar3 + -0x4588)" identifier = (call_expression "(*(code *)PTR___assert_fail_00178728)\n                      (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1a2,\n                       puVar3 + -0x4588)" (parenthesized_expression "(*(code *)PTR___assert_fail_00178728)" ( (pointer_expression "*(code *)PTR___assert_fail_00178728" * (cast_expression "(code *)PTR___assert_fail_00178728" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1a2,\n                       puVar3 + -0x4588)" ( (binary_expression "PTR_s_oint_00178034 + -0x1e54" identifier + number_literal) , (binary_expression "PTR_s_oint_00178034 + -0x6960" identifier + number_literal) , number_literal , (binary_expression "puVar3 + -0x4588" identifier + number_literal) )))) ;)) }) (else_clause "else {\n    puVar3 = PTR_s_oint_00178034;\n    unaff_s0 = param_1;\n    if (*(int *)(param_1 + 0x1054) != -0x54535255) goto LAB_000766f4;\n    iVar1 = param_1 + 4;\n    if (*(int *)(param_1 + 0x1050) == 0) {\n      iVar1 = *(int *)(param_1 + 0x1034);\n      goto joined_r0x00076600;\n    }\n  }" else (compound_statement "{\n    puVar3 = PTR_s_oint_00178034;\n    unaff_s0 = param_1;\n    if (*(int *)(param_1 + 0x1054) != -0x54535255) goto LAB_000766f4;\n    iVar1 = param_1 + 4;\n    if (*(int *)(param_1 + 0x1050) == 0) {\n      iVar1 = *(int *)(param_1 + 0x1034);\n      goto joined_r0x00076600;\n    }\n  }" { (expression_statement "puVar3 = PTR_s_oint_00178034;" (assignment_expression "puVar3 = PTR_s_oint_00178034" identifier = identifier) ;) (expression_statement "unaff_s0 = param_1;" (assignment_expression "unaff_s0 = param_1" identifier = identifier) ;) (if_statement "if (*(int *)(param_1 + 0x1054) != -0x54535255) goto LAB_000766f4;" if (parenthesized_expression "(*(int *)(param_1 + 0x1054) != -0x54535255)" ( (binary_expression "*(int *)(param_1 + 0x1054) != -0x54535255" (pointer_expression "*(int *)(param_1 + 0x1054)" * (cast_expression "(int *)(param_1 + 0x1054)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1054)" ( (binary_expression "param_1 + 0x1054" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_000766f4;" goto statement_identifier ;)) (expression_statement "iVar1 = param_1 + 4;" (assignment_expression "iVar1 = param_1 + 4" identifier = (binary_expression "param_1 + 4" identifier + number_literal)) ;) (if_statement "if (*(int *)(param_1 + 0x1050) == 0) {\n      iVar1 = *(int *)(param_1 + 0x1034);\n      goto joined_r0x00076600;\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0x1050) == 0)" ( (binary_expression "*(int *)(param_1 + 0x1050) == 0" (pointer_expression "*(int *)(param_1 + 0x1050)" * (cast_expression "(int *)(param_1 + 0x1050)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1050)" ( (binary_expression "param_1 + 0x1050" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      iVar1 = *(int *)(param_1 + 0x1034);\n      goto joined_r0x00076600;\n    }" { (expression_statement "iVar1 = *(int *)(param_1 + 0x1034);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x1034)" identifier = (pointer_expression "*(int *)(param_1 + 0x1034)" * (cast_expression "(int *)(param_1 + 0x1034)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1034)" ( (binary_expression "param_1 + 0x1034" identifier + number_literal) ))))) ;) (goto_statement "goto joined_r0x00076600;" goto statement_identifier ;) })) }))) (expression_statement "(*(code *)PTR_LogMagickEvent_00178490)\n            (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x459c,0x1a4,\n             PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,iVar1);" (call_expression "(*(code *)PTR_LogMagickEvent_00178490)\n            (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x459c,0x1a4,\n             PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,iVar1)" (parenthesized_expression "(*(code *)PTR_LogMagickEvent_00178490)" ( (pointer_expression "*(code *)PTR_LogMagickEvent_00178490" * (cast_expression "(code *)PTR_LogMagickEvent_00178490" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x459c,0x1a4,\n             PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,iVar1)" ( number_literal , (binary_expression "PTR_s_oint_00178034 + -0x6960" identifier + number_literal) , (binary_expression "PTR_s_oint_00178034 + -0x459c" identifier + number_literal) , number_literal , (binary_expression "PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar1 = *(int *)(unaff_s0 + 0x1034);" (assignment_expression "iVar1 = *(int *)(unaff_s0 + 0x1034)" identifier = (pointer_expression "*(int *)(unaff_s0 + 0x1034)" * (cast_expression "(int *)(unaff_s0 + 0x1034)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x1034)" ( (binary_expression "unaff_s0 + 0x1034" identifier + number_literal) ))))) ;) (labeled_statement "joined_r0x00076600:\n  while (iVar1 != 0) {\n    puVar4 = (undefined4 *)(*(int *)(unaff_s0 + 0x1038) + iVar1 * 4);\n    uVar2 = (*(code *)PTR_DestroyDrawInfo_00178340)(*puVar4);\n    *puVar4 = uVar2;\n    iVar1 = *(int *)(unaff_s0 + 0x1034) + -1;\n    *(int *)(unaff_s0 + 0x1034) = iVar1;\n  }" statement_identifier : (while_statement "while (iVar1 != 0) {\n    puVar4 = (undefined4 *)(*(int *)(unaff_s0 + 0x1038) + iVar1 * 4);\n    uVar2 = (*(code *)PTR_DestroyDrawInfo_00178340)(*puVar4);\n    *puVar4 = uVar2;\n    iVar1 = *(int *)(unaff_s0 + 0x1034) + -1;\n    *(int *)(unaff_s0 + 0x1034) = iVar1;\n  }" while (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    puVar4 = (undefined4 *)(*(int *)(unaff_s0 + 0x1038) + iVar1 * 4);\n    uVar2 = (*(code *)PTR_DestroyDrawInfo_00178340)(*puVar4);\n    *puVar4 = uVar2;\n    iVar1 = *(int *)(unaff_s0 + 0x1034) + -1;\n    *(int *)(unaff_s0 + 0x1034) = iVar1;\n  }" { (expression_statement "puVar4 = (undefined4 *)(*(int *)(unaff_s0 + 0x1038) + iVar1 * 4);" (assignment_expression "puVar4 = (undefined4 *)(*(int *)(unaff_s0 + 0x1038) + iVar1 * 4)" identifier = (cast_expression "(undefined4 *)(*(int *)(unaff_s0 + 0x1038) + iVar1 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(unaff_s0 + 0x1038) + iVar1 * 4)" ( (binary_expression "*(int *)(unaff_s0 + 0x1038) + iVar1 * 4" (pointer_expression "*(int *)(unaff_s0 + 0x1038)" * (cast_expression "(int *)(unaff_s0 + 0x1038)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x1038)" ( (binary_expression "unaff_s0 + 0x1038" identifier + number_literal) )))) + (binary_expression "iVar1 * 4" identifier * number_literal)) )))) ;) (expression_statement "uVar2 = (*(code *)PTR_DestroyDrawInfo_00178340)(*puVar4);" (assignment_expression "uVar2 = (*(code *)PTR_DestroyDrawInfo_00178340)(*puVar4)" identifier = (call_expression "(*(code *)PTR_DestroyDrawInfo_00178340)(*puVar4)" (parenthesized_expression "(*(code *)PTR_DestroyDrawInfo_00178340)" ( (pointer_expression "*(code *)PTR_DestroyDrawInfo_00178340" * (cast_expression "(code *)PTR_DestroyDrawInfo_00178340" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*puVar4)" ( (pointer_expression "*puVar4" * identifier) )))) ;) (expression_statement "*puVar4 = uVar2;" (assignment_expression "*puVar4 = uVar2" (pointer_expression "*puVar4" * identifier) = identifier) ;) (expression_statement "iVar1 = *(int *)(unaff_s0 + 0x1034) + -1;" (assignment_expression "iVar1 = *(int *)(unaff_s0 + 0x1034) + -1" identifier = (binary_expression "*(int *)(unaff_s0 + 0x1034) + -1" (pointer_expression "*(int *)(unaff_s0 + 0x1034)" * (cast_expression "(int *)(unaff_s0 + 0x1034)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x1034)" ( (binary_expression "unaff_s0 + 0x1034" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(unaff_s0 + 0x1034) = iVar1;" (assignment_expression "*(int *)(unaff_s0 + 0x1034) = iVar1" (pointer_expression "*(int *)(unaff_s0 + 0x1034)" * (cast_expression "(int *)(unaff_s0 + 0x1034)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x1034)" ( (binary_expression "unaff_s0 + 0x1034" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "puVar4 = *(undefined4 **)(unaff_s0 + 0x1038);" (assignment_expression "puVar4 = *(undefined4 **)(unaff_s0 + 0x1038)" identifier = (pointer_expression "*(undefined4 **)(unaff_s0 + 0x1038)" * (cast_expression "(undefined4 **)(unaff_s0 + 0x1038)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_s0 + 0x1038)" ( (binary_expression "unaff_s0 + 0x1038" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = (*(code *)PTR_DestroyDrawInfo_00178340)(*puVar4);" (assignment_expression "uVar2 = (*(code *)PTR_DestroyDrawInfo_00178340)(*puVar4)" identifier = (call_expression "(*(code *)PTR_DestroyDrawInfo_00178340)(*puVar4)" (parenthesized_expression "(*(code *)PTR_DestroyDrawInfo_00178340)" ( (pointer_expression "*(code *)PTR_DestroyDrawInfo_00178340" * (cast_expression "(code *)PTR_DestroyDrawInfo_00178340" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*puVar4)" ( (pointer_expression "*puVar4" * identifier) )))) ;) (expression_statement "*puVar4 = uVar2;" (assignment_expression "*puVar4 = uVar2" (pointer_expression "*puVar4" * identifier) = identifier) ;) (expression_statement "uVar2 = (*(code *)PTR_RelinquishMagickMemory_00178324)(*(undefined4 *)(unaff_s0 + 0x1038));" (assignment_expression "uVar2 = (*(code *)PTR_RelinquishMagickMemory_00178324)(*(undefined4 *)(unaff_s0 + 0x1038))" identifier = (call_expression "(*(code *)PTR_RelinquishMagickMemory_00178324)(*(undefined4 *)(unaff_s0 + 0x1038))" (parenthesized_expression "(*(code *)PTR_RelinquishMagickMemory_00178324)" ( (pointer_expression "*(code *)PTR_RelinquishMagickMemory_00178324" * (cast_expression "(code *)PTR_RelinquishMagickMemory_00178324" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(unaff_s0 + 0x1038))" ( (pointer_expression "*(undefined4 *)(unaff_s0 + 0x1038)" * (cast_expression "(undefined4 *)(unaff_s0 + 0x1038)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x1038)" ( (binary_expression "unaff_s0 + 0x1038" identifier + number_literal) )))) )))) ;) (expression_statement "*(undefined4 *)(unaff_s0 + 0x1038) = uVar2;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x1038) = uVar2" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x1038)" * (cast_expression "(undefined4 *)(unaff_s0 + 0x1038)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x1038)" ( (binary_expression "unaff_s0 + 0x1038" identifier + number_literal) )))) = identifier) ;) (if_statement "if (*(int *)(unaff_s0 + 0x101c) != 0) {\n    uVar2 = (*(code *)PTR_DestroyString_0017839c)();\n    *(undefined4 *)(unaff_s0 + 0x101c) = uVar2;\n  }" if (parenthesized_expression "(*(int *)(unaff_s0 + 0x101c) != 0)" ( (binary_expression "*(int *)(unaff_s0 + 0x101c) != 0" (pointer_expression "*(int *)(unaff_s0 + 0x101c)" * (cast_expression "(int *)(unaff_s0 + 0x101c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x101c)" ( (binary_expression "unaff_s0 + 0x101c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    uVar2 = (*(code *)PTR_DestroyString_0017839c)();\n    *(undefined4 *)(unaff_s0 + 0x101c) = uVar2;\n  }" { (expression_statement "uVar2 = (*(code *)PTR_DestroyString_0017839c)();" (assignment_expression "uVar2 = (*(code *)PTR_DestroyString_0017839c)()" identifier = (call_expression "(*(code *)PTR_DestroyString_0017839c)()" (parenthesized_expression "(*(code *)PTR_DestroyString_0017839c)" ( (pointer_expression "*(code *)PTR_DestroyString_0017839c" * (cast_expression "(code *)PTR_DestroyString_0017839c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(unaff_s0 + 0x101c) = uVar2;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x101c) = uVar2" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x101c)" * (cast_expression "(undefined4 *)(unaff_s0 + 0x101c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x101c)" ( (binary_expression "unaff_s0 + 0x101c" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "uVar2 = (*(code *)PTR_DestroyString_0017839c)(*(undefined4 *)(unaff_s0 + 0x100c));" (assignment_expression "uVar2 = (*(code *)PTR_DestroyString_0017839c)(*(undefined4 *)(unaff_s0 + 0x100c))" identifier = (call_expression "(*(code *)PTR_DestroyString_0017839c)(*(undefined4 *)(unaff_s0 + 0x100c))" (parenthesized_expression "(*(code *)PTR_DestroyString_0017839c)" ( (pointer_expression "*(code *)PTR_DestroyString_0017839c" * (cast_expression "(code *)PTR_DestroyString_0017839c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(unaff_s0 + 0x100c))" ( (pointer_expression "*(undefined4 *)(unaff_s0 + 0x100c)" * (cast_expression "(undefined4 *)(unaff_s0 + 0x100c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x100c)" ( (binary_expression "unaff_s0 + 0x100c" identifier + number_literal) )))) )))) ;) (expression_statement "*(undefined4 *)(unaff_s0 + 0x100c) = uVar2;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x100c) = uVar2" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x100c)" * (cast_expression "(undefined4 *)(unaff_s0 + 0x100c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x100c)" ( (binary_expression "unaff_s0 + 0x100c" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((*(int *)(unaff_s0 + 0x104c) == 0) || (*(int *)(&DAT_00001004 + unaff_s0) == 0)) {\n    *(undefined4 *)(&DAT_00001004 + unaff_s0) = 0;\n  }\n  else {\n    uVar2 = (*(code *)PTR_DestroyImage_001782ec)();\n    *(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2;\n  }" if (parenthesized_expression "((*(int *)(unaff_s0 + 0x104c) == 0) || (*(int *)(&DAT_00001004 + unaff_s0) == 0))" ( (binary_expression "(*(int *)(unaff_s0 + 0x104c) == 0) || (*(int *)(&DAT_00001004 + unaff_s0) == 0)" (parenthesized_expression "(*(int *)(unaff_s0 + 0x104c) == 0)" ( (binary_expression "*(int *)(unaff_s0 + 0x104c) == 0" (pointer_expression "*(int *)(unaff_s0 + 0x104c)" * (cast_expression "(int *)(unaff_s0 + 0x104c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x104c)" ( (binary_expression "unaff_s0 + 0x104c" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(*(int *)(&DAT_00001004 + unaff_s0) == 0)" ( (binary_expression "*(int *)(&DAT_00001004 + unaff_s0) == 0" (pointer_expression "*(int *)(&DAT_00001004 + unaff_s0)" * (cast_expression "(int *)(&DAT_00001004 + unaff_s0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00001004 + unaff_s0)" ( (binary_expression "&DAT_00001004 + unaff_s0" (pointer_expression "&DAT_00001004" & identifier) + identifier) )))) == number_literal) ))) )) (compound_statement "{\n    *(undefined4 *)(&DAT_00001004 + unaff_s0) = 0;\n  }" { (expression_statement "*(undefined4 *)(&DAT_00001004 + unaff_s0) = 0;" (assignment_expression "*(undefined4 *)(&DAT_00001004 + unaff_s0) = 0" (pointer_expression "*(undefined4 *)(&DAT_00001004 + unaff_s0)" * (cast_expression "(undefined4 *)(&DAT_00001004 + unaff_s0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00001004 + unaff_s0)" ( (binary_expression "&DAT_00001004 + unaff_s0" (pointer_expression "&DAT_00001004" & identifier) + identifier) )))) = number_literal) ;) }) (else_clause "else {\n    uVar2 = (*(code *)PTR_DestroyImage_001782ec)();\n    *(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2;\n  }" else (compound_statement "{\n    uVar2 = (*(code *)PTR_DestroyImage_001782ec)();\n    *(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2;\n  }" { (expression_statement "uVar2 = (*(code *)PTR_DestroyImage_001782ec)();" (assignment_expression "uVar2 = (*(code *)PTR_DestroyImage_001782ec)()" identifier = (call_expression "(*(code *)PTR_DestroyImage_001782ec)()" (parenthesized_expression "(*(code *)PTR_DestroyImage_001782ec)" ( (pointer_expression "*(code *)PTR_DestroyImage_001782ec" * (cast_expression "(code *)PTR_DestroyImage_001782ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2;" (assignment_expression "*(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2" (pointer_expression "*(undefined4 *)(&DAT_00001004 + unaff_s0)" * (cast_expression "(undefined4 *)(&DAT_00001004 + unaff_s0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00001004 + unaff_s0)" ( (binary_expression "&DAT_00001004 + unaff_s0" (pointer_expression "&DAT_00001004" & identifier) + identifier) )))) = identifier) ;) }))) (expression_statement "*(undefined4 *)(unaff_s0 + 0x100c) = 0;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x100c) = 0" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x100c)" * (cast_expression "(undefined4 *)(unaff_s0 + 0x100c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x100c)" ( (binary_expression "unaff_s0 + 0x100c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(&DAT_00001010 + unaff_s0) = 0;" (assignment_expression "*(undefined4 *)(&DAT_00001010 + unaff_s0) = 0" (pointer_expression "*(undefined4 *)(&DAT_00001010 + unaff_s0)" * (cast_expression "(undefined4 *)(&DAT_00001010 + unaff_s0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00001010 + unaff_s0)" ( (binary_expression "&DAT_00001010 + unaff_s0" (pointer_expression "&DAT_00001010" & identifier) + identifier) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(&DAT_00001014 + unaff_s0) = 0;" (assignment_expression "*(undefined4 *)(&DAT_00001014 + unaff_s0) = 0" (pointer_expression "*(undefined4 *)(&DAT_00001014 + unaff_s0)" * (cast_expression "(undefined4 *)(&DAT_00001014 + unaff_s0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00001014 + unaff_s0)" ( (binary_expression "&DAT_00001014 + unaff_s0" (pointer_expression "&DAT_00001014" & identifier) + identifier) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(&DAT_00001018 + unaff_s0) = 0;" (assignment_expression "*(undefined4 *)(&DAT_00001018 + unaff_s0) = 0" (pointer_expression "*(undefined4 *)(&DAT_00001018 + unaff_s0)" * (cast_expression "(undefined4 *)(&DAT_00001018 + unaff_s0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00001018 + unaff_s0)" ( (binary_expression "&DAT_00001018 + unaff_s0" (pointer_expression "&DAT_00001018" & identifier) + identifier) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(unaff_s0 + 0x101c) = 0;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x101c) = 0" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x101c)" * (cast_expression "(undefined4 *)(unaff_s0 + 0x101c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x101c)" ( (binary_expression "unaff_s0 + 0x101c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(unaff_s0 + 0x1030) = 0;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x1030) = 0" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x1030)" * (cast_expression "(undefined4 *)(unaff_s0 + 0x1030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x1030)" ( (binary_expression "unaff_s0 + 0x1030" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(unaff_s0 + 0x1028) = 0;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x1028) = 0" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x1028)" * (cast_expression "(undefined4 *)(unaff_s0 + 0x1028)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x1028)" ( (binary_expression "unaff_s0 + 0x1028" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(unaff_s0 + 0x102c) = 0;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x102c) = 0" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x102c)" * (cast_expression "(undefined4 *)(unaff_s0 + 0x102c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x102c)" ( (binary_expression "unaff_s0 + 0x102c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(unaff_s0 + 0x1020) = 0;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x1020) = 0" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x1020)" * (cast_expression "(undefined4 *)(unaff_s0 + 0x1020)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x1020)" ( (binary_expression "unaff_s0 + 0x1020" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(unaff_s0 + 0x1024) = 0;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x1024) = 0" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x1024)" * (cast_expression "(undefined4 *)(unaff_s0 + 0x1024)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x1024)" ( (binary_expression "unaff_s0 + 0x1024" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(unaff_s0 + 0x1034) = 0;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x1034) = 0" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x1034)" * (cast_expression "(undefined4 *)(unaff_s0 + 0x1034)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x1034)" ( (binary_expression "unaff_s0 + 0x1034" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar1 = (*(code *)PTR_AcquireQuantumMemory_00178694)(1,4);" (assignment_expression "iVar1 = (*(code *)PTR_AcquireQuantumMemory_00178694)(1,4)" identifier = (call_expression "(*(code *)PTR_AcquireQuantumMemory_00178694)(1,4)" (parenthesized_expression "(*(code *)PTR_AcquireQuantumMemory_00178694)" ( (pointer_expression "*(code *)PTR_AcquireQuantumMemory_00178694" * (cast_expression "(code *)PTR_AcquireQuantumMemory_00178694" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,4)" ( number_literal , number_literal )))) ;) (expression_statement "*(int *)(unaff_s0 + 0x1038) = iVar1;" (assignment_expression "*(int *)(unaff_s0 + 0x1038) = iVar1" (pointer_expression "*(int *)(unaff_s0 + 0x1038)" * (cast_expression "(int *)(unaff_s0 + 0x1038)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x1038)" ( (binary_expression "unaff_s0 + 0x1038" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar1 == 0) {\n    (*(code *)PTR_ThrowMagickException_001782c4)\n              (*(undefined4 *)(&DAT_00001008 + unaff_s0),PTR_s_oint_00178034 + -0x6960,\n               PTR_s_oint_00178034 + -0x459c,0x1c1,400,PTR_s_ision_00178030 + -0x354,\n               PTR_s_ision_00178030 + -0x35c,unaff_s0 + 4);\n  }\n  else {\n    iVar5 = *(int *)(unaff_s0 + 0x1034);\n    uVar2 = (*(code *)PTR_CloneDrawInfo_001784ac)(0,0);\n    *(undefined4 *)(iVar1 + iVar5 * 4) = uVar2;\n    *(undefined4 *)(unaff_s0 + 0x103c) = 1;\n    *(undefined4 *)(unaff_s0 + 0x1040) = 0;\n    *(undefined4 *)(unaff_s0 + 0x1044) = 0;\n    *(undefined4 *)(unaff_s0 + 0x1048) = 0;\n    uVar2 = (*(code *)PTR_AcquireImage_0017872c)(0,*(undefined4 *)(&DAT_00001008 + unaff_s0));\n    *(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2;\n    (*(code *)PTR_ClearMagickException_001783dc)(*(undefined4 *)(&DAT_00001008 + unaff_s0));\n    *(undefined4 *)(unaff_s0 + 0x104c) = 1;\n    uVar2 = (*(code *)PTR_IsEventLogging_00178810)();\n    *(undefined4 *)(unaff_s0 + 0x1050) = uVar2;\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    (*(code *)PTR_ThrowMagickException_001782c4)\n              (*(undefined4 *)(&DAT_00001008 + unaff_s0),PTR_s_oint_00178034 + -0x6960,\n               PTR_s_oint_00178034 + -0x459c,0x1c1,400,PTR_s_ision_00178030 + -0x354,\n               PTR_s_ision_00178030 + -0x35c,unaff_s0 + 4);\n  }" { (expression_statement "(*(code *)PTR_ThrowMagickException_001782c4)\n              (*(undefined4 *)(&DAT_00001008 + unaff_s0),PTR_s_oint_00178034 + -0x6960,\n               PTR_s_oint_00178034 + -0x459c,0x1c1,400,PTR_s_ision_00178030 + -0x354,\n               PTR_s_ision_00178030 + -0x35c,unaff_s0 + 4);" (call_expression "(*(code *)PTR_ThrowMagickException_001782c4)\n              (*(undefined4 *)(&DAT_00001008 + unaff_s0),PTR_s_oint_00178034 + -0x6960,\n               PTR_s_oint_00178034 + -0x459c,0x1c1,400,PTR_s_ision_00178030 + -0x354,\n               PTR_s_ision_00178030 + -0x35c,unaff_s0 + 4)" (parenthesized_expression "(*(code *)PTR_ThrowMagickException_001782c4)" ( (pointer_expression "*(code *)PTR_ThrowMagickException_001782c4" * (cast_expression "(code *)PTR_ThrowMagickException_001782c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(&DAT_00001008 + unaff_s0),PTR_s_oint_00178034 + -0x6960,\n               PTR_s_oint_00178034 + -0x459c,0x1c1,400,PTR_s_ision_00178030 + -0x354,\n               PTR_s_ision_00178030 + -0x35c,unaff_s0 + 4)" ( (pointer_expression "*(undefined4 *)(&DAT_00001008 + unaff_s0)" * (cast_expression "(undefined4 *)(&DAT_00001008 + unaff_s0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00001008 + unaff_s0)" ( (binary_expression "&DAT_00001008 + unaff_s0" (pointer_expression "&DAT_00001008" & identifier) + identifier) )))) , (binary_expression "PTR_s_oint_00178034 + -0x6960" identifier + number_literal) , (binary_expression "PTR_s_oint_00178034 + -0x459c" identifier + number_literal) , number_literal , number_literal , (binary_expression "PTR_s_ision_00178030 + -0x354" identifier + number_literal) , (binary_expression "PTR_s_ision_00178030 + -0x35c" identifier + number_literal) , (binary_expression "unaff_s0 + 4" identifier + number_literal) ))) ;) }) (else_clause "else {\n    iVar5 = *(int *)(unaff_s0 + 0x1034);\n    uVar2 = (*(code *)PTR_CloneDrawInfo_001784ac)(0,0);\n    *(undefined4 *)(iVar1 + iVar5 * 4) = uVar2;\n    *(undefined4 *)(unaff_s0 + 0x103c) = 1;\n    *(undefined4 *)(unaff_s0 + 0x1040) = 0;\n    *(undefined4 *)(unaff_s0 + 0x1044) = 0;\n    *(undefined4 *)(unaff_s0 + 0x1048) = 0;\n    uVar2 = (*(code *)PTR_AcquireImage_0017872c)(0,*(undefined4 *)(&DAT_00001008 + unaff_s0));\n    *(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2;\n    (*(code *)PTR_ClearMagickException_001783dc)(*(undefined4 *)(&DAT_00001008 + unaff_s0));\n    *(undefined4 *)(unaff_s0 + 0x104c) = 1;\n    uVar2 = (*(code *)PTR_IsEventLogging_00178810)();\n    *(undefined4 *)(unaff_s0 + 0x1050) = uVar2;\n  }" else (compound_statement "{\n    iVar5 = *(int *)(unaff_s0 + 0x1034);\n    uVar2 = (*(code *)PTR_CloneDrawInfo_001784ac)(0,0);\n    *(undefined4 *)(iVar1 + iVar5 * 4) = uVar2;\n    *(undefined4 *)(unaff_s0 + 0x103c) = 1;\n    *(undefined4 *)(unaff_s0 + 0x1040) = 0;\n    *(undefined4 *)(unaff_s0 + 0x1044) = 0;\n    *(undefined4 *)(unaff_s0 + 0x1048) = 0;\n    uVar2 = (*(code *)PTR_AcquireImage_0017872c)(0,*(undefined4 *)(&DAT_00001008 + unaff_s0));\n    *(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2;\n    (*(code *)PTR_ClearMagickException_001783dc)(*(undefined4 *)(&DAT_00001008 + unaff_s0));\n    *(undefined4 *)(unaff_s0 + 0x104c) = 1;\n    uVar2 = (*(code *)PTR_IsEventLogging_00178810)();\n    *(undefined4 *)(unaff_s0 + 0x1050) = uVar2;\n  }" { (expression_statement "iVar5 = *(int *)(unaff_s0 + 0x1034);" (assignment_expression "iVar5 = *(int *)(unaff_s0 + 0x1034)" identifier = (pointer_expression "*(int *)(unaff_s0 + 0x1034)" * (cast_expression "(int *)(unaff_s0 + 0x1034)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x1034)" ( (binary_expression "unaff_s0 + 0x1034" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = (*(code *)PTR_CloneDrawInfo_001784ac)(0,0);" (assignment_expression "uVar2 = (*(code *)PTR_CloneDrawInfo_001784ac)(0,0)" identifier = (call_expression "(*(code *)PTR_CloneDrawInfo_001784ac)(0,0)" (parenthesized_expression "(*(code *)PTR_CloneDrawInfo_001784ac)" ( (pointer_expression "*(code *)PTR_CloneDrawInfo_001784ac" * (cast_expression "(code *)PTR_CloneDrawInfo_001784ac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,0)" ( number_literal , number_literal )))) ;) (expression_statement "*(undefined4 *)(iVar1 + iVar5 * 4) = uVar2;" (assignment_expression "*(undefined4 *)(iVar1 + iVar5 * 4) = uVar2" (pointer_expression "*(undefined4 *)(iVar1 + iVar5 * 4)" * (cast_expression "(undefined4 *)(iVar1 + iVar5 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + iVar5 * 4)" ( (binary_expression "iVar1 + iVar5 * 4" identifier + (binary_expression "iVar5 * 4" identifier * number_literal)) )))) = identifier) ;) (expression_statement "*(undefined4 *)(unaff_s0 + 0x103c) = 1;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x103c) = 1" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x103c)" * (cast_expression "(undefined4 *)(unaff_s0 + 0x103c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x103c)" ( (binary_expression "unaff_s0 + 0x103c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(unaff_s0 + 0x1040) = 0;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x1040) = 0" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x1040)" * (cast_expression "(undefined4 *)(unaff_s0 + 0x1040)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x1040)" ( (binary_expression "unaff_s0 + 0x1040" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(unaff_s0 + 0x1044) = 0;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x1044) = 0" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x1044)" * (cast_expression "(undefined4 *)(unaff_s0 + 0x1044)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x1044)" ( (binary_expression "unaff_s0 + 0x1044" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(unaff_s0 + 0x1048) = 0;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x1048) = 0" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x1048)" * (cast_expression "(undefined4 *)(unaff_s0 + 0x1048)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x1048)" ( (binary_expression "unaff_s0 + 0x1048" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar2 = (*(code *)PTR_AcquireImage_0017872c)(0,*(undefined4 *)(&DAT_00001008 + unaff_s0));" (assignment_expression "uVar2 = (*(code *)PTR_AcquireImage_0017872c)(0,*(undefined4 *)(&DAT_00001008 + unaff_s0))" identifier = (call_expression "(*(code *)PTR_AcquireImage_0017872c)(0,*(undefined4 *)(&DAT_00001008 + unaff_s0))" (parenthesized_expression "(*(code *)PTR_AcquireImage_0017872c)" ( (pointer_expression "*(code *)PTR_AcquireImage_0017872c" * (cast_expression "(code *)PTR_AcquireImage_0017872c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,*(undefined4 *)(&DAT_00001008 + unaff_s0))" ( number_literal , (pointer_expression "*(undefined4 *)(&DAT_00001008 + unaff_s0)" * (cast_expression "(undefined4 *)(&DAT_00001008 + unaff_s0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00001008 + unaff_s0)" ( (binary_expression "&DAT_00001008 + unaff_s0" (pointer_expression "&DAT_00001008" & identifier) + identifier) )))) )))) ;) (expression_statement "*(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2;" (assignment_expression "*(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2" (pointer_expression "*(undefined4 *)(&DAT_00001004 + unaff_s0)" * (cast_expression "(undefined4 *)(&DAT_00001004 + unaff_s0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00001004 + unaff_s0)" ( (binary_expression "&DAT_00001004 + unaff_s0" (pointer_expression "&DAT_00001004" & identifier) + identifier) )))) = identifier) ;) (expression_statement "(*(code *)PTR_ClearMagickException_001783dc)(*(undefined4 *)(&DAT_00001008 + unaff_s0));" (call_expression "(*(code *)PTR_ClearMagickException_001783dc)(*(undefined4 *)(&DAT_00001008 + unaff_s0))" (parenthesized_expression "(*(code *)PTR_ClearMagickException_001783dc)" ( (pointer_expression "*(code *)PTR_ClearMagickException_001783dc" * (cast_expression "(code *)PTR_ClearMagickException_001783dc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(&DAT_00001008 + unaff_s0))" ( (pointer_expression "*(undefined4 *)(&DAT_00001008 + unaff_s0)" * (cast_expression "(undefined4 *)(&DAT_00001008 + unaff_s0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00001008 + unaff_s0)" ( (binary_expression "&DAT_00001008 + unaff_s0" (pointer_expression "&DAT_00001008" & identifier) + identifier) )))) ))) ;) (expression_statement "*(undefined4 *)(unaff_s0 + 0x104c) = 1;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x104c) = 1" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x104c)" * (cast_expression "(undefined4 *)(unaff_s0 + 0x104c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x104c)" ( (binary_expression "unaff_s0 + 0x104c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar2 = (*(code *)PTR_IsEventLogging_00178810)();" (assignment_expression "uVar2 = (*(code *)PTR_IsEventLogging_00178810)()" identifier = (call_expression "(*(code *)PTR_IsEventLogging_00178810)()" (parenthesized_expression "(*(code *)PTR_IsEventLogging_00178810)" ( (pointer_expression "*(code *)PTR_IsEventLogging_00178810" * (cast_expression "(code *)PTR_IsEventLogging_00178810" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(unaff_s0 + 0x1050) = uVar2;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x1050) = uVar2" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x1050)" * (cast_expression "(undefined4 *)(unaff_s0 + 0x1050)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s0 + 0x1050)" ( (binary_expression "unaff_s0 + 0x1050" identifier + number_literal) )))) = identifier) ;) }))) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) )))) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (while_statement while (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) = IDENT) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , LIT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + IDENT) )))) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) (return_statement return ;) })))
(function_definition "void ClearDrawingWand(int param_1)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  undefined *puVar3;\n  int unaff_s0;\n  undefined4 *puVar4;\n  int iVar5;\n  \n  if (param_1 == 0) {\n    puVar3 = PTR_s_oint_00178034 + -0x4588;\n    (*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1a1,puVar3);\nLAB_000766f4:\n    iVar1 = (*(code *)PTR___assert_fail_00178728)\n                      (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1a2,\n                       puVar3 + -0x4588);\n  }\n  else {\n    puVar3 = PTR_s_oint_00178034;\n    unaff_s0 = param_1;\n    if (*(int *)(param_1 + 0x1054) != -0x54535255) goto LAB_000766f4;\n    iVar1 = param_1 + 4;\n    if (*(int *)(param_1 + 0x1050) == 0) {\n      iVar1 = *(int *)(param_1 + 0x1034);\n      goto joined_r0x00076600;\n    }\n  }\n  (*(code *)PTR_LogMagickEvent_00178490)\n            (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x459c,0x1a4,\n             PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,iVar1);\n  iVar1 = *(int *)(unaff_s0 + 0x1034);\njoined_r0x00076600:\n  while (iVar1 != 0) {\n    puVar4 = (undefined4 *)(*(int *)(unaff_s0 + 0x1038) + iVar1 * 4);\n    uVar2 = (*(code *)PTR_DestroyDrawInfo_00178340)(*puVar4);\n    *puVar4 = uVar2;\n    iVar1 = *(int *)(unaff_s0 + 0x1034) + -1;\n    *(int *)(unaff_s0 + 0x1034) = iVar1;\n  }\n  puVar4 = *(undefined4 **)(unaff_s0 + 0x1038);\n  uVar2 = (*(code *)PTR_DestroyDrawInfo_00178340)(*puVar4);\n  *puVar4 = uVar2;\n  uVar2 = (*(code *)PTR_RelinquishMagickMemory_00178324)(*(undefined4 *)(unaff_s0 + 0x1038));\n  *(undefined4 *)(unaff_s0 + 0x1038) = uVar2;\n  if (*(int *)(unaff_s0 + 0x101c) != 0) {\n    uVar2 = (*(code *)PTR_DestroyString_0017839c)();\n    *(undefined4 *)(unaff_s0 + 0x101c) = uVar2;\n  }\n  uVar2 = (*(code *)PTR_DestroyString_0017839c)(*(undefined4 *)(unaff_s0 + 0x100c));\n  *(undefined4 *)(unaff_s0 + 0x100c) = uVar2;\n  if ((*(int *)(unaff_s0 + 0x104c) == 0) || (*(int *)(&DAT_00001004 + unaff_s0) == 0)) {\n    *(undefined4 *)(&DAT_00001004 + unaff_s0) = 0;\n  }\n  else {\n    uVar2 = (*(code *)PTR_DestroyImage_001782ec)();\n    *(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2;\n  }\n  *(undefined4 *)(unaff_s0 + 0x100c) = 0;\n  *(undefined4 *)(&DAT_00001010 + unaff_s0) = 0;\n  *(undefined4 *)(&DAT_00001014 + unaff_s0) = 0;\n  *(undefined4 *)(&DAT_00001018 + unaff_s0) = 0;\n  *(undefined4 *)(unaff_s0 + 0x101c) = 0;\n  *(undefined4 *)(unaff_s0 + 0x1030) = 0;\n  *(undefined4 *)(unaff_s0 + 0x1028) = 0;\n  *(undefined4 *)(unaff_s0 + 0x102c) = 0;\n  *(undefined4 *)(unaff_s0 + 0x1020) = 0;\n  *(undefined4 *)(unaff_s0 + 0x1024) = 0;\n  *(undefined4 *)(unaff_s0 + 0x1034) = 0;\n  iVar1 = (*(code *)PTR_AcquireQuantumMemory_00178694)(1,4);\n  *(int *)(unaff_s0 + 0x1038) = iVar1;\n  if (iVar1 == 0) {\n    (*(code *)PTR_ThrowMagickException_001782c4)\n              (*(undefined4 *)(&DAT_00001008 + unaff_s0),PTR_s_oint_00178034 + -0x6960,\n               PTR_s_oint_00178034 + -0x459c,0x1c1,400,PTR_s_ision_00178030 + -0x354,\n               PTR_s_ision_00178030 + -0x35c,unaff_s0 + 4);\n  }\n  else {\n    iVar5 = *(int *)(unaff_s0 + 0x1034);\n    uVar2 = (*(code *)PTR_CloneDrawInfo_001784ac)(0,0);\n    *(undefined4 *)(iVar1 + iVar5 * 4) = uVar2;\n    *(undefined4 *)(unaff_s0 + 0x103c) = 1;\n    *(undefined4 *)(unaff_s0 + 0x1040) = 0;\n    *(undefined4 *)(unaff_s0 + 0x1044) = 0;\n    *(undefined4 *)(unaff_s0 + 0x1048) = 0;\n    uVar2 = (*(code *)PTR_AcquireImage_0017872c)(0,*(undefined4 *)(&DAT_00001008 + unaff_s0));\n    *(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2;\n    (*(code *)PTR_ClearMagickException_001783dc)(*(undefined4 *)(&DAT_00001008 + unaff_s0));\n    *(undefined4 *)(unaff_s0 + 0x104c) = 1;\n    uVar2 = (*(code *)PTR_IsEventLogging_00178810)();\n    *(undefined4 *)(unaff_s0 + 0x1050) = uVar2;\n  }\n  return;\n}" (primitive_type "void") (function_declarator "ClearDrawingWand(int param_1)" (identifier "ClearDrawingWand") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  undefined *puVar3;\n  int unaff_s0;\n  undefined4 *puVar4;\n  int iVar5;\n  \n  if (param_1 == 0) {\n    puVar3 = PTR_s_oint_00178034 + -0x4588;\n    (*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1a1,puVar3);\nLAB_000766f4:\n    iVar1 = (*(code *)PTR___assert_fail_00178728)\n                      (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1a2,\n                       puVar3 + -0x4588);\n  }\n  else {\n    puVar3 = PTR_s_oint_00178034;\n    unaff_s0 = param_1;\n    if (*(int *)(param_1 + 0x1054) != -0x54535255) goto LAB_000766f4;\n    iVar1 = param_1 + 4;\n    if (*(int *)(param_1 + 0x1050) == 0) {\n      iVar1 = *(int *)(param_1 + 0x1034);\n      goto joined_r0x00076600;\n    }\n  }\n  (*(code *)PTR_LogMagickEvent_00178490)\n            (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x459c,0x1a4,\n             PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,iVar1);\n  iVar1 = *(int *)(unaff_s0 + 0x1034);\njoined_r0x00076600:\n  while (iVar1 != 0) {\n    puVar4 = (undefined4 *)(*(int *)(unaff_s0 + 0x1038) + iVar1 * 4);\n    uVar2 = (*(code *)PTR_DestroyDrawInfo_00178340)(*puVar4);\n    *puVar4 = uVar2;\n    iVar1 = *(int *)(unaff_s0 + 0x1034) + -1;\n    *(int *)(unaff_s0 + 0x1034) = iVar1;\n  }\n  puVar4 = *(undefined4 **)(unaff_s0 + 0x1038);\n  uVar2 = (*(code *)PTR_DestroyDrawInfo_00178340)(*puVar4);\n  *puVar4 = uVar2;\n  uVar2 = (*(code *)PTR_RelinquishMagickMemory_00178324)(*(undefined4 *)(unaff_s0 + 0x1038));\n  *(undefined4 *)(unaff_s0 + 0x1038) = uVar2;\n  if (*(int *)(unaff_s0 + 0x101c) != 0) {\n    uVar2 = (*(code *)PTR_DestroyString_0017839c)();\n    *(undefined4 *)(unaff_s0 + 0x101c) = uVar2;\n  }\n  uVar2 = (*(code *)PTR_DestroyString_0017839c)(*(undefined4 *)(unaff_s0 + 0x100c));\n  *(undefined4 *)(unaff_s0 + 0x100c) = uVar2;\n  if ((*(int *)(unaff_s0 + 0x104c) == 0) || (*(int *)(&DAT_00001004 + unaff_s0) == 0)) {\n    *(undefined4 *)(&DAT_00001004 + unaff_s0) = 0;\n  }\n  else {\n    uVar2 = (*(code *)PTR_DestroyImage_001782ec)();\n    *(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2;\n  }\n  *(undefined4 *)(unaff_s0 + 0x100c) = 0;\n  *(undefined4 *)(&DAT_00001010 + unaff_s0) = 0;\n  *(undefined4 *)(&DAT_00001014 + unaff_s0) = 0;\n  *(undefined4 *)(&DAT_00001018 + unaff_s0) = 0;\n  *(undefined4 *)(unaff_s0 + 0x101c) = 0;\n  *(undefined4 *)(unaff_s0 + 0x1030) = 0;\n  *(undefined4 *)(unaff_s0 + 0x1028) = 0;\n  *(undefined4 *)(unaff_s0 + 0x102c) = 0;\n  *(undefined4 *)(unaff_s0 + 0x1020) = 0;\n  *(undefined4 *)(unaff_s0 + 0x1024) = 0;\n  *(undefined4 *)(unaff_s0 + 0x1034) = 0;\n  iVar1 = (*(code *)PTR_AcquireQuantumMemory_00178694)(1,4);\n  *(int *)(unaff_s0 + 0x1038) = iVar1;\n  if (iVar1 == 0) {\n    (*(code *)PTR_ThrowMagickException_001782c4)\n              (*(undefined4 *)(&DAT_00001008 + unaff_s0),PTR_s_oint_00178034 + -0x6960,\n               PTR_s_oint_00178034 + -0x459c,0x1c1,400,PTR_s_ision_00178030 + -0x354,\n               PTR_s_ision_00178030 + -0x35c,unaff_s0 + 4);\n  }\n  else {\n    iVar5 = *(int *)(unaff_s0 + 0x1034);\n    uVar2 = (*(code *)PTR_CloneDrawInfo_001784ac)(0,0);\n    *(undefined4 *)(iVar1 + iVar5 * 4) = uVar2;\n    *(undefined4 *)(unaff_s0 + 0x103c) = 1;\n    *(undefined4 *)(unaff_s0 + 0x1040) = 0;\n    *(undefined4 *)(unaff_s0 + 0x1044) = 0;\n    *(undefined4 *)(unaff_s0 + 0x1048) = 0;\n    uVar2 = (*(code *)PTR_AcquireImage_0017872c)(0,*(undefined4 *)(&DAT_00001008 + unaff_s0));\n    *(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2;\n    (*(code *)PTR_ClearMagickException_001783dc)(*(undefined4 *)(&DAT_00001008 + unaff_s0));\n    *(undefined4 *)(unaff_s0 + 0x104c) = 1;\n    uVar2 = (*(code *)PTR_IsEventLogging_00178810)();\n    *(undefined4 *)(unaff_s0 + 0x1050) = uVar2;\n  }\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "int unaff_s0;" (primitive_type "int") (identifier "unaff_s0") (; ";")) (declaration "undefined4 *puVar4;" (type_identifier "undefined4") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (if_statement "if (param_1 == 0) {\n    puVar3 = PTR_s_oint_00178034 + -0x4588;\n    (*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1a1,puVar3);\nLAB_000766f4:\n    iVar1 = (*(code *)PTR___assert_fail_00178728)\n                      (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1a2,\n                       puVar3 + -0x4588);\n  }\n  else {\n    puVar3 = PTR_s_oint_00178034;\n    unaff_s0 = param_1;\n    if (*(int *)(param_1 + 0x1054) != -0x54535255) goto LAB_000766f4;\n    iVar1 = param_1 + 4;\n    if (*(int *)(param_1 + 0x1050) == 0) {\n      iVar1 = *(int *)(param_1 + 0x1034);\n      goto joined_r0x00076600;\n    }\n  }" (if "if") (parenthesized_expression "(param_1 == 0)" (( "(") (binary_expression "param_1 == 0" (identifier "param_1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    puVar3 = PTR_s_oint_00178034 + -0x4588;\n    (*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1a1,puVar3);\nLAB_000766f4:\n    iVar1 = (*(code *)PTR___assert_fail_00178728)\n                      (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1a2,\n                       puVar3 + -0x4588);\n  }" ({ "{") (expression_statement "puVar3 = PTR_s_oint_00178034 + -0x4588;" (assignment_expression "puVar3 = PTR_s_oint_00178034 + -0x4588" (identifier "puVar3") (= "=") (binary_expression "PTR_s_oint_00178034 + -0x4588" (identifier "PTR_s_oint_00178034") (+ "+") (number_literal "-0x4588"))) (; ";")) (expression_statement "(*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1a1,puVar3);" (call_expression "(*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1a1,puVar3)" (parenthesized_expression "(*(code *)PTR___assert_fail_00178728)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_00178728" (* "*") (cast_expression "(code *)PTR___assert_fail_00178728" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_00178728"))) () ")")) (argument_list "(PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1a1,puVar3)" (( "(") (binary_expression "PTR_s_oint_00178034 + -0x6944" (identifier "PTR_s_oint_00178034") (+ "+") (number_literal "-0x6944")) (, ",") (binary_expression "PTR_s_oint_00178034 + -0x6960" (identifier "PTR_s_oint_00178034") (+ "+") (number_literal "-0x6960")) (, ",") (number_literal "0x1a1") (, ",") (identifier "puVar3") () ")"))) (; ";")) (labeled_statement "LAB_000766f4:\n    iVar1 = (*(code *)PTR___assert_fail_00178728)\n                      (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1a2,\n                       puVar3 + -0x4588);" (statement_identifier "LAB_000766f4") (: ":") (expression_statement "iVar1 = (*(code *)PTR___assert_fail_00178728)\n                      (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1a2,\n                       puVar3 + -0x4588);" (assignment_expression "iVar1 = (*(code *)PTR___assert_fail_00178728)\n                      (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1a2,\n                       puVar3 + -0x4588)" (identifier "iVar1") (= "=") (call_expression "(*(code *)PTR___assert_fail_00178728)\n                      (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1a2,\n                       puVar3 + -0x4588)" (parenthesized_expression "(*(code *)PTR___assert_fail_00178728)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_00178728" (* "*") (cast_expression "(code *)PTR___assert_fail_00178728" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_00178728"))) () ")")) (argument_list "(PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1a2,\n                       puVar3 + -0x4588)" (( "(") (binary_expression "PTR_s_oint_00178034 + -0x1e54" (identifier "PTR_s_oint_00178034") (+ "+") (number_literal "-0x1e54")) (, ",") (binary_expression "PTR_s_oint_00178034 + -0x6960" (identifier "PTR_s_oint_00178034") (+ "+") (number_literal "-0x6960")) (, ",") (number_literal "0x1a2") (, ",") (binary_expression "puVar3 + -0x4588" (identifier "puVar3") (+ "+") (number_literal "-0x4588")) () ")")))) (; ";"))) (} "}")) (else_clause "else {\n    puVar3 = PTR_s_oint_00178034;\n    unaff_s0 = param_1;\n    if (*(int *)(param_1 + 0x1054) != -0x54535255) goto LAB_000766f4;\n    iVar1 = param_1 + 4;\n    if (*(int *)(param_1 + 0x1050) == 0) {\n      iVar1 = *(int *)(param_1 + 0x1034);\n      goto joined_r0x00076600;\n    }\n  }" (else "else") (compound_statement "{\n    puVar3 = PTR_s_oint_00178034;\n    unaff_s0 = param_1;\n    if (*(int *)(param_1 + 0x1054) != -0x54535255) goto LAB_000766f4;\n    iVar1 = param_1 + 4;\n    if (*(int *)(param_1 + 0x1050) == 0) {\n      iVar1 = *(int *)(param_1 + 0x1034);\n      goto joined_r0x00076600;\n    }\n  }" ({ "{") (expression_statement "puVar3 = PTR_s_oint_00178034;" (assignment_expression "puVar3 = PTR_s_oint_00178034" (identifier "puVar3") (= "=") (identifier "PTR_s_oint_00178034")) (; ";")) (expression_statement "unaff_s0 = param_1;" (assignment_expression "unaff_s0 = param_1" (identifier "unaff_s0") (= "=") (identifier "param_1")) (; ";")) (if_statement "if (*(int *)(param_1 + 0x1054) != -0x54535255) goto LAB_000766f4;" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x1054) != -0x54535255)" (( "(") (binary_expression "*(int *)(param_1 + 0x1054) != -0x54535255" (pointer_expression "*(int *)(param_1 + 0x1054)" (* "*") (cast_expression "(int *)(param_1 + 0x1054)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1054)" (( "(") (binary_expression "param_1 + 0x1054" (identifier "param_1") (+ "+") (number_literal "0x1054")) () ")")))) (!= "!=") (number_literal "-0x54535255")) () ")")) (goto_statement "goto LAB_000766f4;" (goto "goto") (statement_identifier "LAB_000766f4") (; ";"))) (expression_statement "iVar1 = param_1 + 4;" (assignment_expression "iVar1 = param_1 + 4" (identifier "iVar1") (= "=") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4"))) (; ";")) (if_statement "if (*(int *)(param_1 + 0x1050) == 0) {\n      iVar1 = *(int *)(param_1 + 0x1034);\n      goto joined_r0x00076600;\n    }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x1050) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x1050) == 0" (pointer_expression "*(int *)(param_1 + 0x1050)" (* "*") (cast_expression "(int *)(param_1 + 0x1050)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1050)" (( "(") (binary_expression "param_1 + 0x1050" (identifier "param_1") (+ "+") (number_literal "0x1050")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar1 = *(int *)(param_1 + 0x1034);\n      goto joined_r0x00076600;\n    }" ({ "{") (expression_statement "iVar1 = *(int *)(param_1 + 0x1034);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x1034)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(param_1 + 0x1034)" (* "*") (cast_expression "(int *)(param_1 + 0x1034)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1034)" (( "(") (binary_expression "param_1 + 0x1034" (identifier "param_1") (+ "+") (number_literal "0x1034")) () ")"))))) (; ";")) (goto_statement "goto joined_r0x00076600;" (goto "goto") (statement_identifier "joined_r0x00076600") (; ";")) (} "}"))) (} "}")))) (expression_statement "(*(code *)PTR_LogMagickEvent_00178490)\n            (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x459c,0x1a4,\n             PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,iVar1);" (call_expression "(*(code *)PTR_LogMagickEvent_00178490)\n            (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x459c,0x1a4,\n             PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,iVar1)" (parenthesized_expression "(*(code *)PTR_LogMagickEvent_00178490)" (( "(") (pointer_expression "*(code *)PTR_LogMagickEvent_00178490" (* "*") (cast_expression "(code *)PTR_LogMagickEvent_00178490" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_LogMagickEvent_00178490"))) () ")")) (argument_list "(0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x459c,0x1a4,\n             PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,iVar1)" (( "(") (number_literal "0x40000") (, ",") (binary_expression "PTR_s_oint_00178034 + -0x6960" (identifier "PTR_s_oint_00178034") (+ "+") (number_literal "-0x6960")) (, ",") (binary_expression "PTR_s_oint_00178034 + -0x459c" (identifier "PTR_s_oint_00178034") (+ "+") (number_literal "-0x459c")) (, ",") (number_literal "0x1a4") (, ",") (binary_expression "PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318" (identifier "PTR_fde_table_entry_0015fffc_data_loc_00178038") (+ "+") (number_literal "-0x7318")) (, ",") (identifier "iVar1") () ")"))) (; ";")) (expression_statement "iVar1 = *(int *)(unaff_s0 + 0x1034);" (assignment_expression "iVar1 = *(int *)(unaff_s0 + 0x1034)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(unaff_s0 + 0x1034)" (* "*") (cast_expression "(int *)(unaff_s0 + 0x1034)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s0 + 0x1034)" (( "(") (binary_expression "unaff_s0 + 0x1034" (identifier "unaff_s0") (+ "+") (number_literal "0x1034")) () ")"))))) (; ";")) (labeled_statement "joined_r0x00076600:\n  while (iVar1 != 0) {\n    puVar4 = (undefined4 *)(*(int *)(unaff_s0 + 0x1038) + iVar1 * 4);\n    uVar2 = (*(code *)PTR_DestroyDrawInfo_00178340)(*puVar4);\n    *puVar4 = uVar2;\n    iVar1 = *(int *)(unaff_s0 + 0x1034) + -1;\n    *(int *)(unaff_s0 + 0x1034) = iVar1;\n  }" (statement_identifier "joined_r0x00076600") (: ":") (while_statement "while (iVar1 != 0) {\n    puVar4 = (undefined4 *)(*(int *)(unaff_s0 + 0x1038) + iVar1 * 4);\n    uVar2 = (*(code *)PTR_DestroyDrawInfo_00178340)(*puVar4);\n    *puVar4 = uVar2;\n    iVar1 = *(int *)(unaff_s0 + 0x1034) + -1;\n    *(int *)(unaff_s0 + 0x1034) = iVar1;\n  }" (while "while") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    puVar4 = (undefined4 *)(*(int *)(unaff_s0 + 0x1038) + iVar1 * 4);\n    uVar2 = (*(code *)PTR_DestroyDrawInfo_00178340)(*puVar4);\n    *puVar4 = uVar2;\n    iVar1 = *(int *)(unaff_s0 + 0x1034) + -1;\n    *(int *)(unaff_s0 + 0x1034) = iVar1;\n  }" ({ "{") (expression_statement "puVar4 = (undefined4 *)(*(int *)(unaff_s0 + 0x1038) + iVar1 * 4);" (assignment_expression "puVar4 = (undefined4 *)(*(int *)(unaff_s0 + 0x1038) + iVar1 * 4)" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)(*(int *)(unaff_s0 + 0x1038) + iVar1 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(unaff_s0 + 0x1038) + iVar1 * 4)" (( "(") (binary_expression "*(int *)(unaff_s0 + 0x1038) + iVar1 * 4" (pointer_expression "*(int *)(unaff_s0 + 0x1038)" (* "*") (cast_expression "(int *)(unaff_s0 + 0x1038)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s0 + 0x1038)" (( "(") (binary_expression "unaff_s0 + 0x1038" (identifier "unaff_s0") (+ "+") (number_literal "0x1038")) () ")")))) (+ "+") (binary_expression "iVar1 * 4" (identifier "iVar1") (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "uVar2 = (*(code *)PTR_DestroyDrawInfo_00178340)(*puVar4);" (assignment_expression "uVar2 = (*(code *)PTR_DestroyDrawInfo_00178340)(*puVar4)" (identifier "uVar2") (= "=") (call_expression "(*(code *)PTR_DestroyDrawInfo_00178340)(*puVar4)" (parenthesized_expression "(*(code *)PTR_DestroyDrawInfo_00178340)" (( "(") (pointer_expression "*(code *)PTR_DestroyDrawInfo_00178340" (* "*") (cast_expression "(code *)PTR_DestroyDrawInfo_00178340" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DestroyDrawInfo_00178340"))) () ")")) (argument_list "(*puVar4)" (( "(") (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) () ")")))) (; ";")) (expression_statement "*puVar4 = uVar2;" (assignment_expression "*puVar4 = uVar2" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "iVar1 = *(int *)(unaff_s0 + 0x1034) + -1;" (assignment_expression "iVar1 = *(int *)(unaff_s0 + 0x1034) + -1" (identifier "iVar1") (= "=") (binary_expression "*(int *)(unaff_s0 + 0x1034) + -1" (pointer_expression "*(int *)(unaff_s0 + 0x1034)" (* "*") (cast_expression "(int *)(unaff_s0 + 0x1034)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s0 + 0x1034)" (( "(") (binary_expression "unaff_s0 + 0x1034" (identifier "unaff_s0") (+ "+") (number_literal "0x1034")) () ")")))) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "*(int *)(unaff_s0 + 0x1034) = iVar1;" (assignment_expression "*(int *)(unaff_s0 + 0x1034) = iVar1" (pointer_expression "*(int *)(unaff_s0 + 0x1034)" (* "*") (cast_expression "(int *)(unaff_s0 + 0x1034)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s0 + 0x1034)" (( "(") (binary_expression "unaff_s0 + 0x1034" (identifier "unaff_s0") (+ "+") (number_literal "0x1034")) () ")")))) (= "=") (identifier "iVar1")) (; ";")) (} "}")))) (expression_statement "puVar4 = *(undefined4 **)(unaff_s0 + 0x1038);" (assignment_expression "puVar4 = *(undefined4 **)(unaff_s0 + 0x1038)" (identifier "puVar4") (= "=") (pointer_expression "*(undefined4 **)(unaff_s0 + 0x1038)" (* "*") (cast_expression "(undefined4 **)(unaff_s0 + 0x1038)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_s0 + 0x1038)" (( "(") (binary_expression "unaff_s0 + 0x1038" (identifier "unaff_s0") (+ "+") (number_literal "0x1038")) () ")"))))) (; ";")) (expression_statement "uVar2 = (*(code *)PTR_DestroyDrawInfo_00178340)(*puVar4);" (assignment_expression "uVar2 = (*(code *)PTR_DestroyDrawInfo_00178340)(*puVar4)" (identifier "uVar2") (= "=") (call_expression "(*(code *)PTR_DestroyDrawInfo_00178340)(*puVar4)" (parenthesized_expression "(*(code *)PTR_DestroyDrawInfo_00178340)" (( "(") (pointer_expression "*(code *)PTR_DestroyDrawInfo_00178340" (* "*") (cast_expression "(code *)PTR_DestroyDrawInfo_00178340" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DestroyDrawInfo_00178340"))) () ")")) (argument_list "(*puVar4)" (( "(") (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) () ")")))) (; ";")) (expression_statement "*puVar4 = uVar2;" (assignment_expression "*puVar4 = uVar2" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "uVar2 = (*(code *)PTR_RelinquishMagickMemory_00178324)(*(undefined4 *)(unaff_s0 + 0x1038));" (assignment_expression "uVar2 = (*(code *)PTR_RelinquishMagickMemory_00178324)(*(undefined4 *)(unaff_s0 + 0x1038))" (identifier "uVar2") (= "=") (call_expression "(*(code *)PTR_RelinquishMagickMemory_00178324)(*(undefined4 *)(unaff_s0 + 0x1038))" (parenthesized_expression "(*(code *)PTR_RelinquishMagickMemory_00178324)" (( "(") (pointer_expression "*(code *)PTR_RelinquishMagickMemory_00178324" (* "*") (cast_expression "(code *)PTR_RelinquishMagickMemory_00178324" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_RelinquishMagickMemory_00178324"))) () ")")) (argument_list "(*(undefined4 *)(unaff_s0 + 0x1038))" (( "(") (pointer_expression "*(undefined4 *)(unaff_s0 + 0x1038)" (* "*") (cast_expression "(undefined4 *)(unaff_s0 + 0x1038)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s0 + 0x1038)" (( "(") (binary_expression "unaff_s0 + 0x1038" (identifier "unaff_s0") (+ "+") (number_literal "0x1038")) () ")")))) () ")")))) (; ";")) (expression_statement "*(undefined4 *)(unaff_s0 + 0x1038) = uVar2;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x1038) = uVar2" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x1038)" (* "*") (cast_expression "(undefined4 *)(unaff_s0 + 0x1038)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s0 + 0x1038)" (( "(") (binary_expression "unaff_s0 + 0x1038" (identifier "unaff_s0") (+ "+") (number_literal "0x1038")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (if_statement "if (*(int *)(unaff_s0 + 0x101c) != 0) {\n    uVar2 = (*(code *)PTR_DestroyString_0017839c)();\n    *(undefined4 *)(unaff_s0 + 0x101c) = uVar2;\n  }" (if "if") (parenthesized_expression "(*(int *)(unaff_s0 + 0x101c) != 0)" (( "(") (binary_expression "*(int *)(unaff_s0 + 0x101c) != 0" (pointer_expression "*(int *)(unaff_s0 + 0x101c)" (* "*") (cast_expression "(int *)(unaff_s0 + 0x101c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s0 + 0x101c)" (( "(") (binary_expression "unaff_s0 + 0x101c" (identifier "unaff_s0") (+ "+") (number_literal "0x101c")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar2 = (*(code *)PTR_DestroyString_0017839c)();\n    *(undefined4 *)(unaff_s0 + 0x101c) = uVar2;\n  }" ({ "{") (expression_statement "uVar2 = (*(code *)PTR_DestroyString_0017839c)();" (assignment_expression "uVar2 = (*(code *)PTR_DestroyString_0017839c)()" (identifier "uVar2") (= "=") (call_expression "(*(code *)PTR_DestroyString_0017839c)()" (parenthesized_expression "(*(code *)PTR_DestroyString_0017839c)" (( "(") (pointer_expression "*(code *)PTR_DestroyString_0017839c" (* "*") (cast_expression "(code *)PTR_DestroyString_0017839c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DestroyString_0017839c"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(unaff_s0 + 0x101c) = uVar2;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x101c) = uVar2" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x101c)" (* "*") (cast_expression "(undefined4 *)(unaff_s0 + 0x101c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s0 + 0x101c)" (( "(") (binary_expression "unaff_s0 + 0x101c" (identifier "unaff_s0") (+ "+") (number_literal "0x101c")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (} "}"))) (expression_statement "uVar2 = (*(code *)PTR_DestroyString_0017839c)(*(undefined4 *)(unaff_s0 + 0x100c));" (assignment_expression "uVar2 = (*(code *)PTR_DestroyString_0017839c)(*(undefined4 *)(unaff_s0 + 0x100c))" (identifier "uVar2") (= "=") (call_expression "(*(code *)PTR_DestroyString_0017839c)(*(undefined4 *)(unaff_s0 + 0x100c))" (parenthesized_expression "(*(code *)PTR_DestroyString_0017839c)" (( "(") (pointer_expression "*(code *)PTR_DestroyString_0017839c" (* "*") (cast_expression "(code *)PTR_DestroyString_0017839c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DestroyString_0017839c"))) () ")")) (argument_list "(*(undefined4 *)(unaff_s0 + 0x100c))" (( "(") (pointer_expression "*(undefined4 *)(unaff_s0 + 0x100c)" (* "*") (cast_expression "(undefined4 *)(unaff_s0 + 0x100c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s0 + 0x100c)" (( "(") (binary_expression "unaff_s0 + 0x100c" (identifier "unaff_s0") (+ "+") (number_literal "0x100c")) () ")")))) () ")")))) (; ";")) (expression_statement "*(undefined4 *)(unaff_s0 + 0x100c) = uVar2;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x100c) = uVar2" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x100c)" (* "*") (cast_expression "(undefined4 *)(unaff_s0 + 0x100c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s0 + 0x100c)" (( "(") (binary_expression "unaff_s0 + 0x100c" (identifier "unaff_s0") (+ "+") (number_literal "0x100c")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (if_statement "if ((*(int *)(unaff_s0 + 0x104c) == 0) || (*(int *)(&DAT_00001004 + unaff_s0) == 0)) {\n    *(undefined4 *)(&DAT_00001004 + unaff_s0) = 0;\n  }\n  else {\n    uVar2 = (*(code *)PTR_DestroyImage_001782ec)();\n    *(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2;\n  }" (if "if") (parenthesized_expression "((*(int *)(unaff_s0 + 0x104c) == 0) || (*(int *)(&DAT_00001004 + unaff_s0) == 0))" (( "(") (binary_expression "(*(int *)(unaff_s0 + 0x104c) == 0) || (*(int *)(&DAT_00001004 + unaff_s0) == 0)" (parenthesized_expression "(*(int *)(unaff_s0 + 0x104c) == 0)" (( "(") (binary_expression "*(int *)(unaff_s0 + 0x104c) == 0" (pointer_expression "*(int *)(unaff_s0 + 0x104c)" (* "*") (cast_expression "(int *)(unaff_s0 + 0x104c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s0 + 0x104c)" (( "(") (binary_expression "unaff_s0 + 0x104c" (identifier "unaff_s0") (+ "+") (number_literal "0x104c")) () ")")))) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(int *)(&DAT_00001004 + unaff_s0) == 0)" (( "(") (binary_expression "*(int *)(&DAT_00001004 + unaff_s0) == 0" (pointer_expression "*(int *)(&DAT_00001004 + unaff_s0)" (* "*") (cast_expression "(int *)(&DAT_00001004 + unaff_s0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00001004 + unaff_s0)" (( "(") (binary_expression "&DAT_00001004 + unaff_s0" (pointer_expression "&DAT_00001004" (& "&") (identifier "DAT_00001004")) (+ "+") (identifier "unaff_s0")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    *(undefined4 *)(&DAT_00001004 + unaff_s0) = 0;\n  }" ({ "{") (expression_statement "*(undefined4 *)(&DAT_00001004 + unaff_s0) = 0;" (assignment_expression "*(undefined4 *)(&DAT_00001004 + unaff_s0) = 0" (pointer_expression "*(undefined4 *)(&DAT_00001004 + unaff_s0)" (* "*") (cast_expression "(undefined4 *)(&DAT_00001004 + unaff_s0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00001004 + unaff_s0)" (( "(") (binary_expression "&DAT_00001004 + unaff_s0" (pointer_expression "&DAT_00001004" (& "&") (identifier "DAT_00001004")) (+ "+") (identifier "unaff_s0")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n    uVar2 = (*(code *)PTR_DestroyImage_001782ec)();\n    *(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2;\n  }" (else "else") (compound_statement "{\n    uVar2 = (*(code *)PTR_DestroyImage_001782ec)();\n    *(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2;\n  }" ({ "{") (expression_statement "uVar2 = (*(code *)PTR_DestroyImage_001782ec)();" (assignment_expression "uVar2 = (*(code *)PTR_DestroyImage_001782ec)()" (identifier "uVar2") (= "=") (call_expression "(*(code *)PTR_DestroyImage_001782ec)()" (parenthesized_expression "(*(code *)PTR_DestroyImage_001782ec)" (( "(") (pointer_expression "*(code *)PTR_DestroyImage_001782ec" (* "*") (cast_expression "(code *)PTR_DestroyImage_001782ec" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DestroyImage_001782ec"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2;" (assignment_expression "*(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2" (pointer_expression "*(undefined4 *)(&DAT_00001004 + unaff_s0)" (* "*") (cast_expression "(undefined4 *)(&DAT_00001004 + unaff_s0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00001004 + unaff_s0)" (( "(") (binary_expression "&DAT_00001004 + unaff_s0" (pointer_expression "&DAT_00001004" (& "&") (identifier "DAT_00001004")) (+ "+") (identifier "unaff_s0")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (} "}")))) (expression_statement "*(undefined4 *)(unaff_s0 + 0x100c) = 0;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x100c) = 0" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x100c)" (* "*") (cast_expression "(undefined4 *)(unaff_s0 + 0x100c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s0 + 0x100c)" (( "(") (binary_expression "unaff_s0 + 0x100c" (identifier "unaff_s0") (+ "+") (number_literal "0x100c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(&DAT_00001010 + unaff_s0) = 0;" (assignment_expression "*(undefined4 *)(&DAT_00001010 + unaff_s0) = 0" (pointer_expression "*(undefined4 *)(&DAT_00001010 + unaff_s0)" (* "*") (cast_expression "(undefined4 *)(&DAT_00001010 + unaff_s0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00001010 + unaff_s0)" (( "(") (binary_expression "&DAT_00001010 + unaff_s0" (pointer_expression "&DAT_00001010" (& "&") (identifier "DAT_00001010")) (+ "+") (identifier "unaff_s0")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(&DAT_00001014 + unaff_s0) = 0;" (assignment_expression "*(undefined4 *)(&DAT_00001014 + unaff_s0) = 0" (pointer_expression "*(undefined4 *)(&DAT_00001014 + unaff_s0)" (* "*") (cast_expression "(undefined4 *)(&DAT_00001014 + unaff_s0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00001014 + unaff_s0)" (( "(") (binary_expression "&DAT_00001014 + unaff_s0" (pointer_expression "&DAT_00001014" (& "&") (identifier "DAT_00001014")) (+ "+") (identifier "unaff_s0")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(&DAT_00001018 + unaff_s0) = 0;" (assignment_expression "*(undefined4 *)(&DAT_00001018 + unaff_s0) = 0" (pointer_expression "*(undefined4 *)(&DAT_00001018 + unaff_s0)" (* "*") (cast_expression "(undefined4 *)(&DAT_00001018 + unaff_s0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00001018 + unaff_s0)" (( "(") (binary_expression "&DAT_00001018 + unaff_s0" (pointer_expression "&DAT_00001018" (& "&") (identifier "DAT_00001018")) (+ "+") (identifier "unaff_s0")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(unaff_s0 + 0x101c) = 0;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x101c) = 0" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x101c)" (* "*") (cast_expression "(undefined4 *)(unaff_s0 + 0x101c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s0 + 0x101c)" (( "(") (binary_expression "unaff_s0 + 0x101c" (identifier "unaff_s0") (+ "+") (number_literal "0x101c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(unaff_s0 + 0x1030) = 0;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x1030) = 0" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x1030)" (* "*") (cast_expression "(undefined4 *)(unaff_s0 + 0x1030)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s0 + 0x1030)" (( "(") (binary_expression "unaff_s0 + 0x1030" (identifier "unaff_s0") (+ "+") (number_literal "0x1030")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(unaff_s0 + 0x1028) = 0;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x1028) = 0" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x1028)" (* "*") (cast_expression "(undefined4 *)(unaff_s0 + 0x1028)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s0 + 0x1028)" (( "(") (binary_expression "unaff_s0 + 0x1028" (identifier "unaff_s0") (+ "+") (number_literal "0x1028")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(unaff_s0 + 0x102c) = 0;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x102c) = 0" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x102c)" (* "*") (cast_expression "(undefined4 *)(unaff_s0 + 0x102c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s0 + 0x102c)" (( "(") (binary_expression "unaff_s0 + 0x102c" (identifier "unaff_s0") (+ "+") (number_literal "0x102c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(unaff_s0 + 0x1020) = 0;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x1020) = 0" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x1020)" (* "*") (cast_expression "(undefined4 *)(unaff_s0 + 0x1020)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s0 + 0x1020)" (( "(") (binary_expression "unaff_s0 + 0x1020" (identifier "unaff_s0") (+ "+") (number_literal "0x1020")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(unaff_s0 + 0x1024) = 0;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x1024) = 0" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x1024)" (* "*") (cast_expression "(undefined4 *)(unaff_s0 + 0x1024)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s0 + 0x1024)" (( "(") (binary_expression "unaff_s0 + 0x1024" (identifier "unaff_s0") (+ "+") (number_literal "0x1024")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(unaff_s0 + 0x1034) = 0;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x1034) = 0" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x1034)" (* "*") (cast_expression "(undefined4 *)(unaff_s0 + 0x1034)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s0 + 0x1034)" (( "(") (binary_expression "unaff_s0 + 0x1034" (identifier "unaff_s0") (+ "+") (number_literal "0x1034")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar1 = (*(code *)PTR_AcquireQuantumMemory_00178694)(1,4);" (assignment_expression "iVar1 = (*(code *)PTR_AcquireQuantumMemory_00178694)(1,4)" (identifier "iVar1") (= "=") (call_expression "(*(code *)PTR_AcquireQuantumMemory_00178694)(1,4)" (parenthesized_expression "(*(code *)PTR_AcquireQuantumMemory_00178694)" (( "(") (pointer_expression "*(code *)PTR_AcquireQuantumMemory_00178694" (* "*") (cast_expression "(code *)PTR_AcquireQuantumMemory_00178694" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_AcquireQuantumMemory_00178694"))) () ")")) (argument_list "(1,4)" (( "(") (number_literal "1") (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "*(int *)(unaff_s0 + 0x1038) = iVar1;" (assignment_expression "*(int *)(unaff_s0 + 0x1038) = iVar1" (pointer_expression "*(int *)(unaff_s0 + 0x1038)" (* "*") (cast_expression "(int *)(unaff_s0 + 0x1038)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s0 + 0x1038)" (( "(") (binary_expression "unaff_s0 + 0x1038" (identifier "unaff_s0") (+ "+") (number_literal "0x1038")) () ")")))) (= "=") (identifier "iVar1")) (; ";")) (if_statement "if (iVar1 == 0) {\n    (*(code *)PTR_ThrowMagickException_001782c4)\n              (*(undefined4 *)(&DAT_00001008 + unaff_s0),PTR_s_oint_00178034 + -0x6960,\n               PTR_s_oint_00178034 + -0x459c,0x1c1,400,PTR_s_ision_00178030 + -0x354,\n               PTR_s_ision_00178030 + -0x35c,unaff_s0 + 4);\n  }\n  else {\n    iVar5 = *(int *)(unaff_s0 + 0x1034);\n    uVar2 = (*(code *)PTR_CloneDrawInfo_001784ac)(0,0);\n    *(undefined4 *)(iVar1 + iVar5 * 4) = uVar2;\n    *(undefined4 *)(unaff_s0 + 0x103c) = 1;\n    *(undefined4 *)(unaff_s0 + 0x1040) = 0;\n    *(undefined4 *)(unaff_s0 + 0x1044) = 0;\n    *(undefined4 *)(unaff_s0 + 0x1048) = 0;\n    uVar2 = (*(code *)PTR_AcquireImage_0017872c)(0,*(undefined4 *)(&DAT_00001008 + unaff_s0));\n    *(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2;\n    (*(code *)PTR_ClearMagickException_001783dc)(*(undefined4 *)(&DAT_00001008 + unaff_s0));\n    *(undefined4 *)(unaff_s0 + 0x104c) = 1;\n    uVar2 = (*(code *)PTR_IsEventLogging_00178810)();\n    *(undefined4 *)(unaff_s0 + 0x1050) = uVar2;\n  }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    (*(code *)PTR_ThrowMagickException_001782c4)\n              (*(undefined4 *)(&DAT_00001008 + unaff_s0),PTR_s_oint_00178034 + -0x6960,\n               PTR_s_oint_00178034 + -0x459c,0x1c1,400,PTR_s_ision_00178030 + -0x354,\n               PTR_s_ision_00178030 + -0x35c,unaff_s0 + 4);\n  }" ({ "{") (expression_statement "(*(code *)PTR_ThrowMagickException_001782c4)\n              (*(undefined4 *)(&DAT_00001008 + unaff_s0),PTR_s_oint_00178034 + -0x6960,\n               PTR_s_oint_00178034 + -0x459c,0x1c1,400,PTR_s_ision_00178030 + -0x354,\n               PTR_s_ision_00178030 + -0x35c,unaff_s0 + 4);" (call_expression "(*(code *)PTR_ThrowMagickException_001782c4)\n              (*(undefined4 *)(&DAT_00001008 + unaff_s0),PTR_s_oint_00178034 + -0x6960,\n               PTR_s_oint_00178034 + -0x459c,0x1c1,400,PTR_s_ision_00178030 + -0x354,\n               PTR_s_ision_00178030 + -0x35c,unaff_s0 + 4)" (parenthesized_expression "(*(code *)PTR_ThrowMagickException_001782c4)" (( "(") (pointer_expression "*(code *)PTR_ThrowMagickException_001782c4" (* "*") (cast_expression "(code *)PTR_ThrowMagickException_001782c4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ThrowMagickException_001782c4"))) () ")")) (argument_list "(*(undefined4 *)(&DAT_00001008 + unaff_s0),PTR_s_oint_00178034 + -0x6960,\n               PTR_s_oint_00178034 + -0x459c,0x1c1,400,PTR_s_ision_00178030 + -0x354,\n               PTR_s_ision_00178030 + -0x35c,unaff_s0 + 4)" (( "(") (pointer_expression "*(undefined4 *)(&DAT_00001008 + unaff_s0)" (* "*") (cast_expression "(undefined4 *)(&DAT_00001008 + unaff_s0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00001008 + unaff_s0)" (( "(") (binary_expression "&DAT_00001008 + unaff_s0" (pointer_expression "&DAT_00001008" (& "&") (identifier "DAT_00001008")) (+ "+") (identifier "unaff_s0")) () ")")))) (, ",") (binary_expression "PTR_s_oint_00178034 + -0x6960" (identifier "PTR_s_oint_00178034") (+ "+") (number_literal "-0x6960")) (, ",") (binary_expression "PTR_s_oint_00178034 + -0x459c" (identifier "PTR_s_oint_00178034") (+ "+") (number_literal "-0x459c")) (, ",") (number_literal "0x1c1") (, ",") (number_literal "400") (, ",") (binary_expression "PTR_s_ision_00178030 + -0x354" (identifier "PTR_s_ision_00178030") (+ "+") (number_literal "-0x354")) (, ",") (binary_expression "PTR_s_ision_00178030 + -0x35c" (identifier "PTR_s_ision_00178030") (+ "+") (number_literal "-0x35c")) (, ",") (binary_expression "unaff_s0 + 4" (identifier "unaff_s0") (+ "+") (number_literal "4")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n    iVar5 = *(int *)(unaff_s0 + 0x1034);\n    uVar2 = (*(code *)PTR_CloneDrawInfo_001784ac)(0,0);\n    *(undefined4 *)(iVar1 + iVar5 * 4) = uVar2;\n    *(undefined4 *)(unaff_s0 + 0x103c) = 1;\n    *(undefined4 *)(unaff_s0 + 0x1040) = 0;\n    *(undefined4 *)(unaff_s0 + 0x1044) = 0;\n    *(undefined4 *)(unaff_s0 + 0x1048) = 0;\n    uVar2 = (*(code *)PTR_AcquireImage_0017872c)(0,*(undefined4 *)(&DAT_00001008 + unaff_s0));\n    *(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2;\n    (*(code *)PTR_ClearMagickException_001783dc)(*(undefined4 *)(&DAT_00001008 + unaff_s0));\n    *(undefined4 *)(unaff_s0 + 0x104c) = 1;\n    uVar2 = (*(code *)PTR_IsEventLogging_00178810)();\n    *(undefined4 *)(unaff_s0 + 0x1050) = uVar2;\n  }" (else "else") (compound_statement "{\n    iVar5 = *(int *)(unaff_s0 + 0x1034);\n    uVar2 = (*(code *)PTR_CloneDrawInfo_001784ac)(0,0);\n    *(undefined4 *)(iVar1 + iVar5 * 4) = uVar2;\n    *(undefined4 *)(unaff_s0 + 0x103c) = 1;\n    *(undefined4 *)(unaff_s0 + 0x1040) = 0;\n    *(undefined4 *)(unaff_s0 + 0x1044) = 0;\n    *(undefined4 *)(unaff_s0 + 0x1048) = 0;\n    uVar2 = (*(code *)PTR_AcquireImage_0017872c)(0,*(undefined4 *)(&DAT_00001008 + unaff_s0));\n    *(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2;\n    (*(code *)PTR_ClearMagickException_001783dc)(*(undefined4 *)(&DAT_00001008 + unaff_s0));\n    *(undefined4 *)(unaff_s0 + 0x104c) = 1;\n    uVar2 = (*(code *)PTR_IsEventLogging_00178810)();\n    *(undefined4 *)(unaff_s0 + 0x1050) = uVar2;\n  }" ({ "{") (expression_statement "iVar5 = *(int *)(unaff_s0 + 0x1034);" (assignment_expression "iVar5 = *(int *)(unaff_s0 + 0x1034)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(unaff_s0 + 0x1034)" (* "*") (cast_expression "(int *)(unaff_s0 + 0x1034)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s0 + 0x1034)" (( "(") (binary_expression "unaff_s0 + 0x1034" (identifier "unaff_s0") (+ "+") (number_literal "0x1034")) () ")"))))) (; ";")) (expression_statement "uVar2 = (*(code *)PTR_CloneDrawInfo_001784ac)(0,0);" (assignment_expression "uVar2 = (*(code *)PTR_CloneDrawInfo_001784ac)(0,0)" (identifier "uVar2") (= "=") (call_expression "(*(code *)PTR_CloneDrawInfo_001784ac)(0,0)" (parenthesized_expression "(*(code *)PTR_CloneDrawInfo_001784ac)" (( "(") (pointer_expression "*(code *)PTR_CloneDrawInfo_001784ac" (* "*") (cast_expression "(code *)PTR_CloneDrawInfo_001784ac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_CloneDrawInfo_001784ac"))) () ")")) (argument_list "(0,0)" (( "(") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar1 + iVar5 * 4) = uVar2;" (assignment_expression "*(undefined4 *)(iVar1 + iVar5 * 4) = uVar2" (pointer_expression "*(undefined4 *)(iVar1 + iVar5 * 4)" (* "*") (cast_expression "(undefined4 *)(iVar1 + iVar5 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + iVar5 * 4)" (( "(") (binary_expression "iVar1 + iVar5 * 4" (identifier "iVar1") (+ "+") (binary_expression "iVar5 * 4" (identifier "iVar5") (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "*(undefined4 *)(unaff_s0 + 0x103c) = 1;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x103c) = 1" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x103c)" (* "*") (cast_expression "(undefined4 *)(unaff_s0 + 0x103c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s0 + 0x103c)" (( "(") (binary_expression "unaff_s0 + 0x103c" (identifier "unaff_s0") (+ "+") (number_literal "0x103c")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(unaff_s0 + 0x1040) = 0;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x1040) = 0" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x1040)" (* "*") (cast_expression "(undefined4 *)(unaff_s0 + 0x1040)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s0 + 0x1040)" (( "(") (binary_expression "unaff_s0 + 0x1040" (identifier "unaff_s0") (+ "+") (number_literal "0x1040")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(unaff_s0 + 0x1044) = 0;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x1044) = 0" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x1044)" (* "*") (cast_expression "(undefined4 *)(unaff_s0 + 0x1044)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s0 + 0x1044)" (( "(") (binary_expression "unaff_s0 + 0x1044" (identifier "unaff_s0") (+ "+") (number_literal "0x1044")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(unaff_s0 + 0x1048) = 0;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x1048) = 0" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x1048)" (* "*") (cast_expression "(undefined4 *)(unaff_s0 + 0x1048)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s0 + 0x1048)" (( "(") (binary_expression "unaff_s0 + 0x1048" (identifier "unaff_s0") (+ "+") (number_literal "0x1048")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar2 = (*(code *)PTR_AcquireImage_0017872c)(0,*(undefined4 *)(&DAT_00001008 + unaff_s0));" (assignment_expression "uVar2 = (*(code *)PTR_AcquireImage_0017872c)(0,*(undefined4 *)(&DAT_00001008 + unaff_s0))" (identifier "uVar2") (= "=") (call_expression "(*(code *)PTR_AcquireImage_0017872c)(0,*(undefined4 *)(&DAT_00001008 + unaff_s0))" (parenthesized_expression "(*(code *)PTR_AcquireImage_0017872c)" (( "(") (pointer_expression "*(code *)PTR_AcquireImage_0017872c" (* "*") (cast_expression "(code *)PTR_AcquireImage_0017872c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_AcquireImage_0017872c"))) () ")")) (argument_list "(0,*(undefined4 *)(&DAT_00001008 + unaff_s0))" (( "(") (number_literal "0") (, ",") (pointer_expression "*(undefined4 *)(&DAT_00001008 + unaff_s0)" (* "*") (cast_expression "(undefined4 *)(&DAT_00001008 + unaff_s0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00001008 + unaff_s0)" (( "(") (binary_expression "&DAT_00001008 + unaff_s0" (pointer_expression "&DAT_00001008" (& "&") (identifier "DAT_00001008")) (+ "+") (identifier "unaff_s0")) () ")")))) () ")")))) (; ";")) (expression_statement "*(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2;" (assignment_expression "*(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2" (pointer_expression "*(undefined4 *)(&DAT_00001004 + unaff_s0)" (* "*") (cast_expression "(undefined4 *)(&DAT_00001004 + unaff_s0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00001004 + unaff_s0)" (( "(") (binary_expression "&DAT_00001004 + unaff_s0" (pointer_expression "&DAT_00001004" (& "&") (identifier "DAT_00001004")) (+ "+") (identifier "unaff_s0")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "(*(code *)PTR_ClearMagickException_001783dc)(*(undefined4 *)(&DAT_00001008 + unaff_s0));" (call_expression "(*(code *)PTR_ClearMagickException_001783dc)(*(undefined4 *)(&DAT_00001008 + unaff_s0))" (parenthesized_expression "(*(code *)PTR_ClearMagickException_001783dc)" (( "(") (pointer_expression "*(code *)PTR_ClearMagickException_001783dc" (* "*") (cast_expression "(code *)PTR_ClearMagickException_001783dc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ClearMagickException_001783dc"))) () ")")) (argument_list "(*(undefined4 *)(&DAT_00001008 + unaff_s0))" (( "(") (pointer_expression "*(undefined4 *)(&DAT_00001008 + unaff_s0)" (* "*") (cast_expression "(undefined4 *)(&DAT_00001008 + unaff_s0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00001008 + unaff_s0)" (( "(") (binary_expression "&DAT_00001008 + unaff_s0" (pointer_expression "&DAT_00001008" (& "&") (identifier "DAT_00001008")) (+ "+") (identifier "unaff_s0")) () ")")))) () ")"))) (; ";")) (expression_statement "*(undefined4 *)(unaff_s0 + 0x104c) = 1;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x104c) = 1" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x104c)" (* "*") (cast_expression "(undefined4 *)(unaff_s0 + 0x104c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s0 + 0x104c)" (( "(") (binary_expression "unaff_s0 + 0x104c" (identifier "unaff_s0") (+ "+") (number_literal "0x104c")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar2 = (*(code *)PTR_IsEventLogging_00178810)();" (assignment_expression "uVar2 = (*(code *)PTR_IsEventLogging_00178810)()" (identifier "uVar2") (= "=") (call_expression "(*(code *)PTR_IsEventLogging_00178810)()" (parenthesized_expression "(*(code *)PTR_IsEventLogging_00178810)" (( "(") (pointer_expression "*(code *)PTR_IsEventLogging_00178810" (* "*") (cast_expression "(code *)PTR_IsEventLogging_00178810" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_IsEventLogging_00178810"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(unaff_s0 + 0x1050) = uVar2;" (assignment_expression "*(undefined4 *)(unaff_s0 + 0x1050) = uVar2" (pointer_expression "*(undefined4 *)(unaff_s0 + 0x1050)" (* "*") (cast_expression "(undefined4 *)(unaff_s0 + 0x1050)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s0 + 0x1050)" (( "(") (binary_expression "unaff_s0 + 0x1050" (identifier "unaff_s0") (+ "+") (number_literal "0x1050")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (} "}")))) (return_statement "return;" (return "return") (; ";")) (} "}")))

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

void function_1(type_1 *var_1)

{
  size_t var_6;
  type_2 *pDVar2;
  char *pcVar3;
  type_3 *pIVar4;
  type_4 MVar5;
  type_5 *var_3;
  type_1 *unaff_s0;
  type_2 **var_7;
  
  if (var_1 == (type_1 *)0x0) {
    var_3 = var_2 + -0x4588;
    (*(type_6 *)PTR___assert_fail_00178728)
              (var_2 + -0x6944,var_2 + -0x6960,0x1a1,var_3);
LAB_000766f4:
    pcVar3 = (char *)(*(type_6 *)PTR___assert_fail_00178728)
                               (var_2 + -0x1e54,var_2 + -0x6960,0x1a2,
                                var_3 + -0x4588);
  }
  else {
    var_3 = var_2;
    unaff_s0 = var_1;
    if (var_1->signature != 0xabacadab) goto LAB_000766f4;
    pcVar3 = var_1->name;
    if (var_1->debug == var_4) {
      var_6 = var_1->index;
      goto joined_r0x00076600;
    }
  }
  (*(type_6 *)PTR_LogMagickEvent_00178490)
            (0x40000,var_2 + -0x6960,var_2 + -0x459c,0x1a4,
             var_5 + -0x7318,pcVar3);
  var_6 = unaff_s0->index;
joined_r0x00076600:
  while (var_6 != 0) {
    var_7 = unaff_s0->graphic_context;
    pDVar2 = (type_2 *)(*(type_6 *)PTR_DestroyDrawInfo_00178340)(var_7[var_6]);
    var_7[var_6] = pDVar2;
    var_6 = unaff_s0->index - 1;
    unaff_s0->index = var_6;
  }
  var_7 = unaff_s0->graphic_context;
  pDVar2 = (type_2 *)(*(type_6 *)PTR_DestroyDrawInfo_00178340)(*var_7);
  *var_7 = pDVar2;
  var_7 = (type_2 **)(*(type_6 *)PTR_RelinquishMagickMemory_00178324)(unaff_s0->graphic_context);
  unaff_s0->graphic_context = var_7;
  if (unaff_s0->pattern_id != (char *)0x0) {
    pcVar3 = (char *)(*(type_6 *)PTR_DestroyString_0017839c)();
    unaff_s0->pattern_id = pcVar3;
  }
  pcVar3 = (char *)(*(type_6 *)PTR_DestroyString_0017839c)(unaff_s0->mvg);
  unaff_s0->mvg = pcVar3;
  if ((unaff_s0->destroy == var_4) || (unaff_s0->image == (type_3 *)0x0)) {
    unaff_s0->image = (type_3 *)0x0;
  }
  else {
    pIVar4 = (type_3 *)(*(type_6 *)PTR_DestroyImage_001782ec)();
    unaff_s0->image = pIVar4;
  }
  unaff_s0->mvg = (char *)0x0;
  unaff_s0->mvg_alloc = 0;
  unaff_s0->mvg_length = 0;
  unaff_s0->mvg_width = 0;
  unaff_s0->pattern_id = (char *)0x0;
  unaff_s0->pattern_offset = 0;
  (unaff_s0->pattern_bounds).x = 0;
  (unaff_s0->pattern_bounds).y = 0;
  (unaff_s0->pattern_bounds).width = 0;
  (unaff_s0->pattern_bounds).height = 0;
  unaff_s0->index = 0;
  var_7 = (type_2 **)(*(type_6 *)PTR_AcquireQuantumMemory_00178694)(1,4);
  unaff_s0->graphic_context = var_7;
  if (var_7 == (type_2 **)0x0) {
    (*(type_6 *)PTR_ThrowMagickException_001782c4)
              (unaff_s0->exception,var_2 + -0x6960,var_2 + -0x459c,0x1c1
               ,400,var_8 + -0x354,var_8 + -0x35c,unaff_s0->name);
  }
  else {
    var_6 = unaff_s0->index;
    pDVar2 = (type_2 *)(*(type_6 *)PTR_CloneDrawInfo_001784ac)(0,0);
    var_7[var_6] = pDVar2;
    unaff_s0->filter_off = MagickTrue;
    unaff_s0->indent_depth = 0;
    unaff_s0->path_operation = PathDefaultOperation;
    unaff_s0->path_mode = DefaultPathMode;
    pIVar4 = (type_3 *)(*(type_6 *)PTR_AcquireImage_0017872c)(0,unaff_s0->exception);
    unaff_s0->image = pIVar4;
    (*(type_6 *)PTR_ClearMagickException_001783dc)(unaff_s0->exception);
    unaff_s0->destroy = MagickTrue;
    MVar5 = (*(type_6 *)PTR_IsEventLogging_00178810)();
    unaff_s0->debug = MVar5;
  }
  return;
}


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

void MASKED(int param_1)

{
  int iVar1;
  undefined4 uVar2;
  undefined *puVar3;
  int unaff_s0;
  undefined4 *puVar4;
  int iVar5;
  
  if (param_1 == 0) {
    puVar3 = PTR_s_oint_00178034 + -0x4588;
    (*(code *)PTR___assert_fail_00178728)
              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1a1,puVar3);
LAB_000766f4:
    iVar1 = (*(code *)PTR___assert_fail_00178728)
                      (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1a2,
                       puVar3 + -0x4588);
  }
  else {
    puVar3 = PTR_s_oint_00178034;
    unaff_s0 = param_1;
    if (*(int *)(param_1 + 0x1054) != -0x54535255) goto LAB_000766f4;
    iVar1 = param_1 + 4;
    if (*(int *)(param_1 + 0x1050) == 0) {
      iVar1 = *(int *)(param_1 + 0x1034);
      goto joined_r0x00076600;
    }
  }
  (*(code *)PTR_LogMagickEvent_00178490)
            (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x459c,0x1a4,
             PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,iVar1);
  iVar1 = *(int *)(unaff_s0 + 0x1034);
joined_r0x00076600:
  while (iVar1 != 0) {
    puVar4 = (undefined4 *)(*(int *)(unaff_s0 + 0x1038) + iVar1 * 4);
    uVar2 = (*(code *)PTR_DestroyDrawInfo_00178340)(*puVar4);
    *puVar4 = uVar2;
    iVar1 = *(int *)(unaff_s0 + 0x1034) + -1;
    *(int *)(unaff_s0 + 0x1034) = iVar1;
  }
  puVar4 = *(undefined4 **)(unaff_s0 + 0x1038);
  uVar2 = (*(code *)PTR_DestroyDrawInfo_00178340)(*puVar4);
  *puVar4 = uVar2;
  uVar2 = (*(code *)PTR_RelinquishMagickMemory_00178324)(*(undefined4 *)(unaff_s0 + 0x1038));
  *(undefined4 *)(unaff_s0 + 0x1038) = uVar2;
  if (*(int *)(unaff_s0 + 0x101c) != 0) {
    uVar2 = (*(code *)PTR_DestroyString_0017839c)();
    *(undefined4 *)(unaff_s0 + 0x101c) = uVar2;
  }
  uVar2 = (*(code *)PTR_DestroyString_0017839c)(*(undefined4 *)(unaff_s0 + 0x100c));
  *(undefined4 *)(unaff_s0 + 0x100c) = uVar2;
  if ((*(int *)(unaff_s0 + 0x104c) == 0) || (*(int *)(&DAT_00001004 + unaff_s0) == 0)) {
    *(undefined4 *)(&DAT_00001004 + unaff_s0) = 0;
  }
  else {
    uVar2 = (*(code *)PTR_DestroyImage_001782ec)();
    *(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2;
  }
  *(undefined4 *)(unaff_s0 + 0x100c) = 0;
  *(undefined4 *)(&DAT_00001010 + unaff_s0) = 0;
  *(undefined4 *)(&DAT_00001014 + unaff_s0) = 0;
  *(undefined4 *)(&DAT_00001018 + unaff_s0) = 0;
  *(undefined4 *)(unaff_s0 + 0x101c) = 0;
  *(undefined4 *)(unaff_s0 + 0x1030) = 0;
  *(undefined4 *)(unaff_s0 + 0x1028) = 0;
  *(undefined4 *)(unaff_s0 + 0x102c) = 0;
  *(undefined4 *)(unaff_s0 + 0x1020) = 0;
  *(undefined4 *)(unaff_s0 + 0x1024) = 0;
  *(undefined4 *)(unaff_s0 + 0x1034) = 0;
  iVar1 = (*(code *)PTR_AcquireQuantumMemory_00178694)(1,4);
  *(int *)(unaff_s0 + 0x1038) = iVar1;
  if (iVar1 == 0) {
    (*(code *)PTR_ThrowMagickException_001782c4)
              (*(undefined4 *)(&DAT_00001008 + unaff_s0),PTR_s_oint_00178034 + -0x6960,
               PTR_s_oint_00178034 + -0x459c,0x1c1,400,PTR_s_ision_00178030 + -0x354,
               PTR_s_ision_00178030 + -0x35c,unaff_s0 + 4);
  }
  else {
    iVar5 = *(int *)(unaff_s0 + 0x1034);
    uVar2 = (*(code *)PTR_CloneDrawInfo_001784ac)(0,0);
    *(undefined4 *)(iVar1 + iVar5 * 4) = uVar2;
    *(undefined4 *)(unaff_s0 + 0x103c) = 1;
    *(undefined4 *)(unaff_s0 + 0x1040) = 0;
    *(undefined4 *)(unaff_s0 + 0x1044) = 0;
    *(undefined4 *)(unaff_s0 + 0x1048) = 0;
    uVar2 = (*(code *)PTR_AcquireImage_0017872c)(0,*(undefined4 *)(&DAT_00001008 + unaff_s0));
    *(undefined4 *)(&DAT_00001004 + unaff_s0) = uVar2;
    (*(code *)PTR_ClearMagickException_001783dc)(*(undefined4 *)(&DAT_00001008 + unaff_s0));
    *(undefined4 *)(unaff_s0 + 0x104c) = 1;
    uVar2 = (*(code *)PTR_IsEventLogging_00178810)();
    *(undefined4 *)(unaff_s0 + 0x1050) = uVar2;
  }
  return;
}

