
/* WARNING: Function: __x86.get_pc_thunk.dx replaced with injection: get_pc_thunk_dx */
/* std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> >
   >::put(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, long long)
   const */

undefined4
std::num_put<char,std::ostreambuf_iterator<char,std::char_traits<char>>>::put
          (undefined4 param_1,int *param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5,
          char param_6,undefined4 param_7,undefined4 param_8)

{
  if (*(code **)(*param_2 + 0x14) == (code *)PTR_do_put_005e9d84) {
    _M_insert_int<long_long>(param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8);
    return param_1;
  }
  (**(code **)(*param_2 + 0x14))
            (param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8);
  return param_1;
}



/* WARNING: Function: __i686.get_pc_thunk.dx replaced with injection: get_pc_thunk_dx */

undefined4
FUN_003c7760(undefined4 param_1,int *param_2,undefined4 param_3,undefined4 param_4,
            undefined4 param_5,char param_6,undefined4 param_7,undefined4 param_8)

{
  if (*(code **)(*param_2 + 0x14) == (code *)PTR_FUN_005e9d84) {
    FUN_003c74c0(param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8);
    return param_1;
  }
  (**(code **)(*param_2 + 0x14))
            (param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8);
  return param_1;
}


CALL 0x00050c85
ADD EDX,0x22289b
PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0xc
MOV EAX,dword ptr [ESP + 0x24]
MOV ESI,dword ptr [ESP + 0x20]
MOV ECX,dword ptr [ESP + 0x38]
MOV EBX,dword ptr [ESP + 0x3c]
MOV EDI,dword ptr [EAX]
MOVSX EBP,byte ptr [ESP + 0x34]
MOV EDI,dword ptr [EDI + 0x14]
CMP EDI,dword ptr [EDX + 0xfffffd84]
JNZ 0x003c77c0
PUSH EBX
MOV EBX,EDX
PUSH ECX
PUSH EBP
PUSH dword ptr [ESP + 0x3c]
PUSH dword ptr [ESP + 0x3c]
PUSH dword ptr [ESP + 0x3c]
PUSH EAX
PUSH ESI
CALL 0x003c74c0
MOV EAX,ESI
ADD ESP,0x1c
ADD ESP,0xc
POP EBX
POP ESI
POP EDI
POP EBP
RET 0x4
PUSH EBX
PUSH ECX
PUSH EBP
PUSH dword ptr [ESP + 0x3c]
PUSH dword ptr [ESP + 0x3c]
PUSH dword ptr [ESP + 0x3c]
PUSH EAX
PUSH ESI
CALL EDI
MOV EAX,ESI
ADD ESP,0x1c
ADD ESP,0xc
POP EBX
POP ESI
POP EDI
POP EBP
RET 0x4
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.dx replaced with injection: get_pc_thunk_dx */\n\nundefined4\nFUN_003c7760(undefined4 param_1,int *param_2,undefined4 param_3,undefined4 param_4,\n            undefined4 param_5,char param_6,undefined4 param_7,undefined4 param_8)\n\n{\n  if (*(code **)(*param_2 + 0x14) == (code *)PTR_FUN_005e9d84) {\n    FUN_003c74c0(param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8);\n    return param_1;\n  }\n  (**(code **)(*param_2 + 0x14))\n            (param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8);\n  return param_1;\n}\n\n" comment (function_definition "undefined4\nFUN_003c7760(undefined4 param_1,int *param_2,undefined4 param_3,undefined4 param_4,\n            undefined4 param_5,char param_6,undefined4 param_7,undefined4 param_8)\n\n{\n  if (*(code **)(*param_2 + 0x14) == (code *)PTR_FUN_005e9d84) {\n    FUN_003c74c0(param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8);\n    return param_1;\n  }\n  (**(code **)(*param_2 + 0x14))\n            (param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8);\n  return param_1;\n}" type_identifier (function_declarator "FUN_003c7760(undefined4 param_1,int *param_2,undefined4 param_3,undefined4 param_4,\n            undefined4 param_5,char param_6,undefined4 param_7,undefined4 param_8)" identifier (parameter_list "(undefined4 param_1,int *param_2,undefined4 param_3,undefined4 param_4,\n            undefined4 param_5,char param_6,undefined4 param_7,undefined4 param_8)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "char param_6" primitive_type identifier) , (parameter_declaration "undefined4 param_7" type_identifier identifier) , (parameter_declaration "undefined4 param_8" type_identifier identifier) ))) (compound_statement "{\n  if (*(code **)(*param_2 + 0x14) == (code *)PTR_FUN_005e9d84) {\n    FUN_003c74c0(param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8);\n    return param_1;\n  }\n  (**(code **)(*param_2 + 0x14))\n            (param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8);\n  return param_1;\n}" { (if_statement "if (*(code **)(*param_2 + 0x14) == (code *)PTR_FUN_005e9d84) {\n    FUN_003c74c0(param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8);\n    return param_1;\n  }" if (parenthesized_expression "(*(code **)(*param_2 + 0x14) == (code *)PTR_FUN_005e9d84)" ( (binary_expression "*(code **)(*param_2 + 0x14) == (code *)PTR_FUN_005e9d84" (pointer_expression "*(code **)(*param_2 + 0x14)" * (cast_expression "(code **)(*param_2 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x14)" ( (binary_expression "*param_2 + 0x14" (pointer_expression "*param_2" * identifier) + number_literal) )))) == (cast_expression "(code *)PTR_FUN_005e9d84" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n    FUN_003c74c0(param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8);\n    return param_1;\n  }" { (expression_statement "FUN_003c74c0(param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8);" (call_expression "FUN_003c74c0(param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8)" identifier (argument_list "(param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8)" ( identifier , identifier , identifier , identifier , identifier , (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier) , identifier , identifier ))) ;) (return_statement "return param_1;" return identifier ;) })) (expression_statement "(**(code **)(*param_2 + 0x14))\n            (param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8);" (call_expression "(**(code **)(*param_2 + 0x14))\n            (param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8)" (parenthesized_expression "(**(code **)(*param_2 + 0x14))" ( (pointer_expression "**(code **)(*param_2 + 0x14)" * (pointer_expression "*(code **)(*param_2 + 0x14)" * (cast_expression "(code **)(*param_2 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x14)" ( (binary_expression "*param_2 + 0x14" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8)" ( identifier , identifier , identifier , identifier , identifier , (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier) , identifier , identifier ))) ;) (return_statement "return param_1;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.dx replaced with injection: get_pc_thunk_dx */\n/* std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> >\n   >::put(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, long long)\n   const */\n\nundefined4\nstd::num_put<char,std::ostreambuf_iterator<char,std::char_traits<char>>>::put\n          (undefined4 param_1,int *param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5,\n          char param_6,undefined4 param_7,undefined4 param_8)\n\n{\n  if (*(code **)(*param_2 + 0x14) == (code *)PTR_do_put_005e9d84) {\n    _M_insert_int<long_long>(param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8);\n    return param_1;\n  }\n  (**(code **)(*param_2 + 0x14))\n            (param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8);\n  return param_1;\n}\n\n" comment comment (declaration "undefined4\nstd::num_put<char,std::ostreambuf_iterator<char,std::char_traits<char>>>::put\n          (undefined4 param_1,int *param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5,\n          char param_6,undefined4 param_7,undefined4 param_8)\n\n{\n  if (*(code **)(*param_2 + 0x14) == (code *)PTR_do_put_005e9d84) {\n    _M_insert_int<long_long>(param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8);" type_identifier (ERROR "std::" identifier : :) identifier (ERROR "<char" < primitive_type) , (ERROR "std::" identifier : :) identifier (ERROR "<char" < primitive_type) , (ERROR "std::char_traits<char>>>::put\n          (undefined4 param_1,int *param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5,\n          char param_6,undefined4 param_7,undefined4 param_8)\n\n{\n  if (*(code **)(*param_2 + 0x14) == (code *)PTR_do_put_005e9d84) {\n    _M_insert_int<long_long>(" identifier : : identifier < primitive_type >> > : : (function_declarator "put\n          (undefined4 param_1,int *param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5,\n          char param_6,undefined4 param_7,undefined4 param_8)\n\n{\n  if (*(code **)(*param_2 + 0x14) == (code *)PTR_do_put_005e9d84)" (function_declarator "put\n          (undefined4 param_1,int *param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5,\n          char param_6,undefined4 param_7,undefined4 param_8)" identifier (parameter_list "(undefined4 param_1,int *param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5,\n          char param_6,undefined4 param_7,undefined4 param_8)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "char param_6" primitive_type identifier) , (parameter_declaration "undefined4 param_7" type_identifier identifier) , (parameter_declaration "undefined4 param_8" type_identifier identifier) ))) (ERROR "{\n  if" { if) (parameter_list "(*(code **)(*param_2 + 0x14) == (code *)PTR_do_put_005e9d84)" ( (parameter_declaration "*(code **)(*param_2 + 0x14) == (code *)" type_identifier (abstract_pointer_declarator "*(code **)(*param_2 + 0x14) == (code *)" * (abstract_function_declarator "(code **)(*param_2 + 0x14) == (code *)" (abstract_function_declarator "(code **)(*param_2 + 0x14)" (abstract_function_declarator "(code **)" (parameter_list "(code **)" ( (parameter_declaration "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ))) (parameter_list "(*param_2 + 0x14)" ( (ERROR "*" *) (parameter_declaration "param_2" type_identifier) (ERROR "+ 0x14" + number_literal) ))) (ERROR "==" ==) (parameter_list "(code *)" ( (parameter_declaration "code *" type_identifier (abstract_pointer_declarator "*" *)) ))))) (ERROR "PTR_do_put_005e9d84" identifier) ))) { identifier < identifier > () identifier , identifier , identifier , identifier , identifier , (ERROR "(int)" (parenthesized_declarator "(int)" ( identifier ))) identifier , identifier , identifier (ERROR ")" )) ;) (return_statement "return param_1;" return identifier ;) (ERROR "}" }) (expression_statement "(**(code **)(*param_2 + 0x14))\n            (param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8);" (call_expression "(**(code **)(*param_2 + 0x14))\n            (param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8)" (parenthesized_expression "(**(code **)(*param_2 + 0x14))" ( (pointer_expression "**(code **)(*param_2 + 0x14)" * (pointer_expression "*(code **)(*param_2 + 0x14)" * (cast_expression "(code **)(*param_2 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x14)" ( (binary_expression "*param_2 + 0x14" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8)" ( identifier , identifier , identifier , identifier , identifier , (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier) , identifier , identifier ))) ;) (return_statement "return param_1;" return identifier ;) (ERROR "}" }))
(translation_unit "undefined4\nFUN_003c7760(undefined4 param_1,int *param_2,undefined4 param_3,undefined4 param_4,\n            undefined4 param_5,char param_6,undefined4 param_7,undefined4 param_8)\n\n{\n  if (*(code **)(*param_2 + 0x14) == (code *)PTR_FUN_005e9d84) {\n    FUN_003c74c0(param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8);\n    return param_1;\n  }\n  (**(code **)(*param_2 + 0x14))\n            (param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8);\n  return param_1;\n}\n\n" (function_definition "undefined4\nFUN_003c7760(undefined4 param_1,int *param_2,undefined4 param_3,undefined4 param_4,\n            undefined4 param_5,char param_6,undefined4 param_7,undefined4 param_8)\n\n{\n  if (*(code **)(*param_2 + 0x14) == (code *)PTR_FUN_005e9d84) {\n    FUN_003c74c0(param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8);\n    return param_1;\n  }\n  (**(code **)(*param_2 + 0x14))\n            (param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8);\n  return param_1;\n}" type_identifier (function_declarator "FUN_003c7760(undefined4 param_1,int *param_2,undefined4 param_3,undefined4 param_4,\n            undefined4 param_5,char param_6,undefined4 param_7,undefined4 param_8)" identifier (parameter_list "(undefined4 param_1,int *param_2,undefined4 param_3,undefined4 param_4,\n            undefined4 param_5,char param_6,undefined4 param_7,undefined4 param_8)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "char param_6" primitive_type identifier) , (parameter_declaration "undefined4 param_7" type_identifier identifier) , (parameter_declaration "undefined4 param_8" type_identifier identifier) ))) (compound_statement "{\n  if (*(code **)(*param_2 + 0x14) == (code *)PTR_FUN_005e9d84) {\n    FUN_003c74c0(param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8);\n    return param_1;\n  }\n  (**(code **)(*param_2 + 0x14))\n            (param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8);\n  return param_1;\n}" { (if_statement "if (*(code **)(*param_2 + 0x14) == (code *)PTR_FUN_005e9d84) {\n    FUN_003c74c0(param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8);\n    return param_1;\n  }" if (parenthesized_expression "(*(code **)(*param_2 + 0x14) == (code *)PTR_FUN_005e9d84)" ( (binary_expression "*(code **)(*param_2 + 0x14) == (code *)PTR_FUN_005e9d84" (pointer_expression "*(code **)(*param_2 + 0x14)" * (cast_expression "(code **)(*param_2 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x14)" ( (binary_expression "*param_2 + 0x14" (pointer_expression "*param_2" * identifier) + number_literal) )))) == (cast_expression "(code *)PTR_FUN_005e9d84" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n    FUN_003c74c0(param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8);\n    return param_1;\n  }" { (expression_statement "FUN_003c74c0(param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8);" (call_expression "FUN_003c74c0(param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8)" identifier (argument_list "(param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8)" ( identifier , identifier , identifier , identifier , identifier , (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier) , identifier , identifier ))) ;) (return_statement "return param_1;" return identifier ;) })) (expression_statement "(**(code **)(*param_2 + 0x14))\n            (param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8);" (call_expression "(**(code **)(*param_2 + 0x14))\n            (param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8)" (parenthesized_expression "(**(code **)(*param_2 + 0x14))" ( (pointer_expression "**(code **)(*param_2 + 0x14)" * (pointer_expression "*(code **)(*param_2 + 0x14)" * (cast_expression "(code **)(*param_2 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x14)" ( (binary_expression "*param_2 + 0x14" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8)" ( identifier , identifier , identifier , identifier , identifier , (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier) , identifier , identifier ))) ;) (return_statement "return param_1;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) , IDENT , IDENT ))) ;) (return_statement return IDENT ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) , IDENT , IDENT ))) ;) (return_statement return IDENT ;) })))
(function_definition "undefined4\nFUN_003c7760(undefined4 param_1,int *param_2,undefined4 param_3,undefined4 param_4,\n            undefined4 param_5,char param_6,undefined4 param_7,undefined4 param_8)\n\n{\n  if (*(code **)(*param_2 + 0x14) == (code *)PTR_FUN_005e9d84) {\n    FUN_003c74c0(param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8);\n    return param_1;\n  }\n  (**(code **)(*param_2 + 0x14))\n            (param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8);\n  return param_1;\n}" (type_identifier "undefined4") (function_declarator "FUN_003c7760(undefined4 param_1,int *param_2,undefined4 param_3,undefined4 param_4,\n            undefined4 param_5,char param_6,undefined4 param_7,undefined4 param_8)" (identifier "FUN_003c7760") (parameter_list "(undefined4 param_1,int *param_2,undefined4 param_3,undefined4 param_4,\n            undefined4 param_5,char param_6,undefined4 param_7,undefined4 param_8)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) (, ",") (parameter_declaration "undefined4 param_5" (type_identifier "undefined4") (identifier "param_5")) (, ",") (parameter_declaration "char param_6" (primitive_type "char") (identifier "param_6")) (, ",") (parameter_declaration "undefined4 param_7" (type_identifier "undefined4") (identifier "param_7")) (, ",") (parameter_declaration "undefined4 param_8" (type_identifier "undefined4") (identifier "param_8")) () ")"))) (compound_statement "{\n  if (*(code **)(*param_2 + 0x14) == (code *)PTR_FUN_005e9d84) {\n    FUN_003c74c0(param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8);\n    return param_1;\n  }\n  (**(code **)(*param_2 + 0x14))\n            (param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8);\n  return param_1;\n}" ({ "{") (if_statement "if (*(code **)(*param_2 + 0x14) == (code *)PTR_FUN_005e9d84) {\n    FUN_003c74c0(param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8);\n    return param_1;\n  }" (if "if") (parenthesized_expression "(*(code **)(*param_2 + 0x14) == (code *)PTR_FUN_005e9d84)" (( "(") (binary_expression "*(code **)(*param_2 + 0x14) == (code *)PTR_FUN_005e9d84" (pointer_expression "*(code **)(*param_2 + 0x14)" (* "*") (cast_expression "(code **)(*param_2 + 0x14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_2 + 0x14)" (( "(") (binary_expression "*param_2 + 0x14" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "0x14")) () ")")))) (== "==") (cast_expression "(code *)PTR_FUN_005e9d84" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_005e9d84"))) () ")")) (compound_statement "{\n    FUN_003c74c0(param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8);\n    return param_1;\n  }" ({ "{") (expression_statement "FUN_003c74c0(param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8);" (call_expression "FUN_003c74c0(param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8)" (identifier "FUN_003c74c0") (argument_list "(param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_4") (, ",") (identifier "param_5") (, ",") (cast_expression "(int)param_6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_6")) (, ",") (identifier "param_7") (, ",") (identifier "param_8") () ")"))) (; ";")) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}"))) (expression_statement "(**(code **)(*param_2 + 0x14))\n            (param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8);" (call_expression "(**(code **)(*param_2 + 0x14))\n            (param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8)" (parenthesized_expression "(**(code **)(*param_2 + 0x14))" (( "(") (pointer_expression "**(code **)(*param_2 + 0x14)" (* "*") (pointer_expression "*(code **)(*param_2 + 0x14)" (* "*") (cast_expression "(code **)(*param_2 + 0x14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_2 + 0x14)" (( "(") (binary_expression "*param_2 + 0x14" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (argument_list "(param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_4") (, ",") (identifier "param_5") (, ",") (cast_expression "(int)param_6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_6")) (, ",") (identifier "param_7") (, ",") (identifier "param_8") () ")"))) (; ";")) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.dx replaced with injection: get_pc_thunk_dx */
/* std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> >
   >::put(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, long long)
   const */

type_1
std::num_put<char,std::ostreambuf_iterator<char,std::char_traits<char>>>::put
          (type_1 param_1,int *param_2,type_1 param_3,type_1 param_4,type_1 param_5,
          char param_6,type_1 param_7,type_1 param_8)

{
  if (*(type_2 **)(*param_2 + 0x14) == (type_2 *)PTR_do_put_005e9d84) {
    _M_insert_int<long_long>(param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8);
    return param_1;
  }
  (**(type_2 **)(*param_2 + 0x14))
            (param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8);
  return param_1;
}


(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (identifier) (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) (identifier) (identifier)))) (return_statement (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (identifier) (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) (identifier) (identifier)))) (return_statement (identifier)))))

/* WARNING: Function: __i686.get_pc_thunk.dx replaced with injection: get_pc_thunk_dx */

undefined4
MASKED(undefined4 param_1,int *param_2,undefined4 param_3,undefined4 param_4,
            undefined4 param_5,char param_6,undefined4 param_7,undefined4 param_8)

{
  if (*(code **)(*param_2 + 0x14) == (code *)PTR_FUN_005e9d84) {
    FUN_003c74c0(param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8);
    return param_1;
  }
  (**(code **)(*param_2 + 0x14))
            (param_1,param_2,param_3,param_4,param_5,(int)param_6,param_7,param_8);
  return param_1;
}

