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

MagickBooleanType
ProfileImage(Image *image,char *name,void *datum,size_t length,ExceptionInfo *exception)

{
  StringInfo *string_info;
  int iVar1;
  StringInfo *target;
  char *pcVar2;
  MagickBooleanType MVar3;
  
  if (image == (Image *)0x0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image != (Image *) NULL","MagickCore/profile.c",0x3af,"ProfileImage");
  }
  if (image->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image->signature == MagickCoreSignature","MagickCore/profile.c",0x3b0,
                  "ProfileImage");
  }
  if (image->debug != MagickFalse) {
    LogMagickEvent(TraceEvent,"MagickCore/profile.c","ProfileImage",0x3b2,"%s",image->filename);
  }
  if (name == (char *)0x0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("name != (const char *) NULL","MagickCore/profile.c",0x3b3,"ProfileImage");
  }
  if ((datum == (void *)0x0) || (length == 0)) {
    ResetImageProfileIterator(image);
    while (pcVar2 = GetNextImageProfile(image), pcVar2 != (char *)0x0) {
      MVar3 = IsOptionMember(pcVar2,name);
      if (MVar3 != MagickFalse) {
        DeleteImageProfile(image,pcVar2);
        ResetImageProfileIterator(image);
      }
    }
    return MagickTrue;
  }
  string_info = AcquireStringInfo(length);
  SetStringInfoDatum(string_info,(uchar *)datum);
  iVar1 = LocaleCompare(name,"icc");
  if ((iVar1 != 0) && (iVar1 = LocaleCompare(name,"icm"), iVar1 != 0)) {
    MVar3 = SetImageProfile(image,name,string_info,exception);
    goto LAB_0012a6fa;
  }
  target = GetImageProfile(image,"icc");
  if (target != (StringInfo *)0x0) {
    iVar1 = CompareStringInfo(target,string_info);
    if (iVar1 == 0) {
      pcVar2 = GetImageProperty(image,"exif:ColorSpace",exception);
      iVar1 = LocaleCompare(pcVar2,"1");
      if (iVar1 != 0) {
        SetsRGBImageProfile(image,exception);
      }
      pcVar2 = GetImageProperty(image,"exif:InteroperabilityIndex",exception);
      iVar1 = LocaleCompare(pcVar2,"R98.");
      if (iVar1 != 0) {
        SetsRGBImageProfile(image,exception);
      }
      target = GetImageProfile(image,"icc");
      if (target == (StringInfo *)0x0) goto LAB_0012a6bc;
    }
    iVar1 = CompareStringInfo(target,string_info);
    if (iVar1 == 0) {
      DestroyStringInfo(string_info);
      return MagickTrue;
    }
  }
LAB_0012a6bc:
  MVar3 = MagickTrue;
  ThrowMagickException
            (exception,"MagickCore/profile.c","ProfileImage",0x3ec,MissingDelegateWarning,
             "DelegateLibrarySupportNotBuiltIn","\'%s\' (LCMS)",image->filename);
LAB_0012a6fa:
  DestroyStringInfo(string_info);
  return MVar3;
}



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

undefined4 ProfileImage(int param_1,int param_2,int param_3,int param_4,undefined4 param_5)

{
  undefined4 uVar1;
  int iVar2;
  int iVar3;
  undefined4 uVar4;
  
  if (param_1 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image != (Image *) NULL","MagickCore/profile.c",0x3af,"ProfileImage");
  }
  if (*(int *)(param_1 + 0x3344) != -0x54535255) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image->signature == MagickCoreSignature","MagickCore/profile.c",0x3b0,
                  "ProfileImage");
  }
  if (*(int *)(param_1 + 0x3328) != 0) {
    LogMagickEvent(0x8000,"MagickCore/profile.c","ProfileImage",0x3b2,&DAT_002b6e4e,param_1 + 0x318)
    ;
  }
  if (param_2 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("name != (const char *) NULL","MagickCore/profile.c",0x3b3,"ProfileImage");
  }
  if ((param_3 == 0) || (param_4 == 0)) {
    ResetImageProfileIterator(param_1);
    while (iVar2 = GetNextImageProfile(param_1), iVar2 != 0) {
      iVar3 = IsOptionMember(iVar2,param_2);
      if (iVar3 != 0) {
        DeleteImageProfile(param_1,iVar2);
        ResetImageProfileIterator(param_1);
      }
    }
    return 1;
  }
  uVar1 = AcquireStringInfo(param_4);
  SetStringInfoDatum(uVar1,param_3);
  iVar2 = LocaleCompare(param_2,&DAT_002a81ca);
  if ((iVar2 != 0) && (iVar2 = LocaleCompare(param_2,&DAT_002a81ce), iVar2 != 0)) {
    uVar4 = SetImageProfile(param_1,param_2,uVar1,param_5);
    goto LAB_0012a6fa;
  }
  iVar2 = GetImageProfile(param_1,&DAT_002a81ca);
  if (iVar2 != 0) {
    iVar3 = CompareStringInfo(iVar2,uVar1);
    if (iVar3 == 0) {
      uVar4 = GetImageProperty(param_1,"exif:ColorSpace",param_5);
      iVar2 = LocaleCompare(uVar4,"1");
      if (iVar2 != 0) {
        FUN_0012a4e0();
      }
      uVar4 = GetImageProperty(param_1,"exif:InteroperabilityIndex",param_5);
      iVar2 = LocaleCompare(uVar4,&DAT_002c3bf6);
      if (iVar2 != 0) {
        FUN_0012a4e0();
      }
      iVar2 = GetImageProfile(param_1,&DAT_002a81ca);
      if (iVar2 == 0) goto LAB_0012a6bc;
    }
    iVar2 = CompareStringInfo(iVar2,uVar1);
    if (iVar2 == 0) {
      DestroyStringInfo(uVar1);
      return 1;
    }
  }
LAB_0012a6bc:
  uVar4 = 1;
  ThrowMagickException
            (param_5,"MagickCore/profile.c","ProfileImage",0x3ec,0x140,
             "DelegateLibrarySupportNotBuiltIn","\'%s\' (LCMS)",param_1 + 0x318);
LAB_0012a6fa:
  DestroyStringInfo(uVar1);
  return uVar4;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00038830
