
/* WARNING: Enum "GravityType": Some values do not have unique names */
/* WARNING: Enum "DisposeType": Some values do not have unique names */
/* WARNING: Enum "ChannelType": Some values do not have unique names */
/* WARNING: Enum "PixelChannel": Some values do not have unique names */
/* WARNING: Enum "ExceptionType": Some values do not have unique names */
/* WARNING: Enum "ComplianceType": Some values do not have unique names */

void DrawSetStrokeLineJoin(DrawingWand *wand,LineJoin linejoin)

{
  MagickBooleanType MVar1;
  undefined4 uVar2;
  
  if (wand == (DrawingWand *)0x0) {
    (*(code *)PTR___assert_fail_00178728)
              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1667,
               PTR_s_oint_00178034 + -0x5920);
    return;
  }
  if (wand->signature == 0xabacadab) {
    if (wand->debug == MagickFalse) {
      MVar1 = wand->filter_off;
    }
    else {
      (*(code *)PTR_LogMagickEvent_00178490)
                (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x5938,0x166a,
                 PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,wand->name);
      MVar1 = wand->filter_off;
    }
    if ((MVar1 != MagickFalse) || (wand->graphic_context[wand->index]->linejoin != linejoin)) {
      wand->graphic_context[wand->index]->linejoin = linejoin;
      uVar2 = (*(code *)PTR_CommandOptionToMnemonic_00178170)(0x29,linejoin);
      MVGPrintf(wand,PTR_s_oint_00178034 + -0x5eb0,uVar2);
    }
    return;
  }
  (*(code *)PTR___assert_fail_00178728)
            (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1668,
             PTR_s_oint_00178034 + -0x5920);
  return;
}



void DrawSetStrokeLineJoin(int param_1,int param_2)

{
  int iVar1;
  undefined4 uVar2;
  
  if (param_1 == 0) {
    (*(code *)PTR___assert_fail_00178728)
              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1667,
               PTR_s_oint_00178034 + -0x5920);
    return;
  }
  if (*(int *)(param_1 + 0x1054) == -0x54535255) {
    if (*(int *)(param_1 + 0x1050) == 0) {
      iVar1 = *(int *)(param_1 + 0x103c);
    }
    else {
      (*(code *)PTR_LogMagickEvent_00178490)
                (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x5938,0x166a,
                 PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,param_1 + 4);
      iVar1 = *(int *)(param_1 + 0x103c);
    }
    if ((iVar1 != 0) ||
       (*(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) !=
        param_2)) {
      *(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) =
           param_2;
      uVar2 = (*(code *)PTR_CommandOptionToMnemonic_00178170)(0x29,param_2);
      FUN_00074f08(param_1,PTR_s_oint_00178034 + -0x5eb0,uVar2);
    }
    return;
  }
  (*(code *)PTR___assert_fail_00178728)
            (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1668,
             PTR_s_oint_00178034 + -0x5920);
  return;
}


