
uchar * display_arm_attribute(uchar *p,uchar *end)

{
  uchar uVar1;
  wchar_t tag;
  uint uVar2;
  dwarf_vma dVar3;
  ulong uVar4;
  size_t sVar5;
  char *pcVar6;
  arm_attr_public_tag *paVar7;
  uchar *puVar8;
  uchar *puVar9;
  uint len;
  
  dVar3 = read_leb128(p,&len,0,end);
  tag = (wchar_t)dVar3;
  paVar7 = arm_attr_public_tags;
  puVar8 = p + len;
  uVar4 = 0;
  while (paVar7->tag != tag) {
    uVar2 = (int)uVar4 + 1;
    uVar4 = (ulong)uVar2;
    paVar7 = paVar7 + 1;
    if (uVar2 == 0x29) {
      puVar8 = display_tag_value(tag,puVar8,end);
      return puVar8;
    }
  }
  printf("  Tag_%s: ",arm_attr_public_tags[uVar4].name);
  uVar2 = arm_attr_public_tags[uVar4].type;
  if (uVar2 == 1) {
    puVar8 = display_tag_value(L'\xffffffff',puVar8,end);
    return puVar8;
  }
  if (uVar2 != 0) {
    if (uVar2 == 2) {
      puVar8 = display_tag_value(L'\0',puVar8,end);
      return puVar8;
    }
    if ((uVar2 & 0x80) == 0) {
                    /* WARNING: Subroutine does not return */
      __assert_fail("attr->type & 0x80","../../binutils/readelf.c",0x3890,"display_arm_attribute");
    }
    dVar3 = read_leb128(puVar8,&len,0,end);
    puVar8 = puVar8 + len;
    uVar2 = (uint)dVar3;
    if (uVar2 < (arm_attr_public_tags[uVar4].type & 0x7f)) {
      puts(arm_attr_public_tags[uVar4].table[dVar3 & 0xffffffff]);
      return puVar8;
    }
    goto LAB_00113282;
  }
  switch(tag) {
  case L'\a':
    dVar3 = read_leb128(puVar8,&len,0,end);
    puVar8 = puVar8 + len;
    uVar2 = (uint)dVar3;
    if (uVar2 == 0x4d) {
      pcVar6 = "Microcontroller\n";
      goto LAB_001133ad;
    }
    if (0x4d < uVar2) {
      if (uVar2 == 0x52) {
        pcVar6 = "Realtime\n";
      }
      else {
        pcVar6 = "Application or Realtime\n";
        if (uVar2 != 0x53) goto LAB_00113282;
      }
      goto LAB_001133ad;
    }
    if (uVar2 != 0) {
      pcVar6 = "Application\n";
      if (uVar2 != 0x41) {
LAB_00113282:
        printf("??? (%d)\n",(ulong)uVar2);
        return puVar8;
      }
      goto LAB_001133ad;
    }
    break;
  default:
    pcVar6 = (char *)dcgettext(0,"<unknown: %d>\n",5);
    printf(pcVar6,dVar3 & 0xffffffff);
    return puVar8;
  case L'\x18':
    dVar3 = read_leb128(puVar8,&len,0,end);
    puVar8 = puVar8 + len;
    uVar2 = (uint)dVar3;
    if (uVar2 == 1) {
LAB_001135c3:
      pcVar6 = "8-byte\n";
      goto LAB_001133ad;
    }
    if (uVar2 != 0) {
      if (uVar2 != 2) {
LAB_00113474:
        if (uVar2 == 3) {
          puts("??? 3");
          return puVar8;
        }
        if (uVar2 < 0xd) {
          pcVar6 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);
          printf(pcVar6,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));
          return puVar8;
        }
        printf("??? (%d)\n",(ulong)uVar2);
        return puVar8;
      }
      pcVar6 = "4-byte\n";
      goto LAB_001133ad;
    }
    break;
  case L'\x19':
    dVar3 = read_leb128(puVar8,&len,0,end);
    uVar2 = (uint)dVar3;
    puVar8 = puVar8 + len;
    if (uVar2 == 1) {
      pcVar6 = "8-byte, except leaf SP\n";
      goto LAB_001133ad;
    }
    if (uVar2 != 0) {
      if (uVar2 != 2) goto LAB_00113474;
      goto LAB_001135c3;
    }
    break;
  case L' ':
    dVar3 = read_leb128(puVar8,&len,0,end);
    puVar8 = puVar8 + len;
    pcVar6 = (char *)dcgettext(0,"flag = %d, vendor = ",5);
    printf(pcVar6,dVar3 & 0xffffffff);
    if (puVar8 < end + -1) {
      print_symbol((wchar_t)(end + (-1 - (long)puVar8)),(char *)puVar8);
      sVar5 = strnlen((char *)puVar8,(size_t)(end + (-1 - (long)puVar8)));
      end = puVar8 + sVar5 + 1;
    }
    else {
      pcVar6 = (char *)dcgettext(0,"<corrupt>",5);
      printf(pcVar6);
    }
    putc(10,stdout);
    return end;
  case L'@':
    pcVar6 = "True\n";
    puVar8 = puVar8 + (puVar8 < end);
    goto LAB_001133ad;
  case L'A':
    dVar3 = read_leb128(puVar8,&len,0,end);
    puVar8 = puVar8 + len;
    if ((int)dVar3 == 6) {
      dVar3 = read_leb128(puVar8,&len,0,end);
      puVar8 = puVar8 + len;
      if ((uint)dVar3 < 0x12) {
        puts(arm_attr_tag_CPU_arch[dVar3 & 0xffffffff]);
      }
      else {
        printf("??? (%d)\n",dVar3 & 0xffffffff);
      }
    }
    else {
      puts("???");
    }
    if (puVar8 < end) {
      puVar9 = puVar8 + 1;
      if (*puVar8 == '\0') {
        return puVar8 + 1;
      }
      do {
        if (puVar9 == end) {
          return puVar9;
        }
        puVar8 = puVar9 + 1;
        uVar1 = *puVar9;
        puVar9 = puVar8;
      } while (uVar1 != '\0');
      return puVar8;
    }
    return puVar8;
  }
  pcVar6 = "None\n";
LAB_001133ad:
  pcVar6 = (char *)dcgettext(0,pcVar6,5);
  printf(pcVar6);
  return puVar8;
}



char * FUN_001131d0(long param_1,char *param_2)

{
  char cVar1;
  uint uVar2;
  uint uVar3;
  int iVar4;
  ulong uVar5;
  size_t sVar6;
  char *pcVar7;
  uint *puVar8;
  char *pcVar9;
  uint local_2c;
  
  uVar2 = FUN_0013fb20(param_1,&local_2c,0,param_2);
  puVar8 = &DAT_00190240;
  pcVar9 = (char *)(param_1 + (ulong)local_2c);
  uVar5 = 0;
  while (*puVar8 != uVar2) {
    uVar3 = (int)uVar5 + 1;
    uVar5 = (ulong)uVar3;
    puVar8 = puVar8 + 8;
    if (uVar3 == 0x29) {
      pcVar9 = (char *)FUN_001124d0(uVar2,pcVar9,param_2);
      return pcVar9;
    }
  }
  printf("  Tag_%s: ",(&PTR_s_CPU_raw_name_00190248)[uVar5 * 4]);
  uVar3 = (&DAT_00190250)[uVar5 * 8];
  if (uVar3 == 1) {
    pcVar9 = (char *)FUN_001124d0(0xffffffff,pcVar9,param_2);
    return pcVar9;
  }
  if (uVar3 != 0) {
    if (uVar3 == 2) {
      pcVar9 = (char *)FUN_001124d0(0,pcVar9,param_2);
      return pcVar9;
    }
    if ((uVar3 & 0x80) == 0) {
                    /* WARNING: Subroutine does not return */
      __assert_fail("attr->type & 0x80","../../binutils/readelf.c",0x3890,"display_arm_attribute");
    }
    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);
    pcVar9 = pcVar9 + local_2c;
    if (uVar2 < ((&DAT_00190250)[uVar5 * 8] & 0x7f)) {
      puts(*(char **)((&DAT_00190258)[uVar5 * 4] + (ulong)uVar2 * 8));
      return pcVar9;
    }
    goto LAB_00113282;
  }
  switch(uVar2) {
  case 7:
    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);
    pcVar9 = pcVar9 + local_2c;
    if (uVar2 == 0x4d) {
      pcVar7 = "Microcontroller\n";
      goto LAB_001133ad;
    }
    if (0x4d < uVar2) {
      if (uVar2 == 0x52) {
        pcVar7 = "Realtime\n";
      }
      else {
        pcVar7 = "Application or Realtime\n";
        if (uVar2 != 0x53) goto LAB_00113282;
      }
      goto LAB_001133ad;
    }
    if (uVar2 != 0) {
      pcVar7 = "Application\n";
      if (uVar2 != 0x41) {
LAB_00113282:
        printf("??? (%d)\n",(ulong)uVar2);
        return pcVar9;
      }
      goto LAB_001133ad;
    }
    break;
  default:
    pcVar7 = (char *)dcgettext(0,"<unknown: %d>\n",5);
    printf(pcVar7,(ulong)uVar2);
    return pcVar9;
  case 0x18:
    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);
    pcVar9 = pcVar9 + local_2c;
    if (uVar2 == 1) {
LAB_001135c3:
      pcVar7 = "8-byte\n";
      goto LAB_001133ad;
    }
    if (uVar2 != 0) {
      if (uVar2 != 2) {
LAB_00113474:
        if (uVar2 == 3) {
          puts("??? 3");
          return pcVar9;
        }
        if (uVar2 < 0xd) {
          pcVar7 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);
          printf(pcVar7,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));
          return pcVar9;
        }
        printf("??? (%d)\n",(ulong)uVar2);
        return pcVar9;
      }
      pcVar7 = "4-byte\n";
      goto LAB_001133ad;
    }
    break;
  case 0x19:
    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);
    pcVar9 = pcVar9 + local_2c;
    if (uVar2 == 1) {
      pcVar7 = "8-byte, except leaf SP\n";
      goto LAB_001133ad;
    }
    if (uVar2 != 0) {
      if (uVar2 != 2) goto LAB_00113474;
      goto LAB_001135c3;
    }
    break;
  case 0x20:
    uVar5 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);
    pcVar9 = pcVar9 + local_2c;
    pcVar7 = (char *)dcgettext(0,"flag = %d, vendor = ",5);
    printf(pcVar7,uVar5 & 0xffffffff);
    if (pcVar9 < param_2 + -1) {
      FUN_001122a0((ulong)(param_2 + (-1 - (long)pcVar9)) & 0xffffffff,pcVar9);
      sVar6 = strnlen(pcVar9,(size_t)(param_2 + (-1 - (long)pcVar9)));
      param_2 = pcVar9 + sVar6 + 1;
    }
    else {
      pcVar9 = (char *)dcgettext(0,"<corrupt>",5);
      printf(pcVar9);
    }
    putc(10,stdout);
    return param_2;
  case 0x40:
    pcVar7 = "True\n";
    pcVar9 = pcVar9 + (pcVar9 < param_2);
    goto LAB_001133ad;
  case 0x41:
    iVar4 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);
    pcVar9 = pcVar9 + local_2c;
    if (iVar4 == 6) {
      uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);
      pcVar9 = pcVar9 + local_2c;
      if (uVar2 < 0x12) {
        puts((&PTR_DAT_00190bc0)[uVar2]);
      }
      else {
        printf("??? (%d)\n",(ulong)uVar2);
      }
    }
    else {
      puts("???");
    }
    if (pcVar9 < param_2) {
      pcVar7 = pcVar9 + 1;
      if (*pcVar9 == '\0') {
        return pcVar9 + 1;
      }
      do {
        if (pcVar7 == param_2) {
          return pcVar7;
        }
        pcVar9 = pcVar7 + 1;
        cVar1 = *pcVar7;
        pcVar7 = pcVar9;
      } while (cVar1 != '\0');
      return pcVar9;
    }
    return pcVar9;
  }
  pcVar7 = "None\n";
LAB_001133ad:
  pcVar7 = (char *)dcgettext(0,pcVar7,5);
  printf(pcVar7);
  return pcVar9;
}


