
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */
/* WARNING: Enum "ExceptionType": Some values do not have unique names */

char * StringInfoToHexString(StringInfo *string_info)

{
  int iVar1;
  byte *pbVar2;
  int iVar3;
  uchar *puVar4;
  ExceptionInfo *exception;
  int *piVar5;
  char *string;
  uchar *puVar6;
  byte *pbVar7;
  byte *pbVar8;
  int in_GS_OFFSET;
  size_t sVar9;
  uchar hex_digits [16];
  
  iVar1 = *(int *)(in_GS_OFFSET + 0x14);
  if (string_info->length < 0xfffff000) {
    puVar4 = (uchar *)AcquireQuantumMemory(string_info->length + 0x1000,2);
    if (puVar4 != (uchar *)0x0) {
      pbVar2 = string_info->datum;
      builtin_memcpy(hex_digits,"0123",4);
      sVar9 = string_info->length;
      builtin_memcpy(hex_digits + 4,"456789abcdef",0xc);
      puVar6 = puVar4;
      if (0 < (int)sVar9) {
        pbVar7 = pbVar2;
        do {
          pbVar8 = pbVar7 + 1;
          *puVar6 = hex_digits[*pbVar7 >> 4];
          puVar6[1] = hex_digits[*pbVar7 & 0xf];
          puVar6 = puVar6 + 2;
          pbVar7 = pbVar8;
        } while (pbVar2 + sVar9 != pbVar8);
        puVar6 = puVar4 + sVar9 * 2;
      }
      iVar3 = *(int *)(in_GS_OFFSET + 0x14);
      *puVar6 = '\0';
      if (iVar1 != iVar3) {
                    /* WARNING: Subroutine does not return */
        __stack_chk_fail_local();
      }
      return (char *)puVar4;
    }
    exception = AcquireExceptionInfo();
    piVar5 = __errno_location();
    string = GetExceptionMessage(*piVar5);
    sVar9 = 0x778;
  }
  else {
    exception = AcquireExceptionInfo();
    piVar5 = __errno_location();
    string = GetExceptionMessage(*piVar5);
    sVar9 = 0x774;
  }
  ThrowMagickException
            (exception,"MagickCore/string.c","StringInfoToHexString",sVar9,FatalErrorException,
             "UnableToAcquireString","`%s\'",string);
  DestroyString(string);
  CatchException(exception);
  DestroyExceptionInfo(exception);
  MagickCoreTerminus();
                    /* WARNING: Subroutine does not return */
  _exit(1);
}



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

void StringInfoToHexString(int param_1)