lui gp,0x10
addiu gp,gp,-0x1f38
addu gp,gp,t9
addiu sp,sp,-0x30
sw ra,0x2c(sp)
sw s1,0x28(sp)
sw s0,0x24(sp)
sw gp,0x18(sp)
beq a0,zero,0x00082018
_lw a3,-0x7fcc(gp)
or s0,a0,zero
lw v1,0x1054(a0)
lui v0,0xabac
ori v0,v0,0xadab
bne v1,v0,0x0008203c
_or s1,a1,zero
lw v0,0x1050(a0)
bne v0,zero,0x00082060
_addiu v0,a0,0x4
lw v0,0x103c(s0)
bne v0,zero,0x00081fb0
_nop
lw v1,0x1034(s0)
lw v0,0x1038(s0)
sll v1,v1,0x2
addu v0,v0,v1
lw v0,0x0(v0)
lw v0,0x248(v0)
beq v0,s1,0x00082008
_lw ra,0x2c(sp)
lw v1,0x1034(s0)
lw v0,0x1038(s0)
sll v1,v1,0x2
addu v0,v0,v1
lw v0,0x0(v0)
sw s1,0x248(v0)
or a1,s1,zero
li a0,0x29
lw t9,-0x7e90(gp)
jalr t9
_nop
lw gp,0x18(sp)
or a2,v0,zero
lw a1,-0x7fcc(gp)
addiu a1,a1,-0x5eb0
or a0,s0,zero
lw t9,-0x7fbc(gp)
addiu t9,t9,0x4f08
bal 0x00074f08
_nop
lw gp,0x18(sp)
lw ra,0x2c(sp)
lw s1,0x28(sp)
lw s0,0x24(sp)
jr ra
_addiu sp,sp,0x30
addiu a3,a3,-0x5920
li a2,0x1667
lw a1,-0x7fcc(gp)
addiu a1,a1,-0x6960
lw a0,-0x7fcc(gp)
addiu a0,a0,-0x6944
lw t9,-0x78d8(gp)
jalr t9
_nop
addiu a3,a3,-0x5920
li a2,0x1668
lw a1,-0x7fcc(gp)
addiu a1,a1,-0x6960
lw a0,-0x7fcc(gp)
addiu a0,a0,-0x1e54
lw t9,-0x78d8(gp)
jalr t9
_nop
sw v0,0x14(sp)
lw v0,-0x7fc8(gp)
addiu v0,v0,-0x7318
sw v0,0x10(sp)
li a3,0x166a
lw a2,-0x7fcc(gp)
addiu a2,a2,-0x5938
lw a1,-0x7fcc(gp)
addiu a1,a1,-0x6960
lui a0,0x4
lw t9,-0x7b70(gp)
jalr t9
_nop
lw gp,0x18(sp)
b 0x00081f88
_lw v0,0x103c(s0)
(translation_unit "void DrawSetStrokeLineJoin(int param_1,int param_2)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  \n  if (param_1 == 0) {\n    (*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1667,\n               PTR_s_oint_00178034 + -0x5920);\n    return;\n  }\n  if (*(int *)(param_1 + 0x1054) == -0x54535255) {\n    if (*(int *)(param_1 + 0x1050) == 0) {\n      iVar1 = *(int *)(param_1 + 0x103c);\n    }\n    else {\n      (*(code *)PTR_LogMagickEvent_00178490)\n                (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x5938,0x166a,\n                 PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,param_1 + 4);\n      iVar1 = *(int *)(param_1 + 0x103c);\n    }\n    if ((iVar1 != 0) ||\n       (*(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) !=\n        param_2)) {\n      *(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) =\n           param_2;\n      uVar2 = (*(code *)PTR_CommandOptionToMnemonic_00178170)(0x29,param_2);\n      FUN_00074f08(param_1,PTR_s_oint_00178034 + -0x5eb0,uVar2);\n    }\n    return;\n  }\n  (*(code *)PTR___assert_fail_00178728)\n            (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1668,\n             PTR_s_oint_00178034 + -0x5920);\n  return;\n}\n\n" (function_definition "void DrawSetStrokeLineJoin(int param_1,int param_2)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  \n  if (param_1 == 0) {\n    (*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1667,\n               PTR_s_oint_00178034 + -0x5920);\n    return;\n  }\n  if (*(int *)(param_1 + 0x1054) == -0x54535255) {\n    if (*(int *)(param_1 + 0x1050) == 0) {\n      iVar1 = *(int *)(param_1 + 0x103c);\n    }\n    else {\n      (*(code *)PTR_LogMagickEvent_00178490)\n                (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x5938,0x166a,\n                 PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,param_1 + 4);\n      iVar1 = *(int *)(param_1 + 0x103c);\n    }\n    if ((iVar1 != 0) ||\n       (*(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) !=\n        param_2)) {\n      *(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) =\n           param_2;\n      uVar2 = (*(code *)PTR_CommandOptionToMnemonic_00178170)(0x29,param_2);\n      FUN_00074f08(param_1,PTR_s_oint_00178034 + -0x5eb0,uVar2);\n    }\n    return;\n  }\n  (*(code *)PTR___assert_fail_00178728)\n            (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1668,\n             PTR_s_oint_00178034 + -0x5920);\n  return;\n}" primitive_type (function_declarator "DrawSetStrokeLineJoin(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  \n  if (param_1 == 0) {\n    (*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1667,\n               PTR_s_oint_00178034 + -0x5920);\n    return;\n  }\n  if (*(int *)(param_1 + 0x1054) == -0x54535255) {\n    if (*(int *)(param_1 + 0x1050) == 0) {\n      iVar1 = *(int *)(param_1 + 0x103c);\n    }\n    else {\n      (*(code *)PTR_LogMagickEvent_00178490)\n                (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x5938,0x166a,\n                 PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,param_1 + 4);\n      iVar1 = *(int *)(param_1 + 0x103c);\n    }\n    if ((iVar1 != 0) ||\n       (*(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) !=\n        param_2)) {\n      *(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) =\n           param_2;\n      uVar2 = (*(code *)PTR_CommandOptionToMnemonic_00178170)(0x29,param_2);\n      FUN_00074f08(param_1,PTR_s_oint_00178034 + -0x5eb0,uVar2);\n    }\n    return;\n  }\n  (*(code *)PTR___assert_fail_00178728)\n            (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1668,\n             PTR_s_oint_00178034 + -0x5920);\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (if_statement "if (param_1 == 0) {\n    (*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1667,\n               PTR_s_oint_00178034 + -0x5920);\n    return;\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n    (*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1667,\n               PTR_s_oint_00178034 + -0x5920);\n    return;\n  }" { (expression_statement "(*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1667,\n               PTR_s_oint_00178034 + -0x5920);" (call_expression "(*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1667,\n               PTR_s_oint_00178034 + -0x5920)" (parenthesized_expression "(*(code *)PTR___assert_fail_00178728)" ( (pointer_expression "*(code *)PTR___assert_fail_00178728" * (cast_expression "(code *)PTR___assert_fail_00178728" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1667,\n               PTR_s_oint_00178034 + -0x5920)" ( (binary_expression "PTR_s_oint_00178034 + -0x6944" identifier + number_literal) , (binary_expression "PTR_s_oint_00178034 + -0x6960" identifier + number_literal) , number_literal , (binary_expression "PTR_s_oint_00178034 + -0x5920" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (if_statement "if (*(int *)(param_1 + 0x1054) == -0x54535255) {\n    if (*(int *)(param_1 + 0x1050) == 0) {\n      iVar1 = *(int *)(param_1 + 0x103c);\n    }\n    else {\n      (*(code *)PTR_LogMagickEvent_00178490)\n                (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x5938,0x166a,\n                 PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,param_1 + 4);\n      iVar1 = *(int *)(param_1 + 0x103c);\n    }\n    if ((iVar1 != 0) ||\n       (*(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) !=\n        param_2)) {\n      *(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) =\n           param_2;\n      uVar2 = (*(code *)PTR_CommandOptionToMnemonic_00178170)(0x29,param_2);\n      FUN_00074f08(param_1,PTR_s_oint_00178034 + -0x5eb0,uVar2);\n    }\n    return;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x1054) == -0x54535255)" ( (binary_expression "*(int *)(param_1 + 0x1054) == -0x54535255" (pointer_expression "*(int *)(param_1 + 0x1054)" * (cast_expression "(int *)(param_1 + 0x1054)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1054)" ( (binary_expression "param_1 + 0x1054" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    if (*(int *)(param_1 + 0x1050) == 0) {\n      iVar1 = *(int *)(param_1 + 0x103c);\n    }\n    else {\n      (*(code *)PTR_LogMagickEvent_00178490)\n                (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x5938,0x166a,\n                 PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,param_1 + 4);\n      iVar1 = *(int *)(param_1 + 0x103c);\n    }\n    if ((iVar1 != 0) ||\n       (*(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) !=\n        param_2)) {\n      *(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) =\n           param_2;\n      uVar2 = (*(code *)PTR_CommandOptionToMnemonic_00178170)(0x29,param_2);\n      FUN_00074f08(param_1,PTR_s_oint_00178034 + -0x5eb0,uVar2);\n    }\n    return;\n  }" { (if_statement "if (*(int *)(param_1 + 0x1050) == 0) {\n      iVar1 = *(int *)(param_1 + 0x103c);\n    }\n    else {\n      (*(code *)PTR_LogMagickEvent_00178490)\n                (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x5938,0x166a,\n                 PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,param_1 + 4);\n      iVar1 = *(int *)(param_1 + 0x103c);\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0x1050) == 0)" ( (binary_expression "*(int *)(param_1 + 0x1050) == 0" (pointer_expression "*(int *)(param_1 + 0x1050)" * (cast_expression "(int *)(param_1 + 0x1050)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1050)" ( (binary_expression "param_1 + 0x1050" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      iVar1 = *(int *)(param_1 + 0x103c);\n    }" { (expression_statement "iVar1 = *(int *)(param_1 + 0x103c);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x103c)" identifier = (pointer_expression "*(int *)(param_1 + 0x103c)" * (cast_expression "(int *)(param_1 + 0x103c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x103c)" ( (binary_expression "param_1 + 0x103c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      (*(code *)PTR_LogMagickEvent_00178490)\n                (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x5938,0x166a,\n                 PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,param_1 + 4);\n      iVar1 = *(int *)(param_1 + 0x103c);\n    }" else (compound_statement "{\n      (*(code *)PTR_LogMagickEvent_00178490)\n                (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x5938,0x166a,\n                 PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,param_1 + 4);\n      iVar1 = *(int *)(param_1 + 0x103c);\n    }" { (expression_statement "(*(code *)PTR_LogMagickEvent_00178490)\n                (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x5938,0x166a,\n                 PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,param_1 + 4);" (call_expression "(*(code *)PTR_LogMagickEvent_00178490)\n                (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x5938,0x166a,\n                 PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,param_1 + 4)" (parenthesized_expression "(*(code *)PTR_LogMagickEvent_00178490)" ( (pointer_expression "*(code *)PTR_LogMagickEvent_00178490" * (cast_expression "(code *)PTR_LogMagickEvent_00178490" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x5938,0x166a,\n                 PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,param_1 + 4)" ( number_literal , (binary_expression "PTR_s_oint_00178034 + -0x6960" identifier + number_literal) , (binary_expression "PTR_s_oint_00178034 + -0x5938" identifier + number_literal) , number_literal , (binary_expression "PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318" identifier + number_literal) , (binary_expression "param_1 + 4" identifier + number_literal) ))) ;) (expression_statement "iVar1 = *(int *)(param_1 + 0x103c);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x103c)" identifier = (pointer_expression "*(int *)(param_1 + 0x103c)" * (cast_expression "(int *)(param_1 + 0x103c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x103c)" ( (binary_expression "param_1 + 0x103c" identifier + number_literal) ))))) ;) }))) (if_statement "if ((iVar1 != 0) ||\n       (*(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) !=\n        param_2)) {\n      *(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) =\n           param_2;\n      uVar2 = (*(code *)PTR_CommandOptionToMnemonic_00178170)(0x29,param_2);\n      FUN_00074f08(param_1,PTR_s_oint_00178034 + -0x5eb0,uVar2);\n    }" if (parenthesized_expression "((iVar1 != 0) ||\n       (*(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) !=\n        param_2))" ( (binary_expression "(iVar1 != 0) ||\n       (*(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) !=\n        param_2)" (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) || (parenthesized_expression "(*(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) !=\n        param_2)" ( (binary_expression "*(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) !=\n        param_2" (pointer_expression "*(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248)" * (cast_expression "(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248" (pointer_expression "*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4)" * (cast_expression "(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4)" ( (binary_expression "*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4" (pointer_expression "*(int *)(param_1 + 0x1038)" * (cast_expression "(int *)(param_1 + 0x1038)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1038)" ( (binary_expression "param_1 + 0x1038" identifier + number_literal) )))) + (binary_expression "*(int *)(param_1 + 0x1034) * 4" (pointer_expression "*(int *)(param_1 + 0x1034)" * (cast_expression "(int *)(param_1 + 0x1034)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1034)" ( (binary_expression "param_1 + 0x1034" identifier + number_literal) )))) * number_literal)) )))) + number_literal) )))) != identifier) ))) )) (compound_statement "{\n      *(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) =\n           param_2;\n      uVar2 = (*(code *)PTR_CommandOptionToMnemonic_00178170)(0x29,param_2);\n      FUN_00074f08(param_1,PTR_s_oint_00178034 + -0x5eb0,uVar2);\n    }" { (expression_statement "*(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) =\n           param_2;" (assignment_expression "*(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) =\n           param_2" (pointer_expression "*(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248)" * (cast_expression "(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248" (pointer_expression "*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4)" * (cast_expression "(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4)" ( (binary_expression "*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4" (pointer_expression "*(int *)(param_1 + 0x1038)" * (cast_expression "(int *)(param_1 + 0x1038)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1038)" ( (binary_expression "param_1 + 0x1038" identifier + number_literal) )))) + (binary_expression "*(int *)(param_1 + 0x1034) * 4" (pointer_expression "*(int *)(param_1 + 0x1034)" * (cast_expression "(int *)(param_1 + 0x1034)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1034)" ( (binary_expression "param_1 + 0x1034" identifier + number_literal) )))) * number_literal)) )))) + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = (*(code *)PTR_CommandOptionToMnemonic_00178170)(0x29,param_2);" (assignment_expression "uVar2 = (*(code *)PTR_CommandOptionToMnemonic_00178170)(0x29,param_2)" identifier = (call_expression "(*(code *)PTR_CommandOptionToMnemonic_00178170)(0x29,param_2)" (parenthesized_expression "(*(code *)PTR_CommandOptionToMnemonic_00178170)" ( (pointer_expression "*(code *)PTR_CommandOptionToMnemonic_00178170" * (cast_expression "(code *)PTR_CommandOptionToMnemonic_00178170" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x29,param_2)" ( number_literal , identifier )))) ;) (expression_statement "FUN_00074f08(param_1,PTR_s_oint_00178034 + -0x5eb0,uVar2);" (call_expression "FUN_00074f08(param_1,PTR_s_oint_00178034 + -0x5eb0,uVar2)" identifier (argument_list "(param_1,PTR_s_oint_00178034 + -0x5eb0,uVar2)" ( identifier , (binary_expression "PTR_s_oint_00178034 + -0x5eb0" identifier + number_literal) , identifier ))) ;) })) (return_statement "return;" return ;) })) (expression_statement "(*(code *)PTR___assert_fail_00178728)\n            (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1668,\n             PTR_s_oint_00178034 + -0x5920);" (call_expression "(*(code *)PTR___assert_fail_00178728)\n            (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1668,\n             PTR_s_oint_00178034 + -0x5920)" (parenthesized_expression "(*(code *)PTR___assert_fail_00178728)" ( (pointer_expression "*(code *)PTR___assert_fail_00178728" * (cast_expression "(code *)PTR___assert_fail_00178728" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1668,\n             PTR_s_oint_00178034 + -0x5920)" ( (binary_expression "PTR_s_oint_00178034 + -0x1e54" identifier + number_literal) , (binary_expression "PTR_s_oint_00178034 + -0x6960" identifier + number_literal) , number_literal , (binary_expression "PTR_s_oint_00178034 + -0x5920" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })))
(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/* WARNING: Enum "ComplianceType": Some values do not have unique names */\n\nvoid DrawSetStrokeLineJoin(DrawingWand *wand,LineJoin linejoin)\n\n{\n  MagickBooleanType MVar1;\n  undefined4 uVar2;\n  \n  if (wand == (DrawingWand *)0x0) {\n    (*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1667,\n               PTR_s_oint_00178034 + -0x5920);\n    return;\n  }\n  if (wand->signature == 0xabacadab) {\n    if (wand->debug == MagickFalse) {\n      MVar1 = wand->filter_off;\n    }\n    else {\n      (*(code *)PTR_LogMagickEvent_00178490)\n                (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x5938,0x166a,\n                 PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,wand->name);\n      MVar1 = wand->filter_off;\n    }\n    if ((MVar1 != MagickFalse) || (wand->graphic_context[wand->index]->linejoin != linejoin)) {\n      wand->graphic_context[wand->index]->linejoin = linejoin;\n      uVar2 = (*(code *)PTR_CommandOptionToMnemonic_00178170)(0x29,linejoin);\n      MVGPrintf(wand,PTR_s_oint_00178034 + -0x5eb0,uVar2);\n    }\n    return;\n  }\n  (*(code *)PTR___assert_fail_00178728)\n            (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1668,\n             PTR_s_oint_00178034 + -0x5920);\n  return;\n}\n\n" comment comment comment comment comment comment (function_definition "void DrawSetStrokeLineJoin(DrawingWand *wand,LineJoin linejoin)\n\n{\n  MagickBooleanType MVar1;\n  undefined4 uVar2;\n  \n  if (wand == (DrawingWand *)0x0) {\n    (*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1667,\n               PTR_s_oint_00178034 + -0x5920);\n    return;\n  }\n  if (wand->signature == 0xabacadab) {\n    if (wand->debug == MagickFalse) {\n      MVar1 = wand->filter_off;\n    }\n    else {\n      (*(code *)PTR_LogMagickEvent_00178490)\n                (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x5938,0x166a,\n                 PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,wand->name);\n      MVar1 = wand->filter_off;\n    }\n    if ((MVar1 != MagickFalse) || (wand->graphic_context[wand->index]->linejoin != linejoin)) {\n      wand->graphic_context[wand->index]->linejoin = linejoin;\n      uVar2 = (*(code *)PTR_CommandOptionToMnemonic_00178170)(0x29,linejoin);\n      MVGPrintf(wand,PTR_s_oint_00178034 + -0x5eb0,uVar2);\n    }\n    return;\n  }\n  (*(code *)PTR___assert_fail_00178728)\n            (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1668,\n             PTR_s_oint_00178034 + -0x5920);\n  return;\n}" primitive_type (function_declarator "DrawSetStrokeLineJoin(DrawingWand *wand,LineJoin linejoin)" identifier (parameter_list "(DrawingWand *wand,LineJoin linejoin)" ( (parameter_declaration "DrawingWand *wand" type_identifier (pointer_declarator "*wand" * identifier)) , (parameter_declaration "LineJoin linejoin" type_identifier identifier) ))) (compound_statement "{\n  MagickBooleanType MVar1;\n  undefined4 uVar2;\n  \n  if (wand == (DrawingWand *)0x0) {\n    (*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1667,\n               PTR_s_oint_00178034 + -0x5920);\n    return;\n  }\n  if (wand->signature == 0xabacadab) {\n    if (wand->debug == MagickFalse) {\n      MVar1 = wand->filter_off;\n    }\n    else {\n      (*(code *)PTR_LogMagickEvent_00178490)\n                (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x5938,0x166a,\n                 PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,wand->name);\n      MVar1 = wand->filter_off;\n    }\n    if ((MVar1 != MagickFalse) || (wand->graphic_context[wand->index]->linejoin != linejoin)) {\n      wand->graphic_context[wand->index]->linejoin = linejoin;\n      uVar2 = (*(code *)PTR_CommandOptionToMnemonic_00178170)(0x29,linejoin);\n      MVGPrintf(wand,PTR_s_oint_00178034 + -0x5eb0,uVar2);\n    }\n    return;\n  }\n  (*(code *)PTR___assert_fail_00178728)\n            (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1668,\n             PTR_s_oint_00178034 + -0x5920);\n  return;\n}" { (declaration "MagickBooleanType MVar1;" type_identifier identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (if_statement "if (wand == (DrawingWand *)0x0) {\n    (*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1667,\n               PTR_s_oint_00178034 + -0x5920);\n    return;\n  }" if (parenthesized_expression "(wand == (DrawingWand *)0x0)" ( (binary_expression "wand == (DrawingWand *)0x0" identifier == (cast_expression "(DrawingWand *)0x0" ( (type_descriptor "DrawingWand *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1667,\n               PTR_s_oint_00178034 + -0x5920);\n    return;\n  }" { (expression_statement "(*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1667,\n               PTR_s_oint_00178034 + -0x5920);" (call_expression "(*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1667,\n               PTR_s_oint_00178034 + -0x5920)" (parenthesized_expression "(*(code *)PTR___assert_fail_00178728)" ( (pointer_expression "*(code *)PTR___assert_fail_00178728" * (cast_expression "(code *)PTR___assert_fail_00178728" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1667,\n               PTR_s_oint_00178034 + -0x5920)" ( (binary_expression "PTR_s_oint_00178034 + -0x6944" identifier + number_literal) , (binary_expression "PTR_s_oint_00178034 + -0x6960" identifier + number_literal) , number_literal , (binary_expression "PTR_s_oint_00178034 + -0x5920" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (if_statement "if (wand->signature == 0xabacadab) {\n    if (wand->debug == MagickFalse) {\n      MVar1 = wand->filter_off;\n    }\n    else {\n      (*(code *)PTR_LogMagickEvent_00178490)\n                (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x5938,0x166a,\n                 PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,wand->name);\n      MVar1 = wand->filter_off;\n    }\n    if ((MVar1 != MagickFalse) || (wand->graphic_context[wand->index]->linejoin != linejoin)) {\n      wand->graphic_context[wand->index]->linejoin = linejoin;\n      uVar2 = (*(code *)PTR_CommandOptionToMnemonic_00178170)(0x29,linejoin);\n      MVGPrintf(wand,PTR_s_oint_00178034 + -0x5eb0,uVar2);\n    }\n    return;\n  }" if (parenthesized_expression "(wand->signature == 0xabacadab)" ( (binary_expression "wand->signature == 0xabacadab" (field_expression "wand->signature" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n    if (wand->debug == MagickFalse) {\n      MVar1 = wand->filter_off;\n    }\n    else {\n      (*(code *)PTR_LogMagickEvent_00178490)\n                (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x5938,0x166a,\n                 PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,wand->name);\n      MVar1 = wand->filter_off;\n    }\n    if ((MVar1 != MagickFalse) || (wand->graphic_context[wand->index]->linejoin != linejoin)) {\n      wand->graphic_context[wand->index]->linejoin = linejoin;\n      uVar2 = (*(code *)PTR_CommandOptionToMnemonic_00178170)(0x29,linejoin);\n      MVGPrintf(wand,PTR_s_oint_00178034 + -0x5eb0,uVar2);\n    }\n    return;\n  }" { (if_statement "if (wand->debug == MagickFalse) {\n      MVar1 = wand->filter_off;\n    }\n    else {\n      (*(code *)PTR_LogMagickEvent_00178490)\n                (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x5938,0x166a,\n                 PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,wand->name);\n      MVar1 = wand->filter_off;\n    }" if (parenthesized_expression "(wand->debug == MagickFalse)" ( (binary_expression "wand->debug == MagickFalse" (field_expression "wand->debug" identifier -> field_identifier) == identifier) )) (compound_statement "{\n      MVar1 = wand->filter_off;\n    }" { (expression_statement "MVar1 = wand->filter_off;" (assignment_expression "MVar1 = wand->filter_off" identifier = (field_expression "wand->filter_off" identifier -> field_identifier)) ;) }) (else_clause "else {\n      (*(code *)PTR_LogMagickEvent_00178490)\n                (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x5938,0x166a,\n                 PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,wand->name);\n      MVar1 = wand->filter_off;\n    }" else (compound_statement "{\n      (*(code *)PTR_LogMagickEvent_00178490)\n                (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x5938,0x166a,\n                 PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,wand->name);\n      MVar1 = wand->filter_off;\n    }" { (expression_statement "(*(code *)PTR_LogMagickEvent_00178490)\n                (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x5938,0x166a,\n                 PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,wand->name);" (call_expression "(*(code *)PTR_LogMagickEvent_00178490)\n                (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x5938,0x166a,\n                 PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,wand->name)" (parenthesized_expression "(*(code *)PTR_LogMagickEvent_00178490)" ( (pointer_expression "*(code *)PTR_LogMagickEvent_00178490" * (cast_expression "(code *)PTR_LogMagickEvent_00178490" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x5938,0x166a,\n                 PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,wand->name)" ( number_literal , (binary_expression "PTR_s_oint_00178034 + -0x6960" identifier + number_literal) , (binary_expression "PTR_s_oint_00178034 + -0x5938" identifier + number_literal) , number_literal , (binary_expression "PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318" identifier + number_literal) , (field_expression "wand->name" identifier -> field_identifier) ))) ;) (expression_statement "MVar1 = wand->filter_off;" (assignment_expression "MVar1 = wand->filter_off" identifier = (field_expression "wand->filter_off" identifier -> field_identifier)) ;) }))) (if_statement "if ((MVar1 != MagickFalse) || (wand->graphic_context[wand->index]->linejoin != linejoin)) {\n      wand->graphic_context[wand->index]->linejoin = linejoin;\n      uVar2 = (*(code *)PTR_CommandOptionToMnemonic_00178170)(0x29,linejoin);\n      MVGPrintf(wand,PTR_s_oint_00178034 + -0x5eb0,uVar2);\n    }" if (parenthesized_expression "((MVar1 != MagickFalse) || (wand->graphic_context[wand->index]->linejoin != linejoin))" ( (binary_expression "(MVar1 != MagickFalse) || (wand->graphic_context[wand->index]->linejoin != linejoin)" (parenthesized_expression "(MVar1 != MagickFalse)" ( (binary_expression "MVar1 != MagickFalse" identifier != identifier) )) || (parenthesized_expression "(wand->graphic_context[wand->index]->linejoin != linejoin)" ( (binary_expression "wand->graphic_context[wand->index]->linejoin != linejoin" (field_expression "wand->graphic_context[wand->index]->linejoin" (subscript_expression "wand->graphic_context[wand->index]" (field_expression "wand->graphic_context" identifier -> field_identifier) [ (field_expression "wand->index" identifier -> field_identifier) ]) -> field_identifier) != identifier) ))) )) (compound_statement "{\n      wand->graphic_context[wand->index]->linejoin = linejoin;\n      uVar2 = (*(code *)PTR_CommandOptionToMnemonic_00178170)(0x29,linejoin);\n      MVGPrintf(wand,PTR_s_oint_00178034 + -0x5eb0,uVar2);\n    }" { (expression_statement "wand->graphic_context[wand->index]->linejoin = linejoin;" (assignment_expression "wand->graphic_context[wand->index]->linejoin = linejoin" (field_expression "wand->graphic_context[wand->index]->linejoin" (subscript_expression "wand->graphic_context[wand->index]" (field_expression "wand->graphic_context" identifier -> field_identifier) [ (field_expression "wand->index" identifier -> field_identifier) ]) -> field_identifier) = identifier) ;) (expression_statement "uVar2 = (*(code *)PTR_CommandOptionToMnemonic_00178170)(0x29,linejoin);" (assignment_expression "uVar2 = (*(code *)PTR_CommandOptionToMnemonic_00178170)(0x29,linejoin)" identifier = (call_expression "(*(code *)PTR_CommandOptionToMnemonic_00178170)(0x29,linejoin)" (parenthesized_expression "(*(code *)PTR_CommandOptionToMnemonic_00178170)" ( (pointer_expression "*(code *)PTR_CommandOptionToMnemonic_00178170" * (cast_expression "(code *)PTR_CommandOptionToMnemonic_00178170" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x29,linejoin)" ( number_literal , identifier )))) ;) (expression_statement "MVGPrintf(wand,PTR_s_oint_00178034 + -0x5eb0,uVar2);" (call_expression "MVGPrintf(wand,PTR_s_oint_00178034 + -0x5eb0,uVar2)" identifier (argument_list "(wand,PTR_s_oint_00178034 + -0x5eb0,uVar2)" ( identifier , (binary_expression "PTR_s_oint_00178034 + -0x5eb0" identifier + number_literal) , identifier ))) ;) })) (return_statement "return;" return ;) })) (expression_statement "(*(code *)PTR___assert_fail_00178728)\n            (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1668,\n             PTR_s_oint_00178034 + -0x5920);" (call_expression "(*(code *)PTR___assert_fail_00178728)\n            (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1668,\n             PTR_s_oint_00178034 + -0x5920)" (parenthesized_expression "(*(code *)PTR___assert_fail_00178728)" ( (pointer_expression "*(code *)PTR___assert_fail_00178728" * (cast_expression "(code *)PTR___assert_fail_00178728" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1668,\n             PTR_s_oint_00178034 + -0x5920)" ( (binary_expression "PTR_s_oint_00178034 + -0x1e54" identifier + number_literal) , (binary_expression "PTR_s_oint_00178034 + -0x6960" identifier + number_literal) , number_literal , (binary_expression "PTR_s_oint_00178034 + -0x5920" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void DrawSetStrokeLineJoin(int param_1,int param_2)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  \n  if (param_1 == 0) {\n    (*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1667,\n               PTR_s_oint_00178034 + -0x5920);\n    return;\n  }\n  if (*(int *)(param_1 + 0x1054) == -0x54535255) {\n    if (*(int *)(param_1 + 0x1050) == 0) {\n      iVar1 = *(int *)(param_1 + 0x103c);\n    }\n    else {\n      (*(code *)PTR_LogMagickEvent_00178490)\n                (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x5938,0x166a,\n                 PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,param_1 + 4);\n      iVar1 = *(int *)(param_1 + 0x103c);\n    }\n    if ((iVar1 != 0) ||\n       (*(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) !=\n        param_2)) {\n      *(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) =\n           param_2;\n      uVar2 = (*(code *)PTR_CommandOptionToMnemonic_00178170)(0x29,param_2);\n      FUN_00074f08(param_1,PTR_s_oint_00178034 + -0x5eb0,uVar2);\n    }\n    return;\n  }\n  (*(code *)PTR___assert_fail_00178728)\n            (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1668,\n             PTR_s_oint_00178034 + -0x5920);\n  return;\n}\n\n" (function_definition "void DrawSetStrokeLineJoin(int param_1,int param_2)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  \n  if (param_1 == 0) {\n    (*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1667,\n               PTR_s_oint_00178034 + -0x5920);\n    return;\n  }\n  if (*(int *)(param_1 + 0x1054) == -0x54535255) {\n    if (*(int *)(param_1 + 0x1050) == 0) {\n      iVar1 = *(int *)(param_1 + 0x103c);\n    }\n    else {\n      (*(code *)PTR_LogMagickEvent_00178490)\n                (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x5938,0x166a,\n                 PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,param_1 + 4);\n      iVar1 = *(int *)(param_1 + 0x103c);\n    }\n    if ((iVar1 != 0) ||\n       (*(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) !=\n        param_2)) {\n      *(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) =\n           param_2;\n      uVar2 = (*(code *)PTR_CommandOptionToMnemonic_00178170)(0x29,param_2);\n      FUN_00074f08(param_1,PTR_s_oint_00178034 + -0x5eb0,uVar2);\n    }\n    return;\n  }\n  (*(code *)PTR___assert_fail_00178728)\n            (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1668,\n             PTR_s_oint_00178034 + -0x5920);\n  return;\n}" primitive_type (function_declarator "DrawSetStrokeLineJoin(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  \n  if (param_1 == 0) {\n    (*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1667,\n               PTR_s_oint_00178034 + -0x5920);\n    return;\n  }\n  if (*(int *)(param_1 + 0x1054) == -0x54535255) {\n    if (*(int *)(param_1 + 0x1050) == 0) {\n      iVar1 = *(int *)(param_1 + 0x103c);\n    }\n    else {\n      (*(code *)PTR_LogMagickEvent_00178490)\n                (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x5938,0x166a,\n                 PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,param_1 + 4);\n      iVar1 = *(int *)(param_1 + 0x103c);\n    }\n    if ((iVar1 != 0) ||\n       (*(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) !=\n        param_2)) {\n      *(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) =\n           param_2;\n      uVar2 = (*(code *)PTR_CommandOptionToMnemonic_00178170)(0x29,param_2);\n      FUN_00074f08(param_1,PTR_s_oint_00178034 + -0x5eb0,uVar2);\n    }\n    return;\n  }\n  (*(code *)PTR___assert_fail_00178728)\n            (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1668,\n             PTR_s_oint_00178034 + -0x5920);\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (if_statement "if (param_1 == 0) {\n    (*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1667,\n               PTR_s_oint_00178034 + -0x5920);\n    return;\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n    (*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1667,\n               PTR_s_oint_00178034 + -0x5920);\n    return;\n  }" { (expression_statement "(*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1667,\n               PTR_s_oint_00178034 + -0x5920);" (call_expression "(*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1667,\n               PTR_s_oint_00178034 + -0x5920)" (parenthesized_expression "(*(code *)PTR___assert_fail_00178728)" ( (pointer_expression "*(code *)PTR___assert_fail_00178728" * (cast_expression "(code *)PTR___assert_fail_00178728" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1667,\n               PTR_s_oint_00178034 + -0x5920)" ( (binary_expression "PTR_s_oint_00178034 + -0x6944" identifier + number_literal) , (binary_expression "PTR_s_oint_00178034 + -0x6960" identifier + number_literal) , number_literal , (binary_expression "PTR_s_oint_00178034 + -0x5920" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (if_statement "if (*(int *)(param_1 + 0x1054) == -0x54535255) {\n    if (*(int *)(param_1 + 0x1050) == 0) {\n      iVar1 = *(int *)(param_1 + 0x103c);\n    }\n    else {\n      (*(code *)PTR_LogMagickEvent_00178490)\n                (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x5938,0x166a,\n                 PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,param_1 + 4);\n      iVar1 = *(int *)(param_1 + 0x103c);\n    }\n    if ((iVar1 != 0) ||\n       (*(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) !=\n        param_2)) {\n      *(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) =\n           param_2;\n      uVar2 = (*(code *)PTR_CommandOptionToMnemonic_00178170)(0x29,param_2);\n      FUN_00074f08(param_1,PTR_s_oint_00178034 + -0x5eb0,uVar2);\n    }\n    return;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x1054) == -0x54535255)" ( (binary_expression "*(int *)(param_1 + 0x1054) == -0x54535255" (pointer_expression "*(int *)(param_1 + 0x1054)" * (cast_expression "(int *)(param_1 + 0x1054)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1054)" ( (binary_expression "param_1 + 0x1054" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    if (*(int *)(param_1 + 0x1050) == 0) {\n      iVar1 = *(int *)(param_1 + 0x103c);\n    }\n    else {\n      (*(code *)PTR_LogMagickEvent_00178490)\n                (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x5938,0x166a,\n                 PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,param_1 + 4);\n      iVar1 = *(int *)(param_1 + 0x103c);\n    }\n    if ((iVar1 != 0) ||\n       (*(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) !=\n        param_2)) {\n      *(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) =\n           param_2;\n      uVar2 = (*(code *)PTR_CommandOptionToMnemonic_00178170)(0x29,param_2);\n      FUN_00074f08(param_1,PTR_s_oint_00178034 + -0x5eb0,uVar2);\n    }\n    return;\n  }" { (if_statement "if (*(int *)(param_1 + 0x1050) == 0) {\n      iVar1 = *(int *)(param_1 + 0x103c);\n    }\n    else {\n      (*(code *)PTR_LogMagickEvent_00178490)\n                (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x5938,0x166a,\n                 PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,param_1 + 4);\n      iVar1 = *(int *)(param_1 + 0x103c);\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0x1050) == 0)" ( (binary_expression "*(int *)(param_1 + 0x1050) == 0" (pointer_expression "*(int *)(param_1 + 0x1050)" * (cast_expression "(int *)(param_1 + 0x1050)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1050)" ( (binary_expression "param_1 + 0x1050" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      iVar1 = *(int *)(param_1 + 0x103c);\n    }" { (expression_statement "iVar1 = *(int *)(param_1 + 0x103c);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x103c)" identifier = (pointer_expression "*(int *)(param_1 + 0x103c)" * (cast_expression "(int *)(param_1 + 0x103c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x103c)" ( (binary_expression "param_1 + 0x103c" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      (*(code *)PTR_LogMagickEvent_00178490)\n                (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x5938,0x166a,\n                 PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,param_1 + 4);\n      iVar1 = *(int *)(param_1 + 0x103c);\n    }" else (compound_statement "{\n      (*(code *)PTR_LogMagickEvent_00178490)\n                (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x5938,0x166a,\n                 PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,param_1 + 4);\n      iVar1 = *(int *)(param_1 + 0x103c);\n    }" { (expression_statement "(*(code *)PTR_LogMagickEvent_00178490)\n                (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x5938,0x166a,\n                 PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,param_1 + 4);" (call_expression "(*(code *)PTR_LogMagickEvent_00178490)\n                (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x5938,0x166a,\n                 PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,param_1 + 4)" (parenthesized_expression "(*(code *)PTR_LogMagickEvent_00178490)" ( (pointer_expression "*(code *)PTR_LogMagickEvent_00178490" * (cast_expression "(code *)PTR_LogMagickEvent_00178490" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x5938,0x166a,\n                 PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,param_1 + 4)" ( number_literal , (binary_expression "PTR_s_oint_00178034 + -0x6960" identifier + number_literal) , (binary_expression "PTR_s_oint_00178034 + -0x5938" identifier + number_literal) , number_literal , (binary_expression "PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318" identifier + number_literal) , (binary_expression "param_1 + 4" identifier + number_literal) ))) ;) (expression_statement "iVar1 = *(int *)(param_1 + 0x103c);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x103c)" identifier = (pointer_expression "*(int *)(param_1 + 0x103c)" * (cast_expression "(int *)(param_1 + 0x103c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x103c)" ( (binary_expression "param_1 + 0x103c" identifier + number_literal) ))))) ;) }))) (if_statement "if ((iVar1 != 0) ||\n       (*(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) !=\n        param_2)) {\n      *(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) =\n           param_2;\n      uVar2 = (*(code *)PTR_CommandOptionToMnemonic_00178170)(0x29,param_2);\n      FUN_00074f08(param_1,PTR_s_oint_00178034 + -0x5eb0,uVar2);\n    }" if (parenthesized_expression "((iVar1 != 0) ||\n       (*(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) !=\n        param_2))" ( (binary_expression "(iVar1 != 0) ||\n       (*(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) !=\n        param_2)" (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) || (parenthesized_expression "(*(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) !=\n        param_2)" ( (binary_expression "*(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) !=\n        param_2" (pointer_expression "*(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248)" * (cast_expression "(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248" (pointer_expression "*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4)" * (cast_expression "(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4)" ( (binary_expression "*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4" (pointer_expression "*(int *)(param_1 + 0x1038)" * (cast_expression "(int *)(param_1 + 0x1038)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1038)" ( (binary_expression "param_1 + 0x1038" identifier + number_literal) )))) + (binary_expression "*(int *)(param_1 + 0x1034) * 4" (pointer_expression "*(int *)(param_1 + 0x1034)" * (cast_expression "(int *)(param_1 + 0x1034)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1034)" ( (binary_expression "param_1 + 0x1034" identifier + number_literal) )))) * number_literal)) )))) + number_literal) )))) != identifier) ))) )) (compound_statement "{\n      *(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) =\n           param_2;\n      uVar2 = (*(code *)PTR_CommandOptionToMnemonic_00178170)(0x29,param_2);\n      FUN_00074f08(param_1,PTR_s_oint_00178034 + -0x5eb0,uVar2);\n    }" { (expression_statement "*(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) =\n           param_2;" (assignment_expression "*(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) =\n           param_2" (pointer_expression "*(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248)" * (cast_expression "(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248" (pointer_expression "*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4)" * (cast_expression "(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4)" ( (binary_expression "*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4" (pointer_expression "*(int *)(param_1 + 0x1038)" * (cast_expression "(int *)(param_1 + 0x1038)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1038)" ( (binary_expression "param_1 + 0x1038" identifier + number_literal) )))) + (binary_expression "*(int *)(param_1 + 0x1034) * 4" (pointer_expression "*(int *)(param_1 + 0x1034)" * (cast_expression "(int *)(param_1 + 0x1034)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1034)" ( (binary_expression "param_1 + 0x1034" identifier + number_literal) )))) * number_literal)) )))) + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = (*(code *)PTR_CommandOptionToMnemonic_00178170)(0x29,param_2);" (assignment_expression "uVar2 = (*(code *)PTR_CommandOptionToMnemonic_00178170)(0x29,param_2)" identifier = (call_expression "(*(code *)PTR_CommandOptionToMnemonic_00178170)(0x29,param_2)" (parenthesized_expression "(*(code *)PTR_CommandOptionToMnemonic_00178170)" ( (pointer_expression "*(code *)PTR_CommandOptionToMnemonic_00178170" * (cast_expression "(code *)PTR_CommandOptionToMnemonic_00178170" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x29,param_2)" ( number_literal , identifier )))) ;) (expression_statement "FUN_00074f08(param_1,PTR_s_oint_00178034 + -0x5eb0,uVar2);" (call_expression "FUN_00074f08(param_1,PTR_s_oint_00178034 + -0x5eb0,uVar2)" identifier (argument_list "(param_1,PTR_s_oint_00178034 + -0x5eb0,uVar2)" ( identifier , (binary_expression "PTR_s_oint_00178034 + -0x5eb0" identifier + number_literal) , identifier ))) ;) })) (return_statement "return;" return ;) })) (expression_statement "(*(code *)PTR___assert_fail_00178728)\n            (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1668,\n             PTR_s_oint_00178034 + -0x5920);" (call_expression "(*(code *)PTR___assert_fail_00178728)\n            (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1668,\n             PTR_s_oint_00178034 + -0x5920)" (parenthesized_expression "(*(code *)PTR___assert_fail_00178728)" ( (pointer_expression "*(code *)PTR___assert_fail_00178728" * (cast_expression "(code *)PTR___assert_fail_00178728" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1668,\n             PTR_s_oint_00178034 + -0x5920)" ( (binary_expression "PTR_s_oint_00178034 + -0x1e54" identifier + number_literal) , (binary_expression "PTR_s_oint_00178034 + -0x6960" identifier + number_literal) , number_literal , (binary_expression "PTR_s_oint_00178034 + -0x5920" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) (return_statement return ;) })) (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 { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) , (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) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) + LIT) )))) != IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT ))) ;) })) (return_statement return ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) (return_statement return ;) })))
(function_definition "void DrawSetStrokeLineJoin(int param_1,int param_2)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  \n  if (param_1 == 0) {\n    (*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1667,\n               PTR_s_oint_00178034 + -0x5920);\n    return;\n  }\n  if (*(int *)(param_1 + 0x1054) == -0x54535255) {\n    if (*(int *)(param_1 + 0x1050) == 0) {\n      iVar1 = *(int *)(param_1 + 0x103c);\n    }\n    else {\n      (*(code *)PTR_LogMagickEvent_00178490)\n                (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x5938,0x166a,\n                 PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,param_1 + 4);\n      iVar1 = *(int *)(param_1 + 0x103c);\n    }\n    if ((iVar1 != 0) ||\n       (*(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) !=\n        param_2)) {\n      *(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) =\n           param_2;\n      uVar2 = (*(code *)PTR_CommandOptionToMnemonic_00178170)(0x29,param_2);\n      FUN_00074f08(param_1,PTR_s_oint_00178034 + -0x5eb0,uVar2);\n    }\n    return;\n  }\n  (*(code *)PTR___assert_fail_00178728)\n            (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1668,\n             PTR_s_oint_00178034 + -0x5920);\n  return;\n}" (primitive_type "void") (function_declarator "DrawSetStrokeLineJoin(int param_1,int param_2)" (identifier "DrawSetStrokeLineJoin") (parameter_list "(int param_1,int param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  \n  if (param_1 == 0) {\n    (*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1667,\n               PTR_s_oint_00178034 + -0x5920);\n    return;\n  }\n  if (*(int *)(param_1 + 0x1054) == -0x54535255) {\n    if (*(int *)(param_1 + 0x1050) == 0) {\n      iVar1 = *(int *)(param_1 + 0x103c);\n    }\n    else {\n      (*(code *)PTR_LogMagickEvent_00178490)\n                (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x5938,0x166a,\n                 PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,param_1 + 4);\n      iVar1 = *(int *)(param_1 + 0x103c);\n    }\n    if ((iVar1 != 0) ||\n       (*(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) !=\n        param_2)) {\n      *(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) =\n           param_2;\n      uVar2 = (*(code *)PTR_CommandOptionToMnemonic_00178170)(0x29,param_2);\n      FUN_00074f08(param_1,PTR_s_oint_00178034 + -0x5eb0,uVar2);\n    }\n    return;\n  }\n  (*(code *)PTR___assert_fail_00178728)\n            (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1668,\n             PTR_s_oint_00178034 + -0x5920);\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (if_statement "if (param_1 == 0) {\n    (*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1667,\n               PTR_s_oint_00178034 + -0x5920);\n    return;\n  }" (if "if") (parenthesized_expression "(param_1 == 0)" (( "(") (binary_expression "param_1 == 0" (identifier "param_1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    (*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1667,\n               PTR_s_oint_00178034 + -0x5920);\n    return;\n  }" ({ "{") (expression_statement "(*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1667,\n               PTR_s_oint_00178034 + -0x5920);" (call_expression "(*(code *)PTR___assert_fail_00178728)\n              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1667,\n               PTR_s_oint_00178034 + -0x5920)" (parenthesized_expression "(*(code *)PTR___assert_fail_00178728)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_00178728" (* "*") (cast_expression "(code *)PTR___assert_fail_00178728" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_00178728"))) () ")")) (argument_list "(PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1667,\n               PTR_s_oint_00178034 + -0x5920)" (( "(") (binary_expression "PTR_s_oint_00178034 + -0x6944" (identifier "PTR_s_oint_00178034") (+ "+") (number_literal "-0x6944")) (, ",") (binary_expression "PTR_s_oint_00178034 + -0x6960" (identifier "PTR_s_oint_00178034") (+ "+") (number_literal "-0x6960")) (, ",") (number_literal "0x1667") (, ",") (binary_expression "PTR_s_oint_00178034 + -0x5920" (identifier "PTR_s_oint_00178034") (+ "+") (number_literal "-0x5920")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0x1054) == -0x54535255) {\n    if (*(int *)(param_1 + 0x1050) == 0) {\n      iVar1 = *(int *)(param_1 + 0x103c);\n    }\n    else {\n      (*(code *)PTR_LogMagickEvent_00178490)\n                (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x5938,0x166a,\n                 PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,param_1 + 4);\n      iVar1 = *(int *)(param_1 + 0x103c);\n    }\n    if ((iVar1 != 0) ||\n       (*(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) !=\n        param_2)) {\n      *(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) =\n           param_2;\n      uVar2 = (*(code *)PTR_CommandOptionToMnemonic_00178170)(0x29,param_2);\n      FUN_00074f08(param_1,PTR_s_oint_00178034 + -0x5eb0,uVar2);\n    }\n    return;\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x1054) == -0x54535255)" (( "(") (binary_expression "*(int *)(param_1 + 0x1054) == -0x54535255" (pointer_expression "*(int *)(param_1 + 0x1054)" (* "*") (cast_expression "(int *)(param_1 + 0x1054)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1054)" (( "(") (binary_expression "param_1 + 0x1054" (identifier "param_1") (+ "+") (number_literal "0x1054")) () ")")))) (== "==") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n    if (*(int *)(param_1 + 0x1050) == 0) {\n      iVar1 = *(int *)(param_1 + 0x103c);\n    }\n    else {\n      (*(code *)PTR_LogMagickEvent_00178490)\n                (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x5938,0x166a,\n                 PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,param_1 + 4);\n      iVar1 = *(int *)(param_1 + 0x103c);\n    }\n    if ((iVar1 != 0) ||\n       (*(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) !=\n        param_2)) {\n      *(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) =\n           param_2;\n      uVar2 = (*(code *)PTR_CommandOptionToMnemonic_00178170)(0x29,param_2);\n      FUN_00074f08(param_1,PTR_s_oint_00178034 + -0x5eb0,uVar2);\n    }\n    return;\n  }" ({ "{") (if_statement "if (*(int *)(param_1 + 0x1050) == 0) {\n      iVar1 = *(int *)(param_1 + 0x103c);\n    }\n    else {\n      (*(code *)PTR_LogMagickEvent_00178490)\n                (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x5938,0x166a,\n                 PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,param_1 + 4);\n      iVar1 = *(int *)(param_1 + 0x103c);\n    }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x1050) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x1050) == 0" (pointer_expression "*(int *)(param_1 + 0x1050)" (* "*") (cast_expression "(int *)(param_1 + 0x1050)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1050)" (( "(") (binary_expression "param_1 + 0x1050" (identifier "param_1") (+ "+") (number_literal "0x1050")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar1 = *(int *)(param_1 + 0x103c);\n    }" ({ "{") (expression_statement "iVar1 = *(int *)(param_1 + 0x103c);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x103c)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(param_1 + 0x103c)" (* "*") (cast_expression "(int *)(param_1 + 0x103c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x103c)" (( "(") (binary_expression "param_1 + 0x103c" (identifier "param_1") (+ "+") (number_literal "0x103c")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      (*(code *)PTR_LogMagickEvent_00178490)\n                (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x5938,0x166a,\n                 PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,param_1 + 4);\n      iVar1 = *(int *)(param_1 + 0x103c);\n    }" (else "else") (compound_statement "{\n      (*(code *)PTR_LogMagickEvent_00178490)\n                (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x5938,0x166a,\n                 PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,param_1 + 4);\n      iVar1 = *(int *)(param_1 + 0x103c);\n    }" ({ "{") (expression_statement "(*(code *)PTR_LogMagickEvent_00178490)\n                (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x5938,0x166a,\n                 PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,param_1 + 4);" (call_expression "(*(code *)PTR_LogMagickEvent_00178490)\n                (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x5938,0x166a,\n                 PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,param_1 + 4)" (parenthesized_expression "(*(code *)PTR_LogMagickEvent_00178490)" (( "(") (pointer_expression "*(code *)PTR_LogMagickEvent_00178490" (* "*") (cast_expression "(code *)PTR_LogMagickEvent_00178490" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_LogMagickEvent_00178490"))) () ")")) (argument_list "(0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x5938,0x166a,\n                 PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,param_1 + 4)" (( "(") (number_literal "0x40000") (, ",") (binary_expression "PTR_s_oint_00178034 + -0x6960" (identifier "PTR_s_oint_00178034") (+ "+") (number_literal "-0x6960")) (, ",") (binary_expression "PTR_s_oint_00178034 + -0x5938" (identifier "PTR_s_oint_00178034") (+ "+") (number_literal "-0x5938")) (, ",") (number_literal "0x166a") (, ",") (binary_expression "PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318" (identifier "PTR_fde_table_entry_0015fffc_data_loc_00178038") (+ "+") (number_literal "-0x7318")) (, ",") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))) (; ";")) (expression_statement "iVar1 = *(int *)(param_1 + 0x103c);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x103c)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(param_1 + 0x103c)" (* "*") (cast_expression "(int *)(param_1 + 0x103c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x103c)" (( "(") (binary_expression "param_1 + 0x103c" (identifier "param_1") (+ "+") (number_literal "0x103c")) () ")"))))) (; ";")) (} "}")))) (if_statement "if ((iVar1 != 0) ||\n       (*(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) !=\n        param_2)) {\n      *(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) =\n           param_2;\n      uVar2 = (*(code *)PTR_CommandOptionToMnemonic_00178170)(0x29,param_2);\n      FUN_00074f08(param_1,PTR_s_oint_00178034 + -0x5eb0,uVar2);\n    }" (if "if") (parenthesized_expression "((iVar1 != 0) ||\n       (*(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) !=\n        param_2))" (( "(") (binary_expression "(iVar1 != 0) ||\n       (*(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) !=\n        param_2)" (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) !=\n        param_2)" (( "(") (binary_expression "*(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) !=\n        param_2" (pointer_expression "*(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248)" (* "*") (cast_expression "(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248)" (( "(") (binary_expression "*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248" (pointer_expression "*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4)" (( "(") (binary_expression "*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4" (pointer_expression "*(int *)(param_1 + 0x1038)" (* "*") (cast_expression "(int *)(param_1 + 0x1038)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1038)" (( "(") (binary_expression "param_1 + 0x1038" (identifier "param_1") (+ "+") (number_literal "0x1038")) () ")")))) (+ "+") (binary_expression "*(int *)(param_1 + 0x1034) * 4" (pointer_expression "*(int *)(param_1 + 0x1034)" (* "*") (cast_expression "(int *)(param_1 + 0x1034)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1034)" (( "(") (binary_expression "param_1 + 0x1034" (identifier "param_1") (+ "+") (number_literal "0x1034")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (+ "+") (number_literal "0x248")) () ")")))) (!= "!=") (identifier "param_2")) () ")"))) () ")")) (compound_statement "{\n      *(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) =\n           param_2;\n      uVar2 = (*(code *)PTR_CommandOptionToMnemonic_00178170)(0x29,param_2);\n      FUN_00074f08(param_1,PTR_s_oint_00178034 + -0x5eb0,uVar2);\n    }" ({ "{") (expression_statement "*(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) =\n           param_2;" (assignment_expression "*(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) =\n           param_2" (pointer_expression "*(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248)" (* "*") (cast_expression "(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248)" (( "(") (binary_expression "*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248" (pointer_expression "*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4)" (( "(") (binary_expression "*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4" (pointer_expression "*(int *)(param_1 + 0x1038)" (* "*") (cast_expression "(int *)(param_1 + 0x1038)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1038)" (( "(") (binary_expression "param_1 + 0x1038" (identifier "param_1") (+ "+") (number_literal "0x1038")) () ")")))) (+ "+") (binary_expression "*(int *)(param_1 + 0x1034) * 4" (pointer_expression "*(int *)(param_1 + 0x1034)" (* "*") (cast_expression "(int *)(param_1 + 0x1034)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1034)" (( "(") (binary_expression "param_1 + 0x1034" (identifier "param_1") (+ "+") (number_literal "0x1034")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (+ "+") (number_literal "0x248")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "uVar2 = (*(code *)PTR_CommandOptionToMnemonic_00178170)(0x29,param_2);" (assignment_expression "uVar2 = (*(code *)PTR_CommandOptionToMnemonic_00178170)(0x29,param_2)" (identifier "uVar2") (= "=") (call_expression "(*(code *)PTR_CommandOptionToMnemonic_00178170)(0x29,param_2)" (parenthesized_expression "(*(code *)PTR_CommandOptionToMnemonic_00178170)" (( "(") (pointer_expression "*(code *)PTR_CommandOptionToMnemonic_00178170" (* "*") (cast_expression "(code *)PTR_CommandOptionToMnemonic_00178170" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_CommandOptionToMnemonic_00178170"))) () ")")) (argument_list "(0x29,param_2)" (( "(") (number_literal "0x29") (, ",") (identifier "param_2") () ")")))) (; ";")) (expression_statement "FUN_00074f08(param_1,PTR_s_oint_00178034 + -0x5eb0,uVar2);" (call_expression "FUN_00074f08(param_1,PTR_s_oint_00178034 + -0x5eb0,uVar2)" (identifier "FUN_00074f08") (argument_list "(param_1,PTR_s_oint_00178034 + -0x5eb0,uVar2)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_s_oint_00178034 + -0x5eb0" (identifier "PTR_s_oint_00178034") (+ "+") (number_literal "-0x5eb0")) (, ",") (identifier "uVar2") () ")"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR___assert_fail_00178728)\n            (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1668,\n             PTR_s_oint_00178034 + -0x5920);" (call_expression "(*(code *)PTR___assert_fail_00178728)\n            (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1668,\n             PTR_s_oint_00178034 + -0x5920)" (parenthesized_expression "(*(code *)PTR___assert_fail_00178728)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_00178728" (* "*") (cast_expression "(code *)PTR___assert_fail_00178728" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_00178728"))) () ")")) (argument_list "(PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1668,\n             PTR_s_oint_00178034 + -0x5920)" (( "(") (binary_expression "PTR_s_oint_00178034 + -0x1e54" (identifier "PTR_s_oint_00178034") (+ "+") (number_literal "-0x1e54")) (, ",") (binary_expression "PTR_s_oint_00178034 + -0x6960" (identifier "PTR_s_oint_00178034") (+ "+") (number_literal "-0x6960")) (, ",") (number_literal "0x1668") (, ",") (binary_expression "PTR_s_oint_00178034 + -0x5920" (identifier "PTR_s_oint_00178034") (+ "+") (number_literal "-0x5920")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (return_statement))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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)))))))) alternative: (else_clause (compound_statement (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 (number_literal) (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: (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)))))) right: (number_literal))))) right: (identifier))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: (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: (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)))))) right: (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 (number_literal) (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier)))))) (return_statement))) (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 (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (return_statement))))

void MASKED(int param_1,int param_2)

{
  int iVar1;
  undefined4 uVar2;
  
  if (param_1 == 0) {
    (*(code *)PTR___assert_fail_00178728)
              (PTR_s_oint_00178034 + -0x6944,PTR_s_oint_00178034 + -0x6960,0x1667,
               PTR_s_oint_00178034 + -0x5920);
    return;
  }
  if (*(int *)(param_1 + 0x1054) == -0x54535255) {
    if (*(int *)(param_1 + 0x1050) == 0) {
      iVar1 = *(int *)(param_1 + 0x103c);
    }
    else {
      (*(code *)PTR_LogMagickEvent_00178490)
                (0x40000,PTR_s_oint_00178034 + -0x6960,PTR_s_oint_00178034 + -0x5938,0x166a,
                 PTR_fde_table_entry_0015fffc_data_loc_00178038 + -0x7318,param_1 + 4);
      iVar1 = *(int *)(param_1 + 0x103c);
    }
    if ((iVar1 != 0) ||
       (*(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) !=
        param_2)) {
      *(int *)(*(int *)(*(int *)(param_1 + 0x1038) + *(int *)(param_1 + 0x1034) * 4) + 0x248) =
           param_2;
      uVar2 = (*(code *)PTR_CommandOptionToMnemonic_00178170)(0x29,param_2);
      FUN_00074f08(param_1,PTR_s_oint_00178034 + -0x5eb0,uVar2);
    }
    return;
  }
  (*(code *)PTR___assert_fail_00178728)
            (PTR_s_oint_00178034 + -0x1e54,PTR_s_oint_00178034 + -0x6960,0x1668,
             PTR_s_oint_00178034 + -0x5920);
  return;
}