ADD EBX,0x2aea27
SUB ESP,0x1c
MOV ESI,dword ptr [ESP + 0x30]
MOV EDI,dword ptr [ESP + 0x34]
MOV EBP,dword ptr [ESP + 0x3c]
TEST ESI,ESI
JZ 0x0012a8a6
CMP dword ptr [ESI + 0x3344],0xabacadab
JNZ 0x0012a887
MOV EAX,dword ptr [ESI + 0x3328]
TEST EAX,EAX
JNZ 0x0012a780
TEST EDI,EDI
JZ 0x0012a868
MOV ECX,dword ptr [ESP + 0x38]
TEST ECX,ECX
JZ 0x0012a710
TEST EBP,EBP
JZ 0x0012a710
SUB ESP,0xc
PUSH EBP
CALL 0x000329e0
POP ECX
MOV EBP,EAX
POP EAX
PUSH dword ptr [ESP + 0x40]
PUSH EBP
CALL 0x000327b0
POP EAX
LEA EAX,[EBX + 0xffecf1ca]
POP EDX
MOV dword ptr [ESP + 0x14],EAX
PUSH EAX
PUSH EDI
CALL 0x000326f0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0012a67c
LEA EAX,[EBX + 0xffecf1ce]
SUB ESP,0x8
PUSH EAX
PUSH EDI
CALL 0x000326f0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0012a838
SUB ESP,0x8
PUSH dword ptr [ESP + 0x14]
PUSH ESI
CALL 0x00031c60
ADD ESP,0x10
MOV EDI,EAX
TEST EAX,EAX
JZ 0x0012a6bc
SUB ESP,0x8
PUSH EBP
PUSH EAX
CALL 0x00031b60
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0012a7c0
SUB ESP,0x8
PUSH EBP
PUSH EDI
CALL 0x00031b60
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0012a760
LEA EAX,[EBX + 0xffeeabfb]
ADD ESI,0x318
PUSH ESI
MOV ESI,0x1
PUSH EAX
LEA EAX,[EBX + 0xffec5b58]
PUSH EAX
LEA EAX,[EBX + 0xffeeae2c]
PUSH 0x140
PUSH 0x3ec
PUSH EAX
LEA EAX,[EBX + 0xffeeab94]
PUSH EAX
PUSH dword ptr [ESP + 0x5c]
CALL 0x00032e80
ADD ESP,0x20
SUB ESP,0xc
PUSH EBP
CALL 0x000332e0
ADD ESP,0x10
MOV EAX,ESI
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0xc
PUSH ESI
CALL 0x000330b0
MOV dword ptr [ESP],ESI
JMP 0x0012a724
SUB ESP,0xc
PUSH ESI
CALL 0x00032ed0
ADD ESP,0x10
MOV EBP,EAX
TEST EAX,EAX
JZ 0x0012a76c
SUB ESP,0x8
PUSH EDI
PUSH EAX
CALL 0x00032d50
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0012a720
SUB ESP,0x8
PUSH EBP
PUSH ESI
CALL 0x00030bb0
MOV dword ptr [ESP],ESI
CALL 0x000330b0
ADD ESP,0x10
JMP 0x0012a720
SUB ESP,0xc
PUSH EBP
CALL 0x000332e0
ADD ESP,0x10
ADD ESP,0x1c
MOV ESI,0x1
POP EBX
MOV EAX,ESI
POP ESI
POP EDI
POP EBP
RET
LEA EAX,[ESI + 0x318]
SUB ESP,0x8
PUSH EAX
LEA EAX,[EBX + 0xffedde4e]
PUSH EAX
LEA EAX,[EBX + 0xffeeae2c]
PUSH 0x3b2
PUSH EAX
LEA EAX,[EBX + 0xffeeab94]
PUSH EAX
PUSH 0x8000
CALL 0x000323b0
ADD ESP,0x20
JMP 0x0012a614
LEA EAX,[EBX + 0xffeeabcb]
SUB ESP,0x4
PUSH dword ptr [ESP + 0x44]
PUSH EAX
PUSH ESI
CALL 0x00031bb0
POP EDI
POP EDX
LEA EDX,[EBX + 0xffeefe68]
PUSH EDX
PUSH EAX
CALL 0x000326f0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0012a85b
LEA EAX,[EBX + 0xffeeabdb]
SUB ESP,0x4
PUSH dword ptr [ESP + 0x44]
PUSH EAX
PUSH ESI
CALL 0x00031bb0
POP EDX
LEA EDX,[EBX + 0xffeeabf6]
POP ECX
PUSH EDX
PUSH EAX
CALL 0x000326f0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0012a84e
SUB ESP,0x8
PUSH dword ptr [ESP + 0x14]
PUSH ESI
CALL 0x00031c60
ADD ESP,0x10
MOV EDI,EAX
TEST EAX,EAX
JNZ 0x0012a6a7
JMP 0x0012a6bc
PUSH dword ptr [ESP + 0x40]
PUSH EBP
PUSH EDI
PUSH ESI
CALL 0x00031190
ADD ESP,0x10
MOV ESI,EAX
JMP 0x0012a6fa
MOV EDX,dword ptr [ESP + 0x40]
MOV EAX,ESI
CALL 0x0012a4e0
JMP 0x0012a814
MOV EDX,dword ptr [ESP + 0x40]
MOV EAX,ESI
CALL 0x0012a4e0
JMP 0x0012a7ea
LEA EAX,[EBX + 0xffeeae3c]
PUSH EAX
LEA EAX,[EBX + 0xffeeab94]
PUSH 0x3b3
PUSH EAX
LEA EAX,[EBX + 0xffec96d4]
PUSH EAX
CALL 0x000313d0
LEA EAX,[EBX + 0xffeeae3c]
PUSH EAX
LEA EAX,[EBX + 0xffeeab94]
PUSH 0x3b0
PUSH EAX
LEA EAX,[EBX + 0xffed1338]
PUSH EAX
CALL 0x000313d0
LEA EAX,[EBX + 0xffeeae3c]
PUSH EAX
LEA EAX,[EBX + 0xffeeab94]
PUSH 0x3af
PUSH EAX
LEA EAX,[EBX + 0xffede594]
PUSH EAX
CALL 0x000313d0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4 ProfileImage(int param_1,int param_2,int param_3,int param_4,undefined4 param_5)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  \n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/profile.c",0x3af,"ProfileImage");\n  }\n  if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/profile.c",0x3b0,\n                  "ProfileImage");\n  }\n  if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/profile.c","ProfileImage",0x3b2,&DAT_002b6e4e,param_1 + 0x318)\n    ;\n  }\n  if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("name != (const char *) NULL","MagickCore/profile.c",0x3b3,"ProfileImage");\n  }\n  if ((param_3 == 0) || (param_4 == 0)) {\n    ResetImageProfileIterator(param_1);\n    while (iVar2 = GetNextImageProfile(param_1), iVar2 != 0) {\n      iVar3 = IsOptionMember(iVar2,param_2);\n      if (iVar3 != 0) {\n        DeleteImageProfile(param_1,iVar2);\n        ResetImageProfileIterator(param_1);\n      }\n    }\n    return 1;\n  }\n  uVar1 = AcquireStringInfo(param_4);\n  SetStringInfoDatum(uVar1,param_3);\n  iVar2 = LocaleCompare(param_2,&DAT_002a81ca);\n  if ((iVar2 != 0) && (iVar2 = LocaleCompare(param_2,&DAT_002a81ce), iVar2 != 0)) {\n    uVar4 = SetImageProfile(param_1,param_2,uVar1,param_5);\n    goto LAB_0012a6fa;\n  }\n  iVar2 = GetImageProfile(param_1,&DAT_002a81ca);\n  if (iVar2 != 0) {\n    iVar3 = CompareStringInfo(iVar2,uVar1);\n    if (iVar3 == 0) {\n      uVar4 = GetImageProperty(param_1,"exif:ColorSpace",param_5);\n      iVar2 = LocaleCompare(uVar4,"1");\n      if (iVar2 != 0) {\n        FUN_0012a4e0();\n      }\n      uVar4 = GetImageProperty(param_1,"exif:InteroperabilityIndex",param_5);\n      iVar2 = LocaleCompare(uVar4,&DAT_002c3bf6);\n      if (iVar2 != 0) {\n        FUN_0012a4e0();\n      }\n      iVar2 = GetImageProfile(param_1,&DAT_002a81ca);\n      if (iVar2 == 0) goto LAB_0012a6bc;\n    }\n    iVar2 = CompareStringInfo(iVar2,uVar1);\n    if (iVar2 == 0) {\n      DestroyStringInfo(uVar1);\n      return 1;\n    }\n  }\nLAB_0012a6bc:\n  uVar4 = 1;\n  ThrowMagickException\n            (param_5,"MagickCore/profile.c","ProfileImage",0x3ec,0x140,\n             "DelegateLibrarySupportNotBuiltIn","\'%s\' (LCMS)",param_1 + 0x318);\nLAB_0012a6fa:\n  DestroyStringInfo(uVar1);\n  return uVar4;\n}\n\n" comment (function_definition "undefined4 ProfileImage(int param_1,int param_2,int param_3,int param_4,undefined4 param_5)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  \n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/profile.c",0x3af,"ProfileImage");\n  }\n  if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/profile.c",0x3b0,\n                  "ProfileImage");\n  }\n  if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/profile.c","ProfileImage",0x3b2,&DAT_002b6e4e,param_1 + 0x318)\n    ;\n  }\n  if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("name != (const char *) NULL","MagickCore/profile.c",0x3b3,"ProfileImage");\n  }\n  if ((param_3 == 0) || (param_4 == 0)) {\n    ResetImageProfileIterator(param_1);\n    while (iVar2 = GetNextImageProfile(param_1), iVar2 != 0) {\n      iVar3 = IsOptionMember(iVar2,param_2);\n      if (iVar3 != 0) {\n        DeleteImageProfile(param_1,iVar2);\n        ResetImageProfileIterator(param_1);\n      }\n    }\n    return 1;\n  }\n  uVar1 = AcquireStringInfo(param_4);\n  SetStringInfoDatum(uVar1,param_3);\n  iVar2 = LocaleCompare(param_2,&DAT_002a81ca);\n  if ((iVar2 != 0) && (iVar2 = LocaleCompare(param_2,&DAT_002a81ce), iVar2 != 0)) {\n    uVar4 = SetImageProfile(param_1,param_2,uVar1,param_5);\n    goto LAB_0012a6fa;\n  }\n  iVar2 = GetImageProfile(param_1,&DAT_002a81ca);\n  if (iVar2 != 0) {\n    iVar3 = CompareStringInfo(iVar2,uVar1);\n    if (iVar3 == 0) {\n      uVar4 = GetImageProperty(param_1,"exif:ColorSpace",param_5);\n      iVar2 = LocaleCompare(uVar4,"1");\n      if (iVar2 != 0) {\n        FUN_0012a4e0();\n      }\n      uVar4 = GetImageProperty(param_1,"exif:InteroperabilityIndex",param_5);\n      iVar2 = LocaleCompare(uVar4,&DAT_002c3bf6);\n      if (iVar2 != 0) {\n        FUN_0012a4e0();\n      }\n      iVar2 = GetImageProfile(param_1,&DAT_002a81ca);\n      if (iVar2 == 0) goto LAB_0012a6bc;\n    }\n    iVar2 = CompareStringInfo(iVar2,uVar1);\n    if (iVar2 == 0) {\n      DestroyStringInfo(uVar1);\n      return 1;\n    }\n  }\nLAB_0012a6bc:\n  uVar4 = 1;\n  ThrowMagickException\n            (param_5,"MagickCore/profile.c","ProfileImage",0x3ec,0x140,\n             "DelegateLibrarySupportNotBuiltIn","\'%s\' (LCMS)",param_1 + 0x318);\nLAB_0012a6fa:\n  DestroyStringInfo(uVar1);\n  return uVar4;\n}" type_identifier (function_declarator "ProfileImage(int param_1,int param_2,int param_3,int param_4,undefined4 param_5)" identifier (parameter_list "(int param_1,int param_2,int param_3,int param_4,undefined4 param_5)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  \n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/profile.c",0x3af,"ProfileImage");\n  }\n  if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/profile.c",0x3b0,\n                  "ProfileImage");\n  }\n  if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/profile.c","ProfileImage",0x3b2,&DAT_002b6e4e,param_1 + 0x318)\n    ;\n  }\n  if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("name != (const char *) NULL","MagickCore/profile.c",0x3b3,"ProfileImage");\n  }\n  if ((param_3 == 0) || (param_4 == 0)) {\n    ResetImageProfileIterator(param_1);\n    while (iVar2 = GetNextImageProfile(param_1), iVar2 != 0) {\n      iVar3 = IsOptionMember(iVar2,param_2);\n      if (iVar3 != 0) {\n        DeleteImageProfile(param_1,iVar2);\n        ResetImageProfileIterator(param_1);\n      }\n    }\n    return 1;\n  }\n  uVar1 = AcquireStringInfo(param_4);\n  SetStringInfoDatum(uVar1,param_3);\n  iVar2 = LocaleCompare(param_2,&DAT_002a81ca);\n  if ((iVar2 != 0) && (iVar2 = LocaleCompare(param_2,&DAT_002a81ce), iVar2 != 0)) {\n    uVar4 = SetImageProfile(param_1,param_2,uVar1,param_5);\n    goto LAB_0012a6fa;\n  }\n  iVar2 = GetImageProfile(param_1,&DAT_002a81ca);\n  if (iVar2 != 0) {\n    iVar3 = CompareStringInfo(iVar2,uVar1);\n    if (iVar3 == 0) {\n      uVar4 = GetImageProperty(param_1,"exif:ColorSpace",param_5);\n      iVar2 = LocaleCompare(uVar4,"1");\n      if (iVar2 != 0) {\n        FUN_0012a4e0();\n      }\n      uVar4 = GetImageProperty(param_1,"exif:InteroperabilityIndex",param_5);\n      iVar2 = LocaleCompare(uVar4,&DAT_002c3bf6);\n      if (iVar2 != 0) {\n        FUN_0012a4e0();\n      }\n      iVar2 = GetImageProfile(param_1,&DAT_002a81ca);\n      if (iVar2 == 0) goto LAB_0012a6bc;\n    }\n    iVar2 = CompareStringInfo(iVar2,uVar1);\n    if (iVar2 == 0) {\n      DestroyStringInfo(uVar1);\n      return 1;\n    }\n  }\nLAB_0012a6bc:\n  uVar4 = 1;\n  ThrowMagickException\n            (param_5,"MagickCore/profile.c","ProfileImage",0x3ec,0x140,\n             "DelegateLibrarySupportNotBuiltIn","\'%s\' (LCMS)",param_1 + 0x318);\nLAB_0012a6fa:\n  DestroyStringInfo(uVar1);\n  return uVar4;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (if_statement "if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/profile.c",0x3af,"ProfileImage");\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/profile.c",0x3af,"ProfileImage");\n  }" { comment (expression_statement "__assert_fail("image != (Image *) NULL","MagickCore/profile.c",0x3af,"ProfileImage");" (call_expression "__assert_fail("image != (Image *) NULL","MagickCore/profile.c",0x3af,"ProfileImage")" identifier (argument_list "("image != (Image *) NULL","MagickCore/profile.c",0x3af,"ProfileImage")" ( (string_literal ""image != (Image *) NULL"" " string_content ") , (string_literal ""MagickCore/profile.c"" " string_content ") , number_literal , (string_literal ""ProfileImage"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/profile.c",0x3b0,\n                  "ProfileImage");\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x3344) != -0x54535255)" ( (binary_expression "*(int *)(param_1 + 0x3344) != -0x54535255" (pointer_expression "*(int *)(param_1 + 0x3344)" * (cast_expression "(int *)(param_1 + 0x3344)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3344)" ( (binary_expression "param_1 + 0x3344" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/profile.c",0x3b0,\n                  "ProfileImage");\n  }" { comment (expression_statement "__assert_fail("image->signature == MagickCoreSignature","MagickCore/profile.c",0x3b0,\n                  "ProfileImage");" (call_expression "__assert_fail("image->signature == MagickCoreSignature","MagickCore/profile.c",0x3b0,\n                  "ProfileImage")" identifier (argument_list "("image->signature == MagickCoreSignature","MagickCore/profile.c",0x3b0,\n                  "ProfileImage")" ( (string_literal ""image->signature == MagickCoreSignature"" " string_content ") , (string_literal ""MagickCore/profile.c"" " string_content ") , number_literal , (string_literal ""ProfileImage"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/profile.c","ProfileImage",0x3b2,&DAT_002b6e4e,param_1 + 0x318)\n    ;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x3328) != 0)" ( (binary_expression "*(int *)(param_1 + 0x3328) != 0" (pointer_expression "*(int *)(param_1 + 0x3328)" * (cast_expression "(int *)(param_1 + 0x3328)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3328)" ( (binary_expression "param_1 + 0x3328" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    LogMagickEvent(0x8000,"MagickCore/profile.c","ProfileImage",0x3b2,&DAT_002b6e4e,param_1 + 0x318)\n    ;\n  }" { (expression_statement "LogMagickEvent(0x8000,"MagickCore/profile.c","ProfileImage",0x3b2,&DAT_002b6e4e,param_1 + 0x318)\n    ;" (call_expression "LogMagickEvent(0x8000,"MagickCore/profile.c","ProfileImage",0x3b2,&DAT_002b6e4e,param_1 + 0x318)" identifier (argument_list "(0x8000,"MagickCore/profile.c","ProfileImage",0x3b2,&DAT_002b6e4e,param_1 + 0x318)" ( number_literal , (string_literal ""MagickCore/profile.c"" " string_content ") , (string_literal ""ProfileImage"" " string_content ") , number_literal , (pointer_expression "&DAT_002b6e4e" & identifier) , (binary_expression "param_1 + 0x318" identifier + number_literal) ))) ;) })) (if_statement "if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("name != (const char *) NULL","MagickCore/profile.c",0x3b3,"ProfileImage");\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("name != (const char *) NULL","MagickCore/profile.c",0x3b3,"ProfileImage");\n  }" { comment (expression_statement "__assert_fail("name != (const char *) NULL","MagickCore/profile.c",0x3b3,"ProfileImage");" (call_expression "__assert_fail("name != (const char *) NULL","MagickCore/profile.c",0x3b3,"ProfileImage")" identifier (argument_list "("name != (const char *) NULL","MagickCore/profile.c",0x3b3,"ProfileImage")" ( (string_literal ""name != (const char *) NULL"" " string_content ") , (string_literal ""MagickCore/profile.c"" " string_content ") , number_literal , (string_literal ""ProfileImage"" " string_content ") ))) ;) })) (if_statement "if ((param_3 == 0) || (param_4 == 0)) {\n    ResetImageProfileIterator(param_1);\n    while (iVar2 = GetNextImageProfile(param_1), iVar2 != 0) {\n      iVar3 = IsOptionMember(iVar2,param_2);\n      if (iVar3 != 0) {\n        DeleteImageProfile(param_1,iVar2);\n        ResetImageProfileIterator(param_1);\n      }\n    }\n    return 1;\n  }" if (parenthesized_expression "((param_3 == 0) || (param_4 == 0))" ( (binary_expression "(param_3 == 0) || (param_4 == 0)" (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) || (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) ))) )) (compound_statement "{\n    ResetImageProfileIterator(param_1);\n    while (iVar2 = GetNextImageProfile(param_1), iVar2 != 0) {\n      iVar3 = IsOptionMember(iVar2,param_2);\n      if (iVar3 != 0) {\n        DeleteImageProfile(param_1,iVar2);\n        ResetImageProfileIterator(param_1);\n      }\n    }\n    return 1;\n  }" { (expression_statement "ResetImageProfileIterator(param_1);" (call_expression "ResetImageProfileIterator(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (while_statement "while (iVar2 = GetNextImageProfile(param_1), iVar2 != 0) {\n      iVar3 = IsOptionMember(iVar2,param_2);\n      if (iVar3 != 0) {\n        DeleteImageProfile(param_1,iVar2);\n        ResetImageProfileIterator(param_1);\n      }\n    }" while (parenthesized_expression "(iVar2 = GetNextImageProfile(param_1), iVar2 != 0)" ( (comma_expression "iVar2 = GetNextImageProfile(param_1), iVar2 != 0" (assignment_expression "iVar2 = GetNextImageProfile(param_1)" identifier = (call_expression "GetNextImageProfile(param_1)" identifier (argument_list "(param_1)" ( identifier )))) , (binary_expression "iVar2 != 0" identifier != number_literal)) )) (compound_statement "{\n      iVar3 = IsOptionMember(iVar2,param_2);\n      if (iVar3 != 0) {\n        DeleteImageProfile(param_1,iVar2);\n        ResetImageProfileIterator(param_1);\n      }\n    }" { (expression_statement "iVar3 = IsOptionMember(iVar2,param_2);" (assignment_expression "iVar3 = IsOptionMember(iVar2,param_2)" identifier = (call_expression "IsOptionMember(iVar2,param_2)" identifier (argument_list "(iVar2,param_2)" ( identifier , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n        DeleteImageProfile(param_1,iVar2);\n        ResetImageProfileIterator(param_1);\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        DeleteImageProfile(param_1,iVar2);\n        ResetImageProfileIterator(param_1);\n      }" { (expression_statement "DeleteImageProfile(param_1,iVar2);" (call_expression "DeleteImageProfile(param_1,iVar2)" identifier (argument_list "(param_1,iVar2)" ( identifier , identifier ))) ;) (expression_statement "ResetImageProfileIterator(param_1);" (call_expression "ResetImageProfileIterator(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) })) })) (return_statement "return 1;" return number_literal ;) })) (expression_statement "uVar1 = AcquireStringInfo(param_4);" (assignment_expression "uVar1 = AcquireStringInfo(param_4)" identifier = (call_expression "AcquireStringInfo(param_4)" identifier (argument_list "(param_4)" ( identifier )))) ;) (expression_statement "SetStringInfoDatum(uVar1,param_3);" (call_expression "SetStringInfoDatum(uVar1,param_3)" identifier (argument_list "(uVar1,param_3)" ( identifier , identifier ))) ;) (expression_statement "iVar2 = LocaleCompare(param_2,&DAT_002a81ca);" (assignment_expression "iVar2 = LocaleCompare(param_2,&DAT_002a81ca)" identifier = (call_expression "LocaleCompare(param_2,&DAT_002a81ca)" identifier (argument_list "(param_2,&DAT_002a81ca)" ( identifier , (pointer_expression "&DAT_002a81ca" & identifier) )))) ;) (if_statement "if ((iVar2 != 0) && (iVar2 = LocaleCompare(param_2,&DAT_002a81ce), iVar2 != 0)) {\n    uVar4 = SetImageProfile(param_1,param_2,uVar1,param_5);\n    goto LAB_0012a6fa;\n  }" if (parenthesized_expression "((iVar2 != 0) && (iVar2 = LocaleCompare(param_2,&DAT_002a81ce), iVar2 != 0))" ( (binary_expression "(iVar2 != 0) && (iVar2 = LocaleCompare(param_2,&DAT_002a81ce), iVar2 != 0)" (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar2 = LocaleCompare(param_2,&DAT_002a81ce), iVar2 != 0)" ( (comma_expression "iVar2 = LocaleCompare(param_2,&DAT_002a81ce), iVar2 != 0" (assignment_expression "iVar2 = LocaleCompare(param_2,&DAT_002a81ce)" identifier = (call_expression "LocaleCompare(param_2,&DAT_002a81ce)" identifier (argument_list "(param_2,&DAT_002a81ce)" ( identifier , (pointer_expression "&DAT_002a81ce" & identifier) )))) , (binary_expression "iVar2 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    uVar4 = SetImageProfile(param_1,param_2,uVar1,param_5);\n    goto LAB_0012a6fa;\n  }" { (expression_statement "uVar4 = SetImageProfile(param_1,param_2,uVar1,param_5);" (assignment_expression "uVar4 = SetImageProfile(param_1,param_2,uVar1,param_5)" identifier = (call_expression "SetImageProfile(param_1,param_2,uVar1,param_5)" identifier (argument_list "(param_1,param_2,uVar1,param_5)" ( identifier , identifier , identifier , identifier )))) ;) (goto_statement "goto LAB_0012a6fa;" goto statement_identifier ;) })) (expression_statement "iVar2 = GetImageProfile(param_1,&DAT_002a81ca);" (assignment_expression "iVar2 = GetImageProfile(param_1,&DAT_002a81ca)" identifier = (call_expression "GetImageProfile(param_1,&DAT_002a81ca)" identifier (argument_list "(param_1,&DAT_002a81ca)" ( identifier , (pointer_expression "&DAT_002a81ca" & identifier) )))) ;) (if_statement "if (iVar2 != 0) {\n    iVar3 = CompareStringInfo(iVar2,uVar1);\n    if (iVar3 == 0) {\n      uVar4 = GetImageProperty(param_1,"exif:ColorSpace",param_5);\n      iVar2 = LocaleCompare(uVar4,"1");\n      if (iVar2 != 0) {\n        FUN_0012a4e0();\n      }\n      uVar4 = GetImageProperty(param_1,"exif:InteroperabilityIndex",param_5);\n      iVar2 = LocaleCompare(uVar4,&DAT_002c3bf6);\n      if (iVar2 != 0) {\n        FUN_0012a4e0();\n      }\n      iVar2 = GetImageProfile(param_1,&DAT_002a81ca);\n      if (iVar2 == 0) goto LAB_0012a6bc;\n    }\n    iVar2 = CompareStringInfo(iVar2,uVar1);\n    if (iVar2 == 0) {\n      DestroyStringInfo(uVar1);\n      return 1;\n    }\n  }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar3 = CompareStringInfo(iVar2,uVar1);\n    if (iVar3 == 0) {\n      uVar4 = GetImageProperty(param_1,"exif:ColorSpace",param_5);\n      iVar2 = LocaleCompare(uVar4,"1");\n      if (iVar2 != 0) {\n        FUN_0012a4e0();\n      }\n      uVar4 = GetImageProperty(param_1,"exif:InteroperabilityIndex",param_5);\n      iVar2 = LocaleCompare(uVar4,&DAT_002c3bf6);\n      if (iVar2 != 0) {\n        FUN_0012a4e0();\n      }\n      iVar2 = GetImageProfile(param_1,&DAT_002a81ca);\n      if (iVar2 == 0) goto LAB_0012a6bc;\n    }\n    iVar2 = CompareStringInfo(iVar2,uVar1);\n    if (iVar2 == 0) {\n      DestroyStringInfo(uVar1);\n      return 1;\n    }\n  }" { (expression_statement "iVar3 = CompareStringInfo(iVar2,uVar1);" (assignment_expression "iVar3 = CompareStringInfo(iVar2,uVar1)" identifier = (call_expression "CompareStringInfo(iVar2,uVar1)" identifier (argument_list "(iVar2,uVar1)" ( identifier , identifier )))) ;) (if_statement "if (iVar3 == 0) {\n      uVar4 = GetImageProperty(param_1,"exif:ColorSpace",param_5);\n      iVar2 = LocaleCompare(uVar4,"1");\n      if (iVar2 != 0) {\n        FUN_0012a4e0();\n      }\n      uVar4 = GetImageProperty(param_1,"exif:InteroperabilityIndex",param_5);\n      iVar2 = LocaleCompare(uVar4,&DAT_002c3bf6);\n      if (iVar2 != 0) {\n        FUN_0012a4e0();\n      }\n      iVar2 = GetImageProfile(param_1,&DAT_002a81ca);\n      if (iVar2 == 0) goto LAB_0012a6bc;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar4 = GetImageProperty(param_1,"exif:ColorSpace",param_5);\n      iVar2 = LocaleCompare(uVar4,"1");\n      if (iVar2 != 0) {\n        FUN_0012a4e0();\n      }\n      uVar4 = GetImageProperty(param_1,"exif:InteroperabilityIndex",param_5);\n      iVar2 = LocaleCompare(uVar4,&DAT_002c3bf6);\n      if (iVar2 != 0) {\n        FUN_0012a4e0();\n      }\n      iVar2 = GetImageProfile(param_1,&DAT_002a81ca);\n      if (iVar2 == 0) goto LAB_0012a6bc;\n    }" { (expression_statement "uVar4 = GetImageProperty(param_1,"exif:ColorSpace",param_5);" (assignment_expression "uVar4 = GetImageProperty(param_1,"exif:ColorSpace",param_5)" identifier = (call_expression "GetImageProperty(param_1,"exif:ColorSpace",param_5)" identifier (argument_list "(param_1,"exif:ColorSpace",param_5)" ( identifier , (string_literal ""exif:ColorSpace"" " string_content ") , identifier )))) ;) (expression_statement "iVar2 = LocaleCompare(uVar4,"1");" (assignment_expression "iVar2 = LocaleCompare(uVar4,"1")" identifier = (call_expression "LocaleCompare(uVar4,"1")" identifier (argument_list "(uVar4,"1")" ( identifier , (string_literal ""1"" " string_content ") )))) ;) (if_statement "if (iVar2 != 0) {\n        FUN_0012a4e0();\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_0012a4e0();\n      }" { (expression_statement "FUN_0012a4e0();" (call_expression "FUN_0012a4e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar4 = GetImageProperty(param_1,"exif:InteroperabilityIndex",param_5);" (assignment_expression "uVar4 = GetImageProperty(param_1,"exif:InteroperabilityIndex",param_5)" identifier = (call_expression "GetImageProperty(param_1,"exif:InteroperabilityIndex",param_5)" identifier (argument_list "(param_1,"exif:InteroperabilityIndex",param_5)" ( identifier , (string_literal ""exif:InteroperabilityIndex"" " string_content ") , identifier )))) ;) (expression_statement "iVar2 = LocaleCompare(uVar4,&DAT_002c3bf6);" (assignment_expression "iVar2 = LocaleCompare(uVar4,&DAT_002c3bf6)" identifier = (call_expression "LocaleCompare(uVar4,&DAT_002c3bf6)" identifier (argument_list "(uVar4,&DAT_002c3bf6)" ( identifier , (pointer_expression "&DAT_002c3bf6" & identifier) )))) ;) (if_statement "if (iVar2 != 0) {\n        FUN_0012a4e0();\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_0012a4e0();\n      }" { (expression_statement "FUN_0012a4e0();" (call_expression "FUN_0012a4e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar2 = GetImageProfile(param_1,&DAT_002a81ca);" (assignment_expression "iVar2 = GetImageProfile(param_1,&DAT_002a81ca)" identifier = (call_expression "GetImageProfile(param_1,&DAT_002a81ca)" identifier (argument_list "(param_1,&DAT_002a81ca)" ( identifier , (pointer_expression "&DAT_002a81ca" & identifier) )))) ;) (if_statement "if (iVar2 == 0) goto LAB_0012a6bc;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0012a6bc;" goto statement_identifier ;)) })) (expression_statement "iVar2 = CompareStringInfo(iVar2,uVar1);" (assignment_expression "iVar2 = CompareStringInfo(iVar2,uVar1)" identifier = (call_expression "CompareStringInfo(iVar2,uVar1)" identifier (argument_list "(iVar2,uVar1)" ( identifier , identifier )))) ;) (if_statement "if (iVar2 == 0) {\n      DestroyStringInfo(uVar1);\n      return 1;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      DestroyStringInfo(uVar1);\n      return 1;\n    }" { (expression_statement "DestroyStringInfo(uVar1);" (call_expression "DestroyStringInfo(uVar1)" identifier (argument_list "(uVar1)" ( identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) })) (labeled_statement "LAB_0012a6bc:\n  uVar4 = 1;" statement_identifier : (expression_statement "uVar4 = 1;" (assignment_expression "uVar4 = 1" identifier = number_literal) ;)) (expression_statement "ThrowMagickException\n            (param_5,"MagickCore/profile.c","ProfileImage",0x3ec,0x140,\n             "DelegateLibrarySupportNotBuiltIn","\'%s\' (LCMS)",param_1 + 0x318);" (call_expression "ThrowMagickException\n            (param_5,"MagickCore/profile.c","ProfileImage",0x3ec,0x140,\n             "DelegateLibrarySupportNotBuiltIn","\'%s\' (LCMS)",param_1 + 0x318)" identifier (argument_list "(param_5,"MagickCore/profile.c","ProfileImage",0x3ec,0x140,\n             "DelegateLibrarySupportNotBuiltIn","\'%s\' (LCMS)",param_1 + 0x318)" ( identifier , (string_literal ""MagickCore/profile.c"" " string_content ") , (string_literal ""ProfileImage"" " string_content ") , number_literal , number_literal , (string_literal ""DelegateLibrarySupportNotBuiltIn"" " string_content ") , (string_literal ""\'%s\' (LCMS)"" " escape_sequence string_content escape_sequence string_content ") , (binary_expression "param_1 + 0x318" identifier + number_literal) ))) ;) (labeled_statement "LAB_0012a6fa:\n  DestroyStringInfo(uVar1);" statement_identifier : (expression_statement "DestroyStringInfo(uVar1);" (call_expression "DestroyStringInfo(uVar1)" identifier (argument_list "(uVar1)" ( identifier ))) ;)) (return_statement "return uVar4;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n/* WARNING: Enum "GravityType": Some values do not have unique names */\n/* WARNING: Enum "DisposeType": Some values do not have unique names */\n/* WARNING: Enum "ChannelType": Some values do not have unique names */\n/* WARNING: Enum "PixelChannel": Some values do not have unique names */\n/* WARNING: Enum "ExceptionType": Some values do not have unique names */\n/* WARNING: Enum "LogEventType": Some values do not have unique names */\n\nMagickBooleanType\nProfileImage(Image *image,char *name,void *datum,size_t length,ExceptionInfo *exception)\n\n{\n  StringInfo *string_info;\n  int iVar1;\n  StringInfo *target;\n  char *pcVar2;\n  MagickBooleanType MVar3;\n  \n  if (image == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/profile.c",0x3af,"ProfileImage");\n  }\n  if (image->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/profile.c",0x3b0,\n                  "ProfileImage");\n  }\n  if (image->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"MagickCore/profile.c","ProfileImage",0x3b2,"%s",image->filename);\n  }\n  if (name == (char *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("name != (const char *) NULL","MagickCore/profile.c",0x3b3,"ProfileImage");\n  }\n  if ((datum == (void *)0x0) || (length == 0)) {\n    ResetImageProfileIterator(image);\n    while (pcVar2 = GetNextImageProfile(image), pcVar2 != (char *)0x0) {\n      MVar3 = IsOptionMember(pcVar2,name);\n      if (MVar3 != MagickFalse) {\n        DeleteImageProfile(image,pcVar2);\n        ResetImageProfileIterator(image);\n      }\n    }\n    return MagickTrue;\n  }\n  string_info = AcquireStringInfo(length);\n  SetStringInfoDatum(string_info,(uchar *)datum);\n  iVar1 = LocaleCompare(name,"icc");\n  if ((iVar1 != 0) && (iVar1 = LocaleCompare(name,"icm"), iVar1 != 0)) {\n    MVar3 = SetImageProfile(image,name,string_info,exception);\n    goto LAB_0012a6fa;\n  }\n  target = GetImageProfile(image,"icc");\n  if (target != (StringInfo *)0x0) {\n    iVar1 = CompareStringInfo(target,string_info);\n    if (iVar1 == 0) {\n      pcVar2 = GetImageProperty(image,"exif:ColorSpace",exception);\n      iVar1 = LocaleCompare(pcVar2,"1");\n      if (iVar1 != 0) {\n        SetsRGBImageProfile(image,exception);\n      }\n      pcVar2 = GetImageProperty(image,"exif:InteroperabilityIndex",exception);\n      iVar1 = LocaleCompare(pcVar2,"R98.");\n      if (iVar1 != 0) {\n        SetsRGBImageProfile(image,exception);\n      }\n      target = GetImageProfile(image,"icc");\n      if (target == (StringInfo *)0x0) goto LAB_0012a6bc;\n    }\n    iVar1 = CompareStringInfo(target,string_info);\n    if (iVar1 == 0) {\n      DestroyStringInfo(string_info);\n      return MagickTrue;\n    }\n  }\nLAB_0012a6bc:\n  MVar3 = MagickTrue;\n  ThrowMagickException\n            (exception,"MagickCore/profile.c","ProfileImage",0x3ec,MissingDelegateWarning,\n             "DelegateLibrarySupportNotBuiltIn","\'%s\' (LCMS)",image->filename);\nLAB_0012a6fa:\n  DestroyStringInfo(string_info);\n  return MVar3;\n}\n\n" comment comment comment comment comment comment comment comment (function_definition "MagickBooleanType\nProfileImage(Image *image,char *name,void *datum,size_t length,ExceptionInfo *exception)\n\n{\n  StringInfo *string_info;\n  int iVar1;\n  StringInfo *target;\n  char *pcVar2;\n  MagickBooleanType MVar3;\n  \n  if (image == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/profile.c",0x3af,"ProfileImage");\n  }\n  if (image->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/profile.c",0x3b0,\n                  "ProfileImage");\n  }\n  if (image->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"MagickCore/profile.c","ProfileImage",0x3b2,"%s",image->filename);\n  }\n  if (name == (char *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("name != (const char *) NULL","MagickCore/profile.c",0x3b3,"ProfileImage");\n  }\n  if ((datum == (void *)0x0) || (length == 0)) {\n    ResetImageProfileIterator(image);\n    while (pcVar2 = GetNextImageProfile(image), pcVar2 != (char *)0x0) {\n      MVar3 = IsOptionMember(pcVar2,name);\n      if (MVar3 != MagickFalse) {\n        DeleteImageProfile(image,pcVar2);\n        ResetImageProfileIterator(image);\n      }\n    }\n    return MagickTrue;\n  }\n  string_info = AcquireStringInfo(length);\n  SetStringInfoDatum(string_info,(uchar *)datum);\n  iVar1 = LocaleCompare(name,"icc");\n  if ((iVar1 != 0) && (iVar1 = LocaleCompare(name,"icm"), iVar1 != 0)) {\n    MVar3 = SetImageProfile(image,name,string_info,exception);\n    goto LAB_0012a6fa;\n  }\n  target = GetImageProfile(image,"icc");\n  if (target != (StringInfo *)0x0) {\n    iVar1 = CompareStringInfo(target,string_info);\n    if (iVar1 == 0) {\n      pcVar2 = GetImageProperty(image,"exif:ColorSpace",exception);\n      iVar1 = LocaleCompare(pcVar2,"1");\n      if (iVar1 != 0) {\n        SetsRGBImageProfile(image,exception);\n      }\n      pcVar2 = GetImageProperty(image,"exif:InteroperabilityIndex",exception);\n      iVar1 = LocaleCompare(pcVar2,"R98.");\n      if (iVar1 != 0) {\n        SetsRGBImageProfile(image,exception);\n      }\n      target = GetImageProfile(image,"icc");\n      if (target == (StringInfo *)0x0) goto LAB_0012a6bc;\n    }\n    iVar1 = CompareStringInfo(target,string_info);\n    if (iVar1 == 0) {\n      DestroyStringInfo(string_info);\n      return MagickTrue;\n    }\n  }\nLAB_0012a6bc:\n  MVar3 = MagickTrue;\n  ThrowMagickException\n            (exception,"MagickCore/profile.c","ProfileImage",0x3ec,MissingDelegateWarning,\n             "DelegateLibrarySupportNotBuiltIn","\'%s\' (LCMS)",image->filename);\nLAB_0012a6fa:\n  DestroyStringInfo(string_info);\n  return MVar3;\n}" type_identifier (function_declarator "ProfileImage(Image *image,char *name,void *datum,size_t length,ExceptionInfo *exception)" identifier (parameter_list "(Image *image,char *name,void *datum,size_t length,ExceptionInfo *exception)" ( (parameter_declaration "Image *image" type_identifier (pointer_declarator "*image" * identifier)) , (parameter_declaration "char *name" primitive_type (pointer_declarator "*name" * identifier)) , (parameter_declaration "void *datum" primitive_type (pointer_declarator "*datum" * identifier)) , (parameter_declaration "size_t length" primitive_type identifier) , (parameter_declaration "ExceptionInfo *exception" type_identifier (pointer_declarator "*exception" * identifier)) ))) (compound_statement "{\n  StringInfo *string_info;\n  int iVar1;\n  StringInfo *target;\n  char *pcVar2;\n  MagickBooleanType MVar3;\n  \n  if (image == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/profile.c",0x3af,"ProfileImage");\n  }\n  if (image->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/profile.c",0x3b0,\n                  "ProfileImage");\n  }\n  if (image->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"MagickCore/profile.c","ProfileImage",0x3b2,"%s",image->filename);\n  }\n  if (name == (char *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("name != (const char *) NULL","MagickCore/profile.c",0x3b3,"ProfileImage");\n  }\n  if ((datum == (void *)0x0) || (length == 0)) {\n    ResetImageProfileIterator(image);\n    while (pcVar2 = GetNextImageProfile(image), pcVar2 != (char *)0x0) {\n      MVar3 = IsOptionMember(pcVar2,name);\n      if (MVar3 != MagickFalse) {\n        DeleteImageProfile(image,pcVar2);\n        ResetImageProfileIterator(image);\n      }\n    }\n    return MagickTrue;\n  }\n  string_info = AcquireStringInfo(length);\n  SetStringInfoDatum(string_info,(uchar *)datum);\n  iVar1 = LocaleCompare(name,"icc");\n  if ((iVar1 != 0) && (iVar1 = LocaleCompare(name,"icm"), iVar1 != 0)) {\n    MVar3 = SetImageProfile(image,name,string_info,exception);\n    goto LAB_0012a6fa;\n  }\n  target = GetImageProfile(image,"icc");\n  if (target != (StringInfo *)0x0) {\n    iVar1 = CompareStringInfo(target,string_info);\n    if (iVar1 == 0) {\n      pcVar2 = GetImageProperty(image,"exif:ColorSpace",exception);\n      iVar1 = LocaleCompare(pcVar2,"1");\n      if (iVar1 != 0) {\n        SetsRGBImageProfile(image,exception);\n      }\n      pcVar2 = GetImageProperty(image,"exif:InteroperabilityIndex",exception);\n      iVar1 = LocaleCompare(pcVar2,"R98.");\n      if (iVar1 != 0) {\n        SetsRGBImageProfile(image,exception);\n      }\n      target = GetImageProfile(image,"icc");\n      if (target == (StringInfo *)0x0) goto LAB_0012a6bc;\n    }\n    iVar1 = CompareStringInfo(target,string_info);\n    if (iVar1 == 0) {\n      DestroyStringInfo(string_info);\n      return MagickTrue;\n    }\n  }\nLAB_0012a6bc:\n  MVar3 = MagickTrue;\n  ThrowMagickException\n            (exception,"MagickCore/profile.c","ProfileImage",0x3ec,MissingDelegateWarning,\n             "DelegateLibrarySupportNotBuiltIn","\'%s\' (LCMS)",image->filename);\nLAB_0012a6fa:\n  DestroyStringInfo(string_info);\n  return MVar3;\n}" { (declaration "StringInfo *string_info;" type_identifier (pointer_declarator "*string_info" * identifier) ;) (declaration "int iVar1;" primitive_type identifier ;) (declaration "StringInfo *target;" type_identifier (pointer_declarator "*target" * identifier) ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "MagickBooleanType MVar3;" type_identifier identifier ;) (if_statement "if (image == (Image *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/profile.c",0x3af,"ProfileImage");\n  }" if (parenthesized_expression "(image == (Image *)0x0)" ( (binary_expression "image == (Image *)0x0" identifier == (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image != (Image *) NULL","MagickCore/profile.c",0x3af,"ProfileImage");\n  }" { comment (expression_statement "__assert_fail("image != (Image *) NULL","MagickCore/profile.c",0x3af,"ProfileImage");" (call_expression "__assert_fail("image != (Image *) NULL","MagickCore/profile.c",0x3af,"ProfileImage")" identifier (argument_list "("image != (Image *) NULL","MagickCore/profile.c",0x3af,"ProfileImage")" ( (string_literal ""image != (Image *) NULL"" " string_content ") , (string_literal ""MagickCore/profile.c"" " string_content ") , number_literal , (string_literal ""ProfileImage"" " string_content ") ))) ;) })) (if_statement "if (image->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/profile.c",0x3b0,\n                  "ProfileImage");\n  }" if (parenthesized_expression "(image->signature != 0xabacadab)" ( (binary_expression "image->signature != 0xabacadab" (field_expression "image->signature" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/profile.c",0x3b0,\n                  "ProfileImage");\n  }" { comment (expression_statement "__assert_fail("image->signature == MagickCoreSignature","MagickCore/profile.c",0x3b0,\n                  "ProfileImage");" (call_expression "__assert_fail("image->signature == MagickCoreSignature","MagickCore/profile.c",0x3b0,\n                  "ProfileImage")" identifier (argument_list "("image->signature == MagickCoreSignature","MagickCore/profile.c",0x3b0,\n                  "ProfileImage")" ( (string_literal ""image->signature == MagickCoreSignature"" " string_content ") , (string_literal ""MagickCore/profile.c"" " string_content ") , number_literal , (string_literal ""ProfileImage"" " string_content ") ))) ;) })) (if_statement "if (image->debug != MagickFalse) {\n    LogMagickEvent(TraceEvent,"MagickCore/profile.c","ProfileImage",0x3b2,"%s",image->filename);\n  }" if (parenthesized_expression "(image->debug != MagickFalse)" ( (binary_expression "image->debug != MagickFalse" (field_expression "image->debug" identifier -> field_identifier) != identifier) )) (compound_statement "{\n    LogMagickEvent(TraceEvent,"MagickCore/profile.c","ProfileImage",0x3b2,"%s",image->filename);\n  }" { (expression_statement "LogMagickEvent(TraceEvent,"MagickCore/profile.c","ProfileImage",0x3b2,"%s",image->filename);" (call_expression "LogMagickEvent(TraceEvent,"MagickCore/profile.c","ProfileImage",0x3b2,"%s",image->filename)" identifier (argument_list "(TraceEvent,"MagickCore/profile.c","ProfileImage",0x3b2,"%s",image->filename)" ( identifier , (string_literal ""MagickCore/profile.c"" " string_content ") , (string_literal ""ProfileImage"" " string_content ") , number_literal , (string_literal ""%s"" " string_content ") , (field_expression "image->filename" identifier -> field_identifier) ))) ;) })) (if_statement "if (name == (char *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("name != (const char *) NULL","MagickCore/profile.c",0x3b3,"ProfileImage");\n  }" if (parenthesized_expression "(name == (char *)0x0)" ( (binary_expression "name == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("name != (const char *) NULL","MagickCore/profile.c",0x3b3,"ProfileImage");\n  }" { comment (expression_statement "__assert_fail("name != (const char *) NULL","MagickCore/profile.c",0x3b3,"ProfileImage");" (call_expression "__assert_fail("name != (const char *) NULL","MagickCore/profile.c",0x3b3,"ProfileImage")" identifier (argument_list "("name != (const char *) NULL","MagickCore/profile.c",0x3b3,"ProfileImage")" ( (string_literal ""name != (const char *) NULL"" " string_content ") , (string_literal ""MagickCore/profile.c"" " string_content ") , number_literal , (string_literal ""ProfileImage"" " string_content ") ))) ;) })) (if_statement "if ((datum == (void *)0x0) || (length == 0)) {\n    ResetImageProfileIterator(image);\n    while (pcVar2 = GetNextImageProfile(image), pcVar2 != (char *)0x0) {\n      MVar3 = IsOptionMember(pcVar2,name);\n      if (MVar3 != MagickFalse) {\n        DeleteImageProfile(image,pcVar2);\n        ResetImageProfileIterator(image);\n      }\n    }\n    return MagickTrue;\n  }" if (parenthesized_expression "((datum == (void *)0x0) || (length == 0))" ( (binary_expression "(datum == (void *)0x0) || (length == 0)" (parenthesized_expression "(datum == (void *)0x0)" ( (binary_expression "datum == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(length == 0)" ( (binary_expression "length == 0" identifier == number_literal) ))) )) (compound_statement "{\n    ResetImageProfileIterator(image);\n    while (pcVar2 = GetNextImageProfile(image), pcVar2 != (char *)0x0) {\n      MVar3 = IsOptionMember(pcVar2,name);\n      if (MVar3 != MagickFalse) {\n        DeleteImageProfile(image,pcVar2);\n        ResetImageProfileIterator(image);\n      }\n    }\n    return MagickTrue;\n  }" { (expression_statement "ResetImageProfileIterator(image);" (call_expression "ResetImageProfileIterator(image)" identifier (argument_list "(image)" ( identifier ))) ;) (while_statement "while (pcVar2 = GetNextImageProfile(image), pcVar2 != (char *)0x0) {\n      MVar3 = IsOptionMember(pcVar2,name);\n      if (MVar3 != MagickFalse) {\n        DeleteImageProfile(image,pcVar2);\n        ResetImageProfileIterator(image);\n      }\n    }" while (parenthesized_expression "(pcVar2 = GetNextImageProfile(image), pcVar2 != (char *)0x0)" ( (comma_expression "pcVar2 = GetNextImageProfile(image), pcVar2 != (char *)0x0" (assignment_expression "pcVar2 = GetNextImageProfile(image)" identifier = (call_expression "GetNextImageProfile(image)" identifier (argument_list "(image)" ( identifier )))) , (binary_expression "pcVar2 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n      MVar3 = IsOptionMember(pcVar2,name);\n      if (MVar3 != MagickFalse) {\n        DeleteImageProfile(image,pcVar2);\n        ResetImageProfileIterator(image);\n      }\n    }" { (expression_statement "MVar3 = IsOptionMember(pcVar2,name);" (assignment_expression "MVar3 = IsOptionMember(pcVar2,name)" identifier = (call_expression "IsOptionMember(pcVar2,name)" identifier (argument_list "(pcVar2,name)" ( identifier , identifier )))) ;) (if_statement "if (MVar3 != MagickFalse) {\n        DeleteImageProfile(image,pcVar2);\n        ResetImageProfileIterator(image);\n      }" if (parenthesized_expression "(MVar3 != MagickFalse)" ( (binary_expression "MVar3 != MagickFalse" identifier != identifier) )) (compound_statement "{\n        DeleteImageProfile(image,pcVar2);\n        ResetImageProfileIterator(image);\n      }" { (expression_statement "DeleteImageProfile(image,pcVar2);" (call_expression "DeleteImageProfile(image,pcVar2)" identifier (argument_list "(image,pcVar2)" ( identifier , identifier ))) ;) (expression_statement "ResetImageProfileIterator(image);" (call_expression "ResetImageProfileIterator(image)" identifier (argument_list "(image)" ( identifier ))) ;) })) })) (return_statement "return MagickTrue;" return identifier ;) })) (expression_statement "string_info = AcquireStringInfo(length);" (assignment_expression "string_info = AcquireStringInfo(length)" identifier = (call_expression "AcquireStringInfo(length)" identifier (argument_list "(length)" ( identifier )))) ;) (expression_statement "SetStringInfoDatum(string_info,(uchar *)datum);" (call_expression "SetStringInfoDatum(string_info,(uchar *)datum)" identifier (argument_list "(string_info,(uchar *)datum)" ( identifier , (cast_expression "(uchar *)datum" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "iVar1 = LocaleCompare(name,"icc");" (assignment_expression "iVar1 = LocaleCompare(name,"icc")" identifier = (call_expression "LocaleCompare(name,"icc")" identifier (argument_list "(name,"icc")" ( identifier , (string_literal ""icc"" " string_content ") )))) ;) (if_statement "if ((iVar1 != 0) && (iVar1 = LocaleCompare(name,"icm"), iVar1 != 0)) {\n    MVar3 = SetImageProfile(image,name,string_info,exception);\n    goto LAB_0012a6fa;\n  }" if (parenthesized_expression "((iVar1 != 0) && (iVar1 = LocaleCompare(name,"icm"), iVar1 != 0))" ( (binary_expression "(iVar1 != 0) && (iVar1 = LocaleCompare(name,"icm"), iVar1 != 0)" (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar1 = LocaleCompare(name,"icm"), iVar1 != 0)" ( (comma_expression "iVar1 = LocaleCompare(name,"icm"), iVar1 != 0" (assignment_expression "iVar1 = LocaleCompare(name,"icm")" identifier = (call_expression "LocaleCompare(name,"icm")" identifier (argument_list "(name,"icm")" ( identifier , (string_literal ""icm"" " string_content ") )))) , (binary_expression "iVar1 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    MVar3 = SetImageProfile(image,name,string_info,exception);\n    goto LAB_0012a6fa;\n  }" { (expression_statement "MVar3 = SetImageProfile(image,name,string_info,exception);" (assignment_expression "MVar3 = SetImageProfile(image,name,string_info,exception)" identifier = (call_expression "SetImageProfile(image,name,string_info,exception)" identifier (argument_list "(image,name,string_info,exception)" ( identifier , identifier , identifier , identifier )))) ;) (goto_statement "goto LAB_0012a6fa;" goto statement_identifier ;) })) (expression_statement "target = GetImageProfile(image,"icc");" (assignment_expression "target = GetImageProfile(image,"icc")" identifier = (call_expression "GetImageProfile(image,"icc")" identifier (argument_list "(image,"icc")" ( identifier , (string_literal ""icc"" " string_content ") )))) ;) (if_statement "if (target != (StringInfo *)0x0) {\n    iVar1 = CompareStringInfo(target,string_info);\n    if (iVar1 == 0) {\n      pcVar2 = GetImageProperty(image,"exif:ColorSpace",exception);\n      iVar1 = LocaleCompare(pcVar2,"1");\n      if (iVar1 != 0) {\n        SetsRGBImageProfile(image,exception);\n      }\n      pcVar2 = GetImageProperty(image,"exif:InteroperabilityIndex",exception);\n      iVar1 = LocaleCompare(pcVar2,"R98.");\n      if (iVar1 != 0) {\n        SetsRGBImageProfile(image,exception);\n      }\n      target = GetImageProfile(image,"icc");\n      if (target == (StringInfo *)0x0) goto LAB_0012a6bc;\n    }\n    iVar1 = CompareStringInfo(target,string_info);\n    if (iVar1 == 0) {\n      DestroyStringInfo(string_info);\n      return MagickTrue;\n    }\n  }" if (parenthesized_expression "(target != (StringInfo *)0x0)" ( (binary_expression "target != (StringInfo *)0x0" identifier != (cast_expression "(StringInfo *)0x0" ( (type_descriptor "StringInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar1 = CompareStringInfo(target,string_info);\n    if (iVar1 == 0) {\n      pcVar2 = GetImageProperty(image,"exif:ColorSpace",exception);\n      iVar1 = LocaleCompare(pcVar2,"1");\n      if (iVar1 != 0) {\n        SetsRGBImageProfile(image,exception);\n      }\n      pcVar2 = GetImageProperty(image,"exif:InteroperabilityIndex",exception);\n      iVar1 = LocaleCompare(pcVar2,"R98.");\n      if (iVar1 != 0) {\n        SetsRGBImageProfile(image,exception);\n      }\n      target = GetImageProfile(image,"icc");\n      if (target == (StringInfo *)0x0) goto LAB_0012a6bc;\n    }\n    iVar1 = CompareStringInfo(target,string_info);\n    if (iVar1 == 0) {\n      DestroyStringInfo(string_info);\n      return MagickTrue;\n    }\n  }" { (expression_statement "iVar1 = CompareStringInfo(target,string_info);" (assignment_expression "iVar1 = CompareStringInfo(target,string_info)" identifier = (call_expression "CompareStringInfo(target,string_info)" identifier (argument_list "(target,string_info)" ( identifier , identifier )))) ;) (if_statement "if (iVar1 == 0) {\n      pcVar2 = GetImageProperty(image,"exif:ColorSpace",exception);\n      iVar1 = LocaleCompare(pcVar2,"1");\n      if (iVar1 != 0) {\n        SetsRGBImageProfile(image,exception);\n      }\n      pcVar2 = GetImageProperty(image,"exif:InteroperabilityIndex",exception);\n      iVar1 = LocaleCompare(pcVar2,"R98.");\n      if (iVar1 != 0) {\n        SetsRGBImageProfile(image,exception);\n      }\n      target = GetImageProfile(image,"icc");\n      if (target == (StringInfo *)0x0) goto LAB_0012a6bc;\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar2 = GetImageProperty(image,"exif:ColorSpace",exception);\n      iVar1 = LocaleCompare(pcVar2,"1");\n      if (iVar1 != 0) {\n        SetsRGBImageProfile(image,exception);\n      }\n      pcVar2 = GetImageProperty(image,"exif:InteroperabilityIndex",exception);\n      iVar1 = LocaleCompare(pcVar2,"R98.");\n      if (iVar1 != 0) {\n        SetsRGBImageProfile(image,exception);\n      }\n      target = GetImageProfile(image,"icc");\n      if (target == (StringInfo *)0x0) goto LAB_0012a6bc;\n    }" { (expression_statement "pcVar2 = GetImageProperty(image,"exif:ColorSpace",exception);" (assignment_expression "pcVar2 = GetImageProperty(image,"exif:ColorSpace",exception)" identifier = (call_expression "GetImageProperty(image,"exif:ColorSpace",exception)" identifier (argument_list "(image,"exif:ColorSpace",exception)" ( identifier , (string_literal ""exif:ColorSpace"" " string_content ") , identifier )))) ;) (expression_statement "iVar1 = LocaleCompare(pcVar2,"1");" (assignment_expression "iVar1 = LocaleCompare(pcVar2,"1")" identifier = (call_expression "LocaleCompare(pcVar2,"1")" identifier (argument_list "(pcVar2,"1")" ( identifier , (string_literal ""1"" " string_content ") )))) ;) (if_statement "if (iVar1 != 0) {\n        SetsRGBImageProfile(image,exception);\n      }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n        SetsRGBImageProfile(image,exception);\n      }" { (expression_statement "SetsRGBImageProfile(image,exception);" (call_expression "SetsRGBImageProfile(image,exception)" identifier (argument_list "(image,exception)" ( identifier , identifier ))) ;) })) (expression_statement "pcVar2 = GetImageProperty(image,"exif:InteroperabilityIndex",exception);" (assignment_expression "pcVar2 = GetImageProperty(image,"exif:InteroperabilityIndex",exception)" identifier = (call_expression "GetImageProperty(image,"exif:InteroperabilityIndex",exception)" identifier (argument_list "(image,"exif:InteroperabilityIndex",exception)" ( identifier , (string_literal ""exif:InteroperabilityIndex"" " string_content ") , identifier )))) ;) (expression_statement "iVar1 = LocaleCompare(pcVar2,"R98.");" (assignment_expression "iVar1 = LocaleCompare(pcVar2,"R98.")" identifier = (call_expression "LocaleCompare(pcVar2,"R98.")" identifier (argument_list "(pcVar2,"R98.")" ( identifier , (string_literal ""R98."" " string_content ") )))) ;) (if_statement "if (iVar1 != 0) {\n        SetsRGBImageProfile(image,exception);\n      }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n        SetsRGBImageProfile(image,exception);\n      }" { (expression_statement "SetsRGBImageProfile(image,exception);" (call_expression "SetsRGBImageProfile(image,exception)" identifier (argument_list "(image,exception)" ( identifier , identifier ))) ;) })) (expression_statement "target = GetImageProfile(image,"icc");" (assignment_expression "target = GetImageProfile(image,"icc")" identifier = (call_expression "GetImageProfile(image,"icc")" identifier (argument_list "(image,"icc")" ( identifier , (string_literal ""icc"" " string_content ") )))) ;) (if_statement "if (target == (StringInfo *)0x0) goto LAB_0012a6bc;" if (parenthesized_expression "(target == (StringInfo *)0x0)" ( (binary_expression "target == (StringInfo *)0x0" identifier == (cast_expression "(StringInfo *)0x0" ( (type_descriptor "StringInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0012a6bc;" goto statement_identifier ;)) })) (expression_statement "iVar1 = CompareStringInfo(target,string_info);" (assignment_expression "iVar1 = CompareStringInfo(target,string_info)" identifier = (call_expression "CompareStringInfo(target,string_info)" identifier (argument_list "(target,string_info)" ( identifier , identifier )))) ;) (if_statement "if (iVar1 == 0) {\n      DestroyStringInfo(string_info);\n      return MagickTrue;\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      DestroyStringInfo(string_info);\n      return MagickTrue;\n    }" { (expression_statement "DestroyStringInfo(string_info);" (call_expression "DestroyStringInfo(string_info)" identifier (argument_list "(string_info)" ( identifier ))) ;) (return_statement "return MagickTrue;" return identifier ;) })) })) (labeled_statement "LAB_0012a6bc:\n  MVar3 = MagickTrue;" statement_identifier : (expression_statement "MVar3 = MagickTrue;" (assignment_expression "MVar3 = MagickTrue" identifier = identifier) ;)) (expression_statement "ThrowMagickException\n            (exception,"MagickCore/profile.c","ProfileImage",0x3ec,MissingDelegateWarning,\n             "DelegateLibrarySupportNotBuiltIn","\'%s\' (LCMS)",image->filename);" (call_expression "ThrowMagickException\n            (exception,"MagickCore/profile.c","ProfileImage",0x3ec,MissingDelegateWarning,\n             "DelegateLibrarySupportNotBuiltIn","\'%s\' (LCMS)",image->filename)" identifier (argument_list "(exception,"MagickCore/profile.c","ProfileImage",0x3ec,MissingDelegateWarning,\n             "DelegateLibrarySupportNotBuiltIn","\'%s\' (LCMS)",image->filename)" ( identifier , (string_literal ""MagickCore/profile.c"" " string_content ") , (string_literal ""ProfileImage"" " string_content ") , number_literal , identifier , (string_literal ""DelegateLibrarySupportNotBuiltIn"" " string_content ") , (string_literal ""\'%s\' (LCMS)"" " escape_sequence string_content escape_sequence string_content ") , (field_expression "image->filename" identifier -> field_identifier) ))) ;) (labeled_statement "LAB_0012a6fa:\n  DestroyStringInfo(string_info);" statement_identifier : (expression_statement "DestroyStringInfo(string_info);" (call_expression "DestroyStringInfo(string_info)" identifier (argument_list "(string_info)" ( identifier ))) ;)) (return_statement "return MVar3;" return identifier ;) })))
(translation_unit "undefined4 ProfileImage(int param_1,int param_2,int param_3,int param_4,undefined4 param_5)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  \n  if (param_1 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/profile.c",0x3af,"ProfileImage");\n  }\n  if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/profile.c",0x3b0,\n                  "ProfileImage");\n  }\n  if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/profile.c","ProfileImage",0x3b2,&DAT_002b6e4e,param_1 + 0x318)\n    ;\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail("name != (const char *) NULL","MagickCore/profile.c",0x3b3,"ProfileImage");\n  }\n  if ((param_3 == 0) || (param_4 == 0)) {\n    ResetImageProfileIterator(param_1);\n    while (iVar2 = GetNextImageProfile(param_1), iVar2 != 0) {\n      iVar3 = IsOptionMember(iVar2,param_2);\n      if (iVar3 != 0) {\n        DeleteImageProfile(param_1,iVar2);\n        ResetImageProfileIterator(param_1);\n      }\n    }\n    return 1;\n  }\n  uVar1 = AcquireStringInfo(param_4);\n  SetStringInfoDatum(uVar1,param_3);\n  iVar2 = LocaleCompare(param_2,&DAT_002a81ca);\n  if ((iVar2 != 0) && (iVar2 = LocaleCompare(param_2,&DAT_002a81ce), iVar2 != 0)) {\n    uVar4 = SetImageProfile(param_1,param_2,uVar1,param_5);\n    goto LAB_0012a6fa;\n  }\n  iVar2 = GetImageProfile(param_1,&DAT_002a81ca);\n  if (iVar2 != 0) {\n    iVar3 = CompareStringInfo(iVar2,uVar1);\n    if (iVar3 == 0) {\n      uVar4 = GetImageProperty(param_1,"exif:ColorSpace",param_5);\n      iVar2 = LocaleCompare(uVar4,"1");\n      if (iVar2 != 0) {\n        FUN_0012a4e0();\n      }\n      uVar4 = GetImageProperty(param_1,"exif:InteroperabilityIndex",param_5);\n      iVar2 = LocaleCompare(uVar4,&DAT_002c3bf6);\n      if (iVar2 != 0) {\n        FUN_0012a4e0();\n      }\n      iVar2 = GetImageProfile(param_1,&DAT_002a81ca);\n      if (iVar2 == 0) goto LAB_0012a6bc;\n    }\n    iVar2 = CompareStringInfo(iVar2,uVar1);\n    if (iVar2 == 0) {\n      DestroyStringInfo(uVar1);\n      return 1;\n    }\n  }\nLAB_0012a6bc:\n  uVar4 = 1;\n  ThrowMagickException\n            (param_5,"MagickCore/profile.c","ProfileImage",0x3ec,0x140,\n             "DelegateLibrarySupportNotBuiltIn","\'%s\' (LCMS)",param_1 + 0x318);\nLAB_0012a6fa:\n  DestroyStringInfo(uVar1);\n  return uVar4;\n}\n\n" (function_definition "undefined4 ProfileImage(int param_1,int param_2,int param_3,int param_4,undefined4 param_5)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  \n  if (param_1 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/profile.c",0x3af,"ProfileImage");\n  }\n  if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/profile.c",0x3b0,\n                  "ProfileImage");\n  }\n  if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/profile.c","ProfileImage",0x3b2,&DAT_002b6e4e,param_1 + 0x318)\n    ;\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail("name != (const char *) NULL","MagickCore/profile.c",0x3b3,"ProfileImage");\n  }\n  if ((param_3 == 0) || (param_4 == 0)) {\n    ResetImageProfileIterator(param_1);\n    while (iVar2 = GetNextImageProfile(param_1), iVar2 != 0) {\n      iVar3 = IsOptionMember(iVar2,param_2);\n      if (iVar3 != 0) {\n        DeleteImageProfile(param_1,iVar2);\n        ResetImageProfileIterator(param_1);\n      }\n    }\n    return 1;\n  }\n  uVar1 = AcquireStringInfo(param_4);\n  SetStringInfoDatum(uVar1,param_3);\n  iVar2 = LocaleCompare(param_2,&DAT_002a81ca);\n  if ((iVar2 != 0) && (iVar2 = LocaleCompare(param_2,&DAT_002a81ce), iVar2 != 0)) {\n    uVar4 = SetImageProfile(param_1,param_2,uVar1,param_5);\n    goto LAB_0012a6fa;\n  }\n  iVar2 = GetImageProfile(param_1,&DAT_002a81ca);\n  if (iVar2 != 0) {\n    iVar3 = CompareStringInfo(iVar2,uVar1);\n    if (iVar3 == 0) {\n      uVar4 = GetImageProperty(param_1,"exif:ColorSpace",param_5);\n      iVar2 = LocaleCompare(uVar4,"1");\n      if (iVar2 != 0) {\n        FUN_0012a4e0();\n      }\n      uVar4 = GetImageProperty(param_1,"exif:InteroperabilityIndex",param_5);\n      iVar2 = LocaleCompare(uVar4,&DAT_002c3bf6);\n      if (iVar2 != 0) {\n        FUN_0012a4e0();\n      }\n      iVar2 = GetImageProfile(param_1,&DAT_002a81ca);\n      if (iVar2 == 0) goto LAB_0012a6bc;\n    }\n    iVar2 = CompareStringInfo(iVar2,uVar1);\n    if (iVar2 == 0) {\n      DestroyStringInfo(uVar1);\n      return 1;\n    }\n  }\nLAB_0012a6bc:\n  uVar4 = 1;\n  ThrowMagickException\n            (param_5,"MagickCore/profile.c","ProfileImage",0x3ec,0x140,\n             "DelegateLibrarySupportNotBuiltIn","\'%s\' (LCMS)",param_1 + 0x318);\nLAB_0012a6fa:\n  DestroyStringInfo(uVar1);\n  return uVar4;\n}" type_identifier (function_declarator "ProfileImage(int param_1,int param_2,int param_3,int param_4,undefined4 param_5)" identifier (parameter_list "(int param_1,int param_2,int param_3,int param_4,undefined4 param_5)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  \n  if (param_1 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/profile.c",0x3af,"ProfileImage");\n  }\n  if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/profile.c",0x3b0,\n                  "ProfileImage");\n  }\n  if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/profile.c","ProfileImage",0x3b2,&DAT_002b6e4e,param_1 + 0x318)\n    ;\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail("name != (const char *) NULL","MagickCore/profile.c",0x3b3,"ProfileImage");\n  }\n  if ((param_3 == 0) || (param_4 == 0)) {\n    ResetImageProfileIterator(param_1);\n    while (iVar2 = GetNextImageProfile(param_1), iVar2 != 0) {\n      iVar3 = IsOptionMember(iVar2,param_2);\n      if (iVar3 != 0) {\n        DeleteImageProfile(param_1,iVar2);\n        ResetImageProfileIterator(param_1);\n      }\n    }\n    return 1;\n  }\n  uVar1 = AcquireStringInfo(param_4);\n  SetStringInfoDatum(uVar1,param_3);\n  iVar2 = LocaleCompare(param_2,&DAT_002a81ca);\n  if ((iVar2 != 0) && (iVar2 = LocaleCompare(param_2,&DAT_002a81ce), iVar2 != 0)) {\n    uVar4 = SetImageProfile(param_1,param_2,uVar1,param_5);\n    goto LAB_0012a6fa;\n  }\n  iVar2 = GetImageProfile(param_1,&DAT_002a81ca);\n  if (iVar2 != 0) {\n    iVar3 = CompareStringInfo(iVar2,uVar1);\n    if (iVar3 == 0) {\n      uVar4 = GetImageProperty(param_1,"exif:ColorSpace",param_5);\n      iVar2 = LocaleCompare(uVar4,"1");\n      if (iVar2 != 0) {\n        FUN_0012a4e0();\n      }\n      uVar4 = GetImageProperty(param_1,"exif:InteroperabilityIndex",param_5);\n      iVar2 = LocaleCompare(uVar4,&DAT_002c3bf6);\n      if (iVar2 != 0) {\n        FUN_0012a4e0();\n      }\n      iVar2 = GetImageProfile(param_1,&DAT_002a81ca);\n      if (iVar2 == 0) goto LAB_0012a6bc;\n    }\n    iVar2 = CompareStringInfo(iVar2,uVar1);\n    if (iVar2 == 0) {\n      DestroyStringInfo(uVar1);\n      return 1;\n    }\n  }\nLAB_0012a6bc:\n  uVar4 = 1;\n  ThrowMagickException\n            (param_5,"MagickCore/profile.c","ProfileImage",0x3ec,0x140,\n             "DelegateLibrarySupportNotBuiltIn","\'%s\' (LCMS)",param_1 + 0x318);\nLAB_0012a6fa:\n  DestroyStringInfo(uVar1);\n  return uVar4;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (if_statement "if (param_1 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/profile.c",0x3af,"ProfileImage");\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/profile.c",0x3af,"ProfileImage");\n  }" { (expression_statement "__assert_fail("image != (Image *) NULL","MagickCore/profile.c",0x3af,"ProfileImage");" (call_expression "__assert_fail("image != (Image *) NULL","MagickCore/profile.c",0x3af,"ProfileImage")" identifier (argument_list "("image != (Image *) NULL","MagickCore/profile.c",0x3af,"ProfileImage")" ( (string_literal ""image != (Image *) NULL"" " string_content ") , (string_literal ""MagickCore/profile.c"" " string_content ") , number_literal , (string_literal ""ProfileImage"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/profile.c",0x3b0,\n                  "ProfileImage");\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x3344) != -0x54535255)" ( (binary_expression "*(int *)(param_1 + 0x3344) != -0x54535255" (pointer_expression "*(int *)(param_1 + 0x3344)" * (cast_expression "(int *)(param_1 + 0x3344)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3344)" ( (binary_expression "param_1 + 0x3344" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/profile.c",0x3b0,\n                  "ProfileImage");\n  }" { (expression_statement "__assert_fail("image->signature == MagickCoreSignature","MagickCore/profile.c",0x3b0,\n                  "ProfileImage");" (call_expression "__assert_fail("image->signature == MagickCoreSignature","MagickCore/profile.c",0x3b0,\n                  "ProfileImage")" identifier (argument_list "("image->signature == MagickCoreSignature","MagickCore/profile.c",0x3b0,\n                  "ProfileImage")" ( (string_literal ""image->signature == MagickCoreSignature"" " string_content ") , (string_literal ""MagickCore/profile.c"" " string_content ") , number_literal , (string_literal ""ProfileImage"" " string_content ") ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/profile.c","ProfileImage",0x3b2,&DAT_002b6e4e,param_1 + 0x318)\n    ;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x3328) != 0)" ( (binary_expression "*(int *)(param_1 + 0x3328) != 0" (pointer_expression "*(int *)(param_1 + 0x3328)" * (cast_expression "(int *)(param_1 + 0x3328)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3328)" ( (binary_expression "param_1 + 0x3328" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    LogMagickEvent(0x8000,"MagickCore/profile.c","ProfileImage",0x3b2,&DAT_002b6e4e,param_1 + 0x318)\n    ;\n  }" { (expression_statement "LogMagickEvent(0x8000,"MagickCore/profile.c","ProfileImage",0x3b2,&DAT_002b6e4e,param_1 + 0x318)\n    ;" (call_expression "LogMagickEvent(0x8000,"MagickCore/profile.c","ProfileImage",0x3b2,&DAT_002b6e4e,param_1 + 0x318)" identifier (argument_list "(0x8000,"MagickCore/profile.c","ProfileImage",0x3b2,&DAT_002b6e4e,param_1 + 0x318)" ( number_literal , (string_literal ""MagickCore/profile.c"" " string_content ") , (string_literal ""ProfileImage"" " string_content ") , number_literal , (pointer_expression "&DAT_002b6e4e" & identifier) , (binary_expression "param_1 + 0x318" identifier + number_literal) ))) ;) })) (if_statement "if (param_2 == 0) {\n                    \n    __assert_fail("name != (const char *) NULL","MagickCore/profile.c",0x3b3,"ProfileImage");\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    __assert_fail("name != (const char *) NULL","MagickCore/profile.c",0x3b3,"ProfileImage");\n  }" { (expression_statement "__assert_fail("name != (const char *) NULL","MagickCore/profile.c",0x3b3,"ProfileImage");" (call_expression "__assert_fail("name != (const char *) NULL","MagickCore/profile.c",0x3b3,"ProfileImage")" identifier (argument_list "("name != (const char *) NULL","MagickCore/profile.c",0x3b3,"ProfileImage")" ( (string_literal ""name != (const char *) NULL"" " string_content ") , (string_literal ""MagickCore/profile.c"" " string_content ") , number_literal , (string_literal ""ProfileImage"" " string_content ") ))) ;) })) (if_statement "if ((param_3 == 0) || (param_4 == 0)) {\n    ResetImageProfileIterator(param_1);\n    while (iVar2 = GetNextImageProfile(param_1), iVar2 != 0) {\n      iVar3 = IsOptionMember(iVar2,param_2);\n      if (iVar3 != 0) {\n        DeleteImageProfile(param_1,iVar2);\n        ResetImageProfileIterator(param_1);\n      }\n    }\n    return 1;\n  }" if (parenthesized_expression "((param_3 == 0) || (param_4 == 0))" ( (binary_expression "(param_3 == 0) || (param_4 == 0)" (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) || (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) ))) )) (compound_statement "{\n    ResetImageProfileIterator(param_1);\n    while (iVar2 = GetNextImageProfile(param_1), iVar2 != 0) {\n      iVar3 = IsOptionMember(iVar2,param_2);\n      if (iVar3 != 0) {\n        DeleteImageProfile(param_1,iVar2);\n        ResetImageProfileIterator(param_1);\n      }\n    }\n    return 1;\n  }" { (expression_statement "ResetImageProfileIterator(param_1);" (call_expression "ResetImageProfileIterator(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (while_statement "while (iVar2 = GetNextImageProfile(param_1), iVar2 != 0) {\n      iVar3 = IsOptionMember(iVar2,param_2);\n      if (iVar3 != 0) {\n        DeleteImageProfile(param_1,iVar2);\n        ResetImageProfileIterator(param_1);\n      }\n    }" while (parenthesized_expression "(iVar2 = GetNextImageProfile(param_1), iVar2 != 0)" ( (comma_expression "iVar2 = GetNextImageProfile(param_1), iVar2 != 0" (assignment_expression "iVar2 = GetNextImageProfile(param_1)" identifier = (call_expression "GetNextImageProfile(param_1)" identifier (argument_list "(param_1)" ( identifier )))) , (binary_expression "iVar2 != 0" identifier != number_literal)) )) (compound_statement "{\n      iVar3 = IsOptionMember(iVar2,param_2);\n      if (iVar3 != 0) {\n        DeleteImageProfile(param_1,iVar2);\n        ResetImageProfileIterator(param_1);\n      }\n    }" { (expression_statement "iVar3 = IsOptionMember(iVar2,param_2);" (assignment_expression "iVar3 = IsOptionMember(iVar2,param_2)" identifier = (call_expression "IsOptionMember(iVar2,param_2)" identifier (argument_list "(iVar2,param_2)" ( identifier , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n        DeleteImageProfile(param_1,iVar2);\n        ResetImageProfileIterator(param_1);\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        DeleteImageProfile(param_1,iVar2);\n        ResetImageProfileIterator(param_1);\n      }" { (expression_statement "DeleteImageProfile(param_1,iVar2);" (call_expression "DeleteImageProfile(param_1,iVar2)" identifier (argument_list "(param_1,iVar2)" ( identifier , identifier ))) ;) (expression_statement "ResetImageProfileIterator(param_1);" (call_expression "ResetImageProfileIterator(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) })) })) (return_statement "return 1;" return number_literal ;) })) (expression_statement "uVar1 = AcquireStringInfo(param_4);" (assignment_expression "uVar1 = AcquireStringInfo(param_4)" identifier = (call_expression "AcquireStringInfo(param_4)" identifier (argument_list "(param_4)" ( identifier )))) ;) (expression_statement "SetStringInfoDatum(uVar1,param_3);" (call_expression "SetStringInfoDatum(uVar1,param_3)" identifier (argument_list "(uVar1,param_3)" ( identifier , identifier ))) ;) (expression_statement "iVar2 = LocaleCompare(param_2,&DAT_002a81ca);" (assignment_expression "iVar2 = LocaleCompare(param_2,&DAT_002a81ca)" identifier = (call_expression "LocaleCompare(param_2,&DAT_002a81ca)" identifier (argument_list "(param_2,&DAT_002a81ca)" ( identifier , (pointer_expression "&DAT_002a81ca" & identifier) )))) ;) (if_statement "if ((iVar2 != 0) && (iVar2 = LocaleCompare(param_2,&DAT_002a81ce), iVar2 != 0)) {\n    uVar4 = SetImageProfile(param_1,param_2,uVar1,param_5);\n    goto LAB_0012a6fa;\n  }" if (parenthesized_expression "((iVar2 != 0) && (iVar2 = LocaleCompare(param_2,&DAT_002a81ce), iVar2 != 0))" ( (binary_expression "(iVar2 != 0) && (iVar2 = LocaleCompare(param_2,&DAT_002a81ce), iVar2 != 0)" (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar2 = LocaleCompare(param_2,&DAT_002a81ce), iVar2 != 0)" ( (comma_expression "iVar2 = LocaleCompare(param_2,&DAT_002a81ce), iVar2 != 0" (assignment_expression "iVar2 = LocaleCompare(param_2,&DAT_002a81ce)" identifier = (call_expression "LocaleCompare(param_2,&DAT_002a81ce)" identifier (argument_list "(param_2,&DAT_002a81ce)" ( identifier , (pointer_expression "&DAT_002a81ce" & identifier) )))) , (binary_expression "iVar2 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    uVar4 = SetImageProfile(param_1,param_2,uVar1,param_5);\n    goto LAB_0012a6fa;\n  }" { (expression_statement "uVar4 = SetImageProfile(param_1,param_2,uVar1,param_5);" (assignment_expression "uVar4 = SetImageProfile(param_1,param_2,uVar1,param_5)" identifier = (call_expression "SetImageProfile(param_1,param_2,uVar1,param_5)" identifier (argument_list "(param_1,param_2,uVar1,param_5)" ( identifier , identifier , identifier , identifier )))) ;) (goto_statement "goto LAB_0012a6fa;" goto statement_identifier ;) })) (expression_statement "iVar2 = GetImageProfile(param_1,&DAT_002a81ca);" (assignment_expression "iVar2 = GetImageProfile(param_1,&DAT_002a81ca)" identifier = (call_expression "GetImageProfile(param_1,&DAT_002a81ca)" identifier (argument_list "(param_1,&DAT_002a81ca)" ( identifier , (pointer_expression "&DAT_002a81ca" & identifier) )))) ;) (if_statement "if (iVar2 != 0) {\n    iVar3 = CompareStringInfo(iVar2,uVar1);\n    if (iVar3 == 0) {\n      uVar4 = GetImageProperty(param_1,"exif:ColorSpace",param_5);\n      iVar2 = LocaleCompare(uVar4,"1");\n      if (iVar2 != 0) {\n        FUN_0012a4e0();\n      }\n      uVar4 = GetImageProperty(param_1,"exif:InteroperabilityIndex",param_5);\n      iVar2 = LocaleCompare(uVar4,&DAT_002c3bf6);\n      if (iVar2 != 0) {\n        FUN_0012a4e0();\n      }\n      iVar2 = GetImageProfile(param_1,&DAT_002a81ca);\n      if (iVar2 == 0) goto LAB_0012a6bc;\n    }\n    iVar2 = CompareStringInfo(iVar2,uVar1);\n    if (iVar2 == 0) {\n      DestroyStringInfo(uVar1);\n      return 1;\n    }\n  }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar3 = CompareStringInfo(iVar2,uVar1);\n    if (iVar3 == 0) {\n      uVar4 = GetImageProperty(param_1,"exif:ColorSpace",param_5);\n      iVar2 = LocaleCompare(uVar4,"1");\n      if (iVar2 != 0) {\n        FUN_0012a4e0();\n      }\n      uVar4 = GetImageProperty(param_1,"exif:InteroperabilityIndex",param_5);\n      iVar2 = LocaleCompare(uVar4,&DAT_002c3bf6);\n      if (iVar2 != 0) {\n        FUN_0012a4e0();\n      }\n      iVar2 = GetImageProfile(param_1,&DAT_002a81ca);\n      if (iVar2 == 0) goto LAB_0012a6bc;\n    }\n    iVar2 = CompareStringInfo(iVar2,uVar1);\n    if (iVar2 == 0) {\n      DestroyStringInfo(uVar1);\n      return 1;\n    }\n  }" { (expression_statement "iVar3 = CompareStringInfo(iVar2,uVar1);" (assignment_expression "iVar3 = CompareStringInfo(iVar2,uVar1)" identifier = (call_expression "CompareStringInfo(iVar2,uVar1)" identifier (argument_list "(iVar2,uVar1)" ( identifier , identifier )))) ;) (if_statement "if (iVar3 == 0) {\n      uVar4 = GetImageProperty(param_1,"exif:ColorSpace",param_5);\n      iVar2 = LocaleCompare(uVar4,"1");\n      if (iVar2 != 0) {\n        FUN_0012a4e0();\n      }\n      uVar4 = GetImageProperty(param_1,"exif:InteroperabilityIndex",param_5);\n      iVar2 = LocaleCompare(uVar4,&DAT_002c3bf6);\n      if (iVar2 != 0) {\n        FUN_0012a4e0();\n      }\n      iVar2 = GetImageProfile(param_1,&DAT_002a81ca);\n      if (iVar2 == 0) goto LAB_0012a6bc;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar4 = GetImageProperty(param_1,"exif:ColorSpace",param_5);\n      iVar2 = LocaleCompare(uVar4,"1");\n      if (iVar2 != 0) {\n        FUN_0012a4e0();\n      }\n      uVar4 = GetImageProperty(param_1,"exif:InteroperabilityIndex",param_5);\n      iVar2 = LocaleCompare(uVar4,&DAT_002c3bf6);\n      if (iVar2 != 0) {\n        FUN_0012a4e0();\n      }\n      iVar2 = GetImageProfile(param_1,&DAT_002a81ca);\n      if (iVar2 == 0) goto LAB_0012a6bc;\n    }" { (expression_statement "uVar4 = GetImageProperty(param_1,"exif:ColorSpace",param_5);" (assignment_expression "uVar4 = GetImageProperty(param_1,"exif:ColorSpace",param_5)" identifier = (call_expression "GetImageProperty(param_1,"exif:ColorSpace",param_5)" identifier (argument_list "(param_1,"exif:ColorSpace",param_5)" ( identifier , (string_literal ""exif:ColorSpace"" " string_content ") , identifier )))) ;) (expression_statement "iVar2 = LocaleCompare(uVar4,"1");" (assignment_expression "iVar2 = LocaleCompare(uVar4,"1")" identifier = (call_expression "LocaleCompare(uVar4,"1")" identifier (argument_list "(uVar4,"1")" ( identifier , (string_literal ""1"" " string_content ") )))) ;) (if_statement "if (iVar2 != 0) {\n        FUN_0012a4e0();\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_0012a4e0();\n      }" { (expression_statement "FUN_0012a4e0();" (call_expression "FUN_0012a4e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar4 = GetImageProperty(param_1,"exif:InteroperabilityIndex",param_5);" (assignment_expression "uVar4 = GetImageProperty(param_1,"exif:InteroperabilityIndex",param_5)" identifier = (call_expression "GetImageProperty(param_1,"exif:InteroperabilityIndex",param_5)" identifier (argument_list "(param_1,"exif:InteroperabilityIndex",param_5)" ( identifier , (string_literal ""exif:InteroperabilityIndex"" " string_content ") , identifier )))) ;) (expression_statement "iVar2 = LocaleCompare(uVar4,&DAT_002c3bf6);" (assignment_expression "iVar2 = LocaleCompare(uVar4,&DAT_002c3bf6)" identifier = (call_expression "LocaleCompare(uVar4,&DAT_002c3bf6)" identifier (argument_list "(uVar4,&DAT_002c3bf6)" ( identifier , (pointer_expression "&DAT_002c3bf6" & identifier) )))) ;) (if_statement "if (iVar2 != 0) {\n        FUN_0012a4e0();\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_0012a4e0();\n      }" { (expression_statement "FUN_0012a4e0();" (call_expression "FUN_0012a4e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar2 = GetImageProfile(param_1,&DAT_002a81ca);" (assignment_expression "iVar2 = GetImageProfile(param_1,&DAT_002a81ca)" identifier = (call_expression "GetImageProfile(param_1,&DAT_002a81ca)" identifier (argument_list "(param_1,&DAT_002a81ca)" ( identifier , (pointer_expression "&DAT_002a81ca" & identifier) )))) ;) (if_statement "if (iVar2 == 0) goto LAB_0012a6bc;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0012a6bc;" goto statement_identifier ;)) })) (expression_statement "iVar2 = CompareStringInfo(iVar2,uVar1);" (assignment_expression "iVar2 = CompareStringInfo(iVar2,uVar1)" identifier = (call_expression "CompareStringInfo(iVar2,uVar1)" identifier (argument_list "(iVar2,uVar1)" ( identifier , identifier )))) ;) (if_statement "if (iVar2 == 0) {\n      DestroyStringInfo(uVar1);\n      return 1;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      DestroyStringInfo(uVar1);\n      return 1;\n    }" { (expression_statement "DestroyStringInfo(uVar1);" (call_expression "DestroyStringInfo(uVar1)" identifier (argument_list "(uVar1)" ( identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) })) (labeled_statement "LAB_0012a6bc:\n  uVar4 = 1;" statement_identifier : (expression_statement "uVar4 = 1;" (assignment_expression "uVar4 = 1" identifier = number_literal) ;)) (expression_statement "ThrowMagickException\n            (param_5,"MagickCore/profile.c","ProfileImage",0x3ec,0x140,\n             "DelegateLibrarySupportNotBuiltIn","\'%s\' (LCMS)",param_1 + 0x318);" (call_expression "ThrowMagickException\n            (param_5,"MagickCore/profile.c","ProfileImage",0x3ec,0x140,\n             "DelegateLibrarySupportNotBuiltIn","\'%s\' (LCMS)",param_1 + 0x318)" identifier (argument_list "(param_5,"MagickCore/profile.c","ProfileImage",0x3ec,0x140,\n             "DelegateLibrarySupportNotBuiltIn","\'%s\' (LCMS)",param_1 + 0x318)" ( identifier , (string_literal ""MagickCore/profile.c"" " string_content ") , (string_literal ""ProfileImage"" " string_content ") , number_literal , number_literal , (string_literal ""DelegateLibrarySupportNotBuiltIn"" " string_content ") , (string_literal ""\'%s\' (LCMS)"" " escape_sequence string_content escape_sequence string_content ") , (binary_expression "param_1 + 0x318" identifier + number_literal) ))) ;) (labeled_statement "LAB_0012a6fa:\n  DestroyStringInfo(uVar1);" statement_identifier : (expression_statement "DestroyStringInfo(uVar1);" (call_expression "DestroyStringInfo(uVar1)" identifier (argument_list "(uVar1)" ( identifier ))) ;)) (return_statement "return uVar4;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , (string_literal " string_content ") , LIT , (pointer_expression & IDENT) , (binary_expression IDENT + LIT) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT != LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) })) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return LIT ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (string_literal " string_content ") , LIT , LIT , (string_literal " string_content ") , (string_literal " escape_sequence string_content escape_sequence string_content ") , (binary_expression IDENT + LIT) ))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (return_statement return IDENT ;) })))
(function_definition "undefined4 ProfileImage(int param_1,int param_2,int param_3,int param_4,undefined4 param_5)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  \n  if (param_1 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/profile.c",0x3af,"ProfileImage");\n  }\n  if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/profile.c",0x3b0,\n                  "ProfileImage");\n  }\n  if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/profile.c","ProfileImage",0x3b2,&DAT_002b6e4e,param_1 + 0x318)\n    ;\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail("name != (const char *) NULL","MagickCore/profile.c",0x3b3,"ProfileImage");\n  }\n  if ((param_3 == 0) || (param_4 == 0)) {\n    ResetImageProfileIterator(param_1);\n    while (iVar2 = GetNextImageProfile(param_1), iVar2 != 0) {\n      iVar3 = IsOptionMember(iVar2,param_2);\n      if (iVar3 != 0) {\n        DeleteImageProfile(param_1,iVar2);\n        ResetImageProfileIterator(param_1);\n      }\n    }\n    return 1;\n  }\n  uVar1 = AcquireStringInfo(param_4);\n  SetStringInfoDatum(uVar1,param_3);\n  iVar2 = LocaleCompare(param_2,&DAT_002a81ca);\n  if ((iVar2 != 0) && (iVar2 = LocaleCompare(param_2,&DAT_002a81ce), iVar2 != 0)) {\n    uVar4 = SetImageProfile(param_1,param_2,uVar1,param_5);\n    goto LAB_0012a6fa;\n  }\n  iVar2 = GetImageProfile(param_1,&DAT_002a81ca);\n  if (iVar2 != 0) {\n    iVar3 = CompareStringInfo(iVar2,uVar1);\n    if (iVar3 == 0) {\n      uVar4 = GetImageProperty(param_1,"exif:ColorSpace",param_5);\n      iVar2 = LocaleCompare(uVar4,"1");\n      if (iVar2 != 0) {\n        FUN_0012a4e0();\n      }\n      uVar4 = GetImageProperty(param_1,"exif:InteroperabilityIndex",param_5);\n      iVar2 = LocaleCompare(uVar4,&DAT_002c3bf6);\n      if (iVar2 != 0) {\n        FUN_0012a4e0();\n      }\n      iVar2 = GetImageProfile(param_1,&DAT_002a81ca);\n      if (iVar2 == 0) goto LAB_0012a6bc;\n    }\n    iVar2 = CompareStringInfo(iVar2,uVar1);\n    if (iVar2 == 0) {\n      DestroyStringInfo(uVar1);\n      return 1;\n    }\n  }\nLAB_0012a6bc:\n  uVar4 = 1;\n  ThrowMagickException\n            (param_5,"MagickCore/profile.c","ProfileImage",0x3ec,0x140,\n             "DelegateLibrarySupportNotBuiltIn","\'%s\' (LCMS)",param_1 + 0x318);\nLAB_0012a6fa:\n  DestroyStringInfo(uVar1);\n  return uVar4;\n}" (type_identifier "undefined4") (function_declarator "ProfileImage(int param_1,int param_2,int param_3,int param_4,undefined4 param_5)" (identifier "ProfileImage") (parameter_list "(int param_1,int param_2,int param_3,int param_4,undefined4 param_5)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) (, ",") (parameter_declaration "undefined4 param_5" (type_identifier "undefined4") (identifier "param_5")) () ")"))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  \n  if (param_1 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/profile.c",0x3af,"ProfileImage");\n  }\n  if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/profile.c",0x3b0,\n                  "ProfileImage");\n  }\n  if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/profile.c","ProfileImage",0x3b2,&DAT_002b6e4e,param_1 + 0x318)\n    ;\n  }\n  if (param_2 == 0) {\n                    \n    __assert_fail("name != (const char *) NULL","MagickCore/profile.c",0x3b3,"ProfileImage");\n  }\n  if ((param_3 == 0) || (param_4 == 0)) {\n    ResetImageProfileIterator(param_1);\n    while (iVar2 = GetNextImageProfile(param_1), iVar2 != 0) {\n      iVar3 = IsOptionMember(iVar2,param_2);\n      if (iVar3 != 0) {\n        DeleteImageProfile(param_1,iVar2);\n        ResetImageProfileIterator(param_1);\n      }\n    }\n    return 1;\n  }\n  uVar1 = AcquireStringInfo(param_4);\n  SetStringInfoDatum(uVar1,param_3);\n  iVar2 = LocaleCompare(param_2,&DAT_002a81ca);\n  if ((iVar2 != 0) && (iVar2 = LocaleCompare(param_2,&DAT_002a81ce), iVar2 != 0)) {\n    uVar4 = SetImageProfile(param_1,param_2,uVar1,param_5);\n    goto LAB_0012a6fa;\n  }\n  iVar2 = GetImageProfile(param_1,&DAT_002a81ca);\n  if (iVar2 != 0) {\n    iVar3 = CompareStringInfo(iVar2,uVar1);\n    if (iVar3 == 0) {\n      uVar4 = GetImageProperty(param_1,"exif:ColorSpace",param_5);\n      iVar2 = LocaleCompare(uVar4,"1");\n      if (iVar2 != 0) {\n        FUN_0012a4e0();\n      }\n      uVar4 = GetImageProperty(param_1,"exif:InteroperabilityIndex",param_5);\n      iVar2 = LocaleCompare(uVar4,&DAT_002c3bf6);\n      if (iVar2 != 0) {\n        FUN_0012a4e0();\n      }\n      iVar2 = GetImageProfile(param_1,&DAT_002a81ca);\n      if (iVar2 == 0) goto LAB_0012a6bc;\n    }\n    iVar2 = CompareStringInfo(iVar2,uVar1);\n    if (iVar2 == 0) {\n      DestroyStringInfo(uVar1);\n      return 1;\n    }\n  }\nLAB_0012a6bc:\n  uVar4 = 1;\n  ThrowMagickException\n            (param_5,"MagickCore/profile.c","ProfileImage",0x3ec,0x140,\n             "DelegateLibrarySupportNotBuiltIn","\'%s\' (LCMS)",param_1 + 0x318);\nLAB_0012a6fa:\n  DestroyStringInfo(uVar1);\n  return uVar4;\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (if_statement "if (param_1 == 0) {\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/profile.c",0x3af,"ProfileImage");\n  }" (if "if") (parenthesized_expression "(param_1 == 0)" (( "(") (binary_expression "param_1 == 0" (identifier "param_1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    __assert_fail("image != (Image *) NULL","MagickCore/profile.c",0x3af,"ProfileImage");\n  }" ({ "{") (expression_statement "__assert_fail("image != (Image *) NULL","MagickCore/profile.c",0x3af,"ProfileImage");" (call_expression "__assert_fail("image != (Image *) NULL","MagickCore/profile.c",0x3af,"ProfileImage")" (identifier "__assert_fail") (argument_list "("image != (Image *) NULL","MagickCore/profile.c",0x3af,"ProfileImage")" (( "(") (string_literal ""image != (Image *) NULL"" (" """) (string_content "image != (Image *) NULL") (" """)) (, ",") (string_literal ""MagickCore/profile.c"" (" """) (string_content "MagickCore/profile.c") (" """)) (, ",") (number_literal "0x3af") (, ",") (string_literal ""ProfileImage"" (" """) (string_content "ProfileImage") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0x3344) != -0x54535255) {\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/profile.c",0x3b0,\n                  "ProfileImage");\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x3344) != -0x54535255)" (( "(") (binary_expression "*(int *)(param_1 + 0x3344) != -0x54535255" (pointer_expression "*(int *)(param_1 + 0x3344)" (* "*") (cast_expression "(int *)(param_1 + 0x3344)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x3344)" (( "(") (binary_expression "param_1 + 0x3344" (identifier "param_1") (+ "+") (number_literal "0x3344")) () ")")))) (!= "!=") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n                    \n    __assert_fail("image->signature == MagickCoreSignature","MagickCore/profile.c",0x3b0,\n                  "ProfileImage");\n  }" ({ "{") (expression_statement "__assert_fail("image->signature == MagickCoreSignature","MagickCore/profile.c",0x3b0,\n                  "ProfileImage");" (call_expression "__assert_fail("image->signature == MagickCoreSignature","MagickCore/profile.c",0x3b0,\n                  "ProfileImage")" (identifier "__assert_fail") (argument_list "("image->signature == MagickCoreSignature","MagickCore/profile.c",0x3b0,\n                  "ProfileImage")" (( "(") (string_literal ""image->signature == MagickCoreSignature"" (" """) (string_content "image->signature == MagickCoreSignature") (" """)) (, ",") (string_literal ""MagickCore/profile.c"" (" """) (string_content "MagickCore/profile.c") (" """)) (, ",") (number_literal "0x3b0") (, ",") (string_literal ""ProfileImage"" (" """) (string_content "ProfileImage") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0x3328) != 0) {\n    LogMagickEvent(0x8000,"MagickCore/profile.c","ProfileImage",0x3b2,&DAT_002b6e4e,param_1 + 0x318)\n    ;\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x3328) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x3328) != 0" (pointer_expression "*(int *)(param_1 + 0x3328)" (* "*") (cast_expression "(int *)(param_1 + 0x3328)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x3328)" (( "(") (binary_expression "param_1 + 0x3328" (identifier "param_1") (+ "+") (number_literal "0x3328")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    LogMagickEvent(0x8000,"MagickCore/profile.c","ProfileImage",0x3b2,&DAT_002b6e4e,param_1 + 0x318)\n    ;\n  }" ({ "{") (expression_statement "LogMagickEvent(0x8000,"MagickCore/profile.c","ProfileImage",0x3b2,&DAT_002b6e4e,param_1 + 0x318)\n    ;" (call_expression "LogMagickEvent(0x8000,"MagickCore/profile.c","ProfileImage",0x3b2,&DAT_002b6e4e,param_1 + 0x318)" (identifier "LogMagickEvent") (argument_list "(0x8000,"MagickCore/profile.c","ProfileImage",0x3b2,&DAT_002b6e4e,param_1 + 0x318)" (( "(") (number_literal "0x8000") (, ",") (string_literal ""MagickCore/profile.c"" (" """) (string_content "MagickCore/profile.c") (" """)) (, ",") (string_literal ""ProfileImage"" (" """) (string_content "ProfileImage") (" """)) (, ",") (number_literal "0x3b2") (, ",") (pointer_expression "&DAT_002b6e4e" (& "&") (identifier "DAT_002b6e4e")) (, ",") (binary_expression "param_1 + 0x318" (identifier "param_1") (+ "+") (number_literal "0x318")) () ")"))) (; ";")) (} "}"))) (if_statement "if (param_2 == 0) {\n                    \n    __assert_fail("name != (const char *) NULL","MagickCore/profile.c",0x3b3,"ProfileImage");\n  }" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    __assert_fail("name != (const char *) NULL","MagickCore/profile.c",0x3b3,"ProfileImage");\n  }" ({ "{") (expression_statement "__assert_fail("name != (const char *) NULL","MagickCore/profile.c",0x3b3,"ProfileImage");" (call_expression "__assert_fail("name != (const char *) NULL","MagickCore/profile.c",0x3b3,"ProfileImage")" (identifier "__assert_fail") (argument_list "("name != (const char *) NULL","MagickCore/profile.c",0x3b3,"ProfileImage")" (( "(") (string_literal ""name != (const char *) NULL"" (" """) (string_content "name != (const char *) NULL") (" """)) (, ",") (string_literal ""MagickCore/profile.c"" (" """) (string_content "MagickCore/profile.c") (" """)) (, ",") (number_literal "0x3b3") (, ",") (string_literal ""ProfileImage"" (" """) (string_content "ProfileImage") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if ((param_3 == 0) || (param_4 == 0)) {\n    ResetImageProfileIterator(param_1);\n    while (iVar2 = GetNextImageProfile(param_1), iVar2 != 0) {\n      iVar3 = IsOptionMember(iVar2,param_2);\n      if (iVar3 != 0) {\n        DeleteImageProfile(param_1,iVar2);\n        ResetImageProfileIterator(param_1);\n      }\n    }\n    return 1;\n  }" (if "if") (parenthesized_expression "((param_3 == 0) || (param_4 == 0))" (( "(") (binary_expression "(param_3 == 0) || (param_4 == 0)" (parenthesized_expression "(param_3 == 0)" (( "(") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(param_4 == 0)" (( "(") (binary_expression "param_4 == 0" (identifier "param_4") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    ResetImageProfileIterator(param_1);\n    while (iVar2 = GetNextImageProfile(param_1), iVar2 != 0) {\n      iVar3 = IsOptionMember(iVar2,param_2);\n      if (iVar3 != 0) {\n        DeleteImageProfile(param_1,iVar2);\n        ResetImageProfileIterator(param_1);\n      }\n    }\n    return 1;\n  }" ({ "{") (expression_statement "ResetImageProfileIterator(param_1);" (call_expression "ResetImageProfileIterator(param_1)" (identifier "ResetImageProfileIterator") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (while_statement "while (iVar2 = GetNextImageProfile(param_1), iVar2 != 0) {\n      iVar3 = IsOptionMember(iVar2,param_2);\n      if (iVar3 != 0) {\n        DeleteImageProfile(param_1,iVar2);\n        ResetImageProfileIterator(param_1);\n      }\n    }" (while "while") (parenthesized_expression "(iVar2 = GetNextImageProfile(param_1), iVar2 != 0)" (( "(") (comma_expression "iVar2 = GetNextImageProfile(param_1), iVar2 != 0" (assignment_expression "iVar2 = GetNextImageProfile(param_1)" (identifier "iVar2") (= "=") (call_expression "GetNextImageProfile(param_1)" (identifier "GetNextImageProfile") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (, ",") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n      iVar3 = IsOptionMember(iVar2,param_2);\n      if (iVar3 != 0) {\n        DeleteImageProfile(param_1,iVar2);\n        ResetImageProfileIterator(param_1);\n      }\n    }" ({ "{") (expression_statement "iVar3 = IsOptionMember(iVar2,param_2);" (assignment_expression "iVar3 = IsOptionMember(iVar2,param_2)" (identifier "iVar3") (= "=") (call_expression "IsOptionMember(iVar2,param_2)" (identifier "IsOptionMember") (argument_list "(iVar2,param_2)" (( "(") (identifier "iVar2") (, ",") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n        DeleteImageProfile(param_1,iVar2);\n        ResetImageProfileIterator(param_1);\n      }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        DeleteImageProfile(param_1,iVar2);\n        ResetImageProfileIterator(param_1);\n      }" ({ "{") (expression_statement "DeleteImageProfile(param_1,iVar2);" (call_expression "DeleteImageProfile(param_1,iVar2)" (identifier "DeleteImageProfile") (argument_list "(param_1,iVar2)" (( "(") (identifier "param_1") (, ",") (identifier "iVar2") () ")"))) (; ";")) (expression_statement "ResetImageProfileIterator(param_1);" (call_expression "ResetImageProfileIterator(param_1)" (identifier "ResetImageProfileIterator") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (} "}"))) (} "}"))) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "uVar1 = AcquireStringInfo(param_4);" (assignment_expression "uVar1 = AcquireStringInfo(param_4)" (identifier "uVar1") (= "=") (call_expression "AcquireStringInfo(param_4)" (identifier "AcquireStringInfo") (argument_list "(param_4)" (( "(") (identifier "param_4") () ")")))) (; ";")) (expression_statement "SetStringInfoDatum(uVar1,param_3);" (call_expression "SetStringInfoDatum(uVar1,param_3)" (identifier "SetStringInfoDatum") (argument_list "(uVar1,param_3)" (( "(") (identifier "uVar1") (, ",") (identifier "param_3") () ")"))) (; ";")) (expression_statement "iVar2 = LocaleCompare(param_2,&DAT_002a81ca);" (assignment_expression "iVar2 = LocaleCompare(param_2,&DAT_002a81ca)" (identifier "iVar2") (= "=") (call_expression "LocaleCompare(param_2,&DAT_002a81ca)" (identifier "LocaleCompare") (argument_list "(param_2,&DAT_002a81ca)" (( "(") (identifier "param_2") (, ",") (pointer_expression "&DAT_002a81ca" (& "&") (identifier "DAT_002a81ca")) () ")")))) (; ";")) (if_statement "if ((iVar2 != 0) && (iVar2 = LocaleCompare(param_2,&DAT_002a81ce), iVar2 != 0)) {\n    uVar4 = SetImageProfile(param_1,param_2,uVar1,param_5);\n    goto LAB_0012a6fa;\n  }" (if "if") (parenthesized_expression "((iVar2 != 0) && (iVar2 = LocaleCompare(param_2,&DAT_002a81ce), iVar2 != 0))" (( "(") (binary_expression "(iVar2 != 0) && (iVar2 = LocaleCompare(param_2,&DAT_002a81ce), iVar2 != 0)" (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar2 = LocaleCompare(param_2,&DAT_002a81ce), iVar2 != 0)" (( "(") (comma_expression "iVar2 = LocaleCompare(param_2,&DAT_002a81ce), iVar2 != 0" (assignment_expression "iVar2 = LocaleCompare(param_2,&DAT_002a81ce)" (identifier "iVar2") (= "=") (call_expression "LocaleCompare(param_2,&DAT_002a81ce)" (identifier "LocaleCompare") (argument_list "(param_2,&DAT_002a81ce)" (( "(") (identifier "param_2") (, ",") (pointer_expression "&DAT_002a81ce" (& "&") (identifier "DAT_002a81ce")) () ")")))) (, ",") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    uVar4 = SetImageProfile(param_1,param_2,uVar1,param_5);\n    goto LAB_0012a6fa;\n  }" ({ "{") (expression_statement "uVar4 = SetImageProfile(param_1,param_2,uVar1,param_5);" (assignment_expression "uVar4 = SetImageProfile(param_1,param_2,uVar1,param_5)" (identifier "uVar4") (= "=") (call_expression "SetImageProfile(param_1,param_2,uVar1,param_5)" (identifier "SetImageProfile") (argument_list "(param_1,param_2,uVar1,param_5)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "uVar1") (, ",") (identifier "param_5") () ")")))) (; ";")) (goto_statement "goto LAB_0012a6fa;" (goto "goto") (statement_identifier "LAB_0012a6fa") (; ";")) (} "}"))) (expression_statement "iVar2 = GetImageProfile(param_1,&DAT_002a81ca);" (assignment_expression "iVar2 = GetImageProfile(param_1,&DAT_002a81ca)" (identifier "iVar2") (= "=") (call_expression "GetImageProfile(param_1,&DAT_002a81ca)" (identifier "GetImageProfile") (argument_list "(param_1,&DAT_002a81ca)" (( "(") (identifier "param_1") (, ",") (pointer_expression "&DAT_002a81ca" (& "&") (identifier "DAT_002a81ca")) () ")")))) (; ";")) (if_statement "if (iVar2 != 0) {\n    iVar3 = CompareStringInfo(iVar2,uVar1);\n    if (iVar3 == 0) {\n      uVar4 = GetImageProperty(param_1,"exif:ColorSpace",param_5);\n      iVar2 = LocaleCompare(uVar4,"1");\n      if (iVar2 != 0) {\n        FUN_0012a4e0();\n      }\n      uVar4 = GetImageProperty(param_1,"exif:InteroperabilityIndex",param_5);\n      iVar2 = LocaleCompare(uVar4,&DAT_002c3bf6);\n      if (iVar2 != 0) {\n        FUN_0012a4e0();\n      }\n      iVar2 = GetImageProfile(param_1,&DAT_002a81ca);\n      if (iVar2 == 0) goto LAB_0012a6bc;\n    }\n    iVar2 = CompareStringInfo(iVar2,uVar1);\n    if (iVar2 == 0) {\n      DestroyStringInfo(uVar1);\n      return 1;\n    }\n  }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar3 = CompareStringInfo(iVar2,uVar1);\n    if (iVar3 == 0) {\n      uVar4 = GetImageProperty(param_1,"exif:ColorSpace",param_5);\n      iVar2 = LocaleCompare(uVar4,"1");\n      if (iVar2 != 0) {\n        FUN_0012a4e0();\n      }\n      uVar4 = GetImageProperty(param_1,"exif:InteroperabilityIndex",param_5);\n      iVar2 = LocaleCompare(uVar4,&DAT_002c3bf6);\n      if (iVar2 != 0) {\n        FUN_0012a4e0();\n      }\n      iVar2 = GetImageProfile(param_1,&DAT_002a81ca);\n      if (iVar2 == 0) goto LAB_0012a6bc;\n    }\n    iVar2 = CompareStringInfo(iVar2,uVar1);\n    if (iVar2 == 0) {\n      DestroyStringInfo(uVar1);\n      return 1;\n    }\n  }" ({ "{") (expression_statement "iVar3 = CompareStringInfo(iVar2,uVar1);" (assignment_expression "iVar3 = CompareStringInfo(iVar2,uVar1)" (identifier "iVar3") (= "=") (call_expression "CompareStringInfo(iVar2,uVar1)" (identifier "CompareStringInfo") (argument_list "(iVar2,uVar1)" (( "(") (identifier "iVar2") (, ",") (identifier "uVar1") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n      uVar4 = GetImageProperty(param_1,"exif:ColorSpace",param_5);\n      iVar2 = LocaleCompare(uVar4,"1");\n      if (iVar2 != 0) {\n        FUN_0012a4e0();\n      }\n      uVar4 = GetImageProperty(param_1,"exif:InteroperabilityIndex",param_5);\n      iVar2 = LocaleCompare(uVar4,&DAT_002c3bf6);\n      if (iVar2 != 0) {\n        FUN_0012a4e0();\n      }\n      iVar2 = GetImageProfile(param_1,&DAT_002a81ca);\n      if (iVar2 == 0) goto LAB_0012a6bc;\n    }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar4 = GetImageProperty(param_1,"exif:ColorSpace",param_5);\n      iVar2 = LocaleCompare(uVar4,"1");\n      if (iVar2 != 0) {\n        FUN_0012a4e0();\n      }\n      uVar4 = GetImageProperty(param_1,"exif:InteroperabilityIndex",param_5);\n      iVar2 = LocaleCompare(uVar4,&DAT_002c3bf6);\n      if (iVar2 != 0) {\n        FUN_0012a4e0();\n      }\n      iVar2 = GetImageProfile(param_1,&DAT_002a81ca);\n      if (iVar2 == 0) goto LAB_0012a6bc;\n    }" ({ "{") (expression_statement "uVar4 = GetImageProperty(param_1,"exif:ColorSpace",param_5);" (assignment_expression "uVar4 = GetImageProperty(param_1,"exif:ColorSpace",param_5)" (identifier "uVar4") (= "=") (call_expression "GetImageProperty(param_1,"exif:ColorSpace",param_5)" (identifier "GetImageProperty") (argument_list "(param_1,"exif:ColorSpace",param_5)" (( "(") (identifier "param_1") (, ",") (string_literal ""exif:ColorSpace"" (" """) (string_content "exif:ColorSpace") (" """)) (, ",") (identifier "param_5") () ")")))) (; ";")) (expression_statement "iVar2 = LocaleCompare(uVar4,"1");" (assignment_expression "iVar2 = LocaleCompare(uVar4,"1")" (identifier "iVar2") (= "=") (call_expression "LocaleCompare(uVar4,"1")" (identifier "LocaleCompare") (argument_list "(uVar4,"1")" (( "(") (identifier "uVar4") (, ",") (string_literal ""1"" (" """) (string_content "1") (" """)) () ")")))) (; ";")) (if_statement "if (iVar2 != 0) {\n        FUN_0012a4e0();\n      }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_0012a4e0();\n      }" ({ "{") (expression_statement "FUN_0012a4e0();" (call_expression "FUN_0012a4e0()" (identifier "FUN_0012a4e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar4 = GetImageProperty(param_1,"exif:InteroperabilityIndex",param_5);" (assignment_expression "uVar4 = GetImageProperty(param_1,"exif:InteroperabilityIndex",param_5)" (identifier "uVar4") (= "=") (call_expression "GetImageProperty(param_1,"exif:InteroperabilityIndex",param_5)" (identifier "GetImageProperty") (argument_list "(param_1,"exif:InteroperabilityIndex",param_5)" (( "(") (identifier "param_1") (, ",") (string_literal ""exif:InteroperabilityIndex"" (" """) (string_content "exif:InteroperabilityIndex") (" """)) (, ",") (identifier "param_5") () ")")))) (; ";")) (expression_statement "iVar2 = LocaleCompare(uVar4,&DAT_002c3bf6);" (assignment_expression "iVar2 = LocaleCompare(uVar4,&DAT_002c3bf6)" (identifier "iVar2") (= "=") (call_expression "LocaleCompare(uVar4,&DAT_002c3bf6)" (identifier "LocaleCompare") (argument_list "(uVar4,&DAT_002c3bf6)" (( "(") (identifier "uVar4") (, ",") (pointer_expression "&DAT_002c3bf6" (& "&") (identifier "DAT_002c3bf6")) () ")")))) (; ";")) (if_statement "if (iVar2 != 0) {\n        FUN_0012a4e0();\n      }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_0012a4e0();\n      }" ({ "{") (expression_statement "FUN_0012a4e0();" (call_expression "FUN_0012a4e0()" (identifier "FUN_0012a4e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar2 = GetImageProfile(param_1,&DAT_002a81ca);" (assignment_expression "iVar2 = GetImageProfile(param_1,&DAT_002a81ca)" (identifier "iVar2") (= "=") (call_expression "GetImageProfile(param_1,&DAT_002a81ca)" (identifier "GetImageProfile") (argument_list "(param_1,&DAT_002a81ca)" (( "(") (identifier "param_1") (, ",") (pointer_expression "&DAT_002a81ca" (& "&") (identifier "DAT_002a81ca")) () ")")))) (; ";")) (if_statement "if (iVar2 == 0) goto LAB_0012a6bc;" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0012a6bc;" (goto "goto") (statement_identifier "LAB_0012a6bc") (; ";"))) (} "}"))) (expression_statement "iVar2 = CompareStringInfo(iVar2,uVar1);" (assignment_expression "iVar2 = CompareStringInfo(iVar2,uVar1)" (identifier "iVar2") (= "=") (call_expression "CompareStringInfo(iVar2,uVar1)" (identifier "CompareStringInfo") (argument_list "(iVar2,uVar1)" (( "(") (identifier "iVar2") (, ",") (identifier "uVar1") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n      DestroyStringInfo(uVar1);\n      return 1;\n    }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      DestroyStringInfo(uVar1);\n      return 1;\n    }" ({ "{") (expression_statement "DestroyStringInfo(uVar1);" (call_expression "DestroyStringInfo(uVar1)" (identifier "DestroyStringInfo") (argument_list "(uVar1)" (( "(") (identifier "uVar1") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_0012a6bc:\n  uVar4 = 1;" (statement_identifier "LAB_0012a6bc") (: ":") (expression_statement "uVar4 = 1;" (assignment_expression "uVar4 = 1" (identifier "uVar4") (= "=") (number_literal "1")) (; ";"))) (expression_statement "ThrowMagickException\n            (param_5,"MagickCore/profile.c","ProfileImage",0x3ec,0x140,\n             "DelegateLibrarySupportNotBuiltIn","\'%s\' (LCMS)",param_1 + 0x318);" (call_expression "ThrowMagickException\n            (param_5,"MagickCore/profile.c","ProfileImage",0x3ec,0x140,\n             "DelegateLibrarySupportNotBuiltIn","\'%s\' (LCMS)",param_1 + 0x318)" (identifier "ThrowMagickException") (argument_list "(param_5,"MagickCore/profile.c","ProfileImage",0x3ec,0x140,\n             "DelegateLibrarySupportNotBuiltIn","\'%s\' (LCMS)",param_1 + 0x318)" (( "(") (identifier "param_5") (, ",") (string_literal ""MagickCore/profile.c"" (" """) (string_content "MagickCore/profile.c") (" """)) (, ",") (string_literal ""ProfileImage"" (" """) (string_content "ProfileImage") (" """)) (, ",") (number_literal "0x3ec") (, ",") (number_literal "0x140") (, ",") (string_literal ""DelegateLibrarySupportNotBuiltIn"" (" """) (string_content "DelegateLibrarySupportNotBuiltIn") (" """)) (, ",") (string_literal ""\'%s\' (LCMS)"" (" """) (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (string_content " (LCMS)") (" """)) (, ",") (binary_expression "param_1 + 0x318" (identifier "param_1") (+ "+") (number_literal "0x318")) () ")"))) (; ";")) (labeled_statement "LAB_0012a6fa:\n  DestroyStringInfo(uVar1);" (statement_identifier "LAB_0012a6fa") (: ":") (expression_statement "DestroyStringInfo(uVar1);" (call_expression "DestroyStringInfo(uVar1)" (identifier "DestroyStringInfo") (argument_list "(uVar1)" (( "(") (identifier "uVar1") () ")"))) (; ";"))) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}")))

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