{
  byte *pbVar1;
  int iVar2;
  undefined1 *puVar3;
  undefined4 uVar4;
  int *piVar5;
  undefined4 uVar6;
  undefined1 *puVar7;
  byte *pbVar8;
  byte *pbVar9;
  int in_GS_OFFSET;
  undefined4 uVar10;
  undefined4 local_30;
  undefined4 local_2c;
  undefined4 local_28;
  undefined4 local_24;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x19e6d9;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (*(uint *)(param_1 + 8) < 0xfffff000) {
    puVar3 = (undefined1 *)AcquireQuantumMemory(*(uint *)(param_1 + 8) + 0x1000,2);
    if (puVar3 != (undefined1 *)0x0) {
      pbVar1 = *(byte **)(param_1 + 4);
      local_30 = 0x33323130;
      iVar2 = *(int *)(param_1 + 8);
      local_2c = 0x37363534;
      local_28 = 0x62613938;
      local_24 = 0x66656463;
      if (0 < iVar2) {
        puVar7 = puVar3;
        pbVar8 = pbVar1;
        do {
          pbVar9 = pbVar8 + 1;
          *puVar7 = *(undefined1 *)((int)&local_30 + (uint)(*pbVar8 >> 4));
          puVar7[1] = *(undefined1 *)((int)&local_30 + (*pbVar8 & 0xf));
          puVar7 = puVar7 + 2;
          pbVar8 = pbVar9;
        } while (pbVar1 + iVar2 != pbVar9);
        puVar3 = puVar3 + iVar2 * 2;
      }
      iVar2 = *(int *)(in_GS_OFFSET + 0x14);
      *puVar3 = 0;
      if (local_20 != iVar2) {
                    /* WARNING: Subroutine does not return */
        FUN_0029eab0();
      }
      return;
    }
    uVar4 = AcquireExceptionInfo();
    piVar5 = __errno_location();
    uVar6 = GetExceptionMessage(*piVar5);
    uVar10 = 0x778;
  }
  else {
    uVar4 = AcquireExceptionInfo();
    piVar5 = __errno_location();
    uVar6 = GetExceptionMessage(*piVar5);
    uVar10 = 0x774;
  }
  ThrowMagickException
            (uVar4,"MagickCore/string.c","StringInfoToHexString",uVar10,700,"UnableToAcquireString",
             "`%s\'",uVar6);
  DestroyString(uVar6);
  CatchException(uVar4);
  DestroyExceptionInfo(uVar4);
  MagickCoreTerminus();
                    /* WARNING: Subroutine does not return */
  _exit(1);
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00038830
ADD EBX,0x23a927
SUB ESP,0x2c
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0x1c],EAX
XOR EAX,EAX
MOV ESI,dword ptr [ESP + 0x40]
MOV EAX,dword ptr [ESI + 0x8]
CMP EAX,0xffffefff
JA 0x0019e814
SUB ESP,0x8
ADD EAX,0x1000
PUSH 0x2
PUSH EAX
CALL 0x000317b0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0019e7a1
MOV EDX,dword ptr [ESI + 0x4]
MOV dword ptr [ESP + 0xc],0x33323130
MOV ESI,dword ptr [ESI + 0x8]
MOV dword ptr [ESP + 0x10],0x37363534
MOV dword ptr [ESP + 0x14],0x62613938
MOV dword ptr [ESP + 0x18],0x66656463
TEST ESI,ESI
JLE 0x0019e798
LEA EBP,[EDX + ESI*0x1]
MOV ECX,EAX
LEA ESI,[ESI]
MOVZX EBX,byte ptr [EDX]
ADD ECX,0x2
ADD EDX,0x1
SHR BL,0x4
MOVZX EDI,BL
MOVZX EBX,byte ptr [ESP + EDI*0x1 + 0xc]
MOV byte ptr [ECX + -0x2],BL
MOVZX EDI,byte ptr [EDX + -0x1]
AND EDI,0xf
MOVZX EBX,byte ptr [ESP + EDI*0x1 + 0xc]
MOV byte ptr [ECX + -0x1],BL
CMP EBP,EDX
JNZ 0x0019e750
LEA EDX,[EAX + ESI*0x2]
MOV ESI,dword ptr [ESP + 0x1c]
XOR ESI,dword ptr GS:[0x14]
MOV byte ptr [EDX],0x0
JNZ 0x0019e79c
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EDX,EAX
JMP 0x0019e77d
CALL 0x0029eab0
CALL 0x00032f50
MOV ESI,EAX
CALL 0x000305f0
SUB ESP,0xc
PUSH dword ptr [EAX]
CALL 0x00031c10
ADD ESP,0x10
PUSH EAX
MOV EDI,EAX
LEA EAX,[EBX + 0xffec8a40]
PUSH EAX
LEA EAX,[EBX + 0xffee6c70]
PUSH EAX
PUSH 0x2bc
PUSH 0x778
LEA EAX,[EBX + 0xffef0254]
PUSH EAX
LEA EAX,[EBX + 0xffeefe0e]
PUSH EAX
PUSH ESI
CALL 0x00032e80
ADD ESP,0x14
PUSH EDI
CALL 0x00032950
MOV dword ptr [ESP],ESI
CALL 0x000320b0
MOV dword ptr [ESP],ESI
CALL 0x000335b0
ADD ESP,0x10
CALL 0x000308c0
SUB ESP,0xc
PUSH 0x1
CALL 0x00031270
CALL 0x00032f50
MOV ESI,EAX
CALL 0x000305f0
SUB ESP,0xc
PUSH dword ptr [EAX]
CALL 0x00031c10
ADD ESP,0x10
PUSH EAX
MOV EDI,EAX
LEA EAX,[EBX + 0xffec8a40]
PUSH EAX
LEA EAX,[EBX + 0xffee6c70]
PUSH EAX
PUSH 0x2bc
PUSH 0x774
JMP 0x0019e7d5
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid StringInfoToHexString(int param_1)\n\n{\n  byte *pbVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  undefined4 uVar4;\n  int *piVar5;\n  undefined4 uVar6;\n  undefined1 *puVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  int in_GS_OFFSET;\n  undefined4 uVar10;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x19e6d9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (*(uint *)(param_1 + 8) < 0xfffff000) {\n    puVar3 = (undefined1 *)AcquireQuantumMemory(*(uint *)(param_1 + 8) + 0x1000,2);\n    if (puVar3 != (undefined1 *)0x0) {\n      pbVar1 = *(byte **)(param_1 + 4);\n      local_30 = 0x33323130;\n      iVar2 = *(int *)(param_1 + 8);\n      local_2c = 0x37363534;\n      local_28 = 0x62613938;\n      local_24 = 0x66656463;\n      if (0 < iVar2) {\n        puVar7 = puVar3;\n        pbVar8 = pbVar1;\n        do {\n          pbVar9 = pbVar8 + 1;\n          *puVar7 = *(undefined1 *)((int)&local_30 + (uint)(*pbVar8 >> 4));\n          puVar7[1] = *(undefined1 *)((int)&local_30 + (*pbVar8 & 0xf));\n          puVar7 = puVar7 + 2;\n          pbVar8 = pbVar9;\n        } while (pbVar1 + iVar2 != pbVar9);\n        puVar3 = puVar3 + iVar2 * 2;\n      }\n      iVar2 = *(int *)(in_GS_OFFSET + 0x14);\n      *puVar3 = 0;\n      if (local_20 != iVar2) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0029eab0();\n      }\n      return;\n    }\n    uVar4 = AcquireExceptionInfo();\n    piVar5 = __errno_location();\n    uVar6 = GetExceptionMessage(*piVar5);\n    uVar10 = 0x778;\n  }\n  else {\n    uVar4 = AcquireExceptionInfo();\n    piVar5 = __errno_location();\n    uVar6 = GetExceptionMessage(*piVar5);\n    uVar10 = 0x774;\n  }\n  ThrowMagickException\n            (uVar4,"MagickCore/string.c","StringInfoToHexString",uVar10,700,"UnableToAcquireString",\n             "`%s\'",uVar6);\n  DestroyString(uVar6);\n  CatchException(uVar4);\n  DestroyExceptionInfo(uVar4);\n  MagickCoreTerminus();\n                    /* WARNING: Subroutine does not return */\n  _exit(1);\n}\n\n" comment (function_definition "void StringInfoToHexString(int param_1)\n\n{\n  byte *pbVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  undefined4 uVar4;\n  int *piVar5;\n  undefined4 uVar6;\n  undefined1 *puVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  int in_GS_OFFSET;\n  undefined4 uVar10;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x19e6d9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (*(uint *)(param_1 + 8) < 0xfffff000) {\n    puVar3 = (undefined1 *)AcquireQuantumMemory(*(uint *)(param_1 + 8) + 0x1000,2);\n    if (puVar3 != (undefined1 *)0x0) {\n      pbVar1 = *(byte **)(param_1 + 4);\n      local_30 = 0x33323130;\n      iVar2 = *(int *)(param_1 + 8);\n      local_2c = 0x37363534;\n      local_28 = 0x62613938;\n      local_24 = 0x66656463;\n      if (0 < iVar2) {\n        puVar7 = puVar3;\n        pbVar8 = pbVar1;\n        do {\n          pbVar9 = pbVar8 + 1;\n          *puVar7 = *(undefined1 *)((int)&local_30 + (uint)(*pbVar8 >> 4));\n          puVar7[1] = *(undefined1 *)((int)&local_30 + (*pbVar8 & 0xf));\n          puVar7 = puVar7 + 2;\n          pbVar8 = pbVar9;\n        } while (pbVar1 + iVar2 != pbVar9);\n        puVar3 = puVar3 + iVar2 * 2;\n      }\n      iVar2 = *(int *)(in_GS_OFFSET + 0x14);\n      *puVar3 = 0;\n      if (local_20 != iVar2) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0029eab0();\n      }\n      return;\n    }\n    uVar4 = AcquireExceptionInfo();\n    piVar5 = __errno_location();\n    uVar6 = GetExceptionMessage(*piVar5);\n    uVar10 = 0x778;\n  }\n  else {\n    uVar4 = AcquireExceptionInfo();\n    piVar5 = __errno_location();\n    uVar6 = GetExceptionMessage(*piVar5);\n    uVar10 = 0x774;\n  }\n  ThrowMagickException\n            (uVar4,"MagickCore/string.c","StringInfoToHexString",uVar10,700,"UnableToAcquireString",\n             "`%s\'",uVar6);\n  DestroyString(uVar6);\n  CatchException(uVar4);\n  DestroyExceptionInfo(uVar4);\n  MagickCoreTerminus();\n                    /* WARNING: Subroutine does not return */\n  _exit(1);\n}" primitive_type (function_declarator "StringInfoToHexString(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  byte *pbVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  undefined4 uVar4;\n  int *piVar5;\n  undefined4 uVar6;\n  undefined1 *puVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  int in_GS_OFFSET;\n  undefined4 uVar10;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x19e6d9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (*(uint *)(param_1 + 8) < 0xfffff000) {\n    puVar3 = (undefined1 *)AcquireQuantumMemory(*(uint *)(param_1 + 8) + 0x1000,2);\n    if (puVar3 != (undefined1 *)0x0) {\n      pbVar1 = *(byte **)(param_1 + 4);\n      local_30 = 0x33323130;\n      iVar2 = *(int *)(param_1 + 8);\n      local_2c = 0x37363534;\n      local_28 = 0x62613938;\n      local_24 = 0x66656463;\n      if (0 < iVar2) {\n        puVar7 = puVar3;\n        pbVar8 = pbVar1;\n        do {\n          pbVar9 = pbVar8 + 1;\n          *puVar7 = *(undefined1 *)((int)&local_30 + (uint)(*pbVar8 >> 4));\n          puVar7[1] = *(undefined1 *)((int)&local_30 + (*pbVar8 & 0xf));\n          puVar7 = puVar7 + 2;\n          pbVar8 = pbVar9;\n        } while (pbVar1 + iVar2 != pbVar9);\n        puVar3 = puVar3 + iVar2 * 2;\n      }\n      iVar2 = *(int *)(in_GS_OFFSET + 0x14);\n      *puVar3 = 0;\n      if (local_20 != iVar2) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0029eab0();\n      }\n      return;\n    }\n    uVar4 = AcquireExceptionInfo();\n    piVar5 = __errno_location();\n    uVar6 = GetExceptionMessage(*piVar5);\n    uVar10 = 0x778;\n  }\n  else {\n    uVar4 = AcquireExceptionInfo();\n    piVar5 = __errno_location();\n    uVar6 = GetExceptionMessage(*piVar5);\n    uVar10 = 0x774;\n  }\n  ThrowMagickException\n            (uVar4,"MagickCore/string.c","StringInfoToHexString",uVar10,700,"UnableToAcquireString",\n             "`%s\'",uVar6);\n  DestroyString(uVar6);\n  CatchException(uVar4);\n  DestroyExceptionInfo(uVar4);\n  MagickCoreTerminus();\n                    /* WARNING: Subroutine does not return */\n  _exit(1);\n}" { (declaration "byte *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined1 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined1 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x19e6d9;" (assignment_expression "uStack_14 = 0x19e6d9" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(param_1 + 8) < 0xfffff000) {\n    puVar3 = (undefined1 *)AcquireQuantumMemory(*(uint *)(param_1 + 8) + 0x1000,2);\n    if (puVar3 != (undefined1 *)0x0) {\n      pbVar1 = *(byte **)(param_1 + 4);\n      local_30 = 0x33323130;\n      iVar2 = *(int *)(param_1 + 8);\n      local_2c = 0x37363534;\n      local_28 = 0x62613938;\n      local_24 = 0x66656463;\n      if (0 < iVar2) {\n        puVar7 = puVar3;\n        pbVar8 = pbVar1;\n        do {\n          pbVar9 = pbVar8 + 1;\n          *puVar7 = *(undefined1 *)((int)&local_30 + (uint)(*pbVar8 >> 4));\n          puVar7[1] = *(undefined1 *)((int)&local_30 + (*pbVar8 & 0xf));\n          puVar7 = puVar7 + 2;\n          pbVar8 = pbVar9;\n        } while (pbVar1 + iVar2 != pbVar9);\n        puVar3 = puVar3 + iVar2 * 2;\n      }\n      iVar2 = *(int *)(in_GS_OFFSET + 0x14);\n      *puVar3 = 0;\n      if (local_20 != iVar2) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0029eab0();\n      }\n      return;\n    }\n    uVar4 = AcquireExceptionInfo();\n    piVar5 = __errno_location();\n    uVar6 = GetExceptionMessage(*piVar5);\n    uVar10 = 0x778;\n  }\n  else {\n    uVar4 = AcquireExceptionInfo();\n    piVar5 = __errno_location();\n    uVar6 = GetExceptionMessage(*piVar5);\n    uVar10 = 0x774;\n  }" if (parenthesized_expression "(*(uint *)(param_1 + 8) < 0xfffff000)" ( (binary_expression "*(uint *)(param_1 + 8) < 0xfffff000" (pointer_expression "*(uint *)(param_1 + 8)" * (cast_expression "(uint *)(param_1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n    puVar3 = (undefined1 *)AcquireQuantumMemory(*(uint *)(param_1 + 8) + 0x1000,2);\n    if (puVar3 != (undefined1 *)0x0) {\n      pbVar1 = *(byte **)(param_1 + 4);\n      local_30 = 0x33323130;\n      iVar2 = *(int *)(param_1 + 8);\n      local_2c = 0x37363534;\n      local_28 = 0x62613938;\n      local_24 = 0x66656463;\n      if (0 < iVar2) {\n        puVar7 = puVar3;\n        pbVar8 = pbVar1;\n        do {\n          pbVar9 = pbVar8 + 1;\n          *puVar7 = *(undefined1 *)((int)&local_30 + (uint)(*pbVar8 >> 4));\n          puVar7[1] = *(undefined1 *)((int)&local_30 + (*pbVar8 & 0xf));\n          puVar7 = puVar7 + 2;\n          pbVar8 = pbVar9;\n        } while (pbVar1 + iVar2 != pbVar9);\n        puVar3 = puVar3 + iVar2 * 2;\n      }\n      iVar2 = *(int *)(in_GS_OFFSET + 0x14);\n      *puVar3 = 0;\n      if (local_20 != iVar2) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0029eab0();\n      }\n      return;\n    }\n    uVar4 = AcquireExceptionInfo();\n    piVar5 = __errno_location();\n    uVar6 = GetExceptionMessage(*piVar5);\n    uVar10 = 0x778;\n  }" { (expression_statement "puVar3 = (undefined1 *)AcquireQuantumMemory(*(uint *)(param_1 + 8) + 0x1000,2);" (assignment_expression "puVar3 = (undefined1 *)AcquireQuantumMemory(*(uint *)(param_1 + 8) + 0x1000,2)" identifier = (cast_expression "(undefined1 *)AcquireQuantumMemory(*(uint *)(param_1 + 8) + 0x1000,2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireQuantumMemory(*(uint *)(param_1 + 8) + 0x1000,2)" identifier (argument_list "(*(uint *)(param_1 + 8) + 0x1000,2)" ( (binary_expression "*(uint *)(param_1 + 8) + 0x1000" (pointer_expression "*(uint *)(param_1 + 8)" * (cast_expression "(uint *)(param_1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) , number_literal ))))) ;) (if_statement "if (puVar3 != (undefined1 *)0x0) {\n      pbVar1 = *(byte **)(param_1 + 4);\n      local_30 = 0x33323130;\n      iVar2 = *(int *)(param_1 + 8);\n      local_2c = 0x37363534;\n      local_28 = 0x62613938;\n      local_24 = 0x66656463;\n      if (0 < iVar2) {\n        puVar7 = puVar3;\n        pbVar8 = pbVar1;\n        do {\n          pbVar9 = pbVar8 + 1;\n          *puVar7 = *(undefined1 *)((int)&local_30 + (uint)(*pbVar8 >> 4));\n          puVar7[1] = *(undefined1 *)((int)&local_30 + (*pbVar8 & 0xf));\n          puVar7 = puVar7 + 2;\n          pbVar8 = pbVar9;\n        } while (pbVar1 + iVar2 != pbVar9);\n        puVar3 = puVar3 + iVar2 * 2;\n      }\n      iVar2 = *(int *)(in_GS_OFFSET + 0x14);\n      *puVar3 = 0;\n      if (local_20 != iVar2) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0029eab0();\n      }\n      return;\n    }" if (parenthesized_expression "(puVar3 != (undefined1 *)0x0)" ( (binary_expression "puVar3 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pbVar1 = *(byte **)(param_1 + 4);\n      local_30 = 0x33323130;\n      iVar2 = *(int *)(param_1 + 8);\n      local_2c = 0x37363534;\n      local_28 = 0x62613938;\n      local_24 = 0x66656463;\n      if (0 < iVar2) {\n        puVar7 = puVar3;\n        pbVar8 = pbVar1;\n        do {\n          pbVar9 = pbVar8 + 1;\n          *puVar7 = *(undefined1 *)((int)&local_30 + (uint)(*pbVar8 >> 4));\n          puVar7[1] = *(undefined1 *)((int)&local_30 + (*pbVar8 & 0xf));\n          puVar7 = puVar7 + 2;\n          pbVar8 = pbVar9;\n        } while (pbVar1 + iVar2 != pbVar9);\n        puVar3 = puVar3 + iVar2 * 2;\n      }\n      iVar2 = *(int *)(in_GS_OFFSET + 0x14);\n      *puVar3 = 0;\n      if (local_20 != iVar2) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0029eab0();\n      }\n      return;\n    }" { (expression_statement "pbVar1 = *(byte **)(param_1 + 4);" (assignment_expression "pbVar1 = *(byte **)(param_1 + 4)" identifier = (pointer_expression "*(byte **)(param_1 + 4)" * (cast_expression "(byte **)(param_1 + 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_30 = 0x33323130;" (assignment_expression "local_30 = 0x33323130" identifier = number_literal) ;) (expression_statement "iVar2 = *(int *)(param_1 + 8);" (assignment_expression "iVar2 = *(int *)(param_1 + 8)" identifier = (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "local_2c = 0x37363534;" (assignment_expression "local_2c = 0x37363534" identifier = number_literal) ;) (expression_statement "local_28 = 0x62613938;" (assignment_expression "local_28 = 0x62613938" identifier = number_literal) ;) (expression_statement "local_24 = 0x66656463;" (assignment_expression "local_24 = 0x66656463" identifier = number_literal) ;) (if_statement "if (0 < iVar2) {\n        puVar7 = puVar3;\n        pbVar8 = pbVar1;\n        do {\n          pbVar9 = pbVar8 + 1;\n          *puVar7 = *(undefined1 *)((int)&local_30 + (uint)(*pbVar8 >> 4));\n          puVar7[1] = *(undefined1 *)((int)&local_30 + (*pbVar8 & 0xf));\n          puVar7 = puVar7 + 2;\n          pbVar8 = pbVar9;\n        } while (pbVar1 + iVar2 != pbVar9);\n        puVar3 = puVar3 + iVar2 * 2;\n      }" if (parenthesized_expression "(0 < iVar2)" ( (binary_expression "0 < iVar2" number_literal < identifier) )) (compound_statement "{\n        puVar7 = puVar3;\n        pbVar8 = pbVar1;\n        do {\n          pbVar9 = pbVar8 + 1;\n          *puVar7 = *(undefined1 *)((int)&local_30 + (uint)(*pbVar8 >> 4));\n          puVar7[1] = *(undefined1 *)((int)&local_30 + (*pbVar8 & 0xf));\n          puVar7 = puVar7 + 2;\n          pbVar8 = pbVar9;\n        } while (pbVar1 + iVar2 != pbVar9);\n        puVar3 = puVar3 + iVar2 * 2;\n      }" { (expression_statement "puVar7 = puVar3;" (assignment_expression "puVar7 = puVar3" identifier = identifier) ;) (expression_statement "pbVar8 = pbVar1;" (assignment_expression "pbVar8 = pbVar1" identifier = identifier) ;) (do_statement "do {\n          pbVar9 = pbVar8 + 1;\n          *puVar7 = *(undefined1 *)((int)&local_30 + (uint)(*pbVar8 >> 4));\n          puVar7[1] = *(undefined1 *)((int)&local_30 + (*pbVar8 & 0xf));\n          puVar7 = puVar7 + 2;\n          pbVar8 = pbVar9;\n        } while (pbVar1 + iVar2 != pbVar9);" do (compound_statement "{\n          pbVar9 = pbVar8 + 1;\n          *puVar7 = *(undefined1 *)((int)&local_30 + (uint)(*pbVar8 >> 4));\n          puVar7[1] = *(undefined1 *)((int)&local_30 + (*pbVar8 & 0xf));\n          puVar7 = puVar7 + 2;\n          pbVar8 = pbVar9;\n        }" { (expression_statement "pbVar9 = pbVar8 + 1;" (assignment_expression "pbVar9 = pbVar8 + 1" identifier = (binary_expression "pbVar8 + 1" identifier + number_literal)) ;) (expression_statement "*puVar7 = *(undefined1 *)((int)&local_30 + (uint)(*pbVar8 >> 4));" (assignment_expression "*puVar7 = *(undefined1 *)((int)&local_30 + (uint)(*pbVar8 >> 4))" (pointer_expression "*puVar7" * identifier) = (pointer_expression "*(undefined1 *)((int)&local_30 + (uint)(*pbVar8 >> 4))" * (cast_expression "(undefined1 *)((int)&local_30 + (uint)(*pbVar8 >> 4))" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_30 + (uint)(*pbVar8 >> 4))" ( (binary_expression "(int)&local_30 + (uint)(*pbVar8 >> 4)" (cast_expression "(int)&local_30" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_30" & identifier)) + (call_expression "(uint)(*pbVar8 >> 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*pbVar8 >> 4)" ( (binary_expression "*pbVar8 >> 4" (pointer_expression "*pbVar8" * identifier) >> number_literal) )))) ))))) ;) (expression_statement "puVar7[1] = *(undefined1 *)((int)&local_30 + (*pbVar8 & 0xf));" (assignment_expression "puVar7[1] = *(undefined1 *)((int)&local_30 + (*pbVar8 & 0xf))" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = (pointer_expression "*(undefined1 *)((int)&local_30 + (*pbVar8 & 0xf))" * (cast_expression "(undefined1 *)((int)&local_30 + (*pbVar8 & 0xf))" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_30 + (*pbVar8 & 0xf))" ( (binary_expression "(int)&local_30 + (*pbVar8 & 0xf)" (cast_expression "(int)&local_30" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_30" & identifier)) + (parenthesized_expression "(*pbVar8 & 0xf)" ( (binary_expression "*pbVar8 & 0xf" (pointer_expression "*pbVar8" * identifier) & number_literal) ))) ))))) ;) (expression_statement "puVar7 = puVar7 + 2;" (assignment_expression "puVar7 = puVar7 + 2" identifier = (binary_expression "puVar7 + 2" identifier + number_literal)) ;) (expression_statement "pbVar8 = pbVar9;" (assignment_expression "pbVar8 = pbVar9" identifier = identifier) ;) }) while (parenthesized_expression "(pbVar1 + iVar2 != pbVar9)" ( (binary_expression "pbVar1 + iVar2 != pbVar9" (binary_expression "pbVar1 + iVar2" identifier + identifier) != identifier) )) ;) (expression_statement "puVar3 = puVar3 + iVar2 * 2;" (assignment_expression "puVar3 = puVar3 + iVar2 * 2" identifier = (binary_expression "puVar3 + iVar2 * 2" identifier + (binary_expression "iVar2 * 2" identifier * number_literal))) ;) })) (expression_statement "iVar2 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar2 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*puVar3 = 0;" (assignment_expression "*puVar3 = 0" (pointer_expression "*puVar3" * identifier) = number_literal) ;) (if_statement "if (local_20 != iVar2) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0029eab0();\n      }" if (parenthesized_expression "(local_20 != iVar2)" ( (binary_expression "local_20 != iVar2" identifier != identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_0029eab0();\n      }" { comment (expression_statement "FUN_0029eab0();" (call_expression "FUN_0029eab0()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) })) (expression_statement "uVar4 = AcquireExceptionInfo();" (assignment_expression "uVar4 = AcquireExceptionInfo()" identifier = (call_expression "AcquireExceptionInfo()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar5 = __errno_location();" (assignment_expression "piVar5 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar6 = GetExceptionMessage(*piVar5);" (assignment_expression "uVar6 = GetExceptionMessage(*piVar5)" identifier = (call_expression "GetExceptionMessage(*piVar5)" identifier (argument_list "(*piVar5)" ( (pointer_expression "*piVar5" * identifier) )))) ;) (expression_statement "uVar10 = 0x778;" (assignment_expression "uVar10 = 0x778" identifier = number_literal) ;) }) (else_clause "else {\n    uVar4 = AcquireExceptionInfo();\n    piVar5 = __errno_location();\n    uVar6 = GetExceptionMessage(*piVar5);\n    uVar10 = 0x774;\n  }" else (compound_statement "{\n    uVar4 = AcquireExceptionInfo();\n    piVar5 = __errno_location();\n    uVar6 = GetExceptionMessage(*piVar5);\n    uVar10 = 0x774;\n  }" { (expression_statement "uVar4 = AcquireExceptionInfo();" (assignment_expression "uVar4 = AcquireExceptionInfo()" identifier = (call_expression "AcquireExceptionInfo()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar5 = __errno_location();" (assignment_expression "piVar5 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar6 = GetExceptionMessage(*piVar5);" (assignment_expression "uVar6 = GetExceptionMessage(*piVar5)" identifier = (call_expression "GetExceptionMessage(*piVar5)" identifier (argument_list "(*piVar5)" ( (pointer_expression "*piVar5" * identifier) )))) ;) (expression_statement "uVar10 = 0x774;" (assignment_expression "uVar10 = 0x774" identifier = number_literal) ;) }))) (expression_statement "ThrowMagickException\n            (uVar4,"MagickCore/string.c","StringInfoToHexString",uVar10,700,"UnableToAcquireString",\n             "`%s\'",uVar6);" (call_expression "ThrowMagickException\n            (uVar4,"MagickCore/string.c","StringInfoToHexString",uVar10,700,"UnableToAcquireString",\n             "`%s\'",uVar6)" identifier (argument_list "(uVar4,"MagickCore/string.c","StringInfoToHexString",uVar10,700,"UnableToAcquireString",\n             "`%s\'",uVar6)" ( identifier , (string_literal ""MagickCore/string.c"" " string_content ") , (string_literal ""StringInfoToHexString"" " string_content ") , identifier , number_literal , (string_literal ""UnableToAcquireString"" " string_content ") , (string_literal ""`%s\'"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "DestroyString(uVar6);" (call_expression "DestroyString(uVar6)" identifier (argument_list "(uVar6)" ( identifier ))) ;) (expression_statement "CatchException(uVar4);" (call_expression "CatchException(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "DestroyExceptionInfo(uVar4);" (call_expression "DestroyExceptionInfo(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "MagickCoreTerminus();" (call_expression "MagickCoreTerminus()" identifier (argument_list "()" ( ))) ;) comment (expression_statement "_exit(1);" (call_expression "_exit(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n/* WARNING: Enum "ExceptionType": Some values do not have unique names */\n\nchar * StringInfoToHexString(StringInfo *string_info)\n\n{\n  int iVar1;\n  byte *pbVar2;\n  int iVar3;\n  uchar *puVar4;\n  ExceptionInfo *exception;\n  int *piVar5;\n  char *string;\n  uchar *puVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  int in_GS_OFFSET;\n  size_t sVar9;\n  uchar hex_digits [16];\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  if (string_info->length < 0xfffff000) {\n    puVar4 = (uchar *)AcquireQuantumMemory(string_info->length + 0x1000,2);\n    if (puVar4 != (uchar *)0x0) {\n      pbVar2 = string_info->datum;\n      builtin_memcpy(hex_digits,"0123",4);\n      sVar9 = string_info->length;\n      builtin_memcpy(hex_digits + 4,"456789abcdef",0xc);\n      puVar6 = puVar4;\n      if (0 < (int)sVar9) {\n        pbVar7 = pbVar2;\n        do {\n          pbVar8 = pbVar7 + 1;\n          *puVar6 = hex_digits[*pbVar7 >> 4];\n          puVar6[1] = hex_digits[*pbVar7 & 0xf];\n          puVar6 = puVar6 + 2;\n          pbVar7 = pbVar8;\n        } while (pbVar2 + sVar9 != pbVar8);\n        puVar6 = puVar4 + sVar9 * 2;\n      }\n      iVar3 = *(int *)(in_GS_OFFSET + 0x14);\n      *puVar6 = '\0';\n      if (iVar1 != iVar3) {\n                    /* WARNING: Subroutine does not return */\n        __stack_chk_fail_local();\n      }\n      return (char *)puVar4;\n    }\n    exception = AcquireExceptionInfo();\n    piVar5 = __errno_location();\n    string = GetExceptionMessage(*piVar5);\n    sVar9 = 0x778;\n  }\n  else {\n    exception = AcquireExceptionInfo();\n    piVar5 = __errno_location();\n    string = GetExceptionMessage(*piVar5);\n    sVar9 = 0x774;\n  }\n  ThrowMagickException\n            (exception,"MagickCore/string.c","StringInfoToHexString",sVar9,FatalErrorException,\n             "UnableToAcquireString","`%s\'",string);\n  DestroyString(string);\n  CatchException(exception);\n  DestroyExceptionInfo(exception);\n  MagickCoreTerminus();\n                    /* WARNING: Subroutine does not return */\n  _exit(1);\n}\n\n" comment comment comment (function_definition "char * StringInfoToHexString(StringInfo *string_info)\n\n{\n  int iVar1;\n  byte *pbVar2;\n  int iVar3;\n  uchar *puVar4;\n  ExceptionInfo *exception;\n  int *piVar5;\n  char *string;\n  uchar *puVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  int in_GS_OFFSET;\n  size_t sVar9;\n  uchar hex_digits [16];\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  if (string_info->length < 0xfffff000) {\n    puVar4 = (uchar *)AcquireQuantumMemory(string_info->length + 0x1000,2);\n    if (puVar4 != (uchar *)0x0) {\n      pbVar2 = string_info->datum;\n      builtin_memcpy(hex_digits,"0123",4);\n      sVar9 = string_info->length;\n      builtin_memcpy(hex_digits + 4,"456789abcdef",0xc);\n      puVar6 = puVar4;\n      if (0 < (int)sVar9) {\n        pbVar7 = pbVar2;\n        do {\n          pbVar8 = pbVar7 + 1;\n          *puVar6 = hex_digits[*pbVar7 >> 4];\n          puVar6[1] = hex_digits[*pbVar7 & 0xf];\n          puVar6 = puVar6 + 2;\n          pbVar7 = pbVar8;\n        } while (pbVar2 + sVar9 != pbVar8);\n        puVar6 = puVar4 + sVar9 * 2;\n      }\n      iVar3 = *(int *)(in_GS_OFFSET + 0x14);\n      *puVar6 = '\0';\n      if (iVar1 != iVar3) {\n                    /* WARNING: Subroutine does not return */\n        __stack_chk_fail_local();\n      }\n      return (char *)puVar4;\n    }\n    exception = AcquireExceptionInfo();\n    piVar5 = __errno_location();\n    string = GetExceptionMessage(*piVar5);\n    sVar9 = 0x778;\n  }\n  else {\n    exception = AcquireExceptionInfo();\n    piVar5 = __errno_location();\n    string = GetExceptionMessage(*piVar5);\n    sVar9 = 0x774;\n  }\n  ThrowMagickException\n            (exception,"MagickCore/string.c","StringInfoToHexString",sVar9,FatalErrorException,\n             "UnableToAcquireString","`%s\'",string);\n  DestroyString(string);\n  CatchException(exception);\n  DestroyExceptionInfo(exception);\n  MagickCoreTerminus();\n                    /* WARNING: Subroutine does not return */\n  _exit(1);\n}" primitive_type (pointer_declarator "* StringInfoToHexString(StringInfo *string_info)" * (function_declarator "StringInfoToHexString(StringInfo *string_info)" identifier (parameter_list "(StringInfo *string_info)" ( (parameter_declaration "StringInfo *string_info" type_identifier (pointer_declarator "*string_info" * identifier)) )))) (compound_statement "{\n  int iVar1;\n  byte *pbVar2;\n  int iVar3;\n  uchar *puVar4;\n  ExceptionInfo *exception;\n  int *piVar5;\n  char *string;\n  uchar *puVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  int in_GS_OFFSET;\n  size_t sVar9;\n  uchar hex_digits [16];\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  if (string_info->length < 0xfffff000) {\n    puVar4 = (uchar *)AcquireQuantumMemory(string_info->length + 0x1000,2);\n    if (puVar4 != (uchar *)0x0) {\n      pbVar2 = string_info->datum;\n      builtin_memcpy(hex_digits,"0123",4);\n      sVar9 = string_info->length;\n      builtin_memcpy(hex_digits + 4,"456789abcdef",0xc);\n      puVar6 = puVar4;\n      if (0 < (int)sVar9) {\n        pbVar7 = pbVar2;\n        do {\n          pbVar8 = pbVar7 + 1;\n          *puVar6 = hex_digits[*pbVar7 >> 4];\n          puVar6[1] = hex_digits[*pbVar7 & 0xf];\n          puVar6 = puVar6 + 2;\n          pbVar7 = pbVar8;\n        } while (pbVar2 + sVar9 != pbVar8);\n        puVar6 = puVar4 + sVar9 * 2;\n      }\n      iVar3 = *(int *)(in_GS_OFFSET + 0x14);\n      *puVar6 = '\0';\n      if (iVar1 != iVar3) {\n                    /* WARNING: Subroutine does not return */\n        __stack_chk_fail_local();\n      }\n      return (char *)puVar4;\n    }\n    exception = AcquireExceptionInfo();\n    piVar5 = __errno_location();\n    string = GetExceptionMessage(*piVar5);\n    sVar9 = 0x778;\n  }\n  else {\n    exception = AcquireExceptionInfo();\n    piVar5 = __errno_location();\n    string = GetExceptionMessage(*piVar5);\n    sVar9 = 0x774;\n  }\n  ThrowMagickException\n            (exception,"MagickCore/string.c","StringInfoToHexString",sVar9,FatalErrorException,\n             "UnableToAcquireString","`%s\'",string);\n  DestroyString(string);\n  CatchException(exception);\n  DestroyExceptionInfo(exception);\n  MagickCoreTerminus();\n                    /* WARNING: Subroutine does not return */\n  _exit(1);\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "byte *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uchar *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "ExceptionInfo *exception;" type_identifier (pointer_declarator "*exception" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "char *string;" primitive_type (pointer_declarator "*string" * identifier) ;) (declaration "uchar *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "size_t sVar9;" primitive_type identifier ;) (declaration "uchar hex_digits [16];" type_identifier (array_declarator "hex_digits [16]" identifier [ number_literal ]) ;) (expression_statement "iVar1 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar1 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (string_info->length < 0xfffff000) {\n    puVar4 = (uchar *)AcquireQuantumMemory(string_info->length + 0x1000,2);\n    if (puVar4 != (uchar *)0x0) {\n      pbVar2 = string_info->datum;\n      builtin_memcpy(hex_digits,"0123",4);\n      sVar9 = string_info->length;\n      builtin_memcpy(hex_digits + 4,"456789abcdef",0xc);\n      puVar6 = puVar4;\n      if (0 < (int)sVar9) {\n        pbVar7 = pbVar2;\n        do {\n          pbVar8 = pbVar7 + 1;\n          *puVar6 = hex_digits[*pbVar7 >> 4];\n          puVar6[1] = hex_digits[*pbVar7 & 0xf];\n          puVar6 = puVar6 + 2;\n          pbVar7 = pbVar8;\n        } while (pbVar2 + sVar9 != pbVar8);\n        puVar6 = puVar4 + sVar9 * 2;\n      }\n      iVar3 = *(int *)(in_GS_OFFSET + 0x14);\n      *puVar6 = '\0';\n      if (iVar1 != iVar3) {\n                    /* WARNING: Subroutine does not return */\n        __stack_chk_fail_local();\n      }\n      return (char *)puVar4;\n    }\n    exception = AcquireExceptionInfo();\n    piVar5 = __errno_location();\n    string = GetExceptionMessage(*piVar5);\n    sVar9 = 0x778;\n  }\n  else {\n    exception = AcquireExceptionInfo();\n    piVar5 = __errno_location();\n    string = GetExceptionMessage(*piVar5);\n    sVar9 = 0x774;\n  }" if (parenthesized_expression "(string_info->length < 0xfffff000)" ( (binary_expression "string_info->length < 0xfffff000" (field_expression "string_info->length" identifier -> field_identifier) < number_literal) )) (compound_statement "{\n    puVar4 = (uchar *)AcquireQuantumMemory(string_info->length + 0x1000,2);\n    if (puVar4 != (uchar *)0x0) {\n      pbVar2 = string_info->datum;\n      builtin_memcpy(hex_digits,"0123",4);\n      sVar9 = string_info->length;\n      builtin_memcpy(hex_digits + 4,"456789abcdef",0xc);\n      puVar6 = puVar4;\n      if (0 < (int)sVar9) {\n        pbVar7 = pbVar2;\n        do {\n          pbVar8 = pbVar7 + 1;\n          *puVar6 = hex_digits[*pbVar7 >> 4];\n          puVar6[1] = hex_digits[*pbVar7 & 0xf];\n          puVar6 = puVar6 + 2;\n          pbVar7 = pbVar8;\n        } while (pbVar2 + sVar9 != pbVar8);\n        puVar6 = puVar4 + sVar9 * 2;\n      }\n      iVar3 = *(int *)(in_GS_OFFSET + 0x14);\n      *puVar6 = '\0';\n      if (iVar1 != iVar3) {\n                    /* WARNING: Subroutine does not return */\n        __stack_chk_fail_local();\n      }\n      return (char *)puVar4;\n    }\n    exception = AcquireExceptionInfo();\n    piVar5 = __errno_location();\n    string = GetExceptionMessage(*piVar5);\n    sVar9 = 0x778;\n  }" { (expression_statement "puVar4 = (uchar *)AcquireQuantumMemory(string_info->length + 0x1000,2);" (assignment_expression "puVar4 = (uchar *)AcquireQuantumMemory(string_info->length + 0x1000,2)" identifier = (cast_expression "(uchar *)AcquireQuantumMemory(string_info->length + 0x1000,2)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireQuantumMemory(string_info->length + 0x1000,2)" identifier (argument_list "(string_info->length + 0x1000,2)" ( (binary_expression "string_info->length + 0x1000" (field_expression "string_info->length" identifier -> field_identifier) + number_literal) , number_literal ))))) ;) (if_statement "if (puVar4 != (uchar *)0x0) {\n      pbVar2 = string_info->datum;\n      builtin_memcpy(hex_digits,"0123",4);\n      sVar9 = string_info->length;\n      builtin_memcpy(hex_digits + 4,"456789abcdef",0xc);\n      puVar6 = puVar4;\n      if (0 < (int)sVar9) {\n        pbVar7 = pbVar2;\n        do {\n          pbVar8 = pbVar7 + 1;\n          *puVar6 = hex_digits[*pbVar7 >> 4];\n          puVar6[1] = hex_digits[*pbVar7 & 0xf];\n          puVar6 = puVar6 + 2;\n          pbVar7 = pbVar8;\n        } while (pbVar2 + sVar9 != pbVar8);\n        puVar6 = puVar4 + sVar9 * 2;\n      }\n      iVar3 = *(int *)(in_GS_OFFSET + 0x14);\n      *puVar6 = '\0';\n      if (iVar1 != iVar3) {\n                    /* WARNING: Subroutine does not return */\n        __stack_chk_fail_local();\n      }\n      return (char *)puVar4;\n    }" if (parenthesized_expression "(puVar4 != (uchar *)0x0)" ( (binary_expression "puVar4 != (uchar *)0x0" identifier != (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pbVar2 = string_info->datum;\n      builtin_memcpy(hex_digits,"0123",4);\n      sVar9 = string_info->length;\n      builtin_memcpy(hex_digits + 4,"456789abcdef",0xc);\n      puVar6 = puVar4;\n      if (0 < (int)sVar9) {\n        pbVar7 = pbVar2;\n        do {\n          pbVar8 = pbVar7 + 1;\n          *puVar6 = hex_digits[*pbVar7 >> 4];\n          puVar6[1] = hex_digits[*pbVar7 & 0xf];\n          puVar6 = puVar6 + 2;\n          pbVar7 = pbVar8;\n        } while (pbVar2 + sVar9 != pbVar8);\n        puVar6 = puVar4 + sVar9 * 2;\n      }\n      iVar3 = *(int *)(in_GS_OFFSET + 0x14);\n      *puVar6 = '\0';\n      if (iVar1 != iVar3) {\n                    /* WARNING: Subroutine does not return */\n        __stack_chk_fail_local();\n      }\n      return (char *)puVar4;\n    }" { (expression_statement "pbVar2 = string_info->datum;" (assignment_expression "pbVar2 = string_info->datum" identifier = (field_expression "string_info->datum" identifier -> field_identifier)) ;) (expression_statement "builtin_memcpy(hex_digits,"0123",4);" (call_expression "builtin_memcpy(hex_digits,"0123",4)" identifier (argument_list "(hex_digits,"0123",4)" ( identifier , (string_literal ""0123"" " string_content ") , number_literal ))) ;) (expression_statement "sVar9 = string_info->length;" (assignment_expression "sVar9 = string_info->length" identifier = (field_expression "string_info->length" identifier -> field_identifier)) ;) (expression_statement "builtin_memcpy(hex_digits + 4,"456789abcdef",0xc);" (call_expression "builtin_memcpy(hex_digits + 4,"456789abcdef",0xc)" identifier (argument_list "(hex_digits + 4,"456789abcdef",0xc)" ( (binary_expression "hex_digits + 4" identifier + number_literal) , (string_literal ""456789abcdef"" " string_content ") , number_literal ))) ;) (expression_statement "puVar6 = puVar4;" (assignment_expression "puVar6 = puVar4" identifier = identifier) ;) (if_statement "if (0 < (int)sVar9) {\n        pbVar7 = pbVar2;\n        do {\n          pbVar8 = pbVar7 + 1;\n          *puVar6 = hex_digits[*pbVar7 >> 4];\n          puVar6[1] = hex_digits[*pbVar7 & 0xf];\n          puVar6 = puVar6 + 2;\n          pbVar7 = pbVar8;\n        } while (pbVar2 + sVar9 != pbVar8);\n        puVar6 = puVar4 + sVar9 * 2;\n      }" if (parenthesized_expression "(0 < (int)sVar9)" ( (binary_expression "0 < (int)sVar9" number_literal < (cast_expression "(int)sVar9" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        pbVar7 = pbVar2;\n        do {\n          pbVar8 = pbVar7 + 1;\n          *puVar6 = hex_digits[*pbVar7 >> 4];\n          puVar6[1] = hex_digits[*pbVar7 & 0xf];\n          puVar6 = puVar6 + 2;\n          pbVar7 = pbVar8;\n        } while (pbVar2 + sVar9 != pbVar8);\n        puVar6 = puVar4 + sVar9 * 2;\n      }" { (expression_statement "pbVar7 = pbVar2;" (assignment_expression "pbVar7 = pbVar2" identifier = identifier) ;) (do_statement "do {\n          pbVar8 = pbVar7 + 1;\n          *puVar6 = hex_digits[*pbVar7 >> 4];\n          puVar6[1] = hex_digits[*pbVar7 & 0xf];\n          puVar6 = puVar6 + 2;\n          pbVar7 = pbVar8;\n        } while (pbVar2 + sVar9 != pbVar8);" do (compound_statement "{\n          pbVar8 = pbVar7 + 1;\n          *puVar6 = hex_digits[*pbVar7 >> 4];\n          puVar6[1] = hex_digits[*pbVar7 & 0xf];\n          puVar6 = puVar6 + 2;\n          pbVar7 = pbVar8;\n        }" { (expression_statement "pbVar8 = pbVar7 + 1;" (assignment_expression "pbVar8 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) (expression_statement "*puVar6 = hex_digits[*pbVar7 >> 4];" (assignment_expression "*puVar6 = hex_digits[*pbVar7 >> 4]" (pointer_expression "*puVar6" * identifier) = (subscript_expression "hex_digits[*pbVar7 >> 4]" identifier [ (binary_expression "*pbVar7 >> 4" (pointer_expression "*pbVar7" * identifier) >> number_literal) ])) ;) (expression_statement "puVar6[1] = hex_digits[*pbVar7 & 0xf];" (assignment_expression "puVar6[1] = hex_digits[*pbVar7 & 0xf]" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = (subscript_expression "hex_digits[*pbVar7 & 0xf]" identifier [ (binary_expression "*pbVar7 & 0xf" (pointer_expression "*pbVar7" * identifier) & number_literal) ])) ;) (expression_statement "puVar6 = puVar6 + 2;" (assignment_expression "puVar6 = puVar6 + 2" identifier = (binary_expression "puVar6 + 2" identifier + number_literal)) ;) (expression_statement "pbVar7 = pbVar8;" (assignment_expression "pbVar7 = pbVar8" identifier = identifier) ;) }) while (parenthesized_expression "(pbVar2 + sVar9 != pbVar8)" ( (binary_expression "pbVar2 + sVar9 != pbVar8" (binary_expression "pbVar2 + sVar9" identifier + identifier) != identifier) )) ;) (expression_statement "puVar6 = puVar4 + sVar9 * 2;" (assignment_expression "puVar6 = puVar4 + sVar9 * 2" identifier = (binary_expression "puVar4 + sVar9 * 2" identifier + (binary_expression "sVar9 * 2" identifier * number_literal))) ;) })) (expression_statement "iVar3 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar3 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*puVar6 = '\0';" (assignment_expression "*puVar6 = '\0'" (pointer_expression "*puVar6" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (iVar1 != iVar3) {\n                    /* WARNING: Subroutine does not return */\n        __stack_chk_fail_local();\n      }" if (parenthesized_expression "(iVar1 != iVar3)" ( (binary_expression "iVar1 != iVar3" identifier != identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        __stack_chk_fail_local();\n      }" { comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return (char *)puVar4;" return (cast_expression "(char *)puVar4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ;) })) (expression_statement "exception = AcquireExceptionInfo();" (assignment_expression "exception = AcquireExceptionInfo()" identifier = (call_expression "AcquireExceptionInfo()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar5 = __errno_location();" (assignment_expression "piVar5 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "string = GetExceptionMessage(*piVar5);" (assignment_expression "string = GetExceptionMessage(*piVar5)" identifier = (call_expression "GetExceptionMessage(*piVar5)" identifier (argument_list "(*piVar5)" ( (pointer_expression "*piVar5" * identifier) )))) ;) (expression_statement "sVar9 = 0x778;" (assignment_expression "sVar9 = 0x778" identifier = number_literal) ;) }) (else_clause "else {\n    exception = AcquireExceptionInfo();\n    piVar5 = __errno_location();\n    string = GetExceptionMessage(*piVar5);\n    sVar9 = 0x774;\n  }" else (compound_statement "{\n    exception = AcquireExceptionInfo();\n    piVar5 = __errno_location();\n    string = GetExceptionMessage(*piVar5);\n    sVar9 = 0x774;\n  }" { (expression_statement "exception = AcquireExceptionInfo();" (assignment_expression "exception = AcquireExceptionInfo()" identifier = (call_expression "AcquireExceptionInfo()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar5 = __errno_location();" (assignment_expression "piVar5 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "string = GetExceptionMessage(*piVar5);" (assignment_expression "string = GetExceptionMessage(*piVar5)" identifier = (call_expression "GetExceptionMessage(*piVar5)" identifier (argument_list "(*piVar5)" ( (pointer_expression "*piVar5" * identifier) )))) ;) (expression_statement "sVar9 = 0x774;" (assignment_expression "sVar9 = 0x774" identifier = number_literal) ;) }))) (expression_statement "ThrowMagickException\n            (exception,"MagickCore/string.c","StringInfoToHexString",sVar9,FatalErrorException,\n             "UnableToAcquireString","`%s\'",string);" (call_expression "ThrowMagickException\n            (exception,"MagickCore/string.c","StringInfoToHexString",sVar9,FatalErrorException,\n             "UnableToAcquireString","`%s\'",string)" identifier (argument_list "(exception,"MagickCore/string.c","StringInfoToHexString",sVar9,FatalErrorException,\n             "UnableToAcquireString","`%s\'",string)" ( identifier , (string_literal ""MagickCore/string.c"" " string_content ") , (string_literal ""StringInfoToHexString"" " string_content ") , identifier , identifier , (string_literal ""UnableToAcquireString"" " string_content ") , (string_literal ""`%s\'"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "DestroyString(string);" (call_expression "DestroyString(string)" identifier (argument_list "(string)" ( identifier ))) ;) (expression_statement "CatchException(exception);" (call_expression "CatchException(exception)" identifier (argument_list "(exception)" ( identifier ))) ;) (expression_statement "DestroyExceptionInfo(exception);" (call_expression "DestroyExceptionInfo(exception)" identifier (argument_list "(exception)" ( identifier ))) ;) (expression_statement "MagickCoreTerminus();" (call_expression "MagickCoreTerminus()" identifier (argument_list "()" ( ))) ;) comment (expression_statement "_exit(1);" (call_expression "_exit(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })))
(translation_unit "void StringInfoToHexString(int param_1)\n\n{\n  byte *pbVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  undefined4 uVar4;\n  int *piVar5;\n  undefined4 uVar6;\n  undefined1 *puVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  int in_GS_OFFSET;\n  undefined4 uVar10;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x19e6d9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (*(uint *)(param_1 + 8) < 0xfffff000) {\n    puVar3 = (undefined1 *)AcquireQuantumMemory(*(uint *)(param_1 + 8) + 0x1000,2);\n    if (puVar3 != (undefined1 *)0x0) {\n      pbVar1 = *(byte **)(param_1 + 4);\n      local_30 = 0x33323130;\n      iVar2 = *(int *)(param_1 + 8);\n      local_2c = 0x37363534;\n      local_28 = 0x62613938;\n      local_24 = 0x66656463;\n      if (0 < iVar2) {\n        puVar7 = puVar3;\n        pbVar8 = pbVar1;\n        do {\n          pbVar9 = pbVar8 + 1;\n          *puVar7 = *(undefined1 *)((int)&local_30 + (uint)(*pbVar8 >> 4));\n          puVar7[1] = *(undefined1 *)((int)&local_30 + (*pbVar8 & 0xf));\n          puVar7 = puVar7 + 2;\n          pbVar8 = pbVar9;\n        } while (pbVar1 + iVar2 != pbVar9);\n        puVar3 = puVar3 + iVar2 * 2;\n      }\n      iVar2 = *(int *)(in_GS_OFFSET + 0x14);\n      *puVar3 = 0;\n      if (local_20 != iVar2) {\n                    \n        FUN_0029eab0();\n      }\n      return;\n    }\n    uVar4 = AcquireExceptionInfo();\n    piVar5 = __errno_location();\n    uVar6 = GetExceptionMessage(*piVar5);\n    uVar10 = 0x778;\n  }\n  else {\n    uVar4 = AcquireExceptionInfo();\n    piVar5 = __errno_location();\n    uVar6 = GetExceptionMessage(*piVar5);\n    uVar10 = 0x774;\n  }\n  ThrowMagickException\n            (uVar4,"MagickCore/string.c","StringInfoToHexString",uVar10,700,"UnableToAcquireString",\n             "`%s\'",uVar6);\n  DestroyString(uVar6);\n  CatchException(uVar4);\n  DestroyExceptionInfo(uVar4);\n  MagickCoreTerminus();\n                    \n  _exit(1);\n}\n\n" (function_definition "void StringInfoToHexString(int param_1)\n\n{\n  byte *pbVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  undefined4 uVar4;\n  int *piVar5;\n  undefined4 uVar6;\n  undefined1 *puVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  int in_GS_OFFSET;\n  undefined4 uVar10;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x19e6d9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (*(uint *)(param_1 + 8) < 0xfffff000) {\n    puVar3 = (undefined1 *)AcquireQuantumMemory(*(uint *)(param_1 + 8) + 0x1000,2);\n    if (puVar3 != (undefined1 *)0x0) {\n      pbVar1 = *(byte **)(param_1 + 4);\n      local_30 = 0x33323130;\n      iVar2 = *(int *)(param_1 + 8);\n      local_2c = 0x37363534;\n      local_28 = 0x62613938;\n      local_24 = 0x66656463;\n      if (0 < iVar2) {\n        puVar7 = puVar3;\n        pbVar8 = pbVar1;\n        do {\n          pbVar9 = pbVar8 + 1;\n          *puVar7 = *(undefined1 *)((int)&local_30 + (uint)(*pbVar8 >> 4));\n          puVar7[1] = *(undefined1 *)((int)&local_30 + (*pbVar8 & 0xf));\n          puVar7 = puVar7 + 2;\n          pbVar8 = pbVar9;\n        } while (pbVar1 + iVar2 != pbVar9);\n        puVar3 = puVar3 + iVar2 * 2;\n      }\n      iVar2 = *(int *)(in_GS_OFFSET + 0x14);\n      *puVar3 = 0;\n      if (local_20 != iVar2) {\n                    \n        FUN_0029eab0();\n      }\n      return;\n    }\n    uVar4 = AcquireExceptionInfo();\n    piVar5 = __errno_location();\n    uVar6 = GetExceptionMessage(*piVar5);\n    uVar10 = 0x778;\n  }\n  else {\n    uVar4 = AcquireExceptionInfo();\n    piVar5 = __errno_location();\n    uVar6 = GetExceptionMessage(*piVar5);\n    uVar10 = 0x774;\n  }\n  ThrowMagickException\n            (uVar4,"MagickCore/string.c","StringInfoToHexString",uVar10,700,"UnableToAcquireString",\n             "`%s\'",uVar6);\n  DestroyString(uVar6);\n  CatchException(uVar4);\n  DestroyExceptionInfo(uVar4);\n  MagickCoreTerminus();\n                    \n  _exit(1);\n}" primitive_type (function_declarator "StringInfoToHexString(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  byte *pbVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  undefined4 uVar4;\n  int *piVar5;\n  undefined4 uVar6;\n  undefined1 *puVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  int in_GS_OFFSET;\n  undefined4 uVar10;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x19e6d9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (*(uint *)(param_1 + 8) < 0xfffff000) {\n    puVar3 = (undefined1 *)AcquireQuantumMemory(*(uint *)(param_1 + 8) + 0x1000,2);\n    if (puVar3 != (undefined1 *)0x0) {\n      pbVar1 = *(byte **)(param_1 + 4);\n      local_30 = 0x33323130;\n      iVar2 = *(int *)(param_1 + 8);\n      local_2c = 0x37363534;\n      local_28 = 0x62613938;\n      local_24 = 0x66656463;\n      if (0 < iVar2) {\n        puVar7 = puVar3;\n        pbVar8 = pbVar1;\n        do {\n          pbVar9 = pbVar8 + 1;\n          *puVar7 = *(undefined1 *)((int)&local_30 + (uint)(*pbVar8 >> 4));\n          puVar7[1] = *(undefined1 *)((int)&local_30 + (*pbVar8 & 0xf));\n          puVar7 = puVar7 + 2;\n          pbVar8 = pbVar9;\n        } while (pbVar1 + iVar2 != pbVar9);\n        puVar3 = puVar3 + iVar2 * 2;\n      }\n      iVar2 = *(int *)(in_GS_OFFSET + 0x14);\n      *puVar3 = 0;\n      if (local_20 != iVar2) {\n                    \n        FUN_0029eab0();\n      }\n      return;\n    }\n    uVar4 = AcquireExceptionInfo();\n    piVar5 = __errno_location();\n    uVar6 = GetExceptionMessage(*piVar5);\n    uVar10 = 0x778;\n  }\n  else {\n    uVar4 = AcquireExceptionInfo();\n    piVar5 = __errno_location();\n    uVar6 = GetExceptionMessage(*piVar5);\n    uVar10 = 0x774;\n  }\n  ThrowMagickException\n            (uVar4,"MagickCore/string.c","StringInfoToHexString",uVar10,700,"UnableToAcquireString",\n             "`%s\'",uVar6);\n  DestroyString(uVar6);\n  CatchException(uVar4);\n  DestroyExceptionInfo(uVar4);\n  MagickCoreTerminus();\n                    \n  _exit(1);\n}" { (declaration "byte *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined1 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined1 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x19e6d9;" (assignment_expression "uStack_14 = 0x19e6d9" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(param_1 + 8) < 0xfffff000) {\n    puVar3 = (undefined1 *)AcquireQuantumMemory(*(uint *)(param_1 + 8) + 0x1000,2);\n    if (puVar3 != (undefined1 *)0x0) {\n      pbVar1 = *(byte **)(param_1 + 4);\n      local_30 = 0x33323130;\n      iVar2 = *(int *)(param_1 + 8);\n      local_2c = 0x37363534;\n      local_28 = 0x62613938;\n      local_24 = 0x66656463;\n      if (0 < iVar2) {\n        puVar7 = puVar3;\n        pbVar8 = pbVar1;\n        do {\n          pbVar9 = pbVar8 + 1;\n          *puVar7 = *(undefined1 *)((int)&local_30 + (uint)(*pbVar8 >> 4));\n          puVar7[1] = *(undefined1 *)((int)&local_30 + (*pbVar8 & 0xf));\n          puVar7 = puVar7 + 2;\n          pbVar8 = pbVar9;\n        } while (pbVar1 + iVar2 != pbVar9);\n        puVar3 = puVar3 + iVar2 * 2;\n      }\n      iVar2 = *(int *)(in_GS_OFFSET + 0x14);\n      *puVar3 = 0;\n      if (local_20 != iVar2) {\n                    \n        FUN_0029eab0();\n      }\n      return;\n    }\n    uVar4 = AcquireExceptionInfo();\n    piVar5 = __errno_location();\n    uVar6 = GetExceptionMessage(*piVar5);\n    uVar10 = 0x778;\n  }\n  else {\n    uVar4 = AcquireExceptionInfo();\n    piVar5 = __errno_location();\n    uVar6 = GetExceptionMessage(*piVar5);\n    uVar10 = 0x774;\n  }" if (parenthesized_expression "(*(uint *)(param_1 + 8) < 0xfffff000)" ( (binary_expression "*(uint *)(param_1 + 8) < 0xfffff000" (pointer_expression "*(uint *)(param_1 + 8)" * (cast_expression "(uint *)(param_1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n    puVar3 = (undefined1 *)AcquireQuantumMemory(*(uint *)(param_1 + 8) + 0x1000,2);\n    if (puVar3 != (undefined1 *)0x0) {\n      pbVar1 = *(byte **)(param_1 + 4);\n      local_30 = 0x33323130;\n      iVar2 = *(int *)(param_1 + 8);\n      local_2c = 0x37363534;\n      local_28 = 0x62613938;\n      local_24 = 0x66656463;\n      if (0 < iVar2) {\n        puVar7 = puVar3;\n        pbVar8 = pbVar1;\n        do {\n          pbVar9 = pbVar8 + 1;\n          *puVar7 = *(undefined1 *)((int)&local_30 + (uint)(*pbVar8 >> 4));\n          puVar7[1] = *(undefined1 *)((int)&local_30 + (*pbVar8 & 0xf));\n          puVar7 = puVar7 + 2;\n          pbVar8 = pbVar9;\n        } while (pbVar1 + iVar2 != pbVar9);\n        puVar3 = puVar3 + iVar2 * 2;\n      }\n      iVar2 = *(int *)(in_GS_OFFSET + 0x14);\n      *puVar3 = 0;\n      if (local_20 != iVar2) {\n                    \n        FUN_0029eab0();\n      }\n      return;\n    }\n    uVar4 = AcquireExceptionInfo();\n    piVar5 = __errno_location();\n    uVar6 = GetExceptionMessage(*piVar5);\n    uVar10 = 0x778;\n  }" { (expression_statement "puVar3 = (undefined1 *)AcquireQuantumMemory(*(uint *)(param_1 + 8) + 0x1000,2);" (assignment_expression "puVar3 = (undefined1 *)AcquireQuantumMemory(*(uint *)(param_1 + 8) + 0x1000,2)" identifier = (cast_expression "(undefined1 *)AcquireQuantumMemory(*(uint *)(param_1 + 8) + 0x1000,2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "AcquireQuantumMemory(*(uint *)(param_1 + 8) + 0x1000,2)" identifier (argument_list "(*(uint *)(param_1 + 8) + 0x1000,2)" ( (binary_expression "*(uint *)(param_1 + 8) + 0x1000" (pointer_expression "*(uint *)(param_1 + 8)" * (cast_expression "(uint *)(param_1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) , number_literal ))))) ;) (if_statement "if (puVar3 != (undefined1 *)0x0) {\n      pbVar1 = *(byte **)(param_1 + 4);\n      local_30 = 0x33323130;\n      iVar2 = *(int *)(param_1 + 8);\n      local_2c = 0x37363534;\n      local_28 = 0x62613938;\n      local_24 = 0x66656463;\n      if (0 < iVar2) {\n        puVar7 = puVar3;\n        pbVar8 = pbVar1;\n        do {\n          pbVar9 = pbVar8 + 1;\n          *puVar7 = *(undefined1 *)((int)&local_30 + (uint)(*pbVar8 >> 4));\n          puVar7[1] = *(undefined1 *)((int)&local_30 + (*pbVar8 & 0xf));\n          puVar7 = puVar7 + 2;\n          pbVar8 = pbVar9;\n        } while (pbVar1 + iVar2 != pbVar9);\n        puVar3 = puVar3 + iVar2 * 2;\n      }\n      iVar2 = *(int *)(in_GS_OFFSET + 0x14);\n      *puVar3 = 0;\n      if (local_20 != iVar2) {\n                    \n        FUN_0029eab0();\n      }\n      return;\n    }" if (parenthesized_expression "(puVar3 != (undefined1 *)0x0)" ( (binary_expression "puVar3 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pbVar1 = *(byte **)(param_1 + 4);\n      local_30 = 0x33323130;\n      iVar2 = *(int *)(param_1 + 8);\n      local_2c = 0x37363534;\n      local_28 = 0x62613938;\n      local_24 = 0x66656463;\n      if (0 < iVar2) {\n        puVar7 = puVar3;\n        pbVar8 = pbVar1;\n        do {\n          pbVar9 = pbVar8 + 1;\n          *puVar7 = *(undefined1 *)((int)&local_30 + (uint)(*pbVar8 >> 4));\n          puVar7[1] = *(undefined1 *)((int)&local_30 + (*pbVar8 & 0xf));\n          puVar7 = puVar7 + 2;\n          pbVar8 = pbVar9;\n        } while (pbVar1 + iVar2 != pbVar9);\n        puVar3 = puVar3 + iVar2 * 2;\n      }\n      iVar2 = *(int *)(in_GS_OFFSET + 0x14);\n      *puVar3 = 0;\n      if (local_20 != iVar2) {\n                    \n        FUN_0029eab0();\n      }\n      return;\n    }" { (expression_statement "pbVar1 = *(byte **)(param_1 + 4);" (assignment_expression "pbVar1 = *(byte **)(param_1 + 4)" identifier = (pointer_expression "*(byte **)(param_1 + 4)" * (cast_expression "(byte **)(param_1 + 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_30 = 0x33323130;" (assignment_expression "local_30 = 0x33323130" identifier = number_literal) ;) (expression_statement "iVar2 = *(int *)(param_1 + 8);" (assignment_expression "iVar2 = *(int *)(param_1 + 8)" identifier = (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "local_2c = 0x37363534;" (assignment_expression "local_2c = 0x37363534" identifier = number_literal) ;) (expression_statement "local_28 = 0x62613938;" (assignment_expression "local_28 = 0x62613938" identifier = number_literal) ;) (expression_statement "local_24 = 0x66656463;" (assignment_expression "local_24 = 0x66656463" identifier = number_literal) ;) (if_statement "if (0 < iVar2) {\n        puVar7 = puVar3;\n        pbVar8 = pbVar1;\n        do {\n          pbVar9 = pbVar8 + 1;\n          *puVar7 = *(undefined1 *)((int)&local_30 + (uint)(*pbVar8 >> 4));\n          puVar7[1] = *(undefined1 *)((int)&local_30 + (*pbVar8 & 0xf));\n          puVar7 = puVar7 + 2;\n          pbVar8 = pbVar9;\n        } while (pbVar1 + iVar2 != pbVar9);\n        puVar3 = puVar3 + iVar2 * 2;\n      }" if (parenthesized_expression "(0 < iVar2)" ( (binary_expression "0 < iVar2" number_literal < identifier) )) (compound_statement "{\n        puVar7 = puVar3;\n        pbVar8 = pbVar1;\n        do {\n          pbVar9 = pbVar8 + 1;\n          *puVar7 = *(undefined1 *)((int)&local_30 + (uint)(*pbVar8 >> 4));\n          puVar7[1] = *(undefined1 *)((int)&local_30 + (*pbVar8 & 0xf));\n          puVar7 = puVar7 + 2;\n          pbVar8 = pbVar9;\n        } while (pbVar1 + iVar2 != pbVar9);\n        puVar3 = puVar3 + iVar2 * 2;\n      }" { (expression_statement "puVar7 = puVar3;" (assignment_expression "puVar7 = puVar3" identifier = identifier) ;) (expression_statement "pbVar8 = pbVar1;" (assignment_expression "pbVar8 = pbVar1" identifier = identifier) ;) (do_statement "do {\n          pbVar9 = pbVar8 + 1;\n          *puVar7 = *(undefined1 *)((int)&local_30 + (uint)(*pbVar8 >> 4));\n          puVar7[1] = *(undefined1 *)((int)&local_30 + (*pbVar8 & 0xf));\n          puVar7 = puVar7 + 2;\n          pbVar8 = pbVar9;\n        } while (pbVar1 + iVar2 != pbVar9);" do (compound_statement "{\n          pbVar9 = pbVar8 + 1;\n          *puVar7 = *(undefined1 *)((int)&local_30 + (uint)(*pbVar8 >> 4));\n          puVar7[1] = *(undefined1 *)((int)&local_30 + (*pbVar8 & 0xf));\n          puVar7 = puVar7 + 2;\n          pbVar8 = pbVar9;\n        }" { (expression_statement "pbVar9 = pbVar8 + 1;" (assignment_expression "pbVar9 = pbVar8 + 1" identifier = (binary_expression "pbVar8 + 1" identifier + number_literal)) ;) (expression_statement "*puVar7 = *(undefined1 *)((int)&local_30 + (uint)(*pbVar8 >> 4));" (assignment_expression "*puVar7 = *(undefined1 *)((int)&local_30 + (uint)(*pbVar8 >> 4))" (pointer_expression "*puVar7" * identifier) = (pointer_expression "*(undefined1 *)((int)&local_30 + (uint)(*pbVar8 >> 4))" * (cast_expression "(undefined1 *)((int)&local_30 + (uint)(*pbVar8 >> 4))" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_30 + (uint)(*pbVar8 >> 4))" ( (binary_expression "(int)&local_30 + (uint)(*pbVar8 >> 4)" (cast_expression "(int)&local_30" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_30" & identifier)) + (call_expression "(uint)(*pbVar8 >> 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*pbVar8 >> 4)" ( (binary_expression "*pbVar8 >> 4" (pointer_expression "*pbVar8" * identifier) >> number_literal) )))) ))))) ;) (expression_statement "puVar7[1] = *(undefined1 *)((int)&local_30 + (*pbVar8 & 0xf));" (assignment_expression "puVar7[1] = *(undefined1 *)((int)&local_30 + (*pbVar8 & 0xf))" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = (pointer_expression "*(undefined1 *)((int)&local_30 + (*pbVar8 & 0xf))" * (cast_expression "(undefined1 *)((int)&local_30 + (*pbVar8 & 0xf))" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_30 + (*pbVar8 & 0xf))" ( (binary_expression "(int)&local_30 + (*pbVar8 & 0xf)" (cast_expression "(int)&local_30" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_30" & identifier)) + (parenthesized_expression "(*pbVar8 & 0xf)" ( (binary_expression "*pbVar8 & 0xf" (pointer_expression "*pbVar8" * identifier) & number_literal) ))) ))))) ;) (expression_statement "puVar7 = puVar7 + 2;" (assignment_expression "puVar7 = puVar7 + 2" identifier = (binary_expression "puVar7 + 2" identifier + number_literal)) ;) (expression_statement "pbVar8 = pbVar9;" (assignment_expression "pbVar8 = pbVar9" identifier = identifier) ;) }) while (parenthesized_expression "(pbVar1 + iVar2 != pbVar9)" ( (binary_expression "pbVar1 + iVar2 != pbVar9" (binary_expression "pbVar1 + iVar2" identifier + identifier) != identifier) )) ;) (expression_statement "puVar3 = puVar3 + iVar2 * 2;" (assignment_expression "puVar3 = puVar3 + iVar2 * 2" identifier = (binary_expression "puVar3 + iVar2 * 2" identifier + (binary_expression "iVar2 * 2" identifier * number_literal))) ;) })) (expression_statement "iVar2 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar2 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*puVar3 = 0;" (assignment_expression "*puVar3 = 0" (pointer_expression "*puVar3" * identifier) = number_literal) ;) (if_statement "if (local_20 != iVar2) {\n                    \n        FUN_0029eab0();\n      }" if (parenthesized_expression "(local_20 != iVar2)" ( (binary_expression "local_20 != iVar2" identifier != identifier) )) (compound_statement "{\n                    \n        FUN_0029eab0();\n      }" { (expression_statement "FUN_0029eab0();" (call_expression "FUN_0029eab0()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) })) (expression_statement "uVar4 = AcquireExceptionInfo();" (assignment_expression "uVar4 = AcquireExceptionInfo()" identifier = (call_expression "AcquireExceptionInfo()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar5 = __errno_location();" (assignment_expression "piVar5 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar6 = GetExceptionMessage(*piVar5);" (assignment_expression "uVar6 = GetExceptionMessage(*piVar5)" identifier = (call_expression "GetExceptionMessage(*piVar5)" identifier (argument_list "(*piVar5)" ( (pointer_expression "*piVar5" * identifier) )))) ;) (expression_statement "uVar10 = 0x778;" (assignment_expression "uVar10 = 0x778" identifier = number_literal) ;) }) (else_clause "else {\n    uVar4 = AcquireExceptionInfo();\n    piVar5 = __errno_location();\n    uVar6 = GetExceptionMessage(*piVar5);\n    uVar10 = 0x774;\n  }" else (compound_statement "{\n    uVar4 = AcquireExceptionInfo();\n    piVar5 = __errno_location();\n    uVar6 = GetExceptionMessage(*piVar5);\n    uVar10 = 0x774;\n  }" { (expression_statement "uVar4 = AcquireExceptionInfo();" (assignment_expression "uVar4 = AcquireExceptionInfo()" identifier = (call_expression "AcquireExceptionInfo()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar5 = __errno_location();" (assignment_expression "piVar5 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar6 = GetExceptionMessage(*piVar5);" (assignment_expression "uVar6 = GetExceptionMessage(*piVar5)" identifier = (call_expression "GetExceptionMessage(*piVar5)" identifier (argument_list "(*piVar5)" ( (pointer_expression "*piVar5" * identifier) )))) ;) (expression_statement "uVar10 = 0x774;" (assignment_expression "uVar10 = 0x774" identifier = number_literal) ;) }))) (expression_statement "ThrowMagickException\n            (uVar4,"MagickCore/string.c","StringInfoToHexString",uVar10,700,"UnableToAcquireString",\n             "`%s\'",uVar6);" (call_expression "ThrowMagickException\n            (uVar4,"MagickCore/string.c","StringInfoToHexString",uVar10,700,"UnableToAcquireString",\n             "`%s\'",uVar6)" identifier (argument_list "(uVar4,"MagickCore/string.c","StringInfoToHexString",uVar10,700,"UnableToAcquireString",\n             "`%s\'",uVar6)" ( identifier , (string_literal ""MagickCore/string.c"" " string_content ") , (string_literal ""StringInfoToHexString"" " string_content ") , identifier , number_literal , (string_literal ""UnableToAcquireString"" " string_content ") , (string_literal ""`%s\'"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "DestroyString(uVar6);" (call_expression "DestroyString(uVar6)" identifier (argument_list "(uVar6)" ( identifier ))) ;) (expression_statement "CatchException(uVar4);" (call_expression "CatchException(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "DestroyExceptionInfo(uVar4);" (call_expression "DestroyExceptionInfo(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "MagickCoreTerminus();" (call_expression "MagickCoreTerminus()" identifier (argument_list "()" ( ))) ;) (expression_statement "_exit(1);" (call_expression "_exit(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (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 = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * IDENT) >> LIT) )))) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) ))) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (string_literal " string_content ") , IDENT , LIT , (string_literal " string_content ") , (string_literal " string_content escape_sequence ") , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })))
(function_definition "void StringInfoToHexString(int param_1)\n\n{\n  byte *pbVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  undefined4 uVar4;\n  int *piVar5;\n  undefined4 uVar6;\n  undefined1 *puVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  int in_GS_OFFSET;\n  undefined4 uVar10;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x19e6d9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (*(uint *)(param_1 + 8) < 0xfffff000) {\n    puVar3 = (undefined1 *)AcquireQuantumMemory(*(uint *)(param_1 + 8) + 0x1000,2);\n    if (puVar3 != (undefined1 *)0x0) {\n      pbVar1 = *(byte **)(param_1 + 4);\n      local_30 = 0x33323130;\n      iVar2 = *(int *)(param_1 + 8);\n      local_2c = 0x37363534;\n      local_28 = 0x62613938;\n      local_24 = 0x66656463;\n      if (0 < iVar2) {\n        puVar7 = puVar3;\n        pbVar8 = pbVar1;\n        do {\n          pbVar9 = pbVar8 + 1;\n          *puVar7 = *(undefined1 *)((int)&local_30 + (uint)(*pbVar8 >> 4));\n          puVar7[1] = *(undefined1 *)((int)&local_30 + (*pbVar8 & 0xf));\n          puVar7 = puVar7 + 2;\n          pbVar8 = pbVar9;\n        } while (pbVar1 + iVar2 != pbVar9);\n        puVar3 = puVar3 + iVar2 * 2;\n      }\n      iVar2 = *(int *)(in_GS_OFFSET + 0x14);\n      *puVar3 = 0;\n      if (local_20 != iVar2) {\n                    \n        FUN_0029eab0();\n      }\n      return;\n    }\n    uVar4 = AcquireExceptionInfo();\n    piVar5 = __errno_location();\n    uVar6 = GetExceptionMessage(*piVar5);\n    uVar10 = 0x778;\n  }\n  else {\n    uVar4 = AcquireExceptionInfo();\n    piVar5 = __errno_location();\n    uVar6 = GetExceptionMessage(*piVar5);\n    uVar10 = 0x774;\n  }\n  ThrowMagickException\n            (uVar4,"MagickCore/string.c","StringInfoToHexString",uVar10,700,"UnableToAcquireString",\n             "`%s\'",uVar6);\n  DestroyString(uVar6);\n  CatchException(uVar4);\n  DestroyExceptionInfo(uVar4);\n  MagickCoreTerminus();\n                    \n  _exit(1);\n}" (primitive_type "void") (function_declarator "StringInfoToHexString(int param_1)" (identifier "StringInfoToHexString") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  byte *pbVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  undefined4 uVar4;\n  int *piVar5;\n  undefined4 uVar6;\n  undefined1 *puVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  int in_GS_OFFSET;\n  undefined4 uVar10;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x19e6d9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (*(uint *)(param_1 + 8) < 0xfffff000) {\n    puVar3 = (undefined1 *)AcquireQuantumMemory(*(uint *)(param_1 + 8) + 0x1000,2);\n    if (puVar3 != (undefined1 *)0x0) {\n      pbVar1 = *(byte **)(param_1 + 4);\n      local_30 = 0x33323130;\n      iVar2 = *(int *)(param_1 + 8);\n      local_2c = 0x37363534;\n      local_28 = 0x62613938;\n      local_24 = 0x66656463;\n      if (0 < iVar2) {\n        puVar7 = puVar3;\n        pbVar8 = pbVar1;\n        do {\n          pbVar9 = pbVar8 + 1;\n          *puVar7 = *(undefined1 *)((int)&local_30 + (uint)(*pbVar8 >> 4));\n          puVar7[1] = *(undefined1 *)((int)&local_30 + (*pbVar8 & 0xf));\n          puVar7 = puVar7 + 2;\n          pbVar8 = pbVar9;\n        } while (pbVar1 + iVar2 != pbVar9);\n        puVar3 = puVar3 + iVar2 * 2;\n      }\n      iVar2 = *(int *)(in_GS_OFFSET + 0x14);\n      *puVar3 = 0;\n      if (local_20 != iVar2) {\n                    \n        FUN_0029eab0();\n      }\n      return;\n    }\n    uVar4 = AcquireExceptionInfo();\n    piVar5 = __errno_location();\n    uVar6 = GetExceptionMessage(*piVar5);\n    uVar10 = 0x778;\n  }\n  else {\n    uVar4 = AcquireExceptionInfo();\n    piVar5 = __errno_location();\n    uVar6 = GetExceptionMessage(*piVar5);\n    uVar10 = 0x774;\n  }\n  ThrowMagickException\n            (uVar4,"MagickCore/string.c","StringInfoToHexString",uVar10,700,"UnableToAcquireString",\n             "`%s\'",uVar6);\n  DestroyString(uVar6);\n  CatchException(uVar4);\n  DestroyExceptionInfo(uVar4);\n  MagickCoreTerminus();\n                    \n  _exit(1);\n}" ({ "{") (declaration "byte *pbVar1;" (type_identifier "byte") (pointer_declarator "*pbVar1" (* "*") (identifier "pbVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined1 *puVar3;" (type_identifier "undefined1") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "int *piVar5;" (primitive_type "int") (pointer_declarator "*piVar5" (* "*") (identifier "piVar5")) (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "undefined1 *puVar7;" (type_identifier "undefined1") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "byte *pbVar8;" (type_identifier "byte") (pointer_declarator "*pbVar8" (* "*") (identifier "pbVar8")) (; ";")) (declaration "byte *pbVar9;" (type_identifier "byte") (pointer_declarator "*pbVar9" (* "*") (identifier "pbVar9")) (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "undefined4 uVar10;" (type_identifier "undefined4") (identifier "uVar10") (; ";")) (declaration "undefined4 local_30;" (type_identifier "undefined4") (identifier "local_30") (; ";")) (declaration "undefined4 local_2c;" (type_identifier "undefined4") (identifier "local_2c") (; ";")) (declaration "undefined4 local_28;" (type_identifier "undefined4") (identifier "local_28") (; ";")) (declaration "undefined4 local_24;" (type_identifier "undefined4") (identifier "local_24") (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x19e6d9;" (assignment_expression "uStack_14 = 0x19e6d9" (identifier "uStack_14") (= "=") (number_literal "0x19e6d9")) (; ";")) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (*(uint *)(param_1 + 8) < 0xfffff000) {\n    puVar3 = (undefined1 *)AcquireQuantumMemory(*(uint *)(param_1 + 8) + 0x1000,2);\n    if (puVar3 != (undefined1 *)0x0) {\n      pbVar1 = *(byte **)(param_1 + 4);\n      local_30 = 0x33323130;\n      iVar2 = *(int *)(param_1 + 8);\n      local_2c = 0x37363534;\n      local_28 = 0x62613938;\n      local_24 = 0x66656463;\n      if (0 < iVar2) {\n        puVar7 = puVar3;\n        pbVar8 = pbVar1;\n        do {\n          pbVar9 = pbVar8 + 1;\n          *puVar7 = *(undefined1 *)((int)&local_30 + (uint)(*pbVar8 >> 4));\n          puVar7[1] = *(undefined1 *)((int)&local_30 + (*pbVar8 & 0xf));\n          puVar7 = puVar7 + 2;\n          pbVar8 = pbVar9;\n        } while (pbVar1 + iVar2 != pbVar9);\n        puVar3 = puVar3 + iVar2 * 2;\n      }\n      iVar2 = *(int *)(in_GS_OFFSET + 0x14);\n      *puVar3 = 0;\n      if (local_20 != iVar2) {\n                    \n        FUN_0029eab0();\n      }\n      return;\n    }\n    uVar4 = AcquireExceptionInfo();\n    piVar5 = __errno_location();\n    uVar6 = GetExceptionMessage(*piVar5);\n    uVar10 = 0x778;\n  }\n  else {\n    uVar4 = AcquireExceptionInfo();\n    piVar5 = __errno_location();\n    uVar6 = GetExceptionMessage(*piVar5);\n    uVar10 = 0x774;\n  }" (if "if") (parenthesized_expression "(*(uint *)(param_1 + 8) < 0xfffff000)" (( "(") (binary_expression "*(uint *)(param_1 + 8) < 0xfffff000" (pointer_expression "*(uint *)(param_1 + 8)" (* "*") (cast_expression "(uint *)(param_1 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (< "<") (number_literal "0xfffff000")) () ")")) (compound_statement "{\n    puVar3 = (undefined1 *)AcquireQuantumMemory(*(uint *)(param_1 + 8) + 0x1000,2);\n    if (puVar3 != (undefined1 *)0x0) {\n      pbVar1 = *(byte **)(param_1 + 4);\n      local_30 = 0x33323130;\n      iVar2 = *(int *)(param_1 + 8);\n      local_2c = 0x37363534;\n      local_28 = 0x62613938;\n      local_24 = 0x66656463;\n      if (0 < iVar2) {\n        puVar7 = puVar3;\n        pbVar8 = pbVar1;\n        do {\n          pbVar9 = pbVar8 + 1;\n          *puVar7 = *(undefined1 *)((int)&local_30 + (uint)(*pbVar8 >> 4));\n          puVar7[1] = *(undefined1 *)((int)&local_30 + (*pbVar8 & 0xf));\n          puVar7 = puVar7 + 2;\n          pbVar8 = pbVar9;\n        } while (pbVar1 + iVar2 != pbVar9);\n        puVar3 = puVar3 + iVar2 * 2;\n      }\n      iVar2 = *(int *)(in_GS_OFFSET + 0x14);\n      *puVar3 = 0;\n      if (local_20 != iVar2) {\n                    \n        FUN_0029eab0();\n      }\n      return;\n    }\n    uVar4 = AcquireExceptionInfo();\n    piVar5 = __errno_location();\n    uVar6 = GetExceptionMessage(*piVar5);\n    uVar10 = 0x778;\n  }" ({ "{") (expression_statement "puVar3 = (undefined1 *)AcquireQuantumMemory(*(uint *)(param_1 + 8) + 0x1000,2);" (assignment_expression "puVar3 = (undefined1 *)AcquireQuantumMemory(*(uint *)(param_1 + 8) + 0x1000,2)" (identifier "puVar3") (= "=") (cast_expression "(undefined1 *)AcquireQuantumMemory(*(uint *)(param_1 + 8) + 0x1000,2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "AcquireQuantumMemory(*(uint *)(param_1 + 8) + 0x1000,2)" (identifier "AcquireQuantumMemory") (argument_list "(*(uint *)(param_1 + 8) + 0x1000,2)" (( "(") (binary_expression "*(uint *)(param_1 + 8) + 0x1000" (pointer_expression "*(uint *)(param_1 + 8)" (* "*") (cast_expression "(uint *)(param_1 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x1000")) (, ",") (number_literal "2") () ")"))))) (; ";")) (if_statement "if (puVar3 != (undefined1 *)0x0) {\n      pbVar1 = *(byte **)(param_1 + 4);\n      local_30 = 0x33323130;\n      iVar2 = *(int *)(param_1 + 8);\n      local_2c = 0x37363534;\n      local_28 = 0x62613938;\n      local_24 = 0x66656463;\n      if (0 < iVar2) {\n        puVar7 = puVar3;\n        pbVar8 = pbVar1;\n        do {\n          pbVar9 = pbVar8 + 1;\n          *puVar7 = *(undefined1 *)((int)&local_30 + (uint)(*pbVar8 >> 4));\n          puVar7[1] = *(undefined1 *)((int)&local_30 + (*pbVar8 & 0xf));\n          puVar7 = puVar7 + 2;\n          pbVar8 = pbVar9;\n        } while (pbVar1 + iVar2 != pbVar9);\n        puVar3 = puVar3 + iVar2 * 2;\n      }\n      iVar2 = *(int *)(in_GS_OFFSET + 0x14);\n      *puVar3 = 0;\n      if (local_20 != iVar2) {\n                    \n        FUN_0029eab0();\n      }\n      return;\n    }" (if "if") (parenthesized_expression "(puVar3 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar3 != (undefined1 *)0x0" (identifier "puVar3") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pbVar1 = *(byte **)(param_1 + 4);\n      local_30 = 0x33323130;\n      iVar2 = *(int *)(param_1 + 8);\n      local_2c = 0x37363534;\n      local_28 = 0x62613938;\n      local_24 = 0x66656463;\n      if (0 < iVar2) {\n        puVar7 = puVar3;\n        pbVar8 = pbVar1;\n        do {\n          pbVar9 = pbVar8 + 1;\n          *puVar7 = *(undefined1 *)((int)&local_30 + (uint)(*pbVar8 >> 4));\n          puVar7[1] = *(undefined1 *)((int)&local_30 + (*pbVar8 & 0xf));\n          puVar7 = puVar7 + 2;\n          pbVar8 = pbVar9;\n        } while (pbVar1 + iVar2 != pbVar9);\n        puVar3 = puVar3 + iVar2 * 2;\n      }\n      iVar2 = *(int *)(in_GS_OFFSET + 0x14);\n      *puVar3 = 0;\n      if (local_20 != iVar2) {\n                    \n        FUN_0029eab0();\n      }\n      return;\n    }" ({ "{") (expression_statement "pbVar1 = *(byte **)(param_1 + 4);" (assignment_expression "pbVar1 = *(byte **)(param_1 + 4)" (identifier "pbVar1") (= "=") (pointer_expression "*(byte **)(param_1 + 4)" (* "*") (cast_expression "(byte **)(param_1 + 4)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "local_30 = 0x33323130;" (assignment_expression "local_30 = 0x33323130" (identifier "local_30") (= "=") (number_literal "0x33323130")) (; ";")) (expression_statement "iVar2 = *(int *)(param_1 + 8);" (assignment_expression "iVar2 = *(int *)(param_1 + 8)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "local_2c = 0x37363534;" (assignment_expression "local_2c = 0x37363534" (identifier "local_2c") (= "=") (number_literal "0x37363534")) (; ";")) (expression_statement "local_28 = 0x62613938;" (assignment_expression "local_28 = 0x62613938" (identifier "local_28") (= "=") (number_literal "0x62613938")) (; ";")) (expression_statement "local_24 = 0x66656463;" (assignment_expression "local_24 = 0x66656463" (identifier "local_24") (= "=") (number_literal "0x66656463")) (; ";")) (if_statement "if (0 < iVar2) {\n        puVar7 = puVar3;\n        pbVar8 = pbVar1;\n        do {\n          pbVar9 = pbVar8 + 1;\n          *puVar7 = *(undefined1 *)((int)&local_30 + (uint)(*pbVar8 >> 4));\n          puVar7[1] = *(undefined1 *)((int)&local_30 + (*pbVar8 & 0xf));\n          puVar7 = puVar7 + 2;\n          pbVar8 = pbVar9;\n        } while (pbVar1 + iVar2 != pbVar9);\n        puVar3 = puVar3 + iVar2 * 2;\n      }" (if "if") (parenthesized_expression "(0 < iVar2)" (( "(") (binary_expression "0 < iVar2" (number_literal "0") (< "<") (identifier "iVar2")) () ")")) (compound_statement "{\n        puVar7 = puVar3;\n        pbVar8 = pbVar1;\n        do {\n          pbVar9 = pbVar8 + 1;\n          *puVar7 = *(undefined1 *)((int)&local_30 + (uint)(*pbVar8 >> 4));\n          puVar7[1] = *(undefined1 *)((int)&local_30 + (*pbVar8 & 0xf));\n          puVar7 = puVar7 + 2;\n          pbVar8 = pbVar9;\n        } while (pbVar1 + iVar2 != pbVar9);\n        puVar3 = puVar3 + iVar2 * 2;\n      }" ({ "{") (expression_statement "puVar7 = puVar3;" (assignment_expression "puVar7 = puVar3" (identifier "puVar7") (= "=") (identifier "puVar3")) (; ";")) (expression_statement "pbVar8 = pbVar1;" (assignment_expression "pbVar8 = pbVar1" (identifier "pbVar8") (= "=") (identifier "pbVar1")) (; ";")) (do_statement "do {\n          pbVar9 = pbVar8 + 1;\n          *puVar7 = *(undefined1 *)((int)&local_30 + (uint)(*pbVar8 >> 4));\n          puVar7[1] = *(undefined1 *)((int)&local_30 + (*pbVar8 & 0xf));\n          puVar7 = puVar7 + 2;\n          pbVar8 = pbVar9;\n        } while (pbVar1 + iVar2 != pbVar9);" (do "do") (compound_statement "{\n          pbVar9 = pbVar8 + 1;\n          *puVar7 = *(undefined1 *)((int)&local_30 + (uint)(*pbVar8 >> 4));\n          puVar7[1] = *(undefined1 *)((int)&local_30 + (*pbVar8 & 0xf));\n          puVar7 = puVar7 + 2;\n          pbVar8 = pbVar9;\n        }" ({ "{") (expression_statement "pbVar9 = pbVar8 + 1;" (assignment_expression "pbVar9 = pbVar8 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar8 + 1" (identifier "pbVar8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*puVar7 = *(undefined1 *)((int)&local_30 + (uint)(*pbVar8 >> 4));" (assignment_expression "*puVar7 = *(undefined1 *)((int)&local_30 + (uint)(*pbVar8 >> 4))" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (pointer_expression "*(undefined1 *)((int)&local_30 + (uint)(*pbVar8 >> 4))" (* "*") (cast_expression "(undefined1 *)((int)&local_30 + (uint)(*pbVar8 >> 4))" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&local_30 + (uint)(*pbVar8 >> 4))" (( "(") (binary_expression "(int)&local_30 + (uint)(*pbVar8 >> 4)" (cast_expression "(int)&local_30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&local_30" (& "&") (identifier "local_30"))) (+ "+") (call_expression "(uint)(*pbVar8 >> 4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*pbVar8 >> 4)" (( "(") (binary_expression "*pbVar8 >> 4" (pointer_expression "*pbVar8" (* "*") (identifier "pbVar8")) (>> ">>") (number_literal "4")) () ")")))) () ")"))))) (; ";")) (expression_statement "puVar7[1] = *(undefined1 *)((int)&local_30 + (*pbVar8 & 0xf));" (assignment_expression "puVar7[1] = *(undefined1 *)((int)&local_30 + (*pbVar8 & 0xf))" (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) (= "=") (pointer_expression "*(undefined1 *)((int)&local_30 + (*pbVar8 & 0xf))" (* "*") (cast_expression "(undefined1 *)((int)&local_30 + (*pbVar8 & 0xf))" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&local_30 + (*pbVar8 & 0xf))" (( "(") (binary_expression "(int)&local_30 + (*pbVar8 & 0xf)" (cast_expression "(int)&local_30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&local_30" (& "&") (identifier "local_30"))) (+ "+") (parenthesized_expression "(*pbVar8 & 0xf)" (( "(") (binary_expression "*pbVar8 & 0xf" (pointer_expression "*pbVar8" (* "*") (identifier "pbVar8")) (& "&") (number_literal "0xf")) () ")"))) () ")"))))) (; ";")) (expression_statement "puVar7 = puVar7 + 2;" (assignment_expression "puVar7 = puVar7 + 2" (identifier "puVar7") (= "=") (binary_expression "puVar7 + 2" (identifier "puVar7") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "pbVar8 = pbVar9;" (assignment_expression "pbVar8 = pbVar9" (identifier "pbVar8") (= "=") (identifier "pbVar9")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar1 + iVar2 != pbVar9)" (( "(") (binary_expression "pbVar1 + iVar2 != pbVar9" (binary_expression "pbVar1 + iVar2" (identifier "pbVar1") (+ "+") (identifier "iVar2")) (!= "!=") (identifier "pbVar9")) () ")")) (; ";")) (expression_statement "puVar3 = puVar3 + iVar2 * 2;" (assignment_expression "puVar3 = puVar3 + iVar2 * 2" (identifier "puVar3") (= "=") (binary_expression "puVar3 + iVar2 * 2" (identifier "puVar3") (+ "+") (binary_expression "iVar2 * 2" (identifier "iVar2") (* "*") (number_literal "2")))) (; ";")) (} "}"))) (expression_statement "iVar2 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar2 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "*puVar3 = 0;" (assignment_expression "*puVar3 = 0" (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (local_20 != iVar2) {\n                    \n        FUN_0029eab0();\n      }" (if "if") (parenthesized_expression "(local_20 != iVar2)" (( "(") (binary_expression "local_20 != iVar2" (identifier "local_20") (!= "!=") (identifier "iVar2")) () ")")) (compound_statement "{\n                    \n        FUN_0029eab0();\n      }" ({ "{") (expression_statement "FUN_0029eab0();" (call_expression "FUN_0029eab0()" (identifier "FUN_0029eab0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar4 = AcquireExceptionInfo();" (assignment_expression "uVar4 = AcquireExceptionInfo()" (identifier "uVar4") (= "=") (call_expression "AcquireExceptionInfo()" (identifier "AcquireExceptionInfo") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "piVar5 = __errno_location();" (assignment_expression "piVar5 = __errno_location()" (identifier "piVar5") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar6 = GetExceptionMessage(*piVar5);" (assignment_expression "uVar6 = GetExceptionMessage(*piVar5)" (identifier "uVar6") (= "=") (call_expression "GetExceptionMessage(*piVar5)" (identifier "GetExceptionMessage") (argument_list "(*piVar5)" (( "(") (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) () ")")))) (; ";")) (expression_statement "uVar10 = 0x778;" (assignment_expression "uVar10 = 0x778" (identifier "uVar10") (= "=") (number_literal "0x778")) (; ";")) (} "}")) (else_clause "else {\n    uVar4 = AcquireExceptionInfo();\n    piVar5 = __errno_location();\n    uVar6 = GetExceptionMessage(*piVar5);\n    uVar10 = 0x774;\n  }" (else "else") (compound_statement "{\n    uVar4 = AcquireExceptionInfo();\n    piVar5 = __errno_location();\n    uVar6 = GetExceptionMessage(*piVar5);\n    uVar10 = 0x774;\n  }" ({ "{") (expression_statement "uVar4 = AcquireExceptionInfo();" (assignment_expression "uVar4 = AcquireExceptionInfo()" (identifier "uVar4") (= "=") (call_expression "AcquireExceptionInfo()" (identifier "AcquireExceptionInfo") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "piVar5 = __errno_location();" (assignment_expression "piVar5 = __errno_location()" (identifier "piVar5") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar6 = GetExceptionMessage(*piVar5);" (assignment_expression "uVar6 = GetExceptionMessage(*piVar5)" (identifier "uVar6") (= "=") (call_expression "GetExceptionMessage(*piVar5)" (identifier "GetExceptionMessage") (argument_list "(*piVar5)" (( "(") (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) () ")")))) (; ";")) (expression_statement "uVar10 = 0x774;" (assignment_expression "uVar10 = 0x774" (identifier "uVar10") (= "=") (number_literal "0x774")) (; ";")) (} "}")))) (expression_statement "ThrowMagickException\n            (uVar4,"MagickCore/string.c","StringInfoToHexString",uVar10,700,"UnableToAcquireString",\n             "`%s\'",uVar6);" (call_expression "ThrowMagickException\n            (uVar4,"MagickCore/string.c","StringInfoToHexString",uVar10,700,"UnableToAcquireString",\n             "`%s\'",uVar6)" (identifier "ThrowMagickException") (argument_list "(uVar4,"MagickCore/string.c","StringInfoToHexString",uVar10,700,"UnableToAcquireString",\n             "`%s\'",uVar6)" (( "(") (identifier "uVar4") (, ",") (string_literal ""MagickCore/string.c"" (" """) (string_content "MagickCore/string.c") (" """)) (, ",") (string_literal ""StringInfoToHexString"" (" """) (string_content "StringInfoToHexString") (" """)) (, ",") (identifier "uVar10") (, ",") (number_literal "700") (, ",") (string_literal ""UnableToAcquireString"" (" """) (string_content "UnableToAcquireString") (" """)) (, ",") (string_literal ""`%s\'"" (" """) (string_content "`%s") (escape_sequence "\'") (" """)) (, ",") (identifier "uVar6") () ")"))) (; ";")) (expression_statement "DestroyString(uVar6);" (call_expression "DestroyString(uVar6)" (identifier "DestroyString") (argument_list "(uVar6)" (( "(") (identifier "uVar6") () ")"))) (; ";")) (expression_statement "CatchException(uVar4);" (call_expression "CatchException(uVar4)" (identifier "CatchException") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")"))) (; ";")) (expression_statement "DestroyExceptionInfo(uVar4);" (call_expression "DestroyExceptionInfo(uVar4)" (identifier "DestroyExceptionInfo") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")"))) (; ";")) (expression_statement "MagickCoreTerminus();" (call_expression "MagickCoreTerminus()" (identifier "MagickCoreTerminus") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "_exit(1);" (call_expression "_exit(1)" (identifier "_exit") (argument_list "(1)" (( "(") (number_literal "1") () ")"))) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */
/* WARNING: Enum "ExceptionType": Some values do not have unique names */

char * function_1(type_1 *string_info)

{
  int var_11;
  type_2 *var_8;
  int var_12;
  type_3 *var_3;
  type_4 *exception;
  int *piVar5;
  char *string;
  type_3 *var_7;
  type_2 *var_6;
  type_2 *var_10;
  int var_1;
  size_t var_9;
  type_3 var_5 [16];
  
  var_11 = *(int *)(var_1 + 0x14);
  if (string_info->length < 0xfffff000) {
    var_3 = (type_3 *)var_2(string_info->length + 0x1000,2);
    if (var_3 != (type_3 *)0x0) {
      var_8 = string_info->datum;
      var_4(var_5,"0123",4);
      var_9 = string_info->length;
      var_4(var_5 + 4,"456789abcdef",0xc);
      var_7 = var_3;
      if (0 < (int)var_9) {
        var_6 = var_8;
        do {
          var_10 = var_6 + 1;
          *var_7 = var_5[*var_6 >> 4];
          var_7[1] = var_5[*var_6 & 0xf];
          var_7 = var_7 + 2;
          var_6 = var_10;
        } while (var_8 + var_9 != var_10);
        var_7 = var_3 + var_9 * 2;
      }
      var_12 = *(int *)(var_1 + 0x14);
      *var_7 = '\0';
      if (var_11 != var_12) {
                    /* WARNING: Subroutine does not return */
        var_13();
      }
      return (char *)var_3;
    }
    exception = var_14();
    piVar5 = var_15();
    string = var_16(*piVar5);
    var_9 = 0x778;
  }
  else {
    exception = var_14();
    piVar5 = var_15();
    string = var_16(*piVar5);
    var_9 = 0x774;
  }
  var_17
            (exception,"MagickCore/string.c","StringInfoToHexString",var_9,FatalErrorException,
             "UnableToAcquireString","`%s\'",string);
  var_18(string);
  var_19(exception);
  var_20(exception);
  var_21();
                    /* WARNING: Subroutine does not return */
  var_22(1);
}


(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: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (binary_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)) (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (string_literal (string_content)) (identifier) (number_literal) (string_literal (string_content)) (string_literal (string_content) (escape_sequence)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))))

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

void MASKED(int param_1)

{
  byte *pbVar1;
  int iVar2;
  undefined1 *puVar3;
  undefined4 uVar4;
  int *piVar5;
  undefined4 uVar6;
  undefined1 *puVar7;
  byte *pbVar8;
  byte *pbVar9;
  int in_GS_OFFSET;
  undefined4 uVar10;
  undefined4 local_30;
  undefined4 local_2c;
  undefined4 local_28;
  undefined4 local_24;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x19e6d9;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (*(uint *)(param_1 + 8) < 0xfffff000) {
    puVar3 = (undefined1 *)AcquireQuantumMemory(*(uint *)(param_1 + 8) + 0x1000,2);
    if (puVar3 != (undefined1 *)0x0) {
      pbVar1 = *(byte **)(param_1 + 4);
      local_30 = 0x33323130;
      iVar2 = *(int *)(param_1 + 8);
      local_2c = 0x37363534;
      local_28 = 0x62613938;
      local_24 = 0x66656463;
      if (0 < iVar2) {
        puVar7 = puVar3;
        pbVar8 = pbVar1;
        do {
          pbVar9 = pbVar8 + 1;
          *puVar7 = *(undefined1 *)((int)&local_30 + (uint)(*pbVar8 >> 4));
          puVar7[1] = *(undefined1 *)((int)&local_30 + (*pbVar8 & 0xf));
          puVar7 = puVar7 + 2;
          pbVar8 = pbVar9;
        } while (pbVar1 + iVar2 != pbVar9);
        puVar3 = puVar3 + iVar2 * 2;
      }
      iVar2 = *(int *)(in_GS_OFFSET + 0x14);
      *puVar3 = 0;
      if (local_20 != iVar2) {
                    /* WARNING: Subroutine does not return */
        FUN_0029eab0();
      }
      return;
    }
    uVar4 = AcquireExceptionInfo();
    piVar5 = __errno_location();
    uVar6 = GetExceptionMessage(*piVar5);
    uVar10 = 0x778;
  }
  else {
    uVar4 = AcquireExceptionInfo();
    piVar5 = __errno_location();
    uVar6 = GetExceptionMessage(*piVar5);
    uVar10 = 0x774;
  }
  ThrowMagickException
            (uVar4,"MagickCore/string.c","MASKED",uVar10,700,"UnableToAcquireString",
             "`%s\'",uVar6);
  DestroyString(uVar6);
  CatchException(uVar4);
  DestroyExceptionInfo(uVar4);
  MagickCoreTerminus();
                    /* WARNING: Subroutine does not return */
  _exit(1);
}

