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

uchar * display_arc_attribute(uchar *p,uchar *end)

{
  uint uVar1;
  int iVar2;
  undefined *puVar3;
  undefined4 uVar4;
  char *pcVar5;
  uchar *puVar6;
  dwarf_vma dVar7;
  uint len;
  undefined4 uStack_14;
  
  uStack_14 = 0x218e9;
  dVar7 = read_leb128(p,&len,0,end);
  uVar1 = (uint)dVar7;
  puVar6 = p + len;
  switch(uVar1) {
  case 4:
    dVar7 = read_leb128(puVar6,&len,0,end);
    puVar6 = puVar6 + len;
    printf("  Tag_ARC_PCS_config: ");
    switch((int)dVar7) {
    case 0:
      pcVar5 = "Absent/Non standard\n";
      break;
    case 1:
      pcVar5 = "Bare metal/mwdt\n";
      break;
    case 2:
      pcVar5 = "Bare metal/newlib\n";
      break;
    case 3:
      pcVar5 = "Linux/uclibc\n";
      break;
    case 4:
      pcVar5 = "Linux/glibc\n";
      break;
    default:
switchD_000219be_caseD_5:
      pcVar5 = "Unknown\n";
    }
    goto LAB_00021cab;
  case 5:
    dVar7 = read_leb128(puVar6,&len,0,end);
    uVar1 = (uint)dVar7;
    puVar6 = puVar6 + len;
    printf("  Tag_ARC_CPU_base: ");
    if (uVar1 == 2) {
      puts("ARC7xx");
      return puVar6;
    }
    if (uVar1 < 3) {
      if (uVar1 == 1) {
        puts("ARC6xx");
        return puVar6;
      }
    }
    else {
      if (uVar1 == 3) {
        puts("ARCEM");
        return puVar6;
      }
      if (uVar1 == 4) {
        puts("ARCHS");
        return puVar6;
      }
    }
    goto LAB_00021ca0;
  case 6:
    dVar7 = read_leb128(puVar6,&len,0,end);
    iVar2 = (int)dVar7;
    puVar6 = puVar6 + len;
    printf("  Tag_ARC_CPU_variation: ");
    if (iVar2 != 0) {
      if (iVar2 - 1U < 0xf) {
        printf("Core%d\n",iVar2);
        return puVar6;
      }
      puts("Unknown");
      return puVar6;
    }
    goto LAB_00021ca0;
  case 7:
    pcVar5 = "  Tag_ARC_CPU_name: ";
    goto LAB_00021939;
  case 8:
    dVar7 = read_leb128(puVar6,&len,0,end);
    puVar6 = puVar6 + len;
    if ((int)dVar7 == 0) {
      uVar4 = dcgettext(0,&DAT_00077071,5);
    }
    else {
      uVar4 = dcgettext(0,&DAT_0007706d,5);
    }
    printf("  Tag_ARC_ABI_rf16: %s\n",uVar4);
    break;
  case 9:
    dVar7 = read_leb128(puVar6,&len,0,end);
    puVar6 = puVar6 + len;
    printf("  Tag_ARC_ABI_osver: v%d\n",(int)dVar7);
    break;
  case 10:
  case 0xb:
    dVar7 = read_leb128(puVar6,&len,0,end);
    iVar2 = (int)dVar7;
    puVar6 = puVar6 + len;
    pcVar5 = "  Tag_ARC_ABI_sda: ";
    if (uVar1 != 10) {
      pcVar5 = "  Tag_ARC_ABI_pic: ";
    }
    printf(pcVar5);
    if (iVar2 == 1) {
      puts("MWDT");
      return puVar6;
    }
    if (iVar2 != 0) {
      if (iVar2 == 2) {
        puts("GNU");
        return puVar6;
      }
      goto switchD_000219be_caseD_5;
    }
LAB_00021ca0:
    pcVar5 = "Absent\n";
LAB_00021cab:
    pcVar5 = (char *)dcgettext(0,pcVar5,5);
    printf(pcVar5);
    return puVar6;
  case 0xc:
    dVar7 = read_leb128(puVar6,&len,0,end);
    puVar6 = puVar6 + len;
    puVar3 = &DAT_00076f7f;
    if ((int)dVar7 == 0) {
      puVar3 = &DAT_00076af8;
    }
    printf("  Tag_ARC_ABI_tls: %s\n",puVar3);
    break;
  case 0xd:
    dVar7 = read_leb128(puVar6,&len,0,end);
    puVar6 = puVar6 + len;
    if ((int)dVar7 == 0) {
      uVar4 = dcgettext(0,"smallest",5);
    }
    else {
      uVar4 = dcgettext(0,"default",5);
    }
    printf("  Tag_ARC_ABI_enumsize: %s\n",uVar4);
    break;
  case 0xe:
    dVar7 = read_leb128(puVar6,&len,0,end);
    puVar6 = puVar6 + len;
    if ((int)dVar7 == 0) {
      uVar4 = dcgettext(0,"default",5);
    }
    else {
      uVar4 = dcgettext(0,"OPTFP",5);
    }
    printf("  Tag_ARC_ABI_exceptions: %s\n",uVar4);
    break;
  case 0xf:
    dVar7 = read_leb128(puVar6,&len,0,end);
    puVar6 = puVar6 + len;
    printf("  Tag_ARC_ABI_double_size: %d\n",(int)dVar7);
    break;
  case 0x10:
    pcVar5 = "  Tag_ARC_ISA_config: ";
    goto LAB_00021939;
  case 0x11:
    pcVar5 = "  Tag_ARC_ISA_apex: ";
LAB_00021939:
    printf(pcVar5);
    puVar6 = display_tag_value(-1,puVar6,end);
    break;
  case 0x12:
    dVar7 = read_leb128(puVar6,&len,0,end);
    puVar6 = puVar6 + len;
    printf("  Tag_ARC_ISA_mpy_option: %d\n",(int)dVar7);
    break;
  default:
    puVar6 = display_tag_value(uVar1 & 1,puVar6,end);
  }
  return puVar6;
}



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

int FUN_000218e0(int param_1,undefined4 param_2)

{
  int iVar1;
  undefined4 uVar2;
  uint uVar3;
  int iVar4;
  undefined *puVar5;
  char *pcVar6;
  int local_20 [3];
  undefined4 uStack_14;
  
  uStack_14 = 0x218e9;
  iVar1 = FUN_0004f990(param_1,local_20,0,param_2);
  param_1 = param_1 + local_20[0];
  switch(iVar1) {
  case 4:
    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);
    param_1 = param_1 + local_20[0];
    printf("  Tag_ARC_PCS_config: ");
    switch(uVar2) {
    case 0:
      pcVar6 = "Absent/Non standard\n";
      break;
    case 1:
      pcVar6 = "Bare metal/mwdt\n";
      break;
    case 2:
      pcVar6 = "Bare metal/newlib\n";
      break;
    case 3:
      pcVar6 = "Linux/uclibc\n";
      break;
    case 4:
      pcVar6 = "Linux/glibc\n";
      break;
    default:
code_r0x00021b4a:
      pcVar6 = "Unknown\n";
    }
    goto code_r0x00021cab;
  case 5:
    uVar3 = FUN_0004f990(param_1,local_20,0,param_2);
    param_1 = param_1 + local_20[0];
    printf("  Tag_ARC_CPU_base: ");
    if (uVar3 == 2) {
      puts("ARC7xx");
      return param_1;
    }
    if (uVar3 < 3) {
      if (uVar3 == 1) {
        puts("ARC6xx");
        return param_1;
      }
    }
    else {
      if (uVar3 == 3) {
        puts("ARCEM");
        return param_1;
      }
      if (uVar3 == 4) {
        puts("ARCHS");
        return param_1;
      }
    }
    goto code_r0x00021ca0;
  case 6:
    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);
    param_1 = param_1 + local_20[0];
    printf("  Tag_ARC_CPU_variation: ");
    if (iVar1 != 0) {
      if (iVar1 - 1U < 0xf) {
        printf("Core%d\n",iVar1);
        return param_1;
      }
      puts("Unknown");
      return param_1;
    }
    goto code_r0x00021ca0;
  case 7:
    pcVar6 = "  Tag_ARC_CPU_name: ";
    goto code_r0x00021939;
  case 8:
    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);
    param_1 = param_1 + local_20[0];
    if (iVar1 == 0) {
      uVar2 = dcgettext(0,&UNK_00077071,5);
    }
    else {
      uVar2 = dcgettext(0,&UNK_0007706d,5);
    }
    printf("  Tag_ARC_ABI_rf16: %s\n",uVar2);
    break;
  case 9:
    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);
    param_1 = param_1 + local_20[0];
    printf("  Tag_ARC_ABI_osver: v%d\n",uVar2);
    break;
  case 10:
  case 0xb:
    iVar4 = FUN_0004f990(param_1,local_20,0,param_2);
    param_1 = param_1 + local_20[0];
    pcVar6 = "  Tag_ARC_ABI_sda: ";
    if (iVar1 != 10) {
      pcVar6 = "  Tag_ARC_ABI_pic: ";
    }
    printf(pcVar6);
    if (iVar4 == 1) {
      puts("MWDT");
      return param_1;
    }
    if (iVar4 != 0) {
      if (iVar4 == 2) {
        puts("GNU");
        return param_1;
      }
      goto code_r0x00021b4a;
    }
code_r0x00021ca0:
    pcVar6 = "Absent\n";
code_r0x00021cab:
    pcVar6 = (char *)dcgettext(0,pcVar6,5);
    printf(pcVar6);
    return param_1;
  case 0xc:
    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);
    param_1 = param_1 + local_20[0];
    puVar5 = &UNK_00076f7f;
    if (iVar1 == 0) {
      puVar5 = &DAT_00076af8;
    }
    printf("  Tag_ARC_ABI_tls: %s\n",puVar5);
    break;
  case 0xd:
    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);
    param_1 = param_1 + local_20[0];
    if (iVar1 == 0) {
      uVar2 = dcgettext(0,"smallest",5);
    }
    else {
      uVar2 = dcgettext(0,"default",5);
    }
    printf("  Tag_ARC_ABI_enumsize: %s\n",uVar2);
    break;
  case 0xe:
    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);
    param_1 = param_1 + local_20[0];
    if (iVar1 == 0) {
      uVar2 = dcgettext(0,"default",5);
    }
    else {
      uVar2 = dcgettext(0,&UNK_000770ef,5);
    }
    printf("  Tag_ARC_ABI_exceptions: %s\n",uVar2);
    break;
  case 0xf:
    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);
    param_1 = param_1 + local_20[0];
    printf("  Tag_ARC_ABI_double_size: %d\n",uVar2);
    break;
  case 0x10:
    pcVar6 = "  Tag_ARC_ISA_config: ";
    goto code_r0x00021939;
  case 0x11:
    pcVar6 = "  Tag_ARC_ISA_apex: ";
code_r0x00021939:
    printf(pcVar6);
    param_1 = FUN_0001ff40();
    break;
  case 0x12:
    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);
    param_1 = param_1 + local_20[0];
    printf("  Tag_ARC_ISA_mpy_option: %d\n",uVar2);
    break;
  default:
    param_1 = FUN_0001ff40();
  }
  return param_1;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00013f70
