#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */
typedef int /*<<< orphan*/ buff;

/* Variables and functions */
int /*<<< orphan*/ snprintf(char *, int, char *, int);
int /*<<< orphan*/ sprintf(char *, char *, ...);
const char *symaddr(int addr) {
  static char buff[4][16];
  static int which = 0;
  char *dst;
  which = (which + 1) % 4;
  dst = buff[which];
  switch (addr) {
  case 0000420:
    sprintf(dst, "DASTART");
    break;
  case 0000421:
    sprintf(dst, "DVIBITS");
    break;
  case 0000422:
    sprintf(dst, "ITQUAN");
    break;
  case 0000423:
    sprintf(dst, "ITBITS");
    break;
  case 0000424:
    sprintf(dst, "MOUSEX");
    break;
  case 0000425:
    sprintf(dst, "MOUSEY");
    break;
  case 0000426:
    sprintf(dst, "CURSORX");
    break;
  case 0000427:
    sprintf(dst, "CURSORY");
    break;
  case 0000430:
    sprintf(dst, "RTC");
    break;
  case 0000431:
  case 0000431 + 1:
  case 0000431 + 2:
  case 0000431 + 3:
  case 0000431 + 4:
  case 0000431 + 5:
  case 0000431 + 6:
  case 0000431 + 7:
  case 0000431 + 8:
  case 0000431 + 9:
  case 0000431 + 10:
  case 0000431 + 11:
  case 0000431 + 12:
  case 0000431 + 13:
  case 0000431 + 14:
  case 0000431 + 15:
    sprintf(dst, "CURMAP+%#o", addr - 0000431);
    break;
  case 0000452:
    sprintf(dst, "WW");
    break;
  case 0000453:
    sprintf(dst, "ACTIVE");
    break;
  case 0000460:
    sprintf(dst, "MASKTAB");
    break;
  case 0000500:
    sprintf(dst, "PCLOC");
    break;
  case 0000501:
  case 0000501 + 1:
  case 0000501 + 2:
  case 0000501 + 3:
  case 0000501 + 4:
  case 0000501 + 5:
  case 0000501 + 6:
  case 0000501 + 7:
  case 0000501 + 8:
  case 0000501 + 9:
  case 0000501 + 10:
  case 0000501 + 11:
  case 0000501 + 12:
  case 0000501 + 13:
  case 0000501 + 14:
    sprintf(dst, "INTVEC+%#o", addr - 0000501);
    break;
  case 0000521:
    sprintf(dst, "KBLK");
    break;
  case 0000522:
    sprintf(dst, "KSTAT");
    break;
  case 0000523:
    sprintf(dst, "KADDR");
    break;
  case 0000524:
    sprintf(dst, "KSIBITS");
    break;
  case 0000525:
    sprintf(dst, "ITTIME");
    break;
  case 0000527:
    sprintf(dst, "TRAPPC");
    break;
  case 0000530:
    sprintf(dst, "TRAPVEC");
    break;
  case 0000570:
    sprintf(dst, "TIMERDATA");
    break;
  case 0000600:
    sprintf(dst, "EPLOC");
    break;
  case 0000601:
    sprintf(dst, "EBLOC");
    break;
  case 0000602:
    sprintf(dst, "EELOC");
    break;
  case 0000603:
    sprintf(dst, "ELLOC");
    break;
  case 0000604:
    sprintf(dst, "EICLOC");
    break;
  case 0000605:
    sprintf(dst, "EIPLOC");
    break;
  case 0000606:
    sprintf(dst, "EOCLOC");
    break;
  case 0000607:
    sprintf(dst, "EOPLOC");
    break;
  case 0000610:
    sprintf(dst, "EHLOC");
    break;
  case 0000611:
    sprintf(dst, "ERSVD");
    break;
  case 0000613:
    sprintf(dst, "ALTOV");
    break;
  case 0000614:
    sprintf(dst, "DCBR");
    break;
  case 0000615:
    sprintf(dst, "KNMAR");
    break;
  case 0000617:
    sprintf(dst, "CBA");
    break;
  case 0000621:
    sprintf(dst, "SAD");
    break;
  case 0177016:
  case 0177016 + 1:
    sprintf(dst, "UTILOUT+%d", addr - 0177016);
    break;
  case 0177020:
  case 0177020 + 1:
  case 0177020 + 2:
  case 0177020 + 3:
    sprintf(dst, "XBUS+%d", addr - 0177020);
    break;
  case 0177024:
    sprintf(dst, "MEAR");
    break;
  case 0177025:
    sprintf(dst, "MESR");
    break;
  case 0177026:
    sprintf(dst, "MECR");
    break;
  case 0177030:
    sprintf(dst, "UTILIN");
    break;
  case 0177034:
  case 0177034 + 1:
  case 0177034 + 2:
  case 0177034 + 3:
    sprintf(dst, "KBDAD+%#o", addr - 0177034);
    break;
  case 0177740:
    sprintf(dst, "BANKREGS");
    break;
  default:
    snprintf(dst, sizeof(buff[0]), "%#o", addr);
  }
  return buff[which];
}


