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

void __thiscall std::string::resize(string *this,uint param_1,char param_2)

{
  uint uVar1;
  
  uVar1 = *(uint *)(*(int *)this + -0xc);
  if (0x3ffffffc < param_1) {
                    /* WARNING: Subroutine does not return */
    __throw_length_error("basic_string::resize");
  }
  if (uVar1 > param_1 || param_1 == uVar1) {
    if (uVar1 <= param_1) {
      return;
    }
    _M_mutate(this,param_1,uVar1 - param_1,0);
    return;
  }
  append(this,param_1 - uVar1,param_2);
  return;
}



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

void FUN_001b99d0(int *param_1,uint param_2,char param_3)

{
  uint uVar1;
  
  uVar1 = *(uint *)(*param_1 + -0xc);
  if (0x3ffffffc < param_2) {
                    /* WARNING: Subroutine does not return */
    FUN_001c6190("basic_string::resize");
  }
  if (uVar1 > param_2 || param_2 == uVar1) {
    if (uVar1 <= param_2) {
      return;
    }
    FUN_001b8580(param_1,param_2,uVar1 - param_2,0);
    return;
  }
  FUN_001b9910(param_1,param_2 - uVar1,(int)param_3);
  return;
}


PUSH EDI
PUSH ESI
PUSH EBX
MOV EDI,dword ptr [ESP + 0x10]
CALL 0x00032730
ADD EBX,0x148624
MOV EAX,dword ptr [ESP + 0x14]
MOV ESI,dword ptr [ESP + 0x18]
MOV EDX,dword ptr [EDI]
MOV EDX,dword ptr [EDX + -0xc]
CMP EAX,0x3ffffffc
JA 0x001b9a31
CMP EAX,EDX
JA 0x001b9a18
JC 0x001b9a00
POP EBX
POP ESI
POP EDI
RET
SUB EDX,EAX
PUSH 0x0
PUSH EDX
PUSH EAX
PUSH EDI
CALL 0x001b8580
ADD ESP,0x10
POP EBX
POP ESI
POP EDI
RET
MOV ECX,ESI
SUB ESP,0x4
SUB EAX,EDX
MOVSX ESI,CL
PUSH ESI
PUSH EAX
PUSH EDI
CALL 0x001b9910
ADD ESP,0x10
POP EBX
POP ESI
POP EDI
RET
SUB ESP,0xc
LEA EAX,[EBX + 0xfff39529]
PUSH EAX
CALL 0x001c6190
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_001b99d0(int *param_1,uint param_2,char param_3)\n\n{\n  uint uVar1;\n  \n  uVar1 = *(uint *)(*param_1 + -0xc);\n  if (0x3ffffffc < param_2) {\n                    /* WARNING: Subroutine does not return */\n    FUN_001c6190("basic_string::resize");\n  }\n  if (uVar1 > param_2 || param_2 == uVar1) {\n    if (uVar1 <= param_2) {\n      return;\n    }\n    FUN_001b8580(param_1,param_2,uVar1 - param_2,0);\n    return;\n  }\n  FUN_001b9910(param_1,param_2 - uVar1,(int)param_3);\n  return;\n}\n\n" comment (function_definition "void FUN_001b99d0(int *param_1,uint param_2,char param_3)\n\n{\n  uint uVar1;\n  \n  uVar1 = *(uint *)(*param_1 + -0xc);\n  if (0x3ffffffc < param_2) {\n                    /* WARNING: Subroutine does not return */\n    FUN_001c6190("basic_string::resize");\n  }\n  if (uVar1 > param_2 || param_2 == uVar1) {\n    if (uVar1 <= param_2) {\n      return;\n    }\n    FUN_001b8580(param_1,param_2,uVar1 - param_2,0);\n    return;\n  }\n  FUN_001b9910(param_1,param_2 - uVar1,(int)param_3);\n  return;\n}" primitive_type (function_declarator "FUN_001b99d0(int *param_1,uint param_2,char param_3)" identifier (parameter_list "(int *param_1,uint param_2,char param_3)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "char param_3" primitive_type identifier) ))) (compound_statement "{\n  uint uVar1;\n  \n  uVar1 = *(uint *)(*param_1 + -0xc);\n  if (0x3ffffffc < param_2) {\n                    /* WARNING: Subroutine does not return */\n    FUN_001c6190("basic_string::resize");\n  }\n  if (uVar1 > param_2 || param_2 == uVar1) {\n    if (uVar1 <= param_2) {\n      return;\n    }\n    FUN_001b8580(param_1,param_2,uVar1 - param_2,0);\n    return;\n  }\n  FUN_001b9910(param_1,param_2 - uVar1,(int)param_3);\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (expression_statement "uVar1 = *(uint *)(*param_1 + -0xc);" (assignment_expression "uVar1 = *(uint *)(*param_1 + -0xc)" identifier = (pointer_expression "*(uint *)(*param_1 + -0xc)" * (cast_expression "(uint *)(*param_1 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + -0xc)" ( (binary_expression "*param_1 + -0xc" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ;) (if_statement "if (0x3ffffffc < param_2) {\n                    /* WARNING: Subroutine does not return */\n    FUN_001c6190("basic_string::resize");\n  }" if (parenthesized_expression "(0x3ffffffc < param_2)" ( (binary_expression "0x3ffffffc < param_2" number_literal < identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_001c6190("basic_string::resize");\n  }" { comment (expression_statement "FUN_001c6190("basic_string::resize");" (call_expression "FUN_001c6190("basic_string::resize")" identifier (argument_list "("basic_string::resize")" ( (string_literal ""basic_string::resize"" " string_content ") ))) ;) })) (if_statement "if (uVar1 > param_2 || param_2 == uVar1) {\n    if (uVar1 <= param_2) {\n      return;\n    }\n    FUN_001b8580(param_1,param_2,uVar1 - param_2,0);\n    return;\n  }" if (parenthesized_expression "(uVar1 > param_2 || param_2 == uVar1)" ( (binary_expression "uVar1 > param_2 || param_2 == uVar1" (binary_expression "uVar1 > param_2" identifier > identifier) || (binary_expression "param_2 == uVar1" identifier == identifier)) )) (compound_statement "{\n    if (uVar1 <= param_2) {\n      return;\n    }\n    FUN_001b8580(param_1,param_2,uVar1 - param_2,0);\n    return;\n  }" { (if_statement "if (uVar1 <= param_2) {\n      return;\n    }" if (parenthesized_expression "(uVar1 <= param_2)" ( (binary_expression "uVar1 <= param_2" identifier <= identifier) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "FUN_001b8580(param_1,param_2,uVar1 - param_2,0);" (call_expression "FUN_001b8580(param_1,param_2,uVar1 - param_2,0)" identifier (argument_list "(param_1,param_2,uVar1 - param_2,0)" ( identifier , identifier , (binary_expression "uVar1 - param_2" identifier - identifier) , number_literal ))) ;) (return_statement "return;" return ;) })) (expression_statement "FUN_001b9910(param_1,param_2 - uVar1,(int)param_3);" (call_expression "FUN_001b9910(param_1,param_2 - uVar1,(int)param_3)" identifier (argument_list "(param_1,param_2 - uVar1,(int)param_3)" ( identifier , (binary_expression "param_2 - uVar1" identifier - identifier) , (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* std::string::resize(unsigned int, char) */\n\nvoid __thiscall std::string::resize(string *this,uint param_1,char param_2)\n\n{\n  uint uVar1;\n  \n  uVar1 = *(uint *)(*(int *)this + -0xc);\n  if (0x3ffffffc < param_1) {\n                    /* WARNING: Subroutine does not return */\n    __throw_length_error("basic_string::resize");\n  }\n  if (uVar1 > param_1 || param_1 == uVar1) {\n    if (uVar1 <= param_1) {\n      return;\n    }\n    _M_mutate(this,param_1,uVar1 - param_1,0);\n    return;\n  }\n  append(this,param_1 - uVar1,param_2);\n  return;\n}\n\n" comment comment (function_definition "void __thiscall std::string::resize(string *this,uint param_1,char param_2)\n\n{\n  uint uVar1;\n  \n  uVar1 = *(uint *)(*(int *)this + -0xc);\n  if (0x3ffffffc < param_1) {\n                    /* WARNING: Subroutine does not return */\n    __throw_length_error("basic_string::resize");\n  }\n  if (uVar1 > param_1 || param_1 == uVar1) {\n    if (uVar1 <= param_1) {\n      return;\n    }\n    _M_mutate(this,param_1,uVar1 - param_1,0);\n    return;\n  }\n  append(this,param_1 - uVar1,param_2);\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "std::string::" identifier : : identifier : :) (function_declarator "resize(string *this,uint param_1,char param_2)" identifier (parameter_list "(string *this,uint param_1,char param_2)" ( (parameter_declaration "string *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "uint param_1" type_identifier identifier) , (parameter_declaration "char param_2" primitive_type identifier) ))) (compound_statement "{\n  uint uVar1;\n  \n  uVar1 = *(uint *)(*(int *)this + -0xc);\n  if (0x3ffffffc < param_1) {\n                    /* WARNING: Subroutine does not return */\n    __throw_length_error("basic_string::resize");\n  }\n  if (uVar1 > param_1 || param_1 == uVar1) {\n    if (uVar1 <= param_1) {\n      return;\n    }\n    _M_mutate(this,param_1,uVar1 - param_1,0);\n    return;\n  }\n  append(this,param_1 - uVar1,param_2);\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (expression_statement "uVar1 = *(uint *)(*(int *)this + -0xc);" (assignment_expression "uVar1 = *(uint *)(*(int *)this + -0xc)" identifier = (pointer_expression "*(uint *)(*(int *)this + -0xc)" * (cast_expression "(uint *)(*(int *)this + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)this + -0xc)" ( (binary_expression "*(int *)this + -0xc" (pointer_expression "*(int *)this" * (cast_expression "(int *)this" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ;) (if_statement "if (0x3ffffffc < param_1) {\n                    /* WARNING: Subroutine does not return */\n    __throw_length_error("basic_string::resize");\n  }" if (parenthesized_expression "(0x3ffffffc < param_1)" ( (binary_expression "0x3ffffffc < param_1" number_literal < identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __throw_length_error("basic_string::resize");\n  }" { comment (expression_statement "__throw_length_error("basic_string::resize");" (call_expression "__throw_length_error("basic_string::resize")" identifier (argument_list "("basic_string::resize")" ( (string_literal ""basic_string::resize"" " string_content ") ))) ;) })) (if_statement "if (uVar1 > param_1 || param_1 == uVar1) {\n    if (uVar1 <= param_1) {\n      return;\n    }\n    _M_mutate(this,param_1,uVar1 - param_1,0);\n    return;\n  }" if (parenthesized_expression "(uVar1 > param_1 || param_1 == uVar1)" ( (binary_expression "uVar1 > param_1 || param_1 == uVar1" (binary_expression "uVar1 > param_1" identifier > identifier) || (binary_expression "param_1 == uVar1" identifier == identifier)) )) (compound_statement "{\n    if (uVar1 <= param_1) {\n      return;\n    }\n    _M_mutate(this,param_1,uVar1 - param_1,0);\n    return;\n  }" { (if_statement "if (uVar1 <= param_1) {\n      return;\n    }" if (parenthesized_expression "(uVar1 <= param_1)" ( (binary_expression "uVar1 <= param_1" identifier <= identifier) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "_M_mutate(this,param_1,uVar1 - param_1,0);" (call_expression "_M_mutate(this,param_1,uVar1 - param_1,0)" identifier (argument_list "(this,param_1,uVar1 - param_1,0)" ( identifier , identifier , (binary_expression "uVar1 - param_1" identifier - identifier) , number_literal ))) ;) (return_statement "return;" return ;) })) (expression_statement "append(this,param_1 - uVar1,param_2);" (call_expression "append(this,param_1 - uVar1,param_2)" identifier (argument_list "(this,param_1 - uVar1,param_2)" ( identifier , (binary_expression "param_1 - uVar1" identifier - identifier) , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_001b99d0(int *param_1,uint param_2,char param_3)\n\n{\n  uint uVar1;\n  \n  uVar1 = *(uint *)(*param_1 + -0xc);\n  if (0x3ffffffc < param_2) {\n                    \n    FUN_001c6190("basic_string::resize");\n  }\n  if (uVar1 > param_2 || param_2 == uVar1) {\n    if (uVar1 <= param_2) {\n      return;\n    }\n    FUN_001b8580(param_1,param_2,uVar1 - param_2,0);\n    return;\n  }\n  FUN_001b9910(param_1,param_2 - uVar1,(int)param_3);\n  return;\n}\n\n" (function_definition "void FUN_001b99d0(int *param_1,uint param_2,char param_3)\n\n{\n  uint uVar1;\n  \n  uVar1 = *(uint *)(*param_1 + -0xc);\n  if (0x3ffffffc < param_2) {\n                    \n    FUN_001c6190("basic_string::resize");\n  }\n  if (uVar1 > param_2 || param_2 == uVar1) {\n    if (uVar1 <= param_2) {\n      return;\n    }\n    FUN_001b8580(param_1,param_2,uVar1 - param_2,0);\n    return;\n  }\n  FUN_001b9910(param_1,param_2 - uVar1,(int)param_3);\n  return;\n}" primitive_type (function_declarator "FUN_001b99d0(int *param_1,uint param_2,char param_3)" identifier (parameter_list "(int *param_1,uint param_2,char param_3)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "char param_3" primitive_type identifier) ))) (compound_statement "{\n  uint uVar1;\n  \n  uVar1 = *(uint *)(*param_1 + -0xc);\n  if (0x3ffffffc < param_2) {\n                    \n    FUN_001c6190("basic_string::resize");\n  }\n  if (uVar1 > param_2 || param_2 == uVar1) {\n    if (uVar1 <= param_2) {\n      return;\n    }\n    FUN_001b8580(param_1,param_2,uVar1 - param_2,0);\n    return;\n  }\n  FUN_001b9910(param_1,param_2 - uVar1,(int)param_3);\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (expression_statement "uVar1 = *(uint *)(*param_1 + -0xc);" (assignment_expression "uVar1 = *(uint *)(*param_1 + -0xc)" identifier = (pointer_expression "*(uint *)(*param_1 + -0xc)" * (cast_expression "(uint *)(*param_1 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + -0xc)" ( (binary_expression "*param_1 + -0xc" (pointer_expression "*param_1" * identifier) + number_literal) ))))) ;) (if_statement "if (0x3ffffffc < param_2) {\n                    \n    FUN_001c6190("basic_string::resize");\n  }" if (parenthesized_expression "(0x3ffffffc < param_2)" ( (binary_expression "0x3ffffffc < param_2" number_literal < identifier) )) (compound_statement "{\n                    \n    FUN_001c6190("basic_string::resize");\n  }" { (expression_statement "FUN_001c6190("basic_string::resize");" (call_expression "FUN_001c6190("basic_string::resize")" identifier (argument_list "("basic_string::resize")" ( (string_literal ""basic_string::resize"" " string_content ") ))) ;) })) (if_statement "if (uVar1 > param_2 || param_2 == uVar1) {\n    if (uVar1 <= param_2) {\n      return;\n    }\n    FUN_001b8580(param_1,param_2,uVar1 - param_2,0);\n    return;\n  }" if (parenthesized_expression "(uVar1 > param_2 || param_2 == uVar1)" ( (binary_expression "uVar1 > param_2 || param_2 == uVar1" (binary_expression "uVar1 > param_2" identifier > identifier) || (binary_expression "param_2 == uVar1" identifier == identifier)) )) (compound_statement "{\n    if (uVar1 <= param_2) {\n      return;\n    }\n    FUN_001b8580(param_1,param_2,uVar1 - param_2,0);\n    return;\n  }" { (if_statement "if (uVar1 <= param_2) {\n      return;\n    }" if (parenthesized_expression "(uVar1 <= param_2)" ( (binary_expression "uVar1 <= param_2" identifier <= identifier) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "FUN_001b8580(param_1,param_2,uVar1 - param_2,0);" (call_expression "FUN_001b8580(param_1,param_2,uVar1 - param_2,0)" identifier (argument_list "(param_1,param_2,uVar1 - param_2,0)" ( identifier , identifier , (binary_expression "uVar1 - param_2" identifier - identifier) , number_literal ))) ;) (return_statement "return;" return ;) })) (expression_statement "FUN_001b9910(param_1,param_2 - uVar1,(int)param_3);" (call_expression "FUN_001b9910(param_1,param_2 - uVar1,(int)param_3)" identifier (argument_list "(param_1,param_2 - uVar1,(int)param_3)" ( identifier , (binary_expression "param_2 - uVar1" identifier - identifier) , (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT > IDENT) || (binary_expression IDENT == IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT - IDENT) , LIT ))) ;) (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT - IDENT) , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;) (return_statement return ;) })))
(function_definition "void FUN_001b99d0(int *param_1,uint param_2,char param_3)\n\n{\n  uint uVar1;\n  \n  uVar1 = *(uint *)(*param_1 + -0xc);\n  if (0x3ffffffc < param_2) {\n                    \n    FUN_001c6190("basic_string::resize");\n  }\n  if (uVar1 > param_2 || param_2 == uVar1) {\n    if (uVar1 <= param_2) {\n      return;\n    }\n    FUN_001b8580(param_1,param_2,uVar1 - param_2,0);\n    return;\n  }\n  FUN_001b9910(param_1,param_2 - uVar1,(int)param_3);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_001b99d0(int *param_1,uint param_2,char param_3)" (identifier "FUN_001b99d0") (parameter_list "(int *param_1,uint param_2,char param_3)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) (, ",") (parameter_declaration "char param_3" (primitive_type "char") (identifier "param_3")) () ")"))) (compound_statement "{\n  uint uVar1;\n  \n  uVar1 = *(uint *)(*param_1 + -0xc);\n  if (0x3ffffffc < param_2) {\n                    \n    FUN_001c6190("basic_string::resize");\n  }\n  if (uVar1 > param_2 || param_2 == uVar1) {\n    if (uVar1 <= param_2) {\n      return;\n    }\n    FUN_001b8580(param_1,param_2,uVar1 - param_2,0);\n    return;\n  }\n  FUN_001b9910(param_1,param_2 - uVar1,(int)param_3);\n  return;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (expression_statement "uVar1 = *(uint *)(*param_1 + -0xc);" (assignment_expression "uVar1 = *(uint *)(*param_1 + -0xc)" (identifier "uVar1") (= "=") (pointer_expression "*(uint *)(*param_1 + -0xc)" (* "*") (cast_expression "(uint *)(*param_1 + -0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + -0xc)" (( "(") (binary_expression "*param_1 + -0xc" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "-0xc")) () ")"))))) (; ";")) (if_statement "if (0x3ffffffc < param_2) {\n                    \n    FUN_001c6190("basic_string::resize");\n  }" (if "if") (parenthesized_expression "(0x3ffffffc < param_2)" (( "(") (binary_expression "0x3ffffffc < param_2" (number_literal "0x3ffffffc") (< "<") (identifier "param_2")) () ")")) (compound_statement "{\n                    \n    FUN_001c6190("basic_string::resize");\n  }" ({ "{") (expression_statement "FUN_001c6190("basic_string::resize");" (call_expression "FUN_001c6190("basic_string::resize")" (identifier "FUN_001c6190") (argument_list "("basic_string::resize")" (( "(") (string_literal ""basic_string::resize"" (" """) (string_content "basic_string::resize") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (uVar1 > param_2 || param_2 == uVar1) {\n    if (uVar1 <= param_2) {\n      return;\n    }\n    FUN_001b8580(param_1,param_2,uVar1 - param_2,0);\n    return;\n  }" (if "if") (parenthesized_expression "(uVar1 > param_2 || param_2 == uVar1)" (( "(") (binary_expression "uVar1 > param_2 || param_2 == uVar1" (binary_expression "uVar1 > param_2" (identifier "uVar1") (> ">") (identifier "param_2")) (|| "||") (binary_expression "param_2 == uVar1" (identifier "param_2") (== "==") (identifier "uVar1"))) () ")")) (compound_statement "{\n    if (uVar1 <= param_2) {\n      return;\n    }\n    FUN_001b8580(param_1,param_2,uVar1 - param_2,0);\n    return;\n  }" ({ "{") (if_statement "if (uVar1 <= param_2) {\n      return;\n    }" (if "if") (parenthesized_expression "(uVar1 <= param_2)" (( "(") (binary_expression "uVar1 <= param_2" (identifier "uVar1") (<= "<=") (identifier "param_2")) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_001b8580(param_1,param_2,uVar1 - param_2,0);" (call_expression "FUN_001b8580(param_1,param_2,uVar1 - param_2,0)" (identifier "FUN_001b8580") (argument_list "(param_1,param_2,uVar1 - param_2,0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (binary_expression "uVar1 - param_2" (identifier "uVar1") (- "-") (identifier "param_2")) (, ",") (number_literal "0") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_001b9910(param_1,param_2 - uVar1,(int)param_3);" (call_expression "FUN_001b9910(param_1,param_2 - uVar1,(int)param_3)" (identifier "FUN_001b9910") (argument_list "(param_1,param_2 - uVar1,(int)param_3)" (( "(") (identifier "param_1") (, ",") (binary_expression "param_2 - uVar1" (identifier "param_2") (- "-") (identifier "uVar1")) (, ",") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

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

void __thiscall std::type_1::function_1(type_1 *this,type_2 var_1,char param_2)

{
  type_2 var_3;
  
  var_3 = *(type_2 *)(*(int *)this + -0xc);
  if (0x3ffffffc < var_1) {
                    /* WARNING: Subroutine does not return */
    var_2("basic_string::resize");
  }
  if (var_3 > var_1 || var_1 == var_3) {
    if (var_3 <= var_1) {
      return;
    }
    var_4(this,var_1,var_3 - var_1,0);
    return;
  }
  var_5(this,var_1 - var_3,param_2);
  return;
}


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

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

void MASKED(int *param_1,uint param_2,char param_3)

{
  uint uVar1;
  
  uVar1 = *(uint *)(*param_1 + -0xc);
  if (0x3ffffffc < param_2) {
                    /* WARNING: Subroutine does not return */
    FUN_001c6190("basic_string::resize");
  }
  if (uVar1 > param_2 || param_2 == uVar1) {
    if (uVar1 <= param_2) {
      return;
    }
    FUN_001b8580(param_1,param_2,uVar1 - param_2,0);
    return;
  }
  FUN_001b9910(param_1,param_2 - uVar1,(int)param_3);
  return;
}

