
/* WARNING: Enum "ExceptionType": Some values do not have unique names */
/* WARNING: Enum "PolicyRights": Some values do not have unique names */
/* WARNING: Enum "LogEventType": Some values do not have unique names */

PolicyInfo ** GetPolicyInfoList(char *pattern,size_t *number_policies,ExceptionInfo *exception)

{
  MagickBooleanType MVar1;
  PolicyInfo *pPVar2;
  size_t sVar3;
  PolicyInfo **ppPVar4;
  
  if (pattern == (char *)0x0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("pattern != (char *) NULL","MagickCore/policy.c",0x17f,"GetPolicyInfoList");
  }
  LogMagickEvent(TraceEvent,"MagickCore/policy.c","GetPolicyInfoList",0x180,"%s",pattern);
  if (number_policies != (size_t *)0x0) {
    *number_policies = 0;
    pPVar2 = GetPolicyInfo("*",exception);
    if (pPVar2 == (PolicyInfo *)0x0) {
      ppPVar4 = (PolicyInfo **)0x0;
    }
    else {
      sVar3 = GetNumberOfElementsInLinkedList(policy_cache);
      ppPVar4 = (PolicyInfo **)AcquireQuantumMemory(sVar3 + 1,8);
      if (ppPVar4 != (PolicyInfo **)0x0) {
        LockSemaphoreInfo(policy_semaphore);
        ResetLinkedListIterator(policy_cache);
        pPVar2 = (PolicyInfo *)GetNextValueInLinkedList(policy_cache);
        if (pPVar2 == (PolicyInfo *)0x0) {
          sVar3 = 0;
        }
        else {
          sVar3 = 0;
          do {
            if (pPVar2->stealth == MagickFalse) {
              MVar1 = GlobExpression(pPVar2->name,pattern,MagickFalse);
              if (MVar1 != MagickFalse) {
                ppPVar4[sVar3] = pPVar2;
                sVar3 = sVar3 + 1;
              }
            }
            pPVar2 = (PolicyInfo *)GetNextValueInLinkedList(policy_cache);
          } while (pPVar2 != (PolicyInfo *)0x0);
        }
        UnlockSemaphoreInfo(policy_semaphore);
        ppPVar4[sVar3] = (PolicyInfo *)0x0;
        *number_policies = sVar3;
      }
    }
    return ppPVar4;
  }
                    /* WARNING: Subroutine does not return */
  __assert_fail("number_policies != (size_t *) NULL","MagickCore/policy.c",0x181,"GetPolicyInfoList"
               );
}



long GetPolicyInfoList(long param_1,long *param_2,undefined8 param_3)

{
  int iVar1;
  long lVar2;
  long lVar3;
  long lVar4;
  
  if (param_1 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("pattern != (char *) NULL","MagickCore/policy.c",0x17f,"GetPolicyInfoList");
  }
  LogMagickEvent(0x8000,"MagickCore/policy.c","GetPolicyInfoList",0x180,&DAT_0041fe36,param_1);
  if (param_2 != (long *)0x0) {
    *param_2 = 0;
    lVar2 = FUN_0025a3d5(&DAT_00422be9,param_3);
    if (lVar2 == 0) {
      lVar2 = 0;
    }
    else {
      lVar2 = GetNumberOfElementsInLinkedList(DAT_007263c0);
      lVar2 = AcquireQuantumMemory(lVar2 + 1,8);
      if (lVar2 != 0) {
        LockSemaphoreInfo(DAT_007263b8);
        ResetLinkedListIterator(DAT_007263c0);
        lVar3 = GetNextValueInLinkedList(DAT_007263c0);
        if (lVar3 == 0) {
          lVar4 = 0;
        }
        else {
          lVar4 = 0;
          do {
            if (*(int *)(lVar3 + 0x2c) == 0) {
              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);
              if (iVar1 != 0) {
                *(long *)(lVar2 + lVar4 * 8) = lVar3;
                lVar4 = lVar4 + 1;
              }
            }
            lVar3 = GetNextValueInLinkedList(DAT_007263c0);
          } while (lVar3 != 0);
        }
        UnlockSemaphoreInfo(DAT_007263b8);
        *(undefined8 *)(lVar2 + lVar4 * 8) = 0;
        *param_2 = lVar4;
      }
    }
    return lVar2;
  }
                    /* WARNING: Subroutine does not return */
  __assert_fail("number_policies != (size_t *) NULL","MagickCore/policy.c",0x181,"GetPolicyInfoList"
               );
}


PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
TEST RDI,RDI
JZ 0x0025a85a
MOV R12,RDI
MOV R14,RSI
MOV RBX,RDX
MOV R9,RDI
LEA R8,[0x41fe36]
MOV ECX,0x180
LEA RDX,[0x4297d0]
LEA RSI,[0x429516]
MOV EDI,0x8000
MOV EAX,0x0
CALL 0x0014be20
TEST R14,R14
JZ 0x0025a879
MOV qword ptr [R14],0x0
MOV RSI,RBX
LEA RDI,[0x422be9]
CALL 0x0025a3d5
TEST RAX,RAX
JZ 0x0025a8fb
MOV RDI,qword ptr [0x007263c0]
CALL 0x0014b430
LEA RDI,[RAX + 0x1]
MOV ESI,0x8
CALL 0x0014af40
MOV R13,RAX
TEST RAX,RAX
JZ 0x0025a8ef
MOV RDI,qword ptr [0x007263b8]
CALL 0x0014a710
MOV RDI,qword ptr [0x007263c0]
CALL 0x0014ae50
MOV RDI,qword ptr [0x007263c0]
CALL 0x0014b870
MOV RBX,RAX
TEST RAX,RAX
JZ 0x0025a8d2
MOV EBP,0x0
JMP 0x0025a8ac
LEA RCX,[0x4297f0]
MOV EDX,0x17f
LEA RSI,[0x429516]
LEA RDI,[0x3fd574]
CALL 0x0014a360
LEA RCX,[0x4297f0]
MOV EDX,0x181
LEA RSI,[0x429516]
LEA RDI,[0x429808]
CALL 0x0014a360
MOV RDI,qword ptr [0x007263c0]
CALL 0x0014b870
MOV RBX,RAX
TEST RAX,RAX
JZ 0x0025a8d7
CMP dword ptr [RBX + 0x2c],0x0
JNZ 0x0025a898
MOV RDI,qword ptr [RBX + 0x10]
MOV EDX,0x0
MOV RSI,R12
CALL 0x0014a9f0
TEST EAX,EAX
JZ 0x0025a898
MOV qword ptr [R13 + RBP*0x8],RBX
LEA RBP,[RBP + 0x1]
JMP 0x0025a898
MOV EBP,0x0
MOV RDI,qword ptr [0x007263b8]
CALL 0x0014b660
MOV qword ptr [R13 + RBP*0x8],0x0
MOV qword ptr [R14],RBP
MOV RAX,R13
POP RBX
POP RBP
POP R12
POP R13
POP R14
RET
MOV R13D,0x0
JMP 0x0025a8ef
(translation_unit "long GetPolicyInfoList(long param_1,long *param_2,undefined8 param_3)\n\n{\n  int iVar1;\n  long lVar2;\n  long lVar3;\n  long lVar4;\n  \n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("pattern != (char *) NULL","MagickCore/policy.c",0x17f,"GetPolicyInfoList");\n  }\n  LogMagickEvent(0x8000,"MagickCore/policy.c","GetPolicyInfoList",0x180,&DAT_0041fe36,param_1);\n  if (param_2 != (long *)0x0) {\n    *param_2 = 0;\n    lVar2 = FUN_0025a3d5(&DAT_00422be9,param_3);\n    if (lVar2 == 0) {\n      lVar2 = 0;\n    }\n    else {\n      lVar2 = GetNumberOfElementsInLinkedList(DAT_007263c0);\n      lVar2 = AcquireQuantumMemory(lVar2 + 1,8);\n      if (lVar2 != 0) {\n        LockSemaphoreInfo(DAT_007263b8);\n        ResetLinkedListIterator(DAT_007263c0);\n        lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n        if (lVar3 == 0) {\n          lVar4 = 0;\n        }\n        else {\n          lVar4 = 0;\n          do {\n            if (*(int *)(lVar3 + 0x2c) == 0) {\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }\n            lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n          } while (lVar3 != 0);\n        }\n        UnlockSemaphoreInfo(DAT_007263b8);\n        *(undefined8 *)(lVar2 + lVar4 * 8) = 0;\n        *param_2 = lVar4;\n      }\n    }\n    return lVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  __assert_fail("number_policies != (size_t *) NULL","MagickCore/policy.c",0x181,"GetPolicyInfoList"\n               );\n}\n\n" (function_definition "long GetPolicyInfoList(long param_1,long *param_2,undefined8 param_3)\n\n{\n  int iVar1;\n  long lVar2;\n  long lVar3;\n  long lVar4;\n  \n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("pattern != (char *) NULL","MagickCore/policy.c",0x17f,"GetPolicyInfoList");\n  }\n  LogMagickEvent(0x8000,"MagickCore/policy.c","GetPolicyInfoList",0x180,&DAT_0041fe36,param_1);\n  if (param_2 != (long *)0x0) {\n    *param_2 = 0;\n    lVar2 = FUN_0025a3d5(&DAT_00422be9,param_3);\n    if (lVar2 == 0) {\n      lVar2 = 0;\n    }\n    else {\n      lVar2 = GetNumberOfElementsInLinkedList(DAT_007263c0);\n      lVar2 = AcquireQuantumMemory(lVar2 + 1,8);\n      if (lVar2 != 0) {\n        LockSemaphoreInfo(DAT_007263b8);\n        ResetLinkedListIterator(DAT_007263c0);\n        lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n        if (lVar3 == 0) {\n          lVar4 = 0;\n        }\n        else {\n          lVar4 = 0;\n          do {\n            if (*(int *)(lVar3 + 0x2c) == 0) {\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }\n            lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n          } while (lVar3 != 0);\n        }\n        UnlockSemaphoreInfo(DAT_007263b8);\n        *(undefined8 *)(lVar2 + lVar4 * 8) = 0;\n        *param_2 = lVar4;\n      }\n    }\n    return lVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  __assert_fail("number_policies != (size_t *) NULL","MagickCore/policy.c",0x181,"GetPolicyInfoList"\n               );\n}" (sized_type_specifier "long" long) (function_declarator "GetPolicyInfoList(long param_1,long *param_2,undefined8 param_3)" identifier (parameter_list "(long param_1,long *param_2,undefined8 param_3)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long *param_2" (sized_type_specifier "long" long) (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined8 param_3" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  long lVar2;\n  long lVar3;\n  long lVar4;\n  \n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("pattern != (char *) NULL","MagickCore/policy.c",0x17f,"GetPolicyInfoList");\n  }\n  LogMagickEvent(0x8000,"MagickCore/policy.c","GetPolicyInfoList",0x180,&DAT_0041fe36,param_1);\n  if (param_2 != (long *)0x0) {\n    *param_2 = 0;\n    lVar2 = FUN_0025a3d5(&DAT_00422be9,param_3);\n    if (lVar2 == 0) {\n      lVar2 = 0;\n    }\n    else {\n      lVar2 = GetNumberOfElementsInLinkedList(DAT_007263c0);\n      lVar2 = AcquireQuantumMemory(lVar2 + 1,8);\n      if (lVar2 != 0) {\n        LockSemaphoreInfo(DAT_007263b8);\n        ResetLinkedListIterator(DAT_007263c0);\n        lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n        if (lVar3 == 0) {\n          lVar4 = 0;\n        }\n        else {\n          lVar4 = 0;\n          do {\n            if (*(int *)(lVar3 + 0x2c) == 0) {\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }\n            lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n          } while (lVar3 != 0);\n        }\n        UnlockSemaphoreInfo(DAT_007263b8);\n        *(undefined8 *)(lVar2 + lVar4 * 8) = 0;\n        *param_2 = lVar4;\n      }\n    }\n    return lVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  __assert_fail("number_policies != (size_t *) NULL","MagickCore/policy.c",0x181,"GetPolicyInfoList"\n               );\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (if_statement "if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("pattern != (char *) NULL","MagickCore/policy.c",0x17f,"GetPolicyInfoList");\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("pattern != (char *) NULL","MagickCore/policy.c",0x17f,"GetPolicyInfoList");\n  }" { comment (expression_statement "__assert_fail("pattern != (char *) NULL","MagickCore/policy.c",0x17f,"GetPolicyInfoList");" (call_expression "__assert_fail("pattern != (char *) NULL","MagickCore/policy.c",0x17f,"GetPolicyInfoList")" identifier (argument_list "("pattern != (char *) NULL","MagickCore/policy.c",0x17f,"GetPolicyInfoList")" ( (string_literal ""pattern != (char *) NULL"" " string_content ") , (string_literal ""MagickCore/policy.c"" " string_content ") , number_literal , (string_literal ""GetPolicyInfoList"" " string_content ") ))) ;) })) (expression_statement "LogMagickEvent(0x8000,"MagickCore/policy.c","GetPolicyInfoList",0x180,&DAT_0041fe36,param_1);" (call_expression "LogMagickEvent(0x8000,"MagickCore/policy.c","GetPolicyInfoList",0x180,&DAT_0041fe36,param_1)" identifier (argument_list "(0x8000,"MagickCore/policy.c","GetPolicyInfoList",0x180,&DAT_0041fe36,param_1)" ( number_literal , (string_literal ""MagickCore/policy.c"" " string_content ") , (string_literal ""GetPolicyInfoList"" " string_content ") , number_literal , (pointer_expression "&DAT_0041fe36" & identifier) , identifier ))) ;) (if_statement "if (param_2 != (long *)0x0) {\n    *param_2 = 0;\n    lVar2 = FUN_0025a3d5(&DAT_00422be9,param_3);\n    if (lVar2 == 0) {\n      lVar2 = 0;\n    }\n    else {\n      lVar2 = GetNumberOfElementsInLinkedList(DAT_007263c0);\n      lVar2 = AcquireQuantumMemory(lVar2 + 1,8);\n      if (lVar2 != 0) {\n        LockSemaphoreInfo(DAT_007263b8);\n        ResetLinkedListIterator(DAT_007263c0);\n        lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n        if (lVar3 == 0) {\n          lVar4 = 0;\n        }\n        else {\n          lVar4 = 0;\n          do {\n            if (*(int *)(lVar3 + 0x2c) == 0) {\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }\n            lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n          } while (lVar3 != 0);\n        }\n        UnlockSemaphoreInfo(DAT_007263b8);\n        *(undefined8 *)(lVar2 + lVar4 * 8) = 0;\n        *param_2 = lVar4;\n      }\n    }\n    return lVar2;\n  }" if (parenthesized_expression "(param_2 != (long *)0x0)" ( (binary_expression "param_2 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *param_2 = 0;\n    lVar2 = FUN_0025a3d5(&DAT_00422be9,param_3);\n    if (lVar2 == 0) {\n      lVar2 = 0;\n    }\n    else {\n      lVar2 = GetNumberOfElementsInLinkedList(DAT_007263c0);\n      lVar2 = AcquireQuantumMemory(lVar2 + 1,8);\n      if (lVar2 != 0) {\n        LockSemaphoreInfo(DAT_007263b8);\n        ResetLinkedListIterator(DAT_007263c0);\n        lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n        if (lVar3 == 0) {\n          lVar4 = 0;\n        }\n        else {\n          lVar4 = 0;\n          do {\n            if (*(int *)(lVar3 + 0x2c) == 0) {\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }\n            lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n          } while (lVar3 != 0);\n        }\n        UnlockSemaphoreInfo(DAT_007263b8);\n        *(undefined8 *)(lVar2 + lVar4 * 8) = 0;\n        *param_2 = lVar4;\n      }\n    }\n    return lVar2;\n  }" { (expression_statement "*param_2 = 0;" (assignment_expression "*param_2 = 0" (pointer_expression "*param_2" * identifier) = number_literal) ;) (expression_statement "lVar2 = FUN_0025a3d5(&DAT_00422be9,param_3);" (assignment_expression "lVar2 = FUN_0025a3d5(&DAT_00422be9,param_3)" identifier = (call_expression "FUN_0025a3d5(&DAT_00422be9,param_3)" identifier (argument_list "(&DAT_00422be9,param_3)" ( (pointer_expression "&DAT_00422be9" & identifier) , identifier )))) ;) (if_statement "if (lVar2 == 0) {\n      lVar2 = 0;\n    }\n    else {\n      lVar2 = GetNumberOfElementsInLinkedList(DAT_007263c0);\n      lVar2 = AcquireQuantumMemory(lVar2 + 1,8);\n      if (lVar2 != 0) {\n        LockSemaphoreInfo(DAT_007263b8);\n        ResetLinkedListIterator(DAT_007263c0);\n        lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n        if (lVar3 == 0) {\n          lVar4 = 0;\n        }\n        else {\n          lVar4 = 0;\n          do {\n            if (*(int *)(lVar3 + 0x2c) == 0) {\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }\n            lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n          } while (lVar3 != 0);\n        }\n        UnlockSemaphoreInfo(DAT_007263b8);\n        *(undefined8 *)(lVar2 + lVar4 * 8) = 0;\n        *param_2 = lVar4;\n      }\n    }" if (parenthesized_expression "(lVar2 == 0)" ( (binary_expression "lVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      lVar2 = 0;\n    }" { (expression_statement "lVar2 = 0;" (assignment_expression "lVar2 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      lVar2 = GetNumberOfElementsInLinkedList(DAT_007263c0);\n      lVar2 = AcquireQuantumMemory(lVar2 + 1,8);\n      if (lVar2 != 0) {\n        LockSemaphoreInfo(DAT_007263b8);\n        ResetLinkedListIterator(DAT_007263c0);\n        lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n        if (lVar3 == 0) {\n          lVar4 = 0;\n        }\n        else {\n          lVar4 = 0;\n          do {\n            if (*(int *)(lVar3 + 0x2c) == 0) {\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }\n            lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n          } while (lVar3 != 0);\n        }\n        UnlockSemaphoreInfo(DAT_007263b8);\n        *(undefined8 *)(lVar2 + lVar4 * 8) = 0;\n        *param_2 = lVar4;\n      }\n    }" else (compound_statement "{\n      lVar2 = GetNumberOfElementsInLinkedList(DAT_007263c0);\n      lVar2 = AcquireQuantumMemory(lVar2 + 1,8);\n      if (lVar2 != 0) {\n        LockSemaphoreInfo(DAT_007263b8);\n        ResetLinkedListIterator(DAT_007263c0);\n        lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n        if (lVar3 == 0) {\n          lVar4 = 0;\n        }\n        else {\n          lVar4 = 0;\n          do {\n            if (*(int *)(lVar3 + 0x2c) == 0) {\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }\n            lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n          } while (lVar3 != 0);\n        }\n        UnlockSemaphoreInfo(DAT_007263b8);\n        *(undefined8 *)(lVar2 + lVar4 * 8) = 0;\n        *param_2 = lVar4;\n      }\n    }" { (expression_statement "lVar2 = GetNumberOfElementsInLinkedList(DAT_007263c0);" (assignment_expression "lVar2 = GetNumberOfElementsInLinkedList(DAT_007263c0)" identifier = (call_expression "GetNumberOfElementsInLinkedList(DAT_007263c0)" identifier (argument_list "(DAT_007263c0)" ( identifier )))) ;) (expression_statement "lVar2 = AcquireQuantumMemory(lVar2 + 1,8);" (assignment_expression "lVar2 = AcquireQuantumMemory(lVar2 + 1,8)" identifier = (call_expression "AcquireQuantumMemory(lVar2 + 1,8)" identifier (argument_list "(lVar2 + 1,8)" ( (binary_expression "lVar2 + 1" identifier + number_literal) , number_literal )))) ;) (if_statement "if (lVar2 != 0) {\n        LockSemaphoreInfo(DAT_007263b8);\n        ResetLinkedListIterator(DAT_007263c0);\n        lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n        if (lVar3 == 0) {\n          lVar4 = 0;\n        }\n        else {\n          lVar4 = 0;\n          do {\n            if (*(int *)(lVar3 + 0x2c) == 0) {\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }\n            lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n          } while (lVar3 != 0);\n        }\n        UnlockSemaphoreInfo(DAT_007263b8);\n        *(undefined8 *)(lVar2 + lVar4 * 8) = 0;\n        *param_2 = lVar4;\n      }" if (parenthesized_expression "(lVar2 != 0)" ( (binary_expression "lVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        LockSemaphoreInfo(DAT_007263b8);\n        ResetLinkedListIterator(DAT_007263c0);\n        lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n        if (lVar3 == 0) {\n          lVar4 = 0;\n        }\n        else {\n          lVar4 = 0;\n          do {\n            if (*(int *)(lVar3 + 0x2c) == 0) {\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }\n            lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n          } while (lVar3 != 0);\n        }\n        UnlockSemaphoreInfo(DAT_007263b8);\n        *(undefined8 *)(lVar2 + lVar4 * 8) = 0;\n        *param_2 = lVar4;\n      }" { (expression_statement "LockSemaphoreInfo(DAT_007263b8);" (call_expression "LockSemaphoreInfo(DAT_007263b8)" identifier (argument_list "(DAT_007263b8)" ( identifier ))) ;) (expression_statement "ResetLinkedListIterator(DAT_007263c0);" (call_expression "ResetLinkedListIterator(DAT_007263c0)" identifier (argument_list "(DAT_007263c0)" ( identifier ))) ;) (expression_statement "lVar3 = GetNextValueInLinkedList(DAT_007263c0);" (assignment_expression "lVar3 = GetNextValueInLinkedList(DAT_007263c0)" identifier = (call_expression "GetNextValueInLinkedList(DAT_007263c0)" identifier (argument_list "(DAT_007263c0)" ( identifier )))) ;) (if_statement "if (lVar3 == 0) {\n          lVar4 = 0;\n        }\n        else {\n          lVar4 = 0;\n          do {\n            if (*(int *)(lVar3 + 0x2c) == 0) {\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }\n            lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n          } while (lVar3 != 0);\n        }" if (parenthesized_expression "(lVar3 == 0)" ( (binary_expression "lVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          lVar4 = 0;\n        }" { (expression_statement "lVar4 = 0;" (assignment_expression "lVar4 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          lVar4 = 0;\n          do {\n            if (*(int *)(lVar3 + 0x2c) == 0) {\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }\n            lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n          } while (lVar3 != 0);\n        }" else (compound_statement "{\n          lVar4 = 0;\n          do {\n            if (*(int *)(lVar3 + 0x2c) == 0) {\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }\n            lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n          } while (lVar3 != 0);\n        }" { (expression_statement "lVar4 = 0;" (assignment_expression "lVar4 = 0" identifier = number_literal) ;) (do_statement "do {\n            if (*(int *)(lVar3 + 0x2c) == 0) {\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }\n            lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n          } while (lVar3 != 0);" do (compound_statement "{\n            if (*(int *)(lVar3 + 0x2c) == 0) {\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }\n            lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n          }" { (if_statement "if (*(int *)(lVar3 + 0x2c) == 0) {\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }" if (parenthesized_expression "(*(int *)(lVar3 + 0x2c) == 0)" ( (binary_expression "*(int *)(lVar3 + 0x2c) == 0" (pointer_expression "*(int *)(lVar3 + 0x2c)" * (cast_expression "(int *)(lVar3 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x2c)" ( (binary_expression "lVar3 + 0x2c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }" { (expression_statement "iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);" (assignment_expression "iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0)" identifier = (call_expression "GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0)" identifier (argument_list "(*(undefined8 *)(lVar3 + 0x10),param_1,0)" ( (pointer_expression "*(undefined8 *)(lVar3 + 0x10)" * (cast_expression "(undefined8 *)(lVar3 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x10)" ( (binary_expression "lVar3 + 0x10" identifier + number_literal) )))) , identifier , number_literal )))) ;) (if_statement "if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }" { (expression_statement "*(long *)(lVar2 + lVar4 * 8) = lVar3;" (assignment_expression "*(long *)(lVar2 + lVar4 * 8) = lVar3" (pointer_expression "*(long *)(lVar2 + lVar4 * 8)" * (cast_expression "(long *)(lVar2 + lVar4 * 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + lVar4 * 8)" ( (binary_expression "lVar2 + lVar4 * 8" identifier + (binary_expression "lVar4 * 8" identifier * number_literal)) )))) = identifier) ;) (expression_statement "lVar4 = lVar4 + 1;" (assignment_expression "lVar4 = lVar4 + 1" identifier = (binary_expression "lVar4 + 1" identifier + number_literal)) ;) })) })) (expression_statement "lVar3 = GetNextValueInLinkedList(DAT_007263c0);" (assignment_expression "lVar3 = GetNextValueInLinkedList(DAT_007263c0)" identifier = (call_expression "GetNextValueInLinkedList(DAT_007263c0)" identifier (argument_list "(DAT_007263c0)" ( identifier )))) ;) }) while (parenthesized_expression "(lVar3 != 0)" ( (binary_expression "lVar3 != 0" identifier != number_literal) )) ;) }))) (expression_statement "UnlockSemaphoreInfo(DAT_007263b8);" (call_expression "UnlockSemaphoreInfo(DAT_007263b8)" identifier (argument_list "(DAT_007263b8)" ( identifier ))) ;) (expression_statement "*(undefined8 *)(lVar2 + lVar4 * 8) = 0;" (assignment_expression "*(undefined8 *)(lVar2 + lVar4 * 8) = 0" (pointer_expression "*(undefined8 *)(lVar2 + lVar4 * 8)" * (cast_expression "(undefined8 *)(lVar2 + lVar4 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + lVar4 * 8)" ( (binary_expression "lVar2 + lVar4 * 8" identifier + (binary_expression "lVar4 * 8" identifier * number_literal)) )))) = number_literal) ;) (expression_statement "*param_2 = lVar4;" (assignment_expression "*param_2 = lVar4" (pointer_expression "*param_2" * identifier) = identifier) ;) })) }))) (return_statement "return lVar2;" return identifier ;) })) comment (expression_statement "__assert_fail("number_policies != (size_t *) NULL","MagickCore/policy.c",0x181,"GetPolicyInfoList"\n               );" (call_expression "__assert_fail("number_policies != (size_t *) NULL","MagickCore/policy.c",0x181,"GetPolicyInfoList"\n               )" identifier (argument_list "("number_policies != (size_t *) NULL","MagickCore/policy.c",0x181,"GetPolicyInfoList"\n               )" ( (string_literal ""number_policies != (size_t *) NULL"" " string_content ") , (string_literal ""MagickCore/policy.c"" " string_content ") , number_literal , (string_literal ""GetPolicyInfoList"" " string_content ") ))) ;) })))
(translation_unit "/* WARNING: Enum "ExceptionType": Some values do not have unique names */\n/* WARNING: Enum "PolicyRights": Some values do not have unique names */\n/* WARNING: Enum "LogEventType": Some values do not have unique names */\n\nPolicyInfo ** GetPolicyInfoList(char *pattern,size_t *number_policies,ExceptionInfo *exception)\n\n{\n  MagickBooleanType MVar1;\n  PolicyInfo *pPVar2;\n  size_t sVar3;\n  PolicyInfo **ppPVar4;\n  \n  if (pattern == (char *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("pattern != (char *) NULL","MagickCore/policy.c",0x17f,"GetPolicyInfoList");\n  }\n  LogMagickEvent(TraceEvent,"MagickCore/policy.c","GetPolicyInfoList",0x180,"%s",pattern);\n  if (number_policies != (size_t *)0x0) {\n    *number_policies = 0;\n    pPVar2 = GetPolicyInfo("*",exception);\n    if (pPVar2 == (PolicyInfo *)0x0) {\n      ppPVar4 = (PolicyInfo **)0x0;\n    }\n    else {\n      sVar3 = GetNumberOfElementsInLinkedList(policy_cache);\n      ppPVar4 = (PolicyInfo **)AcquireQuantumMemory(sVar3 + 1,8);\n      if (ppPVar4 != (PolicyInfo **)0x0) {\n        LockSemaphoreInfo(policy_semaphore);\n        ResetLinkedListIterator(policy_cache);\n        pPVar2 = (PolicyInfo *)GetNextValueInLinkedList(policy_cache);\n        if (pPVar2 == (PolicyInfo *)0x0) {\n          sVar3 = 0;\n        }\n        else {\n          sVar3 = 0;\n          do {\n            if (pPVar2->stealth == MagickFalse) {\n              MVar1 = GlobExpression(pPVar2->name,pattern,MagickFalse);\n              if (MVar1 != MagickFalse) {\n                ppPVar4[sVar3] = pPVar2;\n                sVar3 = sVar3 + 1;\n              }\n            }\n            pPVar2 = (PolicyInfo *)GetNextValueInLinkedList(policy_cache);\n          } while (pPVar2 != (PolicyInfo *)0x0);\n        }\n        UnlockSemaphoreInfo(policy_semaphore);\n        ppPVar4[sVar3] = (PolicyInfo *)0x0;\n        *number_policies = sVar3;\n      }\n    }\n    return ppPVar4;\n  }\n                    /* WARNING: Subroutine does not return */\n  __assert_fail("number_policies != (size_t *) NULL","MagickCore/policy.c",0x181,"GetPolicyInfoList"\n               );\n}\n\n" comment comment comment (function_definition "PolicyInfo ** GetPolicyInfoList(char *pattern,size_t *number_policies,ExceptionInfo *exception)\n\n{\n  MagickBooleanType MVar1;\n  PolicyInfo *pPVar2;\n  size_t sVar3;\n  PolicyInfo **ppPVar4;\n  \n  if (pattern == (char *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("pattern != (char *) NULL","MagickCore/policy.c",0x17f,"GetPolicyInfoList");\n  }\n  LogMagickEvent(TraceEvent,"MagickCore/policy.c","GetPolicyInfoList",0x180,"%s",pattern);\n  if (number_policies != (size_t *)0x0) {\n    *number_policies = 0;\n    pPVar2 = GetPolicyInfo("*",exception);\n    if (pPVar2 == (PolicyInfo *)0x0) {\n      ppPVar4 = (PolicyInfo **)0x0;\n    }\n    else {\n      sVar3 = GetNumberOfElementsInLinkedList(policy_cache);\n      ppPVar4 = (PolicyInfo **)AcquireQuantumMemory(sVar3 + 1,8);\n      if (ppPVar4 != (PolicyInfo **)0x0) {\n        LockSemaphoreInfo(policy_semaphore);\n        ResetLinkedListIterator(policy_cache);\n        pPVar2 = (PolicyInfo *)GetNextValueInLinkedList(policy_cache);\n        if (pPVar2 == (PolicyInfo *)0x0) {\n          sVar3 = 0;\n        }\n        else {\n          sVar3 = 0;\n          do {\n            if (pPVar2->stealth == MagickFalse) {\n              MVar1 = GlobExpression(pPVar2->name,pattern,MagickFalse);\n              if (MVar1 != MagickFalse) {\n                ppPVar4[sVar3] = pPVar2;\n                sVar3 = sVar3 + 1;\n              }\n            }\n            pPVar2 = (PolicyInfo *)GetNextValueInLinkedList(policy_cache);\n          } while (pPVar2 != (PolicyInfo *)0x0);\n        }\n        UnlockSemaphoreInfo(policy_semaphore);\n        ppPVar4[sVar3] = (PolicyInfo *)0x0;\n        *number_policies = sVar3;\n      }\n    }\n    return ppPVar4;\n  }\n                    /* WARNING: Subroutine does not return */\n  __assert_fail("number_policies != (size_t *) NULL","MagickCore/policy.c",0x181,"GetPolicyInfoList"\n               );\n}" type_identifier (pointer_declarator "** GetPolicyInfoList(char *pattern,size_t *number_policies,ExceptionInfo *exception)" * (pointer_declarator "* GetPolicyInfoList(char *pattern,size_t *number_policies,ExceptionInfo *exception)" * (function_declarator "GetPolicyInfoList(char *pattern,size_t *number_policies,ExceptionInfo *exception)" identifier (parameter_list "(char *pattern,size_t *number_policies,ExceptionInfo *exception)" ( (parameter_declaration "char *pattern" primitive_type (pointer_declarator "*pattern" * identifier)) , (parameter_declaration "size_t *number_policies" primitive_type (pointer_declarator "*number_policies" * identifier)) , (parameter_declaration "ExceptionInfo *exception" type_identifier (pointer_declarator "*exception" * identifier)) ))))) (compound_statement "{\n  MagickBooleanType MVar1;\n  PolicyInfo *pPVar2;\n  size_t sVar3;\n  PolicyInfo **ppPVar4;\n  \n  if (pattern == (char *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("pattern != (char *) NULL","MagickCore/policy.c",0x17f,"GetPolicyInfoList");\n  }\n  LogMagickEvent(TraceEvent,"MagickCore/policy.c","GetPolicyInfoList",0x180,"%s",pattern);\n  if (number_policies != (size_t *)0x0) {\n    *number_policies = 0;\n    pPVar2 = GetPolicyInfo("*",exception);\n    if (pPVar2 == (PolicyInfo *)0x0) {\n      ppPVar4 = (PolicyInfo **)0x0;\n    }\n    else {\n      sVar3 = GetNumberOfElementsInLinkedList(policy_cache);\n      ppPVar4 = (PolicyInfo **)AcquireQuantumMemory(sVar3 + 1,8);\n      if (ppPVar4 != (PolicyInfo **)0x0) {\n        LockSemaphoreInfo(policy_semaphore);\n        ResetLinkedListIterator(policy_cache);\n        pPVar2 = (PolicyInfo *)GetNextValueInLinkedList(policy_cache);\n        if (pPVar2 == (PolicyInfo *)0x0) {\n          sVar3 = 0;\n        }\n        else {\n          sVar3 = 0;\n          do {\n            if (pPVar2->stealth == MagickFalse) {\n              MVar1 = GlobExpression(pPVar2->name,pattern,MagickFalse);\n              if (MVar1 != MagickFalse) {\n                ppPVar4[sVar3] = pPVar2;\n                sVar3 = sVar3 + 1;\n              }\n            }\n            pPVar2 = (PolicyInfo *)GetNextValueInLinkedList(policy_cache);\n          } while (pPVar2 != (PolicyInfo *)0x0);\n        }\n        UnlockSemaphoreInfo(policy_semaphore);\n        ppPVar4[sVar3] = (PolicyInfo *)0x0;\n        *number_policies = sVar3;\n      }\n    }\n    return ppPVar4;\n  }\n                    /* WARNING: Subroutine does not return */\n  __assert_fail("number_policies != (size_t *) NULL","MagickCore/policy.c",0x181,"GetPolicyInfoList"\n               );\n}" { (declaration "MagickBooleanType MVar1;" type_identifier identifier ;) (declaration "PolicyInfo *pPVar2;" type_identifier (pointer_declarator "*pPVar2" * identifier) ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "PolicyInfo **ppPVar4;" type_identifier (pointer_declarator "**ppPVar4" * (pointer_declarator "*ppPVar4" * identifier)) ;) (if_statement "if (pattern == (char *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("pattern != (char *) NULL","MagickCore/policy.c",0x17f,"GetPolicyInfoList");\n  }" if (parenthesized_expression "(pattern == (char *)0x0)" ( (binary_expression "pattern == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("pattern != (char *) NULL","MagickCore/policy.c",0x17f,"GetPolicyInfoList");\n  }" { comment (expression_statement "__assert_fail("pattern != (char *) NULL","MagickCore/policy.c",0x17f,"GetPolicyInfoList");" (call_expression "__assert_fail("pattern != (char *) NULL","MagickCore/policy.c",0x17f,"GetPolicyInfoList")" identifier (argument_list "("pattern != (char *) NULL","MagickCore/policy.c",0x17f,"GetPolicyInfoList")" ( (string_literal ""pattern != (char *) NULL"" " string_content ") , (string_literal ""MagickCore/policy.c"" " string_content ") , number_literal , (string_literal ""GetPolicyInfoList"" " string_content ") ))) ;) })) (expression_statement "LogMagickEvent(TraceEvent,"MagickCore/policy.c","GetPolicyInfoList",0x180,"%s",pattern);" (call_expression "LogMagickEvent(TraceEvent,"MagickCore/policy.c","GetPolicyInfoList",0x180,"%s",pattern)" identifier (argument_list "(TraceEvent,"MagickCore/policy.c","GetPolicyInfoList",0x180,"%s",pattern)" ( identifier , (string_literal ""MagickCore/policy.c"" " string_content ") , (string_literal ""GetPolicyInfoList"" " string_content ") , number_literal , (string_literal ""%s"" " string_content ") , identifier ))) ;) (if_statement "if (number_policies != (size_t *)0x0) {\n    *number_policies = 0;\n    pPVar2 = GetPolicyInfo("*",exception);\n    if (pPVar2 == (PolicyInfo *)0x0) {\n      ppPVar4 = (PolicyInfo **)0x0;\n    }\n    else {\n      sVar3 = GetNumberOfElementsInLinkedList(policy_cache);\n      ppPVar4 = (PolicyInfo **)AcquireQuantumMemory(sVar3 + 1,8);\n      if (ppPVar4 != (PolicyInfo **)0x0) {\n        LockSemaphoreInfo(policy_semaphore);\n        ResetLinkedListIterator(policy_cache);\n        pPVar2 = (PolicyInfo *)GetNextValueInLinkedList(policy_cache);\n        if (pPVar2 == (PolicyInfo *)0x0) {\n          sVar3 = 0;\n        }\n        else {\n          sVar3 = 0;\n          do {\n            if (pPVar2->stealth == MagickFalse) {\n              MVar1 = GlobExpression(pPVar2->name,pattern,MagickFalse);\n              if (MVar1 != MagickFalse) {\n                ppPVar4[sVar3] = pPVar2;\n                sVar3 = sVar3 + 1;\n              }\n            }\n            pPVar2 = (PolicyInfo *)GetNextValueInLinkedList(policy_cache);\n          } while (pPVar2 != (PolicyInfo *)0x0);\n        }\n        UnlockSemaphoreInfo(policy_semaphore);\n        ppPVar4[sVar3] = (PolicyInfo *)0x0;\n        *number_policies = sVar3;\n      }\n    }\n    return ppPVar4;\n  }" if (parenthesized_expression "(number_policies != (size_t *)0x0)" ( (binary_expression "number_policies != (size_t *)0x0" identifier != (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *number_policies = 0;\n    pPVar2 = GetPolicyInfo("*",exception);\n    if (pPVar2 == (PolicyInfo *)0x0) {\n      ppPVar4 = (PolicyInfo **)0x0;\n    }\n    else {\n      sVar3 = GetNumberOfElementsInLinkedList(policy_cache);\n      ppPVar4 = (PolicyInfo **)AcquireQuantumMemory(sVar3 + 1,8);\n      if (ppPVar4 != (PolicyInfo **)0x0) {\n        LockSemaphoreInfo(policy_semaphore);\n        ResetLinkedListIterator(policy_cache);\n        pPVar2 = (PolicyInfo *)GetNextValueInLinkedList(policy_cache);\n        if (pPVar2 == (PolicyInfo *)0x0) {\n          sVar3 = 0;\n        }\n        else {\n          sVar3 = 0;\n          do {\n            if (pPVar2->stealth == MagickFalse) {\n              MVar1 = GlobExpression(pPVar2->name,pattern,MagickFalse);\n              if (MVar1 != MagickFalse) {\n                ppPVar4[sVar3] = pPVar2;\n                sVar3 = sVar3 + 1;\n              }\n            }\n            pPVar2 = (PolicyInfo *)GetNextValueInLinkedList(policy_cache);\n          } while (pPVar2 != (PolicyInfo *)0x0);\n        }\n        UnlockSemaphoreInfo(policy_semaphore);\n        ppPVar4[sVar3] = (PolicyInfo *)0x0;\n        *number_policies = sVar3;\n      }\n    }\n    return ppPVar4;\n  }" { (expression_statement "*number_policies = 0;" (assignment_expression "*number_policies = 0" (pointer_expression "*number_policies" * identifier) = number_literal) ;) (expression_statement "pPVar2 = GetPolicyInfo("*",exception);" (assignment_expression "pPVar2 = GetPolicyInfo("*",exception)" identifier = (call_expression "GetPolicyInfo("*",exception)" identifier (argument_list "("*",exception)" ( (string_literal ""*"" " string_content ") , identifier )))) ;) (if_statement "if (pPVar2 == (PolicyInfo *)0x0) {\n      ppPVar4 = (PolicyInfo **)0x0;\n    }\n    else {\n      sVar3 = GetNumberOfElementsInLinkedList(policy_cache);\n      ppPVar4 = (PolicyInfo **)AcquireQuantumMemory(sVar3 + 1,8);\n      if (ppPVar4 != (PolicyInfo **)0x0) {\n        LockSemaphoreInfo(policy_semaphore);\n        ResetLinkedListIterator(policy_cache);\n        pPVar2 = (PolicyInfo *)GetNextValueInLinkedList(policy_cache);\n        if (pPVar2 == (PolicyInfo *)0x0) {\n          sVar3 = 0;\n        }\n        else {\n          sVar3 = 0;\n          do {\n            if (pPVar2->stealth == MagickFalse) {\n              MVar1 = GlobExpression(pPVar2->name,pattern,MagickFalse);\n              if (MVar1 != MagickFalse) {\n                ppPVar4[sVar3] = pPVar2;\n                sVar3 = sVar3 + 1;\n              }\n            }\n            pPVar2 = (PolicyInfo *)GetNextValueInLinkedList(policy_cache);\n          } while (pPVar2 != (PolicyInfo *)0x0);\n        }\n        UnlockSemaphoreInfo(policy_semaphore);\n        ppPVar4[sVar3] = (PolicyInfo *)0x0;\n        *number_policies = sVar3;\n      }\n    }" if (parenthesized_expression "(pPVar2 == (PolicyInfo *)0x0)" ( (binary_expression "pPVar2 == (PolicyInfo *)0x0" identifier == (cast_expression "(PolicyInfo *)0x0" ( (type_descriptor "PolicyInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      ppPVar4 = (PolicyInfo **)0x0;\n    }" { (expression_statement "ppPVar4 = (PolicyInfo **)0x0;" (assignment_expression "ppPVar4 = (PolicyInfo **)0x0" identifier = (cast_expression "(PolicyInfo **)0x0" ( (type_descriptor "PolicyInfo **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) }) (else_clause "else {\n      sVar3 = GetNumberOfElementsInLinkedList(policy_cache);\n      ppPVar4 = (PolicyInfo **)AcquireQuantumMemory(sVar3 + 1,8);\n      if (ppPVar4 != (PolicyInfo **)0x0) {\n        LockSemaphoreInfo(policy_semaphore);\n        ResetLinkedListIterator(policy_cache);\n        pPVar2 = (PolicyInfo *)GetNextValueInLinkedList(policy_cache);\n        if (pPVar2 == (PolicyInfo *)0x0) {\n          sVar3 = 0;\n        }\n        else {\n          sVar3 = 0;\n          do {\n            if (pPVar2->stealth == MagickFalse) {\n              MVar1 = GlobExpression(pPVar2->name,pattern,MagickFalse);\n              if (MVar1 != MagickFalse) {\n                ppPVar4[sVar3] = pPVar2;\n                sVar3 = sVar3 + 1;\n              }\n            }\n            pPVar2 = (PolicyInfo *)GetNextValueInLinkedList(policy_cache);\n          } while (pPVar2 != (PolicyInfo *)0x0);\n        }\n        UnlockSemaphoreInfo(policy_semaphore);\n        ppPVar4[sVar3] = (PolicyInfo *)0x0;\n        *number_policies = sVar3;\n      }\n    }" else (compound_statement "{\n      sVar3 = GetNumberOfElementsInLinkedList(policy_cache);\n      ppPVar4 = (PolicyInfo **)AcquireQuantumMemory(sVar3 + 1,8);\n      if (ppPVar4 != (PolicyInfo **)0x0) {\n        LockSemaphoreInfo(policy_semaphore);\n        ResetLinkedListIterator(policy_cache);\n        pPVar2 = (PolicyInfo *)GetNextValueInLinkedList(policy_cache);\n        if (pPVar2 == (PolicyInfo *)0x0) {\n          sVar3 = 0;\n        }\n        else {\n          sVar3 = 0;\n          do {\n            if (pPVar2->stealth == MagickFalse) {\n              MVar1 = GlobExpression(pPVar2->name,pattern,MagickFalse);\n              if (MVar1 != MagickFalse) {\n                ppPVar4[sVar3] = pPVar2;\n                sVar3 = sVar3 + 1;\n              }\n            }\n            pPVar2 = (PolicyInfo *)GetNextValueInLinkedList(policy_cache);\n          } while (pPVar2 != (PolicyInfo *)0x0);\n        }\n        UnlockSemaphoreInfo(policy_semaphore);\n        ppPVar4[sVar3] = (PolicyInfo *)0x0;\n        *number_policies = sVar3;\n      }\n    }" { (expression_statement "sVar3 = GetNumberOfElementsInLinkedList(policy_cache);" (assignment_expression "sVar3 = GetNumberOfElementsInLinkedList(policy_cache)" identifier = (call_expression "GetNumberOfElementsInLinkedList(policy_cache)" identifier (argument_list "(policy_cache)" ( identifier )))) ;) (expression_statement "ppPVar4 = (PolicyInfo **)AcquireQuantumMemory(sVar3 + 1,8);" (assignment_expression "ppPVar4 = (PolicyInfo **)AcquireQuantumMemory(sVar3 + 1,8)" identifier = (cast_expression "(PolicyInfo **)AcquireQuantumMemory(sVar3 + 1,8)" ( (type_descriptor "PolicyInfo **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "AcquireQuantumMemory(sVar3 + 1,8)" identifier (argument_list "(sVar3 + 1,8)" ( (binary_expression "sVar3 + 1" identifier + number_literal) , number_literal ))))) ;) (if_statement "if (ppPVar4 != (PolicyInfo **)0x0) {\n        LockSemaphoreInfo(policy_semaphore);\n        ResetLinkedListIterator(policy_cache);\n        pPVar2 = (PolicyInfo *)GetNextValueInLinkedList(policy_cache);\n        if (pPVar2 == (PolicyInfo *)0x0) {\n          sVar3 = 0;\n        }\n        else {\n          sVar3 = 0;\n          do {\n            if (pPVar2->stealth == MagickFalse) {\n              MVar1 = GlobExpression(pPVar2->name,pattern,MagickFalse);\n              if (MVar1 != MagickFalse) {\n                ppPVar4[sVar3] = pPVar2;\n                sVar3 = sVar3 + 1;\n              }\n            }\n            pPVar2 = (PolicyInfo *)GetNextValueInLinkedList(policy_cache);\n          } while (pPVar2 != (PolicyInfo *)0x0);\n        }\n        UnlockSemaphoreInfo(policy_semaphore);\n        ppPVar4[sVar3] = (PolicyInfo *)0x0;\n        *number_policies = sVar3;\n      }" if (parenthesized_expression "(ppPVar4 != (PolicyInfo **)0x0)" ( (binary_expression "ppPVar4 != (PolicyInfo **)0x0" identifier != (cast_expression "(PolicyInfo **)0x0" ( (type_descriptor "PolicyInfo **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n        LockSemaphoreInfo(policy_semaphore);\n        ResetLinkedListIterator(policy_cache);\n        pPVar2 = (PolicyInfo *)GetNextValueInLinkedList(policy_cache);\n        if (pPVar2 == (PolicyInfo *)0x0) {\n          sVar3 = 0;\n        }\n        else {\n          sVar3 = 0;\n          do {\n            if (pPVar2->stealth == MagickFalse) {\n              MVar1 = GlobExpression(pPVar2->name,pattern,MagickFalse);\n              if (MVar1 != MagickFalse) {\n                ppPVar4[sVar3] = pPVar2;\n                sVar3 = sVar3 + 1;\n              }\n            }\n            pPVar2 = (PolicyInfo *)GetNextValueInLinkedList(policy_cache);\n          } while (pPVar2 != (PolicyInfo *)0x0);\n        }\n        UnlockSemaphoreInfo(policy_semaphore);\n        ppPVar4[sVar3] = (PolicyInfo *)0x0;\n        *number_policies = sVar3;\n      }" { (expression_statement "LockSemaphoreInfo(policy_semaphore);" (call_expression "LockSemaphoreInfo(policy_semaphore)" identifier (argument_list "(policy_semaphore)" ( identifier ))) ;) (expression_statement "ResetLinkedListIterator(policy_cache);" (call_expression "ResetLinkedListIterator(policy_cache)" identifier (argument_list "(policy_cache)" ( identifier ))) ;) (expression_statement "pPVar2 = (PolicyInfo *)GetNextValueInLinkedList(policy_cache);" (assignment_expression "pPVar2 = (PolicyInfo *)GetNextValueInLinkedList(policy_cache)" identifier = (cast_expression "(PolicyInfo *)GetNextValueInLinkedList(policy_cache)" ( (type_descriptor "PolicyInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "GetNextValueInLinkedList(policy_cache)" identifier (argument_list "(policy_cache)" ( identifier ))))) ;) (if_statement "if (pPVar2 == (PolicyInfo *)0x0) {\n          sVar3 = 0;\n        }\n        else {\n          sVar3 = 0;\n          do {\n            if (pPVar2->stealth == MagickFalse) {\n              MVar1 = GlobExpression(pPVar2->name,pattern,MagickFalse);\n              if (MVar1 != MagickFalse) {\n                ppPVar4[sVar3] = pPVar2;\n                sVar3 = sVar3 + 1;\n              }\n            }\n            pPVar2 = (PolicyInfo *)GetNextValueInLinkedList(policy_cache);\n          } while (pPVar2 != (PolicyInfo *)0x0);\n        }" if (parenthesized_expression "(pPVar2 == (PolicyInfo *)0x0)" ( (binary_expression "pPVar2 == (PolicyInfo *)0x0" identifier == (cast_expression "(PolicyInfo *)0x0" ( (type_descriptor "PolicyInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          sVar3 = 0;\n        }" { (expression_statement "sVar3 = 0;" (assignment_expression "sVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          sVar3 = 0;\n          do {\n            if (pPVar2->stealth == MagickFalse) {\n              MVar1 = GlobExpression(pPVar2->name,pattern,MagickFalse);\n              if (MVar1 != MagickFalse) {\n                ppPVar4[sVar3] = pPVar2;\n                sVar3 = sVar3 + 1;\n              }\n            }\n            pPVar2 = (PolicyInfo *)GetNextValueInLinkedList(policy_cache);\n          } while (pPVar2 != (PolicyInfo *)0x0);\n        }" else (compound_statement "{\n          sVar3 = 0;\n          do {\n            if (pPVar2->stealth == MagickFalse) {\n              MVar1 = GlobExpression(pPVar2->name,pattern,MagickFalse);\n              if (MVar1 != MagickFalse) {\n                ppPVar4[sVar3] = pPVar2;\n                sVar3 = sVar3 + 1;\n              }\n            }\n            pPVar2 = (PolicyInfo *)GetNextValueInLinkedList(policy_cache);\n          } while (pPVar2 != (PolicyInfo *)0x0);\n        }" { (expression_statement "sVar3 = 0;" (assignment_expression "sVar3 = 0" identifier = number_literal) ;) (do_statement "do {\n            if (pPVar2->stealth == MagickFalse) {\n              MVar1 = GlobExpression(pPVar2->name,pattern,MagickFalse);\n              if (MVar1 != MagickFalse) {\n                ppPVar4[sVar3] = pPVar2;\n                sVar3 = sVar3 + 1;\n              }\n            }\n            pPVar2 = (PolicyInfo *)GetNextValueInLinkedList(policy_cache);\n          } while (pPVar2 != (PolicyInfo *)0x0);" do (compound_statement "{\n            if (pPVar2->stealth == MagickFalse) {\n              MVar1 = GlobExpression(pPVar2->name,pattern,MagickFalse);\n              if (MVar1 != MagickFalse) {\n                ppPVar4[sVar3] = pPVar2;\n                sVar3 = sVar3 + 1;\n              }\n            }\n            pPVar2 = (PolicyInfo *)GetNextValueInLinkedList(policy_cache);\n          }" { (if_statement "if (pPVar2->stealth == MagickFalse) {\n              MVar1 = GlobExpression(pPVar2->name,pattern,MagickFalse);\n              if (MVar1 != MagickFalse) {\n                ppPVar4[sVar3] = pPVar2;\n                sVar3 = sVar3 + 1;\n              }\n            }" if (parenthesized_expression "(pPVar2->stealth == MagickFalse)" ( (binary_expression "pPVar2->stealth == MagickFalse" (field_expression "pPVar2->stealth" identifier -> field_identifier) == identifier) )) (compound_statement "{\n              MVar1 = GlobExpression(pPVar2->name,pattern,MagickFalse);\n              if (MVar1 != MagickFalse) {\n                ppPVar4[sVar3] = pPVar2;\n                sVar3 = sVar3 + 1;\n              }\n            }" { (expression_statement "MVar1 = GlobExpression(pPVar2->name,pattern,MagickFalse);" (assignment_expression "MVar1 = GlobExpression(pPVar2->name,pattern,MagickFalse)" identifier = (call_expression "GlobExpression(pPVar2->name,pattern,MagickFalse)" identifier (argument_list "(pPVar2->name,pattern,MagickFalse)" ( (field_expression "pPVar2->name" identifier -> field_identifier) , identifier , identifier )))) ;) (if_statement "if (MVar1 != MagickFalse) {\n                ppPVar4[sVar3] = pPVar2;\n                sVar3 = sVar3 + 1;\n              }" if (parenthesized_expression "(MVar1 != MagickFalse)" ( (binary_expression "MVar1 != MagickFalse" identifier != identifier) )) (compound_statement "{\n                ppPVar4[sVar3] = pPVar2;\n                sVar3 = sVar3 + 1;\n              }" { (expression_statement "ppPVar4[sVar3] = pPVar2;" (assignment_expression "ppPVar4[sVar3] = pPVar2" (subscript_expression "ppPVar4[sVar3]" identifier [ identifier ]) = identifier) ;) (expression_statement "sVar3 = sVar3 + 1;" (assignment_expression "sVar3 = sVar3 + 1" identifier = (binary_expression "sVar3 + 1" identifier + number_literal)) ;) })) })) (expression_statement "pPVar2 = (PolicyInfo *)GetNextValueInLinkedList(policy_cache);" (assignment_expression "pPVar2 = (PolicyInfo *)GetNextValueInLinkedList(policy_cache)" identifier = (cast_expression "(PolicyInfo *)GetNextValueInLinkedList(policy_cache)" ( (type_descriptor "PolicyInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "GetNextValueInLinkedList(policy_cache)" identifier (argument_list "(policy_cache)" ( identifier ))))) ;) }) while (parenthesized_expression "(pPVar2 != (PolicyInfo *)0x0)" ( (binary_expression "pPVar2 != (PolicyInfo *)0x0" identifier != (cast_expression "(PolicyInfo *)0x0" ( (type_descriptor "PolicyInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) }))) (expression_statement "UnlockSemaphoreInfo(policy_semaphore);" (call_expression "UnlockSemaphoreInfo(policy_semaphore)" identifier (argument_list "(policy_semaphore)" ( identifier ))) ;) (expression_statement "ppPVar4[sVar3] = (PolicyInfo *)0x0;" (assignment_expression "ppPVar4[sVar3] = (PolicyInfo *)0x0" (subscript_expression "ppPVar4[sVar3]" identifier [ identifier ]) = (cast_expression "(PolicyInfo *)0x0" ( (type_descriptor "PolicyInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*number_policies = sVar3;" (assignment_expression "*number_policies = sVar3" (pointer_expression "*number_policies" * identifier) = identifier) ;) })) }))) (return_statement "return ppPVar4;" return identifier ;) })) comment (expression_statement "__assert_fail("number_policies != (size_t *) NULL","MagickCore/policy.c",0x181,"GetPolicyInfoList"\n               );" (call_expression "__assert_fail("number_policies != (size_t *) NULL","MagickCore/policy.c",0x181,"GetPolicyInfoList"\n               )" identifier (argument_list "("number_policies != (size_t *) NULL","MagickCore/policy.c",0x181,"GetPolicyInfoList"\n               )" ( (string_literal ""number_policies != (size_t *) NULL"" " string_content ") , (string_literal ""MagickCore/policy.c"" " string_content ") , number_literal , (string_literal ""GetPolicyInfoList"" " string_content ") ))) ;) })))
(translation_unit "long GetPolicyInfoList(long param_1,long *param_2,undefined8 param_3)\n\n{\n  int iVar1;\n  long lVar2;\n  long lVar3;\n  long lVar4;\n  \n  if (param_1 == 0) {\n                    \n    __assert_fail("pattern != (char *) NULL","MagickCore/policy.c",0x17f,"GetPolicyInfoList");\n  }\n  LogMagickEvent(0x8000,"MagickCore/policy.c","GetPolicyInfoList",0x180,&DAT_0041fe36,param_1);\n  if (param_2 != (long *)0x0) {\n    *param_2 = 0;\n    lVar2 = FUN_0025a3d5(&DAT_00422be9,param_3);\n    if (lVar2 == 0) {\n      lVar2 = 0;\n    }\n    else {\n      lVar2 = GetNumberOfElementsInLinkedList(DAT_007263c0);\n      lVar2 = AcquireQuantumMemory(lVar2 + 1,8);\n      if (lVar2 != 0) {\n        LockSemaphoreInfo(DAT_007263b8);\n        ResetLinkedListIterator(DAT_007263c0);\n        lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n        if (lVar3 == 0) {\n          lVar4 = 0;\n        }\n        else {\n          lVar4 = 0;\n          do {\n            if (*(int *)(lVar3 + 0x2c) == 0) {\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }\n            lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n          } while (lVar3 != 0);\n        }\n        UnlockSemaphoreInfo(DAT_007263b8);\n        *(undefined8 *)(lVar2 + lVar4 * 8) = 0;\n        *param_2 = lVar4;\n      }\n    }\n    return lVar2;\n  }\n                    \n  __assert_fail("number_policies != (size_t *) NULL","MagickCore/policy.c",0x181,"GetPolicyInfoList"\n               );\n}\n\n" (function_definition "long GetPolicyInfoList(long param_1,long *param_2,undefined8 param_3)\n\n{\n  int iVar1;\n  long lVar2;\n  long lVar3;\n  long lVar4;\n  \n  if (param_1 == 0) {\n                    \n    __assert_fail("pattern != (char *) NULL","MagickCore/policy.c",0x17f,"GetPolicyInfoList");\n  }\n  LogMagickEvent(0x8000,"MagickCore/policy.c","GetPolicyInfoList",0x180,&DAT_0041fe36,param_1);\n  if (param_2 != (long *)0x0) {\n    *param_2 = 0;\n    lVar2 = FUN_0025a3d5(&DAT_00422be9,param_3);\n    if (lVar2 == 0) {\n      lVar2 = 0;\n    }\n    else {\n      lVar2 = GetNumberOfElementsInLinkedList(DAT_007263c0);\n      lVar2 = AcquireQuantumMemory(lVar2 + 1,8);\n      if (lVar2 != 0) {\n        LockSemaphoreInfo(DAT_007263b8);\n        ResetLinkedListIterator(DAT_007263c0);\n        lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n        if (lVar3 == 0) {\n          lVar4 = 0;\n        }\n        else {\n          lVar4 = 0;\n          do {\n            if (*(int *)(lVar3 + 0x2c) == 0) {\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }\n            lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n          } while (lVar3 != 0);\n        }\n        UnlockSemaphoreInfo(DAT_007263b8);\n        *(undefined8 *)(lVar2 + lVar4 * 8) = 0;\n        *param_2 = lVar4;\n      }\n    }\n    return lVar2;\n  }\n                    \n  __assert_fail("number_policies != (size_t *) NULL","MagickCore/policy.c",0x181,"GetPolicyInfoList"\n               );\n}" (sized_type_specifier "long" long) (function_declarator "GetPolicyInfoList(long param_1,long *param_2,undefined8 param_3)" identifier (parameter_list "(long param_1,long *param_2,undefined8 param_3)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long *param_2" (sized_type_specifier "long" long) (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined8 param_3" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  long lVar2;\n  long lVar3;\n  long lVar4;\n  \n  if (param_1 == 0) {\n                    \n    __assert_fail("pattern != (char *) NULL","MagickCore/policy.c",0x17f,"GetPolicyInfoList");\n  }\n  LogMagickEvent(0x8000,"MagickCore/policy.c","GetPolicyInfoList",0x180,&DAT_0041fe36,param_1);\n  if (param_2 != (long *)0x0) {\n    *param_2 = 0;\n    lVar2 = FUN_0025a3d5(&DAT_00422be9,param_3);\n    if (lVar2 == 0) {\n      lVar2 = 0;\n    }\n    else {\n      lVar2 = GetNumberOfElementsInLinkedList(DAT_007263c0);\n      lVar2 = AcquireQuantumMemory(lVar2 + 1,8);\n      if (lVar2 != 0) {\n        LockSemaphoreInfo(DAT_007263b8);\n        ResetLinkedListIterator(DAT_007263c0);\n        lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n        if (lVar3 == 0) {\n          lVar4 = 0;\n        }\n        else {\n          lVar4 = 0;\n          do {\n            if (*(int *)(lVar3 + 0x2c) == 0) {\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }\n            lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n          } while (lVar3 != 0);\n        }\n        UnlockSemaphoreInfo(DAT_007263b8);\n        *(undefined8 *)(lVar2 + lVar4 * 8) = 0;\n        *param_2 = lVar4;\n      }\n    }\n    return lVar2;\n  }\n                    \n  __assert_fail("number_policies != (size_t *) NULL","MagickCore/policy.c",0x181,"GetPolicyInfoList"\n               );\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (if_statement "if (param_1 == 0) {\n                    \n    __assert_fail("pattern != (char *) NULL","MagickCore/policy.c",0x17f,"GetPolicyInfoList");\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    __assert_fail("pattern != (char *) NULL","MagickCore/policy.c",0x17f,"GetPolicyInfoList");\n  }" { (expression_statement "__assert_fail("pattern != (char *) NULL","MagickCore/policy.c",0x17f,"GetPolicyInfoList");" (call_expression "__assert_fail("pattern != (char *) NULL","MagickCore/policy.c",0x17f,"GetPolicyInfoList")" identifier (argument_list "("pattern != (char *) NULL","MagickCore/policy.c",0x17f,"GetPolicyInfoList")" ( (string_literal ""pattern != (char *) NULL"" " string_content ") , (string_literal ""MagickCore/policy.c"" " string_content ") , number_literal , (string_literal ""GetPolicyInfoList"" " string_content ") ))) ;) })) (expression_statement "LogMagickEvent(0x8000,"MagickCore/policy.c","GetPolicyInfoList",0x180,&DAT_0041fe36,param_1);" (call_expression "LogMagickEvent(0x8000,"MagickCore/policy.c","GetPolicyInfoList",0x180,&DAT_0041fe36,param_1)" identifier (argument_list "(0x8000,"MagickCore/policy.c","GetPolicyInfoList",0x180,&DAT_0041fe36,param_1)" ( number_literal , (string_literal ""MagickCore/policy.c"" " string_content ") , (string_literal ""GetPolicyInfoList"" " string_content ") , number_literal , (pointer_expression "&DAT_0041fe36" & identifier) , identifier ))) ;) (if_statement "if (param_2 != (long *)0x0) {\n    *param_2 = 0;\n    lVar2 = FUN_0025a3d5(&DAT_00422be9,param_3);\n    if (lVar2 == 0) {\n      lVar2 = 0;\n    }\n    else {\n      lVar2 = GetNumberOfElementsInLinkedList(DAT_007263c0);\n      lVar2 = AcquireQuantumMemory(lVar2 + 1,8);\n      if (lVar2 != 0) {\n        LockSemaphoreInfo(DAT_007263b8);\n        ResetLinkedListIterator(DAT_007263c0);\n        lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n        if (lVar3 == 0) {\n          lVar4 = 0;\n        }\n        else {\n          lVar4 = 0;\n          do {\n            if (*(int *)(lVar3 + 0x2c) == 0) {\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }\n            lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n          } while (lVar3 != 0);\n        }\n        UnlockSemaphoreInfo(DAT_007263b8);\n        *(undefined8 *)(lVar2 + lVar4 * 8) = 0;\n        *param_2 = lVar4;\n      }\n    }\n    return lVar2;\n  }" if (parenthesized_expression "(param_2 != (long *)0x0)" ( (binary_expression "param_2 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *param_2 = 0;\n    lVar2 = FUN_0025a3d5(&DAT_00422be9,param_3);\n    if (lVar2 == 0) {\n      lVar2 = 0;\n    }\n    else {\n      lVar2 = GetNumberOfElementsInLinkedList(DAT_007263c0);\n      lVar2 = AcquireQuantumMemory(lVar2 + 1,8);\n      if (lVar2 != 0) {\n        LockSemaphoreInfo(DAT_007263b8);\n        ResetLinkedListIterator(DAT_007263c0);\n        lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n        if (lVar3 == 0) {\n          lVar4 = 0;\n        }\n        else {\n          lVar4 = 0;\n          do {\n            if (*(int *)(lVar3 + 0x2c) == 0) {\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }\n            lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n          } while (lVar3 != 0);\n        }\n        UnlockSemaphoreInfo(DAT_007263b8);\n        *(undefined8 *)(lVar2 + lVar4 * 8) = 0;\n        *param_2 = lVar4;\n      }\n    }\n    return lVar2;\n  }" { (expression_statement "*param_2 = 0;" (assignment_expression "*param_2 = 0" (pointer_expression "*param_2" * identifier) = number_literal) ;) (expression_statement "lVar2 = FUN_0025a3d5(&DAT_00422be9,param_3);" (assignment_expression "lVar2 = FUN_0025a3d5(&DAT_00422be9,param_3)" identifier = (call_expression "FUN_0025a3d5(&DAT_00422be9,param_3)" identifier (argument_list "(&DAT_00422be9,param_3)" ( (pointer_expression "&DAT_00422be9" & identifier) , identifier )))) ;) (if_statement "if (lVar2 == 0) {\n      lVar2 = 0;\n    }\n    else {\n      lVar2 = GetNumberOfElementsInLinkedList(DAT_007263c0);\n      lVar2 = AcquireQuantumMemory(lVar2 + 1,8);\n      if (lVar2 != 0) {\n        LockSemaphoreInfo(DAT_007263b8);\n        ResetLinkedListIterator(DAT_007263c0);\n        lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n        if (lVar3 == 0) {\n          lVar4 = 0;\n        }\n        else {\n          lVar4 = 0;\n          do {\n            if (*(int *)(lVar3 + 0x2c) == 0) {\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }\n            lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n          } while (lVar3 != 0);\n        }\n        UnlockSemaphoreInfo(DAT_007263b8);\n        *(undefined8 *)(lVar2 + lVar4 * 8) = 0;\n        *param_2 = lVar4;\n      }\n    }" if (parenthesized_expression "(lVar2 == 0)" ( (binary_expression "lVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      lVar2 = 0;\n    }" { (expression_statement "lVar2 = 0;" (assignment_expression "lVar2 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      lVar2 = GetNumberOfElementsInLinkedList(DAT_007263c0);\n      lVar2 = AcquireQuantumMemory(lVar2 + 1,8);\n      if (lVar2 != 0) {\n        LockSemaphoreInfo(DAT_007263b8);\n        ResetLinkedListIterator(DAT_007263c0);\n        lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n        if (lVar3 == 0) {\n          lVar4 = 0;\n        }\n        else {\n          lVar4 = 0;\n          do {\n            if (*(int *)(lVar3 + 0x2c) == 0) {\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }\n            lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n          } while (lVar3 != 0);\n        }\n        UnlockSemaphoreInfo(DAT_007263b8);\n        *(undefined8 *)(lVar2 + lVar4 * 8) = 0;\n        *param_2 = lVar4;\n      }\n    }" else (compound_statement "{\n      lVar2 = GetNumberOfElementsInLinkedList(DAT_007263c0);\n      lVar2 = AcquireQuantumMemory(lVar2 + 1,8);\n      if (lVar2 != 0) {\n        LockSemaphoreInfo(DAT_007263b8);\n        ResetLinkedListIterator(DAT_007263c0);\n        lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n        if (lVar3 == 0) {\n          lVar4 = 0;\n        }\n        else {\n          lVar4 = 0;\n          do {\n            if (*(int *)(lVar3 + 0x2c) == 0) {\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }\n            lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n          } while (lVar3 != 0);\n        }\n        UnlockSemaphoreInfo(DAT_007263b8);\n        *(undefined8 *)(lVar2 + lVar4 * 8) = 0;\n        *param_2 = lVar4;\n      }\n    }" { (expression_statement "lVar2 = GetNumberOfElementsInLinkedList(DAT_007263c0);" (assignment_expression "lVar2 = GetNumberOfElementsInLinkedList(DAT_007263c0)" identifier = (call_expression "GetNumberOfElementsInLinkedList(DAT_007263c0)" identifier (argument_list "(DAT_007263c0)" ( identifier )))) ;) (expression_statement "lVar2 = AcquireQuantumMemory(lVar2 + 1,8);" (assignment_expression "lVar2 = AcquireQuantumMemory(lVar2 + 1,8)" identifier = (call_expression "AcquireQuantumMemory(lVar2 + 1,8)" identifier (argument_list "(lVar2 + 1,8)" ( (binary_expression "lVar2 + 1" identifier + number_literal) , number_literal )))) ;) (if_statement "if (lVar2 != 0) {\n        LockSemaphoreInfo(DAT_007263b8);\n        ResetLinkedListIterator(DAT_007263c0);\n        lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n        if (lVar3 == 0) {\n          lVar4 = 0;\n        }\n        else {\n          lVar4 = 0;\n          do {\n            if (*(int *)(lVar3 + 0x2c) == 0) {\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }\n            lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n          } while (lVar3 != 0);\n        }\n        UnlockSemaphoreInfo(DAT_007263b8);\n        *(undefined8 *)(lVar2 + lVar4 * 8) = 0;\n        *param_2 = lVar4;\n      }" if (parenthesized_expression "(lVar2 != 0)" ( (binary_expression "lVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        LockSemaphoreInfo(DAT_007263b8);\n        ResetLinkedListIterator(DAT_007263c0);\n        lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n        if (lVar3 == 0) {\n          lVar4 = 0;\n        }\n        else {\n          lVar4 = 0;\n          do {\n            if (*(int *)(lVar3 + 0x2c) == 0) {\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }\n            lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n          } while (lVar3 != 0);\n        }\n        UnlockSemaphoreInfo(DAT_007263b8);\n        *(undefined8 *)(lVar2 + lVar4 * 8) = 0;\n        *param_2 = lVar4;\n      }" { (expression_statement "LockSemaphoreInfo(DAT_007263b8);" (call_expression "LockSemaphoreInfo(DAT_007263b8)" identifier (argument_list "(DAT_007263b8)" ( identifier ))) ;) (expression_statement "ResetLinkedListIterator(DAT_007263c0);" (call_expression "ResetLinkedListIterator(DAT_007263c0)" identifier (argument_list "(DAT_007263c0)" ( identifier ))) ;) (expression_statement "lVar3 = GetNextValueInLinkedList(DAT_007263c0);" (assignment_expression "lVar3 = GetNextValueInLinkedList(DAT_007263c0)" identifier = (call_expression "GetNextValueInLinkedList(DAT_007263c0)" identifier (argument_list "(DAT_007263c0)" ( identifier )))) ;) (if_statement "if (lVar3 == 0) {\n          lVar4 = 0;\n        }\n        else {\n          lVar4 = 0;\n          do {\n            if (*(int *)(lVar3 + 0x2c) == 0) {\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }\n            lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n          } while (lVar3 != 0);\n        }" if (parenthesized_expression "(lVar3 == 0)" ( (binary_expression "lVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          lVar4 = 0;\n        }" { (expression_statement "lVar4 = 0;" (assignment_expression "lVar4 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          lVar4 = 0;\n          do {\n            if (*(int *)(lVar3 + 0x2c) == 0) {\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }\n            lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n          } while (lVar3 != 0);\n        }" else (compound_statement "{\n          lVar4 = 0;\n          do {\n            if (*(int *)(lVar3 + 0x2c) == 0) {\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }\n            lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n          } while (lVar3 != 0);\n        }" { (expression_statement "lVar4 = 0;" (assignment_expression "lVar4 = 0" identifier = number_literal) ;) (do_statement "do {\n            if (*(int *)(lVar3 + 0x2c) == 0) {\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }\n            lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n          } while (lVar3 != 0);" do (compound_statement "{\n            if (*(int *)(lVar3 + 0x2c) == 0) {\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }\n            lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n          }" { (if_statement "if (*(int *)(lVar3 + 0x2c) == 0) {\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }" if (parenthesized_expression "(*(int *)(lVar3 + 0x2c) == 0)" ( (binary_expression "*(int *)(lVar3 + 0x2c) == 0" (pointer_expression "*(int *)(lVar3 + 0x2c)" * (cast_expression "(int *)(lVar3 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x2c)" ( (binary_expression "lVar3 + 0x2c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }" { (expression_statement "iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);" (assignment_expression "iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0)" identifier = (call_expression "GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0)" identifier (argument_list "(*(undefined8 *)(lVar3 + 0x10),param_1,0)" ( (pointer_expression "*(undefined8 *)(lVar3 + 0x10)" * (cast_expression "(undefined8 *)(lVar3 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0x10)" ( (binary_expression "lVar3 + 0x10" identifier + number_literal) )))) , identifier , number_literal )))) ;) (if_statement "if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }" { (expression_statement "*(long *)(lVar2 + lVar4 * 8) = lVar3;" (assignment_expression "*(long *)(lVar2 + lVar4 * 8) = lVar3" (pointer_expression "*(long *)(lVar2 + lVar4 * 8)" * (cast_expression "(long *)(lVar2 + lVar4 * 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + lVar4 * 8)" ( (binary_expression "lVar2 + lVar4 * 8" identifier + (binary_expression "lVar4 * 8" identifier * number_literal)) )))) = identifier) ;) (expression_statement "lVar4 = lVar4 + 1;" (assignment_expression "lVar4 = lVar4 + 1" identifier = (binary_expression "lVar4 + 1" identifier + number_literal)) ;) })) })) (expression_statement "lVar3 = GetNextValueInLinkedList(DAT_007263c0);" (assignment_expression "lVar3 = GetNextValueInLinkedList(DAT_007263c0)" identifier = (call_expression "GetNextValueInLinkedList(DAT_007263c0)" identifier (argument_list "(DAT_007263c0)" ( identifier )))) ;) }) while (parenthesized_expression "(lVar3 != 0)" ( (binary_expression "lVar3 != 0" identifier != number_literal) )) ;) }))) (expression_statement "UnlockSemaphoreInfo(DAT_007263b8);" (call_expression "UnlockSemaphoreInfo(DAT_007263b8)" identifier (argument_list "(DAT_007263b8)" ( identifier ))) ;) (expression_statement "*(undefined8 *)(lVar2 + lVar4 * 8) = 0;" (assignment_expression "*(undefined8 *)(lVar2 + lVar4 * 8) = 0" (pointer_expression "*(undefined8 *)(lVar2 + lVar4 * 8)" * (cast_expression "(undefined8 *)(lVar2 + lVar4 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + lVar4 * 8)" ( (binary_expression "lVar2 + lVar4 * 8" identifier + (binary_expression "lVar4 * 8" identifier * number_literal)) )))) = number_literal) ;) (expression_statement "*param_2 = lVar4;" (assignment_expression "*param_2 = lVar4" (pointer_expression "*param_2" * identifier) = identifier) ;) })) }))) (return_statement "return lVar2;" return identifier ;) })) (expression_statement "__assert_fail("number_policies != (size_t *) NULL","MagickCore/policy.c",0x181,"GetPolicyInfoList"\n               );" (call_expression "__assert_fail("number_policies != (size_t *) NULL","MagickCore/policy.c",0x181,"GetPolicyInfoList"\n               )" identifier (argument_list "("number_policies != (size_t *) NULL","MagickCore/policy.c",0x181,"GetPolicyInfoList"\n               )" ( (string_literal ""number_policies != (size_t *) NULL"" " string_content ") , (string_literal ""MagickCore/policy.c"" " string_content ") , number_literal , (string_literal ""GetPolicyInfoList"" " string_content ") ))) ;) })))
(translation_unit (function_definition (sized_type_specifier long) (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , (string_literal " string_content ") , LIT , (pointer_expression & IDENT) , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT )))) ;) (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 ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) }))) (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })))
(function_definition "long GetPolicyInfoList(long param_1,long *param_2,undefined8 param_3)\n\n{\n  int iVar1;\n  long lVar2;\n  long lVar3;\n  long lVar4;\n  \n  if (param_1 == 0) {\n                    \n    __assert_fail("pattern != (char *) NULL","MagickCore/policy.c",0x17f,"GetPolicyInfoList");\n  }\n  LogMagickEvent(0x8000,"MagickCore/policy.c","GetPolicyInfoList",0x180,&DAT_0041fe36,param_1);\n  if (param_2 != (long *)0x0) {\n    *param_2 = 0;\n    lVar2 = FUN_0025a3d5(&DAT_00422be9,param_3);\n    if (lVar2 == 0) {\n      lVar2 = 0;\n    }\n    else {\n      lVar2 = GetNumberOfElementsInLinkedList(DAT_007263c0);\n      lVar2 = AcquireQuantumMemory(lVar2 + 1,8);\n      if (lVar2 != 0) {\n        LockSemaphoreInfo(DAT_007263b8);\n        ResetLinkedListIterator(DAT_007263c0);\n        lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n        if (lVar3 == 0) {\n          lVar4 = 0;\n        }\n        else {\n          lVar4 = 0;\n          do {\n            if (*(int *)(lVar3 + 0x2c) == 0) {\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }\n            lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n          } while (lVar3 != 0);\n        }\n        UnlockSemaphoreInfo(DAT_007263b8);\n        *(undefined8 *)(lVar2 + lVar4 * 8) = 0;\n        *param_2 = lVar4;\n      }\n    }\n    return lVar2;\n  }\n                    \n  __assert_fail("number_policies != (size_t *) NULL","MagickCore/policy.c",0x181,"GetPolicyInfoList"\n               );\n}" (sized_type_specifier "long" (long "long")) (function_declarator "GetPolicyInfoList(long param_1,long *param_2,undefined8 param_3)" (identifier "GetPolicyInfoList") (parameter_list "(long param_1,long *param_2,undefined8 param_3)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "long *param_2" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "undefined8 param_3" (type_identifier "undefined8") (identifier "param_3")) () ")"))) (compound_statement "{\n  int iVar1;\n  long lVar2;\n  long lVar3;\n  long lVar4;\n  \n  if (param_1 == 0) {\n                    \n    __assert_fail("pattern != (char *) NULL","MagickCore/policy.c",0x17f,"GetPolicyInfoList");\n  }\n  LogMagickEvent(0x8000,"MagickCore/policy.c","GetPolicyInfoList",0x180,&DAT_0041fe36,param_1);\n  if (param_2 != (long *)0x0) {\n    *param_2 = 0;\n    lVar2 = FUN_0025a3d5(&DAT_00422be9,param_3);\n    if (lVar2 == 0) {\n      lVar2 = 0;\n    }\n    else {\n      lVar2 = GetNumberOfElementsInLinkedList(DAT_007263c0);\n      lVar2 = AcquireQuantumMemory(lVar2 + 1,8);\n      if (lVar2 != 0) {\n        LockSemaphoreInfo(DAT_007263b8);\n        ResetLinkedListIterator(DAT_007263c0);\n        lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n        if (lVar3 == 0) {\n          lVar4 = 0;\n        }\n        else {\n          lVar4 = 0;\n          do {\n            if (*(int *)(lVar3 + 0x2c) == 0) {\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }\n            lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n          } while (lVar3 != 0);\n        }\n        UnlockSemaphoreInfo(DAT_007263b8);\n        *(undefined8 *)(lVar2 + lVar4 * 8) = 0;\n        *param_2 = lVar4;\n      }\n    }\n    return lVar2;\n  }\n                    \n  __assert_fail("number_policies != (size_t *) NULL","MagickCore/policy.c",0x181,"GetPolicyInfoList"\n               );\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "long lVar2;" (sized_type_specifier "long" (long "long")) (identifier "lVar2") (; ";")) (declaration "long lVar3;" (sized_type_specifier "long" (long "long")) (identifier "lVar3") (; ";")) (declaration "long lVar4;" (sized_type_specifier "long" (long "long")) (identifier "lVar4") (; ";")) (if_statement "if (param_1 == 0) {\n                    \n    __assert_fail("pattern != (char *) NULL","MagickCore/policy.c",0x17f,"GetPolicyInfoList");\n  }" (if "if") (parenthesized_expression "(param_1 == 0)" (( "(") (binary_expression "param_1 == 0" (identifier "param_1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    __assert_fail("pattern != (char *) NULL","MagickCore/policy.c",0x17f,"GetPolicyInfoList");\n  }" ({ "{") (expression_statement "__assert_fail("pattern != (char *) NULL","MagickCore/policy.c",0x17f,"GetPolicyInfoList");" (call_expression "__assert_fail("pattern != (char *) NULL","MagickCore/policy.c",0x17f,"GetPolicyInfoList")" (identifier "__assert_fail") (argument_list "("pattern != (char *) NULL","MagickCore/policy.c",0x17f,"GetPolicyInfoList")" (( "(") (string_literal ""pattern != (char *) NULL"" (" """) (string_content "pattern != (char *) NULL") (" """)) (, ",") (string_literal ""MagickCore/policy.c"" (" """) (string_content "MagickCore/policy.c") (" """)) (, ",") (number_literal "0x17f") (, ",") (string_literal ""GetPolicyInfoList"" (" """) (string_content "GetPolicyInfoList") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "LogMagickEvent(0x8000,"MagickCore/policy.c","GetPolicyInfoList",0x180,&DAT_0041fe36,param_1);" (call_expression "LogMagickEvent(0x8000,"MagickCore/policy.c","GetPolicyInfoList",0x180,&DAT_0041fe36,param_1)" (identifier "LogMagickEvent") (argument_list "(0x8000,"MagickCore/policy.c","GetPolicyInfoList",0x180,&DAT_0041fe36,param_1)" (( "(") (number_literal "0x8000") (, ",") (string_literal ""MagickCore/policy.c"" (" """) (string_content "MagickCore/policy.c") (" """)) (, ",") (string_literal ""GetPolicyInfoList"" (" """) (string_content "GetPolicyInfoList") (" """)) (, ",") (number_literal "0x180") (, ",") (pointer_expression "&DAT_0041fe36" (& "&") (identifier "DAT_0041fe36")) (, ",") (identifier "param_1") () ")"))) (; ";")) (if_statement "if (param_2 != (long *)0x0) {\n    *param_2 = 0;\n    lVar2 = FUN_0025a3d5(&DAT_00422be9,param_3);\n    if (lVar2 == 0) {\n      lVar2 = 0;\n    }\n    else {\n      lVar2 = GetNumberOfElementsInLinkedList(DAT_007263c0);\n      lVar2 = AcquireQuantumMemory(lVar2 + 1,8);\n      if (lVar2 != 0) {\n        LockSemaphoreInfo(DAT_007263b8);\n        ResetLinkedListIterator(DAT_007263c0);\n        lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n        if (lVar3 == 0) {\n          lVar4 = 0;\n        }\n        else {\n          lVar4 = 0;\n          do {\n            if (*(int *)(lVar3 + 0x2c) == 0) {\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }\n            lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n          } while (lVar3 != 0);\n        }\n        UnlockSemaphoreInfo(DAT_007263b8);\n        *(undefined8 *)(lVar2 + lVar4 * 8) = 0;\n        *param_2 = lVar4;\n      }\n    }\n    return lVar2;\n  }" (if "if") (parenthesized_expression "(param_2 != (long *)0x0)" (( "(") (binary_expression "param_2 != (long *)0x0" (identifier "param_2") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    *param_2 = 0;\n    lVar2 = FUN_0025a3d5(&DAT_00422be9,param_3);\n    if (lVar2 == 0) {\n      lVar2 = 0;\n    }\n    else {\n      lVar2 = GetNumberOfElementsInLinkedList(DAT_007263c0);\n      lVar2 = AcquireQuantumMemory(lVar2 + 1,8);\n      if (lVar2 != 0) {\n        LockSemaphoreInfo(DAT_007263b8);\n        ResetLinkedListIterator(DAT_007263c0);\n        lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n        if (lVar3 == 0) {\n          lVar4 = 0;\n        }\n        else {\n          lVar4 = 0;\n          do {\n            if (*(int *)(lVar3 + 0x2c) == 0) {\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }\n            lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n          } while (lVar3 != 0);\n        }\n        UnlockSemaphoreInfo(DAT_007263b8);\n        *(undefined8 *)(lVar2 + lVar4 * 8) = 0;\n        *param_2 = lVar4;\n      }\n    }\n    return lVar2;\n  }" ({ "{") (expression_statement "*param_2 = 0;" (assignment_expression "*param_2 = 0" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (number_literal "0")) (; ";")) (expression_statement "lVar2 = FUN_0025a3d5(&DAT_00422be9,param_3);" (assignment_expression "lVar2 = FUN_0025a3d5(&DAT_00422be9,param_3)" (identifier "lVar2") (= "=") (call_expression "FUN_0025a3d5(&DAT_00422be9,param_3)" (identifier "FUN_0025a3d5") (argument_list "(&DAT_00422be9,param_3)" (( "(") (pointer_expression "&DAT_00422be9" (& "&") (identifier "DAT_00422be9")) (, ",") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (lVar2 == 0) {\n      lVar2 = 0;\n    }\n    else {\n      lVar2 = GetNumberOfElementsInLinkedList(DAT_007263c0);\n      lVar2 = AcquireQuantumMemory(lVar2 + 1,8);\n      if (lVar2 != 0) {\n        LockSemaphoreInfo(DAT_007263b8);\n        ResetLinkedListIterator(DAT_007263c0);\n        lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n        if (lVar3 == 0) {\n          lVar4 = 0;\n        }\n        else {\n          lVar4 = 0;\n          do {\n            if (*(int *)(lVar3 + 0x2c) == 0) {\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }\n            lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n          } while (lVar3 != 0);\n        }\n        UnlockSemaphoreInfo(DAT_007263b8);\n        *(undefined8 *)(lVar2 + lVar4 * 8) = 0;\n        *param_2 = lVar4;\n      }\n    }" (if "if") (parenthesized_expression "(lVar2 == 0)" (( "(") (binary_expression "lVar2 == 0" (identifier "lVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      lVar2 = 0;\n    }" ({ "{") (expression_statement "lVar2 = 0;" (assignment_expression "lVar2 = 0" (identifier "lVar2") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      lVar2 = GetNumberOfElementsInLinkedList(DAT_007263c0);\n      lVar2 = AcquireQuantumMemory(lVar2 + 1,8);\n      if (lVar2 != 0) {\n        LockSemaphoreInfo(DAT_007263b8);\n        ResetLinkedListIterator(DAT_007263c0);\n        lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n        if (lVar3 == 0) {\n          lVar4 = 0;\n        }\n        else {\n          lVar4 = 0;\n          do {\n            if (*(int *)(lVar3 + 0x2c) == 0) {\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }\n            lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n          } while (lVar3 != 0);\n        }\n        UnlockSemaphoreInfo(DAT_007263b8);\n        *(undefined8 *)(lVar2 + lVar4 * 8) = 0;\n        *param_2 = lVar4;\n      }\n    }" (else "else") (compound_statement "{\n      lVar2 = GetNumberOfElementsInLinkedList(DAT_007263c0);\n      lVar2 = AcquireQuantumMemory(lVar2 + 1,8);\n      if (lVar2 != 0) {\n        LockSemaphoreInfo(DAT_007263b8);\n        ResetLinkedListIterator(DAT_007263c0);\n        lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n        if (lVar3 == 0) {\n          lVar4 = 0;\n        }\n        else {\n          lVar4 = 0;\n          do {\n            if (*(int *)(lVar3 + 0x2c) == 0) {\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }\n            lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n          } while (lVar3 != 0);\n        }\n        UnlockSemaphoreInfo(DAT_007263b8);\n        *(undefined8 *)(lVar2 + lVar4 * 8) = 0;\n        *param_2 = lVar4;\n      }\n    }" ({ "{") (expression_statement "lVar2 = GetNumberOfElementsInLinkedList(DAT_007263c0);" (assignment_expression "lVar2 = GetNumberOfElementsInLinkedList(DAT_007263c0)" (identifier "lVar2") (= "=") (call_expression "GetNumberOfElementsInLinkedList(DAT_007263c0)" (identifier "GetNumberOfElementsInLinkedList") (argument_list "(DAT_007263c0)" (( "(") (identifier "DAT_007263c0") () ")")))) (; ";")) (expression_statement "lVar2 = AcquireQuantumMemory(lVar2 + 1,8);" (assignment_expression "lVar2 = AcquireQuantumMemory(lVar2 + 1,8)" (identifier "lVar2") (= "=") (call_expression "AcquireQuantumMemory(lVar2 + 1,8)" (identifier "AcquireQuantumMemory") (argument_list "(lVar2 + 1,8)" (( "(") (binary_expression "lVar2 + 1" (identifier "lVar2") (+ "+") (number_literal "1")) (, ",") (number_literal "8") () ")")))) (; ";")) (if_statement "if (lVar2 != 0) {\n        LockSemaphoreInfo(DAT_007263b8);\n        ResetLinkedListIterator(DAT_007263c0);\n        lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n        if (lVar3 == 0) {\n          lVar4 = 0;\n        }\n        else {\n          lVar4 = 0;\n          do {\n            if (*(int *)(lVar3 + 0x2c) == 0) {\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }\n            lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n          } while (lVar3 != 0);\n        }\n        UnlockSemaphoreInfo(DAT_007263b8);\n        *(undefined8 *)(lVar2 + lVar4 * 8) = 0;\n        *param_2 = lVar4;\n      }" (if "if") (parenthesized_expression "(lVar2 != 0)" (( "(") (binary_expression "lVar2 != 0" (identifier "lVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        LockSemaphoreInfo(DAT_007263b8);\n        ResetLinkedListIterator(DAT_007263c0);\n        lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n        if (lVar3 == 0) {\n          lVar4 = 0;\n        }\n        else {\n          lVar4 = 0;\n          do {\n            if (*(int *)(lVar3 + 0x2c) == 0) {\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }\n            lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n          } while (lVar3 != 0);\n        }\n        UnlockSemaphoreInfo(DAT_007263b8);\n        *(undefined8 *)(lVar2 + lVar4 * 8) = 0;\n        *param_2 = lVar4;\n      }" ({ "{") (expression_statement "LockSemaphoreInfo(DAT_007263b8);" (call_expression "LockSemaphoreInfo(DAT_007263b8)" (identifier "LockSemaphoreInfo") (argument_list "(DAT_007263b8)" (( "(") (identifier "DAT_007263b8") () ")"))) (; ";")) (expression_statement "ResetLinkedListIterator(DAT_007263c0);" (call_expression "ResetLinkedListIterator(DAT_007263c0)" (identifier "ResetLinkedListIterator") (argument_list "(DAT_007263c0)" (( "(") (identifier "DAT_007263c0") () ")"))) (; ";")) (expression_statement "lVar3 = GetNextValueInLinkedList(DAT_007263c0);" (assignment_expression "lVar3 = GetNextValueInLinkedList(DAT_007263c0)" (identifier "lVar3") (= "=") (call_expression "GetNextValueInLinkedList(DAT_007263c0)" (identifier "GetNextValueInLinkedList") (argument_list "(DAT_007263c0)" (( "(") (identifier "DAT_007263c0") () ")")))) (; ";")) (if_statement "if (lVar3 == 0) {\n          lVar4 = 0;\n        }\n        else {\n          lVar4 = 0;\n          do {\n            if (*(int *)(lVar3 + 0x2c) == 0) {\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }\n            lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n          } while (lVar3 != 0);\n        }" (if "if") (parenthesized_expression "(lVar3 == 0)" (( "(") (binary_expression "lVar3 == 0" (identifier "lVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          lVar4 = 0;\n        }" ({ "{") (expression_statement "lVar4 = 0;" (assignment_expression "lVar4 = 0" (identifier "lVar4") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n          lVar4 = 0;\n          do {\n            if (*(int *)(lVar3 + 0x2c) == 0) {\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }\n            lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n          } while (lVar3 != 0);\n        }" (else "else") (compound_statement "{\n          lVar4 = 0;\n          do {\n            if (*(int *)(lVar3 + 0x2c) == 0) {\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }\n            lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n          } while (lVar3 != 0);\n        }" ({ "{") (expression_statement "lVar4 = 0;" (assignment_expression "lVar4 = 0" (identifier "lVar4") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n            if (*(int *)(lVar3 + 0x2c) == 0) {\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }\n            lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n          } while (lVar3 != 0);" (do "do") (compound_statement "{\n            if (*(int *)(lVar3 + 0x2c) == 0) {\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }\n            lVar3 = GetNextValueInLinkedList(DAT_007263c0);\n          }" ({ "{") (if_statement "if (*(int *)(lVar3 + 0x2c) == 0) {\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }" (if "if") (parenthesized_expression "(*(int *)(lVar3 + 0x2c) == 0)" (( "(") (binary_expression "*(int *)(lVar3 + 0x2c) == 0" (pointer_expression "*(int *)(lVar3 + 0x2c)" (* "*") (cast_expression "(int *)(lVar3 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0x2c)" (( "(") (binary_expression "lVar3 + 0x2c" (identifier "lVar3") (+ "+") (number_literal "0x2c")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);\n              if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }\n            }" ({ "{") (expression_statement "iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);" (assignment_expression "iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0)" (identifier "iVar1") (= "=") (call_expression "GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0)" (identifier "GlobExpression") (argument_list "(*(undefined8 *)(lVar3 + 0x10),param_1,0)" (( "(") (pointer_expression "*(undefined8 *)(lVar3 + 0x10)" (* "*") (cast_expression "(undefined8 *)(lVar3 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0x10)" (( "(") (binary_expression "lVar3 + 0x10" (identifier "lVar3") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (identifier "param_1") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar1 != 0) {\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                *(long *)(lVar2 + lVar4 * 8) = lVar3;\n                lVar4 = lVar4 + 1;\n              }" ({ "{") (expression_statement "*(long *)(lVar2 + lVar4 * 8) = lVar3;" (assignment_expression "*(long *)(lVar2 + lVar4 * 8) = lVar3" (pointer_expression "*(long *)(lVar2 + lVar4 * 8)" (* "*") (cast_expression "(long *)(lVar2 + lVar4 * 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + lVar4 * 8)" (( "(") (binary_expression "lVar2 + lVar4 * 8" (identifier "lVar2") (+ "+") (binary_expression "lVar4 * 8" (identifier "lVar4") (* "*") (number_literal "8"))) () ")")))) (= "=") (identifier "lVar3")) (; ";")) (expression_statement "lVar4 = lVar4 + 1;" (assignment_expression "lVar4 = lVar4 + 1" (identifier "lVar4") (= "=") (binary_expression "lVar4 + 1" (identifier "lVar4") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "lVar3 = GetNextValueInLinkedList(DAT_007263c0);" (assignment_expression "lVar3 = GetNextValueInLinkedList(DAT_007263c0)" (identifier "lVar3") (= "=") (call_expression "GetNextValueInLinkedList(DAT_007263c0)" (identifier "GetNextValueInLinkedList") (argument_list "(DAT_007263c0)" (( "(") (identifier "DAT_007263c0") () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(lVar3 != 0)" (( "(") (binary_expression "lVar3 != 0" (identifier "lVar3") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}")))) (expression_statement "UnlockSemaphoreInfo(DAT_007263b8);" (call_expression "UnlockSemaphoreInfo(DAT_007263b8)" (identifier "UnlockSemaphoreInfo") (argument_list "(DAT_007263b8)" (( "(") (identifier "DAT_007263b8") () ")"))) (; ";")) (expression_statement "*(undefined8 *)(lVar2 + lVar4 * 8) = 0;" (assignment_expression "*(undefined8 *)(lVar2 + lVar4 * 8) = 0" (pointer_expression "*(undefined8 *)(lVar2 + lVar4 * 8)" (* "*") (cast_expression "(undefined8 *)(lVar2 + lVar4 * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + lVar4 * 8)" (( "(") (binary_expression "lVar2 + lVar4 * 8" (identifier "lVar2") (+ "+") (binary_expression "lVar4 * 8" (identifier "lVar4") (* "*") (number_literal "8"))) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_2 = lVar4;" (assignment_expression "*param_2 = lVar4" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (identifier "lVar4")) (; ";")) (} "}"))) (} "}")))) (return_statement "return lVar2;" (return "return") (identifier "lVar2") (; ";")) (} "}"))) (expression_statement "__assert_fail("number_policies != (size_t *) NULL","MagickCore/policy.c",0x181,"GetPolicyInfoList"\n               );" (call_expression "__assert_fail("number_policies != (size_t *) NULL","MagickCore/policy.c",0x181,"GetPolicyInfoList"\n               )" (identifier "__assert_fail") (argument_list "("number_policies != (size_t *) NULL","MagickCore/policy.c",0x181,"GetPolicyInfoList"\n               )" (( "(") (string_literal ""number_policies != (size_t *) NULL"" (" """) (string_content "number_policies != (size_t *) NULL") (" """)) (, ",") (string_literal ""MagickCore/policy.c"" (" """) (string_content "MagickCore/policy.c") (" """)) (, ",") (number_literal "0x181") (, ",") (string_literal ""GetPolicyInfoList"" (" """) (string_content "GetPolicyInfoList") (" """)) () ")"))) (; ";")) (} "}")))

/* WARNING: Enum "ExceptionType": Some values do not have unique names */
/* WARNING: Enum "PolicyRights": Some values do not have unique names */
/* WARNING: Enum "LogEventType": Some values do not have unique names */

type_1 ** function_1(char *var_1,size_t *var_4,type_2 *exception)

{
  type_3 var_16;
  type_1 *var_6;
  size_t var_9;
  type_1 **var_10;
  
  if (var_1 == (char *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_2("pattern != (char *) NULL","MagickCore/policy.c",0x17f,"GetPolicyInfoList");
  }
  var_3(TraceEvent,"MagickCore/policy.c","GetPolicyInfoList",0x180,"%s",var_1);
  if (var_4 != (size_t *)0x0) {
    *var_4 = 0;
    var_6 = var_5("*",exception);
    if (var_6 == (type_1 *)0x0) {
      var_10 = (type_1 **)0x0;
    }
    else {
      var_9 = var_7(policy_cache);
      var_10 = (type_1 **)var_8(var_9 + 1,8);
      if (var_10 != (type_1 **)0x0) {
        var_11(policy_semaphore);
        var_12(policy_cache);
        var_6 = (type_1 *)var_13(policy_cache);
        if (var_6 == (type_1 *)0x0) {
          var_9 = 0;
        }
        else {
          var_9 = 0;
          do {
            if (var_6->stealth == var_14) {
              var_16 = var_15(var_6->name,var_1,var_14);
              if (var_16 != var_14) {
                var_10[var_9] = var_6;
                var_9 = var_9 + 1;
              }
            }
            var_6 = (type_1 *)var_13(policy_cache);
          } while (var_6 != (type_1 *)0x0);
        }
        var_17(policy_semaphore);
        var_10[var_9] = (type_1 *)0x0;
        *var_4 = var_9;
      }
    }
    return var_10;
  }
                    /* WARNING: Subroutine does not return */
  var_2("number_policies != (size_t *) NULL","MagickCore/policy.c",0x181,"GetPolicyInfoList"
               );
}


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

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

{
  int iVar1;
  long lVar2;
  long lVar3;
  long lVar4;
  
  if (param_1 == 0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("pattern != (char *) NULL","MagickCore/policy.c",0x17f,"MASKED");
  }
  LogMagickEvent(0x8000,"MagickCore/policy.c","MASKED",0x180,&DAT_0041fe36,param_1);
  if (param_2 != (long *)0x0) {
    *param_2 = 0;
    lVar2 = FUN_0025a3d5(&DAT_00422be9,param_3);
    if (lVar2 == 0) {
      lVar2 = 0;
    }
    else {
      lVar2 = GetNumberOfElementsInLinkedList(DAT_007263c0);
      lVar2 = AcquireQuantumMemory(lVar2 + 1,8);
      if (lVar2 != 0) {
        LockSemaphoreInfo(DAT_007263b8);
        ResetLinkedListIterator(DAT_007263c0);
        lVar3 = GetNextValueInLinkedList(DAT_007263c0);
        if (lVar3 == 0) {
          lVar4 = 0;
        }
        else {
          lVar4 = 0;
          do {
            if (*(int *)(lVar3 + 0x2c) == 0) {
              iVar1 = GlobExpression(*(undefined8 *)(lVar3 + 0x10),param_1,0);
              if (iVar1 != 0) {
                *(long *)(lVar2 + lVar4 * 8) = lVar3;
                lVar4 = lVar4 + 1;
              }
            }
            lVar3 = GetNextValueInLinkedList(DAT_007263c0);
          } while (lVar3 != 0);
        }
        UnlockSemaphoreInfo(DAT_007263b8);
        *(undefined8 *)(lVar2 + lVar4 * 8) = 0;
        *param_2 = lVar4;
      }
    }
    return lVar2;
  }
                    /* WARNING: Subroutine does not return */
  __assert_fail("number_policies != (size_t *) NULL","MagickCore/policy.c",0x181,"MASKED"
               );
}