x86 assembly (clang, -O0):
<symaddr>:
push   %rbp
mov    %rsp,%rbp
sub    $0x20,%rsp
mov    %edi,-0x4(%rbp)
mov    0x2f4f(%rip),%edx
mov    %edx,%eax
add    $0x1,%eax
mov    %edx,%ecx
add    $0x4,%ecx
test   %eax,%eax
cmovs  %ecx,%eax
and    $0xfffffffc,%eax
neg    %eax
mov    %eax,%ecx
mov    %edx,%eax
lea    0x1(%rax,%rcx,1),%eax
mov    %eax,0x2f2d(%rip)
movslq 0x2f26(%rip),%rcx
shl    $0x4,%rcx
lea    0x2edb(%rip),%rax
add    %rcx,%rax
mov    %rax,-0x10(%rbp)
mov    -0x4(%rbp),%eax
mov    %eax,-0x14(%rbp)
sub    $0x110,%eax
je     14e8 <symaddr+0x3c8>
jmp    1182 <symaddr+0x62>
mov    -0x14(%rbp),%eax
sub    $0x111,%eax
je     14ff <symaddr+0x3df>
jmp    1195 <symaddr+0x75>
mov    -0x14(%rbp),%eax
sub    $0x112,%eax
je     1516 <symaddr+0x3f6>
jmp    11a8 <symaddr+0x88>
mov    -0x14(%rbp),%eax
sub    $0x113,%eax
je     152d <symaddr+0x40d>
jmp    11bb <symaddr+0x9b>
mov    -0x14(%rbp),%eax
sub    $0x114,%eax
je     1544 <symaddr+0x424>
jmp    11ce <symaddr+0xae>
mov    -0x14(%rbp),%eax
sub    $0x115,%eax
je     155b <symaddr+0x43b>
jmp    11e1 <symaddr+0xc1>
mov    -0x14(%rbp),%eax
sub    $0x116,%eax
je     1572 <symaddr+0x452>
jmp    11f4 <symaddr+0xd4>
mov    -0x14(%rbp),%eax
sub    $0x117,%eax
je     1589 <symaddr+0x469>
jmp    1207 <symaddr+0xe7>
mov    -0x14(%rbp),%eax
sub    $0x118,%eax
je     15a0 <symaddr+0x480>
jmp    121a <symaddr+0xfa>
mov    -0x14(%rbp),%eax
add    $0xfffffee7,%eax
sub    $0x10,%eax
jb     15b7 <symaddr+0x497>
jmp    1230 <symaddr+0x110>
mov    -0x14(%rbp),%eax
sub    $0x12a,%eax
je     15d7 <symaddr+0x4b7>
jmp    1243 <symaddr+0x123>
mov    -0x14(%rbp),%eax
sub    $0x12b,%eax
je     15ee <symaddr+0x4ce>
jmp    1256 <symaddr+0x136>
mov    -0x14(%rbp),%eax
sub    $0x130,%eax
je     1605 <symaddr+0x4e5>
jmp    1269 <symaddr+0x149>
mov    -0x14(%rbp),%eax
sub    $0x140,%eax
je     161c <symaddr+0x4fc>
jmp    127c <symaddr+0x15c>
mov    -0x14(%rbp),%eax
add    $0xfffffebf,%eax
sub    $0xf,%eax
jb     1633 <symaddr+0x513>
jmp    1292 <symaddr+0x172>
mov    -0x14(%rbp),%eax
sub    $0x151,%eax
je     1653 <symaddr+0x533>
jmp    12a5 <symaddr+0x185>
mov    -0x14(%rbp),%eax
sub    $0x152,%eax
je     166a <symaddr+0x54a>
jmp    12b8 <symaddr+0x198>
mov    -0x14(%rbp),%eax
sub    $0x153,%eax
je     1681 <symaddr+0x561>
jmp    12cb <symaddr+0x1ab>
mov    -0x14(%rbp),%eax
sub    $0x154,%eax
je     1698 <symaddr+0x578>
jmp    12de <symaddr+0x1be>
mov    -0x14(%rbp),%eax
sub    $0x155,%eax
je     16af <symaddr+0x58f>
jmp    12f1 <symaddr+0x1d1>
mov    -0x14(%rbp),%eax
sub    $0x157,%eax
je     16c6 <symaddr+0x5a6>
jmp    1304 <symaddr+0x1e4>
mov    -0x14(%rbp),%eax
sub    $0x158,%eax
je     16dd <symaddr+0x5bd>
jmp    1317 <symaddr+0x1f7>
mov    -0x14(%rbp),%eax
sub    $0x178,%eax
je     16f4 <symaddr+0x5d4>
jmp    132a <symaddr+0x20a>
mov    -0x14(%rbp),%eax
sub    $0x180,%eax
je     170b <symaddr+0x5eb>
jmp    133d <symaddr+0x21d>
mov    -0x14(%rbp),%eax
sub    $0x181,%eax
je     1722 <symaddr+0x602>
jmp    1350 <symaddr+0x230>
mov    -0x14(%rbp),%eax
sub    $0x182,%eax
je     1739 <symaddr+0x619>
jmp    1363 <symaddr+0x243>
mov    -0x14(%rbp),%eax
sub    $0x183,%eax
je     1750 <symaddr+0x630>
jmp    1376 <symaddr+0x256>
mov    -0x14(%rbp),%eax
sub    $0x184,%eax
je     1767 <symaddr+0x647>
jmp    1389 <symaddr+0x269>
mov    -0x14(%rbp),%eax
sub    $0x185,%eax
je     177e <symaddr+0x65e>
jmp    139c <symaddr+0x27c>
mov    -0x14(%rbp),%eax
sub    $0x186,%eax
je     1795 <symaddr+0x675>
jmp    13af <symaddr+0x28f>
mov    -0x14(%rbp),%eax
sub    $0x187,%eax
je     17ac <symaddr+0x68c>
jmp    13c2 <symaddr+0x2a2>
mov    -0x14(%rbp),%eax
sub    $0x188,%eax
je     17c3 <symaddr+0x6a3>
jmp    13d5 <symaddr+0x2b5>
mov    -0x14(%rbp),%eax
sub    $0x189,%eax
je     17da <symaddr+0x6ba>
jmp    13e8 <symaddr+0x2c8>
mov    -0x14(%rbp),%eax
sub    $0x18b,%eax
je     17f1 <symaddr+0x6d1>
jmp    13fb <symaddr+0x2db>
mov    -0x14(%rbp),%eax
sub    $0x18c,%eax
je     1808 <symaddr+0x6e8>
jmp    140e <symaddr+0x2ee>
mov    -0x14(%rbp),%eax
sub    $0x18d,%eax
je     181f <symaddr+0x6ff>
jmp    1421 <symaddr+0x301>
mov    -0x14(%rbp),%eax
sub    $0x18f,%eax
je     1836 <symaddr+0x716>
jmp    1434 <symaddr+0x314>
mov    -0x14(%rbp),%eax
sub    $0x191,%eax
je     184d <symaddr+0x72d>
jmp    1447 <symaddr+0x327>
mov    -0x14(%rbp),%eax
add    $0xffff01f2,%eax
sub    $0x2,%eax
jb     1864 <symaddr+0x744>
jmp    145d <symaddr+0x33d>
mov    -0x14(%rbp),%eax
add    $0xffff01f0,%eax
sub    $0x4,%eax
jb     1884 <symaddr+0x764>
jmp    1473 <symaddr+0x353>
mov    -0x14(%rbp),%eax
sub    $0xfe14,%eax
je     18a4 <symaddr+0x784>
jmp    1486 <symaddr+0x366>
mov    -0x14(%rbp),%eax
sub    $0xfe15,%eax
je     18bb <symaddr+0x79b>
jmp    1499 <symaddr+0x379>
mov    -0x14(%rbp),%eax
sub    $0xfe16,%eax
je     18d2 <symaddr+0x7b2>
jmp    14ac <symaddr+0x38c>
mov    -0x14(%rbp),%eax
sub    $0xfe18,%eax
je     18e9 <symaddr+0x7c9>
jmp    14bf <symaddr+0x39f>
mov    -0x14(%rbp),%eax
add    $0xffff01e4,%eax
sub    $0x4,%eax
jb     1900 <symaddr+0x7e0>
jmp    14d5 <symaddr+0x3b5>
mov    -0x14(%rbp),%eax
sub    $0xffe0,%eax
je     1920 <symaddr+0x800>
jmp    1937 <symaddr+0x817>
mov    -0x10(%rbp),%rdi
lea    0xb0d(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
jmp    194f <symaddr+0x82f>
mov    -0x10(%rbp),%rdi
lea    0xafe(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
jmp    194f <symaddr+0x82f>
mov    -0x10(%rbp),%rdi
lea    0xaef(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
jmp    194f <symaddr+0x82f>
mov    -0x10(%rbp),%rdi
lea    0xadf(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
jmp    194f <symaddr+0x82f>
mov    -0x10(%rbp),%rdi
lea    0xacf(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
jmp    194f <symaddr+0x82f>
mov    -0x10(%rbp),%rdi
lea    0xabf(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
jmp    194f <symaddr+0x82f>
mov    -0x10(%rbp),%rdi
lea    0xaaf(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
jmp    194f <symaddr+0x82f>
mov    -0x10(%rbp),%rdi
lea    0xaa0(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
jmp    194f <symaddr+0x82f>
mov    -0x10(%rbp),%rdi
lea    0xa91(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
jmp    194f <symaddr+0x82f>
mov    -0x10(%rbp),%rdi
mov    -0x4(%rbp),%edx
sub    $0x119,%edx
lea    0xa75(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
jmp    194f <symaddr+0x82f>
mov    -0x10(%rbp),%rdi
lea    0xa69(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
jmp    194f <symaddr+0x82f>
mov    -0x10(%rbp),%rdi
lea    0xa55(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
jmp    194f <symaddr+0x82f>
mov    -0x10(%rbp),%rdi
lea    0xa45(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
jmp    194f <symaddr+0x82f>
mov    -0x10(%rbp),%rdi
lea    0xa36(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
jmp    194f <symaddr+0x82f>
mov    -0x10(%rbp),%rdi
mov    -0x4(%rbp),%edx
sub    $0x141,%edx
lea    0xa1c(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
jmp    194f <symaddr+0x82f>
mov    -0x10(%rbp),%rdi
lea    0xa10(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
jmp    194f <symaddr+0x82f>
mov    -0x10(%rbp),%rdi
lea    0x9fe(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
jmp    194f <symaddr+0x82f>
mov    -0x10(%rbp),%rdi
lea    0x9ed(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
jmp    194f <symaddr+0x82f>
mov    -0x10(%rbp),%rdi
lea    0x9dc(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
jmp    194f <symaddr+0x82f>
mov    -0x10(%rbp),%rdi
lea    0x9cd(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
jmp    194f <symaddr+0x82f>
mov    -0x10(%rbp),%rdi
lea    0x9bd(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
jmp    194f <symaddr+0x82f>
mov    -0x10(%rbp),%rdi
lea    0x9ad(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
jmp    194f <symaddr+0x82f>
mov    -0x10(%rbp),%rdi
lea    0x99e(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
jmp    194f <symaddr+0x82f>
mov    -0x10(%rbp),%rdi
lea    0x991(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
jmp    194f <symaddr+0x82f>
mov    -0x10(%rbp),%rdi
lea    0x980(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
jmp    194f <symaddr+0x82f>
mov    -0x10(%rbp),%rdi
lea    0x96f(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
jmp    194f <symaddr+0x82f>
mov    -0x10(%rbp),%rdi
lea    0x95e(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
jmp    194f <symaddr+0x82f>
mov    -0x10(%rbp),%rdi
lea    0x94d(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
jmp    194f <symaddr+0x82f>
mov    -0x10(%rbp),%rdi
lea    0x93d(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
jmp    194f <symaddr+0x82f>
mov    -0x10(%rbp),%rdi
lea    0x92d(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
jmp    194f <symaddr+0x82f>
mov    -0x10(%rbp),%rdi
lea    0x91d(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
jmp    194f <symaddr+0x82f>
mov    -0x10(%rbp),%rdi
lea    0x90d(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
jmp    194f <symaddr+0x82f>
mov    -0x10(%rbp),%rdi
lea    0x8fc(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
jmp    194f <symaddr+0x82f>
mov    -0x10(%rbp),%rdi
lea    0x8eb(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
jmp    194f <symaddr+0x82f>
mov    -0x10(%rbp),%rdi
lea    0x8da(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
jmp    194f <symaddr+0x82f>
mov    -0x10(%rbp),%rdi
lea    0x8c8(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
jmp    194f <symaddr+0x82f>
mov    -0x10(%rbp),%rdi
lea    0x8b7(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
jmp    194f <symaddr+0x82f>
mov    -0x10(%rbp),%rdi
lea    0x8a4(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
jmp    194f <symaddr+0x82f>
mov    -0x10(%rbp),%rdi
mov    -0x4(%rbp),%edx
sub    $0xfe0e,%edx
lea    0x888(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
jmp    194f <symaddr+0x82f>
mov    -0x10(%rbp),%rdi
mov    -0x4(%rbp),%edx
sub    $0xfe10,%edx
lea    0x873(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
jmp    194f <symaddr+0x82f>
mov    -0x10(%rbp),%rdi
lea    0x864(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
jmp    194f <symaddr+0x82f>
mov    -0x10(%rbp),%rdi
lea    0x852(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
jmp    194f <symaddr+0x82f>
mov    -0x10(%rbp),%rdi
lea    0x840(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
jmp    194f <symaddr+0x82f>
mov    -0x10(%rbp),%rdi
lea    0x82e(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
jmp    194f <symaddr+0x82f>
mov    -0x10(%rbp),%rdi
mov    -0x4(%rbp),%edx
sub    $0xfe1c,%edx
lea    0x815(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
jmp    194f <symaddr+0x82f>
mov    -0x10(%rbp),%rdi
lea    0x808(%rip),%rsi
mov    $0x0,%al
call   1040 <sprintf@plt>
jmp    194f <symaddr+0x82f>
mov    -0x10(%rbp),%rdi
mov    -0x4(%rbp),%ecx
mov    $0x10,%esi
lea    0x720(%rip),%rdx
call   1030 <snprintf@plt>
movslq 0x272a(%rip),%rcx
lea    0x26e3(%rip),%rax
shl    $0x4,%rcx
add    %rcx,%rax
add    $0x20,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<symaddr>:
push   %rbx
mov    %edi,%ecx
mov    0x2f57(%rip),%eax
lea    0x1(%rax),%edx
lea    0x4(%rax),%esi
test   %edx,%edx
cmovns %edx,%esi
and    $0xfffffffc,%esi
neg    %esi
lea    (%rax,%rsi,1),%edi
add    $0x1,%edi
mov    %edi,0x2f3b(%rip)
shl    $0x4,%rdi
lea    0x2ef0(%rip),%rbx
add    %rbx,%rdi
lea    -0x110(%rcx),%eax
cmp    $0x81,%eax
ja     117f <symaddr+0x5f>
lea    0xe99(%rip),%rdx
movslq (%rdx,%rax,4),%rax
add    %rdx,%rax
jmp    *%rax
add    $0xfffffee7,%ecx
lea    0x10ef(%rip),%rsi
jmp    11c5 <symaddr+0xa5>
lea    -0xfe0e(%rcx),%edx
cmp    $0x11,%edx
ja     11e9 <symaddr+0xc9>
lea    0x1077(%rip),%rax
movslq (%rax,%rdx,4),%rsi
add    %rax,%rsi
jmp    *%rsi
add    $0xffff01f0,%ecx
lea    0x1170(%rip),%rsi
jmp    11c5 <symaddr+0xa5>
add    $0xfffffebf,%ecx
lea    0x10d1(%rip),%rsi
jmp    11c5 <symaddr+0xa5>
add    $0xffff01e4,%ecx
lea    0x1170(%rip),%rsi
mov    %ecx,%edx
xor    %eax,%eax
call   1040 <sprintf@plt>
mov    0x2eac(%rip),%eax
shl    $0x4,%rax
add    %rax,%rbx
mov    %rbx,%rax
pop    %rbx
ret
lea    0x1125(%rip),%rsi
jmp    11c7 <symaddr+0xa7>
cmp    $0xffe0,%ecx
jne    1204 <symaddr+0xe4>
movabs $0x534745524b4e4142,%rax
45 47 53
mov    %rax,(%rdi)
movb   $0x0,0x8(%rdi)
jmp    11ce <symaddr+0xae>
lea    0x1083(%rip),%rdx
mov    $0x10,%esi
call   1030 <snprintf@plt>
jmp    11ce <symaddr+0xae>
movabs $0x54524154534144,%rax
mov    %rax,(%rdi)
jmp    11ce <symaddr+0xae>
movabs $0x5354494249534b,%rax
add    $0x2f9,%rax
mov    %rax,(%rdi)
jmp    11ce <symaddr+0xae>
movl   $0x4e4155,0x3(%rdi)
movl   $0x55515449,(%rdi)
jmp    11ce <symaddr+0xae>
movl   $0x535449,0x3(%rdi)
movl   $0x49425449,(%rdi)
jmp    11ce <symaddr+0xae>
movl   $0x584553,0x3(%rdi)
movl   $0x53554f4d,(%rdi)
jmp    11ce <symaddr+0xae>
movl   $0x594553,0x3(%rdi)
movl   $0x53554f4d,(%rdi)
jmp    11ce <symaddr+0xae>
movabs $0x58524f53525543,%rax
mov    %rax,(%rdi)
jmp    11ce <symaddr+0xae>
movabs $0x59524f53525543,%rax
mov    %rax,(%rdi)
jmp    11ce <symaddr+0xae>
movl   $0x435452,(%rdi)
jmp    11ce <symaddr+0xae>
movb   $0x0,0x2(%rdi)
movw   $0x5757,(%rdi)
jmp    11ce <symaddr+0xae>
movl   $0x455649,0x3(%rdi)
movl   $0x49544341,(%rdi)
jmp    11ce <symaddr+0xae>
movabs $0x4241544b53414d,%rax
mov    %rax,(%rdi)
jmp    11ce <symaddr+0xae>
movw   $0x43,0x4(%rdi)
movl   $0x4f4c4350,(%rdi)
jmp    11ce <symaddr+0xae>
movb   $0x0,0x4(%rdi)
movl   $0x4b4c424b,(%rdi)
jmp    11ce <symaddr+0xae>
movw   $0x54,0x4(%rdi)
movl   $0x4154534b,(%rdi)
jmp    11ce <symaddr+0xae>
movw   $0x52,0x4(%rdi)
movl   $0x4444414b,(%rdi)
jmp    11ce <symaddr+0xae>
movabs $0x5354494249534b,%rax
mov    %rax,(%rdi)
jmp    11ce <symaddr+0xae>
movl   $0x454d49,0x3(%rdi)
movl   $0x49545449,(%rdi)
jmp    11ce <symaddr+0xae>
movl   $0x435050,0x3(%rdi)
movl   $0x50415254,(%rdi)
jmp    11ce <symaddr+0xae>
movabs $0x43455650415254,%rax
mov    %rax,(%rdi)
jmp    11ce <symaddr+0xae>
movabs $0x54414452454d4954,%rax
44 41 54
mov    %rax,(%rdi)
movw   $0x41,0x8(%rdi)
jmp    11ce <symaddr+0xae>
movw   $0x43,0x4(%rdi)
movl   $0x4f4c5045,(%rdi)
jmp    11ce <symaddr+0xae>
movw   $0x43,0x4(%rdi)
movl   $0x4f4c4245,(%rdi)
jmp    11ce <symaddr+0xae>
movw   $0x43,0x4(%rdi)
movl   $0x4f4c4545,(%rdi)
jmp    11ce <symaddr+0xae>
movw   $0x43,0x4(%rdi)
movl   $0x4f4c4c45,(%rdi)
jmp    11ce <symaddr+0xae>
movl   $0x434f4c,0x3(%rdi)
movl   $0x4c434945,(%rdi)
jmp    11ce <symaddr+0xae>
movl   $0x434f4c,0x3(%rdi)
movl   $0x4c504945,(%rdi)
jmp    11ce <symaddr+0xae>
movl   $0x434f4c,0x3(%rdi)
movl   $0x4c434f45,(%rdi)
jmp    11ce <symaddr+0xae>
movl   $0x434f4c,0x3(%rdi)
movl   $0x4c504f45,(%rdi)
jmp    11ce <symaddr+0xae>
movw   $0x43,0x4(%rdi)
movl   $0x4f4c4845,(%rdi)
jmp    11ce <symaddr+0xae>
movw   $0x44,0x4(%rdi)
movl   $0x56535245,(%rdi)
jmp    11ce <symaddr+0xae>
movw   $0x56,0x4(%rdi)
movl   $0x4f544c41,(%rdi)
jmp    11ce <symaddr+0xae>
movb   $0x0,0x4(%rdi)
movl   $0x52424344,(%rdi)
jmp    11ce <symaddr+0xae>
movw   $0x52,0x4(%rdi)
movl   $0x414d4e4b,(%rdi)
jmp    11ce <symaddr+0xae>
movl   $0x414243,(%rdi)
jmp    11ce <symaddr+0xae>
movl   $0x444153,(%rdi)
jmp    11ce <symaddr+0xae>
movb   $0x0,0x4(%rdi)
movl   $0x5241454d,(%rdi)
jmp    11ce <symaddr+0xae>
movb   $0x0,0x4(%rdi)
movl   $0x5253454d,(%rdi)
jmp    11ce <symaddr+0xae>
movb   $0x0,0x4(%rdi)
movl   $0x5243454d,(%rdi)
jmp    11ce <symaddr+0xae>
movl   $0x4e494c,0x3(%rdi)
movl   $0x4c495455,(%rdi)
jmp    11ce <symaddr+0xae>

LLVM IR (-O0):
@symaddr.buff = internal global [4 x [16 x i8]] zeroinitializer
@symaddr.which = internal global i32 0
@.str = [8 x i8] c"DASTART\00"
@.str.1 = [8 x i8] c"DVIBITS\00"
@.str.2 = [7 x i8] c"ITQUAN\00"
@.str.3 = [7 x i8] c"ITBITS\00"
@.str.4 = [7 x i8] c"MOUSEX\00"
@.str.5 = [7 x i8] c"MOUSEY\00"
@.str.6 = [8 x i8] c"CURSORX\00"
@.str.7 = [8 x i8] c"CURSORY\00"
@.str.8 = [4 x i8] c"RTC\00"
@.str.9 = [11 x i8] c"CURMAP+%#o\00"
@.str.10 = [3 x i8] c"WW\00"
@.str.11 = [7 x i8] c"ACTIVE\00"
@.str.12 = [8 x i8] c"MASKTAB\00"
@.str.13 = [6 x i8] c"PCLOC\00"
@.str.14 = [11 x i8] c"INTVEC+%#o\00"
@.str.15 = [5 x i8] c"KBLK\00"
@.str.16 = [6 x i8] c"KSTAT\00"
@.str.17 = [6 x i8] c"KADDR\00"
@.str.18 = [8 x i8] c"KSIBITS\00"
@.str.19 = [7 x i8] c"ITTIME\00"
@.str.20 = [7 x i8] c"TRAPPC\00"
@.str.21 = [8 x i8] c"TRAPVEC\00"
@.str.22 = [10 x i8] c"TIMERDATA\00"
@.str.23 = [6 x i8] c"EPLOC\00"
@.str.24 = [6 x i8] c"EBLOC\00"
@.str.25 = [6 x i8] c"EELOC\00"
@.str.26 = [6 x i8] c"ELLOC\00"
@.str.27 = [7 x i8] c"EICLOC\00"
@.str.28 = [7 x i8] c"EIPLOC\00"
@.str.29 = [7 x i8] c"EOCLOC\00"
@.str.30 = [7 x i8] c"EOPLOC\00"
@.str.31 = [6 x i8] c"EHLOC\00"
@.str.32 = [6 x i8] c"ERSVD\00"
@.str.33 = [6 x i8] c"ALTOV\00"
@.str.34 = [5 x i8] c"DCBR\00"
@.str.35 = [6 x i8] c"KNMAR\00"
@.str.36 = [4 x i8] c"CBA\00"
@.str.37 = [4 x i8] c"SAD\00"
@.str.38 = [11 x i8] c"UTILOUT+%d\00"
@.str.39 = [8 x i8] c"XBUS+%d\00"
@.str.40 = [5 x i8] c"MEAR\00"
@.str.41 = [5 x i8] c"MESR\00"
@.str.42 = [5 x i8] c"MECR\00"
@.str.43 = [7 x i8] c"UTILIN\00"
@.str.44 = [10 x i8] c"KBDAD+%#o\00"
@.str.45 = [9 x i8] c"BANKREGS\00"
@.str.46 = [4 x i8] c"%#o\00"
define i8* @symaddr(i32 %0) {
%2 = alloca i32
%3 = alloca i8*
store i32 %0, i32* %2
%4 = load i32, i32* @symaddr.which
%5 = add nsw i32 %4, 1
%6 = srem i32 %5, 4
store i32 %6, i32* @symaddr.which
%7 = load i32, i32* @symaddr.which
%8 = sext i32 %7 to i64
%9 = getelementptr inbounds [4 x [16 x i8]], [4 x [16 x i8]]* @symaddr.buff, i64 0, i64 %8
%10 = getelementptr inbounds [16 x i8], [16 x i8]* %9, i64 0, i64 0
store i8* %10, i8** %3
%11 = load i32, i32* %2
switch i32 %11, label %160 [
i32 272, label %12
i32 273, label %15
i32 274, label %18
i32 275, label %21
i32 276, label %24
i32 277, label %27
i32 278, label %30
i32 279, label %33
i32 280, label %36
i32 281, label %39
i32 282, label %39
i32 283, label %39
i32 284, label %39
i32 285, label %39
i32 286, label %39
i32 287, label %39
i32 288, label %39
i32 289, label %39
i32 290, label %39
i32 291, label %39
i32 292, label %39
i32 293, label %39
i32 294, label %39
i32 295, label %39
i32 296, label %39
i32 298, label %44
i32 299, label %47
i32 304, label %50
i32 320, label %53
i32 321, label %56
i32 322, label %56
i32 323, label %56
i32 324, label %56
i32 325, label %56
i32 326, label %56
i32 327, label %56
i32 328, label %56
i32 329, label %56
i32 330, label %56
i32 331, label %56
i32 332, label %56
i32 333, label %56
i32 334, label %56
i32 335, label %56
i32 337, label %61
i32 338, label %64
i32 339, label %67
i32 340, label %70
i32 341, label %73
i32 343, label %76
i32 344, label %79
i32 376, label %82
i32 384, label %85
i32 385, label %88
i32 386, label %91
i32 387, label %94
i32 388, label %97
i32 389, label %100
i32 390, label %103
i32 391, label %106
i32 392, label %109
i32 393, label %112
i32 395, label %115
i32 396, label %118
i32 397, label %121
i32 399, label %124
i32 401, label %127
i32 65038, label %130
i32 65039, label %130
i32 65040, label %135
i32 65041, label %135
i32 65042, label %135
i32 65043, label %135
i32 65044, label %140
i32 65045, label %143
i32 65046, label %146
i32 65048, label %149
i32 65052, label %152
i32 65053, label %152
i32 65054, label %152
i32 65055, label %152
i32 65504, label %157
]
12: ; preds = %1
%13 = load i8*, i8** %3
%14 = call i32 (i8*, i8*, ...) @sprintf(i8* %13, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str, i64 0, i64 0))
br label %164
15: ; preds = %1
%16 = load i8*, i8** %3
%17 = call i32 (i8*, i8*, ...) @sprintf(i8* %16, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.1, i64 0, i64 0))
br label %164
18: ; preds = %1
%19 = load i8*, i8** %3
%20 = call i32 (i8*, i8*, ...) @sprintf(i8* %19, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.2, i64 0, i64 0))
br label %164
21: ; preds = %1
%22 = load i8*, i8** %3
%23 = call i32 (i8*, i8*, ...) @sprintf(i8* %22, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.3, i64 0, i64 0))
br label %164
24: ; preds = %1
%25 = load i8*, i8** %3
%26 = call i32 (i8*, i8*, ...) @sprintf(i8* %25, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.4, i64 0, i64 0))
br label %164
27: ; preds = %1
%28 = load i8*, i8** %3
%29 = call i32 (i8*, i8*, ...) @sprintf(i8* %28, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.5, i64 0, i64 0))
br label %164
30: ; preds = %1
%31 = load i8*, i8** %3
%32 = call i32 (i8*, i8*, ...) @sprintf(i8* %31, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.6, i64 0, i64 0))
br label %164
33: ; preds = %1
%34 = load i8*, i8** %3
%35 = call i32 (i8*, i8*, ...) @sprintf(i8* %34, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.7, i64 0, i64 0))
br label %164
36: ; preds = %1
%37 = load i8*, i8** %3
%38 = call i32 (i8*, i8*, ...) @sprintf(i8* %37, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.8, i64 0, i64 0))
br label %164
39: ; preds = %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1
%40 = load i8*, i8** %3
%41 = load i32, i32* %2
%42 = sub nsw i32 %41, 281
%43 = call i32 (i8*, i8*, ...) @sprintf(i8* %40, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.9, i64 0, i64 0), i32 %42)
br label %164
44: ; preds = %1
%45 = load i8*, i8** %3
%46 = call i32 (i8*, i8*, ...) @sprintf(i8* %45, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.10, i64 0, i64 0))
br label %164
47: ; preds = %1
%48 = load i8*, i8** %3
%49 = call i32 (i8*, i8*, ...) @sprintf(i8* %48, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.11, i64 0, i64 0))
br label %164
50: ; preds = %1
%51 = load i8*, i8** %3
%52 = call i32 (i8*, i8*, ...) @sprintf(i8* %51, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.12, i64 0, i64 0))
br label %164
53: ; preds = %1
%54 = load i8*, i8** %3
%55 = call i32 (i8*, i8*, ...) @sprintf(i8* %54, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.13, i64 0, i64 0))
br label %164
56: ; preds = %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1
%57 = load i8*, i8** %3
%58 = load i32, i32* %2
%59 = sub nsw i32 %58, 321
%60 = call i32 (i8*, i8*, ...) @sprintf(i8* %57, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.14, i64 0, i64 0), i32 %59)
br label %164
61: ; preds = %1
%62 = load i8*, i8** %3
%63 = call i32 (i8*, i8*, ...) @sprintf(i8* %62, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.15, i64 0, i64 0))
br label %164
64: ; preds = %1
%65 = load i8*, i8** %3
%66 = call i32 (i8*, i8*, ...) @sprintf(i8* %65, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.16, i64 0, i64 0))
br label %164
67: ; preds = %1
%68 = load i8*, i8** %3
%69 = call i32 (i8*, i8*, ...) @sprintf(i8* %68, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.17, i64 0, i64 0))
br label %164
70: ; preds = %1
%71 = load i8*, i8** %3
%72 = call i32 (i8*, i8*, ...) @sprintf(i8* %71, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.18, i64 0, i64 0))
br label %164
73: ; preds = %1
%74 = load i8*, i8** %3
%75 = call i32 (i8*, i8*, ...) @sprintf(i8* %74, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.19, i64 0, i64 0))
br label %164
76: ; preds = %1
%77 = load i8*, i8** %3
%78 = call i32 (i8*, i8*, ...) @sprintf(i8* %77, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.20, i64 0, i64 0))
br label %164
79: ; preds = %1
%80 = load i8*, i8** %3
%81 = call i32 (i8*, i8*, ...) @sprintf(i8* %80, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.21, i64 0, i64 0))
br label %164
82: ; preds = %1
%83 = load i8*, i8** %3
%84 = call i32 (i8*, i8*, ...) @sprintf(i8* %83, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.22, i64 0, i64 0))
br label %164
85: ; preds = %1
%86 = load i8*, i8** %3
%87 = call i32 (i8*, i8*, ...) @sprintf(i8* %86, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.23, i64 0, i64 0))
br label %164
88: ; preds = %1
%89 = load i8*, i8** %3
%90 = call i32 (i8*, i8*, ...) @sprintf(i8* %89, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.24, i64 0, i64 0))
br label %164
91: ; preds = %1
%92 = load i8*, i8** %3
%93 = call i32 (i8*, i8*, ...) @sprintf(i8* %92, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.25, i64 0, i64 0))
br label %164
94: ; preds = %1
%95 = load i8*, i8** %3
%96 = call i32 (i8*, i8*, ...) @sprintf(i8* %95, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.26, i64 0, i64 0))
br label %164
97: ; preds = %1
%98 = load i8*, i8** %3
%99 = call i32 (i8*, i8*, ...) @sprintf(i8* %98, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.27, i64 0, i64 0))
br label %164
100: ; preds = %1
%101 = load i8*, i8** %3
%102 = call i32 (i8*, i8*, ...) @sprintf(i8* %101, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.28, i64 0, i64 0))
br label %164
103: ; preds = %1
%104 = load i8*, i8** %3
%105 = call i32 (i8*, i8*, ...) @sprintf(i8* %104, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.29, i64 0, i64 0))
br label %164
106: ; preds = %1
%107 = load i8*, i8** %3
%108 = call i32 (i8*, i8*, ...) @sprintf(i8* %107, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.30, i64 0, i64 0))
br label %164
109: ; preds = %1
%110 = load i8*, i8** %3
%111 = call i32 (i8*, i8*, ...) @sprintf(i8* %110, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.31, i64 0, i64 0))
br label %164
112: ; preds = %1
%113 = load i8*, i8** %3
%114 = call i32 (i8*, i8*, ...) @sprintf(i8* %113, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.32, i64 0, i64 0))
br label %164
115: ; preds = %1
%116 = load i8*, i8** %3
%117 = call i32 (i8*, i8*, ...) @sprintf(i8* %116, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.33, i64 0, i64 0))
br label %164
118: ; preds = %1
%119 = load i8*, i8** %3
%120 = call i32 (i8*, i8*, ...) @sprintf(i8* %119, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.34, i64 0, i64 0))
br label %164
121: ; preds = %1
%122 = load i8*, i8** %3
%123 = call i32 (i8*, i8*, ...) @sprintf(i8* %122, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.35, i64 0, i64 0))
br label %164
124: ; preds = %1
%125 = load i8*, i8** %3
%126 = call i32 (i8*, i8*, ...) @sprintf(i8* %125, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.36, i64 0, i64 0))
br label %164
127: ; preds = %1
%128 = load i8*, i8** %3
%129 = call i32 (i8*, i8*, ...) @sprintf(i8* %128, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.37, i64 0, i64 0))
br label %164
130: ; preds = %1, %1
%131 = load i8*, i8** %3
%132 = load i32, i32* %2
%133 = sub nsw i32 %132, 65038
%134 = call i32 (i8*, i8*, ...) @sprintf(i8* %131, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.38, i64 0, i64 0), i32 %133)
br label %164
135: ; preds = %1, %1, %1, %1
%136 = load i8*, i8** %3
%137 = load i32, i32* %2
%138 = sub nsw i32 %137, 65040
%139 = call i32 (i8*, i8*, ...) @sprintf(i8* %136, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.39, i64 0, i64 0), i32 %138)
br label %164
140: ; preds = %1
%141 = load i8*, i8** %3
%142 = call i32 (i8*, i8*, ...) @sprintf(i8* %141, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.40, i64 0, i64 0))
br label %164
143: ; preds = %1
%144 = load i8*, i8** %3
%145 = call i32 (i8*, i8*, ...) @sprintf(i8* %144, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.41, i64 0, i64 0))
br label %164
146: ; preds = %1
%147 = load i8*, i8** %3
%148 = call i32 (i8*, i8*, ...) @sprintf(i8* %147, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.42, i64 0, i64 0))
br label %164
149: ; preds = %1
%150 = load i8*, i8** %3
%151 = call i32 (i8*, i8*, ...) @sprintf(i8* %150, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.43, i64 0, i64 0))
br label %164
152: ; preds = %1, %1, %1, %1
%153 = load i8*, i8** %3
%154 = load i32, i32* %2
%155 = sub nsw i32 %154, 65052
%156 = call i32 (i8*, i8*, ...) @sprintf(i8* %153, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.44, i64 0, i64 0), i32 %155)
br label %164
157: ; preds = %1
%158 = load i8*, i8** %3
%159 = call i32 (i8*, i8*, ...) @sprintf(i8* %158, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.45, i64 0, i64 0))
br label %164
160: ; preds = %1
%161 = load i8*, i8** %3
%162 = load i32, i32* %2
%163 = call i32 @snprintf(i8* %161, i32 16, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.46, i64 0, i64 0), i32 %162)
br label %164
164: ; preds = %160, %157, %152, %149, %146, %143, %140, %135, %130, %127, %124, %121, %118, %115, %112, %109, %106, %103, %100, %97, %94, %91, %88, %85, %82, %79, %76, %73, %70, %67, %64, %61, %56, %53, %50, %47, %44, %39, %36, %33, %30, %27, %24, %21, %18, %15, %12
%165 = load i32, i32* @symaddr.which
%166 = sext i32 %165 to i64
%167 = getelementptr inbounds [4 x [16 x i8]], [4 x [16 x i8]]* @symaddr.buff, i64 0, i64 %166
%168 = getelementptr inbounds [16 x i8], [16 x i8]* %167, i64 0, i64 0
ret i8* %168
}

