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

void __regparm3 strcut(char *haystack,char *needle)

{
  char cVar1;
  char *pcVar2;
  size_t sVar3;
  char *pcVar4;
  
  pcVar2 = strstr(haystack,needle);
  if (pcVar2 != (char *)0x0) {
    sVar3 = strlen(needle);
    pcVar4 = pcVar2 + sVar3;
    cVar1 = *pcVar4;
    while (cVar1 != '\0') {
      pcVar4 = pcVar4 + 1;
      *pcVar2 = cVar1;
      pcVar2 = pcVar2 + 1;
      cVar1 = *pcVar4;
    }
    *pcVar2 = '\0';
  }
  return;
}



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

void __regparm3 FUN_0001f8f0(char *param_1,char *param_2)

{
  char cVar1;
  char *pcVar2;
  size_t sVar3;
  char *pcVar4;
  
  pcVar2 = strstr(param_1,param_2);
  if (pcVar2 != (char *)0x0) {
    sVar3 = strlen(param_2);
    pcVar4 = pcVar2 + sVar3;
    cVar1 = *pcVar4;
    while (cVar1 != '\0') {
      pcVar4 = pcVar4 + 1;
      *pcVar2 = cVar1;
      pcVar2 = pcVar2 + 1;
      cVar1 = *pcVar4;
    }
    *pcVar2 = '\0';
  }
  return;
}


