
/* 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 */

MagickStatusType
ParsePageGeometry(Image *image,char *geometry,RectangleInfo *region_info,ExceptionInfo *exception)

{
  undefined *puVar1;
  size_t sVar2;
  uint uVar3;
  
  (*(code *)PTR_SetGeometry_003a9624)(image,region_info);
  sVar2 = (image->page).width;
  if (sVar2 != 0) {
    region_info->width = sVar2;
  }
  puVar1 = PTR_ParseAbsoluteGeometry_003a8e2c;
  sVar2 = (image->page).height;
  if (sVar2 != 0) {
    region_info->height = sVar2;
  }
  uVar3 = (*(code *)puVar1)(geometry,region_info);
  puVar1 = PTR_ParseMetaGeometry_003a907c;
  if (uVar3 != 0) {
    if ((uVar3 & 0x1000) != 0) {
      sVar2 = image->rows;
      region_info->width = image->columns;
      region_info->height = sVar2;
    }
    uVar3 = (*(code *)puVar1)(geometry,&region_info->x,&region_info->y,region_info,
                              &region_info->height);
    if (((uVar3 & 0xc) != 0) && ((uVar3 & 0x81000) != 0x80000)) {
      if ((uVar3 & 4) == 0) {
        region_info->width = region_info->height;
      }
      if ((uVar3 & 8) == 0) {
        region_info->height = region_info->width;
      }
    }
    return uVar3;
  }
  (*(code *)PTR_ThrowMagickException_003a8f20)
            (exception,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7c14,
             PTR_s_t_to_left_003a88e4 + -0x7e30,0x63d,0x19a,
             PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7cac,PTR_LAB_003a88e0 + 0x3e28,
             geometry);
  return 0;
}



uint ParsePageGeometry(int param_1,undefined4 param_2,int *param_3,undefined4 param_4)

{
  undefined *puVar1;
  uint uVar2;
  int iVar3;
  
  (*(code *)PTR_SetGeometry_003a9624)(param_1,param_3);
  if (*(int *)(param_1 + 0x228) != 0) {
    *param_3 = *(int *)(param_1 + 0x228);
  }
  puVar1 = PTR_ParseAbsoluteGeometry_003a8e2c;
  if (*(int *)(param_1 + 0x22c) != 0) {
    param_3[1] = *(int *)(param_1 + 0x22c);
  }
  uVar2 = (*(code *)puVar1)(param_2,param_3);
  puVar1 = PTR_ParseMetaGeometry_003a907c;
  if (uVar2 != 0) {
    if ((uVar2 & 0x1000) != 0) {
      iVar3 = *(int *)(param_1 + 0x1c);
      *param_3 = *(int *)(param_1 + 0x18);
      param_3[1] = iVar3;
    }
    uVar2 = (*(code *)puVar1)(param_2,param_3 + 2,param_3 + 3,param_3,param_3 + 1);
    if (((uVar2 & 0xc) != 0) && ((uVar2 & 0x81000) != 0x80000)) {
      if ((uVar2 & 4) == 0) {
        *param_3 = param_3[1];
      }
      if ((uVar2 & 8) == 0) {
        param_3[1] = *param_3;
      }
    }
    return uVar2;
  }
  (*(code *)PTR_ThrowMagickException_003a8f20)
            (param_4,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7c14,
             PTR_s_t_to_left_003a88e4 + -0x7e30,0x63d,0x19a,
             PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7cac,PTR_LAB_003a88e0 + 0x3e28,
             param_2);
  return 0;
}