type_1
function_1(type_2 *var_1,char *var_5,void *var_6,size_t var_7,type_3 *exception)

{
  type_4 *string_info;
  int var_17;
  type_4 *var_20;
  char *var_10;
  type_1 var_12;
  
  if (var_1 == (type_2 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_2("image != (Image *) NULL","MagickCore/profile.c",0x3af,"ProfileImage");
  }
  if (var_1->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    var_2("image->signature == MagickCoreSignature","MagickCore/profile.c",0x3b0,
                  "ProfileImage");
  }
  if (var_1->debug != var_3) {
    var_4(TraceEvent,"MagickCore/profile.c","ProfileImage",0x3b2,"%s",var_1->filename);
  }
  if (var_5 == (char *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_2("name != (const char *) NULL","MagickCore/profile.c",0x3b3,"ProfileImage");
  }
  if ((var_6 == (void *)0x0) || (var_7 == 0)) {
    var_8(var_1);
    while (var_10 = var_9(var_1), var_10 != (char *)0x0) {
      var_12 = var_11(var_10,var_5);
      if (var_12 != var_3) {
        var_13(var_1,var_10);
        var_8(var_1);
      }
    }
    return MagickTrue;
  }
  string_info = var_14(var_7);
  var_15(string_info,(type_5 *)var_6);
  var_17 = var_16(var_5,"icc");
  if ((var_17 != 0) && (var_17 = var_16(var_5,"icm"), var_17 != 0)) {
    var_12 = var_18(var_1,var_5,string_info,exception);
    goto LAB_0012a6fa;
  }
  var_20 = var_19(var_1,"icc");
  if (var_20 != (type_4 *)0x0) {
    var_17 = var_21(var_20,string_info);
    if (var_17 == 0) {
      var_10 = var_22(var_1,"exif:ColorSpace",exception);
      var_17 = var_16(var_10,"1");
      if (var_17 != 0) {
        var_23(var_1,exception);
      }
      var_10 = var_22(var_1,"exif:InteroperabilityIndex",exception);
      var_17 = var_16(var_10,"R98.");
      if (var_17 != 0) {
        var_23(var_1,exception);
      }
      var_20 = var_19(var_1,"icc");
      if (var_20 == (type_4 *)0x0) goto LAB_0012a6bc;
    }
    var_17 = var_21(var_20,string_info);
    if (var_17 == 0) {
      var_24(string_info);
      return MagickTrue;
    }
  }
LAB_0012a6bc:
  var_12 = MagickTrue;
  var_25
            (exception,"MagickCore/profile.c","ProfileImage",0x3ec,MissingDelegateWarning,
             "DelegateLibrarySupportNotBuiltIn","\'%s\' (LCMS)",var_1->filename);
LAB_0012a6fa:
  var_24(string_info);
  return var_12;
}


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

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

undefined4 MASKED(int param_1,int param_2,int param_3,int param_4,undefined4 param_5)

{
  undefined4 uVar1;
  int iVar2;
  int iVar3;
  undefined4 uVar4;
  
  if (param_1 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image != (Image *) NULL","MagickCore/profile.c",0x3af,"MASKED");
  }
  if (*(int *)(param_1 + 0x3344) != -0x54535255) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("image->signature == MagickCoreSignature","MagickCore/profile.c",0x3b0,
                  "MASKED");
  }
  if (*(int *)(param_1 + 0x3328) != 0) {
    LogMagickEvent(0x8000,"MagickCore/profile.c","MASKED",0x3b2,&DAT_002b6e4e,param_1 + 0x318)
    ;
  }
  if (param_2 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("name != (const char *) NULL","MagickCore/profile.c",0x3b3,"MASKED");
  }
  if ((param_3 == 0) || (param_4 == 0)) {
    ResetImageProfileIterator(param_1);
    while (iVar2 = GetNextImageProfile(param_1), iVar2 != 0) {
      iVar3 = IsOptionMember(iVar2,param_2);
      if (iVar3 != 0) {
        DeleteImageProfile(param_1,iVar2);
        ResetImageProfileIterator(param_1);
      }
    }
    return 1;
  }
  uVar1 = AcquireStringInfo(param_4);
  SetStringInfoDatum(uVar1,param_3);
  iVar2 = LocaleCompare(param_2,&DAT_002a81ca);
  if ((iVar2 != 0) && (iVar2 = LocaleCompare(param_2,&DAT_002a81ce), iVar2 != 0)) {
    uVar4 = SetImageProfile(param_1,param_2,uVar1,param_5);
    goto LAB_0012a6fa;
  }
  iVar2 = GetImageProfile(param_1,&DAT_002a81ca);
  if (iVar2 != 0) {
    iVar3 = CompareStringInfo(iVar2,uVar1);
    if (iVar3 == 0) {
      uVar4 = GetImageProperty(param_1,"exif:ColorSpace",param_5);
      iVar2 = LocaleCompare(uVar4,"1");
      if (iVar2 != 0) {
        FUN_0012a4e0();
      }
      uVar4 = GetImageProperty(param_1,"exif:InteroperabilityIndex",param_5);
      iVar2 = LocaleCompare(uVar4,&DAT_002c3bf6);
      if (iVar2 != 0) {
        FUN_0012a4e0();
      }
      iVar2 = GetImageProfile(param_1,&DAT_002a81ca);
      if (iVar2 == 0) goto LAB_0012a6bc;
    }
    iVar2 = CompareStringInfo(iVar2,uVar1);
    if (iVar2 == 0) {
      DestroyStringInfo(uVar1);
      return 1;
    }
  }
LAB_0012a6bc:
  uVar4 = 1;
  ThrowMagickException
            (param_5,"MagickCore/profile.c","MASKED",0x3ec,0x140,
             "DelegateLibrarySupportNotBuiltIn","\'%s\' (LCMS)",param_1 + 0x318);
LAB_0012a6fa:
  DestroyStringInfo(uVar1);
  return uVar4;
}

