
/* WARNING: Function: __x86.get_pc_thunk.si replaced with injection: get_pc_thunk_si */

char * __regparm3 dlang_call_convention(string *decl,char *mangled)

{
  if ((mangled != (char *)0x0) && (*mangled != '\0')) {
    switch(*mangled) {
    case 'F':
      return mangled + 1;
    case 'R':
      string_append(decl,"extern(C++) ");
      return mangled + 1;
    case 'U':
      string_append(decl,"extern(C) ");
      return mangled + 1;
    case 'V':
      string_append(decl,"extern(Pascal) ");
      return mangled + 1;
    case 'W':
      string_append(decl,"extern(Windows) ");
      return mangled + 1;
    case 'Y':
      string_append(decl,"extern(Objective-C) ");
      return mangled + 1;
    }
  }
  return (char *)0x0;
}



/* WARNING: Function: __i686.get_pc_thunk.si replaced with injection: get_pc_thunk_si */

char * __regparm3 FUN_001e1eb0(undefined4 param_1,char *param_2)

{
  if ((param_2 != (char *)0x0) && (*param_2 != '\0')) {
    switch(*param_2) {
    case 'F':
      return param_2 + 1;
    case 'R':
      FUN_001e1e60();
      return param_2 + 1;
    case 'U':
      FUN_001e1e60();
      return param_2 + 1;
    case 'V':
      FUN_001e1e60();
      return param_2 + 1;
    case 'W':
      FUN_001e1e60();
      return param_2 + 1;
    case 'Y':
      FUN_001e1e60();
      return param_2 + 1;
    }
  }
  return (char *)0x0;
}