ADD EBX,0x92717
SUB ESP,0x1c
MOV ESI,dword ptr [ESP + 0x30]
PUSH dword ptr [ESP + 0x34]
PUSH 0x0
LEA EDI,[ESP + 0x14]
PUSH EDI
PUSH ESI
CALL 0x0004f990
ADD ESI,dword ptr [ESP + 0x1c]
ADD ESP,0x10
MOV EBP,EAX
SUB EAX,0x4
CMP EAX,0xe
JA 0x00021cd0
MOV ECX,dword ptr [EBX + EAX*0x4 + 0xfffd8370]
ADD ECX,EBX
JMP ECX
ADD ESP,0x1c
MOV EAX,ESI
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,EBP
MOV ECX,dword ptr [ESP + 0x34]
MOV EDX,ESI
AND EAX,0x1
CALL 0x0001ff40
MOV ESI,EAX
JMP 0x00021954
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint FUN_000218e0(int param_1,undefined4 param_2)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  uint uVar3;\n  int iVar4;\n  undefined *puVar5;\n  char *pcVar6;\n  int local_20 [3];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x218e9;\n  iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n  param_1 = param_1 + local_20[0];\n  switch(iVar1) {\n  case 4:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_PCS_config: ");\n    switch(uVar2) {\n    case 0:\n      pcVar6 = "Absent/Non standard\n";\n      break;\n    case 1:\n      pcVar6 = "Bare metal/mwdt\n";\n      break;\n    case 2:\n      pcVar6 = "Bare metal/newlib\n";\n      break;\n    case 3:\n      pcVar6 = "Linux/uclibc\n";\n      break;\n    case 4:\n      pcVar6 = "Linux/glibc\n";\n      break;\n    default:\ncode_r0x00021b4a:\n      pcVar6 = "Unknown\n";\n    }\n    goto code_r0x00021cab;\n  case 5:\n    uVar3 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_CPU_base: ");\n    if (uVar3 == 2) {\n      puts("ARC7xx");\n      return param_1;\n    }\n    if (uVar3 < 3) {\n      if (uVar3 == 1) {\n        puts("ARC6xx");\n        return param_1;\n      }\n    }\n    else {\n      if (uVar3 == 3) {\n        puts("ARCEM");\n        return param_1;\n      }\n      if (uVar3 == 4) {\n        puts("ARCHS");\n        return param_1;\n      }\n    }\n    goto code_r0x00021ca0;\n  case 6:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_CPU_variation: ");\n    if (iVar1 != 0) {\n      if (iVar1 - 1U < 0xf) {\n        printf("Core%d\n",iVar1);\n        return param_1;\n      }\n      puts("Unknown");\n      return param_1;\n    }\n    goto code_r0x00021ca0;\n  case 7:\n    pcVar6 = "  Tag_ARC_CPU_name: ";\n    goto code_r0x00021939;\n  case 8:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,&UNK_00077071,5);\n    }\n    else {\n      uVar2 = dcgettext(0,&UNK_0007706d,5);\n    }\n    printf("  Tag_ARC_ABI_rf16: %s\n",uVar2);\n    break;\n  case 9:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ABI_osver: v%d\n",uVar2);\n    break;\n  case 10:\n  case 0xb:\n    iVar4 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    pcVar6 = "  Tag_ARC_ABI_sda: ";\n    if (iVar1 != 10) {\n      pcVar6 = "  Tag_ARC_ABI_pic: ";\n    }\n    printf(pcVar6);\n    if (iVar4 == 1) {\n      puts("MWDT");\n      return param_1;\n    }\n    if (iVar4 != 0) {\n      if (iVar4 == 2) {\n        puts("GNU");\n        return param_1;\n      }\n      goto code_r0x00021b4a;\n    }\ncode_r0x00021ca0:\n    pcVar6 = "Absent\n";\ncode_r0x00021cab:\n    pcVar6 = (char *)dcgettext(0,pcVar6,5);\n    printf(pcVar6);\n    return param_1;\n  case 0xc:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    puVar5 = &UNK_00076f7f;\n    if (iVar1 == 0) {\n      puVar5 = &DAT_00076af8;\n    }\n    printf("  Tag_ARC_ABI_tls: %s\n",puVar5);\n    break;\n  case 0xd:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,"smallest",5);\n    }\n    else {\n      uVar2 = dcgettext(0,"default",5);\n    }\n    printf("  Tag_ARC_ABI_enumsize: %s\n",uVar2);\n    break;\n  case 0xe:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,"default",5);\n    }\n    else {\n      uVar2 = dcgettext(0,&UNK_000770ef,5);\n    }\n    printf("  Tag_ARC_ABI_exceptions: %s\n",uVar2);\n    break;\n  case 0xf:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ABI_double_size: %d\n",uVar2);\n    break;\n  case 0x10:\n    pcVar6 = "  Tag_ARC_ISA_config: ";\n    goto code_r0x00021939;\n  case 0x11:\n    pcVar6 = "  Tag_ARC_ISA_apex: ";\ncode_r0x00021939:\n    printf(pcVar6);\n    param_1 = FUN_0001ff40();\n    break;\n  case 0x12:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ISA_mpy_option: %d\n",uVar2);\n    break;\n  default:\n    param_1 = FUN_0001ff40();\n  }\n  return param_1;\n}\n\n" comment (function_definition "int FUN_000218e0(int param_1,undefined4 param_2)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  uint uVar3;\n  int iVar4;\n  undefined *puVar5;\n  char *pcVar6;\n  int local_20 [3];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x218e9;\n  iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n  param_1 = param_1 + local_20[0];\n  switch(iVar1) {\n  case 4:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_PCS_config: ");\n    switch(uVar2) {\n    case 0:\n      pcVar6 = "Absent/Non standard\n";\n      break;\n    case 1:\n      pcVar6 = "Bare metal/mwdt\n";\n      break;\n    case 2:\n      pcVar6 = "Bare metal/newlib\n";\n      break;\n    case 3:\n      pcVar6 = "Linux/uclibc\n";\n      break;\n    case 4:\n      pcVar6 = "Linux/glibc\n";\n      break;\n    default:\ncode_r0x00021b4a:\n      pcVar6 = "Unknown\n";\n    }\n    goto code_r0x00021cab;\n  case 5:\n    uVar3 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_CPU_base: ");\n    if (uVar3 == 2) {\n      puts("ARC7xx");\n      return param_1;\n    }\n    if (uVar3 < 3) {\n      if (uVar3 == 1) {\n        puts("ARC6xx");\n        return param_1;\n      }\n    }\n    else {\n      if (uVar3 == 3) {\n        puts("ARCEM");\n        return param_1;\n      }\n      if (uVar3 == 4) {\n        puts("ARCHS");\n        return param_1;\n      }\n    }\n    goto code_r0x00021ca0;\n  case 6:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_CPU_variation: ");\n    if (iVar1 != 0) {\n      if (iVar1 - 1U < 0xf) {\n        printf("Core%d\n",iVar1);\n        return param_1;\n      }\n      puts("Unknown");\n      return param_1;\n    }\n    goto code_r0x00021ca0;\n  case 7:\n    pcVar6 = "  Tag_ARC_CPU_name: ";\n    goto code_r0x00021939;\n  case 8:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,&UNK_00077071,5);\n    }\n    else {\n      uVar2 = dcgettext(0,&UNK_0007706d,5);\n    }\n    printf("  Tag_ARC_ABI_rf16: %s\n",uVar2);\n    break;\n  case 9:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ABI_osver: v%d\n",uVar2);\n    break;\n  case 10:\n  case 0xb:\n    iVar4 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    pcVar6 = "  Tag_ARC_ABI_sda: ";\n    if (iVar1 != 10) {\n      pcVar6 = "  Tag_ARC_ABI_pic: ";\n    }\n    printf(pcVar6);\n    if (iVar4 == 1) {\n      puts("MWDT");\n      return param_1;\n    }\n    if (iVar4 != 0) {\n      if (iVar4 == 2) {\n        puts("GNU");\n        return param_1;\n      }\n      goto code_r0x00021b4a;\n    }\ncode_r0x00021ca0:\n    pcVar6 = "Absent\n";\ncode_r0x00021cab:\n    pcVar6 = (char *)dcgettext(0,pcVar6,5);\n    printf(pcVar6);\n    return param_1;\n  case 0xc:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    puVar5 = &UNK_00076f7f;\n    if (iVar1 == 0) {\n      puVar5 = &DAT_00076af8;\n    }\n    printf("  Tag_ARC_ABI_tls: %s\n",puVar5);\n    break;\n  case 0xd:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,"smallest",5);\n    }\n    else {\n      uVar2 = dcgettext(0,"default",5);\n    }\n    printf("  Tag_ARC_ABI_enumsize: %s\n",uVar2);\n    break;\n  case 0xe:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,"default",5);\n    }\n    else {\n      uVar2 = dcgettext(0,&UNK_000770ef,5);\n    }\n    printf("  Tag_ARC_ABI_exceptions: %s\n",uVar2);\n    break;\n  case 0xf:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ABI_double_size: %d\n",uVar2);\n    break;\n  case 0x10:\n    pcVar6 = "  Tag_ARC_ISA_config: ";\n    goto code_r0x00021939;\n  case 0x11:\n    pcVar6 = "  Tag_ARC_ISA_apex: ";\ncode_r0x00021939:\n    printf(pcVar6);\n    param_1 = FUN_0001ff40();\n    break;\n  case 0x12:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ISA_mpy_option: %d\n",uVar2);\n    break;\n  default:\n    param_1 = FUN_0001ff40();\n  }\n  return param_1;\n}" primitive_type (function_declarator "FUN_000218e0(int param_1,undefined4 param_2)" identifier (parameter_list "(int param_1,undefined4 param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  uint uVar3;\n  int iVar4;\n  undefined *puVar5;\n  char *pcVar6;\n  int local_20 [3];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x218e9;\n  iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n  param_1 = param_1 + local_20[0];\n  switch(iVar1) {\n  case 4:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_PCS_config: ");\n    switch(uVar2) {\n    case 0:\n      pcVar6 = "Absent/Non standard\n";\n      break;\n    case 1:\n      pcVar6 = "Bare metal/mwdt\n";\n      break;\n    case 2:\n      pcVar6 = "Bare metal/newlib\n";\n      break;\n    case 3:\n      pcVar6 = "Linux/uclibc\n";\n      break;\n    case 4:\n      pcVar6 = "Linux/glibc\n";\n      break;\n    default:\ncode_r0x00021b4a:\n      pcVar6 = "Unknown\n";\n    }\n    goto code_r0x00021cab;\n  case 5:\n    uVar3 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_CPU_base: ");\n    if (uVar3 == 2) {\n      puts("ARC7xx");\n      return param_1;\n    }\n    if (uVar3 < 3) {\n      if (uVar3 == 1) {\n        puts("ARC6xx");\n        return param_1;\n      }\n    }\n    else {\n      if (uVar3 == 3) {\n        puts("ARCEM");\n        return param_1;\n      }\n      if (uVar3 == 4) {\n        puts("ARCHS");\n        return param_1;\n      }\n    }\n    goto code_r0x00021ca0;\n  case 6:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_CPU_variation: ");\n    if (iVar1 != 0) {\n      if (iVar1 - 1U < 0xf) {\n        printf("Core%d\n",iVar1);\n        return param_1;\n      }\n      puts("Unknown");\n      return param_1;\n    }\n    goto code_r0x00021ca0;\n  case 7:\n    pcVar6 = "  Tag_ARC_CPU_name: ";\n    goto code_r0x00021939;\n  case 8:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,&UNK_00077071,5);\n    }\n    else {\n      uVar2 = dcgettext(0,&UNK_0007706d,5);\n    }\n    printf("  Tag_ARC_ABI_rf16: %s\n",uVar2);\n    break;\n  case 9:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ABI_osver: v%d\n",uVar2);\n    break;\n  case 10:\n  case 0xb:\n    iVar4 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    pcVar6 = "  Tag_ARC_ABI_sda: ";\n    if (iVar1 != 10) {\n      pcVar6 = "  Tag_ARC_ABI_pic: ";\n    }\n    printf(pcVar6);\n    if (iVar4 == 1) {\n      puts("MWDT");\n      return param_1;\n    }\n    if (iVar4 != 0) {\n      if (iVar4 == 2) {\n        puts("GNU");\n        return param_1;\n      }\n      goto code_r0x00021b4a;\n    }\ncode_r0x00021ca0:\n    pcVar6 = "Absent\n";\ncode_r0x00021cab:\n    pcVar6 = (char *)dcgettext(0,pcVar6,5);\n    printf(pcVar6);\n    return param_1;\n  case 0xc:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    puVar5 = &UNK_00076f7f;\n    if (iVar1 == 0) {\n      puVar5 = &DAT_00076af8;\n    }\n    printf("  Tag_ARC_ABI_tls: %s\n",puVar5);\n    break;\n  case 0xd:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,"smallest",5);\n    }\n    else {\n      uVar2 = dcgettext(0,"default",5);\n    }\n    printf("  Tag_ARC_ABI_enumsize: %s\n",uVar2);\n    break;\n  case 0xe:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,"default",5);\n    }\n    else {\n      uVar2 = dcgettext(0,&UNK_000770ef,5);\n    }\n    printf("  Tag_ARC_ABI_exceptions: %s\n",uVar2);\n    break;\n  case 0xf:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ABI_double_size: %d\n",uVar2);\n    break;\n  case 0x10:\n    pcVar6 = "  Tag_ARC_ISA_config: ";\n    goto code_r0x00021939;\n  case 0x11:\n    pcVar6 = "  Tag_ARC_ISA_apex: ";\ncode_r0x00021939:\n    printf(pcVar6);\n    param_1 = FUN_0001ff40();\n    break;\n  case 0x12:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ISA_mpy_option: %d\n",uVar2);\n    break;\n  default:\n    param_1 = FUN_0001ff40();\n  }\n  return param_1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "int local_20 [3];" primitive_type (array_declarator "local_20 [3]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x218e9;" (assignment_expression "uStack_14 = 0x218e9" identifier = number_literal) ;) (expression_statement "iVar1 = FUN_0004f990(param_1,local_20,0,param_2);" (assignment_expression "iVar1 = FUN_0004f990(param_1,local_20,0,param_2)" identifier = (call_expression "FUN_0004f990(param_1,local_20,0,param_2)" identifier (argument_list "(param_1,local_20,0,param_2)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "param_1 = param_1 + local_20[0];" (assignment_expression "param_1 = param_1 + local_20[0]" identifier = (binary_expression "param_1 + local_20[0]" identifier + (subscript_expression "local_20[0]" identifier [ number_literal ]))) ;) (switch_statement "switch(iVar1) {\n  case 4:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_PCS_config: ");\n    switch(uVar2) {\n    case 0:\n      pcVar6 = "Absent/Non standard\n";\n      break;\n    case 1:\n      pcVar6 = "Bare metal/mwdt\n";\n      break;\n    case 2:\n      pcVar6 = "Bare metal/newlib\n";\n      break;\n    case 3:\n      pcVar6 = "Linux/uclibc\n";\n      break;\n    case 4:\n      pcVar6 = "Linux/glibc\n";\n      break;\n    default:\ncode_r0x00021b4a:\n      pcVar6 = "Unknown\n";\n    }\n    goto code_r0x00021cab;\n  case 5:\n    uVar3 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_CPU_base: ");\n    if (uVar3 == 2) {\n      puts("ARC7xx");\n      return param_1;\n    }\n    if (uVar3 < 3) {\n      if (uVar3 == 1) {\n        puts("ARC6xx");\n        return param_1;\n      }\n    }\n    else {\n      if (uVar3 == 3) {\n        puts("ARCEM");\n        return param_1;\n      }\n      if (uVar3 == 4) {\n        puts("ARCHS");\n        return param_1;\n      }\n    }\n    goto code_r0x00021ca0;\n  case 6:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_CPU_variation: ");\n    if (iVar1 != 0) {\n      if (iVar1 - 1U < 0xf) {\n        printf("Core%d\n",iVar1);\n        return param_1;\n      }\n      puts("Unknown");\n      return param_1;\n    }\n    goto code_r0x00021ca0;\n  case 7:\n    pcVar6 = "  Tag_ARC_CPU_name: ";\n    goto code_r0x00021939;\n  case 8:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,&UNK_00077071,5);\n    }\n    else {\n      uVar2 = dcgettext(0,&UNK_0007706d,5);\n    }\n    printf("  Tag_ARC_ABI_rf16: %s\n",uVar2);\n    break;\n  case 9:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ABI_osver: v%d\n",uVar2);\n    break;\n  case 10:\n  case 0xb:\n    iVar4 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    pcVar6 = "  Tag_ARC_ABI_sda: ";\n    if (iVar1 != 10) {\n      pcVar6 = "  Tag_ARC_ABI_pic: ";\n    }\n    printf(pcVar6);\n    if (iVar4 == 1) {\n      puts("MWDT");\n      return param_1;\n    }\n    if (iVar4 != 0) {\n      if (iVar4 == 2) {\n        puts("GNU");\n        return param_1;\n      }\n      goto code_r0x00021b4a;\n    }\ncode_r0x00021ca0:\n    pcVar6 = "Absent\n";\ncode_r0x00021cab:\n    pcVar6 = (char *)dcgettext(0,pcVar6,5);\n    printf(pcVar6);\n    return param_1;\n  case 0xc:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    puVar5 = &UNK_00076f7f;\n    if (iVar1 == 0) {\n      puVar5 = &DAT_00076af8;\n    }\n    printf("  Tag_ARC_ABI_tls: %s\n",puVar5);\n    break;\n  case 0xd:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,"smallest",5);\n    }\n    else {\n      uVar2 = dcgettext(0,"default",5);\n    }\n    printf("  Tag_ARC_ABI_enumsize: %s\n",uVar2);\n    break;\n  case 0xe:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,"default",5);\n    }\n    else {\n      uVar2 = dcgettext(0,&UNK_000770ef,5);\n    }\n    printf("  Tag_ARC_ABI_exceptions: %s\n",uVar2);\n    break;\n  case 0xf:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ABI_double_size: %d\n",uVar2);\n    break;\n  case 0x10:\n    pcVar6 = "  Tag_ARC_ISA_config: ";\n    goto code_r0x00021939;\n  case 0x11:\n    pcVar6 = "  Tag_ARC_ISA_apex: ";\ncode_r0x00021939:\n    printf(pcVar6);\n    param_1 = FUN_0001ff40();\n    break;\n  case 0x12:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ISA_mpy_option: %d\n",uVar2);\n    break;\n  default:\n    param_1 = FUN_0001ff40();\n  }" switch (parenthesized_expression "(iVar1)" ( identifier )) (compound_statement "{\n  case 4:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_PCS_config: ");\n    switch(uVar2) {\n    case 0:\n      pcVar6 = "Absent/Non standard\n";\n      break;\n    case 1:\n      pcVar6 = "Bare metal/mwdt\n";\n      break;\n    case 2:\n      pcVar6 = "Bare metal/newlib\n";\n      break;\n    case 3:\n      pcVar6 = "Linux/uclibc\n";\n      break;\n    case 4:\n      pcVar6 = "Linux/glibc\n";\n      break;\n    default:\ncode_r0x00021b4a:\n      pcVar6 = "Unknown\n";\n    }\n    goto code_r0x00021cab;\n  case 5:\n    uVar3 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_CPU_base: ");\n    if (uVar3 == 2) {\n      puts("ARC7xx");\n      return param_1;\n    }\n    if (uVar3 < 3) {\n      if (uVar3 == 1) {\n        puts("ARC6xx");\n        return param_1;\n      }\n    }\n    else {\n      if (uVar3 == 3) {\n        puts("ARCEM");\n        return param_1;\n      }\n      if (uVar3 == 4) {\n        puts("ARCHS");\n        return param_1;\n      }\n    }\n    goto code_r0x00021ca0;\n  case 6:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_CPU_variation: ");\n    if (iVar1 != 0) {\n      if (iVar1 - 1U < 0xf) {\n        printf("Core%d\n",iVar1);\n        return param_1;\n      }\n      puts("Unknown");\n      return param_1;\n    }\n    goto code_r0x00021ca0;\n  case 7:\n    pcVar6 = "  Tag_ARC_CPU_name: ";\n    goto code_r0x00021939;\n  case 8:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,&UNK_00077071,5);\n    }\n    else {\n      uVar2 = dcgettext(0,&UNK_0007706d,5);\n    }\n    printf("  Tag_ARC_ABI_rf16: %s\n",uVar2);\n    break;\n  case 9:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ABI_osver: v%d\n",uVar2);\n    break;\n  case 10:\n  case 0xb:\n    iVar4 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    pcVar6 = "  Tag_ARC_ABI_sda: ";\n    if (iVar1 != 10) {\n      pcVar6 = "  Tag_ARC_ABI_pic: ";\n    }\n    printf(pcVar6);\n    if (iVar4 == 1) {\n      puts("MWDT");\n      return param_1;\n    }\n    if (iVar4 != 0) {\n      if (iVar4 == 2) {\n        puts("GNU");\n        return param_1;\n      }\n      goto code_r0x00021b4a;\n    }\ncode_r0x00021ca0:\n    pcVar6 = "Absent\n";\ncode_r0x00021cab:\n    pcVar6 = (char *)dcgettext(0,pcVar6,5);\n    printf(pcVar6);\n    return param_1;\n  case 0xc:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    puVar5 = &UNK_00076f7f;\n    if (iVar1 == 0) {\n      puVar5 = &DAT_00076af8;\n    }\n    printf("  Tag_ARC_ABI_tls: %s\n",puVar5);\n    break;\n  case 0xd:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,"smallest",5);\n    }\n    else {\n      uVar2 = dcgettext(0,"default",5);\n    }\n    printf("  Tag_ARC_ABI_enumsize: %s\n",uVar2);\n    break;\n  case 0xe:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,"default",5);\n    }\n    else {\n      uVar2 = dcgettext(0,&UNK_000770ef,5);\n    }\n    printf("  Tag_ARC_ABI_exceptions: %s\n",uVar2);\n    break;\n  case 0xf:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ABI_double_size: %d\n",uVar2);\n    break;\n  case 0x10:\n    pcVar6 = "  Tag_ARC_ISA_config: ";\n    goto code_r0x00021939;\n  case 0x11:\n    pcVar6 = "  Tag_ARC_ISA_apex: ";\ncode_r0x00021939:\n    printf(pcVar6);\n    param_1 = FUN_0001ff40();\n    break;\n  case 0x12:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ISA_mpy_option: %d\n",uVar2);\n    break;\n  default:\n    param_1 = FUN_0001ff40();\n  }" { (case_statement "case 4:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_PCS_config: ");\n    switch(uVar2) {\n    case 0:\n      pcVar6 = "Absent/Non standard\n";\n      break;\n    case 1:\n      pcVar6 = "Bare metal/mwdt\n";\n      break;\n    case 2:\n      pcVar6 = "Bare metal/newlib\n";\n      break;\n    case 3:\n      pcVar6 = "Linux/uclibc\n";\n      break;\n    case 4:\n      pcVar6 = "Linux/glibc\n";\n      break;\n    default:\ncode_r0x00021b4a:\n      pcVar6 = "Unknown\n";\n    }\n    goto code_r0x00021cab;" case number_literal : (expression_statement "uVar2 = FUN_0004f990(param_1,local_20,0,param_2);" (assignment_expression "uVar2 = FUN_0004f990(param_1,local_20,0,param_2)" identifier = (call_expression "FUN_0004f990(param_1,local_20,0,param_2)" identifier (argument_list "(param_1,local_20,0,param_2)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "param_1 = param_1 + local_20[0];" (assignment_expression "param_1 = param_1 + local_20[0]" identifier = (binary_expression "param_1 + local_20[0]" identifier + (subscript_expression "local_20[0]" identifier [ number_literal ]))) ;) (expression_statement "printf("  Tag_ARC_PCS_config: ");" (call_expression "printf("  Tag_ARC_PCS_config: ")" identifier (argument_list "("  Tag_ARC_PCS_config: ")" ( (string_literal ""  Tag_ARC_PCS_config: "" " string_content ") ))) ;) (switch_statement "switch(uVar2) {\n    case 0:\n      pcVar6 = "Absent/Non standard\n";\n      break;\n    case 1:\n      pcVar6 = "Bare metal/mwdt\n";\n      break;\n    case 2:\n      pcVar6 = "Bare metal/newlib\n";\n      break;\n    case 3:\n      pcVar6 = "Linux/uclibc\n";\n      break;\n    case 4:\n      pcVar6 = "Linux/glibc\n";\n      break;\n    default:\ncode_r0x00021b4a:\n      pcVar6 = "Unknown\n";\n    }" switch (parenthesized_expression "(uVar2)" ( identifier )) (compound_statement "{\n    case 0:\n      pcVar6 = "Absent/Non standard\n";\n      break;\n    case 1:\n      pcVar6 = "Bare metal/mwdt\n";\n      break;\n    case 2:\n      pcVar6 = "Bare metal/newlib\n";\n      break;\n    case 3:\n      pcVar6 = "Linux/uclibc\n";\n      break;\n    case 4:\n      pcVar6 = "Linux/glibc\n";\n      break;\n    default:\ncode_r0x00021b4a:\n      pcVar6 = "Unknown\n";\n    }" { (case_statement "case 0:\n      pcVar6 = "Absent/Non standard\n";\n      break;" case number_literal : (expression_statement "pcVar6 = "Absent/Non standard\n";" (assignment_expression "pcVar6 = "Absent/Non standard\n"" identifier = (string_literal ""Absent/Non standard\n"" " string_content escape_sequence ")) ;) (break_statement "break;" break ;)) (case_statement "case 1:\n      pcVar6 = "Bare metal/mwdt\n";\n      break;" case number_literal : (expression_statement "pcVar6 = "Bare metal/mwdt\n";" (assignment_expression "pcVar6 = "Bare metal/mwdt\n"" identifier = (string_literal ""Bare metal/mwdt\n"" " string_content escape_sequence ")) ;) (break_statement "break;" break ;)) (case_statement "case 2:\n      pcVar6 = "Bare metal/newlib\n";\n      break;" case number_literal : (expression_statement "pcVar6 = "Bare metal/newlib\n";" (assignment_expression "pcVar6 = "Bare metal/newlib\n"" identifier = (string_literal ""Bare metal/newlib\n"" " string_content escape_sequence ")) ;) (break_statement "break;" break ;)) (case_statement "case 3:\n      pcVar6 = "Linux/uclibc\n";\n      break;" case number_literal : (expression_statement "pcVar6 = "Linux/uclibc\n";" (assignment_expression "pcVar6 = "Linux/uclibc\n"" identifier = (string_literal ""Linux/uclibc\n"" " string_content escape_sequence ")) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n      pcVar6 = "Linux/glibc\n";\n      break;" case number_literal : (expression_statement "pcVar6 = "Linux/glibc\n";" (assignment_expression "pcVar6 = "Linux/glibc\n"" identifier = (string_literal ""Linux/glibc\n"" " string_content escape_sequence ")) ;) (break_statement "break;" break ;)) (case_statement "default:\ncode_r0x00021b4a:\n      pcVar6 = "Unknown\n";" default : (labeled_statement "code_r0x00021b4a:\n      pcVar6 = "Unknown\n";" statement_identifier : (expression_statement "pcVar6 = "Unknown\n";" (assignment_expression "pcVar6 = "Unknown\n"" identifier = (string_literal ""Unknown\n"" " string_content escape_sequence ")) ;))) })) (goto_statement "goto code_r0x00021cab;" goto statement_identifier ;)) (case_statement "case 5:\n    uVar3 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_CPU_base: ");\n    if (uVar3 == 2) {\n      puts("ARC7xx");\n      return param_1;\n    }\n    if (uVar3 < 3) {\n      if (uVar3 == 1) {\n        puts("ARC6xx");\n        return param_1;\n      }\n    }\n    else {\n      if (uVar3 == 3) {\n        puts("ARCEM");\n        return param_1;\n      }\n      if (uVar3 == 4) {\n        puts("ARCHS");\n        return param_1;\n      }\n    }\n    goto code_r0x00021ca0;" case number_literal : (expression_statement "uVar3 = FUN_0004f990(param_1,local_20,0,param_2);" (assignment_expression "uVar3 = FUN_0004f990(param_1,local_20,0,param_2)" identifier = (call_expression "FUN_0004f990(param_1,local_20,0,param_2)" identifier (argument_list "(param_1,local_20,0,param_2)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "param_1 = param_1 + local_20[0];" (assignment_expression "param_1 = param_1 + local_20[0]" identifier = (binary_expression "param_1 + local_20[0]" identifier + (subscript_expression "local_20[0]" identifier [ number_literal ]))) ;) (expression_statement "printf("  Tag_ARC_CPU_base: ");" (call_expression "printf("  Tag_ARC_CPU_base: ")" identifier (argument_list "("  Tag_ARC_CPU_base: ")" ( (string_literal ""  Tag_ARC_CPU_base: "" " string_content ") ))) ;) (if_statement "if (uVar3 == 2) {\n      puts("ARC7xx");\n      return param_1;\n    }" if (parenthesized_expression "(uVar3 == 2)" ( (binary_expression "uVar3 == 2" identifier == number_literal) )) (compound_statement "{\n      puts("ARC7xx");\n      return param_1;\n    }" { (expression_statement "puts("ARC7xx");" (call_expression "puts("ARC7xx")" identifier (argument_list "("ARC7xx")" ( (string_literal ""ARC7xx"" " string_content ") ))) ;) (return_statement "return param_1;" return identifier ;) })) (if_statement "if (uVar3 < 3) {\n      if (uVar3 == 1) {\n        puts("ARC6xx");\n        return param_1;\n      }\n    }\n    else {\n      if (uVar3 == 3) {\n        puts("ARCEM");\n        return param_1;\n      }\n      if (uVar3 == 4) {\n        puts("ARCHS");\n        return param_1;\n      }\n    }" if (parenthesized_expression "(uVar3 < 3)" ( (binary_expression "uVar3 < 3" identifier < number_literal) )) (compound_statement "{\n      if (uVar3 == 1) {\n        puts("ARC6xx");\n        return param_1;\n      }\n    }" { (if_statement "if (uVar3 == 1) {\n        puts("ARC6xx");\n        return param_1;\n      }" if (parenthesized_expression "(uVar3 == 1)" ( (binary_expression "uVar3 == 1" identifier == number_literal) )) (compound_statement "{\n        puts("ARC6xx");\n        return param_1;\n      }" { (expression_statement "puts("ARC6xx");" (call_expression "puts("ARC6xx")" identifier (argument_list "("ARC6xx")" ( (string_literal ""ARC6xx"" " string_content ") ))) ;) (return_statement "return param_1;" return identifier ;) })) }) (else_clause "else {\n      if (uVar3 == 3) {\n        puts("ARCEM");\n        return param_1;\n      }\n      if (uVar3 == 4) {\n        puts("ARCHS");\n        return param_1;\n      }\n    }" else (compound_statement "{\n      if (uVar3 == 3) {\n        puts("ARCEM");\n        return param_1;\n      }\n      if (uVar3 == 4) {\n        puts("ARCHS");\n        return param_1;\n      }\n    }" { (if_statement "if (uVar3 == 3) {\n        puts("ARCEM");\n        return param_1;\n      }" if (parenthesized_expression "(uVar3 == 3)" ( (binary_expression "uVar3 == 3" identifier == number_literal) )) (compound_statement "{\n        puts("ARCEM");\n        return param_1;\n      }" { (expression_statement "puts("ARCEM");" (call_expression "puts("ARCEM")" identifier (argument_list "("ARCEM")" ( (string_literal ""ARCEM"" " string_content ") ))) ;) (return_statement "return param_1;" return identifier ;) })) (if_statement "if (uVar3 == 4) {\n        puts("ARCHS");\n        return param_1;\n      }" if (parenthesized_expression "(uVar3 == 4)" ( (binary_expression "uVar3 == 4" identifier == number_literal) )) (compound_statement "{\n        puts("ARCHS");\n        return param_1;\n      }" { (expression_statement "puts("ARCHS");" (call_expression "puts("ARCHS")" identifier (argument_list "("ARCHS")" ( (string_literal ""ARCHS"" " string_content ") ))) ;) (return_statement "return param_1;" return identifier ;) })) }))) (goto_statement "goto code_r0x00021ca0;" goto statement_identifier ;)) (case_statement "case 6:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_CPU_variation: ");\n    if (iVar1 != 0) {\n      if (iVar1 - 1U < 0xf) {\n        printf("Core%d\n",iVar1);\n        return param_1;\n      }\n      puts("Unknown");\n      return param_1;\n    }\n    goto code_r0x00021ca0;" case number_literal : (expression_statement "iVar1 = FUN_0004f990(param_1,local_20,0,param_2);" (assignment_expression "iVar1 = FUN_0004f990(param_1,local_20,0,param_2)" identifier = (call_expression "FUN_0004f990(param_1,local_20,0,param_2)" identifier (argument_list "(param_1,local_20,0,param_2)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "param_1 = param_1 + local_20[0];" (assignment_expression "param_1 = param_1 + local_20[0]" identifier = (binary_expression "param_1 + local_20[0]" identifier + (subscript_expression "local_20[0]" identifier [ number_literal ]))) ;) (expression_statement "printf("  Tag_ARC_CPU_variation: ");" (call_expression "printf("  Tag_ARC_CPU_variation: ")" identifier (argument_list "("  Tag_ARC_CPU_variation: ")" ( (string_literal ""  Tag_ARC_CPU_variation: "" " string_content ") ))) ;) (if_statement "if (iVar1 != 0) {\n      if (iVar1 - 1U < 0xf) {\n        printf("Core%d\n",iVar1);\n        return param_1;\n      }\n      puts("Unknown");\n      return param_1;\n    }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n      if (iVar1 - 1U < 0xf) {\n        printf("Core%d\n",iVar1);\n        return param_1;\n      }\n      puts("Unknown");\n      return param_1;\n    }" { (if_statement "if (iVar1 - 1U < 0xf) {\n        printf("Core%d\n",iVar1);\n        return param_1;\n      }" if (parenthesized_expression "(iVar1 - 1U < 0xf)" ( (binary_expression "iVar1 - 1U < 0xf" (binary_expression "iVar1 - 1U" identifier - number_literal) < number_literal) )) (compound_statement "{\n        printf("Core%d\n",iVar1);\n        return param_1;\n      }" { (expression_statement "printf("Core%d\n",iVar1);" (call_expression "printf("Core%d\n",iVar1)" identifier (argument_list "("Core%d\n",iVar1)" ( (string_literal ""Core%d\n"" " string_content escape_sequence ") , identifier ))) ;) (return_statement "return param_1;" return identifier ;) })) (expression_statement "puts("Unknown");" (call_expression "puts("Unknown")" identifier (argument_list "("Unknown")" ( (string_literal ""Unknown"" " string_content ") ))) ;) (return_statement "return param_1;" return identifier ;) })) (goto_statement "goto code_r0x00021ca0;" goto statement_identifier ;)) (case_statement "case 7:\n    pcVar6 = "  Tag_ARC_CPU_name: ";\n    goto code_r0x00021939;" case number_literal : (expression_statement "pcVar6 = "  Tag_ARC_CPU_name: ";" (assignment_expression "pcVar6 = "  Tag_ARC_CPU_name: "" identifier = (string_literal ""  Tag_ARC_CPU_name: "" " string_content ")) ;) (goto_statement "goto code_r0x00021939;" goto statement_identifier ;)) (case_statement "case 8:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,&UNK_00077071,5);\n    }\n    else {\n      uVar2 = dcgettext(0,&UNK_0007706d,5);\n    }\n    printf("  Tag_ARC_ABI_rf16: %s\n",uVar2);\n    break;" case number_literal : (expression_statement "iVar1 = FUN_0004f990(param_1,local_20,0,param_2);" (assignment_expression "iVar1 = FUN_0004f990(param_1,local_20,0,param_2)" identifier = (call_expression "FUN_0004f990(param_1,local_20,0,param_2)" identifier (argument_list "(param_1,local_20,0,param_2)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "param_1 = param_1 + local_20[0];" (assignment_expression "param_1 = param_1 + local_20[0]" identifier = (binary_expression "param_1 + local_20[0]" identifier + (subscript_expression "local_20[0]" identifier [ number_literal ]))) ;) (if_statement "if (iVar1 == 0) {\n      uVar2 = dcgettext(0,&UNK_00077071,5);\n    }\n    else {\n      uVar2 = dcgettext(0,&UNK_0007706d,5);\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar2 = dcgettext(0,&UNK_00077071,5);\n    }" { (expression_statement "uVar2 = dcgettext(0,&UNK_00077071,5);" (assignment_expression "uVar2 = dcgettext(0,&UNK_00077071,5)" identifier = (call_expression "dcgettext(0,&UNK_00077071,5)" identifier (argument_list "(0,&UNK_00077071,5)" ( number_literal , (pointer_expression "&UNK_00077071" & identifier) , number_literal )))) ;) }) (else_clause "else {\n      uVar2 = dcgettext(0,&UNK_0007706d,5);\n    }" else (compound_statement "{\n      uVar2 = dcgettext(0,&UNK_0007706d,5);\n    }" { (expression_statement "uVar2 = dcgettext(0,&UNK_0007706d,5);" (assignment_expression "uVar2 = dcgettext(0,&UNK_0007706d,5)" identifier = (call_expression "dcgettext(0,&UNK_0007706d,5)" identifier (argument_list "(0,&UNK_0007706d,5)" ( number_literal , (pointer_expression "&UNK_0007706d" & identifier) , number_literal )))) ;) }))) (expression_statement "printf("  Tag_ARC_ABI_rf16: %s\n",uVar2);" (call_expression "printf("  Tag_ARC_ABI_rf16: %s\n",uVar2)" identifier (argument_list "("  Tag_ARC_ABI_rf16: %s\n",uVar2)" ( (string_literal ""  Tag_ARC_ABI_rf16: %s\n"" " string_content escape_sequence ") , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 9:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ABI_osver: v%d\n",uVar2);\n    break;" case number_literal : (expression_statement "uVar2 = FUN_0004f990(param_1,local_20,0,param_2);" (assignment_expression "uVar2 = FUN_0004f990(param_1,local_20,0,param_2)" identifier = (call_expression "FUN_0004f990(param_1,local_20,0,param_2)" identifier (argument_list "(param_1,local_20,0,param_2)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "param_1 = param_1 + local_20[0];" (assignment_expression "param_1 = param_1 + local_20[0]" identifier = (binary_expression "param_1 + local_20[0]" identifier + (subscript_expression "local_20[0]" identifier [ number_literal ]))) ;) (expression_statement "printf("  Tag_ARC_ABI_osver: v%d\n",uVar2);" (call_expression "printf("  Tag_ARC_ABI_osver: v%d\n",uVar2)" identifier (argument_list "("  Tag_ARC_ABI_osver: v%d\n",uVar2)" ( (string_literal ""  Tag_ARC_ABI_osver: v%d\n"" " string_content escape_sequence ") , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 10:" case number_literal :) (case_statement "case 0xb:\n    iVar4 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    pcVar6 = "  Tag_ARC_ABI_sda: ";\n    if (iVar1 != 10) {\n      pcVar6 = "  Tag_ARC_ABI_pic: ";\n    }\n    printf(pcVar6);\n    if (iVar4 == 1) {\n      puts("MWDT");\n      return param_1;\n    }\n    if (iVar4 != 0) {\n      if (iVar4 == 2) {\n        puts("GNU");\n        return param_1;\n      }\n      goto code_r0x00021b4a;\n    }\ncode_r0x00021ca0:\n    pcVar6 = "Absent\n";\ncode_r0x00021cab:\n    pcVar6 = (char *)dcgettext(0,pcVar6,5);\n    printf(pcVar6);\n    return param_1;" case number_literal : (expression_statement "iVar4 = FUN_0004f990(param_1,local_20,0,param_2);" (assignment_expression "iVar4 = FUN_0004f990(param_1,local_20,0,param_2)" identifier = (call_expression "FUN_0004f990(param_1,local_20,0,param_2)" identifier (argument_list "(param_1,local_20,0,param_2)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "param_1 = param_1 + local_20[0];" (assignment_expression "param_1 = param_1 + local_20[0]" identifier = (binary_expression "param_1 + local_20[0]" identifier + (subscript_expression "local_20[0]" identifier [ number_literal ]))) ;) (expression_statement "pcVar6 = "  Tag_ARC_ABI_sda: ";" (assignment_expression "pcVar6 = "  Tag_ARC_ABI_sda: "" identifier = (string_literal ""  Tag_ARC_ABI_sda: "" " string_content ")) ;) (if_statement "if (iVar1 != 10) {\n      pcVar6 = "  Tag_ARC_ABI_pic: ";\n    }" if (parenthesized_expression "(iVar1 != 10)" ( (binary_expression "iVar1 != 10" identifier != number_literal) )) (compound_statement "{\n      pcVar6 = "  Tag_ARC_ABI_pic: ";\n    }" { (expression_statement "pcVar6 = "  Tag_ARC_ABI_pic: ";" (assignment_expression "pcVar6 = "  Tag_ARC_ABI_pic: "" identifier = (string_literal ""  Tag_ARC_ABI_pic: "" " string_content ")) ;) })) (expression_statement "printf(pcVar6);" (call_expression "printf(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) (if_statement "if (iVar4 == 1) {\n      puts("MWDT");\n      return param_1;\n    }" if (parenthesized_expression "(iVar4 == 1)" ( (binary_expression "iVar4 == 1" identifier == number_literal) )) (compound_statement "{\n      puts("MWDT");\n      return param_1;\n    }" { (expression_statement "puts("MWDT");" (call_expression "puts("MWDT")" identifier (argument_list "("MWDT")" ( (string_literal ""MWDT"" " string_content ") ))) ;) (return_statement "return param_1;" return identifier ;) })) (if_statement "if (iVar4 != 0) {\n      if (iVar4 == 2) {\n        puts("GNU");\n        return param_1;\n      }\n      goto code_r0x00021b4a;\n    }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      if (iVar4 == 2) {\n        puts("GNU");\n        return param_1;\n      }\n      goto code_r0x00021b4a;\n    }" { (if_statement "if (iVar4 == 2) {\n        puts("GNU");\n        return param_1;\n      }" if (parenthesized_expression "(iVar4 == 2)" ( (binary_expression "iVar4 == 2" identifier == number_literal) )) (compound_statement "{\n        puts("GNU");\n        return param_1;\n      }" { (expression_statement "puts("GNU");" (call_expression "puts("GNU")" identifier (argument_list "("GNU")" ( (string_literal ""GNU"" " string_content ") ))) ;) (return_statement "return param_1;" return identifier ;) })) (goto_statement "goto code_r0x00021b4a;" goto statement_identifier ;) })) (labeled_statement "code_r0x00021ca0:\n    pcVar6 = "Absent\n";" statement_identifier : (expression_statement "pcVar6 = "Absent\n";" (assignment_expression "pcVar6 = "Absent\n"" identifier = (string_literal ""Absent\n"" " string_content escape_sequence ")) ;)) (labeled_statement "code_r0x00021cab:\n    pcVar6 = (char *)dcgettext(0,pcVar6,5);" statement_identifier : (expression_statement "pcVar6 = (char *)dcgettext(0,pcVar6,5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,pcVar6,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar6,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar6,5)" identifier (argument_list "(0,pcVar6,5)" ( number_literal , identifier , number_literal ))))) ;)) (expression_statement "printf(pcVar6);" (call_expression "printf(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) (return_statement "return param_1;" return identifier ;)) (case_statement "case 0xc:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    puVar5 = &UNK_00076f7f;\n    if (iVar1 == 0) {\n      puVar5 = &DAT_00076af8;\n    }\n    printf("  Tag_ARC_ABI_tls: %s\n",puVar5);\n    break;" case number_literal : (expression_statement "iVar1 = FUN_0004f990(param_1,local_20,0,param_2);" (assignment_expression "iVar1 = FUN_0004f990(param_1,local_20,0,param_2)" identifier = (call_expression "FUN_0004f990(param_1,local_20,0,param_2)" identifier (argument_list "(param_1,local_20,0,param_2)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "param_1 = param_1 + local_20[0];" (assignment_expression "param_1 = param_1 + local_20[0]" identifier = (binary_expression "param_1 + local_20[0]" identifier + (subscript_expression "local_20[0]" identifier [ number_literal ]))) ;) (expression_statement "puVar5 = &UNK_00076f7f;" (assignment_expression "puVar5 = &UNK_00076f7f" identifier = (pointer_expression "&UNK_00076f7f" & identifier)) ;) (if_statement "if (iVar1 == 0) {\n      puVar5 = &DAT_00076af8;\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      puVar5 = &DAT_00076af8;\n    }" { (expression_statement "puVar5 = &DAT_00076af8;" (assignment_expression "puVar5 = &DAT_00076af8" identifier = (pointer_expression "&DAT_00076af8" & identifier)) ;) })) (expression_statement "printf("  Tag_ARC_ABI_tls: %s\n",puVar5);" (call_expression "printf("  Tag_ARC_ABI_tls: %s\n",puVar5)" identifier (argument_list "("  Tag_ARC_ABI_tls: %s\n",puVar5)" ( (string_literal ""  Tag_ARC_ABI_tls: %s\n"" " string_content escape_sequence ") , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 0xd:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,"smallest",5);\n    }\n    else {\n      uVar2 = dcgettext(0,"default",5);\n    }\n    printf("  Tag_ARC_ABI_enumsize: %s\n",uVar2);\n    break;" case number_literal : (expression_statement "iVar1 = FUN_0004f990(param_1,local_20,0,param_2);" (assignment_expression "iVar1 = FUN_0004f990(param_1,local_20,0,param_2)" identifier = (call_expression "FUN_0004f990(param_1,local_20,0,param_2)" identifier (argument_list "(param_1,local_20,0,param_2)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "param_1 = param_1 + local_20[0];" (assignment_expression "param_1 = param_1 + local_20[0]" identifier = (binary_expression "param_1 + local_20[0]" identifier + (subscript_expression "local_20[0]" identifier [ number_literal ]))) ;) (if_statement "if (iVar1 == 0) {\n      uVar2 = dcgettext(0,"smallest",5);\n    }\n    else {\n      uVar2 = dcgettext(0,"default",5);\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar2 = dcgettext(0,"smallest",5);\n    }" { (expression_statement "uVar2 = dcgettext(0,"smallest",5);" (assignment_expression "uVar2 = dcgettext(0,"smallest",5)" identifier = (call_expression "dcgettext(0,"smallest",5)" identifier (argument_list "(0,"smallest",5)" ( number_literal , (string_literal ""smallest"" " string_content ") , number_literal )))) ;) }) (else_clause "else {\n      uVar2 = dcgettext(0,"default",5);\n    }" else (compound_statement "{\n      uVar2 = dcgettext(0,"default",5);\n    }" { (expression_statement "uVar2 = dcgettext(0,"default",5);" (assignment_expression "uVar2 = dcgettext(0,"default",5)" identifier = (call_expression "dcgettext(0,"default",5)" identifier (argument_list "(0,"default",5)" ( number_literal , (string_literal ""default"" " string_content ") , number_literal )))) ;) }))) (expression_statement "printf("  Tag_ARC_ABI_enumsize: %s\n",uVar2);" (call_expression "printf("  Tag_ARC_ABI_enumsize: %s\n",uVar2)" identifier (argument_list "("  Tag_ARC_ABI_enumsize: %s\n",uVar2)" ( (string_literal ""  Tag_ARC_ABI_enumsize: %s\n"" " string_content escape_sequence ") , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 0xe:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,"default",5);\n    }\n    else {\n      uVar2 = dcgettext(0,&UNK_000770ef,5);\n    }\n    printf("  Tag_ARC_ABI_exceptions: %s\n",uVar2);\n    break;" case number_literal : (expression_statement "iVar1 = FUN_0004f990(param_1,local_20,0,param_2);" (assignment_expression "iVar1 = FUN_0004f990(param_1,local_20,0,param_2)" identifier = (call_expression "FUN_0004f990(param_1,local_20,0,param_2)" identifier (argument_list "(param_1,local_20,0,param_2)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "param_1 = param_1 + local_20[0];" (assignment_expression "param_1 = param_1 + local_20[0]" identifier = (binary_expression "param_1 + local_20[0]" identifier + (subscript_expression "local_20[0]" identifier [ number_literal ]))) ;) (if_statement "if (iVar1 == 0) {\n      uVar2 = dcgettext(0,"default",5);\n    }\n    else {\n      uVar2 = dcgettext(0,&UNK_000770ef,5);\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar2 = dcgettext(0,"default",5);\n    }" { (expression_statement "uVar2 = dcgettext(0,"default",5);" (assignment_expression "uVar2 = dcgettext(0,"default",5)" identifier = (call_expression "dcgettext(0,"default",5)" identifier (argument_list "(0,"default",5)" ( number_literal , (string_literal ""default"" " string_content ") , number_literal )))) ;) }) (else_clause "else {\n      uVar2 = dcgettext(0,&UNK_000770ef,5);\n    }" else (compound_statement "{\n      uVar2 = dcgettext(0,&UNK_000770ef,5);\n    }" { (expression_statement "uVar2 = dcgettext(0,&UNK_000770ef,5);" (assignment_expression "uVar2 = dcgettext(0,&UNK_000770ef,5)" identifier = (call_expression "dcgettext(0,&UNK_000770ef,5)" identifier (argument_list "(0,&UNK_000770ef,5)" ( number_literal , (pointer_expression "&UNK_000770ef" & identifier) , number_literal )))) ;) }))) (expression_statement "printf("  Tag_ARC_ABI_exceptions: %s\n",uVar2);" (call_expression "printf("  Tag_ARC_ABI_exceptions: %s\n",uVar2)" identifier (argument_list "("  Tag_ARC_ABI_exceptions: %s\n",uVar2)" ( (string_literal ""  Tag_ARC_ABI_exceptions: %s\n"" " string_content escape_sequence ") , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 0xf:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ABI_double_size: %d\n",uVar2);\n    break;" case number_literal : (expression_statement "uVar2 = FUN_0004f990(param_1,local_20,0,param_2);" (assignment_expression "uVar2 = FUN_0004f990(param_1,local_20,0,param_2)" identifier = (call_expression "FUN_0004f990(param_1,local_20,0,param_2)" identifier (argument_list "(param_1,local_20,0,param_2)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "param_1 = param_1 + local_20[0];" (assignment_expression "param_1 = param_1 + local_20[0]" identifier = (binary_expression "param_1 + local_20[0]" identifier + (subscript_expression "local_20[0]" identifier [ number_literal ]))) ;) (expression_statement "printf("  Tag_ARC_ABI_double_size: %d\n",uVar2);" (call_expression "printf("  Tag_ARC_ABI_double_size: %d\n",uVar2)" identifier (argument_list "("  Tag_ARC_ABI_double_size: %d\n",uVar2)" ( (string_literal ""  Tag_ARC_ABI_double_size: %d\n"" " string_content escape_sequence ") , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 0x10:\n    pcVar6 = "  Tag_ARC_ISA_config: ";\n    goto code_r0x00021939;" case number_literal : (expression_statement "pcVar6 = "  Tag_ARC_ISA_config: ";" (assignment_expression "pcVar6 = "  Tag_ARC_ISA_config: "" identifier = (string_literal ""  Tag_ARC_ISA_config: "" " string_content ")) ;) (goto_statement "goto code_r0x00021939;" goto statement_identifier ;)) (case_statement "case 0x11:\n    pcVar6 = "  Tag_ARC_ISA_apex: ";\ncode_r0x00021939:\n    printf(pcVar6);\n    param_1 = FUN_0001ff40();\n    break;" case number_literal : (expression_statement "pcVar6 = "  Tag_ARC_ISA_apex: ";" (assignment_expression "pcVar6 = "  Tag_ARC_ISA_apex: "" identifier = (string_literal ""  Tag_ARC_ISA_apex: "" " string_content ")) ;) (labeled_statement "code_r0x00021939:\n    printf(pcVar6);" statement_identifier : (expression_statement "printf(pcVar6);" (call_expression "printf(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;)) (expression_statement "param_1 = FUN_0001ff40();" (assignment_expression "param_1 = FUN_0001ff40()" identifier = (call_expression "FUN_0001ff40()" identifier (argument_list "()" ( )))) ;) (break_statement "break;" break ;)) (case_statement "case 0x12:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ISA_mpy_option: %d\n",uVar2);\n    break;" case number_literal : (expression_statement "uVar2 = FUN_0004f990(param_1,local_20,0,param_2);" (assignment_expression "uVar2 = FUN_0004f990(param_1,local_20,0,param_2)" identifier = (call_expression "FUN_0004f990(param_1,local_20,0,param_2)" identifier (argument_list "(param_1,local_20,0,param_2)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "param_1 = param_1 + local_20[0];" (assignment_expression "param_1 = param_1 + local_20[0]" identifier = (binary_expression "param_1 + local_20[0]" identifier + (subscript_expression "local_20[0]" identifier [ number_literal ]))) ;) (expression_statement "printf("  Tag_ARC_ISA_mpy_option: %d\n",uVar2);" (call_expression "printf("  Tag_ARC_ISA_mpy_option: %d\n",uVar2)" identifier (argument_list "("  Tag_ARC_ISA_mpy_option: %d\n",uVar2)" ( (string_literal ""  Tag_ARC_ISA_mpy_option: %d\n"" " string_content escape_sequence ") , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "default:\n    param_1 = FUN_0001ff40();" default : (expression_statement "param_1 = FUN_0001ff40();" (assignment_expression "param_1 = FUN_0001ff40()" identifier = (call_expression "FUN_0001ff40()" identifier (argument_list "()" ( )))) ;)) })) (return_statement "return param_1;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nuchar * display_arc_attribute(uchar *p,uchar *end)\n\n{\n  uint uVar1;\n  int iVar2;\n  undefined *puVar3;\n  undefined4 uVar4;\n  char *pcVar5;\n  uchar *puVar6;\n  dwarf_vma dVar7;\n  uint len;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x218e9;\n  dVar7 = read_leb128(p,&len,0,end);\n  uVar1 = (uint)dVar7;\n  puVar6 = p + len;\n  switch(uVar1) {\n  case 4:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    puVar6 = puVar6 + len;\n    printf("  Tag_ARC_PCS_config: ");\n    switch((int)dVar7) {\n    case 0:\n      pcVar5 = "Absent/Non standard\n";\n      break;\n    case 1:\n      pcVar5 = "Bare metal/mwdt\n";\n      break;\n    case 2:\n      pcVar5 = "Bare metal/newlib\n";\n      break;\n    case 3:\n      pcVar5 = "Linux/uclibc\n";\n      break;\n    case 4:\n      pcVar5 = "Linux/glibc\n";\n      break;\n    default:\nswitchD_000219be_caseD_5:\n      pcVar5 = "Unknown\n";\n    }\n    goto LAB_00021cab;\n  case 5:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    uVar1 = (uint)dVar7;\n    puVar6 = puVar6 + len;\n    printf("  Tag_ARC_CPU_base: ");\n    if (uVar1 == 2) {\n      puts("ARC7xx");\n      return puVar6;\n    }\n    if (uVar1 < 3) {\n      if (uVar1 == 1) {\n        puts("ARC6xx");\n        return puVar6;\n      }\n    }\n    else {\n      if (uVar1 == 3) {\n        puts("ARCEM");\n        return puVar6;\n      }\n      if (uVar1 == 4) {\n        puts("ARCHS");\n        return puVar6;\n      }\n    }\n    goto LAB_00021ca0;\n  case 6:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    iVar2 = (int)dVar7;\n    puVar6 = puVar6 + len;\n    printf("  Tag_ARC_CPU_variation: ");\n    if (iVar2 != 0) {\n      if (iVar2 - 1U < 0xf) {\n        printf("Core%d\n",iVar2);\n        return puVar6;\n      }\n      puts("Unknown");\n      return puVar6;\n    }\n    goto LAB_00021ca0;\n  case 7:\n    pcVar5 = "  Tag_ARC_CPU_name: ";\n    goto LAB_00021939;\n  case 8:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    puVar6 = puVar6 + len;\n    if ((int)dVar7 == 0) {\n      uVar4 = dcgettext(0,&DAT_00077071,5);\n    }\n    else {\n      uVar4 = dcgettext(0,&DAT_0007706d,5);\n    }\n    printf("  Tag_ARC_ABI_rf16: %s\n",uVar4);\n    break;\n  case 9:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    puVar6 = puVar6 + len;\n    printf("  Tag_ARC_ABI_osver: v%d\n",(int)dVar7);\n    break;\n  case 10:\n  case 0xb:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    iVar2 = (int)dVar7;\n    puVar6 = puVar6 + len;\n    pcVar5 = "  Tag_ARC_ABI_sda: ";\n    if (uVar1 != 10) {\n      pcVar5 = "  Tag_ARC_ABI_pic: ";\n    }\n    printf(pcVar5);\n    if (iVar2 == 1) {\n      puts("MWDT");\n      return puVar6;\n    }\n    if (iVar2 != 0) {\n      if (iVar2 == 2) {\n        puts("GNU");\n        return puVar6;\n      }\n      goto switchD_000219be_caseD_5;\n    }\nLAB_00021ca0:\n    pcVar5 = "Absent\n";\nLAB_00021cab:\n    pcVar5 = (char *)dcgettext(0,pcVar5,5);\n    printf(pcVar5);\n    return puVar6;\n  case 0xc:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    puVar6 = puVar6 + len;\n    puVar3 = &DAT_00076f7f;\n    if ((int)dVar7 == 0) {\n      puVar3 = &DAT_00076af8;\n    }\n    printf("  Tag_ARC_ABI_tls: %s\n",puVar3);\n    break;\n  case 0xd:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    puVar6 = puVar6 + len;\n    if ((int)dVar7 == 0) {\n      uVar4 = dcgettext(0,"smallest",5);\n    }\n    else {\n      uVar4 = dcgettext(0,"default",5);\n    }\n    printf("  Tag_ARC_ABI_enumsize: %s\n",uVar4);\n    break;\n  case 0xe:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    puVar6 = puVar6 + len;\n    if ((int)dVar7 == 0) {\n      uVar4 = dcgettext(0,"default",5);\n    }\n    else {\n      uVar4 = dcgettext(0,"OPTFP",5);\n    }\n    printf("  Tag_ARC_ABI_exceptions: %s\n",uVar4);\n    break;\n  case 0xf:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    puVar6 = puVar6 + len;\n    printf("  Tag_ARC_ABI_double_size: %d\n",(int)dVar7);\n    break;\n  case 0x10:\n    pcVar5 = "  Tag_ARC_ISA_config: ";\n    goto LAB_00021939;\n  case 0x11:\n    pcVar5 = "  Tag_ARC_ISA_apex: ";\nLAB_00021939:\n    printf(pcVar5);\n    puVar6 = display_tag_value(-1,puVar6,end);\n    break;\n  case 0x12:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    puVar6 = puVar6 + len;\n    printf("  Tag_ARC_ISA_mpy_option: %d\n",(int)dVar7);\n    break;\n  default:\n    puVar6 = display_tag_value(uVar1 & 1,puVar6,end);\n  }\n  return puVar6;\n}\n\n" comment (function_definition "uchar * display_arc_attribute(uchar *p,uchar *end)\n\n{\n  uint uVar1;\n  int iVar2;\n  undefined *puVar3;\n  undefined4 uVar4;\n  char *pcVar5;\n  uchar *puVar6;\n  dwarf_vma dVar7;\n  uint len;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x218e9;\n  dVar7 = read_leb128(p,&len,0,end);\n  uVar1 = (uint)dVar7;\n  puVar6 = p + len;\n  switch(uVar1) {\n  case 4:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    puVar6 = puVar6 + len;\n    printf("  Tag_ARC_PCS_config: ");\n    switch((int)dVar7) {\n    case 0:\n      pcVar5 = "Absent/Non standard\n";\n      break;\n    case 1:\n      pcVar5 = "Bare metal/mwdt\n";\n      break;\n    case 2:\n      pcVar5 = "Bare metal/newlib\n";\n      break;\n    case 3:\n      pcVar5 = "Linux/uclibc\n";\n      break;\n    case 4:\n      pcVar5 = "Linux/glibc\n";\n      break;\n    default:\nswitchD_000219be_caseD_5:\n      pcVar5 = "Unknown\n";\n    }\n    goto LAB_00021cab;\n  case 5:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    uVar1 = (uint)dVar7;\n    puVar6 = puVar6 + len;\n    printf("  Tag_ARC_CPU_base: ");\n    if (uVar1 == 2) {\n      puts("ARC7xx");\n      return puVar6;\n    }\n    if (uVar1 < 3) {\n      if (uVar1 == 1) {\n        puts("ARC6xx");\n        return puVar6;\n      }\n    }\n    else {\n      if (uVar1 == 3) {\n        puts("ARCEM");\n        return puVar6;\n      }\n      if (uVar1 == 4) {\n        puts("ARCHS");\n        return puVar6;\n      }\n    }\n    goto LAB_00021ca0;\n  case 6:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    iVar2 = (int)dVar7;\n    puVar6 = puVar6 + len;\n    printf("  Tag_ARC_CPU_variation: ");\n    if (iVar2 != 0) {\n      if (iVar2 - 1U < 0xf) {\n        printf("Core%d\n",iVar2);\n        return puVar6;\n      }\n      puts("Unknown");\n      return puVar6;\n    }\n    goto LAB_00021ca0;\n  case 7:\n    pcVar5 = "  Tag_ARC_CPU_name: ";\n    goto LAB_00021939;\n  case 8:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    puVar6 = puVar6 + len;\n    if ((int)dVar7 == 0) {\n      uVar4 = dcgettext(0,&DAT_00077071,5);\n    }\n    else {\n      uVar4 = dcgettext(0,&DAT_0007706d,5);\n    }\n    printf("  Tag_ARC_ABI_rf16: %s\n",uVar4);\n    break;\n  case 9:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    puVar6 = puVar6 + len;\n    printf("  Tag_ARC_ABI_osver: v%d\n",(int)dVar7);\n    break;\n  case 10:\n  case 0xb:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    iVar2 = (int)dVar7;\n    puVar6 = puVar6 + len;\n    pcVar5 = "  Tag_ARC_ABI_sda: ";\n    if (uVar1 != 10) {\n      pcVar5 = "  Tag_ARC_ABI_pic: ";\n    }\n    printf(pcVar5);\n    if (iVar2 == 1) {\n      puts("MWDT");\n      return puVar6;\n    }\n    if (iVar2 != 0) {\n      if (iVar2 == 2) {\n        puts("GNU");\n        return puVar6;\n      }\n      goto switchD_000219be_caseD_5;\n    }\nLAB_00021ca0:\n    pcVar5 = "Absent\n";\nLAB_00021cab:\n    pcVar5 = (char *)dcgettext(0,pcVar5,5);\n    printf(pcVar5);\n    return puVar6;\n  case 0xc:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    puVar6 = puVar6 + len;\n    puVar3 = &DAT_00076f7f;\n    if ((int)dVar7 == 0) {\n      puVar3 = &DAT_00076af8;\n    }\n    printf("  Tag_ARC_ABI_tls: %s\n",puVar3);\n    break;\n  case 0xd:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    puVar6 = puVar6 + len;\n    if ((int)dVar7 == 0) {\n      uVar4 = dcgettext(0,"smallest",5);\n    }\n    else {\n      uVar4 = dcgettext(0,"default",5);\n    }\n    printf("  Tag_ARC_ABI_enumsize: %s\n",uVar4);\n    break;\n  case 0xe:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    puVar6 = puVar6 + len;\n    if ((int)dVar7 == 0) {\n      uVar4 = dcgettext(0,"default",5);\n    }\n    else {\n      uVar4 = dcgettext(0,"OPTFP",5);\n    }\n    printf("  Tag_ARC_ABI_exceptions: %s\n",uVar4);\n    break;\n  case 0xf:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    puVar6 = puVar6 + len;\n    printf("  Tag_ARC_ABI_double_size: %d\n",(int)dVar7);\n    break;\n  case 0x10:\n    pcVar5 = "  Tag_ARC_ISA_config: ";\n    goto LAB_00021939;\n  case 0x11:\n    pcVar5 = "  Tag_ARC_ISA_apex: ";\nLAB_00021939:\n    printf(pcVar5);\n    puVar6 = display_tag_value(-1,puVar6,end);\n    break;\n  case 0x12:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    puVar6 = puVar6 + len;\n    printf("  Tag_ARC_ISA_mpy_option: %d\n",(int)dVar7);\n    break;\n  default:\n    puVar6 = display_tag_value(uVar1 & 1,puVar6,end);\n  }\n  return puVar6;\n}" type_identifier (pointer_declarator "* display_arc_attribute(uchar *p,uchar *end)" * (function_declarator "display_arc_attribute(uchar *p,uchar *end)" identifier (parameter_list "(uchar *p,uchar *end)" ( (parameter_declaration "uchar *p" type_identifier (pointer_declarator "*p" * identifier)) , (parameter_declaration "uchar *end" type_identifier (pointer_declarator "*end" * identifier)) )))) (compound_statement "{\n  uint uVar1;\n  int iVar2;\n  undefined *puVar3;\n  undefined4 uVar4;\n  char *pcVar5;\n  uchar *puVar6;\n  dwarf_vma dVar7;\n  uint len;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x218e9;\n  dVar7 = read_leb128(p,&len,0,end);\n  uVar1 = (uint)dVar7;\n  puVar6 = p + len;\n  switch(uVar1) {\n  case 4:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    puVar6 = puVar6 + len;\n    printf("  Tag_ARC_PCS_config: ");\n    switch((int)dVar7) {\n    case 0:\n      pcVar5 = "Absent/Non standard\n";\n      break;\n    case 1:\n      pcVar5 = "Bare metal/mwdt\n";\n      break;\n    case 2:\n      pcVar5 = "Bare metal/newlib\n";\n      break;\n    case 3:\n      pcVar5 = "Linux/uclibc\n";\n      break;\n    case 4:\n      pcVar5 = "Linux/glibc\n";\n      break;\n    default:\nswitchD_000219be_caseD_5:\n      pcVar5 = "Unknown\n";\n    }\n    goto LAB_00021cab;\n  case 5:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    uVar1 = (uint)dVar7;\n    puVar6 = puVar6 + len;\n    printf("  Tag_ARC_CPU_base: ");\n    if (uVar1 == 2) {\n      puts("ARC7xx");\n      return puVar6;\n    }\n    if (uVar1 < 3) {\n      if (uVar1 == 1) {\n        puts("ARC6xx");\n        return puVar6;\n      }\n    }\n    else {\n      if (uVar1 == 3) {\n        puts("ARCEM");\n        return puVar6;\n      }\n      if (uVar1 == 4) {\n        puts("ARCHS");\n        return puVar6;\n      }\n    }\n    goto LAB_00021ca0;\n  case 6:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    iVar2 = (int)dVar7;\n    puVar6 = puVar6 + len;\n    printf("  Tag_ARC_CPU_variation: ");\n    if (iVar2 != 0) {\n      if (iVar2 - 1U < 0xf) {\n        printf("Core%d\n",iVar2);\n        return puVar6;\n      }\n      puts("Unknown");\n      return puVar6;\n    }\n    goto LAB_00021ca0;\n  case 7:\n    pcVar5 = "  Tag_ARC_CPU_name: ";\n    goto LAB_00021939;\n  case 8:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    puVar6 = puVar6 + len;\n    if ((int)dVar7 == 0) {\n      uVar4 = dcgettext(0,&DAT_00077071,5);\n    }\n    else {\n      uVar4 = dcgettext(0,&DAT_0007706d,5);\n    }\n    printf("  Tag_ARC_ABI_rf16: %s\n",uVar4);\n    break;\n  case 9:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    puVar6 = puVar6 + len;\n    printf("  Tag_ARC_ABI_osver: v%d\n",(int)dVar7);\n    break;\n  case 10:\n  case 0xb:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    iVar2 = (int)dVar7;\n    puVar6 = puVar6 + len;\n    pcVar5 = "  Tag_ARC_ABI_sda: ";\n    if (uVar1 != 10) {\n      pcVar5 = "  Tag_ARC_ABI_pic: ";\n    }\n    printf(pcVar5);\n    if (iVar2 == 1) {\n      puts("MWDT");\n      return puVar6;\n    }\n    if (iVar2 != 0) {\n      if (iVar2 == 2) {\n        puts("GNU");\n        return puVar6;\n      }\n      goto switchD_000219be_caseD_5;\n    }\nLAB_00021ca0:\n    pcVar5 = "Absent\n";\nLAB_00021cab:\n    pcVar5 = (char *)dcgettext(0,pcVar5,5);\n    printf(pcVar5);\n    return puVar6;\n  case 0xc:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    puVar6 = puVar6 + len;\n    puVar3 = &DAT_00076f7f;\n    if ((int)dVar7 == 0) {\n      puVar3 = &DAT_00076af8;\n    }\n    printf("  Tag_ARC_ABI_tls: %s\n",puVar3);\n    break;\n  case 0xd:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    puVar6 = puVar6 + len;\n    if ((int)dVar7 == 0) {\n      uVar4 = dcgettext(0,"smallest",5);\n    }\n    else {\n      uVar4 = dcgettext(0,"default",5);\n    }\n    printf("  Tag_ARC_ABI_enumsize: %s\n",uVar4);\n    break;\n  case 0xe:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    puVar6 = puVar6 + len;\n    if ((int)dVar7 == 0) {\n      uVar4 = dcgettext(0,"default",5);\n    }\n    else {\n      uVar4 = dcgettext(0,"OPTFP",5);\n    }\n    printf("  Tag_ARC_ABI_exceptions: %s\n",uVar4);\n    break;\n  case 0xf:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    puVar6 = puVar6 + len;\n    printf("  Tag_ARC_ABI_double_size: %d\n",(int)dVar7);\n    break;\n  case 0x10:\n    pcVar5 = "  Tag_ARC_ISA_config: ";\n    goto LAB_00021939;\n  case 0x11:\n    pcVar5 = "  Tag_ARC_ISA_apex: ";\nLAB_00021939:\n    printf(pcVar5);\n    puVar6 = display_tag_value(-1,puVar6,end);\n    break;\n  case 0x12:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    puVar6 = puVar6 + len;\n    printf("  Tag_ARC_ISA_mpy_option: %d\n",(int)dVar7);\n    break;\n  default:\n    puVar6 = display_tag_value(uVar1 & 1,puVar6,end);\n  }\n  return puVar6;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "uchar *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "dwarf_vma dVar7;" type_identifier identifier ;) (declaration "uint len;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x218e9;" (assignment_expression "uStack_14 = 0x218e9" identifier = number_literal) ;) (expression_statement "dVar7 = read_leb128(p,&len,0,end);" (assignment_expression "dVar7 = read_leb128(p,&len,0,end)" identifier = (call_expression "read_leb128(p,&len,0,end)" identifier (argument_list "(p,&len,0,end)" ( identifier , (pointer_expression "&len" & identifier) , number_literal , identifier )))) ;) (expression_statement "uVar1 = (uint)dVar7;" (assignment_expression "uVar1 = (uint)dVar7" identifier = (cast_expression "(uint)dVar7" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar6 = p + len;" (assignment_expression "puVar6 = p + len" identifier = (binary_expression "p + len" identifier + identifier)) ;) (switch_statement "switch(uVar1) {\n  case 4:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    puVar6 = puVar6 + len;\n    printf("  Tag_ARC_PCS_config: ");\n    switch((int)dVar7) {\n    case 0:\n      pcVar5 = "Absent/Non standard\n";\n      break;\n    case 1:\n      pcVar5 = "Bare metal/mwdt\n";\n      break;\n    case 2:\n      pcVar5 = "Bare metal/newlib\n";\n      break;\n    case 3:\n      pcVar5 = "Linux/uclibc\n";\n      break;\n    case 4:\n      pcVar5 = "Linux/glibc\n";\n      break;\n    default:\nswitchD_000219be_caseD_5:\n      pcVar5 = "Unknown\n";\n    }\n    goto LAB_00021cab;\n  case 5:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    uVar1 = (uint)dVar7;\n    puVar6 = puVar6 + len;\n    printf("  Tag_ARC_CPU_base: ");\n    if (uVar1 == 2) {\n      puts("ARC7xx");\n      return puVar6;\n    }\n    if (uVar1 < 3) {\n      if (uVar1 == 1) {\n        puts("ARC6xx");\n        return puVar6;\n      }\n    }\n    else {\n      if (uVar1 == 3) {\n        puts("ARCEM");\n        return puVar6;\n      }\n      if (uVar1 == 4) {\n        puts("ARCHS");\n        return puVar6;\n      }\n    }\n    goto LAB_00021ca0;\n  case 6:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    iVar2 = (int)dVar7;\n    puVar6 = puVar6 + len;\n    printf("  Tag_ARC_CPU_variation: ");\n    if (iVar2 != 0) {\n      if (iVar2 - 1U < 0xf) {\n        printf("Core%d\n",iVar2);\n        return puVar6;\n      }\n      puts("Unknown");\n      return puVar6;\n    }\n    goto LAB_00021ca0;\n  case 7:\n    pcVar5 = "  Tag_ARC_CPU_name: ";\n    goto LAB_00021939;\n  case 8:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    puVar6 = puVar6 + len;\n    if ((int)dVar7 == 0) {\n      uVar4 = dcgettext(0,&DAT_00077071,5);\n    }\n    else {\n      uVar4 = dcgettext(0,&DAT_0007706d,5);\n    }\n    printf("  Tag_ARC_ABI_rf16: %s\n",uVar4);\n    break;\n  case 9:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    puVar6 = puVar6 + len;\n    printf("  Tag_ARC_ABI_osver: v%d\n",(int)dVar7);\n    break;\n  case 10:\n  case 0xb:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    iVar2 = (int)dVar7;\n    puVar6 = puVar6 + len;\n    pcVar5 = "  Tag_ARC_ABI_sda: ";\n    if (uVar1 != 10) {\n      pcVar5 = "  Tag_ARC_ABI_pic: ";\n    }\n    printf(pcVar5);\n    if (iVar2 == 1) {\n      puts("MWDT");\n      return puVar6;\n    }\n    if (iVar2 != 0) {\n      if (iVar2 == 2) {\n        puts("GNU");\n        return puVar6;\n      }\n      goto switchD_000219be_caseD_5;\n    }\nLAB_00021ca0:\n    pcVar5 = "Absent\n";\nLAB_00021cab:\n    pcVar5 = (char *)dcgettext(0,pcVar5,5);\n    printf(pcVar5);\n    return puVar6;\n  case 0xc:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    puVar6 = puVar6 + len;\n    puVar3 = &DAT_00076f7f;\n    if ((int)dVar7 == 0) {\n      puVar3 = &DAT_00076af8;\n    }\n    printf("  Tag_ARC_ABI_tls: %s\n",puVar3);\n    break;\n  case 0xd:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    puVar6 = puVar6 + len;\n    if ((int)dVar7 == 0) {\n      uVar4 = dcgettext(0,"smallest",5);\n    }\n    else {\n      uVar4 = dcgettext(0,"default",5);\n    }\n    printf("  Tag_ARC_ABI_enumsize: %s\n",uVar4);\n    break;\n  case 0xe:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    puVar6 = puVar6 + len;\n    if ((int)dVar7 == 0) {\n      uVar4 = dcgettext(0,"default",5);\n    }\n    else {\n      uVar4 = dcgettext(0,"OPTFP",5);\n    }\n    printf("  Tag_ARC_ABI_exceptions: %s\n",uVar4);\n    break;\n  case 0xf:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    puVar6 = puVar6 + len;\n    printf("  Tag_ARC_ABI_double_size: %d\n",(int)dVar7);\n    break;\n  case 0x10:\n    pcVar5 = "  Tag_ARC_ISA_config: ";\n    goto LAB_00021939;\n  case 0x11:\n    pcVar5 = "  Tag_ARC_ISA_apex: ";\nLAB_00021939:\n    printf(pcVar5);\n    puVar6 = display_tag_value(-1,puVar6,end);\n    break;\n  case 0x12:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    puVar6 = puVar6 + len;\n    printf("  Tag_ARC_ISA_mpy_option: %d\n",(int)dVar7);\n    break;\n  default:\n    puVar6 = display_tag_value(uVar1 & 1,puVar6,end);\n  }" switch (parenthesized_expression "(uVar1)" ( identifier )) (compound_statement "{\n  case 4:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    puVar6 = puVar6 + len;\n    printf("  Tag_ARC_PCS_config: ");\n    switch((int)dVar7) {\n    case 0:\n      pcVar5 = "Absent/Non standard\n";\n      break;\n    case 1:\n      pcVar5 = "Bare metal/mwdt\n";\n      break;\n    case 2:\n      pcVar5 = "Bare metal/newlib\n";\n      break;\n    case 3:\n      pcVar5 = "Linux/uclibc\n";\n      break;\n    case 4:\n      pcVar5 = "Linux/glibc\n";\n      break;\n    default:\nswitchD_000219be_caseD_5:\n      pcVar5 = "Unknown\n";\n    }\n    goto LAB_00021cab;\n  case 5:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    uVar1 = (uint)dVar7;\n    puVar6 = puVar6 + len;\n    printf("  Tag_ARC_CPU_base: ");\n    if (uVar1 == 2) {\n      puts("ARC7xx");\n      return puVar6;\n    }\n    if (uVar1 < 3) {\n      if (uVar1 == 1) {\n        puts("ARC6xx");\n        return puVar6;\n      }\n    }\n    else {\n      if (uVar1 == 3) {\n        puts("ARCEM");\n        return puVar6;\n      }\n      if (uVar1 == 4) {\n        puts("ARCHS");\n        return puVar6;\n      }\n    }\n    goto LAB_00021ca0;\n  case 6:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    iVar2 = (int)dVar7;\n    puVar6 = puVar6 + len;\n    printf("  Tag_ARC_CPU_variation: ");\n    if (iVar2 != 0) {\n      if (iVar2 - 1U < 0xf) {\n        printf("Core%d\n",iVar2);\n        return puVar6;\n      }\n      puts("Unknown");\n      return puVar6;\n    }\n    goto LAB_00021ca0;\n  case 7:\n    pcVar5 = "  Tag_ARC_CPU_name: ";\n    goto LAB_00021939;\n  case 8:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    puVar6 = puVar6 + len;\n    if ((int)dVar7 == 0) {\n      uVar4 = dcgettext(0,&DAT_00077071,5);\n    }\n    else {\n      uVar4 = dcgettext(0,&DAT_0007706d,5);\n    }\n    printf("  Tag_ARC_ABI_rf16: %s\n",uVar4);\n    break;\n  case 9:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    puVar6 = puVar6 + len;\n    printf("  Tag_ARC_ABI_osver: v%d\n",(int)dVar7);\n    break;\n  case 10:\n  case 0xb:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    iVar2 = (int)dVar7;\n    puVar6 = puVar6 + len;\n    pcVar5 = "  Tag_ARC_ABI_sda: ";\n    if (uVar1 != 10) {\n      pcVar5 = "  Tag_ARC_ABI_pic: ";\n    }\n    printf(pcVar5);\n    if (iVar2 == 1) {\n      puts("MWDT");\n      return puVar6;\n    }\n    if (iVar2 != 0) {\n      if (iVar2 == 2) {\n        puts("GNU");\n        return puVar6;\n      }\n      goto switchD_000219be_caseD_5;\n    }\nLAB_00021ca0:\n    pcVar5 = "Absent\n";\nLAB_00021cab:\n    pcVar5 = (char *)dcgettext(0,pcVar5,5);\n    printf(pcVar5);\n    return puVar6;\n  case 0xc:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    puVar6 = puVar6 + len;\n    puVar3 = &DAT_00076f7f;\n    if ((int)dVar7 == 0) {\n      puVar3 = &DAT_00076af8;\n    }\n    printf("  Tag_ARC_ABI_tls: %s\n",puVar3);\n    break;\n  case 0xd:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    puVar6 = puVar6 + len;\n    if ((int)dVar7 == 0) {\n      uVar4 = dcgettext(0,"smallest",5);\n    }\n    else {\n      uVar4 = dcgettext(0,"default",5);\n    }\n    printf("  Tag_ARC_ABI_enumsize: %s\n",uVar4);\n    break;\n  case 0xe:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    puVar6 = puVar6 + len;\n    if ((int)dVar7 == 0) {\n      uVar4 = dcgettext(0,"default",5);\n    }\n    else {\n      uVar4 = dcgettext(0,"OPTFP",5);\n    }\n    printf("  Tag_ARC_ABI_exceptions: %s\n",uVar4);\n    break;\n  case 0xf:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    puVar6 = puVar6 + len;\n    printf("  Tag_ARC_ABI_double_size: %d\n",(int)dVar7);\n    break;\n  case 0x10:\n    pcVar5 = "  Tag_ARC_ISA_config: ";\n    goto LAB_00021939;\n  case 0x11:\n    pcVar5 = "  Tag_ARC_ISA_apex: ";\nLAB_00021939:\n    printf(pcVar5);\n    puVar6 = display_tag_value(-1,puVar6,end);\n    break;\n  case 0x12:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    puVar6 = puVar6 + len;\n    printf("  Tag_ARC_ISA_mpy_option: %d\n",(int)dVar7);\n    break;\n  default:\n    puVar6 = display_tag_value(uVar1 & 1,puVar6,end);\n  }" { (case_statement "case 4:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    puVar6 = puVar6 + len;\n    printf("  Tag_ARC_PCS_config: ");\n    switch((int)dVar7) {\n    case 0:\n      pcVar5 = "Absent/Non standard\n";\n      break;\n    case 1:\n      pcVar5 = "Bare metal/mwdt\n";\n      break;\n    case 2:\n      pcVar5 = "Bare metal/newlib\n";\n      break;\n    case 3:\n      pcVar5 = "Linux/uclibc\n";\n      break;\n    case 4:\n      pcVar5 = "Linux/glibc\n";\n      break;\n    default:\nswitchD_000219be_caseD_5:\n      pcVar5 = "Unknown\n";\n    }\n    goto LAB_00021cab;" case number_literal : (expression_statement "dVar7 = read_leb128(puVar6,&len,0,end);" (assignment_expression "dVar7 = read_leb128(puVar6,&len,0,end)" identifier = (call_expression "read_leb128(puVar6,&len,0,end)" identifier (argument_list "(puVar6,&len,0,end)" ( identifier , (pointer_expression "&len" & identifier) , number_literal , identifier )))) ;) (expression_statement "puVar6 = puVar6 + len;" (assignment_expression "puVar6 = puVar6 + len" identifier = (binary_expression "puVar6 + len" identifier + identifier)) ;) (expression_statement "printf("  Tag_ARC_PCS_config: ");" (call_expression "printf("  Tag_ARC_PCS_config: ")" identifier (argument_list "("  Tag_ARC_PCS_config: ")" ( (string_literal ""  Tag_ARC_PCS_config: "" " string_content ") ))) ;) (switch_statement "switch((int)dVar7) {\n    case 0:\n      pcVar5 = "Absent/Non standard\n";\n      break;\n    case 1:\n      pcVar5 = "Bare metal/mwdt\n";\n      break;\n    case 2:\n      pcVar5 = "Bare metal/newlib\n";\n      break;\n    case 3:\n      pcVar5 = "Linux/uclibc\n";\n      break;\n    case 4:\n      pcVar5 = "Linux/glibc\n";\n      break;\n    default:\nswitchD_000219be_caseD_5:\n      pcVar5 = "Unknown\n";\n    }" switch (parenthesized_expression "((int)dVar7)" ( (cast_expression "(int)dVar7" ( (type_descriptor "int" primitive_type) ) identifier) )) (compound_statement "{\n    case 0:\n      pcVar5 = "Absent/Non standard\n";\n      break;\n    case 1:\n      pcVar5 = "Bare metal/mwdt\n";\n      break;\n    case 2:\n      pcVar5 = "Bare metal/newlib\n";\n      break;\n    case 3:\n      pcVar5 = "Linux/uclibc\n";\n      break;\n    case 4:\n      pcVar5 = "Linux/glibc\n";\n      break;\n    default:\nswitchD_000219be_caseD_5:\n      pcVar5 = "Unknown\n";\n    }" { (case_statement "case 0:\n      pcVar5 = "Absent/Non standard\n";\n      break;" case number_literal : (expression_statement "pcVar5 = "Absent/Non standard\n";" (assignment_expression "pcVar5 = "Absent/Non standard\n"" identifier = (string_literal ""Absent/Non standard\n"" " string_content escape_sequence ")) ;) (break_statement "break;" break ;)) (case_statement "case 1:\n      pcVar5 = "Bare metal/mwdt\n";\n      break;" case number_literal : (expression_statement "pcVar5 = "Bare metal/mwdt\n";" (assignment_expression "pcVar5 = "Bare metal/mwdt\n"" identifier = (string_literal ""Bare metal/mwdt\n"" " string_content escape_sequence ")) ;) (break_statement "break;" break ;)) (case_statement "case 2:\n      pcVar5 = "Bare metal/newlib\n";\n      break;" case number_literal : (expression_statement "pcVar5 = "Bare metal/newlib\n";" (assignment_expression "pcVar5 = "Bare metal/newlib\n"" identifier = (string_literal ""Bare metal/newlib\n"" " string_content escape_sequence ")) ;) (break_statement "break;" break ;)) (case_statement "case 3:\n      pcVar5 = "Linux/uclibc\n";\n      break;" case number_literal : (expression_statement "pcVar5 = "Linux/uclibc\n";" (assignment_expression "pcVar5 = "Linux/uclibc\n"" identifier = (string_literal ""Linux/uclibc\n"" " string_content escape_sequence ")) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n      pcVar5 = "Linux/glibc\n";\n      break;" case number_literal : (expression_statement "pcVar5 = "Linux/glibc\n";" (assignment_expression "pcVar5 = "Linux/glibc\n"" identifier = (string_literal ""Linux/glibc\n"" " string_content escape_sequence ")) ;) (break_statement "break;" break ;)) (case_statement "default:\nswitchD_000219be_caseD_5:\n      pcVar5 = "Unknown\n";" default : (labeled_statement "switchD_000219be_caseD_5:\n      pcVar5 = "Unknown\n";" statement_identifier : (expression_statement "pcVar5 = "Unknown\n";" (assignment_expression "pcVar5 = "Unknown\n"" identifier = (string_literal ""Unknown\n"" " string_content escape_sequence ")) ;))) })) (goto_statement "goto LAB_00021cab;" goto statement_identifier ;)) (case_statement "case 5:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    uVar1 = (uint)dVar7;\n    puVar6 = puVar6 + len;\n    printf("  Tag_ARC_CPU_base: ");\n    if (uVar1 == 2) {\n      puts("ARC7xx");\n      return puVar6;\n    }\n    if (uVar1 < 3) {\n      if (uVar1 == 1) {\n        puts("ARC6xx");\n        return puVar6;\n      }\n    }\n    else {\n      if (uVar1 == 3) {\n        puts("ARCEM");\n        return puVar6;\n      }\n      if (uVar1 == 4) {\n        puts("ARCHS");\n        return puVar6;\n      }\n    }\n    goto LAB_00021ca0;" case number_literal : (expression_statement "dVar7 = read_leb128(puVar6,&len,0,end);" (assignment_expression "dVar7 = read_leb128(puVar6,&len,0,end)" identifier = (call_expression "read_leb128(puVar6,&len,0,end)" identifier (argument_list "(puVar6,&len,0,end)" ( identifier , (pointer_expression "&len" & identifier) , number_literal , identifier )))) ;) (expression_statement "uVar1 = (uint)dVar7;" (assignment_expression "uVar1 = (uint)dVar7" identifier = (cast_expression "(uint)dVar7" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar6 = puVar6 + len;" (assignment_expression "puVar6 = puVar6 + len" identifier = (binary_expression "puVar6 + len" identifier + identifier)) ;) (expression_statement "printf("  Tag_ARC_CPU_base: ");" (call_expression "printf("  Tag_ARC_CPU_base: ")" identifier (argument_list "("  Tag_ARC_CPU_base: ")" ( (string_literal ""  Tag_ARC_CPU_base: "" " string_content ") ))) ;) (if_statement "if (uVar1 == 2) {\n      puts("ARC7xx");\n      return puVar6;\n    }" if (parenthesized_expression "(uVar1 == 2)" ( (binary_expression "uVar1 == 2" identifier == number_literal) )) (compound_statement "{\n      puts("ARC7xx");\n      return puVar6;\n    }" { (expression_statement "puts("ARC7xx");" (call_expression "puts("ARC7xx")" identifier (argument_list "("ARC7xx")" ( (string_literal ""ARC7xx"" " string_content ") ))) ;) (return_statement "return puVar6;" return identifier ;) })) (if_statement "if (uVar1 < 3) {\n      if (uVar1 == 1) {\n        puts("ARC6xx");\n        return puVar6;\n      }\n    }\n    else {\n      if (uVar1 == 3) {\n        puts("ARCEM");\n        return puVar6;\n      }\n      if (uVar1 == 4) {\n        puts("ARCHS");\n        return puVar6;\n      }\n    }" if (parenthesized_expression "(uVar1 < 3)" ( (binary_expression "uVar1 < 3" identifier < number_literal) )) (compound_statement "{\n      if (uVar1 == 1) {\n        puts("ARC6xx");\n        return puVar6;\n      }\n    }" { (if_statement "if (uVar1 == 1) {\n        puts("ARC6xx");\n        return puVar6;\n      }" if (parenthesized_expression "(uVar1 == 1)" ( (binary_expression "uVar1 == 1" identifier == number_literal) )) (compound_statement "{\n        puts("ARC6xx");\n        return puVar6;\n      }" { (expression_statement "puts("ARC6xx");" (call_expression "puts("ARC6xx")" identifier (argument_list "("ARC6xx")" ( (string_literal ""ARC6xx"" " string_content ") ))) ;) (return_statement "return puVar6;" return identifier ;) })) }) (else_clause "else {\n      if (uVar1 == 3) {\n        puts("ARCEM");\n        return puVar6;\n      }\n      if (uVar1 == 4) {\n        puts("ARCHS");\n        return puVar6;\n      }\n    }" else (compound_statement "{\n      if (uVar1 == 3) {\n        puts("ARCEM");\n        return puVar6;\n      }\n      if (uVar1 == 4) {\n        puts("ARCHS");\n        return puVar6;\n      }\n    }" { (if_statement "if (uVar1 == 3) {\n        puts("ARCEM");\n        return puVar6;\n      }" if (parenthesized_expression "(uVar1 == 3)" ( (binary_expression "uVar1 == 3" identifier == number_literal) )) (compound_statement "{\n        puts("ARCEM");\n        return puVar6;\n      }" { (expression_statement "puts("ARCEM");" (call_expression "puts("ARCEM")" identifier (argument_list "("ARCEM")" ( (string_literal ""ARCEM"" " string_content ") ))) ;) (return_statement "return puVar6;" return identifier ;) })) (if_statement "if (uVar1 == 4) {\n        puts("ARCHS");\n        return puVar6;\n      }" if (parenthesized_expression "(uVar1 == 4)" ( (binary_expression "uVar1 == 4" identifier == number_literal) )) (compound_statement "{\n        puts("ARCHS");\n        return puVar6;\n      }" { (expression_statement "puts("ARCHS");" (call_expression "puts("ARCHS")" identifier (argument_list "("ARCHS")" ( (string_literal ""ARCHS"" " string_content ") ))) ;) (return_statement "return puVar6;" return identifier ;) })) }))) (goto_statement "goto LAB_00021ca0;" goto statement_identifier ;)) (case_statement "case 6:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    iVar2 = (int)dVar7;\n    puVar6 = puVar6 + len;\n    printf("  Tag_ARC_CPU_variation: ");\n    if (iVar2 != 0) {\n      if (iVar2 - 1U < 0xf) {\n        printf("Core%d\n",iVar2);\n        return puVar6;\n      }\n      puts("Unknown");\n      return puVar6;\n    }\n    goto LAB_00021ca0;" case number_literal : (expression_statement "dVar7 = read_leb128(puVar6,&len,0,end);" (assignment_expression "dVar7 = read_leb128(puVar6,&len,0,end)" identifier = (call_expression "read_leb128(puVar6,&len,0,end)" identifier (argument_list "(puVar6,&len,0,end)" ( identifier , (pointer_expression "&len" & identifier) , number_literal , identifier )))) ;) (expression_statement "iVar2 = (int)dVar7;" (assignment_expression "iVar2 = (int)dVar7" identifier = (cast_expression "(int)dVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "puVar6 = puVar6 + len;" (assignment_expression "puVar6 = puVar6 + len" identifier = (binary_expression "puVar6 + len" identifier + identifier)) ;) (expression_statement "printf("  Tag_ARC_CPU_variation: ");" (call_expression "printf("  Tag_ARC_CPU_variation: ")" identifier (argument_list "("  Tag_ARC_CPU_variation: ")" ( (string_literal ""  Tag_ARC_CPU_variation: "" " string_content ") ))) ;) (if_statement "if (iVar2 != 0) {\n      if (iVar2 - 1U < 0xf) {\n        printf("Core%d\n",iVar2);\n        return puVar6;\n      }\n      puts("Unknown");\n      return puVar6;\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      if (iVar2 - 1U < 0xf) {\n        printf("Core%d\n",iVar2);\n        return puVar6;\n      }\n      puts("Unknown");\n      return puVar6;\n    }" { (if_statement "if (iVar2 - 1U < 0xf) {\n        printf("Core%d\n",iVar2);\n        return puVar6;\n      }" if (parenthesized_expression "(iVar2 - 1U < 0xf)" ( (binary_expression "iVar2 - 1U < 0xf" (binary_expression "iVar2 - 1U" identifier - number_literal) < number_literal) )) (compound_statement "{\n        printf("Core%d\n",iVar2);\n        return puVar6;\n      }" { (expression_statement "printf("Core%d\n",iVar2);" (call_expression "printf("Core%d\n",iVar2)" identifier (argument_list "("Core%d\n",iVar2)" ( (string_literal ""Core%d\n"" " string_content escape_sequence ") , identifier ))) ;) (return_statement "return puVar6;" return identifier ;) })) (expression_statement "puts("Unknown");" (call_expression "puts("Unknown")" identifier (argument_list "("Unknown")" ( (string_literal ""Unknown"" " string_content ") ))) ;) (return_statement "return puVar6;" return identifier ;) })) (goto_statement "goto LAB_00021ca0;" goto statement_identifier ;)) (case_statement "case 7:\n    pcVar5 = "  Tag_ARC_CPU_name: ";\n    goto LAB_00021939;" case number_literal : (expression_statement "pcVar5 = "  Tag_ARC_CPU_name: ";" (assignment_expression "pcVar5 = "  Tag_ARC_CPU_name: "" identifier = (string_literal ""  Tag_ARC_CPU_name: "" " string_content ")) ;) (goto_statement "goto LAB_00021939;" goto statement_identifier ;)) (case_statement "case 8:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    puVar6 = puVar6 + len;\n    if ((int)dVar7 == 0) {\n      uVar4 = dcgettext(0,&DAT_00077071,5);\n    }\n    else {\n      uVar4 = dcgettext(0,&DAT_0007706d,5);\n    }\n    printf("  Tag_ARC_ABI_rf16: %s\n",uVar4);\n    break;" case number_literal : (expression_statement "dVar7 = read_leb128(puVar6,&len,0,end);" (assignment_expression "dVar7 = read_leb128(puVar6,&len,0,end)" identifier = (call_expression "read_leb128(puVar6,&len,0,end)" identifier (argument_list "(puVar6,&len,0,end)" ( identifier , (pointer_expression "&len" & identifier) , number_literal , identifier )))) ;) (expression_statement "puVar6 = puVar6 + len;" (assignment_expression "puVar6 = puVar6 + len" identifier = (binary_expression "puVar6 + len" identifier + identifier)) ;) (if_statement "if ((int)dVar7 == 0) {\n      uVar4 = dcgettext(0,&DAT_00077071,5);\n    }\n    else {\n      uVar4 = dcgettext(0,&DAT_0007706d,5);\n    }" if (parenthesized_expression "((int)dVar7 == 0)" ( (binary_expression "(int)dVar7 == 0" (cast_expression "(int)dVar7" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (compound_statement "{\n      uVar4 = dcgettext(0,&DAT_00077071,5);\n    }" { (expression_statement "uVar4 = dcgettext(0,&DAT_00077071,5);" (assignment_expression "uVar4 = dcgettext(0,&DAT_00077071,5)" identifier = (call_expression "dcgettext(0,&DAT_00077071,5)" identifier (argument_list "(0,&DAT_00077071,5)" ( number_literal , (pointer_expression "&DAT_00077071" & identifier) , number_literal )))) ;) }) (else_clause "else {\n      uVar4 = dcgettext(0,&DAT_0007706d,5);\n    }" else (compound_statement "{\n      uVar4 = dcgettext(0,&DAT_0007706d,5);\n    }" { (expression_statement "uVar4 = dcgettext(0,&DAT_0007706d,5);" (assignment_expression "uVar4 = dcgettext(0,&DAT_0007706d,5)" identifier = (call_expression "dcgettext(0,&DAT_0007706d,5)" identifier (argument_list "(0,&DAT_0007706d,5)" ( number_literal , (pointer_expression "&DAT_0007706d" & identifier) , number_literal )))) ;) }))) (expression_statement "printf("  Tag_ARC_ABI_rf16: %s\n",uVar4);" (call_expression "printf("  Tag_ARC_ABI_rf16: %s\n",uVar4)" identifier (argument_list "("  Tag_ARC_ABI_rf16: %s\n",uVar4)" ( (string_literal ""  Tag_ARC_ABI_rf16: %s\n"" " string_content escape_sequence ") , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 9:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    puVar6 = puVar6 + len;\n    printf("  Tag_ARC_ABI_osver: v%d\n",(int)dVar7);\n    break;" case number_literal : (expression_statement "dVar7 = read_leb128(puVar6,&len,0,end);" (assignment_expression "dVar7 = read_leb128(puVar6,&len,0,end)" identifier = (call_expression "read_leb128(puVar6,&len,0,end)" identifier (argument_list "(puVar6,&len,0,end)" ( identifier , (pointer_expression "&len" & identifier) , number_literal , identifier )))) ;) (expression_statement "puVar6 = puVar6 + len;" (assignment_expression "puVar6 = puVar6 + len" identifier = (binary_expression "puVar6 + len" identifier + identifier)) ;) (expression_statement "printf("  Tag_ARC_ABI_osver: v%d\n",(int)dVar7);" (call_expression "printf("  Tag_ARC_ABI_osver: v%d\n",(int)dVar7)" identifier (argument_list "("  Tag_ARC_ABI_osver: v%d\n",(int)dVar7)" ( (string_literal ""  Tag_ARC_ABI_osver: v%d\n"" " string_content escape_sequence ") , (cast_expression "(int)dVar7" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (break_statement "break;" break ;)) (case_statement "case 10:" case number_literal :) (case_statement "case 0xb:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    iVar2 = (int)dVar7;\n    puVar6 = puVar6 + len;\n    pcVar5 = "  Tag_ARC_ABI_sda: ";\n    if (uVar1 != 10) {\n      pcVar5 = "  Tag_ARC_ABI_pic: ";\n    }\n    printf(pcVar5);\n    if (iVar2 == 1) {\n      puts("MWDT");\n      return puVar6;\n    }\n    if (iVar2 != 0) {\n      if (iVar2 == 2) {\n        puts("GNU");\n        return puVar6;\n      }\n      goto switchD_000219be_caseD_5;\n    }\nLAB_00021ca0:\n    pcVar5 = "Absent\n";\nLAB_00021cab:\n    pcVar5 = (char *)dcgettext(0,pcVar5,5);\n    printf(pcVar5);\n    return puVar6;" case number_literal : (expression_statement "dVar7 = read_leb128(puVar6,&len,0,end);" (assignment_expression "dVar7 = read_leb128(puVar6,&len,0,end)" identifier = (call_expression "read_leb128(puVar6,&len,0,end)" identifier (argument_list "(puVar6,&len,0,end)" ( identifier , (pointer_expression "&len" & identifier) , number_literal , identifier )))) ;) (expression_statement "iVar2 = (int)dVar7;" (assignment_expression "iVar2 = (int)dVar7" identifier = (cast_expression "(int)dVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "puVar6 = puVar6 + len;" (assignment_expression "puVar6 = puVar6 + len" identifier = (binary_expression "puVar6 + len" identifier + identifier)) ;) (expression_statement "pcVar5 = "  Tag_ARC_ABI_sda: ";" (assignment_expression "pcVar5 = "  Tag_ARC_ABI_sda: "" identifier = (string_literal ""  Tag_ARC_ABI_sda: "" " string_content ")) ;) (if_statement "if (uVar1 != 10) {\n      pcVar5 = "  Tag_ARC_ABI_pic: ";\n    }" if (parenthesized_expression "(uVar1 != 10)" ( (binary_expression "uVar1 != 10" identifier != number_literal) )) (compound_statement "{\n      pcVar5 = "  Tag_ARC_ABI_pic: ";\n    }" { (expression_statement "pcVar5 = "  Tag_ARC_ABI_pic: ";" (assignment_expression "pcVar5 = "  Tag_ARC_ABI_pic: "" identifier = (string_literal ""  Tag_ARC_ABI_pic: "" " string_content ")) ;) })) (expression_statement "printf(pcVar5);" (call_expression "printf(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier ))) ;) (if_statement "if (iVar2 == 1) {\n      puts("MWDT");\n      return puVar6;\n    }" if (parenthesized_expression "(iVar2 == 1)" ( (binary_expression "iVar2 == 1" identifier == number_literal) )) (compound_statement "{\n      puts("MWDT");\n      return puVar6;\n    }" { (expression_statement "puts("MWDT");" (call_expression "puts("MWDT")" identifier (argument_list "("MWDT")" ( (string_literal ""MWDT"" " string_content ") ))) ;) (return_statement "return puVar6;" return identifier ;) })) (if_statement "if (iVar2 != 0) {\n      if (iVar2 == 2) {\n        puts("GNU");\n        return puVar6;\n      }\n      goto switchD_000219be_caseD_5;\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      if (iVar2 == 2) {\n        puts("GNU");\n        return puVar6;\n      }\n      goto switchD_000219be_caseD_5;\n    }" { (if_statement "if (iVar2 == 2) {\n        puts("GNU");\n        return puVar6;\n      }" if (parenthesized_expression "(iVar2 == 2)" ( (binary_expression "iVar2 == 2" identifier == number_literal) )) (compound_statement "{\n        puts("GNU");\n        return puVar6;\n      }" { (expression_statement "puts("GNU");" (call_expression "puts("GNU")" identifier (argument_list "("GNU")" ( (string_literal ""GNU"" " string_content ") ))) ;) (return_statement "return puVar6;" return identifier ;) })) (goto_statement "goto switchD_000219be_caseD_5;" goto statement_identifier ;) })) (labeled_statement "LAB_00021ca0:\n    pcVar5 = "Absent\n";" statement_identifier : (expression_statement "pcVar5 = "Absent\n";" (assignment_expression "pcVar5 = "Absent\n"" identifier = (string_literal ""Absent\n"" " string_content escape_sequence ")) ;)) (labeled_statement "LAB_00021cab:\n    pcVar5 = (char *)dcgettext(0,pcVar5,5);" statement_identifier : (expression_statement "pcVar5 = (char *)dcgettext(0,pcVar5,5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,pcVar5,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar5,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar5,5)" identifier (argument_list "(0,pcVar5,5)" ( number_literal , identifier , number_literal ))))) ;)) (expression_statement "printf(pcVar5);" (call_expression "printf(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier ))) ;) (return_statement "return puVar6;" return identifier ;)) (case_statement "case 0xc:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    puVar6 = puVar6 + len;\n    puVar3 = &DAT_00076f7f;\n    if ((int)dVar7 == 0) {\n      puVar3 = &DAT_00076af8;\n    }\n    printf("  Tag_ARC_ABI_tls: %s\n",puVar3);\n    break;" case number_literal : (expression_statement "dVar7 = read_leb128(puVar6,&len,0,end);" (assignment_expression "dVar7 = read_leb128(puVar6,&len,0,end)" identifier = (call_expression "read_leb128(puVar6,&len,0,end)" identifier (argument_list "(puVar6,&len,0,end)" ( identifier , (pointer_expression "&len" & identifier) , number_literal , identifier )))) ;) (expression_statement "puVar6 = puVar6 + len;" (assignment_expression "puVar6 = puVar6 + len" identifier = (binary_expression "puVar6 + len" identifier + identifier)) ;) (expression_statement "puVar3 = &DAT_00076f7f;" (assignment_expression "puVar3 = &DAT_00076f7f" identifier = (pointer_expression "&DAT_00076f7f" & identifier)) ;) (if_statement "if ((int)dVar7 == 0) {\n      puVar3 = &DAT_00076af8;\n    }" if (parenthesized_expression "((int)dVar7 == 0)" ( (binary_expression "(int)dVar7 == 0" (cast_expression "(int)dVar7" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (compound_statement "{\n      puVar3 = &DAT_00076af8;\n    }" { (expression_statement "puVar3 = &DAT_00076af8;" (assignment_expression "puVar3 = &DAT_00076af8" identifier = (pointer_expression "&DAT_00076af8" & identifier)) ;) })) (expression_statement "printf("  Tag_ARC_ABI_tls: %s\n",puVar3);" (call_expression "printf("  Tag_ARC_ABI_tls: %s\n",puVar3)" identifier (argument_list "("  Tag_ARC_ABI_tls: %s\n",puVar3)" ( (string_literal ""  Tag_ARC_ABI_tls: %s\n"" " string_content escape_sequence ") , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 0xd:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    puVar6 = puVar6 + len;\n    if ((int)dVar7 == 0) {\n      uVar4 = dcgettext(0,"smallest",5);\n    }\n    else {\n      uVar4 = dcgettext(0,"default",5);\n    }\n    printf("  Tag_ARC_ABI_enumsize: %s\n",uVar4);\n    break;" case number_literal : (expression_statement "dVar7 = read_leb128(puVar6,&len,0,end);" (assignment_expression "dVar7 = read_leb128(puVar6,&len,0,end)" identifier = (call_expression "read_leb128(puVar6,&len,0,end)" identifier (argument_list "(puVar6,&len,0,end)" ( identifier , (pointer_expression "&len" & identifier) , number_literal , identifier )))) ;) (expression_statement "puVar6 = puVar6 + len;" (assignment_expression "puVar6 = puVar6 + len" identifier = (binary_expression "puVar6 + len" identifier + identifier)) ;) (if_statement "if ((int)dVar7 == 0) {\n      uVar4 = dcgettext(0,"smallest",5);\n    }\n    else {\n      uVar4 = dcgettext(0,"default",5);\n    }" if (parenthesized_expression "((int)dVar7 == 0)" ( (binary_expression "(int)dVar7 == 0" (cast_expression "(int)dVar7" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (compound_statement "{\n      uVar4 = dcgettext(0,"smallest",5);\n    }" { (expression_statement "uVar4 = dcgettext(0,"smallest",5);" (assignment_expression "uVar4 = dcgettext(0,"smallest",5)" identifier = (call_expression "dcgettext(0,"smallest",5)" identifier (argument_list "(0,"smallest",5)" ( number_literal , (string_literal ""smallest"" " string_content ") , number_literal )))) ;) }) (else_clause "else {\n      uVar4 = dcgettext(0,"default",5);\n    }" else (compound_statement "{\n      uVar4 = dcgettext(0,"default",5);\n    }" { (expression_statement "uVar4 = dcgettext(0,"default",5);" (assignment_expression "uVar4 = dcgettext(0,"default",5)" identifier = (call_expression "dcgettext(0,"default",5)" identifier (argument_list "(0,"default",5)" ( number_literal , (string_literal ""default"" " string_content ") , number_literal )))) ;) }))) (expression_statement "printf("  Tag_ARC_ABI_enumsize: %s\n",uVar4);" (call_expression "printf("  Tag_ARC_ABI_enumsize: %s\n",uVar4)" identifier (argument_list "("  Tag_ARC_ABI_enumsize: %s\n",uVar4)" ( (string_literal ""  Tag_ARC_ABI_enumsize: %s\n"" " string_content escape_sequence ") , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 0xe:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    puVar6 = puVar6 + len;\n    if ((int)dVar7 == 0) {\n      uVar4 = dcgettext(0,"default",5);\n    }\n    else {\n      uVar4 = dcgettext(0,"OPTFP",5);\n    }\n    printf("  Tag_ARC_ABI_exceptions: %s\n",uVar4);\n    break;" case number_literal : (expression_statement "dVar7 = read_leb128(puVar6,&len,0,end);" (assignment_expression "dVar7 = read_leb128(puVar6,&len,0,end)" identifier = (call_expression "read_leb128(puVar6,&len,0,end)" identifier (argument_list "(puVar6,&len,0,end)" ( identifier , (pointer_expression "&len" & identifier) , number_literal , identifier )))) ;) (expression_statement "puVar6 = puVar6 + len;" (assignment_expression "puVar6 = puVar6 + len" identifier = (binary_expression "puVar6 + len" identifier + identifier)) ;) (if_statement "if ((int)dVar7 == 0) {\n      uVar4 = dcgettext(0,"default",5);\n    }\n    else {\n      uVar4 = dcgettext(0,"OPTFP",5);\n    }" if (parenthesized_expression "((int)dVar7 == 0)" ( (binary_expression "(int)dVar7 == 0" (cast_expression "(int)dVar7" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (compound_statement "{\n      uVar4 = dcgettext(0,"default",5);\n    }" { (expression_statement "uVar4 = dcgettext(0,"default",5);" (assignment_expression "uVar4 = dcgettext(0,"default",5)" identifier = (call_expression "dcgettext(0,"default",5)" identifier (argument_list "(0,"default",5)" ( number_literal , (string_literal ""default"" " string_content ") , number_literal )))) ;) }) (else_clause "else {\n      uVar4 = dcgettext(0,"OPTFP",5);\n    }" else (compound_statement "{\n      uVar4 = dcgettext(0,"OPTFP",5);\n    }" { (expression_statement "uVar4 = dcgettext(0,"OPTFP",5);" (assignment_expression "uVar4 = dcgettext(0,"OPTFP",5)" identifier = (call_expression "dcgettext(0,"OPTFP",5)" identifier (argument_list "(0,"OPTFP",5)" ( number_literal , (string_literal ""OPTFP"" " string_content ") , number_literal )))) ;) }))) (expression_statement "printf("  Tag_ARC_ABI_exceptions: %s\n",uVar4);" (call_expression "printf("  Tag_ARC_ABI_exceptions: %s\n",uVar4)" identifier (argument_list "("  Tag_ARC_ABI_exceptions: %s\n",uVar4)" ( (string_literal ""  Tag_ARC_ABI_exceptions: %s\n"" " string_content escape_sequence ") , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 0xf:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    puVar6 = puVar6 + len;\n    printf("  Tag_ARC_ABI_double_size: %d\n",(int)dVar7);\n    break;" case number_literal : (expression_statement "dVar7 = read_leb128(puVar6,&len,0,end);" (assignment_expression "dVar7 = read_leb128(puVar6,&len,0,end)" identifier = (call_expression "read_leb128(puVar6,&len,0,end)" identifier (argument_list "(puVar6,&len,0,end)" ( identifier , (pointer_expression "&len" & identifier) , number_literal , identifier )))) ;) (expression_statement "puVar6 = puVar6 + len;" (assignment_expression "puVar6 = puVar6 + len" identifier = (binary_expression "puVar6 + len" identifier + identifier)) ;) (expression_statement "printf("  Tag_ARC_ABI_double_size: %d\n",(int)dVar7);" (call_expression "printf("  Tag_ARC_ABI_double_size: %d\n",(int)dVar7)" identifier (argument_list "("  Tag_ARC_ABI_double_size: %d\n",(int)dVar7)" ( (string_literal ""  Tag_ARC_ABI_double_size: %d\n"" " string_content escape_sequence ") , (cast_expression "(int)dVar7" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (break_statement "break;" break ;)) (case_statement "case 0x10:\n    pcVar5 = "  Tag_ARC_ISA_config: ";\n    goto LAB_00021939;" case number_literal : (expression_statement "pcVar5 = "  Tag_ARC_ISA_config: ";" (assignment_expression "pcVar5 = "  Tag_ARC_ISA_config: "" identifier = (string_literal ""  Tag_ARC_ISA_config: "" " string_content ")) ;) (goto_statement "goto LAB_00021939;" goto statement_identifier ;)) (case_statement "case 0x11:\n    pcVar5 = "  Tag_ARC_ISA_apex: ";\nLAB_00021939:\n    printf(pcVar5);\n    puVar6 = display_tag_value(-1,puVar6,end);\n    break;" case number_literal : (expression_statement "pcVar5 = "  Tag_ARC_ISA_apex: ";" (assignment_expression "pcVar5 = "  Tag_ARC_ISA_apex: "" identifier = (string_literal ""  Tag_ARC_ISA_apex: "" " string_content ")) ;) (labeled_statement "LAB_00021939:\n    printf(pcVar5);" statement_identifier : (expression_statement "printf(pcVar5);" (call_expression "printf(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier ))) ;)) (expression_statement "puVar6 = display_tag_value(-1,puVar6,end);" (assignment_expression "puVar6 = display_tag_value(-1,puVar6,end)" identifier = (call_expression "display_tag_value(-1,puVar6,end)" identifier (argument_list "(-1,puVar6,end)" ( number_literal , identifier , identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 0x12:\n    dVar7 = read_leb128(puVar6,&len,0,end);\n    puVar6 = puVar6 + len;\n    printf("  Tag_ARC_ISA_mpy_option: %d\n",(int)dVar7);\n    break;" case number_literal : (expression_statement "dVar7 = read_leb128(puVar6,&len,0,end);" (assignment_expression "dVar7 = read_leb128(puVar6,&len,0,end)" identifier = (call_expression "read_leb128(puVar6,&len,0,end)" identifier (argument_list "(puVar6,&len,0,end)" ( identifier , (pointer_expression "&len" & identifier) , number_literal , identifier )))) ;) (expression_statement "puVar6 = puVar6 + len;" (assignment_expression "puVar6 = puVar6 + len" identifier = (binary_expression "puVar6 + len" identifier + identifier)) ;) (expression_statement "printf("  Tag_ARC_ISA_mpy_option: %d\n",(int)dVar7);" (call_expression "printf("  Tag_ARC_ISA_mpy_option: %d\n",(int)dVar7)" identifier (argument_list "("  Tag_ARC_ISA_mpy_option: %d\n",(int)dVar7)" ( (string_literal ""  Tag_ARC_ISA_mpy_option: %d\n"" " string_content escape_sequence ") , (cast_expression "(int)dVar7" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (break_statement "break;" break ;)) (case_statement "default:\n    puVar6 = display_tag_value(uVar1 & 1,puVar6,end);" default : (expression_statement "puVar6 = display_tag_value(uVar1 & 1,puVar6,end);" (assignment_expression "puVar6 = display_tag_value(uVar1 & 1,puVar6,end)" identifier = (call_expression "display_tag_value(uVar1 & 1,puVar6,end)" identifier (argument_list "(uVar1 & 1,puVar6,end)" ( (binary_expression "uVar1 & 1" identifier & number_literal) , identifier , identifier )))) ;)) })) (return_statement "return puVar6;" return identifier ;) })))
(translation_unit "int FUN_000218e0(int param_1,undefined4 param_2)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  uint uVar3;\n  int iVar4;\n  undefined *puVar5;\n  char *pcVar6;\n  int local_20 [3];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x218e9;\n  iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n  param_1 = param_1 + local_20[0];\n  switch(iVar1) {\n  case 4:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_PCS_config: ");\n    switch(uVar2) {\n    case 0:\n      pcVar6 = "Absent/Non standard\n";\n      break;\n    case 1:\n      pcVar6 = "Bare metal/mwdt\n";\n      break;\n    case 2:\n      pcVar6 = "Bare metal/newlib\n";\n      break;\n    case 3:\n      pcVar6 = "Linux/uclibc\n";\n      break;\n    case 4:\n      pcVar6 = "Linux/glibc\n";\n      break;\n    default:\ncode_r0x00021b4a:\n      pcVar6 = "Unknown\n";\n    }\n    goto code_r0x00021cab;\n  case 5:\n    uVar3 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_CPU_base: ");\n    if (uVar3 == 2) {\n      puts("ARC7xx");\n      return param_1;\n    }\n    if (uVar3 < 3) {\n      if (uVar3 == 1) {\n        puts("ARC6xx");\n        return param_1;\n      }\n    }\n    else {\n      if (uVar3 == 3) {\n        puts("ARCEM");\n        return param_1;\n      }\n      if (uVar3 == 4) {\n        puts("ARCHS");\n        return param_1;\n      }\n    }\n    goto code_r0x00021ca0;\n  case 6:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_CPU_variation: ");\n    if (iVar1 != 0) {\n      if (iVar1 - 1U < 0xf) {\n        printf("Core%d\n",iVar1);\n        return param_1;\n      }\n      puts("Unknown");\n      return param_1;\n    }\n    goto code_r0x00021ca0;\n  case 7:\n    pcVar6 = "  Tag_ARC_CPU_name: ";\n    goto code_r0x00021939;\n  case 8:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,&UNK_00077071,5);\n    }\n    else {\n      uVar2 = dcgettext(0,&UNK_0007706d,5);\n    }\n    printf("  Tag_ARC_ABI_rf16: %s\n",uVar2);\n    break;\n  case 9:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ABI_osver: v%d\n",uVar2);\n    break;\n  case 10:\n  case 0xb:\n    iVar4 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    pcVar6 = "  Tag_ARC_ABI_sda: ";\n    if (iVar1 != 10) {\n      pcVar6 = "  Tag_ARC_ABI_pic: ";\n    }\n    printf(pcVar6);\n    if (iVar4 == 1) {\n      puts("MWDT");\n      return param_1;\n    }\n    if (iVar4 != 0) {\n      if (iVar4 == 2) {\n        puts("GNU");\n        return param_1;\n      }\n      goto code_r0x00021b4a;\n    }\ncode_r0x00021ca0:\n    pcVar6 = "Absent\n";\ncode_r0x00021cab:\n    pcVar6 = (char *)dcgettext(0,pcVar6,5);\n    printf(pcVar6);\n    return param_1;\n  case 0xc:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    puVar5 = &UNK_00076f7f;\n    if (iVar1 == 0) {\n      puVar5 = &DAT_00076af8;\n    }\n    printf("  Tag_ARC_ABI_tls: %s\n",puVar5);\n    break;\n  case 0xd:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,"smallest",5);\n    }\n    else {\n      uVar2 = dcgettext(0,"default",5);\n    }\n    printf("  Tag_ARC_ABI_enumsize: %s\n",uVar2);\n    break;\n  case 0xe:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,"default",5);\n    }\n    else {\n      uVar2 = dcgettext(0,&UNK_000770ef,5);\n    }\n    printf("  Tag_ARC_ABI_exceptions: %s\n",uVar2);\n    break;\n  case 0xf:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ABI_double_size: %d\n",uVar2);\n    break;\n  case 0x10:\n    pcVar6 = "  Tag_ARC_ISA_config: ";\n    goto code_r0x00021939;\n  case 0x11:\n    pcVar6 = "  Tag_ARC_ISA_apex: ";\ncode_r0x00021939:\n    printf(pcVar6);\n    param_1 = FUN_0001ff40();\n    break;\n  case 0x12:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ISA_mpy_option: %d\n",uVar2);\n    break;\n  default:\n    param_1 = FUN_0001ff40();\n  }\n  return param_1;\n}\n\n" (function_definition "int FUN_000218e0(int param_1,undefined4 param_2)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  uint uVar3;\n  int iVar4;\n  undefined *puVar5;\n  char *pcVar6;\n  int local_20 [3];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x218e9;\n  iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n  param_1 = param_1 + local_20[0];\n  switch(iVar1) {\n  case 4:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_PCS_config: ");\n    switch(uVar2) {\n    case 0:\n      pcVar6 = "Absent/Non standard\n";\n      break;\n    case 1:\n      pcVar6 = "Bare metal/mwdt\n";\n      break;\n    case 2:\n      pcVar6 = "Bare metal/newlib\n";\n      break;\n    case 3:\n      pcVar6 = "Linux/uclibc\n";\n      break;\n    case 4:\n      pcVar6 = "Linux/glibc\n";\n      break;\n    default:\ncode_r0x00021b4a:\n      pcVar6 = "Unknown\n";\n    }\n    goto code_r0x00021cab;\n  case 5:\n    uVar3 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_CPU_base: ");\n    if (uVar3 == 2) {\n      puts("ARC7xx");\n      return param_1;\n    }\n    if (uVar3 < 3) {\n      if (uVar3 == 1) {\n        puts("ARC6xx");\n        return param_1;\n      }\n    }\n    else {\n      if (uVar3 == 3) {\n        puts("ARCEM");\n        return param_1;\n      }\n      if (uVar3 == 4) {\n        puts("ARCHS");\n        return param_1;\n      }\n    }\n    goto code_r0x00021ca0;\n  case 6:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_CPU_variation: ");\n    if (iVar1 != 0) {\n      if (iVar1 - 1U < 0xf) {\n        printf("Core%d\n",iVar1);\n        return param_1;\n      }\n      puts("Unknown");\n      return param_1;\n    }\n    goto code_r0x00021ca0;\n  case 7:\n    pcVar6 = "  Tag_ARC_CPU_name: ";\n    goto code_r0x00021939;\n  case 8:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,&UNK_00077071,5);\n    }\n    else {\n      uVar2 = dcgettext(0,&UNK_0007706d,5);\n    }\n    printf("  Tag_ARC_ABI_rf16: %s\n",uVar2);\n    break;\n  case 9:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ABI_osver: v%d\n",uVar2);\n    break;\n  case 10:\n  case 0xb:\n    iVar4 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    pcVar6 = "  Tag_ARC_ABI_sda: ";\n    if (iVar1 != 10) {\n      pcVar6 = "  Tag_ARC_ABI_pic: ";\n    }\n    printf(pcVar6);\n    if (iVar4 == 1) {\n      puts("MWDT");\n      return param_1;\n    }\n    if (iVar4 != 0) {\n      if (iVar4 == 2) {\n        puts("GNU");\n        return param_1;\n      }\n      goto code_r0x00021b4a;\n    }\ncode_r0x00021ca0:\n    pcVar6 = "Absent\n";\ncode_r0x00021cab:\n    pcVar6 = (char *)dcgettext(0,pcVar6,5);\n    printf(pcVar6);\n    return param_1;\n  case 0xc:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    puVar5 = &UNK_00076f7f;\n    if (iVar1 == 0) {\n      puVar5 = &DAT_00076af8;\n    }\n    printf("  Tag_ARC_ABI_tls: %s\n",puVar5);\n    break;\n  case 0xd:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,"smallest",5);\n    }\n    else {\n      uVar2 = dcgettext(0,"default",5);\n    }\n    printf("  Tag_ARC_ABI_enumsize: %s\n",uVar2);\n    break;\n  case 0xe:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,"default",5);\n    }\n    else {\n      uVar2 = dcgettext(0,&UNK_000770ef,5);\n    }\n    printf("  Tag_ARC_ABI_exceptions: %s\n",uVar2);\n    break;\n  case 0xf:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ABI_double_size: %d\n",uVar2);\n    break;\n  case 0x10:\n    pcVar6 = "  Tag_ARC_ISA_config: ";\n    goto code_r0x00021939;\n  case 0x11:\n    pcVar6 = "  Tag_ARC_ISA_apex: ";\ncode_r0x00021939:\n    printf(pcVar6);\n    param_1 = FUN_0001ff40();\n    break;\n  case 0x12:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ISA_mpy_option: %d\n",uVar2);\n    break;\n  default:\n    param_1 = FUN_0001ff40();\n  }\n  return param_1;\n}" primitive_type (function_declarator "FUN_000218e0(int param_1,undefined4 param_2)" identifier (parameter_list "(int param_1,undefined4 param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  uint uVar3;\n  int iVar4;\n  undefined *puVar5;\n  char *pcVar6;\n  int local_20 [3];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x218e9;\n  iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n  param_1 = param_1 + local_20[0];\n  switch(iVar1) {\n  case 4:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_PCS_config: ");\n    switch(uVar2) {\n    case 0:\n      pcVar6 = "Absent/Non standard\n";\n      break;\n    case 1:\n      pcVar6 = "Bare metal/mwdt\n";\n      break;\n    case 2:\n      pcVar6 = "Bare metal/newlib\n";\n      break;\n    case 3:\n      pcVar6 = "Linux/uclibc\n";\n      break;\n    case 4:\n      pcVar6 = "Linux/glibc\n";\n      break;\n    default:\ncode_r0x00021b4a:\n      pcVar6 = "Unknown\n";\n    }\n    goto code_r0x00021cab;\n  case 5:\n    uVar3 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_CPU_base: ");\n    if (uVar3 == 2) {\n      puts("ARC7xx");\n      return param_1;\n    }\n    if (uVar3 < 3) {\n      if (uVar3 == 1) {\n        puts("ARC6xx");\n        return param_1;\n      }\n    }\n    else {\n      if (uVar3 == 3) {\n        puts("ARCEM");\n        return param_1;\n      }\n      if (uVar3 == 4) {\n        puts("ARCHS");\n        return param_1;\n      }\n    }\n    goto code_r0x00021ca0;\n  case 6:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_CPU_variation: ");\n    if (iVar1 != 0) {\n      if (iVar1 - 1U < 0xf) {\n        printf("Core%d\n",iVar1);\n        return param_1;\n      }\n      puts("Unknown");\n      return param_1;\n    }\n    goto code_r0x00021ca0;\n  case 7:\n    pcVar6 = "  Tag_ARC_CPU_name: ";\n    goto code_r0x00021939;\n  case 8:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,&UNK_00077071,5);\n    }\n    else {\n      uVar2 = dcgettext(0,&UNK_0007706d,5);\n    }\n    printf("  Tag_ARC_ABI_rf16: %s\n",uVar2);\n    break;\n  case 9:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ABI_osver: v%d\n",uVar2);\n    break;\n  case 10:\n  case 0xb:\n    iVar4 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    pcVar6 = "  Tag_ARC_ABI_sda: ";\n    if (iVar1 != 10) {\n      pcVar6 = "  Tag_ARC_ABI_pic: ";\n    }\n    printf(pcVar6);\n    if (iVar4 == 1) {\n      puts("MWDT");\n      return param_1;\n    }\n    if (iVar4 != 0) {\n      if (iVar4 == 2) {\n        puts("GNU");\n        return param_1;\n      }\n      goto code_r0x00021b4a;\n    }\ncode_r0x00021ca0:\n    pcVar6 = "Absent\n";\ncode_r0x00021cab:\n    pcVar6 = (char *)dcgettext(0,pcVar6,5);\n    printf(pcVar6);\n    return param_1;\n  case 0xc:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    puVar5 = &UNK_00076f7f;\n    if (iVar1 == 0) {\n      puVar5 = &DAT_00076af8;\n    }\n    printf("  Tag_ARC_ABI_tls: %s\n",puVar5);\n    break;\n  case 0xd:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,"smallest",5);\n    }\n    else {\n      uVar2 = dcgettext(0,"default",5);\n    }\n    printf("  Tag_ARC_ABI_enumsize: %s\n",uVar2);\n    break;\n  case 0xe:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,"default",5);\n    }\n    else {\n      uVar2 = dcgettext(0,&UNK_000770ef,5);\n    }\n    printf("  Tag_ARC_ABI_exceptions: %s\n",uVar2);\n    break;\n  case 0xf:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ABI_double_size: %d\n",uVar2);\n    break;\n  case 0x10:\n    pcVar6 = "  Tag_ARC_ISA_config: ";\n    goto code_r0x00021939;\n  case 0x11:\n    pcVar6 = "  Tag_ARC_ISA_apex: ";\ncode_r0x00021939:\n    printf(pcVar6);\n    param_1 = FUN_0001ff40();\n    break;\n  case 0x12:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ISA_mpy_option: %d\n",uVar2);\n    break;\n  default:\n    param_1 = FUN_0001ff40();\n  }\n  return param_1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "int local_20 [3];" primitive_type (array_declarator "local_20 [3]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x218e9;" (assignment_expression "uStack_14 = 0x218e9" identifier = number_literal) ;) (expression_statement "iVar1 = FUN_0004f990(param_1,local_20,0,param_2);" (assignment_expression "iVar1 = FUN_0004f990(param_1,local_20,0,param_2)" identifier = (call_expression "FUN_0004f990(param_1,local_20,0,param_2)" identifier (argument_list "(param_1,local_20,0,param_2)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "param_1 = param_1 + local_20[0];" (assignment_expression "param_1 = param_1 + local_20[0]" identifier = (binary_expression "param_1 + local_20[0]" identifier + (subscript_expression "local_20[0]" identifier [ number_literal ]))) ;) (switch_statement "switch(iVar1) {\n  case 4:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_PCS_config: ");\n    switch(uVar2) {\n    case 0:\n      pcVar6 = "Absent/Non standard\n";\n      break;\n    case 1:\n      pcVar6 = "Bare metal/mwdt\n";\n      break;\n    case 2:\n      pcVar6 = "Bare metal/newlib\n";\n      break;\n    case 3:\n      pcVar6 = "Linux/uclibc\n";\n      break;\n    case 4:\n      pcVar6 = "Linux/glibc\n";\n      break;\n    default:\ncode_r0x00021b4a:\n      pcVar6 = "Unknown\n";\n    }\n    goto code_r0x00021cab;\n  case 5:\n    uVar3 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_CPU_base: ");\n    if (uVar3 == 2) {\n      puts("ARC7xx");\n      return param_1;\n    }\n    if (uVar3 < 3) {\n      if (uVar3 == 1) {\n        puts("ARC6xx");\n        return param_1;\n      }\n    }\n    else {\n      if (uVar3 == 3) {\n        puts("ARCEM");\n        return param_1;\n      }\n      if (uVar3 == 4) {\n        puts("ARCHS");\n        return param_1;\n      }\n    }\n    goto code_r0x00021ca0;\n  case 6:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_CPU_variation: ");\n    if (iVar1 != 0) {\n      if (iVar1 - 1U < 0xf) {\n        printf("Core%d\n",iVar1);\n        return param_1;\n      }\n      puts("Unknown");\n      return param_1;\n    }\n    goto code_r0x00021ca0;\n  case 7:\n    pcVar6 = "  Tag_ARC_CPU_name: ";\n    goto code_r0x00021939;\n  case 8:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,&UNK_00077071,5);\n    }\n    else {\n      uVar2 = dcgettext(0,&UNK_0007706d,5);\n    }\n    printf("  Tag_ARC_ABI_rf16: %s\n",uVar2);\n    break;\n  case 9:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ABI_osver: v%d\n",uVar2);\n    break;\n  case 10:\n  case 0xb:\n    iVar4 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    pcVar6 = "  Tag_ARC_ABI_sda: ";\n    if (iVar1 != 10) {\n      pcVar6 = "  Tag_ARC_ABI_pic: ";\n    }\n    printf(pcVar6);\n    if (iVar4 == 1) {\n      puts("MWDT");\n      return param_1;\n    }\n    if (iVar4 != 0) {\n      if (iVar4 == 2) {\n        puts("GNU");\n        return param_1;\n      }\n      goto code_r0x00021b4a;\n    }\ncode_r0x00021ca0:\n    pcVar6 = "Absent\n";\ncode_r0x00021cab:\n    pcVar6 = (char *)dcgettext(0,pcVar6,5);\n    printf(pcVar6);\n    return param_1;\n  case 0xc:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    puVar5 = &UNK_00076f7f;\n    if (iVar1 == 0) {\n      puVar5 = &DAT_00076af8;\n    }\n    printf("  Tag_ARC_ABI_tls: %s\n",puVar5);\n    break;\n  case 0xd:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,"smallest",5);\n    }\n    else {\n      uVar2 = dcgettext(0,"default",5);\n    }\n    printf("  Tag_ARC_ABI_enumsize: %s\n",uVar2);\n    break;\n  case 0xe:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,"default",5);\n    }\n    else {\n      uVar2 = dcgettext(0,&UNK_000770ef,5);\n    }\n    printf("  Tag_ARC_ABI_exceptions: %s\n",uVar2);\n    break;\n  case 0xf:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ABI_double_size: %d\n",uVar2);\n    break;\n  case 0x10:\n    pcVar6 = "  Tag_ARC_ISA_config: ";\n    goto code_r0x00021939;\n  case 0x11:\n    pcVar6 = "  Tag_ARC_ISA_apex: ";\ncode_r0x00021939:\n    printf(pcVar6);\n    param_1 = FUN_0001ff40();\n    break;\n  case 0x12:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ISA_mpy_option: %d\n",uVar2);\n    break;\n  default:\n    param_1 = FUN_0001ff40();\n  }" switch (parenthesized_expression "(iVar1)" ( identifier )) (compound_statement "{\n  case 4:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_PCS_config: ");\n    switch(uVar2) {\n    case 0:\n      pcVar6 = "Absent/Non standard\n";\n      break;\n    case 1:\n      pcVar6 = "Bare metal/mwdt\n";\n      break;\n    case 2:\n      pcVar6 = "Bare metal/newlib\n";\n      break;\n    case 3:\n      pcVar6 = "Linux/uclibc\n";\n      break;\n    case 4:\n      pcVar6 = "Linux/glibc\n";\n      break;\n    default:\ncode_r0x00021b4a:\n      pcVar6 = "Unknown\n";\n    }\n    goto code_r0x00021cab;\n  case 5:\n    uVar3 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_CPU_base: ");\n    if (uVar3 == 2) {\n      puts("ARC7xx");\n      return param_1;\n    }\n    if (uVar3 < 3) {\n      if (uVar3 == 1) {\n        puts("ARC6xx");\n        return param_1;\n      }\n    }\n    else {\n      if (uVar3 == 3) {\n        puts("ARCEM");\n        return param_1;\n      }\n      if (uVar3 == 4) {\n        puts("ARCHS");\n        return param_1;\n      }\n    }\n    goto code_r0x00021ca0;\n  case 6:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_CPU_variation: ");\n    if (iVar1 != 0) {\n      if (iVar1 - 1U < 0xf) {\n        printf("Core%d\n",iVar1);\n        return param_1;\n      }\n      puts("Unknown");\n      return param_1;\n    }\n    goto code_r0x00021ca0;\n  case 7:\n    pcVar6 = "  Tag_ARC_CPU_name: ";\n    goto code_r0x00021939;\n  case 8:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,&UNK_00077071,5);\n    }\n    else {\n      uVar2 = dcgettext(0,&UNK_0007706d,5);\n    }\n    printf("  Tag_ARC_ABI_rf16: %s\n",uVar2);\n    break;\n  case 9:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ABI_osver: v%d\n",uVar2);\n    break;\n  case 10:\n  case 0xb:\n    iVar4 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    pcVar6 = "  Tag_ARC_ABI_sda: ";\n    if (iVar1 != 10) {\n      pcVar6 = "  Tag_ARC_ABI_pic: ";\n    }\n    printf(pcVar6);\n    if (iVar4 == 1) {\n      puts("MWDT");\n      return param_1;\n    }\n    if (iVar4 != 0) {\n      if (iVar4 == 2) {\n        puts("GNU");\n        return param_1;\n      }\n      goto code_r0x00021b4a;\n    }\ncode_r0x00021ca0:\n    pcVar6 = "Absent\n";\ncode_r0x00021cab:\n    pcVar6 = (char *)dcgettext(0,pcVar6,5);\n    printf(pcVar6);\n    return param_1;\n  case 0xc:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    puVar5 = &UNK_00076f7f;\n    if (iVar1 == 0) {\n      puVar5 = &DAT_00076af8;\n    }\n    printf("  Tag_ARC_ABI_tls: %s\n",puVar5);\n    break;\n  case 0xd:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,"smallest",5);\n    }\n    else {\n      uVar2 = dcgettext(0,"default",5);\n    }\n    printf("  Tag_ARC_ABI_enumsize: %s\n",uVar2);\n    break;\n  case 0xe:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,"default",5);\n    }\n    else {\n      uVar2 = dcgettext(0,&UNK_000770ef,5);\n    }\n    printf("  Tag_ARC_ABI_exceptions: %s\n",uVar2);\n    break;\n  case 0xf:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ABI_double_size: %d\n",uVar2);\n    break;\n  case 0x10:\n    pcVar6 = "  Tag_ARC_ISA_config: ";\n    goto code_r0x00021939;\n  case 0x11:\n    pcVar6 = "  Tag_ARC_ISA_apex: ";\ncode_r0x00021939:\n    printf(pcVar6);\n    param_1 = FUN_0001ff40();\n    break;\n  case 0x12:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ISA_mpy_option: %d\n",uVar2);\n    break;\n  default:\n    param_1 = FUN_0001ff40();\n  }" { (case_statement "case 4:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_PCS_config: ");\n    switch(uVar2) {\n    case 0:\n      pcVar6 = "Absent/Non standard\n";\n      break;\n    case 1:\n      pcVar6 = "Bare metal/mwdt\n";\n      break;\n    case 2:\n      pcVar6 = "Bare metal/newlib\n";\n      break;\n    case 3:\n      pcVar6 = "Linux/uclibc\n";\n      break;\n    case 4:\n      pcVar6 = "Linux/glibc\n";\n      break;\n    default:\ncode_r0x00021b4a:\n      pcVar6 = "Unknown\n";\n    }\n    goto code_r0x00021cab;" case number_literal : (expression_statement "uVar2 = FUN_0004f990(param_1,local_20,0,param_2);" (assignment_expression "uVar2 = FUN_0004f990(param_1,local_20,0,param_2)" identifier = (call_expression "FUN_0004f990(param_1,local_20,0,param_2)" identifier (argument_list "(param_1,local_20,0,param_2)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "param_1 = param_1 + local_20[0];" (assignment_expression "param_1 = param_1 + local_20[0]" identifier = (binary_expression "param_1 + local_20[0]" identifier + (subscript_expression "local_20[0]" identifier [ number_literal ]))) ;) (expression_statement "printf("  Tag_ARC_PCS_config: ");" (call_expression "printf("  Tag_ARC_PCS_config: ")" identifier (argument_list "("  Tag_ARC_PCS_config: ")" ( (string_literal ""  Tag_ARC_PCS_config: "" " string_content ") ))) ;) (switch_statement "switch(uVar2) {\n    case 0:\n      pcVar6 = "Absent/Non standard\n";\n      break;\n    case 1:\n      pcVar6 = "Bare metal/mwdt\n";\n      break;\n    case 2:\n      pcVar6 = "Bare metal/newlib\n";\n      break;\n    case 3:\n      pcVar6 = "Linux/uclibc\n";\n      break;\n    case 4:\n      pcVar6 = "Linux/glibc\n";\n      break;\n    default:\ncode_r0x00021b4a:\n      pcVar6 = "Unknown\n";\n    }" switch (parenthesized_expression "(uVar2)" ( identifier )) (compound_statement "{\n    case 0:\n      pcVar6 = "Absent/Non standard\n";\n      break;\n    case 1:\n      pcVar6 = "Bare metal/mwdt\n";\n      break;\n    case 2:\n      pcVar6 = "Bare metal/newlib\n";\n      break;\n    case 3:\n      pcVar6 = "Linux/uclibc\n";\n      break;\n    case 4:\n      pcVar6 = "Linux/glibc\n";\n      break;\n    default:\ncode_r0x00021b4a:\n      pcVar6 = "Unknown\n";\n    }" { (case_statement "case 0:\n      pcVar6 = "Absent/Non standard\n";\n      break;" case number_literal : (expression_statement "pcVar6 = "Absent/Non standard\n";" (assignment_expression "pcVar6 = "Absent/Non standard\n"" identifier = (string_literal ""Absent/Non standard\n"" " string_content escape_sequence ")) ;) (break_statement "break;" break ;)) (case_statement "case 1:\n      pcVar6 = "Bare metal/mwdt\n";\n      break;" case number_literal : (expression_statement "pcVar6 = "Bare metal/mwdt\n";" (assignment_expression "pcVar6 = "Bare metal/mwdt\n"" identifier = (string_literal ""Bare metal/mwdt\n"" " string_content escape_sequence ")) ;) (break_statement "break;" break ;)) (case_statement "case 2:\n      pcVar6 = "Bare metal/newlib\n";\n      break;" case number_literal : (expression_statement "pcVar6 = "Bare metal/newlib\n";" (assignment_expression "pcVar6 = "Bare metal/newlib\n"" identifier = (string_literal ""Bare metal/newlib\n"" " string_content escape_sequence ")) ;) (break_statement "break;" break ;)) (case_statement "case 3:\n      pcVar6 = "Linux/uclibc\n";\n      break;" case number_literal : (expression_statement "pcVar6 = "Linux/uclibc\n";" (assignment_expression "pcVar6 = "Linux/uclibc\n"" identifier = (string_literal ""Linux/uclibc\n"" " string_content escape_sequence ")) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n      pcVar6 = "Linux/glibc\n";\n      break;" case number_literal : (expression_statement "pcVar6 = "Linux/glibc\n";" (assignment_expression "pcVar6 = "Linux/glibc\n"" identifier = (string_literal ""Linux/glibc\n"" " string_content escape_sequence ")) ;) (break_statement "break;" break ;)) (case_statement "default:\ncode_r0x00021b4a:\n      pcVar6 = "Unknown\n";" default : (labeled_statement "code_r0x00021b4a:\n      pcVar6 = "Unknown\n";" statement_identifier : (expression_statement "pcVar6 = "Unknown\n";" (assignment_expression "pcVar6 = "Unknown\n"" identifier = (string_literal ""Unknown\n"" " string_content escape_sequence ")) ;))) })) (goto_statement "goto code_r0x00021cab;" goto statement_identifier ;)) (case_statement "case 5:\n    uVar3 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_CPU_base: ");\n    if (uVar3 == 2) {\n      puts("ARC7xx");\n      return param_1;\n    }\n    if (uVar3 < 3) {\n      if (uVar3 == 1) {\n        puts("ARC6xx");\n        return param_1;\n      }\n    }\n    else {\n      if (uVar3 == 3) {\n        puts("ARCEM");\n        return param_1;\n      }\n      if (uVar3 == 4) {\n        puts("ARCHS");\n        return param_1;\n      }\n    }\n    goto code_r0x00021ca0;" case number_literal : (expression_statement "uVar3 = FUN_0004f990(param_1,local_20,0,param_2);" (assignment_expression "uVar3 = FUN_0004f990(param_1,local_20,0,param_2)" identifier = (call_expression "FUN_0004f990(param_1,local_20,0,param_2)" identifier (argument_list "(param_1,local_20,0,param_2)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "param_1 = param_1 + local_20[0];" (assignment_expression "param_1 = param_1 + local_20[0]" identifier = (binary_expression "param_1 + local_20[0]" identifier + (subscript_expression "local_20[0]" identifier [ number_literal ]))) ;) (expression_statement "printf("  Tag_ARC_CPU_base: ");" (call_expression "printf("  Tag_ARC_CPU_base: ")" identifier (argument_list "("  Tag_ARC_CPU_base: ")" ( (string_literal ""  Tag_ARC_CPU_base: "" " string_content ") ))) ;) (if_statement "if (uVar3 == 2) {\n      puts("ARC7xx");\n      return param_1;\n    }" if (parenthesized_expression "(uVar3 == 2)" ( (binary_expression "uVar3 == 2" identifier == number_literal) )) (compound_statement "{\n      puts("ARC7xx");\n      return param_1;\n    }" { (expression_statement "puts("ARC7xx");" (call_expression "puts("ARC7xx")" identifier (argument_list "("ARC7xx")" ( (string_literal ""ARC7xx"" " string_content ") ))) ;) (return_statement "return param_1;" return identifier ;) })) (if_statement "if (uVar3 < 3) {\n      if (uVar3 == 1) {\n        puts("ARC6xx");\n        return param_1;\n      }\n    }\n    else {\n      if (uVar3 == 3) {\n        puts("ARCEM");\n        return param_1;\n      }\n      if (uVar3 == 4) {\n        puts("ARCHS");\n        return param_1;\n      }\n    }" if (parenthesized_expression "(uVar3 < 3)" ( (binary_expression "uVar3 < 3" identifier < number_literal) )) (compound_statement "{\n      if (uVar3 == 1) {\n        puts("ARC6xx");\n        return param_1;\n      }\n    }" { (if_statement "if (uVar3 == 1) {\n        puts("ARC6xx");\n        return param_1;\n      }" if (parenthesized_expression "(uVar3 == 1)" ( (binary_expression "uVar3 == 1" identifier == number_literal) )) (compound_statement "{\n        puts("ARC6xx");\n        return param_1;\n      }" { (expression_statement "puts("ARC6xx");" (call_expression "puts("ARC6xx")" identifier (argument_list "("ARC6xx")" ( (string_literal ""ARC6xx"" " string_content ") ))) ;) (return_statement "return param_1;" return identifier ;) })) }) (else_clause "else {\n      if (uVar3 == 3) {\n        puts("ARCEM");\n        return param_1;\n      }\n      if (uVar3 == 4) {\n        puts("ARCHS");\n        return param_1;\n      }\n    }" else (compound_statement "{\n      if (uVar3 == 3) {\n        puts("ARCEM");\n        return param_1;\n      }\n      if (uVar3 == 4) {\n        puts("ARCHS");\n        return param_1;\n      }\n    }" { (if_statement "if (uVar3 == 3) {\n        puts("ARCEM");\n        return param_1;\n      }" if (parenthesized_expression "(uVar3 == 3)" ( (binary_expression "uVar3 == 3" identifier == number_literal) )) (compound_statement "{\n        puts("ARCEM");\n        return param_1;\n      }" { (expression_statement "puts("ARCEM");" (call_expression "puts("ARCEM")" identifier (argument_list "("ARCEM")" ( (string_literal ""ARCEM"" " string_content ") ))) ;) (return_statement "return param_1;" return identifier ;) })) (if_statement "if (uVar3 == 4) {\n        puts("ARCHS");\n        return param_1;\n      }" if (parenthesized_expression "(uVar3 == 4)" ( (binary_expression "uVar3 == 4" identifier == number_literal) )) (compound_statement "{\n        puts("ARCHS");\n        return param_1;\n      }" { (expression_statement "puts("ARCHS");" (call_expression "puts("ARCHS")" identifier (argument_list "("ARCHS")" ( (string_literal ""ARCHS"" " string_content ") ))) ;) (return_statement "return param_1;" return identifier ;) })) }))) (goto_statement "goto code_r0x00021ca0;" goto statement_identifier ;)) (case_statement "case 6:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_CPU_variation: ");\n    if (iVar1 != 0) {\n      if (iVar1 - 1U < 0xf) {\n        printf("Core%d\n",iVar1);\n        return param_1;\n      }\n      puts("Unknown");\n      return param_1;\n    }\n    goto code_r0x00021ca0;" case number_literal : (expression_statement "iVar1 = FUN_0004f990(param_1,local_20,0,param_2);" (assignment_expression "iVar1 = FUN_0004f990(param_1,local_20,0,param_2)" identifier = (call_expression "FUN_0004f990(param_1,local_20,0,param_2)" identifier (argument_list "(param_1,local_20,0,param_2)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "param_1 = param_1 + local_20[0];" (assignment_expression "param_1 = param_1 + local_20[0]" identifier = (binary_expression "param_1 + local_20[0]" identifier + (subscript_expression "local_20[0]" identifier [ number_literal ]))) ;) (expression_statement "printf("  Tag_ARC_CPU_variation: ");" (call_expression "printf("  Tag_ARC_CPU_variation: ")" identifier (argument_list "("  Tag_ARC_CPU_variation: ")" ( (string_literal ""  Tag_ARC_CPU_variation: "" " string_content ") ))) ;) (if_statement "if (iVar1 != 0) {\n      if (iVar1 - 1U < 0xf) {\n        printf("Core%d\n",iVar1);\n        return param_1;\n      }\n      puts("Unknown");\n      return param_1;\n    }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n      if (iVar1 - 1U < 0xf) {\n        printf("Core%d\n",iVar1);\n        return param_1;\n      }\n      puts("Unknown");\n      return param_1;\n    }" { (if_statement "if (iVar1 - 1U < 0xf) {\n        printf("Core%d\n",iVar1);\n        return param_1;\n      }" if (parenthesized_expression "(iVar1 - 1U < 0xf)" ( (binary_expression "iVar1 - 1U < 0xf" (binary_expression "iVar1 - 1U" identifier - number_literal) < number_literal) )) (compound_statement "{\n        printf("Core%d\n",iVar1);\n        return param_1;\n      }" { (expression_statement "printf("Core%d\n",iVar1);" (call_expression "printf("Core%d\n",iVar1)" identifier (argument_list "("Core%d\n",iVar1)" ( (string_literal ""Core%d\n"" " string_content escape_sequence ") , identifier ))) ;) (return_statement "return param_1;" return identifier ;) })) (expression_statement "puts("Unknown");" (call_expression "puts("Unknown")" identifier (argument_list "("Unknown")" ( (string_literal ""Unknown"" " string_content ") ))) ;) (return_statement "return param_1;" return identifier ;) })) (goto_statement "goto code_r0x00021ca0;" goto statement_identifier ;)) (case_statement "case 7:\n    pcVar6 = "  Tag_ARC_CPU_name: ";\n    goto code_r0x00021939;" case number_literal : (expression_statement "pcVar6 = "  Tag_ARC_CPU_name: ";" (assignment_expression "pcVar6 = "  Tag_ARC_CPU_name: "" identifier = (string_literal ""  Tag_ARC_CPU_name: "" " string_content ")) ;) (goto_statement "goto code_r0x00021939;" goto statement_identifier ;)) (case_statement "case 8:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,&UNK_00077071,5);\n    }\n    else {\n      uVar2 = dcgettext(0,&UNK_0007706d,5);\n    }\n    printf("  Tag_ARC_ABI_rf16: %s\n",uVar2);\n    break;" case number_literal : (expression_statement "iVar1 = FUN_0004f990(param_1,local_20,0,param_2);" (assignment_expression "iVar1 = FUN_0004f990(param_1,local_20,0,param_2)" identifier = (call_expression "FUN_0004f990(param_1,local_20,0,param_2)" identifier (argument_list "(param_1,local_20,0,param_2)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "param_1 = param_1 + local_20[0];" (assignment_expression "param_1 = param_1 + local_20[0]" identifier = (binary_expression "param_1 + local_20[0]" identifier + (subscript_expression "local_20[0]" identifier [ number_literal ]))) ;) (if_statement "if (iVar1 == 0) {\n      uVar2 = dcgettext(0,&UNK_00077071,5);\n    }\n    else {\n      uVar2 = dcgettext(0,&UNK_0007706d,5);\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar2 = dcgettext(0,&UNK_00077071,5);\n    }" { (expression_statement "uVar2 = dcgettext(0,&UNK_00077071,5);" (assignment_expression "uVar2 = dcgettext(0,&UNK_00077071,5)" identifier = (call_expression "dcgettext(0,&UNK_00077071,5)" identifier (argument_list "(0,&UNK_00077071,5)" ( number_literal , (pointer_expression "&UNK_00077071" & identifier) , number_literal )))) ;) }) (else_clause "else {\n      uVar2 = dcgettext(0,&UNK_0007706d,5);\n    }" else (compound_statement "{\n      uVar2 = dcgettext(0,&UNK_0007706d,5);\n    }" { (expression_statement "uVar2 = dcgettext(0,&UNK_0007706d,5);" (assignment_expression "uVar2 = dcgettext(0,&UNK_0007706d,5)" identifier = (call_expression "dcgettext(0,&UNK_0007706d,5)" identifier (argument_list "(0,&UNK_0007706d,5)" ( number_literal , (pointer_expression "&UNK_0007706d" & identifier) , number_literal )))) ;) }))) (expression_statement "printf("  Tag_ARC_ABI_rf16: %s\n",uVar2);" (call_expression "printf("  Tag_ARC_ABI_rf16: %s\n",uVar2)" identifier (argument_list "("  Tag_ARC_ABI_rf16: %s\n",uVar2)" ( (string_literal ""  Tag_ARC_ABI_rf16: %s\n"" " string_content escape_sequence ") , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 9:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ABI_osver: v%d\n",uVar2);\n    break;" case number_literal : (expression_statement "uVar2 = FUN_0004f990(param_1,local_20,0,param_2);" (assignment_expression "uVar2 = FUN_0004f990(param_1,local_20,0,param_2)" identifier = (call_expression "FUN_0004f990(param_1,local_20,0,param_2)" identifier (argument_list "(param_1,local_20,0,param_2)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "param_1 = param_1 + local_20[0];" (assignment_expression "param_1 = param_1 + local_20[0]" identifier = (binary_expression "param_1 + local_20[0]" identifier + (subscript_expression "local_20[0]" identifier [ number_literal ]))) ;) (expression_statement "printf("  Tag_ARC_ABI_osver: v%d\n",uVar2);" (call_expression "printf("  Tag_ARC_ABI_osver: v%d\n",uVar2)" identifier (argument_list "("  Tag_ARC_ABI_osver: v%d\n",uVar2)" ( (string_literal ""  Tag_ARC_ABI_osver: v%d\n"" " string_content escape_sequence ") , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 10:" case number_literal :) (case_statement "case 0xb:\n    iVar4 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    pcVar6 = "  Tag_ARC_ABI_sda: ";\n    if (iVar1 != 10) {\n      pcVar6 = "  Tag_ARC_ABI_pic: ";\n    }\n    printf(pcVar6);\n    if (iVar4 == 1) {\n      puts("MWDT");\n      return param_1;\n    }\n    if (iVar4 != 0) {\n      if (iVar4 == 2) {\n        puts("GNU");\n        return param_1;\n      }\n      goto code_r0x00021b4a;\n    }\ncode_r0x00021ca0:\n    pcVar6 = "Absent\n";\ncode_r0x00021cab:\n    pcVar6 = (char *)dcgettext(0,pcVar6,5);\n    printf(pcVar6);\n    return param_1;" case number_literal : (expression_statement "iVar4 = FUN_0004f990(param_1,local_20,0,param_2);" (assignment_expression "iVar4 = FUN_0004f990(param_1,local_20,0,param_2)" identifier = (call_expression "FUN_0004f990(param_1,local_20,0,param_2)" identifier (argument_list "(param_1,local_20,0,param_2)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "param_1 = param_1 + local_20[0];" (assignment_expression "param_1 = param_1 + local_20[0]" identifier = (binary_expression "param_1 + local_20[0]" identifier + (subscript_expression "local_20[0]" identifier [ number_literal ]))) ;) (expression_statement "pcVar6 = "  Tag_ARC_ABI_sda: ";" (assignment_expression "pcVar6 = "  Tag_ARC_ABI_sda: "" identifier = (string_literal ""  Tag_ARC_ABI_sda: "" " string_content ")) ;) (if_statement "if (iVar1 != 10) {\n      pcVar6 = "  Tag_ARC_ABI_pic: ";\n    }" if (parenthesized_expression "(iVar1 != 10)" ( (binary_expression "iVar1 != 10" identifier != number_literal) )) (compound_statement "{\n      pcVar6 = "  Tag_ARC_ABI_pic: ";\n    }" { (expression_statement "pcVar6 = "  Tag_ARC_ABI_pic: ";" (assignment_expression "pcVar6 = "  Tag_ARC_ABI_pic: "" identifier = (string_literal ""  Tag_ARC_ABI_pic: "" " string_content ")) ;) })) (expression_statement "printf(pcVar6);" (call_expression "printf(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) (if_statement "if (iVar4 == 1) {\n      puts("MWDT");\n      return param_1;\n    }" if (parenthesized_expression "(iVar4 == 1)" ( (binary_expression "iVar4 == 1" identifier == number_literal) )) (compound_statement "{\n      puts("MWDT");\n      return param_1;\n    }" { (expression_statement "puts("MWDT");" (call_expression "puts("MWDT")" identifier (argument_list "("MWDT")" ( (string_literal ""MWDT"" " string_content ") ))) ;) (return_statement "return param_1;" return identifier ;) })) (if_statement "if (iVar4 != 0) {\n      if (iVar4 == 2) {\n        puts("GNU");\n        return param_1;\n      }\n      goto code_r0x00021b4a;\n    }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      if (iVar4 == 2) {\n        puts("GNU");\n        return param_1;\n      }\n      goto code_r0x00021b4a;\n    }" { (if_statement "if (iVar4 == 2) {\n        puts("GNU");\n        return param_1;\n      }" if (parenthesized_expression "(iVar4 == 2)" ( (binary_expression "iVar4 == 2" identifier == number_literal) )) (compound_statement "{\n        puts("GNU");\n        return param_1;\n      }" { (expression_statement "puts("GNU");" (call_expression "puts("GNU")" identifier (argument_list "("GNU")" ( (string_literal ""GNU"" " string_content ") ))) ;) (return_statement "return param_1;" return identifier ;) })) (goto_statement "goto code_r0x00021b4a;" goto statement_identifier ;) })) (labeled_statement "code_r0x00021ca0:\n    pcVar6 = "Absent\n";" statement_identifier : (expression_statement "pcVar6 = "Absent\n";" (assignment_expression "pcVar6 = "Absent\n"" identifier = (string_literal ""Absent\n"" " string_content escape_sequence ")) ;)) (labeled_statement "code_r0x00021cab:\n    pcVar6 = (char *)dcgettext(0,pcVar6,5);" statement_identifier : (expression_statement "pcVar6 = (char *)dcgettext(0,pcVar6,5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,pcVar6,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar6,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar6,5)" identifier (argument_list "(0,pcVar6,5)" ( number_literal , identifier , number_literal ))))) ;)) (expression_statement "printf(pcVar6);" (call_expression "printf(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) (return_statement "return param_1;" return identifier ;)) (case_statement "case 0xc:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    puVar5 = &UNK_00076f7f;\n    if (iVar1 == 0) {\n      puVar5 = &DAT_00076af8;\n    }\n    printf("  Tag_ARC_ABI_tls: %s\n",puVar5);\n    break;" case number_literal : (expression_statement "iVar1 = FUN_0004f990(param_1,local_20,0,param_2);" (assignment_expression "iVar1 = FUN_0004f990(param_1,local_20,0,param_2)" identifier = (call_expression "FUN_0004f990(param_1,local_20,0,param_2)" identifier (argument_list "(param_1,local_20,0,param_2)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "param_1 = param_1 + local_20[0];" (assignment_expression "param_1 = param_1 + local_20[0]" identifier = (binary_expression "param_1 + local_20[0]" identifier + (subscript_expression "local_20[0]" identifier [ number_literal ]))) ;) (expression_statement "puVar5 = &UNK_00076f7f;" (assignment_expression "puVar5 = &UNK_00076f7f" identifier = (pointer_expression "&UNK_00076f7f" & identifier)) ;) (if_statement "if (iVar1 == 0) {\n      puVar5 = &DAT_00076af8;\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      puVar5 = &DAT_00076af8;\n    }" { (expression_statement "puVar5 = &DAT_00076af8;" (assignment_expression "puVar5 = &DAT_00076af8" identifier = (pointer_expression "&DAT_00076af8" & identifier)) ;) })) (expression_statement "printf("  Tag_ARC_ABI_tls: %s\n",puVar5);" (call_expression "printf("  Tag_ARC_ABI_tls: %s\n",puVar5)" identifier (argument_list "("  Tag_ARC_ABI_tls: %s\n",puVar5)" ( (string_literal ""  Tag_ARC_ABI_tls: %s\n"" " string_content escape_sequence ") , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 0xd:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,"smallest",5);\n    }\n    else {\n      uVar2 = dcgettext(0,"default",5);\n    }\n    printf("  Tag_ARC_ABI_enumsize: %s\n",uVar2);\n    break;" case number_literal : (expression_statement "iVar1 = FUN_0004f990(param_1,local_20,0,param_2);" (assignment_expression "iVar1 = FUN_0004f990(param_1,local_20,0,param_2)" identifier = (call_expression "FUN_0004f990(param_1,local_20,0,param_2)" identifier (argument_list "(param_1,local_20,0,param_2)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "param_1 = param_1 + local_20[0];" (assignment_expression "param_1 = param_1 + local_20[0]" identifier = (binary_expression "param_1 + local_20[0]" identifier + (subscript_expression "local_20[0]" identifier [ number_literal ]))) ;) (if_statement "if (iVar1 == 0) {\n      uVar2 = dcgettext(0,"smallest",5);\n    }\n    else {\n      uVar2 = dcgettext(0,"default",5);\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar2 = dcgettext(0,"smallest",5);\n    }" { (expression_statement "uVar2 = dcgettext(0,"smallest",5);" (assignment_expression "uVar2 = dcgettext(0,"smallest",5)" identifier = (call_expression "dcgettext(0,"smallest",5)" identifier (argument_list "(0,"smallest",5)" ( number_literal , (string_literal ""smallest"" " string_content ") , number_literal )))) ;) }) (else_clause "else {\n      uVar2 = dcgettext(0,"default",5);\n    }" else (compound_statement "{\n      uVar2 = dcgettext(0,"default",5);\n    }" { (expression_statement "uVar2 = dcgettext(0,"default",5);" (assignment_expression "uVar2 = dcgettext(0,"default",5)" identifier = (call_expression "dcgettext(0,"default",5)" identifier (argument_list "(0,"default",5)" ( number_literal , (string_literal ""default"" " string_content ") , number_literal )))) ;) }))) (expression_statement "printf("  Tag_ARC_ABI_enumsize: %s\n",uVar2);" (call_expression "printf("  Tag_ARC_ABI_enumsize: %s\n",uVar2)" identifier (argument_list "("  Tag_ARC_ABI_enumsize: %s\n",uVar2)" ( (string_literal ""  Tag_ARC_ABI_enumsize: %s\n"" " string_content escape_sequence ") , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 0xe:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,"default",5);\n    }\n    else {\n      uVar2 = dcgettext(0,&UNK_000770ef,5);\n    }\n    printf("  Tag_ARC_ABI_exceptions: %s\n",uVar2);\n    break;" case number_literal : (expression_statement "iVar1 = FUN_0004f990(param_1,local_20,0,param_2);" (assignment_expression "iVar1 = FUN_0004f990(param_1,local_20,0,param_2)" identifier = (call_expression "FUN_0004f990(param_1,local_20,0,param_2)" identifier (argument_list "(param_1,local_20,0,param_2)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "param_1 = param_1 + local_20[0];" (assignment_expression "param_1 = param_1 + local_20[0]" identifier = (binary_expression "param_1 + local_20[0]" identifier + (subscript_expression "local_20[0]" identifier [ number_literal ]))) ;) (if_statement "if (iVar1 == 0) {\n      uVar2 = dcgettext(0,"default",5);\n    }\n    else {\n      uVar2 = dcgettext(0,&UNK_000770ef,5);\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar2 = dcgettext(0,"default",5);\n    }" { (expression_statement "uVar2 = dcgettext(0,"default",5);" (assignment_expression "uVar2 = dcgettext(0,"default",5)" identifier = (call_expression "dcgettext(0,"default",5)" identifier (argument_list "(0,"default",5)" ( number_literal , (string_literal ""default"" " string_content ") , number_literal )))) ;) }) (else_clause "else {\n      uVar2 = dcgettext(0,&UNK_000770ef,5);\n    }" else (compound_statement "{\n      uVar2 = dcgettext(0,&UNK_000770ef,5);\n    }" { (expression_statement "uVar2 = dcgettext(0,&UNK_000770ef,5);" (assignment_expression "uVar2 = dcgettext(0,&UNK_000770ef,5)" identifier = (call_expression "dcgettext(0,&UNK_000770ef,5)" identifier (argument_list "(0,&UNK_000770ef,5)" ( number_literal , (pointer_expression "&UNK_000770ef" & identifier) , number_literal )))) ;) }))) (expression_statement "printf("  Tag_ARC_ABI_exceptions: %s\n",uVar2);" (call_expression "printf("  Tag_ARC_ABI_exceptions: %s\n",uVar2)" identifier (argument_list "("  Tag_ARC_ABI_exceptions: %s\n",uVar2)" ( (string_literal ""  Tag_ARC_ABI_exceptions: %s\n"" " string_content escape_sequence ") , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 0xf:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ABI_double_size: %d\n",uVar2);\n    break;" case number_literal : (expression_statement "uVar2 = FUN_0004f990(param_1,local_20,0,param_2);" (assignment_expression "uVar2 = FUN_0004f990(param_1,local_20,0,param_2)" identifier = (call_expression "FUN_0004f990(param_1,local_20,0,param_2)" identifier (argument_list "(param_1,local_20,0,param_2)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "param_1 = param_1 + local_20[0];" (assignment_expression "param_1 = param_1 + local_20[0]" identifier = (binary_expression "param_1 + local_20[0]" identifier + (subscript_expression "local_20[0]" identifier [ number_literal ]))) ;) (expression_statement "printf("  Tag_ARC_ABI_double_size: %d\n",uVar2);" (call_expression "printf("  Tag_ARC_ABI_double_size: %d\n",uVar2)" identifier (argument_list "("  Tag_ARC_ABI_double_size: %d\n",uVar2)" ( (string_literal ""  Tag_ARC_ABI_double_size: %d\n"" " string_content escape_sequence ") , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 0x10:\n    pcVar6 = "  Tag_ARC_ISA_config: ";\n    goto code_r0x00021939;" case number_literal : (expression_statement "pcVar6 = "  Tag_ARC_ISA_config: ";" (assignment_expression "pcVar6 = "  Tag_ARC_ISA_config: "" identifier = (string_literal ""  Tag_ARC_ISA_config: "" " string_content ")) ;) (goto_statement "goto code_r0x00021939;" goto statement_identifier ;)) (case_statement "case 0x11:\n    pcVar6 = "  Tag_ARC_ISA_apex: ";\ncode_r0x00021939:\n    printf(pcVar6);\n    param_1 = FUN_0001ff40();\n    break;" case number_literal : (expression_statement "pcVar6 = "  Tag_ARC_ISA_apex: ";" (assignment_expression "pcVar6 = "  Tag_ARC_ISA_apex: "" identifier = (string_literal ""  Tag_ARC_ISA_apex: "" " string_content ")) ;) (labeled_statement "code_r0x00021939:\n    printf(pcVar6);" statement_identifier : (expression_statement "printf(pcVar6);" (call_expression "printf(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;)) (expression_statement "param_1 = FUN_0001ff40();" (assignment_expression "param_1 = FUN_0001ff40()" identifier = (call_expression "FUN_0001ff40()" identifier (argument_list "()" ( )))) ;) (break_statement "break;" break ;)) (case_statement "case 0x12:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ISA_mpy_option: %d\n",uVar2);\n    break;" case number_literal : (expression_statement "uVar2 = FUN_0004f990(param_1,local_20,0,param_2);" (assignment_expression "uVar2 = FUN_0004f990(param_1,local_20,0,param_2)" identifier = (call_expression "FUN_0004f990(param_1,local_20,0,param_2)" identifier (argument_list "(param_1,local_20,0,param_2)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "param_1 = param_1 + local_20[0];" (assignment_expression "param_1 = param_1 + local_20[0]" identifier = (binary_expression "param_1 + local_20[0]" identifier + (subscript_expression "local_20[0]" identifier [ number_literal ]))) ;) (expression_statement "printf("  Tag_ARC_ISA_mpy_option: %d\n",uVar2);" (call_expression "printf("  Tag_ARC_ISA_mpy_option: %d\n",uVar2)" identifier (argument_list "("  Tag_ARC_ISA_mpy_option: %d\n",uVar2)" ( (string_literal ""  Tag_ARC_ISA_mpy_option: %d\n"" " string_content escape_sequence ") , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "default:\n    param_1 = FUN_0001ff40();" default : (expression_statement "param_1 = FUN_0001ff40();" (assignment_expression "param_1 = FUN_0001ff40()" identifier = (call_expression "FUN_0001ff40()" identifier (argument_list "()" ( )))) ;)) })) (return_statement "return param_1;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT : (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (break_statement break ;)) (case_statement default : (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;))) })) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) (return_statement return IDENT ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) (return_statement return IDENT ;) })) }))) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , IDENT ))) ;) (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) (return_statement return IDENT ;) })) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (pointer_expression & IDENT) , LIT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (pointer_expression & IDENT) , LIT )))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , IDENT ))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , IDENT ))) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) (return_statement return IDENT ;) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;)) (labeled_statement statement_identifier : (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 ( IDENT ))) ;) (return_statement return IDENT ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , IDENT ))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , IDENT ))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (pointer_expression & IDENT) , LIT )))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , IDENT ))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , IDENT ))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , IDENT ))) ;) (break_statement break ;)) (case_statement default : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;)) })) (return_statement return IDENT ;) })))
(function_definition "int FUN_000218e0(int param_1,undefined4 param_2)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  uint uVar3;\n  int iVar4;\n  undefined *puVar5;\n  char *pcVar6;\n  int local_20 [3];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x218e9;\n  iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n  param_1 = param_1 + local_20[0];\n  switch(iVar1) {\n  case 4:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_PCS_config: ");\n    switch(uVar2) {\n    case 0:\n      pcVar6 = "Absent/Non standard\n";\n      break;\n    case 1:\n      pcVar6 = "Bare metal/mwdt\n";\n      break;\n    case 2:\n      pcVar6 = "Bare metal/newlib\n";\n      break;\n    case 3:\n      pcVar6 = "Linux/uclibc\n";\n      break;\n    case 4:\n      pcVar6 = "Linux/glibc\n";\n      break;\n    default:\ncode_r0x00021b4a:\n      pcVar6 = "Unknown\n";\n    }\n    goto code_r0x00021cab;\n  case 5:\n    uVar3 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_CPU_base: ");\n    if (uVar3 == 2) {\n      puts("ARC7xx");\n      return param_1;\n    }\n    if (uVar3 < 3) {\n      if (uVar3 == 1) {\n        puts("ARC6xx");\n        return param_1;\n      }\n    }\n    else {\n      if (uVar3 == 3) {\n        puts("ARCEM");\n        return param_1;\n      }\n      if (uVar3 == 4) {\n        puts("ARCHS");\n        return param_1;\n      }\n    }\n    goto code_r0x00021ca0;\n  case 6:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_CPU_variation: ");\n    if (iVar1 != 0) {\n      if (iVar1 - 1U < 0xf) {\n        printf("Core%d\n",iVar1);\n        return param_1;\n      }\n      puts("Unknown");\n      return param_1;\n    }\n    goto code_r0x00021ca0;\n  case 7:\n    pcVar6 = "  Tag_ARC_CPU_name: ";\n    goto code_r0x00021939;\n  case 8:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,&UNK_00077071,5);\n    }\n    else {\n      uVar2 = dcgettext(0,&UNK_0007706d,5);\n    }\n    printf("  Tag_ARC_ABI_rf16: %s\n",uVar2);\n    break;\n  case 9:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ABI_osver: v%d\n",uVar2);\n    break;\n  case 10:\n  case 0xb:\n    iVar4 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    pcVar6 = "  Tag_ARC_ABI_sda: ";\n    if (iVar1 != 10) {\n      pcVar6 = "  Tag_ARC_ABI_pic: ";\n    }\n    printf(pcVar6);\n    if (iVar4 == 1) {\n      puts("MWDT");\n      return param_1;\n    }\n    if (iVar4 != 0) {\n      if (iVar4 == 2) {\n        puts("GNU");\n        return param_1;\n      }\n      goto code_r0x00021b4a;\n    }\ncode_r0x00021ca0:\n    pcVar6 = "Absent\n";\ncode_r0x00021cab:\n    pcVar6 = (char *)dcgettext(0,pcVar6,5);\n    printf(pcVar6);\n    return param_1;\n  case 0xc:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    puVar5 = &UNK_00076f7f;\n    if (iVar1 == 0) {\n      puVar5 = &DAT_00076af8;\n    }\n    printf("  Tag_ARC_ABI_tls: %s\n",puVar5);\n    break;\n  case 0xd:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,"smallest",5);\n    }\n    else {\n      uVar2 = dcgettext(0,"default",5);\n    }\n    printf("  Tag_ARC_ABI_enumsize: %s\n",uVar2);\n    break;\n  case 0xe:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,"default",5);\n    }\n    else {\n      uVar2 = dcgettext(0,&UNK_000770ef,5);\n    }\n    printf("  Tag_ARC_ABI_exceptions: %s\n",uVar2);\n    break;\n  case 0xf:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ABI_double_size: %d\n",uVar2);\n    break;\n  case 0x10:\n    pcVar6 = "  Tag_ARC_ISA_config: ";\n    goto code_r0x00021939;\n  case 0x11:\n    pcVar6 = "  Tag_ARC_ISA_apex: ";\ncode_r0x00021939:\n    printf(pcVar6);\n    param_1 = FUN_0001ff40();\n    break;\n  case 0x12:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ISA_mpy_option: %d\n",uVar2);\n    break;\n  default:\n    param_1 = FUN_0001ff40();\n  }\n  return param_1;\n}" (primitive_type "int") (function_declarator "FUN_000218e0(int param_1,undefined4 param_2)" (identifier "FUN_000218e0") (parameter_list "(int param_1,undefined4 param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) () ")"))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  uint uVar3;\n  int iVar4;\n  undefined *puVar5;\n  char *pcVar6;\n  int local_20 [3];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x218e9;\n  iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n  param_1 = param_1 + local_20[0];\n  switch(iVar1) {\n  case 4:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_PCS_config: ");\n    switch(uVar2) {\n    case 0:\n      pcVar6 = "Absent/Non standard\n";\n      break;\n    case 1:\n      pcVar6 = "Bare metal/mwdt\n";\n      break;\n    case 2:\n      pcVar6 = "Bare metal/newlib\n";\n      break;\n    case 3:\n      pcVar6 = "Linux/uclibc\n";\n      break;\n    case 4:\n      pcVar6 = "Linux/glibc\n";\n      break;\n    default:\ncode_r0x00021b4a:\n      pcVar6 = "Unknown\n";\n    }\n    goto code_r0x00021cab;\n  case 5:\n    uVar3 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_CPU_base: ");\n    if (uVar3 == 2) {\n      puts("ARC7xx");\n      return param_1;\n    }\n    if (uVar3 < 3) {\n      if (uVar3 == 1) {\n        puts("ARC6xx");\n        return param_1;\n      }\n    }\n    else {\n      if (uVar3 == 3) {\n        puts("ARCEM");\n        return param_1;\n      }\n      if (uVar3 == 4) {\n        puts("ARCHS");\n        return param_1;\n      }\n    }\n    goto code_r0x00021ca0;\n  case 6:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_CPU_variation: ");\n    if (iVar1 != 0) {\n      if (iVar1 - 1U < 0xf) {\n        printf("Core%d\n",iVar1);\n        return param_1;\n      }\n      puts("Unknown");\n      return param_1;\n    }\n    goto code_r0x00021ca0;\n  case 7:\n    pcVar6 = "  Tag_ARC_CPU_name: ";\n    goto code_r0x00021939;\n  case 8:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,&UNK_00077071,5);\n    }\n    else {\n      uVar2 = dcgettext(0,&UNK_0007706d,5);\n    }\n    printf("  Tag_ARC_ABI_rf16: %s\n",uVar2);\n    break;\n  case 9:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ABI_osver: v%d\n",uVar2);\n    break;\n  case 10:\n  case 0xb:\n    iVar4 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    pcVar6 = "  Tag_ARC_ABI_sda: ";\n    if (iVar1 != 10) {\n      pcVar6 = "  Tag_ARC_ABI_pic: ";\n    }\n    printf(pcVar6);\n    if (iVar4 == 1) {\n      puts("MWDT");\n      return param_1;\n    }\n    if (iVar4 != 0) {\n      if (iVar4 == 2) {\n        puts("GNU");\n        return param_1;\n      }\n      goto code_r0x00021b4a;\n    }\ncode_r0x00021ca0:\n    pcVar6 = "Absent\n";\ncode_r0x00021cab:\n    pcVar6 = (char *)dcgettext(0,pcVar6,5);\n    printf(pcVar6);\n    return param_1;\n  case 0xc:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    puVar5 = &UNK_00076f7f;\n    if (iVar1 == 0) {\n      puVar5 = &DAT_00076af8;\n    }\n    printf("  Tag_ARC_ABI_tls: %s\n",puVar5);\n    break;\n  case 0xd:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,"smallest",5);\n    }\n    else {\n      uVar2 = dcgettext(0,"default",5);\n    }\n    printf("  Tag_ARC_ABI_enumsize: %s\n",uVar2);\n    break;\n  case 0xe:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,"default",5);\n    }\n    else {\n      uVar2 = dcgettext(0,&UNK_000770ef,5);\n    }\n    printf("  Tag_ARC_ABI_exceptions: %s\n",uVar2);\n    break;\n  case 0xf:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ABI_double_size: %d\n",uVar2);\n    break;\n  case 0x10:\n    pcVar6 = "  Tag_ARC_ISA_config: ";\n    goto code_r0x00021939;\n  case 0x11:\n    pcVar6 = "  Tag_ARC_ISA_apex: ";\ncode_r0x00021939:\n    printf(pcVar6);\n    param_1 = FUN_0001ff40();\n    break;\n  case 0x12:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ISA_mpy_option: %d\n",uVar2);\n    break;\n  default:\n    param_1 = FUN_0001ff40();\n  }\n  return param_1;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "undefined *puVar5;" (type_identifier "undefined") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "char *pcVar6;" (primitive_type "char") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "int local_20 [3];" (primitive_type "int") (array_declarator "local_20 [3]" (identifier "local_20") ([ "[") (number_literal "3") (] "]")) (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x218e9;" (assignment_expression "uStack_14 = 0x218e9" (identifier "uStack_14") (= "=") (number_literal "0x218e9")) (; ";")) (expression_statement "iVar1 = FUN_0004f990(param_1,local_20,0,param_2);" (assignment_expression "iVar1 = FUN_0004f990(param_1,local_20,0,param_2)" (identifier "iVar1") (= "=") (call_expression "FUN_0004f990(param_1,local_20,0,param_2)" (identifier "FUN_0004f990") (argument_list "(param_1,local_20,0,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "local_20") (, ",") (number_literal "0") (, ",") (identifier "param_2") () ")")))) (; ";")) (expression_statement "param_1 = param_1 + local_20[0];" (assignment_expression "param_1 = param_1 + local_20[0]" (identifier "param_1") (= "=") (binary_expression "param_1 + local_20[0]" (identifier "param_1") (+ "+") (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")))) (; ";")) (switch_statement "switch(iVar1) {\n  case 4:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_PCS_config: ");\n    switch(uVar2) {\n    case 0:\n      pcVar6 = "Absent/Non standard\n";\n      break;\n    case 1:\n      pcVar6 = "Bare metal/mwdt\n";\n      break;\n    case 2:\n      pcVar6 = "Bare metal/newlib\n";\n      break;\n    case 3:\n      pcVar6 = "Linux/uclibc\n";\n      break;\n    case 4:\n      pcVar6 = "Linux/glibc\n";\n      break;\n    default:\ncode_r0x00021b4a:\n      pcVar6 = "Unknown\n";\n    }\n    goto code_r0x00021cab;\n  case 5:\n    uVar3 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_CPU_base: ");\n    if (uVar3 == 2) {\n      puts("ARC7xx");\n      return param_1;\n    }\n    if (uVar3 < 3) {\n      if (uVar3 == 1) {\n        puts("ARC6xx");\n        return param_1;\n      }\n    }\n    else {\n      if (uVar3 == 3) {\n        puts("ARCEM");\n        return param_1;\n      }\n      if (uVar3 == 4) {\n        puts("ARCHS");\n        return param_1;\n      }\n    }\n    goto code_r0x00021ca0;\n  case 6:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_CPU_variation: ");\n    if (iVar1 != 0) {\n      if (iVar1 - 1U < 0xf) {\n        printf("Core%d\n",iVar1);\n        return param_1;\n      }\n      puts("Unknown");\n      return param_1;\n    }\n    goto code_r0x00021ca0;\n  case 7:\n    pcVar6 = "  Tag_ARC_CPU_name: ";\n    goto code_r0x00021939;\n  case 8:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,&UNK_00077071,5);\n    }\n    else {\n      uVar2 = dcgettext(0,&UNK_0007706d,5);\n    }\n    printf("  Tag_ARC_ABI_rf16: %s\n",uVar2);\n    break;\n  case 9:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ABI_osver: v%d\n",uVar2);\n    break;\n  case 10:\n  case 0xb:\n    iVar4 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    pcVar6 = "  Tag_ARC_ABI_sda: ";\n    if (iVar1 != 10) {\n      pcVar6 = "  Tag_ARC_ABI_pic: ";\n    }\n    printf(pcVar6);\n    if (iVar4 == 1) {\n      puts("MWDT");\n      return param_1;\n    }\n    if (iVar4 != 0) {\n      if (iVar4 == 2) {\n        puts("GNU");\n        return param_1;\n      }\n      goto code_r0x00021b4a;\n    }\ncode_r0x00021ca0:\n    pcVar6 = "Absent\n";\ncode_r0x00021cab:\n    pcVar6 = (char *)dcgettext(0,pcVar6,5);\n    printf(pcVar6);\n    return param_1;\n  case 0xc:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    puVar5 = &UNK_00076f7f;\n    if (iVar1 == 0) {\n      puVar5 = &DAT_00076af8;\n    }\n    printf("  Tag_ARC_ABI_tls: %s\n",puVar5);\n    break;\n  case 0xd:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,"smallest",5);\n    }\n    else {\n      uVar2 = dcgettext(0,"default",5);\n    }\n    printf("  Tag_ARC_ABI_enumsize: %s\n",uVar2);\n    break;\n  case 0xe:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,"default",5);\n    }\n    else {\n      uVar2 = dcgettext(0,&UNK_000770ef,5);\n    }\n    printf("  Tag_ARC_ABI_exceptions: %s\n",uVar2);\n    break;\n  case 0xf:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ABI_double_size: %d\n",uVar2);\n    break;\n  case 0x10:\n    pcVar6 = "  Tag_ARC_ISA_config: ";\n    goto code_r0x00021939;\n  case 0x11:\n    pcVar6 = "  Tag_ARC_ISA_apex: ";\ncode_r0x00021939:\n    printf(pcVar6);\n    param_1 = FUN_0001ff40();\n    break;\n  case 0x12:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ISA_mpy_option: %d\n",uVar2);\n    break;\n  default:\n    param_1 = FUN_0001ff40();\n  }" (switch "switch") (parenthesized_expression "(iVar1)" (( "(") (identifier "iVar1") () ")")) (compound_statement "{\n  case 4:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_PCS_config: ");\n    switch(uVar2) {\n    case 0:\n      pcVar6 = "Absent/Non standard\n";\n      break;\n    case 1:\n      pcVar6 = "Bare metal/mwdt\n";\n      break;\n    case 2:\n      pcVar6 = "Bare metal/newlib\n";\n      break;\n    case 3:\n      pcVar6 = "Linux/uclibc\n";\n      break;\n    case 4:\n      pcVar6 = "Linux/glibc\n";\n      break;\n    default:\ncode_r0x00021b4a:\n      pcVar6 = "Unknown\n";\n    }\n    goto code_r0x00021cab;\n  case 5:\n    uVar3 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_CPU_base: ");\n    if (uVar3 == 2) {\n      puts("ARC7xx");\n      return param_1;\n    }\n    if (uVar3 < 3) {\n      if (uVar3 == 1) {\n        puts("ARC6xx");\n        return param_1;\n      }\n    }\n    else {\n      if (uVar3 == 3) {\n        puts("ARCEM");\n        return param_1;\n      }\n      if (uVar3 == 4) {\n        puts("ARCHS");\n        return param_1;\n      }\n    }\n    goto code_r0x00021ca0;\n  case 6:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_CPU_variation: ");\n    if (iVar1 != 0) {\n      if (iVar1 - 1U < 0xf) {\n        printf("Core%d\n",iVar1);\n        return param_1;\n      }\n      puts("Unknown");\n      return param_1;\n    }\n    goto code_r0x00021ca0;\n  case 7:\n    pcVar6 = "  Tag_ARC_CPU_name: ";\n    goto code_r0x00021939;\n  case 8:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,&UNK_00077071,5);\n    }\n    else {\n      uVar2 = dcgettext(0,&UNK_0007706d,5);\n    }\n    printf("  Tag_ARC_ABI_rf16: %s\n",uVar2);\n    break;\n  case 9:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ABI_osver: v%d\n",uVar2);\n    break;\n  case 10:\n  case 0xb:\n    iVar4 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    pcVar6 = "  Tag_ARC_ABI_sda: ";\n    if (iVar1 != 10) {\n      pcVar6 = "  Tag_ARC_ABI_pic: ";\n    }\n    printf(pcVar6);\n    if (iVar4 == 1) {\n      puts("MWDT");\n      return param_1;\n    }\n    if (iVar4 != 0) {\n      if (iVar4 == 2) {\n        puts("GNU");\n        return param_1;\n      }\n      goto code_r0x00021b4a;\n    }\ncode_r0x00021ca0:\n    pcVar6 = "Absent\n";\ncode_r0x00021cab:\n    pcVar6 = (char *)dcgettext(0,pcVar6,5);\n    printf(pcVar6);\n    return param_1;\n  case 0xc:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    puVar5 = &UNK_00076f7f;\n    if (iVar1 == 0) {\n      puVar5 = &DAT_00076af8;\n    }\n    printf("  Tag_ARC_ABI_tls: %s\n",puVar5);\n    break;\n  case 0xd:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,"smallest",5);\n    }\n    else {\n      uVar2 = dcgettext(0,"default",5);\n    }\n    printf("  Tag_ARC_ABI_enumsize: %s\n",uVar2);\n    break;\n  case 0xe:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,"default",5);\n    }\n    else {\n      uVar2 = dcgettext(0,&UNK_000770ef,5);\n    }\n    printf("  Tag_ARC_ABI_exceptions: %s\n",uVar2);\n    break;\n  case 0xf:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ABI_double_size: %d\n",uVar2);\n    break;\n  case 0x10:\n    pcVar6 = "  Tag_ARC_ISA_config: ";\n    goto code_r0x00021939;\n  case 0x11:\n    pcVar6 = "  Tag_ARC_ISA_apex: ";\ncode_r0x00021939:\n    printf(pcVar6);\n    param_1 = FUN_0001ff40();\n    break;\n  case 0x12:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ISA_mpy_option: %d\n",uVar2);\n    break;\n  default:\n    param_1 = FUN_0001ff40();\n  }" ({ "{") (case_statement "case 4:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_PCS_config: ");\n    switch(uVar2) {\n    case 0:\n      pcVar6 = "Absent/Non standard\n";\n      break;\n    case 1:\n      pcVar6 = "Bare metal/mwdt\n";\n      break;\n    case 2:\n      pcVar6 = "Bare metal/newlib\n";\n      break;\n    case 3:\n      pcVar6 = "Linux/uclibc\n";\n      break;\n    case 4:\n      pcVar6 = "Linux/glibc\n";\n      break;\n    default:\ncode_r0x00021b4a:\n      pcVar6 = "Unknown\n";\n    }\n    goto code_r0x00021cab;" (case "case") (number_literal "4") (: ":") (expression_statement "uVar2 = FUN_0004f990(param_1,local_20,0,param_2);" (assignment_expression "uVar2 = FUN_0004f990(param_1,local_20,0,param_2)" (identifier "uVar2") (= "=") (call_expression "FUN_0004f990(param_1,local_20,0,param_2)" (identifier "FUN_0004f990") (argument_list "(param_1,local_20,0,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "local_20") (, ",") (number_literal "0") (, ",") (identifier "param_2") () ")")))) (; ";")) (expression_statement "param_1 = param_1 + local_20[0];" (assignment_expression "param_1 = param_1 + local_20[0]" (identifier "param_1") (= "=") (binary_expression "param_1 + local_20[0]" (identifier "param_1") (+ "+") (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")))) (; ";")) (expression_statement "printf("  Tag_ARC_PCS_config: ");" (call_expression "printf("  Tag_ARC_PCS_config: ")" (identifier "printf") (argument_list "("  Tag_ARC_PCS_config: ")" (( "(") (string_literal ""  Tag_ARC_PCS_config: "" (" """) (string_content "  Tag_ARC_PCS_config: ") (" """)) () ")"))) (; ";")) (switch_statement "switch(uVar2) {\n    case 0:\n      pcVar6 = "Absent/Non standard\n";\n      break;\n    case 1:\n      pcVar6 = "Bare metal/mwdt\n";\n      break;\n    case 2:\n      pcVar6 = "Bare metal/newlib\n";\n      break;\n    case 3:\n      pcVar6 = "Linux/uclibc\n";\n      break;\n    case 4:\n      pcVar6 = "Linux/glibc\n";\n      break;\n    default:\ncode_r0x00021b4a:\n      pcVar6 = "Unknown\n";\n    }" (switch "switch") (parenthesized_expression "(uVar2)" (( "(") (identifier "uVar2") () ")")) (compound_statement "{\n    case 0:\n      pcVar6 = "Absent/Non standard\n";\n      break;\n    case 1:\n      pcVar6 = "Bare metal/mwdt\n";\n      break;\n    case 2:\n      pcVar6 = "Bare metal/newlib\n";\n      break;\n    case 3:\n      pcVar6 = "Linux/uclibc\n";\n      break;\n    case 4:\n      pcVar6 = "Linux/glibc\n";\n      break;\n    default:\ncode_r0x00021b4a:\n      pcVar6 = "Unknown\n";\n    }" ({ "{") (case_statement "case 0:\n      pcVar6 = "Absent/Non standard\n";\n      break;" (case "case") (number_literal "0") (: ":") (expression_statement "pcVar6 = "Absent/Non standard\n";" (assignment_expression "pcVar6 = "Absent/Non standard\n"" (identifier "pcVar6") (= "=") (string_literal ""Absent/Non standard\n"" (" """) (string_content "Absent/Non standard") (escape_sequence "\n") (" """))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 1:\n      pcVar6 = "Bare metal/mwdt\n";\n      break;" (case "case") (number_literal "1") (: ":") (expression_statement "pcVar6 = "Bare metal/mwdt\n";" (assignment_expression "pcVar6 = "Bare metal/mwdt\n"" (identifier "pcVar6") (= "=") (string_literal ""Bare metal/mwdt\n"" (" """) (string_content "Bare metal/mwdt") (escape_sequence "\n") (" """))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 2:\n      pcVar6 = "Bare metal/newlib\n";\n      break;" (case "case") (number_literal "2") (: ":") (expression_statement "pcVar6 = "Bare metal/newlib\n";" (assignment_expression "pcVar6 = "Bare metal/newlib\n"" (identifier "pcVar6") (= "=") (string_literal ""Bare metal/newlib\n"" (" """) (string_content "Bare metal/newlib") (escape_sequence "\n") (" """))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 3:\n      pcVar6 = "Linux/uclibc\n";\n      break;" (case "case") (number_literal "3") (: ":") (expression_statement "pcVar6 = "Linux/uclibc\n";" (assignment_expression "pcVar6 = "Linux/uclibc\n"" (identifier "pcVar6") (= "=") (string_literal ""Linux/uclibc\n"" (" """) (string_content "Linux/uclibc") (escape_sequence "\n") (" """))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 4:\n      pcVar6 = "Linux/glibc\n";\n      break;" (case "case") (number_literal "4") (: ":") (expression_statement "pcVar6 = "Linux/glibc\n";" (assignment_expression "pcVar6 = "Linux/glibc\n"" (identifier "pcVar6") (= "=") (string_literal ""Linux/glibc\n"" (" """) (string_content "Linux/glibc") (escape_sequence "\n") (" """))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\ncode_r0x00021b4a:\n      pcVar6 = "Unknown\n";" (default "default") (: ":") (labeled_statement "code_r0x00021b4a:\n      pcVar6 = "Unknown\n";" (statement_identifier "code_r0x00021b4a") (: ":") (expression_statement "pcVar6 = "Unknown\n";" (assignment_expression "pcVar6 = "Unknown\n"" (identifier "pcVar6") (= "=") (string_literal ""Unknown\n"" (" """) (string_content "Unknown") (escape_sequence "\n") (" """))) (; ";")))) (} "}"))) (goto_statement "goto code_r0x00021cab;" (goto "goto") (statement_identifier "code_r0x00021cab") (; ";"))) (case_statement "case 5:\n    uVar3 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_CPU_base: ");\n    if (uVar3 == 2) {\n      puts("ARC7xx");\n      return param_1;\n    }\n    if (uVar3 < 3) {\n      if (uVar3 == 1) {\n        puts("ARC6xx");\n        return param_1;\n      }\n    }\n    else {\n      if (uVar3 == 3) {\n        puts("ARCEM");\n        return param_1;\n      }\n      if (uVar3 == 4) {\n        puts("ARCHS");\n        return param_1;\n      }\n    }\n    goto code_r0x00021ca0;" (case "case") (number_literal "5") (: ":") (expression_statement "uVar3 = FUN_0004f990(param_1,local_20,0,param_2);" (assignment_expression "uVar3 = FUN_0004f990(param_1,local_20,0,param_2)" (identifier "uVar3") (= "=") (call_expression "FUN_0004f990(param_1,local_20,0,param_2)" (identifier "FUN_0004f990") (argument_list "(param_1,local_20,0,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "local_20") (, ",") (number_literal "0") (, ",") (identifier "param_2") () ")")))) (; ";")) (expression_statement "param_1 = param_1 + local_20[0];" (assignment_expression "param_1 = param_1 + local_20[0]" (identifier "param_1") (= "=") (binary_expression "param_1 + local_20[0]" (identifier "param_1") (+ "+") (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")))) (; ";")) (expression_statement "printf("  Tag_ARC_CPU_base: ");" (call_expression "printf("  Tag_ARC_CPU_base: ")" (identifier "printf") (argument_list "("  Tag_ARC_CPU_base: ")" (( "(") (string_literal ""  Tag_ARC_CPU_base: "" (" """) (string_content "  Tag_ARC_CPU_base: ") (" """)) () ")"))) (; ";")) (if_statement "if (uVar3 == 2) {\n      puts("ARC7xx");\n      return param_1;\n    }" (if "if") (parenthesized_expression "(uVar3 == 2)" (( "(") (binary_expression "uVar3 == 2" (identifier "uVar3") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n      puts("ARC7xx");\n      return param_1;\n    }" ({ "{") (expression_statement "puts("ARC7xx");" (call_expression "puts("ARC7xx")" (identifier "puts") (argument_list "("ARC7xx")" (( "(") (string_literal ""ARC7xx"" (" """) (string_content "ARC7xx") (" """)) () ")"))) (; ";")) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}"))) (if_statement "if (uVar3 < 3) {\n      if (uVar3 == 1) {\n        puts("ARC6xx");\n        return param_1;\n      }\n    }\n    else {\n      if (uVar3 == 3) {\n        puts("ARCEM");\n        return param_1;\n      }\n      if (uVar3 == 4) {\n        puts("ARCHS");\n        return param_1;\n      }\n    }" (if "if") (parenthesized_expression "(uVar3 < 3)" (( "(") (binary_expression "uVar3 < 3" (identifier "uVar3") (< "<") (number_literal "3")) () ")")) (compound_statement "{\n      if (uVar3 == 1) {\n        puts("ARC6xx");\n        return param_1;\n      }\n    }" ({ "{") (if_statement "if (uVar3 == 1) {\n        puts("ARC6xx");\n        return param_1;\n      }" (if "if") (parenthesized_expression "(uVar3 == 1)" (( "(") (binary_expression "uVar3 == 1" (identifier "uVar3") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n        puts("ARC6xx");\n        return param_1;\n      }" ({ "{") (expression_statement "puts("ARC6xx");" (call_expression "puts("ARC6xx")" (identifier "puts") (argument_list "("ARC6xx")" (( "(") (string_literal ""ARC6xx"" (" """) (string_content "ARC6xx") (" """)) () ")"))) (; ";")) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      if (uVar3 == 3) {\n        puts("ARCEM");\n        return param_1;\n      }\n      if (uVar3 == 4) {\n        puts("ARCHS");\n        return param_1;\n      }\n    }" (else "else") (compound_statement "{\n      if (uVar3 == 3) {\n        puts("ARCEM");\n        return param_1;\n      }\n      if (uVar3 == 4) {\n        puts("ARCHS");\n        return param_1;\n      }\n    }" ({ "{") (if_statement "if (uVar3 == 3) {\n        puts("ARCEM");\n        return param_1;\n      }" (if "if") (parenthesized_expression "(uVar3 == 3)" (( "(") (binary_expression "uVar3 == 3" (identifier "uVar3") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n        puts("ARCEM");\n        return param_1;\n      }" ({ "{") (expression_statement "puts("ARCEM");" (call_expression "puts("ARCEM")" (identifier "puts") (argument_list "("ARCEM")" (( "(") (string_literal ""ARCEM"" (" """) (string_content "ARCEM") (" """)) () ")"))) (; ";")) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}"))) (if_statement "if (uVar3 == 4) {\n        puts("ARCHS");\n        return param_1;\n      }" (if "if") (parenthesized_expression "(uVar3 == 4)" (( "(") (binary_expression "uVar3 == 4" (identifier "uVar3") (== "==") (number_literal "4")) () ")")) (compound_statement "{\n        puts("ARCHS");\n        return param_1;\n      }" ({ "{") (expression_statement "puts("ARCHS");" (call_expression "puts("ARCHS")" (identifier "puts") (argument_list "("ARCHS")" (( "(") (string_literal ""ARCHS"" (" """) (string_content "ARCHS") (" """)) () ")"))) (; ";")) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}"))) (} "}")))) (goto_statement "goto code_r0x00021ca0;" (goto "goto") (statement_identifier "code_r0x00021ca0") (; ";"))) (case_statement "case 6:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_CPU_variation: ");\n    if (iVar1 != 0) {\n      if (iVar1 - 1U < 0xf) {\n        printf("Core%d\n",iVar1);\n        return param_1;\n      }\n      puts("Unknown");\n      return param_1;\n    }\n    goto code_r0x00021ca0;" (case "case") (number_literal "6") (: ":") (expression_statement "iVar1 = FUN_0004f990(param_1,local_20,0,param_2);" (assignment_expression "iVar1 = FUN_0004f990(param_1,local_20,0,param_2)" (identifier "iVar1") (= "=") (call_expression "FUN_0004f990(param_1,local_20,0,param_2)" (identifier "FUN_0004f990") (argument_list "(param_1,local_20,0,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "local_20") (, ",") (number_literal "0") (, ",") (identifier "param_2") () ")")))) (; ";")) (expression_statement "param_1 = param_1 + local_20[0];" (assignment_expression "param_1 = param_1 + local_20[0]" (identifier "param_1") (= "=") (binary_expression "param_1 + local_20[0]" (identifier "param_1") (+ "+") (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")))) (; ";")) (expression_statement "printf("  Tag_ARC_CPU_variation: ");" (call_expression "printf("  Tag_ARC_CPU_variation: ")" (identifier "printf") (argument_list "("  Tag_ARC_CPU_variation: ")" (( "(") (string_literal ""  Tag_ARC_CPU_variation: "" (" """) (string_content "  Tag_ARC_CPU_variation: ") (" """)) () ")"))) (; ";")) (if_statement "if (iVar1 != 0) {\n      if (iVar1 - 1U < 0xf) {\n        printf("Core%d\n",iVar1);\n        return param_1;\n      }\n      puts("Unknown");\n      return param_1;\n    }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if (iVar1 - 1U < 0xf) {\n        printf("Core%d\n",iVar1);\n        return param_1;\n      }\n      puts("Unknown");\n      return param_1;\n    }" ({ "{") (if_statement "if (iVar1 - 1U < 0xf) {\n        printf("Core%d\n",iVar1);\n        return param_1;\n      }" (if "if") (parenthesized_expression "(iVar1 - 1U < 0xf)" (( "(") (binary_expression "iVar1 - 1U < 0xf" (binary_expression "iVar1 - 1U" (identifier "iVar1") (- "-") (number_literal "1U")) (< "<") (number_literal "0xf")) () ")")) (compound_statement "{\n        printf("Core%d\n",iVar1);\n        return param_1;\n      }" ({ "{") (expression_statement "printf("Core%d\n",iVar1);" (call_expression "printf("Core%d\n",iVar1)" (identifier "printf") (argument_list "("Core%d\n",iVar1)" (( "(") (string_literal ""Core%d\n"" (" """) (string_content "Core%d") (escape_sequence "\n") (" """)) (, ",") (identifier "iVar1") () ")"))) (; ";")) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}"))) (expression_statement "puts("Unknown");" (call_expression "puts("Unknown")" (identifier "puts") (argument_list "("Unknown")" (( "(") (string_literal ""Unknown"" (" """) (string_content "Unknown") (" """)) () ")"))) (; ";")) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}"))) (goto_statement "goto code_r0x00021ca0;" (goto "goto") (statement_identifier "code_r0x00021ca0") (; ";"))) (case_statement "case 7:\n    pcVar6 = "  Tag_ARC_CPU_name: ";\n    goto code_r0x00021939;" (case "case") (number_literal "7") (: ":") (expression_statement "pcVar6 = "  Tag_ARC_CPU_name: ";" (assignment_expression "pcVar6 = "  Tag_ARC_CPU_name: "" (identifier "pcVar6") (= "=") (string_literal ""  Tag_ARC_CPU_name: "" (" """) (string_content "  Tag_ARC_CPU_name: ") (" """))) (; ";")) (goto_statement "goto code_r0x00021939;" (goto "goto") (statement_identifier "code_r0x00021939") (; ";"))) (case_statement "case 8:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,&UNK_00077071,5);\n    }\n    else {\n      uVar2 = dcgettext(0,&UNK_0007706d,5);\n    }\n    printf("  Tag_ARC_ABI_rf16: %s\n",uVar2);\n    break;" (case "case") (number_literal "8") (: ":") (expression_statement "iVar1 = FUN_0004f990(param_1,local_20,0,param_2);" (assignment_expression "iVar1 = FUN_0004f990(param_1,local_20,0,param_2)" (identifier "iVar1") (= "=") (call_expression "FUN_0004f990(param_1,local_20,0,param_2)" (identifier "FUN_0004f990") (argument_list "(param_1,local_20,0,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "local_20") (, ",") (number_literal "0") (, ",") (identifier "param_2") () ")")))) (; ";")) (expression_statement "param_1 = param_1 + local_20[0];" (assignment_expression "param_1 = param_1 + local_20[0]" (identifier "param_1") (= "=") (binary_expression "param_1 + local_20[0]" (identifier "param_1") (+ "+") (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")))) (; ";")) (if_statement "if (iVar1 == 0) {\n      uVar2 = dcgettext(0,&UNK_00077071,5);\n    }\n    else {\n      uVar2 = dcgettext(0,&UNK_0007706d,5);\n    }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar2 = dcgettext(0,&UNK_00077071,5);\n    }" ({ "{") (expression_statement "uVar2 = dcgettext(0,&UNK_00077071,5);" (assignment_expression "uVar2 = dcgettext(0,&UNK_00077071,5)" (identifier "uVar2") (= "=") (call_expression "dcgettext(0,&UNK_00077071,5)" (identifier "dcgettext") (argument_list "(0,&UNK_00077071,5)" (( "(") (number_literal "0") (, ",") (pointer_expression "&UNK_00077071" (& "&") (identifier "UNK_00077071")) (, ",") (number_literal "5") () ")")))) (; ";")) (} "}")) (else_clause "else {\n      uVar2 = dcgettext(0,&UNK_0007706d,5);\n    }" (else "else") (compound_statement "{\n      uVar2 = dcgettext(0,&UNK_0007706d,5);\n    }" ({ "{") (expression_statement "uVar2 = dcgettext(0,&UNK_0007706d,5);" (assignment_expression "uVar2 = dcgettext(0,&UNK_0007706d,5)" (identifier "uVar2") (= "=") (call_expression "dcgettext(0,&UNK_0007706d,5)" (identifier "dcgettext") (argument_list "(0,&UNK_0007706d,5)" (( "(") (number_literal "0") (, ",") (pointer_expression "&UNK_0007706d" (& "&") (identifier "UNK_0007706d")) (, ",") (number_literal "5") () ")")))) (; ";")) (} "}")))) (expression_statement "printf("  Tag_ARC_ABI_rf16: %s\n",uVar2);" (call_expression "printf("  Tag_ARC_ABI_rf16: %s\n",uVar2)" (identifier "printf") (argument_list "("  Tag_ARC_ABI_rf16: %s\n",uVar2)" (( "(") (string_literal ""  Tag_ARC_ABI_rf16: %s\n"" (" """) (string_content "  Tag_ARC_ABI_rf16: %s") (escape_sequence "\n") (" """)) (, ",") (identifier "uVar2") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 9:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ABI_osver: v%d\n",uVar2);\n    break;" (case "case") (number_literal "9") (: ":") (expression_statement "uVar2 = FUN_0004f990(param_1,local_20,0,param_2);" (assignment_expression "uVar2 = FUN_0004f990(param_1,local_20,0,param_2)" (identifier "uVar2") (= "=") (call_expression "FUN_0004f990(param_1,local_20,0,param_2)" (identifier "FUN_0004f990") (argument_list "(param_1,local_20,0,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "local_20") (, ",") (number_literal "0") (, ",") (identifier "param_2") () ")")))) (; ";")) (expression_statement "param_1 = param_1 + local_20[0];" (assignment_expression "param_1 = param_1 + local_20[0]" (identifier "param_1") (= "=") (binary_expression "param_1 + local_20[0]" (identifier "param_1") (+ "+") (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")))) (; ";")) (expression_statement "printf("  Tag_ARC_ABI_osver: v%d\n",uVar2);" (call_expression "printf("  Tag_ARC_ABI_osver: v%d\n",uVar2)" (identifier "printf") (argument_list "("  Tag_ARC_ABI_osver: v%d\n",uVar2)" (( "(") (string_literal ""  Tag_ARC_ABI_osver: v%d\n"" (" """) (string_content "  Tag_ARC_ABI_osver: v%d") (escape_sequence "\n") (" """)) (, ",") (identifier "uVar2") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 10:" (case "case") (number_literal "10") (: ":")) (case_statement "case 0xb:\n    iVar4 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    pcVar6 = "  Tag_ARC_ABI_sda: ";\n    if (iVar1 != 10) {\n      pcVar6 = "  Tag_ARC_ABI_pic: ";\n    }\n    printf(pcVar6);\n    if (iVar4 == 1) {\n      puts("MWDT");\n      return param_1;\n    }\n    if (iVar4 != 0) {\n      if (iVar4 == 2) {\n        puts("GNU");\n        return param_1;\n      }\n      goto code_r0x00021b4a;\n    }\ncode_r0x00021ca0:\n    pcVar6 = "Absent\n";\ncode_r0x00021cab:\n    pcVar6 = (char *)dcgettext(0,pcVar6,5);\n    printf(pcVar6);\n    return param_1;" (case "case") (number_literal "0xb") (: ":") (expression_statement "iVar4 = FUN_0004f990(param_1,local_20,0,param_2);" (assignment_expression "iVar4 = FUN_0004f990(param_1,local_20,0,param_2)" (identifier "iVar4") (= "=") (call_expression "FUN_0004f990(param_1,local_20,0,param_2)" (identifier "FUN_0004f990") (argument_list "(param_1,local_20,0,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "local_20") (, ",") (number_literal "0") (, ",") (identifier "param_2") () ")")))) (; ";")) (expression_statement "param_1 = param_1 + local_20[0];" (assignment_expression "param_1 = param_1 + local_20[0]" (identifier "param_1") (= "=") (binary_expression "param_1 + local_20[0]" (identifier "param_1") (+ "+") (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")))) (; ";")) (expression_statement "pcVar6 = "  Tag_ARC_ABI_sda: ";" (assignment_expression "pcVar6 = "  Tag_ARC_ABI_sda: "" (identifier "pcVar6") (= "=") (string_literal ""  Tag_ARC_ABI_sda: "" (" """) (string_content "  Tag_ARC_ABI_sda: ") (" """))) (; ";")) (if_statement "if (iVar1 != 10) {\n      pcVar6 = "  Tag_ARC_ABI_pic: ";\n    }" (if "if") (parenthesized_expression "(iVar1 != 10)" (( "(") (binary_expression "iVar1 != 10" (identifier "iVar1") (!= "!=") (number_literal "10")) () ")")) (compound_statement "{\n      pcVar6 = "  Tag_ARC_ABI_pic: ";\n    }" ({ "{") (expression_statement "pcVar6 = "  Tag_ARC_ABI_pic: ";" (assignment_expression "pcVar6 = "  Tag_ARC_ABI_pic: "" (identifier "pcVar6") (= "=") (string_literal ""  Tag_ARC_ABI_pic: "" (" """) (string_content "  Tag_ARC_ABI_pic: ") (" """))) (; ";")) (} "}"))) (expression_statement "printf(pcVar6);" (call_expression "printf(pcVar6)" (identifier "printf") (argument_list "(pcVar6)" (( "(") (identifier "pcVar6") () ")"))) (; ";")) (if_statement "if (iVar4 == 1) {\n      puts("MWDT");\n      return param_1;\n    }" (if "if") (parenthesized_expression "(iVar4 == 1)" (( "(") (binary_expression "iVar4 == 1" (identifier "iVar4") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n      puts("MWDT");\n      return param_1;\n    }" ({ "{") (expression_statement "puts("MWDT");" (call_expression "puts("MWDT")" (identifier "puts") (argument_list "("MWDT")" (( "(") (string_literal ""MWDT"" (" """) (string_content "MWDT") (" """)) () ")"))) (; ";")) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}"))) (if_statement "if (iVar4 != 0) {\n      if (iVar4 == 2) {\n        puts("GNU");\n        return param_1;\n      }\n      goto code_r0x00021b4a;\n    }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if (iVar4 == 2) {\n        puts("GNU");\n        return param_1;\n      }\n      goto code_r0x00021b4a;\n    }" ({ "{") (if_statement "if (iVar4 == 2) {\n        puts("GNU");\n        return param_1;\n      }" (if "if") (parenthesized_expression "(iVar4 == 2)" (( "(") (binary_expression "iVar4 == 2" (identifier "iVar4") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n        puts("GNU");\n        return param_1;\n      }" ({ "{") (expression_statement "puts("GNU");" (call_expression "puts("GNU")" (identifier "puts") (argument_list "("GNU")" (( "(") (string_literal ""GNU"" (" """) (string_content "GNU") (" """)) () ")"))) (; ";")) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}"))) (goto_statement "goto code_r0x00021b4a;" (goto "goto") (statement_identifier "code_r0x00021b4a") (; ";")) (} "}"))) (labeled_statement "code_r0x00021ca0:\n    pcVar6 = "Absent\n";" (statement_identifier "code_r0x00021ca0") (: ":") (expression_statement "pcVar6 = "Absent\n";" (assignment_expression "pcVar6 = "Absent\n"" (identifier "pcVar6") (= "=") (string_literal ""Absent\n"" (" """) (string_content "Absent") (escape_sequence "\n") (" """))) (; ";"))) (labeled_statement "code_r0x00021cab:\n    pcVar6 = (char *)dcgettext(0,pcVar6,5);" (statement_identifier "code_r0x00021cab") (: ":") (expression_statement "pcVar6 = (char *)dcgettext(0,pcVar6,5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,pcVar6,5)" (identifier "pcVar6") (= "=") (cast_expression "(char *)dcgettext(0,pcVar6,5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,pcVar6,5)" (identifier "dcgettext") (argument_list "(0,pcVar6,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar6") (, ",") (number_literal "5") () ")"))))) (; ";"))) (expression_statement "printf(pcVar6);" (call_expression "printf(pcVar6)" (identifier "printf") (argument_list "(pcVar6)" (( "(") (identifier "pcVar6") () ")"))) (; ";")) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";"))) (case_statement "case 0xc:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    puVar5 = &UNK_00076f7f;\n    if (iVar1 == 0) {\n      puVar5 = &DAT_00076af8;\n    }\n    printf("  Tag_ARC_ABI_tls: %s\n",puVar5);\n    break;" (case "case") (number_literal "0xc") (: ":") (expression_statement "iVar1 = FUN_0004f990(param_1,local_20,0,param_2);" (assignment_expression "iVar1 = FUN_0004f990(param_1,local_20,0,param_2)" (identifier "iVar1") (= "=") (call_expression "FUN_0004f990(param_1,local_20,0,param_2)" (identifier "FUN_0004f990") (argument_list "(param_1,local_20,0,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "local_20") (, ",") (number_literal "0") (, ",") (identifier "param_2") () ")")))) (; ";")) (expression_statement "param_1 = param_1 + local_20[0];" (assignment_expression "param_1 = param_1 + local_20[0]" (identifier "param_1") (= "=") (binary_expression "param_1 + local_20[0]" (identifier "param_1") (+ "+") (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")))) (; ";")) (expression_statement "puVar5 = &UNK_00076f7f;" (assignment_expression "puVar5 = &UNK_00076f7f" (identifier "puVar5") (= "=") (pointer_expression "&UNK_00076f7f" (& "&") (identifier "UNK_00076f7f"))) (; ";")) (if_statement "if (iVar1 == 0) {\n      puVar5 = &DAT_00076af8;\n    }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      puVar5 = &DAT_00076af8;\n    }" ({ "{") (expression_statement "puVar5 = &DAT_00076af8;" (assignment_expression "puVar5 = &DAT_00076af8" (identifier "puVar5") (= "=") (pointer_expression "&DAT_00076af8" (& "&") (identifier "DAT_00076af8"))) (; ";")) (} "}"))) (expression_statement "printf("  Tag_ARC_ABI_tls: %s\n",puVar5);" (call_expression "printf("  Tag_ARC_ABI_tls: %s\n",puVar5)" (identifier "printf") (argument_list "("  Tag_ARC_ABI_tls: %s\n",puVar5)" (( "(") (string_literal ""  Tag_ARC_ABI_tls: %s\n"" (" """) (string_content "  Tag_ARC_ABI_tls: %s") (escape_sequence "\n") (" """)) (, ",") (identifier "puVar5") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xd:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,"smallest",5);\n    }\n    else {\n      uVar2 = dcgettext(0,"default",5);\n    }\n    printf("  Tag_ARC_ABI_enumsize: %s\n",uVar2);\n    break;" (case "case") (number_literal "0xd") (: ":") (expression_statement "iVar1 = FUN_0004f990(param_1,local_20,0,param_2);" (assignment_expression "iVar1 = FUN_0004f990(param_1,local_20,0,param_2)" (identifier "iVar1") (= "=") (call_expression "FUN_0004f990(param_1,local_20,0,param_2)" (identifier "FUN_0004f990") (argument_list "(param_1,local_20,0,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "local_20") (, ",") (number_literal "0") (, ",") (identifier "param_2") () ")")))) (; ";")) (expression_statement "param_1 = param_1 + local_20[0];" (assignment_expression "param_1 = param_1 + local_20[0]" (identifier "param_1") (= "=") (binary_expression "param_1 + local_20[0]" (identifier "param_1") (+ "+") (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")))) (; ";")) (if_statement "if (iVar1 == 0) {\n      uVar2 = dcgettext(0,"smallest",5);\n    }\n    else {\n      uVar2 = dcgettext(0,"default",5);\n    }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar2 = dcgettext(0,"smallest",5);\n    }" ({ "{") (expression_statement "uVar2 = dcgettext(0,"smallest",5);" (assignment_expression "uVar2 = dcgettext(0,"smallest",5)" (identifier "uVar2") (= "=") (call_expression "dcgettext(0,"smallest",5)" (identifier "dcgettext") (argument_list "(0,"smallest",5)" (( "(") (number_literal "0") (, ",") (string_literal ""smallest"" (" """) (string_content "smallest") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (} "}")) (else_clause "else {\n      uVar2 = dcgettext(0,"default",5);\n    }" (else "else") (compound_statement "{\n      uVar2 = dcgettext(0,"default",5);\n    }" ({ "{") (expression_statement "uVar2 = dcgettext(0,"default",5);" (assignment_expression "uVar2 = dcgettext(0,"default",5)" (identifier "uVar2") (= "=") (call_expression "dcgettext(0,"default",5)" (identifier "dcgettext") (argument_list "(0,"default",5)" (( "(") (number_literal "0") (, ",") (string_literal ""default"" (" """) (string_content "default") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (} "}")))) (expression_statement "printf("  Tag_ARC_ABI_enumsize: %s\n",uVar2);" (call_expression "printf("  Tag_ARC_ABI_enumsize: %s\n",uVar2)" (identifier "printf") (argument_list "("  Tag_ARC_ABI_enumsize: %s\n",uVar2)" (( "(") (string_literal ""  Tag_ARC_ABI_enumsize: %s\n"" (" """) (string_content "  Tag_ARC_ABI_enumsize: %s") (escape_sequence "\n") (" """)) (, ",") (identifier "uVar2") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xe:\n    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    if (iVar1 == 0) {\n      uVar2 = dcgettext(0,"default",5);\n    }\n    else {\n      uVar2 = dcgettext(0,&UNK_000770ef,5);\n    }\n    printf("  Tag_ARC_ABI_exceptions: %s\n",uVar2);\n    break;" (case "case") (number_literal "0xe") (: ":") (expression_statement "iVar1 = FUN_0004f990(param_1,local_20,0,param_2);" (assignment_expression "iVar1 = FUN_0004f990(param_1,local_20,0,param_2)" (identifier "iVar1") (= "=") (call_expression "FUN_0004f990(param_1,local_20,0,param_2)" (identifier "FUN_0004f990") (argument_list "(param_1,local_20,0,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "local_20") (, ",") (number_literal "0") (, ",") (identifier "param_2") () ")")))) (; ";")) (expression_statement "param_1 = param_1 + local_20[0];" (assignment_expression "param_1 = param_1 + local_20[0]" (identifier "param_1") (= "=") (binary_expression "param_1 + local_20[0]" (identifier "param_1") (+ "+") (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")))) (; ";")) (if_statement "if (iVar1 == 0) {\n      uVar2 = dcgettext(0,"default",5);\n    }\n    else {\n      uVar2 = dcgettext(0,&UNK_000770ef,5);\n    }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar2 = dcgettext(0,"default",5);\n    }" ({ "{") (expression_statement "uVar2 = dcgettext(0,"default",5);" (assignment_expression "uVar2 = dcgettext(0,"default",5)" (identifier "uVar2") (= "=") (call_expression "dcgettext(0,"default",5)" (identifier "dcgettext") (argument_list "(0,"default",5)" (( "(") (number_literal "0") (, ",") (string_literal ""default"" (" """) (string_content "default") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (} "}")) (else_clause "else {\n      uVar2 = dcgettext(0,&UNK_000770ef,5);\n    }" (else "else") (compound_statement "{\n      uVar2 = dcgettext(0,&UNK_000770ef,5);\n    }" ({ "{") (expression_statement "uVar2 = dcgettext(0,&UNK_000770ef,5);" (assignment_expression "uVar2 = dcgettext(0,&UNK_000770ef,5)" (identifier "uVar2") (= "=") (call_expression "dcgettext(0,&UNK_000770ef,5)" (identifier "dcgettext") (argument_list "(0,&UNK_000770ef,5)" (( "(") (number_literal "0") (, ",") (pointer_expression "&UNK_000770ef" (& "&") (identifier "UNK_000770ef")) (, ",") (number_literal "5") () ")")))) (; ";")) (} "}")))) (expression_statement "printf("  Tag_ARC_ABI_exceptions: %s\n",uVar2);" (call_expression "printf("  Tag_ARC_ABI_exceptions: %s\n",uVar2)" (identifier "printf") (argument_list "("  Tag_ARC_ABI_exceptions: %s\n",uVar2)" (( "(") (string_literal ""  Tag_ARC_ABI_exceptions: %s\n"" (" """) (string_content "  Tag_ARC_ABI_exceptions: %s") (escape_sequence "\n") (" """)) (, ",") (identifier "uVar2") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xf:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ABI_double_size: %d\n",uVar2);\n    break;" (case "case") (number_literal "0xf") (: ":") (expression_statement "uVar2 = FUN_0004f990(param_1,local_20,0,param_2);" (assignment_expression "uVar2 = FUN_0004f990(param_1,local_20,0,param_2)" (identifier "uVar2") (= "=") (call_expression "FUN_0004f990(param_1,local_20,0,param_2)" (identifier "FUN_0004f990") (argument_list "(param_1,local_20,0,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "local_20") (, ",") (number_literal "0") (, ",") (identifier "param_2") () ")")))) (; ";")) (expression_statement "param_1 = param_1 + local_20[0];" (assignment_expression "param_1 = param_1 + local_20[0]" (identifier "param_1") (= "=") (binary_expression "param_1 + local_20[0]" (identifier "param_1") (+ "+") (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")))) (; ";")) (expression_statement "printf("  Tag_ARC_ABI_double_size: %d\n",uVar2);" (call_expression "printf("  Tag_ARC_ABI_double_size: %d\n",uVar2)" (identifier "printf") (argument_list "("  Tag_ARC_ABI_double_size: %d\n",uVar2)" (( "(") (string_literal ""  Tag_ARC_ABI_double_size: %d\n"" (" """) (string_content "  Tag_ARC_ABI_double_size: %d") (escape_sequence "\n") (" """)) (, ",") (identifier "uVar2") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x10:\n    pcVar6 = "  Tag_ARC_ISA_config: ";\n    goto code_r0x00021939;" (case "case") (number_literal "0x10") (: ":") (expression_statement "pcVar6 = "  Tag_ARC_ISA_config: ";" (assignment_expression "pcVar6 = "  Tag_ARC_ISA_config: "" (identifier "pcVar6") (= "=") (string_literal ""  Tag_ARC_ISA_config: "" (" """) (string_content "  Tag_ARC_ISA_config: ") (" """))) (; ";")) (goto_statement "goto code_r0x00021939;" (goto "goto") (statement_identifier "code_r0x00021939") (; ";"))) (case_statement "case 0x11:\n    pcVar6 = "  Tag_ARC_ISA_apex: ";\ncode_r0x00021939:\n    printf(pcVar6);\n    param_1 = FUN_0001ff40();\n    break;" (case "case") (number_literal "0x11") (: ":") (expression_statement "pcVar6 = "  Tag_ARC_ISA_apex: ";" (assignment_expression "pcVar6 = "  Tag_ARC_ISA_apex: "" (identifier "pcVar6") (= "=") (string_literal ""  Tag_ARC_ISA_apex: "" (" """) (string_content "  Tag_ARC_ISA_apex: ") (" """))) (; ";")) (labeled_statement "code_r0x00021939:\n    printf(pcVar6);" (statement_identifier "code_r0x00021939") (: ":") (expression_statement "printf(pcVar6);" (call_expression "printf(pcVar6)" (identifier "printf") (argument_list "(pcVar6)" (( "(") (identifier "pcVar6") () ")"))) (; ";"))) (expression_statement "param_1 = FUN_0001ff40();" (assignment_expression "param_1 = FUN_0001ff40()" (identifier "param_1") (= "=") (call_expression "FUN_0001ff40()" (identifier "FUN_0001ff40") (argument_list "()" (( "(") () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x12:\n    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);\n    param_1 = param_1 + local_20[0];\n    printf("  Tag_ARC_ISA_mpy_option: %d\n",uVar2);\n    break;" (case "case") (number_literal "0x12") (: ":") (expression_statement "uVar2 = FUN_0004f990(param_1,local_20,0,param_2);" (assignment_expression "uVar2 = FUN_0004f990(param_1,local_20,0,param_2)" (identifier "uVar2") (= "=") (call_expression "FUN_0004f990(param_1,local_20,0,param_2)" (identifier "FUN_0004f990") (argument_list "(param_1,local_20,0,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "local_20") (, ",") (number_literal "0") (, ",") (identifier "param_2") () ")")))) (; ";")) (expression_statement "param_1 = param_1 + local_20[0];" (assignment_expression "param_1 = param_1 + local_20[0]" (identifier "param_1") (= "=") (binary_expression "param_1 + local_20[0]" (identifier "param_1") (+ "+") (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")))) (; ";")) (expression_statement "printf("  Tag_ARC_ISA_mpy_option: %d\n",uVar2);" (call_expression "printf("  Tag_ARC_ISA_mpy_option: %d\n",uVar2)" (identifier "printf") (argument_list "("  Tag_ARC_ISA_mpy_option: %d\n",uVar2)" (( "(") (string_literal ""  Tag_ARC_ISA_mpy_option: %d\n"" (" """) (string_content "  Tag_ARC_ISA_mpy_option: %d") (escape_sequence "\n") (" """)) (, ",") (identifier "uVar2") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n    param_1 = FUN_0001ff40();" (default "default") (: ":") (expression_statement "param_1 = FUN_0001ff40();" (assignment_expression "param_1 = FUN_0001ff40()" (identifier "param_1") (= "=") (call_expression "FUN_0001ff40()" (identifier "FUN_0001ff40") (argument_list "()" (( "(") () ")")))) (; ";"))) (} "}"))) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}")))

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

