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

char * __regparm3 def_pool_strdup(char *str)

{
  def_pool_str *pdVar1;
  size_t sVar2;
  def_pool_str *pdVar3;
  
  if (str != (char *)0x0) {
    sVar2 = strlen(str);
    pdVar3 = (def_pool_str *)xmalloc(sVar2 + 9);
    pdVar1 = pdVar3;
    pdVar3->next = pool_strs;
    pool_strs = pdVar1;
    memcpy(pdVar3->data,str,sVar2 + 1);
    return pdVar3->data;
  }
  return (char *)0x0;
}



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

undefined4 * __regparm3 FUN_00058310(char *param_1)

{
  undefined4 *puVar1;
  size_t sVar2;
  undefined4 *puVar3;
  
  if (param_1 != (char *)0x0) {
    sVar2 = strlen(param_1);
    puVar3 = (undefined4 *)xmalloc(sVar2 + 9);
    puVar1 = puVar3;
    *puVar3 = DAT_001d1138;
    DAT_001d1138 = puVar1;
    memcpy(puVar3 + 1,param_1,sVar2 + 1);
    return puVar3 + 1;
  }
  return (undefined4 *)0x0;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00017b80
ADD EBX,0x176ce7
SUB ESP,0xc
TEST EAX,EAX
JZ 0x00058370
SUB ESP,0xc
MOV EDI,EAX
PUSH EAX
CALL 0x00016760
MOV EBP,EAX
LEA EAX,[EAX + 0x9]
MOV dword ptr [ESP],EAX
ADD EBP,0x1
CALL 0x00016dc8
MOV EDX,dword ptr [EBX + 0x2138]
ADD ESP,0xc
LEA ESI,[EAX + 0x4]
MOV dword ptr [EBX + 0x2138],EAX
MOV dword ptr [EAX],EDX
PUSH EBP
PUSH EDI
PUSH ESI
CALL 0x00016210
ADD ESP,0x10
MOV EAX,ESI
ADD ESP,0xc
POP EBX
POP ESI
POP EDI
POP EBP
RET
ADD ESP,0xc
XOR ESI,ESI
POP EBX
MOV EAX,ESI
POP ESI
POP EDI
POP EBP
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4 * __regparm3 FUN_00058310(char *param_1)\n\n{\n  undefined4 *puVar1;\n  size_t sVar2;\n  undefined4 *puVar3;\n  \n  if (param_1 != (char *)0x0) {\n    sVar2 = strlen(param_1);\n    puVar3 = (undefined4 *)xmalloc(sVar2 + 9);\n    puVar1 = puVar3;\n    *puVar3 = DAT_001d1138;\n    DAT_001d1138 = puVar1;\n    memcpy(puVar3 + 1,param_1,sVar2 + 1);\n    return puVar3 + 1;\n  }\n  return (undefined4 *)0x0;\n}\n\n" comment (ERROR "undefined4 * __regparm3 FUN_00058310(char *param_1)" (binary_expression "undefined4 * __regparm3 FUN_00058310(char *param_1)" identifier * (ERROR "__regparm3" identifier) (call_expression "FUN_00058310(char *param_1)" identifier (argument_list "(char *param_1)" ( (binary_expression "char *param_1" identifier * identifier) ))))) (compound_statement "{\n  undefined4 *puVar1;\n  size_t sVar2;\n  undefined4 *puVar3;\n  \n  if (param_1 != (char *)0x0) {\n    sVar2 = strlen(param_1);\n    puVar3 = (undefined4 *)xmalloc(sVar2 + 9);\n    puVar1 = puVar3;\n    *puVar3 = DAT_001d1138;\n    DAT_001d1138 = puVar1;\n    memcpy(puVar3 + 1,param_1,sVar2 + 1);\n    return puVar3 + 1;\n  }\n  return (undefined4 *)0x0;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "size_t sVar2;" primitive_type identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (if_statement "if (param_1 != (char *)0x0) {\n    sVar2 = strlen(param_1);\n    puVar3 = (undefined4 *)xmalloc(sVar2 + 9);\n    puVar1 = puVar3;\n    *puVar3 = DAT_001d1138;\n    DAT_001d1138 = puVar1;\n    memcpy(puVar3 + 1,param_1,sVar2 + 1);\n    return puVar3 + 1;\n  }" if (parenthesized_expression "(param_1 != (char *)0x0)" ( (binary_expression "param_1 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sVar2 = strlen(param_1);\n    puVar3 = (undefined4 *)xmalloc(sVar2 + 9);\n    puVar1 = puVar3;\n    *puVar3 = DAT_001d1138;\n    DAT_001d1138 = puVar1;\n    memcpy(puVar3 + 1,param_1,sVar2 + 1);\n    return puVar3 + 1;\n  }" { (expression_statement "sVar2 = strlen(param_1);" (assignment_expression "sVar2 = strlen(param_1)" identifier = (call_expression "strlen(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "puVar3 = (undefined4 *)xmalloc(sVar2 + 9);" (assignment_expression "puVar3 = (undefined4 *)xmalloc(sVar2 + 9)" identifier = (cast_expression "(undefined4 *)xmalloc(sVar2 + 9)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar2 + 9)" identifier (argument_list "(sVar2 + 9)" ( (binary_expression "sVar2 + 9" identifier + number_literal) ))))) ;) (expression_statement "puVar1 = puVar3;" (assignment_expression "puVar1 = puVar3" identifier = identifier) ;) (expression_statement "*puVar3 = DAT_001d1138;" (assignment_expression "*puVar3 = DAT_001d1138" (pointer_expression "*puVar3" * identifier) = identifier) ;) (expression_statement "DAT_001d1138 = puVar1;" (assignment_expression "DAT_001d1138 = puVar1" identifier = identifier) ;) (expression_statement "memcpy(puVar3 + 1,param_1,sVar2 + 1);" (call_expression "memcpy(puVar3 + 1,param_1,sVar2 + 1)" identifier (argument_list "(puVar3 + 1,param_1,sVar2 + 1)" ( (binary_expression "puVar3 + 1" identifier + number_literal) , identifier , (binary_expression "sVar2 + 1" identifier + number_literal) ))) ;) (return_statement "return puVar3 + 1;" return (binary_expression "puVar3 + 1" identifier + number_literal) ;) })) (return_statement "return (undefined4 *)0x0;" return (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) }))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nchar * __regparm3 def_pool_strdup(char *str)\n\n{\n  def_pool_str *pdVar1;\n  size_t sVar2;\n  def_pool_str *pdVar3;\n  \n  if (str != (char *)0x0) {\n    sVar2 = strlen(str);\n    pdVar3 = (def_pool_str *)xmalloc(sVar2 + 9);\n    pdVar1 = pdVar3;\n    pdVar3->next = pool_strs;\n    pool_strs = pdVar1;\n    memcpy(pdVar3->data,str,sVar2 + 1);\n    return pdVar3->data;\n  }\n  return (char *)0x0;\n}\n\n" comment (function_definition "char * __regparm3 def_pool_strdup(char *str)\n\n{\n  def_pool_str *pdVar1;\n  size_t sVar2;\n  def_pool_str *pdVar3;\n  \n  if (str != (char *)0x0) {\n    sVar2 = strlen(str);\n    pdVar3 = (def_pool_str *)xmalloc(sVar2 + 9);\n    pdVar1 = pdVar3;\n    pdVar3->next = pool_strs;\n    pool_strs = pdVar1;\n    memcpy(pdVar3->data,str,sVar2 + 1);\n    return pdVar3->data;\n  }\n  return (char *)0x0;\n}" primitive_type (pointer_declarator "* __regparm3 def_pool_strdup(char *str)" * (ERROR "__regparm3" identifier) (function_declarator "def_pool_strdup(char *str)" identifier (parameter_list "(char *str)" ( (parameter_declaration "char *str" primitive_type (pointer_declarator "*str" * identifier)) )))) (compound_statement "{\n  def_pool_str *pdVar1;\n  size_t sVar2;\n  def_pool_str *pdVar3;\n  \n  if (str != (char *)0x0) {\n    sVar2 = strlen(str);\n    pdVar3 = (def_pool_str *)xmalloc(sVar2 + 9);\n    pdVar1 = pdVar3;\n    pdVar3->next = pool_strs;\n    pool_strs = pdVar1;\n    memcpy(pdVar3->data,str,sVar2 + 1);\n    return pdVar3->data;\n  }\n  return (char *)0x0;\n}" { (declaration "def_pool_str *pdVar1;" type_identifier (pointer_declarator "*pdVar1" * identifier) ;) (declaration "size_t sVar2;" primitive_type identifier ;) (declaration "def_pool_str *pdVar3;" type_identifier (pointer_declarator "*pdVar3" * identifier) ;) (if_statement "if (str != (char *)0x0) {\n    sVar2 = strlen(str);\n    pdVar3 = (def_pool_str *)xmalloc(sVar2 + 9);\n    pdVar1 = pdVar3;\n    pdVar3->next = pool_strs;\n    pool_strs = pdVar1;\n    memcpy(pdVar3->data,str,sVar2 + 1);\n    return pdVar3->data;\n  }" if (parenthesized_expression "(str != (char *)0x0)" ( (binary_expression "str != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sVar2 = strlen(str);\n    pdVar3 = (def_pool_str *)xmalloc(sVar2 + 9);\n    pdVar1 = pdVar3;\n    pdVar3->next = pool_strs;\n    pool_strs = pdVar1;\n    memcpy(pdVar3->data,str,sVar2 + 1);\n    return pdVar3->data;\n  }" { (expression_statement "sVar2 = strlen(str);" (assignment_expression "sVar2 = strlen(str)" identifier = (call_expression "strlen(str)" identifier (argument_list "(str)" ( identifier )))) ;) (expression_statement "pdVar3 = (def_pool_str *)xmalloc(sVar2 + 9);" (assignment_expression "pdVar3 = (def_pool_str *)xmalloc(sVar2 + 9)" identifier = (cast_expression "(def_pool_str *)xmalloc(sVar2 + 9)" ( (type_descriptor "def_pool_str *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar2 + 9)" identifier (argument_list "(sVar2 + 9)" ( (binary_expression "sVar2 + 9" identifier + number_literal) ))))) ;) (expression_statement "pdVar1 = pdVar3;" (assignment_expression "pdVar1 = pdVar3" identifier = identifier) ;) (expression_statement "pdVar3->next = pool_strs;" (assignment_expression "pdVar3->next = pool_strs" (field_expression "pdVar3->next" identifier -> field_identifier) = identifier) ;) (expression_statement "pool_strs = pdVar1;" (assignment_expression "pool_strs = pdVar1" identifier = identifier) ;) (expression_statement "memcpy(pdVar3->data,str,sVar2 + 1);" (call_expression "memcpy(pdVar3->data,str,sVar2 + 1)" identifier (argument_list "(pdVar3->data,str,sVar2 + 1)" ( (field_expression "pdVar3->data" identifier -> field_identifier) , identifier , (binary_expression "sVar2 + 1" identifier + number_literal) ))) ;) (return_statement "return pdVar3->data;" return (field_expression "pdVar3->data" identifier -> field_identifier) ;) })) (return_statement "return (char *)0x0;" return (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })))
(translation_unit "undefined4 * __regparm3 FUN_00058310(char *param_1)\n\n{\n  undefined4 *puVar1;\n  size_t sVar2;\n  undefined4 *puVar3;\n  \n  if (param_1 != (char *)0x0) {\n    sVar2 = strlen(param_1);\n    puVar3 = (undefined4 *)xmalloc(sVar2 + 9);\n    puVar1 = puVar3;\n    *puVar3 = DAT_001d1138;\n    DAT_001d1138 = puVar1;\n    memcpy(puVar3 + 1,param_1,sVar2 + 1);\n    return puVar3 + 1;\n  }\n  return (undefined4 *)0x0;\n}\n\n" (ERROR "undefined4 * __regparm3 FUN_00058310(char *param_1)" (binary_expression "undefined4 * __regparm3 FUN_00058310(char *param_1)" identifier * (ERROR "__regparm3" identifier) (call_expression "FUN_00058310(char *param_1)" identifier (argument_list "(char *param_1)" ( (binary_expression "char *param_1" identifier * identifier) ))))) (compound_statement "{\n  undefined4 *puVar1;\n  size_t sVar2;\n  undefined4 *puVar3;\n  \n  if (param_1 != (char *)0x0) {\n    sVar2 = strlen(param_1);\n    puVar3 = (undefined4 *)xmalloc(sVar2 + 9);\n    puVar1 = puVar3;\n    *puVar3 = DAT_001d1138;\n    DAT_001d1138 = puVar1;\n    memcpy(puVar3 + 1,param_1,sVar2 + 1);\n    return puVar3 + 1;\n  }\n  return (undefined4 *)0x0;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "size_t sVar2;" primitive_type identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (if_statement "if (param_1 != (char *)0x0) {\n    sVar2 = strlen(param_1);\n    puVar3 = (undefined4 *)xmalloc(sVar2 + 9);\n    puVar1 = puVar3;\n    *puVar3 = DAT_001d1138;\n    DAT_001d1138 = puVar1;\n    memcpy(puVar3 + 1,param_1,sVar2 + 1);\n    return puVar3 + 1;\n  }" if (parenthesized_expression "(param_1 != (char *)0x0)" ( (binary_expression "param_1 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sVar2 = strlen(param_1);\n    puVar3 = (undefined4 *)xmalloc(sVar2 + 9);\n    puVar1 = puVar3;\n    *puVar3 = DAT_001d1138;\n    DAT_001d1138 = puVar1;\n    memcpy(puVar3 + 1,param_1,sVar2 + 1);\n    return puVar3 + 1;\n  }" { (expression_statement "sVar2 = strlen(param_1);" (assignment_expression "sVar2 = strlen(param_1)" identifier = (call_expression "strlen(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "puVar3 = (undefined4 *)xmalloc(sVar2 + 9);" (assignment_expression "puVar3 = (undefined4 *)xmalloc(sVar2 + 9)" identifier = (cast_expression "(undefined4 *)xmalloc(sVar2 + 9)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar2 + 9)" identifier (argument_list "(sVar2 + 9)" ( (binary_expression "sVar2 + 9" identifier + number_literal) ))))) ;) (expression_statement "puVar1 = puVar3;" (assignment_expression "puVar1 = puVar3" identifier = identifier) ;) (expression_statement "*puVar3 = DAT_001d1138;" (assignment_expression "*puVar3 = DAT_001d1138" (pointer_expression "*puVar3" * identifier) = identifier) ;) (expression_statement "DAT_001d1138 = puVar1;" (assignment_expression "DAT_001d1138 = puVar1" identifier = identifier) ;) (expression_statement "memcpy(puVar3 + 1,param_1,sVar2 + 1);" (call_expression "memcpy(puVar3 + 1,param_1,sVar2 + 1)" identifier (argument_list "(puVar3 + 1,param_1,sVar2 + 1)" ( (binary_expression "puVar3 + 1" identifier + number_literal) , identifier , (binary_expression "sVar2 + 1" identifier + number_literal) ))) ;) (return_statement "return puVar3 + 1;" return (binary_expression "puVar3 + 1" identifier + number_literal) ;) })) (return_statement "return (undefined4 *)0x0;" return (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) }))
(translation_unit (ERROR (binary_expression IDENT * (ERROR IDENT) (call_expression IDENT (argument_list ( (binary_expression IDENT * IDENT) ))))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , (binary_expression IDENT + LIT) ))) ;) (return_statement return (binary_expression IDENT + LIT) ;) })) (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) }))
(ERROR "undefined4 * __regparm3 FUN_00058310(char *param_1)" (binary_expression "undefined4 * __regparm3 FUN_00058310(char *param_1)" (identifier "undefined4") (* "*") (ERROR "__regparm3" (identifier "__regparm3")) (call_expression "FUN_00058310(char *param_1)" (identifier "FUN_00058310") (argument_list "(char *param_1)" (( "(") (binary_expression "char *param_1" (identifier "char") (* "*") (identifier "param_1")) () ")"))))) (compound_statement "{\n  undefined4 *puVar1;\n  size_t sVar2;\n  undefined4 *puVar3;\n  \n  if (param_1 != (char *)0x0) {\n    sVar2 = strlen(param_1);\n    puVar3 = (undefined4 *)xmalloc(sVar2 + 9);\n    puVar1 = puVar3;\n    *puVar3 = DAT_001d1138;\n    DAT_001d1138 = puVar1;\n    memcpy(puVar3 + 1,param_1,sVar2 + 1);\n    return puVar3 + 1;\n  }\n  return (undefined4 *)0x0;\n}" ({ "{") (declaration "undefined4 *puVar1;" (type_identifier "undefined4") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "size_t sVar2;" (primitive_type "size_t") (identifier "sVar2") (; ";")) (declaration "undefined4 *puVar3;" (type_identifier "undefined4") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (if_statement "if (param_1 != (char *)0x0) {\n    sVar2 = strlen(param_1);\n    puVar3 = (undefined4 *)xmalloc(sVar2 + 9);\n    puVar1 = puVar3;\n    *puVar3 = DAT_001d1138;\n    DAT_001d1138 = puVar1;\n    memcpy(puVar3 + 1,param_1,sVar2 + 1);\n    return puVar3 + 1;\n  }" (if "if") (parenthesized_expression "(param_1 != (char *)0x0)" (( "(") (binary_expression "param_1 != (char *)0x0" (identifier "param_1") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    sVar2 = strlen(param_1);\n    puVar3 = (undefined4 *)xmalloc(sVar2 + 9);\n    puVar1 = puVar3;\n    *puVar3 = DAT_001d1138;\n    DAT_001d1138 = puVar1;\n    memcpy(puVar3 + 1,param_1,sVar2 + 1);\n    return puVar3 + 1;\n  }" ({ "{") (expression_statement "sVar2 = strlen(param_1);" (assignment_expression "sVar2 = strlen(param_1)" (identifier "sVar2") (= "=") (call_expression "strlen(param_1)" (identifier "strlen") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "puVar3 = (undefined4 *)xmalloc(sVar2 + 9);" (assignment_expression "puVar3 = (undefined4 *)xmalloc(sVar2 + 9)" (identifier "puVar3") (= "=") (cast_expression "(undefined4 *)xmalloc(sVar2 + 9)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(sVar2 + 9)" (identifier "xmalloc") (argument_list "(sVar2 + 9)" (( "(") (binary_expression "sVar2 + 9" (identifier "sVar2") (+ "+") (number_literal "9")) () ")"))))) (; ";")) (expression_statement "puVar1 = puVar3;" (assignment_expression "puVar1 = puVar3" (identifier "puVar1") (= "=") (identifier "puVar3")) (; ";")) (expression_statement "*puVar3 = DAT_001d1138;" (assignment_expression "*puVar3 = DAT_001d1138" (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (= "=") (identifier "DAT_001d1138")) (; ";")) (expression_statement "DAT_001d1138 = puVar1;" (assignment_expression "DAT_001d1138 = puVar1" (identifier "DAT_001d1138") (= "=") (identifier "puVar1")) (; ";")) (expression_statement "memcpy(puVar3 + 1,param_1,sVar2 + 1);" (call_expression "memcpy(puVar3 + 1,param_1,sVar2 + 1)" (identifier "memcpy") (argument_list "(puVar3 + 1,param_1,sVar2 + 1)" (( "(") (binary_expression "puVar3 + 1" (identifier "puVar3") (+ "+") (number_literal "1")) (, ",") (identifier "param_1") (, ",") (binary_expression "sVar2 + 1" (identifier "sVar2") (+ "+") (number_literal "1")) () ")"))) (; ";")) (return_statement "return puVar3 + 1;" (return "return") (binary_expression "puVar3 + 1" (identifier "puVar3") (+ "+") (number_literal "1")) (; ";")) (} "}"))) (return_statement "return (undefined4 *)0x0;" (return "return") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))

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

char * __regparm3 function_1(char *var_1)

{
  type_1 *pdVar1;
  size_t var_4;
  type_1 *pdVar3;
  
  if (var_1 != (char *)0x0) {
    var_4 = var_2(var_1);
    pdVar3 = (type_1 *)var_3(var_4 + 9);
    pdVar1 = pdVar3;
    pdVar3->next = pool_strs;
    pool_strs = pdVar1;
    var_5(pdVar3->data,var_1,var_4 + 1);
    return pdVar3->data;
  }
  return (char *)0x0;
}


(translation_unit (ERROR (binary_expression left: (identifier) (ERROR (identifier)) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))))) (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (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 (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier) (binary_expression left: (identifier) right: (number_literal))))) (return_statement (binary_expression left: (identifier) right: (number_literal))))) (return_statement (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))

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

undefined4 * __regparm3 MASKED(char *param_1)

{
  undefined4 *puVar1;
  size_t sVar2;
  undefined4 *puVar3;
  
  if (param_1 != (char *)0x0) {
    sVar2 = strlen(param_1);
    puVar3 = (undefined4 *)xmalloc(sVar2 + 9);
    puVar1 = puVar3;
    *puVar3 = DAT_001d1138;
    DAT_001d1138 = puVar1;
    memcpy(puVar3 + 1,param_1,sVar2 + 1);
    return puVar3 + 1;
  }
  return (undefined4 *)0x0;
}