PUSH EDI
MOV EDI,EDX
PUSH ESI
PUSH EBX
CALL 0x00016a30
ADD EBX,0x11c706
SUB ESP,0x8
PUSH EDX
PUSH EAX
CALL 0x00015080
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0001f943
SUB ESP,0xc
MOV ESI,EAX
PUSH EDI
CALL 0x00015700
ADD ESP,0x10
ADD EAX,ESI
MOVZX EDX,byte ptr [EAX]
TEST DL,DL
JZ 0x0001f940
LEA ESI,[ESI]
NOP
ADD EAX,0x1
ADD ESI,0x1
MOV byte ptr [ESI + -0x1],DL
MOVZX EDX,byte ptr [EAX]
TEST DL,DL
JNZ 0x0001f930
MOV byte ptr [ESI],0x0
POP EBX
POP ESI
POP EDI
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid __regparm3 FUN_0001f8f0(char *param_1,char *param_2)\n\n{\n  char cVar1;\n  char *pcVar2;\n  size_t sVar3;\n  char *pcVar4;\n  \n  pcVar2 = strstr(param_1,param_2);\n  if (pcVar2 != (char *)0x0) {\n    sVar3 = strlen(param_2);\n    pcVar4 = pcVar2 + sVar3;\n    cVar1 = *pcVar4;\n    while (cVar1 != '\0') {\n      pcVar4 = pcVar4 + 1;\n      *pcVar2 = cVar1;\n      pcVar2 = pcVar2 + 1;\n      cVar1 = *pcVar4;\n    }\n    *pcVar2 = '\0';\n  }\n  return;\n}\n\n" comment (function_definition "void __regparm3 FUN_0001f8f0(char *param_1,char *param_2)\n\n{\n  char cVar1;\n  char *pcVar2;\n  size_t sVar3;\n  char *pcVar4;\n  \n  pcVar2 = strstr(param_1,param_2);\n  if (pcVar2 != (char *)0x0) {\n    sVar3 = strlen(param_2);\n    pcVar4 = pcVar2 + sVar3;\n    cVar1 = *pcVar4;\n    while (cVar1 != '\0') {\n      pcVar4 = pcVar4 + 1;\n      *pcVar2 = cVar1;\n      pcVar2 = pcVar2 + 1;\n      cVar1 = *pcVar4;\n    }\n    *pcVar2 = '\0';\n  }\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0001f8f0(char *param_1,char *param_2)" identifier (parameter_list "(char *param_1,char *param_2)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  char *pcVar2;\n  size_t sVar3;\n  char *pcVar4;\n  \n  pcVar2 = strstr(param_1,param_2);\n  if (pcVar2 != (char *)0x0) {\n    sVar3 = strlen(param_2);\n    pcVar4 = pcVar2 + sVar3;\n    cVar1 = *pcVar4;\n    while (cVar1 != '\0') {\n      pcVar4 = pcVar4 + 1;\n      *pcVar2 = cVar1;\n      pcVar2 = pcVar2 + 1;\n      cVar1 = *pcVar4;\n    }\n    *pcVar2 = '\0';\n  }\n  return;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (expression_statement "pcVar2 = strstr(param_1,param_2);" (assignment_expression "pcVar2 = strstr(param_1,param_2)" identifier = (call_expression "strstr(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier )))) ;) (if_statement "if (pcVar2 != (char *)0x0) {\n    sVar3 = strlen(param_2);\n    pcVar4 = pcVar2 + sVar3;\n    cVar1 = *pcVar4;\n    while (cVar1 != '\0') {\n      pcVar4 = pcVar4 + 1;\n      *pcVar2 = cVar1;\n      pcVar2 = pcVar2 + 1;\n      cVar1 = *pcVar4;\n    }\n    *pcVar2 = '\0';\n  }" if (parenthesized_expression "(pcVar2 != (char *)0x0)" ( (binary_expression "pcVar2 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sVar3 = strlen(param_2);\n    pcVar4 = pcVar2 + sVar3;\n    cVar1 = *pcVar4;\n    while (cVar1 != '\0') {\n      pcVar4 = pcVar4 + 1;\n      *pcVar2 = cVar1;\n      pcVar2 = pcVar2 + 1;\n      cVar1 = *pcVar4;\n    }\n    *pcVar2 = '\0';\n  }" { (expression_statement "sVar3 = strlen(param_2);" (assignment_expression "sVar3 = strlen(param_2)" identifier = (call_expression "strlen(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "pcVar4 = pcVar2 + sVar3;" (assignment_expression "pcVar4 = pcVar2 + sVar3" identifier = (binary_expression "pcVar2 + sVar3" identifier + identifier)) ;) (expression_statement "cVar1 = *pcVar4;" (assignment_expression "cVar1 = *pcVar4" identifier = (pointer_expression "*pcVar4" * identifier)) ;) (while_statement "while (cVar1 != '\0') {\n      pcVar4 = pcVar4 + 1;\n      *pcVar2 = cVar1;\n      pcVar2 = pcVar2 + 1;\n      cVar1 = *pcVar4;\n    }" while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      pcVar4 = pcVar4 + 1;\n      *pcVar2 = cVar1;\n      pcVar2 = pcVar2 + 1;\n      cVar1 = *pcVar4;\n    }" { (expression_statement "pcVar4 = pcVar4 + 1;" (assignment_expression "pcVar4 = pcVar4 + 1" identifier = (binary_expression "pcVar4 + 1" identifier + number_literal)) ;) (expression_statement "*pcVar2 = cVar1;" (assignment_expression "*pcVar2 = cVar1" (pointer_expression "*pcVar2" * identifier) = identifier) ;) (expression_statement "pcVar2 = pcVar2 + 1;" (assignment_expression "pcVar2 = pcVar2 + 1" identifier = (binary_expression "pcVar2 + 1" identifier + number_literal)) ;) (expression_statement "cVar1 = *pcVar4;" (assignment_expression "cVar1 = *pcVar4" identifier = (pointer_expression "*pcVar4" * identifier)) ;) })) (expression_statement "*pcVar2 = '\0';" (assignment_expression "*pcVar2 = '\0'" (pointer_expression "*pcVar2" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid __regparm3 strcut(char *haystack,char *needle)\n\n{\n  char cVar1;\n  char *pcVar2;\n  size_t sVar3;\n  char *pcVar4;\n  \n  pcVar2 = strstr(haystack,needle);\n  if (pcVar2 != (char *)0x0) {\n    sVar3 = strlen(needle);\n    pcVar4 = pcVar2 + sVar3;\n    cVar1 = *pcVar4;\n    while (cVar1 != '\0') {\n      pcVar4 = pcVar4 + 1;\n      *pcVar2 = cVar1;\n      pcVar2 = pcVar2 + 1;\n      cVar1 = *pcVar4;\n    }\n    *pcVar2 = '\0';\n  }\n  return;\n}\n\n" comment (function_definition "void __regparm3 strcut(char *haystack,char *needle)\n\n{\n  char cVar1;\n  char *pcVar2;\n  size_t sVar3;\n  char *pcVar4;\n  \n  pcVar2 = strstr(haystack,needle);\n  if (pcVar2 != (char *)0x0) {\n    sVar3 = strlen(needle);\n    pcVar4 = pcVar2 + sVar3;\n    cVar1 = *pcVar4;\n    while (cVar1 != '\0') {\n      pcVar4 = pcVar4 + 1;\n      *pcVar2 = cVar1;\n      pcVar2 = pcVar2 + 1;\n      cVar1 = *pcVar4;\n    }\n    *pcVar2 = '\0';\n  }\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "strcut(char *haystack,char *needle)" identifier (parameter_list "(char *haystack,char *needle)" ( (parameter_declaration "char *haystack" primitive_type (pointer_declarator "*haystack" * identifier)) , (parameter_declaration "char *needle" primitive_type (pointer_declarator "*needle" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  char *pcVar2;\n  size_t sVar3;\n  char *pcVar4;\n  \n  pcVar2 = strstr(haystack,needle);\n  if (pcVar2 != (char *)0x0) {\n    sVar3 = strlen(needle);\n    pcVar4 = pcVar2 + sVar3;\n    cVar1 = *pcVar4;\n    while (cVar1 != '\0') {\n      pcVar4 = pcVar4 + 1;\n      *pcVar2 = cVar1;\n      pcVar2 = pcVar2 + 1;\n      cVar1 = *pcVar4;\n    }\n    *pcVar2 = '\0';\n  }\n  return;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (expression_statement "pcVar2 = strstr(haystack,needle);" (assignment_expression "pcVar2 = strstr(haystack,needle)" identifier = (call_expression "strstr(haystack,needle)" identifier (argument_list "(haystack,needle)" ( identifier , identifier )))) ;) (if_statement "if (pcVar2 != (char *)0x0) {\n    sVar3 = strlen(needle);\n    pcVar4 = pcVar2 + sVar3;\n    cVar1 = *pcVar4;\n    while (cVar1 != '\0') {\n      pcVar4 = pcVar4 + 1;\n      *pcVar2 = cVar1;\n      pcVar2 = pcVar2 + 1;\n      cVar1 = *pcVar4;\n    }\n    *pcVar2 = '\0';\n  }" if (parenthesized_expression "(pcVar2 != (char *)0x0)" ( (binary_expression "pcVar2 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sVar3 = strlen(needle);\n    pcVar4 = pcVar2 + sVar3;\n    cVar1 = *pcVar4;\n    while (cVar1 != '\0') {\n      pcVar4 = pcVar4 + 1;\n      *pcVar2 = cVar1;\n      pcVar2 = pcVar2 + 1;\n      cVar1 = *pcVar4;\n    }\n    *pcVar2 = '\0';\n  }" { (expression_statement "sVar3 = strlen(needle);" (assignment_expression "sVar3 = strlen(needle)" identifier = (call_expression "strlen(needle)" identifier (argument_list "(needle)" ( identifier )))) ;) (expression_statement "pcVar4 = pcVar2 + sVar3;" (assignment_expression "pcVar4 = pcVar2 + sVar3" identifier = (binary_expression "pcVar2 + sVar3" identifier + identifier)) ;) (expression_statement "cVar1 = *pcVar4;" (assignment_expression "cVar1 = *pcVar4" identifier = (pointer_expression "*pcVar4" * identifier)) ;) (while_statement "while (cVar1 != '\0') {\n      pcVar4 = pcVar4 + 1;\n      *pcVar2 = cVar1;\n      pcVar2 = pcVar2 + 1;\n      cVar1 = *pcVar4;\n    }" while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      pcVar4 = pcVar4 + 1;\n      *pcVar2 = cVar1;\n      pcVar2 = pcVar2 + 1;\n      cVar1 = *pcVar4;\n    }" { (expression_statement "pcVar4 = pcVar4 + 1;" (assignment_expression "pcVar4 = pcVar4 + 1" identifier = (binary_expression "pcVar4 + 1" identifier + number_literal)) ;) (expression_statement "*pcVar2 = cVar1;" (assignment_expression "*pcVar2 = cVar1" (pointer_expression "*pcVar2" * identifier) = identifier) ;) (expression_statement "pcVar2 = pcVar2 + 1;" (assignment_expression "pcVar2 = pcVar2 + 1" identifier = (binary_expression "pcVar2 + 1" identifier + number_literal)) ;) (expression_statement "cVar1 = *pcVar4;" (assignment_expression "cVar1 = *pcVar4" identifier = (pointer_expression "*pcVar4" * identifier)) ;) })) (expression_statement "*pcVar2 = '\0';" (assignment_expression "*pcVar2 = '\0'" (pointer_expression "*pcVar2" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void __regparm3 FUN_0001f8f0(char *param_1,char *param_2)\n\n{\n  char cVar1;\n  char *pcVar2;\n  size_t sVar3;\n  char *pcVar4;\n  \n  pcVar2 = strstr(param_1,param_2);\n  if (pcVar2 != (char *)0x0) {\n    sVar3 = strlen(param_2);\n    pcVar4 = pcVar2 + sVar3;\n    cVar1 = *pcVar4;\n    while (cVar1 != '\0') {\n      pcVar4 = pcVar4 + 1;\n      *pcVar2 = cVar1;\n      pcVar2 = pcVar2 + 1;\n      cVar1 = *pcVar4;\n    }\n    *pcVar2 = '\0';\n  }\n  return;\n}\n\n" (function_definition "void __regparm3 FUN_0001f8f0(char *param_1,char *param_2)\n\n{\n  char cVar1;\n  char *pcVar2;\n  size_t sVar3;\n  char *pcVar4;\n  \n  pcVar2 = strstr(param_1,param_2);\n  if (pcVar2 != (char *)0x0) {\n    sVar3 = strlen(param_2);\n    pcVar4 = pcVar2 + sVar3;\n    cVar1 = *pcVar4;\n    while (cVar1 != '\0') {\n      pcVar4 = pcVar4 + 1;\n      *pcVar2 = cVar1;\n      pcVar2 = pcVar2 + 1;\n      cVar1 = *pcVar4;\n    }\n    *pcVar2 = '\0';\n  }\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0001f8f0(char *param_1,char *param_2)" identifier (parameter_list "(char *param_1,char *param_2)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  char *pcVar2;\n  size_t sVar3;\n  char *pcVar4;\n  \n  pcVar2 = strstr(param_1,param_2);\n  if (pcVar2 != (char *)0x0) {\n    sVar3 = strlen(param_2);\n    pcVar4 = pcVar2 + sVar3;\n    cVar1 = *pcVar4;\n    while (cVar1 != '\0') {\n      pcVar4 = pcVar4 + 1;\n      *pcVar2 = cVar1;\n      pcVar2 = pcVar2 + 1;\n      cVar1 = *pcVar4;\n    }\n    *pcVar2 = '\0';\n  }\n  return;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (expression_statement "pcVar2 = strstr(param_1,param_2);" (assignment_expression "pcVar2 = strstr(param_1,param_2)" identifier = (call_expression "strstr(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier )))) ;) (if_statement "if (pcVar2 != (char *)0x0) {\n    sVar3 = strlen(param_2);\n    pcVar4 = pcVar2 + sVar3;\n    cVar1 = *pcVar4;\n    while (cVar1 != '\0') {\n      pcVar4 = pcVar4 + 1;\n      *pcVar2 = cVar1;\n      pcVar2 = pcVar2 + 1;\n      cVar1 = *pcVar4;\n    }\n    *pcVar2 = '\0';\n  }" if (parenthesized_expression "(pcVar2 != (char *)0x0)" ( (binary_expression "pcVar2 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sVar3 = strlen(param_2);\n    pcVar4 = pcVar2 + sVar3;\n    cVar1 = *pcVar4;\n    while (cVar1 != '\0') {\n      pcVar4 = pcVar4 + 1;\n      *pcVar2 = cVar1;\n      pcVar2 = pcVar2 + 1;\n      cVar1 = *pcVar4;\n    }\n    *pcVar2 = '\0';\n  }" { (expression_statement "sVar3 = strlen(param_2);" (assignment_expression "sVar3 = strlen(param_2)" identifier = (call_expression "strlen(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "pcVar4 = pcVar2 + sVar3;" (assignment_expression "pcVar4 = pcVar2 + sVar3" identifier = (binary_expression "pcVar2 + sVar3" identifier + identifier)) ;) (expression_statement "cVar1 = *pcVar4;" (assignment_expression "cVar1 = *pcVar4" identifier = (pointer_expression "*pcVar4" * identifier)) ;) (while_statement "while (cVar1 != '\0') {\n      pcVar4 = pcVar4 + 1;\n      *pcVar2 = cVar1;\n      pcVar2 = pcVar2 + 1;\n      cVar1 = *pcVar4;\n    }" while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      pcVar4 = pcVar4 + 1;\n      *pcVar2 = cVar1;\n      pcVar2 = pcVar2 + 1;\n      cVar1 = *pcVar4;\n    }" { (expression_statement "pcVar4 = pcVar4 + 1;" (assignment_expression "pcVar4 = pcVar4 + 1" identifier = (binary_expression "pcVar4 + 1" identifier + number_literal)) ;) (expression_statement "*pcVar2 = cVar1;" (assignment_expression "*pcVar2 = cVar1" (pointer_expression "*pcVar2" * identifier) = identifier) ;) (expression_statement "pcVar2 = pcVar2 + 1;" (assignment_expression "pcVar2 = pcVar2 + 1" identifier = (binary_expression "pcVar2 + 1" identifier + number_literal)) ;) (expression_statement "cVar1 = *pcVar4;" (assignment_expression "cVar1 = *pcVar4" identifier = (pointer_expression "*pcVar4" * identifier)) ;) })) (expression_statement "*pcVar2 = '\0';" (assignment_expression "*pcVar2 = '\0'" (pointer_expression "*pcVar2" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , 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 = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) })) (return_statement return ;) })))
(function_definition "void __regparm3 FUN_0001f8f0(char *param_1,char *param_2)\n\n{\n  char cVar1;\n  char *pcVar2;\n  size_t sVar3;\n  char *pcVar4;\n  \n  pcVar2 = strstr(param_1,param_2);\n  if (pcVar2 != (char *)0x0) {\n    sVar3 = strlen(param_2);\n    pcVar4 = pcVar2 + sVar3;\n    cVar1 = *pcVar4;\n    while (cVar1 != '\0') {\n      pcVar4 = pcVar4 + 1;\n      *pcVar2 = cVar1;\n      pcVar2 = pcVar2 + 1;\n      cVar1 = *pcVar4;\n    }\n    *pcVar2 = '\0';\n  }\n  return;\n}" (primitive_type "void") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_0001f8f0(char *param_1,char *param_2)" (identifier "FUN_0001f8f0") (parameter_list "(char *param_1,char *param_2)" (( "(") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "char *param_2" (primitive_type "char") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  char cVar1;\n  char *pcVar2;\n  size_t sVar3;\n  char *pcVar4;\n  \n  pcVar2 = strstr(param_1,param_2);\n  if (pcVar2 != (char *)0x0) {\n    sVar3 = strlen(param_2);\n    pcVar4 = pcVar2 + sVar3;\n    cVar1 = *pcVar4;\n    while (cVar1 != '\0') {\n      pcVar4 = pcVar4 + 1;\n      *pcVar2 = cVar1;\n      pcVar2 = pcVar2 + 1;\n      cVar1 = *pcVar4;\n    }\n    *pcVar2 = '\0';\n  }\n  return;\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "char *pcVar2;" (primitive_type "char") (pointer_declarator "*pcVar2" (* "*") (identifier "pcVar2")) (; ";")) (declaration "size_t sVar3;" (primitive_type "size_t") (identifier "sVar3") (; ";")) (declaration "char *pcVar4;" (primitive_type "char") (pointer_declarator "*pcVar4" (* "*") (identifier "pcVar4")) (; ";")) (expression_statement "pcVar2 = strstr(param_1,param_2);" (assignment_expression "pcVar2 = strstr(param_1,param_2)" (identifier "pcVar2") (= "=") (call_expression "strstr(param_1,param_2)" (identifier "strstr") (argument_list "(param_1,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (pcVar2 != (char *)0x0) {\n    sVar3 = strlen(param_2);\n    pcVar4 = pcVar2 + sVar3;\n    cVar1 = *pcVar4;\n    while (cVar1 != '\0') {\n      pcVar4 = pcVar4 + 1;\n      *pcVar2 = cVar1;\n      pcVar2 = pcVar2 + 1;\n      cVar1 = *pcVar4;\n    }\n    *pcVar2 = '\0';\n  }" (if "if") (parenthesized_expression "(pcVar2 != (char *)0x0)" (( "(") (binary_expression "pcVar2 != (char *)0x0" (identifier "pcVar2") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    sVar3 = strlen(param_2);\n    pcVar4 = pcVar2 + sVar3;\n    cVar1 = *pcVar4;\n    while (cVar1 != '\0') {\n      pcVar4 = pcVar4 + 1;\n      *pcVar2 = cVar1;\n      pcVar2 = pcVar2 + 1;\n      cVar1 = *pcVar4;\n    }\n    *pcVar2 = '\0';\n  }" ({ "{") (expression_statement "sVar3 = strlen(param_2);" (assignment_expression "sVar3 = strlen(param_2)" (identifier "sVar3") (= "=") (call_expression "strlen(param_2)" (identifier "strlen") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "pcVar4 = pcVar2 + sVar3;" (assignment_expression "pcVar4 = pcVar2 + sVar3" (identifier "pcVar4") (= "=") (binary_expression "pcVar2 + sVar3" (identifier "pcVar2") (+ "+") (identifier "sVar3"))) (; ";")) (expression_statement "cVar1 = *pcVar4;" (assignment_expression "cVar1 = *pcVar4" (identifier "cVar1") (= "=") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4"))) (; ";")) (while_statement "while (cVar1 != '\0') {\n      pcVar4 = pcVar4 + 1;\n      *pcVar2 = cVar1;\n      pcVar2 = pcVar2 + 1;\n      cVar1 = *pcVar4;\n    }" (while "while") (parenthesized_expression "(cVar1 != '\0')" (( "(") (binary_expression "cVar1 != '\0'" (identifier "cVar1") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      pcVar4 = pcVar4 + 1;\n      *pcVar2 = cVar1;\n      pcVar2 = pcVar2 + 1;\n      cVar1 = *pcVar4;\n    }" ({ "{") (expression_statement "pcVar4 = pcVar4 + 1;" (assignment_expression "pcVar4 = pcVar4 + 1" (identifier "pcVar4") (= "=") (binary_expression "pcVar4 + 1" (identifier "pcVar4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*pcVar2 = cVar1;" (assignment_expression "*pcVar2 = cVar1" (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) (= "=") (identifier "cVar1")) (; ";")) (expression_statement "pcVar2 = pcVar2 + 1;" (assignment_expression "pcVar2 = pcVar2 + 1" (identifier "pcVar2") (= "=") (binary_expression "pcVar2 + 1" (identifier "pcVar2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar1 = *pcVar4;" (assignment_expression "cVar1 = *pcVar4" (identifier "cVar1") (= "=") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4"))) (; ";")) (} "}"))) (expression_statement "*pcVar2 = '\0';" (assignment_expression "*pcVar2 = '\0'" (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

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

void __regparm3 function_1(char *haystack,char *needle)

{
  char var_5;
  char *var_2;
  size_t var_4;
  char *var_6;
  
  var_2 = var_1(haystack,needle);
  if (var_2 != (char *)0x0) {
    var_4 = var_3(needle);
    var_6 = var_2 + var_4;
    var_5 = *var_6;
    while (var_5 != '\0') {
      var_6 = var_6 + 1;
      *var_2 = var_5;
      var_2 = var_2 + 1;
      var_5 = *var_6;
    }
    *var_2 = '\0';
  }
  return;
}


(translation_unit (function_definition type: (primitive_type) (ERROR (identifier)) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (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: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))))) (return_statement))))

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

void __regparm3 MASKED(char *param_1,char *param_2)

{
  char cVar1;
  char *pcVar2;
  size_t sVar3;
  char *pcVar4;
  
  pcVar2 = strstr(param_1,param_2);
  if (pcVar2 != (char *)0x0) {
    sVar3 = strlen(param_2);
    pcVar4 = pcVar2 + sVar3;
    cVar1 = *pcVar4;
    while (cVar1 != '\0') {
      pcVar4 = pcVar4 + 1;
      *pcVar2 = cVar1;
      pcVar2 = pcVar2 + 1;
      cVar1 = *pcVar4;
    }
    *pcVar2 = '\0';
  }
  return;
}

