
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* DWARF original prototype: char * get_symbol_type(Filedata * filedata, uint type, Filedata *
   filedata) */

char * __regparm3 get_symbol_type(Filedata *filedata,uint type,Filedata *filedata_1)

{
  short sVar1;
  undefined1 *puVar2;
  char *pcVar3;
  
  switch(filedata_1) {
  case (Filedata *)0x0:
    puVar2 = "NOTYPE";
    break;
  case (Filedata *)0x1:
    return "OBJECT";
  case (Filedata *)0x2:
    puVar2 = "FUNC";
    break;
  case (Filedata *)0x3:
    puVar2 = "SECTION";
    break;
  case (Filedata *)0x4:
    puVar2 = "FILE";
    break;
  case (Filedata *)0x5:
    puVar2 = "COMMON";
    break;
  case (Filedata *)0x6:
    puVar2 = "TLS";
    break;
  default:
    if ((undefined1 *)((int)&filedata_1[-1].string_table + 3U) < (undefined1 *)0x3) {
      sVar1 = *(short *)type;
      if (sVar1 == 0x28) {
        pcVar3 = "THUMB_FUNC";
joined_r0x00024151:
        if (filedata_1 == (Filedata *)0xd) {
          return pcVar3;
        }
      }
      else {
        if (sVar1 == 0x2b) {
          pcVar3 = "REGISTER";
          goto joined_r0x00024151;
        }
        if ((filedata_1 == (Filedata *)0xd) && (sVar1 == 0xf)) {
          return "PARISC_MILLI";
        }
      }
      pcVar3 = "<processor specific>: %d";
    }
    else if ((undefined1 *)((int)&filedata_1[-1].string_table_length + 2U) < (undefined1 *)0x3) {
      if (*(short *)type == 0xf) {
        if (filedata_1 == (Filedata *)0xb) {
          return "HP_OPAQUE";
        }
        if (filedata_1 == (Filedata *)0xc) {
          return "HP_STUB";
        }
      }
      if (((filedata_1 == (Filedata *)0xa) && (*(byte *)&filedata->file_name < 10)) &&
         ((0x209U >> (*(byte *)&filedata->file_name & 0x1f) & 1) != 0)) {
        return "IFUNC";
      }
      pcVar3 = "<OS specific>: %d";
    }
    else {
      pcVar3 = "<unknown>: %d";
    }
    pcVar3 = (char *)dcgettext(0,pcVar3,5);
    puVar2 = buff_18659;
    snprintf(buff_18659,0x20,pcVar3,filedata_1);
    break;
  case (Filedata *)0x8:
    puVar2 = "RELC";
    break;
  case (Filedata *)0x9:
    puVar2 = "SRELC";
  }
  return puVar2;
}



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

char * __regparm3 FUN_00023ff0(byte *param_1,short *param_2,int param_3)

{
  short sVar1;
  char *pcVar2;
  char *__format;
  
  switch(param_3) {
  case 0:
    pcVar2 = "NOTYPE";
    break;
  case 1:
    return "OBJECT";
  case 2:
    pcVar2 = "FUNC";
    break;
  case 3:
    pcVar2 = "SECTION";
    break;
  case 4:
    pcVar2 = "FILE";
    break;
  case 5:
    pcVar2 = "COMMON";
    break;
  case 6:
    pcVar2 = "TLS";
    break;
  default:
    if (param_3 - 0xdU < 3) {
      sVar1 = *param_2;
      if (sVar1 == 0x28) {
        pcVar2 = "THUMB_FUNC";
joined_r0x00024151:
        if (param_3 == 0xd) {
          return pcVar2;
        }
      }
      else {
        if (sVar1 == 0x2b) {
          pcVar2 = "REGISTER";
          goto joined_r0x00024151;
        }
        if ((param_3 == 0xd) && (sVar1 == 0xf)) {
          return "PARISC_MILLI";
        }
      }
      pcVar2 = "<processor specific>: %d";
    }
    else if (param_3 - 10U < 3) {
      if (*param_2 == 0xf) {
        if (param_3 == 0xb) {
          return "HP_OPAQUE";
        }
        if (param_3 == 0xc) {
          return "HP_STUB";
        }
      }
      if (((param_3 == 10) && (*param_1 < 10)) && ((0x209U >> (*param_1 & 0x1f) & 1) != 0)) {
        return "IFUNC";
      }
      pcVar2 = "<OS specific>: %d";
    }
    else {
      pcVar2 = "<unknown>: %d";
    }
    __format = (char *)dcgettext(0,pcVar2,5);
    pcVar2 = &DAT_000b5c80;
    snprintf(&DAT_000b5c80,0x20,__format,param_3);
    break;
  case 8:
    pcVar2 = "RELC";
    break;
  case 9:
    pcVar2 = "SRELC";
  }
  return pcVar2;
}


