
/* DWARF original prototype: char * get_symbol_type(Filedata * filedata, uint type, Filedata *
   filedata) */

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

{
  short sVar1;
  int iVar2;
  undefined4 in_register_00000034;
  char *pcVar3;
  
  iVar2 = (int)filedata_1;
  switch((ulong)filedata_1 & 0xffffffff) {
  case 0:
    return "NOTYPE";
  case 1:
    return "OBJECT";
  case 2:
    return "FUNC";
  case 3:
    return "SECTION";
  case 4:
    return "FILE";
  case 5:
    return "COMMON";
  case 6:
    return "TLS";
  case 8:
    return "RELC";
  case 9:
    return "SRELC";
  }
  if (iVar2 - 0xdU < 3) {
    sVar1 = *(short *)CONCAT44(in_register_00000034,type);
    if (sVar1 == 0x28) {
      if (iVar2 == 0xd) {
        return "THUMB_FUNC";
      }
    }
    else if (sVar1 == 0x2b) {
      if (iVar2 == 0xd) {
        return "REGISTER";
      }
    }
    else if ((iVar2 == 0xd) && (sVar1 == 0xf)) {
      return "PARISC_MILLI";
    }
    pcVar3 = "<processor specific>: %d";
  }
  else if (iVar2 - 10U < 3) {
    if (*(short *)CONCAT44(in_register_00000034,type) == 0xf) {
      if (iVar2 == 0xb) {
        return "HP_OPAQUE";
      }
      if (iVar2 == 0xc) {
        return "HP_STUB";
      }
    }
    if (((iVar2 == 10) && (*(byte *)&filedata->file_name < 10)) &&
       ((0x209UL >> ((ulong)*(byte *)&filedata->file_name & 0x3f) & 1) != 0)) {
      return "IFUNC";
    }
    pcVar3 = "<OS specific>: %d";
  }
  else {
    pcVar3 = "<unknown>: %d";
  }
  pcVar3 = (char *)dcgettext(0,pcVar3,5);
  snprintf(buff_19080,0x20,pcVar3,(ulong)filedata_1 & 0xffffffff);
  return buff_19080;
}



char * FUN_001171e0(byte *param_1,short *param_2,uint param_3)

{
  short sVar1;
  char *pcVar2;
  
  switch(param_3) {
  case 0:
    return "NOTYPE";
  case 1:
    return "OBJECT";
  case 2:
    return "FUNC";
  case 3:
    return "SECTION";
  case 4:
    return "FILE";
  case 5:
    return "COMMON";
  case 6:
    return "TLS";
  case 8:
    return "RELC";
  case 9:
    return "SRELC";
  }
  if (param_3 - 0xd < 3) {
    sVar1 = *param_2;
    if (sVar1 == 0x28) {
      if (param_3 == 0xd) {
        return "THUMB_FUNC";
      }
    }
    else if (sVar1 == 0x2b) {
      if (param_3 == 0xd) {
        return "REGISTER";
      }
    }
    else if ((param_3 == 0xd) && (sVar1 == 0xf)) {
      return "PARISC_MILLI";
    }
    pcVar2 = "<processor specific>: %d";
  }
  else if (param_3 - 10 < 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)) && ((0x209UL >> ((ulong)*param_1 & 0x3f) & 1) != 0)) {
      return "IFUNC";
    }
    pcVar2 = "<OS specific>: %d";
  }
  else {
    pcVar2 = "<unknown>: %d";
  }
  pcVar2 = (char *)dcgettext(0,pcVar2,5);
  snprintf(&DAT_00192d80,0x20,pcVar2,(ulong)param_3);
  return &DAT_00192d80;
}


