
/* std::wstring::replace(unsigned long, unsigned long, wchar_t const*) */

void __thiscall std::wstring::replace(wstring *this,ulong param_1,ulong param_2,wchar_t *param_3)

{
  size_t sVar1;
  
  sVar1 = wcslen(param_3);
  replace(this,param_1,param_2,param_3,sVar1);
  return;
}



void FUN_003b5590(undefined8 param_1,undefined8 param_2,undefined8 param_3,wchar_t *param_4)

{
  size_t sVar1;
  
  sVar1 = wcslen(param_4);
  FUN_003b5350(param_1,param_2,param_3,param_4,sVar1);
  return;
}


PUSH R13
MOV R13,RDX
PUSH R12
MOV R12,RSI
PUSH RBP
MOV RBP,RDI
MOV RDI,RCX
PUSH RBX
MOV RBX,RCX
SUB RSP,0x8
CALL 0x00150150
ADD RSP,0x8
MOV RCX,RBX
MOV RDX,R13
POP RBX
MOV RSI,R12
MOV RDI,RBP
MOV R8,RAX
POP RBP
POP R12
POP R13
JMP 0x003b5350
(translation_unit "void FUN_003b5590(undefined8 param_1,undefined8 param_2,undefined8 param_3,wchar_t *param_4)\n\n{\n  size_t sVar1;\n  \n  sVar1 = wcslen(param_4);\n  FUN_003b5350(param_1,param_2,param_3,param_4,sVar1);\n  return;\n}\n\n" (function_definition "void FUN_003b5590(undefined8 param_1,undefined8 param_2,undefined8 param_3,wchar_t *param_4)\n\n{\n  size_t sVar1;\n  \n  sVar1 = wcslen(param_4);\n  FUN_003b5350(param_1,param_2,param_3,param_4,sVar1);\n  return;\n}" primitive_type (function_declarator "FUN_003b5590(undefined8 param_1,undefined8 param_2,undefined8 param_3,wchar_t *param_4)" identifier (parameter_list "(undefined8 param_1,undefined8 param_2,undefined8 param_3,wchar_t *param_4)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "wchar_t *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  size_t sVar1;\n  \n  sVar1 = wcslen(param_4);\n  FUN_003b5350(param_1,param_2,param_3,param_4,sVar1);\n  return;\n}" { (declaration "size_t sVar1;" primitive_type identifier ;) (expression_statement "sVar1 = wcslen(param_4);" (assignment_expression "sVar1 = wcslen(param_4)" identifier = (call_expression "wcslen(param_4)" identifier (argument_list "(param_4)" ( identifier )))) ;) (expression_statement "FUN_003b5350(param_1,param_2,param_3,param_4,sVar1);" (call_expression "FUN_003b5350(param_1,param_2,param_3,param_4,sVar1)" identifier (argument_list "(param_1,param_2,param_3,param_4,sVar1)" ( identifier , identifier , identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* std::wstring::replace(unsigned long, unsigned long, wchar_t const*) */\n\nvoid __thiscall std::wstring::replace(wstring *this,ulong param_1,ulong param_2,wchar_t *param_3)\n\n{\n  size_t sVar1;\n  \n  sVar1 = wcslen(param_3);\n  replace(this,param_1,param_2,param_3,sVar1);\n  return;\n}\n\n" comment (function_definition "void __thiscall std::wstring::replace(wstring *this,ulong param_1,ulong param_2,wchar_t *param_3)\n\n{\n  size_t sVar1;\n  \n  sVar1 = wcslen(param_3);\n  replace(this,param_1,param_2,param_3,sVar1);\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "std::wstring::" identifier : : identifier : :) (function_declarator "replace(wstring *this,ulong param_1,ulong param_2,wchar_t *param_3)" identifier (parameter_list "(wstring *this,ulong param_1,ulong param_2,wchar_t *param_3)" ( (parameter_declaration "wstring *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "ulong param_1" type_identifier identifier) , (parameter_declaration "ulong param_2" type_identifier identifier) , (parameter_declaration "wchar_t *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  size_t sVar1;\n  \n  sVar1 = wcslen(param_3);\n  replace(this,param_1,param_2,param_3,sVar1);\n  return;\n}" { (declaration "size_t sVar1;" primitive_type identifier ;) (expression_statement "sVar1 = wcslen(param_3);" (assignment_expression "sVar1 = wcslen(param_3)" identifier = (call_expression "wcslen(param_3)" identifier (argument_list "(param_3)" ( identifier )))) ;) (expression_statement "replace(this,param_1,param_2,param_3,sVar1);" (call_expression "replace(this,param_1,param_2,param_3,sVar1)" identifier (argument_list "(this,param_1,param_2,param_3,sVar1)" ( identifier , identifier , identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_003b5590(undefined8 param_1,undefined8 param_2,undefined8 param_3,wchar_t *param_4)\n\n{\n  size_t sVar1;\n  \n  sVar1 = wcslen(param_4);\n  FUN_003b5350(param_1,param_2,param_3,param_4,sVar1);\n  return;\n}\n\n" (function_definition "void FUN_003b5590(undefined8 param_1,undefined8 param_2,undefined8 param_3,wchar_t *param_4)\n\n{\n  size_t sVar1;\n  \n  sVar1 = wcslen(param_4);\n  FUN_003b5350(param_1,param_2,param_3,param_4,sVar1);\n  return;\n}" primitive_type (function_declarator "FUN_003b5590(undefined8 param_1,undefined8 param_2,undefined8 param_3,wchar_t *param_4)" identifier (parameter_list "(undefined8 param_1,undefined8 param_2,undefined8 param_3,wchar_t *param_4)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "wchar_t *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  size_t sVar1;\n  \n  sVar1 = wcslen(param_4);\n  FUN_003b5350(param_1,param_2,param_3,param_4,sVar1);\n  return;\n}" { (declaration "size_t sVar1;" primitive_type identifier ;) (expression_statement "sVar1 = wcslen(param_4);" (assignment_expression "sVar1 = wcslen(param_4)" identifier = (call_expression "wcslen(param_4)" identifier (argument_list "(param_4)" ( identifier )))) ;) (expression_statement "FUN_003b5350(param_1,param_2,param_3,param_4,sVar1);" (call_expression "FUN_003b5350(param_1,param_2,param_3,param_4,sVar1)" identifier (argument_list "(param_1,param_2,param_3,param_4,sVar1)" ( identifier , identifier , identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) (return_statement return ;) })))
(function_definition "void FUN_003b5590(undefined8 param_1,undefined8 param_2,undefined8 param_3,wchar_t *param_4)\n\n{\n  size_t sVar1;\n  \n  sVar1 = wcslen(param_4);\n  FUN_003b5350(param_1,param_2,param_3,param_4,sVar1);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_003b5590(undefined8 param_1,undefined8 param_2,undefined8 param_3,wchar_t *param_4)" (identifier "FUN_003b5590") (parameter_list "(undefined8 param_1,undefined8 param_2,undefined8 param_3,wchar_t *param_4)" (( "(") (parameter_declaration "undefined8 param_1" (type_identifier "undefined8") (identifier "param_1")) (, ",") (parameter_declaration "undefined8 param_2" (type_identifier "undefined8") (identifier "param_2")) (, ",") (parameter_declaration "undefined8 param_3" (type_identifier "undefined8") (identifier "param_3")) (, ",") (parameter_declaration "wchar_t *param_4" (type_identifier "wchar_t") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) () ")"))) (compound_statement "{\n  size_t sVar1;\n  \n  sVar1 = wcslen(param_4);\n  FUN_003b5350(param_1,param_2,param_3,param_4,sVar1);\n  return;\n}" ({ "{") (declaration "size_t sVar1;" (primitive_type "size_t") (identifier "sVar1") (; ";")) (expression_statement "sVar1 = wcslen(param_4);" (assignment_expression "sVar1 = wcslen(param_4)" (identifier "sVar1") (= "=") (call_expression "wcslen(param_4)" (identifier "wcslen") (argument_list "(param_4)" (( "(") (identifier "param_4") () ")")))) (; ";")) (expression_statement "FUN_003b5350(param_1,param_2,param_3,param_4,sVar1);" (call_expression "FUN_003b5350(param_1,param_2,param_3,param_4,sVar1)" (identifier "FUN_003b5350") (argument_list "(param_1,param_2,param_3,param_4,sVar1)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_4") (, ",") (identifier "sVar1") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* std::wstring::replace(unsigned long, unsigned long, wchar_t const*) */

void __thiscall std::type_1::function_1(type_1 *this,type_2 param_1,type_2 param_2,type_3 *param_3)

{
  size_t sVar1;
  
  sVar1 = var_1(param_3);
  function_1(this,param_1,param_2,param_3,sVar1);
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (identifier)))) (return_statement))))

void MASKED(undefined8 param_1,undefined8 param_2,undefined8 param_3,wchar_t *param_4)

{
  size_t sVar1;
  
  sVar1 = wcslen(param_4);
  FUN_003b5350(param_1,param_2,param_3,param_4,sVar1);
  return;
}

