
void string_prepend(string *p,char *s)

{
  size_t sVar1;
  
  sVar1 = strlen(s);
  if ((int)sVar1 == 0) {
    return;
  }
  string_prependn(p,s,(int)sVar1);
  return;
}



void FUN_0028ab70(undefined8 param_1,char *param_2)

{
  size_t sVar1;
  
  sVar1 = strlen(param_2);
  if ((int)sVar1 == 0) {
    return;
  }
  FUN_0028ab20(param_1,param_2,sVar1 & 0xffffffff);
  return;
}


PUSH RBP
MOV RBP,RDI
MOV RDI,RSI
PUSH RBX
MOV RBX,RSI
SUB RSP,0x8
CALL 0x00144490
TEST EAX,EAX
JNZ 0x0028ab90
ADD RSP,0x8
POP RBX
POP RBP
RET
ADD RSP,0x8
MOV RSI,RBX
MOV RDI,RBP
MOV EDX,EAX
POP RBX
POP RBP
JMP 0x0028ab20
(translation_unit "void FUN_0028ab70(undefined8 param_1,char *param_2)\n\n{\n  size_t sVar1;\n  \n  sVar1 = strlen(param_2);\n  if ((int)sVar1 == 0) {\n    return;\n  }\n  FUN_0028ab20(param_1,param_2,sVar1 & 0xffffffff);\n  return;\n}\n\n" (function_definition "void FUN_0028ab70(undefined8 param_1,char *param_2)\n\n{\n  size_t sVar1;\n  \n  sVar1 = strlen(param_2);\n  if ((int)sVar1 == 0) {\n    return;\n  }\n  FUN_0028ab20(param_1,param_2,sVar1 & 0xffffffff);\n  return;\n}" primitive_type (function_declarator "FUN_0028ab70(undefined8 param_1,char *param_2)" identifier (parameter_list "(undefined8 param_1,char *param_2)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  size_t sVar1;\n  \n  sVar1 = strlen(param_2);\n  if ((int)sVar1 == 0) {\n    return;\n  }\n  FUN_0028ab20(param_1,param_2,sVar1 & 0xffffffff);\n  return;\n}" { (declaration "size_t sVar1;" primitive_type identifier ;) (expression_statement "sVar1 = strlen(param_2);" (assignment_expression "sVar1 = strlen(param_2)" identifier = (call_expression "strlen(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if ((int)sVar1 == 0) {\n    return;\n  }" if (parenthesized_expression "((int)sVar1 == 0)" ( (binary_expression "(int)sVar1 == 0" (cast_expression "(int)sVar1" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "FUN_0028ab20(param_1,param_2,sVar1 & 0xffffffff);" (call_expression "FUN_0028ab20(param_1,param_2,sVar1 & 0xffffffff)" identifier (argument_list "(param_1,param_2,sVar1 & 0xffffffff)" ( identifier , identifier , (binary_expression "sVar1 & 0xffffffff" identifier & number_literal) ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void string_prepend(string *p,char *s)\n\n{\n  size_t sVar1;\n  \n  sVar1 = strlen(s);\n  if ((int)sVar1 == 0) {\n    return;\n  }\n  string_prependn(p,s,(int)sVar1);\n  return;\n}\n\n" (function_definition "void string_prepend(string *p,char *s)\n\n{\n  size_t sVar1;\n  \n  sVar1 = strlen(s);\n  if ((int)sVar1 == 0) {\n    return;\n  }\n  string_prependn(p,s,(int)sVar1);\n  return;\n}" primitive_type (function_declarator "string_prepend(string *p,char *s)" identifier (parameter_list "(string *p,char *s)" ( (parameter_declaration "string *p" type_identifier (pointer_declarator "*p" * identifier)) , (parameter_declaration "char *s" primitive_type (pointer_declarator "*s" * identifier)) ))) (compound_statement "{\n  size_t sVar1;\n  \n  sVar1 = strlen(s);\n  if ((int)sVar1 == 0) {\n    return;\n  }\n  string_prependn(p,s,(int)sVar1);\n  return;\n}" { (declaration "size_t sVar1;" primitive_type identifier ;) (expression_statement "sVar1 = strlen(s);" (assignment_expression "sVar1 = strlen(s)" identifier = (call_expression "strlen(s)" identifier (argument_list "(s)" ( identifier )))) ;) (if_statement "if ((int)sVar1 == 0) {\n    return;\n  }" if (parenthesized_expression "((int)sVar1 == 0)" ( (binary_expression "(int)sVar1 == 0" (cast_expression "(int)sVar1" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "string_prependn(p,s,(int)sVar1);" (call_expression "string_prependn(p,s,(int)sVar1)" identifier (argument_list "(p,s,(int)sVar1)" ( identifier , identifier , (cast_expression "(int)sVar1" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0028ab70(undefined8 param_1,char *param_2)\n\n{\n  size_t sVar1;\n  \n  sVar1 = strlen(param_2);\n  if ((int)sVar1 == 0) {\n    return;\n  }\n  FUN_0028ab20(param_1,param_2,sVar1 & 0xffffffff);\n  return;\n}\n\n" (function_definition "void FUN_0028ab70(undefined8 param_1,char *param_2)\n\n{\n  size_t sVar1;\n  \n  sVar1 = strlen(param_2);\n  if ((int)sVar1 == 0) {\n    return;\n  }\n  FUN_0028ab20(param_1,param_2,sVar1 & 0xffffffff);\n  return;\n}" primitive_type (function_declarator "FUN_0028ab70(undefined8 param_1,char *param_2)" identifier (parameter_list "(undefined8 param_1,char *param_2)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  size_t sVar1;\n  \n  sVar1 = strlen(param_2);\n  if ((int)sVar1 == 0) {\n    return;\n  }\n  FUN_0028ab20(param_1,param_2,sVar1 & 0xffffffff);\n  return;\n}" { (declaration "size_t sVar1;" primitive_type identifier ;) (expression_statement "sVar1 = strlen(param_2);" (assignment_expression "sVar1 = strlen(param_2)" identifier = (call_expression "strlen(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if ((int)sVar1 == 0) {\n    return;\n  }" if (parenthesized_expression "((int)sVar1 == 0)" ( (binary_expression "(int)sVar1 == 0" (cast_expression "(int)sVar1" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "FUN_0028ab20(param_1,param_2,sVar1 & 0xffffffff);" (call_expression "FUN_0028ab20(param_1,param_2,sVar1 & 0xffffffff)" identifier (argument_list "(param_1,param_2,sVar1 & 0xffffffff)" ( identifier , identifier , (binary_expression "sVar1 & 0xffffffff" identifier & number_literal) ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (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 )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT & LIT) ))) ;) (return_statement return ;) })))
(function_definition "void FUN_0028ab70(undefined8 param_1,char *param_2)\n\n{\n  size_t sVar1;\n  \n  sVar1 = strlen(param_2);\n  if ((int)sVar1 == 0) {\n    return;\n  }\n  FUN_0028ab20(param_1,param_2,sVar1 & 0xffffffff);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0028ab70(undefined8 param_1,char *param_2)" (identifier "FUN_0028ab70") (parameter_list "(undefined8 param_1,char *param_2)" (( "(") (parameter_declaration "undefined8 param_1" (type_identifier "undefined8") (identifier "param_1")) (, ",") (parameter_declaration "char *param_2" (primitive_type "char") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  size_t sVar1;\n  \n  sVar1 = strlen(param_2);\n  if ((int)sVar1 == 0) {\n    return;\n  }\n  FUN_0028ab20(param_1,param_2,sVar1 & 0xffffffff);\n  return;\n}" ({ "{") (declaration "size_t sVar1;" (primitive_type "size_t") (identifier "sVar1") (; ";")) (expression_statement "sVar1 = strlen(param_2);" (assignment_expression "sVar1 = strlen(param_2)" (identifier "sVar1") (= "=") (call_expression "strlen(param_2)" (identifier "strlen") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (if_statement "if ((int)sVar1 == 0) {\n    return;\n  }" (if "if") (parenthesized_expression "((int)sVar1 == 0)" (( "(") (binary_expression "(int)sVar1 == 0" (cast_expression "(int)sVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar1")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_0028ab20(param_1,param_2,sVar1 & 0xffffffff);" (call_expression "FUN_0028ab20(param_1,param_2,sVar1 & 0xffffffff)" (identifier "FUN_0028ab20") (argument_list "(param_1,param_2,sVar1 & 0xffffffff)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (binary_expression "sVar1 & 0xffffffff" (identifier "sVar1") (& "&") (number_literal "0xffffffff")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(type_1 *p,char *s)

{
  size_t sVar1;
  
  sVar1 = var_1(s);
  if ((int)sVar1 == 0) {
    return;
  }
  var_2(p,s,(int)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: (primitive_type) 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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (return_statement))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (binary_expression left: (identifier) right: (number_literal))))) (return_statement))))

void MASKED(undefined8 param_1,char *param_2)

{
  size_t sVar1;
  
  sVar1 = strlen(param_2);
  if ((int)sVar1 == 0) {
    return;
  }
  FUN_0028ab20(param_1,param_2,sVar1 & 0xffffffff);
  return;
}