PUSH ESI
PUSH EBX
CALL 0x00013f70
ADD EBX,0x90009
SUB ESP,0x4
CMP ECX,0x9
JA 0x000240a0
MOV ESI,dword ptr [EBX + ECX*0x4 + 0xfffd83c0]
ADD ESI,EBX
JMP ESI
ADD ESP,0x4
POP EBX
POP ESI
RET
MOV ESI,ECX
MOV ECX,EAX
LEA EAX,[ESI + -0xd]
CMP EAX,0x2
JA 0x000240e0
MOVZX EDX,word ptr [EDX]
CMP DX,0x28
JZ 0x00024148
CMP DX,0x2b
JNZ 0x00024170
LEA EAX,[EBX + 0xfffbf8a9]
CMP ESI,0xd
JZ 0x0002401e
SUB ESP,0x4
LEA EAX,[EBX + 0xfffc328b]
PUSH 0x5
JMP 0x00024123
LEA EAX,[ESI + -0xa]
CMP EAX,0x2
JA 0x00024160
CMP word ptr [EDX],0xf
JZ 0x00024190
CMP ESI,0xa
JNZ 0x00024118
MOVZX EDX,byte ptr [ECX]
CMP DL,0x9
JA 0x00024118
MOV ECX,0x209
LEA EAX,[EBX + 0xfffc3285]
BT ECX,EDX
JC 0x0002401e
LEA ESI,[ESI]
NOP
SUB ESP,0x4
LEA EAX,[EBX + 0xfffc32a4]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
PUSH ESI
LEA ESI,[EBX + 0x1c80]
PUSH EAX
PUSH 0x20
PUSH ESI
CALL 0x000132c0
ADD ESP,0x20
MOV EAX,ESI
JMP 0x0002401e
LEA EAX,[EBX + 0xfffc3273]
CMP ESI,0xd
JNZ 0x000240d2
JMP 0x0002401e
SUB ESP,0x4
LEA EAX,[EBX + 0xfffc32b6]
PUSH 0x5
JMP 0x00024123
CMP ESI,0xd
JNZ 0x000240d2
LEA EAX,[EBX + 0xfffc3249]
CMP DX,0xf
JNZ 0x000240d2
JMP 0x0002401e
LEA EAX,[EBX + 0xfffc3269]
CMP ESI,0xb
JZ 0x0002401e
LEA EAX,[EBX + 0xfffc3261]
CMP ESI,0xc
JNZ 0x000240f2
JMP 0x0002401e
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nchar * __regparm3 FUN_00023ff0(byte *param_1,short *param_2,int param_3)\n\n{\n  short sVar1;\n  char *pcVar2;\n  char *__format;\n  \n  switch(param_3) {\n  case 0:\n    pcVar2 = "NOTYPE";\n    break;\n  case 1:\n    return "OBJECT";\n  case 2:\n    pcVar2 = "FUNC";\n    break;\n  case 3:\n    pcVar2 = "SECTION";\n    break;\n  case 4:\n    pcVar2 = "FILE";\n    break;\n  case 5:\n    pcVar2 = "COMMON";\n    break;\n  case 6:\n    pcVar2 = "TLS";\n    break;\n  default:\n    if (param_3 - 0xdU < 3) {\n      sVar1 = *param_2;\n      if (sVar1 == 0x28) {\n        pcVar2 = "THUMB_FUNC";\njoined_r0x00024151:\n        if (param_3 == 0xd) {\n          return pcVar2;\n        }\n      }\n      else {\n        if (sVar1 == 0x2b) {\n          pcVar2 = "REGISTER";\n          goto joined_r0x00024151;\n        }\n        if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n          return "PARISC_MILLI";\n        }\n      }\n      pcVar2 = "<processor specific>: %d";\n    }\n    else if (param_3 - 10U < 3) {\n      if (*param_2 == 0xf) {\n        if (param_3 == 0xb) {\n          return "HP_OPAQUE";\n        }\n        if (param_3 == 0xc) {\n          return "HP_STUB";\n        }\n      }\n      if (((param_3 == 10) && (*param_1 < 10)) && ((0x209U >> (*param_1 & 0x1f) & 1) != 0)) {\n        return "IFUNC";\n      }\n      pcVar2 = "<OS specific>: %d";\n    }\n    else {\n      pcVar2 = "<unknown>: %d";\n    }\n    __format = (char *)dcgettext(0,pcVar2,5);\n    pcVar2 = &DAT_000b5c80;\n    snprintf(&DAT_000b5c80,0x20,__format,param_3);\n    break;\n  case 8:\n    pcVar2 = "RELC";\n    break;\n  case 9:\n    pcVar2 = "SRELC";\n  }\n  return pcVar2;\n}\n\n" comment (function_definition "char * __regparm3 FUN_00023ff0(byte *param_1,short *param_2,int param_3)\n\n{\n  short sVar1;\n  char *pcVar2;\n  char *__format;\n  \n  switch(param_3) {\n  case 0:\n    pcVar2 = "NOTYPE";\n    break;\n  case 1:\n    return "OBJECT";\n  case 2:\n    pcVar2 = "FUNC";\n    break;\n  case 3:\n    pcVar2 = "SECTION";\n    break;\n  case 4:\n    pcVar2 = "FILE";\n    break;\n  case 5:\n    pcVar2 = "COMMON";\n    break;\n  case 6:\n    pcVar2 = "TLS";\n    break;\n  default:\n    if (param_3 - 0xdU < 3) {\n      sVar1 = *param_2;\n      if (sVar1 == 0x28) {\n        pcVar2 = "THUMB_FUNC";\njoined_r0x00024151:\n        if (param_3 == 0xd) {\n          return pcVar2;\n        }\n      }\n      else {\n        if (sVar1 == 0x2b) {\n          pcVar2 = "REGISTER";\n          goto joined_r0x00024151;\n        }\n        if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n          return "PARISC_MILLI";\n        }\n      }\n      pcVar2 = "<processor specific>: %d";\n    }\n    else if (param_3 - 10U < 3) {\n      if (*param_2 == 0xf) {\n        if (param_3 == 0xb) {\n          return "HP_OPAQUE";\n        }\n        if (param_3 == 0xc) {\n          return "HP_STUB";\n        }\n      }\n      if (((param_3 == 10) && (*param_1 < 10)) && ((0x209U >> (*param_1 & 0x1f) & 1) != 0)) {\n        return "IFUNC";\n      }\n      pcVar2 = "<OS specific>: %d";\n    }\n    else {\n      pcVar2 = "<unknown>: %d";\n    }\n    __format = (char *)dcgettext(0,pcVar2,5);\n    pcVar2 = &DAT_000b5c80;\n    snprintf(&DAT_000b5c80,0x20,__format,param_3);\n    break;\n  case 8:\n    pcVar2 = "RELC";\n    break;\n  case 9:\n    pcVar2 = "SRELC";\n  }\n  return pcVar2;\n}" primitive_type (pointer_declarator "* __regparm3 FUN_00023ff0(byte *param_1,short *param_2,int param_3)" * (ERROR "__regparm3" identifier) (function_declarator "FUN_00023ff0(byte *param_1,short *param_2,int param_3)" identifier (parameter_list "(byte *param_1,short *param_2,int param_3)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "short *param_2" (sized_type_specifier "short" short) (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) )))) (compound_statement "{\n  short sVar1;\n  char *pcVar2;\n  char *__format;\n  \n  switch(param_3) {\n  case 0:\n    pcVar2 = "NOTYPE";\n    break;\n  case 1:\n    return "OBJECT";\n  case 2:\n    pcVar2 = "FUNC";\n    break;\n  case 3:\n    pcVar2 = "SECTION";\n    break;\n  case 4:\n    pcVar2 = "FILE";\n    break;\n  case 5:\n    pcVar2 = "COMMON";\n    break;\n  case 6:\n    pcVar2 = "TLS";\n    break;\n  default:\n    if (param_3 - 0xdU < 3) {\n      sVar1 = *param_2;\n      if (sVar1 == 0x28) {\n        pcVar2 = "THUMB_FUNC";\njoined_r0x00024151:\n        if (param_3 == 0xd) {\n          return pcVar2;\n        }\n      }\n      else {\n        if (sVar1 == 0x2b) {\n          pcVar2 = "REGISTER";\n          goto joined_r0x00024151;\n        }\n        if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n          return "PARISC_MILLI";\n        }\n      }\n      pcVar2 = "<processor specific>: %d";\n    }\n    else if (param_3 - 10U < 3) {\n      if (*param_2 == 0xf) {\n        if (param_3 == 0xb) {\n          return "HP_OPAQUE";\n        }\n        if (param_3 == 0xc) {\n          return "HP_STUB";\n        }\n      }\n      if (((param_3 == 10) && (*param_1 < 10)) && ((0x209U >> (*param_1 & 0x1f) & 1) != 0)) {\n        return "IFUNC";\n      }\n      pcVar2 = "<OS specific>: %d";\n    }\n    else {\n      pcVar2 = "<unknown>: %d";\n    }\n    __format = (char *)dcgettext(0,pcVar2,5);\n    pcVar2 = &DAT_000b5c80;\n    snprintf(&DAT_000b5c80,0x20,__format,param_3);\n    break;\n  case 8:\n    pcVar2 = "RELC";\n    break;\n  case 9:\n    pcVar2 = "SRELC";\n  }\n  return pcVar2;\n}" { (declaration "short sVar1;" (sized_type_specifier "short" short) identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "char *__format;" primitive_type (pointer_declarator "*__format" * identifier) ;) (switch_statement "switch(param_3) {\n  case 0:\n    pcVar2 = "NOTYPE";\n    break;\n  case 1:\n    return "OBJECT";\n  case 2:\n    pcVar2 = "FUNC";\n    break;\n  case 3:\n    pcVar2 = "SECTION";\n    break;\n  case 4:\n    pcVar2 = "FILE";\n    break;\n  case 5:\n    pcVar2 = "COMMON";\n    break;\n  case 6:\n    pcVar2 = "TLS";\n    break;\n  default:\n    if (param_3 - 0xdU < 3) {\n      sVar1 = *param_2;\n      if (sVar1 == 0x28) {\n        pcVar2 = "THUMB_FUNC";\njoined_r0x00024151:\n        if (param_3 == 0xd) {\n          return pcVar2;\n        }\n      }\n      else {\n        if (sVar1 == 0x2b) {\n          pcVar2 = "REGISTER";\n          goto joined_r0x00024151;\n        }\n        if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n          return "PARISC_MILLI";\n        }\n      }\n      pcVar2 = "<processor specific>: %d";\n    }\n    else if (param_3 - 10U < 3) {\n      if (*param_2 == 0xf) {\n        if (param_3 == 0xb) {\n          return "HP_OPAQUE";\n        }\n        if (param_3 == 0xc) {\n          return "HP_STUB";\n        }\n      }\n      if (((param_3 == 10) && (*param_1 < 10)) && ((0x209U >> (*param_1 & 0x1f) & 1) != 0)) {\n        return "IFUNC";\n      }\n      pcVar2 = "<OS specific>: %d";\n    }\n    else {\n      pcVar2 = "<unknown>: %d";\n    }\n    __format = (char *)dcgettext(0,pcVar2,5);\n    pcVar2 = &DAT_000b5c80;\n    snprintf(&DAT_000b5c80,0x20,__format,param_3);\n    break;\n  case 8:\n    pcVar2 = "RELC";\n    break;\n  case 9:\n    pcVar2 = "SRELC";\n  }" switch (parenthesized_expression "(param_3)" ( identifier )) (compound_statement "{\n  case 0:\n    pcVar2 = "NOTYPE";\n    break;\n  case 1:\n    return "OBJECT";\n  case 2:\n    pcVar2 = "FUNC";\n    break;\n  case 3:\n    pcVar2 = "SECTION";\n    break;\n  case 4:\n    pcVar2 = "FILE";\n    break;\n  case 5:\n    pcVar2 = "COMMON";\n    break;\n  case 6:\n    pcVar2 = "TLS";\n    break;\n  default:\n    if (param_3 - 0xdU < 3) {\n      sVar1 = *param_2;\n      if (sVar1 == 0x28) {\n        pcVar2 = "THUMB_FUNC";\njoined_r0x00024151:\n        if (param_3 == 0xd) {\n          return pcVar2;\n        }\n      }\n      else {\n        if (sVar1 == 0x2b) {\n          pcVar2 = "REGISTER";\n          goto joined_r0x00024151;\n        }\n        if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n          return "PARISC_MILLI";\n        }\n      }\n      pcVar2 = "<processor specific>: %d";\n    }\n    else if (param_3 - 10U < 3) {\n      if (*param_2 == 0xf) {\n        if (param_3 == 0xb) {\n          return "HP_OPAQUE";\n        }\n        if (param_3 == 0xc) {\n          return "HP_STUB";\n        }\n      }\n      if (((param_3 == 10) && (*param_1 < 10)) && ((0x209U >> (*param_1 & 0x1f) & 1) != 0)) {\n        return "IFUNC";\n      }\n      pcVar2 = "<OS specific>: %d";\n    }\n    else {\n      pcVar2 = "<unknown>: %d";\n    }\n    __format = (char *)dcgettext(0,pcVar2,5);\n    pcVar2 = &DAT_000b5c80;\n    snprintf(&DAT_000b5c80,0x20,__format,param_3);\n    break;\n  case 8:\n    pcVar2 = "RELC";\n    break;\n  case 9:\n    pcVar2 = "SRELC";\n  }" { (case_statement "case 0:\n    pcVar2 = "NOTYPE";\n    break;" case number_literal : (expression_statement "pcVar2 = "NOTYPE";" (assignment_expression "pcVar2 = "NOTYPE"" identifier = (string_literal ""NOTYPE"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 1:\n    return "OBJECT";" case number_literal : (return_statement "return "OBJECT";" return (string_literal ""OBJECT"" " string_content ") ;)) (case_statement "case 2:\n    pcVar2 = "FUNC";\n    break;" case number_literal : (expression_statement "pcVar2 = "FUNC";" (assignment_expression "pcVar2 = "FUNC"" identifier = (string_literal ""FUNC"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 3:\n    pcVar2 = "SECTION";\n    break;" case number_literal : (expression_statement "pcVar2 = "SECTION";" (assignment_expression "pcVar2 = "SECTION"" identifier = (string_literal ""SECTION"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n    pcVar2 = "FILE";\n    break;" case number_literal : (expression_statement "pcVar2 = "FILE";" (assignment_expression "pcVar2 = "FILE"" identifier = (string_literal ""FILE"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 5:\n    pcVar2 = "COMMON";\n    break;" case number_literal : (expression_statement "pcVar2 = "COMMON";" (assignment_expression "pcVar2 = "COMMON"" identifier = (string_literal ""COMMON"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n    pcVar2 = "TLS";\n    break;" case number_literal : (expression_statement "pcVar2 = "TLS";" (assignment_expression "pcVar2 = "TLS"" identifier = (string_literal ""TLS"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "default:\n    if (param_3 - 0xdU < 3) {\n      sVar1 = *param_2;\n      if (sVar1 == 0x28) {\n        pcVar2 = "THUMB_FUNC";\njoined_r0x00024151:\n        if (param_3 == 0xd) {\n          return pcVar2;\n        }\n      }\n      else {\n        if (sVar1 == 0x2b) {\n          pcVar2 = "REGISTER";\n          goto joined_r0x00024151;\n        }\n        if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n          return "PARISC_MILLI";\n        }\n      }\n      pcVar2 = "<processor specific>: %d";\n    }\n    else if (param_3 - 10U < 3) {\n      if (*param_2 == 0xf) {\n        if (param_3 == 0xb) {\n          return "HP_OPAQUE";\n        }\n        if (param_3 == 0xc) {\n          return "HP_STUB";\n        }\n      }\n      if (((param_3 == 10) && (*param_1 < 10)) && ((0x209U >> (*param_1 & 0x1f) & 1) != 0)) {\n        return "IFUNC";\n      }\n      pcVar2 = "<OS specific>: %d";\n    }\n    else {\n      pcVar2 = "<unknown>: %d";\n    }\n    __format = (char *)dcgettext(0,pcVar2,5);\n    pcVar2 = &DAT_000b5c80;\n    snprintf(&DAT_000b5c80,0x20,__format,param_3);\n    break;" default : (if_statement "if (param_3 - 0xdU < 3) {\n      sVar1 = *param_2;\n      if (sVar1 == 0x28) {\n        pcVar2 = "THUMB_FUNC";\njoined_r0x00024151:\n        if (param_3 == 0xd) {\n          return pcVar2;\n        }\n      }\n      else {\n        if (sVar1 == 0x2b) {\n          pcVar2 = "REGISTER";\n          goto joined_r0x00024151;\n        }\n        if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n          return "PARISC_MILLI";\n        }\n      }\n      pcVar2 = "<processor specific>: %d";\n    }\n    else if (param_3 - 10U < 3) {\n      if (*param_2 == 0xf) {\n        if (param_3 == 0xb) {\n          return "HP_OPAQUE";\n        }\n        if (param_3 == 0xc) {\n          return "HP_STUB";\n        }\n      }\n      if (((param_3 == 10) && (*param_1 < 10)) && ((0x209U >> (*param_1 & 0x1f) & 1) != 0)) {\n        return "IFUNC";\n      }\n      pcVar2 = "<OS specific>: %d";\n    }\n    else {\n      pcVar2 = "<unknown>: %d";\n    }" if (parenthesized_expression "(param_3 - 0xdU < 3)" ( (binary_expression "param_3 - 0xdU < 3" (binary_expression "param_3 - 0xdU" identifier - number_literal) < number_literal) )) (compound_statement "{\n      sVar1 = *param_2;\n      if (sVar1 == 0x28) {\n        pcVar2 = "THUMB_FUNC";\njoined_r0x00024151:\n        if (param_3 == 0xd) {\n          return pcVar2;\n        }\n      }\n      else {\n        if (sVar1 == 0x2b) {\n          pcVar2 = "REGISTER";\n          goto joined_r0x00024151;\n        }\n        if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n          return "PARISC_MILLI";\n        }\n      }\n      pcVar2 = "<processor specific>: %d";\n    }" { (expression_statement "sVar1 = *param_2;" (assignment_expression "sVar1 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (sVar1 == 0x28) {\n        pcVar2 = "THUMB_FUNC";\njoined_r0x00024151:\n        if (param_3 == 0xd) {\n          return pcVar2;\n        }\n      }\n      else {\n        if (sVar1 == 0x2b) {\n          pcVar2 = "REGISTER";\n          goto joined_r0x00024151;\n        }\n        if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n          return "PARISC_MILLI";\n        }\n      }" if (parenthesized_expression "(sVar1 == 0x28)" ( (binary_expression "sVar1 == 0x28" identifier == number_literal) )) (compound_statement "{\n        pcVar2 = "THUMB_FUNC";\njoined_r0x00024151:\n        if (param_3 == 0xd) {\n          return pcVar2;\n        }\n      }" { (expression_statement "pcVar2 = "THUMB_FUNC";" (assignment_expression "pcVar2 = "THUMB_FUNC"" identifier = (string_literal ""THUMB_FUNC"" " string_content ")) ;) (labeled_statement "joined_r0x00024151:\n        if (param_3 == 0xd) {\n          return pcVar2;\n        }" statement_identifier : (if_statement "if (param_3 == 0xd) {\n          return pcVar2;\n        }" if (parenthesized_expression "(param_3 == 0xd)" ( (binary_expression "param_3 == 0xd" identifier == number_literal) )) (compound_statement "{\n          return pcVar2;\n        }" { (return_statement "return pcVar2;" return identifier ;) }))) }) (else_clause "else {\n        if (sVar1 == 0x2b) {\n          pcVar2 = "REGISTER";\n          goto joined_r0x00024151;\n        }\n        if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n          return "PARISC_MILLI";\n        }\n      }" else (compound_statement "{\n        if (sVar1 == 0x2b) {\n          pcVar2 = "REGISTER";\n          goto joined_r0x00024151;\n        }\n        if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n          return "PARISC_MILLI";\n        }\n      }" { (if_statement "if (sVar1 == 0x2b) {\n          pcVar2 = "REGISTER";\n          goto joined_r0x00024151;\n        }" if (parenthesized_expression "(sVar1 == 0x2b)" ( (binary_expression "sVar1 == 0x2b" identifier == number_literal) )) (compound_statement "{\n          pcVar2 = "REGISTER";\n          goto joined_r0x00024151;\n        }" { (expression_statement "pcVar2 = "REGISTER";" (assignment_expression "pcVar2 = "REGISTER"" identifier = (string_literal ""REGISTER"" " string_content ")) ;) (goto_statement "goto joined_r0x00024151;" goto statement_identifier ;) })) (if_statement "if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n          return "PARISC_MILLI";\n        }" if (parenthesized_expression "((param_3 == 0xd) && (sVar1 == 0xf))" ( (binary_expression "(param_3 == 0xd) && (sVar1 == 0xf)" (parenthesized_expression "(param_3 == 0xd)" ( (binary_expression "param_3 == 0xd" identifier == number_literal) )) && (parenthesized_expression "(sVar1 == 0xf)" ( (binary_expression "sVar1 == 0xf" identifier == number_literal) ))) )) (compound_statement "{\n          return "PARISC_MILLI";\n        }" { (return_statement "return "PARISC_MILLI";" return (string_literal ""PARISC_MILLI"" " string_content ") ;) })) }))) (expression_statement "pcVar2 = "<processor specific>: %d";" (assignment_expression "pcVar2 = "<processor specific>: %d"" identifier = (string_literal ""<processor specific>: %d"" " string_content ")) ;) }) (else_clause "else if (param_3 - 10U < 3) {\n      if (*param_2 == 0xf) {\n        if (param_3 == 0xb) {\n          return "HP_OPAQUE";\n        }\n        if (param_3 == 0xc) {\n          return "HP_STUB";\n        }\n      }\n      if (((param_3 == 10) && (*param_1 < 10)) && ((0x209U >> (*param_1 & 0x1f) & 1) != 0)) {\n        return "IFUNC";\n      }\n      pcVar2 = "<OS specific>: %d";\n    }\n    else {\n      pcVar2 = "<unknown>: %d";\n    }" else (if_statement "if (param_3 - 10U < 3) {\n      if (*param_2 == 0xf) {\n        if (param_3 == 0xb) {\n          return "HP_OPAQUE";\n        }\n        if (param_3 == 0xc) {\n          return "HP_STUB";\n        }\n      }\n      if (((param_3 == 10) && (*param_1 < 10)) && ((0x209U >> (*param_1 & 0x1f) & 1) != 0)) {\n        return "IFUNC";\n      }\n      pcVar2 = "<OS specific>: %d";\n    }\n    else {\n      pcVar2 = "<unknown>: %d";\n    }" if (parenthesized_expression "(param_3 - 10U < 3)" ( (binary_expression "param_3 - 10U < 3" (binary_expression "param_3 - 10U" identifier - number_literal) < number_literal) )) (compound_statement "{\n      if (*param_2 == 0xf) {\n        if (param_3 == 0xb) {\n          return "HP_OPAQUE";\n        }\n        if (param_3 == 0xc) {\n          return "HP_STUB";\n        }\n      }\n      if (((param_3 == 10) && (*param_1 < 10)) && ((0x209U >> (*param_1 & 0x1f) & 1) != 0)) {\n        return "IFUNC";\n      }\n      pcVar2 = "<OS specific>: %d";\n    }" { (if_statement "if (*param_2 == 0xf) {\n        if (param_3 == 0xb) {\n          return "HP_OPAQUE";\n        }\n        if (param_3 == 0xc) {\n          return "HP_STUB";\n        }\n      }" if (parenthesized_expression "(*param_2 == 0xf)" ( (binary_expression "*param_2 == 0xf" (pointer_expression "*param_2" * identifier) == number_literal) )) (compound_statement "{\n        if (param_3 == 0xb) {\n          return "HP_OPAQUE";\n        }\n        if (param_3 == 0xc) {\n          return "HP_STUB";\n        }\n      }" { (if_statement "if (param_3 == 0xb) {\n          return "HP_OPAQUE";\n        }" if (parenthesized_expression "(param_3 == 0xb)" ( (binary_expression "param_3 == 0xb" identifier == number_literal) )) (compound_statement "{\n          return "HP_OPAQUE";\n        }" { (return_statement "return "HP_OPAQUE";" return (string_literal ""HP_OPAQUE"" " string_content ") ;) })) (if_statement "if (param_3 == 0xc) {\n          return "HP_STUB";\n        }" if (parenthesized_expression "(param_3 == 0xc)" ( (binary_expression "param_3 == 0xc" identifier == number_literal) )) (compound_statement "{\n          return "HP_STUB";\n        }" { (return_statement "return "HP_STUB";" return (string_literal ""HP_STUB"" " string_content ") ;) })) })) (if_statement "if (((param_3 == 10) && (*param_1 < 10)) && ((0x209U >> (*param_1 & 0x1f) & 1) != 0)) {\n        return "IFUNC";\n      }" if (parenthesized_expression "(((param_3 == 10) && (*param_1 < 10)) && ((0x209U >> (*param_1 & 0x1f) & 1) != 0))" ( (binary_expression "((param_3 == 10) && (*param_1 < 10)) && ((0x209U >> (*param_1 & 0x1f) & 1) != 0)" (parenthesized_expression "((param_3 == 10) && (*param_1 < 10))" ( (binary_expression "(param_3 == 10) && (*param_1 < 10)" (parenthesized_expression "(param_3 == 10)" ( (binary_expression "param_3 == 10" identifier == number_literal) )) && (parenthesized_expression "(*param_1 < 10)" ( (binary_expression "*param_1 < 10" (pointer_expression "*param_1" * identifier) < number_literal) ))) )) && (parenthesized_expression "((0x209U >> (*param_1 & 0x1f) & 1) != 0)" ( (binary_expression "(0x209U >> (*param_1 & 0x1f) & 1) != 0" (parenthesized_expression "(0x209U >> (*param_1 & 0x1f) & 1)" ( (binary_expression "0x209U >> (*param_1 & 0x1f) & 1" (binary_expression "0x209U >> (*param_1 & 0x1f)" number_literal >> (parenthesized_expression "(*param_1 & 0x1f)" ( (binary_expression "*param_1 & 0x1f" (pointer_expression "*param_1" * identifier) & number_literal) ))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n        return "IFUNC";\n      }" { (return_statement "return "IFUNC";" return (string_literal ""IFUNC"" " string_content ") ;) })) (expression_statement "pcVar2 = "<OS specific>: %d";" (assignment_expression "pcVar2 = "<OS specific>: %d"" identifier = (string_literal ""<OS specific>: %d"" " string_content ")) ;) }) (else_clause "else {\n      pcVar2 = "<unknown>: %d";\n    }" else (compound_statement "{\n      pcVar2 = "<unknown>: %d";\n    }" { (expression_statement "pcVar2 = "<unknown>: %d";" (assignment_expression "pcVar2 = "<unknown>: %d"" identifier = (string_literal ""<unknown>: %d"" " string_content ")) ;) }))))) (expression_statement "__format = (char *)dcgettext(0,pcVar2,5);" (assignment_expression "__format = (char *)dcgettext(0,pcVar2,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar2,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar2,5)" identifier (argument_list "(0,pcVar2,5)" ( number_literal , identifier , number_literal ))))) ;) (expression_statement "pcVar2 = &DAT_000b5c80;" (assignment_expression "pcVar2 = &DAT_000b5c80" identifier = (pointer_expression "&DAT_000b5c80" & identifier)) ;) (expression_statement "snprintf(&DAT_000b5c80,0x20,__format,param_3);" (call_expression "snprintf(&DAT_000b5c80,0x20,__format,param_3)" identifier (argument_list "(&DAT_000b5c80,0x20,__format,param_3)" ( (pointer_expression "&DAT_000b5c80" & identifier) , number_literal , identifier , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 8:\n    pcVar2 = "RELC";\n    break;" case number_literal : (expression_statement "pcVar2 = "RELC";" (assignment_expression "pcVar2 = "RELC"" identifier = (string_literal ""RELC"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 9:\n    pcVar2 = "SRELC";" case number_literal : (expression_statement "pcVar2 = "SRELC";" (assignment_expression "pcVar2 = "SRELC"" identifier = (string_literal ""SRELC"" " string_content ")) ;)) })) (return_statement "return pcVar2;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* DWARF original prototype: char * get_symbol_type(Filedata * filedata, uint type, Filedata *\n   filedata) */\n\nchar * __regparm3 get_symbol_type(Filedata *filedata,uint type,Filedata *filedata_1)\n\n{\n  short sVar1;\n  undefined1 *puVar2;\n  char *pcVar3;\n  \n  switch(filedata_1) {\n  case (Filedata *)0x0:\n    puVar2 = "NOTYPE";\n    break;\n  case (Filedata *)0x1:\n    return "OBJECT";\n  case (Filedata *)0x2:\n    puVar2 = "FUNC";\n    break;\n  case (Filedata *)0x3:\n    puVar2 = "SECTION";\n    break;\n  case (Filedata *)0x4:\n    puVar2 = "FILE";\n    break;\n  case (Filedata *)0x5:\n    puVar2 = "COMMON";\n    break;\n  case (Filedata *)0x6:\n    puVar2 = "TLS";\n    break;\n  default:\n    if ((undefined1 *)((int)&filedata_1[-1].string_table + 3U) < (undefined1 *)0x3) {\n      sVar1 = *(short *)type;\n      if (sVar1 == 0x28) {\n        pcVar3 = "THUMB_FUNC";\njoined_r0x00024151:\n        if (filedata_1 == (Filedata *)0xd) {\n          return pcVar3;\n        }\n      }\n      else {\n        if (sVar1 == 0x2b) {\n          pcVar3 = "REGISTER";\n          goto joined_r0x00024151;\n        }\n        if ((filedata_1 == (Filedata *)0xd) && (sVar1 == 0xf)) {\n          return "PARISC_MILLI";\n        }\n      }\n      pcVar3 = "<processor specific>: %d";\n    }\n    else if ((undefined1 *)((int)&filedata_1[-1].string_table_length + 2U) < (undefined1 *)0x3) {\n      if (*(short *)type == 0xf) {\n        if (filedata_1 == (Filedata *)0xb) {\n          return "HP_OPAQUE";\n        }\n        if (filedata_1 == (Filedata *)0xc) {\n          return "HP_STUB";\n        }\n      }\n      if (((filedata_1 == (Filedata *)0xa) && (*(byte *)&filedata->file_name < 10)) &&\n         ((0x209U >> (*(byte *)&filedata->file_name & 0x1f) & 1) != 0)) {\n        return "IFUNC";\n      }\n      pcVar3 = "<OS specific>: %d";\n    }\n    else {\n      pcVar3 = "<unknown>: %d";\n    }\n    pcVar3 = (char *)dcgettext(0,pcVar3,5);\n    puVar2 = buff_18659;\n    snprintf(buff_18659,0x20,pcVar3,filedata_1);\n    break;\n  case (Filedata *)0x8:\n    puVar2 = "RELC";\n    break;\n  case (Filedata *)0x9:\n    puVar2 = "SRELC";\n  }\n  return puVar2;\n}\n\n" comment comment (function_definition "char * __regparm3 get_symbol_type(Filedata *filedata,uint type,Filedata *filedata_1)\n\n{\n  short sVar1;\n  undefined1 *puVar2;\n  char *pcVar3;\n  \n  switch(filedata_1) {\n  case (Filedata *)0x0:\n    puVar2 = "NOTYPE";\n    break;\n  case (Filedata *)0x1:\n    return "OBJECT";\n  case (Filedata *)0x2:\n    puVar2 = "FUNC";\n    break;\n  case (Filedata *)0x3:\n    puVar2 = "SECTION";\n    break;\n  case (Filedata *)0x4:\n    puVar2 = "FILE";\n    break;\n  case (Filedata *)0x5:\n    puVar2 = "COMMON";\n    break;\n  case (Filedata *)0x6:\n    puVar2 = "TLS";\n    break;\n  default:\n    if ((undefined1 *)((int)&filedata_1[-1].string_table + 3U) < (undefined1 *)0x3) {\n      sVar1 = *(short *)type;\n      if (sVar1 == 0x28) {\n        pcVar3 = "THUMB_FUNC";\njoined_r0x00024151:\n        if (filedata_1 == (Filedata *)0xd) {\n          return pcVar3;\n        }\n      }\n      else {\n        if (sVar1 == 0x2b) {\n          pcVar3 = "REGISTER";\n          goto joined_r0x00024151;\n        }\n        if ((filedata_1 == (Filedata *)0xd) && (sVar1 == 0xf)) {\n          return "PARISC_MILLI";\n        }\n      }\n      pcVar3 = "<processor specific>: %d";\n    }\n    else if ((undefined1 *)((int)&filedata_1[-1].string_table_length + 2U) < (undefined1 *)0x3) {\n      if (*(short *)type == 0xf) {\n        if (filedata_1 == (Filedata *)0xb) {\n          return "HP_OPAQUE";\n        }\n        if (filedata_1 == (Filedata *)0xc) {\n          return "HP_STUB";\n        }\n      }\n      if (((filedata_1 == (Filedata *)0xa) && (*(byte *)&filedata->file_name < 10)) &&\n         ((0x209U >> (*(byte *)&filedata->file_name & 0x1f) & 1) != 0)) {\n        return "IFUNC";\n      }\n      pcVar3 = "<OS specific>: %d";\n    }\n    else {\n      pcVar3 = "<unknown>: %d";\n    }\n    pcVar3 = (char *)dcgettext(0,pcVar3,5);\n    puVar2 = buff_18659;\n    snprintf(buff_18659,0x20,pcVar3,filedata_1);\n    break;\n  case (Filedata *)0x8:\n    puVar2 = "RELC";\n    break;\n  case (Filedata *)0x9:\n    puVar2 = "SRELC";\n  }\n  return puVar2;\n}" primitive_type (pointer_declarator "* __regparm3 get_symbol_type(Filedata *filedata,uint type,Filedata *filedata_1)" * (ERROR "__regparm3" identifier) (function_declarator "get_symbol_type(Filedata *filedata,uint type,Filedata *filedata_1)" identifier (parameter_list "(Filedata *filedata,uint type,Filedata *filedata_1)" ( (parameter_declaration "Filedata *filedata" type_identifier (pointer_declarator "*filedata" * identifier)) , (parameter_declaration "uint type" type_identifier identifier) , (parameter_declaration "Filedata *filedata_1" type_identifier (pointer_declarator "*filedata_1" * identifier)) )))) (compound_statement "{\n  short sVar1;\n  undefined1 *puVar2;\n  char *pcVar3;\n  \n  switch(filedata_1) {\n  case (Filedata *)0x0:\n    puVar2 = "NOTYPE";\n    break;\n  case (Filedata *)0x1:\n    return "OBJECT";\n  case (Filedata *)0x2:\n    puVar2 = "FUNC";\n    break;\n  case (Filedata *)0x3:\n    puVar2 = "SECTION";\n    break;\n  case (Filedata *)0x4:\n    puVar2 = "FILE";\n    break;\n  case (Filedata *)0x5:\n    puVar2 = "COMMON";\n    break;\n  case (Filedata *)0x6:\n    puVar2 = "TLS";\n    break;\n  default:\n    if ((undefined1 *)((int)&filedata_1[-1].string_table + 3U) < (undefined1 *)0x3) {\n      sVar1 = *(short *)type;\n      if (sVar1 == 0x28) {\n        pcVar3 = "THUMB_FUNC";\njoined_r0x00024151:\n        if (filedata_1 == (Filedata *)0xd) {\n          return pcVar3;\n        }\n      }\n      else {\n        if (sVar1 == 0x2b) {\n          pcVar3 = "REGISTER";\n          goto joined_r0x00024151;\n        }\n        if ((filedata_1 == (Filedata *)0xd) && (sVar1 == 0xf)) {\n          return "PARISC_MILLI";\n        }\n      }\n      pcVar3 = "<processor specific>: %d";\n    }\n    else if ((undefined1 *)((int)&filedata_1[-1].string_table_length + 2U) < (undefined1 *)0x3) {\n      if (*(short *)type == 0xf) {\n        if (filedata_1 == (Filedata *)0xb) {\n          return "HP_OPAQUE";\n        }\n        if (filedata_1 == (Filedata *)0xc) {\n          return "HP_STUB";\n        }\n      }\n      if (((filedata_1 == (Filedata *)0xa) && (*(byte *)&filedata->file_name < 10)) &&\n         ((0x209U >> (*(byte *)&filedata->file_name & 0x1f) & 1) != 0)) {\n        return "IFUNC";\n      }\n      pcVar3 = "<OS specific>: %d";\n    }\n    else {\n      pcVar3 = "<unknown>: %d";\n    }\n    pcVar3 = (char *)dcgettext(0,pcVar3,5);\n    puVar2 = buff_18659;\n    snprintf(buff_18659,0x20,pcVar3,filedata_1);\n    break;\n  case (Filedata *)0x8:\n    puVar2 = "RELC";\n    break;\n  case (Filedata *)0x9:\n    puVar2 = "SRELC";\n  }\n  return puVar2;\n}" { (declaration "short sVar1;" (sized_type_specifier "short" short) identifier ;) (declaration "undefined1 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (switch_statement "switch(filedata_1) {\n  case (Filedata *)0x0:\n    puVar2 = "NOTYPE";\n    break;\n  case (Filedata *)0x1:\n    return "OBJECT";\n  case (Filedata *)0x2:\n    puVar2 = "FUNC";\n    break;\n  case (Filedata *)0x3:\n    puVar2 = "SECTION";\n    break;\n  case (Filedata *)0x4:\n    puVar2 = "FILE";\n    break;\n  case (Filedata *)0x5:\n    puVar2 = "COMMON";\n    break;\n  case (Filedata *)0x6:\n    puVar2 = "TLS";\n    break;\n  default:\n    if ((undefined1 *)((int)&filedata_1[-1].string_table + 3U) < (undefined1 *)0x3) {\n      sVar1 = *(short *)type;\n      if (sVar1 == 0x28) {\n        pcVar3 = "THUMB_FUNC";\njoined_r0x00024151:\n        if (filedata_1 == (Filedata *)0xd) {\n          return pcVar3;\n        }\n      }\n      else {\n        if (sVar1 == 0x2b) {\n          pcVar3 = "REGISTER";\n          goto joined_r0x00024151;\n        }\n        if ((filedata_1 == (Filedata *)0xd) && (sVar1 == 0xf)) {\n          return "PARISC_MILLI";\n        }\n      }\n      pcVar3 = "<processor specific>: %d";\n    }\n    else if ((undefined1 *)((int)&filedata_1[-1].string_table_length + 2U) < (undefined1 *)0x3) {\n      if (*(short *)type == 0xf) {\n        if (filedata_1 == (Filedata *)0xb) {\n          return "HP_OPAQUE";\n        }\n        if (filedata_1 == (Filedata *)0xc) {\n          return "HP_STUB";\n        }\n      }\n      if (((filedata_1 == (Filedata *)0xa) && (*(byte *)&filedata->file_name < 10)) &&\n         ((0x209U >> (*(byte *)&filedata->file_name & 0x1f) & 1) != 0)) {\n        return "IFUNC";\n      }\n      pcVar3 = "<OS specific>: %d";\n    }\n    else {\n      pcVar3 = "<unknown>: %d";\n    }\n    pcVar3 = (char *)dcgettext(0,pcVar3,5);\n    puVar2 = buff_18659;\n    snprintf(buff_18659,0x20,pcVar3,filedata_1);\n    break;\n  case (Filedata *)0x8:\n    puVar2 = "RELC";\n    break;\n  case (Filedata *)0x9:\n    puVar2 = "SRELC";\n  }" switch (parenthesized_expression "(filedata_1)" ( identifier )) (compound_statement "{\n  case (Filedata *)0x0:\n    puVar2 = "NOTYPE";\n    break;\n  case (Filedata *)0x1:\n    return "OBJECT";\n  case (Filedata *)0x2:\n    puVar2 = "FUNC";\n    break;\n  case (Filedata *)0x3:\n    puVar2 = "SECTION";\n    break;\n  case (Filedata *)0x4:\n    puVar2 = "FILE";\n    break;\n  case (Filedata *)0x5:\n    puVar2 = "COMMON";\n    break;\n  case (Filedata *)0x6:\n    puVar2 = "TLS";\n    break;\n  default:\n    if ((undefined1 *)((int)&filedata_1[-1].string_table + 3U) < (undefined1 *)0x3) {\n      sVar1 = *(short *)type;\n      if (sVar1 == 0x28) {\n        pcVar3 = "THUMB_FUNC";\njoined_r0x00024151:\n        if (filedata_1 == (Filedata *)0xd) {\n          return pcVar3;\n        }\n      }\n      else {\n        if (sVar1 == 0x2b) {\n          pcVar3 = "REGISTER";\n          goto joined_r0x00024151;\n        }\n        if ((filedata_1 == (Filedata *)0xd) && (sVar1 == 0xf)) {\n          return "PARISC_MILLI";\n        }\n      }\n      pcVar3 = "<processor specific>: %d";\n    }\n    else if ((undefined1 *)((int)&filedata_1[-1].string_table_length + 2U) < (undefined1 *)0x3) {\n      if (*(short *)type == 0xf) {\n        if (filedata_1 == (Filedata *)0xb) {\n          return "HP_OPAQUE";\n        }\n        if (filedata_1 == (Filedata *)0xc) {\n          return "HP_STUB";\n        }\n      }\n      if (((filedata_1 == (Filedata *)0xa) && (*(byte *)&filedata->file_name < 10)) &&\n         ((0x209U >> (*(byte *)&filedata->file_name & 0x1f) & 1) != 0)) {\n        return "IFUNC";\n      }\n      pcVar3 = "<OS specific>: %d";\n    }\n    else {\n      pcVar3 = "<unknown>: %d";\n    }\n    pcVar3 = (char *)dcgettext(0,pcVar3,5);\n    puVar2 = buff_18659;\n    snprintf(buff_18659,0x20,pcVar3,filedata_1);\n    break;\n  case (Filedata *)0x8:\n    puVar2 = "RELC";\n    break;\n  case (Filedata *)0x9:\n    puVar2 = "SRELC";\n  }" { (case_statement "case (Filedata *)0x0:\n    puVar2 = "NOTYPE";\n    break;" case (cast_expression "(Filedata *)0x0" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) : (expression_statement "puVar2 = "NOTYPE";" (assignment_expression "puVar2 = "NOTYPE"" identifier = (string_literal ""NOTYPE"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case (Filedata *)0x1:\n    return "OBJECT";" case (cast_expression "(Filedata *)0x1" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) : (return_statement "return "OBJECT";" return (string_literal ""OBJECT"" " string_content ") ;)) (case_statement "case (Filedata *)0x2:\n    puVar2 = "FUNC";\n    break;" case (cast_expression "(Filedata *)0x2" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) : (expression_statement "puVar2 = "FUNC";" (assignment_expression "puVar2 = "FUNC"" identifier = (string_literal ""FUNC"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case (Filedata *)0x3:\n    puVar2 = "SECTION";\n    break;" case (cast_expression "(Filedata *)0x3" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) : (expression_statement "puVar2 = "SECTION";" (assignment_expression "puVar2 = "SECTION"" identifier = (string_literal ""SECTION"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case (Filedata *)0x4:\n    puVar2 = "FILE";\n    break;" case (cast_expression "(Filedata *)0x4" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) : (expression_statement "puVar2 = "FILE";" (assignment_expression "puVar2 = "FILE"" identifier = (string_literal ""FILE"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case (Filedata *)0x5:\n    puVar2 = "COMMON";\n    break;" case (cast_expression "(Filedata *)0x5" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) : (expression_statement "puVar2 = "COMMON";" (assignment_expression "puVar2 = "COMMON"" identifier = (string_literal ""COMMON"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case (Filedata *)0x6:\n    puVar2 = "TLS";\n    break;" case (cast_expression "(Filedata *)0x6" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) : (expression_statement "puVar2 = "TLS";" (assignment_expression "puVar2 = "TLS"" identifier = (string_literal ""TLS"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "default:\n    if ((undefined1 *)((int)&filedata_1[-1].string_table + 3U) < (undefined1 *)0x3) {\n      sVar1 = *(short *)type;\n      if (sVar1 == 0x28) {\n        pcVar3 = "THUMB_FUNC";\njoined_r0x00024151:\n        if (filedata_1 == (Filedata *)0xd) {\n          return pcVar3;\n        }\n      }\n      else {\n        if (sVar1 == 0x2b) {\n          pcVar3 = "REGISTER";\n          goto joined_r0x00024151;\n        }\n        if ((filedata_1 == (Filedata *)0xd) && (sVar1 == 0xf)) {\n          return "PARISC_MILLI";\n        }\n      }\n      pcVar3 = "<processor specific>: %d";\n    }\n    else if ((undefined1 *)((int)&filedata_1[-1].string_table_length + 2U) < (undefined1 *)0x3) {\n      if (*(short *)type == 0xf) {\n        if (filedata_1 == (Filedata *)0xb) {\n          return "HP_OPAQUE";\n        }\n        if (filedata_1 == (Filedata *)0xc) {\n          return "HP_STUB";\n        }\n      }\n      if (((filedata_1 == (Filedata *)0xa) && (*(byte *)&filedata->file_name < 10)) &&\n         ((0x209U >> (*(byte *)&filedata->file_name & 0x1f) & 1) != 0)) {\n        return "IFUNC";\n      }\n      pcVar3 = "<OS specific>: %d";\n    }\n    else {\n      pcVar3 = "<unknown>: %d";\n    }\n    pcVar3 = (char *)dcgettext(0,pcVar3,5);\n    puVar2 = buff_18659;\n    snprintf(buff_18659,0x20,pcVar3,filedata_1);\n    break;" default : (if_statement "if ((undefined1 *)((int)&filedata_1[-1].string_table + 3U) < (undefined1 *)0x3) {\n      sVar1 = *(short *)type;\n      if (sVar1 == 0x28) {\n        pcVar3 = "THUMB_FUNC";\njoined_r0x00024151:\n        if (filedata_1 == (Filedata *)0xd) {\n          return pcVar3;\n        }\n      }\n      else {\n        if (sVar1 == 0x2b) {\n          pcVar3 = "REGISTER";\n          goto joined_r0x00024151;\n        }\n        if ((filedata_1 == (Filedata *)0xd) && (sVar1 == 0xf)) {\n          return "PARISC_MILLI";\n        }\n      }\n      pcVar3 = "<processor specific>: %d";\n    }\n    else if ((undefined1 *)((int)&filedata_1[-1].string_table_length + 2U) < (undefined1 *)0x3) {\n      if (*(short *)type == 0xf) {\n        if (filedata_1 == (Filedata *)0xb) {\n          return "HP_OPAQUE";\n        }\n        if (filedata_1 == (Filedata *)0xc) {\n          return "HP_STUB";\n        }\n      }\n      if (((filedata_1 == (Filedata *)0xa) && (*(byte *)&filedata->file_name < 10)) &&\n         ((0x209U >> (*(byte *)&filedata->file_name & 0x1f) & 1) != 0)) {\n        return "IFUNC";\n      }\n      pcVar3 = "<OS specific>: %d";\n    }\n    else {\n      pcVar3 = "<unknown>: %d";\n    }" if (parenthesized_expression "((undefined1 *)((int)&filedata_1[-1].string_table + 3U) < (undefined1 *)0x3)" ( (binary_expression "(undefined1 *)((int)&filedata_1[-1].string_table + 3U) < (undefined1 *)0x3" (cast_expression "(undefined1 *)((int)&filedata_1[-1].string_table + 3U)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&filedata_1[-1].string_table + 3U)" ( (binary_expression "(int)&filedata_1[-1].string_table + 3U" (cast_expression "(int)&filedata_1[-1].string_table" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&filedata_1[-1].string_table" & (field_expression "filedata_1[-1].string_table" (subscript_expression "filedata_1[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) ))) < (cast_expression "(undefined1 *)0x3" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      sVar1 = *(short *)type;\n      if (sVar1 == 0x28) {\n        pcVar3 = "THUMB_FUNC";\njoined_r0x00024151:\n        if (filedata_1 == (Filedata *)0xd) {\n          return pcVar3;\n        }\n      }\n      else {\n        if (sVar1 == 0x2b) {\n          pcVar3 = "REGISTER";\n          goto joined_r0x00024151;\n        }\n        if ((filedata_1 == (Filedata *)0xd) && (sVar1 == 0xf)) {\n          return "PARISC_MILLI";\n        }\n      }\n      pcVar3 = "<processor specific>: %d";\n    }" { (expression_statement "sVar1 = *(short *)type;" (assignment_expression "sVar1 = *(short *)type" identifier = (pointer_expression "*(short *)type" * (cast_expression "(short *)type" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (sVar1 == 0x28) {\n        pcVar3 = "THUMB_FUNC";\njoined_r0x00024151:\n        if (filedata_1 == (Filedata *)0xd) {\n          return pcVar3;\n        }\n      }\n      else {\n        if (sVar1 == 0x2b) {\n          pcVar3 = "REGISTER";\n          goto joined_r0x00024151;\n        }\n        if ((filedata_1 == (Filedata *)0xd) && (sVar1 == 0xf)) {\n          return "PARISC_MILLI";\n        }\n      }" if (parenthesized_expression "(sVar1 == 0x28)" ( (binary_expression "sVar1 == 0x28" identifier == number_literal) )) (compound_statement "{\n        pcVar3 = "THUMB_FUNC";\njoined_r0x00024151:\n        if (filedata_1 == (Filedata *)0xd) {\n          return pcVar3;\n        }\n      }" { (expression_statement "pcVar3 = "THUMB_FUNC";" (assignment_expression "pcVar3 = "THUMB_FUNC"" identifier = (string_literal ""THUMB_FUNC"" " string_content ")) ;) (labeled_statement "joined_r0x00024151:\n        if (filedata_1 == (Filedata *)0xd) {\n          return pcVar3;\n        }" statement_identifier : (if_statement "if (filedata_1 == (Filedata *)0xd) {\n          return pcVar3;\n        }" if (parenthesized_expression "(filedata_1 == (Filedata *)0xd)" ( (binary_expression "filedata_1 == (Filedata *)0xd" identifier == (cast_expression "(Filedata *)0xd" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          return pcVar3;\n        }" { (return_statement "return pcVar3;" return identifier ;) }))) }) (else_clause "else {\n        if (sVar1 == 0x2b) {\n          pcVar3 = "REGISTER";\n          goto joined_r0x00024151;\n        }\n        if ((filedata_1 == (Filedata *)0xd) && (sVar1 == 0xf)) {\n          return "PARISC_MILLI";\n        }\n      }" else (compound_statement "{\n        if (sVar1 == 0x2b) {\n          pcVar3 = "REGISTER";\n          goto joined_r0x00024151;\n        }\n        if ((filedata_1 == (Filedata *)0xd) && (sVar1 == 0xf)) {\n          return "PARISC_MILLI";\n        }\n      }" { (if_statement "if (sVar1 == 0x2b) {\n          pcVar3 = "REGISTER";\n          goto joined_r0x00024151;\n        }" if (parenthesized_expression "(sVar1 == 0x2b)" ( (binary_expression "sVar1 == 0x2b" identifier == number_literal) )) (compound_statement "{\n          pcVar3 = "REGISTER";\n          goto joined_r0x00024151;\n        }" { (expression_statement "pcVar3 = "REGISTER";" (assignment_expression "pcVar3 = "REGISTER"" identifier = (string_literal ""REGISTER"" " string_content ")) ;) (goto_statement "goto joined_r0x00024151;" goto statement_identifier ;) })) (if_statement "if ((filedata_1 == (Filedata *)0xd) && (sVar1 == 0xf)) {\n          return "PARISC_MILLI";\n        }" if (parenthesized_expression "((filedata_1 == (Filedata *)0xd) && (sVar1 == 0xf))" ( (binary_expression "(filedata_1 == (Filedata *)0xd) && (sVar1 == 0xf)" (parenthesized_expression "(filedata_1 == (Filedata *)0xd)" ( (binary_expression "filedata_1 == (Filedata *)0xd" identifier == (cast_expression "(Filedata *)0xd" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(sVar1 == 0xf)" ( (binary_expression "sVar1 == 0xf" identifier == number_literal) ))) )) (compound_statement "{\n          return "PARISC_MILLI";\n        }" { (return_statement "return "PARISC_MILLI";" return (string_literal ""PARISC_MILLI"" " string_content ") ;) })) }))) (expression_statement "pcVar3 = "<processor specific>: %d";" (assignment_expression "pcVar3 = "<processor specific>: %d"" identifier = (string_literal ""<processor specific>: %d"" " string_content ")) ;) }) (else_clause "else if ((undefined1 *)((int)&filedata_1[-1].string_table_length + 2U) < (undefined1 *)0x3) {\n      if (*(short *)type == 0xf) {\n        if (filedata_1 == (Filedata *)0xb) {\n          return "HP_OPAQUE";\n        }\n        if (filedata_1 == (Filedata *)0xc) {\n          return "HP_STUB";\n        }\n      }\n      if (((filedata_1 == (Filedata *)0xa) && (*(byte *)&filedata->file_name < 10)) &&\n         ((0x209U >> (*(byte *)&filedata->file_name & 0x1f) & 1) != 0)) {\n        return "IFUNC";\n      }\n      pcVar3 = "<OS specific>: %d";\n    }\n    else {\n      pcVar3 = "<unknown>: %d";\n    }" else (if_statement "if ((undefined1 *)((int)&filedata_1[-1].string_table_length + 2U) < (undefined1 *)0x3) {\n      if (*(short *)type == 0xf) {\n        if (filedata_1 == (Filedata *)0xb) {\n          return "HP_OPAQUE";\n        }\n        if (filedata_1 == (Filedata *)0xc) {\n          return "HP_STUB";\n        }\n      }\n      if (((filedata_1 == (Filedata *)0xa) && (*(byte *)&filedata->file_name < 10)) &&\n         ((0x209U >> (*(byte *)&filedata->file_name & 0x1f) & 1) != 0)) {\n        return "IFUNC";\n      }\n      pcVar3 = "<OS specific>: %d";\n    }\n    else {\n      pcVar3 = "<unknown>: %d";\n    }" if (parenthesized_expression "((undefined1 *)((int)&filedata_1[-1].string_table_length + 2U) < (undefined1 *)0x3)" ( (binary_expression "(undefined1 *)((int)&filedata_1[-1].string_table_length + 2U) < (undefined1 *)0x3" (cast_expression "(undefined1 *)((int)&filedata_1[-1].string_table_length + 2U)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&filedata_1[-1].string_table_length + 2U)" ( (binary_expression "(int)&filedata_1[-1].string_table_length + 2U" (cast_expression "(int)&filedata_1[-1].string_table_length" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&filedata_1[-1].string_table_length" & (field_expression "filedata_1[-1].string_table_length" (subscript_expression "filedata_1[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) ))) < (cast_expression "(undefined1 *)0x3" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (*(short *)type == 0xf) {\n        if (filedata_1 == (Filedata *)0xb) {\n          return "HP_OPAQUE";\n        }\n        if (filedata_1 == (Filedata *)0xc) {\n          return "HP_STUB";\n        }\n      }\n      if (((filedata_1 == (Filedata *)0xa) && (*(byte *)&filedata->file_name < 10)) &&\n         ((0x209U >> (*(byte *)&filedata->file_name & 0x1f) & 1) != 0)) {\n        return "IFUNC";\n      }\n      pcVar3 = "<OS specific>: %d";\n    }" { (if_statement "if (*(short *)type == 0xf) {\n        if (filedata_1 == (Filedata *)0xb) {\n          return "HP_OPAQUE";\n        }\n        if (filedata_1 == (Filedata *)0xc) {\n          return "HP_STUB";\n        }\n      }" if (parenthesized_expression "(*(short *)type == 0xf)" ( (binary_expression "*(short *)type == 0xf" (pointer_expression "*(short *)type" * (cast_expression "(short *)type" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n        if (filedata_1 == (Filedata *)0xb) {\n          return "HP_OPAQUE";\n        }\n        if (filedata_1 == (Filedata *)0xc) {\n          return "HP_STUB";\n        }\n      }" { (if_statement "if (filedata_1 == (Filedata *)0xb) {\n          return "HP_OPAQUE";\n        }" if (parenthesized_expression "(filedata_1 == (Filedata *)0xb)" ( (binary_expression "filedata_1 == (Filedata *)0xb" identifier == (cast_expression "(Filedata *)0xb" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          return "HP_OPAQUE";\n        }" { (return_statement "return "HP_OPAQUE";" return (string_literal ""HP_OPAQUE"" " string_content ") ;) })) (if_statement "if (filedata_1 == (Filedata *)0xc) {\n          return "HP_STUB";\n        }" if (parenthesized_expression "(filedata_1 == (Filedata *)0xc)" ( (binary_expression "filedata_1 == (Filedata *)0xc" identifier == (cast_expression "(Filedata *)0xc" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          return "HP_STUB";\n        }" { (return_statement "return "HP_STUB";" return (string_literal ""HP_STUB"" " string_content ") ;) })) })) (if_statement "if (((filedata_1 == (Filedata *)0xa) && (*(byte *)&filedata->file_name < 10)) &&\n         ((0x209U >> (*(byte *)&filedata->file_name & 0x1f) & 1) != 0)) {\n        return "IFUNC";\n      }" if (parenthesized_expression "(((filedata_1 == (Filedata *)0xa) && (*(byte *)&filedata->file_name < 10)) &&\n         ((0x209U >> (*(byte *)&filedata->file_name & 0x1f) & 1) != 0))" ( (binary_expression "((filedata_1 == (Filedata *)0xa) && (*(byte *)&filedata->file_name < 10)) &&\n         ((0x209U >> (*(byte *)&filedata->file_name & 0x1f) & 1) != 0)" (parenthesized_expression "((filedata_1 == (Filedata *)0xa) && (*(byte *)&filedata->file_name < 10))" ( (binary_expression "(filedata_1 == (Filedata *)0xa) && (*(byte *)&filedata->file_name < 10)" (parenthesized_expression "(filedata_1 == (Filedata *)0xa)" ( (binary_expression "filedata_1 == (Filedata *)0xa" identifier == (cast_expression "(Filedata *)0xa" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*(byte *)&filedata->file_name < 10)" ( (binary_expression "*(byte *)&filedata->file_name < 10" (pointer_expression "*(byte *)&filedata->file_name" * (cast_expression "(byte *)&filedata->file_name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&filedata->file_name" & (field_expression "filedata->file_name" identifier -> field_identifier)))) < number_literal) ))) )) && (parenthesized_expression "((0x209U >> (*(byte *)&filedata->file_name & 0x1f) & 1) != 0)" ( (binary_expression "(0x209U >> (*(byte *)&filedata->file_name & 0x1f) & 1) != 0" (parenthesized_expression "(0x209U >> (*(byte *)&filedata->file_name & 0x1f) & 1)" ( (binary_expression "0x209U >> (*(byte *)&filedata->file_name & 0x1f) & 1" (binary_expression "0x209U >> (*(byte *)&filedata->file_name & 0x1f)" number_literal >> (parenthesized_expression "(*(byte *)&filedata->file_name & 0x1f)" ( (binary_expression "*(byte *)&filedata->file_name & 0x1f" (pointer_expression "*(byte *)&filedata->file_name" * (cast_expression "(byte *)&filedata->file_name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&filedata->file_name" & (field_expression "filedata->file_name" identifier -> field_identifier)))) & number_literal) ))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n        return "IFUNC";\n      }" { (return_statement "return "IFUNC";" return (string_literal ""IFUNC"" " string_content ") ;) })) (expression_statement "pcVar3 = "<OS specific>: %d";" (assignment_expression "pcVar3 = "<OS specific>: %d"" identifier = (string_literal ""<OS specific>: %d"" " string_content ")) ;) }) (else_clause "else {\n      pcVar3 = "<unknown>: %d";\n    }" else (compound_statement "{\n      pcVar3 = "<unknown>: %d";\n    }" { (expression_statement "pcVar3 = "<unknown>: %d";" (assignment_expression "pcVar3 = "<unknown>: %d"" identifier = (string_literal ""<unknown>: %d"" " string_content ")) ;) }))))) (expression_statement "pcVar3 = (char *)dcgettext(0,pcVar3,5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,pcVar3,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar3,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar3,5)" identifier (argument_list "(0,pcVar3,5)" ( number_literal , identifier , number_literal ))))) ;) (expression_statement "puVar2 = buff_18659;" (assignment_expression "puVar2 = buff_18659" identifier = identifier) ;) (expression_statement "snprintf(buff_18659,0x20,pcVar3,filedata_1);" (call_expression "snprintf(buff_18659,0x20,pcVar3,filedata_1)" identifier (argument_list "(buff_18659,0x20,pcVar3,filedata_1)" ( identifier , number_literal , identifier , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case (Filedata *)0x8:\n    puVar2 = "RELC";\n    break;" case (cast_expression "(Filedata *)0x8" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) : (expression_statement "puVar2 = "RELC";" (assignment_expression "puVar2 = "RELC"" identifier = (string_literal ""RELC"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case (Filedata *)0x9:\n    puVar2 = "SRELC";" case (cast_expression "(Filedata *)0x9" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) : (expression_statement "puVar2 = "SRELC";" (assignment_expression "puVar2 = "SRELC"" identifier = (string_literal ""SRELC"" " string_content ")) ;)) })) (return_statement "return puVar2;" return identifier ;) })))
(translation_unit "char * __regparm3 FUN_00023ff0(byte *param_1,short *param_2,int param_3)\n\n{\n  short sVar1;\n  char *pcVar2;\n  char *__format;\n  \n  switch(param_3) {\n  case 0:\n    pcVar2 = "NOTYPE";\n    break;\n  case 1:\n    return "OBJECT";\n  case 2:\n    pcVar2 = "FUNC";\n    break;\n  case 3:\n    pcVar2 = "SECTION";\n    break;\n  case 4:\n    pcVar2 = "FILE";\n    break;\n  case 5:\n    pcVar2 = "COMMON";\n    break;\n  case 6:\n    pcVar2 = "TLS";\n    break;\n  default:\n    if (param_3 - 0xdU < 3) {\n      sVar1 = *param_2;\n      if (sVar1 == 0x28) {\n        pcVar2 = "THUMB_FUNC";\njoined_r0x00024151:\n        if (param_3 == 0xd) {\n          return pcVar2;\n        }\n      }\n      else {\n        if (sVar1 == 0x2b) {\n          pcVar2 = "REGISTER";\n          goto joined_r0x00024151;\n        }\n        if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n          return "PARISC_MILLI";\n        }\n      }\n      pcVar2 = "<processor specific>: %d";\n    }\n    else if (param_3 - 10U < 3) {\n      if (*param_2 == 0xf) {\n        if (param_3 == 0xb) {\n          return "HP_OPAQUE";\n        }\n        if (param_3 == 0xc) {\n          return "HP_STUB";\n        }\n      }\n      if (((param_3 == 10) && (*param_1 < 10)) && ((0x209U >> (*param_1 & 0x1f) & 1) != 0)) {\n        return "IFUNC";\n      }\n      pcVar2 = "<OS specific>: %d";\n    }\n    else {\n      pcVar2 = "<unknown>: %d";\n    }\n    __format = (char *)dcgettext(0,pcVar2,5);\n    pcVar2 = &DAT_000b5c80;\n    snprintf(&DAT_000b5c80,0x20,__format,param_3);\n    break;\n  case 8:\n    pcVar2 = "RELC";\n    break;\n  case 9:\n    pcVar2 = "SRELC";\n  }\n  return pcVar2;\n}\n\n" (function_definition "char * __regparm3 FUN_00023ff0(byte *param_1,short *param_2,int param_3)\n\n{\n  short sVar1;\n  char *pcVar2;\n  char *__format;\n  \n  switch(param_3) {\n  case 0:\n    pcVar2 = "NOTYPE";\n    break;\n  case 1:\n    return "OBJECT";\n  case 2:\n    pcVar2 = "FUNC";\n    break;\n  case 3:\n    pcVar2 = "SECTION";\n    break;\n  case 4:\n    pcVar2 = "FILE";\n    break;\n  case 5:\n    pcVar2 = "COMMON";\n    break;\n  case 6:\n    pcVar2 = "TLS";\n    break;\n  default:\n    if (param_3 - 0xdU < 3) {\n      sVar1 = *param_2;\n      if (sVar1 == 0x28) {\n        pcVar2 = "THUMB_FUNC";\njoined_r0x00024151:\n        if (param_3 == 0xd) {\n          return pcVar2;\n        }\n      }\n      else {\n        if (sVar1 == 0x2b) {\n          pcVar2 = "REGISTER";\n          goto joined_r0x00024151;\n        }\n        if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n          return "PARISC_MILLI";\n        }\n      }\n      pcVar2 = "<processor specific>: %d";\n    }\n    else if (param_3 - 10U < 3) {\n      if (*param_2 == 0xf) {\n        if (param_3 == 0xb) {\n          return "HP_OPAQUE";\n        }\n        if (param_3 == 0xc) {\n          return "HP_STUB";\n        }\n      }\n      if (((param_3 == 10) && (*param_1 < 10)) && ((0x209U >> (*param_1 & 0x1f) & 1) != 0)) {\n        return "IFUNC";\n      }\n      pcVar2 = "<OS specific>: %d";\n    }\n    else {\n      pcVar2 = "<unknown>: %d";\n    }\n    __format = (char *)dcgettext(0,pcVar2,5);\n    pcVar2 = &DAT_000b5c80;\n    snprintf(&DAT_000b5c80,0x20,__format,param_3);\n    break;\n  case 8:\n    pcVar2 = "RELC";\n    break;\n  case 9:\n    pcVar2 = "SRELC";\n  }\n  return pcVar2;\n}" primitive_type (pointer_declarator "* __regparm3 FUN_00023ff0(byte *param_1,short *param_2,int param_3)" * (ERROR "__regparm3" identifier) (function_declarator "FUN_00023ff0(byte *param_1,short *param_2,int param_3)" identifier (parameter_list "(byte *param_1,short *param_2,int param_3)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "short *param_2" (sized_type_specifier "short" short) (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) )))) (compound_statement "{\n  short sVar1;\n  char *pcVar2;\n  char *__format;\n  \n  switch(param_3) {\n  case 0:\n    pcVar2 = "NOTYPE";\n    break;\n  case 1:\n    return "OBJECT";\n  case 2:\n    pcVar2 = "FUNC";\n    break;\n  case 3:\n    pcVar2 = "SECTION";\n    break;\n  case 4:\n    pcVar2 = "FILE";\n    break;\n  case 5:\n    pcVar2 = "COMMON";\n    break;\n  case 6:\n    pcVar2 = "TLS";\n    break;\n  default:\n    if (param_3 - 0xdU < 3) {\n      sVar1 = *param_2;\n      if (sVar1 == 0x28) {\n        pcVar2 = "THUMB_FUNC";\njoined_r0x00024151:\n        if (param_3 == 0xd) {\n          return pcVar2;\n        }\n      }\n      else {\n        if (sVar1 == 0x2b) {\n          pcVar2 = "REGISTER";\n          goto joined_r0x00024151;\n        }\n        if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n          return "PARISC_MILLI";\n        }\n      }\n      pcVar2 = "<processor specific>: %d";\n    }\n    else if (param_3 - 10U < 3) {\n      if (*param_2 == 0xf) {\n        if (param_3 == 0xb) {\n          return "HP_OPAQUE";\n        }\n        if (param_3 == 0xc) {\n          return "HP_STUB";\n        }\n      }\n      if (((param_3 == 10) && (*param_1 < 10)) && ((0x209U >> (*param_1 & 0x1f) & 1) != 0)) {\n        return "IFUNC";\n      }\n      pcVar2 = "<OS specific>: %d";\n    }\n    else {\n      pcVar2 = "<unknown>: %d";\n    }\n    __format = (char *)dcgettext(0,pcVar2,5);\n    pcVar2 = &DAT_000b5c80;\n    snprintf(&DAT_000b5c80,0x20,__format,param_3);\n    break;\n  case 8:\n    pcVar2 = "RELC";\n    break;\n  case 9:\n    pcVar2 = "SRELC";\n  }\n  return pcVar2;\n}" { (declaration "short sVar1;" (sized_type_specifier "short" short) identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "char *__format;" primitive_type (pointer_declarator "*__format" * identifier) ;) (switch_statement "switch(param_3) {\n  case 0:\n    pcVar2 = "NOTYPE";\n    break;\n  case 1:\n    return "OBJECT";\n  case 2:\n    pcVar2 = "FUNC";\n    break;\n  case 3:\n    pcVar2 = "SECTION";\n    break;\n  case 4:\n    pcVar2 = "FILE";\n    break;\n  case 5:\n    pcVar2 = "COMMON";\n    break;\n  case 6:\n    pcVar2 = "TLS";\n    break;\n  default:\n    if (param_3 - 0xdU < 3) {\n      sVar1 = *param_2;\n      if (sVar1 == 0x28) {\n        pcVar2 = "THUMB_FUNC";\njoined_r0x00024151:\n        if (param_3 == 0xd) {\n          return pcVar2;\n        }\n      }\n      else {\n        if (sVar1 == 0x2b) {\n          pcVar2 = "REGISTER";\n          goto joined_r0x00024151;\n        }\n        if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n          return "PARISC_MILLI";\n        }\n      }\n      pcVar2 = "<processor specific>: %d";\n    }\n    else if (param_3 - 10U < 3) {\n      if (*param_2 == 0xf) {\n        if (param_3 == 0xb) {\n          return "HP_OPAQUE";\n        }\n        if (param_3 == 0xc) {\n          return "HP_STUB";\n        }\n      }\n      if (((param_3 == 10) && (*param_1 < 10)) && ((0x209U >> (*param_1 & 0x1f) & 1) != 0)) {\n        return "IFUNC";\n      }\n      pcVar2 = "<OS specific>: %d";\n    }\n    else {\n      pcVar2 = "<unknown>: %d";\n    }\n    __format = (char *)dcgettext(0,pcVar2,5);\n    pcVar2 = &DAT_000b5c80;\n    snprintf(&DAT_000b5c80,0x20,__format,param_3);\n    break;\n  case 8:\n    pcVar2 = "RELC";\n    break;\n  case 9:\n    pcVar2 = "SRELC";\n  }" switch (parenthesized_expression "(param_3)" ( identifier )) (compound_statement "{\n  case 0:\n    pcVar2 = "NOTYPE";\n    break;\n  case 1:\n    return "OBJECT";\n  case 2:\n    pcVar2 = "FUNC";\n    break;\n  case 3:\n    pcVar2 = "SECTION";\n    break;\n  case 4:\n    pcVar2 = "FILE";\n    break;\n  case 5:\n    pcVar2 = "COMMON";\n    break;\n  case 6:\n    pcVar2 = "TLS";\n    break;\n  default:\n    if (param_3 - 0xdU < 3) {\n      sVar1 = *param_2;\n      if (sVar1 == 0x28) {\n        pcVar2 = "THUMB_FUNC";\njoined_r0x00024151:\n        if (param_3 == 0xd) {\n          return pcVar2;\n        }\n      }\n      else {\n        if (sVar1 == 0x2b) {\n          pcVar2 = "REGISTER";\n          goto joined_r0x00024151;\n        }\n        if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n          return "PARISC_MILLI";\n        }\n      }\n      pcVar2 = "<processor specific>: %d";\n    }\n    else if (param_3 - 10U < 3) {\n      if (*param_2 == 0xf) {\n        if (param_3 == 0xb) {\n          return "HP_OPAQUE";\n        }\n        if (param_3 == 0xc) {\n          return "HP_STUB";\n        }\n      }\n      if (((param_3 == 10) && (*param_1 < 10)) && ((0x209U >> (*param_1 & 0x1f) & 1) != 0)) {\n        return "IFUNC";\n      }\n      pcVar2 = "<OS specific>: %d";\n    }\n    else {\n      pcVar2 = "<unknown>: %d";\n    }\n    __format = (char *)dcgettext(0,pcVar2,5);\n    pcVar2 = &DAT_000b5c80;\n    snprintf(&DAT_000b5c80,0x20,__format,param_3);\n    break;\n  case 8:\n    pcVar2 = "RELC";\n    break;\n  case 9:\n    pcVar2 = "SRELC";\n  }" { (case_statement "case 0:\n    pcVar2 = "NOTYPE";\n    break;" case number_literal : (expression_statement "pcVar2 = "NOTYPE";" (assignment_expression "pcVar2 = "NOTYPE"" identifier = (string_literal ""NOTYPE"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 1:\n    return "OBJECT";" case number_literal : (return_statement "return "OBJECT";" return (string_literal ""OBJECT"" " string_content ") ;)) (case_statement "case 2:\n    pcVar2 = "FUNC";\n    break;" case number_literal : (expression_statement "pcVar2 = "FUNC";" (assignment_expression "pcVar2 = "FUNC"" identifier = (string_literal ""FUNC"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 3:\n    pcVar2 = "SECTION";\n    break;" case number_literal : (expression_statement "pcVar2 = "SECTION";" (assignment_expression "pcVar2 = "SECTION"" identifier = (string_literal ""SECTION"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n    pcVar2 = "FILE";\n    break;" case number_literal : (expression_statement "pcVar2 = "FILE";" (assignment_expression "pcVar2 = "FILE"" identifier = (string_literal ""FILE"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 5:\n    pcVar2 = "COMMON";\n    break;" case number_literal : (expression_statement "pcVar2 = "COMMON";" (assignment_expression "pcVar2 = "COMMON"" identifier = (string_literal ""COMMON"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n    pcVar2 = "TLS";\n    break;" case number_literal : (expression_statement "pcVar2 = "TLS";" (assignment_expression "pcVar2 = "TLS"" identifier = (string_literal ""TLS"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "default:\n    if (param_3 - 0xdU < 3) {\n      sVar1 = *param_2;\n      if (sVar1 == 0x28) {\n        pcVar2 = "THUMB_FUNC";\njoined_r0x00024151:\n        if (param_3 == 0xd) {\n          return pcVar2;\n        }\n      }\n      else {\n        if (sVar1 == 0x2b) {\n          pcVar2 = "REGISTER";\n          goto joined_r0x00024151;\n        }\n        if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n          return "PARISC_MILLI";\n        }\n      }\n      pcVar2 = "<processor specific>: %d";\n    }\n    else if (param_3 - 10U < 3) {\n      if (*param_2 == 0xf) {\n        if (param_3 == 0xb) {\n          return "HP_OPAQUE";\n        }\n        if (param_3 == 0xc) {\n          return "HP_STUB";\n        }\n      }\n      if (((param_3 == 10) && (*param_1 < 10)) && ((0x209U >> (*param_1 & 0x1f) & 1) != 0)) {\n        return "IFUNC";\n      }\n      pcVar2 = "<OS specific>: %d";\n    }\n    else {\n      pcVar2 = "<unknown>: %d";\n    }\n    __format = (char *)dcgettext(0,pcVar2,5);\n    pcVar2 = &DAT_000b5c80;\n    snprintf(&DAT_000b5c80,0x20,__format,param_3);\n    break;" default : (if_statement "if (param_3 - 0xdU < 3) {\n      sVar1 = *param_2;\n      if (sVar1 == 0x28) {\n        pcVar2 = "THUMB_FUNC";\njoined_r0x00024151:\n        if (param_3 == 0xd) {\n          return pcVar2;\n        }\n      }\n      else {\n        if (sVar1 == 0x2b) {\n          pcVar2 = "REGISTER";\n          goto joined_r0x00024151;\n        }\n        if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n          return "PARISC_MILLI";\n        }\n      }\n      pcVar2 = "<processor specific>: %d";\n    }\n    else if (param_3 - 10U < 3) {\n      if (*param_2 == 0xf) {\n        if (param_3 == 0xb) {\n          return "HP_OPAQUE";\n        }\n        if (param_3 == 0xc) {\n          return "HP_STUB";\n        }\n      }\n      if (((param_3 == 10) && (*param_1 < 10)) && ((0x209U >> (*param_1 & 0x1f) & 1) != 0)) {\n        return "IFUNC";\n      }\n      pcVar2 = "<OS specific>: %d";\n    }\n    else {\n      pcVar2 = "<unknown>: %d";\n    }" if (parenthesized_expression "(param_3 - 0xdU < 3)" ( (binary_expression "param_3 - 0xdU < 3" (binary_expression "param_3 - 0xdU" identifier - number_literal) < number_literal) )) (compound_statement "{\n      sVar1 = *param_2;\n      if (sVar1 == 0x28) {\n        pcVar2 = "THUMB_FUNC";\njoined_r0x00024151:\n        if (param_3 == 0xd) {\n          return pcVar2;\n        }\n      }\n      else {\n        if (sVar1 == 0x2b) {\n          pcVar2 = "REGISTER";\n          goto joined_r0x00024151;\n        }\n        if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n          return "PARISC_MILLI";\n        }\n      }\n      pcVar2 = "<processor specific>: %d";\n    }" { (expression_statement "sVar1 = *param_2;" (assignment_expression "sVar1 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (sVar1 == 0x28) {\n        pcVar2 = "THUMB_FUNC";\njoined_r0x00024151:\n        if (param_3 == 0xd) {\n          return pcVar2;\n        }\n      }\n      else {\n        if (sVar1 == 0x2b) {\n          pcVar2 = "REGISTER";\n          goto joined_r0x00024151;\n        }\n        if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n          return "PARISC_MILLI";\n        }\n      }" if (parenthesized_expression "(sVar1 == 0x28)" ( (binary_expression "sVar1 == 0x28" identifier == number_literal) )) (compound_statement "{\n        pcVar2 = "THUMB_FUNC";\njoined_r0x00024151:\n        if (param_3 == 0xd) {\n          return pcVar2;\n        }\n      }" { (expression_statement "pcVar2 = "THUMB_FUNC";" (assignment_expression "pcVar2 = "THUMB_FUNC"" identifier = (string_literal ""THUMB_FUNC"" " string_content ")) ;) (labeled_statement "joined_r0x00024151:\n        if (param_3 == 0xd) {\n          return pcVar2;\n        }" statement_identifier : (if_statement "if (param_3 == 0xd) {\n          return pcVar2;\n        }" if (parenthesized_expression "(param_3 == 0xd)" ( (binary_expression "param_3 == 0xd" identifier == number_literal) )) (compound_statement "{\n          return pcVar2;\n        }" { (return_statement "return pcVar2;" return identifier ;) }))) }) (else_clause "else {\n        if (sVar1 == 0x2b) {\n          pcVar2 = "REGISTER";\n          goto joined_r0x00024151;\n        }\n        if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n          return "PARISC_MILLI";\n        }\n      }" else (compound_statement "{\n        if (sVar1 == 0x2b) {\n          pcVar2 = "REGISTER";\n          goto joined_r0x00024151;\n        }\n        if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n          return "PARISC_MILLI";\n        }\n      }" { (if_statement "if (sVar1 == 0x2b) {\n          pcVar2 = "REGISTER";\n          goto joined_r0x00024151;\n        }" if (parenthesized_expression "(sVar1 == 0x2b)" ( (binary_expression "sVar1 == 0x2b" identifier == number_literal) )) (compound_statement "{\n          pcVar2 = "REGISTER";\n          goto joined_r0x00024151;\n        }" { (expression_statement "pcVar2 = "REGISTER";" (assignment_expression "pcVar2 = "REGISTER"" identifier = (string_literal ""REGISTER"" " string_content ")) ;) (goto_statement "goto joined_r0x00024151;" goto statement_identifier ;) })) (if_statement "if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n          return "PARISC_MILLI";\n        }" if (parenthesized_expression "((param_3 == 0xd) && (sVar1 == 0xf))" ( (binary_expression "(param_3 == 0xd) && (sVar1 == 0xf)" (parenthesized_expression "(param_3 == 0xd)" ( (binary_expression "param_3 == 0xd" identifier == number_literal) )) && (parenthesized_expression "(sVar1 == 0xf)" ( (binary_expression "sVar1 == 0xf" identifier == number_literal) ))) )) (compound_statement "{\n          return "PARISC_MILLI";\n        }" { (return_statement "return "PARISC_MILLI";" return (string_literal ""PARISC_MILLI"" " string_content ") ;) })) }))) (expression_statement "pcVar2 = "<processor specific>: %d";" (assignment_expression "pcVar2 = "<processor specific>: %d"" identifier = (string_literal ""<processor specific>: %d"" " string_content ")) ;) }) (else_clause "else if (param_3 - 10U < 3) {\n      if (*param_2 == 0xf) {\n        if (param_3 == 0xb) {\n          return "HP_OPAQUE";\n        }\n        if (param_3 == 0xc) {\n          return "HP_STUB";\n        }\n      }\n      if (((param_3 == 10) && (*param_1 < 10)) && ((0x209U >> (*param_1 & 0x1f) & 1) != 0)) {\n        return "IFUNC";\n      }\n      pcVar2 = "<OS specific>: %d";\n    }\n    else {\n      pcVar2 = "<unknown>: %d";\n    }" else (if_statement "if (param_3 - 10U < 3) {\n      if (*param_2 == 0xf) {\n        if (param_3 == 0xb) {\n          return "HP_OPAQUE";\n        }\n        if (param_3 == 0xc) {\n          return "HP_STUB";\n        }\n      }\n      if (((param_3 == 10) && (*param_1 < 10)) && ((0x209U >> (*param_1 & 0x1f) & 1) != 0)) {\n        return "IFUNC";\n      }\n      pcVar2 = "<OS specific>: %d";\n    }\n    else {\n      pcVar2 = "<unknown>: %d";\n    }" if (parenthesized_expression "(param_3 - 10U < 3)" ( (binary_expression "param_3 - 10U < 3" (binary_expression "param_3 - 10U" identifier - number_literal) < number_literal) )) (compound_statement "{\n      if (*param_2 == 0xf) {\n        if (param_3 == 0xb) {\n          return "HP_OPAQUE";\n        }\n        if (param_3 == 0xc) {\n          return "HP_STUB";\n        }\n      }\n      if (((param_3 == 10) && (*param_1 < 10)) && ((0x209U >> (*param_1 & 0x1f) & 1) != 0)) {\n        return "IFUNC";\n      }\n      pcVar2 = "<OS specific>: %d";\n    }" { (if_statement "if (*param_2 == 0xf) {\n        if (param_3 == 0xb) {\n          return "HP_OPAQUE";\n        }\n        if (param_3 == 0xc) {\n          return "HP_STUB";\n        }\n      }" if (parenthesized_expression "(*param_2 == 0xf)" ( (binary_expression "*param_2 == 0xf" (pointer_expression "*param_2" * identifier) == number_literal) )) (compound_statement "{\n        if (param_3 == 0xb) {\n          return "HP_OPAQUE";\n        }\n        if (param_3 == 0xc) {\n          return "HP_STUB";\n        }\n      }" { (if_statement "if (param_3 == 0xb) {\n          return "HP_OPAQUE";\n        }" if (parenthesized_expression "(param_3 == 0xb)" ( (binary_expression "param_3 == 0xb" identifier == number_literal) )) (compound_statement "{\n          return "HP_OPAQUE";\n        }" { (return_statement "return "HP_OPAQUE";" return (string_literal ""HP_OPAQUE"" " string_content ") ;) })) (if_statement "if (param_3 == 0xc) {\n          return "HP_STUB";\n        }" if (parenthesized_expression "(param_3 == 0xc)" ( (binary_expression "param_3 == 0xc" identifier == number_literal) )) (compound_statement "{\n          return "HP_STUB";\n        }" { (return_statement "return "HP_STUB";" return (string_literal ""HP_STUB"" " string_content ") ;) })) })) (if_statement "if (((param_3 == 10) && (*param_1 < 10)) && ((0x209U >> (*param_1 & 0x1f) & 1) != 0)) {\n        return "IFUNC";\n      }" if (parenthesized_expression "(((param_3 == 10) && (*param_1 < 10)) && ((0x209U >> (*param_1 & 0x1f) & 1) != 0))" ( (binary_expression "((param_3 == 10) && (*param_1 < 10)) && ((0x209U >> (*param_1 & 0x1f) & 1) != 0)" (parenthesized_expression "((param_3 == 10) && (*param_1 < 10))" ( (binary_expression "(param_3 == 10) && (*param_1 < 10)" (parenthesized_expression "(param_3 == 10)" ( (binary_expression "param_3 == 10" identifier == number_literal) )) && (parenthesized_expression "(*param_1 < 10)" ( (binary_expression "*param_1 < 10" (pointer_expression "*param_1" * identifier) < number_literal) ))) )) && (parenthesized_expression "((0x209U >> (*param_1 & 0x1f) & 1) != 0)" ( (binary_expression "(0x209U >> (*param_1 & 0x1f) & 1) != 0" (parenthesized_expression "(0x209U >> (*param_1 & 0x1f) & 1)" ( (binary_expression "0x209U >> (*param_1 & 0x1f) & 1" (binary_expression "0x209U >> (*param_1 & 0x1f)" number_literal >> (parenthesized_expression "(*param_1 & 0x1f)" ( (binary_expression "*param_1 & 0x1f" (pointer_expression "*param_1" * identifier) & number_literal) ))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n        return "IFUNC";\n      }" { (return_statement "return "IFUNC";" return (string_literal ""IFUNC"" " string_content ") ;) })) (expression_statement "pcVar2 = "<OS specific>: %d";" (assignment_expression "pcVar2 = "<OS specific>: %d"" identifier = (string_literal ""<OS specific>: %d"" " string_content ")) ;) }) (else_clause "else {\n      pcVar2 = "<unknown>: %d";\n    }" else (compound_statement "{\n      pcVar2 = "<unknown>: %d";\n    }" { (expression_statement "pcVar2 = "<unknown>: %d";" (assignment_expression "pcVar2 = "<unknown>: %d"" identifier = (string_literal ""<unknown>: %d"" " string_content ")) ;) }))))) (expression_statement "__format = (char *)dcgettext(0,pcVar2,5);" (assignment_expression "__format = (char *)dcgettext(0,pcVar2,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar2,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar2,5)" identifier (argument_list "(0,pcVar2,5)" ( number_literal , identifier , number_literal ))))) ;) (expression_statement "pcVar2 = &DAT_000b5c80;" (assignment_expression "pcVar2 = &DAT_000b5c80" identifier = (pointer_expression "&DAT_000b5c80" & identifier)) ;) (expression_statement "snprintf(&DAT_000b5c80,0x20,__format,param_3);" (call_expression "snprintf(&DAT_000b5c80,0x20,__format,param_3)" identifier (argument_list "(&DAT_000b5c80,0x20,__format,param_3)" ( (pointer_expression "&DAT_000b5c80" & identifier) , number_literal , identifier , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 8:\n    pcVar2 = "RELC";\n    break;" case number_literal : (expression_statement "pcVar2 = "RELC";" (assignment_expression "pcVar2 = "RELC"" identifier = (string_literal ""RELC"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 9:\n    pcVar2 = "SRELC";" case number_literal : (expression_statement "pcVar2 = "SRELC";" (assignment_expression "pcVar2 = "SRELC"" identifier = (string_literal ""SRELC"" " string_content ")) ;)) })) (return_statement "return pcVar2;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier short) (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) )))) (compound_statement { (declaration (sized_type_specifier short) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT : (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (break_statement break ;)) (case_statement case LIT : (return_statement return (string_literal " string_content ") ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (break_statement break ;)) (case_statement default : (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return IDENT ;) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (return_statement return (string_literal " string_content ") ;) })) }))) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return (string_literal " string_content ") ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return (string_literal " string_content ") ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) < LIT) ))) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression LIT >> (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) ))) & LIT) )) != LIT) ))) )) (compound_statement { (return_statement return (string_literal " string_content ") ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) }))))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , IDENT , LIT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , IDENT , IDENT ))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;)) })) (return_statement return IDENT ;) })))
(function_definition "char * __regparm3 FUN_00023ff0(byte *param_1,short *param_2,int param_3)\n\n{\n  short sVar1;\n  char *pcVar2;\n  char *__format;\n  \n  switch(param_3) {\n  case 0:\n    pcVar2 = "NOTYPE";\n    break;\n  case 1:\n    return "OBJECT";\n  case 2:\n    pcVar2 = "FUNC";\n    break;\n  case 3:\n    pcVar2 = "SECTION";\n    break;\n  case 4:\n    pcVar2 = "FILE";\n    break;\n  case 5:\n    pcVar2 = "COMMON";\n    break;\n  case 6:\n    pcVar2 = "TLS";\n    break;\n  default:\n    if (param_3 - 0xdU < 3) {\n      sVar1 = *param_2;\n      if (sVar1 == 0x28) {\n        pcVar2 = "THUMB_FUNC";\njoined_r0x00024151:\n        if (param_3 == 0xd) {\n          return pcVar2;\n        }\n      }\n      else {\n        if (sVar1 == 0x2b) {\n          pcVar2 = "REGISTER";\n          goto joined_r0x00024151;\n        }\n        if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n          return "PARISC_MILLI";\n        }\n      }\n      pcVar2 = "<processor specific>: %d";\n    }\n    else if (param_3 - 10U < 3) {\n      if (*param_2 == 0xf) {\n        if (param_3 == 0xb) {\n          return "HP_OPAQUE";\n        }\n        if (param_3 == 0xc) {\n          return "HP_STUB";\n        }\n      }\n      if (((param_3 == 10) && (*param_1 < 10)) && ((0x209U >> (*param_1 & 0x1f) & 1) != 0)) {\n        return "IFUNC";\n      }\n      pcVar2 = "<OS specific>: %d";\n    }\n    else {\n      pcVar2 = "<unknown>: %d";\n    }\n    __format = (char *)dcgettext(0,pcVar2,5);\n    pcVar2 = &DAT_000b5c80;\n    snprintf(&DAT_000b5c80,0x20,__format,param_3);\n    break;\n  case 8:\n    pcVar2 = "RELC";\n    break;\n  case 9:\n    pcVar2 = "SRELC";\n  }\n  return pcVar2;\n}" (primitive_type "char") (pointer_declarator "* __regparm3 FUN_00023ff0(byte *param_1,short *param_2,int param_3)" (* "*") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00023ff0(byte *param_1,short *param_2,int param_3)" (identifier "FUN_00023ff0") (parameter_list "(byte *param_1,short *param_2,int param_3)" (( "(") (parameter_declaration "byte *param_1" (type_identifier "byte") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "short *param_2" (sized_type_specifier "short" (short "short")) (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) () ")")))) (compound_statement "{\n  short sVar1;\n  char *pcVar2;\n  char *__format;\n  \n  switch(param_3) {\n  case 0:\n    pcVar2 = "NOTYPE";\n    break;\n  case 1:\n    return "OBJECT";\n  case 2:\n    pcVar2 = "FUNC";\n    break;\n  case 3:\n    pcVar2 = "SECTION";\n    break;\n  case 4:\n    pcVar2 = "FILE";\n    break;\n  case 5:\n    pcVar2 = "COMMON";\n    break;\n  case 6:\n    pcVar2 = "TLS";\n    break;\n  default:\n    if (param_3 - 0xdU < 3) {\n      sVar1 = *param_2;\n      if (sVar1 == 0x28) {\n        pcVar2 = "THUMB_FUNC";\njoined_r0x00024151:\n        if (param_3 == 0xd) {\n          return pcVar2;\n        }\n      }\n      else {\n        if (sVar1 == 0x2b) {\n          pcVar2 = "REGISTER";\n          goto joined_r0x00024151;\n        }\n        if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n          return "PARISC_MILLI";\n        }\n      }\n      pcVar2 = "<processor specific>: %d";\n    }\n    else if (param_3 - 10U < 3) {\n      if (*param_2 == 0xf) {\n        if (param_3 == 0xb) {\n          return "HP_OPAQUE";\n        }\n        if (param_3 == 0xc) {\n          return "HP_STUB";\n        }\n      }\n      if (((param_3 == 10) && (*param_1 < 10)) && ((0x209U >> (*param_1 & 0x1f) & 1) != 0)) {\n        return "IFUNC";\n      }\n      pcVar2 = "<OS specific>: %d";\n    }\n    else {\n      pcVar2 = "<unknown>: %d";\n    }\n    __format = (char *)dcgettext(0,pcVar2,5);\n    pcVar2 = &DAT_000b5c80;\n    snprintf(&DAT_000b5c80,0x20,__format,param_3);\n    break;\n  case 8:\n    pcVar2 = "RELC";\n    break;\n  case 9:\n    pcVar2 = "SRELC";\n  }\n  return pcVar2;\n}" ({ "{") (declaration "short sVar1;" (sized_type_specifier "short" (short "short")) (identifier "sVar1") (; ";")) (declaration "char *pcVar2;" (primitive_type "char") (pointer_declarator "*pcVar2" (* "*") (identifier "pcVar2")) (; ";")) (declaration "char *__format;" (primitive_type "char") (pointer_declarator "*__format" (* "*") (identifier "__format")) (; ";")) (switch_statement "switch(param_3) {\n  case 0:\n    pcVar2 = "NOTYPE";\n    break;\n  case 1:\n    return "OBJECT";\n  case 2:\n    pcVar2 = "FUNC";\n    break;\n  case 3:\n    pcVar2 = "SECTION";\n    break;\n  case 4:\n    pcVar2 = "FILE";\n    break;\n  case 5:\n    pcVar2 = "COMMON";\n    break;\n  case 6:\n    pcVar2 = "TLS";\n    break;\n  default:\n    if (param_3 - 0xdU < 3) {\n      sVar1 = *param_2;\n      if (sVar1 == 0x28) {\n        pcVar2 = "THUMB_FUNC";\njoined_r0x00024151:\n        if (param_3 == 0xd) {\n          return pcVar2;\n        }\n      }\n      else {\n        if (sVar1 == 0x2b) {\n          pcVar2 = "REGISTER";\n          goto joined_r0x00024151;\n        }\n        if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n          return "PARISC_MILLI";\n        }\n      }\n      pcVar2 = "<processor specific>: %d";\n    }\n    else if (param_3 - 10U < 3) {\n      if (*param_2 == 0xf) {\n        if (param_3 == 0xb) {\n          return "HP_OPAQUE";\n        }\n        if (param_3 == 0xc) {\n          return "HP_STUB";\n        }\n      }\n      if (((param_3 == 10) && (*param_1 < 10)) && ((0x209U >> (*param_1 & 0x1f) & 1) != 0)) {\n        return "IFUNC";\n      }\n      pcVar2 = "<OS specific>: %d";\n    }\n    else {\n      pcVar2 = "<unknown>: %d";\n    }\n    __format = (char *)dcgettext(0,pcVar2,5);\n    pcVar2 = &DAT_000b5c80;\n    snprintf(&DAT_000b5c80,0x20,__format,param_3);\n    break;\n  case 8:\n    pcVar2 = "RELC";\n    break;\n  case 9:\n    pcVar2 = "SRELC";\n  }" (switch "switch") (parenthesized_expression "(param_3)" (( "(") (identifier "param_3") () ")")) (compound_statement "{\n  case 0:\n    pcVar2 = "NOTYPE";\n    break;\n  case 1:\n    return "OBJECT";\n  case 2:\n    pcVar2 = "FUNC";\n    break;\n  case 3:\n    pcVar2 = "SECTION";\n    break;\n  case 4:\n    pcVar2 = "FILE";\n    break;\n  case 5:\n    pcVar2 = "COMMON";\n    break;\n  case 6:\n    pcVar2 = "TLS";\n    break;\n  default:\n    if (param_3 - 0xdU < 3) {\n      sVar1 = *param_2;\n      if (sVar1 == 0x28) {\n        pcVar2 = "THUMB_FUNC";\njoined_r0x00024151:\n        if (param_3 == 0xd) {\n          return pcVar2;\n        }\n      }\n      else {\n        if (sVar1 == 0x2b) {\n          pcVar2 = "REGISTER";\n          goto joined_r0x00024151;\n        }\n        if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n          return "PARISC_MILLI";\n        }\n      }\n      pcVar2 = "<processor specific>: %d";\n    }\n    else if (param_3 - 10U < 3) {\n      if (*param_2 == 0xf) {\n        if (param_3 == 0xb) {\n          return "HP_OPAQUE";\n        }\n        if (param_3 == 0xc) {\n          return "HP_STUB";\n        }\n      }\n      if (((param_3 == 10) && (*param_1 < 10)) && ((0x209U >> (*param_1 & 0x1f) & 1) != 0)) {\n        return "IFUNC";\n      }\n      pcVar2 = "<OS specific>: %d";\n    }\n    else {\n      pcVar2 = "<unknown>: %d";\n    }\n    __format = (char *)dcgettext(0,pcVar2,5);\n    pcVar2 = &DAT_000b5c80;\n    snprintf(&DAT_000b5c80,0x20,__format,param_3);\n    break;\n  case 8:\n    pcVar2 = "RELC";\n    break;\n  case 9:\n    pcVar2 = "SRELC";\n  }" ({ "{") (case_statement "case 0:\n    pcVar2 = "NOTYPE";\n    break;" (case "case") (number_literal "0") (: ":") (expression_statement "pcVar2 = "NOTYPE";" (assignment_expression "pcVar2 = "NOTYPE"" (identifier "pcVar2") (= "=") (string_literal ""NOTYPE"" (" """) (string_content "NOTYPE") (" """))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 1:\n    return "OBJECT";" (case "case") (number_literal "1") (: ":") (return_statement "return "OBJECT";" (return "return") (string_literal ""OBJECT"" (" """) (string_content "OBJECT") (" """)) (; ";"))) (case_statement "case 2:\n    pcVar2 = "FUNC";\n    break;" (case "case") (number_literal "2") (: ":") (expression_statement "pcVar2 = "FUNC";" (assignment_expression "pcVar2 = "FUNC"" (identifier "pcVar2") (= "=") (string_literal ""FUNC"" (" """) (string_content "FUNC") (" """))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 3:\n    pcVar2 = "SECTION";\n    break;" (case "case") (number_literal "3") (: ":") (expression_statement "pcVar2 = "SECTION";" (assignment_expression "pcVar2 = "SECTION"" (identifier "pcVar2") (= "=") (string_literal ""SECTION"" (" """) (string_content "SECTION") (" """))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 4:\n    pcVar2 = "FILE";\n    break;" (case "case") (number_literal "4") (: ":") (expression_statement "pcVar2 = "FILE";" (assignment_expression "pcVar2 = "FILE"" (identifier "pcVar2") (= "=") (string_literal ""FILE"" (" """) (string_content "FILE") (" """))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 5:\n    pcVar2 = "COMMON";\n    break;" (case "case") (number_literal "5") (: ":") (expression_statement "pcVar2 = "COMMON";" (assignment_expression "pcVar2 = "COMMON"" (identifier "pcVar2") (= "=") (string_literal ""COMMON"" (" """) (string_content "COMMON") (" """))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 6:\n    pcVar2 = "TLS";\n    break;" (case "case") (number_literal "6") (: ":") (expression_statement "pcVar2 = "TLS";" (assignment_expression "pcVar2 = "TLS"" (identifier "pcVar2") (= "=") (string_literal ""TLS"" (" """) (string_content "TLS") (" """))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n    if (param_3 - 0xdU < 3) {\n      sVar1 = *param_2;\n      if (sVar1 == 0x28) {\n        pcVar2 = "THUMB_FUNC";\njoined_r0x00024151:\n        if (param_3 == 0xd) {\n          return pcVar2;\n        }\n      }\n      else {\n        if (sVar1 == 0x2b) {\n          pcVar2 = "REGISTER";\n          goto joined_r0x00024151;\n        }\n        if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n          return "PARISC_MILLI";\n        }\n      }\n      pcVar2 = "<processor specific>: %d";\n    }\n    else if (param_3 - 10U < 3) {\n      if (*param_2 == 0xf) {\n        if (param_3 == 0xb) {\n          return "HP_OPAQUE";\n        }\n        if (param_3 == 0xc) {\n          return "HP_STUB";\n        }\n      }\n      if (((param_3 == 10) && (*param_1 < 10)) && ((0x209U >> (*param_1 & 0x1f) & 1) != 0)) {\n        return "IFUNC";\n      }\n      pcVar2 = "<OS specific>: %d";\n    }\n    else {\n      pcVar2 = "<unknown>: %d";\n    }\n    __format = (char *)dcgettext(0,pcVar2,5);\n    pcVar2 = &DAT_000b5c80;\n    snprintf(&DAT_000b5c80,0x20,__format,param_3);\n    break;" (default "default") (: ":") (if_statement "if (param_3 - 0xdU < 3) {\n      sVar1 = *param_2;\n      if (sVar1 == 0x28) {\n        pcVar2 = "THUMB_FUNC";\njoined_r0x00024151:\n        if (param_3 == 0xd) {\n          return pcVar2;\n        }\n      }\n      else {\n        if (sVar1 == 0x2b) {\n          pcVar2 = "REGISTER";\n          goto joined_r0x00024151;\n        }\n        if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n          return "PARISC_MILLI";\n        }\n      }\n      pcVar2 = "<processor specific>: %d";\n    }\n    else if (param_3 - 10U < 3) {\n      if (*param_2 == 0xf) {\n        if (param_3 == 0xb) {\n          return "HP_OPAQUE";\n        }\n        if (param_3 == 0xc) {\n          return "HP_STUB";\n        }\n      }\n      if (((param_3 == 10) && (*param_1 < 10)) && ((0x209U >> (*param_1 & 0x1f) & 1) != 0)) {\n        return "IFUNC";\n      }\n      pcVar2 = "<OS specific>: %d";\n    }\n    else {\n      pcVar2 = "<unknown>: %d";\n    }" (if "if") (parenthesized_expression "(param_3 - 0xdU < 3)" (( "(") (binary_expression "param_3 - 0xdU < 3" (binary_expression "param_3 - 0xdU" (identifier "param_3") (- "-") (number_literal "0xdU")) (< "<") (number_literal "3")) () ")")) (compound_statement "{\n      sVar1 = *param_2;\n      if (sVar1 == 0x28) {\n        pcVar2 = "THUMB_FUNC";\njoined_r0x00024151:\n        if (param_3 == 0xd) {\n          return pcVar2;\n        }\n      }\n      else {\n        if (sVar1 == 0x2b) {\n          pcVar2 = "REGISTER";\n          goto joined_r0x00024151;\n        }\n        if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n          return "PARISC_MILLI";\n        }\n      }\n      pcVar2 = "<processor specific>: %d";\n    }" ({ "{") (expression_statement "sVar1 = *param_2;" (assignment_expression "sVar1 = *param_2" (identifier "sVar1") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (if_statement "if (sVar1 == 0x28) {\n        pcVar2 = "THUMB_FUNC";\njoined_r0x00024151:\n        if (param_3 == 0xd) {\n          return pcVar2;\n        }\n      }\n      else {\n        if (sVar1 == 0x2b) {\n          pcVar2 = "REGISTER";\n          goto joined_r0x00024151;\n        }\n        if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n          return "PARISC_MILLI";\n        }\n      }" (if "if") (parenthesized_expression "(sVar1 == 0x28)" (( "(") (binary_expression "sVar1 == 0x28" (identifier "sVar1") (== "==") (number_literal "0x28")) () ")")) (compound_statement "{\n        pcVar2 = "THUMB_FUNC";\njoined_r0x00024151:\n        if (param_3 == 0xd) {\n          return pcVar2;\n        }\n      }" ({ "{") (expression_statement "pcVar2 = "THUMB_FUNC";" (assignment_expression "pcVar2 = "THUMB_FUNC"" (identifier "pcVar2") (= "=") (string_literal ""THUMB_FUNC"" (" """) (string_content "THUMB_FUNC") (" """))) (; ";")) (labeled_statement "joined_r0x00024151:\n        if (param_3 == 0xd) {\n          return pcVar2;\n        }" (statement_identifier "joined_r0x00024151") (: ":") (if_statement "if (param_3 == 0xd) {\n          return pcVar2;\n        }" (if "if") (parenthesized_expression "(param_3 == 0xd)" (( "(") (binary_expression "param_3 == 0xd" (identifier "param_3") (== "==") (number_literal "0xd")) () ")")) (compound_statement "{\n          return pcVar2;\n        }" ({ "{") (return_statement "return pcVar2;" (return "return") (identifier "pcVar2") (; ";")) (} "}")))) (} "}")) (else_clause "else {\n        if (sVar1 == 0x2b) {\n          pcVar2 = "REGISTER";\n          goto joined_r0x00024151;\n        }\n        if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n          return "PARISC_MILLI";\n        }\n      }" (else "else") (compound_statement "{\n        if (sVar1 == 0x2b) {\n          pcVar2 = "REGISTER";\n          goto joined_r0x00024151;\n        }\n        if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n          return "PARISC_MILLI";\n        }\n      }" ({ "{") (if_statement "if (sVar1 == 0x2b) {\n          pcVar2 = "REGISTER";\n          goto joined_r0x00024151;\n        }" (if "if") (parenthesized_expression "(sVar1 == 0x2b)" (( "(") (binary_expression "sVar1 == 0x2b" (identifier "sVar1") (== "==") (number_literal "0x2b")) () ")")) (compound_statement "{\n          pcVar2 = "REGISTER";\n          goto joined_r0x00024151;\n        }" ({ "{") (expression_statement "pcVar2 = "REGISTER";" (assignment_expression "pcVar2 = "REGISTER"" (identifier "pcVar2") (= "=") (string_literal ""REGISTER"" (" """) (string_content "REGISTER") (" """))) (; ";")) (goto_statement "goto joined_r0x00024151;" (goto "goto") (statement_identifier "joined_r0x00024151") (; ";")) (} "}"))) (if_statement "if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n          return "PARISC_MILLI";\n        }" (if "if") (parenthesized_expression "((param_3 == 0xd) && (sVar1 == 0xf))" (( "(") (binary_expression "(param_3 == 0xd) && (sVar1 == 0xf)" (parenthesized_expression "(param_3 == 0xd)" (( "(") (binary_expression "param_3 == 0xd" (identifier "param_3") (== "==") (number_literal "0xd")) () ")")) (&& "&&") (parenthesized_expression "(sVar1 == 0xf)" (( "(") (binary_expression "sVar1 == 0xf" (identifier "sVar1") (== "==") (number_literal "0xf")) () ")"))) () ")")) (compound_statement "{\n          return "PARISC_MILLI";\n        }" ({ "{") (return_statement "return "PARISC_MILLI";" (return "return") (string_literal ""PARISC_MILLI"" (" """) (string_content "PARISC_MILLI") (" """)) (; ";")) (} "}"))) (} "}")))) (expression_statement "pcVar2 = "<processor specific>: %d";" (assignment_expression "pcVar2 = "<processor specific>: %d"" (identifier "pcVar2") (= "=") (string_literal ""<processor specific>: %d"" (" """) (string_content "<processor specific>: %d") (" """))) (; ";")) (} "}")) (else_clause "else if (param_3 - 10U < 3) {\n      if (*param_2 == 0xf) {\n        if (param_3 == 0xb) {\n          return "HP_OPAQUE";\n        }\n        if (param_3 == 0xc) {\n          return "HP_STUB";\n        }\n      }\n      if (((param_3 == 10) && (*param_1 < 10)) && ((0x209U >> (*param_1 & 0x1f) & 1) != 0)) {\n        return "IFUNC";\n      }\n      pcVar2 = "<OS specific>: %d";\n    }\n    else {\n      pcVar2 = "<unknown>: %d";\n    }" (else "else") (if_statement "if (param_3 - 10U < 3) {\n      if (*param_2 == 0xf) {\n        if (param_3 == 0xb) {\n          return "HP_OPAQUE";\n        }\n        if (param_3 == 0xc) {\n          return "HP_STUB";\n        }\n      }\n      if (((param_3 == 10) && (*param_1 < 10)) && ((0x209U >> (*param_1 & 0x1f) & 1) != 0)) {\n        return "IFUNC";\n      }\n      pcVar2 = "<OS specific>: %d";\n    }\n    else {\n      pcVar2 = "<unknown>: %d";\n    }" (if "if") (parenthesized_expression "(param_3 - 10U < 3)" (( "(") (binary_expression "param_3 - 10U < 3" (binary_expression "param_3 - 10U" (identifier "param_3") (- "-") (number_literal "10U")) (< "<") (number_literal "3")) () ")")) (compound_statement "{\n      if (*param_2 == 0xf) {\n        if (param_3 == 0xb) {\n          return "HP_OPAQUE";\n        }\n        if (param_3 == 0xc) {\n          return "HP_STUB";\n        }\n      }\n      if (((param_3 == 10) && (*param_1 < 10)) && ((0x209U >> (*param_1 & 0x1f) & 1) != 0)) {\n        return "IFUNC";\n      }\n      pcVar2 = "<OS specific>: %d";\n    }" ({ "{") (if_statement "if (*param_2 == 0xf) {\n        if (param_3 == 0xb) {\n          return "HP_OPAQUE";\n        }\n        if (param_3 == 0xc) {\n          return "HP_STUB";\n        }\n      }" (if "if") (parenthesized_expression "(*param_2 == 0xf)" (( "(") (binary_expression "*param_2 == 0xf" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (== "==") (number_literal "0xf")) () ")")) (compound_statement "{\n        if (param_3 == 0xb) {\n          return "HP_OPAQUE";\n        }\n        if (param_3 == 0xc) {\n          return "HP_STUB";\n        }\n      }" ({ "{") (if_statement "if (param_3 == 0xb) {\n          return "HP_OPAQUE";\n        }" (if "if") (parenthesized_expression "(param_3 == 0xb)" (( "(") (binary_expression "param_3 == 0xb" (identifier "param_3") (== "==") (number_literal "0xb")) () ")")) (compound_statement "{\n          return "HP_OPAQUE";\n        }" ({ "{") (return_statement "return "HP_OPAQUE";" (return "return") (string_literal ""HP_OPAQUE"" (" """) (string_content "HP_OPAQUE") (" """)) (; ";")) (} "}"))) (if_statement "if (param_3 == 0xc) {\n          return "HP_STUB";\n        }" (if "if") (parenthesized_expression "(param_3 == 0xc)" (( "(") (binary_expression "param_3 == 0xc" (identifier "param_3") (== "==") (number_literal "0xc")) () ")")) (compound_statement "{\n          return "HP_STUB";\n        }" ({ "{") (return_statement "return "HP_STUB";" (return "return") (string_literal ""HP_STUB"" (" """) (string_content "HP_STUB") (" """)) (; ";")) (} "}"))) (} "}"))) (if_statement "if (((param_3 == 10) && (*param_1 < 10)) && ((0x209U >> (*param_1 & 0x1f) & 1) != 0)) {\n        return "IFUNC";\n      }" (if "if") (parenthesized_expression "(((param_3 == 10) && (*param_1 < 10)) && ((0x209U >> (*param_1 & 0x1f) & 1) != 0))" (( "(") (binary_expression "((param_3 == 10) && (*param_1 < 10)) && ((0x209U >> (*param_1 & 0x1f) & 1) != 0)" (parenthesized_expression "((param_3 == 10) && (*param_1 < 10))" (( "(") (binary_expression "(param_3 == 10) && (*param_1 < 10)" (parenthesized_expression "(param_3 == 10)" (( "(") (binary_expression "param_3 == 10" (identifier "param_3") (== "==") (number_literal "10")) () ")")) (&& "&&") (parenthesized_expression "(*param_1 < 10)" (( "(") (binary_expression "*param_1 < 10" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (< "<") (number_literal "10")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((0x209U >> (*param_1 & 0x1f) & 1) != 0)" (( "(") (binary_expression "(0x209U >> (*param_1 & 0x1f) & 1) != 0" (parenthesized_expression "(0x209U >> (*param_1 & 0x1f) & 1)" (( "(") (binary_expression "0x209U >> (*param_1 & 0x1f) & 1" (binary_expression "0x209U >> (*param_1 & 0x1f)" (number_literal "0x209U") (>> ">>") (parenthesized_expression "(*param_1 & 0x1f)" (( "(") (binary_expression "*param_1 & 0x1f" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (& "&") (number_literal "0x1f")) () ")"))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        return "IFUNC";\n      }" ({ "{") (return_statement "return "IFUNC";" (return "return") (string_literal ""IFUNC"" (" """) (string_content "IFUNC") (" """)) (; ";")) (} "}"))) (expression_statement "pcVar2 = "<OS specific>: %d";" (assignment_expression "pcVar2 = "<OS specific>: %d"" (identifier "pcVar2") (= "=") (string_literal ""<OS specific>: %d"" (" """) (string_content "<OS specific>: %d") (" """))) (; ";")) (} "}")) (else_clause "else {\n      pcVar2 = "<unknown>: %d";\n    }" (else "else") (compound_statement "{\n      pcVar2 = "<unknown>: %d";\n    }" ({ "{") (expression_statement "pcVar2 = "<unknown>: %d";" (assignment_expression "pcVar2 = "<unknown>: %d"" (identifier "pcVar2") (= "=") (string_literal ""<unknown>: %d"" (" """) (string_content "<unknown>: %d") (" """))) (; ";")) (} "}")))))) (expression_statement "__format = (char *)dcgettext(0,pcVar2,5);" (assignment_expression "__format = (char *)dcgettext(0,pcVar2,5)" (identifier "__format") (= "=") (cast_expression "(char *)dcgettext(0,pcVar2,5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,pcVar2,5)" (identifier "dcgettext") (argument_list "(0,pcVar2,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar2") (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "pcVar2 = &DAT_000b5c80;" (assignment_expression "pcVar2 = &DAT_000b5c80" (identifier "pcVar2") (= "=") (pointer_expression "&DAT_000b5c80" (& "&") (identifier "DAT_000b5c80"))) (; ";")) (expression_statement "snprintf(&DAT_000b5c80,0x20,__format,param_3);" (call_expression "snprintf(&DAT_000b5c80,0x20,__format,param_3)" (identifier "snprintf") (argument_list "(&DAT_000b5c80,0x20,__format,param_3)" (( "(") (pointer_expression "&DAT_000b5c80" (& "&") (identifier "DAT_000b5c80")) (, ",") (number_literal "0x20") (, ",") (identifier "__format") (, ",") (identifier "param_3") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 8:\n    pcVar2 = "RELC";\n    break;" (case "case") (number_literal "8") (: ":") (expression_statement "pcVar2 = "RELC";" (assignment_expression "pcVar2 = "RELC"" (identifier "pcVar2") (= "=") (string_literal ""RELC"" (" """) (string_content "RELC") (" """))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 9:\n    pcVar2 = "SRELC";" (case "case") (number_literal "9") (: ":") (expression_statement "pcVar2 = "SRELC";" (assignment_expression "pcVar2 = "SRELC"" (identifier "pcVar2") (= "=") (string_literal ""SRELC"" (" """) (string_content "SRELC") (" """))) (; ";"))) (} "}"))) (return_statement "return pcVar2;" (return "return") (identifier "pcVar2") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* DWARF original prototype: char * get_symbol_type(Filedata * filedata, uint type, Filedata *
   filedata) */

char * __regparm3 function_1(type_1 *filedata,type_2 type,type_1 *var_2)

{
  short var_1;
  type_3 *puVar2;
  char *pcVar3;
  
  switch(var_2) {
  case (type_1 *)0x0:
    puVar2 = "NOTYPE";
    break;
  case (type_1 *)0x1:
    return "OBJECT";
  case (type_1 *)0x2:
    puVar2 = "FUNC";
    break;
  case (type_1 *)0x3:
    puVar2 = "SECTION";
    break;
  case (type_1 *)0x4:
    puVar2 = "FILE";
    break;
  case (type_1 *)0x5:
    puVar2 = "COMMON";
    break;
  case (type_1 *)0x6:
    puVar2 = "TLS";
    break;
  default:
    if ((type_3 *)((int)&var_2[-1].string_table + 3U) < (type_3 *)0x3) {
      var_1 = *(short *)type;
      if (var_1 == 0x28) {
        pcVar3 = "THUMB_FUNC";
joined_r0x00024151:
        if (var_2 == (type_1 *)0xd) {
          return pcVar3;
        }
      }
      else {
        if (var_1 == 0x2b) {
          pcVar3 = "REGISTER";
          goto joined_r0x00024151;
        }
        if ((var_2 == (type_1 *)0xd) && (var_1 == 0xf)) {
          return "PARISC_MILLI";
        }
      }
      pcVar3 = "<processor specific>: %d";
    }
    else if ((type_3 *)((int)&var_2[-1].string_table_length + 2U) < (type_3 *)0x3) {
      if (*(short *)type == 0xf) {
        if (var_2 == (type_1 *)0xb) {
          return "HP_OPAQUE";
        }
        if (var_2 == (type_1 *)0xc) {
          return "HP_STUB";
        }
      }
      if (((var_2 == (type_1 *)0xa) && (*(type_4 *)&filedata->file_name < 10)) &&
         ((0x209U >> (*(type_4 *)&filedata->file_name & 0x1f) & 1) != 0)) {
        return "IFUNC";
      }
      pcVar3 = "<OS specific>: %d";
    }
    else {
      pcVar3 = "<unknown>: %d";
    }
    pcVar3 = (char *)var_3(0,pcVar3,5);
    puVar2 = buff_18659;
    var_4(buff_18659,0x20,pcVar3,var_2);
    break;
  case (type_1 *)0x8:
    puVar2 = "RELC";
    break;
  case (type_1 *)0x9:
    puVar2 = "SRELC";
  }
  return puVar2;
}


(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: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (sized_type_specifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (identifier))))) body: (compound_statement (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (switch_statement condition: (parenthesized_expression (identifier)) body: (compound_statement (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (break_statement)) (case_statement value: (number_literal) (return_statement (string_literal (string_content)))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (break_statement)) (case_statement (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (identifier)))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (return_statement (string_literal (string_content)))))))) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (string_literal (string_content))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (string_literal (string_content))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (return_statement (string_literal (string_content))))) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier) (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (number_literal) (identifier) (identifier)))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content))))))) (return_statement (identifier)))))

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

char * __regparm3 MASKED(byte *param_1,short *param_2,int param_3)

{
  short sVar1;
  char *pcVar2;
  char *__format;
  
  switch(param_3) {
  case 0:
    pcVar2 = "NOTYPE";
    break;
  case 1:
    return "OBJECT";
  case 2:
    pcVar2 = "FUNC";
    break;
  case 3:
    pcVar2 = "SECTION";
    break;
  case 4:
    pcVar2 = "FILE";
    break;
  case 5:
    pcVar2 = "COMMON";
    break;
  case 6:
    pcVar2 = "TLS";
    break;
  default:
    if (param_3 - 0xdU < 3) {
      sVar1 = *param_2;
      if (sVar1 == 0x28) {
        pcVar2 = "THUMB_FUNC";
joined_r0x00024151:
        if (param_3 == 0xd) {
          return pcVar2;
        }
      }
      else {
        if (sVar1 == 0x2b) {
          pcVar2 = "REGISTER";
          goto joined_r0x00024151;
        }
        if ((param_3 == 0xd) && (sVar1 == 0xf)) {
          return "PARISC_MILLI";
        }
      }
      pcVar2 = "<processor specific>: %d";
    }
    else if (param_3 - 10U < 3) {
      if (*param_2 == 0xf) {
        if (param_3 == 0xb) {
          return "HP_OPAQUE";
        }
        if (param_3 == 0xc) {
          return "HP_STUB";
        }
      }
      if (((param_3 == 10) && (*param_1 < 10)) && ((0x209U >> (*param_1 & 0x1f) & 1) != 0)) {
        return "IFUNC";
      }
      pcVar2 = "<OS specific>: %d";
    }
    else {
      pcVar2 = "<unknown>: %d";
    }
    __format = (char *)dcgettext(0,pcVar2,5);
    pcVar2 = &DAT_000b5c80;
    snprintf(&DAT_000b5c80,0x20,__format,param_3);
    break;
  case 8:
    pcVar2 = "RELC";
    break;
  case 9:
    pcVar2 = "SRELC";
  }
  return pcVar2;
}

