
/* char* std::string::_S_construct<char*>(char*, char*, std::allocator<char> const&,
   std::forward_iterator_tag) */

char * std::string::_S_construct<char*>(long param_1,long param_2)

{
  char *pcVar1;
  
  if (param_1 == param_2) {
    return &DAT_0044a558;
  }
  if (param_1 != 0) {
    pcVar1 = _S_construct<char_const*>();
    return pcVar1;
  }
                    /* WARNING: Subroutine does not return */
  __throw_logic_error("basic_string::_S_construct null not valid");
}



undefined1 * FUN_0030f130(long param_1,long param_2)

{
  undefined1 *puVar1;
  
  if (param_1 == param_2) {
    return &DAT_0044a558;
  }
  if (param_1 != 0) {
    puVar1 = (undefined1 *)FUN_0030d9c0();
    return puVar1;
  }
                    /* WARNING: Subroutine does not return */
  FUN_003194e0("basic_string::_S_construct null not valid");
}


CMP RDI,RSI
JZ 0x0030f140
TEST RDI,RDI
JZ 0x0030f14c
JMP 0x0030d9c0
LEA RAX,[0x44a540]
ADD RAX,0x18
RET
PUSH RAX
LEA RDI,[0x391e60]
CALL 0x003194e0
(translation_unit "undefined1 * FUN_0030f130(long param_1,long param_2)\n\n{\n  undefined1 *puVar1;\n  \n  if (param_1 == param_2) {\n    return &DAT_0044a558;\n  }\n  if (param_1 != 0) {\n    puVar1 = (undefined1 *)FUN_0030d9c0();\n    return puVar1;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_003194e0("basic_string::_S_construct null not valid");\n}\n\n" (function_definition "undefined1 * FUN_0030f130(long param_1,long param_2)\n\n{\n  undefined1 *puVar1;\n  \n  if (param_1 == param_2) {\n    return &DAT_0044a558;\n  }\n  if (param_1 != 0) {\n    puVar1 = (undefined1 *)FUN_0030d9c0();\n    return puVar1;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_003194e0("basic_string::_S_construct null not valid");\n}" type_identifier (pointer_declarator "* FUN_0030f130(long param_1,long param_2)" * (function_declarator "FUN_0030f130(long param_1,long param_2)" identifier (parameter_list "(long param_1,long param_2)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) )))) (compound_statement "{\n  undefined1 *puVar1;\n  \n  if (param_1 == param_2) {\n    return &DAT_0044a558;\n  }\n  if (param_1 != 0) {\n    puVar1 = (undefined1 *)FUN_0030d9c0();\n    return puVar1;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_003194e0("basic_string::_S_construct null not valid");\n}" { (declaration "undefined1 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (if_statement "if (param_1 == param_2) {\n    return &DAT_0044a558;\n  }" if (parenthesized_expression "(param_1 == param_2)" ( (binary_expression "param_1 == param_2" identifier == identifier) )) (compound_statement "{\n    return &DAT_0044a558;\n  }" { (return_statement "return &DAT_0044a558;" return (pointer_expression "&DAT_0044a558" & identifier) ;) })) (if_statement "if (param_1 != 0) {\n    puVar1 = (undefined1 *)FUN_0030d9c0();\n    return puVar1;\n  }" if (parenthesized_expression "(param_1 != 0)" ( (binary_expression "param_1 != 0" identifier != number_literal) )) (compound_statement "{\n    puVar1 = (undefined1 *)FUN_0030d9c0();\n    return puVar1;\n  }" { (expression_statement "puVar1 = (undefined1 *)FUN_0030d9c0();" (assignment_expression "puVar1 = (undefined1 *)FUN_0030d9c0()" identifier = (cast_expression "(undefined1 *)FUN_0030d9c0()" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0030d9c0()" identifier (argument_list "()" ( ))))) ;) (return_statement "return puVar1;" return identifier ;) })) comment (expression_statement "FUN_003194e0("basic_string::_S_construct null not valid");" (call_expression "FUN_003194e0("basic_string::_S_construct null not valid")" identifier (argument_list "("basic_string::_S_construct null not valid")" ( (string_literal ""basic_string::_S_construct null not valid"" " string_content ") ))) ;) })))
(translation_unit "/* char* std::string::_S_construct<char*>(char*, char*, std::allocator<char> const&,\n   std::forward_iterator_tag) */\n\nchar * std::string::_S_construct<char*>(long param_1,long param_2)\n\n{\n  char *pcVar1;\n  \n  if (param_1 == param_2) {\n    return &DAT_0044a558;\n  }\n  if (param_1 != 0) {\n    pcVar1 = _S_construct<char_const*>();\n    return pcVar1;\n  }\n                    /* WARNING: Subroutine does not return */\n  __throw_logic_error("basic_string::_S_construct null not valid");\n}\n\n" comment (declaration "char * std::string::_S_construct<char*>(long param_1,long param_2)\n\n{\n  char *pcVar1;" primitive_type (pointer_declarator "* std::string::_S_construct<char*>(long param_1" * (ERROR "std::string::_S_construct<char" identifier : : identifier : : identifier < primitive_type) (pointer_declarator "*>(long param_1" * (ERROR ">(long" > ( long) identifier)) , (ERROR "long param_2)\n\n{\n  char" identifier identifier ) { primitive_type) (pointer_declarator "*pcVar1" * identifier) ;) (if_statement "if (param_1 == param_2) {\n    return &DAT_0044a558;\n  }" if (parenthesized_expression "(param_1 == param_2)" ( (binary_expression "param_1 == param_2" identifier == identifier) )) (compound_statement "{\n    return &DAT_0044a558;\n  }" { (return_statement "return &DAT_0044a558;" return (pointer_expression "&DAT_0044a558" & identifier) ;) })) (if_statement "if (param_1 != 0) {\n    pcVar1 = _S_construct<char_const*>();\n    return pcVar1;\n  }" if (parenthesized_expression "(param_1 != 0)" ( (binary_expression "param_1 != 0" identifier != number_literal) )) (compound_statement "{\n    pcVar1 = _S_construct<char_const*>();\n    return pcVar1;\n  }" { (expression_statement "pcVar1 = _S_construct<char_const*>();" (assignment_expression "pcVar1 = _S_construct<char_const" identifier = (binary_expression "_S_construct<char_const" identifier < identifier)) (ERROR "*>()" * > ( )) ;) (return_statement "return pcVar1;" return identifier ;) })) comment (expression_statement "__throw_logic_error("basic_string::_S_construct null not valid");" (call_expression "__throw_logic_error("basic_string::_S_construct null not valid")" identifier (argument_list "("basic_string::_S_construct null not valid")" ( (string_literal ""basic_string::_S_construct null not valid"" " string_content ") ))) ;) (ERROR "}" }))
(translation_unit "undefined1 * FUN_0030f130(long param_1,long param_2)\n\n{\n  undefined1 *puVar1;\n  \n  if (param_1 == param_2) {\n    return &DAT_0044a558;\n  }\n  if (param_1 != 0) {\n    puVar1 = (undefined1 *)FUN_0030d9c0();\n    return puVar1;\n  }\n                    \n  FUN_003194e0("basic_string::_S_construct null not valid");\n}\n\n" (function_definition "undefined1 * FUN_0030f130(long param_1,long param_2)\n\n{\n  undefined1 *puVar1;\n  \n  if (param_1 == param_2) {\n    return &DAT_0044a558;\n  }\n  if (param_1 != 0) {\n    puVar1 = (undefined1 *)FUN_0030d9c0();\n    return puVar1;\n  }\n                    \n  FUN_003194e0("basic_string::_S_construct null not valid");\n}" type_identifier (pointer_declarator "* FUN_0030f130(long param_1,long param_2)" * (function_declarator "FUN_0030f130(long param_1,long param_2)" identifier (parameter_list "(long param_1,long param_2)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) )))) (compound_statement "{\n  undefined1 *puVar1;\n  \n  if (param_1 == param_2) {\n    return &DAT_0044a558;\n  }\n  if (param_1 != 0) {\n    puVar1 = (undefined1 *)FUN_0030d9c0();\n    return puVar1;\n  }\n                    \n  FUN_003194e0("basic_string::_S_construct null not valid");\n}" { (declaration "undefined1 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (if_statement "if (param_1 == param_2) {\n    return &DAT_0044a558;\n  }" if (parenthesized_expression "(param_1 == param_2)" ( (binary_expression "param_1 == param_2" identifier == identifier) )) (compound_statement "{\n    return &DAT_0044a558;\n  }" { (return_statement "return &DAT_0044a558;" return (pointer_expression "&DAT_0044a558" & identifier) ;) })) (if_statement "if (param_1 != 0) {\n    puVar1 = (undefined1 *)FUN_0030d9c0();\n    return puVar1;\n  }" if (parenthesized_expression "(param_1 != 0)" ( (binary_expression "param_1 != 0" identifier != number_literal) )) (compound_statement "{\n    puVar1 = (undefined1 *)FUN_0030d9c0();\n    return puVar1;\n  }" { (expression_statement "puVar1 = (undefined1 *)FUN_0030d9c0();" (assignment_expression "puVar1 = (undefined1 *)FUN_0030d9c0()" identifier = (cast_expression "(undefined1 *)FUN_0030d9c0()" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0030d9c0()" identifier (argument_list "()" ( ))))) ;) (return_statement "return puVar1;" return identifier ;) })) (expression_statement "FUN_003194e0("basic_string::_S_construct null not valid");" (call_expression "FUN_003194e0("basic_string::_S_construct null not valid")" identifier (argument_list "("basic_string::_S_construct null not valid")" ( (string_literal ""basic_string::_S_construct null not valid"" " string_content ") ))) ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) )))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return (pointer_expression & IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) })))
(function_definition "undefined1 * FUN_0030f130(long param_1,long param_2)\n\n{\n  undefined1 *puVar1;\n  \n  if (param_1 == param_2) {\n    return &DAT_0044a558;\n  }\n  if (param_1 != 0) {\n    puVar1 = (undefined1 *)FUN_0030d9c0();\n    return puVar1;\n  }\n                    \n  FUN_003194e0("basic_string::_S_construct null not valid");\n}" (type_identifier "undefined1") (pointer_declarator "* FUN_0030f130(long param_1,long param_2)" (* "*") (function_declarator "FUN_0030f130(long param_1,long param_2)" (identifier "FUN_0030f130") (parameter_list "(long param_1,long param_2)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "long param_2" (sized_type_specifier "long" (long "long")) (identifier "param_2")) () ")")))) (compound_statement "{\n  undefined1 *puVar1;\n  \n  if (param_1 == param_2) {\n    return &DAT_0044a558;\n  }\n  if (param_1 != 0) {\n    puVar1 = (undefined1 *)FUN_0030d9c0();\n    return puVar1;\n  }\n                    \n  FUN_003194e0("basic_string::_S_construct null not valid");\n}" ({ "{") (declaration "undefined1 *puVar1;" (type_identifier "undefined1") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (if_statement "if (param_1 == param_2) {\n    return &DAT_0044a558;\n  }" (if "if") (parenthesized_expression "(param_1 == param_2)" (( "(") (binary_expression "param_1 == param_2" (identifier "param_1") (== "==") (identifier "param_2")) () ")")) (compound_statement "{\n    return &DAT_0044a558;\n  }" ({ "{") (return_statement "return &DAT_0044a558;" (return "return") (pointer_expression "&DAT_0044a558" (& "&") (identifier "DAT_0044a558")) (; ";")) (} "}"))) (if_statement "if (param_1 != 0) {\n    puVar1 = (undefined1 *)FUN_0030d9c0();\n    return puVar1;\n  }" (if "if") (parenthesized_expression "(param_1 != 0)" (( "(") (binary_expression "param_1 != 0" (identifier "param_1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    puVar1 = (undefined1 *)FUN_0030d9c0();\n    return puVar1;\n  }" ({ "{") (expression_statement "puVar1 = (undefined1 *)FUN_0030d9c0();" (assignment_expression "puVar1 = (undefined1 *)FUN_0030d9c0()" (identifier "puVar1") (= "=") (cast_expression "(undefined1 *)FUN_0030d9c0()" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0030d9c0()" (identifier "FUN_0030d9c0") (argument_list "()" (( "(") () ")"))))) (; ";")) (return_statement "return puVar1;" (return "return") (identifier "puVar1") (; ";")) (} "}"))) (expression_statement "FUN_003194e0("basic_string::_S_construct null not valid");" (call_expression "FUN_003194e0("basic_string::_S_construct null not valid")" (identifier "FUN_003194e0") (argument_list "("basic_string::_S_construct null not valid")" (( "(") (string_literal ""basic_string::_S_construct null not valid"" (" """) (string_content "basic_string::_S_construct null not valid") (" """)) () ")"))) (; ";")) (} "}")))

/* char* std::string::_S_construct<char*>(char*, char*, std::allocator<char> const&,
   std::forward_iterator_tag) */

char * std::string::var_3<char*>(long var_1,long var_2)

{
  char *pcVar1;
  
  if (var_1 == var_2) {
    return &DAT_0044a558;
  }
  if (var_1 != 0) {
    pcVar1 = var_3<var_4*>();
    return pcVar1;
  }
                    /* WARNING: Subroutine does not return */
  var_5("basic_string::_S_construct null not valid");
}


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

undefined1 * MASKED(long param_1,long param_2)

{
  undefined1 *puVar1;
  
  if (param_1 == param_2) {
    return &DAT_0044a558;
  }
  if (param_1 != 0) {
    puVar1 = (undefined1 *)FUN_0030d9c0();
    return puVar1;
  }
                    /* WARNING: Subroutine does not return */
  FUN_003194e0("basic_string::_S_construct null not valid");
}

