
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* std::string::_M_replace_aux(unsigned int, unsigned int, unsigned int, char) */

void std::string::_M_replace_aux(uint param_1,uint param_2,uint param_3,char param_4)

{
}



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

int * FUN_00280600(int *param_1,int param_2,int param_3,uint param_4,char param_5)

{
  if ((uint)((param_3 + 0x3ffffffc) - *(int *)(*param_1 + -0xc)) < param_4) {
                    /* WARNING: Subroutine does not return */
    FUN_0028dc10("basic_string::_M_replace_aux");
  }
  FUN_00280000(param_1,param_2,param_3,param_4);
  if (param_4 != 0) {
    if (param_4 == 1) {
      *(char *)(*param_1 + param_2) = param_5;
      return param_1;
    }
    memset((char *)(*param_1 + param_2),(int)param_5,param_4);
  }
  return param_1;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x0003a210
ADD EBX,0x1939f7
SUB ESP,0xc
MOV EDI,dword ptr [ESP + 0x20]
MOV EDX,dword ptr [ESP + 0x28]
MOV ESI,dword ptr [ESP + 0x2c]
MOV EBP,dword ptr [ESP + 0x30]
MOV ECX,dword ptr [EDI]
LEA EAX,[EDX + 0x3ffffffc]
SUB EAX,dword ptr [ECX + -0xc]
CMP ESI,EAX
JA 0x0028067e
PUSH ESI
PUSH EDX
PUSH dword ptr [ESP + 0x2c]
PUSH EDI
CALL 0x00280000
ADD ESP,0x10
TEST ESI,ESI
JZ 0x00280662
MOV EAX,dword ptr [EDI]
ADD EAX,dword ptr [ESP + 0x24]
CMP ESI,0x1
JZ 0x00280670
MOV ECX,EBP
SUB ESP,0x4
MOVSX EBP,CL
PUSH ESI
PUSH EBP
PUSH EAX
CALL 0x0002c8f0
ADD ESP,0x10
ADD ESP,0xc
MOV EAX,EDI
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV ECX,EBP
MOV byte ptr [EAX],CL
ADD ESP,0xc
MOV EAX,EDI
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0xc
LEA EAX,[EBX + 0xfff01e60]
PUSH EAX
CALL 0x0028dc10
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint * FUN_00280600(int *param_1,int param_2,int param_3,uint param_4,char param_5)\n\n{\n  if ((uint)((param_3 + 0x3ffffffc) - *(int *)(*param_1 + -0xc)) < param_4) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0028dc10("basic_string::_M_replace_aux");\n  }\n  FUN_00280000(param_1,param_2,param_3,param_4);\n  if (param_4 != 0) {\n    if (param_4 == 1) {\n      *(char *)(*param_1 + param_2) = param_5;\n      return param_1;\n    }\n    memset((char *)(*param_1 + param_2),(int)param_5,param_4);\n  }\n  return param_1;\n}\n\n" comment (function_definition "int * FUN_00280600(int *param_1,int param_2,int param_3,uint param_4,char param_5)\n\n{\n  if ((uint)((param_3 + 0x3ffffffc) - *(int *)(*param_1 + -0xc)) < param_4) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0028dc10("basic_string::_M_replace_aux");\n  }\n  FUN_00280000(param_1,param_2,param_3,param_4);\n  if (param_4 != 0) {\n    if (param_4 == 1) {\n      *(char *)(*param_1 + param_2) = param_5;\n      return param_1;\n    }\n    memset((char *)(*param_1 + param_2),(int)param_5,param_4);\n  }\n  return param_1;\n}" primitive_type (pointer_declarator "* FUN_00280600(int *param_1,int param_2,int param_3,uint param_4,char param_5)" * (function_declarator "FUN_00280600(int *param_1,int param_2,int param_3,uint param_4,char param_5)" identifier (parameter_list "(int *param_1,int param_2,int param_3,uint param_4,char param_5)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "uint param_4" type_identifier identifier) , (parameter_declaration "char param_5" primitive_type identifier) )))) (compound_statement "{\n  if ((uint)((param_3 + 0x3ffffffc) - *(int *)(*param_1 + -0xc)) < param_4) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0028dc10("basic_string::_M_replace_aux");\n  }\n  FUN_00280000(param_1,param_2,param_3,param_4);\n  if (param_4 != 0) {\n    if (param_4 == 1) {\n      *(char *)(*param_1 + param_2) = param_5;\n      return param_1;\n    }\n    memset((char *)(*param_1 + param_2),(int)param_5,param_4);\n  }\n  return param_1;\n}" { (if_statement "if ((uint)((param_3 + 0x3ffffffc) - *(int *)(*param_1 + -0xc)) < param_4) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0028dc10("basic_string::_M_replace_aux");\n  }" if (parenthesized_expression "((uint)((param_3 + 0x3ffffffc) - *(int *)(*param_1 + -0xc)) < param_4)" ( (binary_expression "(uint)((param_3 + 0x3ffffffc) - *(int *)(*param_1 + -0xc)) < param_4" (call_expression "(uint)((param_3 + 0x3ffffffc) - *(int *)(*param_1 + -0xc))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((param_3 + 0x3ffffffc) - *(int *)(*param_1 + -0xc))" ( (binary_expression "(param_3 + 0x3ffffffc) - *(int *)(*param_1 + -0xc)" (parenthesized_expression "(param_3 + 0x3ffffffc)" ( (binary_expression "param_3 + 0x3ffffffc" identifier + number_literal) )) - (pointer_expression "*(int *)(*param_1 + -0xc)" * (cast_expression "(int *)(*param_1 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + -0xc)" ( (binary_expression "*param_1 + -0xc" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ))) < identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0028dc10("basic_string::_M_replace_aux");\n  }" { comment (expression_statement "FUN_0028dc10("basic_string::_M_replace_aux");" (call_expression "FUN_0028dc10("basic_string::_M_replace_aux")" identifier (argument_list "("basic_string::_M_replace_aux")" ( (string_literal ""basic_string::_M_replace_aux"" " string_content ") ))) ;) })) (expression_statement "FUN_00280000(param_1,param_2,param_3,param_4);" (call_expression "FUN_00280000(param_1,param_2,param_3,param_4)" identifier (argument_list "(param_1,param_2,param_3,param_4)" ( identifier , identifier , identifier , identifier ))) ;) (if_statement "if (param_4 != 0) {\n    if (param_4 == 1) {\n      *(char *)(*param_1 + param_2) = param_5;\n      return param_1;\n    }\n    memset((char *)(*param_1 + param_2),(int)param_5,param_4);\n  }" if (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) )) (compound_statement "{\n    if (param_4 == 1) {\n      *(char *)(*param_1 + param_2) = param_5;\n      return param_1;\n    }\n    memset((char *)(*param_1 + param_2),(int)param_5,param_4);\n  }" { (if_statement "if (param_4 == 1) {\n      *(char *)(*param_1 + param_2) = param_5;\n      return param_1;\n    }" if (parenthesized_expression "(param_4 == 1)" ( (binary_expression "param_4 == 1" identifier == number_literal) )) (compound_statement "{\n      *(char *)(*param_1 + param_2) = param_5;\n      return param_1;\n    }" { (expression_statement "*(char *)(*param_1 + param_2) = param_5;" (assignment_expression "*(char *)(*param_1 + param_2) = param_5" (pointer_expression "*(char *)(*param_1 + param_2)" * (cast_expression "(char *)(*param_1 + param_2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + param_2)" ( (binary_expression "*param_1 + param_2" (pointer_expression "*param_1" * identifier) + identifier) )))) = identifier) ;) (return_statement "return param_1;" return identifier ;) })) (expression_statement "memset((char *)(*param_1 + param_2),(int)param_5,param_4);" (call_expression "memset((char *)(*param_1 + param_2),(int)param_5,param_4)" identifier (argument_list "((char *)(*param_1 + param_2),(int)param_5,param_4)" ( (cast_expression "(char *)(*param_1 + param_2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + param_2)" ( (binary_expression "*param_1 + param_2" (pointer_expression "*param_1" * identifier) + identifier) ))) , (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) , identifier ))) ;) })) (return_statement "return param_1;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* std::string::_M_replace_aux(unsigned int, unsigned int, unsigned int, char) */\n\nvoid std::string::_M_replace_aux(uint param_1,uint param_2,uint param_3,char param_4)\n\n{\n}\n\n" comment comment (function_definition "void std::string::_M_replace_aux(uint param_1,uint param_2,uint param_3,char param_4)\n\n{\n}" primitive_type (ERROR "std::string::" identifier : : identifier : :) (function_declarator "_M_replace_aux(uint param_1,uint param_2,uint param_3,char param_4)" identifier (parameter_list "(uint param_1,uint param_2,uint param_3,char param_4)" ( (parameter_declaration "uint param_1" type_identifier identifier) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "char param_4" primitive_type identifier) ))) (compound_statement "{\n}" { })))
(translation_unit "int * FUN_00280600(int *param_1,int param_2,int param_3,uint param_4,char param_5)\n\n{\n  if ((uint)((param_3 + 0x3ffffffc) - *(int *)(*param_1 + -0xc)) < param_4) {\n                    \n    FUN_0028dc10("basic_string::_M_replace_aux");\n  }\n  FUN_00280000(param_1,param_2,param_3,param_4);\n  if (param_4 != 0) {\n    if (param_4 == 1) {\n      *(char *)(*param_1 + param_2) = param_5;\n      return param_1;\n    }\n    memset((char *)(*param_1 + param_2),(int)param_5,param_4);\n  }\n  return param_1;\n}\n\n" (function_definition "int * FUN_00280600(int *param_1,int param_2,int param_3,uint param_4,char param_5)\n\n{\n  if ((uint)((param_3 + 0x3ffffffc) - *(int *)(*param_1 + -0xc)) < param_4) {\n                    \n    FUN_0028dc10("basic_string::_M_replace_aux");\n  }\n  FUN_00280000(param_1,param_2,param_3,param_4);\n  if (param_4 != 0) {\n    if (param_4 == 1) {\n      *(char *)(*param_1 + param_2) = param_5;\n      return param_1;\n    }\n    memset((char *)(*param_1 + param_2),(int)param_5,param_4);\n  }\n  return param_1;\n}" primitive_type (pointer_declarator "* FUN_00280600(int *param_1,int param_2,int param_3,uint param_4,char param_5)" * (function_declarator "FUN_00280600(int *param_1,int param_2,int param_3,uint param_4,char param_5)" identifier (parameter_list "(int *param_1,int param_2,int param_3,uint param_4,char param_5)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "uint param_4" type_identifier identifier) , (parameter_declaration "char param_5" primitive_type identifier) )))) (compound_statement "{\n  if ((uint)((param_3 + 0x3ffffffc) - *(int *)(*param_1 + -0xc)) < param_4) {\n                    \n    FUN_0028dc10("basic_string::_M_replace_aux");\n  }\n  FUN_00280000(param_1,param_2,param_3,param_4);\n  if (param_4 != 0) {\n    if (param_4 == 1) {\n      *(char *)(*param_1 + param_2) = param_5;\n      return param_1;\n    }\n    memset((char *)(*param_1 + param_2),(int)param_5,param_4);\n  }\n  return param_1;\n}" { (if_statement "if ((uint)((param_3 + 0x3ffffffc) - *(int *)(*param_1 + -0xc)) < param_4) {\n                    \n    FUN_0028dc10("basic_string::_M_replace_aux");\n  }" if (parenthesized_expression "((uint)((param_3 + 0x3ffffffc) - *(int *)(*param_1 + -0xc)) < param_4)" ( (binary_expression "(uint)((param_3 + 0x3ffffffc) - *(int *)(*param_1 + -0xc)) < param_4" (call_expression "(uint)((param_3 + 0x3ffffffc) - *(int *)(*param_1 + -0xc))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((param_3 + 0x3ffffffc) - *(int *)(*param_1 + -0xc))" ( (binary_expression "(param_3 + 0x3ffffffc) - *(int *)(*param_1 + -0xc)" (parenthesized_expression "(param_3 + 0x3ffffffc)" ( (binary_expression "param_3 + 0x3ffffffc" identifier + number_literal) )) - (pointer_expression "*(int *)(*param_1 + -0xc)" * (cast_expression "(int *)(*param_1 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + -0xc)" ( (binary_expression "*param_1 + -0xc" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ))) < identifier) )) (compound_statement "{\n                    \n    FUN_0028dc10("basic_string::_M_replace_aux");\n  }" { (expression_statement "FUN_0028dc10("basic_string::_M_replace_aux");" (call_expression "FUN_0028dc10("basic_string::_M_replace_aux")" identifier (argument_list "("basic_string::_M_replace_aux")" ( (string_literal ""basic_string::_M_replace_aux"" " string_content ") ))) ;) })) (expression_statement "FUN_00280000(param_1,param_2,param_3,param_4);" (call_expression "FUN_00280000(param_1,param_2,param_3,param_4)" identifier (argument_list "(param_1,param_2,param_3,param_4)" ( identifier , identifier , identifier , identifier ))) ;) (if_statement "if (param_4 != 0) {\n    if (param_4 == 1) {\n      *(char *)(*param_1 + param_2) = param_5;\n      return param_1;\n    }\n    memset((char *)(*param_1 + param_2),(int)param_5,param_4);\n  }" if (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) )) (compound_statement "{\n    if (param_4 == 1) {\n      *(char *)(*param_1 + param_2) = param_5;\n      return param_1;\n    }\n    memset((char *)(*param_1 + param_2),(int)param_5,param_4);\n  }" { (if_statement "if (param_4 == 1) {\n      *(char *)(*param_1 + param_2) = param_5;\n      return param_1;\n    }" if (parenthesized_expression "(param_4 == 1)" ( (binary_expression "param_4 == 1" identifier == number_literal) )) (compound_statement "{\n      *(char *)(*param_1 + param_2) = param_5;\n      return param_1;\n    }" { (expression_statement "*(char *)(*param_1 + param_2) = param_5;" (assignment_expression "*(char *)(*param_1 + param_2) = param_5" (pointer_expression "*(char *)(*param_1 + param_2)" * (cast_expression "(char *)(*param_1 + param_2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + param_2)" ( (binary_expression "*param_1 + param_2" (pointer_expression "*param_1" * identifier) + identifier) )))) = identifier) ;) (return_statement "return param_1;" return identifier ;) })) (expression_statement "memset((char *)(*param_1 + param_2),(int)param_5,param_4);" (call_expression "memset((char *)(*param_1 + param_2),(int)param_5,param_4)" identifier (argument_list "((char *)(*param_1 + param_2),(int)param_5,param_4)" ( (cast_expression "(char *)(*param_1 + param_2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + param_2)" ( (binary_expression "*param_1 + param_2" (pointer_expression "*param_1" * identifier) + identifier) ))) , (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier) , identifier ))) ;) })) (return_statement "return param_1;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * 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 (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ))) < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + IDENT) )))) = IDENT) ;) (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + IDENT) ))) , (cast_expression ( (type_descriptor TYPE) ) IDENT) , IDENT ))) ;) })) (return_statement return IDENT ;) })))
(function_definition "int * FUN_00280600(int *param_1,int param_2,int param_3,uint param_4,char param_5)\n\n{\n  if ((uint)((param_3 + 0x3ffffffc) - *(int *)(*param_1 + -0xc)) < param_4) {\n                    \n    FUN_0028dc10("basic_string::_M_replace_aux");\n  }\n  FUN_00280000(param_1,param_2,param_3,param_4);\n  if (param_4 != 0) {\n    if (param_4 == 1) {\n      *(char *)(*param_1 + param_2) = param_5;\n      return param_1;\n    }\n    memset((char *)(*param_1 + param_2),(int)param_5,param_4);\n  }\n  return param_1;\n}" (primitive_type "int") (pointer_declarator "* FUN_00280600(int *param_1,int param_2,int param_3,uint param_4,char param_5)" (* "*") (function_declarator "FUN_00280600(int *param_1,int param_2,int param_3,uint param_4,char param_5)" (identifier "FUN_00280600") (parameter_list "(int *param_1,int param_2,int param_3,uint param_4,char param_5)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "uint param_4" (type_identifier "uint") (identifier "param_4")) (, ",") (parameter_declaration "char param_5" (primitive_type "char") (identifier "param_5")) () ")")))) (compound_statement "{\n  if ((uint)((param_3 + 0x3ffffffc) - *(int *)(*param_1 + -0xc)) < param_4) {\n                    \n    FUN_0028dc10("basic_string::_M_replace_aux");\n  }\n  FUN_00280000(param_1,param_2,param_3,param_4);\n  if (param_4 != 0) {\n    if (param_4 == 1) {\n      *(char *)(*param_1 + param_2) = param_5;\n      return param_1;\n    }\n    memset((char *)(*param_1 + param_2),(int)param_5,param_4);\n  }\n  return param_1;\n}" ({ "{") (if_statement "if ((uint)((param_3 + 0x3ffffffc) - *(int *)(*param_1 + -0xc)) < param_4) {\n                    \n    FUN_0028dc10("basic_string::_M_replace_aux");\n  }" (if "if") (parenthesized_expression "((uint)((param_3 + 0x3ffffffc) - *(int *)(*param_1 + -0xc)) < param_4)" (( "(") (binary_expression "(uint)((param_3 + 0x3ffffffc) - *(int *)(*param_1 + -0xc)) < param_4" (call_expression "(uint)((param_3 + 0x3ffffffc) - *(int *)(*param_1 + -0xc))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((param_3 + 0x3ffffffc) - *(int *)(*param_1 + -0xc))" (( "(") (binary_expression "(param_3 + 0x3ffffffc) - *(int *)(*param_1 + -0xc)" (parenthesized_expression "(param_3 + 0x3ffffffc)" (( "(") (binary_expression "param_3 + 0x3ffffffc" (identifier "param_3") (+ "+") (number_literal "0x3ffffffc")) () ")")) (- "-") (pointer_expression "*(int *)(*param_1 + -0xc)" (* "*") (cast_expression "(int *)(*param_1 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + -0xc)" (( "(") (binary_expression "*param_1 + -0xc" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "-0xc")) () ")"))))) () ")"))) (< "<") (identifier "param_4")) () ")")) (compound_statement "{\n                    \n    FUN_0028dc10("basic_string::_M_replace_aux");\n  }" ({ "{") (expression_statement "FUN_0028dc10("basic_string::_M_replace_aux");" (call_expression "FUN_0028dc10("basic_string::_M_replace_aux")" (identifier "FUN_0028dc10") (argument_list "("basic_string::_M_replace_aux")" (( "(") (string_literal ""basic_string::_M_replace_aux"" (" """) (string_content "basic_string::_M_replace_aux") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00280000(param_1,param_2,param_3,param_4);" (call_expression "FUN_00280000(param_1,param_2,param_3,param_4)" (identifier "FUN_00280000") (argument_list "(param_1,param_2,param_3,param_4)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_4") () ")"))) (; ";")) (if_statement "if (param_4 != 0) {\n    if (param_4 == 1) {\n      *(char *)(*param_1 + param_2) = param_5;\n      return param_1;\n    }\n    memset((char *)(*param_1 + param_2),(int)param_5,param_4);\n  }" (if "if") (parenthesized_expression "(param_4 != 0)" (( "(") (binary_expression "param_4 != 0" (identifier "param_4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if (param_4 == 1) {\n      *(char *)(*param_1 + param_2) = param_5;\n      return param_1;\n    }\n    memset((char *)(*param_1 + param_2),(int)param_5,param_4);\n  }" ({ "{") (if_statement "if (param_4 == 1) {\n      *(char *)(*param_1 + param_2) = param_5;\n      return param_1;\n    }" (if "if") (parenthesized_expression "(param_4 == 1)" (( "(") (binary_expression "param_4 == 1" (identifier "param_4") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n      *(char *)(*param_1 + param_2) = param_5;\n      return param_1;\n    }" ({ "{") (expression_statement "*(char *)(*param_1 + param_2) = param_5;" (assignment_expression "*(char *)(*param_1 + param_2) = param_5" (pointer_expression "*(char *)(*param_1 + param_2)" (* "*") (cast_expression "(char *)(*param_1 + param_2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + param_2)" (( "(") (binary_expression "*param_1 + param_2" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (identifier "param_2")) () ")")))) (= "=") (identifier "param_5")) (; ";")) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}"))) (expression_statement "memset((char *)(*param_1 + param_2),(int)param_5,param_4);" (call_expression "memset((char *)(*param_1 + param_2),(int)param_5,param_4)" (identifier "memset") (argument_list "((char *)(*param_1 + param_2),(int)param_5,param_4)" (( "(") (cast_expression "(char *)(*param_1 + param_2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + param_2)" (( "(") (binary_expression "*param_1 + param_2" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (identifier "param_2")) () ")"))) (, ",") (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5")) (, ",") (identifier "param_4") () ")"))) (; ";")) (} "}"))) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* std::string::_M_replace_aux(unsigned int, unsigned int, unsigned int, char) */

void std::string::function_1(type_1 param_1,type_1 param_2,type_1 param_3,char param_4)

{
}


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

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

int * MASKED(int *param_1,int param_2,int param_3,uint param_4,char param_5)

{
  if ((uint)((param_3 + 0x3ffffffc) - *(int *)(*param_1 + -0xc)) < param_4) {
                    /* WARNING: Subroutine does not return */
    FUN_0028dc10("basic_string::_M_replace_aux");
  }
  FUN_00280000(param_1,param_2,param_3,param_4);
  if (param_4 != 0) {
    if (param_4 == 1) {
      *(char *)(*param_1 + param_2) = param_5;
      return param_1;
    }
    memset((char *)(*param_1 + param_2),(int)param_5,param_4);
  }
  return param_1;
}