CMP EDX,0x9
JA 0x00117290
LEA RCX,[0x17a350]
MOV R8D,EDX
MOVSXD RAX,dword ptr [RCX + R8*0x4]
ADD RAX,RCX
JMP RAX
LEA RAX,[0x15e96b]
RET
LEA RAX,[0x1650b9]
RET
LEA RAX,[0x1650c1]
RET
LEA RAX,[0x16572c]
RET
LEA RAX,[0x165091]
RET
LEA RAX,[0x169a91]
RET
LEA RAX,[0x15fb6d]
RET
LEA RAX,[0x165097]
RET
LEA RAX,[0x165096]
RET
LEA EAX,[RDX + -0xd]
PUSH RBX
MOV EBX,EDX
CMP EAX,0x2
JA 0x001172f8
MOVZX EDX,word ptr [RSI]
CMP DX,0x28
JZ 0x00117340
CMP DX,0x2b
JNZ 0x00117370
LEA RAX,[0x16176d]
CMP EBX,0xd
JZ 0x001172f0
MOV EDX,0x5
LEA RSI,[0x1650c6]
XOR EDI,EDI
CALL 0x00107130
MOV ECX,EBX
MOV ESI,0x20
LEA RDI,[0x192d80]
MOV RDX,RAX
XOR EAX,EAX
CALL 0x001071b0
LEA RAX,[0x192d80]
POP RBX
RET
LEA EAX,[RDX + -0xa]
CMP EAX,0x2
JA 0x00117358
CMP word ptr [RSI],0xf
JZ 0x00117390
CMP EBX,0xa
JNZ 0x00117330
MOVZX EDX,byte ptr [RDI]
CMP DL,0x9
JA 0x00117330
MOV ECX,0x209
LEA RAX,[0x1650c0]
BT RCX,RDX
JC 0x001172f0
NOP dword ptr [RAX]
MOV EDX,0x5
LEA RSI,[0x1650df]
JMP 0x001172ca
LEA RAX,[0x1650ae]
CMP EBX,0xd
JNZ 0x001172be
POP RBX
RET
MOV EDX,0x5
LEA RSI,[0x1650f1]
JMP 0x001172ca
CMP EBX,0xd
JNZ 0x001172be
LEA RAX,[0x165084]
CMP DX,0xf
JNZ 0x001172be
POP RBX
RET
LEA RAX,[0x1650a4]
CMP EDX,0xb
JZ 0x001172f0
LEA RAX,[0x16509c]
CMP EDX,0xc
JNZ 0x0011730a
POP RBX
RET
(translation_unit "char * FUN_001171e0(byte *param_1,short *param_2,uint param_3)\n\n{\n  short sVar1;\n  char *pcVar2;\n  \n  switch(param_3) {\n  case 0:\n    return "NOTYPE";\n  case 1:\n    return "OBJECT";\n  case 2:\n    return "FUNC";\n  case 3:\n    return "SECTION";\n  case 4:\n    return "FILE";\n  case 5:\n    return "COMMON";\n  case 6:\n    return "TLS";\n  case 8:\n    return "RELC";\n  case 9:\n    return "SRELC";\n  }\n  if (param_3 - 0xd < 3) {\n    sVar1 = *param_2;\n    if (sVar1 == 0x28) {\n      if (param_3 == 0xd) {\n        return "THUMB_FUNC";\n      }\n    }\n    else if (sVar1 == 0x2b) {\n      if (param_3 == 0xd) {\n        return "REGISTER";\n      }\n    }\n    else if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n      return "PARISC_MILLI";\n    }\n    pcVar2 = "<processor specific>: %d";\n  }\n  else if (param_3 - 10 < 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)) && ((0x209UL >> ((ulong)*param_1 & 0x3f) & 1) != 0)) {\n      return "IFUNC";\n    }\n    pcVar2 = "<OS specific>: %d";\n  }\n  else {\n    pcVar2 = "<unknown>: %d";\n  }\n  pcVar2 = (char *)dcgettext(0,pcVar2,5);\n  snprintf(&DAT_00192d80,0x20,pcVar2,(ulong)param_3);\n  return &DAT_00192d80;\n}\n\n" (function_definition "char * FUN_001171e0(byte *param_1,short *param_2,uint param_3)\n\n{\n  short sVar1;\n  char *pcVar2;\n  \n  switch(param_3) {\n  case 0:\n    return "NOTYPE";\n  case 1:\n    return "OBJECT";\n  case 2:\n    return "FUNC";\n  case 3:\n    return "SECTION";\n  case 4:\n    return "FILE";\n  case 5:\n    return "COMMON";\n  case 6:\n    return "TLS";\n  case 8:\n    return "RELC";\n  case 9:\n    return "SRELC";\n  }\n  if (param_3 - 0xd < 3) {\n    sVar1 = *param_2;\n    if (sVar1 == 0x28) {\n      if (param_3 == 0xd) {\n        return "THUMB_FUNC";\n      }\n    }\n    else if (sVar1 == 0x2b) {\n      if (param_3 == 0xd) {\n        return "REGISTER";\n      }\n    }\n    else if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n      return "PARISC_MILLI";\n    }\n    pcVar2 = "<processor specific>: %d";\n  }\n  else if (param_3 - 10 < 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)) && ((0x209UL >> ((ulong)*param_1 & 0x3f) & 1) != 0)) {\n      return "IFUNC";\n    }\n    pcVar2 = "<OS specific>: %d";\n  }\n  else {\n    pcVar2 = "<unknown>: %d";\n  }\n  pcVar2 = (char *)dcgettext(0,pcVar2,5);\n  snprintf(&DAT_00192d80,0x20,pcVar2,(ulong)param_3);\n  return &DAT_00192d80;\n}" primitive_type (pointer_declarator "* FUN_001171e0(byte *param_1,short *param_2,uint param_3)" * (function_declarator "FUN_001171e0(byte *param_1,short *param_2,uint param_3)" identifier (parameter_list "(byte *param_1,short *param_2,uint 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 "uint param_3" type_identifier identifier) )))) (compound_statement "{\n  short sVar1;\n  char *pcVar2;\n  \n  switch(param_3) {\n  case 0:\n    return "NOTYPE";\n  case 1:\n    return "OBJECT";\n  case 2:\n    return "FUNC";\n  case 3:\n    return "SECTION";\n  case 4:\n    return "FILE";\n  case 5:\n    return "COMMON";\n  case 6:\n    return "TLS";\n  case 8:\n    return "RELC";\n  case 9:\n    return "SRELC";\n  }\n  if (param_3 - 0xd < 3) {\n    sVar1 = *param_2;\n    if (sVar1 == 0x28) {\n      if (param_3 == 0xd) {\n        return "THUMB_FUNC";\n      }\n    }\n    else if (sVar1 == 0x2b) {\n      if (param_3 == 0xd) {\n        return "REGISTER";\n      }\n    }\n    else if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n      return "PARISC_MILLI";\n    }\n    pcVar2 = "<processor specific>: %d";\n  }\n  else if (param_3 - 10 < 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)) && ((0x209UL >> ((ulong)*param_1 & 0x3f) & 1) != 0)) {\n      return "IFUNC";\n    }\n    pcVar2 = "<OS specific>: %d";\n  }\n  else {\n    pcVar2 = "<unknown>: %d";\n  }\n  pcVar2 = (char *)dcgettext(0,pcVar2,5);\n  snprintf(&DAT_00192d80,0x20,pcVar2,(ulong)param_3);\n  return &DAT_00192d80;\n}" { (declaration "short sVar1;" (sized_type_specifier "short" short) identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (switch_statement "switch(param_3) {\n  case 0:\n    return "NOTYPE";\n  case 1:\n    return "OBJECT";\n  case 2:\n    return "FUNC";\n  case 3:\n    return "SECTION";\n  case 4:\n    return "FILE";\n  case 5:\n    return "COMMON";\n  case 6:\n    return "TLS";\n  case 8:\n    return "RELC";\n  case 9:\n    return "SRELC";\n  }" switch (parenthesized_expression "(param_3)" ( identifier )) (compound_statement "{\n  case 0:\n    return "NOTYPE";\n  case 1:\n    return "OBJECT";\n  case 2:\n    return "FUNC";\n  case 3:\n    return "SECTION";\n  case 4:\n    return "FILE";\n  case 5:\n    return "COMMON";\n  case 6:\n    return "TLS";\n  case 8:\n    return "RELC";\n  case 9:\n    return "SRELC";\n  }" { (case_statement "case 0:\n    return "NOTYPE";" case number_literal : (return_statement "return "NOTYPE";" return (string_literal ""NOTYPE"" " string_content ") ;)) (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    return "FUNC";" case number_literal : (return_statement "return "FUNC";" return (string_literal ""FUNC"" " string_content ") ;)) (case_statement "case 3:\n    return "SECTION";" case number_literal : (return_statement "return "SECTION";" return (string_literal ""SECTION"" " string_content ") ;)) (case_statement "case 4:\n    return "FILE";" case number_literal : (return_statement "return "FILE";" return (string_literal ""FILE"" " string_content ") ;)) (case_statement "case 5:\n    return "COMMON";" case number_literal : (return_statement "return "COMMON";" return (string_literal ""COMMON"" " string_content ") ;)) (case_statement "case 6:\n    return "TLS";" case number_literal : (return_statement "return "TLS";" return (string_literal ""TLS"" " string_content ") ;)) (case_statement "case 8:\n    return "RELC";" case number_literal : (return_statement "return "RELC";" return (string_literal ""RELC"" " string_content ") ;)) (case_statement "case 9:\n    return "SRELC";" case number_literal : (return_statement "return "SRELC";" return (string_literal ""SRELC"" " string_content ") ;)) })) (if_statement "if (param_3 - 0xd < 3) {\n    sVar1 = *param_2;\n    if (sVar1 == 0x28) {\n      if (param_3 == 0xd) {\n        return "THUMB_FUNC";\n      }\n    }\n    else if (sVar1 == 0x2b) {\n      if (param_3 == 0xd) {\n        return "REGISTER";\n      }\n    }\n    else if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n      return "PARISC_MILLI";\n    }\n    pcVar2 = "<processor specific>: %d";\n  }\n  else if (param_3 - 10 < 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)) && ((0x209UL >> ((ulong)*param_1 & 0x3f) & 1) != 0)) {\n      return "IFUNC";\n    }\n    pcVar2 = "<OS specific>: %d";\n  }\n  else {\n    pcVar2 = "<unknown>: %d";\n  }" if (parenthesized_expression "(param_3 - 0xd < 3)" ( (binary_expression "param_3 - 0xd < 3" (binary_expression "param_3 - 0xd" identifier - number_literal) < number_literal) )) (compound_statement "{\n    sVar1 = *param_2;\n    if (sVar1 == 0x28) {\n      if (param_3 == 0xd) {\n        return "THUMB_FUNC";\n      }\n    }\n    else if (sVar1 == 0x2b) {\n      if (param_3 == 0xd) {\n        return "REGISTER";\n      }\n    }\n    else if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n      return "PARISC_MILLI";\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      if (param_3 == 0xd) {\n        return "THUMB_FUNC";\n      }\n    }\n    else if (sVar1 == 0x2b) {\n      if (param_3 == 0xd) {\n        return "REGISTER";\n      }\n    }\n    else if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n      return "PARISC_MILLI";\n    }" if (parenthesized_expression "(sVar1 == 0x28)" ( (binary_expression "sVar1 == 0x28" identifier == number_literal) )) (compound_statement "{\n      if (param_3 == 0xd) {\n        return "THUMB_FUNC";\n      }\n    }" { (if_statement "if (param_3 == 0xd) {\n        return "THUMB_FUNC";\n      }" if (parenthesized_expression "(param_3 == 0xd)" ( (binary_expression "param_3 == 0xd" identifier == number_literal) )) (compound_statement "{\n        return "THUMB_FUNC";\n      }" { (return_statement "return "THUMB_FUNC";" return (string_literal ""THUMB_FUNC"" " string_content ") ;) })) }) (else_clause "else if (sVar1 == 0x2b) {\n      if (param_3 == 0xd) {\n        return "REGISTER";\n      }\n    }\n    else if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n      return "PARISC_MILLI";\n    }" else (if_statement "if (sVar1 == 0x2b) {\n      if (param_3 == 0xd) {\n        return "REGISTER";\n      }\n    }\n    else if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n      return "PARISC_MILLI";\n    }" if (parenthesized_expression "(sVar1 == 0x2b)" ( (binary_expression "sVar1 == 0x2b" identifier == number_literal) )) (compound_statement "{\n      if (param_3 == 0xd) {\n        return "REGISTER";\n      }\n    }" { (if_statement "if (param_3 == 0xd) {\n        return "REGISTER";\n      }" if (parenthesized_expression "(param_3 == 0xd)" ( (binary_expression "param_3 == 0xd" identifier == number_literal) )) (compound_statement "{\n        return "REGISTER";\n      }" { (return_statement "return "REGISTER";" return (string_literal ""REGISTER"" " string_content ") ;) })) }) (else_clause "else if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n      return "PARISC_MILLI";\n    }" else (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 - 10 < 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)) && ((0x209UL >> ((ulong)*param_1 & 0x3f) & 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 - 10 < 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)) && ((0x209UL >> ((ulong)*param_1 & 0x3f) & 1) != 0)) {\n      return "IFUNC";\n    }\n    pcVar2 = "<OS specific>: %d";\n  }\n  else {\n    pcVar2 = "<unknown>: %d";\n  }" if (parenthesized_expression "(param_3 - 10 < 3)" ( (binary_expression "param_3 - 10 < 3" (binary_expression "param_3 - 10" 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)) && ((0x209UL >> ((ulong)*param_1 & 0x3f) & 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)) && ((0x209UL >> ((ulong)*param_1 & 0x3f) & 1) != 0)) {\n      return "IFUNC";\n    }" if (parenthesized_expression "(((param_3 == 10) && (*param_1 < 10)) && ((0x209UL >> ((ulong)*param_1 & 0x3f) & 1) != 0))" ( (binary_expression "((param_3 == 10) && (*param_1 < 10)) && ((0x209UL >> ((ulong)*param_1 & 0x3f) & 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 "((0x209UL >> ((ulong)*param_1 & 0x3f) & 1) != 0)" ( (binary_expression "(0x209UL >> ((ulong)*param_1 & 0x3f) & 1) != 0" (parenthesized_expression "(0x209UL >> ((ulong)*param_1 & 0x3f) & 1)" ( (binary_expression "0x209UL >> ((ulong)*param_1 & 0x3f) & 1" (binary_expression "0x209UL >> ((ulong)*param_1 & 0x3f)" number_literal >> (parenthesized_expression "((ulong)*param_1 & 0x3f)" ( (binary_expression "(ulong)*param_1 & 0x3f" (binary_expression "(ulong)*param_1" (parenthesized_expression "(ulong)" ( identifier )) * 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 "pcVar2 = (char *)dcgettext(0,pcVar2,5);" (assignment_expression "pcVar2 = (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 "snprintf(&DAT_00192d80,0x20,pcVar2,(ulong)param_3);" (call_expression "snprintf(&DAT_00192d80,0x20,pcVar2,(ulong)param_3)" identifier (argument_list "(&DAT_00192d80,0x20,pcVar2,(ulong)param_3)" ( (pointer_expression "&DAT_00192d80" & identifier) , number_literal , identifier , (cast_expression "(ulong)param_3" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) (return_statement "return &DAT_00192d80;" return (pointer_expression "&DAT_00192d80" & identifier) ;) })))
(translation_unit "/* DWARF original prototype: char * get_symbol_type(Filedata * filedata, uint type, Filedata *\n   filedata) */\n\nchar * get_symbol_type(Filedata *filedata,uint type,Filedata *filedata_1)\n\n{\n  short sVar1;\n  int iVar2;\n  undefined4 in_register_00000034;\n  char *pcVar3;\n  \n  iVar2 = (int)filedata_1;\n  switch((ulong)filedata_1 & 0xffffffff) {\n  case 0:\n    return "NOTYPE";\n  case 1:\n    return "OBJECT";\n  case 2:\n    return "FUNC";\n  case 3:\n    return "SECTION";\n  case 4:\n    return "FILE";\n  case 5:\n    return "COMMON";\n  case 6:\n    return "TLS";\n  case 8:\n    return "RELC";\n  case 9:\n    return "SRELC";\n  }\n  if (iVar2 - 0xdU < 3) {\n    sVar1 = *(short *)CONCAT44(in_register_00000034,type);\n    if (sVar1 == 0x28) {\n      if (iVar2 == 0xd) {\n        return "THUMB_FUNC";\n      }\n    }\n    else if (sVar1 == 0x2b) {\n      if (iVar2 == 0xd) {\n        return "REGISTER";\n      }\n    }\n    else if ((iVar2 == 0xd) && (sVar1 == 0xf)) {\n      return "PARISC_MILLI";\n    }\n    pcVar3 = "<processor specific>: %d";\n  }\n  else if (iVar2 - 10U < 3) {\n    if (*(short *)CONCAT44(in_register_00000034,type) == 0xf) {\n      if (iVar2 == 0xb) {\n        return "HP_OPAQUE";\n      }\n      if (iVar2 == 0xc) {\n        return "HP_STUB";\n      }\n    }\n    if (((iVar2 == 10) && (*(byte *)&filedata->file_name < 10)) &&\n       ((0x209UL >> ((ulong)*(byte *)&filedata->file_name & 0x3f) & 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  snprintf(buff_19080,0x20,pcVar3,(ulong)filedata_1 & 0xffffffff);\n  return buff_19080;\n}\n\n" comment (function_definition "char * get_symbol_type(Filedata *filedata,uint type,Filedata *filedata_1)\n\n{\n  short sVar1;\n  int iVar2;\n  undefined4 in_register_00000034;\n  char *pcVar3;\n  \n  iVar2 = (int)filedata_1;\n  switch((ulong)filedata_1 & 0xffffffff) {\n  case 0:\n    return "NOTYPE";\n  case 1:\n    return "OBJECT";\n  case 2:\n    return "FUNC";\n  case 3:\n    return "SECTION";\n  case 4:\n    return "FILE";\n  case 5:\n    return "COMMON";\n  case 6:\n    return "TLS";\n  case 8:\n    return "RELC";\n  case 9:\n    return "SRELC";\n  }\n  if (iVar2 - 0xdU < 3) {\n    sVar1 = *(short *)CONCAT44(in_register_00000034,type);\n    if (sVar1 == 0x28) {\n      if (iVar2 == 0xd) {\n        return "THUMB_FUNC";\n      }\n    }\n    else if (sVar1 == 0x2b) {\n      if (iVar2 == 0xd) {\n        return "REGISTER";\n      }\n    }\n    else if ((iVar2 == 0xd) && (sVar1 == 0xf)) {\n      return "PARISC_MILLI";\n    }\n    pcVar3 = "<processor specific>: %d";\n  }\n  else if (iVar2 - 10U < 3) {\n    if (*(short *)CONCAT44(in_register_00000034,type) == 0xf) {\n      if (iVar2 == 0xb) {\n        return "HP_OPAQUE";\n      }\n      if (iVar2 == 0xc) {\n        return "HP_STUB";\n      }\n    }\n    if (((iVar2 == 10) && (*(byte *)&filedata->file_name < 10)) &&\n       ((0x209UL >> ((ulong)*(byte *)&filedata->file_name & 0x3f) & 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  snprintf(buff_19080,0x20,pcVar3,(ulong)filedata_1 & 0xffffffff);\n  return buff_19080;\n}" primitive_type (pointer_declarator "* get_symbol_type(Filedata *filedata,uint type,Filedata *filedata_1)" * (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  int iVar2;\n  undefined4 in_register_00000034;\n  char *pcVar3;\n  \n  iVar2 = (int)filedata_1;\n  switch((ulong)filedata_1 & 0xffffffff) {\n  case 0:\n    return "NOTYPE";\n  case 1:\n    return "OBJECT";\n  case 2:\n    return "FUNC";\n  case 3:\n    return "SECTION";\n  case 4:\n    return "FILE";\n  case 5:\n    return "COMMON";\n  case 6:\n    return "TLS";\n  case 8:\n    return "RELC";\n  case 9:\n    return "SRELC";\n  }\n  if (iVar2 - 0xdU < 3) {\n    sVar1 = *(short *)CONCAT44(in_register_00000034,type);\n    if (sVar1 == 0x28) {\n      if (iVar2 == 0xd) {\n        return "THUMB_FUNC";\n      }\n    }\n    else if (sVar1 == 0x2b) {\n      if (iVar2 == 0xd) {\n        return "REGISTER";\n      }\n    }\n    else if ((iVar2 == 0xd) && (sVar1 == 0xf)) {\n      return "PARISC_MILLI";\n    }\n    pcVar3 = "<processor specific>: %d";\n  }\n  else if (iVar2 - 10U < 3) {\n    if (*(short *)CONCAT44(in_register_00000034,type) == 0xf) {\n      if (iVar2 == 0xb) {\n        return "HP_OPAQUE";\n      }\n      if (iVar2 == 0xc) {\n        return "HP_STUB";\n      }\n    }\n    if (((iVar2 == 10) && (*(byte *)&filedata->file_name < 10)) &&\n       ((0x209UL >> ((ulong)*(byte *)&filedata->file_name & 0x3f) & 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  snprintf(buff_19080,0x20,pcVar3,(ulong)filedata_1 & 0xffffffff);\n  return buff_19080;\n}" { (declaration "short sVar1;" (sized_type_specifier "short" short) identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 in_register_00000034;" type_identifier identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (expression_statement "iVar2 = (int)filedata_1;" (assignment_expression "iVar2 = (int)filedata_1" identifier = (cast_expression "(int)filedata_1" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (switch_statement "switch((ulong)filedata_1 & 0xffffffff) {\n  case 0:\n    return "NOTYPE";\n  case 1:\n    return "OBJECT";\n  case 2:\n    return "FUNC";\n  case 3:\n    return "SECTION";\n  case 4:\n    return "FILE";\n  case 5:\n    return "COMMON";\n  case 6:\n    return "TLS";\n  case 8:\n    return "RELC";\n  case 9:\n    return "SRELC";\n  }" switch (parenthesized_expression "((ulong)filedata_1 & 0xffffffff)" ( (binary_expression "(ulong)filedata_1 & 0xffffffff" (cast_expression "(ulong)filedata_1" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) (compound_statement "{\n  case 0:\n    return "NOTYPE";\n  case 1:\n    return "OBJECT";\n  case 2:\n    return "FUNC";\n  case 3:\n    return "SECTION";\n  case 4:\n    return "FILE";\n  case 5:\n    return "COMMON";\n  case 6:\n    return "TLS";\n  case 8:\n    return "RELC";\n  case 9:\n    return "SRELC";\n  }" { (case_statement "case 0:\n    return "NOTYPE";" case number_literal : (return_statement "return "NOTYPE";" return (string_literal ""NOTYPE"" " string_content ") ;)) (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    return "FUNC";" case number_literal : (return_statement "return "FUNC";" return (string_literal ""FUNC"" " string_content ") ;)) (case_statement "case 3:\n    return "SECTION";" case number_literal : (return_statement "return "SECTION";" return (string_literal ""SECTION"" " string_content ") ;)) (case_statement "case 4:\n    return "FILE";" case number_literal : (return_statement "return "FILE";" return (string_literal ""FILE"" " string_content ") ;)) (case_statement "case 5:\n    return "COMMON";" case number_literal : (return_statement "return "COMMON";" return (string_literal ""COMMON"" " string_content ") ;)) (case_statement "case 6:\n    return "TLS";" case number_literal : (return_statement "return "TLS";" return (string_literal ""TLS"" " string_content ") ;)) (case_statement "case 8:\n    return "RELC";" case number_literal : (return_statement "return "RELC";" return (string_literal ""RELC"" " string_content ") ;)) (case_statement "case 9:\n    return "SRELC";" case number_literal : (return_statement "return "SRELC";" return (string_literal ""SRELC"" " string_content ") ;)) })) (if_statement "if (iVar2 - 0xdU < 3) {\n    sVar1 = *(short *)CONCAT44(in_register_00000034,type);\n    if (sVar1 == 0x28) {\n      if (iVar2 == 0xd) {\n        return "THUMB_FUNC";\n      }\n    }\n    else if (sVar1 == 0x2b) {\n      if (iVar2 == 0xd) {\n        return "REGISTER";\n      }\n    }\n    else if ((iVar2 == 0xd) && (sVar1 == 0xf)) {\n      return "PARISC_MILLI";\n    }\n    pcVar3 = "<processor specific>: %d";\n  }\n  else if (iVar2 - 10U < 3) {\n    if (*(short *)CONCAT44(in_register_00000034,type) == 0xf) {\n      if (iVar2 == 0xb) {\n        return "HP_OPAQUE";\n      }\n      if (iVar2 == 0xc) {\n        return "HP_STUB";\n      }\n    }\n    if (((iVar2 == 10) && (*(byte *)&filedata->file_name < 10)) &&\n       ((0x209UL >> ((ulong)*(byte *)&filedata->file_name & 0x3f) & 1) != 0)) {\n      return "IFUNC";\n    }\n    pcVar3 = "<OS specific>: %d";\n  }\n  else {\n    pcVar3 = "<unknown>: %d";\n  }" if (parenthesized_expression "(iVar2 - 0xdU < 3)" ( (binary_expression "iVar2 - 0xdU < 3" (binary_expression "iVar2 - 0xdU" identifier - number_literal) < number_literal) )) (compound_statement "{\n    sVar1 = *(short *)CONCAT44(in_register_00000034,type);\n    if (sVar1 == 0x28) {\n      if (iVar2 == 0xd) {\n        return "THUMB_FUNC";\n      }\n    }\n    else if (sVar1 == 0x2b) {\n      if (iVar2 == 0xd) {\n        return "REGISTER";\n      }\n    }\n    else if ((iVar2 == 0xd) && (sVar1 == 0xf)) {\n      return "PARISC_MILLI";\n    }\n    pcVar3 = "<processor specific>: %d";\n  }" { (expression_statement "sVar1 = *(short *)CONCAT44(in_register_00000034,type);" (assignment_expression "sVar1 = *(short *)CONCAT44(in_register_00000034,type)" identifier = (pointer_expression "*(short *)CONCAT44(in_register_00000034,type)" * (cast_expression "(short *)CONCAT44(in_register_00000034,type)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT44(in_register_00000034,type)" identifier (argument_list "(in_register_00000034,type)" ( identifier , identifier )))))) ;) (if_statement "if (sVar1 == 0x28) {\n      if (iVar2 == 0xd) {\n        return "THUMB_FUNC";\n      }\n    }\n    else if (sVar1 == 0x2b) {\n      if (iVar2 == 0xd) {\n        return "REGISTER";\n      }\n    }\n    else if ((iVar2 == 0xd) && (sVar1 == 0xf)) {\n      return "PARISC_MILLI";\n    }" if (parenthesized_expression "(sVar1 == 0x28)" ( (binary_expression "sVar1 == 0x28" identifier == number_literal) )) (compound_statement "{\n      if (iVar2 == 0xd) {\n        return "THUMB_FUNC";\n      }\n    }" { (if_statement "if (iVar2 == 0xd) {\n        return "THUMB_FUNC";\n      }" if (parenthesized_expression "(iVar2 == 0xd)" ( (binary_expression "iVar2 == 0xd" identifier == number_literal) )) (compound_statement "{\n        return "THUMB_FUNC";\n      }" { (return_statement "return "THUMB_FUNC";" return (string_literal ""THUMB_FUNC"" " string_content ") ;) })) }) (else_clause "else if (sVar1 == 0x2b) {\n      if (iVar2 == 0xd) {\n        return "REGISTER";\n      }\n    }\n    else if ((iVar2 == 0xd) && (sVar1 == 0xf)) {\n      return "PARISC_MILLI";\n    }" else (if_statement "if (sVar1 == 0x2b) {\n      if (iVar2 == 0xd) {\n        return "REGISTER";\n      }\n    }\n    else if ((iVar2 == 0xd) && (sVar1 == 0xf)) {\n      return "PARISC_MILLI";\n    }" if (parenthesized_expression "(sVar1 == 0x2b)" ( (binary_expression "sVar1 == 0x2b" identifier == number_literal) )) (compound_statement "{\n      if (iVar2 == 0xd) {\n        return "REGISTER";\n      }\n    }" { (if_statement "if (iVar2 == 0xd) {\n        return "REGISTER";\n      }" if (parenthesized_expression "(iVar2 == 0xd)" ( (binary_expression "iVar2 == 0xd" identifier == number_literal) )) (compound_statement "{\n        return "REGISTER";\n      }" { (return_statement "return "REGISTER";" return (string_literal ""REGISTER"" " string_content ") ;) })) }) (else_clause "else if ((iVar2 == 0xd) && (sVar1 == 0xf)) {\n      return "PARISC_MILLI";\n    }" else (if_statement "if ((iVar2 == 0xd) && (sVar1 == 0xf)) {\n      return "PARISC_MILLI";\n    }" if (parenthesized_expression "((iVar2 == 0xd) && (sVar1 == 0xf))" ( (binary_expression "(iVar2 == 0xd) && (sVar1 == 0xf)" (parenthesized_expression "(iVar2 == 0xd)" ( (binary_expression "iVar2 == 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 "pcVar3 = "<processor specific>: %d";" (assignment_expression "pcVar3 = "<processor specific>: %d"" identifier = (string_literal ""<processor specific>: %d"" " string_content ")) ;) }) (else_clause "else if (iVar2 - 10U < 3) {\n    if (*(short *)CONCAT44(in_register_00000034,type) == 0xf) {\n      if (iVar2 == 0xb) {\n        return "HP_OPAQUE";\n      }\n      if (iVar2 == 0xc) {\n        return "HP_STUB";\n      }\n    }\n    if (((iVar2 == 10) && (*(byte *)&filedata->file_name < 10)) &&\n       ((0x209UL >> ((ulong)*(byte *)&filedata->file_name & 0x3f) & 1) != 0)) {\n      return "IFUNC";\n    }\n    pcVar3 = "<OS specific>: %d";\n  }\n  else {\n    pcVar3 = "<unknown>: %d";\n  }" else (if_statement "if (iVar2 - 10U < 3) {\n    if (*(short *)CONCAT44(in_register_00000034,type) == 0xf) {\n      if (iVar2 == 0xb) {\n        return "HP_OPAQUE";\n      }\n      if (iVar2 == 0xc) {\n        return "HP_STUB";\n      }\n    }\n    if (((iVar2 == 10) && (*(byte *)&filedata->file_name < 10)) &&\n       ((0x209UL >> ((ulong)*(byte *)&filedata->file_name & 0x3f) & 1) != 0)) {\n      return "IFUNC";\n    }\n    pcVar3 = "<OS specific>: %d";\n  }\n  else {\n    pcVar3 = "<unknown>: %d";\n  }" if (parenthesized_expression "(iVar2 - 10U < 3)" ( (binary_expression "iVar2 - 10U < 3" (binary_expression "iVar2 - 10U" identifier - number_literal) < number_literal) )) (compound_statement "{\n    if (*(short *)CONCAT44(in_register_00000034,type) == 0xf) {\n      if (iVar2 == 0xb) {\n        return "HP_OPAQUE";\n      }\n      if (iVar2 == 0xc) {\n        return "HP_STUB";\n      }\n    }\n    if (((iVar2 == 10) && (*(byte *)&filedata->file_name < 10)) &&\n       ((0x209UL >> ((ulong)*(byte *)&filedata->file_name & 0x3f) & 1) != 0)) {\n      return "IFUNC";\n    }\n    pcVar3 = "<OS specific>: %d";\n  }" { (if_statement "if (*(short *)CONCAT44(in_register_00000034,type) == 0xf) {\n      if (iVar2 == 0xb) {\n        return "HP_OPAQUE";\n      }\n      if (iVar2 == 0xc) {\n        return "HP_STUB";\n      }\n    }" if (parenthesized_expression "(*(short *)CONCAT44(in_register_00000034,type) == 0xf)" ( (binary_expression "*(short *)CONCAT44(in_register_00000034,type) == 0xf" (pointer_expression "*(short *)CONCAT44(in_register_00000034,type)" * (cast_expression "(short *)CONCAT44(in_register_00000034,type)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT44(in_register_00000034,type)" identifier (argument_list "(in_register_00000034,type)" ( identifier , identifier ))))) == number_literal) )) (compound_statement "{\n      if (iVar2 == 0xb) {\n        return "HP_OPAQUE";\n      }\n      if (iVar2 == 0xc) {\n        return "HP_STUB";\n      }\n    }" { (if_statement "if (iVar2 == 0xb) {\n        return "HP_OPAQUE";\n      }" if (parenthesized_expression "(iVar2 == 0xb)" ( (binary_expression "iVar2 == 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 (iVar2 == 0xc) {\n        return "HP_STUB";\n      }" if (parenthesized_expression "(iVar2 == 0xc)" ( (binary_expression "iVar2 == 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 (((iVar2 == 10) && (*(byte *)&filedata->file_name < 10)) &&\n       ((0x209UL >> ((ulong)*(byte *)&filedata->file_name & 0x3f) & 1) != 0)) {\n      return "IFUNC";\n    }" if (parenthesized_expression "(((iVar2 == 10) && (*(byte *)&filedata->file_name < 10)) &&\n       ((0x209UL >> ((ulong)*(byte *)&filedata->file_name & 0x3f) & 1) != 0))" ( (binary_expression "((iVar2 == 10) && (*(byte *)&filedata->file_name < 10)) &&\n       ((0x209UL >> ((ulong)*(byte *)&filedata->file_name & 0x3f) & 1) != 0)" (parenthesized_expression "((iVar2 == 10) && (*(byte *)&filedata->file_name < 10))" ( (binary_expression "(iVar2 == 10) && (*(byte *)&filedata->file_name < 10)" (parenthesized_expression "(iVar2 == 10)" ( (binary_expression "iVar2 == 10" identifier == 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 "((0x209UL >> ((ulong)*(byte *)&filedata->file_name & 0x3f) & 1) != 0)" ( (binary_expression "(0x209UL >> ((ulong)*(byte *)&filedata->file_name & 0x3f) & 1) != 0" (parenthesized_expression "(0x209UL >> ((ulong)*(byte *)&filedata->file_name & 0x3f) & 1)" ( (binary_expression "0x209UL >> ((ulong)*(byte *)&filedata->file_name & 0x3f) & 1" (binary_expression "0x209UL >> ((ulong)*(byte *)&filedata->file_name & 0x3f)" number_literal >> (parenthesized_expression "((ulong)*(byte *)&filedata->file_name & 0x3f)" ( (binary_expression "(ulong)*(byte *)&filedata->file_name & 0x3f" (binary_expression "(ulong)*(byte *)&filedata->file_name" (parenthesized_expression "(ulong)" ( identifier )) * (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 "snprintf(buff_19080,0x20,pcVar3,(ulong)filedata_1 & 0xffffffff);" (call_expression "snprintf(buff_19080,0x20,pcVar3,(ulong)filedata_1 & 0xffffffff)" identifier (argument_list "(buff_19080,0x20,pcVar3,(ulong)filedata_1 & 0xffffffff)" ( identifier , number_literal , identifier , (binary_expression "(ulong)filedata_1 & 0xffffffff" (cast_expression "(ulong)filedata_1" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) ))) ;) (return_statement "return buff_19080;" return identifier ;) })))
(translation_unit "char * FUN_001171e0(byte *param_1,short *param_2,uint param_3)\n\n{\n  short sVar1;\n  char *pcVar2;\n  \n  switch(param_3) {\n  case 0:\n    return "NOTYPE";\n  case 1:\n    return "OBJECT";\n  case 2:\n    return "FUNC";\n  case 3:\n    return "SECTION";\n  case 4:\n    return "FILE";\n  case 5:\n    return "COMMON";\n  case 6:\n    return "TLS";\n  case 8:\n    return "RELC";\n  case 9:\n    return "SRELC";\n  }\n  if (param_3 - 0xd < 3) {\n    sVar1 = *param_2;\n    if (sVar1 == 0x28) {\n      if (param_3 == 0xd) {\n        return "THUMB_FUNC";\n      }\n    }\n    else if (sVar1 == 0x2b) {\n      if (param_3 == 0xd) {\n        return "REGISTER";\n      }\n    }\n    else if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n      return "PARISC_MILLI";\n    }\n    pcVar2 = "<processor specific>: %d";\n  }\n  else if (param_3 - 10 < 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)) && ((0x209UL >> ((ulong)*param_1 & 0x3f) & 1) != 0)) {\n      return "IFUNC";\n    }\n    pcVar2 = "<OS specific>: %d";\n  }\n  else {\n    pcVar2 = "<unknown>: %d";\n  }\n  pcVar2 = (char *)dcgettext(0,pcVar2,5);\n  snprintf(&DAT_00192d80,0x20,pcVar2,(ulong)param_3);\n  return &DAT_00192d80;\n}\n\n" (function_definition "char * FUN_001171e0(byte *param_1,short *param_2,uint param_3)\n\n{\n  short sVar1;\n  char *pcVar2;\n  \n  switch(param_3) {\n  case 0:\n    return "NOTYPE";\n  case 1:\n    return "OBJECT";\n  case 2:\n    return "FUNC";\n  case 3:\n    return "SECTION";\n  case 4:\n    return "FILE";\n  case 5:\n    return "COMMON";\n  case 6:\n    return "TLS";\n  case 8:\n    return "RELC";\n  case 9:\n    return "SRELC";\n  }\n  if (param_3 - 0xd < 3) {\n    sVar1 = *param_2;\n    if (sVar1 == 0x28) {\n      if (param_3 == 0xd) {\n        return "THUMB_FUNC";\n      }\n    }\n    else if (sVar1 == 0x2b) {\n      if (param_3 == 0xd) {\n        return "REGISTER";\n      }\n    }\n    else if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n      return "PARISC_MILLI";\n    }\n    pcVar2 = "<processor specific>: %d";\n  }\n  else if (param_3 - 10 < 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)) && ((0x209UL >> ((ulong)*param_1 & 0x3f) & 1) != 0)) {\n      return "IFUNC";\n    }\n    pcVar2 = "<OS specific>: %d";\n  }\n  else {\n    pcVar2 = "<unknown>: %d";\n  }\n  pcVar2 = (char *)dcgettext(0,pcVar2,5);\n  snprintf(&DAT_00192d80,0x20,pcVar2,(ulong)param_3);\n  return &DAT_00192d80;\n}" primitive_type (pointer_declarator "* FUN_001171e0(byte *param_1,short *param_2,uint param_3)" * (function_declarator "FUN_001171e0(byte *param_1,short *param_2,uint param_3)" identifier (parameter_list "(byte *param_1,short *param_2,uint 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 "uint param_3" type_identifier identifier) )))) (compound_statement "{\n  short sVar1;\n  char *pcVar2;\n  \n  switch(param_3) {\n  case 0:\n    return "NOTYPE";\n  case 1:\n    return "OBJECT";\n  case 2:\n    return "FUNC";\n  case 3:\n    return "SECTION";\n  case 4:\n    return "FILE";\n  case 5:\n    return "COMMON";\n  case 6:\n    return "TLS";\n  case 8:\n    return "RELC";\n  case 9:\n    return "SRELC";\n  }\n  if (param_3 - 0xd < 3) {\n    sVar1 = *param_2;\n    if (sVar1 == 0x28) {\n      if (param_3 == 0xd) {\n        return "THUMB_FUNC";\n      }\n    }\n    else if (sVar1 == 0x2b) {\n      if (param_3 == 0xd) {\n        return "REGISTER";\n      }\n    }\n    else if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n      return "PARISC_MILLI";\n    }\n    pcVar2 = "<processor specific>: %d";\n  }\n  else if (param_3 - 10 < 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)) && ((0x209UL >> ((ulong)*param_1 & 0x3f) & 1) != 0)) {\n      return "IFUNC";\n    }\n    pcVar2 = "<OS specific>: %d";\n  }\n  else {\n    pcVar2 = "<unknown>: %d";\n  }\n  pcVar2 = (char *)dcgettext(0,pcVar2,5);\n  snprintf(&DAT_00192d80,0x20,pcVar2,(ulong)param_3);\n  return &DAT_00192d80;\n}" { (declaration "short sVar1;" (sized_type_specifier "short" short) identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (switch_statement "switch(param_3) {\n  case 0:\n    return "NOTYPE";\n  case 1:\n    return "OBJECT";\n  case 2:\n    return "FUNC";\n  case 3:\n    return "SECTION";\n  case 4:\n    return "FILE";\n  case 5:\n    return "COMMON";\n  case 6:\n    return "TLS";\n  case 8:\n    return "RELC";\n  case 9:\n    return "SRELC";\n  }" switch (parenthesized_expression "(param_3)" ( identifier )) (compound_statement "{\n  case 0:\n    return "NOTYPE";\n  case 1:\n    return "OBJECT";\n  case 2:\n    return "FUNC";\n  case 3:\n    return "SECTION";\n  case 4:\n    return "FILE";\n  case 5:\n    return "COMMON";\n  case 6:\n    return "TLS";\n  case 8:\n    return "RELC";\n  case 9:\n    return "SRELC";\n  }" { (case_statement "case 0:\n    return "NOTYPE";" case number_literal : (return_statement "return "NOTYPE";" return (string_literal ""NOTYPE"" " string_content ") ;)) (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    return "FUNC";" case number_literal : (return_statement "return "FUNC";" return (string_literal ""FUNC"" " string_content ") ;)) (case_statement "case 3:\n    return "SECTION";" case number_literal : (return_statement "return "SECTION";" return (string_literal ""SECTION"" " string_content ") ;)) (case_statement "case 4:\n    return "FILE";" case number_literal : (return_statement "return "FILE";" return (string_literal ""FILE"" " string_content ") ;)) (case_statement "case 5:\n    return "COMMON";" case number_literal : (return_statement "return "COMMON";" return (string_literal ""COMMON"" " string_content ") ;)) (case_statement "case 6:\n    return "TLS";" case number_literal : (return_statement "return "TLS";" return (string_literal ""TLS"" " string_content ") ;)) (case_statement "case 8:\n    return "RELC";" case number_literal : (return_statement "return "RELC";" return (string_literal ""RELC"" " string_content ") ;)) (case_statement "case 9:\n    return "SRELC";" case number_literal : (return_statement "return "SRELC";" return (string_literal ""SRELC"" " string_content ") ;)) })) (if_statement "if (param_3 - 0xd < 3) {\n    sVar1 = *param_2;\n    if (sVar1 == 0x28) {\n      if (param_3 == 0xd) {\n        return "THUMB_FUNC";\n      }\n    }\n    else if (sVar1 == 0x2b) {\n      if (param_3 == 0xd) {\n        return "REGISTER";\n      }\n    }\n    else if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n      return "PARISC_MILLI";\n    }\n    pcVar2 = "<processor specific>: %d";\n  }\n  else if (param_3 - 10 < 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)) && ((0x209UL >> ((ulong)*param_1 & 0x3f) & 1) != 0)) {\n      return "IFUNC";\n    }\n    pcVar2 = "<OS specific>: %d";\n  }\n  else {\n    pcVar2 = "<unknown>: %d";\n  }" if (parenthesized_expression "(param_3 - 0xd < 3)" ( (binary_expression "param_3 - 0xd < 3" (binary_expression "param_3 - 0xd" identifier - number_literal) < number_literal) )) (compound_statement "{\n    sVar1 = *param_2;\n    if (sVar1 == 0x28) {\n      if (param_3 == 0xd) {\n        return "THUMB_FUNC";\n      }\n    }\n    else if (sVar1 == 0x2b) {\n      if (param_3 == 0xd) {\n        return "REGISTER";\n      }\n    }\n    else if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n      return "PARISC_MILLI";\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      if (param_3 == 0xd) {\n        return "THUMB_FUNC";\n      }\n    }\n    else if (sVar1 == 0x2b) {\n      if (param_3 == 0xd) {\n        return "REGISTER";\n      }\n    }\n    else if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n      return "PARISC_MILLI";\n    }" if (parenthesized_expression "(sVar1 == 0x28)" ( (binary_expression "sVar1 == 0x28" identifier == number_literal) )) (compound_statement "{\n      if (param_3 == 0xd) {\n        return "THUMB_FUNC";\n      }\n    }" { (if_statement "if (param_3 == 0xd) {\n        return "THUMB_FUNC";\n      }" if (parenthesized_expression "(param_3 == 0xd)" ( (binary_expression "param_3 == 0xd" identifier == number_literal) )) (compound_statement "{\n        return "THUMB_FUNC";\n      }" { (return_statement "return "THUMB_FUNC";" return (string_literal ""THUMB_FUNC"" " string_content ") ;) })) }) (else_clause "else if (sVar1 == 0x2b) {\n      if (param_3 == 0xd) {\n        return "REGISTER";\n      }\n    }\n    else if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n      return "PARISC_MILLI";\n    }" else (if_statement "if (sVar1 == 0x2b) {\n      if (param_3 == 0xd) {\n        return "REGISTER";\n      }\n    }\n    else if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n      return "PARISC_MILLI";\n    }" if (parenthesized_expression "(sVar1 == 0x2b)" ( (binary_expression "sVar1 == 0x2b" identifier == number_literal) )) (compound_statement "{\n      if (param_3 == 0xd) {\n        return "REGISTER";\n      }\n    }" { (if_statement "if (param_3 == 0xd) {\n        return "REGISTER";\n      }" if (parenthesized_expression "(param_3 == 0xd)" ( (binary_expression "param_3 == 0xd" identifier == number_literal) )) (compound_statement "{\n        return "REGISTER";\n      }" { (return_statement "return "REGISTER";" return (string_literal ""REGISTER"" " string_content ") ;) })) }) (else_clause "else if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n      return "PARISC_MILLI";\n    }" else (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 - 10 < 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)) && ((0x209UL >> ((ulong)*param_1 & 0x3f) & 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 - 10 < 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)) && ((0x209UL >> ((ulong)*param_1 & 0x3f) & 1) != 0)) {\n      return "IFUNC";\n    }\n    pcVar2 = "<OS specific>: %d";\n  }\n  else {\n    pcVar2 = "<unknown>: %d";\n  }" if (parenthesized_expression "(param_3 - 10 < 3)" ( (binary_expression "param_3 - 10 < 3" (binary_expression "param_3 - 10" 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)) && ((0x209UL >> ((ulong)*param_1 & 0x3f) & 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)) && ((0x209UL >> ((ulong)*param_1 & 0x3f) & 1) != 0)) {\n      return "IFUNC";\n    }" if (parenthesized_expression "(((param_3 == 10) && (*param_1 < 10)) && ((0x209UL >> ((ulong)*param_1 & 0x3f) & 1) != 0))" ( (binary_expression "((param_3 == 10) && (*param_1 < 10)) && ((0x209UL >> ((ulong)*param_1 & 0x3f) & 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 "((0x209UL >> ((ulong)*param_1 & 0x3f) & 1) != 0)" ( (binary_expression "(0x209UL >> ((ulong)*param_1 & 0x3f) & 1) != 0" (parenthesized_expression "(0x209UL >> ((ulong)*param_1 & 0x3f) & 1)" ( (binary_expression "0x209UL >> ((ulong)*param_1 & 0x3f) & 1" (binary_expression "0x209UL >> ((ulong)*param_1 & 0x3f)" number_literal >> (parenthesized_expression "((ulong)*param_1 & 0x3f)" ( (binary_expression "(ulong)*param_1 & 0x3f" (binary_expression "(ulong)*param_1" (parenthesized_expression "(ulong)" ( identifier )) * 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 "pcVar2 = (char *)dcgettext(0,pcVar2,5);" (assignment_expression "pcVar2 = (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 "snprintf(&DAT_00192d80,0x20,pcVar2,(ulong)param_3);" (call_expression "snprintf(&DAT_00192d80,0x20,pcVar2,(ulong)param_3)" identifier (argument_list "(&DAT_00192d80,0x20,pcVar2,(ulong)param_3)" ( (pointer_expression "&DAT_00192d80" & identifier) , number_literal , identifier , (cast_expression "(ulong)param_3" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) (return_statement "return &DAT_00192d80;" return (pointer_expression "&DAT_00192d80" & identifier) ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (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) ;) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT : (return_statement return (string_literal " string_content ") ;)) (case_statement case LIT : (return_statement return (string_literal " string_content ") ;)) (case_statement case LIT : (return_statement return (string_literal " string_content ") ;)) (case_statement case LIT : (return_statement return (string_literal " string_content ") ;)) (case_statement case LIT : (return_statement return (string_literal " string_content ") ;)) (case_statement case LIT : (return_statement return (string_literal " string_content ") ;)) (case_statement case LIT : (return_statement return (string_literal " string_content ") ;)) (case_statement case LIT : (return_statement return (string_literal " string_content ") ;)) (case_statement case LIT : (return_statement return (string_literal " string_content ") ;)) })) (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 { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return (string_literal " string_content ") ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return (string_literal " string_content ") ;) })) }) (else_clause else (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 (binary_expression (parenthesized_expression ( IDENT )) * 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 (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;) (return_statement return (pointer_expression & IDENT) ;) })))
(function_definition "char * FUN_001171e0(byte *param_1,short *param_2,uint param_3)\n\n{\n  short sVar1;\n  char *pcVar2;\n  \n  switch(param_3) {\n  case 0:\n    return "NOTYPE";\n  case 1:\n    return "OBJECT";\n  case 2:\n    return "FUNC";\n  case 3:\n    return "SECTION";\n  case 4:\n    return "FILE";\n  case 5:\n    return "COMMON";\n  case 6:\n    return "TLS";\n  case 8:\n    return "RELC";\n  case 9:\n    return "SRELC";\n  }\n  if (param_3 - 0xd < 3) {\n    sVar1 = *param_2;\n    if (sVar1 == 0x28) {\n      if (param_3 == 0xd) {\n        return "THUMB_FUNC";\n      }\n    }\n    else if (sVar1 == 0x2b) {\n      if (param_3 == 0xd) {\n        return "REGISTER";\n      }\n    }\n    else if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n      return "PARISC_MILLI";\n    }\n    pcVar2 = "<processor specific>: %d";\n  }\n  else if (param_3 - 10 < 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)) && ((0x209UL >> ((ulong)*param_1 & 0x3f) & 1) != 0)) {\n      return "IFUNC";\n    }\n    pcVar2 = "<OS specific>: %d";\n  }\n  else {\n    pcVar2 = "<unknown>: %d";\n  }\n  pcVar2 = (char *)dcgettext(0,pcVar2,5);\n  snprintf(&DAT_00192d80,0x20,pcVar2,(ulong)param_3);\n  return &DAT_00192d80;\n}" (primitive_type "char") (pointer_declarator "* FUN_001171e0(byte *param_1,short *param_2,uint param_3)" (* "*") (function_declarator "FUN_001171e0(byte *param_1,short *param_2,uint param_3)" (identifier "FUN_001171e0") (parameter_list "(byte *param_1,short *param_2,uint 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 "uint param_3" (type_identifier "uint") (identifier "param_3")) () ")")))) (compound_statement "{\n  short sVar1;\n  char *pcVar2;\n  \n  switch(param_3) {\n  case 0:\n    return "NOTYPE";\n  case 1:\n    return "OBJECT";\n  case 2:\n    return "FUNC";\n  case 3:\n    return "SECTION";\n  case 4:\n    return "FILE";\n  case 5:\n    return "COMMON";\n  case 6:\n    return "TLS";\n  case 8:\n    return "RELC";\n  case 9:\n    return "SRELC";\n  }\n  if (param_3 - 0xd < 3) {\n    sVar1 = *param_2;\n    if (sVar1 == 0x28) {\n      if (param_3 == 0xd) {\n        return "THUMB_FUNC";\n      }\n    }\n    else if (sVar1 == 0x2b) {\n      if (param_3 == 0xd) {\n        return "REGISTER";\n      }\n    }\n    else if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n      return "PARISC_MILLI";\n    }\n    pcVar2 = "<processor specific>: %d";\n  }\n  else if (param_3 - 10 < 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)) && ((0x209UL >> ((ulong)*param_1 & 0x3f) & 1) != 0)) {\n      return "IFUNC";\n    }\n    pcVar2 = "<OS specific>: %d";\n  }\n  else {\n    pcVar2 = "<unknown>: %d";\n  }\n  pcVar2 = (char *)dcgettext(0,pcVar2,5);\n  snprintf(&DAT_00192d80,0x20,pcVar2,(ulong)param_3);\n  return &DAT_00192d80;\n}" ({ "{") (declaration "short sVar1;" (sized_type_specifier "short" (short "short")) (identifier "sVar1") (; ";")) (declaration "char *pcVar2;" (primitive_type "char") (pointer_declarator "*pcVar2" (* "*") (identifier "pcVar2")) (; ";")) (switch_statement "switch(param_3) {\n  case 0:\n    return "NOTYPE";\n  case 1:\n    return "OBJECT";\n  case 2:\n    return "FUNC";\n  case 3:\n    return "SECTION";\n  case 4:\n    return "FILE";\n  case 5:\n    return "COMMON";\n  case 6:\n    return "TLS";\n  case 8:\n    return "RELC";\n  case 9:\n    return "SRELC";\n  }" (switch "switch") (parenthesized_expression "(param_3)" (( "(") (identifier "param_3") () ")")) (compound_statement "{\n  case 0:\n    return "NOTYPE";\n  case 1:\n    return "OBJECT";\n  case 2:\n    return "FUNC";\n  case 3:\n    return "SECTION";\n  case 4:\n    return "FILE";\n  case 5:\n    return "COMMON";\n  case 6:\n    return "TLS";\n  case 8:\n    return "RELC";\n  case 9:\n    return "SRELC";\n  }" ({ "{") (case_statement "case 0:\n    return "NOTYPE";" (case "case") (number_literal "0") (: ":") (return_statement "return "NOTYPE";" (return "return") (string_literal ""NOTYPE"" (" """) (string_content "NOTYPE") (" """)) (; ";"))) (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    return "FUNC";" (case "case") (number_literal "2") (: ":") (return_statement "return "FUNC";" (return "return") (string_literal ""FUNC"" (" """) (string_content "FUNC") (" """)) (; ";"))) (case_statement "case 3:\n    return "SECTION";" (case "case") (number_literal "3") (: ":") (return_statement "return "SECTION";" (return "return") (string_literal ""SECTION"" (" """) (string_content "SECTION") (" """)) (; ";"))) (case_statement "case 4:\n    return "FILE";" (case "case") (number_literal "4") (: ":") (return_statement "return "FILE";" (return "return") (string_literal ""FILE"" (" """) (string_content "FILE") (" """)) (; ";"))) (case_statement "case 5:\n    return "COMMON";" (case "case") (number_literal "5") (: ":") (return_statement "return "COMMON";" (return "return") (string_literal ""COMMON"" (" """) (string_content "COMMON") (" """)) (; ";"))) (case_statement "case 6:\n    return "TLS";" (case "case") (number_literal "6") (: ":") (return_statement "return "TLS";" (return "return") (string_literal ""TLS"" (" """) (string_content "TLS") (" """)) (; ";"))) (case_statement "case 8:\n    return "RELC";" (case "case") (number_literal "8") (: ":") (return_statement "return "RELC";" (return "return") (string_literal ""RELC"" (" """) (string_content "RELC") (" """)) (; ";"))) (case_statement "case 9:\n    return "SRELC";" (case "case") (number_literal "9") (: ":") (return_statement "return "SRELC";" (return "return") (string_literal ""SRELC"" (" """) (string_content "SRELC") (" """)) (; ";"))) (} "}"))) (if_statement "if (param_3 - 0xd < 3) {\n    sVar1 = *param_2;\n    if (sVar1 == 0x28) {\n      if (param_3 == 0xd) {\n        return "THUMB_FUNC";\n      }\n    }\n    else if (sVar1 == 0x2b) {\n      if (param_3 == 0xd) {\n        return "REGISTER";\n      }\n    }\n    else if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n      return "PARISC_MILLI";\n    }\n    pcVar2 = "<processor specific>: %d";\n  }\n  else if (param_3 - 10 < 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)) && ((0x209UL >> ((ulong)*param_1 & 0x3f) & 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 - 0xd < 3)" (( "(") (binary_expression "param_3 - 0xd < 3" (binary_expression "param_3 - 0xd" (identifier "param_3") (- "-") (number_literal "0xd")) (< "<") (number_literal "3")) () ")")) (compound_statement "{\n    sVar1 = *param_2;\n    if (sVar1 == 0x28) {\n      if (param_3 == 0xd) {\n        return "THUMB_FUNC";\n      }\n    }\n    else if (sVar1 == 0x2b) {\n      if (param_3 == 0xd) {\n        return "REGISTER";\n      }\n    }\n    else if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n      return "PARISC_MILLI";\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      if (param_3 == 0xd) {\n        return "THUMB_FUNC";\n      }\n    }\n    else if (sVar1 == 0x2b) {\n      if (param_3 == 0xd) {\n        return "REGISTER";\n      }\n    }\n    else if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n      return "PARISC_MILLI";\n    }" (if "if") (parenthesized_expression "(sVar1 == 0x28)" (( "(") (binary_expression "sVar1 == 0x28" (identifier "sVar1") (== "==") (number_literal "0x28")) () ")")) (compound_statement "{\n      if (param_3 == 0xd) {\n        return "THUMB_FUNC";\n      }\n    }" ({ "{") (if_statement "if (param_3 == 0xd) {\n        return "THUMB_FUNC";\n      }" (if "if") (parenthesized_expression "(param_3 == 0xd)" (( "(") (binary_expression "param_3 == 0xd" (identifier "param_3") (== "==") (number_literal "0xd")) () ")")) (compound_statement "{\n        return "THUMB_FUNC";\n      }" ({ "{") (return_statement "return "THUMB_FUNC";" (return "return") (string_literal ""THUMB_FUNC"" (" """) (string_content "THUMB_FUNC") (" """)) (; ";")) (} "}"))) (} "}")) (else_clause "else if (sVar1 == 0x2b) {\n      if (param_3 == 0xd) {\n        return "REGISTER";\n      }\n    }\n    else if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n      return "PARISC_MILLI";\n    }" (else "else") (if_statement "if (sVar1 == 0x2b) {\n      if (param_3 == 0xd) {\n        return "REGISTER";\n      }\n    }\n    else if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n      return "PARISC_MILLI";\n    }" (if "if") (parenthesized_expression "(sVar1 == 0x2b)" (( "(") (binary_expression "sVar1 == 0x2b" (identifier "sVar1") (== "==") (number_literal "0x2b")) () ")")) (compound_statement "{\n      if (param_3 == 0xd) {\n        return "REGISTER";\n      }\n    }" ({ "{") (if_statement "if (param_3 == 0xd) {\n        return "REGISTER";\n      }" (if "if") (parenthesized_expression "(param_3 == 0xd)" (( "(") (binary_expression "param_3 == 0xd" (identifier "param_3") (== "==") (number_literal "0xd")) () ")")) (compound_statement "{\n        return "REGISTER";\n      }" ({ "{") (return_statement "return "REGISTER";" (return "return") (string_literal ""REGISTER"" (" """) (string_content "REGISTER") (" """)) (; ";")) (} "}"))) (} "}")) (else_clause "else if ((param_3 == 0xd) && (sVar1 == 0xf)) {\n      return "PARISC_MILLI";\n    }" (else "else") (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 - 10 < 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)) && ((0x209UL >> ((ulong)*param_1 & 0x3f) & 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 - 10 < 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)) && ((0x209UL >> ((ulong)*param_1 & 0x3f) & 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 - 10 < 3)" (( "(") (binary_expression "param_3 - 10 < 3" (binary_expression "param_3 - 10" (identifier "param_3") (- "-") (number_literal "10")) (< "<") (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)) && ((0x209UL >> ((ulong)*param_1 & 0x3f) & 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)) && ((0x209UL >> ((ulong)*param_1 & 0x3f) & 1) != 0)) {\n      return "IFUNC";\n    }" (if "if") (parenthesized_expression "(((param_3 == 10) && (*param_1 < 10)) && ((0x209UL >> ((ulong)*param_1 & 0x3f) & 1) != 0))" (( "(") (binary_expression "((param_3 == 10) && (*param_1 < 10)) && ((0x209UL >> ((ulong)*param_1 & 0x3f) & 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 "((0x209UL >> ((ulong)*param_1 & 0x3f) & 1) != 0)" (( "(") (binary_expression "(0x209UL >> ((ulong)*param_1 & 0x3f) & 1) != 0" (parenthesized_expression "(0x209UL >> ((ulong)*param_1 & 0x3f) & 1)" (( "(") (binary_expression "0x209UL >> ((ulong)*param_1 & 0x3f) & 1" (binary_expression "0x209UL >> ((ulong)*param_1 & 0x3f)" (number_literal "0x209UL") (>> ">>") (parenthesized_expression "((ulong)*param_1 & 0x3f)" (( "(") (binary_expression "(ulong)*param_1 & 0x3f" (binary_expression "(ulong)*param_1" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (identifier "param_1")) (& "&") (number_literal "0x3f")) () ")"))) (& "&") (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 "pcVar2 = (char *)dcgettext(0,pcVar2,5);" (assignment_expression "pcVar2 = (char *)dcgettext(0,pcVar2,5)" (identifier "pcVar2") (= "=") (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 "snprintf(&DAT_00192d80,0x20,pcVar2,(ulong)param_3);" (call_expression "snprintf(&DAT_00192d80,0x20,pcVar2,(ulong)param_3)" (identifier "snprintf") (argument_list "(&DAT_00192d80,0x20,pcVar2,(ulong)param_3)" (( "(") (pointer_expression "&DAT_00192d80" (& "&") (identifier "DAT_00192d80")) (, ",") (number_literal "0x20") (, ",") (identifier "pcVar2") (, ",") (cast_expression "(ulong)param_3" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "param_3")) () ")"))) (; ";")) (return_statement "return &DAT_00192d80;" (return "return") (pointer_expression "&DAT_00192d80" (& "&") (identifier "DAT_00192d80")) (; ";")) (} "}")))

/* DWARF original prototype: char * get_symbol_type(Filedata * filedata, uint type, Filedata *
   filedata) */

char * function_1(type_1 *filedata,type_2 type,type_1 *filedata_1)

{
  short var_3;
  int var_1;
  type_3 in_register_00000034;
  char *pcVar3;
  
  var_1 = (int)filedata_1;
  switch((type_4)filedata_1 & 0xffffffff) {
  case 0:
    return "NOTYPE";
  case 1:
    return "OBJECT";
  case 2:
    return "FUNC";
  case 3:
    return "SECTION";
  case 4:
    return "FILE";
  case 5:
    return "COMMON";
  case 6:
    return "TLS";
  case 8:
    return "RELC";
  case 9:
    return "SRELC";
  }
  if (var_1 - 0xdU < 3) {
    var_3 = *(short *)var_2(in_register_00000034,type);
    if (var_3 == 0x28) {
      if (var_1 == 0xd) {
        return "THUMB_FUNC";
      }
    }
    else if (var_3 == 0x2b) {
      if (var_1 == 0xd) {
        return "REGISTER";
      }
    }
    else if ((var_1 == 0xd) && (var_3 == 0xf)) {
      return "PARISC_MILLI";
    }
    pcVar3 = "<processor specific>: %d";
  }
  else if (var_1 - 10U < 3) {
    if (*(short *)var_2(in_register_00000034,type) == 0xf) {
      if (var_1 == 0xb) {
        return "HP_OPAQUE";
      }
      if (var_1 == 0xc) {
        return "HP_STUB";
      }
    }
    if (((var_1 == 10) && (*(type_5 *)&filedata->file_name < 10)) &&
       ((0x209UL >> ((type_4)*(type_5 *)&filedata->file_name & 0x3f) & 1) != 0)) {
      return "IFUNC";
    }
    pcVar3 = "<OS specific>: %d";
  }
  else {
    pcVar3 = "<unknown>: %d";
  }
  pcVar3 = (char *)var_4(0,pcVar3,5);
  var_5(buff_19080,0x20,pcVar3,(type_4)filedata_1 & 0xffffffff);
  return buff_19080;
}


(translation_unit (function_definition type: (primitive_type) declarator: (pointer_declarator 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: (type_identifier) declarator: (identifier))))) body: (compound_statement (declaration type: (sized_type_specifier) 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) (return_statement (string_literal (string_content)))) (case_statement value: (number_literal) (return_statement (string_literal (string_content)))) (case_statement value: (number_literal) (return_statement (string_literal (string_content)))) (case_statement value: (number_literal) (return_statement (string_literal (string_content)))) (case_statement value: (number_literal) (return_statement (string_literal (string_content)))) (case_statement value: (number_literal) (return_statement (string_literal (string_content)))) (case_statement value: (number_literal) (return_statement (string_literal (string_content)))) (case_statement value: (number_literal) (return_statement (string_literal (string_content)))) (case_statement value: (number_literal) (return_statement (string_literal (string_content)))))) (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 (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (string_literal (string_content)))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (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)))))) alternative: (else_clause (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: (binary_expression left: (parenthesized_expression (identifier)) right: (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 (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (number_literal) (identifier) (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (return_statement (pointer_expression argument: (identifier))))))

char * MASKED(byte *param_1,short *param_2,uint param_3)

{
  short sVar1;
  char *pcVar2;
  
  switch(param_3) {
  case 0:
    return "NOTYPE";
  case 1:
    return "OBJECT";
  case 2:
    return "FUNC";
  case 3:
    return "SECTION";
  case 4:
    return "FILE";
  case 5:
    return "COMMON";
  case 6:
    return "TLS";
  case 8:
    return "RELC";
  case 9:
    return "SRELC";
  }
  if (param_3 - 0xd < 3) {
    sVar1 = *param_2;
    if (sVar1 == 0x28) {
      if (param_3 == 0xd) {
        return "THUMB_FUNC";
      }
    }
    else if (sVar1 == 0x2b) {
      if (param_3 == 0xd) {
        return "REGISTER";
      }
    }
    else if ((param_3 == 0xd) && (sVar1 == 0xf)) {
      return "PARISC_MILLI";
    }
    pcVar2 = "<processor specific>: %d";
  }
  else if (param_3 - 10 < 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)) && ((0x209UL >> ((ulong)*param_1 & 0x3f) & 1) != 0)) {
      return "IFUNC";
    }
    pcVar2 = "<OS specific>: %d";
  }
  else {
    pcVar2 = "<unknown>: %d";
  }
  pcVar2 = (char *)dcgettext(0,pcVar2,5);
  snprintf(&DAT_00192d80,0x20,pcVar2,(ulong)param_3);
  return &DAT_00192d80;
}