type_1 * function_1(type_1 *var_2,type_1 *end)

{
  type_2 var_6;
  int var_8;
  type_3 *puVar3;
  type_4 uVar4;
  char *pcVar5;
  type_1 *var_4;
  type_5 dVar7;
  type_2 var_3;
  type_4 uStack_14;
  
  uStack_14 = 0x218e9;
  dVar7 = var_1(var_2,&var_3,0,end);
  var_6 = (type_2)dVar7;
  var_4 = var_2 + var_3;
  switch(var_6) {
  case 4:
    dVar7 = var_1(var_4,&var_3,0,end);
    var_4 = var_4 + var_3;
    var_5("  Tag_ARC_PCS_config: ");
    switch((int)dVar7) {
    case 0:
      pcVar5 = "Absent/Non standard\n";
      break;
    case 1:
      pcVar5 = "Bare metal/mwdt\n";
      break;
    case 2:
      pcVar5 = "Bare metal/newlib\n";
      break;
    case 3:
      pcVar5 = "Linux/uclibc\n";
      break;
    case 4:
      pcVar5 = "Linux/glibc\n";
      break;
    default:
switchD_000219be_caseD_5:
      pcVar5 = "Unknown\n";
    }
    goto LAB_00021cab;
  case 5:
    dVar7 = var_1(var_4,&var_3,0,end);
    var_6 = (type_2)dVar7;
    var_4 = var_4 + var_3;
    var_5("  Tag_ARC_CPU_base: ");
    if (var_6 == 2) {
      var_7("ARC7xx");
      return var_4;
    }
    if (var_6 < 3) {
      if (var_6 == 1) {
        var_7("ARC6xx");
        return var_4;
      }
    }
    else {
      if (var_6 == 3) {
        var_7("ARCEM");
        return var_4;
      }
      if (var_6 == 4) {
        var_7("ARCHS");
        return var_4;
      }
    }
    goto LAB_00021ca0;
  case 6:
    dVar7 = var_1(var_4,&var_3,0,end);
    var_8 = (int)dVar7;
    var_4 = var_4 + var_3;
    var_5("  Tag_ARC_CPU_variation: ");
    if (var_8 != 0) {
      if (var_8 - 1U < 0xf) {
        var_5("Core%d\n",var_8);
        return var_4;
      }
      var_7("Unknown");
      return var_4;
    }
    goto LAB_00021ca0;
  case 7:
    pcVar5 = "  Tag_ARC_CPU_name: ";
    goto LAB_00021939;
  case 8:
    dVar7 = var_1(var_4,&var_3,0,end);
    var_4 = var_4 + var_3;
    if ((int)dVar7 == 0) {
      uVar4 = var_9(0,&DAT_00077071,5);
    }
    else {
      uVar4 = var_9(0,&DAT_0007706d,5);
    }
    var_5("  Tag_ARC_ABI_rf16: %s\n",uVar4);
    break;
  case 9:
    dVar7 = var_1(var_4,&var_3,0,end);
    var_4 = var_4 + var_3;
    var_5("  Tag_ARC_ABI_osver: v%d\n",(int)dVar7);
    break;
  case 10:
  case 0xb:
    dVar7 = var_1(var_4,&var_3,0,end);
    var_8 = (int)dVar7;
    var_4 = var_4 + var_3;
    pcVar5 = "  Tag_ARC_ABI_sda: ";
    if (var_6 != 10) {
      pcVar5 = "  Tag_ARC_ABI_pic: ";
    }
    var_5(pcVar5);
    if (var_8 == 1) {
      var_7("MWDT");
      return var_4;
    }
    if (var_8 != 0) {
      if (var_8 == 2) {
        var_7("GNU");
        return var_4;
      }
      goto switchD_000219be_caseD_5;
    }
LAB_00021ca0:
    pcVar5 = "Absent\n";
LAB_00021cab:
    pcVar5 = (char *)var_9(0,pcVar5,5);
    var_5(pcVar5);
    return var_4;
  case 0xc:
    dVar7 = var_1(var_4,&var_3,0,end);
    var_4 = var_4 + var_3;
    puVar3 = &DAT_00076f7f;
    if ((int)dVar7 == 0) {
      puVar3 = &DAT_00076af8;
    }
    var_5("  Tag_ARC_ABI_tls: %s\n",puVar3);
    break;
  case 0xd:
    dVar7 = var_1(var_4,&var_3,0,end);
    var_4 = var_4 + var_3;
    if ((int)dVar7 == 0) {
      uVar4 = var_9(0,"smallest",5);
    }
    else {
      uVar4 = var_9(0,"default",5);
    }
    var_5("  Tag_ARC_ABI_enumsize: %s\n",uVar4);
    break;
  case 0xe:
    dVar7 = var_1(var_4,&var_3,0,end);
    var_4 = var_4 + var_3;
    if ((int)dVar7 == 0) {
      uVar4 = var_9(0,"default",5);
    }
    else {
      uVar4 = var_9(0,"OPTFP",5);
    }
    var_5("  Tag_ARC_ABI_exceptions: %s\n",uVar4);
    break;
  case 0xf:
    dVar7 = var_1(var_4,&var_3,0,end);
    var_4 = var_4 + var_3;
    var_5("  Tag_ARC_ABI_double_size: %d\n",(int)dVar7);
    break;
  case 0x10:
    pcVar5 = "  Tag_ARC_ISA_config: ";
    goto LAB_00021939;
  case 0x11:
    pcVar5 = "  Tag_ARC_ISA_apex: ";
LAB_00021939:
    var_5(pcVar5);
    var_4 = var_10(-1,var_4,end);
    break;
  case 0x12:
    dVar7 = var_1(var_4,&var_3,0,end);
    var_4 = var_4 + var_3;
    var_5("  Tag_ARC_ISA_mpy_option: %d\n",(int)dVar7);
    break;
  default:
    var_4 = var_10(var_6 & 1,var_4,end);
  }
  return var_4;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (switch_statement condition: (parenthesized_expression (identifier)) body: (compound_statement (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content))))) (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) (escape_sequence)))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content) (escape_sequence)))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content) (escape_sequence)))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content) (escape_sequence)))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content) (escape_sequence)))) (break_statement)) (case_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content) (escape_sequence)))))))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content))))) (return_statement (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 (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content))))) (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 (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content))))) (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content))))) (return_statement (identifier))))))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence)) (identifier)))) (return_statement (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content))))) (return_statement (identifier)))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (pointer_expression argument: (identifier)) (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (pointer_expression argument: (identifier)) (number_literal)))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence)) (identifier)))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence)) (identifier)))) (break_statement)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (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)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content))))) (return_statement (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 (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content))))) (return_statement (identifier)))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content) (escape_sequence))))) (labeled_statement label: (statement_identifier) (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 (identifier)))) (return_statement (identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (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: (pointer_expression argument: (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence)) (identifier)))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (number_literal)))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence)) (identifier)))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (pointer_expression argument: (identifier)) (number_literal)))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence)) (identifier)))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence)) (identifier)))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence)) (identifier)))) (break_statement)) (case_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list))))))) (return_statement (identifier)))))

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

