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

void MagickCoreGenesis(char *path,MagickBooleanType establish_signal_handlers)

{
  int iVar1;
  char *events;
  MagickBooleanType MVar2;
  int in_GS_OFFSET;
  char execution_path [4096];
  char filename [4096];
  
  iVar1 = *(int *)(in_GS_OFFSET + 0x14);
  omp_init_lock(&translation_unit_mutex);
  translation_unit_initialized = MagickTrue;
  omp_set_lock(&translation_unit_mutex);
  if (magickcore_instantiated != MagickFalse) goto LAB_000f7b83;
  SemaphoreComponentGenesis();
  ExceptionComponentGenesis();
  LogComponentGenesis();
  LocaleComponentGenesis();
  RandomComponentGenesis();
  events = GetEnvironmentValue("MAGICK_DEBUG");
  if (events != (char *)0x0) {
    SetLogEventMask(events);
    DestroyString(events);
  }
  if ((path == (char *)0x0) || (*path != '/')) {
LAB_000f7a4c:
    GetExecutionPath(execution_path,0x1000);
  }
  else {
    MVar2 = IsPathAccessible(path);
    if (MVar2 == MagickFalse) goto LAB_000f7a4c;
    CopyMagickString(execution_path,path,0x1000);
  }
  GetPathComponent(execution_path,TailPath,filename);
  SetClientName(filename);
  GetPathComponent(execution_path,HeadPath,execution_path);
  SetClientPath(execution_path);
  if (establish_signal_handlers != MagickFalse) {
    if (signal_handlers[6] == (SignalHandler *)0x0) {
      signal_handlers[6] = RegisterMagickSignalHandler(6);
    }
    if (signal_handlers[7] == (SignalHandler *)0x0) {
      signal_handlers[7] = RegisterMagickSignalHandler(7);
    }
    if (signal_handlers[0xb] == (SignalHandler *)0x0) {
      signal_handlers[0xb] = RegisterMagickSignalHandler(0xb);
    }
    if (signal_handlers[8] == (SignalHandler *)0x0) {
      signal_handlers[8] = RegisterMagickSignalHandler(8);
    }
    if (signal_handlers[1] == (SignalHandler *)0x0) {
      signal_handlers[1] = RegisterMagickSignalHandler(1);
    }
    if (signal_handlers[2] == (SignalHandler *)0x0) {
      signal_handlers[2] = RegisterMagickSignalHandler(2);
    }
    if (signal_handlers[3] == (SignalHandler *)0x0) {
      signal_handlers[3] = RegisterMagickSignalHandler(3);
    }
    if (signal_handlers[0xf] == (SignalHandler *)0x0) {
      signal_handlers[0xf] = RegisterMagickSignalHandler(0xf);
    }
    if (signal_handlers[0x18] == (SignalHandler *)0x0) {
      signal_handlers[0x18] = RegisterMagickSignalHandler(0x18);
    }
    if (signal_handlers[0x19] == (SignalHandler *)0x0) {
      signal_handlers[0x19] = RegisterMagickSignalHandler(0x19);
    }
  }
  ConfigureComponentGenesis();
  PolicyComponentGenesis();
  CacheComponentGenesis();
  ResourceComponentGenesis();
  CoderComponentGenesis();
  if (magick_semaphore == (SemaphoreInfo *)0x0) {
    magick_semaphore = AcquireSemaphoreInfo();
  }
  DelegateComponentGenesis();
  MagicComponentGenesis();
  ColorComponentGenesis();
  TypeComponentGenesis();
  MimeComponentGenesis();
  AnnotateComponentGenesis();
  RegistryComponentGenesis();
  MonitorComponentGenesis();
  magickcore_instantiated = MagickTrue;
LAB_000f7b83:
  omp_unset_lock(&translation_unit_mutex);
  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail_local();
}



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

void MagickCoreGenesis(char *param_1,int param_2)

