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

char * text_yank(char *p,char *q,int dest)

{
}



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

int __regparm3 FUN_000a4c0a(int param_1,int param_2,int param_3)

{
  int iVar1;
  undefined4 uVar2;
  
  if (param_2 - param_1 < 0) {
    param_1 = param_2;
  }
  iVar1 = DAT_000dc700 + param_3 * 4;
  free(*(void **)(iVar1 + 0x88));
  uVar2 = FUN_0001a346();
  *(undefined4 *)(iVar1 + 0x88) = uVar2;
  return param_1;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0xc
CALL 0x00017650
ADD EBX,0x36e0a
MOV ESI,EAX
MOV EDI,EDX
SUB EDI,EAX
JNS 0x000a4c2a
SUB ESI,EDX
MOV EDI,ESI
MOV ESI,EDX
MOV EAX,dword ptr [EBX + 0xce0]
LEA EBP,[EAX + ECX*0x4]
SUB ESP,0xc
PUSH dword ptr [EBP + 0x88]
CALL 0x000175a0
LEA EDX,[EDI + 0x1]
MOV EAX,ESI
CALL 0x0001a346
MOV dword ptr [EBP + 0x88],EAX
MOV EAX,ESI
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint __regparm3 FUN_000a4c0a(int param_1,int param_2,int param_3)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  \n  if (param_2 - param_1 < 0) {\n    param_1 = param_2;\n  }\n  iVar1 = DAT_000dc700 + param_3 * 4;\n  free(*(void **)(iVar1 + 0x88));\n  uVar2 = FUN_0001a346();\n  *(undefined4 *)(iVar1 + 0x88) = uVar2;\n  return param_1;\n}\n\n" comment (function_definition "int __regparm3 FUN_000a4c0a(int param_1,int param_2,int param_3)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  \n  if (param_2 - param_1 < 0) {\n    param_1 = param_2;\n  }\n  iVar1 = DAT_000dc700 + param_3 * 4;\n  free(*(void **)(iVar1 + 0x88));\n  uVar2 = FUN_0001a346();\n  *(undefined4 *)(iVar1 + 0x88) = uVar2;\n  return param_1;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_000a4c0a(int param_1,int param_2,int param_3)" identifier (parameter_list "(int param_1,int param_2,int param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  \n  if (param_2 - param_1 < 0) {\n    param_1 = param_2;\n  }\n  iVar1 = DAT_000dc700 + param_3 * 4;\n  free(*(void **)(iVar1 + 0x88));\n  uVar2 = FUN_0001a346();\n  *(undefined4 *)(iVar1 + 0x88) = uVar2;\n  return param_1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (if_statement "if (param_2 - param_1 < 0) {\n    param_1 = param_2;\n  }" if (parenthesized_expression "(param_2 - param_1 < 0)" ( (binary_expression "param_2 - param_1 < 0" (binary_expression "param_2 - param_1" identifier - identifier) < number_literal) )) (compound_statement "{\n    param_1 = param_2;\n  }" { (expression_statement "param_1 = param_2;" (assignment_expression "param_1 = param_2" identifier = identifier) ;) })) (expression_statement "iVar1 = DAT_000dc700 + param_3 * 4;" (assignment_expression "iVar1 = DAT_000dc700 + param_3 * 4" identifier = (binary_expression "DAT_000dc700 + param_3 * 4" identifier + (binary_expression "param_3 * 4" identifier * number_literal))) ;) (expression_statement "free(*(void **)(iVar1 + 0x88));" (call_expression "free(*(void **)(iVar1 + 0x88))" identifier (argument_list "(*(void **)(iVar1 + 0x88))" ( (pointer_expression "*(void **)(iVar1 + 0x88)" * (cast_expression "(void **)(iVar1 + 0x88)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x88)" ( (binary_expression "iVar1 + 0x88" identifier + number_literal) )))) ))) ;) (expression_statement "uVar2 = FUN_0001a346();" (assignment_expression "uVar2 = FUN_0001a346()" identifier = (call_expression "FUN_0001a346()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x88) = uVar2;" (assignment_expression "*(undefined4 *)(iVar1 + 0x88) = uVar2" (pointer_expression "*(undefined4 *)(iVar1 + 0x88)" * (cast_expression "(undefined4 *)(iVar1 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x88)" ( (binary_expression "iVar1 + 0x88" identifier + number_literal) )))) = identifier) ;) (return_statement "return param_1;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nchar * text_yank(char *p,char *q,int dest)\n\n{\n}\n\n" comment (function_definition "char * text_yank(char *p,char *q,int dest)\n\n{\n}" primitive_type (pointer_declarator "* text_yank(char *p,char *q,int dest)" * (function_declarator "text_yank(char *p,char *q,int dest)" identifier (parameter_list "(char *p,char *q,int dest)" ( (parameter_declaration "char *p" primitive_type (pointer_declarator "*p" * identifier)) , (parameter_declaration "char *q" primitive_type (pointer_declarator "*q" * identifier)) , (parameter_declaration "int dest" primitive_type identifier) )))) (compound_statement "{\n}" { })))
(translation_unit "int __regparm3 FUN_000a4c0a(int param_1,int param_2,int param_3)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  \n  if (param_2 - param_1 < 0) {\n    param_1 = param_2;\n  }\n  iVar1 = DAT_000dc700 + param_3 * 4;\n  free(*(void **)(iVar1 + 0x88));\n  uVar2 = FUN_0001a346();\n  *(undefined4 *)(iVar1 + 0x88) = uVar2;\n  return param_1;\n}\n\n" (function_definition "int __regparm3 FUN_000a4c0a(int param_1,int param_2,int param_3)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  \n  if (param_2 - param_1 < 0) {\n    param_1 = param_2;\n  }\n  iVar1 = DAT_000dc700 + param_3 * 4;\n  free(*(void **)(iVar1 + 0x88));\n  uVar2 = FUN_0001a346();\n  *(undefined4 *)(iVar1 + 0x88) = uVar2;\n  return param_1;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_000a4c0a(int param_1,int param_2,int param_3)" identifier (parameter_list "(int param_1,int param_2,int param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  \n  if (param_2 - param_1 < 0) {\n    param_1 = param_2;\n  }\n  iVar1 = DAT_000dc700 + param_3 * 4;\n  free(*(void **)(iVar1 + 0x88));\n  uVar2 = FUN_0001a346();\n  *(undefined4 *)(iVar1 + 0x88) = uVar2;\n  return param_1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (if_statement "if (param_2 - param_1 < 0) {\n    param_1 = param_2;\n  }" if (parenthesized_expression "(param_2 - param_1 < 0)" ( (binary_expression "param_2 - param_1 < 0" (binary_expression "param_2 - param_1" identifier - identifier) < number_literal) )) (compound_statement "{\n    param_1 = param_2;\n  }" { (expression_statement "param_1 = param_2;" (assignment_expression "param_1 = param_2" identifier = identifier) ;) })) (expression_statement "iVar1 = DAT_000dc700 + param_3 * 4;" (assignment_expression "iVar1 = DAT_000dc700 + param_3 * 4" identifier = (binary_expression "DAT_000dc700 + param_3 * 4" identifier + (binary_expression "param_3 * 4" identifier * number_literal))) ;) (expression_statement "free(*(void **)(iVar1 + 0x88));" (call_expression "free(*(void **)(iVar1 + 0x88))" identifier (argument_list "(*(void **)(iVar1 + 0x88))" ( (pointer_expression "*(void **)(iVar1 + 0x88)" * (cast_expression "(void **)(iVar1 + 0x88)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x88)" ( (binary_expression "iVar1 + 0x88" identifier + number_literal) )))) ))) ;) (expression_statement "uVar2 = FUN_0001a346();" (assignment_expression "uVar2 = FUN_0001a346()" identifier = (call_expression "FUN_0001a346()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x88) = uVar2;" (assignment_expression "*(undefined4 *)(iVar1 + 0x88) = uVar2" (pointer_expression "*(undefined4 *)(iVar1 + 0x88)" * (cast_expression "(undefined4 *)(iVar1 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x88)" ( (binary_expression "iVar1 + 0x88" identifier + number_literal) )))) = identifier) ;) (return_statement "return param_1;" return identifier ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (return_statement return IDENT ;) })))
(function_definition "int __regparm3 FUN_000a4c0a(int param_1,int param_2,int param_3)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  \n  if (param_2 - param_1 < 0) {\n    param_1 = param_2;\n  }\n  iVar1 = DAT_000dc700 + param_3 * 4;\n  free(*(void **)(iVar1 + 0x88));\n  uVar2 = FUN_0001a346();\n  *(undefined4 *)(iVar1 + 0x88) = uVar2;\n  return param_1;\n}" (primitive_type "int") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_000a4c0a(int param_1,int param_2,int param_3)" (identifier "FUN_000a4c0a") (parameter_list "(int param_1,int param_2,int param_3)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) () ")"))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  \n  if (param_2 - param_1 < 0) {\n    param_1 = param_2;\n  }\n  iVar1 = DAT_000dc700 + param_3 * 4;\n  free(*(void **)(iVar1 + 0x88));\n  uVar2 = FUN_0001a346();\n  *(undefined4 *)(iVar1 + 0x88) = uVar2;\n  return param_1;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (if_statement "if (param_2 - param_1 < 0) {\n    param_1 = param_2;\n  }" (if "if") (parenthesized_expression "(param_2 - param_1 < 0)" (( "(") (binary_expression "param_2 - param_1 < 0" (binary_expression "param_2 - param_1" (identifier "param_2") (- "-") (identifier "param_1")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    param_1 = param_2;\n  }" ({ "{") (expression_statement "param_1 = param_2;" (assignment_expression "param_1 = param_2" (identifier "param_1") (= "=") (identifier "param_2")) (; ";")) (} "}"))) (expression_statement "iVar1 = DAT_000dc700 + param_3 * 4;" (assignment_expression "iVar1 = DAT_000dc700 + param_3 * 4" (identifier "iVar1") (= "=") (binary_expression "DAT_000dc700 + param_3 * 4" (identifier "DAT_000dc700") (+ "+") (binary_expression "param_3 * 4" (identifier "param_3") (* "*") (number_literal "4")))) (; ";")) (expression_statement "free(*(void **)(iVar1 + 0x88));" (call_expression "free(*(void **)(iVar1 + 0x88))" (identifier "free") (argument_list "(*(void **)(iVar1 + 0x88))" (( "(") (pointer_expression "*(void **)(iVar1 + 0x88)" (* "*") (cast_expression "(void **)(iVar1 + 0x88)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x88)" (( "(") (binary_expression "iVar1 + 0x88" (identifier "iVar1") (+ "+") (number_literal "0x88")) () ")")))) () ")"))) (; ";")) (expression_statement "uVar2 = FUN_0001a346();" (assignment_expression "uVar2 = FUN_0001a346()" (identifier "uVar2") (= "=") (call_expression "FUN_0001a346()" (identifier "FUN_0001a346") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar1 + 0x88) = uVar2;" (assignment_expression "*(undefined4 *)(iVar1 + 0x88) = uVar2" (pointer_expression "*(undefined4 *)(iVar1 + 0x88)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x88)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x88)" (( "(") (binary_expression "iVar1 + 0x88" (identifier "iVar1") (+ "+") (number_literal "0x88")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}")))

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

char * function_1(char *p,char *q,int dest)

{
}


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

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

int __regparm3 MASKED(int param_1,int param_2,int param_3)

{
  int iVar1;
  undefined4 uVar2;
  
  if (param_2 - param_1 < 0) {
    param_1 = param_2;
  }
  iVar1 = DAT_000dc700 + param_3 * 4;
  free(*(void **)(iVar1 + 0x88));
  uVar2 = FUN_0001a346();
  *(undefined4 *)(iVar1 + 0x88) = uVar2;
  return param_1;
}

