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

int __regparm3 elf_osabi(char *osabi)

{
  int iVar1;
  char *pcVar2;
  int iVar3;
  
  iVar3 = 0;
  pcVar2 = "none";
  while( true ) {
    iVar1 = strcasecmp(osabi,pcVar2);
    if (iVar1 == 0) {
      return osabis[iVar3].osabi;
    }
    iVar3 = iVar3 + 1;
    if (iVar3 == 0x10) break;
    pcVar2 = osabis[iVar3].name;
  }
  pcVar2 = (char *)dcgettext(0,"Unknown OSABI: %s\n",5);
  error(pcVar2,osabi);
  return -1;
}



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

undefined4 __regparm3 FUN_00011b80(char *param_1)

{
  char *__s2;
  int iVar1;
  undefined4 uVar2;
  int iVar3;
  
  iVar3 = 0;
  __s2 = "none";
  while( true ) {
    iVar1 = strcasecmp(param_1,__s2);
    if (iVar1 == 0) {
      return (&DAT_00018e80)[iVar3 * 2];
    }
    iVar3 = iVar3 + 1;
    if (iVar3 == 0x10) break;
    __s2 = *(char **)(&UNK_00018e84 + iVar3 * 8);
  }
  uVar2 = dcgettext(0,"Unknown OSABI: %s\n",5);
  error(uVar2,param_1);
  return 0xffffffff;
}


