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

MagickBooleanType
GetOneCacheViewVirtualPixel
          (CacheView *cache_view,ssize_t x,ssize_t y,Quantum *pixel,ExceptionInfo *exception)

{
  PixelChannelMap *pPVar1;
  MagickRealType MVar2;
  MagickRealType MVar3;
  MagickRealType MVar4;
  MagickRealType MVar5;
  size_t sVar6;
  Image *pIVar7;
  PixelChannel *pPVar8;
  int iVar9;
  Quantum *pQVar10;
  int iVar11;
  PixelChannelMap *pPVar12;
  byte bVar13;
  
  bVar13 = 0;
  iVar9 = omp_get_thread_num();
  if (cache_view == (CacheView *)0x0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("cache_view != (CacheView *) NULL","MagickCore/cache-view.c",0x312,
                  "GetOneCacheViewVirtualPixel");
  }
  if (cache_view->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("cache_view->signature == MagickCoreSignature","MagickCore/cache-view.c",0x313,
                  "GetOneCacheViewVirtualPixel");
  }
  if ((int)cache_view->number_threads <= iVar9) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("id < (int) cache_view->number_threads","MagickCore/cache-view.c",0x314,
                  "GetOneCacheViewVirtualPixel");
  }
  pQVar10 = pixel;
  for (iVar11 = 0x80; iVar11 != 0; iVar11 = iVar11 + -1) {
    *(undefined4 *)pQVar10 = 0;
    pQVar10 = (Quantum *)((int)pQVar10 + (uint)bVar13 * -8 + 4);
  }
  pQVar10 = GetVirtualPixelCacheNexus
                      (cache_view->image,cache_view->virtual_pixel_method,x,y,1,1,
                       cache_view->nexus_info[iVar9],exception);
  if (pQVar10 != (Quantum *)0x0) {
    sVar6 = cache_view->image->number_channels;
    if (0 < (int)sVar6) {
      pPVar12 = cache_view->image->channel_map;
      pPVar1 = pPVar12 + sVar6;
      do {
        pPVar8 = &pPVar12->channel;
        pPVar12 = pPVar12 + 1;
        pixel[*pPVar8] = *pQVar10;
        pQVar10 = pQVar10 + 1;
      } while (pPVar1 != pPVar12);
    }
    return MagickTrue;
  }
  pIVar7 = cache_view->image;
  MVar2 = (pIVar7->background_color).green;
  MVar3 = (pIVar7->background_color).blue;
  MVar4 = (pIVar7->background_color).black;
  MVar5 = (pIVar7->background_color).alpha;
  *pixel = (pIVar7->background_color).red;
  pixel[1] = MVar2;
  pixel[2] = MVar3;
  pixel[3] = MVar4;
  pixel[4] = MVar5;
  return MagickFalse;
}



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

undefined4
GetOneCacheViewVirtualPixel
          (int *param_1,undefined4 param_2,undefined4 param_3,undefined8 *param_4,undefined4 param_5
          )

{
  int *piVar1;
  undefined8 uVar2;
  undefined8 uVar3;
  undefined8 uVar4;
  undefined8 uVar5;
  int iVar6;
  undefined8 *puVar7;
  int iVar8;
  int *piVar9;
  byte bVar10;
  
  bVar10 = 0;
  iVar6 = omp_get_thread_num();
  if (param_1 == (int *)0x0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("cache_view != (CacheView *) NULL","MagickCore/cache-view.c",0x312,
                  "GetOneCacheViewVirtualPixel");
  }
  if (param_1[5] != -0x54535255) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("cache_view->signature == MagickCoreSignature","MagickCore/cache-view.c",0x313,
                  "GetOneCacheViewVirtualPixel");
  }
  if (param_1[2] <= iVar6) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("id < (int) cache_view->number_threads","MagickCore/cache-view.c",0x314,
                  "GetOneCacheViewVirtualPixel");
  }
  puVar7 = param_4;
  for (iVar8 = 0x80; iVar8 != 0; iVar8 = iVar8 + -1) {
    *(undefined4 *)puVar7 = 0;
    puVar7 = (undefined8 *)((int)puVar7 + (uint)bVar10 * -8 + 4);
  }
  puVar7 = (undefined8 *)
           FUN_00036810(*param_1,param_1[1],param_2,param_3,1,1,
                        *(undefined4 *)(param_1[3] + iVar6 * 4),param_5);
  if (puVar7 != (undefined8 *)0x0) {
    iVar6 = *(int *)(*param_1 + 0x298);
    if (0 < iVar6) {
      piVar9 = *(int **)(*param_1 + 0x2a8);
      piVar1 = piVar9 + iVar6 * 3;
      do {
        iVar6 = *piVar9;
        piVar9 = piVar9 + 3;
        param_4[iVar6] = *puVar7;
        puVar7 = puVar7 + 1;
      } while (piVar1 != piVar9);
    }
    return 1;
  }
  iVar6 = *param_1;
  uVar2 = *(undefined8 *)(iVar6 + 0xa4);
  uVar3 = *(undefined8 *)(iVar6 + 0xac);
  uVar4 = *(undefined8 *)(iVar6 + 0xb4);
  uVar5 = *(undefined8 *)(iVar6 + 0xbc);
  *param_4 = *(undefined8 *)(iVar6 + 0x9c);
  param_4[1] = uVar2;
  param_4[2] = uVar3;
  param_4[3] = uVar4;
  param_4[4] = uVar5;
  return 0;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00039d70