PUSH R14
MOV RCX,RSI
XOR EDX,EDX
PUSH R13
PUSH R12
MOV R12,RDI
PUSH RBP
PUSH RBX
MOV RBX,RSI
SUB RSP,0x10
LEA RBP,[RSP + 0xc]
MOV RSI,RBP
CALL 0x0013fb20
LEA RSI,[0x190240]
MOV R14,RAX
MOV ECX,EAX
MOV EAX,dword ptr [RSP + 0xc]
MOV RDX,RSI
ADD R12,RAX
XOR EAX,EAX
JMP 0x0011321c
ADD EAX,0x1
ADD RDX,0x20
CMP EAX,0x29
JZ 0x00113298
CMP dword ptr [RDX],ECX
JNZ 0x00113210
SHL RAX,0x5
LEA RDI,[0x164bec]
LEA R13,[RSI + RAX*0x1]
XOR EAX,EAX
MOV RSI,qword ptr [R13 + 0x8]
CALL 0x00107190
MOV EAX,dword ptr [R13 + 0x10]
CMP EAX,0x1
JZ 0x00113300
TEST EAX,EAX
JZ 0x001132e0
CMP EAX,0x2
JZ 0x001132c0
TEST AL,0x80
JZ 0x0011366c
XOR EDX,EDX
MOV RDI,R12
MOV RCX,RBX
MOV RSI,RBP
CALL 0x0013fb20
MOV EDX,dword ptr [RSP + 0xc]
ADD R12,RDX
MOV EDX,dword ptr [R13 + 0x10]
AND EDX,0x7f
CMP EAX,EDX
JC 0x00113323
MOV ESI,EAX
LEA RDI,[0x164862]
XOR EAX,EAX
CALL 0x00107190
JMP 0x001132a9
MOV RSI,R12
MOV RDX,RBX
MOV EDI,R14D
CALL 0x001124d0
MOV R12,RAX
ADD RSP,0x10
MOV RAX,R12
POP RBX
POP RBP
POP R12
POP R13
POP R14
RET
MOV RDX,RBX
MOV RSI,R12
XOR EDI,EDI
CALL 0x001124d0
ADD RSP,0x10
MOV R12,RAX
POP RBX
POP RBP
MOV RAX,R12
POP R12
POP R13
POP R14
RET
LEA EAX,[R14 + -0x7]
CMP EAX,0x3a
JA 0x00113534
LEA RDX,[0x17a214]
MOVSXD RAX,dword ptr [RDX + RAX*0x4]
ADD RAX,RDX
JMP RAX
MOV RDX,RBX
MOV RSI,R12
MOV EDI,0xffffffff
CALL 0x001124d0
ADD RSP,0x10
MOV R12,RAX
POP RBX
POP RBP
MOV RAX,R12
POP R12
POP R13
POP R14
RET
MOV RDX,qword ptr [R13 + 0x18]
MOV EAX,EAX
MOV RDI,qword ptr [RDX + RAX*0x8]
CALL 0x001070b0
JMP 0x001132a9
MOV RCX,RBX
XOR EDX,EDX
MOV RSI,RBP
MOV RDI,R12
CALL 0x0013fb20
MOV R13D,dword ptr [RSP + 0xc]
ADD R13,R12
CMP EAX,0x6
JZ 0x001135d4
LEA RDI,[0x164b78]
CALL 0x001070b0
CMP RBX,R13
JBE 0x00113664
CMP byte ptr [R13],0x0
LEA R12,[R13 + 0x1]
JNZ 0x00113390
JMP 0x001132a9
ADD R12,0x1
CMP byte ptr [R12 + -0x1],0x0
JZ 0x001132a9
CMP R12,RBX
JNZ 0x00113380
JMP 0x001132a9
CMP R12,RBX
MOV EDX,0x5
LEA RSI,[0x164c4c]
ADC R12,0x0
XOR EDI,EDI
CALL 0x00107130
MOV RDI,RAX
XOR EAX,EAX
CALL 0x00107190
JMP 0x001132a9
MOV RCX,RBX
MOV RSI,RBP
MOV RDI,R12
XOR EDX,EDX
CALL 0x0013fb20
MOV EDX,0x5
LEA RSI,[0x164a3d]
XOR EDI,EDI
MOV RBP,RAX
MOV EAX,dword ptr [RSP + 0xc]
ADD R12,RAX
CALL 0x00107130
MOV ESI,EBP
MOV RDI,RAX
XOR EAX,EAX
CALL 0x00107190
LEA RAX,[RBX + -0x1]
CMP R12,RAX
JNC 0x0011358d
SUB RBX,R12
MOV RSI,R12
SUB RBX,0x1
MOV EDI,EBX
CALL 0x001122a0
MOV RDI,R12
MOV RSI,RBX
CALL 0x00107210
LEA R12,[R12 + RAX*0x1 + 0x1]
MOV RSI,qword ptr [0x001923a0]
MOV EDI,0xa
CALL 0x00107270
JMP 0x001132a9
MOV RCX,RBX
MOV RDI,R12
XOR EDX,EDX
MOV RSI,RBP
CALL 0x0013fb20
MOV RBX,RAX
MOV EAX,dword ptr [RSP + 0xc]
ADD R12,RAX
CMP EBX,0x1
JZ 0x00113605
TEST EBX,EBX
JZ 0x0011357c
CMP EBX,0x2
JZ 0x001135c3
CMP EBX,0x3
JZ 0x001135b2
CMP EBX,0xc
JA 0x00113616
XOR EDI,EDI
MOV EDX,0x5
LEA RSI,[0x16f2e0]
CALL 0x00107130
MOV EDX,0x1
MOV ECX,EBX
MOV ESI,EDX
MOV RDI,RAX
XOR EAX,EAX
SHL ESI,CL
CALL 0x00107190
JMP 0x001132a9
MOV RCX,RBX
MOV RDI,R12
XOR EDX,EDX
MOV RSI,RBP
CALL 0x0013fb20
MOV RBX,RAX
MOV EAX,dword ptr [RSP + 0xc]
ADD R12,RAX
CMP EBX,0x1
JZ 0x001135c3
TEST EBX,EBX
JZ 0x0011357c
CMP EBX,0x2
JNZ 0x00113474
MOV EDX,0x5
LEA RSI,[0x164a1b]
JMP 0x001133ad
XOR EDX,EDX
MOV RDI,R12
MOV RCX,RBX
MOV RSI,RBP
CALL 0x0013fb20
MOV EDX,dword ptr [RSP + 0xc]
ADD R12,RDX
CMP EAX,0x4d
JZ 0x00113653
JA 0x00113559
TEST EAX,EAX
JZ 0x0011357c
MOV EDX,0x5
LEA RSI,[0x164bf7]
CMP EAX,0x41
JZ 0x001133ad
JMP 0x00113282
XOR EDI,EDI
MOV EDX,0x5
LEA RSI,[0x164c52]
CALL 0x00107130
MOV ESI,R14D
MOV RDI,RAX
XOR EAX,EAX
CALL 0x00107190
JMP 0x001132a9
CMP EAX,0x52
JZ 0x0011362b
MOV EDX,0x5
LEA RSI,[0x164c15]
CMP EAX,0x53
JZ 0x001133ad
JMP 0x00113282
MOV EDX,0x5
LEA RSI,[0x169951]
JMP 0x001133ad
MOV EDX,0x5
LEA RSI,[0x1648c9]
XOR EDI,EDI
MOV R12,RBX
CALL 0x00107130
MOV RDI,RAX
XOR EAX,EAX
CALL 0x00107190
JMP 0x0011342a
LEA RDI,[0x164c2e]
CALL 0x001070b0
JMP 0x001132a9
MOV EDX,0x5
LEA RSI,[0x1649a9]
JMP 0x001133ad
XOR EDX,EDX
MOV RDI,R13
MOV RCX,RBX
MOV RSI,RBP
CALL 0x0013fb20
MOV EDX,dword ptr [RSP + 0xc]
ADD R13,RDX
CMP EAX,0x11
JBE 0x0011363c
MOV ESI,EAX
LEA RDI,[0x164862]
XOR EAX,EAX
CALL 0x00107190
JMP 0x00113364
MOV EDX,0x5
LEA RSI,[0x164c34]
JMP 0x001133ad
MOV ESI,EBX
LEA RDI,[0x164862]
XOR EAX,EAX
CALL 0x00107190
JMP 0x001132a9
MOV EDX,0x5
LEA RSI,[0x164c24]
JMP 0x001133ad
LEA RDX,[0x190bc0]
MOV EAX,EAX
MOV RDI,qword ptr [RDX + RAX*0x8]
CALL 0x001070b0
JMP 0x00113364
MOV EDX,0x5
LEA RSI,[0x164c04]
JMP 0x001133ad
MOV R12,R13
JMP 0x001132a9
LEA RCX,[0x17c400]
MOV EDX,0x3890
LEA RSI,[0x16486c]
LEA RDI,[0x164c61]
CALL 0x001071d0
(translation_unit "char * FUN_001131d0(long param_1,char *param_2)\n\n{\n  char cVar1;\n  uint uVar2;\n  uint uVar3;\n  int iVar4;\n  ulong uVar5;\n  size_t sVar6;\n  char *pcVar7;\n  uint *puVar8;\n  char *pcVar9;\n  uint local_2c;\n  \n  uVar2 = FUN_0013fb20(param_1,&local_2c,0,param_2);\n  puVar8 = &DAT_00190240;\n  pcVar9 = (char *)(param_1 + (ulong)local_2c);\n  uVar5 = 0;\n  while (*puVar8 != uVar2) {\n    uVar3 = (int)uVar5 + 1;\n    uVar5 = (ulong)uVar3;\n    puVar8 = puVar8 + 8;\n    if (uVar3 == 0x29) {\n      pcVar9 = (char *)FUN_001124d0(uVar2,pcVar9,param_2);\n      return pcVar9;\n    }\n  }\n  printf("  Tag_%s: ",(&PTR_s_CPU_raw_name_00190248)[uVar5 * 4]);\n  uVar3 = (&DAT_00190250)[uVar5 * 8];\n  if (uVar3 == 1) {\n    pcVar9 = (char *)FUN_001124d0(0xffffffff,pcVar9,param_2);\n    return pcVar9;\n  }\n  if (uVar3 != 0) {\n    if (uVar3 == 2) {\n      pcVar9 = (char *)FUN_001124d0(0,pcVar9,param_2);\n      return pcVar9;\n    }\n    if ((uVar3 & 0x80) == 0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("attr->type & 0x80","../../binutils/readelf.c",0x3890,"display_arm_attribute");\n    }\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 < ((&DAT_00190250)[uVar5 * 8] & 0x7f)) {\n      puts(*(char **)((&DAT_00190258)[uVar5 * 4] + (ulong)uVar2 * 8));\n      return pcVar9;\n    }\n    goto LAB_00113282;\n  }\n  switch(uVar2) {\n  case 7:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 0x4d) {\n      pcVar7 = "Microcontroller\n";\n      goto LAB_001133ad;\n    }\n    if (0x4d < uVar2) {\n      if (uVar2 == 0x52) {\n        pcVar7 = "Realtime\n";\n      }\n      else {\n        pcVar7 = "Application or Realtime\n";\n        if (uVar2 != 0x53) goto LAB_00113282;\n      }\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      pcVar7 = "Application\n";\n      if (uVar2 != 0x41) {\nLAB_00113282:\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }\n      goto LAB_001133ad;\n    }\n    break;\n  default:\n    pcVar7 = (char *)dcgettext(0,"<unknown: %d>\n",5);\n    printf(pcVar7,(ulong)uVar2);\n    return pcVar9;\n  case 0x18:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 1) {\nLAB_001135c3:\n      pcVar7 = "8-byte\n";\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      if (uVar2 != 2) {\nLAB_00113474:\n        if (uVar2 == 3) {\n          puts("??? 3");\n          return pcVar9;\n        }\n        if (uVar2 < 0xd) {\n          pcVar7 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);\n          printf(pcVar7,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));\n          return pcVar9;\n        }\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }\n      pcVar7 = "4-byte\n";\n      goto LAB_001133ad;\n    }\n    break;\n  case 0x19:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 1) {\n      pcVar7 = "8-byte, except leaf SP\n";\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      if (uVar2 != 2) goto LAB_00113474;\n      goto LAB_001135c3;\n    }\n    break;\n  case 0x20:\n    uVar5 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    pcVar7 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n    printf(pcVar7,uVar5 & 0xffffffff);\n    if (pcVar9 < param_2 + -1) {\n      FUN_001122a0((ulong)(param_2 + (-1 - (long)pcVar9)) & 0xffffffff,pcVar9);\n      sVar6 = strnlen(pcVar9,(size_t)(param_2 + (-1 - (long)pcVar9)));\n      param_2 = pcVar9 + sVar6 + 1;\n    }\n    else {\n      pcVar9 = (char *)dcgettext(0,"<corrupt>",5);\n      printf(pcVar9);\n    }\n    putc(10,stdout);\n    return param_2;\n  case 0x40:\n    pcVar7 = "True\n";\n    pcVar9 = pcVar9 + (pcVar9 < param_2);\n    goto LAB_001133ad;\n  case 0x41:\n    iVar4 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (iVar4 == 6) {\n      uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n      pcVar9 = pcVar9 + local_2c;\n      if (uVar2 < 0x12) {\n        puts((&PTR_DAT_00190bc0)[uVar2]);\n      }\n      else {\n        printf("??? (%d)\n",(ulong)uVar2);\n      }\n    }\n    else {\n      puts("???");\n    }\n    if (pcVar9 < param_2) {\n      pcVar7 = pcVar9 + 1;\n      if (*pcVar9 == '\0') {\n        return pcVar9 + 1;\n      }\n      do {\n        if (pcVar7 == param_2) {\n          return pcVar7;\n        }\n        pcVar9 = pcVar7 + 1;\n        cVar1 = *pcVar7;\n        pcVar7 = pcVar9;\n      } while (cVar1 != '\0');\n      return pcVar9;\n    }\n    return pcVar9;\n  }\n  pcVar7 = "None\n";\nLAB_001133ad:\n  pcVar7 = (char *)dcgettext(0,pcVar7,5);\n  printf(pcVar7);\n  return pcVar9;\n}\n\n" (function_definition "char * FUN_001131d0(long param_1,char *param_2)\n\n{\n  char cVar1;\n  uint uVar2;\n  uint uVar3;\n  int iVar4;\n  ulong uVar5;\n  size_t sVar6;\n  char *pcVar7;\n  uint *puVar8;\n  char *pcVar9;\n  uint local_2c;\n  \n  uVar2 = FUN_0013fb20(param_1,&local_2c,0,param_2);\n  puVar8 = &DAT_00190240;\n  pcVar9 = (char *)(param_1 + (ulong)local_2c);\n  uVar5 = 0;\n  while (*puVar8 != uVar2) {\n    uVar3 = (int)uVar5 + 1;\n    uVar5 = (ulong)uVar3;\n    puVar8 = puVar8 + 8;\n    if (uVar3 == 0x29) {\n      pcVar9 = (char *)FUN_001124d0(uVar2,pcVar9,param_2);\n      return pcVar9;\n    }\n  }\n  printf("  Tag_%s: ",(&PTR_s_CPU_raw_name_00190248)[uVar5 * 4]);\n  uVar3 = (&DAT_00190250)[uVar5 * 8];\n  if (uVar3 == 1) {\n    pcVar9 = (char *)FUN_001124d0(0xffffffff,pcVar9,param_2);\n    return pcVar9;\n  }\n  if (uVar3 != 0) {\n    if (uVar3 == 2) {\n      pcVar9 = (char *)FUN_001124d0(0,pcVar9,param_2);\n      return pcVar9;\n    }\n    if ((uVar3 & 0x80) == 0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("attr->type & 0x80","../../binutils/readelf.c",0x3890,"display_arm_attribute");\n    }\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 < ((&DAT_00190250)[uVar5 * 8] & 0x7f)) {\n      puts(*(char **)((&DAT_00190258)[uVar5 * 4] + (ulong)uVar2 * 8));\n      return pcVar9;\n    }\n    goto LAB_00113282;\n  }\n  switch(uVar2) {\n  case 7:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 0x4d) {\n      pcVar7 = "Microcontroller\n";\n      goto LAB_001133ad;\n    }\n    if (0x4d < uVar2) {\n      if (uVar2 == 0x52) {\n        pcVar7 = "Realtime\n";\n      }\n      else {\n        pcVar7 = "Application or Realtime\n";\n        if (uVar2 != 0x53) goto LAB_00113282;\n      }\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      pcVar7 = "Application\n";\n      if (uVar2 != 0x41) {\nLAB_00113282:\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }\n      goto LAB_001133ad;\n    }\n    break;\n  default:\n    pcVar7 = (char *)dcgettext(0,"<unknown: %d>\n",5);\n    printf(pcVar7,(ulong)uVar2);\n    return pcVar9;\n  case 0x18:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 1) {\nLAB_001135c3:\n      pcVar7 = "8-byte\n";\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      if (uVar2 != 2) {\nLAB_00113474:\n        if (uVar2 == 3) {\n          puts("??? 3");\n          return pcVar9;\n        }\n        if (uVar2 < 0xd) {\n          pcVar7 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);\n          printf(pcVar7,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));\n          return pcVar9;\n        }\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }\n      pcVar7 = "4-byte\n";\n      goto LAB_001133ad;\n    }\n    break;\n  case 0x19:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 1) {\n      pcVar7 = "8-byte, except leaf SP\n";\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      if (uVar2 != 2) goto LAB_00113474;\n      goto LAB_001135c3;\n    }\n    break;\n  case 0x20:\n    uVar5 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    pcVar7 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n    printf(pcVar7,uVar5 & 0xffffffff);\n    if (pcVar9 < param_2 + -1) {\n      FUN_001122a0((ulong)(param_2 + (-1 - (long)pcVar9)) & 0xffffffff,pcVar9);\n      sVar6 = strnlen(pcVar9,(size_t)(param_2 + (-1 - (long)pcVar9)));\n      param_2 = pcVar9 + sVar6 + 1;\n    }\n    else {\n      pcVar9 = (char *)dcgettext(0,"<corrupt>",5);\n      printf(pcVar9);\n    }\n    putc(10,stdout);\n    return param_2;\n  case 0x40:\n    pcVar7 = "True\n";\n    pcVar9 = pcVar9 + (pcVar9 < param_2);\n    goto LAB_001133ad;\n  case 0x41:\n    iVar4 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (iVar4 == 6) {\n      uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n      pcVar9 = pcVar9 + local_2c;\n      if (uVar2 < 0x12) {\n        puts((&PTR_DAT_00190bc0)[uVar2]);\n      }\n      else {\n        printf("??? (%d)\n",(ulong)uVar2);\n      }\n    }\n    else {\n      puts("???");\n    }\n    if (pcVar9 < param_2) {\n      pcVar7 = pcVar9 + 1;\n      if (*pcVar9 == '\0') {\n        return pcVar9 + 1;\n      }\n      do {\n        if (pcVar7 == param_2) {\n          return pcVar7;\n        }\n        pcVar9 = pcVar7 + 1;\n        cVar1 = *pcVar7;\n        pcVar7 = pcVar9;\n      } while (cVar1 != '\0');\n      return pcVar9;\n    }\n    return pcVar9;\n  }\n  pcVar7 = "None\n";\nLAB_001133ad:\n  pcVar7 = (char *)dcgettext(0,pcVar7,5);\n  printf(pcVar7);\n  return pcVar9;\n}" primitive_type (pointer_declarator "* FUN_001131d0(long param_1,char *param_2)" * (function_declarator "FUN_001131d0(long param_1,char *param_2)" identifier (parameter_list "(long param_1,char *param_2)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) )))) (compound_statement "{\n  char cVar1;\n  uint uVar2;\n  uint uVar3;\n  int iVar4;\n  ulong uVar5;\n  size_t sVar6;\n  char *pcVar7;\n  uint *puVar8;\n  char *pcVar9;\n  uint local_2c;\n  \n  uVar2 = FUN_0013fb20(param_1,&local_2c,0,param_2);\n  puVar8 = &DAT_00190240;\n  pcVar9 = (char *)(param_1 + (ulong)local_2c);\n  uVar5 = 0;\n  while (*puVar8 != uVar2) {\n    uVar3 = (int)uVar5 + 1;\n    uVar5 = (ulong)uVar3;\n    puVar8 = puVar8 + 8;\n    if (uVar3 == 0x29) {\n      pcVar9 = (char *)FUN_001124d0(uVar2,pcVar9,param_2);\n      return pcVar9;\n    }\n  }\n  printf("  Tag_%s: ",(&PTR_s_CPU_raw_name_00190248)[uVar5 * 4]);\n  uVar3 = (&DAT_00190250)[uVar5 * 8];\n  if (uVar3 == 1) {\n    pcVar9 = (char *)FUN_001124d0(0xffffffff,pcVar9,param_2);\n    return pcVar9;\n  }\n  if (uVar3 != 0) {\n    if (uVar3 == 2) {\n      pcVar9 = (char *)FUN_001124d0(0,pcVar9,param_2);\n      return pcVar9;\n    }\n    if ((uVar3 & 0x80) == 0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("attr->type & 0x80","../../binutils/readelf.c",0x3890,"display_arm_attribute");\n    }\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 < ((&DAT_00190250)[uVar5 * 8] & 0x7f)) {\n      puts(*(char **)((&DAT_00190258)[uVar5 * 4] + (ulong)uVar2 * 8));\n      return pcVar9;\n    }\n    goto LAB_00113282;\n  }\n  switch(uVar2) {\n  case 7:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 0x4d) {\n      pcVar7 = "Microcontroller\n";\n      goto LAB_001133ad;\n    }\n    if (0x4d < uVar2) {\n      if (uVar2 == 0x52) {\n        pcVar7 = "Realtime\n";\n      }\n      else {\n        pcVar7 = "Application or Realtime\n";\n        if (uVar2 != 0x53) goto LAB_00113282;\n      }\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      pcVar7 = "Application\n";\n      if (uVar2 != 0x41) {\nLAB_00113282:\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }\n      goto LAB_001133ad;\n    }\n    break;\n  default:\n    pcVar7 = (char *)dcgettext(0,"<unknown: %d>\n",5);\n    printf(pcVar7,(ulong)uVar2);\n    return pcVar9;\n  case 0x18:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 1) {\nLAB_001135c3:\n      pcVar7 = "8-byte\n";\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      if (uVar2 != 2) {\nLAB_00113474:\n        if (uVar2 == 3) {\n          puts("??? 3");\n          return pcVar9;\n        }\n        if (uVar2 < 0xd) {\n          pcVar7 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);\n          printf(pcVar7,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));\n          return pcVar9;\n        }\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }\n      pcVar7 = "4-byte\n";\n      goto LAB_001133ad;\n    }\n    break;\n  case 0x19:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 1) {\n      pcVar7 = "8-byte, except leaf SP\n";\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      if (uVar2 != 2) goto LAB_00113474;\n      goto LAB_001135c3;\n    }\n    break;\n  case 0x20:\n    uVar5 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    pcVar7 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n    printf(pcVar7,uVar5 & 0xffffffff);\n    if (pcVar9 < param_2 + -1) {\n      FUN_001122a0((ulong)(param_2 + (-1 - (long)pcVar9)) & 0xffffffff,pcVar9);\n      sVar6 = strnlen(pcVar9,(size_t)(param_2 + (-1 - (long)pcVar9)));\n      param_2 = pcVar9 + sVar6 + 1;\n    }\n    else {\n      pcVar9 = (char *)dcgettext(0,"<corrupt>",5);\n      printf(pcVar9);\n    }\n    putc(10,stdout);\n    return param_2;\n  case 0x40:\n    pcVar7 = "True\n";\n    pcVar9 = pcVar9 + (pcVar9 < param_2);\n    goto LAB_001133ad;\n  case 0x41:\n    iVar4 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (iVar4 == 6) {\n      uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n      pcVar9 = pcVar9 + local_2c;\n      if (uVar2 < 0x12) {\n        puts((&PTR_DAT_00190bc0)[uVar2]);\n      }\n      else {\n        printf("??? (%d)\n",(ulong)uVar2);\n      }\n    }\n    else {\n      puts("???");\n    }\n    if (pcVar9 < param_2) {\n      pcVar7 = pcVar9 + 1;\n      if (*pcVar9 == '\0') {\n        return pcVar9 + 1;\n      }\n      do {\n        if (pcVar7 == param_2) {\n          return pcVar7;\n        }\n        pcVar9 = pcVar7 + 1;\n        cVar1 = *pcVar7;\n        pcVar7 = pcVar9;\n      } while (cVar1 != '\0');\n      return pcVar9;\n    }\n    return pcVar9;\n  }\n  pcVar7 = "None\n";\nLAB_001133ad:\n  pcVar7 = (char *)dcgettext(0,pcVar7,5);\n  printf(pcVar7);\n  return pcVar9;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "size_t sVar6;" primitive_type identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "uint *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "uint local_2c;" type_identifier identifier ;) (expression_statement "uVar2 = FUN_0013fb20(param_1,&local_2c,0,param_2);" (assignment_expression "uVar2 = FUN_0013fb20(param_1,&local_2c,0,param_2)" identifier = (call_expression "FUN_0013fb20(param_1,&local_2c,0,param_2)" identifier (argument_list "(param_1,&local_2c,0,param_2)" ( identifier , (pointer_expression "&local_2c" & identifier) , number_literal , identifier )))) ;) (expression_statement "puVar8 = &DAT_00190240;" (assignment_expression "puVar8 = &DAT_00190240" identifier = (pointer_expression "&DAT_00190240" & identifier)) ;) (expression_statement "pcVar9 = (char *)(param_1 + (ulong)local_2c);" (assignment_expression "pcVar9 = (char *)(param_1 + (ulong)local_2c)" identifier = (cast_expression "(char *)(param_1 + (ulong)local_2c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + (ulong)local_2c)" ( (binary_expression "param_1 + (ulong)local_2c" identifier + (cast_expression "(ulong)local_2c" ( (type_descriptor "ulong" type_identifier) ) identifier)) )))) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (while_statement "while (*puVar8 != uVar2) {\n    uVar3 = (int)uVar5 + 1;\n    uVar5 = (ulong)uVar3;\n    puVar8 = puVar8 + 8;\n    if (uVar3 == 0x29) {\n      pcVar9 = (char *)FUN_001124d0(uVar2,pcVar9,param_2);\n      return pcVar9;\n    }\n  }" while (parenthesized_expression "(*puVar8 != uVar2)" ( (binary_expression "*puVar8 != uVar2" (pointer_expression "*puVar8" * identifier) != identifier) )) (compound_statement "{\n    uVar3 = (int)uVar5 + 1;\n    uVar5 = (ulong)uVar3;\n    puVar8 = puVar8 + 8;\n    if (uVar3 == 0x29) {\n      pcVar9 = (char *)FUN_001124d0(uVar2,pcVar9,param_2);\n      return pcVar9;\n    }\n  }" { (expression_statement "uVar3 = (int)uVar5 + 1;" (assignment_expression "uVar3 = (int)uVar5 + 1" identifier = (binary_expression "(int)uVar5 + 1" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "uVar5 = (ulong)uVar3;" (assignment_expression "uVar5 = (ulong)uVar3" identifier = (cast_expression "(ulong)uVar3" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "puVar8 = puVar8 + 8;" (assignment_expression "puVar8 = puVar8 + 8" identifier = (binary_expression "puVar8 + 8" identifier + number_literal)) ;) (if_statement "if (uVar3 == 0x29) {\n      pcVar9 = (char *)FUN_001124d0(uVar2,pcVar9,param_2);\n      return pcVar9;\n    }" if (parenthesized_expression "(uVar3 == 0x29)" ( (binary_expression "uVar3 == 0x29" identifier == number_literal) )) (compound_statement "{\n      pcVar9 = (char *)FUN_001124d0(uVar2,pcVar9,param_2);\n      return pcVar9;\n    }" { (expression_statement "pcVar9 = (char *)FUN_001124d0(uVar2,pcVar9,param_2);" (assignment_expression "pcVar9 = (char *)FUN_001124d0(uVar2,pcVar9,param_2)" identifier = (cast_expression "(char *)FUN_001124d0(uVar2,pcVar9,param_2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001124d0(uVar2,pcVar9,param_2)" identifier (argument_list "(uVar2,pcVar9,param_2)" ( identifier , identifier , identifier ))))) ;) (return_statement "return pcVar9;" return identifier ;) })) })) (expression_statement "printf("  Tag_%s: ",(&PTR_s_CPU_raw_name_00190248)[uVar5 * 4]);" (call_expression "printf("  Tag_%s: ",(&PTR_s_CPU_raw_name_00190248)[uVar5 * 4])" identifier (argument_list "("  Tag_%s: ",(&PTR_s_CPU_raw_name_00190248)[uVar5 * 4])" ( (string_literal ""  Tag_%s: "" " string_content ") , (subscript_expression "(&PTR_s_CPU_raw_name_00190248)[uVar5 * 4]" (parenthesized_expression "(&PTR_s_CPU_raw_name_00190248)" ( (pointer_expression "&PTR_s_CPU_raw_name_00190248" & identifier) )) [ (binary_expression "uVar5 * 4" identifier * number_literal) ]) ))) ;) (expression_statement "uVar3 = (&DAT_00190250)[uVar5 * 8];" (assignment_expression "uVar3 = (&DAT_00190250)[uVar5 * 8]" identifier = (subscript_expression "(&DAT_00190250)[uVar5 * 8]" (parenthesized_expression "(&DAT_00190250)" ( (pointer_expression "&DAT_00190250" & identifier) )) [ (binary_expression "uVar5 * 8" identifier * number_literal) ])) ;) (if_statement "if (uVar3 == 1) {\n    pcVar9 = (char *)FUN_001124d0(0xffffffff,pcVar9,param_2);\n    return pcVar9;\n  }" if (parenthesized_expression "(uVar3 == 1)" ( (binary_expression "uVar3 == 1" identifier == number_literal) )) (compound_statement "{\n    pcVar9 = (char *)FUN_001124d0(0xffffffff,pcVar9,param_2);\n    return pcVar9;\n  }" { (expression_statement "pcVar9 = (char *)FUN_001124d0(0xffffffff,pcVar9,param_2);" (assignment_expression "pcVar9 = (char *)FUN_001124d0(0xffffffff,pcVar9,param_2)" identifier = (cast_expression "(char *)FUN_001124d0(0xffffffff,pcVar9,param_2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001124d0(0xffffffff,pcVar9,param_2)" identifier (argument_list "(0xffffffff,pcVar9,param_2)" ( number_literal , identifier , identifier ))))) ;) (return_statement "return pcVar9;" return identifier ;) })) (if_statement "if (uVar3 != 0) {\n    if (uVar3 == 2) {\n      pcVar9 = (char *)FUN_001124d0(0,pcVar9,param_2);\n      return pcVar9;\n    }\n    if ((uVar3 & 0x80) == 0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("attr->type & 0x80","../../binutils/readelf.c",0x3890,"display_arm_attribute");\n    }\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 < ((&DAT_00190250)[uVar5 * 8] & 0x7f)) {\n      puts(*(char **)((&DAT_00190258)[uVar5 * 4] + (ulong)uVar2 * 8));\n      return pcVar9;\n    }\n    goto LAB_00113282;\n  }" if (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    if (uVar3 == 2) {\n      pcVar9 = (char *)FUN_001124d0(0,pcVar9,param_2);\n      return pcVar9;\n    }\n    if ((uVar3 & 0x80) == 0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("attr->type & 0x80","../../binutils/readelf.c",0x3890,"display_arm_attribute");\n    }\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 < ((&DAT_00190250)[uVar5 * 8] & 0x7f)) {\n      puts(*(char **)((&DAT_00190258)[uVar5 * 4] + (ulong)uVar2 * 8));\n      return pcVar9;\n    }\n    goto LAB_00113282;\n  }" { (if_statement "if (uVar3 == 2) {\n      pcVar9 = (char *)FUN_001124d0(0,pcVar9,param_2);\n      return pcVar9;\n    }" if (parenthesized_expression "(uVar3 == 2)" ( (binary_expression "uVar3 == 2" identifier == number_literal) )) (compound_statement "{\n      pcVar9 = (char *)FUN_001124d0(0,pcVar9,param_2);\n      return pcVar9;\n    }" { (expression_statement "pcVar9 = (char *)FUN_001124d0(0,pcVar9,param_2);" (assignment_expression "pcVar9 = (char *)FUN_001124d0(0,pcVar9,param_2)" identifier = (cast_expression "(char *)FUN_001124d0(0,pcVar9,param_2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001124d0(0,pcVar9,param_2)" identifier (argument_list "(0,pcVar9,param_2)" ( number_literal , identifier , identifier ))))) ;) (return_statement "return pcVar9;" return identifier ;) })) (if_statement "if ((uVar3 & 0x80) == 0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("attr->type & 0x80","../../binutils/readelf.c",0x3890,"display_arm_attribute");\n    }" if (parenthesized_expression "((uVar3 & 0x80) == 0)" ( (binary_expression "(uVar3 & 0x80) == 0" (parenthesized_expression "(uVar3 & 0x80)" ( (binary_expression "uVar3 & 0x80" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("attr->type & 0x80","../../binutils/readelf.c",0x3890,"display_arm_attribute");\n    }" { comment (expression_statement "__assert_fail("attr->type & 0x80","../../binutils/readelf.c",0x3890,"display_arm_attribute");" (call_expression "__assert_fail("attr->type & 0x80","../../binutils/readelf.c",0x3890,"display_arm_attribute")" identifier (argument_list "("attr->type & 0x80","../../binutils/readelf.c",0x3890,"display_arm_attribute")" ( (string_literal ""attr->type & 0x80"" " string_content ") , (string_literal ""../../binutils/readelf.c"" " string_content ") , number_literal , (string_literal ""display_arm_attribute"" " string_content ") ))) ;) })) (expression_statement "uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);" (assignment_expression "uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2)" identifier = (call_expression "FUN_0013fb20(pcVar9,&local_2c,0,param_2)" identifier (argument_list "(pcVar9,&local_2c,0,param_2)" ( identifier , (pointer_expression "&local_2c" & identifier) , number_literal , identifier )))) ;) (expression_statement "pcVar9 = pcVar9 + local_2c;" (assignment_expression "pcVar9 = pcVar9 + local_2c" identifier = (binary_expression "pcVar9 + local_2c" identifier + identifier)) ;) (if_statement "if (uVar2 < ((&DAT_00190250)[uVar5 * 8] & 0x7f)) {\n      puts(*(char **)((&DAT_00190258)[uVar5 * 4] + (ulong)uVar2 * 8));\n      return pcVar9;\n    }" if (parenthesized_expression "(uVar2 < ((&DAT_00190250)[uVar5 * 8] & 0x7f))" ( (binary_expression "uVar2 < ((&DAT_00190250)[uVar5 * 8] & 0x7f)" identifier < (parenthesized_expression "((&DAT_00190250)[uVar5 * 8] & 0x7f)" ( (binary_expression "(&DAT_00190250)[uVar5 * 8] & 0x7f" (subscript_expression "(&DAT_00190250)[uVar5 * 8]" (parenthesized_expression "(&DAT_00190250)" ( (pointer_expression "&DAT_00190250" & identifier) )) [ (binary_expression "uVar5 * 8" identifier * number_literal) ]) & number_literal) ))) )) (compound_statement "{\n      puts(*(char **)((&DAT_00190258)[uVar5 * 4] + (ulong)uVar2 * 8));\n      return pcVar9;\n    }" { (expression_statement "puts(*(char **)((&DAT_00190258)[uVar5 * 4] + (ulong)uVar2 * 8));" (call_expression "puts(*(char **)((&DAT_00190258)[uVar5 * 4] + (ulong)uVar2 * 8))" identifier (argument_list "(*(char **)((&DAT_00190258)[uVar5 * 4] + (ulong)uVar2 * 8))" ( (pointer_expression "*(char **)((&DAT_00190258)[uVar5 * 4] + (ulong)uVar2 * 8)" * (cast_expression "(char **)((&DAT_00190258)[uVar5 * 4] + (ulong)uVar2 * 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((&DAT_00190258)[uVar5 * 4] + (ulong)uVar2 * 8)" ( (binary_expression "(&DAT_00190258)[uVar5 * 4] + (ulong)uVar2 * 8" (subscript_expression "(&DAT_00190258)[uVar5 * 4]" (parenthesized_expression "(&DAT_00190258)" ( (pointer_expression "&DAT_00190258" & identifier) )) [ (binary_expression "uVar5 * 4" identifier * number_literal) ]) + (binary_expression "(ulong)uVar2 * 8" (cast_expression "(ulong)uVar2" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) )))) ))) ;) (return_statement "return pcVar9;" return identifier ;) })) (goto_statement "goto LAB_00113282;" goto statement_identifier ;) })) (switch_statement "switch(uVar2) {\n  case 7:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 0x4d) {\n      pcVar7 = "Microcontroller\n";\n      goto LAB_001133ad;\n    }\n    if (0x4d < uVar2) {\n      if (uVar2 == 0x52) {\n        pcVar7 = "Realtime\n";\n      }\n      else {\n        pcVar7 = "Application or Realtime\n";\n        if (uVar2 != 0x53) goto LAB_00113282;\n      }\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      pcVar7 = "Application\n";\n      if (uVar2 != 0x41) {\nLAB_00113282:\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }\n      goto LAB_001133ad;\n    }\n    break;\n  default:\n    pcVar7 = (char *)dcgettext(0,"<unknown: %d>\n",5);\n    printf(pcVar7,(ulong)uVar2);\n    return pcVar9;\n  case 0x18:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 1) {\nLAB_001135c3:\n      pcVar7 = "8-byte\n";\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      if (uVar2 != 2) {\nLAB_00113474:\n        if (uVar2 == 3) {\n          puts("??? 3");\n          return pcVar9;\n        }\n        if (uVar2 < 0xd) {\n          pcVar7 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);\n          printf(pcVar7,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));\n          return pcVar9;\n        }\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }\n      pcVar7 = "4-byte\n";\n      goto LAB_001133ad;\n    }\n    break;\n  case 0x19:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 1) {\n      pcVar7 = "8-byte, except leaf SP\n";\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      if (uVar2 != 2) goto LAB_00113474;\n      goto LAB_001135c3;\n    }\n    break;\n  case 0x20:\n    uVar5 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    pcVar7 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n    printf(pcVar7,uVar5 & 0xffffffff);\n    if (pcVar9 < param_2 + -1) {\n      FUN_001122a0((ulong)(param_2 + (-1 - (long)pcVar9)) & 0xffffffff,pcVar9);\n      sVar6 = strnlen(pcVar9,(size_t)(param_2 + (-1 - (long)pcVar9)));\n      param_2 = pcVar9 + sVar6 + 1;\n    }\n    else {\n      pcVar9 = (char *)dcgettext(0,"<corrupt>",5);\n      printf(pcVar9);\n    }\n    putc(10,stdout);\n    return param_2;\n  case 0x40:\n    pcVar7 = "True\n";\n    pcVar9 = pcVar9 + (pcVar9 < param_2);\n    goto LAB_001133ad;\n  case 0x41:\n    iVar4 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (iVar4 == 6) {\n      uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n      pcVar9 = pcVar9 + local_2c;\n      if (uVar2 < 0x12) {\n        puts((&PTR_DAT_00190bc0)[uVar2]);\n      }\n      else {\n        printf("??? (%d)\n",(ulong)uVar2);\n      }\n    }\n    else {\n      puts("???");\n    }\n    if (pcVar9 < param_2) {\n      pcVar7 = pcVar9 + 1;\n      if (*pcVar9 == '\0') {\n        return pcVar9 + 1;\n      }\n      do {\n        if (pcVar7 == param_2) {\n          return pcVar7;\n        }\n        pcVar9 = pcVar7 + 1;\n        cVar1 = *pcVar7;\n        pcVar7 = pcVar9;\n      } while (cVar1 != '\0');\n      return pcVar9;\n    }\n    return pcVar9;\n  }" switch (parenthesized_expression "(uVar2)" ( identifier )) (compound_statement "{\n  case 7:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 0x4d) {\n      pcVar7 = "Microcontroller\n";\n      goto LAB_001133ad;\n    }\n    if (0x4d < uVar2) {\n      if (uVar2 == 0x52) {\n        pcVar7 = "Realtime\n";\n      }\n      else {\n        pcVar7 = "Application or Realtime\n";\n        if (uVar2 != 0x53) goto LAB_00113282;\n      }\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      pcVar7 = "Application\n";\n      if (uVar2 != 0x41) {\nLAB_00113282:\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }\n      goto LAB_001133ad;\n    }\n    break;\n  default:\n    pcVar7 = (char *)dcgettext(0,"<unknown: %d>\n",5);\n    printf(pcVar7,(ulong)uVar2);\n    return pcVar9;\n  case 0x18:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 1) {\nLAB_001135c3:\n      pcVar7 = "8-byte\n";\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      if (uVar2 != 2) {\nLAB_00113474:\n        if (uVar2 == 3) {\n          puts("??? 3");\n          return pcVar9;\n        }\n        if (uVar2 < 0xd) {\n          pcVar7 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);\n          printf(pcVar7,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));\n          return pcVar9;\n        }\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }\n      pcVar7 = "4-byte\n";\n      goto LAB_001133ad;\n    }\n    break;\n  case 0x19:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 1) {\n      pcVar7 = "8-byte, except leaf SP\n";\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      if (uVar2 != 2) goto LAB_00113474;\n      goto LAB_001135c3;\n    }\n    break;\n  case 0x20:\n    uVar5 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    pcVar7 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n    printf(pcVar7,uVar5 & 0xffffffff);\n    if (pcVar9 < param_2 + -1) {\n      FUN_001122a0((ulong)(param_2 + (-1 - (long)pcVar9)) & 0xffffffff,pcVar9);\n      sVar6 = strnlen(pcVar9,(size_t)(param_2 + (-1 - (long)pcVar9)));\n      param_2 = pcVar9 + sVar6 + 1;\n    }\n    else {\n      pcVar9 = (char *)dcgettext(0,"<corrupt>",5);\n      printf(pcVar9);\n    }\n    putc(10,stdout);\n    return param_2;\n  case 0x40:\n    pcVar7 = "True\n";\n    pcVar9 = pcVar9 + (pcVar9 < param_2);\n    goto LAB_001133ad;\n  case 0x41:\n    iVar4 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (iVar4 == 6) {\n      uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n      pcVar9 = pcVar9 + local_2c;\n      if (uVar2 < 0x12) {\n        puts((&PTR_DAT_00190bc0)[uVar2]);\n      }\n      else {\n        printf("??? (%d)\n",(ulong)uVar2);\n      }\n    }\n    else {\n      puts("???");\n    }\n    if (pcVar9 < param_2) {\n      pcVar7 = pcVar9 + 1;\n      if (*pcVar9 == '\0') {\n        return pcVar9 + 1;\n      }\n      do {\n        if (pcVar7 == param_2) {\n          return pcVar7;\n        }\n        pcVar9 = pcVar7 + 1;\n        cVar1 = *pcVar7;\n        pcVar7 = pcVar9;\n      } while (cVar1 != '\0');\n      return pcVar9;\n    }\n    return pcVar9;\n  }" { (case_statement "case 7:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 0x4d) {\n      pcVar7 = "Microcontroller\n";\n      goto LAB_001133ad;\n    }\n    if (0x4d < uVar2) {\n      if (uVar2 == 0x52) {\n        pcVar7 = "Realtime\n";\n      }\n      else {\n        pcVar7 = "Application or Realtime\n";\n        if (uVar2 != 0x53) goto LAB_00113282;\n      }\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      pcVar7 = "Application\n";\n      if (uVar2 != 0x41) {\nLAB_00113282:\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }\n      goto LAB_001133ad;\n    }\n    break;" case number_literal : (expression_statement "uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);" (assignment_expression "uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2)" identifier = (call_expression "FUN_0013fb20(pcVar9,&local_2c,0,param_2)" identifier (argument_list "(pcVar9,&local_2c,0,param_2)" ( identifier , (pointer_expression "&local_2c" & identifier) , number_literal , identifier )))) ;) (expression_statement "pcVar9 = pcVar9 + local_2c;" (assignment_expression "pcVar9 = pcVar9 + local_2c" identifier = (binary_expression "pcVar9 + local_2c" identifier + identifier)) ;) (if_statement "if (uVar2 == 0x4d) {\n      pcVar7 = "Microcontroller\n";\n      goto LAB_001133ad;\n    }" if (parenthesized_expression "(uVar2 == 0x4d)" ( (binary_expression "uVar2 == 0x4d" identifier == number_literal) )) (compound_statement "{\n      pcVar7 = "Microcontroller\n";\n      goto LAB_001133ad;\n    }" { (expression_statement "pcVar7 = "Microcontroller\n";" (assignment_expression "pcVar7 = "Microcontroller\n"" identifier = (string_literal ""Microcontroller\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_001133ad;" goto statement_identifier ;) })) (if_statement "if (0x4d < uVar2) {\n      if (uVar2 == 0x52) {\n        pcVar7 = "Realtime\n";\n      }\n      else {\n        pcVar7 = "Application or Realtime\n";\n        if (uVar2 != 0x53) goto LAB_00113282;\n      }\n      goto LAB_001133ad;\n    }" if (parenthesized_expression "(0x4d < uVar2)" ( (binary_expression "0x4d < uVar2" number_literal < identifier) )) (compound_statement "{\n      if (uVar2 == 0x52) {\n        pcVar7 = "Realtime\n";\n      }\n      else {\n        pcVar7 = "Application or Realtime\n";\n        if (uVar2 != 0x53) goto LAB_00113282;\n      }\n      goto LAB_001133ad;\n    }" { (if_statement "if (uVar2 == 0x52) {\n        pcVar7 = "Realtime\n";\n      }\n      else {\n        pcVar7 = "Application or Realtime\n";\n        if (uVar2 != 0x53) goto LAB_00113282;\n      }" if (parenthesized_expression "(uVar2 == 0x52)" ( (binary_expression "uVar2 == 0x52" identifier == number_literal) )) (compound_statement "{\n        pcVar7 = "Realtime\n";\n      }" { (expression_statement "pcVar7 = "Realtime\n";" (assignment_expression "pcVar7 = "Realtime\n"" identifier = (string_literal ""Realtime\n"" " string_content escape_sequence ")) ;) }) (else_clause "else {\n        pcVar7 = "Application or Realtime\n";\n        if (uVar2 != 0x53) goto LAB_00113282;\n      }" else (compound_statement "{\n        pcVar7 = "Application or Realtime\n";\n        if (uVar2 != 0x53) goto LAB_00113282;\n      }" { (expression_statement "pcVar7 = "Application or Realtime\n";" (assignment_expression "pcVar7 = "Application or Realtime\n"" identifier = (string_literal ""Application or Realtime\n"" " string_content escape_sequence ")) ;) (if_statement "if (uVar2 != 0x53) goto LAB_00113282;" if (parenthesized_expression "(uVar2 != 0x53)" ( (binary_expression "uVar2 != 0x53" identifier != number_literal) )) (goto_statement "goto LAB_00113282;" goto statement_identifier ;)) }))) (goto_statement "goto LAB_001133ad;" goto statement_identifier ;) })) (if_statement "if (uVar2 != 0) {\n      pcVar7 = "Application\n";\n      if (uVar2 != 0x41) {\nLAB_00113282:\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }\n      goto LAB_001133ad;\n    }" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      pcVar7 = "Application\n";\n      if (uVar2 != 0x41) {\nLAB_00113282:\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }\n      goto LAB_001133ad;\n    }" { (expression_statement "pcVar7 = "Application\n";" (assignment_expression "pcVar7 = "Application\n"" identifier = (string_literal ""Application\n"" " string_content escape_sequence ")) ;) (if_statement "if (uVar2 != 0x41) {\nLAB_00113282:\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }" if (parenthesized_expression "(uVar2 != 0x41)" ( (binary_expression "uVar2 != 0x41" identifier != number_literal) )) (compound_statement "{\nLAB_00113282:\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }" { (labeled_statement "LAB_00113282:\n        printf("??? (%d)\n",(ulong)uVar2);" statement_identifier : (expression_statement "printf("??? (%d)\n",(ulong)uVar2);" (call_expression "printf("??? (%d)\n",(ulong)uVar2)" identifier (argument_list "("??? (%d)\n",(ulong)uVar2)" ( (string_literal ""??? (%d)\n"" " string_content escape_sequence ") , (cast_expression "(ulong)uVar2" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;)) (return_statement "return pcVar9;" return identifier ;) })) (goto_statement "goto LAB_001133ad;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "default:\n    pcVar7 = (char *)dcgettext(0,"<unknown: %d>\n",5);\n    printf(pcVar7,(ulong)uVar2);\n    return pcVar9;" default : (expression_statement "pcVar7 = (char *)dcgettext(0,"<unknown: %d>\n",5);" (assignment_expression "pcVar7 = (char *)dcgettext(0,"<unknown: %d>\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"<unknown: %d>\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"<unknown: %d>\n",5)" identifier (argument_list "(0,"<unknown: %d>\n",5)" ( number_literal , (string_literal ""<unknown: %d>\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar7,(ulong)uVar2);" (call_expression "printf(pcVar7,(ulong)uVar2)" identifier (argument_list "(pcVar7,(ulong)uVar2)" ( identifier , (cast_expression "(ulong)uVar2" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) (return_statement "return pcVar9;" return identifier ;)) (case_statement "case 0x18:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 1) {\nLAB_001135c3:\n      pcVar7 = "8-byte\n";\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      if (uVar2 != 2) {\nLAB_00113474:\n        if (uVar2 == 3) {\n          puts("??? 3");\n          return pcVar9;\n        }\n        if (uVar2 < 0xd) {\n          pcVar7 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);\n          printf(pcVar7,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));\n          return pcVar9;\n        }\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }\n      pcVar7 = "4-byte\n";\n      goto LAB_001133ad;\n    }\n    break;" case number_literal : (expression_statement "uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);" (assignment_expression "uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2)" identifier = (call_expression "FUN_0013fb20(pcVar9,&local_2c,0,param_2)" identifier (argument_list "(pcVar9,&local_2c,0,param_2)" ( identifier , (pointer_expression "&local_2c" & identifier) , number_literal , identifier )))) ;) (expression_statement "pcVar9 = pcVar9 + local_2c;" (assignment_expression "pcVar9 = pcVar9 + local_2c" identifier = (binary_expression "pcVar9 + local_2c" identifier + identifier)) ;) (if_statement "if (uVar2 == 1) {\nLAB_001135c3:\n      pcVar7 = "8-byte\n";\n      goto LAB_001133ad;\n    }" if (parenthesized_expression "(uVar2 == 1)" ( (binary_expression "uVar2 == 1" identifier == number_literal) )) (compound_statement "{\nLAB_001135c3:\n      pcVar7 = "8-byte\n";\n      goto LAB_001133ad;\n    }" { (labeled_statement "LAB_001135c3:\n      pcVar7 = "8-byte\n";" statement_identifier : (expression_statement "pcVar7 = "8-byte\n";" (assignment_expression "pcVar7 = "8-byte\n"" identifier = (string_literal ""8-byte\n"" " string_content escape_sequence ")) ;)) (goto_statement "goto LAB_001133ad;" goto statement_identifier ;) })) (if_statement "if (uVar2 != 0) {\n      if (uVar2 != 2) {\nLAB_00113474:\n        if (uVar2 == 3) {\n          puts("??? 3");\n          return pcVar9;\n        }\n        if (uVar2 < 0xd) {\n          pcVar7 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);\n          printf(pcVar7,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));\n          return pcVar9;\n        }\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }\n      pcVar7 = "4-byte\n";\n      goto LAB_001133ad;\n    }" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      if (uVar2 != 2) {\nLAB_00113474:\n        if (uVar2 == 3) {\n          puts("??? 3");\n          return pcVar9;\n        }\n        if (uVar2 < 0xd) {\n          pcVar7 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);\n          printf(pcVar7,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));\n          return pcVar9;\n        }\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }\n      pcVar7 = "4-byte\n";\n      goto LAB_001133ad;\n    }" { (if_statement "if (uVar2 != 2) {\nLAB_00113474:\n        if (uVar2 == 3) {\n          puts("??? 3");\n          return pcVar9;\n        }\n        if (uVar2 < 0xd) {\n          pcVar7 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);\n          printf(pcVar7,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));\n          return pcVar9;\n        }\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }" if (parenthesized_expression "(uVar2 != 2)" ( (binary_expression "uVar2 != 2" identifier != number_literal) )) (compound_statement "{\nLAB_00113474:\n        if (uVar2 == 3) {\n          puts("??? 3");\n          return pcVar9;\n        }\n        if (uVar2 < 0xd) {\n          pcVar7 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);\n          printf(pcVar7,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));\n          return pcVar9;\n        }\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }" { (labeled_statement "LAB_00113474:\n        if (uVar2 == 3) {\n          puts("??? 3");\n          return pcVar9;\n        }" statement_identifier : (if_statement "if (uVar2 == 3) {\n          puts("??? 3");\n          return pcVar9;\n        }" if (parenthesized_expression "(uVar2 == 3)" ( (binary_expression "uVar2 == 3" identifier == number_literal) )) (compound_statement "{\n          puts("??? 3");\n          return pcVar9;\n        }" { (expression_statement "puts("??? 3");" (call_expression "puts("??? 3")" identifier (argument_list "("??? 3")" ( (string_literal ""??? 3"" " string_content ") ))) ;) (return_statement "return pcVar9;" return identifier ;) }))) (if_statement "if (uVar2 < 0xd) {\n          pcVar7 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);\n          printf(pcVar7,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));\n          return pcVar9;\n        }" if (parenthesized_expression "(uVar2 < 0xd)" ( (binary_expression "uVar2 < 0xd" identifier < number_literal) )) (compound_statement "{\n          pcVar7 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);\n          printf(pcVar7,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));\n          return pcVar9;\n        }" { (expression_statement "pcVar7 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);" (assignment_expression "pcVar7 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"8-byte and up to %d-byte extended\n",5)" identifier (argument_list "(0,"8-byte and up to %d-byte extended\n",5)" ( number_literal , (string_literal ""8-byte and up to %d-byte extended\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar7,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));" (call_expression "printf(pcVar7,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)))" identifier (argument_list "(pcVar7,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)))" ( identifier , (call_expression "(ulong)(uint)(1 << ((byte)uVar2 & 0x1f))" (call_expression "(ulong)(uint)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uint)" ( identifier ))) (argument_list "(1 << ((byte)uVar2 & 0x1f))" ( (binary_expression "1 << ((byte)uVar2 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar2 & 0x1f)" ( (binary_expression "(byte)uVar2 & 0x1f" (cast_expression "(byte)uVar2" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) ))) ;) (return_statement "return pcVar9;" return identifier ;) })) (expression_statement "printf("??? (%d)\n",(ulong)uVar2);" (call_expression "printf("??? (%d)\n",(ulong)uVar2)" identifier (argument_list "("??? (%d)\n",(ulong)uVar2)" ( (string_literal ""??? (%d)\n"" " string_content escape_sequence ") , (cast_expression "(ulong)uVar2" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) (return_statement "return pcVar9;" return identifier ;) })) (expression_statement "pcVar7 = "4-byte\n";" (assignment_expression "pcVar7 = "4-byte\n"" identifier = (string_literal ""4-byte\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_001133ad;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case 0x19:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 1) {\n      pcVar7 = "8-byte, except leaf SP\n";\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      if (uVar2 != 2) goto LAB_00113474;\n      goto LAB_001135c3;\n    }\n    break;" case number_literal : (expression_statement "uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);" (assignment_expression "uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2)" identifier = (call_expression "FUN_0013fb20(pcVar9,&local_2c,0,param_2)" identifier (argument_list "(pcVar9,&local_2c,0,param_2)" ( identifier , (pointer_expression "&local_2c" & identifier) , number_literal , identifier )))) ;) (expression_statement "pcVar9 = pcVar9 + local_2c;" (assignment_expression "pcVar9 = pcVar9 + local_2c" identifier = (binary_expression "pcVar9 + local_2c" identifier + identifier)) ;) (if_statement "if (uVar2 == 1) {\n      pcVar7 = "8-byte, except leaf SP\n";\n      goto LAB_001133ad;\n    }" if (parenthesized_expression "(uVar2 == 1)" ( (binary_expression "uVar2 == 1" identifier == number_literal) )) (compound_statement "{\n      pcVar7 = "8-byte, except leaf SP\n";\n      goto LAB_001133ad;\n    }" { (expression_statement "pcVar7 = "8-byte, except leaf SP\n";" (assignment_expression "pcVar7 = "8-byte, except leaf SP\n"" identifier = (string_literal ""8-byte, except leaf SP\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_001133ad;" goto statement_identifier ;) })) (if_statement "if (uVar2 != 0) {\n      if (uVar2 != 2) goto LAB_00113474;\n      goto LAB_001135c3;\n    }" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      if (uVar2 != 2) goto LAB_00113474;\n      goto LAB_001135c3;\n    }" { (if_statement "if (uVar2 != 2) goto LAB_00113474;" if (parenthesized_expression "(uVar2 != 2)" ( (binary_expression "uVar2 != 2" identifier != number_literal) )) (goto_statement "goto LAB_00113474;" goto statement_identifier ;)) (goto_statement "goto LAB_001135c3;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case 0x20:\n    uVar5 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    pcVar7 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n    printf(pcVar7,uVar5 & 0xffffffff);\n    if (pcVar9 < param_2 + -1) {\n      FUN_001122a0((ulong)(param_2 + (-1 - (long)pcVar9)) & 0xffffffff,pcVar9);\n      sVar6 = strnlen(pcVar9,(size_t)(param_2 + (-1 - (long)pcVar9)));\n      param_2 = pcVar9 + sVar6 + 1;\n    }\n    else {\n      pcVar9 = (char *)dcgettext(0,"<corrupt>",5);\n      printf(pcVar9);\n    }\n    putc(10,stdout);\n    return param_2;" case number_literal : (expression_statement "uVar5 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);" (assignment_expression "uVar5 = FUN_0013fb20(pcVar9,&local_2c,0,param_2)" identifier = (call_expression "FUN_0013fb20(pcVar9,&local_2c,0,param_2)" identifier (argument_list "(pcVar9,&local_2c,0,param_2)" ( identifier , (pointer_expression "&local_2c" & identifier) , number_literal , identifier )))) ;) (expression_statement "pcVar9 = pcVar9 + local_2c;" (assignment_expression "pcVar9 = pcVar9 + local_2c" identifier = (binary_expression "pcVar9 + local_2c" identifier + identifier)) ;) (expression_statement "pcVar7 = (char *)dcgettext(0,"flag = %d, vendor = ",5);" (assignment_expression "pcVar7 = (char *)dcgettext(0,"flag = %d, vendor = ",5)" identifier = (cast_expression "(char *)dcgettext(0,"flag = %d, vendor = ",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"flag = %d, vendor = ",5)" identifier (argument_list "(0,"flag = %d, vendor = ",5)" ( number_literal , (string_literal ""flag = %d, vendor = "" " string_content ") , number_literal ))))) ;) (expression_statement "printf(pcVar7,uVar5 & 0xffffffff);" (call_expression "printf(pcVar7,uVar5 & 0xffffffff)" identifier (argument_list "(pcVar7,uVar5 & 0xffffffff)" ( identifier , (binary_expression "uVar5 & 0xffffffff" identifier & number_literal) ))) ;) (if_statement "if (pcVar9 < param_2 + -1) {\n      FUN_001122a0((ulong)(param_2 + (-1 - (long)pcVar9)) & 0xffffffff,pcVar9);\n      sVar6 = strnlen(pcVar9,(size_t)(param_2 + (-1 - (long)pcVar9)));\n      param_2 = pcVar9 + sVar6 + 1;\n    }\n    else {\n      pcVar9 = (char *)dcgettext(0,"<corrupt>",5);\n      printf(pcVar9);\n    }" if (parenthesized_expression "(pcVar9 < param_2 + -1)" ( (binary_expression "pcVar9 < param_2 + -1" identifier < (binary_expression "param_2 + -1" identifier + number_literal)) )) (compound_statement "{\n      FUN_001122a0((ulong)(param_2 + (-1 - (long)pcVar9)) & 0xffffffff,pcVar9);\n      sVar6 = strnlen(pcVar9,(size_t)(param_2 + (-1 - (long)pcVar9)));\n      param_2 = pcVar9 + sVar6 + 1;\n    }" { (expression_statement "FUN_001122a0((ulong)(param_2 + (-1 - (long)pcVar9)) & 0xffffffff,pcVar9);" (call_expression "FUN_001122a0((ulong)(param_2 + (-1 - (long)pcVar9)) & 0xffffffff,pcVar9)" identifier (argument_list "((ulong)(param_2 + (-1 - (long)pcVar9)) & 0xffffffff,pcVar9)" ( (binary_expression "(ulong)(param_2 + (-1 - (long)pcVar9)) & 0xffffffff" (call_expression "(ulong)(param_2 + (-1 - (long)pcVar9))" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(param_2 + (-1 - (long)pcVar9))" ( (binary_expression "param_2 + (-1 - (long)pcVar9)" identifier + (parenthesized_expression "(-1 - (long)pcVar9)" ( (binary_expression "-1 - (long)pcVar9" number_literal - (cast_expression "(long)pcVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) ))) & number_literal) , identifier ))) ;) (expression_statement "sVar6 = strnlen(pcVar9,(size_t)(param_2 + (-1 - (long)pcVar9)));" (assignment_expression "sVar6 = strnlen(pcVar9,(size_t)(param_2 + (-1 - (long)pcVar9)))" identifier = (call_expression "strnlen(pcVar9,(size_t)(param_2 + (-1 - (long)pcVar9)))" identifier (argument_list "(pcVar9,(size_t)(param_2 + (-1 - (long)pcVar9)))" ( identifier , (cast_expression "(size_t)(param_2 + (-1 - (long)pcVar9))" ( (type_descriptor "size_t" primitive_type) ) (parenthesized_expression "(param_2 + (-1 - (long)pcVar9))" ( (binary_expression "param_2 + (-1 - (long)pcVar9)" identifier + (parenthesized_expression "(-1 - (long)pcVar9)" ( (binary_expression "-1 - (long)pcVar9" number_literal - (cast_expression "(long)pcVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) ))) )))) ;) (expression_statement "param_2 = pcVar9 + sVar6 + 1;" (assignment_expression "param_2 = pcVar9 + sVar6 + 1" identifier = (binary_expression "pcVar9 + sVar6 + 1" (binary_expression "pcVar9 + sVar6" identifier + identifier) + number_literal)) ;) }) (else_clause "else {\n      pcVar9 = (char *)dcgettext(0,"<corrupt>",5);\n      printf(pcVar9);\n    }" else (compound_statement "{\n      pcVar9 = (char *)dcgettext(0,"<corrupt>",5);\n      printf(pcVar9);\n    }" { (expression_statement "pcVar9 = (char *)dcgettext(0,"<corrupt>",5);" (assignment_expression "pcVar9 = (char *)dcgettext(0,"<corrupt>",5)" identifier = (cast_expression "(char *)dcgettext(0,"<corrupt>",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"<corrupt>",5)" identifier (argument_list "(0,"<corrupt>",5)" ( number_literal , (string_literal ""<corrupt>"" " string_content ") , number_literal ))))) ;) (expression_statement "printf(pcVar9);" (call_expression "printf(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier ))) ;) }))) (expression_statement "putc(10,stdout);" (call_expression "putc(10,stdout)" identifier (argument_list "(10,stdout)" ( number_literal , identifier ))) ;) (return_statement "return param_2;" return identifier ;)) (case_statement "case 0x40:\n    pcVar7 = "True\n";\n    pcVar9 = pcVar9 + (pcVar9 < param_2);\n    goto LAB_001133ad;" case number_literal : (expression_statement "pcVar7 = "True\n";" (assignment_expression "pcVar7 = "True\n"" identifier = (string_literal ""True\n"" " string_content escape_sequence ")) ;) (expression_statement "pcVar9 = pcVar9 + (pcVar9 < param_2);" (assignment_expression "pcVar9 = pcVar9 + (pcVar9 < param_2)" identifier = (binary_expression "pcVar9 + (pcVar9 < param_2)" identifier + (parenthesized_expression "(pcVar9 < param_2)" ( (binary_expression "pcVar9 < param_2" identifier < identifier) )))) ;) (goto_statement "goto LAB_001133ad;" goto statement_identifier ;)) (case_statement "case 0x41:\n    iVar4 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (iVar4 == 6) {\n      uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n      pcVar9 = pcVar9 + local_2c;\n      if (uVar2 < 0x12) {\n        puts((&PTR_DAT_00190bc0)[uVar2]);\n      }\n      else {\n        printf("??? (%d)\n",(ulong)uVar2);\n      }\n    }\n    else {\n      puts("???");\n    }\n    if (pcVar9 < param_2) {\n      pcVar7 = pcVar9 + 1;\n      if (*pcVar9 == '\0') {\n        return pcVar9 + 1;\n      }\n      do {\n        if (pcVar7 == param_2) {\n          return pcVar7;\n        }\n        pcVar9 = pcVar7 + 1;\n        cVar1 = *pcVar7;\n        pcVar7 = pcVar9;\n      } while (cVar1 != '\0');\n      return pcVar9;\n    }\n    return pcVar9;" case number_literal : (expression_statement "iVar4 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);" (assignment_expression "iVar4 = FUN_0013fb20(pcVar9,&local_2c,0,param_2)" identifier = (call_expression "FUN_0013fb20(pcVar9,&local_2c,0,param_2)" identifier (argument_list "(pcVar9,&local_2c,0,param_2)" ( identifier , (pointer_expression "&local_2c" & identifier) , number_literal , identifier )))) ;) (expression_statement "pcVar9 = pcVar9 + local_2c;" (assignment_expression "pcVar9 = pcVar9 + local_2c" identifier = (binary_expression "pcVar9 + local_2c" identifier + identifier)) ;) (if_statement "if (iVar4 == 6) {\n      uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n      pcVar9 = pcVar9 + local_2c;\n      if (uVar2 < 0x12) {\n        puts((&PTR_DAT_00190bc0)[uVar2]);\n      }\n      else {\n        printf("??? (%d)\n",(ulong)uVar2);\n      }\n    }\n    else {\n      puts("???");\n    }" if (parenthesized_expression "(iVar4 == 6)" ( (binary_expression "iVar4 == 6" identifier == number_literal) )) (compound_statement "{\n      uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n      pcVar9 = pcVar9 + local_2c;\n      if (uVar2 < 0x12) {\n        puts((&PTR_DAT_00190bc0)[uVar2]);\n      }\n      else {\n        printf("??? (%d)\n",(ulong)uVar2);\n      }\n    }" { (expression_statement "uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);" (assignment_expression "uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2)" identifier = (call_expression "FUN_0013fb20(pcVar9,&local_2c,0,param_2)" identifier (argument_list "(pcVar9,&local_2c,0,param_2)" ( identifier , (pointer_expression "&local_2c" & identifier) , number_literal , identifier )))) ;) (expression_statement "pcVar9 = pcVar9 + local_2c;" (assignment_expression "pcVar9 = pcVar9 + local_2c" identifier = (binary_expression "pcVar9 + local_2c" identifier + identifier)) ;) (if_statement "if (uVar2 < 0x12) {\n        puts((&PTR_DAT_00190bc0)[uVar2]);\n      }\n      else {\n        printf("??? (%d)\n",(ulong)uVar2);\n      }" if (parenthesized_expression "(uVar2 < 0x12)" ( (binary_expression "uVar2 < 0x12" identifier < number_literal) )) (compound_statement "{\n        puts((&PTR_DAT_00190bc0)[uVar2]);\n      }" { (expression_statement "puts((&PTR_DAT_00190bc0)[uVar2]);" (call_expression "puts((&PTR_DAT_00190bc0)[uVar2])" identifier (argument_list "((&PTR_DAT_00190bc0)[uVar2])" ( (subscript_expression "(&PTR_DAT_00190bc0)[uVar2]" (parenthesized_expression "(&PTR_DAT_00190bc0)" ( (pointer_expression "&PTR_DAT_00190bc0" & identifier) )) [ identifier ]) ))) ;) }) (else_clause "else {\n        printf("??? (%d)\n",(ulong)uVar2);\n      }" else (compound_statement "{\n        printf("??? (%d)\n",(ulong)uVar2);\n      }" { (expression_statement "printf("??? (%d)\n",(ulong)uVar2);" (call_expression "printf("??? (%d)\n",(ulong)uVar2)" identifier (argument_list "("??? (%d)\n",(ulong)uVar2)" ( (string_literal ""??? (%d)\n"" " string_content escape_sequence ") , (cast_expression "(ulong)uVar2" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) }))) }) (else_clause "else {\n      puts("???");\n    }" else (compound_statement "{\n      puts("???");\n    }" { (expression_statement "puts("???");" (call_expression "puts("???")" identifier (argument_list "("???")" ( (string_literal ""???"" " string_content ") ))) ;) }))) (if_statement "if (pcVar9 < param_2) {\n      pcVar7 = pcVar9 + 1;\n      if (*pcVar9 == '\0') {\n        return pcVar9 + 1;\n      }\n      do {\n        if (pcVar7 == param_2) {\n          return pcVar7;\n        }\n        pcVar9 = pcVar7 + 1;\n        cVar1 = *pcVar7;\n        pcVar7 = pcVar9;\n      } while (cVar1 != '\0');\n      return pcVar9;\n    }" if (parenthesized_expression "(pcVar9 < param_2)" ( (binary_expression "pcVar9 < param_2" identifier < identifier) )) (compound_statement "{\n      pcVar7 = pcVar9 + 1;\n      if (*pcVar9 == '\0') {\n        return pcVar9 + 1;\n      }\n      do {\n        if (pcVar7 == param_2) {\n          return pcVar7;\n        }\n        pcVar9 = pcVar7 + 1;\n        cVar1 = *pcVar7;\n        pcVar7 = pcVar9;\n      } while (cVar1 != '\0');\n      return pcVar9;\n    }" { (expression_statement "pcVar7 = pcVar9 + 1;" (assignment_expression "pcVar7 = pcVar9 + 1" identifier = (binary_expression "pcVar9 + 1" identifier + number_literal)) ;) (if_statement "if (*pcVar9 == '\0') {\n        return pcVar9 + 1;\n      }" if (parenthesized_expression "(*pcVar9 == '\0')" ( (binary_expression "*pcVar9 == '\0'" (pointer_expression "*pcVar9" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        return pcVar9 + 1;\n      }" { (return_statement "return pcVar9 + 1;" return (binary_expression "pcVar9 + 1" identifier + number_literal) ;) })) (do_statement "do {\n        if (pcVar7 == param_2) {\n          return pcVar7;\n        }\n        pcVar9 = pcVar7 + 1;\n        cVar1 = *pcVar7;\n        pcVar7 = pcVar9;\n      } while (cVar1 != '\0');" do (compound_statement "{\n        if (pcVar7 == param_2) {\n          return pcVar7;\n        }\n        pcVar9 = pcVar7 + 1;\n        cVar1 = *pcVar7;\n        pcVar7 = pcVar9;\n      }" { (if_statement "if (pcVar7 == param_2) {\n          return pcVar7;\n        }" if (parenthesized_expression "(pcVar7 == param_2)" ( (binary_expression "pcVar7 == param_2" identifier == identifier) )) (compound_statement "{\n          return pcVar7;\n        }" { (return_statement "return pcVar7;" return identifier ;) })) (expression_statement "pcVar9 = pcVar7 + 1;" (assignment_expression "pcVar9 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (expression_statement "cVar1 = *pcVar7;" (assignment_expression "cVar1 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (expression_statement "pcVar7 = pcVar9;" (assignment_expression "pcVar7 = pcVar9" identifier = identifier) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (return_statement "return pcVar9;" return identifier ;) })) (return_statement "return pcVar9;" return identifier ;)) })) (expression_statement "pcVar7 = "None\n";" (assignment_expression "pcVar7 = "None\n"" identifier = (string_literal ""None\n"" " string_content escape_sequence ")) ;) (labeled_statement "LAB_001133ad:\n  pcVar7 = (char *)dcgettext(0,pcVar7,5);" statement_identifier : (expression_statement "pcVar7 = (char *)dcgettext(0,pcVar7,5);" (assignment_expression "pcVar7 = (char *)dcgettext(0,pcVar7,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar7,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar7,5)" identifier (argument_list "(0,pcVar7,5)" ( number_literal , identifier , number_literal ))))) ;)) (expression_statement "printf(pcVar7);" (call_expression "printf(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier ))) ;) (return_statement "return pcVar9;" return identifier ;) })))
(translation_unit "uchar * display_arm_attribute(uchar *p,uchar *end)\n\n{\n  uchar uVar1;\n  wchar_t tag;\n  uint uVar2;\n  dwarf_vma dVar3;\n  ulong uVar4;\n  size_t sVar5;\n  char *pcVar6;\n  arm_attr_public_tag *paVar7;\n  uchar *puVar8;\n  uchar *puVar9;\n  uint len;\n  \n  dVar3 = read_leb128(p,&len,0,end);\n  tag = (wchar_t)dVar3;\n  paVar7 = arm_attr_public_tags;\n  puVar8 = p + len;\n  uVar4 = 0;\n  while (paVar7->tag != tag) {\n    uVar2 = (int)uVar4 + 1;\n    uVar4 = (ulong)uVar2;\n    paVar7 = paVar7 + 1;\n    if (uVar2 == 0x29) {\n      puVar8 = display_tag_value(tag,puVar8,end);\n      return puVar8;\n    }\n  }\n  printf("  Tag_%s: ",arm_attr_public_tags[uVar4].name);\n  uVar2 = arm_attr_public_tags[uVar4].type;\n  if (uVar2 == 1) {\n    puVar8 = display_tag_value(L'\xffffffff',puVar8,end);\n    return puVar8;\n  }\n  if (uVar2 != 0) {\n    if (uVar2 == 2) {\n      puVar8 = display_tag_value(L'\0',puVar8,end);\n      return puVar8;\n    }\n    if ((uVar2 & 0x80) == 0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("attr->type & 0x80","../../binutils/readelf.c",0x3890,"display_arm_attribute");\n    }\n    dVar3 = read_leb128(puVar8,&len,0,end);\n    puVar8 = puVar8 + len;\n    uVar2 = (uint)dVar3;\n    if (uVar2 < (arm_attr_public_tags[uVar4].type & 0x7f)) {\n      puts(arm_attr_public_tags[uVar4].table[dVar3 & 0xffffffff]);\n      return puVar8;\n    }\n    goto LAB_00113282;\n  }\n  switch(tag) {\n  case L'\a':\n    dVar3 = read_leb128(puVar8,&len,0,end);\n    puVar8 = puVar8 + len;\n    uVar2 = (uint)dVar3;\n    if (uVar2 == 0x4d) {\n      pcVar6 = "Microcontroller\n";\n      goto LAB_001133ad;\n    }\n    if (0x4d < uVar2) {\n      if (uVar2 == 0x52) {\n        pcVar6 = "Realtime\n";\n      }\n      else {\n        pcVar6 = "Application or Realtime\n";\n        if (uVar2 != 0x53) goto LAB_00113282;\n      }\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      pcVar6 = "Application\n";\n      if (uVar2 != 0x41) {\nLAB_00113282:\n        printf("??? (%d)\n",(ulong)uVar2);\n        return puVar8;\n      }\n      goto LAB_001133ad;\n    }\n    break;\n  default:\n    pcVar6 = (char *)dcgettext(0,"<unknown: %d>\n",5);\n    printf(pcVar6,dVar3 & 0xffffffff);\n    return puVar8;\n  case L'\x18':\n    dVar3 = read_leb128(puVar8,&len,0,end);\n    puVar8 = puVar8 + len;\n    uVar2 = (uint)dVar3;\n    if (uVar2 == 1) {\nLAB_001135c3:\n      pcVar6 = "8-byte\n";\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      if (uVar2 != 2) {\nLAB_00113474:\n        if (uVar2 == 3) {\n          puts("??? 3");\n          return puVar8;\n        }\n        if (uVar2 < 0xd) {\n          pcVar6 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);\n          printf(pcVar6,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));\n          return puVar8;\n        }\n        printf("??? (%d)\n",(ulong)uVar2);\n        return puVar8;\n      }\n      pcVar6 = "4-byte\n";\n      goto LAB_001133ad;\n    }\n    break;\n  case L'\x19':\n    dVar3 = read_leb128(puVar8,&len,0,end);\n    uVar2 = (uint)dVar3;\n    puVar8 = puVar8 + len;\n    if (uVar2 == 1) {\n      pcVar6 = "8-byte, except leaf SP\n";\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      if (uVar2 != 2) goto LAB_00113474;\n      goto LAB_001135c3;\n    }\n    break;\n  case L' ':\n    dVar3 = read_leb128(puVar8,&len,0,end);\n    puVar8 = puVar8 + len;\n    pcVar6 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n    printf(pcVar6,dVar3 & 0xffffffff);\n    if (puVar8 < end + -1) {\n      print_symbol((wchar_t)(end + (-1 - (long)puVar8)),(char *)puVar8);\n      sVar5 = strnlen((char *)puVar8,(size_t)(end + (-1 - (long)puVar8)));\n      end = puVar8 + sVar5 + 1;\n    }\n    else {\n      pcVar6 = (char *)dcgettext(0,"<corrupt>",5);\n      printf(pcVar6);\n    }\n    putc(10,stdout);\n    return end;\n  case L'@':\n    pcVar6 = "True\n";\n    puVar8 = puVar8 + (puVar8 < end);\n    goto LAB_001133ad;\n  case L'A':\n    dVar3 = read_leb128(puVar8,&len,0,end);\n    puVar8 = puVar8 + len;\n    if ((int)dVar3 == 6) {\n      dVar3 = read_leb128(puVar8,&len,0,end);\n      puVar8 = puVar8 + len;\n      if ((uint)dVar3 < 0x12) {\n        puts(arm_attr_tag_CPU_arch[dVar3 & 0xffffffff]);\n      }\n      else {\n        printf("??? (%d)\n",dVar3 & 0xffffffff);\n      }\n    }\n    else {\n      puts("???");\n    }\n    if (puVar8 < end) {\n      puVar9 = puVar8 + 1;\n      if (*puVar8 == '\0') {\n        return puVar8 + 1;\n      }\n      do {\n        if (puVar9 == end) {\n          return puVar9;\n        }\n        puVar8 = puVar9 + 1;\n        uVar1 = *puVar9;\n        puVar9 = puVar8;\n      } while (uVar1 != '\0');\n      return puVar8;\n    }\n    return puVar8;\n  }\n  pcVar6 = "None\n";\nLAB_001133ad:\n  pcVar6 = (char *)dcgettext(0,pcVar6,5);\n  printf(pcVar6);\n  return puVar8;\n}\n\n" (function_definition "uchar * display_arm_attribute(uchar *p,uchar *end)\n\n{\n  uchar uVar1;\n  wchar_t tag;\n  uint uVar2;\n  dwarf_vma dVar3;\n  ulong uVar4;\n  size_t sVar5;\n  char *pcVar6;\n  arm_attr_public_tag *paVar7;\n  uchar *puVar8;\n  uchar *puVar9;\n  uint len;\n  \n  dVar3 = read_leb128(p,&len,0,end);\n  tag = (wchar_t)dVar3;\n  paVar7 = arm_attr_public_tags;\n  puVar8 = p + len;\n  uVar4 = 0;\n  while (paVar7->tag != tag) {\n    uVar2 = (int)uVar4 + 1;\n    uVar4 = (ulong)uVar2;\n    paVar7 = paVar7 + 1;\n    if (uVar2 == 0x29) {\n      puVar8 = display_tag_value(tag,puVar8,end);\n      return puVar8;\n    }\n  }\n  printf("  Tag_%s: ",arm_attr_public_tags[uVar4].name);\n  uVar2 = arm_attr_public_tags[uVar4].type;\n  if (uVar2 == 1) {\n    puVar8 = display_tag_value(L'\xffffffff',puVar8,end);\n    return puVar8;\n  }\n  if (uVar2 != 0) {\n    if (uVar2 == 2) {\n      puVar8 = display_tag_value(L'\0',puVar8,end);\n      return puVar8;\n    }\n    if ((uVar2 & 0x80) == 0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("attr->type & 0x80","../../binutils/readelf.c",0x3890,"display_arm_attribute");\n    }\n    dVar3 = read_leb128(puVar8,&len,0,end);\n    puVar8 = puVar8 + len;\n    uVar2 = (uint)dVar3;\n    if (uVar2 < (arm_attr_public_tags[uVar4].type & 0x7f)) {\n      puts(arm_attr_public_tags[uVar4].table[dVar3 & 0xffffffff]);\n      return puVar8;\n    }\n    goto LAB_00113282;\n  }\n  switch(tag) {\n  case L'\a':\n    dVar3 = read_leb128(puVar8,&len,0,end);\n    puVar8 = puVar8 + len;\n    uVar2 = (uint)dVar3;\n    if (uVar2 == 0x4d) {\n      pcVar6 = "Microcontroller\n";\n      goto LAB_001133ad;\n    }\n    if (0x4d < uVar2) {\n      if (uVar2 == 0x52) {\n        pcVar6 = "Realtime\n";\n      }\n      else {\n        pcVar6 = "Application or Realtime\n";\n        if (uVar2 != 0x53) goto LAB_00113282;\n      }\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      pcVar6 = "Application\n";\n      if (uVar2 != 0x41) {\nLAB_00113282:\n        printf("??? (%d)\n",(ulong)uVar2);\n        return puVar8;\n      }\n      goto LAB_001133ad;\n    }\n    break;\n  default:\n    pcVar6 = (char *)dcgettext(0,"<unknown: %d>\n",5);\n    printf(pcVar6,dVar3 & 0xffffffff);\n    return puVar8;\n  case L'\x18':\n    dVar3 = read_leb128(puVar8,&len,0,end);\n    puVar8 = puVar8 + len;\n    uVar2 = (uint)dVar3;\n    if (uVar2 == 1) {\nLAB_001135c3:\n      pcVar6 = "8-byte\n";\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      if (uVar2 != 2) {\nLAB_00113474:\n        if (uVar2 == 3) {\n          puts("??? 3");\n          return puVar8;\n        }\n        if (uVar2 < 0xd) {\n          pcVar6 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);\n          printf(pcVar6,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));\n          return puVar8;\n        }\n        printf("??? (%d)\n",(ulong)uVar2);\n        return puVar8;\n      }\n      pcVar6 = "4-byte\n";\n      goto LAB_001133ad;\n    }\n    break;\n  case L'\x19':\n    dVar3 = read_leb128(puVar8,&len,0,end);\n    uVar2 = (uint)dVar3;\n    puVar8 = puVar8 + len;\n    if (uVar2 == 1) {\n      pcVar6 = "8-byte, except leaf SP\n";\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      if (uVar2 != 2) goto LAB_00113474;\n      goto LAB_001135c3;\n    }\n    break;\n  case L' ':\n    dVar3 = read_leb128(puVar8,&len,0,end);\n    puVar8 = puVar8 + len;\n    pcVar6 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n    printf(pcVar6,dVar3 & 0xffffffff);\n    if (puVar8 < end + -1) {\n      print_symbol((wchar_t)(end + (-1 - (long)puVar8)),(char *)puVar8);\n      sVar5 = strnlen((char *)puVar8,(size_t)(end + (-1 - (long)puVar8)));\n      end = puVar8 + sVar5 + 1;\n    }\n    else {\n      pcVar6 = (char *)dcgettext(0,"<corrupt>",5);\n      printf(pcVar6);\n    }\n    putc(10,stdout);\n    return end;\n  case L'@':\n    pcVar6 = "True\n";\n    puVar8 = puVar8 + (puVar8 < end);\n    goto LAB_001133ad;\n  case L'A':\n    dVar3 = read_leb128(puVar8,&len,0,end);\n    puVar8 = puVar8 + len;\n    if ((int)dVar3 == 6) {\n      dVar3 = read_leb128(puVar8,&len,0,end);\n      puVar8 = puVar8 + len;\n      if ((uint)dVar3 < 0x12) {\n        puts(arm_attr_tag_CPU_arch[dVar3 & 0xffffffff]);\n      }\n      else {\n        printf("??? (%d)\n",dVar3 & 0xffffffff);\n      }\n    }\n    else {\n      puts("???");\n    }\n    if (puVar8 < end) {\n      puVar9 = puVar8 + 1;\n      if (*puVar8 == '\0') {\n        return puVar8 + 1;\n      }\n      do {\n        if (puVar9 == end) {\n          return puVar9;\n        }\n        puVar8 = puVar9 + 1;\n        uVar1 = *puVar9;\n        puVar9 = puVar8;\n      } while (uVar1 != '\0');\n      return puVar8;\n    }\n    return puVar8;\n  }\n  pcVar6 = "None\n";\nLAB_001133ad:\n  pcVar6 = (char *)dcgettext(0,pcVar6,5);\n  printf(pcVar6);\n  return puVar8;\n}" type_identifier (pointer_declarator "* display_arm_attribute(uchar *p,uchar *end)" * (function_declarator "display_arm_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  uchar uVar1;\n  wchar_t tag;\n  uint uVar2;\n  dwarf_vma dVar3;\n  ulong uVar4;\n  size_t sVar5;\n  char *pcVar6;\n  arm_attr_public_tag *paVar7;\n  uchar *puVar8;\n  uchar *puVar9;\n  uint len;\n  \n  dVar3 = read_leb128(p,&len,0,end);\n  tag = (wchar_t)dVar3;\n  paVar7 = arm_attr_public_tags;\n  puVar8 = p + len;\n  uVar4 = 0;\n  while (paVar7->tag != tag) {\n    uVar2 = (int)uVar4 + 1;\n    uVar4 = (ulong)uVar2;\n    paVar7 = paVar7 + 1;\n    if (uVar2 == 0x29) {\n      puVar8 = display_tag_value(tag,puVar8,end);\n      return puVar8;\n    }\n  }\n  printf("  Tag_%s: ",arm_attr_public_tags[uVar4].name);\n  uVar2 = arm_attr_public_tags[uVar4].type;\n  if (uVar2 == 1) {\n    puVar8 = display_tag_value(L'\xffffffff',puVar8,end);\n    return puVar8;\n  }\n  if (uVar2 != 0) {\n    if (uVar2 == 2) {\n      puVar8 = display_tag_value(L'\0',puVar8,end);\n      return puVar8;\n    }\n    if ((uVar2 & 0x80) == 0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("attr->type & 0x80","../../binutils/readelf.c",0x3890,"display_arm_attribute");\n    }\n    dVar3 = read_leb128(puVar8,&len,0,end);\n    puVar8 = puVar8 + len;\n    uVar2 = (uint)dVar3;\n    if (uVar2 < (arm_attr_public_tags[uVar4].type & 0x7f)) {\n      puts(arm_attr_public_tags[uVar4].table[dVar3 & 0xffffffff]);\n      return puVar8;\n    }\n    goto LAB_00113282;\n  }\n  switch(tag) {\n  case L'\a':\n    dVar3 = read_leb128(puVar8,&len,0,end);\n    puVar8 = puVar8 + len;\n    uVar2 = (uint)dVar3;\n    if (uVar2 == 0x4d) {\n      pcVar6 = "Microcontroller\n";\n      goto LAB_001133ad;\n    }\n    if (0x4d < uVar2) {\n      if (uVar2 == 0x52) {\n        pcVar6 = "Realtime\n";\n      }\n      else {\n        pcVar6 = "Application or Realtime\n";\n        if (uVar2 != 0x53) goto LAB_00113282;\n      }\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      pcVar6 = "Application\n";\n      if (uVar2 != 0x41) {\nLAB_00113282:\n        printf("??? (%d)\n",(ulong)uVar2);\n        return puVar8;\n      }\n      goto LAB_001133ad;\n    }\n    break;\n  default:\n    pcVar6 = (char *)dcgettext(0,"<unknown: %d>\n",5);\n    printf(pcVar6,dVar3 & 0xffffffff);\n    return puVar8;\n  case L'\x18':\n    dVar3 = read_leb128(puVar8,&len,0,end);\n    puVar8 = puVar8 + len;\n    uVar2 = (uint)dVar3;\n    if (uVar2 == 1) {\nLAB_001135c3:\n      pcVar6 = "8-byte\n";\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      if (uVar2 != 2) {\nLAB_00113474:\n        if (uVar2 == 3) {\n          puts("??? 3");\n          return puVar8;\n        }\n        if (uVar2 < 0xd) {\n          pcVar6 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);\n          printf(pcVar6,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));\n          return puVar8;\n        }\n        printf("??? (%d)\n",(ulong)uVar2);\n        return puVar8;\n      }\n      pcVar6 = "4-byte\n";\n      goto LAB_001133ad;\n    }\n    break;\n  case L'\x19':\n    dVar3 = read_leb128(puVar8,&len,0,end);\n    uVar2 = (uint)dVar3;\n    puVar8 = puVar8 + len;\n    if (uVar2 == 1) {\n      pcVar6 = "8-byte, except leaf SP\n";\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      if (uVar2 != 2) goto LAB_00113474;\n      goto LAB_001135c3;\n    }\n    break;\n  case L' ':\n    dVar3 = read_leb128(puVar8,&len,0,end);\n    puVar8 = puVar8 + len;\n    pcVar6 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n    printf(pcVar6,dVar3 & 0xffffffff);\n    if (puVar8 < end + -1) {\n      print_symbol((wchar_t)(end + (-1 - (long)puVar8)),(char *)puVar8);\n      sVar5 = strnlen((char *)puVar8,(size_t)(end + (-1 - (long)puVar8)));\n      end = puVar8 + sVar5 + 1;\n    }\n    else {\n      pcVar6 = (char *)dcgettext(0,"<corrupt>",5);\n      printf(pcVar6);\n    }\n    putc(10,stdout);\n    return end;\n  case L'@':\n    pcVar6 = "True\n";\n    puVar8 = puVar8 + (puVar8 < end);\n    goto LAB_001133ad;\n  case L'A':\n    dVar3 = read_leb128(puVar8,&len,0,end);\n    puVar8 = puVar8 + len;\n    if ((int)dVar3 == 6) {\n      dVar3 = read_leb128(puVar8,&len,0,end);\n      puVar8 = puVar8 + len;\n      if ((uint)dVar3 < 0x12) {\n        puts(arm_attr_tag_CPU_arch[dVar3 & 0xffffffff]);\n      }\n      else {\n        printf("??? (%d)\n",dVar3 & 0xffffffff);\n      }\n    }\n    else {\n      puts("???");\n    }\n    if (puVar8 < end) {\n      puVar9 = puVar8 + 1;\n      if (*puVar8 == '\0') {\n        return puVar8 + 1;\n      }\n      do {\n        if (puVar9 == end) {\n          return puVar9;\n        }\n        puVar8 = puVar9 + 1;\n        uVar1 = *puVar9;\n        puVar9 = puVar8;\n      } while (uVar1 != '\0');\n      return puVar8;\n    }\n    return puVar8;\n  }\n  pcVar6 = "None\n";\nLAB_001133ad:\n  pcVar6 = (char *)dcgettext(0,pcVar6,5);\n  printf(pcVar6);\n  return puVar8;\n}" { (declaration "uchar uVar1;" type_identifier identifier ;) (declaration "wchar_t tag;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "dwarf_vma dVar3;" type_identifier identifier ;) (declaration "ulong uVar4;" type_identifier identifier ;) (declaration "size_t sVar5;" primitive_type identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "arm_attr_public_tag *paVar7;" type_identifier (pointer_declarator "*paVar7" * identifier) ;) (declaration "uchar *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "uchar *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "uint len;" type_identifier identifier ;) (expression_statement "dVar3 = read_leb128(p,&len,0,end);" (assignment_expression "dVar3 = 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 "tag = (wchar_t)dVar3;" (assignment_expression "tag = (wchar_t)dVar3" identifier = (cast_expression "(wchar_t)dVar3" ( (type_descriptor "wchar_t" type_identifier) ) identifier)) ;) (expression_statement "paVar7 = arm_attr_public_tags;" (assignment_expression "paVar7 = arm_attr_public_tags" identifier = identifier) ;) (expression_statement "puVar8 = p + len;" (assignment_expression "puVar8 = p + len" identifier = (binary_expression "p + len" identifier + identifier)) ;) (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (while_statement "while (paVar7->tag != tag) {\n    uVar2 = (int)uVar4 + 1;\n    uVar4 = (ulong)uVar2;\n    paVar7 = paVar7 + 1;\n    if (uVar2 == 0x29) {\n      puVar8 = display_tag_value(tag,puVar8,end);\n      return puVar8;\n    }\n  }" while (parenthesized_expression "(paVar7->tag != tag)" ( (binary_expression "paVar7->tag != tag" (field_expression "paVar7->tag" identifier -> field_identifier) != identifier) )) (compound_statement "{\n    uVar2 = (int)uVar4 + 1;\n    uVar4 = (ulong)uVar2;\n    paVar7 = paVar7 + 1;\n    if (uVar2 == 0x29) {\n      puVar8 = display_tag_value(tag,puVar8,end);\n      return puVar8;\n    }\n  }" { (expression_statement "uVar2 = (int)uVar4 + 1;" (assignment_expression "uVar2 = (int)uVar4 + 1" identifier = (binary_expression "(int)uVar4 + 1" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "uVar4 = (ulong)uVar2;" (assignment_expression "uVar4 = (ulong)uVar2" identifier = (cast_expression "(ulong)uVar2" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "paVar7 = paVar7 + 1;" (assignment_expression "paVar7 = paVar7 + 1" identifier = (binary_expression "paVar7 + 1" identifier + number_literal)) ;) (if_statement "if (uVar2 == 0x29) {\n      puVar8 = display_tag_value(tag,puVar8,end);\n      return puVar8;\n    }" if (parenthesized_expression "(uVar2 == 0x29)" ( (binary_expression "uVar2 == 0x29" identifier == number_literal) )) (compound_statement "{\n      puVar8 = display_tag_value(tag,puVar8,end);\n      return puVar8;\n    }" { (expression_statement "puVar8 = display_tag_value(tag,puVar8,end);" (assignment_expression "puVar8 = display_tag_value(tag,puVar8,end)" identifier = (call_expression "display_tag_value(tag,puVar8,end)" identifier (argument_list "(tag,puVar8,end)" ( identifier , identifier , identifier )))) ;) (return_statement "return puVar8;" return identifier ;) })) })) (expression_statement "printf("  Tag_%s: ",arm_attr_public_tags[uVar4].name);" (call_expression "printf("  Tag_%s: ",arm_attr_public_tags[uVar4].name)" identifier (argument_list "("  Tag_%s: ",arm_attr_public_tags[uVar4].name)" ( (string_literal ""  Tag_%s: "" " string_content ") , (field_expression "arm_attr_public_tags[uVar4].name" (subscript_expression "arm_attr_public_tags[uVar4]" identifier [ identifier ]) . field_identifier) ))) ;) (expression_statement "uVar2 = arm_attr_public_tags[uVar4].type;" (assignment_expression "uVar2 = arm_attr_public_tags[uVar4].type" identifier = (field_expression "arm_attr_public_tags[uVar4].type" (subscript_expression "arm_attr_public_tags[uVar4]" identifier [ identifier ]) . field_identifier)) ;) (if_statement "if (uVar2 == 1) {\n    puVar8 = display_tag_value(L'\xffffffff',puVar8,end);\n    return puVar8;\n  }" if (parenthesized_expression "(uVar2 == 1)" ( (binary_expression "uVar2 == 1" identifier == number_literal) )) (compound_statement "{\n    puVar8 = display_tag_value(L'\xffffffff',puVar8,end);\n    return puVar8;\n  }" { (expression_statement "puVar8 = display_tag_value(L'\xffffffff',puVar8,end);" (assignment_expression "puVar8 = display_tag_value(L'\xffffffff',puVar8,end)" identifier = (call_expression "display_tag_value(L'\xffffffff',puVar8,end)" identifier (argument_list "(L'\xffffffff',puVar8,end)" ( (char_literal "L'\xffffffff'" L' escape_sequence character character character character ') , identifier , identifier )))) ;) (return_statement "return puVar8;" return identifier ;) })) (if_statement "if (uVar2 != 0) {\n    if (uVar2 == 2) {\n      puVar8 = display_tag_value(L'\0',puVar8,end);\n      return puVar8;\n    }\n    if ((uVar2 & 0x80) == 0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("attr->type & 0x80","../../binutils/readelf.c",0x3890,"display_arm_attribute");\n    }\n    dVar3 = read_leb128(puVar8,&len,0,end);\n    puVar8 = puVar8 + len;\n    uVar2 = (uint)dVar3;\n    if (uVar2 < (arm_attr_public_tags[uVar4].type & 0x7f)) {\n      puts(arm_attr_public_tags[uVar4].table[dVar3 & 0xffffffff]);\n      return puVar8;\n    }\n    goto LAB_00113282;\n  }" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    if (uVar2 == 2) {\n      puVar8 = display_tag_value(L'\0',puVar8,end);\n      return puVar8;\n    }\n    if ((uVar2 & 0x80) == 0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("attr->type & 0x80","../../binutils/readelf.c",0x3890,"display_arm_attribute");\n    }\n    dVar3 = read_leb128(puVar8,&len,0,end);\n    puVar8 = puVar8 + len;\n    uVar2 = (uint)dVar3;\n    if (uVar2 < (arm_attr_public_tags[uVar4].type & 0x7f)) {\n      puts(arm_attr_public_tags[uVar4].table[dVar3 & 0xffffffff]);\n      return puVar8;\n    }\n    goto LAB_00113282;\n  }" { (if_statement "if (uVar2 == 2) {\n      puVar8 = display_tag_value(L'\0',puVar8,end);\n      return puVar8;\n    }" if (parenthesized_expression "(uVar2 == 2)" ( (binary_expression "uVar2 == 2" identifier == number_literal) )) (compound_statement "{\n      puVar8 = display_tag_value(L'\0',puVar8,end);\n      return puVar8;\n    }" { (expression_statement "puVar8 = display_tag_value(L'\0',puVar8,end);" (assignment_expression "puVar8 = display_tag_value(L'\0',puVar8,end)" identifier = (call_expression "display_tag_value(L'\0',puVar8,end)" identifier (argument_list "(L'\0',puVar8,end)" ( (char_literal "L'\0'" L' escape_sequence ') , identifier , identifier )))) ;) (return_statement "return puVar8;" return identifier ;) })) (if_statement "if ((uVar2 & 0x80) == 0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("attr->type & 0x80","../../binutils/readelf.c",0x3890,"display_arm_attribute");\n    }" if (parenthesized_expression "((uVar2 & 0x80) == 0)" ( (binary_expression "(uVar2 & 0x80) == 0" (parenthesized_expression "(uVar2 & 0x80)" ( (binary_expression "uVar2 & 0x80" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("attr->type & 0x80","../../binutils/readelf.c",0x3890,"display_arm_attribute");\n    }" { comment (expression_statement "__assert_fail("attr->type & 0x80","../../binutils/readelf.c",0x3890,"display_arm_attribute");" (call_expression "__assert_fail("attr->type & 0x80","../../binutils/readelf.c",0x3890,"display_arm_attribute")" identifier (argument_list "("attr->type & 0x80","../../binutils/readelf.c",0x3890,"display_arm_attribute")" ( (string_literal ""attr->type & 0x80"" " string_content ") , (string_literal ""../../binutils/readelf.c"" " string_content ") , number_literal , (string_literal ""display_arm_attribute"" " string_content ") ))) ;) })) (expression_statement "dVar3 = read_leb128(puVar8,&len,0,end);" (assignment_expression "dVar3 = read_leb128(puVar8,&len,0,end)" identifier = (call_expression "read_leb128(puVar8,&len,0,end)" identifier (argument_list "(puVar8,&len,0,end)" ( identifier , (pointer_expression "&len" & identifier) , number_literal , identifier )))) ;) (expression_statement "puVar8 = puVar8 + len;" (assignment_expression "puVar8 = puVar8 + len" identifier = (binary_expression "puVar8 + len" identifier + identifier)) ;) (expression_statement "uVar2 = (uint)dVar3;" (assignment_expression "uVar2 = (uint)dVar3" identifier = (cast_expression "(uint)dVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (uVar2 < (arm_attr_public_tags[uVar4].type & 0x7f)) {\n      puts(arm_attr_public_tags[uVar4].table[dVar3 & 0xffffffff]);\n      return puVar8;\n    }" if (parenthesized_expression "(uVar2 < (arm_attr_public_tags[uVar4].type & 0x7f))" ( (binary_expression "uVar2 < (arm_attr_public_tags[uVar4].type & 0x7f)" identifier < (parenthesized_expression "(arm_attr_public_tags[uVar4].type & 0x7f)" ( (binary_expression "arm_attr_public_tags[uVar4].type & 0x7f" (field_expression "arm_attr_public_tags[uVar4].type" (subscript_expression "arm_attr_public_tags[uVar4]" identifier [ identifier ]) . field_identifier) & number_literal) ))) )) (compound_statement "{\n      puts(arm_attr_public_tags[uVar4].table[dVar3 & 0xffffffff]);\n      return puVar8;\n    }" { (expression_statement "puts(arm_attr_public_tags[uVar4].table[dVar3 & 0xffffffff]);" (call_expression "puts(arm_attr_public_tags[uVar4].table[dVar3 & 0xffffffff])" identifier (argument_list "(arm_attr_public_tags[uVar4].table[dVar3 & 0xffffffff])" ( (subscript_expression "arm_attr_public_tags[uVar4].table[dVar3 & 0xffffffff]" (field_expression "arm_attr_public_tags[uVar4].table" (subscript_expression "arm_attr_public_tags[uVar4]" identifier [ identifier ]) . field_identifier) [ (binary_expression "dVar3 & 0xffffffff" identifier & number_literal) ]) ))) ;) (return_statement "return puVar8;" return identifier ;) })) (goto_statement "goto LAB_00113282;" goto statement_identifier ;) })) (switch_statement "switch(tag) {\n  case L'\a':\n    dVar3 = read_leb128(puVar8,&len,0,end);\n    puVar8 = puVar8 + len;\n    uVar2 = (uint)dVar3;\n    if (uVar2 == 0x4d) {\n      pcVar6 = "Microcontroller\n";\n      goto LAB_001133ad;\n    }\n    if (0x4d < uVar2) {\n      if (uVar2 == 0x52) {\n        pcVar6 = "Realtime\n";\n      }\n      else {\n        pcVar6 = "Application or Realtime\n";\n        if (uVar2 != 0x53) goto LAB_00113282;\n      }\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      pcVar6 = "Application\n";\n      if (uVar2 != 0x41) {\nLAB_00113282:\n        printf("??? (%d)\n",(ulong)uVar2);\n        return puVar8;\n      }\n      goto LAB_001133ad;\n    }\n    break;\n  default:\n    pcVar6 = (char *)dcgettext(0,"<unknown: %d>\n",5);\n    printf(pcVar6,dVar3 & 0xffffffff);\n    return puVar8;\n  case L'\x18':\n    dVar3 = read_leb128(puVar8,&len,0,end);\n    puVar8 = puVar8 + len;\n    uVar2 = (uint)dVar3;\n    if (uVar2 == 1) {\nLAB_001135c3:\n      pcVar6 = "8-byte\n";\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      if (uVar2 != 2) {\nLAB_00113474:\n        if (uVar2 == 3) {\n          puts("??? 3");\n          return puVar8;\n        }\n        if (uVar2 < 0xd) {\n          pcVar6 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);\n          printf(pcVar6,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));\n          return puVar8;\n        }\n        printf("??? (%d)\n",(ulong)uVar2);\n        return puVar8;\n      }\n      pcVar6 = "4-byte\n";\n      goto LAB_001133ad;\n    }\n    break;\n  case L'\x19':\n    dVar3 = read_leb128(puVar8,&len,0,end);\n    uVar2 = (uint)dVar3;\n    puVar8 = puVar8 + len;\n    if (uVar2 == 1) {\n      pcVar6 = "8-byte, except leaf SP\n";\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      if (uVar2 != 2) goto LAB_00113474;\n      goto LAB_001135c3;\n    }\n    break;\n  case L' ':\n    dVar3 = read_leb128(puVar8,&len,0,end);\n    puVar8 = puVar8 + len;\n    pcVar6 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n    printf(pcVar6,dVar3 & 0xffffffff);\n    if (puVar8 < end + -1) {\n      print_symbol((wchar_t)(end + (-1 - (long)puVar8)),(char *)puVar8);\n      sVar5 = strnlen((char *)puVar8,(size_t)(end + (-1 - (long)puVar8)));\n      end = puVar8 + sVar5 + 1;\n    }\n    else {\n      pcVar6 = (char *)dcgettext(0,"<corrupt>",5);\n      printf(pcVar6);\n    }\n    putc(10,stdout);\n    return end;\n  case L'@':\n    pcVar6 = "True\n";\n    puVar8 = puVar8 + (puVar8 < end);\n    goto LAB_001133ad;\n  case L'A':\n    dVar3 = read_leb128(puVar8,&len,0,end);\n    puVar8 = puVar8 + len;\n    if ((int)dVar3 == 6) {\n      dVar3 = read_leb128(puVar8,&len,0,end);\n      puVar8 = puVar8 + len;\n      if ((uint)dVar3 < 0x12) {\n        puts(arm_attr_tag_CPU_arch[dVar3 & 0xffffffff]);\n      }\n      else {\n        printf("??? (%d)\n",dVar3 & 0xffffffff);\n      }\n    }\n    else {\n      puts("???");\n    }\n    if (puVar8 < end) {\n      puVar9 = puVar8 + 1;\n      if (*puVar8 == '\0') {\n        return puVar8 + 1;\n      }\n      do {\n        if (puVar9 == end) {\n          return puVar9;\n        }\n        puVar8 = puVar9 + 1;\n        uVar1 = *puVar9;\n        puVar9 = puVar8;\n      } while (uVar1 != '\0');\n      return puVar8;\n    }\n    return puVar8;\n  }" switch (parenthesized_expression "(tag)" ( identifier )) (compound_statement "{\n  case L'\a':\n    dVar3 = read_leb128(puVar8,&len,0,end);\n    puVar8 = puVar8 + len;\n    uVar2 = (uint)dVar3;\n    if (uVar2 == 0x4d) {\n      pcVar6 = "Microcontroller\n";\n      goto LAB_001133ad;\n    }\n    if (0x4d < uVar2) {\n      if (uVar2 == 0x52) {\n        pcVar6 = "Realtime\n";\n      }\n      else {\n        pcVar6 = "Application or Realtime\n";\n        if (uVar2 != 0x53) goto LAB_00113282;\n      }\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      pcVar6 = "Application\n";\n      if (uVar2 != 0x41) {\nLAB_00113282:\n        printf("??? (%d)\n",(ulong)uVar2);\n        return puVar8;\n      }\n      goto LAB_001133ad;\n    }\n    break;\n  default:\n    pcVar6 = (char *)dcgettext(0,"<unknown: %d>\n",5);\n    printf(pcVar6,dVar3 & 0xffffffff);\n    return puVar8;\n  case L'\x18':\n    dVar3 = read_leb128(puVar8,&len,0,end);\n    puVar8 = puVar8 + len;\n    uVar2 = (uint)dVar3;\n    if (uVar2 == 1) {\nLAB_001135c3:\n      pcVar6 = "8-byte\n";\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      if (uVar2 != 2) {\nLAB_00113474:\n        if (uVar2 == 3) {\n          puts("??? 3");\n          return puVar8;\n        }\n        if (uVar2 < 0xd) {\n          pcVar6 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);\n          printf(pcVar6,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));\n          return puVar8;\n        }\n        printf("??? (%d)\n",(ulong)uVar2);\n        return puVar8;\n      }\n      pcVar6 = "4-byte\n";\n      goto LAB_001133ad;\n    }\n    break;\n  case L'\x19':\n    dVar3 = read_leb128(puVar8,&len,0,end);\n    uVar2 = (uint)dVar3;\n    puVar8 = puVar8 + len;\n    if (uVar2 == 1) {\n      pcVar6 = "8-byte, except leaf SP\n";\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      if (uVar2 != 2) goto LAB_00113474;\n      goto LAB_001135c3;\n    }\n    break;\n  case L' ':\n    dVar3 = read_leb128(puVar8,&len,0,end);\n    puVar8 = puVar8 + len;\n    pcVar6 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n    printf(pcVar6,dVar3 & 0xffffffff);\n    if (puVar8 < end + -1) {\n      print_symbol((wchar_t)(end + (-1 - (long)puVar8)),(char *)puVar8);\n      sVar5 = strnlen((char *)puVar8,(size_t)(end + (-1 - (long)puVar8)));\n      end = puVar8 + sVar5 + 1;\n    }\n    else {\n      pcVar6 = (char *)dcgettext(0,"<corrupt>",5);\n      printf(pcVar6);\n    }\n    putc(10,stdout);\n    return end;\n  case L'@':\n    pcVar6 = "True\n";\n    puVar8 = puVar8 + (puVar8 < end);\n    goto LAB_001133ad;\n  case L'A':\n    dVar3 = read_leb128(puVar8,&len,0,end);\n    puVar8 = puVar8 + len;\n    if ((int)dVar3 == 6) {\n      dVar3 = read_leb128(puVar8,&len,0,end);\n      puVar8 = puVar8 + len;\n      if ((uint)dVar3 < 0x12) {\n        puts(arm_attr_tag_CPU_arch[dVar3 & 0xffffffff]);\n      }\n      else {\n        printf("??? (%d)\n",dVar3 & 0xffffffff);\n      }\n    }\n    else {\n      puts("???");\n    }\n    if (puVar8 < end) {\n      puVar9 = puVar8 + 1;\n      if (*puVar8 == '\0') {\n        return puVar8 + 1;\n      }\n      do {\n        if (puVar9 == end) {\n          return puVar9;\n        }\n        puVar8 = puVar9 + 1;\n        uVar1 = *puVar9;\n        puVar9 = puVar8;\n      } while (uVar1 != '\0');\n      return puVar8;\n    }\n    return puVar8;\n  }" { (case_statement "case L'\a':\n    dVar3 = read_leb128(puVar8,&len,0,end);\n    puVar8 = puVar8 + len;\n    uVar2 = (uint)dVar3;\n    if (uVar2 == 0x4d) {\n      pcVar6 = "Microcontroller\n";\n      goto LAB_001133ad;\n    }\n    if (0x4d < uVar2) {\n      if (uVar2 == 0x52) {\n        pcVar6 = "Realtime\n";\n      }\n      else {\n        pcVar6 = "Application or Realtime\n";\n        if (uVar2 != 0x53) goto LAB_00113282;\n      }\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      pcVar6 = "Application\n";\n      if (uVar2 != 0x41) {\nLAB_00113282:\n        printf("??? (%d)\n",(ulong)uVar2);\n        return puVar8;\n      }\n      goto LAB_001133ad;\n    }\n    break;" case (char_literal "L'\a'" L' escape_sequence ') : (expression_statement "dVar3 = read_leb128(puVar8,&len,0,end);" (assignment_expression "dVar3 = read_leb128(puVar8,&len,0,end)" identifier = (call_expression "read_leb128(puVar8,&len,0,end)" identifier (argument_list "(puVar8,&len,0,end)" ( identifier , (pointer_expression "&len" & identifier) , number_literal , identifier )))) ;) (expression_statement "puVar8 = puVar8 + len;" (assignment_expression "puVar8 = puVar8 + len" identifier = (binary_expression "puVar8 + len" identifier + identifier)) ;) (expression_statement "uVar2 = (uint)dVar3;" (assignment_expression "uVar2 = (uint)dVar3" identifier = (cast_expression "(uint)dVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (uVar2 == 0x4d) {\n      pcVar6 = "Microcontroller\n";\n      goto LAB_001133ad;\n    }" if (parenthesized_expression "(uVar2 == 0x4d)" ( (binary_expression "uVar2 == 0x4d" identifier == number_literal) )) (compound_statement "{\n      pcVar6 = "Microcontroller\n";\n      goto LAB_001133ad;\n    }" { (expression_statement "pcVar6 = "Microcontroller\n";" (assignment_expression "pcVar6 = "Microcontroller\n"" identifier = (string_literal ""Microcontroller\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_001133ad;" goto statement_identifier ;) })) (if_statement "if (0x4d < uVar2) {\n      if (uVar2 == 0x52) {\n        pcVar6 = "Realtime\n";\n      }\n      else {\n        pcVar6 = "Application or Realtime\n";\n        if (uVar2 != 0x53) goto LAB_00113282;\n      }\n      goto LAB_001133ad;\n    }" if (parenthesized_expression "(0x4d < uVar2)" ( (binary_expression "0x4d < uVar2" number_literal < identifier) )) (compound_statement "{\n      if (uVar2 == 0x52) {\n        pcVar6 = "Realtime\n";\n      }\n      else {\n        pcVar6 = "Application or Realtime\n";\n        if (uVar2 != 0x53) goto LAB_00113282;\n      }\n      goto LAB_001133ad;\n    }" { (if_statement "if (uVar2 == 0x52) {\n        pcVar6 = "Realtime\n";\n      }\n      else {\n        pcVar6 = "Application or Realtime\n";\n        if (uVar2 != 0x53) goto LAB_00113282;\n      }" if (parenthesized_expression "(uVar2 == 0x52)" ( (binary_expression "uVar2 == 0x52" identifier == number_literal) )) (compound_statement "{\n        pcVar6 = "Realtime\n";\n      }" { (expression_statement "pcVar6 = "Realtime\n";" (assignment_expression "pcVar6 = "Realtime\n"" identifier = (string_literal ""Realtime\n"" " string_content escape_sequence ")) ;) }) (else_clause "else {\n        pcVar6 = "Application or Realtime\n";\n        if (uVar2 != 0x53) goto LAB_00113282;\n      }" else (compound_statement "{\n        pcVar6 = "Application or Realtime\n";\n        if (uVar2 != 0x53) goto LAB_00113282;\n      }" { (expression_statement "pcVar6 = "Application or Realtime\n";" (assignment_expression "pcVar6 = "Application or Realtime\n"" identifier = (string_literal ""Application or Realtime\n"" " string_content escape_sequence ")) ;) (if_statement "if (uVar2 != 0x53) goto LAB_00113282;" if (parenthesized_expression "(uVar2 != 0x53)" ( (binary_expression "uVar2 != 0x53" identifier != number_literal) )) (goto_statement "goto LAB_00113282;" goto statement_identifier ;)) }))) (goto_statement "goto LAB_001133ad;" goto statement_identifier ;) })) (if_statement "if (uVar2 != 0) {\n      pcVar6 = "Application\n";\n      if (uVar2 != 0x41) {\nLAB_00113282:\n        printf("??? (%d)\n",(ulong)uVar2);\n        return puVar8;\n      }\n      goto LAB_001133ad;\n    }" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      pcVar6 = "Application\n";\n      if (uVar2 != 0x41) {\nLAB_00113282:\n        printf("??? (%d)\n",(ulong)uVar2);\n        return puVar8;\n      }\n      goto LAB_001133ad;\n    }" { (expression_statement "pcVar6 = "Application\n";" (assignment_expression "pcVar6 = "Application\n"" identifier = (string_literal ""Application\n"" " string_content escape_sequence ")) ;) (if_statement "if (uVar2 != 0x41) {\nLAB_00113282:\n        printf("??? (%d)\n",(ulong)uVar2);\n        return puVar8;\n      }" if (parenthesized_expression "(uVar2 != 0x41)" ( (binary_expression "uVar2 != 0x41" identifier != number_literal) )) (compound_statement "{\nLAB_00113282:\n        printf("??? (%d)\n",(ulong)uVar2);\n        return puVar8;\n      }" { (labeled_statement "LAB_00113282:\n        printf("??? (%d)\n",(ulong)uVar2);" statement_identifier : (expression_statement "printf("??? (%d)\n",(ulong)uVar2);" (call_expression "printf("??? (%d)\n",(ulong)uVar2)" identifier (argument_list "("??? (%d)\n",(ulong)uVar2)" ( (string_literal ""??? (%d)\n"" " string_content escape_sequence ") , (cast_expression "(ulong)uVar2" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;)) (return_statement "return puVar8;" return identifier ;) })) (goto_statement "goto LAB_001133ad;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "default:\n    pcVar6 = (char *)dcgettext(0,"<unknown: %d>\n",5);\n    printf(pcVar6,dVar3 & 0xffffffff);\n    return puVar8;" default : (expression_statement "pcVar6 = (char *)dcgettext(0,"<unknown: %d>\n",5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,"<unknown: %d>\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"<unknown: %d>\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"<unknown: %d>\n",5)" identifier (argument_list "(0,"<unknown: %d>\n",5)" ( number_literal , (string_literal ""<unknown: %d>\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar6,dVar3 & 0xffffffff);" (call_expression "printf(pcVar6,dVar3 & 0xffffffff)" identifier (argument_list "(pcVar6,dVar3 & 0xffffffff)" ( identifier , (binary_expression "dVar3 & 0xffffffff" identifier & number_literal) ))) ;) (return_statement "return puVar8;" return identifier ;)) (case_statement "case L'\x18':\n    dVar3 = read_leb128(puVar8,&len,0,end);\n    puVar8 = puVar8 + len;\n    uVar2 = (uint)dVar3;\n    if (uVar2 == 1) {\nLAB_001135c3:\n      pcVar6 = "8-byte\n";\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      if (uVar2 != 2) {\nLAB_00113474:\n        if (uVar2 == 3) {\n          puts("??? 3");\n          return puVar8;\n        }\n        if (uVar2 < 0xd) {\n          pcVar6 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);\n          printf(pcVar6,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));\n          return puVar8;\n        }\n        printf("??? (%d)\n",(ulong)uVar2);\n        return puVar8;\n      }\n      pcVar6 = "4-byte\n";\n      goto LAB_001133ad;\n    }\n    break;" case (char_literal "L'\x18'" L' escape_sequence ') : (expression_statement "dVar3 = read_leb128(puVar8,&len,0,end);" (assignment_expression "dVar3 = read_leb128(puVar8,&len,0,end)" identifier = (call_expression "read_leb128(puVar8,&len,0,end)" identifier (argument_list "(puVar8,&len,0,end)" ( identifier , (pointer_expression "&len" & identifier) , number_literal , identifier )))) ;) (expression_statement "puVar8 = puVar8 + len;" (assignment_expression "puVar8 = puVar8 + len" identifier = (binary_expression "puVar8 + len" identifier + identifier)) ;) (expression_statement "uVar2 = (uint)dVar3;" (assignment_expression "uVar2 = (uint)dVar3" identifier = (cast_expression "(uint)dVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (uVar2 == 1) {\nLAB_001135c3:\n      pcVar6 = "8-byte\n";\n      goto LAB_001133ad;\n    }" if (parenthesized_expression "(uVar2 == 1)" ( (binary_expression "uVar2 == 1" identifier == number_literal) )) (compound_statement "{\nLAB_001135c3:\n      pcVar6 = "8-byte\n";\n      goto LAB_001133ad;\n    }" { (labeled_statement "LAB_001135c3:\n      pcVar6 = "8-byte\n";" statement_identifier : (expression_statement "pcVar6 = "8-byte\n";" (assignment_expression "pcVar6 = "8-byte\n"" identifier = (string_literal ""8-byte\n"" " string_content escape_sequence ")) ;)) (goto_statement "goto LAB_001133ad;" goto statement_identifier ;) })) (if_statement "if (uVar2 != 0) {\n      if (uVar2 != 2) {\nLAB_00113474:\n        if (uVar2 == 3) {\n          puts("??? 3");\n          return puVar8;\n        }\n        if (uVar2 < 0xd) {\n          pcVar6 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);\n          printf(pcVar6,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));\n          return puVar8;\n        }\n        printf("??? (%d)\n",(ulong)uVar2);\n        return puVar8;\n      }\n      pcVar6 = "4-byte\n";\n      goto LAB_001133ad;\n    }" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      if (uVar2 != 2) {\nLAB_00113474:\n        if (uVar2 == 3) {\n          puts("??? 3");\n          return puVar8;\n        }\n        if (uVar2 < 0xd) {\n          pcVar6 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);\n          printf(pcVar6,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));\n          return puVar8;\n        }\n        printf("??? (%d)\n",(ulong)uVar2);\n        return puVar8;\n      }\n      pcVar6 = "4-byte\n";\n      goto LAB_001133ad;\n    }" { (if_statement "if (uVar2 != 2) {\nLAB_00113474:\n        if (uVar2 == 3) {\n          puts("??? 3");\n          return puVar8;\n        }\n        if (uVar2 < 0xd) {\n          pcVar6 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);\n          printf(pcVar6,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));\n          return puVar8;\n        }\n        printf("??? (%d)\n",(ulong)uVar2);\n        return puVar8;\n      }" if (parenthesized_expression "(uVar2 != 2)" ( (binary_expression "uVar2 != 2" identifier != number_literal) )) (compound_statement "{\nLAB_00113474:\n        if (uVar2 == 3) {\n          puts("??? 3");\n          return puVar8;\n        }\n        if (uVar2 < 0xd) {\n          pcVar6 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);\n          printf(pcVar6,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));\n          return puVar8;\n        }\n        printf("??? (%d)\n",(ulong)uVar2);\n        return puVar8;\n      }" { (labeled_statement "LAB_00113474:\n        if (uVar2 == 3) {\n          puts("??? 3");\n          return puVar8;\n        }" statement_identifier : (if_statement "if (uVar2 == 3) {\n          puts("??? 3");\n          return puVar8;\n        }" if (parenthesized_expression "(uVar2 == 3)" ( (binary_expression "uVar2 == 3" identifier == number_literal) )) (compound_statement "{\n          puts("??? 3");\n          return puVar8;\n        }" { (expression_statement "puts("??? 3");" (call_expression "puts("??? 3")" identifier (argument_list "("??? 3")" ( (string_literal ""??? 3"" " string_content ") ))) ;) (return_statement "return puVar8;" return identifier ;) }))) (if_statement "if (uVar2 < 0xd) {\n          pcVar6 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);\n          printf(pcVar6,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));\n          return puVar8;\n        }" if (parenthesized_expression "(uVar2 < 0xd)" ( (binary_expression "uVar2 < 0xd" identifier < number_literal) )) (compound_statement "{\n          pcVar6 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);\n          printf(pcVar6,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));\n          return puVar8;\n        }" { (expression_statement "pcVar6 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"8-byte and up to %d-byte extended\n",5)" identifier (argument_list "(0,"8-byte and up to %d-byte extended\n",5)" ( number_literal , (string_literal ""8-byte and up to %d-byte extended\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar6,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));" (call_expression "printf(pcVar6,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)))" identifier (argument_list "(pcVar6,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)))" ( identifier , (call_expression "(ulong)(uint)(1 << ((byte)uVar2 & 0x1f))" (call_expression "(ulong)(uint)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uint)" ( identifier ))) (argument_list "(1 << ((byte)uVar2 & 0x1f))" ( (binary_expression "1 << ((byte)uVar2 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar2 & 0x1f)" ( (binary_expression "(byte)uVar2 & 0x1f" (cast_expression "(byte)uVar2" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) ))) ;) (return_statement "return puVar8;" return identifier ;) })) (expression_statement "printf("??? (%d)\n",(ulong)uVar2);" (call_expression "printf("??? (%d)\n",(ulong)uVar2)" identifier (argument_list "("??? (%d)\n",(ulong)uVar2)" ( (string_literal ""??? (%d)\n"" " string_content escape_sequence ") , (cast_expression "(ulong)uVar2" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) (return_statement "return puVar8;" return identifier ;) })) (expression_statement "pcVar6 = "4-byte\n";" (assignment_expression "pcVar6 = "4-byte\n"" identifier = (string_literal ""4-byte\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_001133ad;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case L'\x19':\n    dVar3 = read_leb128(puVar8,&len,0,end);\n    uVar2 = (uint)dVar3;\n    puVar8 = puVar8 + len;\n    if (uVar2 == 1) {\n      pcVar6 = "8-byte, except leaf SP\n";\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      if (uVar2 != 2) goto LAB_00113474;\n      goto LAB_001135c3;\n    }\n    break;" case (char_literal "L'\x19'" L' escape_sequence ') : (expression_statement "dVar3 = read_leb128(puVar8,&len,0,end);" (assignment_expression "dVar3 = read_leb128(puVar8,&len,0,end)" identifier = (call_expression "read_leb128(puVar8,&len,0,end)" identifier (argument_list "(puVar8,&len,0,end)" ( identifier , (pointer_expression "&len" & identifier) , number_literal , identifier )))) ;) (expression_statement "uVar2 = (uint)dVar3;" (assignment_expression "uVar2 = (uint)dVar3" identifier = (cast_expression "(uint)dVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar8 = puVar8 + len;" (assignment_expression "puVar8 = puVar8 + len" identifier = (binary_expression "puVar8 + len" identifier + identifier)) ;) (if_statement "if (uVar2 == 1) {\n      pcVar6 = "8-byte, except leaf SP\n";\n      goto LAB_001133ad;\n    }" if (parenthesized_expression "(uVar2 == 1)" ( (binary_expression "uVar2 == 1" identifier == number_literal) )) (compound_statement "{\n      pcVar6 = "8-byte, except leaf SP\n";\n      goto LAB_001133ad;\n    }" { (expression_statement "pcVar6 = "8-byte, except leaf SP\n";" (assignment_expression "pcVar6 = "8-byte, except leaf SP\n"" identifier = (string_literal ""8-byte, except leaf SP\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_001133ad;" goto statement_identifier ;) })) (if_statement "if (uVar2 != 0) {\n      if (uVar2 != 2) goto LAB_00113474;\n      goto LAB_001135c3;\n    }" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      if (uVar2 != 2) goto LAB_00113474;\n      goto LAB_001135c3;\n    }" { (if_statement "if (uVar2 != 2) goto LAB_00113474;" if (parenthesized_expression "(uVar2 != 2)" ( (binary_expression "uVar2 != 2" identifier != number_literal) )) (goto_statement "goto LAB_00113474;" goto statement_identifier ;)) (goto_statement "goto LAB_001135c3;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case L' ':\n    dVar3 = read_leb128(puVar8,&len,0,end);\n    puVar8 = puVar8 + len;\n    pcVar6 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n    printf(pcVar6,dVar3 & 0xffffffff);\n    if (puVar8 < end + -1) {\n      print_symbol((wchar_t)(end + (-1 - (long)puVar8)),(char *)puVar8);\n      sVar5 = strnlen((char *)puVar8,(size_t)(end + (-1 - (long)puVar8)));\n      end = puVar8 + sVar5 + 1;\n    }\n    else {\n      pcVar6 = (char *)dcgettext(0,"<corrupt>",5);\n      printf(pcVar6);\n    }\n    putc(10,stdout);\n    return end;" case (char_literal "L' '" L' character ') : (expression_statement "dVar3 = read_leb128(puVar8,&len,0,end);" (assignment_expression "dVar3 = read_leb128(puVar8,&len,0,end)" identifier = (call_expression "read_leb128(puVar8,&len,0,end)" identifier (argument_list "(puVar8,&len,0,end)" ( identifier , (pointer_expression "&len" & identifier) , number_literal , identifier )))) ;) (expression_statement "puVar8 = puVar8 + len;" (assignment_expression "puVar8 = puVar8 + len" identifier = (binary_expression "puVar8 + len" identifier + identifier)) ;) (expression_statement "pcVar6 = (char *)dcgettext(0,"flag = %d, vendor = ",5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,"flag = %d, vendor = ",5)" identifier = (cast_expression "(char *)dcgettext(0,"flag = %d, vendor = ",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"flag = %d, vendor = ",5)" identifier (argument_list "(0,"flag = %d, vendor = ",5)" ( number_literal , (string_literal ""flag = %d, vendor = "" " string_content ") , number_literal ))))) ;) (expression_statement "printf(pcVar6,dVar3 & 0xffffffff);" (call_expression "printf(pcVar6,dVar3 & 0xffffffff)" identifier (argument_list "(pcVar6,dVar3 & 0xffffffff)" ( identifier , (binary_expression "dVar3 & 0xffffffff" identifier & number_literal) ))) ;) (if_statement "if (puVar8 < end + -1) {\n      print_symbol((wchar_t)(end + (-1 - (long)puVar8)),(char *)puVar8);\n      sVar5 = strnlen((char *)puVar8,(size_t)(end + (-1 - (long)puVar8)));\n      end = puVar8 + sVar5 + 1;\n    }\n    else {\n      pcVar6 = (char *)dcgettext(0,"<corrupt>",5);\n      printf(pcVar6);\n    }" if (parenthesized_expression "(puVar8 < end + -1)" ( (binary_expression "puVar8 < end + -1" identifier < (binary_expression "end + -1" identifier + number_literal)) )) (compound_statement "{\n      print_symbol((wchar_t)(end + (-1 - (long)puVar8)),(char *)puVar8);\n      sVar5 = strnlen((char *)puVar8,(size_t)(end + (-1 - (long)puVar8)));\n      end = puVar8 + sVar5 + 1;\n    }" { (expression_statement "print_symbol((wchar_t)(end + (-1 - (long)puVar8)),(char *)puVar8);" (call_expression "print_symbol((wchar_t)(end + (-1 - (long)puVar8)),(char *)puVar8)" identifier (argument_list "((wchar_t)(end + (-1 - (long)puVar8)),(char *)puVar8)" ( (call_expression "(wchar_t)(end + (-1 - (long)puVar8))" (parenthesized_expression "(wchar_t)" ( identifier )) (argument_list "(end + (-1 - (long)puVar8))" ( (binary_expression "end + (-1 - (long)puVar8)" identifier + (parenthesized_expression "(-1 - (long)puVar8)" ( (binary_expression "-1 - (long)puVar8" number_literal - (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) ))) , (cast_expression "(char *)puVar8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "sVar5 = strnlen((char *)puVar8,(size_t)(end + (-1 - (long)puVar8)));" (assignment_expression "sVar5 = strnlen((char *)puVar8,(size_t)(end + (-1 - (long)puVar8)))" identifier = (call_expression "strnlen((char *)puVar8,(size_t)(end + (-1 - (long)puVar8)))" identifier (argument_list "((char *)puVar8,(size_t)(end + (-1 - (long)puVar8)))" ( (cast_expression "(char *)puVar8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(size_t)(end + (-1 - (long)puVar8))" ( (type_descriptor "size_t" primitive_type) ) (parenthesized_expression "(end + (-1 - (long)puVar8))" ( (binary_expression "end + (-1 - (long)puVar8)" identifier + (parenthesized_expression "(-1 - (long)puVar8)" ( (binary_expression "-1 - (long)puVar8" number_literal - (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) ))) )))) ;) (expression_statement "end = puVar8 + sVar5 + 1;" (assignment_expression "end = puVar8 + sVar5 + 1" identifier = (binary_expression "puVar8 + sVar5 + 1" (binary_expression "puVar8 + sVar5" identifier + identifier) + number_literal)) ;) }) (else_clause "else {\n      pcVar6 = (char *)dcgettext(0,"<corrupt>",5);\n      printf(pcVar6);\n    }" else (compound_statement "{\n      pcVar6 = (char *)dcgettext(0,"<corrupt>",5);\n      printf(pcVar6);\n    }" { (expression_statement "pcVar6 = (char *)dcgettext(0,"<corrupt>",5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,"<corrupt>",5)" identifier = (cast_expression "(char *)dcgettext(0,"<corrupt>",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"<corrupt>",5)" identifier (argument_list "(0,"<corrupt>",5)" ( number_literal , (string_literal ""<corrupt>"" " string_content ") , number_literal ))))) ;) (expression_statement "printf(pcVar6);" (call_expression "printf(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) }))) (expression_statement "putc(10,stdout);" (call_expression "putc(10,stdout)" identifier (argument_list "(10,stdout)" ( number_literal , identifier ))) ;) (return_statement "return end;" return identifier ;)) (case_statement "case L'@':\n    pcVar6 = "True\n";\n    puVar8 = puVar8 + (puVar8 < end);\n    goto LAB_001133ad;" case (char_literal "L'@'" L' character ') : (expression_statement "pcVar6 = "True\n";" (assignment_expression "pcVar6 = "True\n"" identifier = (string_literal ""True\n"" " string_content escape_sequence ")) ;) (expression_statement "puVar8 = puVar8 + (puVar8 < end);" (assignment_expression "puVar8 = puVar8 + (puVar8 < end)" identifier = (binary_expression "puVar8 + (puVar8 < end)" identifier + (parenthesized_expression "(puVar8 < end)" ( (binary_expression "puVar8 < end" identifier < identifier) )))) ;) (goto_statement "goto LAB_001133ad;" goto statement_identifier ;)) (case_statement "case L'A':\n    dVar3 = read_leb128(puVar8,&len,0,end);\n    puVar8 = puVar8 + len;\n    if ((int)dVar3 == 6) {\n      dVar3 = read_leb128(puVar8,&len,0,end);\n      puVar8 = puVar8 + len;\n      if ((uint)dVar3 < 0x12) {\n        puts(arm_attr_tag_CPU_arch[dVar3 & 0xffffffff]);\n      }\n      else {\n        printf("??? (%d)\n",dVar3 & 0xffffffff);\n      }\n    }\n    else {\n      puts("???");\n    }\n    if (puVar8 < end) {\n      puVar9 = puVar8 + 1;\n      if (*puVar8 == '\0') {\n        return puVar8 + 1;\n      }\n      do {\n        if (puVar9 == end) {\n          return puVar9;\n        }\n        puVar8 = puVar9 + 1;\n        uVar1 = *puVar9;\n        puVar9 = puVar8;\n      } while (uVar1 != '\0');\n      return puVar8;\n    }\n    return puVar8;" case (char_literal "L'A'" L' character ') : (expression_statement "dVar3 = read_leb128(puVar8,&len,0,end);" (assignment_expression "dVar3 = read_leb128(puVar8,&len,0,end)" identifier = (call_expression "read_leb128(puVar8,&len,0,end)" identifier (argument_list "(puVar8,&len,0,end)" ( identifier , (pointer_expression "&len" & identifier) , number_literal , identifier )))) ;) (expression_statement "puVar8 = puVar8 + len;" (assignment_expression "puVar8 = puVar8 + len" identifier = (binary_expression "puVar8 + len" identifier + identifier)) ;) (if_statement "if ((int)dVar3 == 6) {\n      dVar3 = read_leb128(puVar8,&len,0,end);\n      puVar8 = puVar8 + len;\n      if ((uint)dVar3 < 0x12) {\n        puts(arm_attr_tag_CPU_arch[dVar3 & 0xffffffff]);\n      }\n      else {\n        printf("??? (%d)\n",dVar3 & 0xffffffff);\n      }\n    }\n    else {\n      puts("???");\n    }" if (parenthesized_expression "((int)dVar3 == 6)" ( (binary_expression "(int)dVar3 == 6" (cast_expression "(int)dVar3" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (compound_statement "{\n      dVar3 = read_leb128(puVar8,&len,0,end);\n      puVar8 = puVar8 + len;\n      if ((uint)dVar3 < 0x12) {\n        puts(arm_attr_tag_CPU_arch[dVar3 & 0xffffffff]);\n      }\n      else {\n        printf("??? (%d)\n",dVar3 & 0xffffffff);\n      }\n    }" { (expression_statement "dVar3 = read_leb128(puVar8,&len,0,end);" (assignment_expression "dVar3 = read_leb128(puVar8,&len,0,end)" identifier = (call_expression "read_leb128(puVar8,&len,0,end)" identifier (argument_list "(puVar8,&len,0,end)" ( identifier , (pointer_expression "&len" & identifier) , number_literal , identifier )))) ;) (expression_statement "puVar8 = puVar8 + len;" (assignment_expression "puVar8 = puVar8 + len" identifier = (binary_expression "puVar8 + len" identifier + identifier)) ;) (if_statement "if ((uint)dVar3 < 0x12) {\n        puts(arm_attr_tag_CPU_arch[dVar3 & 0xffffffff]);\n      }\n      else {\n        printf("??? (%d)\n",dVar3 & 0xffffffff);\n      }" if (parenthesized_expression "((uint)dVar3 < 0x12)" ( (binary_expression "(uint)dVar3 < 0x12" (cast_expression "(uint)dVar3" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n        puts(arm_attr_tag_CPU_arch[dVar3 & 0xffffffff]);\n      }" { (expression_statement "puts(arm_attr_tag_CPU_arch[dVar3 & 0xffffffff]);" (call_expression "puts(arm_attr_tag_CPU_arch[dVar3 & 0xffffffff])" identifier (argument_list "(arm_attr_tag_CPU_arch[dVar3 & 0xffffffff])" ( (subscript_expression "arm_attr_tag_CPU_arch[dVar3 & 0xffffffff]" identifier [ (binary_expression "dVar3 & 0xffffffff" identifier & number_literal) ]) ))) ;) }) (else_clause "else {\n        printf("??? (%d)\n",dVar3 & 0xffffffff);\n      }" else (compound_statement "{\n        printf("??? (%d)\n",dVar3 & 0xffffffff);\n      }" { (expression_statement "printf("??? (%d)\n",dVar3 & 0xffffffff);" (call_expression "printf("??? (%d)\n",dVar3 & 0xffffffff)" identifier (argument_list "("??? (%d)\n",dVar3 & 0xffffffff)" ( (string_literal ""??? (%d)\n"" " string_content escape_sequence ") , (binary_expression "dVar3 & 0xffffffff" identifier & number_literal) ))) ;) }))) }) (else_clause "else {\n      puts("???");\n    }" else (compound_statement "{\n      puts("???");\n    }" { (expression_statement "puts("???");" (call_expression "puts("???")" identifier (argument_list "("???")" ( (string_literal ""???"" " string_content ") ))) ;) }))) (if_statement "if (puVar8 < end) {\n      puVar9 = puVar8 + 1;\n      if (*puVar8 == '\0') {\n        return puVar8 + 1;\n      }\n      do {\n        if (puVar9 == end) {\n          return puVar9;\n        }\n        puVar8 = puVar9 + 1;\n        uVar1 = *puVar9;\n        puVar9 = puVar8;\n      } while (uVar1 != '\0');\n      return puVar8;\n    }" if (parenthesized_expression "(puVar8 < end)" ( (binary_expression "puVar8 < end" identifier < identifier) )) (compound_statement "{\n      puVar9 = puVar8 + 1;\n      if (*puVar8 == '\0') {\n        return puVar8 + 1;\n      }\n      do {\n        if (puVar9 == end) {\n          return puVar9;\n        }\n        puVar8 = puVar9 + 1;\n        uVar1 = *puVar9;\n        puVar9 = puVar8;\n      } while (uVar1 != '\0');\n      return puVar8;\n    }" { (expression_statement "puVar9 = puVar8 + 1;" (assignment_expression "puVar9 = puVar8 + 1" identifier = (binary_expression "puVar8 + 1" identifier + number_literal)) ;) (if_statement "if (*puVar8 == '\0') {\n        return puVar8 + 1;\n      }" if (parenthesized_expression "(*puVar8 == '\0')" ( (binary_expression "*puVar8 == '\0'" (pointer_expression "*puVar8" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        return puVar8 + 1;\n      }" { (return_statement "return puVar8 + 1;" return (binary_expression "puVar8 + 1" identifier + number_literal) ;) })) (do_statement "do {\n        if (puVar9 == end) {\n          return puVar9;\n        }\n        puVar8 = puVar9 + 1;\n        uVar1 = *puVar9;\n        puVar9 = puVar8;\n      } while (uVar1 != '\0');" do (compound_statement "{\n        if (puVar9 == end) {\n          return puVar9;\n        }\n        puVar8 = puVar9 + 1;\n        uVar1 = *puVar9;\n        puVar9 = puVar8;\n      }" { (if_statement "if (puVar9 == end) {\n          return puVar9;\n        }" if (parenthesized_expression "(puVar9 == end)" ( (binary_expression "puVar9 == end" identifier == identifier) )) (compound_statement "{\n          return puVar9;\n        }" { (return_statement "return puVar9;" return identifier ;) })) (expression_statement "puVar8 = puVar9 + 1;" (assignment_expression "puVar8 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (expression_statement "uVar1 = *puVar9;" (assignment_expression "uVar1 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "puVar9 = puVar8;" (assignment_expression "puVar9 = puVar8" identifier = identifier) ;) }) while (parenthesized_expression "(uVar1 != '\0')" ( (binary_expression "uVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (return_statement "return puVar8;" return identifier ;) })) (return_statement "return puVar8;" return identifier ;)) })) (expression_statement "pcVar6 = "None\n";" (assignment_expression "pcVar6 = "None\n"" identifier = (string_literal ""None\n"" " string_content escape_sequence ")) ;) (labeled_statement "LAB_001133ad:\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 puVar8;" return identifier ;) })))
(translation_unit "char * FUN_001131d0(long param_1,char *param_2)\n\n{\n  char cVar1;\n  uint uVar2;\n  uint uVar3;\n  int iVar4;\n  ulong uVar5;\n  size_t sVar6;\n  char *pcVar7;\n  uint *puVar8;\n  char *pcVar9;\n  uint local_2c;\n  \n  uVar2 = FUN_0013fb20(param_1,&local_2c,0,param_2);\n  puVar8 = &DAT_00190240;\n  pcVar9 = (char *)(param_1 + (ulong)local_2c);\n  uVar5 = 0;\n  while (*puVar8 != uVar2) {\n    uVar3 = (int)uVar5 + 1;\n    uVar5 = (ulong)uVar3;\n    puVar8 = puVar8 + 8;\n    if (uVar3 == 0x29) {\n      pcVar9 = (char *)FUN_001124d0(uVar2,pcVar9,param_2);\n      return pcVar9;\n    }\n  }\n  printf("  Tag_%s: ",(&PTR_s_CPU_raw_name_00190248)[uVar5 * 4]);\n  uVar3 = (&DAT_00190250)[uVar5 * 8];\n  if (uVar3 == 1) {\n    pcVar9 = (char *)FUN_001124d0(0xffffffff,pcVar9,param_2);\n    return pcVar9;\n  }\n  if (uVar3 != 0) {\n    if (uVar3 == 2) {\n      pcVar9 = (char *)FUN_001124d0(0,pcVar9,param_2);\n      return pcVar9;\n    }\n    if ((uVar3 & 0x80) == 0) {\n                    \n      __assert_fail("attr->type & 0x80","../../binutils/readelf.c",0x3890,"display_arm_attribute");\n    }\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 < ((&DAT_00190250)[uVar5 * 8] & 0x7f)) {\n      puts(*(char **)((&DAT_00190258)[uVar5 * 4] + (ulong)uVar2 * 8));\n      return pcVar9;\n    }\n    goto LAB_00113282;\n  }\n  switch(uVar2) {\n  case 7:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 0x4d) {\n      pcVar7 = "Microcontroller\n";\n      goto LAB_001133ad;\n    }\n    if (0x4d < uVar2) {\n      if (uVar2 == 0x52) {\n        pcVar7 = "Realtime\n";\n      }\n      else {\n        pcVar7 = "Application or Realtime\n";\n        if (uVar2 != 0x53) goto LAB_00113282;\n      }\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      pcVar7 = "Application\n";\n      if (uVar2 != 0x41) {\nLAB_00113282:\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }\n      goto LAB_001133ad;\n    }\n    break;\n  default:\n    pcVar7 = (char *)dcgettext(0,"<unknown: %d>\n",5);\n    printf(pcVar7,(ulong)uVar2);\n    return pcVar9;\n  case 0x18:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 1) {\nLAB_001135c3:\n      pcVar7 = "8-byte\n";\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      if (uVar2 != 2) {\nLAB_00113474:\n        if (uVar2 == 3) {\n          puts("??? 3");\n          return pcVar9;\n        }\n        if (uVar2 < 0xd) {\n          pcVar7 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);\n          printf(pcVar7,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));\n          return pcVar9;\n        }\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }\n      pcVar7 = "4-byte\n";\n      goto LAB_001133ad;\n    }\n    break;\n  case 0x19:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 1) {\n      pcVar7 = "8-byte, except leaf SP\n";\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      if (uVar2 != 2) goto LAB_00113474;\n      goto LAB_001135c3;\n    }\n    break;\n  case 0x20:\n    uVar5 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    pcVar7 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n    printf(pcVar7,uVar5 & 0xffffffff);\n    if (pcVar9 < param_2 + -1) {\n      FUN_001122a0((ulong)(param_2 + (-1 - (long)pcVar9)) & 0xffffffff,pcVar9);\n      sVar6 = strnlen(pcVar9,(size_t)(param_2 + (-1 - (long)pcVar9)));\n      param_2 = pcVar9 + sVar6 + 1;\n    }\n    else {\n      pcVar9 = (char *)dcgettext(0,"<corrupt>",5);\n      printf(pcVar9);\n    }\n    putc(10,stdout);\n    return param_2;\n  case 0x40:\n    pcVar7 = "True\n";\n    pcVar9 = pcVar9 + (pcVar9 < param_2);\n    goto LAB_001133ad;\n  case 0x41:\n    iVar4 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (iVar4 == 6) {\n      uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n      pcVar9 = pcVar9 + local_2c;\n      if (uVar2 < 0x12) {\n        puts((&PTR_DAT_00190bc0)[uVar2]);\n      }\n      else {\n        printf("??? (%d)\n",(ulong)uVar2);\n      }\n    }\n    else {\n      puts("???");\n    }\n    if (pcVar9 < param_2) {\n      pcVar7 = pcVar9 + 1;\n      if (*pcVar9 == '\0') {\n        return pcVar9 + 1;\n      }\n      do {\n        if (pcVar7 == param_2) {\n          return pcVar7;\n        }\n        pcVar9 = pcVar7 + 1;\n        cVar1 = *pcVar7;\n        pcVar7 = pcVar9;\n      } while (cVar1 != '\0');\n      return pcVar9;\n    }\n    return pcVar9;\n  }\n  pcVar7 = "None\n";\nLAB_001133ad:\n  pcVar7 = (char *)dcgettext(0,pcVar7,5);\n  printf(pcVar7);\n  return pcVar9;\n}\n\n" (function_definition "char * FUN_001131d0(long param_1,char *param_2)\n\n{\n  char cVar1;\n  uint uVar2;\n  uint uVar3;\n  int iVar4;\n  ulong uVar5;\n  size_t sVar6;\n  char *pcVar7;\n  uint *puVar8;\n  char *pcVar9;\n  uint local_2c;\n  \n  uVar2 = FUN_0013fb20(param_1,&local_2c,0,param_2);\n  puVar8 = &DAT_00190240;\n  pcVar9 = (char *)(param_1 + (ulong)local_2c);\n  uVar5 = 0;\n  while (*puVar8 != uVar2) {\n    uVar3 = (int)uVar5 + 1;\n    uVar5 = (ulong)uVar3;\n    puVar8 = puVar8 + 8;\n    if (uVar3 == 0x29) {\n      pcVar9 = (char *)FUN_001124d0(uVar2,pcVar9,param_2);\n      return pcVar9;\n    }\n  }\n  printf("  Tag_%s: ",(&PTR_s_CPU_raw_name_00190248)[uVar5 * 4]);\n  uVar3 = (&DAT_00190250)[uVar5 * 8];\n  if (uVar3 == 1) {\n    pcVar9 = (char *)FUN_001124d0(0xffffffff,pcVar9,param_2);\n    return pcVar9;\n  }\n  if (uVar3 != 0) {\n    if (uVar3 == 2) {\n      pcVar9 = (char *)FUN_001124d0(0,pcVar9,param_2);\n      return pcVar9;\n    }\n    if ((uVar3 & 0x80) == 0) {\n                    \n      __assert_fail("attr->type & 0x80","../../binutils/readelf.c",0x3890,"display_arm_attribute");\n    }\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 < ((&DAT_00190250)[uVar5 * 8] & 0x7f)) {\n      puts(*(char **)((&DAT_00190258)[uVar5 * 4] + (ulong)uVar2 * 8));\n      return pcVar9;\n    }\n    goto LAB_00113282;\n  }\n  switch(uVar2) {\n  case 7:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 0x4d) {\n      pcVar7 = "Microcontroller\n";\n      goto LAB_001133ad;\n    }\n    if (0x4d < uVar2) {\n      if (uVar2 == 0x52) {\n        pcVar7 = "Realtime\n";\n      }\n      else {\n        pcVar7 = "Application or Realtime\n";\n        if (uVar2 != 0x53) goto LAB_00113282;\n      }\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      pcVar7 = "Application\n";\n      if (uVar2 != 0x41) {\nLAB_00113282:\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }\n      goto LAB_001133ad;\n    }\n    break;\n  default:\n    pcVar7 = (char *)dcgettext(0,"<unknown: %d>\n",5);\n    printf(pcVar7,(ulong)uVar2);\n    return pcVar9;\n  case 0x18:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 1) {\nLAB_001135c3:\n      pcVar7 = "8-byte\n";\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      if (uVar2 != 2) {\nLAB_00113474:\n        if (uVar2 == 3) {\n          puts("??? 3");\n          return pcVar9;\n        }\n        if (uVar2 < 0xd) {\n          pcVar7 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);\n          printf(pcVar7,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));\n          return pcVar9;\n        }\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }\n      pcVar7 = "4-byte\n";\n      goto LAB_001133ad;\n    }\n    break;\n  case 0x19:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 1) {\n      pcVar7 = "8-byte, except leaf SP\n";\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      if (uVar2 != 2) goto LAB_00113474;\n      goto LAB_001135c3;\n    }\n    break;\n  case 0x20:\n    uVar5 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    pcVar7 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n    printf(pcVar7,uVar5 & 0xffffffff);\n    if (pcVar9 < param_2 + -1) {\n      FUN_001122a0((ulong)(param_2 + (-1 - (long)pcVar9)) & 0xffffffff,pcVar9);\n      sVar6 = strnlen(pcVar9,(size_t)(param_2 + (-1 - (long)pcVar9)));\n      param_2 = pcVar9 + sVar6 + 1;\n    }\n    else {\n      pcVar9 = (char *)dcgettext(0,"<corrupt>",5);\n      printf(pcVar9);\n    }\n    putc(10,stdout);\n    return param_2;\n  case 0x40:\n    pcVar7 = "True\n";\n    pcVar9 = pcVar9 + (pcVar9 < param_2);\n    goto LAB_001133ad;\n  case 0x41:\n    iVar4 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (iVar4 == 6) {\n      uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n      pcVar9 = pcVar9 + local_2c;\n      if (uVar2 < 0x12) {\n        puts((&PTR_DAT_00190bc0)[uVar2]);\n      }\n      else {\n        printf("??? (%d)\n",(ulong)uVar2);\n      }\n    }\n    else {\n      puts("???");\n    }\n    if (pcVar9 < param_2) {\n      pcVar7 = pcVar9 + 1;\n      if (*pcVar9 == '\0') {\n        return pcVar9 + 1;\n      }\n      do {\n        if (pcVar7 == param_2) {\n          return pcVar7;\n        }\n        pcVar9 = pcVar7 + 1;\n        cVar1 = *pcVar7;\n        pcVar7 = pcVar9;\n      } while (cVar1 != '\0');\n      return pcVar9;\n    }\n    return pcVar9;\n  }\n  pcVar7 = "None\n";\nLAB_001133ad:\n  pcVar7 = (char *)dcgettext(0,pcVar7,5);\n  printf(pcVar7);\n  return pcVar9;\n}" primitive_type (pointer_declarator "* FUN_001131d0(long param_1,char *param_2)" * (function_declarator "FUN_001131d0(long param_1,char *param_2)" identifier (parameter_list "(long param_1,char *param_2)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) )))) (compound_statement "{\n  char cVar1;\n  uint uVar2;\n  uint uVar3;\n  int iVar4;\n  ulong uVar5;\n  size_t sVar6;\n  char *pcVar7;\n  uint *puVar8;\n  char *pcVar9;\n  uint local_2c;\n  \n  uVar2 = FUN_0013fb20(param_1,&local_2c,0,param_2);\n  puVar8 = &DAT_00190240;\n  pcVar9 = (char *)(param_1 + (ulong)local_2c);\n  uVar5 = 0;\n  while (*puVar8 != uVar2) {\n    uVar3 = (int)uVar5 + 1;\n    uVar5 = (ulong)uVar3;\n    puVar8 = puVar8 + 8;\n    if (uVar3 == 0x29) {\n      pcVar9 = (char *)FUN_001124d0(uVar2,pcVar9,param_2);\n      return pcVar9;\n    }\n  }\n  printf("  Tag_%s: ",(&PTR_s_CPU_raw_name_00190248)[uVar5 * 4]);\n  uVar3 = (&DAT_00190250)[uVar5 * 8];\n  if (uVar3 == 1) {\n    pcVar9 = (char *)FUN_001124d0(0xffffffff,pcVar9,param_2);\n    return pcVar9;\n  }\n  if (uVar3 != 0) {\n    if (uVar3 == 2) {\n      pcVar9 = (char *)FUN_001124d0(0,pcVar9,param_2);\n      return pcVar9;\n    }\n    if ((uVar3 & 0x80) == 0) {\n                    \n      __assert_fail("attr->type & 0x80","../../binutils/readelf.c",0x3890,"display_arm_attribute");\n    }\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 < ((&DAT_00190250)[uVar5 * 8] & 0x7f)) {\n      puts(*(char **)((&DAT_00190258)[uVar5 * 4] + (ulong)uVar2 * 8));\n      return pcVar9;\n    }\n    goto LAB_00113282;\n  }\n  switch(uVar2) {\n  case 7:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 0x4d) {\n      pcVar7 = "Microcontroller\n";\n      goto LAB_001133ad;\n    }\n    if (0x4d < uVar2) {\n      if (uVar2 == 0x52) {\n        pcVar7 = "Realtime\n";\n      }\n      else {\n        pcVar7 = "Application or Realtime\n";\n        if (uVar2 != 0x53) goto LAB_00113282;\n      }\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      pcVar7 = "Application\n";\n      if (uVar2 != 0x41) {\nLAB_00113282:\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }\n      goto LAB_001133ad;\n    }\n    break;\n  default:\n    pcVar7 = (char *)dcgettext(0,"<unknown: %d>\n",5);\n    printf(pcVar7,(ulong)uVar2);\n    return pcVar9;\n  case 0x18:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 1) {\nLAB_001135c3:\n      pcVar7 = "8-byte\n";\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      if (uVar2 != 2) {\nLAB_00113474:\n        if (uVar2 == 3) {\n          puts("??? 3");\n          return pcVar9;\n        }\n        if (uVar2 < 0xd) {\n          pcVar7 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);\n          printf(pcVar7,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));\n          return pcVar9;\n        }\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }\n      pcVar7 = "4-byte\n";\n      goto LAB_001133ad;\n    }\n    break;\n  case 0x19:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 1) {\n      pcVar7 = "8-byte, except leaf SP\n";\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      if (uVar2 != 2) goto LAB_00113474;\n      goto LAB_001135c3;\n    }\n    break;\n  case 0x20:\n    uVar5 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    pcVar7 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n    printf(pcVar7,uVar5 & 0xffffffff);\n    if (pcVar9 < param_2 + -1) {\n      FUN_001122a0((ulong)(param_2 + (-1 - (long)pcVar9)) & 0xffffffff,pcVar9);\n      sVar6 = strnlen(pcVar9,(size_t)(param_2 + (-1 - (long)pcVar9)));\n      param_2 = pcVar9 + sVar6 + 1;\n    }\n    else {\n      pcVar9 = (char *)dcgettext(0,"<corrupt>",5);\n      printf(pcVar9);\n    }\n    putc(10,stdout);\n    return param_2;\n  case 0x40:\n    pcVar7 = "True\n";\n    pcVar9 = pcVar9 + (pcVar9 < param_2);\n    goto LAB_001133ad;\n  case 0x41:\n    iVar4 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (iVar4 == 6) {\n      uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n      pcVar9 = pcVar9 + local_2c;\n      if (uVar2 < 0x12) {\n        puts((&PTR_DAT_00190bc0)[uVar2]);\n      }\n      else {\n        printf("??? (%d)\n",(ulong)uVar2);\n      }\n    }\n    else {\n      puts("???");\n    }\n    if (pcVar9 < param_2) {\n      pcVar7 = pcVar9 + 1;\n      if (*pcVar9 == '\0') {\n        return pcVar9 + 1;\n      }\n      do {\n        if (pcVar7 == param_2) {\n          return pcVar7;\n        }\n        pcVar9 = pcVar7 + 1;\n        cVar1 = *pcVar7;\n        pcVar7 = pcVar9;\n      } while (cVar1 != '\0');\n      return pcVar9;\n    }\n    return pcVar9;\n  }\n  pcVar7 = "None\n";\nLAB_001133ad:\n  pcVar7 = (char *)dcgettext(0,pcVar7,5);\n  printf(pcVar7);\n  return pcVar9;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "size_t sVar6;" primitive_type identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "uint *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "uint local_2c;" type_identifier identifier ;) (expression_statement "uVar2 = FUN_0013fb20(param_1,&local_2c,0,param_2);" (assignment_expression "uVar2 = FUN_0013fb20(param_1,&local_2c,0,param_2)" identifier = (call_expression "FUN_0013fb20(param_1,&local_2c,0,param_2)" identifier (argument_list "(param_1,&local_2c,0,param_2)" ( identifier , (pointer_expression "&local_2c" & identifier) , number_literal , identifier )))) ;) (expression_statement "puVar8 = &DAT_00190240;" (assignment_expression "puVar8 = &DAT_00190240" identifier = (pointer_expression "&DAT_00190240" & identifier)) ;) (expression_statement "pcVar9 = (char *)(param_1 + (ulong)local_2c);" (assignment_expression "pcVar9 = (char *)(param_1 + (ulong)local_2c)" identifier = (cast_expression "(char *)(param_1 + (ulong)local_2c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + (ulong)local_2c)" ( (binary_expression "param_1 + (ulong)local_2c" identifier + (cast_expression "(ulong)local_2c" ( (type_descriptor "ulong" type_identifier) ) identifier)) )))) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (while_statement "while (*puVar8 != uVar2) {\n    uVar3 = (int)uVar5 + 1;\n    uVar5 = (ulong)uVar3;\n    puVar8 = puVar8 + 8;\n    if (uVar3 == 0x29) {\n      pcVar9 = (char *)FUN_001124d0(uVar2,pcVar9,param_2);\n      return pcVar9;\n    }\n  }" while (parenthesized_expression "(*puVar8 != uVar2)" ( (binary_expression "*puVar8 != uVar2" (pointer_expression "*puVar8" * identifier) != identifier) )) (compound_statement "{\n    uVar3 = (int)uVar5 + 1;\n    uVar5 = (ulong)uVar3;\n    puVar8 = puVar8 + 8;\n    if (uVar3 == 0x29) {\n      pcVar9 = (char *)FUN_001124d0(uVar2,pcVar9,param_2);\n      return pcVar9;\n    }\n  }" { (expression_statement "uVar3 = (int)uVar5 + 1;" (assignment_expression "uVar3 = (int)uVar5 + 1" identifier = (binary_expression "(int)uVar5 + 1" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "uVar5 = (ulong)uVar3;" (assignment_expression "uVar5 = (ulong)uVar3" identifier = (cast_expression "(ulong)uVar3" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "puVar8 = puVar8 + 8;" (assignment_expression "puVar8 = puVar8 + 8" identifier = (binary_expression "puVar8 + 8" identifier + number_literal)) ;) (if_statement "if (uVar3 == 0x29) {\n      pcVar9 = (char *)FUN_001124d0(uVar2,pcVar9,param_2);\n      return pcVar9;\n    }" if (parenthesized_expression "(uVar3 == 0x29)" ( (binary_expression "uVar3 == 0x29" identifier == number_literal) )) (compound_statement "{\n      pcVar9 = (char *)FUN_001124d0(uVar2,pcVar9,param_2);\n      return pcVar9;\n    }" { (expression_statement "pcVar9 = (char *)FUN_001124d0(uVar2,pcVar9,param_2);" (assignment_expression "pcVar9 = (char *)FUN_001124d0(uVar2,pcVar9,param_2)" identifier = (cast_expression "(char *)FUN_001124d0(uVar2,pcVar9,param_2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001124d0(uVar2,pcVar9,param_2)" identifier (argument_list "(uVar2,pcVar9,param_2)" ( identifier , identifier , identifier ))))) ;) (return_statement "return pcVar9;" return identifier ;) })) })) (expression_statement "printf("  Tag_%s: ",(&PTR_s_CPU_raw_name_00190248)[uVar5 * 4]);" (call_expression "printf("  Tag_%s: ",(&PTR_s_CPU_raw_name_00190248)[uVar5 * 4])" identifier (argument_list "("  Tag_%s: ",(&PTR_s_CPU_raw_name_00190248)[uVar5 * 4])" ( (string_literal ""  Tag_%s: "" " string_content ") , (subscript_expression "(&PTR_s_CPU_raw_name_00190248)[uVar5 * 4]" (parenthesized_expression "(&PTR_s_CPU_raw_name_00190248)" ( (pointer_expression "&PTR_s_CPU_raw_name_00190248" & identifier) )) [ (binary_expression "uVar5 * 4" identifier * number_literal) ]) ))) ;) (expression_statement "uVar3 = (&DAT_00190250)[uVar5 * 8];" (assignment_expression "uVar3 = (&DAT_00190250)[uVar5 * 8]" identifier = (subscript_expression "(&DAT_00190250)[uVar5 * 8]" (parenthesized_expression "(&DAT_00190250)" ( (pointer_expression "&DAT_00190250" & identifier) )) [ (binary_expression "uVar5 * 8" identifier * number_literal) ])) ;) (if_statement "if (uVar3 == 1) {\n    pcVar9 = (char *)FUN_001124d0(0xffffffff,pcVar9,param_2);\n    return pcVar9;\n  }" if (parenthesized_expression "(uVar3 == 1)" ( (binary_expression "uVar3 == 1" identifier == number_literal) )) (compound_statement "{\n    pcVar9 = (char *)FUN_001124d0(0xffffffff,pcVar9,param_2);\n    return pcVar9;\n  }" { (expression_statement "pcVar9 = (char *)FUN_001124d0(0xffffffff,pcVar9,param_2);" (assignment_expression "pcVar9 = (char *)FUN_001124d0(0xffffffff,pcVar9,param_2)" identifier = (cast_expression "(char *)FUN_001124d0(0xffffffff,pcVar9,param_2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001124d0(0xffffffff,pcVar9,param_2)" identifier (argument_list "(0xffffffff,pcVar9,param_2)" ( number_literal , identifier , identifier ))))) ;) (return_statement "return pcVar9;" return identifier ;) })) (if_statement "if (uVar3 != 0) {\n    if (uVar3 == 2) {\n      pcVar9 = (char *)FUN_001124d0(0,pcVar9,param_2);\n      return pcVar9;\n    }\n    if ((uVar3 & 0x80) == 0) {\n                    \n      __assert_fail("attr->type & 0x80","../../binutils/readelf.c",0x3890,"display_arm_attribute");\n    }\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 < ((&DAT_00190250)[uVar5 * 8] & 0x7f)) {\n      puts(*(char **)((&DAT_00190258)[uVar5 * 4] + (ulong)uVar2 * 8));\n      return pcVar9;\n    }\n    goto LAB_00113282;\n  }" if (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    if (uVar3 == 2) {\n      pcVar9 = (char *)FUN_001124d0(0,pcVar9,param_2);\n      return pcVar9;\n    }\n    if ((uVar3 & 0x80) == 0) {\n                    \n      __assert_fail("attr->type & 0x80","../../binutils/readelf.c",0x3890,"display_arm_attribute");\n    }\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 < ((&DAT_00190250)[uVar5 * 8] & 0x7f)) {\n      puts(*(char **)((&DAT_00190258)[uVar5 * 4] + (ulong)uVar2 * 8));\n      return pcVar9;\n    }\n    goto LAB_00113282;\n  }" { (if_statement "if (uVar3 == 2) {\n      pcVar9 = (char *)FUN_001124d0(0,pcVar9,param_2);\n      return pcVar9;\n    }" if (parenthesized_expression "(uVar3 == 2)" ( (binary_expression "uVar3 == 2" identifier == number_literal) )) (compound_statement "{\n      pcVar9 = (char *)FUN_001124d0(0,pcVar9,param_2);\n      return pcVar9;\n    }" { (expression_statement "pcVar9 = (char *)FUN_001124d0(0,pcVar9,param_2);" (assignment_expression "pcVar9 = (char *)FUN_001124d0(0,pcVar9,param_2)" identifier = (cast_expression "(char *)FUN_001124d0(0,pcVar9,param_2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001124d0(0,pcVar9,param_2)" identifier (argument_list "(0,pcVar9,param_2)" ( number_literal , identifier , identifier ))))) ;) (return_statement "return pcVar9;" return identifier ;) })) (if_statement "if ((uVar3 & 0x80) == 0) {\n                    \n      __assert_fail("attr->type & 0x80","../../binutils/readelf.c",0x3890,"display_arm_attribute");\n    }" if (parenthesized_expression "((uVar3 & 0x80) == 0)" ( (binary_expression "(uVar3 & 0x80) == 0" (parenthesized_expression "(uVar3 & 0x80)" ( (binary_expression "uVar3 & 0x80" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                    \n      __assert_fail("attr->type & 0x80","../../binutils/readelf.c",0x3890,"display_arm_attribute");\n    }" { (expression_statement "__assert_fail("attr->type & 0x80","../../binutils/readelf.c",0x3890,"display_arm_attribute");" (call_expression "__assert_fail("attr->type & 0x80","../../binutils/readelf.c",0x3890,"display_arm_attribute")" identifier (argument_list "("attr->type & 0x80","../../binutils/readelf.c",0x3890,"display_arm_attribute")" ( (string_literal ""attr->type & 0x80"" " string_content ") , (string_literal ""../../binutils/readelf.c"" " string_content ") , number_literal , (string_literal ""display_arm_attribute"" " string_content ") ))) ;) })) (expression_statement "uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);" (assignment_expression "uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2)" identifier = (call_expression "FUN_0013fb20(pcVar9,&local_2c,0,param_2)" identifier (argument_list "(pcVar9,&local_2c,0,param_2)" ( identifier , (pointer_expression "&local_2c" & identifier) , number_literal , identifier )))) ;) (expression_statement "pcVar9 = pcVar9 + local_2c;" (assignment_expression "pcVar9 = pcVar9 + local_2c" identifier = (binary_expression "pcVar9 + local_2c" identifier + identifier)) ;) (if_statement "if (uVar2 < ((&DAT_00190250)[uVar5 * 8] & 0x7f)) {\n      puts(*(char **)((&DAT_00190258)[uVar5 * 4] + (ulong)uVar2 * 8));\n      return pcVar9;\n    }" if (parenthesized_expression "(uVar2 < ((&DAT_00190250)[uVar5 * 8] & 0x7f))" ( (binary_expression "uVar2 < ((&DAT_00190250)[uVar5 * 8] & 0x7f)" identifier < (parenthesized_expression "((&DAT_00190250)[uVar5 * 8] & 0x7f)" ( (binary_expression "(&DAT_00190250)[uVar5 * 8] & 0x7f" (subscript_expression "(&DAT_00190250)[uVar5 * 8]" (parenthesized_expression "(&DAT_00190250)" ( (pointer_expression "&DAT_00190250" & identifier) )) [ (binary_expression "uVar5 * 8" identifier * number_literal) ]) & number_literal) ))) )) (compound_statement "{\n      puts(*(char **)((&DAT_00190258)[uVar5 * 4] + (ulong)uVar2 * 8));\n      return pcVar9;\n    }" { (expression_statement "puts(*(char **)((&DAT_00190258)[uVar5 * 4] + (ulong)uVar2 * 8));" (call_expression "puts(*(char **)((&DAT_00190258)[uVar5 * 4] + (ulong)uVar2 * 8))" identifier (argument_list "(*(char **)((&DAT_00190258)[uVar5 * 4] + (ulong)uVar2 * 8))" ( (pointer_expression "*(char **)((&DAT_00190258)[uVar5 * 4] + (ulong)uVar2 * 8)" * (cast_expression "(char **)((&DAT_00190258)[uVar5 * 4] + (ulong)uVar2 * 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((&DAT_00190258)[uVar5 * 4] + (ulong)uVar2 * 8)" ( (binary_expression "(&DAT_00190258)[uVar5 * 4] + (ulong)uVar2 * 8" (subscript_expression "(&DAT_00190258)[uVar5 * 4]" (parenthesized_expression "(&DAT_00190258)" ( (pointer_expression "&DAT_00190258" & identifier) )) [ (binary_expression "uVar5 * 4" identifier * number_literal) ]) + (binary_expression "(ulong)uVar2 * 8" (cast_expression "(ulong)uVar2" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) )))) ))) ;) (return_statement "return pcVar9;" return identifier ;) })) (goto_statement "goto LAB_00113282;" goto statement_identifier ;) })) (switch_statement "switch(uVar2) {\n  case 7:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 0x4d) {\n      pcVar7 = "Microcontroller\n";\n      goto LAB_001133ad;\n    }\n    if (0x4d < uVar2) {\n      if (uVar2 == 0x52) {\n        pcVar7 = "Realtime\n";\n      }\n      else {\n        pcVar7 = "Application or Realtime\n";\n        if (uVar2 != 0x53) goto LAB_00113282;\n      }\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      pcVar7 = "Application\n";\n      if (uVar2 != 0x41) {\nLAB_00113282:\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }\n      goto LAB_001133ad;\n    }\n    break;\n  default:\n    pcVar7 = (char *)dcgettext(0,"<unknown: %d>\n",5);\n    printf(pcVar7,(ulong)uVar2);\n    return pcVar9;\n  case 0x18:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 1) {\nLAB_001135c3:\n      pcVar7 = "8-byte\n";\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      if (uVar2 != 2) {\nLAB_00113474:\n        if (uVar2 == 3) {\n          puts("??? 3");\n          return pcVar9;\n        }\n        if (uVar2 < 0xd) {\n          pcVar7 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);\n          printf(pcVar7,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));\n          return pcVar9;\n        }\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }\n      pcVar7 = "4-byte\n";\n      goto LAB_001133ad;\n    }\n    break;\n  case 0x19:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 1) {\n      pcVar7 = "8-byte, except leaf SP\n";\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      if (uVar2 != 2) goto LAB_00113474;\n      goto LAB_001135c3;\n    }\n    break;\n  case 0x20:\n    uVar5 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    pcVar7 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n    printf(pcVar7,uVar5 & 0xffffffff);\n    if (pcVar9 < param_2 + -1) {\n      FUN_001122a0((ulong)(param_2 + (-1 - (long)pcVar9)) & 0xffffffff,pcVar9);\n      sVar6 = strnlen(pcVar9,(size_t)(param_2 + (-1 - (long)pcVar9)));\n      param_2 = pcVar9 + sVar6 + 1;\n    }\n    else {\n      pcVar9 = (char *)dcgettext(0,"<corrupt>",5);\n      printf(pcVar9);\n    }\n    putc(10,stdout);\n    return param_2;\n  case 0x40:\n    pcVar7 = "True\n";\n    pcVar9 = pcVar9 + (pcVar9 < param_2);\n    goto LAB_001133ad;\n  case 0x41:\n    iVar4 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (iVar4 == 6) {\n      uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n      pcVar9 = pcVar9 + local_2c;\n      if (uVar2 < 0x12) {\n        puts((&PTR_DAT_00190bc0)[uVar2]);\n      }\n      else {\n        printf("??? (%d)\n",(ulong)uVar2);\n      }\n    }\n    else {\n      puts("???");\n    }\n    if (pcVar9 < param_2) {\n      pcVar7 = pcVar9 + 1;\n      if (*pcVar9 == '\0') {\n        return pcVar9 + 1;\n      }\n      do {\n        if (pcVar7 == param_2) {\n          return pcVar7;\n        }\n        pcVar9 = pcVar7 + 1;\n        cVar1 = *pcVar7;\n        pcVar7 = pcVar9;\n      } while (cVar1 != '\0');\n      return pcVar9;\n    }\n    return pcVar9;\n  }" switch (parenthesized_expression "(uVar2)" ( identifier )) (compound_statement "{\n  case 7:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 0x4d) {\n      pcVar7 = "Microcontroller\n";\n      goto LAB_001133ad;\n    }\n    if (0x4d < uVar2) {\n      if (uVar2 == 0x52) {\n        pcVar7 = "Realtime\n";\n      }\n      else {\n        pcVar7 = "Application or Realtime\n";\n        if (uVar2 != 0x53) goto LAB_00113282;\n      }\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      pcVar7 = "Application\n";\n      if (uVar2 != 0x41) {\nLAB_00113282:\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }\n      goto LAB_001133ad;\n    }\n    break;\n  default:\n    pcVar7 = (char *)dcgettext(0,"<unknown: %d>\n",5);\n    printf(pcVar7,(ulong)uVar2);\n    return pcVar9;\n  case 0x18:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 1) {\nLAB_001135c3:\n      pcVar7 = "8-byte\n";\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      if (uVar2 != 2) {\nLAB_00113474:\n        if (uVar2 == 3) {\n          puts("??? 3");\n          return pcVar9;\n        }\n        if (uVar2 < 0xd) {\n          pcVar7 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);\n          printf(pcVar7,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));\n          return pcVar9;\n        }\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }\n      pcVar7 = "4-byte\n";\n      goto LAB_001133ad;\n    }\n    break;\n  case 0x19:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 1) {\n      pcVar7 = "8-byte, except leaf SP\n";\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      if (uVar2 != 2) goto LAB_00113474;\n      goto LAB_001135c3;\n    }\n    break;\n  case 0x20:\n    uVar5 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    pcVar7 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n    printf(pcVar7,uVar5 & 0xffffffff);\n    if (pcVar9 < param_2 + -1) {\n      FUN_001122a0((ulong)(param_2 + (-1 - (long)pcVar9)) & 0xffffffff,pcVar9);\n      sVar6 = strnlen(pcVar9,(size_t)(param_2 + (-1 - (long)pcVar9)));\n      param_2 = pcVar9 + sVar6 + 1;\n    }\n    else {\n      pcVar9 = (char *)dcgettext(0,"<corrupt>",5);\n      printf(pcVar9);\n    }\n    putc(10,stdout);\n    return param_2;\n  case 0x40:\n    pcVar7 = "True\n";\n    pcVar9 = pcVar9 + (pcVar9 < param_2);\n    goto LAB_001133ad;\n  case 0x41:\n    iVar4 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (iVar4 == 6) {\n      uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n      pcVar9 = pcVar9 + local_2c;\n      if (uVar2 < 0x12) {\n        puts((&PTR_DAT_00190bc0)[uVar2]);\n      }\n      else {\n        printf("??? (%d)\n",(ulong)uVar2);\n      }\n    }\n    else {\n      puts("???");\n    }\n    if (pcVar9 < param_2) {\n      pcVar7 = pcVar9 + 1;\n      if (*pcVar9 == '\0') {\n        return pcVar9 + 1;\n      }\n      do {\n        if (pcVar7 == param_2) {\n          return pcVar7;\n        }\n        pcVar9 = pcVar7 + 1;\n        cVar1 = *pcVar7;\n        pcVar7 = pcVar9;\n      } while (cVar1 != '\0');\n      return pcVar9;\n    }\n    return pcVar9;\n  }" { (case_statement "case 7:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 0x4d) {\n      pcVar7 = "Microcontroller\n";\n      goto LAB_001133ad;\n    }\n    if (0x4d < uVar2) {\n      if (uVar2 == 0x52) {\n        pcVar7 = "Realtime\n";\n      }\n      else {\n        pcVar7 = "Application or Realtime\n";\n        if (uVar2 != 0x53) goto LAB_00113282;\n      }\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      pcVar7 = "Application\n";\n      if (uVar2 != 0x41) {\nLAB_00113282:\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }\n      goto LAB_001133ad;\n    }\n    break;" case number_literal : (expression_statement "uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);" (assignment_expression "uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2)" identifier = (call_expression "FUN_0013fb20(pcVar9,&local_2c,0,param_2)" identifier (argument_list "(pcVar9,&local_2c,0,param_2)" ( identifier , (pointer_expression "&local_2c" & identifier) , number_literal , identifier )))) ;) (expression_statement "pcVar9 = pcVar9 + local_2c;" (assignment_expression "pcVar9 = pcVar9 + local_2c" identifier = (binary_expression "pcVar9 + local_2c" identifier + identifier)) ;) (if_statement "if (uVar2 == 0x4d) {\n      pcVar7 = "Microcontroller\n";\n      goto LAB_001133ad;\n    }" if (parenthesized_expression "(uVar2 == 0x4d)" ( (binary_expression "uVar2 == 0x4d" identifier == number_literal) )) (compound_statement "{\n      pcVar7 = "Microcontroller\n";\n      goto LAB_001133ad;\n    }" { (expression_statement "pcVar7 = "Microcontroller\n";" (assignment_expression "pcVar7 = "Microcontroller\n"" identifier = (string_literal ""Microcontroller\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_001133ad;" goto statement_identifier ;) })) (if_statement "if (0x4d < uVar2) {\n      if (uVar2 == 0x52) {\n        pcVar7 = "Realtime\n";\n      }\n      else {\n        pcVar7 = "Application or Realtime\n";\n        if (uVar2 != 0x53) goto LAB_00113282;\n      }\n      goto LAB_001133ad;\n    }" if (parenthesized_expression "(0x4d < uVar2)" ( (binary_expression "0x4d < uVar2" number_literal < identifier) )) (compound_statement "{\n      if (uVar2 == 0x52) {\n        pcVar7 = "Realtime\n";\n      }\n      else {\n        pcVar7 = "Application or Realtime\n";\n        if (uVar2 != 0x53) goto LAB_00113282;\n      }\n      goto LAB_001133ad;\n    }" { (if_statement "if (uVar2 == 0x52) {\n        pcVar7 = "Realtime\n";\n      }\n      else {\n        pcVar7 = "Application or Realtime\n";\n        if (uVar2 != 0x53) goto LAB_00113282;\n      }" if (parenthesized_expression "(uVar2 == 0x52)" ( (binary_expression "uVar2 == 0x52" identifier == number_literal) )) (compound_statement "{\n        pcVar7 = "Realtime\n";\n      }" { (expression_statement "pcVar7 = "Realtime\n";" (assignment_expression "pcVar7 = "Realtime\n"" identifier = (string_literal ""Realtime\n"" " string_content escape_sequence ")) ;) }) (else_clause "else {\n        pcVar7 = "Application or Realtime\n";\n        if (uVar2 != 0x53) goto LAB_00113282;\n      }" else (compound_statement "{\n        pcVar7 = "Application or Realtime\n";\n        if (uVar2 != 0x53) goto LAB_00113282;\n      }" { (expression_statement "pcVar7 = "Application or Realtime\n";" (assignment_expression "pcVar7 = "Application or Realtime\n"" identifier = (string_literal ""Application or Realtime\n"" " string_content escape_sequence ")) ;) (if_statement "if (uVar2 != 0x53) goto LAB_00113282;" if (parenthesized_expression "(uVar2 != 0x53)" ( (binary_expression "uVar2 != 0x53" identifier != number_literal) )) (goto_statement "goto LAB_00113282;" goto statement_identifier ;)) }))) (goto_statement "goto LAB_001133ad;" goto statement_identifier ;) })) (if_statement "if (uVar2 != 0) {\n      pcVar7 = "Application\n";\n      if (uVar2 != 0x41) {\nLAB_00113282:\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }\n      goto LAB_001133ad;\n    }" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      pcVar7 = "Application\n";\n      if (uVar2 != 0x41) {\nLAB_00113282:\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }\n      goto LAB_001133ad;\n    }" { (expression_statement "pcVar7 = "Application\n";" (assignment_expression "pcVar7 = "Application\n"" identifier = (string_literal ""Application\n"" " string_content escape_sequence ")) ;) (if_statement "if (uVar2 != 0x41) {\nLAB_00113282:\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }" if (parenthesized_expression "(uVar2 != 0x41)" ( (binary_expression "uVar2 != 0x41" identifier != number_literal) )) (compound_statement "{\nLAB_00113282:\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }" { (labeled_statement "LAB_00113282:\n        printf("??? (%d)\n",(ulong)uVar2);" statement_identifier : (expression_statement "printf("??? (%d)\n",(ulong)uVar2);" (call_expression "printf("??? (%d)\n",(ulong)uVar2)" identifier (argument_list "("??? (%d)\n",(ulong)uVar2)" ( (string_literal ""??? (%d)\n"" " string_content escape_sequence ") , (cast_expression "(ulong)uVar2" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;)) (return_statement "return pcVar9;" return identifier ;) })) (goto_statement "goto LAB_001133ad;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "default:\n    pcVar7 = (char *)dcgettext(0,"<unknown: %d>\n",5);\n    printf(pcVar7,(ulong)uVar2);\n    return pcVar9;" default : (expression_statement "pcVar7 = (char *)dcgettext(0,"<unknown: %d>\n",5);" (assignment_expression "pcVar7 = (char *)dcgettext(0,"<unknown: %d>\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"<unknown: %d>\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"<unknown: %d>\n",5)" identifier (argument_list "(0,"<unknown: %d>\n",5)" ( number_literal , (string_literal ""<unknown: %d>\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar7,(ulong)uVar2);" (call_expression "printf(pcVar7,(ulong)uVar2)" identifier (argument_list "(pcVar7,(ulong)uVar2)" ( identifier , (cast_expression "(ulong)uVar2" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) (return_statement "return pcVar9;" return identifier ;)) (case_statement "case 0x18:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 1) {\nLAB_001135c3:\n      pcVar7 = "8-byte\n";\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      if (uVar2 != 2) {\nLAB_00113474:\n        if (uVar2 == 3) {\n          puts("??? 3");\n          return pcVar9;\n        }\n        if (uVar2 < 0xd) {\n          pcVar7 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);\n          printf(pcVar7,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));\n          return pcVar9;\n        }\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }\n      pcVar7 = "4-byte\n";\n      goto LAB_001133ad;\n    }\n    break;" case number_literal : (expression_statement "uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);" (assignment_expression "uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2)" identifier = (call_expression "FUN_0013fb20(pcVar9,&local_2c,0,param_2)" identifier (argument_list "(pcVar9,&local_2c,0,param_2)" ( identifier , (pointer_expression "&local_2c" & identifier) , number_literal , identifier )))) ;) (expression_statement "pcVar9 = pcVar9 + local_2c;" (assignment_expression "pcVar9 = pcVar9 + local_2c" identifier = (binary_expression "pcVar9 + local_2c" identifier + identifier)) ;) (if_statement "if (uVar2 == 1) {\nLAB_001135c3:\n      pcVar7 = "8-byte\n";\n      goto LAB_001133ad;\n    }" if (parenthesized_expression "(uVar2 == 1)" ( (binary_expression "uVar2 == 1" identifier == number_literal) )) (compound_statement "{\nLAB_001135c3:\n      pcVar7 = "8-byte\n";\n      goto LAB_001133ad;\n    }" { (labeled_statement "LAB_001135c3:\n      pcVar7 = "8-byte\n";" statement_identifier : (expression_statement "pcVar7 = "8-byte\n";" (assignment_expression "pcVar7 = "8-byte\n"" identifier = (string_literal ""8-byte\n"" " string_content escape_sequence ")) ;)) (goto_statement "goto LAB_001133ad;" goto statement_identifier ;) })) (if_statement "if (uVar2 != 0) {\n      if (uVar2 != 2) {\nLAB_00113474:\n        if (uVar2 == 3) {\n          puts("??? 3");\n          return pcVar9;\n        }\n        if (uVar2 < 0xd) {\n          pcVar7 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);\n          printf(pcVar7,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));\n          return pcVar9;\n        }\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }\n      pcVar7 = "4-byte\n";\n      goto LAB_001133ad;\n    }" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      if (uVar2 != 2) {\nLAB_00113474:\n        if (uVar2 == 3) {\n          puts("??? 3");\n          return pcVar9;\n        }\n        if (uVar2 < 0xd) {\n          pcVar7 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);\n          printf(pcVar7,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));\n          return pcVar9;\n        }\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }\n      pcVar7 = "4-byte\n";\n      goto LAB_001133ad;\n    }" { (if_statement "if (uVar2 != 2) {\nLAB_00113474:\n        if (uVar2 == 3) {\n          puts("??? 3");\n          return pcVar9;\n        }\n        if (uVar2 < 0xd) {\n          pcVar7 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);\n          printf(pcVar7,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));\n          return pcVar9;\n        }\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }" if (parenthesized_expression "(uVar2 != 2)" ( (binary_expression "uVar2 != 2" identifier != number_literal) )) (compound_statement "{\nLAB_00113474:\n        if (uVar2 == 3) {\n          puts("??? 3");\n          return pcVar9;\n        }\n        if (uVar2 < 0xd) {\n          pcVar7 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);\n          printf(pcVar7,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));\n          return pcVar9;\n        }\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }" { (labeled_statement "LAB_00113474:\n        if (uVar2 == 3) {\n          puts("??? 3");\n          return pcVar9;\n        }" statement_identifier : (if_statement "if (uVar2 == 3) {\n          puts("??? 3");\n          return pcVar9;\n        }" if (parenthesized_expression "(uVar2 == 3)" ( (binary_expression "uVar2 == 3" identifier == number_literal) )) (compound_statement "{\n          puts("??? 3");\n          return pcVar9;\n        }" { (expression_statement "puts("??? 3");" (call_expression "puts("??? 3")" identifier (argument_list "("??? 3")" ( (string_literal ""??? 3"" " string_content ") ))) ;) (return_statement "return pcVar9;" return identifier ;) }))) (if_statement "if (uVar2 < 0xd) {\n          pcVar7 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);\n          printf(pcVar7,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));\n          return pcVar9;\n        }" if (parenthesized_expression "(uVar2 < 0xd)" ( (binary_expression "uVar2 < 0xd" identifier < number_literal) )) (compound_statement "{\n          pcVar7 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);\n          printf(pcVar7,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));\n          return pcVar9;\n        }" { (expression_statement "pcVar7 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);" (assignment_expression "pcVar7 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"8-byte and up to %d-byte extended\n",5)" identifier (argument_list "(0,"8-byte and up to %d-byte extended\n",5)" ( number_literal , (string_literal ""8-byte and up to %d-byte extended\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar7,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));" (call_expression "printf(pcVar7,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)))" identifier (argument_list "(pcVar7,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)))" ( identifier , (call_expression "(ulong)(uint)(1 << ((byte)uVar2 & 0x1f))" (call_expression "(ulong)(uint)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uint)" ( identifier ))) (argument_list "(1 << ((byte)uVar2 & 0x1f))" ( (binary_expression "1 << ((byte)uVar2 & 0x1f)" number_literal << (parenthesized_expression "((byte)uVar2 & 0x1f)" ( (binary_expression "(byte)uVar2 & 0x1f" (cast_expression "(byte)uVar2" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) ))) ;) (return_statement "return pcVar9;" return identifier ;) })) (expression_statement "printf("??? (%d)\n",(ulong)uVar2);" (call_expression "printf("??? (%d)\n",(ulong)uVar2)" identifier (argument_list "("??? (%d)\n",(ulong)uVar2)" ( (string_literal ""??? (%d)\n"" " string_content escape_sequence ") , (cast_expression "(ulong)uVar2" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) (return_statement "return pcVar9;" return identifier ;) })) (expression_statement "pcVar7 = "4-byte\n";" (assignment_expression "pcVar7 = "4-byte\n"" identifier = (string_literal ""4-byte\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_001133ad;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case 0x19:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 1) {\n      pcVar7 = "8-byte, except leaf SP\n";\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      if (uVar2 != 2) goto LAB_00113474;\n      goto LAB_001135c3;\n    }\n    break;" case number_literal : (expression_statement "uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);" (assignment_expression "uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2)" identifier = (call_expression "FUN_0013fb20(pcVar9,&local_2c,0,param_2)" identifier (argument_list "(pcVar9,&local_2c,0,param_2)" ( identifier , (pointer_expression "&local_2c" & identifier) , number_literal , identifier )))) ;) (expression_statement "pcVar9 = pcVar9 + local_2c;" (assignment_expression "pcVar9 = pcVar9 + local_2c" identifier = (binary_expression "pcVar9 + local_2c" identifier + identifier)) ;) (if_statement "if (uVar2 == 1) {\n      pcVar7 = "8-byte, except leaf SP\n";\n      goto LAB_001133ad;\n    }" if (parenthesized_expression "(uVar2 == 1)" ( (binary_expression "uVar2 == 1" identifier == number_literal) )) (compound_statement "{\n      pcVar7 = "8-byte, except leaf SP\n";\n      goto LAB_001133ad;\n    }" { (expression_statement "pcVar7 = "8-byte, except leaf SP\n";" (assignment_expression "pcVar7 = "8-byte, except leaf SP\n"" identifier = (string_literal ""8-byte, except leaf SP\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_001133ad;" goto statement_identifier ;) })) (if_statement "if (uVar2 != 0) {\n      if (uVar2 != 2) goto LAB_00113474;\n      goto LAB_001135c3;\n    }" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      if (uVar2 != 2) goto LAB_00113474;\n      goto LAB_001135c3;\n    }" { (if_statement "if (uVar2 != 2) goto LAB_00113474;" if (parenthesized_expression "(uVar2 != 2)" ( (binary_expression "uVar2 != 2" identifier != number_literal) )) (goto_statement "goto LAB_00113474;" goto statement_identifier ;)) (goto_statement "goto LAB_001135c3;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case 0x20:\n    uVar5 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    pcVar7 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n    printf(pcVar7,uVar5 & 0xffffffff);\n    if (pcVar9 < param_2 + -1) {\n      FUN_001122a0((ulong)(param_2 + (-1 - (long)pcVar9)) & 0xffffffff,pcVar9);\n      sVar6 = strnlen(pcVar9,(size_t)(param_2 + (-1 - (long)pcVar9)));\n      param_2 = pcVar9 + sVar6 + 1;\n    }\n    else {\n      pcVar9 = (char *)dcgettext(0,"<corrupt>",5);\n      printf(pcVar9);\n    }\n    putc(10,stdout);\n    return param_2;" case number_literal : (expression_statement "uVar5 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);" (assignment_expression "uVar5 = FUN_0013fb20(pcVar9,&local_2c,0,param_2)" identifier = (call_expression "FUN_0013fb20(pcVar9,&local_2c,0,param_2)" identifier (argument_list "(pcVar9,&local_2c,0,param_2)" ( identifier , (pointer_expression "&local_2c" & identifier) , number_literal , identifier )))) ;) (expression_statement "pcVar9 = pcVar9 + local_2c;" (assignment_expression "pcVar9 = pcVar9 + local_2c" identifier = (binary_expression "pcVar9 + local_2c" identifier + identifier)) ;) (expression_statement "pcVar7 = (char *)dcgettext(0,"flag = %d, vendor = ",5);" (assignment_expression "pcVar7 = (char *)dcgettext(0,"flag = %d, vendor = ",5)" identifier = (cast_expression "(char *)dcgettext(0,"flag = %d, vendor = ",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"flag = %d, vendor = ",5)" identifier (argument_list "(0,"flag = %d, vendor = ",5)" ( number_literal , (string_literal ""flag = %d, vendor = "" " string_content ") , number_literal ))))) ;) (expression_statement "printf(pcVar7,uVar5 & 0xffffffff);" (call_expression "printf(pcVar7,uVar5 & 0xffffffff)" identifier (argument_list "(pcVar7,uVar5 & 0xffffffff)" ( identifier , (binary_expression "uVar5 & 0xffffffff" identifier & number_literal) ))) ;) (if_statement "if (pcVar9 < param_2 + -1) {\n      FUN_001122a0((ulong)(param_2 + (-1 - (long)pcVar9)) & 0xffffffff,pcVar9);\n      sVar6 = strnlen(pcVar9,(size_t)(param_2 + (-1 - (long)pcVar9)));\n      param_2 = pcVar9 + sVar6 + 1;\n    }\n    else {\n      pcVar9 = (char *)dcgettext(0,"<corrupt>",5);\n      printf(pcVar9);\n    }" if (parenthesized_expression "(pcVar9 < param_2 + -1)" ( (binary_expression "pcVar9 < param_2 + -1" identifier < (binary_expression "param_2 + -1" identifier + number_literal)) )) (compound_statement "{\n      FUN_001122a0((ulong)(param_2 + (-1 - (long)pcVar9)) & 0xffffffff,pcVar9);\n      sVar6 = strnlen(pcVar9,(size_t)(param_2 + (-1 - (long)pcVar9)));\n      param_2 = pcVar9 + sVar6 + 1;\n    }" { (expression_statement "FUN_001122a0((ulong)(param_2 + (-1 - (long)pcVar9)) & 0xffffffff,pcVar9);" (call_expression "FUN_001122a0((ulong)(param_2 + (-1 - (long)pcVar9)) & 0xffffffff,pcVar9)" identifier (argument_list "((ulong)(param_2 + (-1 - (long)pcVar9)) & 0xffffffff,pcVar9)" ( (binary_expression "(ulong)(param_2 + (-1 - (long)pcVar9)) & 0xffffffff" (call_expression "(ulong)(param_2 + (-1 - (long)pcVar9))" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(param_2 + (-1 - (long)pcVar9))" ( (binary_expression "param_2 + (-1 - (long)pcVar9)" identifier + (parenthesized_expression "(-1 - (long)pcVar9)" ( (binary_expression "-1 - (long)pcVar9" number_literal - (cast_expression "(long)pcVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) ))) & number_literal) , identifier ))) ;) (expression_statement "sVar6 = strnlen(pcVar9,(size_t)(param_2 + (-1 - (long)pcVar9)));" (assignment_expression "sVar6 = strnlen(pcVar9,(size_t)(param_2 + (-1 - (long)pcVar9)))" identifier = (call_expression "strnlen(pcVar9,(size_t)(param_2 + (-1 - (long)pcVar9)))" identifier (argument_list "(pcVar9,(size_t)(param_2 + (-1 - (long)pcVar9)))" ( identifier , (cast_expression "(size_t)(param_2 + (-1 - (long)pcVar9))" ( (type_descriptor "size_t" primitive_type) ) (parenthesized_expression "(param_2 + (-1 - (long)pcVar9))" ( (binary_expression "param_2 + (-1 - (long)pcVar9)" identifier + (parenthesized_expression "(-1 - (long)pcVar9)" ( (binary_expression "-1 - (long)pcVar9" number_literal - (cast_expression "(long)pcVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) ))) )))) ;) (expression_statement "param_2 = pcVar9 + sVar6 + 1;" (assignment_expression "param_2 = pcVar9 + sVar6 + 1" identifier = (binary_expression "pcVar9 + sVar6 + 1" (binary_expression "pcVar9 + sVar6" identifier + identifier) + number_literal)) ;) }) (else_clause "else {\n      pcVar9 = (char *)dcgettext(0,"<corrupt>",5);\n      printf(pcVar9);\n    }" else (compound_statement "{\n      pcVar9 = (char *)dcgettext(0,"<corrupt>",5);\n      printf(pcVar9);\n    }" { (expression_statement "pcVar9 = (char *)dcgettext(0,"<corrupt>",5);" (assignment_expression "pcVar9 = (char *)dcgettext(0,"<corrupt>",5)" identifier = (cast_expression "(char *)dcgettext(0,"<corrupt>",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"<corrupt>",5)" identifier (argument_list "(0,"<corrupt>",5)" ( number_literal , (string_literal ""<corrupt>"" " string_content ") , number_literal ))))) ;) (expression_statement "printf(pcVar9);" (call_expression "printf(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier ))) ;) }))) (expression_statement "putc(10,stdout);" (call_expression "putc(10,stdout)" identifier (argument_list "(10,stdout)" ( number_literal , identifier ))) ;) (return_statement "return param_2;" return identifier ;)) (case_statement "case 0x40:\n    pcVar7 = "True\n";\n    pcVar9 = pcVar9 + (pcVar9 < param_2);\n    goto LAB_001133ad;" case number_literal : (expression_statement "pcVar7 = "True\n";" (assignment_expression "pcVar7 = "True\n"" identifier = (string_literal ""True\n"" " string_content escape_sequence ")) ;) (expression_statement "pcVar9 = pcVar9 + (pcVar9 < param_2);" (assignment_expression "pcVar9 = pcVar9 + (pcVar9 < param_2)" identifier = (binary_expression "pcVar9 + (pcVar9 < param_2)" identifier + (parenthesized_expression "(pcVar9 < param_2)" ( (binary_expression "pcVar9 < param_2" identifier < identifier) )))) ;) (goto_statement "goto LAB_001133ad;" goto statement_identifier ;)) (case_statement "case 0x41:\n    iVar4 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (iVar4 == 6) {\n      uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n      pcVar9 = pcVar9 + local_2c;\n      if (uVar2 < 0x12) {\n        puts((&PTR_DAT_00190bc0)[uVar2]);\n      }\n      else {\n        printf("??? (%d)\n",(ulong)uVar2);\n      }\n    }\n    else {\n      puts("???");\n    }\n    if (pcVar9 < param_2) {\n      pcVar7 = pcVar9 + 1;\n      if (*pcVar9 == '\0') {\n        return pcVar9 + 1;\n      }\n      do {\n        if (pcVar7 == param_2) {\n          return pcVar7;\n        }\n        pcVar9 = pcVar7 + 1;\n        cVar1 = *pcVar7;\n        pcVar7 = pcVar9;\n      } while (cVar1 != '\0');\n      return pcVar9;\n    }\n    return pcVar9;" case number_literal : (expression_statement "iVar4 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);" (assignment_expression "iVar4 = FUN_0013fb20(pcVar9,&local_2c,0,param_2)" identifier = (call_expression "FUN_0013fb20(pcVar9,&local_2c,0,param_2)" identifier (argument_list "(pcVar9,&local_2c,0,param_2)" ( identifier , (pointer_expression "&local_2c" & identifier) , number_literal , identifier )))) ;) (expression_statement "pcVar9 = pcVar9 + local_2c;" (assignment_expression "pcVar9 = pcVar9 + local_2c" identifier = (binary_expression "pcVar9 + local_2c" identifier + identifier)) ;) (if_statement "if (iVar4 == 6) {\n      uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n      pcVar9 = pcVar9 + local_2c;\n      if (uVar2 < 0x12) {\n        puts((&PTR_DAT_00190bc0)[uVar2]);\n      }\n      else {\n        printf("??? (%d)\n",(ulong)uVar2);\n      }\n    }\n    else {\n      puts("???");\n    }" if (parenthesized_expression "(iVar4 == 6)" ( (binary_expression "iVar4 == 6" identifier == number_literal) )) (compound_statement "{\n      uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n      pcVar9 = pcVar9 + local_2c;\n      if (uVar2 < 0x12) {\n        puts((&PTR_DAT_00190bc0)[uVar2]);\n      }\n      else {\n        printf("??? (%d)\n",(ulong)uVar2);\n      }\n    }" { (expression_statement "uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);" (assignment_expression "uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2)" identifier = (call_expression "FUN_0013fb20(pcVar9,&local_2c,0,param_2)" identifier (argument_list "(pcVar9,&local_2c,0,param_2)" ( identifier , (pointer_expression "&local_2c" & identifier) , number_literal , identifier )))) ;) (expression_statement "pcVar9 = pcVar9 + local_2c;" (assignment_expression "pcVar9 = pcVar9 + local_2c" identifier = (binary_expression "pcVar9 + local_2c" identifier + identifier)) ;) (if_statement "if (uVar2 < 0x12) {\n        puts((&PTR_DAT_00190bc0)[uVar2]);\n      }\n      else {\n        printf("??? (%d)\n",(ulong)uVar2);\n      }" if (parenthesized_expression "(uVar2 < 0x12)" ( (binary_expression "uVar2 < 0x12" identifier < number_literal) )) (compound_statement "{\n        puts((&PTR_DAT_00190bc0)[uVar2]);\n      }" { (expression_statement "puts((&PTR_DAT_00190bc0)[uVar2]);" (call_expression "puts((&PTR_DAT_00190bc0)[uVar2])" identifier (argument_list "((&PTR_DAT_00190bc0)[uVar2])" ( (subscript_expression "(&PTR_DAT_00190bc0)[uVar2]" (parenthesized_expression "(&PTR_DAT_00190bc0)" ( (pointer_expression "&PTR_DAT_00190bc0" & identifier) )) [ identifier ]) ))) ;) }) (else_clause "else {\n        printf("??? (%d)\n",(ulong)uVar2);\n      }" else (compound_statement "{\n        printf("??? (%d)\n",(ulong)uVar2);\n      }" { (expression_statement "printf("??? (%d)\n",(ulong)uVar2);" (call_expression "printf("??? (%d)\n",(ulong)uVar2)" identifier (argument_list "("??? (%d)\n",(ulong)uVar2)" ( (string_literal ""??? (%d)\n"" " string_content escape_sequence ") , (cast_expression "(ulong)uVar2" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) }))) }) (else_clause "else {\n      puts("???");\n    }" else (compound_statement "{\n      puts("???");\n    }" { (expression_statement "puts("???");" (call_expression "puts("???")" identifier (argument_list "("???")" ( (string_literal ""???"" " string_content ") ))) ;) }))) (if_statement "if (pcVar9 < param_2) {\n      pcVar7 = pcVar9 + 1;\n      if (*pcVar9 == '\0') {\n        return pcVar9 + 1;\n      }\n      do {\n        if (pcVar7 == param_2) {\n          return pcVar7;\n        }\n        pcVar9 = pcVar7 + 1;\n        cVar1 = *pcVar7;\n        pcVar7 = pcVar9;\n      } while (cVar1 != '\0');\n      return pcVar9;\n    }" if (parenthesized_expression "(pcVar9 < param_2)" ( (binary_expression "pcVar9 < param_2" identifier < identifier) )) (compound_statement "{\n      pcVar7 = pcVar9 + 1;\n      if (*pcVar9 == '\0') {\n        return pcVar9 + 1;\n      }\n      do {\n        if (pcVar7 == param_2) {\n          return pcVar7;\n        }\n        pcVar9 = pcVar7 + 1;\n        cVar1 = *pcVar7;\n        pcVar7 = pcVar9;\n      } while (cVar1 != '\0');\n      return pcVar9;\n    }" { (expression_statement "pcVar7 = pcVar9 + 1;" (assignment_expression "pcVar7 = pcVar9 + 1" identifier = (binary_expression "pcVar9 + 1" identifier + number_literal)) ;) (if_statement "if (*pcVar9 == '\0') {\n        return pcVar9 + 1;\n      }" if (parenthesized_expression "(*pcVar9 == '\0')" ( (binary_expression "*pcVar9 == '\0'" (pointer_expression "*pcVar9" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        return pcVar9 + 1;\n      }" { (return_statement "return pcVar9 + 1;" return (binary_expression "pcVar9 + 1" identifier + number_literal) ;) })) (do_statement "do {\n        if (pcVar7 == param_2) {\n          return pcVar7;\n        }\n        pcVar9 = pcVar7 + 1;\n        cVar1 = *pcVar7;\n        pcVar7 = pcVar9;\n      } while (cVar1 != '\0');" do (compound_statement "{\n        if (pcVar7 == param_2) {\n          return pcVar7;\n        }\n        pcVar9 = pcVar7 + 1;\n        cVar1 = *pcVar7;\n        pcVar7 = pcVar9;\n      }" { (if_statement "if (pcVar7 == param_2) {\n          return pcVar7;\n        }" if (parenthesized_expression "(pcVar7 == param_2)" ( (binary_expression "pcVar7 == param_2" identifier == identifier) )) (compound_statement "{\n          return pcVar7;\n        }" { (return_statement "return pcVar7;" return identifier ;) })) (expression_statement "pcVar9 = pcVar7 + 1;" (assignment_expression "pcVar9 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ;) (expression_statement "cVar1 = *pcVar7;" (assignment_expression "cVar1 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) (expression_statement "pcVar7 = pcVar9;" (assignment_expression "pcVar7 = pcVar9" identifier = identifier) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (return_statement "return pcVar9;" return identifier ;) })) (return_statement "return pcVar9;" return identifier ;)) })) (expression_statement "pcVar7 = "None\n";" (assignment_expression "pcVar7 = "None\n"" identifier = (string_literal ""None\n"" " string_content escape_sequence ")) ;) (labeled_statement "LAB_001133ad:\n  pcVar7 = (char *)dcgettext(0,pcVar7,5);" statement_identifier : (expression_statement "pcVar7 = (char *)dcgettext(0,pcVar7,5);" (assignment_expression "pcVar7 = (char *)dcgettext(0,pcVar7,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar7,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar7,5)" identifier (argument_list "(0,pcVar7,5)" ( number_literal , identifier , number_literal ))))) ;)) (expression_statement "printf(pcVar7);" (call_expression "printf(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier ))) ;) (return_statement "return pcVar9;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))))) ;) (return_statement return IDENT ;) })) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT * LIT) ]) ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT * LIT) ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , IDENT , IDENT ))))) ;) (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 (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , IDENT , IDENT ))))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT * LIT) ]) & LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression IDENT * LIT) ]) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) ))) ;) (return_statement return IDENT ;) })) (goto_statement goto statement_identifier ;) })) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;)) (return_statement return IDENT ;) })) (goto_statement goto statement_identifier ;) })) (break_statement break ;)) (case_statement default : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;) (return_statement return IDENT ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (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 (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) ))) ))) ;) (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (goto_statement goto statement_identifier ;) })) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT & LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ))) ))) & LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ))) ))) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT ))) ;) (return_statement return IDENT ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT < IDENT) )))) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (return_statement return (binary_expression IDENT + LIT) ;) })) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (return_statement return IDENT ;) })) (return_statement return IDENT ;)) })) (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 ;) })))
(function_definition "char * FUN_001131d0(long param_1,char *param_2)\n\n{\n  char cVar1;\n  uint uVar2;\n  uint uVar3;\n  int iVar4;\n  ulong uVar5;\n  size_t sVar6;\n  char *pcVar7;\n  uint *puVar8;\n  char *pcVar9;\n  uint local_2c;\n  \n  uVar2 = FUN_0013fb20(param_1,&local_2c,0,param_2);\n  puVar8 = &DAT_00190240;\n  pcVar9 = (char *)(param_1 + (ulong)local_2c);\n  uVar5 = 0;\n  while (*puVar8 != uVar2) {\n    uVar3 = (int)uVar5 + 1;\n    uVar5 = (ulong)uVar3;\n    puVar8 = puVar8 + 8;\n    if (uVar3 == 0x29) {\n      pcVar9 = (char *)FUN_001124d0(uVar2,pcVar9,param_2);\n      return pcVar9;\n    }\n  }\n  printf("  Tag_%s: ",(&PTR_s_CPU_raw_name_00190248)[uVar5 * 4]);\n  uVar3 = (&DAT_00190250)[uVar5 * 8];\n  if (uVar3 == 1) {\n    pcVar9 = (char *)FUN_001124d0(0xffffffff,pcVar9,param_2);\n    return pcVar9;\n  }\n  if (uVar3 != 0) {\n    if (uVar3 == 2) {\n      pcVar9 = (char *)FUN_001124d0(0,pcVar9,param_2);\n      return pcVar9;\n    }\n    if ((uVar3 & 0x80) == 0) {\n                    \n      __assert_fail("attr->type & 0x80","../../binutils/readelf.c",0x3890,"display_arm_attribute");\n    }\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 < ((&DAT_00190250)[uVar5 * 8] & 0x7f)) {\n      puts(*(char **)((&DAT_00190258)[uVar5 * 4] + (ulong)uVar2 * 8));\n      return pcVar9;\n    }\n    goto LAB_00113282;\n  }\n  switch(uVar2) {\n  case 7:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 0x4d) {\n      pcVar7 = "Microcontroller\n";\n      goto LAB_001133ad;\n    }\n    if (0x4d < uVar2) {\n      if (uVar2 == 0x52) {\n        pcVar7 = "Realtime\n";\n      }\n      else {\n        pcVar7 = "Application or Realtime\n";\n        if (uVar2 != 0x53) goto LAB_00113282;\n      }\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      pcVar7 = "Application\n";\n      if (uVar2 != 0x41) {\nLAB_00113282:\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }\n      goto LAB_001133ad;\n    }\n    break;\n  default:\n    pcVar7 = (char *)dcgettext(0,"<unknown: %d>\n",5);\n    printf(pcVar7,(ulong)uVar2);\n    return pcVar9;\n  case 0x18:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 1) {\nLAB_001135c3:\n      pcVar7 = "8-byte\n";\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      if (uVar2 != 2) {\nLAB_00113474:\n        if (uVar2 == 3) {\n          puts("??? 3");\n          return pcVar9;\n        }\n        if (uVar2 < 0xd) {\n          pcVar7 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);\n          printf(pcVar7,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));\n          return pcVar9;\n        }\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }\n      pcVar7 = "4-byte\n";\n      goto LAB_001133ad;\n    }\n    break;\n  case 0x19:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 1) {\n      pcVar7 = "8-byte, except leaf SP\n";\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      if (uVar2 != 2) goto LAB_00113474;\n      goto LAB_001135c3;\n    }\n    break;\n  case 0x20:\n    uVar5 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    pcVar7 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n    printf(pcVar7,uVar5 & 0xffffffff);\n    if (pcVar9 < param_2 + -1) {\n      FUN_001122a0((ulong)(param_2 + (-1 - (long)pcVar9)) & 0xffffffff,pcVar9);\n      sVar6 = strnlen(pcVar9,(size_t)(param_2 + (-1 - (long)pcVar9)));\n      param_2 = pcVar9 + sVar6 + 1;\n    }\n    else {\n      pcVar9 = (char *)dcgettext(0,"<corrupt>",5);\n      printf(pcVar9);\n    }\n    putc(10,stdout);\n    return param_2;\n  case 0x40:\n    pcVar7 = "True\n";\n    pcVar9 = pcVar9 + (pcVar9 < param_2);\n    goto LAB_001133ad;\n  case 0x41:\n    iVar4 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (iVar4 == 6) {\n      uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n      pcVar9 = pcVar9 + local_2c;\n      if (uVar2 < 0x12) {\n        puts((&PTR_DAT_00190bc0)[uVar2]);\n      }\n      else {\n        printf("??? (%d)\n",(ulong)uVar2);\n      }\n    }\n    else {\n      puts("???");\n    }\n    if (pcVar9 < param_2) {\n      pcVar7 = pcVar9 + 1;\n      if (*pcVar9 == '\0') {\n        return pcVar9 + 1;\n      }\n      do {\n        if (pcVar7 == param_2) {\n          return pcVar7;\n        }\n        pcVar9 = pcVar7 + 1;\n        cVar1 = *pcVar7;\n        pcVar7 = pcVar9;\n      } while (cVar1 != '\0');\n      return pcVar9;\n    }\n    return pcVar9;\n  }\n  pcVar7 = "None\n";\nLAB_001133ad:\n  pcVar7 = (char *)dcgettext(0,pcVar7,5);\n  printf(pcVar7);\n  return pcVar9;\n}" (primitive_type "char") (pointer_declarator "* FUN_001131d0(long param_1,char *param_2)" (* "*") (function_declarator "FUN_001131d0(long param_1,char *param_2)" (identifier "FUN_001131d0") (parameter_list "(long param_1,char *param_2)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "char *param_2" (primitive_type "char") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")")))) (compound_statement "{\n  char cVar1;\n  uint uVar2;\n  uint uVar3;\n  int iVar4;\n  ulong uVar5;\n  size_t sVar6;\n  char *pcVar7;\n  uint *puVar8;\n  char *pcVar9;\n  uint local_2c;\n  \n  uVar2 = FUN_0013fb20(param_1,&local_2c,0,param_2);\n  puVar8 = &DAT_00190240;\n  pcVar9 = (char *)(param_1 + (ulong)local_2c);\n  uVar5 = 0;\n  while (*puVar8 != uVar2) {\n    uVar3 = (int)uVar5 + 1;\n    uVar5 = (ulong)uVar3;\n    puVar8 = puVar8 + 8;\n    if (uVar3 == 0x29) {\n      pcVar9 = (char *)FUN_001124d0(uVar2,pcVar9,param_2);\n      return pcVar9;\n    }\n  }\n  printf("  Tag_%s: ",(&PTR_s_CPU_raw_name_00190248)[uVar5 * 4]);\n  uVar3 = (&DAT_00190250)[uVar5 * 8];\n  if (uVar3 == 1) {\n    pcVar9 = (char *)FUN_001124d0(0xffffffff,pcVar9,param_2);\n    return pcVar9;\n  }\n  if (uVar3 != 0) {\n    if (uVar3 == 2) {\n      pcVar9 = (char *)FUN_001124d0(0,pcVar9,param_2);\n      return pcVar9;\n    }\n    if ((uVar3 & 0x80) == 0) {\n                    \n      __assert_fail("attr->type & 0x80","../../binutils/readelf.c",0x3890,"display_arm_attribute");\n    }\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 < ((&DAT_00190250)[uVar5 * 8] & 0x7f)) {\n      puts(*(char **)((&DAT_00190258)[uVar5 * 4] + (ulong)uVar2 * 8));\n      return pcVar9;\n    }\n    goto LAB_00113282;\n  }\n  switch(uVar2) {\n  case 7:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 0x4d) {\n      pcVar7 = "Microcontroller\n";\n      goto LAB_001133ad;\n    }\n    if (0x4d < uVar2) {\n      if (uVar2 == 0x52) {\n        pcVar7 = "Realtime\n";\n      }\n      else {\n        pcVar7 = "Application or Realtime\n";\n        if (uVar2 != 0x53) goto LAB_00113282;\n      }\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      pcVar7 = "Application\n";\n      if (uVar2 != 0x41) {\nLAB_00113282:\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }\n      goto LAB_001133ad;\n    }\n    break;\n  default:\n    pcVar7 = (char *)dcgettext(0,"<unknown: %d>\n",5);\n    printf(pcVar7,(ulong)uVar2);\n    return pcVar9;\n  case 0x18:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 1) {\nLAB_001135c3:\n      pcVar7 = "8-byte\n";\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      if (uVar2 != 2) {\nLAB_00113474:\n        if (uVar2 == 3) {\n          puts("??? 3");\n          return pcVar9;\n        }\n        if (uVar2 < 0xd) {\n          pcVar7 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);\n          printf(pcVar7,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));\n          return pcVar9;\n        }\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }\n      pcVar7 = "4-byte\n";\n      goto LAB_001133ad;\n    }\n    break;\n  case 0x19:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 1) {\n      pcVar7 = "8-byte, except leaf SP\n";\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      if (uVar2 != 2) goto LAB_00113474;\n      goto LAB_001135c3;\n    }\n    break;\n  case 0x20:\n    uVar5 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    pcVar7 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n    printf(pcVar7,uVar5 & 0xffffffff);\n    if (pcVar9 < param_2 + -1) {\n      FUN_001122a0((ulong)(param_2 + (-1 - (long)pcVar9)) & 0xffffffff,pcVar9);\n      sVar6 = strnlen(pcVar9,(size_t)(param_2 + (-1 - (long)pcVar9)));\n      param_2 = pcVar9 + sVar6 + 1;\n    }\n    else {\n      pcVar9 = (char *)dcgettext(0,"<corrupt>",5);\n      printf(pcVar9);\n    }\n    putc(10,stdout);\n    return param_2;\n  case 0x40:\n    pcVar7 = "True\n";\n    pcVar9 = pcVar9 + (pcVar9 < param_2);\n    goto LAB_001133ad;\n  case 0x41:\n    iVar4 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (iVar4 == 6) {\n      uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n      pcVar9 = pcVar9 + local_2c;\n      if (uVar2 < 0x12) {\n        puts((&PTR_DAT_00190bc0)[uVar2]);\n      }\n      else {\n        printf("??? (%d)\n",(ulong)uVar2);\n      }\n    }\n    else {\n      puts("???");\n    }\n    if (pcVar9 < param_2) {\n      pcVar7 = pcVar9 + 1;\n      if (*pcVar9 == '\0') {\n        return pcVar9 + 1;\n      }\n      do {\n        if (pcVar7 == param_2) {\n          return pcVar7;\n        }\n        pcVar9 = pcVar7 + 1;\n        cVar1 = *pcVar7;\n        pcVar7 = pcVar9;\n      } while (cVar1 != '\0');\n      return pcVar9;\n    }\n    return pcVar9;\n  }\n  pcVar7 = "None\n";\nLAB_001133ad:\n  pcVar7 = (char *)dcgettext(0,pcVar7,5);\n  printf(pcVar7);\n  return pcVar9;\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "ulong uVar5;" (type_identifier "ulong") (identifier "uVar5") (; ";")) (declaration "size_t sVar6;" (primitive_type "size_t") (identifier "sVar6") (; ";")) (declaration "char *pcVar7;" (primitive_type "char") (pointer_declarator "*pcVar7" (* "*") (identifier "pcVar7")) (; ";")) (declaration "uint *puVar8;" (type_identifier "uint") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "char *pcVar9;" (primitive_type "char") (pointer_declarator "*pcVar9" (* "*") (identifier "pcVar9")) (; ";")) (declaration "uint local_2c;" (type_identifier "uint") (identifier "local_2c") (; ";")) (expression_statement "uVar2 = FUN_0013fb20(param_1,&local_2c,0,param_2);" (assignment_expression "uVar2 = FUN_0013fb20(param_1,&local_2c,0,param_2)" (identifier "uVar2") (= "=") (call_expression "FUN_0013fb20(param_1,&local_2c,0,param_2)" (identifier "FUN_0013fb20") (argument_list "(param_1,&local_2c,0,param_2)" (( "(") (identifier "param_1") (, ",") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")) (, ",") (number_literal "0") (, ",") (identifier "param_2") () ")")))) (; ";")) (expression_statement "puVar8 = &DAT_00190240;" (assignment_expression "puVar8 = &DAT_00190240" (identifier "puVar8") (= "=") (pointer_expression "&DAT_00190240" (& "&") (identifier "DAT_00190240"))) (; ";")) (expression_statement "pcVar9 = (char *)(param_1 + (ulong)local_2c);" (assignment_expression "pcVar9 = (char *)(param_1 + (ulong)local_2c)" (identifier "pcVar9") (= "=") (cast_expression "(char *)(param_1 + (ulong)local_2c)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + (ulong)local_2c)" (( "(") (binary_expression "param_1 + (ulong)local_2c" (identifier "param_1") (+ "+") (cast_expression "(ulong)local_2c" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_2c"))) () ")")))) (; ";")) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (while_statement "while (*puVar8 != uVar2) {\n    uVar3 = (int)uVar5 + 1;\n    uVar5 = (ulong)uVar3;\n    puVar8 = puVar8 + 8;\n    if (uVar3 == 0x29) {\n      pcVar9 = (char *)FUN_001124d0(uVar2,pcVar9,param_2);\n      return pcVar9;\n    }\n  }" (while "while") (parenthesized_expression "(*puVar8 != uVar2)" (( "(") (binary_expression "*puVar8 != uVar2" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (!= "!=") (identifier "uVar2")) () ")")) (compound_statement "{\n    uVar3 = (int)uVar5 + 1;\n    uVar5 = (ulong)uVar3;\n    puVar8 = puVar8 + 8;\n    if (uVar3 == 0x29) {\n      pcVar9 = (char *)FUN_001124d0(uVar2,pcVar9,param_2);\n      return pcVar9;\n    }\n  }" ({ "{") (expression_statement "uVar3 = (int)uVar5 + 1;" (assignment_expression "uVar3 = (int)uVar5 + 1" (identifier "uVar3") (= "=") (binary_expression "(int)uVar5 + 1" (cast_expression "(int)uVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar5")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar5 = (ulong)uVar3;" (assignment_expression "uVar5 = (ulong)uVar3" (identifier "uVar5") (= "=") (cast_expression "(ulong)uVar3" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar3"))) (; ";")) (expression_statement "puVar8 = puVar8 + 8;" (assignment_expression "puVar8 = puVar8 + 8" (identifier "puVar8") (= "=") (binary_expression "puVar8 + 8" (identifier "puVar8") (+ "+") (number_literal "8"))) (; ";")) (if_statement "if (uVar3 == 0x29) {\n      pcVar9 = (char *)FUN_001124d0(uVar2,pcVar9,param_2);\n      return pcVar9;\n    }" (if "if") (parenthesized_expression "(uVar3 == 0x29)" (( "(") (binary_expression "uVar3 == 0x29" (identifier "uVar3") (== "==") (number_literal "0x29")) () ")")) (compound_statement "{\n      pcVar9 = (char *)FUN_001124d0(uVar2,pcVar9,param_2);\n      return pcVar9;\n    }" ({ "{") (expression_statement "pcVar9 = (char *)FUN_001124d0(uVar2,pcVar9,param_2);" (assignment_expression "pcVar9 = (char *)FUN_001124d0(uVar2,pcVar9,param_2)" (identifier "pcVar9") (= "=") (cast_expression "(char *)FUN_001124d0(uVar2,pcVar9,param_2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001124d0(uVar2,pcVar9,param_2)" (identifier "FUN_001124d0") (argument_list "(uVar2,pcVar9,param_2)" (( "(") (identifier "uVar2") (, ",") (identifier "pcVar9") (, ",") (identifier "param_2") () ")"))))) (; ";")) (return_statement "return pcVar9;" (return "return") (identifier "pcVar9") (; ";")) (} "}"))) (} "}"))) (expression_statement "printf("  Tag_%s: ",(&PTR_s_CPU_raw_name_00190248)[uVar5 * 4]);" (call_expression "printf("  Tag_%s: ",(&PTR_s_CPU_raw_name_00190248)[uVar5 * 4])" (identifier "printf") (argument_list "("  Tag_%s: ",(&PTR_s_CPU_raw_name_00190248)[uVar5 * 4])" (( "(") (string_literal ""  Tag_%s: "" (" """) (string_content "  Tag_%s: ") (" """)) (, ",") (subscript_expression "(&PTR_s_CPU_raw_name_00190248)[uVar5 * 4]" (parenthesized_expression "(&PTR_s_CPU_raw_name_00190248)" (( "(") (pointer_expression "&PTR_s_CPU_raw_name_00190248" (& "&") (identifier "PTR_s_CPU_raw_name_00190248")) () ")")) ([ "[") (binary_expression "uVar5 * 4" (identifier "uVar5") (* "*") (number_literal "4")) (] "]")) () ")"))) (; ";")) (expression_statement "uVar3 = (&DAT_00190250)[uVar5 * 8];" (assignment_expression "uVar3 = (&DAT_00190250)[uVar5 * 8]" (identifier "uVar3") (= "=") (subscript_expression "(&DAT_00190250)[uVar5 * 8]" (parenthesized_expression "(&DAT_00190250)" (( "(") (pointer_expression "&DAT_00190250" (& "&") (identifier "DAT_00190250")) () ")")) ([ "[") (binary_expression "uVar5 * 8" (identifier "uVar5") (* "*") (number_literal "8")) (] "]"))) (; ";")) (if_statement "if (uVar3 == 1) {\n    pcVar9 = (char *)FUN_001124d0(0xffffffff,pcVar9,param_2);\n    return pcVar9;\n  }" (if "if") (parenthesized_expression "(uVar3 == 1)" (( "(") (binary_expression "uVar3 == 1" (identifier "uVar3") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n    pcVar9 = (char *)FUN_001124d0(0xffffffff,pcVar9,param_2);\n    return pcVar9;\n  }" ({ "{") (expression_statement "pcVar9 = (char *)FUN_001124d0(0xffffffff,pcVar9,param_2);" (assignment_expression "pcVar9 = (char *)FUN_001124d0(0xffffffff,pcVar9,param_2)" (identifier "pcVar9") (= "=") (cast_expression "(char *)FUN_001124d0(0xffffffff,pcVar9,param_2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001124d0(0xffffffff,pcVar9,param_2)" (identifier "FUN_001124d0") (argument_list "(0xffffffff,pcVar9,param_2)" (( "(") (number_literal "0xffffffff") (, ",") (identifier "pcVar9") (, ",") (identifier "param_2") () ")"))))) (; ";")) (return_statement "return pcVar9;" (return "return") (identifier "pcVar9") (; ";")) (} "}"))) (if_statement "if (uVar3 != 0) {\n    if (uVar3 == 2) {\n      pcVar9 = (char *)FUN_001124d0(0,pcVar9,param_2);\n      return pcVar9;\n    }\n    if ((uVar3 & 0x80) == 0) {\n                    \n      __assert_fail("attr->type & 0x80","../../binutils/readelf.c",0x3890,"display_arm_attribute");\n    }\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 < ((&DAT_00190250)[uVar5 * 8] & 0x7f)) {\n      puts(*(char **)((&DAT_00190258)[uVar5 * 4] + (ulong)uVar2 * 8));\n      return pcVar9;\n    }\n    goto LAB_00113282;\n  }" (if "if") (parenthesized_expression "(uVar3 != 0)" (( "(") (binary_expression "uVar3 != 0" (identifier "uVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if (uVar3 == 2) {\n      pcVar9 = (char *)FUN_001124d0(0,pcVar9,param_2);\n      return pcVar9;\n    }\n    if ((uVar3 & 0x80) == 0) {\n                    \n      __assert_fail("attr->type & 0x80","../../binutils/readelf.c",0x3890,"display_arm_attribute");\n    }\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 < ((&DAT_00190250)[uVar5 * 8] & 0x7f)) {\n      puts(*(char **)((&DAT_00190258)[uVar5 * 4] + (ulong)uVar2 * 8));\n      return pcVar9;\n    }\n    goto LAB_00113282;\n  }" ({ "{") (if_statement "if (uVar3 == 2) {\n      pcVar9 = (char *)FUN_001124d0(0,pcVar9,param_2);\n      return pcVar9;\n    }" (if "if") (parenthesized_expression "(uVar3 == 2)" (( "(") (binary_expression "uVar3 == 2" (identifier "uVar3") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n      pcVar9 = (char *)FUN_001124d0(0,pcVar9,param_2);\n      return pcVar9;\n    }" ({ "{") (expression_statement "pcVar9 = (char *)FUN_001124d0(0,pcVar9,param_2);" (assignment_expression "pcVar9 = (char *)FUN_001124d0(0,pcVar9,param_2)" (identifier "pcVar9") (= "=") (cast_expression "(char *)FUN_001124d0(0,pcVar9,param_2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001124d0(0,pcVar9,param_2)" (identifier "FUN_001124d0") (argument_list "(0,pcVar9,param_2)" (( "(") (number_literal "0") (, ",") (identifier "pcVar9") (, ",") (identifier "param_2") () ")"))))) (; ";")) (return_statement "return pcVar9;" (return "return") (identifier "pcVar9") (; ";")) (} "}"))) (if_statement "if ((uVar3 & 0x80) == 0) {\n                    \n      __assert_fail("attr->type & 0x80","../../binutils/readelf.c",0x3890,"display_arm_attribute");\n    }" (if "if") (parenthesized_expression "((uVar3 & 0x80) == 0)" (( "(") (binary_expression "(uVar3 & 0x80) == 0" (parenthesized_expression "(uVar3 & 0x80)" (( "(") (binary_expression "uVar3 & 0x80" (identifier "uVar3") (& "&") (number_literal "0x80")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n      __assert_fail("attr->type & 0x80","../../binutils/readelf.c",0x3890,"display_arm_attribute");\n    }" ({ "{") (expression_statement "__assert_fail("attr->type & 0x80","../../binutils/readelf.c",0x3890,"display_arm_attribute");" (call_expression "__assert_fail("attr->type & 0x80","../../binutils/readelf.c",0x3890,"display_arm_attribute")" (identifier "__assert_fail") (argument_list "("attr->type & 0x80","../../binutils/readelf.c",0x3890,"display_arm_attribute")" (( "(") (string_literal ""attr->type & 0x80"" (" """) (string_content "attr->type & 0x80") (" """)) (, ",") (string_literal ""../../binutils/readelf.c"" (" """) (string_content "../../binutils/readelf.c") (" """)) (, ",") (number_literal "0x3890") (, ",") (string_literal ""display_arm_attribute"" (" """) (string_content "display_arm_attribute") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);" (assignment_expression "uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2)" (identifier "uVar2") (= "=") (call_expression "FUN_0013fb20(pcVar9,&local_2c,0,param_2)" (identifier "FUN_0013fb20") (argument_list "(pcVar9,&local_2c,0,param_2)" (( "(") (identifier "pcVar9") (, ",") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")) (, ",") (number_literal "0") (, ",") (identifier "param_2") () ")")))) (; ";")) (expression_statement "pcVar9 = pcVar9 + local_2c;" (assignment_expression "pcVar9 = pcVar9 + local_2c" (identifier "pcVar9") (= "=") (binary_expression "pcVar9 + local_2c" (identifier "pcVar9") (+ "+") (identifier "local_2c"))) (; ";")) (if_statement "if (uVar2 < ((&DAT_00190250)[uVar5 * 8] & 0x7f)) {\n      puts(*(char **)((&DAT_00190258)[uVar5 * 4] + (ulong)uVar2 * 8));\n      return pcVar9;\n    }" (if "if") (parenthesized_expression "(uVar2 < ((&DAT_00190250)[uVar5 * 8] & 0x7f))" (( "(") (binary_expression "uVar2 < ((&DAT_00190250)[uVar5 * 8] & 0x7f)" (identifier "uVar2") (< "<") (parenthesized_expression "((&DAT_00190250)[uVar5 * 8] & 0x7f)" (( "(") (binary_expression "(&DAT_00190250)[uVar5 * 8] & 0x7f" (subscript_expression "(&DAT_00190250)[uVar5 * 8]" (parenthesized_expression "(&DAT_00190250)" (( "(") (pointer_expression "&DAT_00190250" (& "&") (identifier "DAT_00190250")) () ")")) ([ "[") (binary_expression "uVar5 * 8" (identifier "uVar5") (* "*") (number_literal "8")) (] "]")) (& "&") (number_literal "0x7f")) () ")"))) () ")")) (compound_statement "{\n      puts(*(char **)((&DAT_00190258)[uVar5 * 4] + (ulong)uVar2 * 8));\n      return pcVar9;\n    }" ({ "{") (expression_statement "puts(*(char **)((&DAT_00190258)[uVar5 * 4] + (ulong)uVar2 * 8));" (call_expression "puts(*(char **)((&DAT_00190258)[uVar5 * 4] + (ulong)uVar2 * 8))" (identifier "puts") (argument_list "(*(char **)((&DAT_00190258)[uVar5 * 4] + (ulong)uVar2 * 8))" (( "(") (pointer_expression "*(char **)((&DAT_00190258)[uVar5 * 4] + (ulong)uVar2 * 8)" (* "*") (cast_expression "(char **)((&DAT_00190258)[uVar5 * 4] + (ulong)uVar2 * 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((&DAT_00190258)[uVar5 * 4] + (ulong)uVar2 * 8)" (( "(") (binary_expression "(&DAT_00190258)[uVar5 * 4] + (ulong)uVar2 * 8" (subscript_expression "(&DAT_00190258)[uVar5 * 4]" (parenthesized_expression "(&DAT_00190258)" (( "(") (pointer_expression "&DAT_00190258" (& "&") (identifier "DAT_00190258")) () ")")) ([ "[") (binary_expression "uVar5 * 4" (identifier "uVar5") (* "*") (number_literal "4")) (] "]")) (+ "+") (binary_expression "(ulong)uVar2 * 8" (cast_expression "(ulong)uVar2" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar2")) (* "*") (number_literal "8"))) () ")")))) () ")"))) (; ";")) (return_statement "return pcVar9;" (return "return") (identifier "pcVar9") (; ";")) (} "}"))) (goto_statement "goto LAB_00113282;" (goto "goto") (statement_identifier "LAB_00113282") (; ";")) (} "}"))) (switch_statement "switch(uVar2) {\n  case 7:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 0x4d) {\n      pcVar7 = "Microcontroller\n";\n      goto LAB_001133ad;\n    }\n    if (0x4d < uVar2) {\n      if (uVar2 == 0x52) {\n        pcVar7 = "Realtime\n";\n      }\n      else {\n        pcVar7 = "Application or Realtime\n";\n        if (uVar2 != 0x53) goto LAB_00113282;\n      }\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      pcVar7 = "Application\n";\n      if (uVar2 != 0x41) {\nLAB_00113282:\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }\n      goto LAB_001133ad;\n    }\n    break;\n  default:\n    pcVar7 = (char *)dcgettext(0,"<unknown: %d>\n",5);\n    printf(pcVar7,(ulong)uVar2);\n    return pcVar9;\n  case 0x18:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 1) {\nLAB_001135c3:\n      pcVar7 = "8-byte\n";\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      if (uVar2 != 2) {\nLAB_00113474:\n        if (uVar2 == 3) {\n          puts("??? 3");\n          return pcVar9;\n        }\n        if (uVar2 < 0xd) {\n          pcVar7 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);\n          printf(pcVar7,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));\n          return pcVar9;\n        }\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }\n      pcVar7 = "4-byte\n";\n      goto LAB_001133ad;\n    }\n    break;\n  case 0x19:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 1) {\n      pcVar7 = "8-byte, except leaf SP\n";\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      if (uVar2 != 2) goto LAB_00113474;\n      goto LAB_001135c3;\n    }\n    break;\n  case 0x20:\n    uVar5 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    pcVar7 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n    printf(pcVar7,uVar5 & 0xffffffff);\n    if (pcVar9 < param_2 + -1) {\n      FUN_001122a0((ulong)(param_2 + (-1 - (long)pcVar9)) & 0xffffffff,pcVar9);\n      sVar6 = strnlen(pcVar9,(size_t)(param_2 + (-1 - (long)pcVar9)));\n      param_2 = pcVar9 + sVar6 + 1;\n    }\n    else {\n      pcVar9 = (char *)dcgettext(0,"<corrupt>",5);\n      printf(pcVar9);\n    }\n    putc(10,stdout);\n    return param_2;\n  case 0x40:\n    pcVar7 = "True\n";\n    pcVar9 = pcVar9 + (pcVar9 < param_2);\n    goto LAB_001133ad;\n  case 0x41:\n    iVar4 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (iVar4 == 6) {\n      uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n      pcVar9 = pcVar9 + local_2c;\n      if (uVar2 < 0x12) {\n        puts((&PTR_DAT_00190bc0)[uVar2]);\n      }\n      else {\n        printf("??? (%d)\n",(ulong)uVar2);\n      }\n    }\n    else {\n      puts("???");\n    }\n    if (pcVar9 < param_2) {\n      pcVar7 = pcVar9 + 1;\n      if (*pcVar9 == '\0') {\n        return pcVar9 + 1;\n      }\n      do {\n        if (pcVar7 == param_2) {\n          return pcVar7;\n        }\n        pcVar9 = pcVar7 + 1;\n        cVar1 = *pcVar7;\n        pcVar7 = pcVar9;\n      } while (cVar1 != '\0');\n      return pcVar9;\n    }\n    return pcVar9;\n  }" (switch "switch") (parenthesized_expression "(uVar2)" (( "(") (identifier "uVar2") () ")")) (compound_statement "{\n  case 7:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 0x4d) {\n      pcVar7 = "Microcontroller\n";\n      goto LAB_001133ad;\n    }\n    if (0x4d < uVar2) {\n      if (uVar2 == 0x52) {\n        pcVar7 = "Realtime\n";\n      }\n      else {\n        pcVar7 = "Application or Realtime\n";\n        if (uVar2 != 0x53) goto LAB_00113282;\n      }\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      pcVar7 = "Application\n";\n      if (uVar2 != 0x41) {\nLAB_00113282:\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }\n      goto LAB_001133ad;\n    }\n    break;\n  default:\n    pcVar7 = (char *)dcgettext(0,"<unknown: %d>\n",5);\n    printf(pcVar7,(ulong)uVar2);\n    return pcVar9;\n  case 0x18:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 1) {\nLAB_001135c3:\n      pcVar7 = "8-byte\n";\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      if (uVar2 != 2) {\nLAB_00113474:\n        if (uVar2 == 3) {\n          puts("??? 3");\n          return pcVar9;\n        }\n        if (uVar2 < 0xd) {\n          pcVar7 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);\n          printf(pcVar7,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));\n          return pcVar9;\n        }\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }\n      pcVar7 = "4-byte\n";\n      goto LAB_001133ad;\n    }\n    break;\n  case 0x19:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 1) {\n      pcVar7 = "8-byte, except leaf SP\n";\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      if (uVar2 != 2) goto LAB_00113474;\n      goto LAB_001135c3;\n    }\n    break;\n  case 0x20:\n    uVar5 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    pcVar7 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n    printf(pcVar7,uVar5 & 0xffffffff);\n    if (pcVar9 < param_2 + -1) {\n      FUN_001122a0((ulong)(param_2 + (-1 - (long)pcVar9)) & 0xffffffff,pcVar9);\n      sVar6 = strnlen(pcVar9,(size_t)(param_2 + (-1 - (long)pcVar9)));\n      param_2 = pcVar9 + sVar6 + 1;\n    }\n    else {\n      pcVar9 = (char *)dcgettext(0,"<corrupt>",5);\n      printf(pcVar9);\n    }\n    putc(10,stdout);\n    return param_2;\n  case 0x40:\n    pcVar7 = "True\n";\n    pcVar9 = pcVar9 + (pcVar9 < param_2);\n    goto LAB_001133ad;\n  case 0x41:\n    iVar4 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (iVar4 == 6) {\n      uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n      pcVar9 = pcVar9 + local_2c;\n      if (uVar2 < 0x12) {\n        puts((&PTR_DAT_00190bc0)[uVar2]);\n      }\n      else {\n        printf("??? (%d)\n",(ulong)uVar2);\n      }\n    }\n    else {\n      puts("???");\n    }\n    if (pcVar9 < param_2) {\n      pcVar7 = pcVar9 + 1;\n      if (*pcVar9 == '\0') {\n        return pcVar9 + 1;\n      }\n      do {\n        if (pcVar7 == param_2) {\n          return pcVar7;\n        }\n        pcVar9 = pcVar7 + 1;\n        cVar1 = *pcVar7;\n        pcVar7 = pcVar9;\n      } while (cVar1 != '\0');\n      return pcVar9;\n    }\n    return pcVar9;\n  }" ({ "{") (case_statement "case 7:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 0x4d) {\n      pcVar7 = "Microcontroller\n";\n      goto LAB_001133ad;\n    }\n    if (0x4d < uVar2) {\n      if (uVar2 == 0x52) {\n        pcVar7 = "Realtime\n";\n      }\n      else {\n        pcVar7 = "Application or Realtime\n";\n        if (uVar2 != 0x53) goto LAB_00113282;\n      }\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      pcVar7 = "Application\n";\n      if (uVar2 != 0x41) {\nLAB_00113282:\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }\n      goto LAB_001133ad;\n    }\n    break;" (case "case") (number_literal "7") (: ":") (expression_statement "uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);" (assignment_expression "uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2)" (identifier "uVar2") (= "=") (call_expression "FUN_0013fb20(pcVar9,&local_2c,0,param_2)" (identifier "FUN_0013fb20") (argument_list "(pcVar9,&local_2c,0,param_2)" (( "(") (identifier "pcVar9") (, ",") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")) (, ",") (number_literal "0") (, ",") (identifier "param_2") () ")")))) (; ";")) (expression_statement "pcVar9 = pcVar9 + local_2c;" (assignment_expression "pcVar9 = pcVar9 + local_2c" (identifier "pcVar9") (= "=") (binary_expression "pcVar9 + local_2c" (identifier "pcVar9") (+ "+") (identifier "local_2c"))) (; ";")) (if_statement "if (uVar2 == 0x4d) {\n      pcVar7 = "Microcontroller\n";\n      goto LAB_001133ad;\n    }" (if "if") (parenthesized_expression "(uVar2 == 0x4d)" (( "(") (binary_expression "uVar2 == 0x4d" (identifier "uVar2") (== "==") (number_literal "0x4d")) () ")")) (compound_statement "{\n      pcVar7 = "Microcontroller\n";\n      goto LAB_001133ad;\n    }" ({ "{") (expression_statement "pcVar7 = "Microcontroller\n";" (assignment_expression "pcVar7 = "Microcontroller\n"" (identifier "pcVar7") (= "=") (string_literal ""Microcontroller\n"" (" """) (string_content "Microcontroller") (escape_sequence "\n") (" """))) (; ";")) (goto_statement "goto LAB_001133ad;" (goto "goto") (statement_identifier "LAB_001133ad") (; ";")) (} "}"))) (if_statement "if (0x4d < uVar2) {\n      if (uVar2 == 0x52) {\n        pcVar7 = "Realtime\n";\n      }\n      else {\n        pcVar7 = "Application or Realtime\n";\n        if (uVar2 != 0x53) goto LAB_00113282;\n      }\n      goto LAB_001133ad;\n    }" (if "if") (parenthesized_expression "(0x4d < uVar2)" (( "(") (binary_expression "0x4d < uVar2" (number_literal "0x4d") (< "<") (identifier "uVar2")) () ")")) (compound_statement "{\n      if (uVar2 == 0x52) {\n        pcVar7 = "Realtime\n";\n      }\n      else {\n        pcVar7 = "Application or Realtime\n";\n        if (uVar2 != 0x53) goto LAB_00113282;\n      }\n      goto LAB_001133ad;\n    }" ({ "{") (if_statement "if (uVar2 == 0x52) {\n        pcVar7 = "Realtime\n";\n      }\n      else {\n        pcVar7 = "Application or Realtime\n";\n        if (uVar2 != 0x53) goto LAB_00113282;\n      }" (if "if") (parenthesized_expression "(uVar2 == 0x52)" (( "(") (binary_expression "uVar2 == 0x52" (identifier "uVar2") (== "==") (number_literal "0x52")) () ")")) (compound_statement "{\n        pcVar7 = "Realtime\n";\n      }" ({ "{") (expression_statement "pcVar7 = "Realtime\n";" (assignment_expression "pcVar7 = "Realtime\n"" (identifier "pcVar7") (= "=") (string_literal ""Realtime\n"" (" """) (string_content "Realtime") (escape_sequence "\n") (" """))) (; ";")) (} "}")) (else_clause "else {\n        pcVar7 = "Application or Realtime\n";\n        if (uVar2 != 0x53) goto LAB_00113282;\n      }" (else "else") (compound_statement "{\n        pcVar7 = "Application or Realtime\n";\n        if (uVar2 != 0x53) goto LAB_00113282;\n      }" ({ "{") (expression_statement "pcVar7 = "Application or Realtime\n";" (assignment_expression "pcVar7 = "Application or Realtime\n"" (identifier "pcVar7") (= "=") (string_literal ""Application or Realtime\n"" (" """) (string_content "Application or Realtime") (escape_sequence "\n") (" """))) (; ";")) (if_statement "if (uVar2 != 0x53) goto LAB_00113282;" (if "if") (parenthesized_expression "(uVar2 != 0x53)" (( "(") (binary_expression "uVar2 != 0x53" (identifier "uVar2") (!= "!=") (number_literal "0x53")) () ")")) (goto_statement "goto LAB_00113282;" (goto "goto") (statement_identifier "LAB_00113282") (; ";"))) (} "}")))) (goto_statement "goto LAB_001133ad;" (goto "goto") (statement_identifier "LAB_001133ad") (; ";")) (} "}"))) (if_statement "if (uVar2 != 0) {\n      pcVar7 = "Application\n";\n      if (uVar2 != 0x41) {\nLAB_00113282:\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }\n      goto LAB_001133ad;\n    }" (if "if") (parenthesized_expression "(uVar2 != 0)" (( "(") (binary_expression "uVar2 != 0" (identifier "uVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar7 = "Application\n";\n      if (uVar2 != 0x41) {\nLAB_00113282:\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }\n      goto LAB_001133ad;\n    }" ({ "{") (expression_statement "pcVar7 = "Application\n";" (assignment_expression "pcVar7 = "Application\n"" (identifier "pcVar7") (= "=") (string_literal ""Application\n"" (" """) (string_content "Application") (escape_sequence "\n") (" """))) (; ";")) (if_statement "if (uVar2 != 0x41) {\nLAB_00113282:\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }" (if "if") (parenthesized_expression "(uVar2 != 0x41)" (( "(") (binary_expression "uVar2 != 0x41" (identifier "uVar2") (!= "!=") (number_literal "0x41")) () ")")) (compound_statement "{\nLAB_00113282:\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }" ({ "{") (labeled_statement "LAB_00113282:\n        printf("??? (%d)\n",(ulong)uVar2);" (statement_identifier "LAB_00113282") (: ":") (expression_statement "printf("??? (%d)\n",(ulong)uVar2);" (call_expression "printf("??? (%d)\n",(ulong)uVar2)" (identifier "printf") (argument_list "("??? (%d)\n",(ulong)uVar2)" (( "(") (string_literal ""??? (%d)\n"" (" """) (string_content "??? (%d)") (escape_sequence "\n") (" """)) (, ",") (cast_expression "(ulong)uVar2" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar2")) () ")"))) (; ";"))) (return_statement "return pcVar9;" (return "return") (identifier "pcVar9") (; ";")) (} "}"))) (goto_statement "goto LAB_001133ad;" (goto "goto") (statement_identifier "LAB_001133ad") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n    pcVar7 = (char *)dcgettext(0,"<unknown: %d>\n",5);\n    printf(pcVar7,(ulong)uVar2);\n    return pcVar9;" (default "default") (: ":") (expression_statement "pcVar7 = (char *)dcgettext(0,"<unknown: %d>\n",5);" (assignment_expression "pcVar7 = (char *)dcgettext(0,"<unknown: %d>\n",5)" (identifier "pcVar7") (= "=") (cast_expression "(char *)dcgettext(0,"<unknown: %d>\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"<unknown: %d>\n",5)" (identifier "dcgettext") (argument_list "(0,"<unknown: %d>\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""<unknown: %d>\n"" (" """) (string_content "<unknown: %d>") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar7,(ulong)uVar2);" (call_expression "printf(pcVar7,(ulong)uVar2)" (identifier "printf") (argument_list "(pcVar7,(ulong)uVar2)" (( "(") (identifier "pcVar7") (, ",") (cast_expression "(ulong)uVar2" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar2")) () ")"))) (; ";")) (return_statement "return pcVar9;" (return "return") (identifier "pcVar9") (; ";"))) (case_statement "case 0x18:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 1) {\nLAB_001135c3:\n      pcVar7 = "8-byte\n";\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      if (uVar2 != 2) {\nLAB_00113474:\n        if (uVar2 == 3) {\n          puts("??? 3");\n          return pcVar9;\n        }\n        if (uVar2 < 0xd) {\n          pcVar7 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);\n          printf(pcVar7,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));\n          return pcVar9;\n        }\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }\n      pcVar7 = "4-byte\n";\n      goto LAB_001133ad;\n    }\n    break;" (case "case") (number_literal "0x18") (: ":") (expression_statement "uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);" (assignment_expression "uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2)" (identifier "uVar2") (= "=") (call_expression "FUN_0013fb20(pcVar9,&local_2c,0,param_2)" (identifier "FUN_0013fb20") (argument_list "(pcVar9,&local_2c,0,param_2)" (( "(") (identifier "pcVar9") (, ",") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")) (, ",") (number_literal "0") (, ",") (identifier "param_2") () ")")))) (; ";")) (expression_statement "pcVar9 = pcVar9 + local_2c;" (assignment_expression "pcVar9 = pcVar9 + local_2c" (identifier "pcVar9") (= "=") (binary_expression "pcVar9 + local_2c" (identifier "pcVar9") (+ "+") (identifier "local_2c"))) (; ";")) (if_statement "if (uVar2 == 1) {\nLAB_001135c3:\n      pcVar7 = "8-byte\n";\n      goto LAB_001133ad;\n    }" (if "if") (parenthesized_expression "(uVar2 == 1)" (( "(") (binary_expression "uVar2 == 1" (identifier "uVar2") (== "==") (number_literal "1")) () ")")) (compound_statement "{\nLAB_001135c3:\n      pcVar7 = "8-byte\n";\n      goto LAB_001133ad;\n    }" ({ "{") (labeled_statement "LAB_001135c3:\n      pcVar7 = "8-byte\n";" (statement_identifier "LAB_001135c3") (: ":") (expression_statement "pcVar7 = "8-byte\n";" (assignment_expression "pcVar7 = "8-byte\n"" (identifier "pcVar7") (= "=") (string_literal ""8-byte\n"" (" """) (string_content "8-byte") (escape_sequence "\n") (" """))) (; ";"))) (goto_statement "goto LAB_001133ad;" (goto "goto") (statement_identifier "LAB_001133ad") (; ";")) (} "}"))) (if_statement "if (uVar2 != 0) {\n      if (uVar2 != 2) {\nLAB_00113474:\n        if (uVar2 == 3) {\n          puts("??? 3");\n          return pcVar9;\n        }\n        if (uVar2 < 0xd) {\n          pcVar7 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);\n          printf(pcVar7,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));\n          return pcVar9;\n        }\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }\n      pcVar7 = "4-byte\n";\n      goto LAB_001133ad;\n    }" (if "if") (parenthesized_expression "(uVar2 != 0)" (( "(") (binary_expression "uVar2 != 0" (identifier "uVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if (uVar2 != 2) {\nLAB_00113474:\n        if (uVar2 == 3) {\n          puts("??? 3");\n          return pcVar9;\n        }\n        if (uVar2 < 0xd) {\n          pcVar7 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);\n          printf(pcVar7,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));\n          return pcVar9;\n        }\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }\n      pcVar7 = "4-byte\n";\n      goto LAB_001133ad;\n    }" ({ "{") (if_statement "if (uVar2 != 2) {\nLAB_00113474:\n        if (uVar2 == 3) {\n          puts("??? 3");\n          return pcVar9;\n        }\n        if (uVar2 < 0xd) {\n          pcVar7 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);\n          printf(pcVar7,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));\n          return pcVar9;\n        }\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }" (if "if") (parenthesized_expression "(uVar2 != 2)" (( "(") (binary_expression "uVar2 != 2" (identifier "uVar2") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\nLAB_00113474:\n        if (uVar2 == 3) {\n          puts("??? 3");\n          return pcVar9;\n        }\n        if (uVar2 < 0xd) {\n          pcVar7 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);\n          printf(pcVar7,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));\n          return pcVar9;\n        }\n        printf("??? (%d)\n",(ulong)uVar2);\n        return pcVar9;\n      }" ({ "{") (labeled_statement "LAB_00113474:\n        if (uVar2 == 3) {\n          puts("??? 3");\n          return pcVar9;\n        }" (statement_identifier "LAB_00113474") (: ":") (if_statement "if (uVar2 == 3) {\n          puts("??? 3");\n          return pcVar9;\n        }" (if "if") (parenthesized_expression "(uVar2 == 3)" (( "(") (binary_expression "uVar2 == 3" (identifier "uVar2") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n          puts("??? 3");\n          return pcVar9;\n        }" ({ "{") (expression_statement "puts("??? 3");" (call_expression "puts("??? 3")" (identifier "puts") (argument_list "("??? 3")" (( "(") (string_literal ""??? 3"" (" """) (string_content "??? 3") (" """)) () ")"))) (; ";")) (return_statement "return pcVar9;" (return "return") (identifier "pcVar9") (; ";")) (} "}")))) (if_statement "if (uVar2 < 0xd) {\n          pcVar7 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);\n          printf(pcVar7,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));\n          return pcVar9;\n        }" (if "if") (parenthesized_expression "(uVar2 < 0xd)" (( "(") (binary_expression "uVar2 < 0xd" (identifier "uVar2") (< "<") (number_literal "0xd")) () ")")) (compound_statement "{\n          pcVar7 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);\n          printf(pcVar7,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));\n          return pcVar9;\n        }" ({ "{") (expression_statement "pcVar7 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);" (assignment_expression "pcVar7 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5)" (identifier "pcVar7") (= "=") (cast_expression "(char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"8-byte and up to %d-byte extended\n",5)" (identifier "dcgettext") (argument_list "(0,"8-byte and up to %d-byte extended\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""8-byte and up to %d-byte extended\n"" (" """) (string_content "8-byte and up to %d-byte extended") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar7,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));" (call_expression "printf(pcVar7,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)))" (identifier "printf") (argument_list "(pcVar7,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)))" (( "(") (identifier "pcVar7") (, ",") (call_expression "(ulong)(uint)(1 << ((byte)uVar2 & 0x1f))" (call_expression "(ulong)(uint)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uint)" (( "(") (identifier "uint") () ")"))) (argument_list "(1 << ((byte)uVar2 & 0x1f))" (( "(") (binary_expression "1 << ((byte)uVar2 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "((byte)uVar2 & 0x1f)" (( "(") (binary_expression "(byte)uVar2 & 0x1f" (cast_expression "(byte)uVar2" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar2")) (& "&") (number_literal "0x1f")) () ")"))) () ")"))) () ")"))) (; ";")) (return_statement "return pcVar9;" (return "return") (identifier "pcVar9") (; ";")) (} "}"))) (expression_statement "printf("??? (%d)\n",(ulong)uVar2);" (call_expression "printf("??? (%d)\n",(ulong)uVar2)" (identifier "printf") (argument_list "("??? (%d)\n",(ulong)uVar2)" (( "(") (string_literal ""??? (%d)\n"" (" """) (string_content "??? (%d)") (escape_sequence "\n") (" """)) (, ",") (cast_expression "(ulong)uVar2" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar2")) () ")"))) (; ";")) (return_statement "return pcVar9;" (return "return") (identifier "pcVar9") (; ";")) (} "}"))) (expression_statement "pcVar7 = "4-byte\n";" (assignment_expression "pcVar7 = "4-byte\n"" (identifier "pcVar7") (= "=") (string_literal ""4-byte\n"" (" """) (string_content "4-byte") (escape_sequence "\n") (" """))) (; ";")) (goto_statement "goto LAB_001133ad;" (goto "goto") (statement_identifier "LAB_001133ad") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x19:\n    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (uVar2 == 1) {\n      pcVar7 = "8-byte, except leaf SP\n";\n      goto LAB_001133ad;\n    }\n    if (uVar2 != 0) {\n      if (uVar2 != 2) goto LAB_00113474;\n      goto LAB_001135c3;\n    }\n    break;" (case "case") (number_literal "0x19") (: ":") (expression_statement "uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);" (assignment_expression "uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2)" (identifier "uVar2") (= "=") (call_expression "FUN_0013fb20(pcVar9,&local_2c,0,param_2)" (identifier "FUN_0013fb20") (argument_list "(pcVar9,&local_2c,0,param_2)" (( "(") (identifier "pcVar9") (, ",") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")) (, ",") (number_literal "0") (, ",") (identifier "param_2") () ")")))) (; ";")) (expression_statement "pcVar9 = pcVar9 + local_2c;" (assignment_expression "pcVar9 = pcVar9 + local_2c" (identifier "pcVar9") (= "=") (binary_expression "pcVar9 + local_2c" (identifier "pcVar9") (+ "+") (identifier "local_2c"))) (; ";")) (if_statement "if (uVar2 == 1) {\n      pcVar7 = "8-byte, except leaf SP\n";\n      goto LAB_001133ad;\n    }" (if "if") (parenthesized_expression "(uVar2 == 1)" (( "(") (binary_expression "uVar2 == 1" (identifier "uVar2") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n      pcVar7 = "8-byte, except leaf SP\n";\n      goto LAB_001133ad;\n    }" ({ "{") (expression_statement "pcVar7 = "8-byte, except leaf SP\n";" (assignment_expression "pcVar7 = "8-byte, except leaf SP\n"" (identifier "pcVar7") (= "=") (string_literal ""8-byte, except leaf SP\n"" (" """) (string_content "8-byte, except leaf SP") (escape_sequence "\n") (" """))) (; ";")) (goto_statement "goto LAB_001133ad;" (goto "goto") (statement_identifier "LAB_001133ad") (; ";")) (} "}"))) (if_statement "if (uVar2 != 0) {\n      if (uVar2 != 2) goto LAB_00113474;\n      goto LAB_001135c3;\n    }" (if "if") (parenthesized_expression "(uVar2 != 0)" (( "(") (binary_expression "uVar2 != 0" (identifier "uVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if (uVar2 != 2) goto LAB_00113474;\n      goto LAB_001135c3;\n    }" ({ "{") (if_statement "if (uVar2 != 2) goto LAB_00113474;" (if "if") (parenthesized_expression "(uVar2 != 2)" (( "(") (binary_expression "uVar2 != 2" (identifier "uVar2") (!= "!=") (number_literal "2")) () ")")) (goto_statement "goto LAB_00113474;" (goto "goto") (statement_identifier "LAB_00113474") (; ";"))) (goto_statement "goto LAB_001135c3;" (goto "goto") (statement_identifier "LAB_001135c3") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x20:\n    uVar5 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    pcVar7 = (char *)dcgettext(0,"flag = %d, vendor = ",5);\n    printf(pcVar7,uVar5 & 0xffffffff);\n    if (pcVar9 < param_2 + -1) {\n      FUN_001122a0((ulong)(param_2 + (-1 - (long)pcVar9)) & 0xffffffff,pcVar9);\n      sVar6 = strnlen(pcVar9,(size_t)(param_2 + (-1 - (long)pcVar9)));\n      param_2 = pcVar9 + sVar6 + 1;\n    }\n    else {\n      pcVar9 = (char *)dcgettext(0,"<corrupt>",5);\n      printf(pcVar9);\n    }\n    putc(10,stdout);\n    return param_2;" (case "case") (number_literal "0x20") (: ":") (expression_statement "uVar5 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);" (assignment_expression "uVar5 = FUN_0013fb20(pcVar9,&local_2c,0,param_2)" (identifier "uVar5") (= "=") (call_expression "FUN_0013fb20(pcVar9,&local_2c,0,param_2)" (identifier "FUN_0013fb20") (argument_list "(pcVar9,&local_2c,0,param_2)" (( "(") (identifier "pcVar9") (, ",") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")) (, ",") (number_literal "0") (, ",") (identifier "param_2") () ")")))) (; ";")) (expression_statement "pcVar9 = pcVar9 + local_2c;" (assignment_expression "pcVar9 = pcVar9 + local_2c" (identifier "pcVar9") (= "=") (binary_expression "pcVar9 + local_2c" (identifier "pcVar9") (+ "+") (identifier "local_2c"))) (; ";")) (expression_statement "pcVar7 = (char *)dcgettext(0,"flag = %d, vendor = ",5);" (assignment_expression "pcVar7 = (char *)dcgettext(0,"flag = %d, vendor = ",5)" (identifier "pcVar7") (= "=") (cast_expression "(char *)dcgettext(0,"flag = %d, vendor = ",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"flag = %d, vendor = ",5)" (identifier "dcgettext") (argument_list "(0,"flag = %d, vendor = ",5)" (( "(") (number_literal "0") (, ",") (string_literal ""flag = %d, vendor = "" (" """) (string_content "flag = %d, vendor = ") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar7,uVar5 & 0xffffffff);" (call_expression "printf(pcVar7,uVar5 & 0xffffffff)" (identifier "printf") (argument_list "(pcVar7,uVar5 & 0xffffffff)" (( "(") (identifier "pcVar7") (, ",") (binary_expression "uVar5 & 0xffffffff" (identifier "uVar5") (& "&") (number_literal "0xffffffff")) () ")"))) (; ";")) (if_statement "if (pcVar9 < param_2 + -1) {\n      FUN_001122a0((ulong)(param_2 + (-1 - (long)pcVar9)) & 0xffffffff,pcVar9);\n      sVar6 = strnlen(pcVar9,(size_t)(param_2 + (-1 - (long)pcVar9)));\n      param_2 = pcVar9 + sVar6 + 1;\n    }\n    else {\n      pcVar9 = (char *)dcgettext(0,"<corrupt>",5);\n      printf(pcVar9);\n    }" (if "if") (parenthesized_expression "(pcVar9 < param_2 + -1)" (( "(") (binary_expression "pcVar9 < param_2 + -1" (identifier "pcVar9") (< "<") (binary_expression "param_2 + -1" (identifier "param_2") (+ "+") (number_literal "-1"))) () ")")) (compound_statement "{\n      FUN_001122a0((ulong)(param_2 + (-1 - (long)pcVar9)) & 0xffffffff,pcVar9);\n      sVar6 = strnlen(pcVar9,(size_t)(param_2 + (-1 - (long)pcVar9)));\n      param_2 = pcVar9 + sVar6 + 1;\n    }" ({ "{") (expression_statement "FUN_001122a0((ulong)(param_2 + (-1 - (long)pcVar9)) & 0xffffffff,pcVar9);" (call_expression "FUN_001122a0((ulong)(param_2 + (-1 - (long)pcVar9)) & 0xffffffff,pcVar9)" (identifier "FUN_001122a0") (argument_list "((ulong)(param_2 + (-1 - (long)pcVar9)) & 0xffffffff,pcVar9)" (( "(") (binary_expression "(ulong)(param_2 + (-1 - (long)pcVar9)) & 0xffffffff" (call_expression "(ulong)(param_2 + (-1 - (long)pcVar9))" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(param_2 + (-1 - (long)pcVar9))" (( "(") (binary_expression "param_2 + (-1 - (long)pcVar9)" (identifier "param_2") (+ "+") (parenthesized_expression "(-1 - (long)pcVar9)" (( "(") (binary_expression "-1 - (long)pcVar9" (number_literal "-1") (- "-") (cast_expression "(long)pcVar9" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pcVar9"))) () ")"))) () ")"))) (& "&") (number_literal "0xffffffff")) (, ",") (identifier "pcVar9") () ")"))) (; ";")) (expression_statement "sVar6 = strnlen(pcVar9,(size_t)(param_2 + (-1 - (long)pcVar9)));" (assignment_expression "sVar6 = strnlen(pcVar9,(size_t)(param_2 + (-1 - (long)pcVar9)))" (identifier "sVar6") (= "=") (call_expression "strnlen(pcVar9,(size_t)(param_2 + (-1 - (long)pcVar9)))" (identifier "strnlen") (argument_list "(pcVar9,(size_t)(param_2 + (-1 - (long)pcVar9)))" (( "(") (identifier "pcVar9") (, ",") (cast_expression "(size_t)(param_2 + (-1 - (long)pcVar9))" (( "(") (type_descriptor "size_t" (primitive_type "size_t")) () ")") (parenthesized_expression "(param_2 + (-1 - (long)pcVar9))" (( "(") (binary_expression "param_2 + (-1 - (long)pcVar9)" (identifier "param_2") (+ "+") (parenthesized_expression "(-1 - (long)pcVar9)" (( "(") (binary_expression "-1 - (long)pcVar9" (number_literal "-1") (- "-") (cast_expression "(long)pcVar9" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pcVar9"))) () ")"))) () ")"))) () ")")))) (; ";")) (expression_statement "param_2 = pcVar9 + sVar6 + 1;" (assignment_expression "param_2 = pcVar9 + sVar6 + 1" (identifier "param_2") (= "=") (binary_expression "pcVar9 + sVar6 + 1" (binary_expression "pcVar9 + sVar6" (identifier "pcVar9") (+ "+") (identifier "sVar6")) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n      pcVar9 = (char *)dcgettext(0,"<corrupt>",5);\n      printf(pcVar9);\n    }" (else "else") (compound_statement "{\n      pcVar9 = (char *)dcgettext(0,"<corrupt>",5);\n      printf(pcVar9);\n    }" ({ "{") (expression_statement "pcVar9 = (char *)dcgettext(0,"<corrupt>",5);" (assignment_expression "pcVar9 = (char *)dcgettext(0,"<corrupt>",5)" (identifier "pcVar9") (= "=") (cast_expression "(char *)dcgettext(0,"<corrupt>",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"<corrupt>",5)" (identifier "dcgettext") (argument_list "(0,"<corrupt>",5)" (( "(") (number_literal "0") (, ",") (string_literal ""<corrupt>"" (" """) (string_content "<corrupt>") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar9);" (call_expression "printf(pcVar9)" (identifier "printf") (argument_list "(pcVar9)" (( "(") (identifier "pcVar9") () ")"))) (; ";")) (} "}")))) (expression_statement "putc(10,stdout);" (call_expression "putc(10,stdout)" (identifier "putc") (argument_list "(10,stdout)" (( "(") (number_literal "10") (, ",") (identifier "stdout") () ")"))) (; ";")) (return_statement "return param_2;" (return "return") (identifier "param_2") (; ";"))) (case_statement "case 0x40:\n    pcVar7 = "True\n";\n    pcVar9 = pcVar9 + (pcVar9 < param_2);\n    goto LAB_001133ad;" (case "case") (number_literal "0x40") (: ":") (expression_statement "pcVar7 = "True\n";" (assignment_expression "pcVar7 = "True\n"" (identifier "pcVar7") (= "=") (string_literal ""True\n"" (" """) (string_content "True") (escape_sequence "\n") (" """))) (; ";")) (expression_statement "pcVar9 = pcVar9 + (pcVar9 < param_2);" (assignment_expression "pcVar9 = pcVar9 + (pcVar9 < param_2)" (identifier "pcVar9") (= "=") (binary_expression "pcVar9 + (pcVar9 < param_2)" (identifier "pcVar9") (+ "+") (parenthesized_expression "(pcVar9 < param_2)" (( "(") (binary_expression "pcVar9 < param_2" (identifier "pcVar9") (< "<") (identifier "param_2")) () ")")))) (; ";")) (goto_statement "goto LAB_001133ad;" (goto "goto") (statement_identifier "LAB_001133ad") (; ";"))) (case_statement "case 0x41:\n    iVar4 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n    pcVar9 = pcVar9 + local_2c;\n    if (iVar4 == 6) {\n      uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n      pcVar9 = pcVar9 + local_2c;\n      if (uVar2 < 0x12) {\n        puts((&PTR_DAT_00190bc0)[uVar2]);\n      }\n      else {\n        printf("??? (%d)\n",(ulong)uVar2);\n      }\n    }\n    else {\n      puts("???");\n    }\n    if (pcVar9 < param_2) {\n      pcVar7 = pcVar9 + 1;\n      if (*pcVar9 == '\0') {\n        return pcVar9 + 1;\n      }\n      do {\n        if (pcVar7 == param_2) {\n          return pcVar7;\n        }\n        pcVar9 = pcVar7 + 1;\n        cVar1 = *pcVar7;\n        pcVar7 = pcVar9;\n      } while (cVar1 != '\0');\n      return pcVar9;\n    }\n    return pcVar9;" (case "case") (number_literal "0x41") (: ":") (expression_statement "iVar4 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);" (assignment_expression "iVar4 = FUN_0013fb20(pcVar9,&local_2c,0,param_2)" (identifier "iVar4") (= "=") (call_expression "FUN_0013fb20(pcVar9,&local_2c,0,param_2)" (identifier "FUN_0013fb20") (argument_list "(pcVar9,&local_2c,0,param_2)" (( "(") (identifier "pcVar9") (, ",") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")) (, ",") (number_literal "0") (, ",") (identifier "param_2") () ")")))) (; ";")) (expression_statement "pcVar9 = pcVar9 + local_2c;" (assignment_expression "pcVar9 = pcVar9 + local_2c" (identifier "pcVar9") (= "=") (binary_expression "pcVar9 + local_2c" (identifier "pcVar9") (+ "+") (identifier "local_2c"))) (; ";")) (if_statement "if (iVar4 == 6) {\n      uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n      pcVar9 = pcVar9 + local_2c;\n      if (uVar2 < 0x12) {\n        puts((&PTR_DAT_00190bc0)[uVar2]);\n      }\n      else {\n        printf("??? (%d)\n",(ulong)uVar2);\n      }\n    }\n    else {\n      puts("???");\n    }" (if "if") (parenthesized_expression "(iVar4 == 6)" (( "(") (binary_expression "iVar4 == 6" (identifier "iVar4") (== "==") (number_literal "6")) () ")")) (compound_statement "{\n      uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);\n      pcVar9 = pcVar9 + local_2c;\n      if (uVar2 < 0x12) {\n        puts((&PTR_DAT_00190bc0)[uVar2]);\n      }\n      else {\n        printf("??? (%d)\n",(ulong)uVar2);\n      }\n    }" ({ "{") (expression_statement "uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);" (assignment_expression "uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2)" (identifier "uVar2") (= "=") (call_expression "FUN_0013fb20(pcVar9,&local_2c,0,param_2)" (identifier "FUN_0013fb20") (argument_list "(pcVar9,&local_2c,0,param_2)" (( "(") (identifier "pcVar9") (, ",") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")) (, ",") (number_literal "0") (, ",") (identifier "param_2") () ")")))) (; ";")) (expression_statement "pcVar9 = pcVar9 + local_2c;" (assignment_expression "pcVar9 = pcVar9 + local_2c" (identifier "pcVar9") (= "=") (binary_expression "pcVar9 + local_2c" (identifier "pcVar9") (+ "+") (identifier "local_2c"))) (; ";")) (if_statement "if (uVar2 < 0x12) {\n        puts((&PTR_DAT_00190bc0)[uVar2]);\n      }\n      else {\n        printf("??? (%d)\n",(ulong)uVar2);\n      }" (if "if") (parenthesized_expression "(uVar2 < 0x12)" (( "(") (binary_expression "uVar2 < 0x12" (identifier "uVar2") (< "<") (number_literal "0x12")) () ")")) (compound_statement "{\n        puts((&PTR_DAT_00190bc0)[uVar2]);\n      }" ({ "{") (expression_statement "puts((&PTR_DAT_00190bc0)[uVar2]);" (call_expression "puts((&PTR_DAT_00190bc0)[uVar2])" (identifier "puts") (argument_list "((&PTR_DAT_00190bc0)[uVar2])" (( "(") (subscript_expression "(&PTR_DAT_00190bc0)[uVar2]" (parenthesized_expression "(&PTR_DAT_00190bc0)" (( "(") (pointer_expression "&PTR_DAT_00190bc0" (& "&") (identifier "PTR_DAT_00190bc0")) () ")")) ([ "[") (identifier "uVar2") (] "]")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n        printf("??? (%d)\n",(ulong)uVar2);\n      }" (else "else") (compound_statement "{\n        printf("??? (%d)\n",(ulong)uVar2);\n      }" ({ "{") (expression_statement "printf("??? (%d)\n",(ulong)uVar2);" (call_expression "printf("??? (%d)\n",(ulong)uVar2)" (identifier "printf") (argument_list "("??? (%d)\n",(ulong)uVar2)" (( "(") (string_literal ""??? (%d)\n"" (" """) (string_content "??? (%d)") (escape_sequence "\n") (" """)) (, ",") (cast_expression "(ulong)uVar2" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar2")) () ")"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n      puts("???");\n    }" (else "else") (compound_statement "{\n      puts("???");\n    }" ({ "{") (expression_statement "puts("???");" (call_expression "puts("???")" (identifier "puts") (argument_list "("???")" (( "(") (string_literal ""???"" (" """) (string_content "???") (" """)) () ")"))) (; ";")) (} "}")))) (if_statement "if (pcVar9 < param_2) {\n      pcVar7 = pcVar9 + 1;\n      if (*pcVar9 == '\0') {\n        return pcVar9 + 1;\n      }\n      do {\n        if (pcVar7 == param_2) {\n          return pcVar7;\n        }\n        pcVar9 = pcVar7 + 1;\n        cVar1 = *pcVar7;\n        pcVar7 = pcVar9;\n      } while (cVar1 != '\0');\n      return pcVar9;\n    }" (if "if") (parenthesized_expression "(pcVar9 < param_2)" (( "(") (binary_expression "pcVar9 < param_2" (identifier "pcVar9") (< "<") (identifier "param_2")) () ")")) (compound_statement "{\n      pcVar7 = pcVar9 + 1;\n      if (*pcVar9 == '\0') {\n        return pcVar9 + 1;\n      }\n      do {\n        if (pcVar7 == param_2) {\n          return pcVar7;\n        }\n        pcVar9 = pcVar7 + 1;\n        cVar1 = *pcVar7;\n        pcVar7 = pcVar9;\n      } while (cVar1 != '\0');\n      return pcVar9;\n    }" ({ "{") (expression_statement "pcVar7 = pcVar9 + 1;" (assignment_expression "pcVar7 = pcVar9 + 1" (identifier "pcVar7") (= "=") (binary_expression "pcVar9 + 1" (identifier "pcVar9") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (*pcVar9 == '\0') {\n        return pcVar9 + 1;\n      }" (if "if") (parenthesized_expression "(*pcVar9 == '\0')" (( "(") (binary_expression "*pcVar9 == '\0'" (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        return pcVar9 + 1;\n      }" ({ "{") (return_statement "return pcVar9 + 1;" (return "return") (binary_expression "pcVar9 + 1" (identifier "pcVar9") (+ "+") (number_literal "1")) (; ";")) (} "}"))) (do_statement "do {\n        if (pcVar7 == param_2) {\n          return pcVar7;\n        }\n        pcVar9 = pcVar7 + 1;\n        cVar1 = *pcVar7;\n        pcVar7 = pcVar9;\n      } while (cVar1 != '\0');" (do "do") (compound_statement "{\n        if (pcVar7 == param_2) {\n          return pcVar7;\n        }\n        pcVar9 = pcVar7 + 1;\n        cVar1 = *pcVar7;\n        pcVar7 = pcVar9;\n      }" ({ "{") (if_statement "if (pcVar7 == param_2) {\n          return pcVar7;\n        }" (if "if") (parenthesized_expression "(pcVar7 == param_2)" (( "(") (binary_expression "pcVar7 == param_2" (identifier "pcVar7") (== "==") (identifier "param_2")) () ")")) (compound_statement "{\n          return pcVar7;\n        }" ({ "{") (return_statement "return pcVar7;" (return "return") (identifier "pcVar7") (; ";")) (} "}"))) (expression_statement "pcVar9 = pcVar7 + 1;" (assignment_expression "pcVar9 = pcVar7 + 1" (identifier "pcVar9") (= "=") (binary_expression "pcVar7 + 1" (identifier "pcVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar1 = *pcVar7;" (assignment_expression "cVar1 = *pcVar7" (identifier "cVar1") (= "=") (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7"))) (; ";")) (expression_statement "pcVar7 = pcVar9;" (assignment_expression "pcVar7 = pcVar9" (identifier "pcVar7") (= "=") (identifier "pcVar9")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar1 != '\0')" (( "(") (binary_expression "cVar1 != '\0'" (identifier "cVar1") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (return_statement "return pcVar9;" (return "return") (identifier "pcVar9") (; ";")) (} "}"))) (return_statement "return pcVar9;" (return "return") (identifier "pcVar9") (; ";"))) (} "}"))) (expression_statement "pcVar7 = "None\n";" (assignment_expression "pcVar7 = "None\n"" (identifier "pcVar7") (= "=") (string_literal ""None\n"" (" """) (string_content "None") (escape_sequence "\n") (" """))) (; ";")) (labeled_statement "LAB_001133ad:\n  pcVar7 = (char *)dcgettext(0,pcVar7,5);" (statement_identifier "LAB_001133ad") (: ":") (expression_statement "pcVar7 = (char *)dcgettext(0,pcVar7,5);" (assignment_expression "pcVar7 = (char *)dcgettext(0,pcVar7,5)" (identifier "pcVar7") (= "=") (cast_expression "(char *)dcgettext(0,pcVar7,5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,pcVar7,5)" (identifier "dcgettext") (argument_list "(0,pcVar7,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar7") (, ",") (number_literal "5") () ")"))))) (; ";"))) (expression_statement "printf(pcVar7);" (call_expression "printf(pcVar7)" (identifier "printf") (argument_list "(pcVar7)" (( "(") (identifier "pcVar7") () ")"))) (; ";")) (return_statement "return pcVar9;" (return "return") (identifier "pcVar9") (; ";")) (} "}")))

type_1 * function_1(type_1 *var_2,type_1 *var_14)

{
  type_1 var_20;
  type_2 var_4;
  type_3 var_6;
  type_4 var_12;
  type_5 uVar4;
  size_t var_17;
  char *pcVar6;
  type_6 *var_5;
  type_1 *var_10;
  type_1 *var_19;
  type_3 var_3;
  
  var_12 = var_1(var_2,&var_3,0,var_14);
  var_4 = (type_2)var_12;
  var_5 = arm_attr_public_tags;
  var_10 = var_2 + var_3;
  uVar4 = 0;
  while (var_5->var_4 != var_4) {
    var_6 = (int)uVar4 + 1;
    uVar4 = (type_5)var_6;
    var_5 = var_5 + 1;
    if (var_6 == 0x29) {
      var_10 = var_7(var_4,var_10,var_14);
      return var_10;
    }
  }
  var_8("  Tag_%s: ",arm_attr_public_tags[uVar4].name);
  var_6 = arm_attr_public_tags[uVar4].type;
  if (var_6 == 1) {
    var_10 = var_7(L'\xffffffff',var_10,var_14);
    return var_10;
  }
  if (var_6 != 0) {
    if (var_6 == 2) {
      var_10 = var_7(L'\0',var_10,var_14);
      return var_10;
    }
    if ((var_6 & 0x80) == 0) {
                    /* WARNING: Subroutine does not return */
      var_9("attr->type & 0x80","../../binutils/readelf.c",0x3890,"display_arm_attribute");
    }
    var_12 = var_1(var_10,&var_3,0,var_14);
    var_10 = var_10 + var_3;
    var_6 = (type_3)var_12;
    if (var_6 < (arm_attr_public_tags[uVar4].type & 0x7f)) {
      var_11(arm_attr_public_tags[uVar4].table[var_12 & 0xffffffff]);
      return var_10;
    }
    goto LAB_00113282;
  }
  switch(var_4) {
  case L'\a':
    var_12 = var_1(var_10,&var_3,0,var_14);
    var_10 = var_10 + var_3;
    var_6 = (type_3)var_12;
    if (var_6 == 0x4d) {
      pcVar6 = "Microcontroller\n";
      goto LAB_001133ad;
    }
    if (0x4d < var_6) {
      if (var_6 == 0x52) {
        pcVar6 = "Realtime\n";
      }
      else {
        pcVar6 = "Application or Realtime\n";
        if (var_6 != 0x53) goto LAB_00113282;
      }
      goto LAB_001133ad;
    }
    if (var_6 != 0) {
      pcVar6 = "Application\n";
      if (var_6 != 0x41) {
LAB_00113282:
        var_8("??? (%d)\n",(type_5)var_6);
        return var_10;
      }
      goto LAB_001133ad;
    }
    break;
  default:
    pcVar6 = (char *)var_13(0,"<unknown: %d>\n",5);
    var_8(pcVar6,var_12 & 0xffffffff);
    return var_10;
  case L'\x18':
    var_12 = var_1(var_10,&var_3,0,var_14);
    var_10 = var_10 + var_3;
    var_6 = (type_3)var_12;
    if (var_6 == 1) {
LAB_001135c3:
      pcVar6 = "8-byte\n";
      goto LAB_001133ad;
    }
    if (var_6 != 0) {
      if (var_6 != 2) {
LAB_00113474:
        if (var_6 == 3) {
          var_11("??? 3");
          return var_10;
        }
        if (var_6 < 0xd) {
          pcVar6 = (char *)var_13(0,"8-byte and up to %d-byte extended\n",5);
          var_8(pcVar6,(type_5)(type_3)(1 << ((type_7)var_6 & 0x1f)));
          return var_10;
        }
        var_8("??? (%d)\n",(type_5)var_6);
        return var_10;
      }
      pcVar6 = "4-byte\n";
      goto LAB_001133ad;
    }
    break;
  case L'\x19':
    var_12 = var_1(var_10,&var_3,0,var_14);
    var_6 = (type_3)var_12;
    var_10 = var_10 + var_3;
    if (var_6 == 1) {
      pcVar6 = "8-byte, except leaf SP\n";
      goto LAB_001133ad;
    }
    if (var_6 != 0) {
      if (var_6 != 2) goto LAB_00113474;
      goto LAB_001135c3;
    }
    break;
  case L' ':
    var_12 = var_1(var_10,&var_3,0,var_14);
    var_10 = var_10 + var_3;
    pcVar6 = (char *)var_13(0,"flag = %d, vendor = ",5);
    var_8(pcVar6,var_12 & 0xffffffff);
    if (var_10 < var_14 + -1) {
      var_15((type_2)(var_14 + (-1 - (long)var_10)),(char *)var_10);
      var_17 = var_16((char *)var_10,(size_t)(var_14 + (-1 - (long)var_10)));
      var_14 = var_10 + var_17 + 1;
    }
    else {
      pcVar6 = (char *)var_13(0,"<corrupt>",5);
      var_8(pcVar6);
    }
    var_18(10,stdout);
    return var_14;
  case L'@':
    pcVar6 = "True\n";
    var_10 = var_10 + (var_10 < var_14);
    goto LAB_001133ad;
  case L'A':
    var_12 = var_1(var_10,&var_3,0,var_14);
    var_10 = var_10 + var_3;
    if ((int)var_12 == 6) {
      var_12 = var_1(var_10,&var_3,0,var_14);
      var_10 = var_10 + var_3;
      if ((type_3)var_12 < 0x12) {
        var_11(arm_attr_tag_CPU_arch[var_12 & 0xffffffff]);
      }
      else {
        var_8("??? (%d)\n",var_12 & 0xffffffff);
      }
    }
    else {
      var_11("???");
    }
    if (var_10 < var_14) {
      var_19 = var_10 + 1;
      if (*var_10 == '\0') {
        return var_10 + 1;
      }
      do {
        if (var_19 == var_14) {
          return var_19;
        }
        var_10 = var_19 + 1;
        var_20 = *var_19;
        var_19 = var_10;
      } while (var_20 != '\0');
      return var_10;
    }
    return var_10;
  }
  pcVar6 = "None\n";
LAB_001133ad:
  pcVar6 = (char *)var_13(0,pcVar6,5);
  var_8(pcVar6);
  return var_10;
}


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

char * MASKED(long param_1,char *param_2)

{
  char cVar1;
  uint uVar2;
  uint uVar3;
  int iVar4;
  ulong uVar5;
  size_t sVar6;
  char *pcVar7;
  uint *puVar8;
  char *pcVar9;
  uint local_2c;
  
  uVar2 = FUN_0013fb20(param_1,&local_2c,0,param_2);
  puVar8 = &DAT_00190240;
  pcVar9 = (char *)(param_1 + (ulong)local_2c);
  uVar5 = 0;
  while (*puVar8 != uVar2) {
    uVar3 = (int)uVar5 + 1;
    uVar5 = (ulong)uVar3;
    puVar8 = puVar8 + 8;
    if (uVar3 == 0x29) {
      pcVar9 = (char *)FUN_001124d0(uVar2,pcVar9,param_2);
      return pcVar9;
    }
  }
  printf("  Tag_%s: ",(&PTR_s_CPU_raw_name_00190248)[uVar5 * 4]);
  uVar3 = (&DAT_00190250)[uVar5 * 8];
  if (uVar3 == 1) {
    pcVar9 = (char *)FUN_001124d0(0xffffffff,pcVar9,param_2);
    return pcVar9;
  }
  if (uVar3 != 0) {
    if (uVar3 == 2) {
      pcVar9 = (char *)FUN_001124d0(0,pcVar9,param_2);
      return pcVar9;
    }
    if ((uVar3 & 0x80) == 0) {
                    /* WARNING: Subroutine does not return */
      __assert_fail("attr->type & 0x80","../../binutils/readelf.c",0x3890,"display_arm_attribute");
    }
    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);
    pcVar9 = pcVar9 + local_2c;
    if (uVar2 < ((&DAT_00190250)[uVar5 * 8] & 0x7f)) {
      puts(*(char **)((&DAT_00190258)[uVar5 * 4] + (ulong)uVar2 * 8));
      return pcVar9;
    }
    goto LAB_00113282;
  }
  switch(uVar2) {
  case 7:
    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);
    pcVar9 = pcVar9 + local_2c;
    if (uVar2 == 0x4d) {
      pcVar7 = "Microcontroller\n";
      goto LAB_001133ad;
    }
    if (0x4d < uVar2) {
      if (uVar2 == 0x52) {
        pcVar7 = "Realtime\n";
      }
      else {
        pcVar7 = "Application or Realtime\n";
        if (uVar2 != 0x53) goto LAB_00113282;
      }
      goto LAB_001133ad;
    }
    if (uVar2 != 0) {
      pcVar7 = "Application\n";
      if (uVar2 != 0x41) {
LAB_00113282:
        printf("??? (%d)\n",(ulong)uVar2);
        return pcVar9;
      }
      goto LAB_001133ad;
    }
    break;
  default:
    pcVar7 = (char *)dcgettext(0,"<unknown: %d>\n",5);
    printf(pcVar7,(ulong)uVar2);
    return pcVar9;
  case 0x18:
    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);
    pcVar9 = pcVar9 + local_2c;
    if (uVar2 == 1) {
LAB_001135c3:
      pcVar7 = "8-byte\n";
      goto LAB_001133ad;
    }
    if (uVar2 != 0) {
      if (uVar2 != 2) {
LAB_00113474:
        if (uVar2 == 3) {
          puts("??? 3");
          return pcVar9;
        }
        if (uVar2 < 0xd) {
          pcVar7 = (char *)dcgettext(0,"8-byte and up to %d-byte extended\n",5);
          printf(pcVar7,(ulong)(uint)(1 << ((byte)uVar2 & 0x1f)));
          return pcVar9;
        }
        printf("??? (%d)\n",(ulong)uVar2);
        return pcVar9;
      }
      pcVar7 = "4-byte\n";
      goto LAB_001133ad;
    }
    break;
  case 0x19:
    uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);
    pcVar9 = pcVar9 + local_2c;
    if (uVar2 == 1) {
      pcVar7 = "8-byte, except leaf SP\n";
      goto LAB_001133ad;
    }
    if (uVar2 != 0) {
      if (uVar2 != 2) goto LAB_00113474;
      goto LAB_001135c3;
    }
    break;
  case 0x20:
    uVar5 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);
    pcVar9 = pcVar9 + local_2c;
    pcVar7 = (char *)dcgettext(0,"flag = %d, vendor = ",5);
    printf(pcVar7,uVar5 & 0xffffffff);
    if (pcVar9 < param_2 + -1) {
      FUN_001122a0((ulong)(param_2 + (-1 - (long)pcVar9)) & 0xffffffff,pcVar9);
      sVar6 = strnlen(pcVar9,(size_t)(param_2 + (-1 - (long)pcVar9)));
      param_2 = pcVar9 + sVar6 + 1;
    }
    else {
      pcVar9 = (char *)dcgettext(0,"<corrupt>",5);
      printf(pcVar9);
    }
    putc(10,stdout);
    return param_2;
  case 0x40:
    pcVar7 = "True\n";
    pcVar9 = pcVar9 + (pcVar9 < param_2);
    goto LAB_001133ad;
  case 0x41:
    iVar4 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);
    pcVar9 = pcVar9 + local_2c;
    if (iVar4 == 6) {
      uVar2 = FUN_0013fb20(pcVar9,&local_2c,0,param_2);
      pcVar9 = pcVar9 + local_2c;
      if (uVar2 < 0x12) {
        puts((&PTR_DAT_00190bc0)[uVar2]);
      }
      else {
        printf("??? (%d)\n",(ulong)uVar2);
      }
    }
    else {
      puts("???");
    }
    if (pcVar9 < param_2) {
      pcVar7 = pcVar9 + 1;
      if (*pcVar9 == '\0') {
        return pcVar9 + 1;
      }
      do {
        if (pcVar7 == param_2) {
          return pcVar7;
        }
        pcVar9 = pcVar7 + 1;
        cVar1 = *pcVar7;
        pcVar7 = pcVar9;
      } while (cVar1 != '\0');
      return pcVar9;
    }
    return pcVar9;
  }
  pcVar7 = "None\n";
LAB_001133ad:
  pcVar7 = (char *)dcgettext(0,pcVar7,5);
  printf(pcVar7);
  return pcVar9;
}