int MASKED(int param_1,undefined4 param_2)

{
  int iVar1;
  undefined4 uVar2;
  uint uVar3;
  int iVar4;
  undefined *puVar5;
  char *pcVar6;
  int local_20 [3];
  undefined4 uStack_14;
  
  uStack_14 = 0x218e9;
  iVar1 = FUN_0004f990(param_1,local_20,0,param_2);
  param_1 = param_1 + local_20[0];
  switch(iVar1) {
  case 4:
    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);
    param_1 = param_1 + local_20[0];
    printf("  Tag_ARC_PCS_config: ");
    switch(uVar2) {
    case 0:
      pcVar6 = "Absent/Non standard\n";
      break;
    case 1:
      pcVar6 = "Bare metal/mwdt\n";
      break;
    case 2:
      pcVar6 = "Bare metal/newlib\n";
      break;
    case 3:
      pcVar6 = "Linux/uclibc\n";
      break;
    case 4:
      pcVar6 = "Linux/glibc\n";
      break;
    default:
code_r0x00021b4a:
      pcVar6 = "Unknown\n";
    }
    goto code_r0x00021cab;
  case 5:
    uVar3 = FUN_0004f990(param_1,local_20,0,param_2);
    param_1 = param_1 + local_20[0];
    printf("  Tag_ARC_CPU_base: ");
    if (uVar3 == 2) {
      puts("ARC7xx");
      return param_1;
    }
    if (uVar3 < 3) {
      if (uVar3 == 1) {
        puts("ARC6xx");
        return param_1;
      }
    }
    else {
      if (uVar3 == 3) {
        puts("ARCEM");
        return param_1;
      }
      if (uVar3 == 4) {
        puts("ARCHS");
        return param_1;
      }
    }
    goto code_r0x00021ca0;
  case 6:
    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);
    param_1 = param_1 + local_20[0];
    printf("  Tag_ARC_CPU_variation: ");
    if (iVar1 != 0) {
      if (iVar1 - 1U < 0xf) {
        printf("Core%d\n",iVar1);
        return param_1;
      }
      puts("Unknown");
      return param_1;
    }
    goto code_r0x00021ca0;
  case 7:
    pcVar6 = "  Tag_ARC_CPU_name: ";
    goto code_r0x00021939;
  case 8:
    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);
    param_1 = param_1 + local_20[0];
    if (iVar1 == 0) {
      uVar2 = dcgettext(0,&UNK_00077071,5);
    }
    else {
      uVar2 = dcgettext(0,&UNK_0007706d,5);
    }
    printf("  Tag_ARC_ABI_rf16: %s\n",uVar2);
    break;
  case 9:
    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);
    param_1 = param_1 + local_20[0];
    printf("  Tag_ARC_ABI_osver: v%d\n",uVar2);
    break;
  case 10:
  case 0xb:
    iVar4 = FUN_0004f990(param_1,local_20,0,param_2);
    param_1 = param_1 + local_20[0];
    pcVar6 = "  Tag_ARC_ABI_sda: ";
    if (iVar1 != 10) {
      pcVar6 = "  Tag_ARC_ABI_pic: ";
    }
    printf(pcVar6);
    if (iVar4 == 1) {
      puts("MWDT");
      return param_1;
    }
    if (iVar4 != 0) {
      if (iVar4 == 2) {
        puts("GNU");
        return param_1;
      }
      goto code_r0x00021b4a;
    }
