
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* stdio_sync_filebuf<wchar_t, std::char_traits<wchar_t> >::underflow() */

void __thiscall
stdio_sync_filebuf<wchar_t,std::char_traits<wchar_t>>::underflow
          (stdio_sync_filebuf<wchar_t,std::char_traits<wchar_t>> *this)

{
  wint_t __wc;
  
  __wc = getwc(*(__FILE **)(this + 0x20));
  ungetwc(__wc,*(__FILE **)(this + 0x20));
  return;
}



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

void FUN_001e2000(int param_1)

{
  wint_t __wc;
  
  __wc = getwc(*(__FILE **)(param_1 + 0x20));
  ungetwc(__wc,*(__FILE **)(param_1 + 0x20));
  return;
}


PUSH ESI
PUSH EBX
CALL 0x00035680
ADD EBX,0x15cff9
SUB ESP,0x10
MOV ESI,dword ptr [ESP + 0x1c]
PUSH dword ptr [ESI + 0x20]
CALL 0x000285b0
POP EDX
POP ECX
PUSH dword ptr [ESI + 0x20]
PUSH EAX
CALL 0x00028ad0
ADD ESP,0x14
POP EBX
POP ESI
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_001e2000(int param_1)\n\n{\n  wint_t __wc;\n  \n  __wc = getwc(*(__FILE **)(param_1 + 0x20));\n  ungetwc(__wc,*(__FILE **)(param_1 + 0x20));\n  return;\n}\n\n" comment (function_definition "void FUN_001e2000(int param_1)\n\n{\n  wint_t __wc;\n  \n  __wc = getwc(*(__FILE **)(param_1 + 0x20));\n  ungetwc(__wc,*(__FILE **)(param_1 + 0x20));\n  return;\n}" primitive_type (function_declarator "FUN_001e2000(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  wint_t __wc;\n  \n  __wc = getwc(*(__FILE **)(param_1 + 0x20));\n  ungetwc(__wc,*(__FILE **)(param_1 + 0x20));\n  return;\n}" { (declaration "wint_t __wc;" type_identifier identifier ;) (expression_statement "__wc = getwc(*(__FILE **)(param_1 + 0x20));" (assignment_expression "__wc = getwc(*(__FILE **)(param_1 + 0x20))" identifier = (call_expression "getwc(*(__FILE **)(param_1 + 0x20))" identifier (argument_list "(*(__FILE **)(param_1 + 0x20))" ( (pointer_expression "*(__FILE **)(param_1 + 0x20)" * (cast_expression "(__FILE **)(param_1 + 0x20)" ( (type_descriptor "__FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) )))) ;) (expression_statement "ungetwc(__wc,*(__FILE **)(param_1 + 0x20));" (call_expression "ungetwc(__wc,*(__FILE **)(param_1 + 0x20))" identifier (argument_list "(__wc,*(__FILE **)(param_1 + 0x20))" ( identifier , (pointer_expression "*(__FILE **)(param_1 + 0x20)" * (cast_expression "(__FILE **)(param_1 + 0x20)" ( (type_descriptor "__FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* stdio_sync_filebuf<wchar_t, std::char_traits<wchar_t> >::underflow() */\n\nvoid __thiscall\nstdio_sync_filebuf<wchar_t,std::char_traits<wchar_t>>::underflow\n          (stdio_sync_filebuf<wchar_t,std::char_traits<wchar_t>> *this)\n\n{\n  wint_t __wc;\n  \n  __wc = getwc(*(__FILE **)(this + 0x20));\n  ungetwc(__wc,*(__FILE **)(this + 0x20));\n  return;\n}\n\n" comment comment (declaration "void __thiscall\nstdio_sync_filebuf<wchar_t,std::char_traits<wchar_t>>::underflow\n          (stdio_sync_filebuf<wchar_t,std::char_traits<wchar_t>> *this)\n\n{\n  wint_t __wc;" primitive_type (ms_call_modifier "__thiscall" __thiscall) identifier (ERROR "<wchar_t" < identifier) , (ERROR "std::char_traits<wchar_t>>::underflow\n          (stdio_sync_filebuf<wchar_t,std::char_traits<wchar_t>> *this)\n\n{\n  wint_t" identifier : : identifier < identifier >> : : (function_declarator "underflow\n          (stdio_sync_filebuf<wchar_t,std::char_traits<wchar_t>> *this)" identifier (parameter_list "(stdio_sync_filebuf<wchar_t,std::char_traits<wchar_t>> *this)" ( (parameter_declaration "stdio_sync_filebuf<wchar_t" type_identifier (ERROR "<" <) identifier) , (parameter_declaration "std::char_traits<wchar_t>> *this" type_identifier (ERROR "::char_traits<wchar_t>>" : : identifier < identifier >>) (pointer_declarator "*this" * identifier)) ))) { identifier) identifier ;) (expression_statement "__wc = getwc(*(__FILE **)(this + 0x20));" (assignment_expression "__wc = getwc(*(__FILE **)(this + 0x20))" identifier = (call_expression "getwc(*(__FILE **)(this + 0x20))" identifier (argument_list "(*(__FILE **)(this + 0x20))" ( (pointer_expression "*(__FILE **)(this + 0x20)" * (cast_expression "(__FILE **)(this + 0x20)" ( (type_descriptor "__FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x20)" ( (binary_expression "this + 0x20" identifier + number_literal) )))) )))) ;) (expression_statement "ungetwc(__wc,*(__FILE **)(this + 0x20));" (call_expression "ungetwc(__wc,*(__FILE **)(this + 0x20))" identifier (argument_list "(__wc,*(__FILE **)(this + 0x20))" ( identifier , (pointer_expression "*(__FILE **)(this + 0x20)" * (cast_expression "(__FILE **)(this + 0x20)" ( (type_descriptor "__FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x20)" ( (binary_expression "this + 0x20" identifier + number_literal) )))) ))) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void FUN_001e2000(int param_1)\n\n{\n  wint_t __wc;\n  \n  __wc = getwc(*(__FILE **)(param_1 + 0x20));\n  ungetwc(__wc,*(__FILE **)(param_1 + 0x20));\n  return;\n}\n\n" (function_definition "void FUN_001e2000(int param_1)\n\n{\n  wint_t __wc;\n  \n  __wc = getwc(*(__FILE **)(param_1 + 0x20));\n  ungetwc(__wc,*(__FILE **)(param_1 + 0x20));\n  return;\n}" primitive_type (function_declarator "FUN_001e2000(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  wint_t __wc;\n  \n  __wc = getwc(*(__FILE **)(param_1 + 0x20));\n  ungetwc(__wc,*(__FILE **)(param_1 + 0x20));\n  return;\n}" { (declaration "wint_t __wc;" type_identifier identifier ;) (expression_statement "__wc = getwc(*(__FILE **)(param_1 + 0x20));" (assignment_expression "__wc = getwc(*(__FILE **)(param_1 + 0x20))" identifier = (call_expression "getwc(*(__FILE **)(param_1 + 0x20))" identifier (argument_list "(*(__FILE **)(param_1 + 0x20))" ( (pointer_expression "*(__FILE **)(param_1 + 0x20)" * (cast_expression "(__FILE **)(param_1 + 0x20)" ( (type_descriptor "__FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) )))) ;) (expression_statement "ungetwc(__wc,*(__FILE **)(param_1 + 0x20));" (call_expression "ungetwc(__wc,*(__FILE **)(param_1 + 0x20))" identifier (argument_list "(__wc,*(__FILE **)(param_1 + 0x20))" ( identifier , (pointer_expression "*(__FILE **)(param_1 + 0x20)" * (cast_expression "(__FILE **)(param_1 + 0x20)" ( (type_descriptor "__FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (return_statement return ;) })))
(function_definition "void FUN_001e2000(int param_1)\n\n{\n  wint_t __wc;\n  \n  __wc = getwc(*(__FILE **)(param_1 + 0x20));\n  ungetwc(__wc,*(__FILE **)(param_1 + 0x20));\n  return;\n}" (primitive_type "void") (function_declarator "FUN_001e2000(int param_1)" (identifier "FUN_001e2000") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  wint_t __wc;\n  \n  __wc = getwc(*(__FILE **)(param_1 + 0x20));\n  ungetwc(__wc,*(__FILE **)(param_1 + 0x20));\n  return;\n}" ({ "{") (declaration "wint_t __wc;" (type_identifier "wint_t") (identifier "__wc") (; ";")) (expression_statement "__wc = getwc(*(__FILE **)(param_1 + 0x20));" (assignment_expression "__wc = getwc(*(__FILE **)(param_1 + 0x20))" (identifier "__wc") (= "=") (call_expression "getwc(*(__FILE **)(param_1 + 0x20))" (identifier "getwc") (argument_list "(*(__FILE **)(param_1 + 0x20))" (( "(") (pointer_expression "*(__FILE **)(param_1 + 0x20)" (* "*") (cast_expression "(__FILE **)(param_1 + 0x20)" (( "(") (type_descriptor "__FILE **" (type_identifier "__FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) () ")")))) (; ";")) (expression_statement "ungetwc(__wc,*(__FILE **)(param_1 + 0x20));" (call_expression "ungetwc(__wc,*(__FILE **)(param_1 + 0x20))" (identifier "ungetwc") (argument_list "(__wc,*(__FILE **)(param_1 + 0x20))" (( "(") (identifier "__wc") (, ",") (pointer_expression "*(__FILE **)(param_1 + 0x20)" (* "*") (cast_expression "(__FILE **)(param_1 + 0x20)" (( "(") (type_descriptor "__FILE **" (type_identifier "__FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* stdio_sync_filebuf<wchar_t, std::char_traits<wchar_t> >::underflow() */

void __thiscall
stdio_sync_filebuf<wchar_t,std::char_traits<wchar_t>>::underflow
          (stdio_sync_filebuf<wchar_t,std::char_traits<wchar_t>> *var_2)

{
  wint_t __wc;
  
  __wc = var_1(*(type_1 **)(var_2 + 0x20));
  var_3(__wc,*(type_1 **)(var_2 + 0x20));
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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: (identifier) right: (number_literal))))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (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: (identifier) right: (number_literal)))))))) (return_statement))))

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

void MASKED(int param_1)

{
  wint_t __wc;
  
  __wc = getwc(*(__FILE **)(param_1 + 0x20));
  ungetwc(__wc,*(__FILE **)(param_1 + 0x20));
  return;
}