PUSH ESI
CALL 0x000559ea
ADD ESI,0x1ad14a
PUSH EBX
SUB ESP,0x4
TEST EDX,EDX
JZ 0x001e1ee8
MOVZX ECX,byte ptr [EDX]
TEST CL,CL
JZ 0x001e1ee8
SUB ECX,0x46
CMP CL,0x13
JA 0x001e1ee8
MOVZX ECX,CL
MOV EBX,dword ptr [ESI + ECX*0x4 + 0xfff13ca4]
ADD EBX,ESI
JMP EBX
XOR EBX,EBX
ADD ESP,0x4
MOV EAX,EBX
POP EBX
POP ESI
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.si replaced with injection: get_pc_thunk_si */\n\nchar * __regparm3 FUN_001e1eb0(undefined4 param_1,char *param_2)\n\n{\n  if ((param_2 != (char *)0x0) && (*param_2 != '\0')) {\n    switch(*param_2) {\n    case 'F':\n      return param_2 + 1;\n    case 'R':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'U':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'V':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'W':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'Y':\n      FUN_001e1e60();\n      return param_2 + 1;\n    }\n  }\n  return (char *)0x0;\n}\n\n" comment (function_definition "char * __regparm3 FUN_001e1eb0(undefined4 param_1,char *param_2)\n\n{\n  if ((param_2 != (char *)0x0) && (*param_2 != '\0')) {\n    switch(*param_2) {\n    case 'F':\n      return param_2 + 1;\n    case 'R':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'U':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'V':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'W':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'Y':\n      FUN_001e1e60();\n      return param_2 + 1;\n    }\n  }\n  return (char *)0x0;\n}" primitive_type (pointer_declarator "* __regparm3 FUN_001e1eb0(undefined4 param_1,char *param_2)" * (ERROR "__regparm3" identifier) (function_declarator "FUN_001e1eb0(undefined4 param_1,char *param_2)" identifier (parameter_list "(undefined4 param_1,char *param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) )))) (compound_statement "{\n  if ((param_2 != (char *)0x0) && (*param_2 != '\0')) {\n    switch(*param_2) {\n    case 'F':\n      return param_2 + 1;\n    case 'R':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'U':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'V':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'W':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'Y':\n      FUN_001e1e60();\n      return param_2 + 1;\n    }\n  }\n  return (char *)0x0;\n}" { (if_statement "if ((param_2 != (char *)0x0) && (*param_2 != '\0')) {\n    switch(*param_2) {\n    case 'F':\n      return param_2 + 1;\n    case 'R':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'U':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'V':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'W':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'Y':\n      FUN_001e1e60();\n      return param_2 + 1;\n    }\n  }" if (parenthesized_expression "((param_2 != (char *)0x0) && (*param_2 != '\0'))" ( (binary_expression "(param_2 != (char *)0x0) && (*param_2 != '\0')" (parenthesized_expression "(param_2 != (char *)0x0)" ( (binary_expression "param_2 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*param_2 != '\0')" ( (binary_expression "*param_2 != '\0'" (pointer_expression "*param_2" * identifier) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    switch(*param_2) {\n    case 'F':\n      return param_2 + 1;\n    case 'R':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'U':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'V':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'W':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'Y':\n      FUN_001e1e60();\n      return param_2 + 1;\n    }\n  }" { (switch_statement "switch(*param_2) {\n    case 'F':\n      return param_2 + 1;\n    case 'R':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'U':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'V':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'W':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'Y':\n      FUN_001e1e60();\n      return param_2 + 1;\n    }" switch (parenthesized_expression "(*param_2)" ( (pointer_expression "*param_2" * identifier) )) (compound_statement "{\n    case 'F':\n      return param_2 + 1;\n    case 'R':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'U':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'V':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'W':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'Y':\n      FUN_001e1e60();\n      return param_2 + 1;\n    }" { (case_statement "case 'F':\n      return param_2 + 1;" case (char_literal "'F'" ' character ') : (return_statement "return param_2 + 1;" return (binary_expression "param_2 + 1" identifier + number_literal) ;)) (case_statement "case 'R':\n      FUN_001e1e60();\n      return param_2 + 1;" case (char_literal "'R'" ' character ') : (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) (return_statement "return param_2 + 1;" return (binary_expression "param_2 + 1" identifier + number_literal) ;)) (case_statement "case 'U':\n      FUN_001e1e60();\n      return param_2 + 1;" case (char_literal "'U'" ' character ') : (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) (return_statement "return param_2 + 1;" return (binary_expression "param_2 + 1" identifier + number_literal) ;)) (case_statement "case 'V':\n      FUN_001e1e60();\n      return param_2 + 1;" case (char_literal "'V'" ' character ') : (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) (return_statement "return param_2 + 1;" return (binary_expression "param_2 + 1" identifier + number_literal) ;)) (case_statement "case 'W':\n      FUN_001e1e60();\n      return param_2 + 1;" case (char_literal "'W'" ' character ') : (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) (return_statement "return param_2 + 1;" return (binary_expression "param_2 + 1" identifier + number_literal) ;)) (case_statement "case 'Y':\n      FUN_001e1e60();\n      return param_2 + 1;" case (char_literal "'Y'" ' character ') : (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) (return_statement "return param_2 + 1;" return (binary_expression "param_2 + 1" identifier + number_literal) ;)) })) })) (return_statement "return (char *)0x0;" return (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.si replaced with injection: get_pc_thunk_si */\n\nchar * __regparm3 dlang_call_convention(string *decl,char *mangled)\n\n{\n  if ((mangled != (char *)0x0) && (*mangled != '\0')) {\n    switch(*mangled) {\n    case 'F':\n      return mangled + 1;\n    case 'R':\n      string_append(decl,"extern(C++) ");\n      return mangled + 1;\n    case 'U':\n      string_append(decl,"extern(C) ");\n      return mangled + 1;\n    case 'V':\n      string_append(decl,"extern(Pascal) ");\n      return mangled + 1;\n    case 'W':\n      string_append(decl,"extern(Windows) ");\n      return mangled + 1;\n    case 'Y':\n      string_append(decl,"extern(Objective-C) ");\n      return mangled + 1;\n    }\n  }\n  return (char *)0x0;\n}\n\n" comment (function_definition "char * __regparm3 dlang_call_convention(string *decl,char *mangled)\n\n{\n  if ((mangled != (char *)0x0) && (*mangled != '\0')) {\n    switch(*mangled) {\n    case 'F':\n      return mangled + 1;\n    case 'R':\n      string_append(decl,"extern(C++) ");\n      return mangled + 1;\n    case 'U':\n      string_append(decl,"extern(C) ");\n      return mangled + 1;\n    case 'V':\n      string_append(decl,"extern(Pascal) ");\n      return mangled + 1;\n    case 'W':\n      string_append(decl,"extern(Windows) ");\n      return mangled + 1;\n    case 'Y':\n      string_append(decl,"extern(Objective-C) ");\n      return mangled + 1;\n    }\n  }\n  return (char *)0x0;\n}" primitive_type (pointer_declarator "* __regparm3 dlang_call_convention(string *decl,char *mangled)" * (ERROR "__regparm3" identifier) (function_declarator "dlang_call_convention(string *decl,char *mangled)" identifier (parameter_list "(string *decl,char *mangled)" ( (parameter_declaration "string *decl" type_identifier (pointer_declarator "*decl" * identifier)) , (parameter_declaration "char *mangled" primitive_type (pointer_declarator "*mangled" * identifier)) )))) (compound_statement "{\n  if ((mangled != (char *)0x0) && (*mangled != '\0')) {\n    switch(*mangled) {\n    case 'F':\n      return mangled + 1;\n    case 'R':\n      string_append(decl,"extern(C++) ");\n      return mangled + 1;\n    case 'U':\n      string_append(decl,"extern(C) ");\n      return mangled + 1;\n    case 'V':\n      string_append(decl,"extern(Pascal) ");\n      return mangled + 1;\n    case 'W':\n      string_append(decl,"extern(Windows) ");\n      return mangled + 1;\n    case 'Y':\n      string_append(decl,"extern(Objective-C) ");\n      return mangled + 1;\n    }\n  }\n  return (char *)0x0;\n}" { (if_statement "if ((mangled != (char *)0x0) && (*mangled != '\0')) {\n    switch(*mangled) {\n    case 'F':\n      return mangled + 1;\n    case 'R':\n      string_append(decl,"extern(C++) ");\n      return mangled + 1;\n    case 'U':\n      string_append(decl,"extern(C) ");\n      return mangled + 1;\n    case 'V':\n      string_append(decl,"extern(Pascal) ");\n      return mangled + 1;\n    case 'W':\n      string_append(decl,"extern(Windows) ");\n      return mangled + 1;\n    case 'Y':\n      string_append(decl,"extern(Objective-C) ");\n      return mangled + 1;\n    }\n  }" if (parenthesized_expression "((mangled != (char *)0x0) && (*mangled != '\0'))" ( (binary_expression "(mangled != (char *)0x0) && (*mangled != '\0')" (parenthesized_expression "(mangled != (char *)0x0)" ( (binary_expression "mangled != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*mangled != '\0')" ( (binary_expression "*mangled != '\0'" (pointer_expression "*mangled" * identifier) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    switch(*mangled) {\n    case 'F':\n      return mangled + 1;\n    case 'R':\n      string_append(decl,"extern(C++) ");\n      return mangled + 1;\n    case 'U':\n      string_append(decl,"extern(C) ");\n      return mangled + 1;\n    case 'V':\n      string_append(decl,"extern(Pascal) ");\n      return mangled + 1;\n    case 'W':\n      string_append(decl,"extern(Windows) ");\n      return mangled + 1;\n    case 'Y':\n      string_append(decl,"extern(Objective-C) ");\n      return mangled + 1;\n    }\n  }" { (switch_statement "switch(*mangled) {\n    case 'F':\n      return mangled + 1;\n    case 'R':\n      string_append(decl,"extern(C++) ");\n      return mangled + 1;\n    case 'U':\n      string_append(decl,"extern(C) ");\n      return mangled + 1;\n    case 'V':\n      string_append(decl,"extern(Pascal) ");\n      return mangled + 1;\n    case 'W':\n      string_append(decl,"extern(Windows) ");\n      return mangled + 1;\n    case 'Y':\n      string_append(decl,"extern(Objective-C) ");\n      return mangled + 1;\n    }" switch (parenthesized_expression "(*mangled)" ( (pointer_expression "*mangled" * identifier) )) (compound_statement "{\n    case 'F':\n      return mangled + 1;\n    case 'R':\n      string_append(decl,"extern(C++) ");\n      return mangled + 1;\n    case 'U':\n      string_append(decl,"extern(C) ");\n      return mangled + 1;\n    case 'V':\n      string_append(decl,"extern(Pascal) ");\n      return mangled + 1;\n    case 'W':\n      string_append(decl,"extern(Windows) ");\n      return mangled + 1;\n    case 'Y':\n      string_append(decl,"extern(Objective-C) ");\n      return mangled + 1;\n    }" { (case_statement "case 'F':\n      return mangled + 1;" case (char_literal "'F'" ' character ') : (return_statement "return mangled + 1;" return (binary_expression "mangled + 1" identifier + number_literal) ;)) (case_statement "case 'R':\n      string_append(decl,"extern(C++) ");\n      return mangled + 1;" case (char_literal "'R'" ' character ') : (expression_statement "string_append(decl,"extern(C++) ");" (call_expression "string_append(decl,"extern(C++) ")" identifier (argument_list "(decl,"extern(C++) ")" ( identifier , (string_literal ""extern(C++) "" " string_content ") ))) ;) (return_statement "return mangled + 1;" return (binary_expression "mangled + 1" identifier + number_literal) ;)) (case_statement "case 'U':\n      string_append(decl,"extern(C) ");\n      return mangled + 1;" case (char_literal "'U'" ' character ') : (expression_statement "string_append(decl,"extern(C) ");" (call_expression "string_append(decl,"extern(C) ")" identifier (argument_list "(decl,"extern(C) ")" ( identifier , (string_literal ""extern(C) "" " string_content ") ))) ;) (return_statement "return mangled + 1;" return (binary_expression "mangled + 1" identifier + number_literal) ;)) (case_statement "case 'V':\n      string_append(decl,"extern(Pascal) ");\n      return mangled + 1;" case (char_literal "'V'" ' character ') : (expression_statement "string_append(decl,"extern(Pascal) ");" (call_expression "string_append(decl,"extern(Pascal) ")" identifier (argument_list "(decl,"extern(Pascal) ")" ( identifier , (string_literal ""extern(Pascal) "" " string_content ") ))) ;) (return_statement "return mangled + 1;" return (binary_expression "mangled + 1" identifier + number_literal) ;)) (case_statement "case 'W':\n      string_append(decl,"extern(Windows) ");\n      return mangled + 1;" case (char_literal "'W'" ' character ') : (expression_statement "string_append(decl,"extern(Windows) ");" (call_expression "string_append(decl,"extern(Windows) ")" identifier (argument_list "(decl,"extern(Windows) ")" ( identifier , (string_literal ""extern(Windows) "" " string_content ") ))) ;) (return_statement "return mangled + 1;" return (binary_expression "mangled + 1" identifier + number_literal) ;)) (case_statement "case 'Y':\n      string_append(decl,"extern(Objective-C) ");\n      return mangled + 1;" case (char_literal "'Y'" ' character ') : (expression_statement "string_append(decl,"extern(Objective-C) ");" (call_expression "string_append(decl,"extern(Objective-C) ")" identifier (argument_list "(decl,"extern(Objective-C) ")" ( identifier , (string_literal ""extern(Objective-C) "" " string_content ") ))) ;) (return_statement "return mangled + 1;" return (binary_expression "mangled + 1" identifier + number_literal) ;)) })) })) (return_statement "return (char *)0x0;" return (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })))
(translation_unit "char * __regparm3 FUN_001e1eb0(undefined4 param_1,char *param_2)\n\n{\n  if ((param_2 != (char *)0x0) && (*param_2 != '\0')) {\n    switch(*param_2) {\n    case 'F':\n      return param_2 + 1;\n    case 'R':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'U':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'V':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'W':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'Y':\n      FUN_001e1e60();\n      return param_2 + 1;\n    }\n  }\n  return (char *)0x0;\n}\n\n" (function_definition "char * __regparm3 FUN_001e1eb0(undefined4 param_1,char *param_2)\n\n{\n  if ((param_2 != (char *)0x0) && (*param_2 != '\0')) {\n    switch(*param_2) {\n    case 'F':\n      return param_2 + 1;\n    case 'R':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'U':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'V':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'W':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'Y':\n      FUN_001e1e60();\n      return param_2 + 1;\n    }\n  }\n  return (char *)0x0;\n}" primitive_type (pointer_declarator "* __regparm3 FUN_001e1eb0(undefined4 param_1,char *param_2)" * (ERROR "__regparm3" identifier) (function_declarator "FUN_001e1eb0(undefined4 param_1,char *param_2)" identifier (parameter_list "(undefined4 param_1,char *param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) )))) (compound_statement "{\n  if ((param_2 != (char *)0x0) && (*param_2 != '\0')) {\n    switch(*param_2) {\n    case 'F':\n      return param_2 + 1;\n    case 'R':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'U':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'V':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'W':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'Y':\n      FUN_001e1e60();\n      return param_2 + 1;\n    }\n  }\n  return (char *)0x0;\n}" { (if_statement "if ((param_2 != (char *)0x0) && (*param_2 != '\0')) {\n    switch(*param_2) {\n    case 'F':\n      return param_2 + 1;\n    case 'R':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'U':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'V':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'W':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'Y':\n      FUN_001e1e60();\n      return param_2 + 1;\n    }\n  }" if (parenthesized_expression "((param_2 != (char *)0x0) && (*param_2 != '\0'))" ( (binary_expression "(param_2 != (char *)0x0) && (*param_2 != '\0')" (parenthesized_expression "(param_2 != (char *)0x0)" ( (binary_expression "param_2 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*param_2 != '\0')" ( (binary_expression "*param_2 != '\0'" (pointer_expression "*param_2" * identifier) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    switch(*param_2) {\n    case 'F':\n      return param_2 + 1;\n    case 'R':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'U':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'V':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'W':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'Y':\n      FUN_001e1e60();\n      return param_2 + 1;\n    }\n  }" { (switch_statement "switch(*param_2) {\n    case 'F':\n      return param_2 + 1;\n    case 'R':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'U':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'V':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'W':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'Y':\n      FUN_001e1e60();\n      return param_2 + 1;\n    }" switch (parenthesized_expression "(*param_2)" ( (pointer_expression "*param_2" * identifier) )) (compound_statement "{\n    case 'F':\n      return param_2 + 1;\n    case 'R':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'U':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'V':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'W':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'Y':\n      FUN_001e1e60();\n      return param_2 + 1;\n    }" { (case_statement "case 'F':\n      return param_2 + 1;" case (char_literal "'F'" ' character ') : (return_statement "return param_2 + 1;" return (binary_expression "param_2 + 1" identifier + number_literal) ;)) (case_statement "case 'R':\n      FUN_001e1e60();\n      return param_2 + 1;" case (char_literal "'R'" ' character ') : (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) (return_statement "return param_2 + 1;" return (binary_expression "param_2 + 1" identifier + number_literal) ;)) (case_statement "case 'U':\n      FUN_001e1e60();\n      return param_2 + 1;" case (char_literal "'U'" ' character ') : (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) (return_statement "return param_2 + 1;" return (binary_expression "param_2 + 1" identifier + number_literal) ;)) (case_statement "case 'V':\n      FUN_001e1e60();\n      return param_2 + 1;" case (char_literal "'V'" ' character ') : (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) (return_statement "return param_2 + 1;" return (binary_expression "param_2 + 1" identifier + number_literal) ;)) (case_statement "case 'W':\n      FUN_001e1e60();\n      return param_2 + 1;" case (char_literal "'W'" ' character ') : (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) (return_statement "return param_2 + 1;" return (binary_expression "param_2 + 1" identifier + number_literal) ;)) (case_statement "case 'Y':\n      FUN_001e1e60();\n      return param_2 + 1;" case (char_literal "'Y'" ' character ') : (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" identifier (argument_list "()" ( ))) ;) (return_statement "return param_2 + 1;" return (binary_expression "param_2 + 1" identifier + number_literal) ;)) })) })) (return_statement "return (char *)0x0;" return (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) )))) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (switch_statement switch (parenthesized_expression ( (pointer_expression * IDENT) )) (compound_statement { (case_statement case (char_literal ' character ') : (return_statement return (binary_expression IDENT + LIT) ;)) (case_statement case (char_literal ' character ') : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return (binary_expression IDENT + LIT) ;)) (case_statement case (char_literal ' character ') : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return (binary_expression IDENT + LIT) ;)) (case_statement case (char_literal ' character ') : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return (binary_expression IDENT + LIT) ;)) (case_statement case (char_literal ' character ') : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return (binary_expression IDENT + LIT) ;)) (case_statement case (char_literal ' character ') : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return (binary_expression IDENT + LIT) ;)) })) })) (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })))
(function_definition "char * __regparm3 FUN_001e1eb0(undefined4 param_1,char *param_2)\n\n{\n  if ((param_2 != (char *)0x0) && (*param_2 != '\0')) {\n    switch(*param_2) {\n    case 'F':\n      return param_2 + 1;\n    case 'R':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'U':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'V':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'W':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'Y':\n      FUN_001e1e60();\n      return param_2 + 1;\n    }\n  }\n  return (char *)0x0;\n}" (primitive_type "char") (pointer_declarator "* __regparm3 FUN_001e1eb0(undefined4 param_1,char *param_2)" (* "*") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_001e1eb0(undefined4 param_1,char *param_2)" (identifier "FUN_001e1eb0") (parameter_list "(undefined4 param_1,char *param_2)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "char *param_2" (primitive_type "char") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")")))) (compound_statement "{\n  if ((param_2 != (char *)0x0) && (*param_2 != '\0')) {\n    switch(*param_2) {\n    case 'F':\n      return param_2 + 1;\n    case 'R':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'U':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'V':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'W':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'Y':\n      FUN_001e1e60();\n      return param_2 + 1;\n    }\n  }\n  return (char *)0x0;\n}" ({ "{") (if_statement "if ((param_2 != (char *)0x0) && (*param_2 != '\0')) {\n    switch(*param_2) {\n    case 'F':\n      return param_2 + 1;\n    case 'R':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'U':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'V':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'W':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'Y':\n      FUN_001e1e60();\n      return param_2 + 1;\n    }\n  }" (if "if") (parenthesized_expression "((param_2 != (char *)0x0) && (*param_2 != '\0'))" (( "(") (binary_expression "(param_2 != (char *)0x0) && (*param_2 != '\0')" (parenthesized_expression "(param_2 != (char *)0x0)" (( "(") (binary_expression "param_2 != (char *)0x0" (identifier "param_2") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (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    switch(*param_2) {\n    case 'F':\n      return param_2 + 1;\n    case 'R':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'U':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'V':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'W':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'Y':\n      FUN_001e1e60();\n      return param_2 + 1;\n    }\n  }" ({ "{") (switch_statement "switch(*param_2) {\n    case 'F':\n      return param_2 + 1;\n    case 'R':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'U':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'V':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'W':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'Y':\n      FUN_001e1e60();\n      return param_2 + 1;\n    }" (switch "switch") (parenthesized_expression "(*param_2)" (( "(") (pointer_expression "*param_2" (* "*") (identifier "param_2")) () ")")) (compound_statement "{\n    case 'F':\n      return param_2 + 1;\n    case 'R':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'U':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'V':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'W':\n      FUN_001e1e60();\n      return param_2 + 1;\n    case 'Y':\n      FUN_001e1e60();\n      return param_2 + 1;\n    }" ({ "{") (case_statement "case 'F':\n      return param_2 + 1;" (case "case") (char_literal "'F'" (' "'") (character "F") (' "'")) (: ":") (return_statement "return param_2 + 1;" (return "return") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1")) (; ";"))) (case_statement "case 'R':\n      FUN_001e1e60();\n      return param_2 + 1;" (case "case") (char_literal "'R'" (' "'") (character "R") (' "'")) (: ":") (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" (identifier "FUN_001e1e60") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return param_2 + 1;" (return "return") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1")) (; ";"))) (case_statement "case 'U':\n      FUN_001e1e60();\n      return param_2 + 1;" (case "case") (char_literal "'U'" (' "'") (character "U") (' "'")) (: ":") (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" (identifier "FUN_001e1e60") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return param_2 + 1;" (return "return") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1")) (; ";"))) (case_statement "case 'V':\n      FUN_001e1e60();\n      return param_2 + 1;" (case "case") (char_literal "'V'" (' "'") (character "V") (' "'")) (: ":") (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" (identifier "FUN_001e1e60") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return param_2 + 1;" (return "return") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1")) (; ";"))) (case_statement "case 'W':\n      FUN_001e1e60();\n      return param_2 + 1;" (case "case") (char_literal "'W'" (' "'") (character "W") (' "'")) (: ":") (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" (identifier "FUN_001e1e60") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return param_2 + 1;" (return "return") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1")) (; ";"))) (case_statement "case 'Y':\n      FUN_001e1e60();\n      return param_2 + 1;" (case "case") (char_literal "'Y'" (' "'") (character "Y") (' "'")) (: ":") (expression_statement "FUN_001e1e60();" (call_expression "FUN_001e1e60()" (identifier "FUN_001e1e60") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return param_2 + 1;" (return "return") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1")) (; ";"))) (} "}"))) (} "}"))) (return_statement "return (char *)0x0;" (return "return") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.si replaced with injection: get_pc_thunk_si */

char * __regparm3 function_1(type_1 *decl,char *var_1)

{
  if ((var_1 != (char *)0x0) && (*var_1 != '\0')) {
    switch(*var_1) {
    case 'F':
      return var_1 + 1;
    case 'R':
      var_2(decl,"extern(C++) ");
      return var_1 + 1;
    case 'U':
      var_2(decl,"extern(C) ");
      return var_1 + 1;
    case 'V':
      var_2(decl,"extern(Pascal) ");
      return var_1 + 1;
    case 'W':
      var_2(decl,"extern(Windows) ");
      return var_1 + 1;
    case 'Y':
      var_2(decl,"extern(Objective-C) ");
      return var_1 + 1;
    }
  }
  return (char *)0x0;
}


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

/* WARNING: Function: __i686.get_pc_thunk.si replaced with injection: get_pc_thunk_si */

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

{
  if ((param_2 != (char *)0x0) && (*param_2 != '\0')) {
    switch(*param_2) {
    case 'F':
      return param_2 + 1;
    case 'R':
      FUN_001e1e60();
      return param_2 + 1;
    case 'U':
      FUN_001e1e60();
      return param_2 + 1;
    case 'V':
      FUN_001e1e60();
      return param_2 + 1;
    case 'W':
      FUN_001e1e60();
      return param_2 + 1;
    case 'Y':
      FUN_001e1e60();
      return param_2 + 1;
    }
  }
  return (char *)0x0;
}