PUSH EDI
MOV EDI,EAX
PUSH ESI
XOR ESI,ESI
PUSH EBX
CALL 0x000117c0
ADD EBX,0x7474
LEA EAX,[EBX + 0xffffc571]
JMP 0x00011ba7
MOV EAX,dword ptr [EBX + ESI*0x8 + 0xfffffe84]
SUB ESP,0x8
PUSH EAX
PUSH EDI
CALL 0x000111d0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00011bf0
ADD ESI,0x1
CMP ESI,0x10
JNZ 0x00011ba0
SUB ESP,0x4
LEA EAX,[EBX + 0xffffc5af]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000110d0
POP EDX
POP ECX
PUSH EDI
PUSH EAX
CALL 0x00012790
ADD ESP,0x10
MOV EAX,0xffffffff
POP EBX
POP ESI
POP EDI
RET
MOV EAX,dword ptr [EBX + ESI*0x8 + 0xfffffe80]
POP EBX
POP ESI
POP EDI
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4 __regparm3 FUN_00011b80(char *param_1)\n\n{\n  char *__s2;\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  \n  iVar3 = 0;\n  __s2 = "none";\n  while( true ) {\n    iVar1 = strcasecmp(param_1,__s2);\n    if (iVar1 == 0) {\n      return (&DAT_00018e80)[iVar3 * 2];\n    }\n    iVar3 = iVar3 + 1;\n    if (iVar3 == 0x10) break;\n    __s2 = *(char **)(&UNK_00018e84 + iVar3 * 8);\n  }\n  uVar2 = dcgettext(0,"Unknown OSABI: %s\n",5);\n  error(uVar2,param_1);\n  return 0xffffffff;\n}\n\n" comment (function_definition "undefined4 __regparm3 FUN_00011b80(char *param_1)\n\n{\n  char *__s2;\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  \n  iVar3 = 0;\n  __s2 = "none";\n  while( true ) {\n    iVar1 = strcasecmp(param_1,__s2);\n    if (iVar1 == 0) {\n      return (&DAT_00018e80)[iVar3 * 2];\n    }\n    iVar3 = iVar3 + 1;\n    if (iVar3 == 0x10) break;\n    __s2 = *(char **)(&UNK_00018e84 + iVar3 * 8);\n  }\n  uVar2 = dcgettext(0,"Unknown OSABI: %s\n",5);\n  error(uVar2,param_1);\n  return 0xffffffff;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_00011b80(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  undefined4 uVar2;\n  int iVar3;\n  \n  iVar3 = 0;\n  __s2 = "none";\n  while( true ) {\n    iVar1 = strcasecmp(param_1,__s2);\n    if (iVar1 == 0) {\n      return (&DAT_00018e80)[iVar3 * 2];\n    }\n    iVar3 = iVar3 + 1;\n    if (iVar3 == 0x10) break;\n    __s2 = *(char **)(&UNK_00018e84 + iVar3 * 8);\n  }\n  uVar2 = dcgettext(0,"Unknown OSABI: %s\n",5);\n  error(uVar2,param_1);\n  return 0xffffffff;\n}" { (declaration "char *__s2;" primitive_type (pointer_declarator "*__s2" * identifier) ;) (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "__s2 = "none";" (assignment_expression "__s2 = "none"" identifier = (string_literal ""none"" " string_content ")) ;) (while_statement "while( true ) {\n    iVar1 = strcasecmp(param_1,__s2);\n    if (iVar1 == 0) {\n      return (&DAT_00018e80)[iVar3 * 2];\n    }\n    iVar3 = iVar3 + 1;\n    if (iVar3 == 0x10) break;\n    __s2 = *(char **)(&UNK_00018e84 + iVar3 * 8);\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    iVar1 = strcasecmp(param_1,__s2);\n    if (iVar1 == 0) {\n      return (&DAT_00018e80)[iVar3 * 2];\n    }\n    iVar3 = iVar3 + 1;\n    if (iVar3 == 0x10) break;\n    __s2 = *(char **)(&UNK_00018e84 + iVar3 * 8);\n  }" { (expression_statement "iVar1 = strcasecmp(param_1,__s2);" (assignment_expression "iVar1 = strcasecmp(param_1,__s2)" identifier = (call_expression "strcasecmp(param_1,__s2)" identifier (argument_list "(param_1,__s2)" ( identifier , identifier )))) ;) (if_statement "if (iVar1 == 0) {\n      return (&DAT_00018e80)[iVar3 * 2];\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      return (&DAT_00018e80)[iVar3 * 2];\n    }" { (return_statement "return (&DAT_00018e80)[iVar3 * 2];" return (subscript_expression "(&DAT_00018e80)[iVar3 * 2]" (parenthesized_expression "(&DAT_00018e80)" ( (pointer_expression "&DAT_00018e80" & identifier) )) [ (binary_expression "iVar3 * 2" identifier * number_literal) ]) ;) })) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (if_statement "if (iVar3 == 0x10) break;" if (parenthesized_expression "(iVar3 == 0x10)" ( (binary_expression "iVar3 == 0x10" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "__s2 = *(char **)(&UNK_00018e84 + iVar3 * 8);" (assignment_expression "__s2 = *(char **)(&UNK_00018e84 + iVar3 * 8)" identifier = (pointer_expression "*(char **)(&UNK_00018e84 + iVar3 * 8)" * (cast_expression "(char **)(&UNK_00018e84 + iVar3 * 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&UNK_00018e84 + iVar3 * 8)" ( (binary_expression "&UNK_00018e84 + iVar3 * 8" (pointer_expression "&UNK_00018e84" & identifier) + (binary_expression "iVar3 * 8" identifier * number_literal)) ))))) ;) })) (expression_statement "uVar2 = dcgettext(0,"Unknown OSABI: %s\n",5);" (assignment_expression "uVar2 = dcgettext(0,"Unknown OSABI: %s\n",5)" identifier = (call_expression "dcgettext(0,"Unknown OSABI: %s\n",5)" identifier (argument_list "(0,"Unknown OSABI: %s\n",5)" ( number_literal , (string_literal ""Unknown OSABI: %s\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "error(uVar2,param_1);" (call_expression "error(uVar2,param_1)" identifier (argument_list "(uVar2,param_1)" ( identifier , identifier ))) ;) (return_statement "return 0xffffffff;" return number_literal ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint __regparm3 elf_osabi(char *osabi)\n\n{\n  int iVar1;\n  char *pcVar2;\n  int iVar3;\n  \n  iVar3 = 0;\n  pcVar2 = "none";\n  while( true ) {\n    iVar1 = strcasecmp(osabi,pcVar2);\n    if (iVar1 == 0) {\n      return osabis[iVar3].osabi;\n    }\n    iVar3 = iVar3 + 1;\n    if (iVar3 == 0x10) break;\n    pcVar2 = osabis[iVar3].name;\n  }\n  pcVar2 = (char *)dcgettext(0,"Unknown OSABI: %s\n",5);\n  error(pcVar2,osabi);\n  return -1;\n}\n\n" comment (function_definition "int __regparm3 elf_osabi(char *osabi)\n\n{\n  int iVar1;\n  char *pcVar2;\n  int iVar3;\n  \n  iVar3 = 0;\n  pcVar2 = "none";\n  while( true ) {\n    iVar1 = strcasecmp(osabi,pcVar2);\n    if (iVar1 == 0) {\n      return osabis[iVar3].osabi;\n    }\n    iVar3 = iVar3 + 1;\n    if (iVar3 == 0x10) break;\n    pcVar2 = osabis[iVar3].name;\n  }\n  pcVar2 = (char *)dcgettext(0,"Unknown OSABI: %s\n",5);\n  error(pcVar2,osabi);\n  return -1;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "elf_osabi(char *osabi)" identifier (parameter_list "(char *osabi)" ( (parameter_declaration "char *osabi" primitive_type (pointer_declarator "*osabi" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  char *pcVar2;\n  int iVar3;\n  \n  iVar3 = 0;\n  pcVar2 = "none";\n  while( true ) {\n    iVar1 = strcasecmp(osabi,pcVar2);\n    if (iVar1 == 0) {\n      return osabis[iVar3].osabi;\n    }\n    iVar3 = iVar3 + 1;\n    if (iVar3 == 0x10) break;\n    pcVar2 = osabis[iVar3].name;\n  }\n  pcVar2 = (char *)dcgettext(0,"Unknown OSABI: %s\n",5);\n  error(pcVar2,osabi);\n  return -1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "pcVar2 = "none";" (assignment_expression "pcVar2 = "none"" identifier = (string_literal ""none"" " string_content ")) ;) (while_statement "while( true ) {\n    iVar1 = strcasecmp(osabi,pcVar2);\n    if (iVar1 == 0) {\n      return osabis[iVar3].osabi;\n    }\n    iVar3 = iVar3 + 1;\n    if (iVar3 == 0x10) break;\n    pcVar2 = osabis[iVar3].name;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    iVar1 = strcasecmp(osabi,pcVar2);\n    if (iVar1 == 0) {\n      return osabis[iVar3].osabi;\n    }\n    iVar3 = iVar3 + 1;\n    if (iVar3 == 0x10) break;\n    pcVar2 = osabis[iVar3].name;\n  }" { (expression_statement "iVar1 = strcasecmp(osabi,pcVar2);" (assignment_expression "iVar1 = strcasecmp(osabi,pcVar2)" identifier = (call_expression "strcasecmp(osabi,pcVar2)" identifier (argument_list "(osabi,pcVar2)" ( identifier , identifier )))) ;) (if_statement "if (iVar1 == 0) {\n      return osabis[iVar3].osabi;\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      return osabis[iVar3].osabi;\n    }" { (return_statement "return osabis[iVar3].osabi;" return (field_expression "osabis[iVar3].osabi" (subscript_expression "osabis[iVar3]" identifier [ identifier ]) . field_identifier) ;) })) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (if_statement "if (iVar3 == 0x10) break;" if (parenthesized_expression "(iVar3 == 0x10)" ( (binary_expression "iVar3 == 0x10" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "pcVar2 = osabis[iVar3].name;" (assignment_expression "pcVar2 = osabis[iVar3].name" identifier = (field_expression "osabis[iVar3].name" (subscript_expression "osabis[iVar3]" identifier [ identifier ]) . field_identifier)) ;) })) (expression_statement "pcVar2 = (char *)dcgettext(0,"Unknown OSABI: %s\n",5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,"Unknown OSABI: %s\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Unknown OSABI: %s\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Unknown OSABI: %s\n",5)" identifier (argument_list "(0,"Unknown OSABI: %s\n",5)" ( number_literal , (string_literal ""Unknown OSABI: %s\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "error(pcVar2,osabi);" (call_expression "error(pcVar2,osabi)" identifier (argument_list "(pcVar2,osabi)" ( identifier , identifier ))) ;) (return_statement "return -1;" return number_literal ;) })))
(translation_unit "undefined4 __regparm3 FUN_00011b80(char *param_1)\n\n{\n  char *__s2;\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  \n  iVar3 = 0;\n  __s2 = "none";\n  while( true ) {\n    iVar1 = strcasecmp(param_1,__s2);\n    if (iVar1 == 0) {\n      return (&DAT_00018e80)[iVar3 * 2];\n    }\n    iVar3 = iVar3 + 1;\n    if (iVar3 == 0x10) break;\n    __s2 = *(char **)(&UNK_00018e84 + iVar3 * 8);\n  }\n  uVar2 = dcgettext(0,"Unknown OSABI: %s\n",5);\n  error(uVar2,param_1);\n  return 0xffffffff;\n}\n\n" (function_definition "undefined4 __regparm3 FUN_00011b80(char *param_1)\n\n{\n  char *__s2;\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  \n  iVar3 = 0;\n  __s2 = "none";\n  while( true ) {\n    iVar1 = strcasecmp(param_1,__s2);\n    if (iVar1 == 0) {\n      return (&DAT_00018e80)[iVar3 * 2];\n    }\n    iVar3 = iVar3 + 1;\n    if (iVar3 == 0x10) break;\n    __s2 = *(char **)(&UNK_00018e84 + iVar3 * 8);\n  }\n  uVar2 = dcgettext(0,"Unknown OSABI: %s\n",5);\n  error(uVar2,param_1);\n  return 0xffffffff;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_00011b80(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  undefined4 uVar2;\n  int iVar3;\n  \n  iVar3 = 0;\n  __s2 = "none";\n  while( true ) {\n    iVar1 = strcasecmp(param_1,__s2);\n    if (iVar1 == 0) {\n      return (&DAT_00018e80)[iVar3 * 2];\n    }\n    iVar3 = iVar3 + 1;\n    if (iVar3 == 0x10) break;\n    __s2 = *(char **)(&UNK_00018e84 + iVar3 * 8);\n  }\n  uVar2 = dcgettext(0,"Unknown OSABI: %s\n",5);\n  error(uVar2,param_1);\n  return 0xffffffff;\n}" { (declaration "char *__s2;" primitive_type (pointer_declarator "*__s2" * identifier) ;) (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "__s2 = "none";" (assignment_expression "__s2 = "none"" identifier = (string_literal ""none"" " string_content ")) ;) (while_statement "while( true ) {\n    iVar1 = strcasecmp(param_1,__s2);\n    if (iVar1 == 0) {\n      return (&DAT_00018e80)[iVar3 * 2];\n    }\n    iVar3 = iVar3 + 1;\n    if (iVar3 == 0x10) break;\n    __s2 = *(char **)(&UNK_00018e84 + iVar3 * 8);\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    iVar1 = strcasecmp(param_1,__s2);\n    if (iVar1 == 0) {\n      return (&DAT_00018e80)[iVar3 * 2];\n    }\n    iVar3 = iVar3 + 1;\n    if (iVar3 == 0x10) break;\n    __s2 = *(char **)(&UNK_00018e84 + iVar3 * 8);\n  }" { (expression_statement "iVar1 = strcasecmp(param_1,__s2);" (assignment_expression "iVar1 = strcasecmp(param_1,__s2)" identifier = (call_expression "strcasecmp(param_1,__s2)" identifier (argument_list "(param_1,__s2)" ( identifier , identifier )))) ;) (if_statement "if (iVar1 == 0) {\n      return (&DAT_00018e80)[iVar3 * 2];\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      return (&DAT_00018e80)[iVar3 * 2];\n    }" { (return_statement "return (&DAT_00018e80)[iVar3 * 2];" return (subscript_expression "(&DAT_00018e80)[iVar3 * 2]" (parenthesized_expression "(&DAT_00018e80)" ( (pointer_expression "&DAT_00018e80" & identifier) )) [ (binary_expression "iVar3 * 2" identifier * number_literal) ]) ;) })) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (if_statement "if (iVar3 == 0x10) break;" if (parenthesized_expression "(iVar3 == 0x10)" ( (binary_expression "iVar3 == 0x10" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "__s2 = *(char **)(&UNK_00018e84 + iVar3 * 8);" (assignment_expression "__s2 = *(char **)(&UNK_00018e84 + iVar3 * 8)" identifier = (pointer_expression "*(char **)(&UNK_00018e84 + iVar3 * 8)" * (cast_expression "(char **)(&UNK_00018e84 + iVar3 * 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&UNK_00018e84 + iVar3 * 8)" ( (binary_expression "&UNK_00018e84 + iVar3 * 8" (pointer_expression "&UNK_00018e84" & identifier) + (binary_expression "iVar3 * 8" identifier * number_literal)) ))))) ;) })) (expression_statement "uVar2 = dcgettext(0,"Unknown OSABI: %s\n",5);" (assignment_expression "uVar2 = dcgettext(0,"Unknown OSABI: %s\n",5)" identifier = (call_expression "dcgettext(0,"Unknown OSABI: %s\n",5)" identifier (argument_list "(0,"Unknown OSABI: %s\n",5)" ( number_literal , (string_literal ""Unknown OSABI: %s\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "error(uVar2,param_1);" (call_expression "error(uVar2,param_1)" identifier (argument_list "(uVar2,param_1)" ( identifier , identifier ))) ;) (return_statement "return 0xffffffff;" return number_literal ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (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 (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT * LIT) ]) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression IDENT * LIT)) ))))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (return_statement return LIT ;) })))
(function_definition "undefined4 __regparm3 FUN_00011b80(char *param_1)\n\n{\n  char *__s2;\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  \n  iVar3 = 0;\n  __s2 = "none";\n  while( true ) {\n    iVar1 = strcasecmp(param_1,__s2);\n    if (iVar1 == 0) {\n      return (&DAT_00018e80)[iVar3 * 2];\n    }\n    iVar3 = iVar3 + 1;\n    if (iVar3 == 0x10) break;\n    __s2 = *(char **)(&UNK_00018e84 + iVar3 * 8);\n  }\n  uVar2 = dcgettext(0,"Unknown OSABI: %s\n",5);\n  error(uVar2,param_1);\n  return 0xffffffff;\n}" (type_identifier "undefined4") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00011b80(char *param_1)" (identifier "FUN_00011b80") (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  undefined4 uVar2;\n  int iVar3;\n  \n  iVar3 = 0;\n  __s2 = "none";\n  while( true ) {\n    iVar1 = strcasecmp(param_1,__s2);\n    if (iVar1 == 0) {\n      return (&DAT_00018e80)[iVar3 * 2];\n    }\n    iVar3 = iVar3 + 1;\n    if (iVar3 == 0x10) break;\n    __s2 = *(char **)(&UNK_00018e84 + iVar3 * 8);\n  }\n  uVar2 = dcgettext(0,"Unknown OSABI: %s\n",5);\n  error(uVar2,param_1);\n  return 0xffffffff;\n}" ({ "{") (declaration "char *__s2;" (primitive_type "char") (pointer_declarator "*__s2" (* "*") (identifier "__s2")) (; ";")) (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (expression_statement "__s2 = "none";" (assignment_expression "__s2 = "none"" (identifier "__s2") (= "=") (string_literal ""none"" (" """) (string_content "none") (" """))) (; ";")) (while_statement "while( true ) {\n    iVar1 = strcasecmp(param_1,__s2);\n    if (iVar1 == 0) {\n      return (&DAT_00018e80)[iVar3 * 2];\n    }\n    iVar3 = iVar3 + 1;\n    if (iVar3 == 0x10) break;\n    __s2 = *(char **)(&UNK_00018e84 + iVar3 * 8);\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    iVar1 = strcasecmp(param_1,__s2);\n    if (iVar1 == 0) {\n      return (&DAT_00018e80)[iVar3 * 2];\n    }\n    iVar3 = iVar3 + 1;\n    if (iVar3 == 0x10) break;\n    __s2 = *(char **)(&UNK_00018e84 + iVar3 * 8);\n  }" ({ "{") (expression_statement "iVar1 = strcasecmp(param_1,__s2);" (assignment_expression "iVar1 = strcasecmp(param_1,__s2)" (identifier "iVar1") (= "=") (call_expression "strcasecmp(param_1,__s2)" (identifier "strcasecmp") (argument_list "(param_1,__s2)" (( "(") (identifier "param_1") (, ",") (identifier "__s2") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n      return (&DAT_00018e80)[iVar3 * 2];\n    }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return (&DAT_00018e80)[iVar3 * 2];\n    }" ({ "{") (return_statement "return (&DAT_00018e80)[iVar3 * 2];" (return "return") (subscript_expression "(&DAT_00018e80)[iVar3 * 2]" (parenthesized_expression "(&DAT_00018e80)" (( "(") (pointer_expression "&DAT_00018e80" (& "&") (identifier "DAT_00018e80")) () ")")) ([ "[") (binary_expression "iVar3 * 2" (identifier "iVar3") (* "*") (number_literal "2")) (] "]")) (; ";")) (} "}"))) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar3 == 0x10) break;" (if "if") (parenthesized_expression "(iVar3 == 0x10)" (( "(") (binary_expression "iVar3 == 0x10" (identifier "iVar3") (== "==") (number_literal "0x10")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "__s2 = *(char **)(&UNK_00018e84 + iVar3 * 8);" (assignment_expression "__s2 = *(char **)(&UNK_00018e84 + iVar3 * 8)" (identifier "__s2") (= "=") (pointer_expression "*(char **)(&UNK_00018e84 + iVar3 * 8)" (* "*") (cast_expression "(char **)(&UNK_00018e84 + iVar3 * 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(&UNK_00018e84 + iVar3 * 8)" (( "(") (binary_expression "&UNK_00018e84 + iVar3 * 8" (pointer_expression "&UNK_00018e84" (& "&") (identifier "UNK_00018e84")) (+ "+") (binary_expression "iVar3 * 8" (identifier "iVar3") (* "*") (number_literal "8"))) () ")"))))) (; ";")) (} "}"))) (expression_statement "uVar2 = dcgettext(0,"Unknown OSABI: %s\n",5);" (assignment_expression "uVar2 = dcgettext(0,"Unknown OSABI: %s\n",5)" (identifier "uVar2") (= "=") (call_expression "dcgettext(0,"Unknown OSABI: %s\n",5)" (identifier "dcgettext") (argument_list "(0,"Unknown OSABI: %s\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Unknown OSABI: %s\n"" (" """) (string_content "Unknown OSABI: %s") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "error(uVar2,param_1);" (call_expression "error(uVar2,param_1)" (identifier "error") (argument_list "(uVar2,param_1)" (( "(") (identifier "uVar2") (, ",") (identifier "param_1") () ")"))) (; ";")) (return_statement "return 0xffffffff;" (return "return") (number_literal "0xffffffff") (; ";")) (} "}")))

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

int __regparm3 function_1(char *osabi)

{
  int var_2;
  char *pcVar2;
  int var_3;
  
  var_3 = 0;
  pcVar2 = "none";
  while( true ) {
    var_2 = var_1(osabi,pcVar2);
    if (var_2 == 0) {
      return osabis[var_3].osabi;
    }
    var_3 = var_3 + 1;
    if (var_3 == 0x10) break;
    pcVar2 = osabis[var_3].name;
  }
  pcVar2 = (char *)var_4(0,"Unknown OSABI: %s\n",5);
  var_5(pcVar2,osabi);
  return -1;
}


(translation_unit (function_definition type: (type_identifier) (ERROR (identifier)) 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: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (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 (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content) (escape_sequence)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (return_statement (number_literal)))))

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

undefined4 __regparm3 MASKED(char *param_1)

{
  char *__s2;
  int iVar1;
  undefined4 uVar2;
  int iVar3;
  
  iVar3 = 0;
  __s2 = "none";
  while( true ) {
    iVar1 = strcasecmp(param_1,__s2);
    if (iVar1 == 0) {
      return (&DAT_00018e80)[iVar3 * 2];
    }
    iVar3 = iVar3 + 1;
    if (iVar3 == 0x10) break;
    __s2 = *(char **)(&UNK_00018e84 + iVar3 * 8);
  }
  uVar2 = dcgettext(0,"Unknown OSABI: %s\n",5);
  error(uVar2,param_1);
  return 0xffffffff;
}

