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

demangling_styles cplus_demangle_name_to_style(char *name)

{
  char *__s2;
  int iVar1;
  undefined4 *puVar2;
  demangling_styles dVar3;
  
  dVar3 = no_demangling;
  __s2 = "none";
  puVar2 = (undefined4 *)libiberty_demanglers;
  while( true ) {
    iVar1 = strcmp(name,__s2);
    if (iVar1 == 0) {
      return dVar3;
    }
    dVar3 = puVar2[4];
    if (dVar3 == unknown_demangling) break;
    __s2 = (char *)puVar2[3];
    puVar2 = puVar2 + 3;
  }
  return unknown_demangling;
}



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

undefined * FUN_001ce8a0(char *param_1)

{
  char *__s2;
  int iVar1;
  undefined **ppuVar2;
  undefined *puVar3;
  
  puVar3 = (undefined *)0xffffffff;
  __s2 = "none";
  ppuVar2 = &PTR_s_none_00386420;
  while( true ) {
    iVar1 = strcmp(param_1,__s2);
    if (iVar1 == 0) {
      return puVar3;
    }
    puVar3 = ppuVar2[4];
    if (puVar3 == (undefined *)0x0) break;
    __s2 = ppuVar2[3];
    ppuVar2 = ppuVar2 + 3;
  }
  return (undefined *)0x0;
}