{
  int iVar1;
  int in_GS_OFFSET;
  undefined1 local_2020 [4096];
  undefined1 local_1020 [4096];
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0xf79a9;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  omp_init_lock(&DAT_003dd904);
  DAT_003dd908 = 1;
  omp_set_lock(&DAT_003dd904);
  if (DAT_003dd7ec != 0) goto LAB_000f7b83;
  FUN_00184990();
  FUN_000bf040();
  FUN_000f3bf0();
  FUN_000f2d60();
  FUN_0016c8f0();
  iVar1 = GetEnvironmentValue("MAGICK_DEBUG");
  if (iVar1 != 0) {
    SetLogEventMask(iVar1);
    DestroyString(iVar1);
  }
  if ((param_1 == (char *)0x0) || (*param_1 != '/')) {
LAB_000f7a4c:
    FUN_001b2e70(local_2020,0x1000);
  }
  else {
    iVar1 = IsPathAccessible(param_1);
    if (iVar1 == 0) goto LAB_000f7a4c;
    CopyMagickString(local_2020,param_1,0x1000);
  }
  GetPathComponent(local_2020,4,local_1020);
  SetClientName(local_1020);
  GetPathComponent(local_2020,3,local_2020);
  SetClientPath(local_2020);
  if (param_2 != 0) {
    if (DAT_003dd818 == 0) {
      DAT_003dd818 = FUN_000f6620();
    }
    if (DAT_003dd81c == 0) {
      DAT_003dd81c = FUN_000f6620();
    }
    if (DAT_003dd82c == 0) {
      DAT_003dd82c = FUN_000f6620();
    }
    if (DAT_003dd820 == 0) {
      DAT_003dd820 = FUN_000f6620();
    }
    if (DAT_003dd804 == 0) {
      DAT_003dd804 = FUN_000f6620();
    }
    if (DAT_003dd808 == 0) {
      DAT_003dd808 = FUN_000f6620();
    }
    if (DAT_003dd80c == 0) {
      DAT_003dd80c = FUN_000f6620();
    }
    if (DAT_003dd83c == 0) {
      DAT_003dd83c = FUN_000f6620();
    }
    if (DAT_003dd860 == 0) {
      DAT_003dd860 = FUN_000f6620();
    }
    if (DAT_003dd864 == 0) {
      DAT_003dd864 = FUN_000f6620();
    }
  }
  FUN_00075b90();
  FUN_00120c30();
  FUN_0004f5c0();
  FUN_0017fd40();
  FUN_00059d90();
  if (DAT_003dd900 == 0) {
    DAT_003dd900 = AcquireSemaphoreInfo();
  }
  FUN_0007f850();
  FUN_000f6240();
  FUN_0005aa50();
  FUN_001b1b10();
  FUN_000fbb10();
  FUN_00039c30();
  FUN_0016d380();
  FUN_000fbe70();
  DAT_003dd7ec = 1;
LAB_000f7b83:
  omp_unset_lock(&DAT_003dd904);
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0029eab0();
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00038830
ADD EBX,0x2e1657
SUB ESP,0x2028
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0x2018],EAX
XOR EAX,EAX
MOV EDI,dword ptr [ESP + 0x203c]
LEA ESI,[EBX + 0x4904]
PUSH ESI
CALL 0x00031f50
MOV dword ptr [ESP],ESI
MOV dword ptr [EBX + 0x4908],0x1
CALL 0x000321c0
MOV EAX,dword ptr [EBX + 0x47ec]
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x000f7b83
CALL 0x00184990
CALL 0x000bf040
CALL 0x000f3bf0
CALL 0x000f2d60
CALL 0x0016c8f0
LEA EAX,[EBX + 0xffee0a08]
SUB ESP,0xc
PUSH EAX
CALL 0x00030db0
ADD ESP,0x10
MOV EBP,EAX
TEST EAX,EAX
JZ 0x000f7a3f
SUB ESP,0xc
PUSH EAX
CALL 0x00031210
MOV dword ptr [ESP],EBP
CALL 0x00032950
ADD ESP,0x10
TEST EDI,EDI
JZ 0x000f7a4c
CMP byte ptr [EDI],0x2f
JZ 0x000f7bc0
SUB ESP,0x8
PUSH 0x1000
LEA EDI,[ESP + 0x18]
PUSH EDI
CALL 0x001b2e70
ADD ESP,0x10
SUB ESP,0x4
LEA EBP,[ESP + 0x1010]
PUSH EBP
PUSH 0x4
PUSH EDI
CALL 0x00033270
MOV dword ptr [ESP],EBP
CALL 0x000305c0
ADD ESP,0xc
PUSH EDI
PUSH 0x3
PUSH EDI
CALL 0x00033270
MOV dword ptr [ESP],EDI
CALL 0x00030980
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x2034]
TEST EDX,EDX
JZ 0x000f7b2e
MOV EAX,dword ptr [EBX + 0x4818]
TEST EAX,EAX
JZ 0x000f7cb0
MOV EAX,dword ptr [EBX + 0x481c]
TEST EAX,EAX
JZ 0x000f7cc8
MOV EAX,dword ptr [EBX + 0x482c]
TEST EAX,EAX
JZ 0x000f7c08
MOV EAX,dword ptr [EBX + 0x4820]
TEST EAX,EAX
JZ 0x000f7c20
MOV EAX,dword ptr [EBX + 0x4804]
TEST EAX,EAX
JZ 0x000f7c38
MOV EAX,dword ptr [EBX + 0x4808]
TEST EAX,EAX
JZ 0x000f7c50
MOV EBP,dword ptr [EBX + 0x480c]
TEST EBP,EBP
JZ 0x000f7c68
MOV EDI,dword ptr [EBX + 0x483c]
TEST EDI,EDI
JZ 0x000f7c80
MOV ECX,dword ptr [EBX + 0x4860]
TEST ECX,ECX
JZ 0x000f7c98
MOV EDX,dword ptr [EBX + 0x4864]
TEST EDX,EDX
JZ 0x000f7bf0
CALL 0x00075b90
CALL 0x00120c30
CALL 0x0004f5c0
CALL 0x0017fd40
CALL 0x00059d90
MOV EAX,dword ptr [EBX + 0x4900]
TEST EAX,EAX
JZ 0x000f7bb0
CALL 0x0007f850
CALL 0x000f6240
CALL 0x0005aa50
CALL 0x001b1b10
CALL 0x000fbb10
CALL 0x00039c30
CALL 0x0016d380
CALL 0x000fbe70
MOV dword ptr [EBX + 0x47ec],0x1
SUB ESP,0xc
PUSH ESI
CALL 0x00030d80
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x200c]
XOR EAX,dword ptr GS:[0x14]
JNZ 0x000f7cdd
ADD ESP,0x201c
POP EBX
POP ESI
POP EDI
POP EBP
RET
CALL 0x00031330
MOV dword ptr [EBX + 0x4900],EAX
JMP 0x000f7b51
SUB ESP,0xc
PUSH EDI
CALL 0x000339e0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000f7a4c
SUB ESP,0x4
PUSH 0x1000
PUSH EDI
LEA EDI,[ESP + 0x18]
PUSH EDI
CALL 0x00030b70
ADD ESP,0x10
JMP 0x000f7a61
MOV EAX,0x19
CALL 0x000f6620
MOV dword ptr [EBX + 0x4864],EAX
JMP 0x000f7b2e
MOV EAX,0xb
CALL 0x000f6620
MOV dword ptr [EBX + 0x482c],EAX
JMP 0x000f7acc
MOV EAX,0x8
CALL 0x000f6620
MOV dword ptr [EBX + 0x4820],EAX
JMP 0x000f7ada
MOV EAX,0x1
CALL 0x000f6620
MOV dword ptr [EBX + 0x4804],EAX
JMP 0x000f7ae8
MOV EAX,0x2
CALL 0x000f6620
MOV dword ptr [EBX + 0x4808],EAX
JMP 0x000f7af6
MOV EAX,0x3
CALL 0x000f6620
MOV dword ptr [EBX + 0x480c],EAX
JMP 0x000f7b04
MOV EAX,0xf
CALL 0x000f6620
MOV dword ptr [EBX + 0x483c],EAX
JMP 0x000f7b12
MOV EAX,0x18
CALL 0x000f6620
MOV dword ptr [EBX + 0x4860],EAX
JMP 0x000f7b20
MOV EAX,0x6
CALL 0x000f6620
MOV dword ptr [EBX + 0x4818],EAX
JMP 0x000f7ab0
MOV EAX,0x7
CALL 0x000f6620
MOV dword ptr [EBX + 0x481c],EAX
JMP 0x000f7abe
CALL 0x0029eab0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid MagickCoreGenesis(char *param_1,int param_2)\n\n{\n  int iVar1;\n  int in_GS_OFFSET;\n  undefined1 local_2020 [4096];\n  undefined1 local_1020 [4096];\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xf79a9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  omp_init_lock(&DAT_003dd904);\n  DAT_003dd908 = 1;\n  omp_set_lock(&DAT_003dd904);\n  if (DAT_003dd7ec != 0) goto LAB_000f7b83;\n  FUN_00184990();\n  FUN_000bf040();\n  FUN_000f3bf0();\n  FUN_000f2d60();\n  FUN_0016c8f0();\n  iVar1 = GetEnvironmentValue("MAGICK_DEBUG");\n  if (iVar1 != 0) {\n    SetLogEventMask(iVar1);\n    DestroyString(iVar1);\n  }\n  if ((param_1 == (char *)0x0) || (*param_1 != '/')) {\nLAB_000f7a4c:\n    FUN_001b2e70(local_2020,0x1000);\n  }\n  else {\n    iVar1 = IsPathAccessible(param_1);\n    if (iVar1 == 0) goto LAB_000f7a4c;\n    CopyMagickString(local_2020,param_1,0x1000);\n  }\n  GetPathComponent(local_2020,4,local_1020);\n  SetClientName(local_1020);\n  GetPathComponent(local_2020,3,local_2020);\n  SetClientPath(local_2020);\n  if (param_2 != 0) {\n    if (DAT_003dd818 == 0) {\n      DAT_003dd818 = FUN_000f6620();\n    }\n    if (DAT_003dd81c == 0) {\n      DAT_003dd81c = FUN_000f6620();\n    }\n    if (DAT_003dd82c == 0) {\n      DAT_003dd82c = FUN_000f6620();\n    }\n    if (DAT_003dd820 == 0) {\n      DAT_003dd820 = FUN_000f6620();\n    }\n    if (DAT_003dd804 == 0) {\n      DAT_003dd804 = FUN_000f6620();\n    }\n    if (DAT_003dd808 == 0) {\n      DAT_003dd808 = FUN_000f6620();\n    }\n    if (DAT_003dd80c == 0) {\n      DAT_003dd80c = FUN_000f6620();\n    }\n    if (DAT_003dd83c == 0) {\n      DAT_003dd83c = FUN_000f6620();\n    }\n    if (DAT_003dd860 == 0) {\n      DAT_003dd860 = FUN_000f6620();\n    }\n    if (DAT_003dd864 == 0) {\n      DAT_003dd864 = FUN_000f6620();\n    }\n  }\n  FUN_00075b90();\n  FUN_00120c30();\n  FUN_0004f5c0();\n  FUN_0017fd40();\n  FUN_00059d90();\n  if (DAT_003dd900 == 0) {\n    DAT_003dd900 = AcquireSemaphoreInfo();\n  }\n  FUN_0007f850();\n  FUN_000f6240();\n  FUN_0005aa50();\n  FUN_001b1b10();\n  FUN_000fbb10();\n  FUN_00039c30();\n  FUN_0016d380();\n  FUN_000fbe70();\n  DAT_003dd7ec = 1;\nLAB_000f7b83:\n  omp_unset_lock(&DAT_003dd904);\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0029eab0();\n}\n\n" comment (function_definition "void MagickCoreGenesis(char *param_1,int param_2)\n\n{\n  int iVar1;\n  int in_GS_OFFSET;\n  undefined1 local_2020 [4096];\n  undefined1 local_1020 [4096];\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xf79a9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  omp_init_lock(&DAT_003dd904);\n  DAT_003dd908 = 1;\n  omp_set_lock(&DAT_003dd904);\n  if (DAT_003dd7ec != 0) goto LAB_000f7b83;\n  FUN_00184990();\n  FUN_000bf040();\n  FUN_000f3bf0();\n  FUN_000f2d60();\n  FUN_0016c8f0();\n  iVar1 = GetEnvironmentValue("MAGICK_DEBUG");\n  if (iVar1 != 0) {\n    SetLogEventMask(iVar1);\n    DestroyString(iVar1);\n  }\n  if ((param_1 == (char *)0x0) || (*param_1 != '/')) {\nLAB_000f7a4c:\n    FUN_001b2e70(local_2020,0x1000);\n  }\n  else {\n    iVar1 = IsPathAccessible(param_1);\n    if (iVar1 == 0) goto LAB_000f7a4c;\n    CopyMagickString(local_2020,param_1,0x1000);\n  }\n  GetPathComponent(local_2020,4,local_1020);\n  SetClientName(local_1020);\n  GetPathComponent(local_2020,3,local_2020);\n  SetClientPath(local_2020);\n  if (param_2 != 0) {\n    if (DAT_003dd818 == 0) {\n      DAT_003dd818 = FUN_000f6620();\n    }\n    if (DAT_003dd81c == 0) {\n      DAT_003dd81c = FUN_000f6620();\n    }\n    if (DAT_003dd82c == 0) {\n      DAT_003dd82c = FUN_000f6620();\n    }\n    if (DAT_003dd820 == 0) {\n      DAT_003dd820 = FUN_000f6620();\n    }\n    if (DAT_003dd804 == 0) {\n      DAT_003dd804 = FUN_000f6620();\n    }\n    if (DAT_003dd808 == 0) {\n      DAT_003dd808 = FUN_000f6620();\n    }\n    if (DAT_003dd80c == 0) {\n      DAT_003dd80c = FUN_000f6620();\n    }\n    if (DAT_003dd83c == 0) {\n      DAT_003dd83c = FUN_000f6620();\n    }\n    if (DAT_003dd860 == 0) {\n      DAT_003dd860 = FUN_000f6620();\n    }\n    if (DAT_003dd864 == 0) {\n      DAT_003dd864 = FUN_000f6620();\n    }\n  }\n  FUN_00075b90();\n  FUN_00120c30();\n  FUN_0004f5c0();\n  FUN_0017fd40();\n  FUN_00059d90();\n  if (DAT_003dd900 == 0) {\n    DAT_003dd900 = AcquireSemaphoreInfo();\n  }\n  FUN_0007f850();\n  FUN_000f6240();\n  FUN_0005aa50();\n  FUN_001b1b10();\n  FUN_000fbb10();\n  FUN_00039c30();\n  FUN_0016d380();\n  FUN_000fbe70();\n  DAT_003dd7ec = 1;\nLAB_000f7b83:\n  omp_unset_lock(&DAT_003dd904);\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0029eab0();\n}" primitive_type (function_declarator "MagickCoreGenesis(char *param_1,int param_2)" identifier (parameter_list "(char *param_1,int param_2)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  int in_GS_OFFSET;\n  undefined1 local_2020 [4096];\n  undefined1 local_1020 [4096];\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xf79a9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  omp_init_lock(&DAT_003dd904);\n  DAT_003dd908 = 1;\n  omp_set_lock(&DAT_003dd904);\n  if (DAT_003dd7ec != 0) goto LAB_000f7b83;\n  FUN_00184990();\n  FUN_000bf040();\n  FUN_000f3bf0();\n  FUN_000f2d60();\n  FUN_0016c8f0();\n  iVar1 = GetEnvironmentValue("MAGICK_DEBUG");\n  if (iVar1 != 0) {\n    SetLogEventMask(iVar1);\n    DestroyString(iVar1);\n  }\n  if ((param_1 == (char *)0x0) || (*param_1 != '/')) {\nLAB_000f7a4c:\n    FUN_001b2e70(local_2020,0x1000);\n  }\n  else {\n    iVar1 = IsPathAccessible(param_1);\n    if (iVar1 == 0) goto LAB_000f7a4c;\n    CopyMagickString(local_2020,param_1,0x1000);\n  }\n  GetPathComponent(local_2020,4,local_1020);\n  SetClientName(local_1020);\n  GetPathComponent(local_2020,3,local_2020);\n  SetClientPath(local_2020);\n  if (param_2 != 0) {\n    if (DAT_003dd818 == 0) {\n      DAT_003dd818 = FUN_000f6620();\n    }\n    if (DAT_003dd81c == 0) {\n      DAT_003dd81c = FUN_000f6620();\n    }\n    if (DAT_003dd82c == 0) {\n      DAT_003dd82c = FUN_000f6620();\n    }\n    if (DAT_003dd820 == 0) {\n      DAT_003dd820 = FUN_000f6620();\n    }\n    if (DAT_003dd804 == 0) {\n      DAT_003dd804 = FUN_000f6620();\n    }\n    if (DAT_003dd808 == 0) {\n      DAT_003dd808 = FUN_000f6620();\n    }\n    if (DAT_003dd80c == 0) {\n      DAT_003dd80c = FUN_000f6620();\n    }\n    if (DAT_003dd83c == 0) {\n      DAT_003dd83c = FUN_000f6620();\n    }\n    if (DAT_003dd860 == 0) {\n      DAT_003dd860 = FUN_000f6620();\n    }\n    if (DAT_003dd864 == 0) {\n      DAT_003dd864 = FUN_000f6620();\n    }\n  }\n  FUN_00075b90();\n  FUN_00120c30();\n  FUN_0004f5c0();\n  FUN_0017fd40();\n  FUN_00059d90();\n  if (DAT_003dd900 == 0) {\n    DAT_003dd900 = AcquireSemaphoreInfo();\n  }\n  FUN_0007f850();\n  FUN_000f6240();\n  FUN_0005aa50();\n  FUN_001b1b10();\n  FUN_000fbb10();\n  FUN_00039c30();\n  FUN_0016d380();\n  FUN_000fbe70();\n  DAT_003dd7ec = 1;\nLAB_000f7b83:\n  omp_unset_lock(&DAT_003dd904);\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0029eab0();\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "undefined1 local_2020 [4096];" type_identifier (array_declarator "local_2020 [4096]" identifier [ number_literal ]) ;) (declaration "undefined1 local_1020 [4096];" type_identifier (array_declarator "local_1020 [4096]" identifier [ number_literal ]) ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0xf79a9;" (assignment_expression "uStack_14 = 0xf79a9" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "omp_init_lock(&DAT_003dd904);" (call_expression "omp_init_lock(&DAT_003dd904)" identifier (argument_list "(&DAT_003dd904)" ( (pointer_expression "&DAT_003dd904" & identifier) ))) ;) (expression_statement "DAT_003dd908 = 1;" (assignment_expression "DAT_003dd908 = 1" identifier = number_literal) ;) (expression_statement "omp_set_lock(&DAT_003dd904);" (call_expression "omp_set_lock(&DAT_003dd904)" identifier (argument_list "(&DAT_003dd904)" ( (pointer_expression "&DAT_003dd904" & identifier) ))) ;) (if_statement "if (DAT_003dd7ec != 0) goto LAB_000f7b83;" if (parenthesized_expression "(DAT_003dd7ec != 0)" ( (binary_expression "DAT_003dd7ec != 0" identifier != number_literal) )) (goto_statement "goto LAB_000f7b83;" goto statement_identifier ;)) (expression_statement "FUN_00184990();" (call_expression "FUN_00184990()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000bf040();" (call_expression "FUN_000bf040()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000f3bf0();" (call_expression "FUN_000f3bf0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000f2d60();" (call_expression "FUN_000f2d60()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0016c8f0();" (call_expression "FUN_0016c8f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar1 = GetEnvironmentValue("MAGICK_DEBUG");" (assignment_expression "iVar1 = GetEnvironmentValue("MAGICK_DEBUG")" identifier = (call_expression "GetEnvironmentValue("MAGICK_DEBUG")" identifier (argument_list "("MAGICK_DEBUG")" ( (string_literal ""MAGICK_DEBUG"" " string_content ") )))) ;) (if_statement "if (iVar1 != 0) {\n    SetLogEventMask(iVar1);\n    DestroyString(iVar1);\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    SetLogEventMask(iVar1);\n    DestroyString(iVar1);\n  }" { (expression_statement "SetLogEventMask(iVar1);" (call_expression "SetLogEventMask(iVar1)" identifier (argument_list "(iVar1)" ( identifier ))) ;) (expression_statement "DestroyString(iVar1);" (call_expression "DestroyString(iVar1)" identifier (argument_list "(iVar1)" ( identifier ))) ;) })) (if_statement "if ((param_1 == (char *)0x0) || (*param_1 != '/')) {\nLAB_000f7a4c:\n    FUN_001b2e70(local_2020,0x1000);\n  }\n  else {\n    iVar1 = IsPathAccessible(param_1);\n    if (iVar1 == 0) goto LAB_000f7a4c;\n    CopyMagickString(local_2020,param_1,0x1000);\n  }" if (parenthesized_expression "((param_1 == (char *)0x0) || (*param_1 != '/'))" ( (binary_expression "(param_1 == (char *)0x0) || (*param_1 != '/')" (parenthesized_expression "(param_1 == (char *)0x0)" ( (binary_expression "param_1 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*param_1 != '/')" ( (binary_expression "*param_1 != '/'" (pointer_expression "*param_1" * identifier) != (char_literal "'/'" ' character ')) ))) )) (compound_statement "{\nLAB_000f7a4c:\n    FUN_001b2e70(local_2020,0x1000);\n  }" { (labeled_statement "LAB_000f7a4c:\n    FUN_001b2e70(local_2020,0x1000);" statement_identifier : (expression_statement "FUN_001b2e70(local_2020,0x1000);" (call_expression "FUN_001b2e70(local_2020,0x1000)" identifier (argument_list "(local_2020,0x1000)" ( identifier , number_literal ))) ;)) }) (else_clause "else {\n    iVar1 = IsPathAccessible(param_1);\n    if (iVar1 == 0) goto LAB_000f7a4c;\n    CopyMagickString(local_2020,param_1,0x1000);\n  }" else (compound_statement "{\n    iVar1 = IsPathAccessible(param_1);\n    if (iVar1 == 0) goto LAB_000f7a4c;\n    CopyMagickString(local_2020,param_1,0x1000);\n  }" { (expression_statement "iVar1 = IsPathAccessible(param_1);" (assignment_expression "iVar1 = IsPathAccessible(param_1)" identifier = (call_expression "IsPathAccessible(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (iVar1 == 0) goto LAB_000f7a4c;" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000f7a4c;" goto statement_identifier ;)) (expression_statement "CopyMagickString(local_2020,param_1,0x1000);" (call_expression "CopyMagickString(local_2020,param_1,0x1000)" identifier (argument_list "(local_2020,param_1,0x1000)" ( identifier , identifier , number_literal ))) ;) }))) (expression_statement "GetPathComponent(local_2020,4,local_1020);" (call_expression "GetPathComponent(local_2020,4,local_1020)" identifier (argument_list "(local_2020,4,local_1020)" ( identifier , number_literal , identifier ))) ;) (expression_statement "SetClientName(local_1020);" (call_expression "SetClientName(local_1020)" identifier (argument_list "(local_1020)" ( identifier ))) ;) (expression_statement "GetPathComponent(local_2020,3,local_2020);" (call_expression "GetPathComponent(local_2020,3,local_2020)" identifier (argument_list "(local_2020,3,local_2020)" ( identifier , number_literal , identifier ))) ;) (expression_statement "SetClientPath(local_2020);" (call_expression "SetClientPath(local_2020)" identifier (argument_list "(local_2020)" ( identifier ))) ;) (if_statement "if (param_2 != 0) {\n    if (DAT_003dd818 == 0) {\n      DAT_003dd818 = FUN_000f6620();\n    }\n    if (DAT_003dd81c == 0) {\n      DAT_003dd81c = FUN_000f6620();\n    }\n    if (DAT_003dd82c == 0) {\n      DAT_003dd82c = FUN_000f6620();\n    }\n    if (DAT_003dd820 == 0) {\n      DAT_003dd820 = FUN_000f6620();\n    }\n    if (DAT_003dd804 == 0) {\n      DAT_003dd804 = FUN_000f6620();\n    }\n    if (DAT_003dd808 == 0) {\n      DAT_003dd808 = FUN_000f6620();\n    }\n    if (DAT_003dd80c == 0) {\n      DAT_003dd80c = FUN_000f6620();\n    }\n    if (DAT_003dd83c == 0) {\n      DAT_003dd83c = FUN_000f6620();\n    }\n    if (DAT_003dd860 == 0) {\n      DAT_003dd860 = FUN_000f6620();\n    }\n    if (DAT_003dd864 == 0) {\n      DAT_003dd864 = FUN_000f6620();\n    }\n  }" if (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )) (compound_statement "{\n    if (DAT_003dd818 == 0) {\n      DAT_003dd818 = FUN_000f6620();\n    }\n    if (DAT_003dd81c == 0) {\n      DAT_003dd81c = FUN_000f6620();\n    }\n    if (DAT_003dd82c == 0) {\n      DAT_003dd82c = FUN_000f6620();\n    }\n    if (DAT_003dd820 == 0) {\n      DAT_003dd820 = FUN_000f6620();\n    }\n    if (DAT_003dd804 == 0) {\n      DAT_003dd804 = FUN_000f6620();\n    }\n    if (DAT_003dd808 == 0) {\n      DAT_003dd808 = FUN_000f6620();\n    }\n    if (DAT_003dd80c == 0) {\n      DAT_003dd80c = FUN_000f6620();\n    }\n    if (DAT_003dd83c == 0) {\n      DAT_003dd83c = FUN_000f6620();\n    }\n    if (DAT_003dd860 == 0) {\n      DAT_003dd860 = FUN_000f6620();\n    }\n    if (DAT_003dd864 == 0) {\n      DAT_003dd864 = FUN_000f6620();\n    }\n  }" { (if_statement "if (DAT_003dd818 == 0) {\n      DAT_003dd818 = FUN_000f6620();\n    }" if (parenthesized_expression "(DAT_003dd818 == 0)" ( (binary_expression "DAT_003dd818 == 0" identifier == number_literal) )) (compound_statement "{\n      DAT_003dd818 = FUN_000f6620();\n    }" { (expression_statement "DAT_003dd818 = FUN_000f6620();" (assignment_expression "DAT_003dd818 = FUN_000f6620()" identifier = (call_expression "FUN_000f6620()" identifier (argument_list "()" ( )))) ;) })) (if_statement "if (DAT_003dd81c == 0) {\n      DAT_003dd81c = FUN_000f6620();\n    }" if (parenthesized_expression "(DAT_003dd81c == 0)" ( (binary_expression "DAT_003dd81c == 0" identifier == number_literal) )) (compound_statement "{\n      DAT_003dd81c = FUN_000f6620();\n    }" { (expression_statement "DAT_003dd81c = FUN_000f6620();" (assignment_expression "DAT_003dd81c = FUN_000f6620()" identifier = (call_expression "FUN_000f6620()" identifier (argument_list "()" ( )))) ;) })) (if_statement "if (DAT_003dd82c == 0) {\n      DAT_003dd82c = FUN_000f6620();\n    }" if (parenthesized_expression "(DAT_003dd82c == 0)" ( (binary_expression "DAT_003dd82c == 0" identifier == number_literal) )) (compound_statement "{\n      DAT_003dd82c = FUN_000f6620();\n    }" { (expression_statement "DAT_003dd82c = FUN_000f6620();" (assignment_expression "DAT_003dd82c = FUN_000f6620()" identifier = (call_expression "FUN_000f6620()" identifier (argument_list "()" ( )))) ;) })) (if_statement "if (DAT_003dd820 == 0) {\n      DAT_003dd820 = FUN_000f6620();\n    }" if (parenthesized_expression "(DAT_003dd820 == 0)" ( (binary_expression "DAT_003dd820 == 0" identifier == number_literal) )) (compound_statement "{\n      DAT_003dd820 = FUN_000f6620();\n    }" { (expression_statement "DAT_003dd820 = FUN_000f6620();" (assignment_expression "DAT_003dd820 = FUN_000f6620()" identifier = (call_expression "FUN_000f6620()" identifier (argument_list "()" ( )))) ;) })) (if_statement "if (DAT_003dd804 == 0) {\n      DAT_003dd804 = FUN_000f6620();\n    }" if (parenthesized_expression "(DAT_003dd804 == 0)" ( (binary_expression "DAT_003dd804 == 0" identifier == number_literal) )) (compound_statement "{\n      DAT_003dd804 = FUN_000f6620();\n    }" { (expression_statement "DAT_003dd804 = FUN_000f6620();" (assignment_expression "DAT_003dd804 = FUN_000f6620()" identifier = (call_expression "FUN_000f6620()" identifier (argument_list "()" ( )))) ;) })) (if_statement "if (DAT_003dd808 == 0) {\n      DAT_003dd808 = FUN_000f6620();\n    }" if (parenthesized_expression "(DAT_003dd808 == 0)" ( (binary_expression "DAT_003dd808 == 0" identifier == number_literal) )) (compound_statement "{\n      DAT_003dd808 = FUN_000f6620();\n    }" { (expression_statement "DAT_003dd808 = FUN_000f6620();" (assignment_expression "DAT_003dd808 = FUN_000f6620()" identifier = (call_expression "FUN_000f6620()" identifier (argument_list "()" ( )))) ;) })) (if_statement "if (DAT_003dd80c == 0) {\n      DAT_003dd80c = FUN_000f6620();\n    }" if (parenthesized_expression "(DAT_003dd80c == 0)" ( (binary_expression "DAT_003dd80c == 0" identifier == number_literal) )) (compound_statement "{\n      DAT_003dd80c = FUN_000f6620();\n    }" { (expression_statement "DAT_003dd80c = FUN_000f6620();" (assignment_expression "DAT_003dd80c = FUN_000f6620()" identifier = (call_expression "FUN_000f6620()" identifier (argument_list "()" ( )))) ;) })) (if_statement "if (DAT_003dd83c == 0) {\n      DAT_003dd83c = FUN_000f6620();\n    }" if (parenthesized_expression "(DAT_003dd83c == 0)" ( (binary_expression "DAT_003dd83c == 0" identifier == number_literal) )) (compound_statement "{\n      DAT_003dd83c = FUN_000f6620();\n    }" { (expression_statement "DAT_003dd83c = FUN_000f6620();" (assignment_expression "DAT_003dd83c = FUN_000f6620()" identifier = (call_expression "FUN_000f6620()" identifier (argument_list "()" ( )))) ;) })) (if_statement "if (DAT_003dd860 == 0) {\n      DAT_003dd860 = FUN_000f6620();\n    }" if (parenthesized_expression "(DAT_003dd860 == 0)" ( (binary_expression "DAT_003dd860 == 0" identifier == number_literal) )) (compound_statement "{\n      DAT_003dd860 = FUN_000f6620();\n    }" { (expression_statement "DAT_003dd860 = FUN_000f6620();" (assignment_expression "DAT_003dd860 = FUN_000f6620()" identifier = (call_expression "FUN_000f6620()" identifier (argument_list "()" ( )))) ;) })) (if_statement "if (DAT_003dd864 == 0) {\n      DAT_003dd864 = FUN_000f6620();\n    }" if (parenthesized_expression "(DAT_003dd864 == 0)" ( (binary_expression "DAT_003dd864 == 0" identifier == number_literal) )) (compound_statement "{\n      DAT_003dd864 = FUN_000f6620();\n    }" { (expression_statement "DAT_003dd864 = FUN_000f6620();" (assignment_expression "DAT_003dd864 = FUN_000f6620()" identifier = (call_expression "FUN_000f6620()" identifier (argument_list "()" ( )))) ;) })) })) (expression_statement "FUN_00075b90();" (call_expression "FUN_00075b90()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00120c30();" (call_expression "FUN_00120c30()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0004f5c0();" (call_expression "FUN_0004f5c0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0017fd40();" (call_expression "FUN_0017fd40()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00059d90();" (call_expression "FUN_00059d90()" identifier (argument_list "()" ( ))) ;) (if_statement "if (DAT_003dd900 == 0) {\n    DAT_003dd900 = AcquireSemaphoreInfo();\n  }" if (parenthesized_expression "(DAT_003dd900 == 0)" ( (binary_expression "DAT_003dd900 == 0" identifier == number_literal) )) (compound_statement "{\n    DAT_003dd900 = AcquireSemaphoreInfo();\n  }" { (expression_statement "DAT_003dd900 = AcquireSemaphoreInfo();" (assignment_expression "DAT_003dd900 = AcquireSemaphoreInfo()" identifier = (call_expression "AcquireSemaphoreInfo()" identifier (argument_list "()" ( )))) ;) })) (expression_statement "FUN_0007f850();" (call_expression "FUN_0007f850()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000f6240();" (call_expression "FUN_000f6240()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0005aa50();" (call_expression "FUN_0005aa50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_001b1b10();" (call_expression "FUN_001b1b10()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000fbb10();" (call_expression "FUN_000fbb10()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00039c30();" (call_expression "FUN_00039c30()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0016d380();" (call_expression "FUN_0016d380()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000fbe70();" (call_expression "FUN_000fbe70()" identifier (argument_list "()" ( ))) ;) (expression_statement "DAT_003dd7ec = 1;" (assignment_expression "DAT_003dd7ec = 1" identifier = number_literal) ;) (labeled_statement "LAB_000f7b83:\n  omp_unset_lock(&DAT_003dd904);" statement_identifier : (expression_statement "omp_unset_lock(&DAT_003dd904);" (call_expression "omp_unset_lock(&DAT_003dd904)" identifier (argument_list "(&DAT_003dd904)" ( (pointer_expression "&DAT_003dd904" & identifier) ))) ;)) (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" if (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) comment (expression_statement "FUN_0029eab0();" (call_expression "FUN_0029eab0()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n/* WARNING: Enum "LogEventType": Some values do not have unique names */\n\nvoid MagickCoreGenesis(char *path,MagickBooleanType establish_signal_handlers)\n\n{\n  int iVar1;\n  char *events;\n  MagickBooleanType MVar2;\n  int in_GS_OFFSET;\n  char execution_path [4096];\n  char filename [4096];\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  omp_init_lock(&translation_unit_mutex);\n  translation_unit_initialized = MagickTrue;\n  omp_set_lock(&translation_unit_mutex);\n  if (magickcore_instantiated != MagickFalse) goto LAB_000f7b83;\n  SemaphoreComponentGenesis();\n  ExceptionComponentGenesis();\n  LogComponentGenesis();\n  LocaleComponentGenesis();\n  RandomComponentGenesis();\n  events = GetEnvironmentValue("MAGICK_DEBUG");\n  if (events != (char *)0x0) {\n    SetLogEventMask(events);\n    DestroyString(events);\n  }\n  if ((path == (char *)0x0) || (*path != '/')) {\nLAB_000f7a4c:\n    GetExecutionPath(execution_path,0x1000);\n  }\n  else {\n    MVar2 = IsPathAccessible(path);\n    if (MVar2 == MagickFalse) goto LAB_000f7a4c;\n    CopyMagickString(execution_path,path,0x1000);\n  }\n  GetPathComponent(execution_path,TailPath,filename);\n  SetClientName(filename);\n  GetPathComponent(execution_path,HeadPath,execution_path);\n  SetClientPath(execution_path);\n  if (establish_signal_handlers != MagickFalse) {\n    if (signal_handlers[6] == (SignalHandler *)0x0) {\n      signal_handlers[6] = RegisterMagickSignalHandler(6);\n    }\n    if (signal_handlers[7] == (SignalHandler *)0x0) {\n      signal_handlers[7] = RegisterMagickSignalHandler(7);\n    }\n    if (signal_handlers[0xb] == (SignalHandler *)0x0) {\n      signal_handlers[0xb] = RegisterMagickSignalHandler(0xb);\n    }\n    if (signal_handlers[8] == (SignalHandler *)0x0) {\n      signal_handlers[8] = RegisterMagickSignalHandler(8);\n    }\n    if (signal_handlers[1] == (SignalHandler *)0x0) {\n      signal_handlers[1] = RegisterMagickSignalHandler(1);\n    }\n    if (signal_handlers[2] == (SignalHandler *)0x0) {\n      signal_handlers[2] = RegisterMagickSignalHandler(2);\n    }\n    if (signal_handlers[3] == (SignalHandler *)0x0) {\n      signal_handlers[3] = RegisterMagickSignalHandler(3);\n    }\n    if (signal_handlers[0xf] == (SignalHandler *)0x0) {\n      signal_handlers[0xf] = RegisterMagickSignalHandler(0xf);\n    }\n    if (signal_handlers[0x18] == (SignalHandler *)0x0) {\n      signal_handlers[0x18] = RegisterMagickSignalHandler(0x18);\n    }\n    if (signal_handlers[0x19] == (SignalHandler *)0x0) {\n      signal_handlers[0x19] = RegisterMagickSignalHandler(0x19);\n    }\n  }\n  ConfigureComponentGenesis();\n  PolicyComponentGenesis();\n  CacheComponentGenesis();\n  ResourceComponentGenesis();\n  CoderComponentGenesis();\n  if (magick_semaphore == (SemaphoreInfo *)0x0) {\n    magick_semaphore = AcquireSemaphoreInfo();\n  }\n  DelegateComponentGenesis();\n  MagicComponentGenesis();\n  ColorComponentGenesis();\n  TypeComponentGenesis();\n  MimeComponentGenesis();\n  AnnotateComponentGenesis();\n  RegistryComponentGenesis();\n  MonitorComponentGenesis();\n  magickcore_instantiated = MagickTrue;\nLAB_000f7b83:\n  omp_unset_lock(&translation_unit_mutex);\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}\n\n" comment comment comment (function_definition "void MagickCoreGenesis(char *path,MagickBooleanType establish_signal_handlers)\n\n{\n  int iVar1;\n  char *events;\n  MagickBooleanType MVar2;\n  int in_GS_OFFSET;\n  char execution_path [4096];\n  char filename [4096];\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  omp_init_lock(&translation_unit_mutex);\n  translation_unit_initialized = MagickTrue;\n  omp_set_lock(&translation_unit_mutex);\n  if (magickcore_instantiated != MagickFalse) goto LAB_000f7b83;\n  SemaphoreComponentGenesis();\n  ExceptionComponentGenesis();\n  LogComponentGenesis();\n  LocaleComponentGenesis();\n  RandomComponentGenesis();\n  events = GetEnvironmentValue("MAGICK_DEBUG");\n  if (events != (char *)0x0) {\n    SetLogEventMask(events);\n    DestroyString(events);\n  }\n  if ((path == (char *)0x0) || (*path != '/')) {\nLAB_000f7a4c:\n    GetExecutionPath(execution_path,0x1000);\n  }\n  else {\n    MVar2 = IsPathAccessible(path);\n    if (MVar2 == MagickFalse) goto LAB_000f7a4c;\n    CopyMagickString(execution_path,path,0x1000);\n  }\n  GetPathComponent(execution_path,TailPath,filename);\n  SetClientName(filename);\n  GetPathComponent(execution_path,HeadPath,execution_path);\n  SetClientPath(execution_path);\n  if (establish_signal_handlers != MagickFalse) {\n    if (signal_handlers[6] == (SignalHandler *)0x0) {\n      signal_handlers[6] = RegisterMagickSignalHandler(6);\n    }\n    if (signal_handlers[7] == (SignalHandler *)0x0) {\n      signal_handlers[7] = RegisterMagickSignalHandler(7);\n    }\n    if (signal_handlers[0xb] == (SignalHandler *)0x0) {\n      signal_handlers[0xb] = RegisterMagickSignalHandler(0xb);\n    }\n    if (signal_handlers[8] == (SignalHandler *)0x0) {\n      signal_handlers[8] = RegisterMagickSignalHandler(8);\n    }\n    if (signal_handlers[1] == (SignalHandler *)0x0) {\n      signal_handlers[1] = RegisterMagickSignalHandler(1);\n    }\n    if (signal_handlers[2] == (SignalHandler *)0x0) {\n      signal_handlers[2] = RegisterMagickSignalHandler(2);\n    }\n    if (signal_handlers[3] == (SignalHandler *)0x0) {\n      signal_handlers[3] = RegisterMagickSignalHandler(3);\n    }\n    if (signal_handlers[0xf] == (SignalHandler *)0x0) {\n      signal_handlers[0xf] = RegisterMagickSignalHandler(0xf);\n    }\n    if (signal_handlers[0x18] == (SignalHandler *)0x0) {\n      signal_handlers[0x18] = RegisterMagickSignalHandler(0x18);\n    }\n    if (signal_handlers[0x19] == (SignalHandler *)0x0) {\n      signal_handlers[0x19] = RegisterMagickSignalHandler(0x19);\n    }\n  }\n  ConfigureComponentGenesis();\n  PolicyComponentGenesis();\n  CacheComponentGenesis();\n  ResourceComponentGenesis();\n  CoderComponentGenesis();\n  if (magick_semaphore == (SemaphoreInfo *)0x0) {\n    magick_semaphore = AcquireSemaphoreInfo();\n  }\n  DelegateComponentGenesis();\n  MagicComponentGenesis();\n  ColorComponentGenesis();\n  TypeComponentGenesis();\n  MimeComponentGenesis();\n  AnnotateComponentGenesis();\n  RegistryComponentGenesis();\n  MonitorComponentGenesis();\n  magickcore_instantiated = MagickTrue;\nLAB_000f7b83:\n  omp_unset_lock(&translation_unit_mutex);\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" primitive_type (function_declarator "MagickCoreGenesis(char *path,MagickBooleanType establish_signal_handlers)" identifier (parameter_list "(char *path,MagickBooleanType establish_signal_handlers)" ( (parameter_declaration "char *path" primitive_type (pointer_declarator "*path" * identifier)) , (parameter_declaration "MagickBooleanType establish_signal_handlers" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  char *events;\n  MagickBooleanType MVar2;\n  int in_GS_OFFSET;\n  char execution_path [4096];\n  char filename [4096];\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  omp_init_lock(&translation_unit_mutex);\n  translation_unit_initialized = MagickTrue;\n  omp_set_lock(&translation_unit_mutex);\n  if (magickcore_instantiated != MagickFalse) goto LAB_000f7b83;\n  SemaphoreComponentGenesis();\n  ExceptionComponentGenesis();\n  LogComponentGenesis();\n  LocaleComponentGenesis();\n  RandomComponentGenesis();\n  events = GetEnvironmentValue("MAGICK_DEBUG");\n  if (events != (char *)0x0) {\n    SetLogEventMask(events);\n    DestroyString(events);\n  }\n  if ((path == (char *)0x0) || (*path != '/')) {\nLAB_000f7a4c:\n    GetExecutionPath(execution_path,0x1000);\n  }\n  else {\n    MVar2 = IsPathAccessible(path);\n    if (MVar2 == MagickFalse) goto LAB_000f7a4c;\n    CopyMagickString(execution_path,path,0x1000);\n  }\n  GetPathComponent(execution_path,TailPath,filename);\n  SetClientName(filename);\n  GetPathComponent(execution_path,HeadPath,execution_path);\n  SetClientPath(execution_path);\n  if (establish_signal_handlers != MagickFalse) {\n    if (signal_handlers[6] == (SignalHandler *)0x0) {\n      signal_handlers[6] = RegisterMagickSignalHandler(6);\n    }\n    if (signal_handlers[7] == (SignalHandler *)0x0) {\n      signal_handlers[7] = RegisterMagickSignalHandler(7);\n    }\n    if (signal_handlers[0xb] == (SignalHandler *)0x0) {\n      signal_handlers[0xb] = RegisterMagickSignalHandler(0xb);\n    }\n    if (signal_handlers[8] == (SignalHandler *)0x0) {\n      signal_handlers[8] = RegisterMagickSignalHandler(8);\n    }\n    if (signal_handlers[1] == (SignalHandler *)0x0) {\n      signal_handlers[1] = RegisterMagickSignalHandler(1);\n    }\n    if (signal_handlers[2] == (SignalHandler *)0x0) {\n      signal_handlers[2] = RegisterMagickSignalHandler(2);\n    }\n    if (signal_handlers[3] == (SignalHandler *)0x0) {\n      signal_handlers[3] = RegisterMagickSignalHandler(3);\n    }\n    if (signal_handlers[0xf] == (SignalHandler *)0x0) {\n      signal_handlers[0xf] = RegisterMagickSignalHandler(0xf);\n    }\n    if (signal_handlers[0x18] == (SignalHandler *)0x0) {\n      signal_handlers[0x18] = RegisterMagickSignalHandler(0x18);\n    }\n    if (signal_handlers[0x19] == (SignalHandler *)0x0) {\n      signal_handlers[0x19] = RegisterMagickSignalHandler(0x19);\n    }\n  }\n  ConfigureComponentGenesis();\n  PolicyComponentGenesis();\n  CacheComponentGenesis();\n  ResourceComponentGenesis();\n  CoderComponentGenesis();\n  if (magick_semaphore == (SemaphoreInfo *)0x0) {\n    magick_semaphore = AcquireSemaphoreInfo();\n  }\n  DelegateComponentGenesis();\n  MagicComponentGenesis();\n  ColorComponentGenesis();\n  TypeComponentGenesis();\n  MimeComponentGenesis();\n  AnnotateComponentGenesis();\n  RegistryComponentGenesis();\n  MonitorComponentGenesis();\n  magickcore_instantiated = MagickTrue;\nLAB_000f7b83:\n  omp_unset_lock(&translation_unit_mutex);\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "char *events;" primitive_type (pointer_declarator "*events" * identifier) ;) (declaration "MagickBooleanType MVar2;" type_identifier identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "char execution_path [4096];" primitive_type (array_declarator "execution_path [4096]" identifier [ number_literal ]) ;) (declaration "char filename [4096];" primitive_type (array_declarator "filename [4096]" identifier [ number_literal ]) ;) (expression_statement "iVar1 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar1 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "omp_init_lock(&translation_unit_mutex);" (call_expression "omp_init_lock(&translation_unit_mutex)" identifier (argument_list "(&translation_unit_mutex)" ( (pointer_expression "&translation_unit_mutex" & identifier) ))) ;) (expression_statement "translation_unit_initialized = MagickTrue;" (assignment_expression "translation_unit_initialized = MagickTrue" identifier = identifier) ;) (expression_statement "omp_set_lock(&translation_unit_mutex);" (call_expression "omp_set_lock(&translation_unit_mutex)" identifier (argument_list "(&translation_unit_mutex)" ( (pointer_expression "&translation_unit_mutex" & identifier) ))) ;) (if_statement "if (magickcore_instantiated != MagickFalse) goto LAB_000f7b83;" if (parenthesized_expression "(magickcore_instantiated != MagickFalse)" ( (binary_expression "magickcore_instantiated != MagickFalse" identifier != identifier) )) (goto_statement "goto LAB_000f7b83;" goto statement_identifier ;)) (expression_statement "SemaphoreComponentGenesis();" (call_expression "SemaphoreComponentGenesis()" identifier (argument_list "()" ( ))) ;) (expression_statement "ExceptionComponentGenesis();" (call_expression "ExceptionComponentGenesis()" identifier (argument_list "()" ( ))) ;) (expression_statement "LogComponentGenesis();" (call_expression "LogComponentGenesis()" identifier (argument_list "()" ( ))) ;) (expression_statement "LocaleComponentGenesis();" (call_expression "LocaleComponentGenesis()" identifier (argument_list "()" ( ))) ;) (expression_statement "RandomComponentGenesis();" (call_expression "RandomComponentGenesis()" identifier (argument_list "()" ( ))) ;) (expression_statement "events = GetEnvironmentValue("MAGICK_DEBUG");" (assignment_expression "events = GetEnvironmentValue("MAGICK_DEBUG")" identifier = (call_expression "GetEnvironmentValue("MAGICK_DEBUG")" identifier (argument_list "("MAGICK_DEBUG")" ( (string_literal ""MAGICK_DEBUG"" " string_content ") )))) ;) (if_statement "if (events != (char *)0x0) {\n    SetLogEventMask(events);\n    DestroyString(events);\n  }" if (parenthesized_expression "(events != (char *)0x0)" ( (binary_expression "events != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    SetLogEventMask(events);\n    DestroyString(events);\n  }" { (expression_statement "SetLogEventMask(events);" (call_expression "SetLogEventMask(events)" identifier (argument_list "(events)" ( identifier ))) ;) (expression_statement "DestroyString(events);" (call_expression "DestroyString(events)" identifier (argument_list "(events)" ( identifier ))) ;) })) (if_statement "if ((path == (char *)0x0) || (*path != '/')) {\nLAB_000f7a4c:\n    GetExecutionPath(execution_path,0x1000);\n  }\n  else {\n    MVar2 = IsPathAccessible(path);\n    if (MVar2 == MagickFalse) goto LAB_000f7a4c;\n    CopyMagickString(execution_path,path,0x1000);\n  }" if (parenthesized_expression "((path == (char *)0x0) || (*path != '/'))" ( (binary_expression "(path == (char *)0x0) || (*path != '/')" (parenthesized_expression "(path == (char *)0x0)" ( (binary_expression "path == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*path != '/')" ( (binary_expression "*path != '/'" (pointer_expression "*path" * identifier) != (char_literal "'/'" ' character ')) ))) )) (compound_statement "{\nLAB_000f7a4c:\n    GetExecutionPath(execution_path,0x1000);\n  }" { (labeled_statement "LAB_000f7a4c:\n    GetExecutionPath(execution_path,0x1000);" statement_identifier : (expression_statement "GetExecutionPath(execution_path,0x1000);" (call_expression "GetExecutionPath(execution_path,0x1000)" identifier (argument_list "(execution_path,0x1000)" ( identifier , number_literal ))) ;)) }) (else_clause "else {\n    MVar2 = IsPathAccessible(path);\n    if (MVar2 == MagickFalse) goto LAB_000f7a4c;\n    CopyMagickString(execution_path,path,0x1000);\n  }" else (compound_statement "{\n    MVar2 = IsPathAccessible(path);\n    if (MVar2 == MagickFalse) goto LAB_000f7a4c;\n    CopyMagickString(execution_path,path,0x1000);\n  }" { (expression_statement "MVar2 = IsPathAccessible(path);" (assignment_expression "MVar2 = IsPathAccessible(path)" identifier = (call_expression "IsPathAccessible(path)" identifier (argument_list "(path)" ( identifier )))) ;) (if_statement "if (MVar2 == MagickFalse) goto LAB_000f7a4c;" if (parenthesized_expression "(MVar2 == MagickFalse)" ( (binary_expression "MVar2 == MagickFalse" identifier == identifier) )) (goto_statement "goto LAB_000f7a4c;" goto statement_identifier ;)) (expression_statement "CopyMagickString(execution_path,path,0x1000);" (call_expression "CopyMagickString(execution_path,path,0x1000)" identifier (argument_list "(execution_path,path,0x1000)" ( identifier , identifier , number_literal ))) ;) }))) (expression_statement "GetPathComponent(execution_path,TailPath,filename);" (call_expression "GetPathComponent(execution_path,TailPath,filename)" identifier (argument_list "(execution_path,TailPath,filename)" ( identifier , identifier , identifier ))) ;) (expression_statement "SetClientName(filename);" (call_expression "SetClientName(filename)" identifier (argument_list "(filename)" ( identifier ))) ;) (expression_statement "GetPathComponent(execution_path,HeadPath,execution_path);" (call_expression "GetPathComponent(execution_path,HeadPath,execution_path)" identifier (argument_list "(execution_path,HeadPath,execution_path)" ( identifier , identifier , identifier ))) ;) (expression_statement "SetClientPath(execution_path);" (call_expression "SetClientPath(execution_path)" identifier (argument_list "(execution_path)" ( identifier ))) ;) (if_statement "if (establish_signal_handlers != MagickFalse) {\n    if (signal_handlers[6] == (SignalHandler *)0x0) {\n      signal_handlers[6] = RegisterMagickSignalHandler(6);\n    }\n    if (signal_handlers[7] == (SignalHandler *)0x0) {\n      signal_handlers[7] = RegisterMagickSignalHandler(7);\n    }\n    if (signal_handlers[0xb] == (SignalHandler *)0x0) {\n      signal_handlers[0xb] = RegisterMagickSignalHandler(0xb);\n    }\n    if (signal_handlers[8] == (SignalHandler *)0x0) {\n      signal_handlers[8] = RegisterMagickSignalHandler(8);\n    }\n    if (signal_handlers[1] == (SignalHandler *)0x0) {\n      signal_handlers[1] = RegisterMagickSignalHandler(1);\n    }\n    if (signal_handlers[2] == (SignalHandler *)0x0) {\n      signal_handlers[2] = RegisterMagickSignalHandler(2);\n    }\n    if (signal_handlers[3] == (SignalHandler *)0x0) {\n      signal_handlers[3] = RegisterMagickSignalHandler(3);\n    }\n    if (signal_handlers[0xf] == (SignalHandler *)0x0) {\n      signal_handlers[0xf] = RegisterMagickSignalHandler(0xf);\n    }\n    if (signal_handlers[0x18] == (SignalHandler *)0x0) {\n      signal_handlers[0x18] = RegisterMagickSignalHandler(0x18);\n    }\n    if (signal_handlers[0x19] == (SignalHandler *)0x0) {\n      signal_handlers[0x19] = RegisterMagickSignalHandler(0x19);\n    }\n  }" if (parenthesized_expression "(establish_signal_handlers != MagickFalse)" ( (binary_expression "establish_signal_handlers != MagickFalse" identifier != identifier) )) (compound_statement "{\n    if (signal_handlers[6] == (SignalHandler *)0x0) {\n      signal_handlers[6] = RegisterMagickSignalHandler(6);\n    }\n    if (signal_handlers[7] == (SignalHandler *)0x0) {\n      signal_handlers[7] = RegisterMagickSignalHandler(7);\n    }\n    if (signal_handlers[0xb] == (SignalHandler *)0x0) {\n      signal_handlers[0xb] = RegisterMagickSignalHandler(0xb);\n    }\n    if (signal_handlers[8] == (SignalHandler *)0x0) {\n      signal_handlers[8] = RegisterMagickSignalHandler(8);\n    }\n    if (signal_handlers[1] == (SignalHandler *)0x0) {\n      signal_handlers[1] = RegisterMagickSignalHandler(1);\n    }\n    if (signal_handlers[2] == (SignalHandler *)0x0) {\n      signal_handlers[2] = RegisterMagickSignalHandler(2);\n    }\n    if (signal_handlers[3] == (SignalHandler *)0x0) {\n      signal_handlers[3] = RegisterMagickSignalHandler(3);\n    }\n    if (signal_handlers[0xf] == (SignalHandler *)0x0) {\n      signal_handlers[0xf] = RegisterMagickSignalHandler(0xf);\n    }\n    if (signal_handlers[0x18] == (SignalHandler *)0x0) {\n      signal_handlers[0x18] = RegisterMagickSignalHandler(0x18);\n    }\n    if (signal_handlers[0x19] == (SignalHandler *)0x0) {\n      signal_handlers[0x19] = RegisterMagickSignalHandler(0x19);\n    }\n  }" { (if_statement "if (signal_handlers[6] == (SignalHandler *)0x0) {\n      signal_handlers[6] = RegisterMagickSignalHandler(6);\n    }" if (parenthesized_expression "(signal_handlers[6] == (SignalHandler *)0x0)" ( (binary_expression "signal_handlers[6] == (SignalHandler *)0x0" (subscript_expression "signal_handlers[6]" identifier [ number_literal ]) == (cast_expression "(SignalHandler *)0x0" ( (type_descriptor "SignalHandler *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      signal_handlers[6] = RegisterMagickSignalHandler(6);\n    }" { (expression_statement "signal_handlers[6] = RegisterMagickSignalHandler(6);" (assignment_expression "signal_handlers[6] = RegisterMagickSignalHandler(6)" (subscript_expression "signal_handlers[6]" identifier [ number_literal ]) = (call_expression "RegisterMagickSignalHandler(6)" identifier (argument_list "(6)" ( number_literal )))) ;) })) (if_statement "if (signal_handlers[7] == (SignalHandler *)0x0) {\n      signal_handlers[7] = RegisterMagickSignalHandler(7);\n    }" if (parenthesized_expression "(signal_handlers[7] == (SignalHandler *)0x0)" ( (binary_expression "signal_handlers[7] == (SignalHandler *)0x0" (subscript_expression "signal_handlers[7]" identifier [ number_literal ]) == (cast_expression "(SignalHandler *)0x0" ( (type_descriptor "SignalHandler *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      signal_handlers[7] = RegisterMagickSignalHandler(7);\n    }" { (expression_statement "signal_handlers[7] = RegisterMagickSignalHandler(7);" (assignment_expression "signal_handlers[7] = RegisterMagickSignalHandler(7)" (subscript_expression "signal_handlers[7]" identifier [ number_literal ]) = (call_expression "RegisterMagickSignalHandler(7)" identifier (argument_list "(7)" ( number_literal )))) ;) })) (if_statement "if (signal_handlers[0xb] == (SignalHandler *)0x0) {\n      signal_handlers[0xb] = RegisterMagickSignalHandler(0xb);\n    }" if (parenthesized_expression "(signal_handlers[0xb] == (SignalHandler *)0x0)" ( (binary_expression "signal_handlers[0xb] == (SignalHandler *)0x0" (subscript_expression "signal_handlers[0xb]" identifier [ number_literal ]) == (cast_expression "(SignalHandler *)0x0" ( (type_descriptor "SignalHandler *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      signal_handlers[0xb] = RegisterMagickSignalHandler(0xb);\n    }" { (expression_statement "signal_handlers[0xb] = RegisterMagickSignalHandler(0xb);" (assignment_expression "signal_handlers[0xb] = RegisterMagickSignalHandler(0xb)" (subscript_expression "signal_handlers[0xb]" identifier [ number_literal ]) = (call_expression "RegisterMagickSignalHandler(0xb)" identifier (argument_list "(0xb)" ( number_literal )))) ;) })) (if_statement "if (signal_handlers[8] == (SignalHandler *)0x0) {\n      signal_handlers[8] = RegisterMagickSignalHandler(8);\n    }" if (parenthesized_expression "(signal_handlers[8] == (SignalHandler *)0x0)" ( (binary_expression "signal_handlers[8] == (SignalHandler *)0x0" (subscript_expression "signal_handlers[8]" identifier [ number_literal ]) == (cast_expression "(SignalHandler *)0x0" ( (type_descriptor "SignalHandler *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      signal_handlers[8] = RegisterMagickSignalHandler(8);\n    }" { (expression_statement "signal_handlers[8] = RegisterMagickSignalHandler(8);" (assignment_expression "signal_handlers[8] = RegisterMagickSignalHandler(8)" (subscript_expression "signal_handlers[8]" identifier [ number_literal ]) = (call_expression "RegisterMagickSignalHandler(8)" identifier (argument_list "(8)" ( number_literal )))) ;) })) (if_statement "if (signal_handlers[1] == (SignalHandler *)0x0) {\n      signal_handlers[1] = RegisterMagickSignalHandler(1);\n    }" if (parenthesized_expression "(signal_handlers[1] == (SignalHandler *)0x0)" ( (binary_expression "signal_handlers[1] == (SignalHandler *)0x0" (subscript_expression "signal_handlers[1]" identifier [ number_literal ]) == (cast_expression "(SignalHandler *)0x0" ( (type_descriptor "SignalHandler *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      signal_handlers[1] = RegisterMagickSignalHandler(1);\n    }" { (expression_statement "signal_handlers[1] = RegisterMagickSignalHandler(1);" (assignment_expression "signal_handlers[1] = RegisterMagickSignalHandler(1)" (subscript_expression "signal_handlers[1]" identifier [ number_literal ]) = (call_expression "RegisterMagickSignalHandler(1)" identifier (argument_list "(1)" ( number_literal )))) ;) })) (if_statement "if (signal_handlers[2] == (SignalHandler *)0x0) {\n      signal_handlers[2] = RegisterMagickSignalHandler(2);\n    }" if (parenthesized_expression "(signal_handlers[2] == (SignalHandler *)0x0)" ( (binary_expression "signal_handlers[2] == (SignalHandler *)0x0" (subscript_expression "signal_handlers[2]" identifier [ number_literal ]) == (cast_expression "(SignalHandler *)0x0" ( (type_descriptor "SignalHandler *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      signal_handlers[2] = RegisterMagickSignalHandler(2);\n    }" { (expression_statement "signal_handlers[2] = RegisterMagickSignalHandler(2);" (assignment_expression "signal_handlers[2] = RegisterMagickSignalHandler(2)" (subscript_expression "signal_handlers[2]" identifier [ number_literal ]) = (call_expression "RegisterMagickSignalHandler(2)" identifier (argument_list "(2)" ( number_literal )))) ;) })) (if_statement "if (signal_handlers[3] == (SignalHandler *)0x0) {\n      signal_handlers[3] = RegisterMagickSignalHandler(3);\n    }" if (parenthesized_expression "(signal_handlers[3] == (SignalHandler *)0x0)" ( (binary_expression "signal_handlers[3] == (SignalHandler *)0x0" (subscript_expression "signal_handlers[3]" identifier [ number_literal ]) == (cast_expression "(SignalHandler *)0x0" ( (type_descriptor "SignalHandler *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      signal_handlers[3] = RegisterMagickSignalHandler(3);\n    }" { (expression_statement "signal_handlers[3] = RegisterMagickSignalHandler(3);" (assignment_expression "signal_handlers[3] = RegisterMagickSignalHandler(3)" (subscript_expression "signal_handlers[3]" identifier [ number_literal ]) = (call_expression "RegisterMagickSignalHandler(3)" identifier (argument_list "(3)" ( number_literal )))) ;) })) (if_statement "if (signal_handlers[0xf] == (SignalHandler *)0x0) {\n      signal_handlers[0xf] = RegisterMagickSignalHandler(0xf);\n    }" if (parenthesized_expression "(signal_handlers[0xf] == (SignalHandler *)0x0)" ( (binary_expression "signal_handlers[0xf] == (SignalHandler *)0x0" (subscript_expression "signal_handlers[0xf]" identifier [ number_literal ]) == (cast_expression "(SignalHandler *)0x0" ( (type_descriptor "SignalHandler *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      signal_handlers[0xf] = RegisterMagickSignalHandler(0xf);\n    }" { (expression_statement "signal_handlers[0xf] = RegisterMagickSignalHandler(0xf);" (assignment_expression "signal_handlers[0xf] = RegisterMagickSignalHandler(0xf)" (subscript_expression "signal_handlers[0xf]" identifier [ number_literal ]) = (call_expression "RegisterMagickSignalHandler(0xf)" identifier (argument_list "(0xf)" ( number_literal )))) ;) })) (if_statement "if (signal_handlers[0x18] == (SignalHandler *)0x0) {\n      signal_handlers[0x18] = RegisterMagickSignalHandler(0x18);\n    }" if (parenthesized_expression "(signal_handlers[0x18] == (SignalHandler *)0x0)" ( (binary_expression "signal_handlers[0x18] == (SignalHandler *)0x0" (subscript_expression "signal_handlers[0x18]" identifier [ number_literal ]) == (cast_expression "(SignalHandler *)0x0" ( (type_descriptor "SignalHandler *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      signal_handlers[0x18] = RegisterMagickSignalHandler(0x18);\n    }" { (expression_statement "signal_handlers[0x18] = RegisterMagickSignalHandler(0x18);" (assignment_expression "signal_handlers[0x18] = RegisterMagickSignalHandler(0x18)" (subscript_expression "signal_handlers[0x18]" identifier [ number_literal ]) = (call_expression "RegisterMagickSignalHandler(0x18)" identifier (argument_list "(0x18)" ( number_literal )))) ;) })) (if_statement "if (signal_handlers[0x19] == (SignalHandler *)0x0) {\n      signal_handlers[0x19] = RegisterMagickSignalHandler(0x19);\n    }" if (parenthesized_expression "(signal_handlers[0x19] == (SignalHandler *)0x0)" ( (binary_expression "signal_handlers[0x19] == (SignalHandler *)0x0" (subscript_expression "signal_handlers[0x19]" identifier [ number_literal ]) == (cast_expression "(SignalHandler *)0x0" ( (type_descriptor "SignalHandler *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      signal_handlers[0x19] = RegisterMagickSignalHandler(0x19);\n    }" { (expression_statement "signal_handlers[0x19] = RegisterMagickSignalHandler(0x19);" (assignment_expression "signal_handlers[0x19] = RegisterMagickSignalHandler(0x19)" (subscript_expression "signal_handlers[0x19]" identifier [ number_literal ]) = (call_expression "RegisterMagickSignalHandler(0x19)" identifier (argument_list "(0x19)" ( number_literal )))) ;) })) })) (expression_statement "ConfigureComponentGenesis();" (call_expression "ConfigureComponentGenesis()" identifier (argument_list "()" ( ))) ;) (expression_statement "PolicyComponentGenesis();" (call_expression "PolicyComponentGenesis()" identifier (argument_list "()" ( ))) ;) (expression_statement "CacheComponentGenesis();" (call_expression "CacheComponentGenesis()" identifier (argument_list "()" ( ))) ;) (expression_statement "ResourceComponentGenesis();" (call_expression "ResourceComponentGenesis()" identifier (argument_list "()" ( ))) ;) (expression_statement "CoderComponentGenesis();" (call_expression "CoderComponentGenesis()" identifier (argument_list "()" ( ))) ;) (if_statement "if (magick_semaphore == (SemaphoreInfo *)0x0) {\n    magick_semaphore = AcquireSemaphoreInfo();\n  }" if (parenthesized_expression "(magick_semaphore == (SemaphoreInfo *)0x0)" ( (binary_expression "magick_semaphore == (SemaphoreInfo *)0x0" identifier == (cast_expression "(SemaphoreInfo *)0x0" ( (type_descriptor "SemaphoreInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    magick_semaphore = AcquireSemaphoreInfo();\n  }" { (expression_statement "magick_semaphore = AcquireSemaphoreInfo();" (assignment_expression "magick_semaphore = AcquireSemaphoreInfo()" identifier = (call_expression "AcquireSemaphoreInfo()" identifier (argument_list "()" ( )))) ;) })) (expression_statement "DelegateComponentGenesis();" (call_expression "DelegateComponentGenesis()" identifier (argument_list "()" ( ))) ;) (expression_statement "MagicComponentGenesis();" (call_expression "MagicComponentGenesis()" identifier (argument_list "()" ( ))) ;) (expression_statement "ColorComponentGenesis();" (call_expression "ColorComponentGenesis()" identifier (argument_list "()" ( ))) ;) (expression_statement "TypeComponentGenesis();" (call_expression "TypeComponentGenesis()" identifier (argument_list "()" ( ))) ;) (expression_statement "MimeComponentGenesis();" (call_expression "MimeComponentGenesis()" identifier (argument_list "()" ( ))) ;) (expression_statement "AnnotateComponentGenesis();" (call_expression "AnnotateComponentGenesis()" identifier (argument_list "()" ( ))) ;) (expression_statement "RegistryComponentGenesis();" (call_expression "RegistryComponentGenesis()" identifier (argument_list "()" ( ))) ;) (expression_statement "MonitorComponentGenesis();" (call_expression "MonitorComponentGenesis()" identifier (argument_list "()" ( ))) ;) (expression_statement "magickcore_instantiated = MagickTrue;" (assignment_expression "magickcore_instantiated = MagickTrue" identifier = identifier) ;) (labeled_statement "LAB_000f7b83:\n  omp_unset_lock(&translation_unit_mutex);" statement_identifier : (expression_statement "omp_unset_lock(&translation_unit_mutex);" (call_expression "omp_unset_lock(&translation_unit_mutex)" identifier (argument_list "(&translation_unit_mutex)" ( (pointer_expression "&translation_unit_mutex" & identifier) ))) ;)) (if_statement "if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" if (parenthesized_expression "(iVar1 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar1 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "void MagickCoreGenesis(char *param_1,int param_2)\n\n{\n  int iVar1;\n  int in_GS_OFFSET;\n  undefined1 local_2020 [4096];\n  undefined1 local_1020 [4096];\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xf79a9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  omp_init_lock(&DAT_003dd904);\n  DAT_003dd908 = 1;\n  omp_set_lock(&DAT_003dd904);\n  if (DAT_003dd7ec != 0) goto LAB_000f7b83;\n  FUN_00184990();\n  FUN_000bf040();\n  FUN_000f3bf0();\n  FUN_000f2d60();\n  FUN_0016c8f0();\n  iVar1 = GetEnvironmentValue("MAGICK_DEBUG");\n  if (iVar1 != 0) {\n    SetLogEventMask(iVar1);\n    DestroyString(iVar1);\n  }\n  if ((param_1 == (char *)0x0) || (*param_1 != '/')) {\nLAB_000f7a4c:\n    FUN_001b2e70(local_2020,0x1000);\n  }\n  else {\n    iVar1 = IsPathAccessible(param_1);\n    if (iVar1 == 0) goto LAB_000f7a4c;\n    CopyMagickString(local_2020,param_1,0x1000);\n  }\n  GetPathComponent(local_2020,4,local_1020);\n  SetClientName(local_1020);\n  GetPathComponent(local_2020,3,local_2020);\n  SetClientPath(local_2020);\n  if (param_2 != 0) {\n    if (DAT_003dd818 == 0) {\n      DAT_003dd818 = FUN_000f6620();\n    }\n    if (DAT_003dd81c == 0) {\n      DAT_003dd81c = FUN_000f6620();\n    }\n    if (DAT_003dd82c == 0) {\n      DAT_003dd82c = FUN_000f6620();\n    }\n    if (DAT_003dd820 == 0) {\n      DAT_003dd820 = FUN_000f6620();\n    }\n    if (DAT_003dd804 == 0) {\n      DAT_003dd804 = FUN_000f6620();\n    }\n    if (DAT_003dd808 == 0) {\n      DAT_003dd808 = FUN_000f6620();\n    }\n    if (DAT_003dd80c == 0) {\n      DAT_003dd80c = FUN_000f6620();\n    }\n    if (DAT_003dd83c == 0) {\n      DAT_003dd83c = FUN_000f6620();\n    }\n    if (DAT_003dd860 == 0) {\n      DAT_003dd860 = FUN_000f6620();\n    }\n    if (DAT_003dd864 == 0) {\n      DAT_003dd864 = FUN_000f6620();\n    }\n  }\n  FUN_00075b90();\n  FUN_00120c30();\n  FUN_0004f5c0();\n  FUN_0017fd40();\n  FUN_00059d90();\n  if (DAT_003dd900 == 0) {\n    DAT_003dd900 = AcquireSemaphoreInfo();\n  }\n  FUN_0007f850();\n  FUN_000f6240();\n  FUN_0005aa50();\n  FUN_001b1b10();\n  FUN_000fbb10();\n  FUN_00039c30();\n  FUN_0016d380();\n  FUN_000fbe70();\n  DAT_003dd7ec = 1;\nLAB_000f7b83:\n  omp_unset_lock(&DAT_003dd904);\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_0029eab0();\n}\n\n" (function_definition "void MagickCoreGenesis(char *param_1,int param_2)\n\n{\n  int iVar1;\n  int in_GS_OFFSET;\n  undefined1 local_2020 [4096];\n  undefined1 local_1020 [4096];\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xf79a9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  omp_init_lock(&DAT_003dd904);\n  DAT_003dd908 = 1;\n  omp_set_lock(&DAT_003dd904);\n  if (DAT_003dd7ec != 0) goto LAB_000f7b83;\n  FUN_00184990();\n  FUN_000bf040();\n  FUN_000f3bf0();\n  FUN_000f2d60();\n  FUN_0016c8f0();\n  iVar1 = GetEnvironmentValue("MAGICK_DEBUG");\n  if (iVar1 != 0) {\n    SetLogEventMask(iVar1);\n    DestroyString(iVar1);\n  }\n  if ((param_1 == (char *)0x0) || (*param_1 != '/')) {\nLAB_000f7a4c:\n    FUN_001b2e70(local_2020,0x1000);\n  }\n  else {\n    iVar1 = IsPathAccessible(param_1);\n    if (iVar1 == 0) goto LAB_000f7a4c;\n    CopyMagickString(local_2020,param_1,0x1000);\n  }\n  GetPathComponent(local_2020,4,local_1020);\n  SetClientName(local_1020);\n  GetPathComponent(local_2020,3,local_2020);\n  SetClientPath(local_2020);\n  if (param_2 != 0) {\n    if (DAT_003dd818 == 0) {\n      DAT_003dd818 = FUN_000f6620();\n    }\n    if (DAT_003dd81c == 0) {\n      DAT_003dd81c = FUN_000f6620();\n    }\n    if (DAT_003dd82c == 0) {\n      DAT_003dd82c = FUN_000f6620();\n    }\n    if (DAT_003dd820 == 0) {\n      DAT_003dd820 = FUN_000f6620();\n    }\n    if (DAT_003dd804 == 0) {\n      DAT_003dd804 = FUN_000f6620();\n    }\n    if (DAT_003dd808 == 0) {\n      DAT_003dd808 = FUN_000f6620();\n    }\n    if (DAT_003dd80c == 0) {\n      DAT_003dd80c = FUN_000f6620();\n    }\n    if (DAT_003dd83c == 0) {\n      DAT_003dd83c = FUN_000f6620();\n    }\n    if (DAT_003dd860 == 0) {\n      DAT_003dd860 = FUN_000f6620();\n    }\n    if (DAT_003dd864 == 0) {\n      DAT_003dd864 = FUN_000f6620();\n    }\n  }\n  FUN_00075b90();\n  FUN_00120c30();\n  FUN_0004f5c0();\n  FUN_0017fd40();\n  FUN_00059d90();\n  if (DAT_003dd900 == 0) {\n    DAT_003dd900 = AcquireSemaphoreInfo();\n  }\n  FUN_0007f850();\n  FUN_000f6240();\n  FUN_0005aa50();\n  FUN_001b1b10();\n  FUN_000fbb10();\n  FUN_00039c30();\n  FUN_0016d380();\n  FUN_000fbe70();\n  DAT_003dd7ec = 1;\nLAB_000f7b83:\n  omp_unset_lock(&DAT_003dd904);\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_0029eab0();\n}" primitive_type (function_declarator "MagickCoreGenesis(char *param_1,int param_2)" identifier (parameter_list "(char *param_1,int param_2)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  int in_GS_OFFSET;\n  undefined1 local_2020 [4096];\n  undefined1 local_1020 [4096];\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xf79a9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  omp_init_lock(&DAT_003dd904);\n  DAT_003dd908 = 1;\n  omp_set_lock(&DAT_003dd904);\n  if (DAT_003dd7ec != 0) goto LAB_000f7b83;\n  FUN_00184990();\n  FUN_000bf040();\n  FUN_000f3bf0();\n  FUN_000f2d60();\n  FUN_0016c8f0();\n  iVar1 = GetEnvironmentValue("MAGICK_DEBUG");\n  if (iVar1 != 0) {\n    SetLogEventMask(iVar1);\n    DestroyString(iVar1);\n  }\n  if ((param_1 == (char *)0x0) || (*param_1 != '/')) {\nLAB_000f7a4c:\n    FUN_001b2e70(local_2020,0x1000);\n  }\n  else {\n    iVar1 = IsPathAccessible(param_1);\n    if (iVar1 == 0) goto LAB_000f7a4c;\n    CopyMagickString(local_2020,param_1,0x1000);\n  }\n  GetPathComponent(local_2020,4,local_1020);\n  SetClientName(local_1020);\n  GetPathComponent(local_2020,3,local_2020);\n  SetClientPath(local_2020);\n  if (param_2 != 0) {\n    if (DAT_003dd818 == 0) {\n      DAT_003dd818 = FUN_000f6620();\n    }\n    if (DAT_003dd81c == 0) {\n      DAT_003dd81c = FUN_000f6620();\n    }\n    if (DAT_003dd82c == 0) {\n      DAT_003dd82c = FUN_000f6620();\n    }\n    if (DAT_003dd820 == 0) {\n      DAT_003dd820 = FUN_000f6620();\n    }\n    if (DAT_003dd804 == 0) {\n      DAT_003dd804 = FUN_000f6620();\n    }\n    if (DAT_003dd808 == 0) {\n      DAT_003dd808 = FUN_000f6620();\n    }\n    if (DAT_003dd80c == 0) {\n      DAT_003dd80c = FUN_000f6620();\n    }\n    if (DAT_003dd83c == 0) {\n      DAT_003dd83c = FUN_000f6620();\n    }\n    if (DAT_003dd860 == 0) {\n      DAT_003dd860 = FUN_000f6620();\n    }\n    if (DAT_003dd864 == 0) {\n      DAT_003dd864 = FUN_000f6620();\n    }\n  }\n  FUN_00075b90();\n  FUN_00120c30();\n  FUN_0004f5c0();\n  FUN_0017fd40();\n  FUN_00059d90();\n  if (DAT_003dd900 == 0) {\n    DAT_003dd900 = AcquireSemaphoreInfo();\n  }\n  FUN_0007f850();\n  FUN_000f6240();\n  FUN_0005aa50();\n  FUN_001b1b10();\n  FUN_000fbb10();\n  FUN_00039c30();\n  FUN_0016d380();\n  FUN_000fbe70();\n  DAT_003dd7ec = 1;\nLAB_000f7b83:\n  omp_unset_lock(&DAT_003dd904);\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_0029eab0();\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "undefined1 local_2020 [4096];" type_identifier (array_declarator "local_2020 [4096]" identifier [ number_literal ]) ;) (declaration "undefined1 local_1020 [4096];" type_identifier (array_declarator "local_1020 [4096]" identifier [ number_literal ]) ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0xf79a9;" (assignment_expression "uStack_14 = 0xf79a9" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "omp_init_lock(&DAT_003dd904);" (call_expression "omp_init_lock(&DAT_003dd904)" identifier (argument_list "(&DAT_003dd904)" ( (pointer_expression "&DAT_003dd904" & identifier) ))) ;) (expression_statement "DAT_003dd908 = 1;" (assignment_expression "DAT_003dd908 = 1" identifier = number_literal) ;) (expression_statement "omp_set_lock(&DAT_003dd904);" (call_expression "omp_set_lock(&DAT_003dd904)" identifier (argument_list "(&DAT_003dd904)" ( (pointer_expression "&DAT_003dd904" & identifier) ))) ;) (if_statement "if (DAT_003dd7ec != 0) goto LAB_000f7b83;" if (parenthesized_expression "(DAT_003dd7ec != 0)" ( (binary_expression "DAT_003dd7ec != 0" identifier != number_literal) )) (goto_statement "goto LAB_000f7b83;" goto statement_identifier ;)) (expression_statement "FUN_00184990();" (call_expression "FUN_00184990()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000bf040();" (call_expression "FUN_000bf040()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000f3bf0();" (call_expression "FUN_000f3bf0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000f2d60();" (call_expression "FUN_000f2d60()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0016c8f0();" (call_expression "FUN_0016c8f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar1 = GetEnvironmentValue("MAGICK_DEBUG");" (assignment_expression "iVar1 = GetEnvironmentValue("MAGICK_DEBUG")" identifier = (call_expression "GetEnvironmentValue("MAGICK_DEBUG")" identifier (argument_list "("MAGICK_DEBUG")" ( (string_literal ""MAGICK_DEBUG"" " string_content ") )))) ;) (if_statement "if (iVar1 != 0) {\n    SetLogEventMask(iVar1);\n    DestroyString(iVar1);\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    SetLogEventMask(iVar1);\n    DestroyString(iVar1);\n  }" { (expression_statement "SetLogEventMask(iVar1);" (call_expression "SetLogEventMask(iVar1)" identifier (argument_list "(iVar1)" ( identifier ))) ;) (expression_statement "DestroyString(iVar1);" (call_expression "DestroyString(iVar1)" identifier (argument_list "(iVar1)" ( identifier ))) ;) })) (if_statement "if ((param_1 == (char *)0x0) || (*param_1 != '/')) {\nLAB_000f7a4c:\n    FUN_001b2e70(local_2020,0x1000);\n  }\n  else {\n    iVar1 = IsPathAccessible(param_1);\n    if (iVar1 == 0) goto LAB_000f7a4c;\n    CopyMagickString(local_2020,param_1,0x1000);\n  }" if (parenthesized_expression "((param_1 == (char *)0x0) || (*param_1 != '/'))" ( (binary_expression "(param_1 == (char *)0x0) || (*param_1 != '/')" (parenthesized_expression "(param_1 == (char *)0x0)" ( (binary_expression "param_1 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*param_1 != '/')" ( (binary_expression "*param_1 != '/'" (pointer_expression "*param_1" * identifier) != (char_literal "'/'" ' character ')) ))) )) (compound_statement "{\nLAB_000f7a4c:\n    FUN_001b2e70(local_2020,0x1000);\n  }" { (labeled_statement "LAB_000f7a4c:\n    FUN_001b2e70(local_2020,0x1000);" statement_identifier : (expression_statement "FUN_001b2e70(local_2020,0x1000);" (call_expression "FUN_001b2e70(local_2020,0x1000)" identifier (argument_list "(local_2020,0x1000)" ( identifier , number_literal ))) ;)) }) (else_clause "else {\n    iVar1 = IsPathAccessible(param_1);\n    if (iVar1 == 0) goto LAB_000f7a4c;\n    CopyMagickString(local_2020,param_1,0x1000);\n  }" else (compound_statement "{\n    iVar1 = IsPathAccessible(param_1);\n    if (iVar1 == 0) goto LAB_000f7a4c;\n    CopyMagickString(local_2020,param_1,0x1000);\n  }" { (expression_statement "iVar1 = IsPathAccessible(param_1);" (assignment_expression "iVar1 = IsPathAccessible(param_1)" identifier = (call_expression "IsPathAccessible(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (iVar1 == 0) goto LAB_000f7a4c;" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000f7a4c;" goto statement_identifier ;)) (expression_statement "CopyMagickString(local_2020,param_1,0x1000);" (call_expression "CopyMagickString(local_2020,param_1,0x1000)" identifier (argument_list "(local_2020,param_1,0x1000)" ( identifier , identifier , number_literal ))) ;) }))) (expression_statement "GetPathComponent(local_2020,4,local_1020);" (call_expression "GetPathComponent(local_2020,4,local_1020)" identifier (argument_list "(local_2020,4,local_1020)" ( identifier , number_literal , identifier ))) ;) (expression_statement "SetClientName(local_1020);" (call_expression "SetClientName(local_1020)" identifier (argument_list "(local_1020)" ( identifier ))) ;) (expression_statement "GetPathComponent(local_2020,3,local_2020);" (call_expression "GetPathComponent(local_2020,3,local_2020)" identifier (argument_list "(local_2020,3,local_2020)" ( identifier , number_literal , identifier ))) ;) (expression_statement "SetClientPath(local_2020);" (call_expression "SetClientPath(local_2020)" identifier (argument_list "(local_2020)" ( identifier ))) ;) (if_statement "if (param_2 != 0) {\n    if (DAT_003dd818 == 0) {\n      DAT_003dd818 = FUN_000f6620();\n    }\n    if (DAT_003dd81c == 0) {\n      DAT_003dd81c = FUN_000f6620();\n    }\n    if (DAT_003dd82c == 0) {\n      DAT_003dd82c = FUN_000f6620();\n    }\n    if (DAT_003dd820 == 0) {\n      DAT_003dd820 = FUN_000f6620();\n    }\n    if (DAT_003dd804 == 0) {\n      DAT_003dd804 = FUN_000f6620();\n    }\n    if (DAT_003dd808 == 0) {\n      DAT_003dd808 = FUN_000f6620();\n    }\n    if (DAT_003dd80c == 0) {\n      DAT_003dd80c = FUN_000f6620();\n    }\n    if (DAT_003dd83c == 0) {\n      DAT_003dd83c = FUN_000f6620();\n    }\n    if (DAT_003dd860 == 0) {\n      DAT_003dd860 = FUN_000f6620();\n    }\n    if (DAT_003dd864 == 0) {\n      DAT_003dd864 = FUN_000f6620();\n    }\n  }" if (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )) (compound_statement "{\n    if (DAT_003dd818 == 0) {\n      DAT_003dd818 = FUN_000f6620();\n    }\n    if (DAT_003dd81c == 0) {\n      DAT_003dd81c = FUN_000f6620();\n    }\n    if (DAT_003dd82c == 0) {\n      DAT_003dd82c = FUN_000f6620();\n    }\n    if (DAT_003dd820 == 0) {\n      DAT_003dd820 = FUN_000f6620();\n    }\n    if (DAT_003dd804 == 0) {\n      DAT_003dd804 = FUN_000f6620();\n    }\n    if (DAT_003dd808 == 0) {\n      DAT_003dd808 = FUN_000f6620();\n    }\n    if (DAT_003dd80c == 0) {\n      DAT_003dd80c = FUN_000f6620();\n    }\n    if (DAT_003dd83c == 0) {\n      DAT_003dd83c = FUN_000f6620();\n    }\n    if (DAT_003dd860 == 0) {\n      DAT_003dd860 = FUN_000f6620();\n    }\n    if (DAT_003dd864 == 0) {\n      DAT_003dd864 = FUN_000f6620();\n    }\n  }" { (if_statement "if (DAT_003dd818 == 0) {\n      DAT_003dd818 = FUN_000f6620();\n    }" if (parenthesized_expression "(DAT_003dd818 == 0)" ( (binary_expression "DAT_003dd818 == 0" identifier == number_literal) )) (compound_statement "{\n      DAT_003dd818 = FUN_000f6620();\n    }" { (expression_statement "DAT_003dd818 = FUN_000f6620();" (assignment_expression "DAT_003dd818 = FUN_000f6620()" identifier = (call_expression "FUN_000f6620()" identifier (argument_list "()" ( )))) ;) })) (if_statement "if (DAT_003dd81c == 0) {\n      DAT_003dd81c = FUN_000f6620();\n    }" if (parenthesized_expression "(DAT_003dd81c == 0)" ( (binary_expression "DAT_003dd81c == 0" identifier == number_literal) )) (compound_statement "{\n      DAT_003dd81c = FUN_000f6620();\n    }" { (expression_statement "DAT_003dd81c = FUN_000f6620();" (assignment_expression "DAT_003dd81c = FUN_000f6620()" identifier = (call_expression "FUN_000f6620()" identifier (argument_list "()" ( )))) ;) })) (if_statement "if (DAT_003dd82c == 0) {\n      DAT_003dd82c = FUN_000f6620();\n    }" if (parenthesized_expression "(DAT_003dd82c == 0)" ( (binary_expression "DAT_003dd82c == 0" identifier == number_literal) )) (compound_statement "{\n      DAT_003dd82c = FUN_000f6620();\n    }" { (expression_statement "DAT_003dd82c = FUN_000f6620();" (assignment_expression "DAT_003dd82c = FUN_000f6620()" identifier = (call_expression "FUN_000f6620()" identifier (argument_list "()" ( )))) ;) })) (if_statement "if (DAT_003dd820 == 0) {\n      DAT_003dd820 = FUN_000f6620();\n    }" if (parenthesized_expression "(DAT_003dd820 == 0)" ( (binary_expression "DAT_003dd820 == 0" identifier == number_literal) )) (compound_statement "{\n      DAT_003dd820 = FUN_000f6620();\n    }" { (expression_statement "DAT_003dd820 = FUN_000f6620();" (assignment_expression "DAT_003dd820 = FUN_000f6620()" identifier = (call_expression "FUN_000f6620()" identifier (argument_list "()" ( )))) ;) })) (if_statement "if (DAT_003dd804 == 0) {\n      DAT_003dd804 = FUN_000f6620();\n    }" if (parenthesized_expression "(DAT_003dd804 == 0)" ( (binary_expression "DAT_003dd804 == 0" identifier == number_literal) )) (compound_statement "{\n      DAT_003dd804 = FUN_000f6620();\n    }" { (expression_statement "DAT_003dd804 = FUN_000f6620();" (assignment_expression "DAT_003dd804 = FUN_000f6620()" identifier = (call_expression "FUN_000f6620()" identifier (argument_list "()" ( )))) ;) })) (if_statement "if (DAT_003dd808 == 0) {\n      DAT_003dd808 = FUN_000f6620();\n    }" if (parenthesized_expression "(DAT_003dd808 == 0)" ( (binary_expression "DAT_003dd808 == 0" identifier == number_literal) )) (compound_statement "{\n      DAT_003dd808 = FUN_000f6620();\n    }" { (expression_statement "DAT_003dd808 = FUN_000f6620();" (assignment_expression "DAT_003dd808 = FUN_000f6620()" identifier = (call_expression "FUN_000f6620()" identifier (argument_list "()" ( )))) ;) })) (if_statement "if (DAT_003dd80c == 0) {\n      DAT_003dd80c = FUN_000f6620();\n    }" if (parenthesized_expression "(DAT_003dd80c == 0)" ( (binary_expression "DAT_003dd80c == 0" identifier == number_literal) )) (compound_statement "{\n      DAT_003dd80c = FUN_000f6620();\n    }" { (expression_statement "DAT_003dd80c = FUN_000f6620();" (assignment_expression "DAT_003dd80c = FUN_000f6620()" identifier = (call_expression "FUN_000f6620()" identifier (argument_list "()" ( )))) ;) })) (if_statement "if (DAT_003dd83c == 0) {\n      DAT_003dd83c = FUN_000f6620();\n    }" if (parenthesized_expression "(DAT_003dd83c == 0)" ( (binary_expression "DAT_003dd83c == 0" identifier == number_literal) )) (compound_statement "{\n      DAT_003dd83c = FUN_000f6620();\n    }" { (expression_statement "DAT_003dd83c = FUN_000f6620();" (assignment_expression "DAT_003dd83c = FUN_000f6620()" identifier = (call_expression "FUN_000f6620()" identifier (argument_list "()" ( )))) ;) })) (if_statement "if (DAT_003dd860 == 0) {\n      DAT_003dd860 = FUN_000f6620();\n    }" if (parenthesized_expression "(DAT_003dd860 == 0)" ( (binary_expression "DAT_003dd860 == 0" identifier == number_literal) )) (compound_statement "{\n      DAT_003dd860 = FUN_000f6620();\n    }" { (expression_statement "DAT_003dd860 = FUN_000f6620();" (assignment_expression "DAT_003dd860 = FUN_000f6620()" identifier = (call_expression "FUN_000f6620()" identifier (argument_list "()" ( )))) ;) })) (if_statement "if (DAT_003dd864 == 0) {\n      DAT_003dd864 = FUN_000f6620();\n    }" if (parenthesized_expression "(DAT_003dd864 == 0)" ( (binary_expression "DAT_003dd864 == 0" identifier == number_literal) )) (compound_statement "{\n      DAT_003dd864 = FUN_000f6620();\n    }" { (expression_statement "DAT_003dd864 = FUN_000f6620();" (assignment_expression "DAT_003dd864 = FUN_000f6620()" identifier = (call_expression "FUN_000f6620()" identifier (argument_list "()" ( )))) ;) })) })) (expression_statement "FUN_00075b90();" (call_expression "FUN_00075b90()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00120c30();" (call_expression "FUN_00120c30()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0004f5c0();" (call_expression "FUN_0004f5c0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0017fd40();" (call_expression "FUN_0017fd40()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00059d90();" (call_expression "FUN_00059d90()" identifier (argument_list "()" ( ))) ;) (if_statement "if (DAT_003dd900 == 0) {\n    DAT_003dd900 = AcquireSemaphoreInfo();\n  }" if (parenthesized_expression "(DAT_003dd900 == 0)" ( (binary_expression "DAT_003dd900 == 0" identifier == number_literal) )) (compound_statement "{\n    DAT_003dd900 = AcquireSemaphoreInfo();\n  }" { (expression_statement "DAT_003dd900 = AcquireSemaphoreInfo();" (assignment_expression "DAT_003dd900 = AcquireSemaphoreInfo()" identifier = (call_expression "AcquireSemaphoreInfo()" identifier (argument_list "()" ( )))) ;) })) (expression_statement "FUN_0007f850();" (call_expression "FUN_0007f850()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000f6240();" (call_expression "FUN_000f6240()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0005aa50();" (call_expression "FUN_0005aa50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_001b1b10();" (call_expression "FUN_001b1b10()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000fbb10();" (call_expression "FUN_000fbb10()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00039c30();" (call_expression "FUN_00039c30()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0016d380();" (call_expression "FUN_0016d380()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000fbe70();" (call_expression "FUN_000fbe70()" identifier (argument_list "()" ( ))) ;) (expression_statement "DAT_003dd7ec = 1;" (assignment_expression "DAT_003dd7ec = 1" identifier = number_literal) ;) (labeled_statement "LAB_000f7b83:\n  omp_unset_lock(&DAT_003dd904);" statement_identifier : (expression_statement "omp_unset_lock(&DAT_003dd904);" (call_expression "omp_unset_lock(&DAT_003dd904)" identifier (argument_list "(&DAT_003dd904)" ( (pointer_expression "&DAT_003dd904" & identifier) ))) ;)) (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" if (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "FUN_0029eab0();" (call_expression "FUN_0029eab0()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' character ')) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) })) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "void MagickCoreGenesis(char *param_1,int param_2)\n\n{\n  int iVar1;\n  int in_GS_OFFSET;\n  undefined1 local_2020 [4096];\n  undefined1 local_1020 [4096];\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xf79a9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  omp_init_lock(&DAT_003dd904);\n  DAT_003dd908 = 1;\n  omp_set_lock(&DAT_003dd904);\n  if (DAT_003dd7ec != 0) goto LAB_000f7b83;\n  FUN_00184990();\n  FUN_000bf040();\n  FUN_000f3bf0();\n  FUN_000f2d60();\n  FUN_0016c8f0();\n  iVar1 = GetEnvironmentValue("MAGICK_DEBUG");\n  if (iVar1 != 0) {\n    SetLogEventMask(iVar1);\n    DestroyString(iVar1);\n  }\n  if ((param_1 == (char *)0x0) || (*param_1 != '/')) {\nLAB_000f7a4c:\n    FUN_001b2e70(local_2020,0x1000);\n  }\n  else {\n    iVar1 = IsPathAccessible(param_1);\n    if (iVar1 == 0) goto LAB_000f7a4c;\n    CopyMagickString(local_2020,param_1,0x1000);\n  }\n  GetPathComponent(local_2020,4,local_1020);\n  SetClientName(local_1020);\n  GetPathComponent(local_2020,3,local_2020);\n  SetClientPath(local_2020);\n  if (param_2 != 0) {\n    if (DAT_003dd818 == 0) {\n      DAT_003dd818 = FUN_000f6620();\n    }\n    if (DAT_003dd81c == 0) {\n      DAT_003dd81c = FUN_000f6620();\n    }\n    if (DAT_003dd82c == 0) {\n      DAT_003dd82c = FUN_000f6620();\n    }\n    if (DAT_003dd820 == 0) {\n      DAT_003dd820 = FUN_000f6620();\n    }\n    if (DAT_003dd804 == 0) {\n      DAT_003dd804 = FUN_000f6620();\n    }\n    if (DAT_003dd808 == 0) {\n      DAT_003dd808 = FUN_000f6620();\n    }\n    if (DAT_003dd80c == 0) {\n      DAT_003dd80c = FUN_000f6620();\n    }\n    if (DAT_003dd83c == 0) {\n      DAT_003dd83c = FUN_000f6620();\n    }\n    if (DAT_003dd860 == 0) {\n      DAT_003dd860 = FUN_000f6620();\n    }\n    if (DAT_003dd864 == 0) {\n      DAT_003dd864 = FUN_000f6620();\n    }\n  }\n  FUN_00075b90();\n  FUN_00120c30();\n  FUN_0004f5c0();\n  FUN_0017fd40();\n  FUN_00059d90();\n  if (DAT_003dd900 == 0) {\n    DAT_003dd900 = AcquireSemaphoreInfo();\n  }\n  FUN_0007f850();\n  FUN_000f6240();\n  FUN_0005aa50();\n  FUN_001b1b10();\n  FUN_000fbb10();\n  FUN_00039c30();\n  FUN_0016d380();\n  FUN_000fbe70();\n  DAT_003dd7ec = 1;\nLAB_000f7b83:\n  omp_unset_lock(&DAT_003dd904);\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_0029eab0();\n}" (primitive_type "void") (function_declarator "MagickCoreGenesis(char *param_1,int param_2)" (identifier "MagickCoreGenesis") (parameter_list "(char *param_1,int param_2)" (( "(") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) (compound_statement "{\n  int iVar1;\n  int in_GS_OFFSET;\n  undefined1 local_2020 [4096];\n  undefined1 local_1020 [4096];\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xf79a9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  omp_init_lock(&DAT_003dd904);\n  DAT_003dd908 = 1;\n  omp_set_lock(&DAT_003dd904);\n  if (DAT_003dd7ec != 0) goto LAB_000f7b83;\n  FUN_00184990();\n  FUN_000bf040();\n  FUN_000f3bf0();\n  FUN_000f2d60();\n  FUN_0016c8f0();\n  iVar1 = GetEnvironmentValue("MAGICK_DEBUG");\n  if (iVar1 != 0) {\n    SetLogEventMask(iVar1);\n    DestroyString(iVar1);\n  }\n  if ((param_1 == (char *)0x0) || (*param_1 != '/')) {\nLAB_000f7a4c:\n    FUN_001b2e70(local_2020,0x1000);\n  }\n  else {\n    iVar1 = IsPathAccessible(param_1);\n    if (iVar1 == 0) goto LAB_000f7a4c;\n    CopyMagickString(local_2020,param_1,0x1000);\n  }\n  GetPathComponent(local_2020,4,local_1020);\n  SetClientName(local_1020);\n  GetPathComponent(local_2020,3,local_2020);\n  SetClientPath(local_2020);\n  if (param_2 != 0) {\n    if (DAT_003dd818 == 0) {\n      DAT_003dd818 = FUN_000f6620();\n    }\n    if (DAT_003dd81c == 0) {\n      DAT_003dd81c = FUN_000f6620();\n    }\n    if (DAT_003dd82c == 0) {\n      DAT_003dd82c = FUN_000f6620();\n    }\n    if (DAT_003dd820 == 0) {\n      DAT_003dd820 = FUN_000f6620();\n    }\n    if (DAT_003dd804 == 0) {\n      DAT_003dd804 = FUN_000f6620();\n    }\n    if (DAT_003dd808 == 0) {\n      DAT_003dd808 = FUN_000f6620();\n    }\n    if (DAT_003dd80c == 0) {\n      DAT_003dd80c = FUN_000f6620();\n    }\n    if (DAT_003dd83c == 0) {\n      DAT_003dd83c = FUN_000f6620();\n    }\n    if (DAT_003dd860 == 0) {\n      DAT_003dd860 = FUN_000f6620();\n    }\n    if (DAT_003dd864 == 0) {\n      DAT_003dd864 = FUN_000f6620();\n    }\n  }\n  FUN_00075b90();\n  FUN_00120c30();\n  FUN_0004f5c0();\n  FUN_0017fd40();\n  FUN_00059d90();\n  if (DAT_003dd900 == 0) {\n    DAT_003dd900 = AcquireSemaphoreInfo();\n  }\n  FUN_0007f850();\n  FUN_000f6240();\n  FUN_0005aa50();\n  FUN_001b1b10();\n  FUN_000fbb10();\n  FUN_00039c30();\n  FUN_0016d380();\n  FUN_000fbe70();\n  DAT_003dd7ec = 1;\nLAB_000f7b83:\n  omp_unset_lock(&DAT_003dd904);\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_0029eab0();\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "undefined1 local_2020 [4096];" (type_identifier "undefined1") (array_declarator "local_2020 [4096]" (identifier "local_2020") ([ "[") (number_literal "4096") (] "]")) (; ";")) (declaration "undefined1 local_1020 [4096];" (type_identifier "undefined1") (array_declarator "local_1020 [4096]" (identifier "local_1020") ([ "[") (number_literal "4096") (] "]")) (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0xf79a9;" (assignment_expression "uStack_14 = 0xf79a9" (identifier "uStack_14") (= "=") (number_literal "0xf79a9")) (; ";")) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "omp_init_lock(&DAT_003dd904);" (call_expression "omp_init_lock(&DAT_003dd904)" (identifier "omp_init_lock") (argument_list "(&DAT_003dd904)" (( "(") (pointer_expression "&DAT_003dd904" (& "&") (identifier "DAT_003dd904")) () ")"))) (; ";")) (expression_statement "DAT_003dd908 = 1;" (assignment_expression "DAT_003dd908 = 1" (identifier "DAT_003dd908") (= "=") (number_literal "1")) (; ";")) (expression_statement "omp_set_lock(&DAT_003dd904);" (call_expression "omp_set_lock(&DAT_003dd904)" (identifier "omp_set_lock") (argument_list "(&DAT_003dd904)" (( "(") (pointer_expression "&DAT_003dd904" (& "&") (identifier "DAT_003dd904")) () ")"))) (; ";")) (if_statement "if (DAT_003dd7ec != 0) goto LAB_000f7b83;" (if "if") (parenthesized_expression "(DAT_003dd7ec != 0)" (( "(") (binary_expression "DAT_003dd7ec != 0" (identifier "DAT_003dd7ec") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000f7b83;" (goto "goto") (statement_identifier "LAB_000f7b83") (; ";"))) (expression_statement "FUN_00184990();" (call_expression "FUN_00184990()" (identifier "FUN_00184990") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_000bf040();" (call_expression "FUN_000bf040()" (identifier "FUN_000bf040") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_000f3bf0();" (call_expression "FUN_000f3bf0()" (identifier "FUN_000f3bf0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_000f2d60();" (call_expression "FUN_000f2d60()" (identifier "FUN_000f2d60") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_0016c8f0();" (call_expression "FUN_0016c8f0()" (identifier "FUN_0016c8f0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar1 = GetEnvironmentValue("MAGICK_DEBUG");" (assignment_expression "iVar1 = GetEnvironmentValue("MAGICK_DEBUG")" (identifier "iVar1") (= "=") (call_expression "GetEnvironmentValue("MAGICK_DEBUG")" (identifier "GetEnvironmentValue") (argument_list "("MAGICK_DEBUG")" (( "(") (string_literal ""MAGICK_DEBUG"" (" """) (string_content "MAGICK_DEBUG") (" """)) () ")")))) (; ";")) (if_statement "if (iVar1 != 0) {\n    SetLogEventMask(iVar1);\n    DestroyString(iVar1);\n  }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    SetLogEventMask(iVar1);\n    DestroyString(iVar1);\n  }" ({ "{") (expression_statement "SetLogEventMask(iVar1);" (call_expression "SetLogEventMask(iVar1)" (identifier "SetLogEventMask") (argument_list "(iVar1)" (( "(") (identifier "iVar1") () ")"))) (; ";")) (expression_statement "DestroyString(iVar1);" (call_expression "DestroyString(iVar1)" (identifier "DestroyString") (argument_list "(iVar1)" (( "(") (identifier "iVar1") () ")"))) (; ";")) (} "}"))) (if_statement "if ((param_1 == (char *)0x0) || (*param_1 != '/')) {\nLAB_000f7a4c:\n    FUN_001b2e70(local_2020,0x1000);\n  }\n  else {\n    iVar1 = IsPathAccessible(param_1);\n    if (iVar1 == 0) goto LAB_000f7a4c;\n    CopyMagickString(local_2020,param_1,0x1000);\n  }" (if "if") (parenthesized_expression "((param_1 == (char *)0x0) || (*param_1 != '/'))" (( "(") (binary_expression "(param_1 == (char *)0x0) || (*param_1 != '/')" (parenthesized_expression "(param_1 == (char *)0x0)" (( "(") (binary_expression "param_1 == (char *)0x0" (identifier "param_1") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(*param_1 != '/')" (( "(") (binary_expression "*param_1 != '/'" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (!= "!=") (char_literal "'/'" (' "'") (character "/") (' "'"))) () ")"))) () ")")) (compound_statement "{\nLAB_000f7a4c:\n    FUN_001b2e70(local_2020,0x1000);\n  }" ({ "{") (labeled_statement "LAB_000f7a4c:\n    FUN_001b2e70(local_2020,0x1000);" (statement_identifier "LAB_000f7a4c") (: ":") (expression_statement "FUN_001b2e70(local_2020,0x1000);" (call_expression "FUN_001b2e70(local_2020,0x1000)" (identifier "FUN_001b2e70") (argument_list "(local_2020,0x1000)" (( "(") (identifier "local_2020") (, ",") (number_literal "0x1000") () ")"))) (; ";"))) (} "}")) (else_clause "else {\n    iVar1 = IsPathAccessible(param_1);\n    if (iVar1 == 0) goto LAB_000f7a4c;\n    CopyMagickString(local_2020,param_1,0x1000);\n  }" (else "else") (compound_statement "{\n    iVar1 = IsPathAccessible(param_1);\n    if (iVar1 == 0) goto LAB_000f7a4c;\n    CopyMagickString(local_2020,param_1,0x1000);\n  }" ({ "{") (expression_statement "iVar1 = IsPathAccessible(param_1);" (assignment_expression "iVar1 = IsPathAccessible(param_1)" (identifier "iVar1") (= "=") (call_expression "IsPathAccessible(param_1)" (identifier "IsPathAccessible") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) goto LAB_000f7a4c;" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000f7a4c;" (goto "goto") (statement_identifier "LAB_000f7a4c") (; ";"))) (expression_statement "CopyMagickString(local_2020,param_1,0x1000);" (call_expression "CopyMagickString(local_2020,param_1,0x1000)" (identifier "CopyMagickString") (argument_list "(local_2020,param_1,0x1000)" (( "(") (identifier "local_2020") (, ",") (identifier "param_1") (, ",") (number_literal "0x1000") () ")"))) (; ";")) (} "}")))) (expression_statement "GetPathComponent(local_2020,4,local_1020);" (call_expression "GetPathComponent(local_2020,4,local_1020)" (identifier "GetPathComponent") (argument_list "(local_2020,4,local_1020)" (( "(") (identifier "local_2020") (, ",") (number_literal "4") (, ",") (identifier "local_1020") () ")"))) (; ";")) (expression_statement "SetClientName(local_1020);" (call_expression "SetClientName(local_1020)" (identifier "SetClientName") (argument_list "(local_1020)" (( "(") (identifier "local_1020") () ")"))) (; ";")) (expression_statement "GetPathComponent(local_2020,3,local_2020);" (call_expression "GetPathComponent(local_2020,3,local_2020)" (identifier "GetPathComponent") (argument_list "(local_2020,3,local_2020)" (( "(") (identifier "local_2020") (, ",") (number_literal "3") (, ",") (identifier "local_2020") () ")"))) (; ";")) (expression_statement "SetClientPath(local_2020);" (call_expression "SetClientPath(local_2020)" (identifier "SetClientPath") (argument_list "(local_2020)" (( "(") (identifier "local_2020") () ")"))) (; ";")) (if_statement "if (param_2 != 0) {\n    if (DAT_003dd818 == 0) {\n      DAT_003dd818 = FUN_000f6620();\n    }\n    if (DAT_003dd81c == 0) {\n      DAT_003dd81c = FUN_000f6620();\n    }\n    if (DAT_003dd82c == 0) {\n      DAT_003dd82c = FUN_000f6620();\n    }\n    if (DAT_003dd820 == 0) {\n      DAT_003dd820 = FUN_000f6620();\n    }\n    if (DAT_003dd804 == 0) {\n      DAT_003dd804 = FUN_000f6620();\n    }\n    if (DAT_003dd808 == 0) {\n      DAT_003dd808 = FUN_000f6620();\n    }\n    if (DAT_003dd80c == 0) {\n      DAT_003dd80c = FUN_000f6620();\n    }\n    if (DAT_003dd83c == 0) {\n      DAT_003dd83c = FUN_000f6620();\n    }\n    if (DAT_003dd860 == 0) {\n      DAT_003dd860 = FUN_000f6620();\n    }\n    if (DAT_003dd864 == 0) {\n      DAT_003dd864 = FUN_000f6620();\n    }\n  }" (if "if") (parenthesized_expression "(param_2 != 0)" (( "(") (binary_expression "param_2 != 0" (identifier "param_2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if (DAT_003dd818 == 0) {\n      DAT_003dd818 = FUN_000f6620();\n    }\n    if (DAT_003dd81c == 0) {\n      DAT_003dd81c = FUN_000f6620();\n    }\n    if (DAT_003dd82c == 0) {\n      DAT_003dd82c = FUN_000f6620();\n    }\n    if (DAT_003dd820 == 0) {\n      DAT_003dd820 = FUN_000f6620();\n    }\n    if (DAT_003dd804 == 0) {\n      DAT_003dd804 = FUN_000f6620();\n    }\n    if (DAT_003dd808 == 0) {\n      DAT_003dd808 = FUN_000f6620();\n    }\n    if (DAT_003dd80c == 0) {\n      DAT_003dd80c = FUN_000f6620();\n    }\n    if (DAT_003dd83c == 0) {\n      DAT_003dd83c = FUN_000f6620();\n    }\n    if (DAT_003dd860 == 0) {\n      DAT_003dd860 = FUN_000f6620();\n    }\n    if (DAT_003dd864 == 0) {\n      DAT_003dd864 = FUN_000f6620();\n    }\n  }" ({ "{") (if_statement "if (DAT_003dd818 == 0) {\n      DAT_003dd818 = FUN_000f6620();\n    }" (if "if") (parenthesized_expression "(DAT_003dd818 == 0)" (( "(") (binary_expression "DAT_003dd818 == 0" (identifier "DAT_003dd818") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      DAT_003dd818 = FUN_000f6620();\n    }" ({ "{") (expression_statement "DAT_003dd818 = FUN_000f6620();" (assignment_expression "DAT_003dd818 = FUN_000f6620()" (identifier "DAT_003dd818") (= "=") (call_expression "FUN_000f6620()" (identifier "FUN_000f6620") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}"))) (if_statement "if (DAT_003dd81c == 0) {\n      DAT_003dd81c = FUN_000f6620();\n    }" (if "if") (parenthesized_expression "(DAT_003dd81c == 0)" (( "(") (binary_expression "DAT_003dd81c == 0" (identifier "DAT_003dd81c") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      DAT_003dd81c = FUN_000f6620();\n    }" ({ "{") (expression_statement "DAT_003dd81c = FUN_000f6620();" (assignment_expression "DAT_003dd81c = FUN_000f6620()" (identifier "DAT_003dd81c") (= "=") (call_expression "FUN_000f6620()" (identifier "FUN_000f6620") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}"))) (if_statement "if (DAT_003dd82c == 0) {\n      DAT_003dd82c = FUN_000f6620();\n    }" (if "if") (parenthesized_expression "(DAT_003dd82c == 0)" (( "(") (binary_expression "DAT_003dd82c == 0" (identifier "DAT_003dd82c") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      DAT_003dd82c = FUN_000f6620();\n    }" ({ "{") (expression_statement "DAT_003dd82c = FUN_000f6620();" (assignment_expression "DAT_003dd82c = FUN_000f6620()" (identifier "DAT_003dd82c") (= "=") (call_expression "FUN_000f6620()" (identifier "FUN_000f6620") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}"))) (if_statement "if (DAT_003dd820 == 0) {\n      DAT_003dd820 = FUN_000f6620();\n    }" (if "if") (parenthesized_expression "(DAT_003dd820 == 0)" (( "(") (binary_expression "DAT_003dd820 == 0" (identifier "DAT_003dd820") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      DAT_003dd820 = FUN_000f6620();\n    }" ({ "{") (expression_statement "DAT_003dd820 = FUN_000f6620();" (assignment_expression "DAT_003dd820 = FUN_000f6620()" (identifier "DAT_003dd820") (= "=") (call_expression "FUN_000f6620()" (identifier "FUN_000f6620") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}"))) (if_statement "if (DAT_003dd804 == 0) {\n      DAT_003dd804 = FUN_000f6620();\n    }" (if "if") (parenthesized_expression "(DAT_003dd804 == 0)" (( "(") (binary_expression "DAT_003dd804 == 0" (identifier "DAT_003dd804") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      DAT_003dd804 = FUN_000f6620();\n    }" ({ "{") (expression_statement "DAT_003dd804 = FUN_000f6620();" (assignment_expression "DAT_003dd804 = FUN_000f6620()" (identifier "DAT_003dd804") (= "=") (call_expression "FUN_000f6620()" (identifier "FUN_000f6620") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}"))) (if_statement "if (DAT_003dd808 == 0) {\n      DAT_003dd808 = FUN_000f6620();\n    }" (if "if") (parenthesized_expression "(DAT_003dd808 == 0)" (( "(") (binary_expression "DAT_003dd808 == 0" (identifier "DAT_003dd808") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      DAT_003dd808 = FUN_000f6620();\n    }" ({ "{") (expression_statement "DAT_003dd808 = FUN_000f6620();" (assignment_expression "DAT_003dd808 = FUN_000f6620()" (identifier "DAT_003dd808") (= "=") (call_expression "FUN_000f6620()" (identifier "FUN_000f6620") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}"))) (if_statement "if (DAT_003dd80c == 0) {\n      DAT_003dd80c = FUN_000f6620();\n    }" (if "if") (parenthesized_expression "(DAT_003dd80c == 0)" (( "(") (binary_expression "DAT_003dd80c == 0" (identifier "DAT_003dd80c") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      DAT_003dd80c = FUN_000f6620();\n    }" ({ "{") (expression_statement "DAT_003dd80c = FUN_000f6620();" (assignment_expression "DAT_003dd80c = FUN_000f6620()" (identifier "DAT_003dd80c") (= "=") (call_expression "FUN_000f6620()" (identifier "FUN_000f6620") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}"))) (if_statement "if (DAT_003dd83c == 0) {\n      DAT_003dd83c = FUN_000f6620();\n    }" (if "if") (parenthesized_expression "(DAT_003dd83c == 0)" (( "(") (binary_expression "DAT_003dd83c == 0" (identifier "DAT_003dd83c") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      DAT_003dd83c = FUN_000f6620();\n    }" ({ "{") (expression_statement "DAT_003dd83c = FUN_000f6620();" (assignment_expression "DAT_003dd83c = FUN_000f6620()" (identifier "DAT_003dd83c") (= "=") (call_expression "FUN_000f6620()" (identifier "FUN_000f6620") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}"))) (if_statement "if (DAT_003dd860 == 0) {\n      DAT_003dd860 = FUN_000f6620();\n    }" (if "if") (parenthesized_expression "(DAT_003dd860 == 0)" (( "(") (binary_expression "DAT_003dd860 == 0" (identifier "DAT_003dd860") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      DAT_003dd860 = FUN_000f6620();\n    }" ({ "{") (expression_statement "DAT_003dd860 = FUN_000f6620();" (assignment_expression "DAT_003dd860 = FUN_000f6620()" (identifier "DAT_003dd860") (= "=") (call_expression "FUN_000f6620()" (identifier "FUN_000f6620") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}"))) (if_statement "if (DAT_003dd864 == 0) {\n      DAT_003dd864 = FUN_000f6620();\n    }" (if "if") (parenthesized_expression "(DAT_003dd864 == 0)" (( "(") (binary_expression "DAT_003dd864 == 0" (identifier "DAT_003dd864") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      DAT_003dd864 = FUN_000f6620();\n    }" ({ "{") (expression_statement "DAT_003dd864 = FUN_000f6620();" (assignment_expression "DAT_003dd864 = FUN_000f6620()" (identifier "DAT_003dd864") (= "=") (call_expression "FUN_000f6620()" (identifier "FUN_000f6620") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}"))) (} "}"))) (expression_statement "FUN_00075b90();" (call_expression "FUN_00075b90()" (identifier "FUN_00075b90") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00120c30();" (call_expression "FUN_00120c30()" (identifier "FUN_00120c30") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_0004f5c0();" (call_expression "FUN_0004f5c0()" (identifier "FUN_0004f5c0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_0017fd40();" (call_expression "FUN_0017fd40()" (identifier "FUN_0017fd40") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00059d90();" (call_expression "FUN_00059d90()" (identifier "FUN_00059d90") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (DAT_003dd900 == 0) {\n    DAT_003dd900 = AcquireSemaphoreInfo();\n  }" (if "if") (parenthesized_expression "(DAT_003dd900 == 0)" (( "(") (binary_expression "DAT_003dd900 == 0" (identifier "DAT_003dd900") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    DAT_003dd900 = AcquireSemaphoreInfo();\n  }" ({ "{") (expression_statement "DAT_003dd900 = AcquireSemaphoreInfo();" (assignment_expression "DAT_003dd900 = AcquireSemaphoreInfo()" (identifier "DAT_003dd900") (= "=") (call_expression "AcquireSemaphoreInfo()" (identifier "AcquireSemaphoreInfo") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}"))) (expression_statement "FUN_0007f850();" (call_expression "FUN_0007f850()" (identifier "FUN_0007f850") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_000f6240();" (call_expression "FUN_000f6240()" (identifier "FUN_000f6240") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_0005aa50();" (call_expression "FUN_0005aa50()" (identifier "FUN_0005aa50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_001b1b10();" (call_expression "FUN_001b1b10()" (identifier "FUN_001b1b10") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_000fbb10();" (call_expression "FUN_000fbb10()" (identifier "FUN_000fbb10") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00039c30();" (call_expression "FUN_00039c30()" (identifier "FUN_00039c30") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_0016d380();" (call_expression "FUN_0016d380()" (identifier "FUN_0016d380") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_000fbe70();" (call_expression "FUN_000fbe70()" (identifier "FUN_000fbe70") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "DAT_003dd7ec = 1;" (assignment_expression "DAT_003dd7ec = 1" (identifier "DAT_003dd7ec") (= "=") (number_literal "1")) (; ";")) (labeled_statement "LAB_000f7b83:\n  omp_unset_lock(&DAT_003dd904);" (statement_identifier "LAB_000f7b83") (: ":") (expression_statement "omp_unset_lock(&DAT_003dd904);" (call_expression "omp_unset_lock(&DAT_003dd904)" (identifier "omp_unset_lock") (argument_list "(&DAT_003dd904)" (( "(") (pointer_expression "&DAT_003dd904" (& "&") (identifier "DAT_003dd904")) () ")"))) (; ";"))) (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" (if "if") (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (== "==") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_0029eab0();" (call_expression "FUN_0029eab0()" (identifier "FUN_0029eab0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

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

void function_1(char *var_15,type_1 var_23)

{
  int var_41;
  char *var_12;
  type_1 var_18;
  int var_1;
  char execution_path [4096];
  char filename [4096];
  
  var_41 = *(int *)(var_1 + 0x14);
  var_2(&translation_unit_mutex);
  translation_unit_initialized = MagickTrue;
  var_3(&translation_unit_mutex);
  if (var_4 != var_5) goto LAB_000f7b83;
  var_6();
  var_7();
  var_8();
  var_9();
  var_10();
  var_12 = var_11("MAGICK_DEBUG");
  if (var_12 != (char *)0x0) {
    var_13(var_12);
    var_14(var_12);
  }
  if ((var_15 == (char *)0x0) || (*var_15 != '/')) {
LAB_000f7a4c:
    var_16(execution_path,0x1000);
  }
  else {
    var_18 = var_17(var_15);
    if (var_18 == var_5) goto LAB_000f7a4c;
    var_19(execution_path,var_15,0x1000);
  }
  var_20(execution_path,TailPath,filename);
  var_21(filename);
  var_20(execution_path,HeadPath,execution_path);
  var_22(execution_path);
  if (var_23 != var_5) {
    if (signal_handlers[6] == (type_2 *)0x0) {
      signal_handlers[6] = var_24(6);
    }
    if (signal_handlers[7] == (type_2 *)0x0) {
      signal_handlers[7] = var_24(7);
    }
    if (signal_handlers[0xb] == (type_2 *)0x0) {
      signal_handlers[0xb] = var_24(0xb);
    }
    if (signal_handlers[8] == (type_2 *)0x0) {
      signal_handlers[8] = var_24(8);
    }
    if (signal_handlers[1] == (type_2 *)0x0) {
      signal_handlers[1] = var_24(1);
    }
    if (signal_handlers[2] == (type_2 *)0x0) {
      signal_handlers[2] = var_24(2);
    }
    if (signal_handlers[3] == (type_2 *)0x0) {
      signal_handlers[3] = var_24(3);
    }
    if (signal_handlers[0xf] == (type_2 *)0x0) {
      signal_handlers[0xf] = var_24(0xf);
    }
    if (signal_handlers[0x18] == (type_2 *)0x0) {
      signal_handlers[0x18] = var_24(0x18);
    }
    if (signal_handlers[0x19] == (type_2 *)0x0) {
      signal_handlers[0x19] = var_24(0x19);
    }
  }
  var_25();
  var_26();
  var_27();
  var_28();
  var_29();
  if (var_30 == (type_3 *)0x0) {
    var_30 = var_31();
  }
  var_32();
  var_33();
  var_34();
  var_35();
  var_36();
  var_37();
  var_38();
  var_39();
  var_4 = MagickTrue;
LAB_000f7b83:
  var_40(&translation_unit_mutex);
  if (var_41 == *(int *)(var_1 + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  var_42();
}


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

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

void MASKED(char *param_1,int param_2)

{
  int iVar1;
  int in_GS_OFFSET;
  undefined1 local_2020 [4096];
  undefined1 local_1020 [4096];
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0xf79a9;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  omp_init_lock(&DAT_003dd904);
  DAT_003dd908 = 1;
  omp_set_lock(&DAT_003dd904);
  if (DAT_003dd7ec != 0) goto LAB_000f7b83;
  FUN_00184990();
  FUN_000bf040();
  FUN_000f3bf0();
  FUN_000f2d60();
  FUN_0016c8f0();
  iVar1 = GetEnvironmentValue("MAGICK_DEBUG");
  if (iVar1 != 0) {
    SetLogEventMask(iVar1);
    DestroyString(iVar1);
  }
  if ((param_1 == (char *)0x0) || (*param_1 != '/')) {
LAB_000f7a4c:
    FUN_001b2e70(local_2020,0x1000);
  }
  else {
    iVar1 = IsPathAccessible(param_1);
    if (iVar1 == 0) goto LAB_000f7a4c;
    CopyMagickString(local_2020,param_1,0x1000);
  }
  GetPathComponent(local_2020,4,local_1020);
  SetClientName(local_1020);
  GetPathComponent(local_2020,3,local_2020);
  SetClientPath(local_2020);
  if (param_2 != 0) {
    if (DAT_003dd818 == 0) {
      DAT_003dd818 = FUN_000f6620();
    }
    if (DAT_003dd81c == 0) {
      DAT_003dd81c = FUN_000f6620();
    }
    if (DAT_003dd82c == 0) {
      DAT_003dd82c = FUN_000f6620();
    }
    if (DAT_003dd820 == 0) {
      DAT_003dd820 = FUN_000f6620();
    }
    if (DAT_003dd804 == 0) {
      DAT_003dd804 = FUN_000f6620();
    }
    if (DAT_003dd808 == 0) {
      DAT_003dd808 = FUN_000f6620();
    }
    if (DAT_003dd80c == 0) {
      DAT_003dd80c = FUN_000f6620();
    }
    if (DAT_003dd83c == 0) {
      DAT_003dd83c = FUN_000f6620();
    }
    if (DAT_003dd860 == 0) {
      DAT_003dd860 = FUN_000f6620();
    }
    if (DAT_003dd864 == 0) {
      DAT_003dd864 = FUN_000f6620();
    }
  }
  FUN_00075b90();
  FUN_00120c30();
  FUN_0004f5c0();
  FUN_0017fd40();
  FUN_00059d90();
  if (DAT_003dd900 == 0) {
    DAT_003dd900 = AcquireSemaphoreInfo();
  }
  FUN_0007f850();
  FUN_000f6240();
  FUN_0005aa50();
  FUN_001b1b10();
  FUN_000fbb10();
  FUN_00039c30();
  FUN_0016d380();
  FUN_000fbe70();
  DAT_003dd7ec = 1;
LAB_000f7b83:
  omp_unset_lock(&DAT_003dd904);
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0029eab0();
}

