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

char * __regparm3 cheaper(char *t1,char *t2,char *def)

{
  int iVar1;
  
  if (*t1 != '\0') {
    if (*t2 != '\0') {
      costcount = 0;
      tputs(t1,sc_height,inc_costcount);
      iVar1 = costcount;
      costcount = 0;
      tputs(t2,sc_height,inc_costcount);
      if (costcount <= iVar1) {
        return t2;
      }
    }
    return t1;
  }
  if (*t2 != '\0') {
    return t2;
  }
  missing_cap = 1;
  return def;
}



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

char * __regparm3 FUN_00012f50(char *param_1,char *param_2,char *param_3)

{
  int iVar1;
  
  if (*param_1 != '\0') {
    if (*param_2 != '\0') {
      DAT_0003e0c4 = 0;
      tputs(param_1,DAT_000418e4,FUN_00012cb0);
      iVar1 = DAT_0003e0c4;
      DAT_0003e0c4 = 0;
      tputs(param_2,DAT_000418e4,FUN_00012cb0);
      if (DAT_0003e0c4 <= iVar1) {
        return param_2;
      }
    }
    return param_1;
  }
  if (*param_2 != '\0') {
    return param_2;
  }
  DAT_0003dc20 = 1;
  return param_3;
}


PUSH EBP
PUSH EDI
PUSH ESI
MOV ESI,EDX
PUSH EBX
CALL 0x000129a0
ADD EBX,0x28f3d
SUB ESP,0x1c
CMP byte ptr [EAX],0x0
MOVZX EDX,byte ptr [EDX]
JNZ 0x00012f80
TEST DL,DL
JZ 0x00012ff0
ADD ESP,0x1c
MOV EAX,ESI
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EDI,EAX
TEST DL,DL
JNZ 0x00012f90
MOV EAX,EDI
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x4
LEA EDX,[EBX + 0xfffd6e18]
LEA EBP,[EBX + 0x5a4c]
MOV dword ptr [EBX + 0x222c],0x0
PUSH EDX
MOV dword ptr [ESP + 0x14],EDX
PUSH dword ptr [EBP]
PUSH EAX
CALL 0x00012070
MOV ECX,dword ptr [EBX + 0x222c]
MOV dword ptr [EBX + 0x222c],0x0
MOV dword ptr [ESP + 0x18],ECX
ADD ESP,0xc
MOV EDX,dword ptr [ESP + 0x10]
PUSH EDX
PUSH dword ptr [EBP]
PUSH ESI
CALL 0x00012070
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x8]
CMP ECX,dword ptr [EBX + 0x222c]
JGE 0x00012f74
MOV EAX,EDI
JMP 0x00012f88
MOV dword ptr [EBX + 0x1d88],0x1
ADD ESP,0x1c
MOV EAX,ECX
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\nchar * __regparm3 FUN_00012f50(char *param_1,char *param_2,char *param_3)\n\n{\n  int iVar1;\n  \n  if (*param_1 != '\0') {\n    if (*param_2 != '\0') {\n      DAT_0003e0c4 = 0;\n      tputs(param_1,DAT_000418e4,FUN_00012cb0);\n      iVar1 = DAT_0003e0c4;\n      DAT_0003e0c4 = 0;\n      tputs(param_2,DAT_000418e4,FUN_00012cb0);\n      if (DAT_0003e0c4 <= iVar1) {\n        return param_2;\n      }\n    }\n    return param_1;\n  }\n  if (*param_2 != '\0') {\n    return param_2;\n  }\n  DAT_0003dc20 = 1;\n  return param_3;\n}\n\n" comment (function_definition "char * __regparm3 FUN_00012f50(char *param_1,char *param_2,char *param_3)\n\n{\n  int iVar1;\n  \n  if (*param_1 != '\0') {\n    if (*param_2 != '\0') {\n      DAT_0003e0c4 = 0;\n      tputs(param_1,DAT_000418e4,FUN_00012cb0);\n      iVar1 = DAT_0003e0c4;\n      DAT_0003e0c4 = 0;\n      tputs(param_2,DAT_000418e4,FUN_00012cb0);\n      if (DAT_0003e0c4 <= iVar1) {\n        return param_2;\n      }\n    }\n    return param_1;\n  }\n  if (*param_2 != '\0') {\n    return param_2;\n  }\n  DAT_0003dc20 = 1;\n  return param_3;\n}" primitive_type (pointer_declarator "* __regparm3 FUN_00012f50(char *param_1,char *param_2,char *param_3)" * (ERROR "__regparm3" identifier) (function_declarator "FUN_00012f50(char *param_1,char *param_2,char *param_3)" identifier (parameter_list "(char *param_1,char *param_2,char *param_3)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) )))) (compound_statement "{\n  int iVar1;\n  \n  if (*param_1 != '\0') {\n    if (*param_2 != '\0') {\n      DAT_0003e0c4 = 0;\n      tputs(param_1,DAT_000418e4,FUN_00012cb0);\n      iVar1 = DAT_0003e0c4;\n      DAT_0003e0c4 = 0;\n      tputs(param_2,DAT_000418e4,FUN_00012cb0);\n      if (DAT_0003e0c4 <= iVar1) {\n        return param_2;\n      }\n    }\n    return param_1;\n  }\n  if (*param_2 != '\0') {\n    return param_2;\n  }\n  DAT_0003dc20 = 1;\n  return param_3;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (if_statement "if (*param_1 != '\0') {\n    if (*param_2 != '\0') {\n      DAT_0003e0c4 = 0;\n      tputs(param_1,DAT_000418e4,FUN_00012cb0);\n      iVar1 = DAT_0003e0c4;\n      DAT_0003e0c4 = 0;\n      tputs(param_2,DAT_000418e4,FUN_00012cb0);\n      if (DAT_0003e0c4 <= iVar1) {\n        return param_2;\n      }\n    }\n    return param_1;\n  }" if (parenthesized_expression "(*param_1 != '\0')" ( (binary_expression "*param_1 != '\0'" (pointer_expression "*param_1" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    if (*param_2 != '\0') {\n      DAT_0003e0c4 = 0;\n      tputs(param_1,DAT_000418e4,FUN_00012cb0);\n      iVar1 = DAT_0003e0c4;\n      DAT_0003e0c4 = 0;\n      tputs(param_2,DAT_000418e4,FUN_00012cb0);\n      if (DAT_0003e0c4 <= iVar1) {\n        return param_2;\n      }\n    }\n    return param_1;\n  }" { (if_statement "if (*param_2 != '\0') {\n      DAT_0003e0c4 = 0;\n      tputs(param_1,DAT_000418e4,FUN_00012cb0);\n      iVar1 = DAT_0003e0c4;\n      DAT_0003e0c4 = 0;\n      tputs(param_2,DAT_000418e4,FUN_00012cb0);\n      if (DAT_0003e0c4 <= iVar1) {\n        return param_2;\n      }\n    }" if (parenthesized_expression "(*param_2 != '\0')" ( (binary_expression "*param_2 != '\0'" (pointer_expression "*param_2" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      DAT_0003e0c4 = 0;\n      tputs(param_1,DAT_000418e4,FUN_00012cb0);\n      iVar1 = DAT_0003e0c4;\n      DAT_0003e0c4 = 0;\n      tputs(param_2,DAT_000418e4,FUN_00012cb0);\n      if (DAT_0003e0c4 <= iVar1) {\n        return param_2;\n      }\n    }" { (expression_statement "DAT_0003e0c4 = 0;" (assignment_expression "DAT_0003e0c4 = 0" identifier = number_literal) ;) (expression_statement "tputs(param_1,DAT_000418e4,FUN_00012cb0);" (call_expression "tputs(param_1,DAT_000418e4,FUN_00012cb0)" identifier (argument_list "(param_1,DAT_000418e4,FUN_00012cb0)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar1 = DAT_0003e0c4;" (assignment_expression "iVar1 = DAT_0003e0c4" identifier = identifier) ;) (expression_statement "DAT_0003e0c4 = 0;" (assignment_expression "DAT_0003e0c4 = 0" identifier = number_literal) ;) (expression_statement "tputs(param_2,DAT_000418e4,FUN_00012cb0);" (call_expression "tputs(param_2,DAT_000418e4,FUN_00012cb0)" identifier (argument_list "(param_2,DAT_000418e4,FUN_00012cb0)" ( identifier , identifier , identifier ))) ;) (if_statement "if (DAT_0003e0c4 <= iVar1) {\n        return param_2;\n      }" if (parenthesized_expression "(DAT_0003e0c4 <= iVar1)" ( (binary_expression "DAT_0003e0c4 <= iVar1" identifier <= identifier) )) (compound_statement "{\n        return param_2;\n      }" { (return_statement "return param_2;" return identifier ;) })) })) (return_statement "return param_1;" return identifier ;) })) (if_statement "if (*param_2 != '\0') {\n    return param_2;\n  }" if (parenthesized_expression "(*param_2 != '\0')" ( (binary_expression "*param_2 != '\0'" (pointer_expression "*param_2" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    return param_2;\n  }" { (return_statement "return param_2;" return identifier ;) })) (expression_statement "DAT_0003dc20 = 1;" (assignment_expression "DAT_0003dc20 = 1" identifier = number_literal) ;) (return_statement "return param_3;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nchar * __regparm3 cheaper(char *t1,char *t2,char *def)\n\n{\n  int iVar1;\n  \n  if (*t1 != '\0') {\n    if (*t2 != '\0') {\n      costcount = 0;\n      tputs(t1,sc_height,inc_costcount);\n      iVar1 = costcount;\n      costcount = 0;\n      tputs(t2,sc_height,inc_costcount);\n      if (costcount <= iVar1) {\n        return t2;\n      }\n    }\n    return t1;\n  }\n  if (*t2 != '\0') {\n    return t2;\n  }\n  missing_cap = 1;\n  return def;\n}\n\n" comment (function_definition "char * __regparm3 cheaper(char *t1,char *t2,char *def)\n\n{\n  int iVar1;\n  \n  if (*t1 != '\0') {\n    if (*t2 != '\0') {\n      costcount = 0;\n      tputs(t1,sc_height,inc_costcount);\n      iVar1 = costcount;\n      costcount = 0;\n      tputs(t2,sc_height,inc_costcount);\n      if (costcount <= iVar1) {\n        return t2;\n      }\n    }\n    return t1;\n  }\n  if (*t2 != '\0') {\n    return t2;\n  }\n  missing_cap = 1;\n  return def;\n}" primitive_type (pointer_declarator "* __regparm3 cheaper(char *t1,char *t2,char *def)" * (ERROR "__regparm3" identifier) (function_declarator "cheaper(char *t1,char *t2,char *def)" identifier (parameter_list "(char *t1,char *t2,char *def)" ( (parameter_declaration "char *t1" primitive_type (pointer_declarator "*t1" * identifier)) , (parameter_declaration "char *t2" primitive_type (pointer_declarator "*t2" * identifier)) , (parameter_declaration "char *def" primitive_type (pointer_declarator "*def" * identifier)) )))) (compound_statement "{\n  int iVar1;\n  \n  if (*t1 != '\0') {\n    if (*t2 != '\0') {\n      costcount = 0;\n      tputs(t1,sc_height,inc_costcount);\n      iVar1 = costcount;\n      costcount = 0;\n      tputs(t2,sc_height,inc_costcount);\n      if (costcount <= iVar1) {\n        return t2;\n      }\n    }\n    return t1;\n  }\n  if (*t2 != '\0') {\n    return t2;\n  }\n  missing_cap = 1;\n  return def;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (if_statement "if (*t1 != '\0') {\n    if (*t2 != '\0') {\n      costcount = 0;\n      tputs(t1,sc_height,inc_costcount);\n      iVar1 = costcount;\n      costcount = 0;\n      tputs(t2,sc_height,inc_costcount);\n      if (costcount <= iVar1) {\n        return t2;\n      }\n    }\n    return t1;\n  }" if (parenthesized_expression "(*t1 != '\0')" ( (binary_expression "*t1 != '\0'" (pointer_expression "*t1" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    if (*t2 != '\0') {\n      costcount = 0;\n      tputs(t1,sc_height,inc_costcount);\n      iVar1 = costcount;\n      costcount = 0;\n      tputs(t2,sc_height,inc_costcount);\n      if (costcount <= iVar1) {\n        return t2;\n      }\n    }\n    return t1;\n  }" { (if_statement "if (*t2 != '\0') {\n      costcount = 0;\n      tputs(t1,sc_height,inc_costcount);\n      iVar1 = costcount;\n      costcount = 0;\n      tputs(t2,sc_height,inc_costcount);\n      if (costcount <= iVar1) {\n        return t2;\n      }\n    }" if (parenthesized_expression "(*t2 != '\0')" ( (binary_expression "*t2 != '\0'" (pointer_expression "*t2" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      costcount = 0;\n      tputs(t1,sc_height,inc_costcount);\n      iVar1 = costcount;\n      costcount = 0;\n      tputs(t2,sc_height,inc_costcount);\n      if (costcount <= iVar1) {\n        return t2;\n      }\n    }" { (expression_statement "costcount = 0;" (assignment_expression "costcount = 0" identifier = number_literal) ;) (expression_statement "tputs(t1,sc_height,inc_costcount);" (call_expression "tputs(t1,sc_height,inc_costcount)" identifier (argument_list "(t1,sc_height,inc_costcount)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar1 = costcount;" (assignment_expression "iVar1 = costcount" identifier = identifier) ;) (expression_statement "costcount = 0;" (assignment_expression "costcount = 0" identifier = number_literal) ;) (expression_statement "tputs(t2,sc_height,inc_costcount);" (call_expression "tputs(t2,sc_height,inc_costcount)" identifier (argument_list "(t2,sc_height,inc_costcount)" ( identifier , identifier , identifier ))) ;) (if_statement "if (costcount <= iVar1) {\n        return t2;\n      }" if (parenthesized_expression "(costcount <= iVar1)" ( (binary_expression "costcount <= iVar1" identifier <= identifier) )) (compound_statement "{\n        return t2;\n      }" { (return_statement "return t2;" return identifier ;) })) })) (return_statement "return t1;" return identifier ;) })) (if_statement "if (*t2 != '\0') {\n    return t2;\n  }" if (parenthesized_expression "(*t2 != '\0')" ( (binary_expression "*t2 != '\0'" (pointer_expression "*t2" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    return t2;\n  }" { (return_statement "return t2;" return identifier ;) })) (expression_statement "missing_cap = 1;" (assignment_expression "missing_cap = 1" identifier = number_literal) ;) (return_statement "return def;" return identifier ;) })))
(translation_unit "char * __regparm3 FUN_00012f50(char *param_1,char *param_2,char *param_3)\n\n{\n  int iVar1;\n  \n  if (*param_1 != '\0') {\n    if (*param_2 != '\0') {\n      DAT_0003e0c4 = 0;\n      tputs(param_1,DAT_000418e4,FUN_00012cb0);\n      iVar1 = DAT_0003e0c4;\n      DAT_0003e0c4 = 0;\n      tputs(param_2,DAT_000418e4,FUN_00012cb0);\n      if (DAT_0003e0c4 <= iVar1) {\n        return param_2;\n      }\n    }\n    return param_1;\n  }\n  if (*param_2 != '\0') {\n    return param_2;\n  }\n  DAT_0003dc20 = 1;\n  return param_3;\n}\n\n" (function_definition "char * __regparm3 FUN_00012f50(char *param_1,char *param_2,char *param_3)\n\n{\n  int iVar1;\n  \n  if (*param_1 != '\0') {\n    if (*param_2 != '\0') {\n      DAT_0003e0c4 = 0;\n      tputs(param_1,DAT_000418e4,FUN_00012cb0);\n      iVar1 = DAT_0003e0c4;\n      DAT_0003e0c4 = 0;\n      tputs(param_2,DAT_000418e4,FUN_00012cb0);\n      if (DAT_0003e0c4 <= iVar1) {\n        return param_2;\n      }\n    }\n    return param_1;\n  }\n  if (*param_2 != '\0') {\n    return param_2;\n  }\n  DAT_0003dc20 = 1;\n  return param_3;\n}" primitive_type (pointer_declarator "* __regparm3 FUN_00012f50(char *param_1,char *param_2,char *param_3)" * (ERROR "__regparm3" identifier) (function_declarator "FUN_00012f50(char *param_1,char *param_2,char *param_3)" identifier (parameter_list "(char *param_1,char *param_2,char *param_3)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) )))) (compound_statement "{\n  int iVar1;\n  \n  if (*param_1 != '\0') {\n    if (*param_2 != '\0') {\n      DAT_0003e0c4 = 0;\n      tputs(param_1,DAT_000418e4,FUN_00012cb0);\n      iVar1 = DAT_0003e0c4;\n      DAT_0003e0c4 = 0;\n      tputs(param_2,DAT_000418e4,FUN_00012cb0);\n      if (DAT_0003e0c4 <= iVar1) {\n        return param_2;\n      }\n    }\n    return param_1;\n  }\n  if (*param_2 != '\0') {\n    return param_2;\n  }\n  DAT_0003dc20 = 1;\n  return param_3;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (if_statement "if (*param_1 != '\0') {\n    if (*param_2 != '\0') {\n      DAT_0003e0c4 = 0;\n      tputs(param_1,DAT_000418e4,FUN_00012cb0);\n      iVar1 = DAT_0003e0c4;\n      DAT_0003e0c4 = 0;\n      tputs(param_2,DAT_000418e4,FUN_00012cb0);\n      if (DAT_0003e0c4 <= iVar1) {\n        return param_2;\n      }\n    }\n    return param_1;\n  }" if (parenthesized_expression "(*param_1 != '\0')" ( (binary_expression "*param_1 != '\0'" (pointer_expression "*param_1" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    if (*param_2 != '\0') {\n      DAT_0003e0c4 = 0;\n      tputs(param_1,DAT_000418e4,FUN_00012cb0);\n      iVar1 = DAT_0003e0c4;\n      DAT_0003e0c4 = 0;\n      tputs(param_2,DAT_000418e4,FUN_00012cb0);\n      if (DAT_0003e0c4 <= iVar1) {\n        return param_2;\n      }\n    }\n    return param_1;\n  }" { (if_statement "if (*param_2 != '\0') {\n      DAT_0003e0c4 = 0;\n      tputs(param_1,DAT_000418e4,FUN_00012cb0);\n      iVar1 = DAT_0003e0c4;\n      DAT_0003e0c4 = 0;\n      tputs(param_2,DAT_000418e4,FUN_00012cb0);\n      if (DAT_0003e0c4 <= iVar1) {\n        return param_2;\n      }\n    }" if (parenthesized_expression "(*param_2 != '\0')" ( (binary_expression "*param_2 != '\0'" (pointer_expression "*param_2" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      DAT_0003e0c4 = 0;\n      tputs(param_1,DAT_000418e4,FUN_00012cb0);\n      iVar1 = DAT_0003e0c4;\n      DAT_0003e0c4 = 0;\n      tputs(param_2,DAT_000418e4,FUN_00012cb0);\n      if (DAT_0003e0c4 <= iVar1) {\n        return param_2;\n      }\n    }" { (expression_statement "DAT_0003e0c4 = 0;" (assignment_expression "DAT_0003e0c4 = 0" identifier = number_literal) ;) (expression_statement "tputs(param_1,DAT_000418e4,FUN_00012cb0);" (call_expression "tputs(param_1,DAT_000418e4,FUN_00012cb0)" identifier (argument_list "(param_1,DAT_000418e4,FUN_00012cb0)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar1 = DAT_0003e0c4;" (assignment_expression "iVar1 = DAT_0003e0c4" identifier = identifier) ;) (expression_statement "DAT_0003e0c4 = 0;" (assignment_expression "DAT_0003e0c4 = 0" identifier = number_literal) ;) (expression_statement "tputs(param_2,DAT_000418e4,FUN_00012cb0);" (call_expression "tputs(param_2,DAT_000418e4,FUN_00012cb0)" identifier (argument_list "(param_2,DAT_000418e4,FUN_00012cb0)" ( identifier , identifier , identifier ))) ;) (if_statement "if (DAT_0003e0c4 <= iVar1) {\n        return param_2;\n      }" if (parenthesized_expression "(DAT_0003e0c4 <= iVar1)" ( (binary_expression "DAT_0003e0c4 <= iVar1" identifier <= identifier) )) (compound_statement "{\n        return param_2;\n      }" { (return_statement "return param_2;" return identifier ;) })) })) (return_statement "return param_1;" return identifier ;) })) (if_statement "if (*param_2 != '\0') {\n    return param_2;\n  }" if (parenthesized_expression "(*param_2 != '\0')" ( (binary_expression "*param_2 != '\0'" (pointer_expression "*param_2" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    return param_2;\n  }" { (return_statement "return param_2;" return identifier ;) })) (expression_statement "DAT_0003dc20 = 1;" (assignment_expression "DAT_0003dc20 = 1" identifier = number_literal) ;) (return_statement "return param_3;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) )))) (compound_statement { (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (return_statement return IDENT ;) })) })) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (return_statement return IDENT ;) })))
(function_definition "char * __regparm3 FUN_00012f50(char *param_1,char *param_2,char *param_3)\n\n{\n  int iVar1;\n  \n  if (*param_1 != '\0') {\n    if (*param_2 != '\0') {\n      DAT_0003e0c4 = 0;\n      tputs(param_1,DAT_000418e4,FUN_00012cb0);\n      iVar1 = DAT_0003e0c4;\n      DAT_0003e0c4 = 0;\n      tputs(param_2,DAT_000418e4,FUN_00012cb0);\n      if (DAT_0003e0c4 <= iVar1) {\n        return param_2;\n      }\n    }\n    return param_1;\n  }\n  if (*param_2 != '\0') {\n    return param_2;\n  }\n  DAT_0003dc20 = 1;\n  return param_3;\n}" (primitive_type "char") (pointer_declarator "* __regparm3 FUN_00012f50(char *param_1,char *param_2,char *param_3)" (* "*") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00012f50(char *param_1,char *param_2,char *param_3)" (identifier "FUN_00012f50") (parameter_list "(char *param_1,char *param_2,char *param_3)" (( "(") (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"))) (, ",") (parameter_declaration "char *param_3" (primitive_type "char") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")")))) (compound_statement "{\n  int iVar1;\n  \n  if (*param_1 != '\0') {\n    if (*param_2 != '\0') {\n      DAT_0003e0c4 = 0;\n      tputs(param_1,DAT_000418e4,FUN_00012cb0);\n      iVar1 = DAT_0003e0c4;\n      DAT_0003e0c4 = 0;\n      tputs(param_2,DAT_000418e4,FUN_00012cb0);\n      if (DAT_0003e0c4 <= iVar1) {\n        return param_2;\n      }\n    }\n    return param_1;\n  }\n  if (*param_2 != '\0') {\n    return param_2;\n  }\n  DAT_0003dc20 = 1;\n  return param_3;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (if_statement "if (*param_1 != '\0') {\n    if (*param_2 != '\0') {\n      DAT_0003e0c4 = 0;\n      tputs(param_1,DAT_000418e4,FUN_00012cb0);\n      iVar1 = DAT_0003e0c4;\n      DAT_0003e0c4 = 0;\n      tputs(param_2,DAT_000418e4,FUN_00012cb0);\n      if (DAT_0003e0c4 <= iVar1) {\n        return param_2;\n      }\n    }\n    return param_1;\n  }" (if "if") (parenthesized_expression "(*param_1 != '\0')" (( "(") (binary_expression "*param_1 != '\0'" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    if (*param_2 != '\0') {\n      DAT_0003e0c4 = 0;\n      tputs(param_1,DAT_000418e4,FUN_00012cb0);\n      iVar1 = DAT_0003e0c4;\n      DAT_0003e0c4 = 0;\n      tputs(param_2,DAT_000418e4,FUN_00012cb0);\n      if (DAT_0003e0c4 <= iVar1) {\n        return param_2;\n      }\n    }\n    return param_1;\n  }" ({ "{") (if_statement "if (*param_2 != '\0') {\n      DAT_0003e0c4 = 0;\n      tputs(param_1,DAT_000418e4,FUN_00012cb0);\n      iVar1 = DAT_0003e0c4;\n      DAT_0003e0c4 = 0;\n      tputs(param_2,DAT_000418e4,FUN_00012cb0);\n      if (DAT_0003e0c4 <= iVar1) {\n        return param_2;\n      }\n    }" (if "if") (parenthesized_expression "(*param_2 != '\0')" (( "(") (binary_expression "*param_2 != '\0'" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      DAT_0003e0c4 = 0;\n      tputs(param_1,DAT_000418e4,FUN_00012cb0);\n      iVar1 = DAT_0003e0c4;\n      DAT_0003e0c4 = 0;\n      tputs(param_2,DAT_000418e4,FUN_00012cb0);\n      if (DAT_0003e0c4 <= iVar1) {\n        return param_2;\n      }\n    }" ({ "{") (expression_statement "DAT_0003e0c4 = 0;" (assignment_expression "DAT_0003e0c4 = 0" (identifier "DAT_0003e0c4") (= "=") (number_literal "0")) (; ";")) (expression_statement "tputs(param_1,DAT_000418e4,FUN_00012cb0);" (call_expression "tputs(param_1,DAT_000418e4,FUN_00012cb0)" (identifier "tputs") (argument_list "(param_1,DAT_000418e4,FUN_00012cb0)" (( "(") (identifier "param_1") (, ",") (identifier "DAT_000418e4") (, ",") (identifier "FUN_00012cb0") () ")"))) (; ";")) (expression_statement "iVar1 = DAT_0003e0c4;" (assignment_expression "iVar1 = DAT_0003e0c4" (identifier "iVar1") (= "=") (identifier "DAT_0003e0c4")) (; ";")) (expression_statement "DAT_0003e0c4 = 0;" (assignment_expression "DAT_0003e0c4 = 0" (identifier "DAT_0003e0c4") (= "=") (number_literal "0")) (; ";")) (expression_statement "tputs(param_2,DAT_000418e4,FUN_00012cb0);" (call_expression "tputs(param_2,DAT_000418e4,FUN_00012cb0)" (identifier "tputs") (argument_list "(param_2,DAT_000418e4,FUN_00012cb0)" (( "(") (identifier "param_2") (, ",") (identifier "DAT_000418e4") (, ",") (identifier "FUN_00012cb0") () ")"))) (; ";")) (if_statement "if (DAT_0003e0c4 <= iVar1) {\n        return param_2;\n      }" (if "if") (parenthesized_expression "(DAT_0003e0c4 <= iVar1)" (( "(") (binary_expression "DAT_0003e0c4 <= iVar1" (identifier "DAT_0003e0c4") (<= "<=") (identifier "iVar1")) () ")")) (compound_statement "{\n        return param_2;\n      }" ({ "{") (return_statement "return param_2;" (return "return") (identifier "param_2") (; ";")) (} "}"))) (} "}"))) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}"))) (if_statement "if (*param_2 != '\0') {\n    return param_2;\n  }" (if "if") (parenthesized_expression "(*param_2 != '\0')" (( "(") (binary_expression "*param_2 != '\0'" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    return param_2;\n  }" ({ "{") (return_statement "return param_2;" (return "return") (identifier "param_2") (; ";")) (} "}"))) (expression_statement "DAT_0003dc20 = 1;" (assignment_expression "DAT_0003dc20 = 1" (identifier "DAT_0003dc20") (= "=") (number_literal "1")) (; ";")) (return_statement "return param_3;" (return "return") (identifier "param_3") (; ";")) (} "}")))

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

char * __regparm3 function_1(char *t1,char *t2,char *def)

{
  int var_3;
  
  if (*t1 != '\0') {
    if (*t2 != '\0') {
      var_2 = 0;
      var_1(t1,sc_height,inc_costcount);
      var_3 = var_2;
      var_2 = 0;
      var_1(t2,sc_height,inc_costcount);
      if (var_2 <= var_3) {
        return t2;
      }
    }
    return t1;
  }
  if (*t2 != '\0') {
    return t2;
  }
  missing_cap = 1;
  return def;
}


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

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

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

{
  int iVar1;
  
  if (*param_1 != '\0') {
    if (*param_2 != '\0') {
      DAT_0003e0c4 = 0;
      tputs(param_1,DAT_000418e4,FUN_00012cb0);
      iVar1 = DAT_0003e0c4;
      DAT_0003e0c4 = 0;
      tputs(param_2,DAT_000418e4,FUN_00012cb0);
      if (DAT_0003e0c4 <= iVar1) {
        return param_2;
      }
    }
    return param_1;
  }
  if (*param_2 != '\0') {
    return param_2;
  }
  DAT_0003dc20 = 1;
  return param_3;
}