code_r0x00021ca0:
    pcVar6 = "Absent\n";
code_r0x00021cab:
    pcVar6 = (char *)dcgettext(0,pcVar6,5);
    printf(pcVar6);
    return param_1;
  case 0xc:
    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);
    param_1 = param_1 + local_20[0];
    puVar5 = &UNK_00076f7f;
    if (iVar1 == 0) {
      puVar5 = &DAT_00076af8;
    }
    printf("  Tag_ARC_ABI_tls: %s\n",puVar5);
    break;
  case 0xd:
    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);
    param_1 = param_1 + local_20[0];
    if (iVar1 == 0) {
      uVar2 = dcgettext(0,"smallest",5);
    }
    else {
      uVar2 = dcgettext(0,"default",5);
    }
    printf("  Tag_ARC_ABI_enumsize: %s\n",uVar2);
    break;
  case 0xe:
    iVar1 = FUN_0004f990(param_1,local_20,0,param_2);
    param_1 = param_1 + local_20[0];
    if (iVar1 == 0) {
      uVar2 = dcgettext(0,"default",5);
    }
    else {
      uVar2 = dcgettext(0,&UNK_000770ef,5);
    }
    printf("  Tag_ARC_ABI_exceptions: %s\n",uVar2);
    break;
  case 0xf:
    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);
    param_1 = param_1 + local_20[0];
    printf("  Tag_ARC_ABI_double_size: %d\n",uVar2);
    break;
  case 0x10:
    pcVar6 = "  Tag_ARC_ISA_config: ";
    goto code_r0x00021939;
  case 0x11:
    pcVar6 = "  Tag_ARC_ISA_apex: ";
code_r0x00021939:
    printf(pcVar6);
    param_1 = FUN_0001ff40();
    break;
  case 0x12:
    uVar2 = FUN_0004f990(param_1,local_20,0,param_2);
    param_1 = param_1 + local_20[0];
    printf("  Tag_ARC_ISA_mpy_option: %d\n",uVar2);
    break;
  default:
    param_1 = FUN_0001ff40();
  }
  return param_1;
}