PUSH EBP
PUSH EDI
MOV EDI,0xffffffff
PUSH ESI
PUSH EBX
CALL 0x00035840
ADD EBX,0x1c0752
SUB ESP,0xc
MOV EBP,dword ptr [ESP + 0x20]
LEA EAX,[EBX + 0xffeff9b2]
LEA ESI,[EBX + 0xffff7420]
JMP 0x001ce8dc
ADD ESI,0xc
MOV EDI,dword ptr [ESI + 0x4]
TEST EDI,EDI
JZ 0x001ce8ed
MOV EAX,dword ptr [ESI]
SUB ESP,0x8
PUSH EAX
PUSH EBP
CALL 0x00029b10
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x001ce8d0
ADD ESP,0xc
MOV EAX,EDI
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\nundefined * FUN_001ce8a0(char *param_1)\n\n{\n  char *__s2;\n  int iVar1;\n  undefined **ppuVar2;\n  undefined *puVar3;\n  \n  puVar3 = (undefined *)0xffffffff;\n  __s2 = "none";\n  ppuVar2 = &PTR_s_none_00386420;\n  while( true ) {\n    iVar1 = strcmp(param_1,__s2);\n    if (iVar1 == 0) {\n      return puVar3;\n    }\n    puVar3 = ppuVar2[4];\n    if (puVar3 == (undefined *)0x0) break;\n    __s2 = ppuVar2[3];\n    ppuVar2 = ppuVar2 + 3;\n  }\n  return (undefined *)0x0;\n}\n\n" comment (function_definition "undefined * FUN_001ce8a0(char *param_1)\n\n{\n  char *__s2;\n  int iVar1;\n  undefined **ppuVar2;\n  undefined *puVar3;\n  \n  puVar3 = (undefined *)0xffffffff;\n  __s2 = "none";\n  ppuVar2 = &PTR_s_none_00386420;\n  while( true ) {\n    iVar1 = strcmp(param_1,__s2);\n    if (iVar1 == 0) {\n      return puVar3;\n    }\n    puVar3 = ppuVar2[4];\n    if (puVar3 == (undefined *)0x0) break;\n    __s2 = ppuVar2[3];\n    ppuVar2 = ppuVar2 + 3;\n  }\n  return (undefined *)0x0;\n}" type_identifier (pointer_declarator "* FUN_001ce8a0(char *param_1)" * (function_declarator "FUN_001ce8a0(char *param_1)" identifier (parameter_list "(char *param_1)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) )))) (compound_statement "{\n  char *__s2;\n  int iVar1;\n  undefined **ppuVar2;\n  undefined *puVar3;\n  \n  puVar3 = (undefined *)0xffffffff;\n  __s2 = "none";\n  ppuVar2 = &PTR_s_none_00386420;\n  while( true ) {\n    iVar1 = strcmp(param_1,__s2);\n    if (iVar1 == 0) {\n      return puVar3;\n    }\n    puVar3 = ppuVar2[4];\n    if (puVar3 == (undefined *)0x0) break;\n    __s2 = ppuVar2[3];\n    ppuVar2 = ppuVar2 + 3;\n  }\n  return (undefined *)0x0;\n}" { (declaration "char *__s2;" primitive_type (pointer_declarator "*__s2" * identifier) ;) (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined **ppuVar2;" type_identifier (pointer_declarator "**ppuVar2" * (pointer_declarator "*ppuVar2" * identifier)) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (expression_statement "puVar3 = (undefined *)0xffffffff;" (assignment_expression "puVar3 = (undefined *)0xffffffff" identifier = (cast_expression "(undefined *)0xffffffff" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "__s2 = "none";" (assignment_expression "__s2 = "none"" identifier = (string_literal ""none"" " string_content ")) ;) (expression_statement "ppuVar2 = &PTR_s_none_00386420;" (assignment_expression "ppuVar2 = &PTR_s_none_00386420" identifier = (pointer_expression "&PTR_s_none_00386420" & identifier)) ;) (while_statement "while( true ) {\n    iVar1 = strcmp(param_1,__s2);\n    if (iVar1 == 0) {\n      return puVar3;\n    }\n    puVar3 = ppuVar2[4];\n    if (puVar3 == (undefined *)0x0) break;\n    __s2 = ppuVar2[3];\n    ppuVar2 = ppuVar2 + 3;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    iVar1 = strcmp(param_1,__s2);\n    if (iVar1 == 0) {\n      return puVar3;\n    }\n    puVar3 = ppuVar2[4];\n    if (puVar3 == (undefined *)0x0) break;\n    __s2 = ppuVar2[3];\n    ppuVar2 = ppuVar2 + 3;\n  }" { (expression_statement "iVar1 = strcmp(param_1,__s2);" (assignment_expression "iVar1 = strcmp(param_1,__s2)" identifier = (call_expression "strcmp(param_1,__s2)" identifier (argument_list "(param_1,__s2)" ( identifier , identifier )))) ;) (if_statement "if (iVar1 == 0) {\n      return puVar3;\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      return puVar3;\n    }" { (return_statement "return puVar3;" return identifier ;) })) (expression_statement "puVar3 = ppuVar2[4];" (assignment_expression "puVar3 = ppuVar2[4]" identifier = (subscript_expression "ppuVar2[4]" identifier [ number_literal ])) ;) (if_statement "if (puVar3 == (undefined *)0x0) break;" if (parenthesized_expression "(puVar3 == (undefined *)0x0)" ( (binary_expression "puVar3 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "__s2 = ppuVar2[3];" (assignment_expression "__s2 = ppuVar2[3]" identifier = (subscript_expression "ppuVar2[3]" identifier [ number_literal ])) ;) (expression_statement "ppuVar2 = ppuVar2 + 3;" (assignment_expression "ppuVar2 = ppuVar2 + 3" identifier = (binary_expression "ppuVar2 + 3" identifier + number_literal)) ;) })) (return_statement "return (undefined *)0x0;" return (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\ndemangling_styles cplus_demangle_name_to_style(char *name)\n\n{\n  char *__s2;\n  int iVar1;\n  undefined4 *puVar2;\n  demangling_styles dVar3;\n  \n  dVar3 = no_demangling;\n  __s2 = "none";\n  puVar2 = (undefined4 *)libiberty_demanglers;\n  while( true ) {\n    iVar1 = strcmp(name,__s2);\n    if (iVar1 == 0) {\n      return dVar3;\n    }\n    dVar3 = puVar2[4];\n    if (dVar3 == unknown_demangling) break;\n    __s2 = (char *)puVar2[3];\n    puVar2 = puVar2 + 3;\n  }\n  return unknown_demangling;\n}\n\n" comment comment (function_definition "demangling_styles cplus_demangle_name_to_style(char *name)\n\n{\n  char *__s2;\n  int iVar1;\n  undefined4 *puVar2;\n  demangling_styles dVar3;\n  \n  dVar3 = no_demangling;\n  __s2 = "none";\n  puVar2 = (undefined4 *)libiberty_demanglers;\n  while( true ) {\n    iVar1 = strcmp(name,__s2);\n    if (iVar1 == 0) {\n      return dVar3;\n    }\n    dVar3 = puVar2[4];\n    if (dVar3 == unknown_demangling) break;\n    __s2 = (char *)puVar2[3];\n    puVar2 = puVar2 + 3;\n  }\n  return unknown_demangling;\n}" type_identifier (function_declarator "cplus_demangle_name_to_style(char *name)" identifier (parameter_list "(char *name)" ( (parameter_declaration "char *name" primitive_type (pointer_declarator "*name" * identifier)) ))) (compound_statement "{\n  char *__s2;\n  int iVar1;\n  undefined4 *puVar2;\n  demangling_styles dVar3;\n  \n  dVar3 = no_demangling;\n  __s2 = "none";\n  puVar2 = (undefined4 *)libiberty_demanglers;\n  while( true ) {\n    iVar1 = strcmp(name,__s2);\n    if (iVar1 == 0) {\n      return dVar3;\n    }\n    dVar3 = puVar2[4];\n    if (dVar3 == unknown_demangling) break;\n    __s2 = (char *)puVar2[3];\n    puVar2 = puVar2 + 3;\n  }\n  return unknown_demangling;\n}" { (declaration "char *__s2;" primitive_type (pointer_declarator "*__s2" * identifier) ;) (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "demangling_styles dVar3;" type_identifier identifier ;) (expression_statement "dVar3 = no_demangling;" (assignment_expression "dVar3 = no_demangling" identifier = identifier) ;) (expression_statement "__s2 = "none";" (assignment_expression "__s2 = "none"" identifier = (string_literal ""none"" " string_content ")) ;) (expression_statement "puVar2 = (undefined4 *)libiberty_demanglers;" (assignment_expression "puVar2 = (undefined4 *)libiberty_demanglers" identifier = (cast_expression "(undefined4 *)libiberty_demanglers" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (while_statement "while( true ) {\n    iVar1 = strcmp(name,__s2);\n    if (iVar1 == 0) {\n      return dVar3;\n    }\n    dVar3 = puVar2[4];\n    if (dVar3 == unknown_demangling) break;\n    __s2 = (char *)puVar2[3];\n    puVar2 = puVar2 + 3;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    iVar1 = strcmp(name,__s2);\n    if (iVar1 == 0) {\n      return dVar3;\n    }\n    dVar3 = puVar2[4];\n    if (dVar3 == unknown_demangling) break;\n    __s2 = (char *)puVar2[3];\n    puVar2 = puVar2 + 3;\n  }" { (expression_statement "iVar1 = strcmp(name,__s2);" (assignment_expression "iVar1 = strcmp(name,__s2)" identifier = (call_expression "strcmp(name,__s2)" identifier (argument_list "(name,__s2)" ( identifier , identifier )))) ;) (if_statement "if (iVar1 == 0) {\n      return dVar3;\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      return dVar3;\n    }" { (return_statement "return dVar3;" return identifier ;) })) (expression_statement "dVar3 = puVar2[4];" (assignment_expression "dVar3 = puVar2[4]" identifier = (subscript_expression "puVar2[4]" identifier [ number_literal ])) ;) (if_statement "if (dVar3 == unknown_demangling) break;" if (parenthesized_expression "(dVar3 == unknown_demangling)" ( (binary_expression "dVar3 == unknown_demangling" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "__s2 = (char *)puVar2[3];" (assignment_expression "__s2 = (char *)puVar2[3]" identifier = (cast_expression "(char *)puVar2[3]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar2[3]" identifier [ number_literal ]))) ;) (expression_statement "puVar2 = puVar2 + 3;" (assignment_expression "puVar2 = puVar2 + 3" identifier = (binary_expression "puVar2 + 3" identifier + number_literal)) ;) })) (return_statement "return unknown_demangling;" return identifier ;) })))
(translation_unit "undefined * FUN_001ce8a0(char *param_1)\n\n{\n  char *__s2;\n  int iVar1;\n  undefined **ppuVar2;\n  undefined *puVar3;\n  \n  puVar3 = (undefined *)0xffffffff;\n  __s2 = "none";\n  ppuVar2 = &PTR_s_none_00386420;\n  while( true ) {\n    iVar1 = strcmp(param_1,__s2);\n    if (iVar1 == 0) {\n      return puVar3;\n    }\n    puVar3 = ppuVar2[4];\n    if (puVar3 == (undefined *)0x0) break;\n    __s2 = ppuVar2[3];\n    ppuVar2 = ppuVar2 + 3;\n  }\n  return (undefined *)0x0;\n}\n\n" (function_definition "undefined * FUN_001ce8a0(char *param_1)\n\n{\n  char *__s2;\n  int iVar1;\n  undefined **ppuVar2;\n  undefined *puVar3;\n  \n  puVar3 = (undefined *)0xffffffff;\n  __s2 = "none";\n  ppuVar2 = &PTR_s_none_00386420;\n  while( true ) {\n    iVar1 = strcmp(param_1,__s2);\n    if (iVar1 == 0) {\n      return puVar3;\n    }\n    puVar3 = ppuVar2[4];\n    if (puVar3 == (undefined *)0x0) break;\n    __s2 = ppuVar2[3];\n    ppuVar2 = ppuVar2 + 3;\n  }\n  return (undefined *)0x0;\n}" type_identifier (pointer_declarator "* FUN_001ce8a0(char *param_1)" * (function_declarator "FUN_001ce8a0(char *param_1)" identifier (parameter_list "(char *param_1)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) )))) (compound_statement "{\n  char *__s2;\n  int iVar1;\n  undefined **ppuVar2;\n  undefined *puVar3;\n  \n  puVar3 = (undefined *)0xffffffff;\n  __s2 = "none";\n  ppuVar2 = &PTR_s_none_00386420;\n  while( true ) {\n    iVar1 = strcmp(param_1,__s2);\n    if (iVar1 == 0) {\n      return puVar3;\n    }\n    puVar3 = ppuVar2[4];\n    if (puVar3 == (undefined *)0x0) break;\n    __s2 = ppuVar2[3];\n    ppuVar2 = ppuVar2 + 3;\n  }\n  return (undefined *)0x0;\n}" { (declaration "char *__s2;" primitive_type (pointer_declarator "*__s2" * identifier) ;) (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined **ppuVar2;" type_identifier (pointer_declarator "**ppuVar2" * (pointer_declarator "*ppuVar2" * identifier)) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (expression_statement "puVar3 = (undefined *)0xffffffff;" (assignment_expression "puVar3 = (undefined *)0xffffffff" identifier = (cast_expression "(undefined *)0xffffffff" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "__s2 = "none";" (assignment_expression "__s2 = "none"" identifier = (string_literal ""none"" " string_content ")) ;) (expression_statement "ppuVar2 = &PTR_s_none_00386420;" (assignment_expression "ppuVar2 = &PTR_s_none_00386420" identifier = (pointer_expression "&PTR_s_none_00386420" & identifier)) ;) (while_statement "while( true ) {\n    iVar1 = strcmp(param_1,__s2);\n    if (iVar1 == 0) {\n      return puVar3;\n    }\n    puVar3 = ppuVar2[4];\n    if (puVar3 == (undefined *)0x0) break;\n    __s2 = ppuVar2[3];\n    ppuVar2 = ppuVar2 + 3;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    iVar1 = strcmp(param_1,__s2);\n    if (iVar1 == 0) {\n      return puVar3;\n    }\n    puVar3 = ppuVar2[4];\n    if (puVar3 == (undefined *)0x0) break;\n    __s2 = ppuVar2[3];\n    ppuVar2 = ppuVar2 + 3;\n  }" { (expression_statement "iVar1 = strcmp(param_1,__s2);" (assignment_expression "iVar1 = strcmp(param_1,__s2)" identifier = (call_expression "strcmp(param_1,__s2)" identifier (argument_list "(param_1,__s2)" ( identifier , identifier )))) ;) (if_statement "if (iVar1 == 0) {\n      return puVar3;\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      return puVar3;\n    }" { (return_statement "return puVar3;" return identifier ;) })) (expression_statement "puVar3 = ppuVar2[4];" (assignment_expression "puVar3 = ppuVar2[4]" identifier = (subscript_expression "ppuVar2[4]" identifier [ number_literal ])) ;) (if_statement "if (puVar3 == (undefined *)0x0) break;" if (parenthesized_expression "(puVar3 == (undefined *)0x0)" ( (binary_expression "puVar3 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "__s2 = ppuVar2[3];" (assignment_expression "__s2 = ppuVar2[3]" identifier = (subscript_expression "ppuVar2[3]" identifier [ number_literal ])) ;) (expression_statement "ppuVar2 = ppuVar2 + 3;" (assignment_expression "ppuVar2 = ppuVar2 + 3" identifier = (binary_expression "ppuVar2 + 3" identifier + number_literal)) ;) })) (return_statement "return (undefined *)0x0;" return (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) )))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })))
(function_definition "undefined * FUN_001ce8a0(char *param_1)\n\n{\n  char *__s2;\n  int iVar1;\n  undefined **ppuVar2;\n  undefined *puVar3;\n  \n  puVar3 = (undefined *)0xffffffff;\n  __s2 = "none";\n  ppuVar2 = &PTR_s_none_00386420;\n  while( true ) {\n    iVar1 = strcmp(param_1,__s2);\n    if (iVar1 == 0) {\n      return puVar3;\n    }\n    puVar3 = ppuVar2[4];\n    if (puVar3 == (undefined *)0x0) break;\n    __s2 = ppuVar2[3];\n    ppuVar2 = ppuVar2 + 3;\n  }\n  return (undefined *)0x0;\n}" (type_identifier "undefined") (pointer_declarator "* FUN_001ce8a0(char *param_1)" (* "*") (function_declarator "FUN_001ce8a0(char *param_1)" (identifier "FUN_001ce8a0") (parameter_list "(char *param_1)" (( "(") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")")))) (compound_statement "{\n  char *__s2;\n  int iVar1;\n  undefined **ppuVar2;\n  undefined *puVar3;\n  \n  puVar3 = (undefined *)0xffffffff;\n  __s2 = "none";\n  ppuVar2 = &PTR_s_none_00386420;\n  while( true ) {\n    iVar1 = strcmp(param_1,__s2);\n    if (iVar1 == 0) {\n      return puVar3;\n    }\n    puVar3 = ppuVar2[4];\n    if (puVar3 == (undefined *)0x0) break;\n    __s2 = ppuVar2[3];\n    ppuVar2 = ppuVar2 + 3;\n  }\n  return (undefined *)0x0;\n}" ({ "{") (declaration "char *__s2;" (primitive_type "char") (pointer_declarator "*__s2" (* "*") (identifier "__s2")) (; ";")) (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined **ppuVar2;" (type_identifier "undefined") (pointer_declarator "**ppuVar2" (* "*") (pointer_declarator "*ppuVar2" (* "*") (identifier "ppuVar2"))) (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (expression_statement "puVar3 = (undefined *)0xffffffff;" (assignment_expression "puVar3 = (undefined *)0xffffffff" (identifier "puVar3") (= "=") (cast_expression "(undefined *)0xffffffff" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (expression_statement "__s2 = "none";" (assignment_expression "__s2 = "none"" (identifier "__s2") (= "=") (string_literal ""none"" (" """) (string_content "none") (" """))) (; ";")) (expression_statement "ppuVar2 = &PTR_s_none_00386420;" (assignment_expression "ppuVar2 = &PTR_s_none_00386420" (identifier "ppuVar2") (= "=") (pointer_expression "&PTR_s_none_00386420" (& "&") (identifier "PTR_s_none_00386420"))) (; ";")) (while_statement "while( true ) {\n    iVar1 = strcmp(param_1,__s2);\n    if (iVar1 == 0) {\n      return puVar3;\n    }\n    puVar3 = ppuVar2[4];\n    if (puVar3 == (undefined *)0x0) break;\n    __s2 = ppuVar2[3];\n    ppuVar2 = ppuVar2 + 3;\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    iVar1 = strcmp(param_1,__s2);\n    if (iVar1 == 0) {\n      return puVar3;\n    }\n    puVar3 = ppuVar2[4];\n    if (puVar3 == (undefined *)0x0) break;\n    __s2 = ppuVar2[3];\n    ppuVar2 = ppuVar2 + 3;\n  }" ({ "{") (expression_statement "iVar1 = strcmp(param_1,__s2);" (assignment_expression "iVar1 = strcmp(param_1,__s2)" (identifier "iVar1") (= "=") (call_expression "strcmp(param_1,__s2)" (identifier "strcmp") (argument_list "(param_1,__s2)" (( "(") (identifier "param_1") (, ",") (identifier "__s2") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n      return puVar3;\n    }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return puVar3;\n    }" ({ "{") (return_statement "return puVar3;" (return "return") (identifier "puVar3") (; ";")) (} "}"))) (expression_statement "puVar3 = ppuVar2[4];" (assignment_expression "puVar3 = ppuVar2[4]" (identifier "puVar3") (= "=") (subscript_expression "ppuVar2[4]" (identifier "ppuVar2") ([ "[") (number_literal "4") (] "]"))) (; ";")) (if_statement "if (puVar3 == (undefined *)0x0) break;" (if "if") (parenthesized_expression "(puVar3 == (undefined *)0x0)" (( "(") (binary_expression "puVar3 == (undefined *)0x0" (identifier "puVar3") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "__s2 = ppuVar2[3];" (assignment_expression "__s2 = ppuVar2[3]" (identifier "__s2") (= "=") (subscript_expression "ppuVar2[3]" (identifier "ppuVar2") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "ppuVar2 = ppuVar2 + 3;" (assignment_expression "ppuVar2 = ppuVar2 + 3" (identifier "ppuVar2") (= "=") (binary_expression "ppuVar2 + 3" (identifier "ppuVar2") (+ "+") (number_literal "3"))) (; ";")) (} "}"))) (return_statement "return (undefined *)0x0;" (return "return") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}")))

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

type_1 function_1(char *name)

{
  char *__s2;
  int var_2;
  type_2 *var_5;
  type_1 var_3;
  
  var_3 = no_demangling;
  __s2 = "none";
  var_5 = (type_2 *)libiberty_demanglers;
  while( true ) {
    var_2 = var_1(name,__s2);
    if (var_2 == 0) {
      return var_3;
    }
    var_3 = var_5[4];
    if (var_3 == var_4) break;
    __s2 = (char *)var_5[3];
    var_5 = var_5 + 3;
  }
  return var_4;
}


(translation_unit (function_definition type: (type_identifier) declarator: (pointer_declarator declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier)))))) body: (compound_statement (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (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: (number_literal))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (return_statement (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))))

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

undefined * MASKED(char *param_1)

{
  char *__s2;
  int iVar1;
  undefined **ppuVar2;
  undefined *puVar3;
  
  puVar3 = (undefined *)0xffffffff;
  __s2 = "none";
  ppuVar2 = &PTR_s_none_00386420;
  while( true ) {
    iVar1 = strcmp(param_1,__s2);
    if (iVar1 == 0) {
      return puVar3;
    }
    puVar3 = ppuVar2[4];
    if (puVar3 == (undefined *)0x0) break;
    __s2 = ppuVar2[3];
    ppuVar2 = ppuVar2 + 3;
  }
  return (undefined *)0x0;
}