ADD EBX,0x3c4147
SUB ESP,0xc
MOV EBP,dword ptr [ESP + 0x20]
MOV ESI,dword ptr [ESP + 0x2c]
CALL 0x000317c0
TEST EBP,EBP
JZ 0x00059fdb
CMP dword ptr [EBP + 0x14],0xabacadab
JNZ 0x00059fbc
CMP dword ptr [EBP + 0x8],EAX
MOV EDX,EAX
JLE 0x00059f9d
XOR EAX,EAX
MOV ECX,0x80
MOV EDI,ESI
STOSD.REP ES:EDI
PUSH dword ptr [ESP + 0x30]
MOV EAX,dword ptr [EBP + 0xc]
PUSH dword ptr [EAX + EDX*0x4]
PUSH 0x1
PUSH 0x1
PUSH dword ptr [ESP + 0x38]
PUSH dword ptr [ESP + 0x38]
PUSH dword ptr [EBP + 0x4]
PUSH dword ptr [EBP]
CALL 0x00036810
ADD ESP,0x20
TEST EAX,EAX
JZ 0x00059f60
MOV EDX,dword ptr [EBP]
MOV ECX,dword ptr [EDX + 0x298]
TEST ECX,ECX
JLE 0x00059f52
MOV EDX,dword ptr [EDX + 0x2a8]
LEA ECX,[ECX + ECX*0x2]
LEA EBP,[EDX + ECX*0x4]
NOP
LEA ESI,[ESI]
MOV ECX,dword ptr [EDX]
ADD EDX,0xc
ADD EAX,0x8
FLD qword ptr [EAX + -0x8]
FSTP qword ptr [ESI + ECX*0x8]
CMP EBP,EDX
JNZ 0x00059f40
ADD ESP,0xc
MOV EAX,0x1
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [EBP]
FLD qword ptr [EAX + 0x9c]
FLD qword ptr [EAX + 0xa4]
FLD qword ptr [EAX + 0xac]
FLD qword ptr [EAX + 0xb4]
FLD qword ptr [EAX + 0xbc]
FXCH ST4
XOR EAX,EAX
FSTP qword ptr [ESI]
FXCH ST2
FSTP qword ptr [ESI + 0x8]
FSTP qword ptr [ESI + 0x10]
FSTP qword ptr [ESI + 0x18]
FSTP qword ptr [ESI + 0x20]
ADD ESP,0xc
POP EBX
POP ESI
POP EDI
POP EBP
RET
LEA EAX,[EBX + 0xffec3700]
PUSH EAX
LEA EAX,[EBX + 0xffec34d0]
PUSH 0x314
PUSH EAX
LEA EAX,[EBX + 0xffec3558]
PUSH EAX
CALL 0x000313d0
LEA EAX,[EBX + 0xffec3700]
PUSH EAX
LEA EAX,[EBX + 0xffec34d0]
PUSH 0x313
PUSH EAX
LEA EAX,[EBX + 0xffec3528]
PUSH EAX
CALL 0x000313d0
LEA EAX,[EBX + 0xffec3700]
PUSH EAX
LEA EAX,[EBX + 0xffec34d0]
PUSH 0x312
PUSH EAX
LEA EAX,[EBX + 0xffec3504]
PUSH EAX
CALL 0x000313d0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4\nGetOneCacheViewVirtualPixel\n          (int *param_1,undefined4 param_2,undefined4 param_3,undefined8 *param_4,undefined4 param_5\n          )\n\n{\n  int *piVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  int iVar6;\n  undefined8 *puVar7;\n  int iVar8;\n  int *piVar9;\n  byte bVar10;\n  \n  bVar10 = 0;\n  iVar6 = omp_get_thread_num();\n  if (param_1 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("cache_view != (CacheView *) NULL","MagickCore/cache-view.c",0x312,\n                  "GetOneCacheViewVirtualPixel");\n  }\n  if (param_1[5] != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("cache_view->signature == MagickCoreSignature","MagickCore/cache-view.c",0x313,\n                  "GetOneCacheViewVirtualPixel");\n  }\n  if (param_1[2] <= iVar6) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("id < (int) cache_view->number_threads","MagickCore/cache-view.c",0x314,\n                  "GetOneCacheViewVirtualPixel");\n  }\n  puVar7 = param_4;\n  for (iVar8 = 0x80; iVar8 != 0; iVar8 = iVar8 + -1) {\n    *(undefined4 *)puVar7 = 0;\n    puVar7 = (undefined8 *)((int)puVar7 + (uint)bVar10 * -8 + 4);\n  }\n  puVar7 = (undefined8 *)\n           FUN_00036810(*param_1,param_1[1],param_2,param_3,1,1,\n                        *(undefined4 *)(param_1[3] + iVar6 * 4),param_5);\n  if (puVar7 != (undefined8 *)0x0) {\n    iVar6 = *(int *)(*param_1 + 0x298);\n    if (0 < iVar6) {\n      piVar9 = *(int **)(*param_1 + 0x2a8);\n      piVar1 = piVar9 + iVar6 * 3;\n      do {\n        iVar6 = *piVar9;\n        piVar9 = piVar9 + 3;\n        param_4[iVar6] = *puVar7;\n        puVar7 = puVar7 + 1;\n      } while (piVar1 != piVar9);\n    }\n    return 1;\n  }\n  iVar6 = *param_1;\n  uVar2 = *(undefined8 *)(iVar6 + 0xa4);\n  uVar3 = *(undefined8 *)(iVar6 + 0xac);\n  uVar4 = *(undefined8 *)(iVar6 + 0xb4);\n  uVar5 = *(undefined8 *)(iVar6 + 0xbc);\n  *param_4 = *(undefined8 *)(iVar6 + 0x9c);\n  param_4[1] = uVar2;\n  param_4[2] = uVar3;\n  param_4[3] = uVar4;\n  param_4[4] = uVar5;\n  return 0;\n}\n\n" comment (function_definition "undefined4\nGetOneCacheViewVirtualPixel\n          (int *param_1,undefined4 param_2,undefined4 param_3,undefined8 *param_4,undefined4 param_5\n          )\n\n{\n  int *piVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  int iVar6;\n  undefined8 *puVar7;\n  int iVar8;\n  int *piVar9;\n  byte bVar10;\n  \n  bVar10 = 0;\n  iVar6 = omp_get_thread_num();\n  if (param_1 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("cache_view != (CacheView *) NULL","MagickCore/cache-view.c",0x312,\n                  "GetOneCacheViewVirtualPixel");\n  }\n  if (param_1[5] != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("cache_view->signature == MagickCoreSignature","MagickCore/cache-view.c",0x313,\n                  "GetOneCacheViewVirtualPixel");\n  }\n  if (param_1[2] <= iVar6) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("id < (int) cache_view->number_threads","MagickCore/cache-view.c",0x314,\n                  "GetOneCacheViewVirtualPixel");\n  }\n  puVar7 = param_4;\n  for (iVar8 = 0x80; iVar8 != 0; iVar8 = iVar8 + -1) {\n    *(undefined4 *)puVar7 = 0;\n    puVar7 = (undefined8 *)((int)puVar7 + (uint)bVar10 * -8 + 4);\n  }\n  puVar7 = (undefined8 *)\n           FUN_00036810(*param_1,param_1[1],param_2,param_3,1,1,\n                        *(undefined4 *)(param_1[3] + iVar6 * 4),param_5);\n  if (puVar7 != (undefined8 *)0x0) {\n    iVar6 = *(int *)(*param_1 + 0x298);\n    if (0 < iVar6) {\n      piVar9 = *(int **)(*param_1 + 0x2a8);\n      piVar1 = piVar9 + iVar6 * 3;\n      do {\n        iVar6 = *piVar9;\n        piVar9 = piVar9 + 3;\n        param_4[iVar6] = *puVar7;\n        puVar7 = puVar7 + 1;\n      } while (piVar1 != piVar9);\n    }\n    return 1;\n  }\n  iVar6 = *param_1;\n  uVar2 = *(undefined8 *)(iVar6 + 0xa4);\n  uVar3 = *(undefined8 *)(iVar6 + 0xac);\n  uVar4 = *(undefined8 *)(iVar6 + 0xb4);\n  uVar5 = *(undefined8 *)(iVar6 + 0xbc);\n  *param_4 = *(undefined8 *)(iVar6 + 0x9c);\n  param_4[1] = uVar2;\n  param_4[2] = uVar3;\n  param_4[3] = uVar4;\n  param_4[4] = uVar5;\n  return 0;\n}" type_identifier (function_declarator "GetOneCacheViewVirtualPixel\n          (int *param_1,undefined4 param_2,undefined4 param_3,undefined8 *param_4,undefined4 param_5\n          )" identifier (parameter_list "(int *param_1,undefined4 param_2,undefined4 param_3,undefined8 *param_4,undefined4 param_5\n          )" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined8 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "undefined4 param_5" type_identifier identifier) ))) (compound_statement "{\n  int *piVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  int iVar6;\n  undefined8 *puVar7;\n  int iVar8;\n  int *piVar9;\n  byte bVar10;\n  \n  bVar10 = 0;\n  iVar6 = omp_get_thread_num();\n  if (param_1 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("cache_view != (CacheView *) NULL","MagickCore/cache-view.c",0x312,\n                  "GetOneCacheViewVirtualPixel");\n  }\n  if (param_1[5] != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("cache_view->signature == MagickCoreSignature","MagickCore/cache-view.c",0x313,\n                  "GetOneCacheViewVirtualPixel");\n  }\n  if (param_1[2] <= iVar6) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("id < (int) cache_view->number_threads","MagickCore/cache-view.c",0x314,\n                  "GetOneCacheViewVirtualPixel");\n  }\n  puVar7 = param_4;\n  for (iVar8 = 0x80; iVar8 != 0; iVar8 = iVar8 + -1) {\n    *(undefined4 *)puVar7 = 0;\n    puVar7 = (undefined8 *)((int)puVar7 + (uint)bVar10 * -8 + 4);\n  }\n  puVar7 = (undefined8 *)\n           FUN_00036810(*param_1,param_1[1],param_2,param_3,1,1,\n                        *(undefined4 *)(param_1[3] + iVar6 * 4),param_5);\n  if (puVar7 != (undefined8 *)0x0) {\n    iVar6 = *(int *)(*param_1 + 0x298);\n    if (0 < iVar6) {\n      piVar9 = *(int **)(*param_1 + 0x2a8);\n      piVar1 = piVar9 + iVar6 * 3;\n      do {\n        iVar6 = *piVar9;\n        piVar9 = piVar9 + 3;\n        param_4[iVar6] = *puVar7;\n        puVar7 = puVar7 + 1;\n      } while (piVar1 != piVar9);\n    }\n    return 1;\n  }\n  iVar6 = *param_1;\n  uVar2 = *(undefined8 *)(iVar6 + 0xa4);\n  uVar3 = *(undefined8 *)(iVar6 + 0xac);\n  uVar4 = *(undefined8 *)(iVar6 + 0xb4);\n  uVar5 = *(undefined8 *)(iVar6 + 0xbc);\n  *param_4 = *(undefined8 *)(iVar6 + 0x9c);\n  param_4[1] = uVar2;\n  param_4[2] = uVar3;\n  param_4[3] = uVar4;\n  param_4[4] = uVar5;\n  return 0;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined8 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "byte bVar10;" type_identifier identifier ;) (expression_statement "bVar10 = 0;" (assignment_expression "bVar10 = 0" identifier = number_literal) ;) (expression_statement "iVar6 = omp_get_thread_num();" (assignment_expression "iVar6 = omp_get_thread_num()" identifier = (call_expression "omp_get_thread_num()" identifier (argument_list "()" ( )))) ;) (if_statement "if (param_1 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("cache_view != (CacheView *) NULL","MagickCore/cache-view.c",0x312,\n                  "GetOneCacheViewVirtualPixel");\n  }" if (parenthesized_expression "(param_1 == (int *)0x0)" ( (binary_expression "param_1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("cache_view != (CacheView *) NULL","MagickCore/cache-view.c",0x312,\n                  "GetOneCacheViewVirtualPixel");\n  }" { comment (expression_statement "__assert_fail("cache_view != (CacheView *) NULL","MagickCore/cache-view.c",0x312,\n                  "GetOneCacheViewVirtualPixel");" (call_expression "__assert_fail("cache_view != (CacheView *) NULL","MagickCore/cache-view.c",0x312,\n                  "GetOneCacheViewVirtualPixel")" identifier (argument_list "("cache_view != (CacheView *) NULL","MagickCore/cache-view.c",0x312,\n                  "GetOneCacheViewVirtualPixel")" ( (string_literal ""cache_view != (CacheView *) NULL"" " string_content ") , (string_literal ""MagickCore/cache-view.c"" " string_content ") , number_literal , (string_literal ""GetOneCacheViewVirtualPixel"" " string_content ") ))) ;) })) (if_statement "if (param_1[5] != -0x54535255) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("cache_view->signature == MagickCoreSignature","MagickCore/cache-view.c",0x313,\n                  "GetOneCacheViewVirtualPixel");\n  }" if (parenthesized_expression "(param_1[5] != -0x54535255)" ( (binary_expression "param_1[5] != -0x54535255" (subscript_expression "param_1[5]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("cache_view->signature == MagickCoreSignature","MagickCore/cache-view.c",0x313,\n                  "GetOneCacheViewVirtualPixel");\n  }" { comment (expression_statement "__assert_fail("cache_view->signature == MagickCoreSignature","MagickCore/cache-view.c",0x313,\n                  "GetOneCacheViewVirtualPixel");" (call_expression "__assert_fail("cache_view->signature == MagickCoreSignature","MagickCore/cache-view.c",0x313,\n                  "GetOneCacheViewVirtualPixel")" identifier (argument_list "("cache_view->signature == MagickCoreSignature","MagickCore/cache-view.c",0x313,\n                  "GetOneCacheViewVirtualPixel")" ( (string_literal ""cache_view->signature == MagickCoreSignature"" " string_content ") , (string_literal ""MagickCore/cache-view.c"" " string_content ") , number_literal , (string_literal ""GetOneCacheViewVirtualPixel"" " string_content ") ))) ;) })) (if_statement "if (param_1[2] <= iVar6) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("id < (int) cache_view->number_threads","MagickCore/cache-view.c",0x314,\n                  "GetOneCacheViewVirtualPixel");\n  }" if (parenthesized_expression "(param_1[2] <= iVar6)" ( (binary_expression "param_1[2] <= iVar6" (subscript_expression "param_1[2]" identifier [ number_literal ]) <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("id < (int) cache_view->number_threads","MagickCore/cache-view.c",0x314,\n                  "GetOneCacheViewVirtualPixel");\n  }" { comment (expression_statement "__assert_fail("id < (int) cache_view->number_threads","MagickCore/cache-view.c",0x314,\n                  "GetOneCacheViewVirtualPixel");" (call_expression "__assert_fail("id < (int) cache_view->number_threads","MagickCore/cache-view.c",0x314,\n                  "GetOneCacheViewVirtualPixel")" identifier (argument_list "("id < (int) cache_view->number_threads","MagickCore/cache-view.c",0x314,\n                  "GetOneCacheViewVirtualPixel")" ( (string_literal ""id < (int) cache_view->number_threads"" " string_content ") , (string_literal ""MagickCore/cache-view.c"" " string_content ") , number_literal , (string_literal ""GetOneCacheViewVirtualPixel"" " string_content ") ))) ;) })) (expression_statement "puVar7 = param_4;" (assignment_expression "puVar7 = param_4" identifier = identifier) ;) (for_statement "for (iVar8 = 0x80; iVar8 != 0; iVar8 = iVar8 + -1) {\n    *(undefined4 *)puVar7 = 0;\n    puVar7 = (undefined8 *)((int)puVar7 + (uint)bVar10 * -8 + 4);\n  }" for ( (assignment_expression "iVar8 = 0x80" identifier = number_literal) ; (binary_expression "iVar8 != 0" identifier != number_literal) ; (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ) (compound_statement "{\n    *(undefined4 *)puVar7 = 0;\n    puVar7 = (undefined8 *)((int)puVar7 + (uint)bVar10 * -8 + 4);\n  }" { (expression_statement "*(undefined4 *)puVar7 = 0;" (assignment_expression "*(undefined4 *)puVar7 = 0" (pointer_expression "*(undefined4 *)puVar7" * (cast_expression "(undefined4 *)puVar7" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "puVar7 = (undefined8 *)((int)puVar7 + (uint)bVar10 * -8 + 4);" (assignment_expression "puVar7 = (undefined8 *)((int)puVar7 + (uint)bVar10 * -8 + 4)" identifier = (cast_expression "(undefined8 *)((int)puVar7 + (uint)bVar10 * -8 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + (uint)bVar10 * -8 + 4)" ( (binary_expression "(int)puVar7 + (uint)bVar10 * -8 + 4" (binary_expression "(int)puVar7 + (uint)bVar10 * -8" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar10 * -8" (cast_expression "(uint)bVar10" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) })) (expression_statement "puVar7 = (undefined8 *)\n           FUN_00036810(*param_1,param_1[1],param_2,param_3,1,1,\n                        *(undefined4 *)(param_1[3] + iVar6 * 4),param_5);" (assignment_expression "puVar7 = (undefined8 *)\n           FUN_00036810(*param_1,param_1[1],param_2,param_3,1,1,\n                        *(undefined4 *)(param_1[3] + iVar6 * 4),param_5)" identifier = (cast_expression "(undefined8 *)\n           FUN_00036810(*param_1,param_1[1],param_2,param_3,1,1,\n                        *(undefined4 *)(param_1[3] + iVar6 * 4),param_5)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00036810(*param_1,param_1[1],param_2,param_3,1,1,\n                        *(undefined4 *)(param_1[3] + iVar6 * 4),param_5)" identifier (argument_list "(*param_1,param_1[1],param_2,param_3,1,1,\n                        *(undefined4 *)(param_1[3] + iVar6 * 4),param_5)" ( (pointer_expression "*param_1" * identifier) , (subscript_expression "param_1[1]" identifier [ number_literal ]) , identifier , identifier , number_literal , number_literal , (pointer_expression "*(undefined4 *)(param_1[3] + iVar6 * 4)" * (cast_expression "(undefined4 *)(param_1[3] + iVar6 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[3] + iVar6 * 4)" ( (binary_expression "param_1[3] + iVar6 * 4" (subscript_expression "param_1[3]" identifier [ number_literal ]) + (binary_expression "iVar6 * 4" identifier * number_literal)) )))) , identifier ))))) ;) (if_statement "if (puVar7 != (undefined8 *)0x0) {\n    iVar6 = *(int *)(*param_1 + 0x298);\n    if (0 < iVar6) {\n      piVar9 = *(int **)(*param_1 + 0x2a8);\n      piVar1 = piVar9 + iVar6 * 3;\n      do {\n        iVar6 = *piVar9;\n        piVar9 = piVar9 + 3;\n        param_4[iVar6] = *puVar7;\n        puVar7 = puVar7 + 1;\n      } while (piVar1 != piVar9);\n    }\n    return 1;\n  }" if (parenthesized_expression "(puVar7 != (undefined8 *)0x0)" ( (binary_expression "puVar7 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar6 = *(int *)(*param_1 + 0x298);\n    if (0 < iVar6) {\n      piVar9 = *(int **)(*param_1 + 0x2a8);\n      piVar1 = piVar9 + iVar6 * 3;\n      do {\n        iVar6 = *piVar9;\n        piVar9 = piVar9 + 3;\n        param_4[iVar6] = *puVar7;\n        puVar7 = puVar7 + 1;\n      } while (piVar1 != piVar9);\n    }\n    return 1;\n  }" { (expression_statement "iVar6 = *(int *)(*param_1 + 0x298);" (assignment_expression "iVar6 = *(int *)(*param_1 + 0x298)" identifier = (pointer_expression "*(int *)(*param_1 + 0x298)" * (cast_expression "(int *)(*param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x298)" ( (binary_expression "*param_1 + 0x298" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ;) (if_statement "if (0 < iVar6) {\n      piVar9 = *(int **)(*param_1 + 0x2a8);\n      piVar1 = piVar9 + iVar6 * 3;\n      do {\n        iVar6 = *piVar9;\n        piVar9 = piVar9 + 3;\n        param_4[iVar6] = *puVar7;\n        puVar7 = puVar7 + 1;\n      } while (piVar1 != piVar9);\n    }" if (parenthesized_expression "(0 < iVar6)" ( (binary_expression "0 < iVar6" number_literal < identifier) )) (compound_statement "{\n      piVar9 = *(int **)(*param_1 + 0x2a8);\n      piVar1 = piVar9 + iVar6 * 3;\n      do {\n        iVar6 = *piVar9;\n        piVar9 = piVar9 + 3;\n        param_4[iVar6] = *puVar7;\n        puVar7 = puVar7 + 1;\n      } while (piVar1 != piVar9);\n    }" { (expression_statement "piVar9 = *(int **)(*param_1 + 0x2a8);" (assignment_expression "piVar9 = *(int **)(*param_1 + 0x2a8)" identifier = (pointer_expression "*(int **)(*param_1 + 0x2a8)" * (cast_expression "(int **)(*param_1 + 0x2a8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x2a8)" ( (binary_expression "*param_1 + 0x2a8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ;) (expression_statement "piVar1 = piVar9 + iVar6 * 3;" (assignment_expression "piVar1 = piVar9 + iVar6 * 3" identifier = (binary_expression "piVar9 + iVar6 * 3" identifier + (binary_expression "iVar6 * 3" identifier * number_literal))) ;) (do_statement "do {\n        iVar6 = *piVar9;\n        piVar9 = piVar9 + 3;\n        param_4[iVar6] = *puVar7;\n        puVar7 = puVar7 + 1;\n      } while (piVar1 != piVar9);" do (compound_statement "{\n        iVar6 = *piVar9;\n        piVar9 = piVar9 + 3;\n        param_4[iVar6] = *puVar7;\n        puVar7 = puVar7 + 1;\n      }" { (expression_statement "iVar6 = *piVar9;" (assignment_expression "iVar6 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (expression_statement "piVar9 = piVar9 + 3;" (assignment_expression "piVar9 = piVar9 + 3" identifier = (binary_expression "piVar9 + 3" identifier + number_literal)) ;) (expression_statement "param_4[iVar6] = *puVar7;" (assignment_expression "param_4[iVar6] = *puVar7" (subscript_expression "param_4[iVar6]" identifier [ identifier ]) = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" identifier = (binary_expression "puVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar1 != piVar9)" ( (binary_expression "piVar1 != piVar9" identifier != identifier) )) ;) })) (return_statement "return 1;" return number_literal ;) })) (expression_statement "iVar6 = *param_1;" (assignment_expression "iVar6 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar2 = *(undefined8 *)(iVar6 + 0xa4);" (assignment_expression "uVar2 = *(undefined8 *)(iVar6 + 0xa4)" identifier = (pointer_expression "*(undefined8 *)(iVar6 + 0xa4)" * (cast_expression "(undefined8 *)(iVar6 + 0xa4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xa4)" ( (binary_expression "iVar6 + 0xa4" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(undefined8 *)(iVar6 + 0xac);" (assignment_expression "uVar3 = *(undefined8 *)(iVar6 + 0xac)" identifier = (pointer_expression "*(undefined8 *)(iVar6 + 0xac)" * (cast_expression "(undefined8 *)(iVar6 + 0xac)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xac)" ( (binary_expression "iVar6 + 0xac" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(undefined8 *)(iVar6 + 0xb4);" (assignment_expression "uVar4 = *(undefined8 *)(iVar6 + 0xb4)" identifier = (pointer_expression "*(undefined8 *)(iVar6 + 0xb4)" * (cast_expression "(undefined8 *)(iVar6 + 0xb4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xb4)" ( (binary_expression "iVar6 + 0xb4" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = *(undefined8 *)(iVar6 + 0xbc);" (assignment_expression "uVar5 = *(undefined8 *)(iVar6 + 0xbc)" identifier = (pointer_expression "*(undefined8 *)(iVar6 + 0xbc)" * (cast_expression "(undefined8 *)(iVar6 + 0xbc)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xbc)" ( (binary_expression "iVar6 + 0xbc" identifier + number_literal) ))))) ;) (expression_statement "*param_4 = *(undefined8 *)(iVar6 + 0x9c);" (assignment_expression "*param_4 = *(undefined8 *)(iVar6 + 0x9c)" (pointer_expression "*param_4" * identifier) = (pointer_expression "*(undefined8 *)(iVar6 + 0x9c)" * (cast_expression "(undefined8 *)(iVar6 + 0x9c)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x9c)" ( (binary_expression "iVar6 + 0x9c" identifier + number_literal) ))))) ;) (expression_statement "param_4[1] = uVar2;" (assignment_expression "param_4[1] = uVar2" (subscript_expression "param_4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_4[2] = uVar3;" (assignment_expression "param_4[2] = uVar3" (subscript_expression "param_4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_4[3] = uVar4;" (assignment_expression "param_4[3] = uVar4" (subscript_expression "param_4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_4[4] = uVar5;" (assignment_expression "param_4[4] = uVar5" (subscript_expression "param_4[4]" identifier [ number_literal ]) = identifier) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n/* WARNING: Enum "GravityType": Some values do not have unique names */\n/* WARNING: Enum "DisposeType": Some values do not have unique names */\n/* WARNING: Enum "ChannelType": Some values do not have unique names */\n/* WARNING: Enum "PixelChannel": Some values do not have unique names */\n/* WARNING: Enum "ExceptionType": Some values do not have unique names */\n\nMagickBooleanType\nGetOneCacheViewVirtualPixel\n          (CacheView *cache_view,ssize_t x,ssize_t y,Quantum *pixel,ExceptionInfo *exception)\n\n{\n  PixelChannelMap *pPVar1;\n  MagickRealType MVar2;\n  MagickRealType MVar3;\n  MagickRealType MVar4;\n  MagickRealType MVar5;\n  size_t sVar6;\n  Image *pIVar7;\n  PixelChannel *pPVar8;\n  int iVar9;\n  Quantum *pQVar10;\n  int iVar11;\n  PixelChannelMap *pPVar12;\n  byte bVar13;\n  \n  bVar13 = 0;\n  iVar9 = omp_get_thread_num();\n  if (cache_view == (CacheView *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("cache_view != (CacheView *) NULL","MagickCore/cache-view.c",0x312,\n                  "GetOneCacheViewVirtualPixel");\n  }\n  if (cache_view->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("cache_view->signature == MagickCoreSignature","MagickCore/cache-view.c",0x313,\n                  "GetOneCacheViewVirtualPixel");\n  }\n  if ((int)cache_view->number_threads <= iVar9) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("id < (int) cache_view->number_threads","MagickCore/cache-view.c",0x314,\n                  "GetOneCacheViewVirtualPixel");\n  }\n  pQVar10 = pixel;\n  for (iVar11 = 0x80; iVar11 != 0; iVar11 = iVar11 + -1) {\n    *(undefined4 *)pQVar10 = 0;\n    pQVar10 = (Quantum *)((int)pQVar10 + (uint)bVar13 * -8 + 4);\n  }\n  pQVar10 = GetVirtualPixelCacheNexus\n                      (cache_view->image,cache_view->virtual_pixel_method,x,y,1,1,\n                       cache_view->nexus_info[iVar9],exception);\n  if (pQVar10 != (Quantum *)0x0) {\n    sVar6 = cache_view->image->number_channels;\n    if (0 < (int)sVar6) {\n      pPVar12 = cache_view->image->channel_map;\n      pPVar1 = pPVar12 + sVar6;\n      do {\n        pPVar8 = &pPVar12->channel;\n        pPVar12 = pPVar12 + 1;\n        pixel[*pPVar8] = *pQVar10;\n        pQVar10 = pQVar10 + 1;\n      } while (pPVar1 != pPVar12);\n    }\n    return MagickTrue;\n  }\n  pIVar7 = cache_view->image;\n  MVar2 = (pIVar7->background_color).green;\n  MVar3 = (pIVar7->background_color).blue;\n  MVar4 = (pIVar7->background_color).black;\n  MVar5 = (pIVar7->background_color).alpha;\n  *pixel = (pIVar7->background_color).red;\n  pixel[1] = MVar2;\n  pixel[2] = MVar3;\n  pixel[3] = MVar4;\n  pixel[4] = MVar5;\n  return MagickFalse;\n}\n\n" comment comment comment comment comment comment comment (function_definition "MagickBooleanType\nGetOneCacheViewVirtualPixel\n          (CacheView *cache_view,ssize_t x,ssize_t y,Quantum *pixel,ExceptionInfo *exception)\n\n{\n  PixelChannelMap *pPVar1;\n  MagickRealType MVar2;\n  MagickRealType MVar3;\n  MagickRealType MVar4;\n  MagickRealType MVar5;\n  size_t sVar6;\n  Image *pIVar7;\n  PixelChannel *pPVar8;\n  int iVar9;\n  Quantum *pQVar10;\n  int iVar11;\n  PixelChannelMap *pPVar12;\n  byte bVar13;\n  \n  bVar13 = 0;\n  iVar9 = omp_get_thread_num();\n  if (cache_view == (CacheView *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("cache_view != (CacheView *) NULL","MagickCore/cache-view.c",0x312,\n                  "GetOneCacheViewVirtualPixel");\n  }\n  if (cache_view->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("cache_view->signature == MagickCoreSignature","MagickCore/cache-view.c",0x313,\n                  "GetOneCacheViewVirtualPixel");\n  }\n  if ((int)cache_view->number_threads <= iVar9) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("id < (int) cache_view->number_threads","MagickCore/cache-view.c",0x314,\n                  "GetOneCacheViewVirtualPixel");\n  }\n  pQVar10 = pixel;\n  for (iVar11 = 0x80; iVar11 != 0; iVar11 = iVar11 + -1) {\n    *(undefined4 *)pQVar10 = 0;\n    pQVar10 = (Quantum *)((int)pQVar10 + (uint)bVar13 * -8 + 4);\n  }\n  pQVar10 = GetVirtualPixelCacheNexus\n                      (cache_view->image,cache_view->virtual_pixel_method,x,y,1,1,\n                       cache_view->nexus_info[iVar9],exception);\n  if (pQVar10 != (Quantum *)0x0) {\n    sVar6 = cache_view->image->number_channels;\n    if (0 < (int)sVar6) {\n      pPVar12 = cache_view->image->channel_map;\n      pPVar1 = pPVar12 + sVar6;\n      do {\n        pPVar8 = &pPVar12->channel;\n        pPVar12 = pPVar12 + 1;\n        pixel[*pPVar8] = *pQVar10;\n        pQVar10 = pQVar10 + 1;\n      } while (pPVar1 != pPVar12);\n    }\n    return MagickTrue;\n  }\n  pIVar7 = cache_view->image;\n  MVar2 = (pIVar7->background_color).green;\n  MVar3 = (pIVar7->background_color).blue;\n  MVar4 = (pIVar7->background_color).black;\n  MVar5 = (pIVar7->background_color).alpha;\n  *pixel = (pIVar7->background_color).red;\n  pixel[1] = MVar2;\n  pixel[2] = MVar3;\n  pixel[3] = MVar4;\n  pixel[4] = MVar5;\n  return MagickFalse;\n}" type_identifier (function_declarator "GetOneCacheViewVirtualPixel\n          (CacheView *cache_view,ssize_t x,ssize_t y,Quantum *pixel,ExceptionInfo *exception)" identifier (parameter_list "(CacheView *cache_view,ssize_t x,ssize_t y,Quantum *pixel,ExceptionInfo *exception)" ( (parameter_declaration "CacheView *cache_view" type_identifier (pointer_declarator "*cache_view" * identifier)) , (parameter_declaration "ssize_t x" primitive_type identifier) , (parameter_declaration "ssize_t y" primitive_type identifier) , (parameter_declaration "Quantum *pixel" type_identifier (pointer_declarator "*pixel" * identifier)) , (parameter_declaration "ExceptionInfo *exception" type_identifier (pointer_declarator "*exception" * identifier)) ))) (compound_statement "{\n  PixelChannelMap *pPVar1;\n  MagickRealType MVar2;\n  MagickRealType MVar3;\n  MagickRealType MVar4;\n  MagickRealType MVar5;\n  size_t sVar6;\n  Image *pIVar7;\n  PixelChannel *pPVar8;\n  int iVar9;\n  Quantum *pQVar10;\n  int iVar11;\n  PixelChannelMap *pPVar12;\n  byte bVar13;\n  \n  bVar13 = 0;\n  iVar9 = omp_get_thread_num();\n  if (cache_view == (CacheView *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("cache_view != (CacheView *) NULL","MagickCore/cache-view.c",0x312,\n                  "GetOneCacheViewVirtualPixel");\n  }\n  if (cache_view->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("cache_view->signature == MagickCoreSignature","MagickCore/cache-view.c",0x313,\n                  "GetOneCacheViewVirtualPixel");\n  }\n  if ((int)cache_view->number_threads <= iVar9) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("id < (int) cache_view->number_threads","MagickCore/cache-view.c",0x314,\n                  "GetOneCacheViewVirtualPixel");\n  }\n  pQVar10 = pixel;\n  for (iVar11 = 0x80; iVar11 != 0; iVar11 = iVar11 + -1) {\n    *(undefined4 *)pQVar10 = 0;\n    pQVar10 = (Quantum *)((int)pQVar10 + (uint)bVar13 * -8 + 4);\n  }\n  pQVar10 = GetVirtualPixelCacheNexus\n                      (cache_view->image,cache_view->virtual_pixel_method,x,y,1,1,\n                       cache_view->nexus_info[iVar9],exception);\n  if (pQVar10 != (Quantum *)0x0) {\n    sVar6 = cache_view->image->number_channels;\n    if (0 < (int)sVar6) {\n      pPVar12 = cache_view->image->channel_map;\n      pPVar1 = pPVar12 + sVar6;\n      do {\n        pPVar8 = &pPVar12->channel;\n        pPVar12 = pPVar12 + 1;\n        pixel[*pPVar8] = *pQVar10;\n        pQVar10 = pQVar10 + 1;\n      } while (pPVar1 != pPVar12);\n    }\n    return MagickTrue;\n  }\n  pIVar7 = cache_view->image;\n  MVar2 = (pIVar7->background_color).green;\n  MVar3 = (pIVar7->background_color).blue;\n  MVar4 = (pIVar7->background_color).black;\n  MVar5 = (pIVar7->background_color).alpha;\n  *pixel = (pIVar7->background_color).red;\n  pixel[1] = MVar2;\n  pixel[2] = MVar3;\n  pixel[3] = MVar4;\n  pixel[4] = MVar5;\n  return MagickFalse;\n}" { (declaration "PixelChannelMap *pPVar1;" type_identifier (pointer_declarator "*pPVar1" * identifier) ;) (declaration "MagickRealType MVar2;" type_identifier identifier ;) (declaration "MagickRealType MVar3;" type_identifier identifier ;) (declaration "MagickRealType MVar4;" type_identifier identifier ;) (declaration "MagickRealType MVar5;" type_identifier identifier ;) (declaration "size_t sVar6;" primitive_type identifier ;) (declaration "Image *pIVar7;" type_identifier (pointer_declarator "*pIVar7" * identifier) ;) (declaration "PixelChannel *pPVar8;" type_identifier (pointer_declarator "*pPVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "Quantum *pQVar10;" type_identifier (pointer_declarator "*pQVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "PixelChannelMap *pPVar12;" type_identifier (pointer_declarator "*pPVar12" * identifier) ;) (declaration "byte bVar13;" type_identifier identifier ;) (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) (expression_statement "iVar9 = omp_get_thread_num();" (assignment_expression "iVar9 = omp_get_thread_num()" identifier = (call_expression "omp_get_thread_num()" identifier (argument_list "()" ( )))) ;) (if_statement "if (cache_view == (CacheView *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("cache_view != (CacheView *) NULL","MagickCore/cache-view.c",0x312,\n                  "GetOneCacheViewVirtualPixel");\n  }" if (parenthesized_expression "(cache_view == (CacheView *)0x0)" ( (binary_expression "cache_view == (CacheView *)0x0" identifier == (cast_expression "(CacheView *)0x0" ( (type_descriptor "CacheView *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("cache_view != (CacheView *) NULL","MagickCore/cache-view.c",0x312,\n                  "GetOneCacheViewVirtualPixel");\n  }" { comment (expression_statement "__assert_fail("cache_view != (CacheView *) NULL","MagickCore/cache-view.c",0x312,\n                  "GetOneCacheViewVirtualPixel");" (call_expression "__assert_fail("cache_view != (CacheView *) NULL","MagickCore/cache-view.c",0x312,\n                  "GetOneCacheViewVirtualPixel")" identifier (argument_list "("cache_view != (CacheView *) NULL","MagickCore/cache-view.c",0x312,\n                  "GetOneCacheViewVirtualPixel")" ( (string_literal ""cache_view != (CacheView *) NULL"" " string_content ") , (string_literal ""MagickCore/cache-view.c"" " string_content ") , number_literal , (string_literal ""GetOneCacheViewVirtualPixel"" " string_content ") ))) ;) })) (if_statement "if (cache_view->signature != 0xabacadab) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("cache_view->signature == MagickCoreSignature","MagickCore/cache-view.c",0x313,\n                  "GetOneCacheViewVirtualPixel");\n  }" if (parenthesized_expression "(cache_view->signature != 0xabacadab)" ( (binary_expression "cache_view->signature != 0xabacadab" (field_expression "cache_view->signature" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("cache_view->signature == MagickCoreSignature","MagickCore/cache-view.c",0x313,\n                  "GetOneCacheViewVirtualPixel");\n  }" { comment (expression_statement "__assert_fail("cache_view->signature == MagickCoreSignature","MagickCore/cache-view.c",0x313,\n                  "GetOneCacheViewVirtualPixel");" (call_expression "__assert_fail("cache_view->signature == MagickCoreSignature","MagickCore/cache-view.c",0x313,\n                  "GetOneCacheViewVirtualPixel")" identifier (argument_list "("cache_view->signature == MagickCoreSignature","MagickCore/cache-view.c",0x313,\n                  "GetOneCacheViewVirtualPixel")" ( (string_literal ""cache_view->signature == MagickCoreSignature"" " string_content ") , (string_literal ""MagickCore/cache-view.c"" " string_content ") , number_literal , (string_literal ""GetOneCacheViewVirtualPixel"" " string_content ") ))) ;) })) (if_statement "if ((int)cache_view->number_threads <= iVar9) {\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("id < (int) cache_view->number_threads","MagickCore/cache-view.c",0x314,\n                  "GetOneCacheViewVirtualPixel");\n  }" if (parenthesized_expression "((int)cache_view->number_threads <= iVar9)" ( (binary_expression "(int)cache_view->number_threads <= iVar9" (cast_expression "(int)cache_view->number_threads" ( (type_descriptor "int" primitive_type) ) (field_expression "cache_view->number_threads" identifier -> field_identifier)) <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __assert_fail("id < (int) cache_view->number_threads","MagickCore/cache-view.c",0x314,\n                  "GetOneCacheViewVirtualPixel");\n  }" { comment (expression_statement "__assert_fail("id < (int) cache_view->number_threads","MagickCore/cache-view.c",0x314,\n                  "GetOneCacheViewVirtualPixel");" (call_expression "__assert_fail("id < (int) cache_view->number_threads","MagickCore/cache-view.c",0x314,\n                  "GetOneCacheViewVirtualPixel")" identifier (argument_list "("id < (int) cache_view->number_threads","MagickCore/cache-view.c",0x314,\n                  "GetOneCacheViewVirtualPixel")" ( (string_literal ""id < (int) cache_view->number_threads"" " string_content ") , (string_literal ""MagickCore/cache-view.c"" " string_content ") , number_literal , (string_literal ""GetOneCacheViewVirtualPixel"" " string_content ") ))) ;) })) (expression_statement "pQVar10 = pixel;" (assignment_expression "pQVar10 = pixel" identifier = identifier) ;) (for_statement "for (iVar11 = 0x80; iVar11 != 0; iVar11 = iVar11 + -1) {\n    *(undefined4 *)pQVar10 = 0;\n    pQVar10 = (Quantum *)((int)pQVar10 + (uint)bVar13 * -8 + 4);\n  }" for ( (assignment_expression "iVar11 = 0x80" identifier = number_literal) ; (binary_expression "iVar11 != 0" identifier != number_literal) ; (assignment_expression "iVar11 = iVar11 + -1" identifier = (binary_expression "iVar11 + -1" identifier + number_literal)) ) (compound_statement "{\n    *(undefined4 *)pQVar10 = 0;\n    pQVar10 = (Quantum *)((int)pQVar10 + (uint)bVar13 * -8 + 4);\n  }" { (expression_statement "*(undefined4 *)pQVar10 = 0;" (assignment_expression "*(undefined4 *)pQVar10 = 0" (pointer_expression "*(undefined4 *)pQVar10" * (cast_expression "(undefined4 *)pQVar10" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "pQVar10 = (Quantum *)((int)pQVar10 + (uint)bVar13 * -8 + 4);" (assignment_expression "pQVar10 = (Quantum *)((int)pQVar10 + (uint)bVar13 * -8 + 4)" identifier = (cast_expression "(Quantum *)((int)pQVar10 + (uint)bVar13 * -8 + 4)" ( (type_descriptor "Quantum *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pQVar10 + (uint)bVar13 * -8 + 4)" ( (binary_expression "(int)pQVar10 + (uint)bVar13 * -8 + 4" (binary_expression "(int)pQVar10 + (uint)bVar13 * -8" (cast_expression "(int)pQVar10" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar13 * -8" (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) })) (expression_statement "pQVar10 = GetVirtualPixelCacheNexus\n                      (cache_view->image,cache_view->virtual_pixel_method,x,y,1,1,\n                       cache_view->nexus_info[iVar9],exception);" (assignment_expression "pQVar10 = GetVirtualPixelCacheNexus\n                      (cache_view->image,cache_view->virtual_pixel_method,x,y,1,1,\n                       cache_view->nexus_info[iVar9],exception)" identifier = (call_expression "GetVirtualPixelCacheNexus\n                      (cache_view->image,cache_view->virtual_pixel_method,x,y,1,1,\n                       cache_view->nexus_info[iVar9],exception)" identifier (argument_list "(cache_view->image,cache_view->virtual_pixel_method,x,y,1,1,\n                       cache_view->nexus_info[iVar9],exception)" ( (field_expression "cache_view->image" identifier -> field_identifier) , (field_expression "cache_view->virtual_pixel_method" identifier -> field_identifier) , identifier , identifier , number_literal , number_literal , (subscript_expression "cache_view->nexus_info[iVar9]" (field_expression "cache_view->nexus_info" identifier -> field_identifier) [ identifier ]) , identifier )))) ;) (if_statement "if (pQVar10 != (Quantum *)0x0) {\n    sVar6 = cache_view->image->number_channels;\n    if (0 < (int)sVar6) {\n      pPVar12 = cache_view->image->channel_map;\n      pPVar1 = pPVar12 + sVar6;\n      do {\n        pPVar8 = &pPVar12->channel;\n        pPVar12 = pPVar12 + 1;\n        pixel[*pPVar8] = *pQVar10;\n        pQVar10 = pQVar10 + 1;\n      } while (pPVar1 != pPVar12);\n    }\n    return MagickTrue;\n  }" if (parenthesized_expression "(pQVar10 != (Quantum *)0x0)" ( (binary_expression "pQVar10 != (Quantum *)0x0" identifier != (cast_expression "(Quantum *)0x0" ( (type_descriptor "Quantum *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sVar6 = cache_view->image->number_channels;\n    if (0 < (int)sVar6) {\n      pPVar12 = cache_view->image->channel_map;\n      pPVar1 = pPVar12 + sVar6;\n      do {\n        pPVar8 = &pPVar12->channel;\n        pPVar12 = pPVar12 + 1;\n        pixel[*pPVar8] = *pQVar10;\n        pQVar10 = pQVar10 + 1;\n      } while (pPVar1 != pPVar12);\n    }\n    return MagickTrue;\n  }" { (expression_statement "sVar6 = cache_view->image->number_channels;" (assignment_expression "sVar6 = cache_view->image->number_channels" identifier = (field_expression "cache_view->image->number_channels" (field_expression "cache_view->image" identifier -> field_identifier) -> field_identifier)) ;) (if_statement "if (0 < (int)sVar6) {\n      pPVar12 = cache_view->image->channel_map;\n      pPVar1 = pPVar12 + sVar6;\n      do {\n        pPVar8 = &pPVar12->channel;\n        pPVar12 = pPVar12 + 1;\n        pixel[*pPVar8] = *pQVar10;\n        pQVar10 = pQVar10 + 1;\n      } while (pPVar1 != pPVar12);\n    }" if (parenthesized_expression "(0 < (int)sVar6)" ( (binary_expression "0 < (int)sVar6" number_literal < (cast_expression "(int)sVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      pPVar12 = cache_view->image->channel_map;\n      pPVar1 = pPVar12 + sVar6;\n      do {\n        pPVar8 = &pPVar12->channel;\n        pPVar12 = pPVar12 + 1;\n        pixel[*pPVar8] = *pQVar10;\n        pQVar10 = pQVar10 + 1;\n      } while (pPVar1 != pPVar12);\n    }" { (expression_statement "pPVar12 = cache_view->image->channel_map;" (assignment_expression "pPVar12 = cache_view->image->channel_map" identifier = (field_expression "cache_view->image->channel_map" (field_expression "cache_view->image" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "pPVar1 = pPVar12 + sVar6;" (assignment_expression "pPVar1 = pPVar12 + sVar6" identifier = (binary_expression "pPVar12 + sVar6" identifier + identifier)) ;) (do_statement "do {\n        pPVar8 = &pPVar12->channel;\n        pPVar12 = pPVar12 + 1;\n        pixel[*pPVar8] = *pQVar10;\n        pQVar10 = pQVar10 + 1;\n      } while (pPVar1 != pPVar12);" do (compound_statement "{\n        pPVar8 = &pPVar12->channel;\n        pPVar12 = pPVar12 + 1;\n        pixel[*pPVar8] = *pQVar10;\n        pQVar10 = pQVar10 + 1;\n      }" { (expression_statement "pPVar8 = &pPVar12->channel;" (assignment_expression "pPVar8 = &pPVar12->channel" identifier = (pointer_expression "&pPVar12->channel" & (field_expression "pPVar12->channel" identifier -> field_identifier))) ;) (expression_statement "pPVar12 = pPVar12 + 1;" (assignment_expression "pPVar12 = pPVar12 + 1" identifier = (binary_expression "pPVar12 + 1" identifier + number_literal)) ;) (expression_statement "pixel[*pPVar8] = *pQVar10;" (assignment_expression "pixel[*pPVar8] = *pQVar10" (subscript_expression "pixel[*pPVar8]" identifier [ (pointer_expression "*pPVar8" * identifier) ]) = (pointer_expression "*pQVar10" * identifier)) ;) (expression_statement "pQVar10 = pQVar10 + 1;" (assignment_expression "pQVar10 = pQVar10 + 1" identifier = (binary_expression "pQVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pPVar1 != pPVar12)" ( (binary_expression "pPVar1 != pPVar12" identifier != identifier) )) ;) })) (return_statement "return MagickTrue;" return identifier ;) })) (expression_statement "pIVar7 = cache_view->image;" (assignment_expression "pIVar7 = cache_view->image" identifier = (field_expression "cache_view->image" identifier -> field_identifier)) ;) (expression_statement "MVar2 = (pIVar7->background_color).green;" (assignment_expression "MVar2 = (pIVar7->background_color).green" identifier = (field_expression "(pIVar7->background_color).green" (parenthesized_expression "(pIVar7->background_color)" ( (field_expression "pIVar7->background_color" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "MVar3 = (pIVar7->background_color).blue;" (assignment_expression "MVar3 = (pIVar7->background_color).blue" identifier = (field_expression "(pIVar7->background_color).blue" (parenthesized_expression "(pIVar7->background_color)" ( (field_expression "pIVar7->background_color" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "MVar4 = (pIVar7->background_color).black;" (assignment_expression "MVar4 = (pIVar7->background_color).black" identifier = (field_expression "(pIVar7->background_color).black" (parenthesized_expression "(pIVar7->background_color)" ( (field_expression "pIVar7->background_color" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "MVar5 = (pIVar7->background_color).alpha;" (assignment_expression "MVar5 = (pIVar7->background_color).alpha" identifier = (field_expression "(pIVar7->background_color).alpha" (parenthesized_expression "(pIVar7->background_color)" ( (field_expression "pIVar7->background_color" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "*pixel = (pIVar7->background_color).red;" (assignment_expression "*pixel = (pIVar7->background_color).red" (pointer_expression "*pixel" * identifier) = (field_expression "(pIVar7->background_color).red" (parenthesized_expression "(pIVar7->background_color)" ( (field_expression "pIVar7->background_color" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pixel[1] = MVar2;" (assignment_expression "pixel[1] = MVar2" (subscript_expression "pixel[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixel[2] = MVar3;" (assignment_expression "pixel[2] = MVar3" (subscript_expression "pixel[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixel[3] = MVar4;" (assignment_expression "pixel[3] = MVar4" (subscript_expression "pixel[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pixel[4] = MVar5;" (assignment_expression "pixel[4] = MVar5" (subscript_expression "pixel[4]" identifier [ number_literal ]) = identifier) ;) (return_statement "return MagickFalse;" return identifier ;) })))
(translation_unit "undefined4\nGetOneCacheViewVirtualPixel\n          (int *param_1,undefined4 param_2,undefined4 param_3,undefined8 *param_4,undefined4 param_5\n          )\n\n{\n  int *piVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  int iVar6;\n  undefined8 *puVar7;\n  int iVar8;\n  int *piVar9;\n  byte bVar10;\n  \n  bVar10 = 0;\n  iVar6 = omp_get_thread_num();\n  if (param_1 == (int *)0x0) {\n                    \n    __assert_fail("cache_view != (CacheView *) NULL","MagickCore/cache-view.c",0x312,\n                  "GetOneCacheViewVirtualPixel");\n  }\n  if (param_1[5] != -0x54535255) {\n                    \n    __assert_fail("cache_view->signature == MagickCoreSignature","MagickCore/cache-view.c",0x313,\n                  "GetOneCacheViewVirtualPixel");\n  }\n  if (param_1[2] <= iVar6) {\n                    \n    __assert_fail("id < (int) cache_view->number_threads","MagickCore/cache-view.c",0x314,\n                  "GetOneCacheViewVirtualPixel");\n  }\n  puVar7 = param_4;\n  for (iVar8 = 0x80; iVar8 != 0; iVar8 = iVar8 + -1) {\n    *(undefined4 *)puVar7 = 0;\n    puVar7 = (undefined8 *)((int)puVar7 + (uint)bVar10 * -8 + 4);\n  }\n  puVar7 = (undefined8 *)\n           FUN_00036810(*param_1,param_1[1],param_2,param_3,1,1,\n                        *(undefined4 *)(param_1[3] + iVar6 * 4),param_5);\n  if (puVar7 != (undefined8 *)0x0) {\n    iVar6 = *(int *)(*param_1 + 0x298);\n    if (0 < iVar6) {\n      piVar9 = *(int **)(*param_1 + 0x2a8);\n      piVar1 = piVar9 + iVar6 * 3;\n      do {\n        iVar6 = *piVar9;\n        piVar9 = piVar9 + 3;\n        param_4[iVar6] = *puVar7;\n        puVar7 = puVar7 + 1;\n      } while (piVar1 != piVar9);\n    }\n    return 1;\n  }\n  iVar6 = *param_1;\n  uVar2 = *(undefined8 *)(iVar6 + 0xa4);\n  uVar3 = *(undefined8 *)(iVar6 + 0xac);\n  uVar4 = *(undefined8 *)(iVar6 + 0xb4);\n  uVar5 = *(undefined8 *)(iVar6 + 0xbc);\n  *param_4 = *(undefined8 *)(iVar6 + 0x9c);\n  param_4[1] = uVar2;\n  param_4[2] = uVar3;\n  param_4[3] = uVar4;\n  param_4[4] = uVar5;\n  return 0;\n}\n\n" (function_definition "undefined4\nGetOneCacheViewVirtualPixel\n          (int *param_1,undefined4 param_2,undefined4 param_3,undefined8 *param_4,undefined4 param_5\n          )\n\n{\n  int *piVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  int iVar6;\n  undefined8 *puVar7;\n  int iVar8;\n  int *piVar9;\n  byte bVar10;\n  \n  bVar10 = 0;\n  iVar6 = omp_get_thread_num();\n  if (param_1 == (int *)0x0) {\n                    \n    __assert_fail("cache_view != (CacheView *) NULL","MagickCore/cache-view.c",0x312,\n                  "GetOneCacheViewVirtualPixel");\n  }\n  if (param_1[5] != -0x54535255) {\n                    \n    __assert_fail("cache_view->signature == MagickCoreSignature","MagickCore/cache-view.c",0x313,\n                  "GetOneCacheViewVirtualPixel");\n  }\n  if (param_1[2] <= iVar6) {\n                    \n    __assert_fail("id < (int) cache_view->number_threads","MagickCore/cache-view.c",0x314,\n                  "GetOneCacheViewVirtualPixel");\n  }\n  puVar7 = param_4;\n  for (iVar8 = 0x80; iVar8 != 0; iVar8 = iVar8 + -1) {\n    *(undefined4 *)puVar7 = 0;\n    puVar7 = (undefined8 *)((int)puVar7 + (uint)bVar10 * -8 + 4);\n  }\n  puVar7 = (undefined8 *)\n           FUN_00036810(*param_1,param_1[1],param_2,param_3,1,1,\n                        *(undefined4 *)(param_1[3] + iVar6 * 4),param_5);\n  if (puVar7 != (undefined8 *)0x0) {\n    iVar6 = *(int *)(*param_1 + 0x298);\n    if (0 < iVar6) {\n      piVar9 = *(int **)(*param_1 + 0x2a8);\n      piVar1 = piVar9 + iVar6 * 3;\n      do {\n        iVar6 = *piVar9;\n        piVar9 = piVar9 + 3;\n        param_4[iVar6] = *puVar7;\n        puVar7 = puVar7 + 1;\n      } while (piVar1 != piVar9);\n    }\n    return 1;\n  }\n  iVar6 = *param_1;\n  uVar2 = *(undefined8 *)(iVar6 + 0xa4);\n  uVar3 = *(undefined8 *)(iVar6 + 0xac);\n  uVar4 = *(undefined8 *)(iVar6 + 0xb4);\n  uVar5 = *(undefined8 *)(iVar6 + 0xbc);\n  *param_4 = *(undefined8 *)(iVar6 + 0x9c);\n  param_4[1] = uVar2;\n  param_4[2] = uVar3;\n  param_4[3] = uVar4;\n  param_4[4] = uVar5;\n  return 0;\n}" type_identifier (function_declarator "GetOneCacheViewVirtualPixel\n          (int *param_1,undefined4 param_2,undefined4 param_3,undefined8 *param_4,undefined4 param_5\n          )" identifier (parameter_list "(int *param_1,undefined4 param_2,undefined4 param_3,undefined8 *param_4,undefined4 param_5\n          )" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined8 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "undefined4 param_5" type_identifier identifier) ))) (compound_statement "{\n  int *piVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  int iVar6;\n  undefined8 *puVar7;\n  int iVar8;\n  int *piVar9;\n  byte bVar10;\n  \n  bVar10 = 0;\n  iVar6 = omp_get_thread_num();\n  if (param_1 == (int *)0x0) {\n                    \n    __assert_fail("cache_view != (CacheView *) NULL","MagickCore/cache-view.c",0x312,\n                  "GetOneCacheViewVirtualPixel");\n  }\n  if (param_1[5] != -0x54535255) {\n                    \n    __assert_fail("cache_view->signature == MagickCoreSignature","MagickCore/cache-view.c",0x313,\n                  "GetOneCacheViewVirtualPixel");\n  }\n  if (param_1[2] <= iVar6) {\n                    \n    __assert_fail("id < (int) cache_view->number_threads","MagickCore/cache-view.c",0x314,\n                  "GetOneCacheViewVirtualPixel");\n  }\n  puVar7 = param_4;\n  for (iVar8 = 0x80; iVar8 != 0; iVar8 = iVar8 + -1) {\n    *(undefined4 *)puVar7 = 0;\n    puVar7 = (undefined8 *)((int)puVar7 + (uint)bVar10 * -8 + 4);\n  }\n  puVar7 = (undefined8 *)\n           FUN_00036810(*param_1,param_1[1],param_2,param_3,1,1,\n                        *(undefined4 *)(param_1[3] + iVar6 * 4),param_5);\n  if (puVar7 != (undefined8 *)0x0) {\n    iVar6 = *(int *)(*param_1 + 0x298);\n    if (0 < iVar6) {\n      piVar9 = *(int **)(*param_1 + 0x2a8);\n      piVar1 = piVar9 + iVar6 * 3;\n      do {\n        iVar6 = *piVar9;\n        piVar9 = piVar9 + 3;\n        param_4[iVar6] = *puVar7;\n        puVar7 = puVar7 + 1;\n      } while (piVar1 != piVar9);\n    }\n    return 1;\n  }\n  iVar6 = *param_1;\n  uVar2 = *(undefined8 *)(iVar6 + 0xa4);\n  uVar3 = *(undefined8 *)(iVar6 + 0xac);\n  uVar4 = *(undefined8 *)(iVar6 + 0xb4);\n  uVar5 = *(undefined8 *)(iVar6 + 0xbc);\n  *param_4 = *(undefined8 *)(iVar6 + 0x9c);\n  param_4[1] = uVar2;\n  param_4[2] = uVar3;\n  param_4[3] = uVar4;\n  param_4[4] = uVar5;\n  return 0;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined8 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "byte bVar10;" type_identifier identifier ;) (expression_statement "bVar10 = 0;" (assignment_expression "bVar10 = 0" identifier = number_literal) ;) (expression_statement "iVar6 = omp_get_thread_num();" (assignment_expression "iVar6 = omp_get_thread_num()" identifier = (call_expression "omp_get_thread_num()" identifier (argument_list "()" ( )))) ;) (if_statement "if (param_1 == (int *)0x0) {\n                    \n    __assert_fail("cache_view != (CacheView *) NULL","MagickCore/cache-view.c",0x312,\n                  "GetOneCacheViewVirtualPixel");\n  }" if (parenthesized_expression "(param_1 == (int *)0x0)" ( (binary_expression "param_1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n    __assert_fail("cache_view != (CacheView *) NULL","MagickCore/cache-view.c",0x312,\n                  "GetOneCacheViewVirtualPixel");\n  }" { (expression_statement "__assert_fail("cache_view != (CacheView *) NULL","MagickCore/cache-view.c",0x312,\n                  "GetOneCacheViewVirtualPixel");" (call_expression "__assert_fail("cache_view != (CacheView *) NULL","MagickCore/cache-view.c",0x312,\n                  "GetOneCacheViewVirtualPixel")" identifier (argument_list "("cache_view != (CacheView *) NULL","MagickCore/cache-view.c",0x312,\n                  "GetOneCacheViewVirtualPixel")" ( (string_literal ""cache_view != (CacheView *) NULL"" " string_content ") , (string_literal ""MagickCore/cache-view.c"" " string_content ") , number_literal , (string_literal ""GetOneCacheViewVirtualPixel"" " string_content ") ))) ;) })) (if_statement "if (param_1[5] != -0x54535255) {\n                    \n    __assert_fail("cache_view->signature == MagickCoreSignature","MagickCore/cache-view.c",0x313,\n                  "GetOneCacheViewVirtualPixel");\n  }" if (parenthesized_expression "(param_1[5] != -0x54535255)" ( (binary_expression "param_1[5] != -0x54535255" (subscript_expression "param_1[5]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                    \n    __assert_fail("cache_view->signature == MagickCoreSignature","MagickCore/cache-view.c",0x313,\n                  "GetOneCacheViewVirtualPixel");\n  }" { (expression_statement "__assert_fail("cache_view->signature == MagickCoreSignature","MagickCore/cache-view.c",0x313,\n                  "GetOneCacheViewVirtualPixel");" (call_expression "__assert_fail("cache_view->signature == MagickCoreSignature","MagickCore/cache-view.c",0x313,\n                  "GetOneCacheViewVirtualPixel")" identifier (argument_list "("cache_view->signature == MagickCoreSignature","MagickCore/cache-view.c",0x313,\n                  "GetOneCacheViewVirtualPixel")" ( (string_literal ""cache_view->signature == MagickCoreSignature"" " string_content ") , (string_literal ""MagickCore/cache-view.c"" " string_content ") , number_literal , (string_literal ""GetOneCacheViewVirtualPixel"" " string_content ") ))) ;) })) (if_statement "if (param_1[2] <= iVar6) {\n                    \n    __assert_fail("id < (int) cache_view->number_threads","MagickCore/cache-view.c",0x314,\n                  "GetOneCacheViewVirtualPixel");\n  }" if (parenthesized_expression "(param_1[2] <= iVar6)" ( (binary_expression "param_1[2] <= iVar6" (subscript_expression "param_1[2]" identifier [ number_literal ]) <= identifier) )) (compound_statement "{\n                    \n    __assert_fail("id < (int) cache_view->number_threads","MagickCore/cache-view.c",0x314,\n                  "GetOneCacheViewVirtualPixel");\n  }" { (expression_statement "__assert_fail("id < (int) cache_view->number_threads","MagickCore/cache-view.c",0x314,\n                  "GetOneCacheViewVirtualPixel");" (call_expression "__assert_fail("id < (int) cache_view->number_threads","MagickCore/cache-view.c",0x314,\n                  "GetOneCacheViewVirtualPixel")" identifier (argument_list "("id < (int) cache_view->number_threads","MagickCore/cache-view.c",0x314,\n                  "GetOneCacheViewVirtualPixel")" ( (string_literal ""id < (int) cache_view->number_threads"" " string_content ") , (string_literal ""MagickCore/cache-view.c"" " string_content ") , number_literal , (string_literal ""GetOneCacheViewVirtualPixel"" " string_content ") ))) ;) })) (expression_statement "puVar7 = param_4;" (assignment_expression "puVar7 = param_4" identifier = identifier) ;) (for_statement "for (iVar8 = 0x80; iVar8 != 0; iVar8 = iVar8 + -1) {\n    *(undefined4 *)puVar7 = 0;\n    puVar7 = (undefined8 *)((int)puVar7 + (uint)bVar10 * -8 + 4);\n  }" for ( (assignment_expression "iVar8 = 0x80" identifier = number_literal) ; (binary_expression "iVar8 != 0" identifier != number_literal) ; (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ) (compound_statement "{\n    *(undefined4 *)puVar7 = 0;\n    puVar7 = (undefined8 *)((int)puVar7 + (uint)bVar10 * -8 + 4);\n  }" { (expression_statement "*(undefined4 *)puVar7 = 0;" (assignment_expression "*(undefined4 *)puVar7 = 0" (pointer_expression "*(undefined4 *)puVar7" * (cast_expression "(undefined4 *)puVar7" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "puVar7 = (undefined8 *)((int)puVar7 + (uint)bVar10 * -8 + 4);" (assignment_expression "puVar7 = (undefined8 *)((int)puVar7 + (uint)bVar10 * -8 + 4)" identifier = (cast_expression "(undefined8 *)((int)puVar7 + (uint)bVar10 * -8 + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + (uint)bVar10 * -8 + 4)" ( (binary_expression "(int)puVar7 + (uint)bVar10 * -8 + 4" (binary_expression "(int)puVar7 + (uint)bVar10 * -8" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar10 * -8" (cast_expression "(uint)bVar10" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) })) (expression_statement "puVar7 = (undefined8 *)\n           FUN_00036810(*param_1,param_1[1],param_2,param_3,1,1,\n                        *(undefined4 *)(param_1[3] + iVar6 * 4),param_5);" (assignment_expression "puVar7 = (undefined8 *)\n           FUN_00036810(*param_1,param_1[1],param_2,param_3,1,1,\n                        *(undefined4 *)(param_1[3] + iVar6 * 4),param_5)" identifier = (cast_expression "(undefined8 *)\n           FUN_00036810(*param_1,param_1[1],param_2,param_3,1,1,\n                        *(undefined4 *)(param_1[3] + iVar6 * 4),param_5)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00036810(*param_1,param_1[1],param_2,param_3,1,1,\n                        *(undefined4 *)(param_1[3] + iVar6 * 4),param_5)" identifier (argument_list "(*param_1,param_1[1],param_2,param_3,1,1,\n                        *(undefined4 *)(param_1[3] + iVar6 * 4),param_5)" ( (pointer_expression "*param_1" * identifier) , (subscript_expression "param_1[1]" identifier [ number_literal ]) , identifier , identifier , number_literal , number_literal , (pointer_expression "*(undefined4 *)(param_1[3] + iVar6 * 4)" * (cast_expression "(undefined4 *)(param_1[3] + iVar6 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[3] + iVar6 * 4)" ( (binary_expression "param_1[3] + iVar6 * 4" (subscript_expression "param_1[3]" identifier [ number_literal ]) + (binary_expression "iVar6 * 4" identifier * number_literal)) )))) , identifier ))))) ;) (if_statement "if (puVar7 != (undefined8 *)0x0) {\n    iVar6 = *(int *)(*param_1 + 0x298);\n    if (0 < iVar6) {\n      piVar9 = *(int **)(*param_1 + 0x2a8);\n      piVar1 = piVar9 + iVar6 * 3;\n      do {\n        iVar6 = *piVar9;\n        piVar9 = piVar9 + 3;\n        param_4[iVar6] = *puVar7;\n        puVar7 = puVar7 + 1;\n      } while (piVar1 != piVar9);\n    }\n    return 1;\n  }" if (parenthesized_expression "(puVar7 != (undefined8 *)0x0)" ( (binary_expression "puVar7 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar6 = *(int *)(*param_1 + 0x298);\n    if (0 < iVar6) {\n      piVar9 = *(int **)(*param_1 + 0x2a8);\n      piVar1 = piVar9 + iVar6 * 3;\n      do {\n        iVar6 = *piVar9;\n        piVar9 = piVar9 + 3;\n        param_4[iVar6] = *puVar7;\n        puVar7 = puVar7 + 1;\n      } while (piVar1 != piVar9);\n    }\n    return 1;\n  }" { (expression_statement "iVar6 = *(int *)(*param_1 + 0x298);" (assignment_expression "iVar6 = *(int *)(*param_1 + 0x298)" identifier = (pointer_expression "*(int *)(*param_1 + 0x298)" * (cast_expression "(int *)(*param_1 + 0x298)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x298)" ( (binary_expression "*param_1 + 0x298" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ;) (if_statement "if (0 < iVar6) {\n      piVar9 = *(int **)(*param_1 + 0x2a8);\n      piVar1 = piVar9 + iVar6 * 3;\n      do {\n        iVar6 = *piVar9;\n        piVar9 = piVar9 + 3;\n        param_4[iVar6] = *puVar7;\n        puVar7 = puVar7 + 1;\n      } while (piVar1 != piVar9);\n    }" if (parenthesized_expression "(0 < iVar6)" ( (binary_expression "0 < iVar6" number_literal < identifier) )) (compound_statement "{\n      piVar9 = *(int **)(*param_1 + 0x2a8);\n      piVar1 = piVar9 + iVar6 * 3;\n      do {\n        iVar6 = *piVar9;\n        piVar9 = piVar9 + 3;\n        param_4[iVar6] = *puVar7;\n        puVar7 = puVar7 + 1;\n      } while (piVar1 != piVar9);\n    }" { (expression_statement "piVar9 = *(int **)(*param_1 + 0x2a8);" (assignment_expression "piVar9 = *(int **)(*param_1 + 0x2a8)" identifier = (pointer_expression "*(int **)(*param_1 + 0x2a8)" * (cast_expression "(int **)(*param_1 + 0x2a8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x2a8)" ( (binary_expression "*param_1 + 0x2a8" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ;) (expression_statement "piVar1 = piVar9 + iVar6 * 3;" (assignment_expression "piVar1 = piVar9 + iVar6 * 3" identifier = (binary_expression "piVar9 + iVar6 * 3" identifier + (binary_expression "iVar6 * 3" identifier * number_literal))) ;) (do_statement "do {\n        iVar6 = *piVar9;\n        piVar9 = piVar9 + 3;\n        param_4[iVar6] = *puVar7;\n        puVar7 = puVar7 + 1;\n      } while (piVar1 != piVar9);" do (compound_statement "{\n        iVar6 = *piVar9;\n        piVar9 = piVar9 + 3;\n        param_4[iVar6] = *puVar7;\n        puVar7 = puVar7 + 1;\n      }" { (expression_statement "iVar6 = *piVar9;" (assignment_expression "iVar6 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (expression_statement "piVar9 = piVar9 + 3;" (assignment_expression "piVar9 = piVar9 + 3" identifier = (binary_expression "piVar9 + 3" identifier + number_literal)) ;) (expression_statement "param_4[iVar6] = *puVar7;" (assignment_expression "param_4[iVar6] = *puVar7" (subscript_expression "param_4[iVar6]" identifier [ identifier ]) = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" identifier = (binary_expression "puVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar1 != piVar9)" ( (binary_expression "piVar1 != piVar9" identifier != identifier) )) ;) })) (return_statement "return 1;" return number_literal ;) })) (expression_statement "iVar6 = *param_1;" (assignment_expression "iVar6 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar2 = *(undefined8 *)(iVar6 + 0xa4);" (assignment_expression "uVar2 = *(undefined8 *)(iVar6 + 0xa4)" identifier = (pointer_expression "*(undefined8 *)(iVar6 + 0xa4)" * (cast_expression "(undefined8 *)(iVar6 + 0xa4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xa4)" ( (binary_expression "iVar6 + 0xa4" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(undefined8 *)(iVar6 + 0xac);" (assignment_expression "uVar3 = *(undefined8 *)(iVar6 + 0xac)" identifier = (pointer_expression "*(undefined8 *)(iVar6 + 0xac)" * (cast_expression "(undefined8 *)(iVar6 + 0xac)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xac)" ( (binary_expression "iVar6 + 0xac" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(undefined8 *)(iVar6 + 0xb4);" (assignment_expression "uVar4 = *(undefined8 *)(iVar6 + 0xb4)" identifier = (pointer_expression "*(undefined8 *)(iVar6 + 0xb4)" * (cast_expression "(undefined8 *)(iVar6 + 0xb4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xb4)" ( (binary_expression "iVar6 + 0xb4" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = *(undefined8 *)(iVar6 + 0xbc);" (assignment_expression "uVar5 = *(undefined8 *)(iVar6 + 0xbc)" identifier = (pointer_expression "*(undefined8 *)(iVar6 + 0xbc)" * (cast_expression "(undefined8 *)(iVar6 + 0xbc)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xbc)" ( (binary_expression "iVar6 + 0xbc" identifier + number_literal) ))))) ;) (expression_statement "*param_4 = *(undefined8 *)(iVar6 + 0x9c);" (assignment_expression "*param_4 = *(undefined8 *)(iVar6 + 0x9c)" (pointer_expression "*param_4" * identifier) = (pointer_expression "*(undefined8 *)(iVar6 + 0x9c)" * (cast_expression "(undefined8 *)(iVar6 + 0x9c)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x9c)" ( (binary_expression "iVar6 + 0x9c" identifier + number_literal) ))))) ;) (expression_statement "param_4[1] = uVar2;" (assignment_expression "param_4[1] = uVar2" (subscript_expression "param_4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_4[2] = uVar3;" (assignment_expression "param_4[2] = uVar3" (subscript_expression "param_4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_4[3] = uVar4;" (assignment_expression "param_4[3] = uVar4" (subscript_expression "param_4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_4[4] = uVar5;" (assignment_expression "param_4[4] = uVar5" (subscript_expression "param_4[4]" identifier [ number_literal ]) = identifier) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) <= IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (for_statement for ( (assignment_expression IDENT = LIT) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , (subscript_expression IDENT [ LIT ]) , IDENT , IDENT , LIT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) )))) , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (return_statement return LIT ;) })))
(function_definition "undefined4\nGetOneCacheViewVirtualPixel\n          (int *param_1,undefined4 param_2,undefined4 param_3,undefined8 *param_4,undefined4 param_5\n          )\n\n{\n  int *piVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  int iVar6;\n  undefined8 *puVar7;\n  int iVar8;\n  int *piVar9;\n  byte bVar10;\n  \n  bVar10 = 0;\n  iVar6 = omp_get_thread_num();\n  if (param_1 == (int *)0x0) {\n                    \n    __assert_fail("cache_view != (CacheView *) NULL","MagickCore/cache-view.c",0x312,\n                  "GetOneCacheViewVirtualPixel");\n  }\n  if (param_1[5] != -0x54535255) {\n                    \n    __assert_fail("cache_view->signature == MagickCoreSignature","MagickCore/cache-view.c",0x313,\n                  "GetOneCacheViewVirtualPixel");\n  }\n  if (param_1[2] <= iVar6) {\n                    \n    __assert_fail("id < (int) cache_view->number_threads","MagickCore/cache-view.c",0x314,\n                  "GetOneCacheViewVirtualPixel");\n  }\n  puVar7 = param_4;\n  for (iVar8 = 0x80; iVar8 != 0; iVar8 = iVar8 + -1) {\n    *(undefined4 *)puVar7 = 0;\n    puVar7 = (undefined8 *)((int)puVar7 + (uint)bVar10 * -8 + 4);\n  }\n  puVar7 = (undefined8 *)\n           FUN_00036810(*param_1,param_1[1],param_2,param_3,1,1,\n                        *(undefined4 *)(param_1[3] + iVar6 * 4),param_5);\n  if (puVar7 != (undefined8 *)0x0) {\n    iVar6 = *(int *)(*param_1 + 0x298);\n    if (0 < iVar6) {\n      piVar9 = *(int **)(*param_1 + 0x2a8);\n      piVar1 = piVar9 + iVar6 * 3;\n      do {\n        iVar6 = *piVar9;\n        piVar9 = piVar9 + 3;\n        param_4[iVar6] = *puVar7;\n        puVar7 = puVar7 + 1;\n      } while (piVar1 != piVar9);\n    }\n    return 1;\n  }\n  iVar6 = *param_1;\n  uVar2 = *(undefined8 *)(iVar6 + 0xa4);\n  uVar3 = *(undefined8 *)(iVar6 + 0xac);\n  uVar4 = *(undefined8 *)(iVar6 + 0xb4);\n  uVar5 = *(undefined8 *)(iVar6 + 0xbc);\n  *param_4 = *(undefined8 *)(iVar6 + 0x9c);\n  param_4[1] = uVar2;\n  param_4[2] = uVar3;\n  param_4[3] = uVar4;\n  param_4[4] = uVar5;\n  return 0;\n}" (type_identifier "undefined4") (function_declarator "GetOneCacheViewVirtualPixel\n          (int *param_1,undefined4 param_2,undefined4 param_3,undefined8 *param_4,undefined4 param_5\n          )" (identifier "GetOneCacheViewVirtualPixel") (parameter_list "(int *param_1,undefined4 param_2,undefined4 param_3,undefined8 *param_4,undefined4 param_5\n          )" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "undefined8 *param_4" (type_identifier "undefined8") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "undefined4 param_5" (type_identifier "undefined4") (identifier "param_5")) () ")"))) (compound_statement "{\n  int *piVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  undefined8 uVar5;\n  int iVar6;\n  undefined8 *puVar7;\n  int iVar8;\n  int *piVar9;\n  byte bVar10;\n  \n  bVar10 = 0;\n  iVar6 = omp_get_thread_num();\n  if (param_1 == (int *)0x0) {\n                    \n    __assert_fail("cache_view != (CacheView *) NULL","MagickCore/cache-view.c",0x312,\n                  "GetOneCacheViewVirtualPixel");\n  }\n  if (param_1[5] != -0x54535255) {\n                    \n    __assert_fail("cache_view->signature == MagickCoreSignature","MagickCore/cache-view.c",0x313,\n                  "GetOneCacheViewVirtualPixel");\n  }\n  if (param_1[2] <= iVar6) {\n                    \n    __assert_fail("id < (int) cache_view->number_threads","MagickCore/cache-view.c",0x314,\n                  "GetOneCacheViewVirtualPixel");\n  }\n  puVar7 = param_4;\n  for (iVar8 = 0x80; iVar8 != 0; iVar8 = iVar8 + -1) {\n    *(undefined4 *)puVar7 = 0;\n    puVar7 = (undefined8 *)((int)puVar7 + (uint)bVar10 * -8 + 4);\n  }\n  puVar7 = (undefined8 *)\n           FUN_00036810(*param_1,param_1[1],param_2,param_3,1,1,\n                        *(undefined4 *)(param_1[3] + iVar6 * 4),param_5);\n  if (puVar7 != (undefined8 *)0x0) {\n    iVar6 = *(int *)(*param_1 + 0x298);\n    if (0 < iVar6) {\n      piVar9 = *(int **)(*param_1 + 0x2a8);\n      piVar1 = piVar9 + iVar6 * 3;\n      do {\n        iVar6 = *piVar9;\n        piVar9 = piVar9 + 3;\n        param_4[iVar6] = *puVar7;\n        puVar7 = puVar7 + 1;\n      } while (piVar1 != piVar9);\n    }\n    return 1;\n  }\n  iVar6 = *param_1;\n  uVar2 = *(undefined8 *)(iVar6 + 0xa4);\n  uVar3 = *(undefined8 *)(iVar6 + 0xac);\n  uVar4 = *(undefined8 *)(iVar6 + 0xb4);\n  uVar5 = *(undefined8 *)(iVar6 + 0xbc);\n  *param_4 = *(undefined8 *)(iVar6 + 0x9c);\n  param_4[1] = uVar2;\n  param_4[2] = uVar3;\n  param_4[3] = uVar4;\n  param_4[4] = uVar5;\n  return 0;\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "undefined8 uVar2;" (type_identifier "undefined8") (identifier "uVar2") (; ";")) (declaration "undefined8 uVar3;" (type_identifier "undefined8") (identifier "uVar3") (; ";")) (declaration "undefined8 uVar4;" (type_identifier "undefined8") (identifier "uVar4") (; ";")) (declaration "undefined8 uVar5;" (type_identifier "undefined8") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "undefined8 *puVar7;" (type_identifier "undefined8") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int *piVar9;" (primitive_type "int") (pointer_declarator "*piVar9" (* "*") (identifier "piVar9")) (; ";")) (declaration "byte bVar10;" (type_identifier "byte") (identifier "bVar10") (; ";")) (expression_statement "bVar10 = 0;" (assignment_expression "bVar10 = 0" (identifier "bVar10") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar6 = omp_get_thread_num();" (assignment_expression "iVar6 = omp_get_thread_num()" (identifier "iVar6") (= "=") (call_expression "omp_get_thread_num()" (identifier "omp_get_thread_num") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (param_1 == (int *)0x0) {\n                    \n    __assert_fail("cache_view != (CacheView *) NULL","MagickCore/cache-view.c",0x312,\n                  "GetOneCacheViewVirtualPixel");\n  }" (if "if") (parenthesized_expression "(param_1 == (int *)0x0)" (( "(") (binary_expression "param_1 == (int *)0x0" (identifier "param_1") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n    __assert_fail("cache_view != (CacheView *) NULL","MagickCore/cache-view.c",0x312,\n                  "GetOneCacheViewVirtualPixel");\n  }" ({ "{") (expression_statement "__assert_fail("cache_view != (CacheView *) NULL","MagickCore/cache-view.c",0x312,\n                  "GetOneCacheViewVirtualPixel");" (call_expression "__assert_fail("cache_view != (CacheView *) NULL","MagickCore/cache-view.c",0x312,\n                  "GetOneCacheViewVirtualPixel")" (identifier "__assert_fail") (argument_list "("cache_view != (CacheView *) NULL","MagickCore/cache-view.c",0x312,\n                  "GetOneCacheViewVirtualPixel")" (( "(") (string_literal ""cache_view != (CacheView *) NULL"" (" """) (string_content "cache_view != (CacheView *) NULL") (" """)) (, ",") (string_literal ""MagickCore/cache-view.c"" (" """) (string_content "MagickCore/cache-view.c") (" """)) (, ",") (number_literal "0x312") (, ",") (string_literal ""GetOneCacheViewVirtualPixel"" (" """) (string_content "GetOneCacheViewVirtualPixel") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (param_1[5] != -0x54535255) {\n                    \n    __assert_fail("cache_view->signature == MagickCoreSignature","MagickCore/cache-view.c",0x313,\n                  "GetOneCacheViewVirtualPixel");\n  }" (if "if") (parenthesized_expression "(param_1[5] != -0x54535255)" (( "(") (binary_expression "param_1[5] != -0x54535255" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (!= "!=") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n                    \n    __assert_fail("cache_view->signature == MagickCoreSignature","MagickCore/cache-view.c",0x313,\n                  "GetOneCacheViewVirtualPixel");\n  }" ({ "{") (expression_statement "__assert_fail("cache_view->signature == MagickCoreSignature","MagickCore/cache-view.c",0x313,\n                  "GetOneCacheViewVirtualPixel");" (call_expression "__assert_fail("cache_view->signature == MagickCoreSignature","MagickCore/cache-view.c",0x313,\n                  "GetOneCacheViewVirtualPixel")" (identifier "__assert_fail") (argument_list "("cache_view->signature == MagickCoreSignature","MagickCore/cache-view.c",0x313,\n                  "GetOneCacheViewVirtualPixel")" (( "(") (string_literal ""cache_view->signature == MagickCoreSignature"" (" """) (string_content "cache_view->signature == MagickCoreSignature") (" """)) (, ",") (string_literal ""MagickCore/cache-view.c"" (" """) (string_content "MagickCore/cache-view.c") (" """)) (, ",") (number_literal "0x313") (, ",") (string_literal ""GetOneCacheViewVirtualPixel"" (" """) (string_content "GetOneCacheViewVirtualPixel") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (param_1[2] <= iVar6) {\n                    \n    __assert_fail("id < (int) cache_view->number_threads","MagickCore/cache-view.c",0x314,\n                  "GetOneCacheViewVirtualPixel");\n  }" (if "if") (parenthesized_expression "(param_1[2] <= iVar6)" (( "(") (binary_expression "param_1[2] <= iVar6" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (<= "<=") (identifier "iVar6")) () ")")) (compound_statement "{\n                    \n    __assert_fail("id < (int) cache_view->number_threads","MagickCore/cache-view.c",0x314,\n                  "GetOneCacheViewVirtualPixel");\n  }" ({ "{") (expression_statement "__assert_fail("id < (int) cache_view->number_threads","MagickCore/cache-view.c",0x314,\n                  "GetOneCacheViewVirtualPixel");" (call_expression "__assert_fail("id < (int) cache_view->number_threads","MagickCore/cache-view.c",0x314,\n                  "GetOneCacheViewVirtualPixel")" (identifier "__assert_fail") (argument_list "("id < (int) cache_view->number_threads","MagickCore/cache-view.c",0x314,\n                  "GetOneCacheViewVirtualPixel")" (( "(") (string_literal ""id < (int) cache_view->number_threads"" (" """) (string_content "id < (int) cache_view->number_threads") (" """)) (, ",") (string_literal ""MagickCore/cache-view.c"" (" """) (string_content "MagickCore/cache-view.c") (" """)) (, ",") (number_literal "0x314") (, ",") (string_literal ""GetOneCacheViewVirtualPixel"" (" """) (string_content "GetOneCacheViewVirtualPixel") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "puVar7 = param_4;" (assignment_expression "puVar7 = param_4" (identifier "puVar7") (= "=") (identifier "param_4")) (; ";")) (for_statement "for (iVar8 = 0x80; iVar8 != 0; iVar8 = iVar8 + -1) {\n    *(undefined4 *)puVar7 = 0;\n    puVar7 = (undefined8 *)((int)puVar7 + (uint)bVar10 * -8 + 4);\n  }" (for "for") (( "(") (assignment_expression "iVar8 = 0x80" (identifier "iVar8") (= "=") (number_literal "0x80")) (; ";") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar8 = iVar8 + -1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + -1" (identifier "iVar8") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n    *(undefined4 *)puVar7 = 0;\n    puVar7 = (undefined8 *)((int)puVar7 + (uint)bVar10 * -8 + 4);\n  }" ({ "{") (expression_statement "*(undefined4 *)puVar7 = 0;" (assignment_expression "*(undefined4 *)puVar7 = 0" (pointer_expression "*(undefined4 *)puVar7" (* "*") (cast_expression "(undefined4 *)puVar7" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar7"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7 = (undefined8 *)((int)puVar7 + (uint)bVar10 * -8 + 4);" (assignment_expression "puVar7 = (undefined8 *)((int)puVar7 + (uint)bVar10 * -8 + 4)" (identifier "puVar7") (= "=") (cast_expression "(undefined8 *)((int)puVar7 + (uint)bVar10 * -8 + 4)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar7 + (uint)bVar10 * -8 + 4)" (( "(") (binary_expression "(int)puVar7 + (uint)bVar10 * -8 + 4" (binary_expression "(int)puVar7 + (uint)bVar10 * -8" (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7")) (+ "+") (binary_expression "(uint)bVar10 * -8" (cast_expression "(uint)bVar10" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar10")) (* "*") (number_literal "-8"))) (+ "+") (number_literal "4")) () ")")))) (; ";")) (} "}"))) (expression_statement "puVar7 = (undefined8 *)\n           FUN_00036810(*param_1,param_1[1],param_2,param_3,1,1,\n                        *(undefined4 *)(param_1[3] + iVar6 * 4),param_5);" (assignment_expression "puVar7 = (undefined8 *)\n           FUN_00036810(*param_1,param_1[1],param_2,param_3,1,1,\n                        *(undefined4 *)(param_1[3] + iVar6 * 4),param_5)" (identifier "puVar7") (= "=") (cast_expression "(undefined8 *)\n           FUN_00036810(*param_1,param_1[1],param_2,param_3,1,1,\n                        *(undefined4 *)(param_1[3] + iVar6 * 4),param_5)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00036810(*param_1,param_1[1],param_2,param_3,1,1,\n                        *(undefined4 *)(param_1[3] + iVar6 * 4),param_5)" (identifier "FUN_00036810") (argument_list "(*param_1,param_1[1],param_2,param_3,1,1,\n                        *(undefined4 *)(param_1[3] + iVar6 * 4),param_5)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (number_literal "1") (, ",") (number_literal "1") (, ",") (pointer_expression "*(undefined4 *)(param_1[3] + iVar6 * 4)" (* "*") (cast_expression "(undefined4 *)(param_1[3] + iVar6 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[3] + iVar6 * 4)" (( "(") (binary_expression "param_1[3] + iVar6 * 4" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (+ "+") (binary_expression "iVar6 * 4" (identifier "iVar6") (* "*") (number_literal "4"))) () ")")))) (, ",") (identifier "param_5") () ")"))))) (; ";")) (if_statement "if (puVar7 != (undefined8 *)0x0) {\n    iVar6 = *(int *)(*param_1 + 0x298);\n    if (0 < iVar6) {\n      piVar9 = *(int **)(*param_1 + 0x2a8);\n      piVar1 = piVar9 + iVar6 * 3;\n      do {\n        iVar6 = *piVar9;\n        piVar9 = piVar9 + 3;\n        param_4[iVar6] = *puVar7;\n        puVar7 = puVar7 + 1;\n      } while (piVar1 != piVar9);\n    }\n    return 1;\n  }" (if "if") (parenthesized_expression "(puVar7 != (undefined8 *)0x0)" (( "(") (binary_expression "puVar7 != (undefined8 *)0x0" (identifier "puVar7") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    iVar6 = *(int *)(*param_1 + 0x298);\n    if (0 < iVar6) {\n      piVar9 = *(int **)(*param_1 + 0x2a8);\n      piVar1 = piVar9 + iVar6 * 3;\n      do {\n        iVar6 = *piVar9;\n        piVar9 = piVar9 + 3;\n        param_4[iVar6] = *puVar7;\n        puVar7 = puVar7 + 1;\n      } while (piVar1 != piVar9);\n    }\n    return 1;\n  }" ({ "{") (expression_statement "iVar6 = *(int *)(*param_1 + 0x298);" (assignment_expression "iVar6 = *(int *)(*param_1 + 0x298)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(*param_1 + 0x298)" (* "*") (cast_expression "(int *)(*param_1 + 0x298)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + 0x298)" (( "(") (binary_expression "*param_1 + 0x298" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x298")) () ")"))))) (; ";")) (if_statement "if (0 < iVar6) {\n      piVar9 = *(int **)(*param_1 + 0x2a8);\n      piVar1 = piVar9 + iVar6 * 3;\n      do {\n        iVar6 = *piVar9;\n        piVar9 = piVar9 + 3;\n        param_4[iVar6] = *puVar7;\n        puVar7 = puVar7 + 1;\n      } while (piVar1 != piVar9);\n    }" (if "if") (parenthesized_expression "(0 < iVar6)" (( "(") (binary_expression "0 < iVar6" (number_literal "0") (< "<") (identifier "iVar6")) () ")")) (compound_statement "{\n      piVar9 = *(int **)(*param_1 + 0x2a8);\n      piVar1 = piVar9 + iVar6 * 3;\n      do {\n        iVar6 = *piVar9;\n        piVar9 = piVar9 + 3;\n        param_4[iVar6] = *puVar7;\n        puVar7 = puVar7 + 1;\n      } while (piVar1 != piVar9);\n    }" ({ "{") (expression_statement "piVar9 = *(int **)(*param_1 + 0x2a8);" (assignment_expression "piVar9 = *(int **)(*param_1 + 0x2a8)" (identifier "piVar9") (= "=") (pointer_expression "*(int **)(*param_1 + 0x2a8)" (* "*") (cast_expression "(int **)(*param_1 + 0x2a8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 0x2a8)" (( "(") (binary_expression "*param_1 + 0x2a8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x2a8")) () ")"))))) (; ";")) (expression_statement "piVar1 = piVar9 + iVar6 * 3;" (assignment_expression "piVar1 = piVar9 + iVar6 * 3" (identifier "piVar1") (= "=") (binary_expression "piVar9 + iVar6 * 3" (identifier "piVar9") (+ "+") (binary_expression "iVar6 * 3" (identifier "iVar6") (* "*") (number_literal "3")))) (; ";")) (do_statement "do {\n        iVar6 = *piVar9;\n        piVar9 = piVar9 + 3;\n        param_4[iVar6] = *puVar7;\n        puVar7 = puVar7 + 1;\n      } while (piVar1 != piVar9);" (do "do") (compound_statement "{\n        iVar6 = *piVar9;\n        piVar9 = piVar9 + 3;\n        param_4[iVar6] = *puVar7;\n        puVar7 = puVar7 + 1;\n      }" ({ "{") (expression_statement "iVar6 = *piVar9;" (assignment_expression "iVar6 = *piVar9" (identifier "iVar6") (= "=") (pointer_expression "*piVar9" (* "*") (identifier "piVar9"))) (; ";")) (expression_statement "piVar9 = piVar9 + 3;" (assignment_expression "piVar9 = piVar9 + 3" (identifier "piVar9") (= "=") (binary_expression "piVar9 + 3" (identifier "piVar9") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "param_4[iVar6] = *puVar7;" (assignment_expression "param_4[iVar6] = *puVar7" (subscript_expression "param_4[iVar6]" (identifier "param_4") ([ "[") (identifier "iVar6") (] "]")) (= "=") (pointer_expression "*puVar7" (* "*") (identifier "puVar7"))) (; ";")) (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" (identifier "puVar7") (= "=") (binary_expression "puVar7 + 1" (identifier "puVar7") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar1 != piVar9)" (( "(") (binary_expression "piVar1 != piVar9" (identifier "piVar1") (!= "!=") (identifier "piVar9")) () ")")) (; ";")) (} "}"))) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "iVar6 = *param_1;" (assignment_expression "iVar6 = *param_1" (identifier "iVar6") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "uVar2 = *(undefined8 *)(iVar6 + 0xa4);" (assignment_expression "uVar2 = *(undefined8 *)(iVar6 + 0xa4)" (identifier "uVar2") (= "=") (pointer_expression "*(undefined8 *)(iVar6 + 0xa4)" (* "*") (cast_expression "(undefined8 *)(iVar6 + 0xa4)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0xa4)" (( "(") (binary_expression "iVar6 + 0xa4" (identifier "iVar6") (+ "+") (number_literal "0xa4")) () ")"))))) (; ";")) (expression_statement "uVar3 = *(undefined8 *)(iVar6 + 0xac);" (assignment_expression "uVar3 = *(undefined8 *)(iVar6 + 0xac)" (identifier "uVar3") (= "=") (pointer_expression "*(undefined8 *)(iVar6 + 0xac)" (* "*") (cast_expression "(undefined8 *)(iVar6 + 0xac)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0xac)" (( "(") (binary_expression "iVar6 + 0xac" (identifier "iVar6") (+ "+") (number_literal "0xac")) () ")"))))) (; ";")) (expression_statement "uVar4 = *(undefined8 *)(iVar6 + 0xb4);" (assignment_expression "uVar4 = *(undefined8 *)(iVar6 + 0xb4)" (identifier "uVar4") (= "=") (pointer_expression "*(undefined8 *)(iVar6 + 0xb4)" (* "*") (cast_expression "(undefined8 *)(iVar6 + 0xb4)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0xb4)" (( "(") (binary_expression "iVar6 + 0xb4" (identifier "iVar6") (+ "+") (number_literal "0xb4")) () ")"))))) (; ";")) (expression_statement "uVar5 = *(undefined8 *)(iVar6 + 0xbc);" (assignment_expression "uVar5 = *(undefined8 *)(iVar6 + 0xbc)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined8 *)(iVar6 + 0xbc)" (* "*") (cast_expression "(undefined8 *)(iVar6 + 0xbc)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0xbc)" (( "(") (binary_expression "iVar6 + 0xbc" (identifier "iVar6") (+ "+") (number_literal "0xbc")) () ")"))))) (; ";")) (expression_statement "*param_4 = *(undefined8 *)(iVar6 + 0x9c);" (assignment_expression "*param_4 = *(undefined8 *)(iVar6 + 0x9c)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (pointer_expression "*(undefined8 *)(iVar6 + 0x9c)" (* "*") (cast_expression "(undefined8 *)(iVar6 + 0x9c)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x9c)" (( "(") (binary_expression "iVar6 + 0x9c" (identifier "iVar6") (+ "+") (number_literal "0x9c")) () ")"))))) (; ";")) (expression_statement "param_4[1] = uVar2;" (assignment_expression "param_4[1] = uVar2" (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "param_4[2] = uVar3;" (assignment_expression "param_4[2] = uVar3" (subscript_expression "param_4[2]" (identifier "param_4") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "param_4[3] = uVar4;" (assignment_expression "param_4[3] = uVar4" (subscript_expression "param_4[3]" (identifier "param_4") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "param_4[4] = uVar5;" (assignment_expression "param_4[4] = uVar5" (subscript_expression "param_4[4]" (identifier "param_4") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))

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

type_1
function_1
          (type_2 *var_2,ssize_t x,ssize_t y,type_3 *pixel,type_4 *exception)

{
  type_5 *var_10;
  type_6 MVar2;
  type_6 MVar3;
  type_6 MVar4;
  type_6 MVar5;
  size_t var_9;
  type_7 *pIVar7;
  type_8 *pPVar8;
  int var_4;
  type_3 *var_7;
  int var_5;
  type_5 *var_8;
  type_9 bVar13;
  
  bVar13 = 0;
  var_4 = var_1();
  if (var_2 == (type_2 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_3("cache_view != (CacheView *) NULL","MagickCore/cache-view.c",0x312,
                  "GetOneCacheViewVirtualPixel");
  }
  if (var_2->signature != 0xabacadab) {
                    /* WARNING: Subroutine does not return */
    var_3("cache_view->signature == MagickCoreSignature","MagickCore/cache-view.c",0x313,
                  "GetOneCacheViewVirtualPixel");
  }
  if ((int)var_2->number_threads <= var_4) {
                    /* WARNING: Subroutine does not return */
    var_3("id < (int) cache_view->number_threads","MagickCore/cache-view.c",0x314,
                  "GetOneCacheViewVirtualPixel");
  }
  var_7 = pixel;
  for (var_5 = 0x80; var_5 != 0; var_5 = var_5 + -1) {
    *(type_10 *)var_7 = 0;
    var_7 = (type_3 *)((int)var_7 + (type_11)bVar13 * -8 + 4);
  }
  var_7 = var_6
                      (var_2->image,var_2->virtual_pixel_method,x,y,1,1,
                       var_2->nexus_info[var_4],exception);
  if (var_7 != (type_3 *)0x0) {
    var_9 = var_2->image->number_channels;
    if (0 < (int)var_9) {
      var_8 = var_2->image->channel_map;
      var_10 = var_8 + var_9;
      do {
        pPVar8 = &var_8->channel;
        var_8 = var_8 + 1;
        pixel[*pPVar8] = *var_7;
        var_7 = var_7 + 1;
      } while (var_10 != var_8);
    }
    return MagickTrue;
  }
  pIVar7 = var_2->image;
  MVar2 = (pIVar7->background_color).green;
  MVar3 = (pIVar7->background_color).blue;
  MVar4 = (pIVar7->background_color).black;
  MVar5 = (pIVar7->background_color).alpha;
  *pixel = (pIVar7->background_color).red;
  pixel[1] = MVar2;
  pixel[2] = MVar3;
  pixel[3] = MVar4;
  pixel[4] = MVar5;
  return MagickFalse;
}


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

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

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

{
  int *piVar1;
  undefined8 uVar2;
  undefined8 uVar3;
  undefined8 uVar4;
  undefined8 uVar5;
  int iVar6;
  undefined8 *puVar7;
  int iVar8;
  int *piVar9;
  byte bVar10;
  
  bVar10 = 0;
  iVar6 = omp_get_thread_num();
  if (param_1 == (int *)0x0) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("cache_view != (CacheView *) NULL","MagickCore/cache-view.c",0x312,
                  "MASKED");
  }
  if (param_1[5] != -0x54535255) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("cache_view->signature == MagickCoreSignature","MagickCore/cache-view.c",0x313,
                  "MASKED");
  }
  if (param_1[2] <= iVar6) {
                    /* WARNING: Subroutine does not return */
    __assert_fail("id < (int) cache_view->number_threads","MagickCore/cache-view.c",0x314,
                  "MASKED");
  }
  puVar7 = param_4;
  for (iVar8 = 0x80; iVar8 != 0; iVar8 = iVar8 + -1) {
    *(undefined4 *)puVar7 = 0;
    puVar7 = (undefined8 *)((int)puVar7 + (uint)bVar10 * -8 + 4);
  }
  puVar7 = (undefined8 *)
           FUN_00036810(*param_1,param_1[1],param_2,param_3,1,1,
                        *(undefined4 *)(param_1[3] + iVar6 * 4),param_5);
  if (puVar7 != (undefined8 *)0x0) {
    iVar6 = *(int *)(*param_1 + 0x298);
    if (0 < iVar6) {
      piVar9 = *(int **)(*param_1 + 0x2a8);
      piVar1 = piVar9 + iVar6 * 3;
      do {
        iVar6 = *piVar9;
        piVar9 = piVar9 + 3;
        param_4[iVar6] = *puVar7;
        puVar7 = puVar7 + 1;
      } while (piVar1 != piVar9);
    }
    return 1;
  }
  iVar6 = *param_1;
  uVar2 = *(undefined8 *)(iVar6 + 0xa4);
  uVar3 = *(undefined8 *)(iVar6 + 0xac);
  uVar4 = *(undefined8 *)(iVar6 + 0xb4);
  uVar5 = *(undefined8 *)(iVar6 + 0xbc);
  *param_4 = *(undefined8 *)(iVar6 + 0x9c);
  param_4[1] = uVar2;
  param_4[2] = uVar3;
  param_4[3] = uVar4;
  param_4[4] = uVar5;
  return 0;
}

