
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

void png_read_update_info(png_structrp png_ptr,png_inforp info_ptr)

{
  if (png_ptr != (png_structrp)0x0) {
    if ((png_ptr->flags & 0x40) != 0) {
      png_app_error(png_ptr,"png_read_update_info/png_start_read_image: duplicate call");
      return;
    }
    png_read_start_row(png_ptr);
    png_read_transform_info(png_ptr,info_ptr);
  }
  return;
}



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

void png_read_update_info(int param_1,undefined4 param_2)

{
  if (param_1 != 0) {
    if ((*(byte *)(param_1 + 0xd4) & 0x40) != 0) {
      FUN_0001a120(param_1,"png_read_update_info/png_start_read_image: duplicate call");
      return;
    }
    FUN_0002f300(param_1);
    FUN_000262f0(param_1,param_2);
  }
  return;
}


PUSH ESI
PUSH EBX
CALL 0x00014970
ADD EBX,0x2d6a9
SUB ESP,0x4
MOV ESI,dword ptr [ESP + 0x10]
TEST ESI,ESI
JZ 0x00020709
TEST byte ptr [ESI + 0xd4],0x40
JNZ 0x00020710
SUB ESP,0xc
PUSH ESI
CALL 0x0002f300
POP EAX
POP EDX
PUSH dword ptr [ESP + 0x1c]
PUSH ESI
CALL 0x000262f0
ADD ESP,0x10
ADD ESP,0x4
POP EBX
POP ESI
RET
SUB ESP,0x8
LEA EAX,[EBX + 0xfffef098]
PUSH EAX
PUSH ESI
CALL 0x0001a120
ADD ESP,0x10
ADD ESP,0x4
POP EBX
POP ESI
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid png_read_update_info(int param_1,undefined4 param_2)\n\n{\n  if (param_1 != 0) {\n    if ((*(byte *)(param_1 + 0xd4) & 0x40) != 0) {\n      FUN_0001a120(param_1,"png_read_update_info/png_start_read_image: duplicate call");\n      return;\n    }\n    FUN_0002f300(param_1);\n    FUN_000262f0(param_1,param_2);\n  }\n  return;\n}\n\n" comment (function_definition "void png_read_update_info(int param_1,undefined4 param_2)\n\n{\n  if (param_1 != 0) {\n    if ((*(byte *)(param_1 + 0xd4) & 0x40) != 0) {\n      FUN_0001a120(param_1,"png_read_update_info/png_start_read_image: duplicate call");\n      return;\n    }\n    FUN_0002f300(param_1);\n    FUN_000262f0(param_1,param_2);\n  }\n  return;\n}" primitive_type (function_declarator "png_read_update_info(int param_1,undefined4 param_2)" identifier (parameter_list "(int param_1,undefined4 param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) ))) (compound_statement "{\n  if (param_1 != 0) {\n    if ((*(byte *)(param_1 + 0xd4) & 0x40) != 0) {\n      FUN_0001a120(param_1,"png_read_update_info/png_start_read_image: duplicate call");\n      return;\n    }\n    FUN_0002f300(param_1);\n    FUN_000262f0(param_1,param_2);\n  }\n  return;\n}" { (if_statement "if (param_1 != 0) {\n    if ((*(byte *)(param_1 + 0xd4) & 0x40) != 0) {\n      FUN_0001a120(param_1,"png_read_update_info/png_start_read_image: duplicate call");\n      return;\n    }\n    FUN_0002f300(param_1);\n    FUN_000262f0(param_1,param_2);\n  }" if (parenthesized_expression "(param_1 != 0)" ( (binary_expression "param_1 != 0" identifier != number_literal) )) (compound_statement "{\n    if ((*(byte *)(param_1 + 0xd4) & 0x40) != 0) {\n      FUN_0001a120(param_1,"png_read_update_info/png_start_read_image: duplicate call");\n      return;\n    }\n    FUN_0002f300(param_1);\n    FUN_000262f0(param_1,param_2);\n  }" { (if_statement "if ((*(byte *)(param_1 + 0xd4) & 0x40) != 0) {\n      FUN_0001a120(param_1,"png_read_update_info/png_start_read_image: duplicate call");\n      return;\n    }" if (parenthesized_expression "((*(byte *)(param_1 + 0xd4) & 0x40) != 0)" ( (binary_expression "(*(byte *)(param_1 + 0xd4) & 0x40) != 0" (parenthesized_expression "(*(byte *)(param_1 + 0xd4) & 0x40)" ( (binary_expression "*(byte *)(param_1 + 0xd4) & 0x40" (pointer_expression "*(byte *)(param_1 + 0xd4)" * (cast_expression "(byte *)(param_1 + 0xd4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xd4)" ( (binary_expression "param_1 + 0xd4" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n      FUN_0001a120(param_1,"png_read_update_info/png_start_read_image: duplicate call");\n      return;\n    }" { (expression_statement "FUN_0001a120(param_1,"png_read_update_info/png_start_read_image: duplicate call");" (call_expression "FUN_0001a120(param_1,"png_read_update_info/png_start_read_image: duplicate call")" identifier (argument_list "(param_1,"png_read_update_info/png_start_read_image: duplicate call")" ( identifier , (string_literal ""png_read_update_info/png_start_read_image: duplicate call"" " string_content ") ))) ;) (return_statement "return;" return ;) })) (expression_statement "FUN_0002f300(param_1);" (call_expression "FUN_0002f300(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "FUN_000262f0(param_1,param_2);" (call_expression "FUN_000262f0(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\nvoid png_read_update_info(png_structrp png_ptr,png_inforp info_ptr)\n\n{\n  if (png_ptr != (png_structrp)0x0) {\n    if ((png_ptr->flags & 0x40) != 0) {\n      png_app_error(png_ptr,"png_read_update_info/png_start_read_image: duplicate call");\n      return;\n    }\n    png_read_start_row(png_ptr);\n    png_read_transform_info(png_ptr,info_ptr);\n  }\n  return;\n}\n\n" comment comment (function_definition "void png_read_update_info(png_structrp png_ptr,png_inforp info_ptr)\n\n{\n  if (png_ptr != (png_structrp)0x0) {\n    if ((png_ptr->flags & 0x40) != 0) {\n      png_app_error(png_ptr,"png_read_update_info/png_start_read_image: duplicate call");\n      return;\n    }\n    png_read_start_row(png_ptr);\n    png_read_transform_info(png_ptr,info_ptr);\n  }\n  return;\n}" primitive_type (function_declarator "png_read_update_info(png_structrp png_ptr,png_inforp info_ptr)" identifier (parameter_list "(png_structrp png_ptr,png_inforp info_ptr)" ( (parameter_declaration "png_structrp png_ptr" type_identifier identifier) , (parameter_declaration "png_inforp info_ptr" type_identifier identifier) ))) (compound_statement "{\n  if (png_ptr != (png_structrp)0x0) {\n    if ((png_ptr->flags & 0x40) != 0) {\n      png_app_error(png_ptr,"png_read_update_info/png_start_read_image: duplicate call");\n      return;\n    }\n    png_read_start_row(png_ptr);\n    png_read_transform_info(png_ptr,info_ptr);\n  }\n  return;\n}" { (if_statement "if (png_ptr != (png_structrp)0x0) {\n    if ((png_ptr->flags & 0x40) != 0) {\n      png_app_error(png_ptr,"png_read_update_info/png_start_read_image: duplicate call");\n      return;\n    }\n    png_read_start_row(png_ptr);\n    png_read_transform_info(png_ptr,info_ptr);\n  }" if (parenthesized_expression "(png_ptr != (png_structrp)0x0)" ( (binary_expression "png_ptr != (png_structrp)0x0" identifier != (cast_expression "(png_structrp)0x0" ( (type_descriptor "png_structrp" type_identifier) ) number_literal)) )) (compound_statement "{\n    if ((png_ptr->flags & 0x40) != 0) {\n      png_app_error(png_ptr,"png_read_update_info/png_start_read_image: duplicate call");\n      return;\n    }\n    png_read_start_row(png_ptr);\n    png_read_transform_info(png_ptr,info_ptr);\n  }" { (if_statement "if ((png_ptr->flags & 0x40) != 0) {\n      png_app_error(png_ptr,"png_read_update_info/png_start_read_image: duplicate call");\n      return;\n    }" if (parenthesized_expression "((png_ptr->flags & 0x40) != 0)" ( (binary_expression "(png_ptr->flags & 0x40) != 0" (parenthesized_expression "(png_ptr->flags & 0x40)" ( (binary_expression "png_ptr->flags & 0x40" (field_expression "png_ptr->flags" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      png_app_error(png_ptr,"png_read_update_info/png_start_read_image: duplicate call");\n      return;\n    }" { (expression_statement "png_app_error(png_ptr,"png_read_update_info/png_start_read_image: duplicate call");" (call_expression "png_app_error(png_ptr,"png_read_update_info/png_start_read_image: duplicate call")" identifier (argument_list "(png_ptr,"png_read_update_info/png_start_read_image: duplicate call")" ( identifier , (string_literal ""png_read_update_info/png_start_read_image: duplicate call"" " string_content ") ))) ;) (return_statement "return;" return ;) })) (expression_statement "png_read_start_row(png_ptr);" (call_expression "png_read_start_row(png_ptr)" identifier (argument_list "(png_ptr)" ( identifier ))) ;) (expression_statement "png_read_transform_info(png_ptr,info_ptr);" (call_expression "png_read_transform_info(png_ptr,info_ptr)" identifier (argument_list "(png_ptr,info_ptr)" ( identifier , identifier ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void png_read_update_info(int param_1,undefined4 param_2)\n\n{\n  if (param_1 != 0) {\n    if ((*(byte *)(param_1 + 0xd4) & 0x40) != 0) {\n      FUN_0001a120(param_1,"png_read_update_info/png_start_read_image: duplicate call");\n      return;\n    }\n    FUN_0002f300(param_1);\n    FUN_000262f0(param_1,param_2);\n  }\n  return;\n}\n\n" (function_definition "void png_read_update_info(int param_1,undefined4 param_2)\n\n{\n  if (param_1 != 0) {\n    if ((*(byte *)(param_1 + 0xd4) & 0x40) != 0) {\n      FUN_0001a120(param_1,"png_read_update_info/png_start_read_image: duplicate call");\n      return;\n    }\n    FUN_0002f300(param_1);\n    FUN_000262f0(param_1,param_2);\n  }\n  return;\n}" primitive_type (function_declarator "png_read_update_info(int param_1,undefined4 param_2)" identifier (parameter_list "(int param_1,undefined4 param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) ))) (compound_statement "{\n  if (param_1 != 0) {\n    if ((*(byte *)(param_1 + 0xd4) & 0x40) != 0) {\n      FUN_0001a120(param_1,"png_read_update_info/png_start_read_image: duplicate call");\n      return;\n    }\n    FUN_0002f300(param_1);\n    FUN_000262f0(param_1,param_2);\n  }\n  return;\n}" { (if_statement "if (param_1 != 0) {\n    if ((*(byte *)(param_1 + 0xd4) & 0x40) != 0) {\n      FUN_0001a120(param_1,"png_read_update_info/png_start_read_image: duplicate call");\n      return;\n    }\n    FUN_0002f300(param_1);\n    FUN_000262f0(param_1,param_2);\n  }" if (parenthesized_expression "(param_1 != 0)" ( (binary_expression "param_1 != 0" identifier != number_literal) )) (compound_statement "{\n    if ((*(byte *)(param_1 + 0xd4) & 0x40) != 0) {\n      FUN_0001a120(param_1,"png_read_update_info/png_start_read_image: duplicate call");\n      return;\n    }\n    FUN_0002f300(param_1);\n    FUN_000262f0(param_1,param_2);\n  }" { (if_statement "if ((*(byte *)(param_1 + 0xd4) & 0x40) != 0) {\n      FUN_0001a120(param_1,"png_read_update_info/png_start_read_image: duplicate call");\n      return;\n    }" if (parenthesized_expression "((*(byte *)(param_1 + 0xd4) & 0x40) != 0)" ( (binary_expression "(*(byte *)(param_1 + 0xd4) & 0x40) != 0" (parenthesized_expression "(*(byte *)(param_1 + 0xd4) & 0x40)" ( (binary_expression "*(byte *)(param_1 + 0xd4) & 0x40" (pointer_expression "*(byte *)(param_1 + 0xd4)" * (cast_expression "(byte *)(param_1 + 0xd4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xd4)" ( (binary_expression "param_1 + 0xd4" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n      FUN_0001a120(param_1,"png_read_update_info/png_start_read_image: duplicate call");\n      return;\n    }" { (expression_statement "FUN_0001a120(param_1,"png_read_update_info/png_start_read_image: duplicate call");" (call_expression "FUN_0001a120(param_1,"png_read_update_info/png_start_read_image: duplicate call")" identifier (argument_list "(param_1,"png_read_update_info/png_start_read_image: duplicate call")" ( identifier , (string_literal ""png_read_update_info/png_start_read_image: duplicate call"" " string_content ") ))) ;) (return_statement "return;" return ;) })) (expression_statement "FUN_0002f300(param_1);" (call_expression "FUN_0002f300(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "FUN_000262f0(param_1,param_2);" (call_expression "FUN_000262f0(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") ))) ;) (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (return_statement return ;) })))
(function_definition "void png_read_update_info(int param_1,undefined4 param_2)\n\n{\n  if (param_1 != 0) {\n    if ((*(byte *)(param_1 + 0xd4) & 0x40) != 0) {\n      FUN_0001a120(param_1,"png_read_update_info/png_start_read_image: duplicate call");\n      return;\n    }\n    FUN_0002f300(param_1);\n    FUN_000262f0(param_1,param_2);\n  }\n  return;\n}" (primitive_type "void") (function_declarator "png_read_update_info(int param_1,undefined4 param_2)" (identifier "png_read_update_info") (parameter_list "(int param_1,undefined4 param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) () ")"))) (compound_statement "{\n  if (param_1 != 0) {\n    if ((*(byte *)(param_1 + 0xd4) & 0x40) != 0) {\n      FUN_0001a120(param_1,"png_read_update_info/png_start_read_image: duplicate call");\n      return;\n    }\n    FUN_0002f300(param_1);\n    FUN_000262f0(param_1,param_2);\n  }\n  return;\n}" ({ "{") (if_statement "if (param_1 != 0) {\n    if ((*(byte *)(param_1 + 0xd4) & 0x40) != 0) {\n      FUN_0001a120(param_1,"png_read_update_info/png_start_read_image: duplicate call");\n      return;\n    }\n    FUN_0002f300(param_1);\n    FUN_000262f0(param_1,param_2);\n  }" (if "if") (parenthesized_expression "(param_1 != 0)" (( "(") (binary_expression "param_1 != 0" (identifier "param_1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if ((*(byte *)(param_1 + 0xd4) & 0x40) != 0) {\n      FUN_0001a120(param_1,"png_read_update_info/png_start_read_image: duplicate call");\n      return;\n    }\n    FUN_0002f300(param_1);\n    FUN_000262f0(param_1,param_2);\n  }" ({ "{") (if_statement "if ((*(byte *)(param_1 + 0xd4) & 0x40) != 0) {\n      FUN_0001a120(param_1,"png_read_update_info/png_start_read_image: duplicate call");\n      return;\n    }" (if "if") (parenthesized_expression "((*(byte *)(param_1 + 0xd4) & 0x40) != 0)" (( "(") (binary_expression "(*(byte *)(param_1 + 0xd4) & 0x40) != 0" (parenthesized_expression "(*(byte *)(param_1 + 0xd4) & 0x40)" (( "(") (binary_expression "*(byte *)(param_1 + 0xd4) & 0x40" (pointer_expression "*(byte *)(param_1 + 0xd4)" (* "*") (cast_expression "(byte *)(param_1 + 0xd4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xd4)" (( "(") (binary_expression "param_1 + 0xd4" (identifier "param_1") (+ "+") (number_literal "0xd4")) () ")")))) (& "&") (number_literal "0x40")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_0001a120(param_1,"png_read_update_info/png_start_read_image: duplicate call");\n      return;\n    }" ({ "{") (expression_statement "FUN_0001a120(param_1,"png_read_update_info/png_start_read_image: duplicate call");" (call_expression "FUN_0001a120(param_1,"png_read_update_info/png_start_read_image: duplicate call")" (identifier "FUN_0001a120") (argument_list "(param_1,"png_read_update_info/png_start_read_image: duplicate call")" (( "(") (identifier "param_1") (, ",") (string_literal ""png_read_update_info/png_start_read_image: duplicate call"" (" """) (string_content "png_read_update_info/png_start_read_image: duplicate call") (" """)) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_0002f300(param_1);" (call_expression "FUN_0002f300(param_1)" (identifier "FUN_0002f300") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (expression_statement "FUN_000262f0(param_1,param_2);" (call_expression "FUN_000262f0(param_1,param_2)" (identifier "FUN_000262f0") (argument_list "(param_1,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") () ")"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

void function_1(type_1 var_1,type_2 info_ptr)

{
  if (var_1 != (type_1)0x0) {
    if ((var_1->flags & 0x40) != 0) {
      var_2(var_1,"png_read_update_info/png_start_read_image: duplicate call");
      return;
    }
    var_3(var_1);
    var_4(var_1,info_ptr);
  }
  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: (type_identifier) declarator: (identifier)))) body: (compound_statement (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content))))) (return_statement))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))) (return_statement))))

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

void MASKED(int param_1,undefined4 param_2)

{
  if (param_1 != 0) {
    if ((*(byte *)(param_1 + 0xd4) & 0x40) != 0) {
      FUN_0001a120(param_1,"MASKED/png_start_read_image: duplicate call");
      return;
    }
    FUN_0002f300(param_1);
    FUN_000262f0(param_1,param_2);
  }
  return;
}