lui gp,0x2c
addiu gp,gp,0x4ffc
addu gp,gp,t9
addiu sp,sp,-0x40
lw t9,-0x728c(gp)
sw s2,0x30(sp)
or s2,a0,zero
sw gp,0x20(sp)
sw s4,0x38(sp)
or s4,a3,zero
sw s3,0x34(sp)
or s3,a1,zero
sw s0,0x28(sp)
or a1,a2,zero
sw ra,0x3c(sp)
or s0,a2,zero
jalr t9
_sw s1,0x2c(sp)
lw v0,0x228(s2)
beq v0,zero,0x000eb90c
_lw gp,0x20(sp)
sw v0,0x0(s0)
lw v0,0x22c(s2)
beq v0,zero,0x000eb91c
_lw t9,-0x7a84(gp)
sw v0,0x4(s0)
or a1,s0,zero
jalr t9
_or a0,s3,zero
lw gp,0x20(sp)
beq v0,zero,0x000eb9d4
_or s1,v0,zero
andi s1,v0,0x1000
beq s1,zero,0x000eb950
_lw t9,-0x7834(gp)
lw v1,0x18(s2)
lw v0,0x1c(s2)
sw v1,0x0(s0)
sw v0,0x4(s0)
addiu v0,s0,0x4
addiu a2,s0,0xc
addiu a1,s0,0x8
sw v0,0x10(sp)
or a3,s0,zero
jalr t9
_or a0,s3,zero
or s1,v0,zero
andi v0,v0,0xc
beq v0,zero,0x000eb9b0
_lui v1,0x8
addiu v0,v1,0x1000
and v0,s1,v0
beq v0,v1,0x000eb9b0
_andi v0,s1,0x4
bne v0,zero,0x000eb9a0
_andi v0,s1,0x8
lw v0,0x4(s0)
sw v0,0x0(s0)
andi v0,s1,0x8
bne v0,zero,0x000eb9b4
_lw ra,0x3c(sp)
lw v0,0x0(s0)
sw v0,0x4(s0)
lw ra,0x3c(sp)
or v0,s1,zero
lw s4,0x38(sp)
lw s3,0x34(sp)
lw s2,0x30(sp)
lw s1,0x2c(sp)
lw s0,0x28(sp)
jr ra
_addiu sp,sp,0x40
lw v0,-0x7fd0(gp)
li a3,0x63d
lw a2,-0x7fcc(gp)
or a0,s4,zero
lw a1,-0x7fc8(gp)
addiu v0,v0,0x3e28
lw t9,-0x7990(gp)
addiu a2,a2,-0x7e30
sw s3,0x1c(sp)
sw v0,0x18(sp)
addiu a1,a1,0x7c14
lw v0,-0x7fc8(gp)
addiu v0,v0,0x7cac
sw v0,0x14(sp)
li v0,0x19a
jalr t9
_sw v0,0x10(sp)
or v0,s1,zero
lw ra,0x3c(sp)
lw s4,0x38(sp)
lw s3,0x34(sp)
lw s2,0x30(sp)
lw s1,0x2c(sp)
lw s0,0x28(sp)
jr ra
_addiu sp,sp,0x40
(translation_unit "uint ParsePageGeometry(int param_1,undefined4 param_2,int *param_3,undefined4 param_4)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  int iVar3;\n  \n  (*(code *)PTR_SetGeometry_003a9624)(param_1,param_3);\n  if (*(int *)(param_1 + 0x228) != 0) {\n    *param_3 = *(int *)(param_1 + 0x228);\n  }\n  puVar1 = PTR_ParseAbsoluteGeometry_003a8e2c;\n  if (*(int *)(param_1 + 0x22c) != 0) {\n    param_3[1] = *(int *)(param_1 + 0x22c);\n  }\n  uVar2 = (*(code *)puVar1)(param_2,param_3);\n  puVar1 = PTR_ParseMetaGeometry_003a907c;\n  if (uVar2 != 0) {\n    if ((uVar2 & 0x1000) != 0) {\n      iVar3 = *(int *)(param_1 + 0x1c);\n      *param_3 = *(int *)(param_1 + 0x18);\n      param_3[1] = iVar3;\n    }\n    uVar2 = (*(code *)puVar1)(param_2,param_3 + 2,param_3 + 3,param_3,param_3 + 1);\n    if (((uVar2 & 0xc) != 0) && ((uVar2 & 0x81000) != 0x80000)) {\n      if ((uVar2 & 4) == 0) {\n        *param_3 = param_3[1];\n      }\n      if ((uVar2 & 8) == 0) {\n        param_3[1] = *param_3;\n      }\n    }\n    return uVar2;\n  }\n  (*(code *)PTR_ThrowMagickException_003a8f20)\n            (param_4,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7c14,\n             PTR_s_t_to_left_003a88e4 + -0x7e30,0x63d,0x19a,\n             PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7cac,PTR_LAB_003a88e0 + 0x3e28,\n             param_2);\n  return 0;\n}\n\n" (function_definition "uint ParsePageGeometry(int param_1,undefined4 param_2,int *param_3,undefined4 param_4)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  int iVar3;\n  \n  (*(code *)PTR_SetGeometry_003a9624)(param_1,param_3);\n  if (*(int *)(param_1 + 0x228) != 0) {\n    *param_3 = *(int *)(param_1 + 0x228);\n  }\n  puVar1 = PTR_ParseAbsoluteGeometry_003a8e2c;\n  if (*(int *)(param_1 + 0x22c) != 0) {\n    param_3[1] = *(int *)(param_1 + 0x22c);\n  }\n  uVar2 = (*(code *)puVar1)(param_2,param_3);\n  puVar1 = PTR_ParseMetaGeometry_003a907c;\n  if (uVar2 != 0) {\n    if ((uVar2 & 0x1000) != 0) {\n      iVar3 = *(int *)(param_1 + 0x1c);\n      *param_3 = *(int *)(param_1 + 0x18);\n      param_3[1] = iVar3;\n    }\n    uVar2 = (*(code *)puVar1)(param_2,param_3 + 2,param_3 + 3,param_3,param_3 + 1);\n    if (((uVar2 & 0xc) != 0) && ((uVar2 & 0x81000) != 0x80000)) {\n      if ((uVar2 & 4) == 0) {\n        *param_3 = param_3[1];\n      }\n      if ((uVar2 & 8) == 0) {\n        param_3[1] = *param_3;\n      }\n    }\n    return uVar2;\n  }\n  (*(code *)PTR_ThrowMagickException_003a8f20)\n            (param_4,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7c14,\n             PTR_s_t_to_left_003a88e4 + -0x7e30,0x63d,0x19a,\n             PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7cac,PTR_LAB_003a88e0 + 0x3e28,\n             param_2);\n  return 0;\n}" type_identifier (function_declarator "ParsePageGeometry(int param_1,undefined4 param_2,int *param_3,undefined4 param_4)" identifier (parameter_list "(int param_1,undefined4 param_2,int *param_3,undefined4 param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "undefined4 param_4" type_identifier identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  uint uVar2;\n  int iVar3;\n  \n  (*(code *)PTR_SetGeometry_003a9624)(param_1,param_3);\n  if (*(int *)(param_1 + 0x228) != 0) {\n    *param_3 = *(int *)(param_1 + 0x228);\n  }\n  puVar1 = PTR_ParseAbsoluteGeometry_003a8e2c;\n  if (*(int *)(param_1 + 0x22c) != 0) {\n    param_3[1] = *(int *)(param_1 + 0x22c);\n  }\n  uVar2 = (*(code *)puVar1)(param_2,param_3);\n  puVar1 = PTR_ParseMetaGeometry_003a907c;\n  if (uVar2 != 0) {\n    if ((uVar2 & 0x1000) != 0) {\n      iVar3 = *(int *)(param_1 + 0x1c);\n      *param_3 = *(int *)(param_1 + 0x18);\n      param_3[1] = iVar3;\n    }\n    uVar2 = (*(code *)puVar1)(param_2,param_3 + 2,param_3 + 3,param_3,param_3 + 1);\n    if (((uVar2 & 0xc) != 0) && ((uVar2 & 0x81000) != 0x80000)) {\n      if ((uVar2 & 4) == 0) {\n        *param_3 = param_3[1];\n      }\n      if ((uVar2 & 8) == 0) {\n        param_3[1] = *param_3;\n      }\n    }\n    return uVar2;\n  }\n  (*(code *)PTR_ThrowMagickException_003a8f20)\n            (param_4,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7c14,\n             PTR_s_t_to_left_003a88e4 + -0x7e30,0x63d,0x19a,\n             PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7cac,PTR_LAB_003a88e0 + 0x3e28,\n             param_2);\n  return 0;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (expression_statement "(*(code *)PTR_SetGeometry_003a9624)(param_1,param_3);" (call_expression "(*(code *)PTR_SetGeometry_003a9624)(param_1,param_3)" (parenthesized_expression "(*(code *)PTR_SetGeometry_003a9624)" ( (pointer_expression "*(code *)PTR_SetGeometry_003a9624" * (cast_expression "(code *)PTR_SetGeometry_003a9624" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_3)" ( identifier , identifier ))) ;) (if_statement "if (*(int *)(param_1 + 0x228) != 0) {\n    *param_3 = *(int *)(param_1 + 0x228);\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x228) != 0)" ( (binary_expression "*(int *)(param_1 + 0x228) != 0" (pointer_expression "*(int *)(param_1 + 0x228)" * (cast_expression "(int *)(param_1 + 0x228)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x228)" ( (binary_expression "param_1 + 0x228" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    *param_3 = *(int *)(param_1 + 0x228);\n  }" { (expression_statement "*param_3 = *(int *)(param_1 + 0x228);" (assignment_expression "*param_3 = *(int *)(param_1 + 0x228)" (pointer_expression "*param_3" * identifier) = (pointer_expression "*(int *)(param_1 + 0x228)" * (cast_expression "(int *)(param_1 + 0x228)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x228)" ( (binary_expression "param_1 + 0x228" identifier + number_literal) ))))) ;) })) (expression_statement "puVar1 = PTR_ParseAbsoluteGeometry_003a8e2c;" (assignment_expression "puVar1 = PTR_ParseAbsoluteGeometry_003a8e2c" identifier = identifier) ;) (if_statement "if (*(int *)(param_1 + 0x22c) != 0) {\n    param_3[1] = *(int *)(param_1 + 0x22c);\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x22c) != 0)" ( (binary_expression "*(int *)(param_1 + 0x22c) != 0" (pointer_expression "*(int *)(param_1 + 0x22c)" * (cast_expression "(int *)(param_1 + 0x22c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x22c)" ( (binary_expression "param_1 + 0x22c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    param_3[1] = *(int *)(param_1 + 0x22c);\n  }" { (expression_statement "param_3[1] = *(int *)(param_1 + 0x22c);" (assignment_expression "param_3[1] = *(int *)(param_1 + 0x22c)" (subscript_expression "param_3[1]" identifier [ number_literal ]) = (pointer_expression "*(int *)(param_1 + 0x22c)" * (cast_expression "(int *)(param_1 + 0x22c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x22c)" ( (binary_expression "param_1 + 0x22c" identifier + number_literal) ))))) ;) })) (expression_statement "uVar2 = (*(code *)puVar1)(param_2,param_3);" (assignment_expression "uVar2 = (*(code *)puVar1)(param_2,param_3)" identifier = (call_expression "(*(code *)puVar1)(param_2,param_3)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2,param_3)" ( identifier , identifier )))) ;) (expression_statement "puVar1 = PTR_ParseMetaGeometry_003a907c;" (assignment_expression "puVar1 = PTR_ParseMetaGeometry_003a907c" identifier = identifier) ;) (if_statement "if (uVar2 != 0) {\n    if ((uVar2 & 0x1000) != 0) {\n      iVar3 = *(int *)(param_1 + 0x1c);\n      *param_3 = *(int *)(param_1 + 0x18);\n      param_3[1] = iVar3;\n    }\n    uVar2 = (*(code *)puVar1)(param_2,param_3 + 2,param_3 + 3,param_3,param_3 + 1);\n    if (((uVar2 & 0xc) != 0) && ((uVar2 & 0x81000) != 0x80000)) {\n      if ((uVar2 & 4) == 0) {\n        *param_3 = param_3[1];\n      }\n      if ((uVar2 & 8) == 0) {\n        param_3[1] = *param_3;\n      }\n    }\n    return uVar2;\n  }" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    if ((uVar2 & 0x1000) != 0) {\n      iVar3 = *(int *)(param_1 + 0x1c);\n      *param_3 = *(int *)(param_1 + 0x18);\n      param_3[1] = iVar3;\n    }\n    uVar2 = (*(code *)puVar1)(param_2,param_3 + 2,param_3 + 3,param_3,param_3 + 1);\n    if (((uVar2 & 0xc) != 0) && ((uVar2 & 0x81000) != 0x80000)) {\n      if ((uVar2 & 4) == 0) {\n        *param_3 = param_3[1];\n      }\n      if ((uVar2 & 8) == 0) {\n        param_3[1] = *param_3;\n      }\n    }\n    return uVar2;\n  }" { (if_statement "if ((uVar2 & 0x1000) != 0) {\n      iVar3 = *(int *)(param_1 + 0x1c);\n      *param_3 = *(int *)(param_1 + 0x18);\n      param_3[1] = iVar3;\n    }" if (parenthesized_expression "((uVar2 & 0x1000) != 0)" ( (binary_expression "(uVar2 & 0x1000) != 0" (parenthesized_expression "(uVar2 & 0x1000)" ( (binary_expression "uVar2 & 0x1000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      iVar3 = *(int *)(param_1 + 0x1c);\n      *param_3 = *(int *)(param_1 + 0x18);\n      param_3[1] = iVar3;\n    }" { (expression_statement "iVar3 = *(int *)(param_1 + 0x1c);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x1c)" identifier = (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "*param_3 = *(int *)(param_1 + 0x18);" (assignment_expression "*param_3 = *(int *)(param_1 + 0x18)" (pointer_expression "*param_3" * identifier) = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "param_3[1] = iVar3;" (assignment_expression "param_3[1] = iVar3" (subscript_expression "param_3[1]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "uVar2 = (*(code *)puVar1)(param_2,param_3 + 2,param_3 + 3,param_3,param_3 + 1);" (assignment_expression "uVar2 = (*(code *)puVar1)(param_2,param_3 + 2,param_3 + 3,param_3,param_3 + 1)" identifier = (call_expression "(*(code *)puVar1)(param_2,param_3 + 2,param_3 + 3,param_3,param_3 + 1)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2,param_3 + 2,param_3 + 3,param_3,param_3 + 1)" ( identifier , (binary_expression "param_3 + 2" identifier + number_literal) , (binary_expression "param_3 + 3" identifier + number_literal) , identifier , (binary_expression "param_3 + 1" identifier + number_literal) )))) ;) (if_statement "if (((uVar2 & 0xc) != 0) && ((uVar2 & 0x81000) != 0x80000)) {\n      if ((uVar2 & 4) == 0) {\n        *param_3 = param_3[1];\n      }\n      if ((uVar2 & 8) == 0) {\n        param_3[1] = *param_3;\n      }\n    }" if (parenthesized_expression "(((uVar2 & 0xc) != 0) && ((uVar2 & 0x81000) != 0x80000))" ( (binary_expression "((uVar2 & 0xc) != 0) && ((uVar2 & 0x81000) != 0x80000)" (parenthesized_expression "((uVar2 & 0xc) != 0)" ( (binary_expression "(uVar2 & 0xc) != 0" (parenthesized_expression "(uVar2 & 0xc)" ( (binary_expression "uVar2 & 0xc" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "((uVar2 & 0x81000) != 0x80000)" ( (binary_expression "(uVar2 & 0x81000) != 0x80000" (parenthesized_expression "(uVar2 & 0x81000)" ( (binary_expression "uVar2 & 0x81000" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n      if ((uVar2 & 4) == 0) {\n        *param_3 = param_3[1];\n      }\n      if ((uVar2 & 8) == 0) {\n        param_3[1] = *param_3;\n      }\n    }" { (if_statement "if ((uVar2 & 4) == 0) {\n        *param_3 = param_3[1];\n      }" if (parenthesized_expression "((uVar2 & 4) == 0)" ( (binary_expression "(uVar2 & 4) == 0" (parenthesized_expression "(uVar2 & 4)" ( (binary_expression "uVar2 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        *param_3 = param_3[1];\n      }" { (expression_statement "*param_3 = param_3[1];" (assignment_expression "*param_3 = param_3[1]" (pointer_expression "*param_3" * identifier) = (subscript_expression "param_3[1]" identifier [ number_literal ])) ;) })) (if_statement "if ((uVar2 & 8) == 0) {\n        param_3[1] = *param_3;\n      }" if (parenthesized_expression "((uVar2 & 8) == 0)" ( (binary_expression "(uVar2 & 8) == 0" (parenthesized_expression "(uVar2 & 8)" ( (binary_expression "uVar2 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        param_3[1] = *param_3;\n      }" { (expression_statement "param_3[1] = *param_3;" (assignment_expression "param_3[1] = *param_3" (subscript_expression "param_3[1]" identifier [ number_literal ]) = (pointer_expression "*param_3" * identifier)) ;) })) })) (return_statement "return uVar2;" return identifier ;) })) (expression_statement "(*(code *)PTR_ThrowMagickException_003a8f20)\n            (param_4,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7c14,\n             PTR_s_t_to_left_003a88e4 + -0x7e30,0x63d,0x19a,\n             PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7cac,PTR_LAB_003a88e0 + 0x3e28,\n             param_2);" (call_expression "(*(code *)PTR_ThrowMagickException_003a8f20)\n            (param_4,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7c14,\n             PTR_s_t_to_left_003a88e4 + -0x7e30,0x63d,0x19a,\n             PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7cac,PTR_LAB_003a88e0 + 0x3e28,\n             param_2)" (parenthesized_expression "(*(code *)PTR_ThrowMagickException_003a8f20)" ( (pointer_expression "*(code *)PTR_ThrowMagickException_003a8f20" * (cast_expression "(code *)PTR_ThrowMagickException_003a8f20" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_4,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7c14,\n             PTR_s_t_to_left_003a88e4 + -0x7e30,0x63d,0x19a,\n             PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7cac,PTR_LAB_003a88e0 + 0x3e28,\n             param_2)" ( identifier , (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7c14" identifier + number_literal) , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x7e30" identifier + number_literal) , number_literal , number_literal , (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7cac" identifier + number_literal) , (binary_expression "PTR_LAB_003a88e0 + 0x3e28" identifier + number_literal) , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "/* 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\nMagickStatusType\nParsePageGeometry(Image *image,char *geometry,RectangleInfo *region_info,ExceptionInfo *exception)\n\n{\n  undefined *puVar1;\n  size_t sVar2;\n  uint uVar3;\n  \n  (*(code *)PTR_SetGeometry_003a9624)(image,region_info);\n  sVar2 = (image->page).width;\n  if (sVar2 != 0) {\n    region_info->width = sVar2;\n  }\n  puVar1 = PTR_ParseAbsoluteGeometry_003a8e2c;\n  sVar2 = (image->page).height;\n  if (sVar2 != 0) {\n    region_info->height = sVar2;\n  }\n  uVar3 = (*(code *)puVar1)(geometry,region_info);\n  puVar1 = PTR_ParseMetaGeometry_003a907c;\n  if (uVar3 != 0) {\n    if ((uVar3 & 0x1000) != 0) {\n      sVar2 = image->rows;\n      region_info->width = image->columns;\n      region_info->height = sVar2;\n    }\n    uVar3 = (*(code *)puVar1)(geometry,&region_info->x,&region_info->y,region_info,\n                              &region_info->height);\n    if (((uVar3 & 0xc) != 0) && ((uVar3 & 0x81000) != 0x80000)) {\n      if ((uVar3 & 4) == 0) {\n        region_info->width = region_info->height;\n      }\n      if ((uVar3 & 8) == 0) {\n        region_info->height = region_info->width;\n      }\n    }\n    return uVar3;\n  }\n  (*(code *)PTR_ThrowMagickException_003a8f20)\n            (exception,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7c14,\n             PTR_s_t_to_left_003a88e4 + -0x7e30,0x63d,0x19a,\n             PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7cac,PTR_LAB_003a88e0 + 0x3e28,\n             geometry);\n  return 0;\n}\n\n" comment comment comment comment comment (function_definition "MagickStatusType\nParsePageGeometry(Image *image,char *geometry,RectangleInfo *region_info,ExceptionInfo *exception)\n\n{\n  undefined *puVar1;\n  size_t sVar2;\n  uint uVar3;\n  \n  (*(code *)PTR_SetGeometry_003a9624)(image,region_info);\n  sVar2 = (image->page).width;\n  if (sVar2 != 0) {\n    region_info->width = sVar2;\n  }\n  puVar1 = PTR_ParseAbsoluteGeometry_003a8e2c;\n  sVar2 = (image->page).height;\n  if (sVar2 != 0) {\n    region_info->height = sVar2;\n  }\n  uVar3 = (*(code *)puVar1)(geometry,region_info);\n  puVar1 = PTR_ParseMetaGeometry_003a907c;\n  if (uVar3 != 0) {\n    if ((uVar3 & 0x1000) != 0) {\n      sVar2 = image->rows;\n      region_info->width = image->columns;\n      region_info->height = sVar2;\n    }\n    uVar3 = (*(code *)puVar1)(geometry,&region_info->x,&region_info->y,region_info,\n                              &region_info->height);\n    if (((uVar3 & 0xc) != 0) && ((uVar3 & 0x81000) != 0x80000)) {\n      if ((uVar3 & 4) == 0) {\n        region_info->width = region_info->height;\n      }\n      if ((uVar3 & 8) == 0) {\n        region_info->height = region_info->width;\n      }\n    }\n    return uVar3;\n  }\n  (*(code *)PTR_ThrowMagickException_003a8f20)\n            (exception,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7c14,\n             PTR_s_t_to_left_003a88e4 + -0x7e30,0x63d,0x19a,\n             PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7cac,PTR_LAB_003a88e0 + 0x3e28,\n             geometry);\n  return 0;\n}" type_identifier (function_declarator "ParsePageGeometry(Image *image,char *geometry,RectangleInfo *region_info,ExceptionInfo *exception)" identifier (parameter_list "(Image *image,char *geometry,RectangleInfo *region_info,ExceptionInfo *exception)" ( (parameter_declaration "Image *image" type_identifier (pointer_declarator "*image" * identifier)) , (parameter_declaration "char *geometry" primitive_type (pointer_declarator "*geometry" * identifier)) , (parameter_declaration "RectangleInfo *region_info" type_identifier (pointer_declarator "*region_info" * identifier)) , (parameter_declaration "ExceptionInfo *exception" type_identifier (pointer_declarator "*exception" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  size_t sVar2;\n  uint uVar3;\n  \n  (*(code *)PTR_SetGeometry_003a9624)(image,region_info);\n  sVar2 = (image->page).width;\n  if (sVar2 != 0) {\n    region_info->width = sVar2;\n  }\n  puVar1 = PTR_ParseAbsoluteGeometry_003a8e2c;\n  sVar2 = (image->page).height;\n  if (sVar2 != 0) {\n    region_info->height = sVar2;\n  }\n  uVar3 = (*(code *)puVar1)(geometry,region_info);\n  puVar1 = PTR_ParseMetaGeometry_003a907c;\n  if (uVar3 != 0) {\n    if ((uVar3 & 0x1000) != 0) {\n      sVar2 = image->rows;\n      region_info->width = image->columns;\n      region_info->height = sVar2;\n    }\n    uVar3 = (*(code *)puVar1)(geometry,&region_info->x,&region_info->y,region_info,\n                              &region_info->height);\n    if (((uVar3 & 0xc) != 0) && ((uVar3 & 0x81000) != 0x80000)) {\n      if ((uVar3 & 4) == 0) {\n        region_info->width = region_info->height;\n      }\n      if ((uVar3 & 8) == 0) {\n        region_info->height = region_info->width;\n      }\n    }\n    return uVar3;\n  }\n  (*(code *)PTR_ThrowMagickException_003a8f20)\n            (exception,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7c14,\n             PTR_s_t_to_left_003a88e4 + -0x7e30,0x63d,0x19a,\n             PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7cac,PTR_LAB_003a88e0 + 0x3e28,\n             geometry);\n  return 0;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "size_t sVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (expression_statement "(*(code *)PTR_SetGeometry_003a9624)(image,region_info);" (call_expression "(*(code *)PTR_SetGeometry_003a9624)(image,region_info)" (parenthesized_expression "(*(code *)PTR_SetGeometry_003a9624)" ( (pointer_expression "*(code *)PTR_SetGeometry_003a9624" * (cast_expression "(code *)PTR_SetGeometry_003a9624" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(image,region_info)" ( identifier , identifier ))) ;) (expression_statement "sVar2 = (image->page).width;" (assignment_expression "sVar2 = (image->page).width" identifier = (field_expression "(image->page).width" (parenthesized_expression "(image->page)" ( (field_expression "image->page" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (sVar2 != 0) {\n    region_info->width = sVar2;\n  }" if (parenthesized_expression "(sVar2 != 0)" ( (binary_expression "sVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    region_info->width = sVar2;\n  }" { (expression_statement "region_info->width = sVar2;" (assignment_expression "region_info->width = sVar2" (field_expression "region_info->width" identifier -> field_identifier) = identifier) ;) })) (expression_statement "puVar1 = PTR_ParseAbsoluteGeometry_003a8e2c;" (assignment_expression "puVar1 = PTR_ParseAbsoluteGeometry_003a8e2c" identifier = identifier) ;) (expression_statement "sVar2 = (image->page).height;" (assignment_expression "sVar2 = (image->page).height" identifier = (field_expression "(image->page).height" (parenthesized_expression "(image->page)" ( (field_expression "image->page" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (sVar2 != 0) {\n    region_info->height = sVar2;\n  }" if (parenthesized_expression "(sVar2 != 0)" ( (binary_expression "sVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    region_info->height = sVar2;\n  }" { (expression_statement "region_info->height = sVar2;" (assignment_expression "region_info->height = sVar2" (field_expression "region_info->height" identifier -> field_identifier) = identifier) ;) })) (expression_statement "uVar3 = (*(code *)puVar1)(geometry,region_info);" (assignment_expression "uVar3 = (*(code *)puVar1)(geometry,region_info)" identifier = (call_expression "(*(code *)puVar1)(geometry,region_info)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(geometry,region_info)" ( identifier , identifier )))) ;) (expression_statement "puVar1 = PTR_ParseMetaGeometry_003a907c;" (assignment_expression "puVar1 = PTR_ParseMetaGeometry_003a907c" identifier = identifier) ;) (if_statement "if (uVar3 != 0) {\n    if ((uVar3 & 0x1000) != 0) {\n      sVar2 = image->rows;\n      region_info->width = image->columns;\n      region_info->height = sVar2;\n    }\n    uVar3 = (*(code *)puVar1)(geometry,&region_info->x,&region_info->y,region_info,\n                              &region_info->height);\n    if (((uVar3 & 0xc) != 0) && ((uVar3 & 0x81000) != 0x80000)) {\n      if ((uVar3 & 4) == 0) {\n        region_info->width = region_info->height;\n      }\n      if ((uVar3 & 8) == 0) {\n        region_info->height = region_info->width;\n      }\n    }\n    return uVar3;\n  }" if (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    if ((uVar3 & 0x1000) != 0) {\n      sVar2 = image->rows;\n      region_info->width = image->columns;\n      region_info->height = sVar2;\n    }\n    uVar3 = (*(code *)puVar1)(geometry,&region_info->x,&region_info->y,region_info,\n                              &region_info->height);\n    if (((uVar3 & 0xc) != 0) && ((uVar3 & 0x81000) != 0x80000)) {\n      if ((uVar3 & 4) == 0) {\n        region_info->width = region_info->height;\n      }\n      if ((uVar3 & 8) == 0) {\n        region_info->height = region_info->width;\n      }\n    }\n    return uVar3;\n  }" { (if_statement "if ((uVar3 & 0x1000) != 0) {\n      sVar2 = image->rows;\n      region_info->width = image->columns;\n      region_info->height = sVar2;\n    }" if (parenthesized_expression "((uVar3 & 0x1000) != 0)" ( (binary_expression "(uVar3 & 0x1000) != 0" (parenthesized_expression "(uVar3 & 0x1000)" ( (binary_expression "uVar3 & 0x1000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      sVar2 = image->rows;\n      region_info->width = image->columns;\n      region_info->height = sVar2;\n    }" { (expression_statement "sVar2 = image->rows;" (assignment_expression "sVar2 = image->rows" identifier = (field_expression "image->rows" identifier -> field_identifier)) ;) (expression_statement "region_info->width = image->columns;" (assignment_expression "region_info->width = image->columns" (field_expression "region_info->width" identifier -> field_identifier) = (field_expression "image->columns" identifier -> field_identifier)) ;) (expression_statement "region_info->height = sVar2;" (assignment_expression "region_info->height = sVar2" (field_expression "region_info->height" identifier -> field_identifier) = identifier) ;) })) (expression_statement "uVar3 = (*(code *)puVar1)(geometry,&region_info->x,&region_info->y,region_info,\n                              &region_info->height);" (assignment_expression "uVar3 = (*(code *)puVar1)(geometry,&region_info->x,&region_info->y,region_info,\n                              &region_info->height)" identifier = (call_expression "(*(code *)puVar1)(geometry,&region_info->x,&region_info->y,region_info,\n                              &region_info->height)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(geometry,&region_info->x,&region_info->y,region_info,\n                              &region_info->height)" ( identifier , (pointer_expression "&region_info->x" & (field_expression "region_info->x" identifier -> field_identifier)) , (pointer_expression "&region_info->y" & (field_expression "region_info->y" identifier -> field_identifier)) , identifier , (pointer_expression "&region_info->height" & (field_expression "region_info->height" identifier -> field_identifier)) )))) ;) (if_statement "if (((uVar3 & 0xc) != 0) && ((uVar3 & 0x81000) != 0x80000)) {\n      if ((uVar3 & 4) == 0) {\n        region_info->width = region_info->height;\n      }\n      if ((uVar3 & 8) == 0) {\n        region_info->height = region_info->width;\n      }\n    }" if (parenthesized_expression "(((uVar3 & 0xc) != 0) && ((uVar3 & 0x81000) != 0x80000))" ( (binary_expression "((uVar3 & 0xc) != 0) && ((uVar3 & 0x81000) != 0x80000)" (parenthesized_expression "((uVar3 & 0xc) != 0)" ( (binary_expression "(uVar3 & 0xc) != 0" (parenthesized_expression "(uVar3 & 0xc)" ( (binary_expression "uVar3 & 0xc" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "((uVar3 & 0x81000) != 0x80000)" ( (binary_expression "(uVar3 & 0x81000) != 0x80000" (parenthesized_expression "(uVar3 & 0x81000)" ( (binary_expression "uVar3 & 0x81000" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n      if ((uVar3 & 4) == 0) {\n        region_info->width = region_info->height;\n      }\n      if ((uVar3 & 8) == 0) {\n        region_info->height = region_info->width;\n      }\n    }" { (if_statement "if ((uVar3 & 4) == 0) {\n        region_info->width = region_info->height;\n      }" if (parenthesized_expression "((uVar3 & 4) == 0)" ( (binary_expression "(uVar3 & 4) == 0" (parenthesized_expression "(uVar3 & 4)" ( (binary_expression "uVar3 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        region_info->width = region_info->height;\n      }" { (expression_statement "region_info->width = region_info->height;" (assignment_expression "region_info->width = region_info->height" (field_expression "region_info->width" identifier -> field_identifier) = (field_expression "region_info->height" identifier -> field_identifier)) ;) })) (if_statement "if ((uVar3 & 8) == 0) {\n        region_info->height = region_info->width;\n      }" if (parenthesized_expression "((uVar3 & 8) == 0)" ( (binary_expression "(uVar3 & 8) == 0" (parenthesized_expression "(uVar3 & 8)" ( (binary_expression "uVar3 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        region_info->height = region_info->width;\n      }" { (expression_statement "region_info->height = region_info->width;" (assignment_expression "region_info->height = region_info->width" (field_expression "region_info->height" identifier -> field_identifier) = (field_expression "region_info->width" identifier -> field_identifier)) ;) })) })) (return_statement "return uVar3;" return identifier ;) })) (expression_statement "(*(code *)PTR_ThrowMagickException_003a8f20)\n            (exception,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7c14,\n             PTR_s_t_to_left_003a88e4 + -0x7e30,0x63d,0x19a,\n             PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7cac,PTR_LAB_003a88e0 + 0x3e28,\n             geometry);" (call_expression "(*(code *)PTR_ThrowMagickException_003a8f20)\n            (exception,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7c14,\n             PTR_s_t_to_left_003a88e4 + -0x7e30,0x63d,0x19a,\n             PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7cac,PTR_LAB_003a88e0 + 0x3e28,\n             geometry)" (parenthesized_expression "(*(code *)PTR_ThrowMagickException_003a8f20)" ( (pointer_expression "*(code *)PTR_ThrowMagickException_003a8f20" * (cast_expression "(code *)PTR_ThrowMagickException_003a8f20" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(exception,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7c14,\n             PTR_s_t_to_left_003a88e4 + -0x7e30,0x63d,0x19a,\n             PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7cac,PTR_LAB_003a88e0 + 0x3e28,\n             geometry)" ( identifier , (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7c14" identifier + number_literal) , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x7e30" identifier + number_literal) , number_literal , number_literal , (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7cac" identifier + number_literal) , (binary_expression "PTR_LAB_003a88e0 + 0x3e28" identifier + number_literal) , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "uint ParsePageGeometry(int param_1,undefined4 param_2,int *param_3,undefined4 param_4)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  int iVar3;\n  \n  (*(code *)PTR_SetGeometry_003a9624)(param_1,param_3);\n  if (*(int *)(param_1 + 0x228) != 0) {\n    *param_3 = *(int *)(param_1 + 0x228);\n  }\n  puVar1 = PTR_ParseAbsoluteGeometry_003a8e2c;\n  if (*(int *)(param_1 + 0x22c) != 0) {\n    param_3[1] = *(int *)(param_1 + 0x22c);\n  }\n  uVar2 = (*(code *)puVar1)(param_2,param_3);\n  puVar1 = PTR_ParseMetaGeometry_003a907c;\n  if (uVar2 != 0) {\n    if ((uVar2 & 0x1000) != 0) {\n      iVar3 = *(int *)(param_1 + 0x1c);\n      *param_3 = *(int *)(param_1 + 0x18);\n      param_3[1] = iVar3;\n    }\n    uVar2 = (*(code *)puVar1)(param_2,param_3 + 2,param_3 + 3,param_3,param_3 + 1);\n    if (((uVar2 & 0xc) != 0) && ((uVar2 & 0x81000) != 0x80000)) {\n      if ((uVar2 & 4) == 0) {\n        *param_3 = param_3[1];\n      }\n      if ((uVar2 & 8) == 0) {\n        param_3[1] = *param_3;\n      }\n    }\n    return uVar2;\n  }\n  (*(code *)PTR_ThrowMagickException_003a8f20)\n            (param_4,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7c14,\n             PTR_s_t_to_left_003a88e4 + -0x7e30,0x63d,0x19a,\n             PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7cac,PTR_LAB_003a88e0 + 0x3e28,\n             param_2);\n  return 0;\n}\n\n" (function_definition "uint ParsePageGeometry(int param_1,undefined4 param_2,int *param_3,undefined4 param_4)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  int iVar3;\n  \n  (*(code *)PTR_SetGeometry_003a9624)(param_1,param_3);\n  if (*(int *)(param_1 + 0x228) != 0) {\n    *param_3 = *(int *)(param_1 + 0x228);\n  }\n  puVar1 = PTR_ParseAbsoluteGeometry_003a8e2c;\n  if (*(int *)(param_1 + 0x22c) != 0) {\n    param_3[1] = *(int *)(param_1 + 0x22c);\n  }\n  uVar2 = (*(code *)puVar1)(param_2,param_3);\n  puVar1 = PTR_ParseMetaGeometry_003a907c;\n  if (uVar2 != 0) {\n    if ((uVar2 & 0x1000) != 0) {\n      iVar3 = *(int *)(param_1 + 0x1c);\n      *param_3 = *(int *)(param_1 + 0x18);\n      param_3[1] = iVar3;\n    }\n    uVar2 = (*(code *)puVar1)(param_2,param_3 + 2,param_3 + 3,param_3,param_3 + 1);\n    if (((uVar2 & 0xc) != 0) && ((uVar2 & 0x81000) != 0x80000)) {\n      if ((uVar2 & 4) == 0) {\n        *param_3 = param_3[1];\n      }\n      if ((uVar2 & 8) == 0) {\n        param_3[1] = *param_3;\n      }\n    }\n    return uVar2;\n  }\n  (*(code *)PTR_ThrowMagickException_003a8f20)\n            (param_4,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7c14,\n             PTR_s_t_to_left_003a88e4 + -0x7e30,0x63d,0x19a,\n             PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7cac,PTR_LAB_003a88e0 + 0x3e28,\n             param_2);\n  return 0;\n}" type_identifier (function_declarator "ParsePageGeometry(int param_1,undefined4 param_2,int *param_3,undefined4 param_4)" identifier (parameter_list "(int param_1,undefined4 param_2,int *param_3,undefined4 param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "undefined4 param_4" type_identifier identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  uint uVar2;\n  int iVar3;\n  \n  (*(code *)PTR_SetGeometry_003a9624)(param_1,param_3);\n  if (*(int *)(param_1 + 0x228) != 0) {\n    *param_3 = *(int *)(param_1 + 0x228);\n  }\n  puVar1 = PTR_ParseAbsoluteGeometry_003a8e2c;\n  if (*(int *)(param_1 + 0x22c) != 0) {\n    param_3[1] = *(int *)(param_1 + 0x22c);\n  }\n  uVar2 = (*(code *)puVar1)(param_2,param_3);\n  puVar1 = PTR_ParseMetaGeometry_003a907c;\n  if (uVar2 != 0) {\n    if ((uVar2 & 0x1000) != 0) {\n      iVar3 = *(int *)(param_1 + 0x1c);\n      *param_3 = *(int *)(param_1 + 0x18);\n      param_3[1] = iVar3;\n    }\n    uVar2 = (*(code *)puVar1)(param_2,param_3 + 2,param_3 + 3,param_3,param_3 + 1);\n    if (((uVar2 & 0xc) != 0) && ((uVar2 & 0x81000) != 0x80000)) {\n      if ((uVar2 & 4) == 0) {\n        *param_3 = param_3[1];\n      }\n      if ((uVar2 & 8) == 0) {\n        param_3[1] = *param_3;\n      }\n    }\n    return uVar2;\n  }\n  (*(code *)PTR_ThrowMagickException_003a8f20)\n            (param_4,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7c14,\n             PTR_s_t_to_left_003a88e4 + -0x7e30,0x63d,0x19a,\n             PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7cac,PTR_LAB_003a88e0 + 0x3e28,\n             param_2);\n  return 0;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (expression_statement "(*(code *)PTR_SetGeometry_003a9624)(param_1,param_3);" (call_expression "(*(code *)PTR_SetGeometry_003a9624)(param_1,param_3)" (parenthesized_expression "(*(code *)PTR_SetGeometry_003a9624)" ( (pointer_expression "*(code *)PTR_SetGeometry_003a9624" * (cast_expression "(code *)PTR_SetGeometry_003a9624" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_3)" ( identifier , identifier ))) ;) (if_statement "if (*(int *)(param_1 + 0x228) != 0) {\n    *param_3 = *(int *)(param_1 + 0x228);\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x228) != 0)" ( (binary_expression "*(int *)(param_1 + 0x228) != 0" (pointer_expression "*(int *)(param_1 + 0x228)" * (cast_expression "(int *)(param_1 + 0x228)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x228)" ( (binary_expression "param_1 + 0x228" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    *param_3 = *(int *)(param_1 + 0x228);\n  }" { (expression_statement "*param_3 = *(int *)(param_1 + 0x228);" (assignment_expression "*param_3 = *(int *)(param_1 + 0x228)" (pointer_expression "*param_3" * identifier) = (pointer_expression "*(int *)(param_1 + 0x228)" * (cast_expression "(int *)(param_1 + 0x228)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x228)" ( (binary_expression "param_1 + 0x228" identifier + number_literal) ))))) ;) })) (expression_statement "puVar1 = PTR_ParseAbsoluteGeometry_003a8e2c;" (assignment_expression "puVar1 = PTR_ParseAbsoluteGeometry_003a8e2c" identifier = identifier) ;) (if_statement "if (*(int *)(param_1 + 0x22c) != 0) {\n    param_3[1] = *(int *)(param_1 + 0x22c);\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x22c) != 0)" ( (binary_expression "*(int *)(param_1 + 0x22c) != 0" (pointer_expression "*(int *)(param_1 + 0x22c)" * (cast_expression "(int *)(param_1 + 0x22c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x22c)" ( (binary_expression "param_1 + 0x22c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    param_3[1] = *(int *)(param_1 + 0x22c);\n  }" { (expression_statement "param_3[1] = *(int *)(param_1 + 0x22c);" (assignment_expression "param_3[1] = *(int *)(param_1 + 0x22c)" (subscript_expression "param_3[1]" identifier [ number_literal ]) = (pointer_expression "*(int *)(param_1 + 0x22c)" * (cast_expression "(int *)(param_1 + 0x22c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x22c)" ( (binary_expression "param_1 + 0x22c" identifier + number_literal) ))))) ;) })) (expression_statement "uVar2 = (*(code *)puVar1)(param_2,param_3);" (assignment_expression "uVar2 = (*(code *)puVar1)(param_2,param_3)" identifier = (call_expression "(*(code *)puVar1)(param_2,param_3)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2,param_3)" ( identifier , identifier )))) ;) (expression_statement "puVar1 = PTR_ParseMetaGeometry_003a907c;" (assignment_expression "puVar1 = PTR_ParseMetaGeometry_003a907c" identifier = identifier) ;) (if_statement "if (uVar2 != 0) {\n    if ((uVar2 & 0x1000) != 0) {\n      iVar3 = *(int *)(param_1 + 0x1c);\n      *param_3 = *(int *)(param_1 + 0x18);\n      param_3[1] = iVar3;\n    }\n    uVar2 = (*(code *)puVar1)(param_2,param_3 + 2,param_3 + 3,param_3,param_3 + 1);\n    if (((uVar2 & 0xc) != 0) && ((uVar2 & 0x81000) != 0x80000)) {\n      if ((uVar2 & 4) == 0) {\n        *param_3 = param_3[1];\n      }\n      if ((uVar2 & 8) == 0) {\n        param_3[1] = *param_3;\n      }\n    }\n    return uVar2;\n  }" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    if ((uVar2 & 0x1000) != 0) {\n      iVar3 = *(int *)(param_1 + 0x1c);\n      *param_3 = *(int *)(param_1 + 0x18);\n      param_3[1] = iVar3;\n    }\n    uVar2 = (*(code *)puVar1)(param_2,param_3 + 2,param_3 + 3,param_3,param_3 + 1);\n    if (((uVar2 & 0xc) != 0) && ((uVar2 & 0x81000) != 0x80000)) {\n      if ((uVar2 & 4) == 0) {\n        *param_3 = param_3[1];\n      }\n      if ((uVar2 & 8) == 0) {\n        param_3[1] = *param_3;\n      }\n    }\n    return uVar2;\n  }" { (if_statement "if ((uVar2 & 0x1000) != 0) {\n      iVar3 = *(int *)(param_1 + 0x1c);\n      *param_3 = *(int *)(param_1 + 0x18);\n      param_3[1] = iVar3;\n    }" if (parenthesized_expression "((uVar2 & 0x1000) != 0)" ( (binary_expression "(uVar2 & 0x1000) != 0" (parenthesized_expression "(uVar2 & 0x1000)" ( (binary_expression "uVar2 & 0x1000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      iVar3 = *(int *)(param_1 + 0x1c);\n      *param_3 = *(int *)(param_1 + 0x18);\n      param_3[1] = iVar3;\n    }" { (expression_statement "iVar3 = *(int *)(param_1 + 0x1c);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x1c)" identifier = (pointer_expression "*(int *)(param_1 + 0x1c)" * (cast_expression "(int *)(param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "*param_3 = *(int *)(param_1 + 0x18);" (assignment_expression "*param_3 = *(int *)(param_1 + 0x18)" (pointer_expression "*param_3" * identifier) = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "param_3[1] = iVar3;" (assignment_expression "param_3[1] = iVar3" (subscript_expression "param_3[1]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "uVar2 = (*(code *)puVar1)(param_2,param_3 + 2,param_3 + 3,param_3,param_3 + 1);" (assignment_expression "uVar2 = (*(code *)puVar1)(param_2,param_3 + 2,param_3 + 3,param_3,param_3 + 1)" identifier = (call_expression "(*(code *)puVar1)(param_2,param_3 + 2,param_3 + 3,param_3,param_3 + 1)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2,param_3 + 2,param_3 + 3,param_3,param_3 + 1)" ( identifier , (binary_expression "param_3 + 2" identifier + number_literal) , (binary_expression "param_3 + 3" identifier + number_literal) , identifier , (binary_expression "param_3 + 1" identifier + number_literal) )))) ;) (if_statement "if (((uVar2 & 0xc) != 0) && ((uVar2 & 0x81000) != 0x80000)) {\n      if ((uVar2 & 4) == 0) {\n        *param_3 = param_3[1];\n      }\n      if ((uVar2 & 8) == 0) {\n        param_3[1] = *param_3;\n      }\n    }" if (parenthesized_expression "(((uVar2 & 0xc) != 0) && ((uVar2 & 0x81000) != 0x80000))" ( (binary_expression "((uVar2 & 0xc) != 0) && ((uVar2 & 0x81000) != 0x80000)" (parenthesized_expression "((uVar2 & 0xc) != 0)" ( (binary_expression "(uVar2 & 0xc) != 0" (parenthesized_expression "(uVar2 & 0xc)" ( (binary_expression "uVar2 & 0xc" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "((uVar2 & 0x81000) != 0x80000)" ( (binary_expression "(uVar2 & 0x81000) != 0x80000" (parenthesized_expression "(uVar2 & 0x81000)" ( (binary_expression "uVar2 & 0x81000" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n      if ((uVar2 & 4) == 0) {\n        *param_3 = param_3[1];\n      }\n      if ((uVar2 & 8) == 0) {\n        param_3[1] = *param_3;\n      }\n    }" { (if_statement "if ((uVar2 & 4) == 0) {\n        *param_3 = param_3[1];\n      }" if (parenthesized_expression "((uVar2 & 4) == 0)" ( (binary_expression "(uVar2 & 4) == 0" (parenthesized_expression "(uVar2 & 4)" ( (binary_expression "uVar2 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        *param_3 = param_3[1];\n      }" { (expression_statement "*param_3 = param_3[1];" (assignment_expression "*param_3 = param_3[1]" (pointer_expression "*param_3" * identifier) = (subscript_expression "param_3[1]" identifier [ number_literal ])) ;) })) (if_statement "if ((uVar2 & 8) == 0) {\n        param_3[1] = *param_3;\n      }" if (parenthesized_expression "((uVar2 & 8) == 0)" ( (binary_expression "(uVar2 & 8) == 0" (parenthesized_expression "(uVar2 & 8)" ( (binary_expression "uVar2 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        param_3[1] = *param_3;\n      }" { (expression_statement "param_3[1] = *param_3;" (assignment_expression "param_3[1] = *param_3" (subscript_expression "param_3[1]" identifier [ number_literal ]) = (pointer_expression "*param_3" * identifier)) ;) })) })) (return_statement "return uVar2;" return identifier ;) })) (expression_statement "(*(code *)PTR_ThrowMagickException_003a8f20)\n            (param_4,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7c14,\n             PTR_s_t_to_left_003a88e4 + -0x7e30,0x63d,0x19a,\n             PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7cac,PTR_LAB_003a88e0 + 0x3e28,\n             param_2);" (call_expression "(*(code *)PTR_ThrowMagickException_003a8f20)\n            (param_4,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7c14,\n             PTR_s_t_to_left_003a88e4 + -0x7e30,0x63d,0x19a,\n             PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7cac,PTR_LAB_003a88e0 + 0x3e28,\n             param_2)" (parenthesized_expression "(*(code *)PTR_ThrowMagickException_003a8f20)" ( (pointer_expression "*(code *)PTR_ThrowMagickException_003a8f20" * (cast_expression "(code *)PTR_ThrowMagickException_003a8f20" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_4,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7c14,\n             PTR_s_t_to_left_003a88e4 + -0x7e30,0x63d,0x19a,\n             PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7cac,PTR_LAB_003a88e0 + 0x3e28,\n             param_2)" ( identifier , (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7c14" identifier + number_literal) , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x7e30" identifier + number_literal) , number_literal , number_literal , (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7cac" identifier + number_literal) , (binary_expression "PTR_LAB_003a88e0 + 0x3e28" identifier + number_literal) , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (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 ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (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 IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , IDENT , (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression IDENT [ LIT ])) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) })) })) (return_statement return IDENT ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , LIT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , IDENT ))) ;) (return_statement return LIT ;) })))
(function_definition "uint ParsePageGeometry(int param_1,undefined4 param_2,int *param_3,undefined4 param_4)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  int iVar3;\n  \n  (*(code *)PTR_SetGeometry_003a9624)(param_1,param_3);\n  if (*(int *)(param_1 + 0x228) != 0) {\n    *param_3 = *(int *)(param_1 + 0x228);\n  }\n  puVar1 = PTR_ParseAbsoluteGeometry_003a8e2c;\n  if (*(int *)(param_1 + 0x22c) != 0) {\n    param_3[1] = *(int *)(param_1 + 0x22c);\n  }\n  uVar2 = (*(code *)puVar1)(param_2,param_3);\n  puVar1 = PTR_ParseMetaGeometry_003a907c;\n  if (uVar2 != 0) {\n    if ((uVar2 & 0x1000) != 0) {\n      iVar3 = *(int *)(param_1 + 0x1c);\n      *param_3 = *(int *)(param_1 + 0x18);\n      param_3[1] = iVar3;\n    }\n    uVar2 = (*(code *)puVar1)(param_2,param_3 + 2,param_3 + 3,param_3,param_3 + 1);\n    if (((uVar2 & 0xc) != 0) && ((uVar2 & 0x81000) != 0x80000)) {\n      if ((uVar2 & 4) == 0) {\n        *param_3 = param_3[1];\n      }\n      if ((uVar2 & 8) == 0) {\n        param_3[1] = *param_3;\n      }\n    }\n    return uVar2;\n  }\n  (*(code *)PTR_ThrowMagickException_003a8f20)\n            (param_4,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7c14,\n             PTR_s_t_to_left_003a88e4 + -0x7e30,0x63d,0x19a,\n             PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7cac,PTR_LAB_003a88e0 + 0x3e28,\n             param_2);\n  return 0;\n}" (type_identifier "uint") (function_declarator "ParsePageGeometry(int param_1,undefined4 param_2,int *param_3,undefined4 param_4)" (identifier "ParsePageGeometry") (parameter_list "(int param_1,undefined4 param_2,int *param_3,undefined4 param_4)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "int *param_3" (primitive_type "int") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  uint uVar2;\n  int iVar3;\n  \n  (*(code *)PTR_SetGeometry_003a9624)(param_1,param_3);\n  if (*(int *)(param_1 + 0x228) != 0) {\n    *param_3 = *(int *)(param_1 + 0x228);\n  }\n  puVar1 = PTR_ParseAbsoluteGeometry_003a8e2c;\n  if (*(int *)(param_1 + 0x22c) != 0) {\n    param_3[1] = *(int *)(param_1 + 0x22c);\n  }\n  uVar2 = (*(code *)puVar1)(param_2,param_3);\n  puVar1 = PTR_ParseMetaGeometry_003a907c;\n  if (uVar2 != 0) {\n    if ((uVar2 & 0x1000) != 0) {\n      iVar3 = *(int *)(param_1 + 0x1c);\n      *param_3 = *(int *)(param_1 + 0x18);\n      param_3[1] = iVar3;\n    }\n    uVar2 = (*(code *)puVar1)(param_2,param_3 + 2,param_3 + 3,param_3,param_3 + 1);\n    if (((uVar2 & 0xc) != 0) && ((uVar2 & 0x81000) != 0x80000)) {\n      if ((uVar2 & 4) == 0) {\n        *param_3 = param_3[1];\n      }\n      if ((uVar2 & 8) == 0) {\n        param_3[1] = *param_3;\n      }\n    }\n    return uVar2;\n  }\n  (*(code *)PTR_ThrowMagickException_003a8f20)\n            (param_4,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7c14,\n             PTR_s_t_to_left_003a88e4 + -0x7e30,0x63d,0x19a,\n             PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7cac,PTR_LAB_003a88e0 + 0x3e28,\n             param_2);\n  return 0;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (expression_statement "(*(code *)PTR_SetGeometry_003a9624)(param_1,param_3);" (call_expression "(*(code *)PTR_SetGeometry_003a9624)(param_1,param_3)" (parenthesized_expression "(*(code *)PTR_SetGeometry_003a9624)" (( "(") (pointer_expression "*(code *)PTR_SetGeometry_003a9624" (* "*") (cast_expression "(code *)PTR_SetGeometry_003a9624" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_SetGeometry_003a9624"))) () ")")) (argument_list "(param_1,param_3)" (( "(") (identifier "param_1") (, ",") (identifier "param_3") () ")"))) (; ";")) (if_statement "if (*(int *)(param_1 + 0x228) != 0) {\n    *param_3 = *(int *)(param_1 + 0x228);\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x228) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x228) != 0" (pointer_expression "*(int *)(param_1 + 0x228)" (* "*") (cast_expression "(int *)(param_1 + 0x228)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x228)" (( "(") (binary_expression "param_1 + 0x228" (identifier "param_1") (+ "+") (number_literal "0x228")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    *param_3 = *(int *)(param_1 + 0x228);\n  }" ({ "{") (expression_statement "*param_3 = *(int *)(param_1 + 0x228);" (assignment_expression "*param_3 = *(int *)(param_1 + 0x228)" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (pointer_expression "*(int *)(param_1 + 0x228)" (* "*") (cast_expression "(int *)(param_1 + 0x228)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x228)" (( "(") (binary_expression "param_1 + 0x228" (identifier "param_1") (+ "+") (number_literal "0x228")) () ")"))))) (; ";")) (} "}"))) (expression_statement "puVar1 = PTR_ParseAbsoluteGeometry_003a8e2c;" (assignment_expression "puVar1 = PTR_ParseAbsoluteGeometry_003a8e2c" (identifier "puVar1") (= "=") (identifier "PTR_ParseAbsoluteGeometry_003a8e2c")) (; ";")) (if_statement "if (*(int *)(param_1 + 0x22c) != 0) {\n    param_3[1] = *(int *)(param_1 + 0x22c);\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x22c) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x22c) != 0" (pointer_expression "*(int *)(param_1 + 0x22c)" (* "*") (cast_expression "(int *)(param_1 + 0x22c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x22c)" (( "(") (binary_expression "param_1 + 0x22c" (identifier "param_1") (+ "+") (number_literal "0x22c")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    param_3[1] = *(int *)(param_1 + 0x22c);\n  }" ({ "{") (expression_statement "param_3[1] = *(int *)(param_1 + 0x22c);" (assignment_expression "param_3[1] = *(int *)(param_1 + 0x22c)" (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")) (= "=") (pointer_expression "*(int *)(param_1 + 0x22c)" (* "*") (cast_expression "(int *)(param_1 + 0x22c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x22c)" (( "(") (binary_expression "param_1 + 0x22c" (identifier "param_1") (+ "+") (number_literal "0x22c")) () ")"))))) (; ";")) (} "}"))) (expression_statement "uVar2 = (*(code *)puVar1)(param_2,param_3);" (assignment_expression "uVar2 = (*(code *)puVar1)(param_2,param_3)" (identifier "uVar2") (= "=") (call_expression "(*(code *)puVar1)(param_2,param_3)" (parenthesized_expression "(*(code *)puVar1)" (( "(") (pointer_expression "*(code *)puVar1" (* "*") (cast_expression "(code *)puVar1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) () ")")) (argument_list "(param_2,param_3)" (( "(") (identifier "param_2") (, ",") (identifier "param_3") () ")")))) (; ";")) (expression_statement "puVar1 = PTR_ParseMetaGeometry_003a907c;" (assignment_expression "puVar1 = PTR_ParseMetaGeometry_003a907c" (identifier "puVar1") (= "=") (identifier "PTR_ParseMetaGeometry_003a907c")) (; ";")) (if_statement "if (uVar2 != 0) {\n    if ((uVar2 & 0x1000) != 0) {\n      iVar3 = *(int *)(param_1 + 0x1c);\n      *param_3 = *(int *)(param_1 + 0x18);\n      param_3[1] = iVar3;\n    }\n    uVar2 = (*(code *)puVar1)(param_2,param_3 + 2,param_3 + 3,param_3,param_3 + 1);\n    if (((uVar2 & 0xc) != 0) && ((uVar2 & 0x81000) != 0x80000)) {\n      if ((uVar2 & 4) == 0) {\n        *param_3 = param_3[1];\n      }\n      if ((uVar2 & 8) == 0) {\n        param_3[1] = *param_3;\n      }\n    }\n    return uVar2;\n  }" (if "if") (parenthesized_expression "(uVar2 != 0)" (( "(") (binary_expression "uVar2 != 0" (identifier "uVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if ((uVar2 & 0x1000) != 0) {\n      iVar3 = *(int *)(param_1 + 0x1c);\n      *param_3 = *(int *)(param_1 + 0x18);\n      param_3[1] = iVar3;\n    }\n    uVar2 = (*(code *)puVar1)(param_2,param_3 + 2,param_3 + 3,param_3,param_3 + 1);\n    if (((uVar2 & 0xc) != 0) && ((uVar2 & 0x81000) != 0x80000)) {\n      if ((uVar2 & 4) == 0) {\n        *param_3 = param_3[1];\n      }\n      if ((uVar2 & 8) == 0) {\n        param_3[1] = *param_3;\n      }\n    }\n    return uVar2;\n  }" ({ "{") (if_statement "if ((uVar2 & 0x1000) != 0) {\n      iVar3 = *(int *)(param_1 + 0x1c);\n      *param_3 = *(int *)(param_1 + 0x18);\n      param_3[1] = iVar3;\n    }" (if "if") (parenthesized_expression "((uVar2 & 0x1000) != 0)" (( "(") (binary_expression "(uVar2 & 0x1000) != 0" (parenthesized_expression "(uVar2 & 0x1000)" (( "(") (binary_expression "uVar2 & 0x1000" (identifier "uVar2") (& "&") (number_literal "0x1000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar3 = *(int *)(param_1 + 0x1c);\n      *param_3 = *(int *)(param_1 + 0x18);\n      param_3[1] = iVar3;\n    }" ({ "{") (expression_statement "iVar3 = *(int *)(param_1 + 0x1c);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x1c)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(param_1 + 0x1c)" (* "*") (cast_expression "(int *)(param_1 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "*param_3 = *(int *)(param_1 + 0x18);" (assignment_expression "*param_3 = *(int *)(param_1 + 0x18)" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "param_3[1] = iVar3;" (assignment_expression "param_3[1] = iVar3" (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar3")) (; ";")) (} "}"))) (expression_statement "uVar2 = (*(code *)puVar1)(param_2,param_3 + 2,param_3 + 3,param_3,param_3 + 1);" (assignment_expression "uVar2 = (*(code *)puVar1)(param_2,param_3 + 2,param_3 + 3,param_3,param_3 + 1)" (identifier "uVar2") (= "=") (call_expression "(*(code *)puVar1)(param_2,param_3 + 2,param_3 + 3,param_3,param_3 + 1)" (parenthesized_expression "(*(code *)puVar1)" (( "(") (pointer_expression "*(code *)puVar1" (* "*") (cast_expression "(code *)puVar1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) () ")")) (argument_list "(param_2,param_3 + 2,param_3 + 3,param_3,param_3 + 1)" (( "(") (identifier "param_2") (, ",") (binary_expression "param_3 + 2" (identifier "param_3") (+ "+") (number_literal "2")) (, ",") (binary_expression "param_3 + 3" (identifier "param_3") (+ "+") (number_literal "3")) (, ",") (identifier "param_3") (, ",") (binary_expression "param_3 + 1" (identifier "param_3") (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (((uVar2 & 0xc) != 0) && ((uVar2 & 0x81000) != 0x80000)) {\n      if ((uVar2 & 4) == 0) {\n        *param_3 = param_3[1];\n      }\n      if ((uVar2 & 8) == 0) {\n        param_3[1] = *param_3;\n      }\n    }" (if "if") (parenthesized_expression "(((uVar2 & 0xc) != 0) && ((uVar2 & 0x81000) != 0x80000))" (( "(") (binary_expression "((uVar2 & 0xc) != 0) && ((uVar2 & 0x81000) != 0x80000)" (parenthesized_expression "((uVar2 & 0xc) != 0)" (( "(") (binary_expression "(uVar2 & 0xc) != 0" (parenthesized_expression "(uVar2 & 0xc)" (( "(") (binary_expression "uVar2 & 0xc" (identifier "uVar2") (& "&") (number_literal "0xc")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((uVar2 & 0x81000) != 0x80000)" (( "(") (binary_expression "(uVar2 & 0x81000) != 0x80000" (parenthesized_expression "(uVar2 & 0x81000)" (( "(") (binary_expression "uVar2 & 0x81000" (identifier "uVar2") (& "&") (number_literal "0x81000")) () ")")) (!= "!=") (number_literal "0x80000")) () ")"))) () ")")) (compound_statement "{\n      if ((uVar2 & 4) == 0) {\n        *param_3 = param_3[1];\n      }\n      if ((uVar2 & 8) == 0) {\n        param_3[1] = *param_3;\n      }\n    }" ({ "{") (if_statement "if ((uVar2 & 4) == 0) {\n        *param_3 = param_3[1];\n      }" (if "if") (parenthesized_expression "((uVar2 & 4) == 0)" (( "(") (binary_expression "(uVar2 & 4) == 0" (parenthesized_expression "(uVar2 & 4)" (( "(") (binary_expression "uVar2 & 4" (identifier "uVar2") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *param_3 = param_3[1];\n      }" ({ "{") (expression_statement "*param_3 = param_3[1];" (assignment_expression "*param_3 = param_3[1]" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}"))) (if_statement "if ((uVar2 & 8) == 0) {\n        param_3[1] = *param_3;\n      }" (if "if") (parenthesized_expression "((uVar2 & 8) == 0)" (( "(") (binary_expression "(uVar2 & 8) == 0" (parenthesized_expression "(uVar2 & 8)" (( "(") (binary_expression "uVar2 & 8" (identifier "uVar2") (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        param_3[1] = *param_3;\n      }" ({ "{") (expression_statement "param_3[1] = *param_3;" (assignment_expression "param_3[1] = *param_3" (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")) (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (} "}"))) (} "}"))) (return_statement "return uVar2;" (return "return") (identifier "uVar2") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_ThrowMagickException_003a8f20)\n            (param_4,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7c14,\n             PTR_s_t_to_left_003a88e4 + -0x7e30,0x63d,0x19a,\n             PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7cac,PTR_LAB_003a88e0 + 0x3e28,\n             param_2);" (call_expression "(*(code *)PTR_ThrowMagickException_003a8f20)\n            (param_4,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7c14,\n             PTR_s_t_to_left_003a88e4 + -0x7e30,0x63d,0x19a,\n             PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7cac,PTR_LAB_003a88e0 + 0x3e28,\n             param_2)" (parenthesized_expression "(*(code *)PTR_ThrowMagickException_003a8f20)" (( "(") (pointer_expression "*(code *)PTR_ThrowMagickException_003a8f20" (* "*") (cast_expression "(code *)PTR_ThrowMagickException_003a8f20" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ThrowMagickException_003a8f20"))) () ")")) (argument_list "(param_4,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7c14,\n             PTR_s_t_to_left_003a88e4 + -0x7e30,0x63d,0x19a,\n             PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7cac,PTR_LAB_003a88e0 + 0x3e28,\n             param_2)" (( "(") (identifier "param_4") (, ",") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7c14" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "0x7c14")) (, ",") (binary_expression "PTR_s_t_to_left_003a88e4 + -0x7e30" (identifier "PTR_s_t_to_left_003a88e4") (+ "+") (number_literal "-0x7e30")) (, ",") (number_literal "0x63d") (, ",") (number_literal "0x19a") (, ",") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7cac" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "0x7cac")) (, ",") (binary_expression "PTR_LAB_003a88e0 + 0x3e28" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x3e28")) (, ",") (identifier "param_2") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))

/* 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 *image,char *geometry,type_3 *region_info,type_4 *exception)

{
  type_5 *puVar1;
  size_t var_1;
  type_6 var_2;
  
  (*(type_7 *)PTR_SetGeometry_003a9624)(image,region_info);
  var_1 = (image->page).width;
  if (var_1 != 0) {
    region_info->width = var_1;
  }
  puVar1 = PTR_ParseAbsoluteGeometry_003a8e2c;
  var_1 = (image->page).height;
  if (var_1 != 0) {
    region_info->height = var_1;
  }
  var_2 = (*(type_7 *)puVar1)(geometry,region_info);
  puVar1 = PTR_ParseMetaGeometry_003a907c;
  if (var_2 != 0) {
    if ((var_2 & 0x1000) != 0) {
      var_1 = image->rows;
      region_info->width = image->columns;
      region_info->height = var_1;
    }
    var_2 = (*(type_7 *)puVar1)(geometry,&region_info->x,&region_info->y,region_info,
                              &region_info->height);
    if (((var_2 & 0xc) != 0) && ((var_2 & 0x81000) != 0x80000)) {
      if ((var_2 & 4) == 0) {
        region_info->width = region_info->height;
      }
      if ((var_2 & 8) == 0) {
        region_info->height = region_info->width;
      }
    }
    return var_2;
  }
  (*(type_7 *)PTR_ThrowMagickException_003a8f20)
            (exception,var_3 + 0x7c14,
             var_4 + -0x7e30,0x63d,0x19a,
             var_3 + 0x7cac,var_5 + 0x3e28,
             geometry);
  return 0;
}


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

uint MASKED(int param_1,undefined4 param_2,int *param_3,undefined4 param_4)

{
  undefined *puVar1;
  uint uVar2;
  int iVar3;
  
  (*(code *)PTR_SetGeometry_003a9624)(param_1,param_3);
  if (*(int *)(param_1 + 0x228) != 0) {
    *param_3 = *(int *)(param_1 + 0x228);
  }
  puVar1 = PTR_ParseAbsoluteGeometry_003a8e2c;
  if (*(int *)(param_1 + 0x22c) != 0) {
    param_3[1] = *(int *)(param_1 + 0x22c);
  }
  uVar2 = (*(code *)puVar1)(param_2,param_3);
  puVar1 = PTR_ParseMetaGeometry_003a907c;
  if (uVar2 != 0) {
    if ((uVar2 & 0x1000) != 0) {
      iVar3 = *(int *)(param_1 + 0x1c);
      *param_3 = *(int *)(param_1 + 0x18);
      param_3[1] = iVar3;
    }
    uVar2 = (*(code *)puVar1)(param_2,param_3 + 2,param_3 + 3,param_3,param_3 + 1);
    if (((uVar2 & 0xc) != 0) && ((uVar2 & 0x81000) != 0x80000)) {
      if ((uVar2 & 4) == 0) {
        *param_3 = param_3[1];
      }
      if ((uVar2 & 8) == 0) {
        param_3[1] = *param_3;
      }
    }
    return uVar2;
  }
  (*(code *)PTR_ThrowMagickException_003a8f20)
            (param_4,PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7c14,
             PTR_s_t_to_left_003a88e4 + -0x7e30,0x63d,0x19a,
             PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x7cac,PTR_LAB_003a88e0 + 0x3e28,
             param_2);
  return 0;
}