LLVM IR (-O2):
@symaddr.buff = internal global [4 x [16 x i8]] zeroinitializer
@symaddr.which = internal unnamed_addr global i32 0
@.str.2 = [7 x i8] c"ITQUAN\00"
@.str.3 = [7 x i8] c"ITBITS\00"
@.str.4 = [7 x i8] c"MOUSEX\00"
@.str.5 = [7 x i8] c"MOUSEY\00"
@.str.9 = [11 x i8] c"CURMAP+%#o\00"
@.str.10 = [3 x i8] c"WW\00"
@.str.11 = [7 x i8] c"ACTIVE\00"
@.str.13 = [6 x i8] c"PCLOC\00"
@.str.14 = [11 x i8] c"INTVEC+%#o\00"
@.str.15 = [5 x i8] c"KBLK\00"
@.str.16 = [6 x i8] c"KSTAT\00"
@.str.17 = [6 x i8] c"KADDR\00"
@.str.19 = [7 x i8] c"ITTIME\00"
@.str.20 = [7 x i8] c"TRAPPC\00"
@.str.22 = [10 x i8] c"TIMERDATA\00"
@.str.23 = [6 x i8] c"EPLOC\00"
@.str.24 = [6 x i8] c"EBLOC\00"
@.str.25 = [6 x i8] c"EELOC\00"
@.str.26 = [6 x i8] c"ELLOC\00"
@.str.27 = [7 x i8] c"EICLOC\00"
@.str.28 = [7 x i8] c"EIPLOC\00"
@.str.29 = [7 x i8] c"EOCLOC\00"
@.str.30 = [7 x i8] c"EOPLOC\00"
@.str.31 = [6 x i8] c"EHLOC\00"
@.str.32 = [6 x i8] c"ERSVD\00"
@.str.33 = [6 x i8] c"ALTOV\00"
@.str.34 = [5 x i8] c"DCBR\00"
@.str.35 = [6 x i8] c"KNMAR\00"
@.str.38 = [11 x i8] c"UTILOUT+%d\00"
@.str.39 = [8 x i8] c"XBUS+%d\00"
@.str.40 = [5 x i8] c"MEAR\00"
@.str.41 = [5 x i8] c"MESR\00"
@.str.42 = [5 x i8] c"MECR\00"
@.str.43 = [7 x i8] c"UTILIN\00"
@.str.44 = [10 x i8] c"KBDAD+%#o\00"
@.str.45 = [9 x i8] c"BANKREGS\00"
@.str.46 = [4 x i8] c"%#o\00"
define i8* @symaddr(i32 %0) {
%2 = load i32, i32* @symaddr.which
%3 = add nsw i32 %2, 1
%4 = srem i32 %3, 4
store i32 %4, i32* @symaddr.which
%5 = zext i32 %4 to i64
%6 = getelementptr inbounds [4 x [16 x i8]], [4 x [16 x i8]]* @symaddr.buff, i64 0, i64 %5, i64 0
switch i32 %0, label %73 [
i32 272, label %7
i32 273, label %9
i32 274, label %11
i32 275, label %12
i32 276, label %13
i32 277, label %14
i32 278, label %15
i32 279, label %17
i32 280, label %19
i32 281, label %21
i32 282, label %21
i32 283, label %21
i32 284, label %21
i32 285, label %21
i32 286, label %21
i32 287, label %21
i32 288, label %21
i32 289, label %21
i32 290, label %21
i32 291, label %21
i32 292, label %21
i32 293, label %21
i32 294, label %21
i32 295, label %21
i32 296, label %21
i32 298, label %24
i32 299, label %25
i32 304, label %26
i32 320, label %28
i32 321, label %29
i32 322, label %29
i32 323, label %29
i32 324, label %29
i32 325, label %29
i32 326, label %29
i32 327, label %29
i32 328, label %29
i32 329, label %29
i32 330, label %29
i32 331, label %29
i32 332, label %29
i32 333, label %29
i32 334, label %29
i32 335, label %29
i32 337, label %32
i32 338, label %33
i32 339, label %34
i32 340, label %35
i32 341, label %37
i32 343, label %38
i32 344, label %39
i32 376, label %41
i32 384, label %42
i32 385, label %43
i32 386, label %44
i32 387, label %45
i32 388, label %46
i32 389, label %47
i32 390, label %48
i32 391, label %49
i32 392, label %50
i32 393, label %51
i32 395, label %52
i32 396, label %53
i32 397, label %54
i32 399, label %55
i32 401, label %57
i32 65038, label %59
i32 65039, label %59
i32 65040, label %62
i32 65041, label %62
i32 65042, label %62
i32 65043, label %62
i32 65044, label %65
i32 65045, label %66
i32 65046, label %67
i32 65048, label %68
i32 65052, label %69
i32 65053, label %69
i32 65054, label %69
i32 65055, label %69
i32 65504, label %72
]
7: ; preds = %1
%8 = bitcast i8* %6 to i64*
store i64 23734338584789316, i64* %8
br label %75
9: ; preds = %1
%10 = bitcast i8* %6 to i64*
store i64 23455096688432708, i64* %10
br label %75
11: ; preds = %1
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 dereferenceable(7) %6, i8* align 1 dereferenceable(7) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.2, i64 0, i64 0), i64 7, i1 false)
br label %75
12: ; preds = %1
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 dereferenceable(7) %6, i8* align 1 dereferenceable(7) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.3, i64 0, i64 0), i64 7, i1 false)
br label %75
13: ; preds = %1
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 dereferenceable(7) %6, i8* align 1 dereferenceable(7) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.4, i64 0, i64 0), i64 7, i1 false)
br label %75
14: ; preds = %1
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 dereferenceable(7) %6, i8* align 1 dereferenceable(7) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.5, i64 0, i64 0), i64 7, i1 false)
br label %75
15: ; preds = %1
%16 = bitcast i8* %6 to i64*
store i64 24860298604336451, i64* %16
br label %75
17: ; preds = %1
%18 = bitcast i8* %6 to i64*
store i64 25141773581047107, i64* %18
br label %75
19: ; preds = %1
%20 = bitcast i8* %6 to i32*
store i32 4412498, i32* %20
br label %75
21: ; preds = %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1
%22 = add nsw i32 %0, -281
%23 = tail call i32 (i8*, i8*, ...) @sprintf(i8* %6, i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.9, i64 0, i64 0), i32 %22)
br label %75
24: ; preds = %1
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 dereferenceable(3) %6, i8* align 1 dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.10, i64 0, i64 0), i64 3, i1 false)
br label %75
25: ; preds = %1
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 dereferenceable(7) %6, i8* align 1 dereferenceable(7) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.11, i64 0, i64 0), i64 7, i1 false)
br label %75
26: ; preds = %1
%27 = bitcast i8* %6 to i64*
store i64 18649178759709005, i64* %27
br label %75
28: ; preds = %1
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 dereferenceable(6) %6, i8* align 1 dereferenceable(6) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.13, i64 0, i64 0), i64 6, i1 false)
br label %75
29: ; preds = %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1
%30 = add nsw i32 %0, -321
%31 = tail call i32 (i8*, i8*, ...) @sprintf(i8* %6, i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.14, i64 0, i64 0), i32 %30)
br label %75
32: ; preds = %1
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 dereferenceable(5) %6, i8* align 1 dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.15, i64 0, i64 0), i64 5, i1 false)
br label %75
33: ; preds = %1
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 dereferenceable(6) %6, i8* align 1 dereferenceable(6) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.16, i64 0, i64 0), i64 6, i1 false)
br label %75
34: ; preds = %1
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 dereferenceable(6) %6, i8* align 1 dereferenceable(6) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.17, i64 0, i64 0), i64 6, i1 false)
br label %75
35: ; preds = %1
%36 = bitcast i8* %6 to i64*
store i64 23455096688431947, i64* %36
br label %75
37: ; preds = %1
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 dereferenceable(7) %6, i8* align 1 dereferenceable(7) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.19, i64 0, i64 0), i64 7, i1 false)
br label %75
38: ; preds = %1
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 dereferenceable(7) %6, i8* align 1 dereferenceable(7) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.20, i64 0, i64 0), i64 7, i1 false)
br label %75
39: ; preds = %1
%40 = bitcast i8* %6 to i64*
store i64 18935060455576148, i64* %40
br label %75
41: ; preds = %1
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 dereferenceable(10) %6, i8* align 1 dereferenceable(10) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.22, i64 0, i64 0), i64 10, i1 false)
br label %75
42: ; preds = %1
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 dereferenceable(6) %6, i8* align 1 dereferenceable(6) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.23, i64 0, i64 0), i64 6, i1 false)
br label %75
43: ; preds = %1
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 dereferenceable(6) %6, i8* align 1 dereferenceable(6) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.24, i64 0, i64 0), i64 6, i1 false)
br label %75
44: ; preds = %1
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 dereferenceable(6) %6, i8* align 1 dereferenceable(6) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.25, i64 0, i64 0), i64 6, i1 false)
br label %75
45: ; preds = %1
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 dereferenceable(6) %6, i8* align 1 dereferenceable(6) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.26, i64 0, i64 0), i64 6, i1 false)
br label %75
46: ; preds = %1
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 dereferenceable(7) %6, i8* align 1 dereferenceable(7) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.27, i64 0, i64 0), i64 7, i1 false)
br label %75
47: ; preds = %1
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 dereferenceable(7) %6, i8* align 1 dereferenceable(7) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.28, i64 0, i64 0), i64 7, i1 false)
br label %75
48: ; preds = %1
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 dereferenceable(7) %6, i8* align 1 dereferenceable(7) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.29, i64 0, i64 0), i64 7, i1 false)
br label %75
49: ; preds = %1
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 dereferenceable(7) %6, i8* align 1 dereferenceable(7) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.30, i64 0, i64 0), i64 7, i1 false)
br label %75
50: ; preds = %1
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 dereferenceable(6) %6, i8* align 1 dereferenceable(6) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.31, i64 0, i64 0), i64 6, i1 false)
br label %75
51: ; preds = %1
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 dereferenceable(6) %6, i8* align 1 dereferenceable(6) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.32, i64 0, i64 0), i64 6, i1 false)
br label %75
52: ; preds = %1
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 dereferenceable(6) %6, i8* align 1 dereferenceable(6) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.33, i64 0, i64 0), i64 6, i1 false)
br label %75
53: ; preds = %1
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 dereferenceable(5) %6, i8* align 1 dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.34, i64 0, i64 0), i64 5, i1 false)
br label %75
54: ; preds = %1
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 dereferenceable(6) %6, i8* align 1 dereferenceable(6) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.35, i64 0, i64 0), i64 6, i1 false)
br label %75
55: ; preds = %1
%56 = bitcast i8* %6 to i32*
store i32 4276803, i32* %56
br label %75
57: ; preds = %1
%58 = bitcast i8* %6 to i32*
store i32 4473171, i32* %58
br label %75
59: ; preds = %1, %1
%60 = add nsw i32 %0, -65038
%61 = tail call i32 (i8*, i8*, ...) @sprintf(i8* %6, i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.38, i64 0, i64 0), i32 %60)
br label %75
62: ; preds = %1, %1, %1, %1
%63 = add nsw i32 %0, -65040
%64 = tail call i32 (i8*, i8*, ...) @sprintf(i8* %6, i8* dereferenceable(1) getelementptr inbounds ([8 x i8], [8 x i8]* @.str.39, i64 0, i64 0), i32 %63)
br label %75
65: ; preds = %1
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 dereferenceable(5) %6, i8* align 1 dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.40, i64 0, i64 0), i64 5, i1 false)
br label %75
66: ; preds = %1
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 dereferenceable(5) %6, i8* align 1 dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.41, i64 0, i64 0), i64 5, i1 false)
br label %75
67: ; preds = %1
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 dereferenceable(5) %6, i8* align 1 dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.42, i64 0, i64 0), i64 5, i1 false)
br label %75
68: ; preds = %1
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 dereferenceable(7) %6, i8* align 1 dereferenceable(7) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.43, i64 0, i64 0), i64 7, i1 false)
br label %75
69: ; preds = %1, %1, %1, %1
%70 = add nsw i32 %0, -65052
%71 = tail call i32 (i8*, i8*, ...) @sprintf(i8* %6, i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.44, i64 0, i64 0), i32 %70)
br label %75
72: ; preds = %1
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 dereferenceable(9) %6, i8* align 1 dereferenceable(9) getelementptr inbounds ([9 x i8], [9 x i8]* @.str.45, i64 0, i64 0), i64 9, i1 false)
br label %75
73: ; preds = %1
%74 = tail call i32 @snprintf(i8* %6, i32 16, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.46, i64 0, i64 0), i32 %0)
br label %75
75: ; preds = %73, %72, %69, %68, %67, %66, %65, %62, %59, %57, %55, %54, %53, %52, %51, %50, %49, %48, %47, %46, %45, %44, %43, %42, %41, %39, %38, %37, %35, %34, %33, %32, %29, %28, %26, %25, %24, %21, %19, %17, %15, %14, %13, %12, %11, %9, %7
%76 = load i32, i32* @symaddr.which
%77 = zext i32 %76 to i64
%78 = getelementptr inbounds [4 x [16 x i8]], [4 x [16 x i8]]* @symaddr.buff, i64 0, i64 %77, i64 0
ret i8* %78
}