#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 */

/* Variables and functions */
int /*<<< orphan*/ printf(char *, ...);
void print(int addr, int cmd) {
  char *m;
  int arg;
  printf("%04x: %02x %02x\t", addr, cmd >> 8 & 0xff, cmd & 0xff);
  switch (cmd) {
  case 0x0000:
    printf("nop");
    goto done;
  case 0x0002:
    printf("ret");
    goto done;
  case 0x0003:
    printf("sleep");
    goto done;
  case 0x0004:
    printf("awake");
    goto done;
  case 0x0005:
    printf("reti");
    goto done;
  case 0x0006:
    printf("dump");
    goto done;
  case 0x0007:
    printf("halt");
    goto done;
  case 0x170a:
    printf("a--?");
    goto done;
  case 0x1d0a:
    printf("aw");
    goto done;
  case 0x1f0a:
    printf("a++?");
    goto done;
  case 0x250a:
    printf("a++z?");
    goto done;
  case 0x270a:
    printf("a--z?");
    goto done;
  case 0x290a:
    printf("az");
    goto done;
  case 0x2b0a:
    printf("as");
    goto done;
  case 0x330a:
    printf("a?");
    goto done;
  case 0x9a04:
    printf("z?");
    goto done;
  case 0x9204:
    printf("nz?");
    goto done;
  case 0x9804:
    printf("c?");
    goto done;
  case 0x9004:
    printf("b?");
    goto done;
  }
  switch (cmd >> 8) {
  case 0x01:
    m = "atx";
    goto shortop;
  case 0x02:
    m = "a-bx";
    goto shortop;
  case 0x03:
    m = "x-ba";
    goto shortop;
  case 0x04:
    m = "a-x";
    goto shortop;
  case 0x05:
    m = "x-a";
    goto shortop;
  case 0x06:
    m = "x--a";
    goto shortop;
  case 0x07:
    m = "x--";
    goto shortop;
  case 0x08:
    m = "a|x";
    goto shortop;
  case 0x09:
    m = "x|a";
    goto shortop;
  case 0x0a:
    m = "a&x";
    goto shortop;
  case 0x0b:
    m = "x&a";
    goto shortop;
  case 0x0c:
    m = "a^x";
    goto shortop;
  case 0x0d:
    m = "x^a";
    goto shortop;
  case 0x0e:
    m = "a+x";
    goto shortop;
  case 0x0f:
    m = "x+a";
    goto shortop;
  case 0x10:
    m = "a+cx";
    goto shortop;
  case 0x11:
    m = "x+ca";
    goto shortop;
  case 0x12:
    m = "xca";
    goto shortop;
  case 0x13:
    m = "xc";
    goto shortop;
  case 0x14:
    m = "x++a";
    goto shortop;
  case 0x15:
    m = "x++";
    goto shortop;
  case 0x16:
    m = "x--a?";
    goto shortop;
  case 0x17:
    m = "x--?";
    goto shortop;
  case 0x18:
    m = "xc>>a";
    goto shortop;
  case 0x19:
    m = "xc>>x";
    goto shortop;
  case 0x1a:
    m = "xc<<a";
    goto shortop;
  case 0x1b:
    m = "xc<<x";
    goto shortop;
  case 0x1c:
    m = "xwa";
    goto shortop;
  case 0x1d:
    m = "xw";
    goto shortop;
  case 0x1e:
    m = "x++a?";
    goto shortop;
  case 0x1f:
    m = "x++?";
    goto shortop;
  case 0x20:
    m = "x>>a";
    goto shortop;
  case 0x21:
    m = "x>>x";
    goto shortop;
  case 0x22:
    m = "x<<a";
    goto shortop;
  case 0x23:
    m = "x<<x";
    goto shortop;
  case 0x24:
    m = "x++az?";
    goto shortop;
  case 0x25:
    m = "x++z?";
    goto shortop;
  case 0x26:
    m = "x--az?";
    goto shortop;
  case 0x27:
    m = "x--z?";
    goto shortop;
  case 0x28:
    m = "xza";
    goto shortop;
  case 0x29:
    m = "xz";
    goto shortop;
  case 0x2a:
    m = "xsa";
    goto shortop;
  case 0x2b:
    m = "xs";
    goto shortop;
  case 0x2c:
    m = "anax";
    goto shortop;
  case 0x2d:
    m = "anx";
    goto shortop;
  case 0x2e:
    m = "adax";
    goto shortop;
  case 0x2f:
    m = "adx";
    goto shortop;
  case 0x30:
    m = "x>=a?";
    goto shortop;
  case 0x31:
    m = "x!=a?";
    goto shortop;
  case 0x32:
    m = "x<=a?";
    goto shortop;
  case 0x33:
    m = "x?";
    goto shortop;
  case 0x34:
    m = "a*x";
    goto shortop;
  case 0x6a:
    m = "xta";
    goto shortop;
  case 0xa0:
    m = "llx";
    goto shortop;
  case 0xa2:
    m = "lhx";
    goto shortop;
  case 0xa4:
    m = "xll";
    goto shortop;
  case 0xa6:
    m = "xhl";
    goto shortop;
  case 0xa8:
    m = "plx";
    goto shortop;
  case 0xa9:
    m = "pl++x";
    goto shortop;
  case 0xae:
    m = "xhp";
    goto shortop;
  case 0xaf:
    m = "xhp++";
    goto shortop;
  case 0xb0:
    m = "cta";
    goto shortop;
  case 0xb1:
    m = "a+c";
    goto shortop;
  case 0xb2:
    m = "c-a";
    goto shortop;
  case 0xb3:
    m = "a|c";
    goto shortop;
  case 0xb4:
    m = "a^c";
    goto shortop;
  case 0xb5:
    m = "a&c";
    goto shortop;
  case 0xb6:
    m = "retc";
    goto shortop;
  case 0xb7:
    m = "lcall";
    goto shortop;
  case 0xb8:
    m = "reg";
    goto shortop;
  case 0xba:
    m = "dat";
    goto shortop;
  case 0xbc:
    m = "a*c";
  shortop:
    printf("%s", m);
    arg = cmd & 0xff;
    if (arg > 9)
      printf("\t0x%x", arg);
    else if (arg)
      printf("\t%d", arg);
    goto done;
  }
  switch (cmd >> 8 & 0xf8) {
  case 0x38:
    m = "bt";
    goto bitop;
  case 0x80:
    m = "bs";
    goto bitop;
  case 0x88:
    m = "bz";
    goto bitop;
  case 0x90:
    m = "bz?";
    goto bitop;
  case 0x98:
    m = "bs?";
  bitop:
    printf("%s\t", m);
    arg = cmd & 0xff;
    if (arg > 9)
      printf("0x%x", arg);
    else
      printf("%d", arg);
    printf(", %d", cmd >> 8 & 7);
    break;
  case 0xc0:
  case 0xc8:
  case 0xd0:
  case 0xd8:
    m = "goto";
    goto longop;
  case 0xe0:
  case 0xe8:
  case 0xf0:
  case 0xf8:
    m = "call";
  longop:
    printf("%s", m);
    arg = cmd & 0x1fff;
    if (arg > 9)
      printf("\t0x%x", arg);
    else if (arg)
      printf("\t%d", arg);
    break;
  case 0x60:
  case 0x68:
  case 0x70:
  case 0x78:
    printf("xtr\t");
    arg = cmd & 0xff;
    if (arg > 9)
      printf("0x%x", arg);
    else
      printf("%d", arg);
    arg = cmd >> 8 & 0x1f;
    if (arg > 9)
      printf(", 0x%x", arg);
    else
      printf(", %d", arg);
    break;
  case 0x40:
  case 0x48:
  case 0x50:
  case 0x58:
    printf("rtx\t");
    arg = cmd >> 8 & 0x1f;
    if (arg > 9)
      printf("0x%x", arg);
    else
      printf("%d", arg);
    arg = cmd & 0xff;
    if (arg > 9)
      printf(", 0x%x", arg);
    else
      printf(", %d", arg);
    break;
  default:
    printf("?");
    if (cmd >= ' ' && cmd <= '~')
      printf("\t\t; `%c'", cmd);
    break;
  }
done:
  printf("\n");
}


x86 assembly (clang, -O0):
<print>:
push   %rbp
mov    %rsp,%rbp
sub    $0x30,%rsp
mov    %edi,-0x4(%rbp)
mov    %esi,-0x8(%rbp)
mov    -0x4(%rbp),%esi
mov    -0x8(%rbp),%eax
mov    %ah,%cl
movzbl %cl,%edx
movzbl %al,%ecx
lea    0x14c1(%rip),%rdi
xor    %eax,%eax
call   1030 <printf@plt>
mov    -0x8(%rbp),%eax
mov    %eax,-0x18(%rbp)
test   %eax,%eax
je     1297 <print+0x187>
jmp    114d <print+0x3d>
mov    -0x18(%rbp),%eax
sub    $0x2,%eax
je     12aa <print+0x19a>
jmp    115e <print+0x4e>
mov    -0x18(%rbp),%eax
sub    $0x3,%eax
je     12bd <print+0x1ad>
jmp    116f <print+0x5f>
mov    -0x18(%rbp),%eax
sub    $0x4,%eax
je     12d0 <print+0x1c0>
jmp    1180 <print+0x70>
mov    -0x18(%rbp),%eax
sub    $0x5,%eax
je     12e3 <print+0x1d3>
jmp    1191 <print+0x81>
mov    -0x18(%rbp),%eax
sub    $0x6,%eax
je     12f6 <print+0x1e6>
jmp    11a2 <print+0x92>
mov    -0x18(%rbp),%eax
sub    $0x7,%eax
je     1309 <print+0x1f9>
jmp    11b3 <print+0xa3>
mov    -0x18(%rbp),%eax
sub    $0x170a,%eax
je     131c <print+0x20c>
jmp    11c6 <print+0xb6>
mov    -0x18(%rbp),%eax
sub    $0x1d0a,%eax
je     132f <print+0x21f>
jmp    11d9 <print+0xc9>
mov    -0x18(%rbp),%eax
sub    $0x1f0a,%eax
je     1342 <print+0x232>
jmp    11ec <print+0xdc>
mov    -0x18(%rbp),%eax
sub    $0x250a,%eax
je     1355 <print+0x245>
jmp    11ff <print+0xef>
mov    -0x18(%rbp),%eax
sub    $0x270a,%eax
je     1368 <print+0x258>
jmp    1212 <print+0x102>
mov    -0x18(%rbp),%eax
sub    $0x290a,%eax
je     137b <print+0x26b>
jmp    1225 <print+0x115>
mov    -0x18(%rbp),%eax
sub    $0x2b0a,%eax
je     138e <print+0x27e>
jmp    1238 <print+0x128>
mov    -0x18(%rbp),%eax
sub    $0x330a,%eax
je     13a1 <print+0x291>
jmp    124b <print+0x13b>
mov    -0x18(%rbp),%eax
sub    $0x9004,%eax
je     13ed <print+0x2dd>
jmp    125e <print+0x14e>
mov    -0x18(%rbp),%eax
sub    $0x9204,%eax
je     13c7 <print+0x2b7>
jmp    1271 <print+0x161>
mov    -0x18(%rbp),%eax
sub    $0x9804,%eax
je     13da <print+0x2ca>
jmp    1284 <print+0x174>
mov    -0x18(%rbp),%eax
sub    $0x9a04,%eax
je     13b4 <print+0x2a4>
jmp    1400 <print+0x2f0>
lea    0x1367(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1bc5 <print+0xab5>
lea    0x1358(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1bc5 <print+0xab5>
lea    0x1349(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1bc5 <print+0xab5>
lea    0x133c(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1bc5 <print+0xab5>
lea    0x132f(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1bc5 <print+0xab5>
lea    0x1321(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1bc5 <print+0xab5>
lea    0x1313(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1bc5 <print+0xab5>
lea    0x1305(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1bc5 <print+0xab5>
lea    0x12f7(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1bc5 <print+0xab5>
lea    0x12e7(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1bc5 <print+0xab5>
lea    0x12d9(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1bc5 <print+0xab5>
lea    0x12cc(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1bc5 <print+0xab5>
lea    0x12bf(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1bc5 <print+0xab5>
lea    0x12af(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1bc5 <print+0xab5>
lea    0x132f(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1bc5 <print+0xab5>
lea    0x127d(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1bc5 <print+0xab5>
lea    0x1279(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1bc5 <print+0xab5>
lea    0x126a(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1bc5 <print+0xab5>
lea    0x125a(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1bc5 <print+0xab5>
mov    -0x8(%rbp),%eax
sar    $0x8,%eax
add    $0xffffffff,%eax
mov    %eax,%ecx
mov    %rcx,-0x20(%rbp)
sub    $0xbb,%eax
ja     190b <print+0x7fb>
mov    -0x20(%rbp),%rax
lea    0xbdb(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x121c(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0x1210(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0x1205(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0x11fa(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0x11ee(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0x11e2(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0x11d7(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0x11cb(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0x11bf(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0x11b3(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0x11a7(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0x119b(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0x118f(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0x1183(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0x1177(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0x116b(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0x1160(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0x1155(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0x1149(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0x113c(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0x1131(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0x1125(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0x111b(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0x1110(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0x1106(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0x10fc(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0x10f2(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0x10e8(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0x10dc(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0x10cf(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0x10c5(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0x10ba(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0x10af(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0x10a4(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0x1099(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0x108e(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0x1085(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0x107b(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0x1072(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0x1068(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0x105c(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0x104f(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0x1043(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0x1036(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0x102b(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0x101f(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0x1014(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0x1008(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0xffe(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0xff4(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0xfea(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0xfdd(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0xfd1(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0xfc5(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0xfb9(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0xfad(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0xfa1(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0xf95(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0xf89(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0xf7f(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0xf73(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0xf69(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0xf5d(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0xf51(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0xf45(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0xf39(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0xf2d(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0xf21(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0xf16(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0xf0c(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0xf00(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    18a9 <print+0x799>
lea    0xef4(%rip),%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rsi
lea    0xee9(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x8(%rbp),%eax
and    $0xff,%eax
mov    %eax,-0x14(%rbp)
cmpl   $0x9,-0x14(%rbp)
jle    18e6 <print+0x7d6>
mov    -0x14(%rbp),%esi
lea    0xec6(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1906 <print+0x7f6>
cmpl   $0x0,-0x14(%rbp)
je     1901 <print+0x7f1>
mov    -0x14(%rbp),%esi
lea    0xeac(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1906 <print+0x7f6>
jmp    1bc5 <print+0xab5>
mov    -0x8(%rbp),%eax
shr    $0x8,%eax
and    $0xf8,%eax
add    $0xffffffc8,%eax
mov    %eax,%ecx
mov    %rcx,-0x28(%rbp)
sub    $0xc0,%eax
ja     1b88 <print+0xa78>
mov    -0x28(%rbp),%rax
lea    0x9bb(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0xe65(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1989 <print+0x879>
lea    0xe58(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1989 <print+0x879>
lea    0xe4b(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1989 <print+0x879>
lea    0xe3e(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1989 <print+0x879>
lea    0xe32(%rip),%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rsi
lea    0xe27(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x8(%rbp),%eax
and    $0xff,%eax
mov    %eax,-0x14(%rbp)
cmpl   $0x9,-0x14(%rbp)
jle    19c6 <print+0x8b6>
mov    -0x14(%rbp),%esi
lea    0xde7(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    19d7 <print+0x8c7>
mov    -0x14(%rbp),%esi
lea    0xdd7(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x8(%rbp),%esi
sar    $0x8,%esi
and    $0x7,%esi
lea    0xdd8(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1bc0 <print+0xab0>
lea    0xdca(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1a0e <print+0x8fe>
lea    0xd82(%rip),%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rsi
lea    0xd84(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x8(%rbp),%eax
and    $0x1fff,%eax
mov    %eax,-0x14(%rbp)
cmpl   $0x9,-0x14(%rbp)
jle    1a4b <print+0x93b>
mov    -0x14(%rbp),%esi
lea    0xd61(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1a6b <print+0x95b>
cmpl   $0x0,-0x14(%rbp)
je     1a66 <print+0x956>
mov    -0x14(%rbp),%esi
lea    0xd47(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1a6b <print+0x95b>
jmp    1bc0 <print+0xab0>
lea    0xd52(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x8(%rbp),%eax
and    $0xff,%eax
mov    %eax,-0x14(%rbp)
cmpl   $0x9,-0x14(%rbp)
jle    1aa9 <print+0x999>
mov    -0x14(%rbp),%esi
lea    0xd04(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1aba <print+0x9aa>
mov    -0x14(%rbp),%esi
lea    0xcf4(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x8(%rbp),%eax
sar    $0x8,%eax
and    $0x1f,%eax
mov    %eax,-0x14(%rbp)
cmpl   $0x9,-0x14(%rbp)
jle    1ae6 <print+0x9d6>
mov    -0x14(%rbp),%esi
lea    0xcf4(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1af7 <print+0x9e7>
mov    -0x14(%rbp),%esi
lea    0xccf(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1bc0 <print+0xab0>
lea    0xcd2(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x8(%rbp),%eax
sar    $0x8,%eax
and    $0x1f,%eax
mov    %eax,-0x14(%rbp)
cmpl   $0x9,-0x14(%rbp)
jle    1b36 <print+0xa26>
mov    -0x14(%rbp),%esi
lea    0xc77(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1b47 <print+0xa37>
mov    -0x14(%rbp),%esi
lea    0xc67(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x8(%rbp),%eax
and    $0xff,%eax
mov    %eax,-0x14(%rbp)
cmpl   $0x9,-0x14(%rbp)
jle    1b72 <print+0xa62>
mov    -0x14(%rbp),%esi
lea    0xc68(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1b83 <print+0xa73>
mov    -0x14(%rbp),%esi
lea    0xc43(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1bc0 <print+0xab0>
lea    0xaa4(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
cmpl   $0x20,-0x8(%rbp)
jl     1bbb <print+0xaab>
cmpl   $0x7e,-0x8(%rbp)
jg     1bbb <print+0xaab>
mov    -0x8(%rbp),%esi
lea    0xc26(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1bc0 <print+0xab0>
jmp    1bc5 <print+0xab5>
lea    0xc17(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
add    $0x30,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<print>:
push   %rbp
push   %r14
push   %rbx
mov    %esi,%ebx
mov    %edi,%esi
mov    %ebx,%ebp
sar    $0x8,%ebp
movzbl %bpl,%edx
movzbl %bl,%r14d
lea    0x1238(%rip),%rdi
mov    %r14d,%ecx
xor    %eax,%eax
call   1040 <printf@plt>
cmp    $0x1f09,%ebx
jle    1192 <print+0x72>
cmp    $0x3309,%ebx
jg     11b5 <print+0x95>
cmp    $0x2709,%ebx
jle    1209 <print+0xe9>
cmp    $0x270a,%ebx
je     12b0 <print+0x190>
cmp    $0x290a,%ebx
je     12b9 <print+0x199>
cmp    $0x2b0a,%ebx
jne    1249 <print+0x129>
lea    0x1237(%rip),%rdi
jmp    12ed <print+0x1cd>
cmp    $0x7,%ebx
ja     11e9 <print+0xc9>
mov    %ebx,%eax
lea    0xe60(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x11d5(%rip),%rdi
jmp    12ed <print+0x1cd>
cmp    $0x9203,%ebx
jle    1229 <print+0x109>
cmp    $0x9204,%ebx
je     12c2 <print+0x1a2>
cmp    $0x9804,%ebx
je     12cb <print+0x1ab>
cmp    $0x9a04,%ebx
jne    1249 <print+0x129>
lea    0x11d4(%rip),%rdi
jmp    12ed <print+0x1cd>
cmp    $0x170a,%ebx
je     12e6 <print+0x1c6>
cmp    $0x1d0a,%ebx
jne    1249 <print+0x129>
lea    0x11a9(%rip),%rdi
jmp    12ed <print+0x1cd>
cmp    $0x1f0a,%ebx
je     12d4 <print+0x1b4>
cmp    $0x250a,%ebx
jne    1249 <print+0x129>
lea    0x1191(%rip),%rdi
jmp    12ed <print+0x1cd>
cmp    $0x330a,%ebx
je     12dd <print+0x1bd>
cmp    $0x9004,%ebx
jne    1249 <print+0x129>
lea    0x118a(%rip),%rdi
jmp    12ed <print+0x1cd>
lea    -0x1(%rbp),%eax
cmp    $0xbb,%eax
ja     1596 <print+0x476>
lea    0x1173(%rip),%rsi
lea    0xdbb(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x1160(%rip),%rsi
jmp    1695 <print+0x575>
lea    0x1108(%rip),%rdi
jmp    12ed <print+0x1cd>
lea    0x1103(%rip),%rdi
jmp    12ed <print+0x1cd>
lea    0x1100(%rip),%rdi
jmp    12ed <print+0x1cd>
lea    0x10fd(%rip),%rdi
jmp    12ed <print+0x1cd>
lea    0x10f9(%rip),%rdi
jmp    12ed <print+0x1cd>
lea    0x10f5(%rip),%rdi
jmp    12ed <print+0x1cd>
lea    0x1104(%rip),%rdi
jmp    12ed <print+0x1cd>
lea    0x1101(%rip),%rdi
jmp    12ed <print+0x1cd>
lea    0x10fe(%rip),%rdi
jmp    12ed <print+0x1cd>
lea    0x10f9(%rip),%rdi
jmp    12ed <print+0x1cd>
lea    0x10d5(%rip),%rdi
jmp    12ed <print+0x1cd>
lea    0x1173(%rip),%rdi
jmp    12ed <print+0x1cd>
lea    0x10bb(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
mov    $0xa,%edi
pop    %rbx
pop    %r14
pop    %rbp
jmp    1030 <putchar@plt>
lea    0x10d1(%rip),%rsi
jmp    1695 <print+0x575>
lea    0x10ca(%rip),%rsi
jmp    1695 <print+0x575>
lea    0x10c6(%rip),%rsi
jmp    1695 <print+0x575>
lea    0x10bf(%rip),%rsi
jmp    1695 <print+0x575>
lea    0x10b7(%rip),%rsi
jmp    1695 <print+0x575>
lea    0x10b7(%rip),%rsi
jmp    1695 <print+0x575>
lea    0x10af(%rip),%rsi
jmp    1695 <print+0x575>
lea    0x10a7(%rip),%rsi
jmp    1695 <print+0x575>
lea    0x109f(%rip),%rsi
jmp    1695 <print+0x575>
lea    0x1097(%rip),%rsi
jmp    1695 <print+0x575>
lea    0x108f(%rip),%rsi
jmp    1695 <print+0x575>
lea    0x1091(%rip),%rsi
jmp    1695 <print+0x575>
lea    0x1088(%rip),%rsi
jmp    1695 <print+0x575>
lea    0x1085(%rip),%rsi
jmp    1695 <print+0x575>
lea    0x107f(%rip),%rsi
jmp    1695 <print+0x575>
lea    0x1078(%rip),%rsi
jmp    1695 <print+0x575>
lea    0x1072(%rip),%rsi
jmp    1695 <print+0x575>
lea    0x106c(%rip),%rsi
jmp    1695 <print+0x575>
lea    0x1070(%rip),%rsi
jmp    1695 <print+0x575>
lea    0x1067(%rip),%rsi
jmp    1695 <print+0x575>
lea    0x1061(%rip),%rsi
jmp    1695 <print+0x575>
lea    0x105a(%rip),%rsi
jmp    1695 <print+0x575>
lea    0x1058(%rip),%rsi
jmp    1695 <print+0x575>
lea    0x105d(%rip),%rsi
jmp    1695 <print+0x575>
lea    0x105e(%rip),%rsi
jmp    1695 <print+0x575>
lea    0x1058(%rip),%rsi
jmp    1695 <print+0x575>
lea    0x1050(%rip),%rsi
jmp    1695 <print+0x575>
lea    0x1047(%rip),%rsi
jmp    1695 <print+0x575>
lea    0x1042(%rip),%rsi
jmp    1695 <print+0x575>
lea    0x103b(%rip),%rsi
jmp    1695 <print+0x575>
lea    0x1033(%rip),%rsi
jmp    1695 <print+0x575>
lea    0x1036(%rip),%rsi
jmp    1695 <print+0x575>
lea    0x1030(%rip),%rsi
jmp    1695 <print+0x575>
lea    0x102a(%rip),%rsi
jmp    1695 <print+0x575>
lea    0x1029(%rip),%rsi
jmp    1695 <print+0x575>
lea    0x1029(%rip),%rsi
jmp    1695 <print+0x575>
lea    0x1041(%rip),%rsi
jmp    1695 <print+0x575>
lea    0x103d(%rip),%rsi
jmp    1695 <print+0x575>
lea    0x1040(%rip),%rsi
jmp    1695 <print+0x575>
lea    0xf06(%rip),%rsi
jmp    1695 <print+0x575>
lea    0xf0b(%rip),%rsi
jmp    1695 <print+0x575>
lea    0xf03(%rip),%rsi
jmp    1695 <print+0x575>
lea    0xf14(%rip),%rsi
jmp    1695 <print+0x575>
lea    0xf0d(%rip),%rsi
jmp    1695 <print+0x575>
lea    0xf0d(%rip),%rsi
jmp    1695 <print+0x575>
lea    0xf22(%rip),%rsi
jmp    1695 <print+0x575>
lea    0xf1c(%rip),%rsi
jmp    1695 <print+0x575>
lea    0xf27(%rip),%rsi
jmp    1695 <print+0x575>
lea    0xf25(%rip),%rsi
jmp    1695 <print+0x575>
lea    0xf1e(%rip),%rsi
jmp    1695 <print+0x575>
lea    0xf1f(%rip),%rsi
jmp    1695 <print+0x575>
lea    0xf2b(%rip),%rsi
jmp    1695 <print+0x575>
lea    0xf30(%rip),%rsi
jmp    1695 <print+0x575>
lea    0xf28(%rip),%rsi
jmp    1695 <print+0x575>
lea    0xf31(%rip),%rsi
jmp    1695 <print+0x575>
mov    %ebp,%ecx
and    $0xf8,%ecx
add    $0xffffffc8,%ecx
shr    $0x3,%ecx
cmp    $0x18,%ecx
ja     17c5 <print+0x6a5>
lea    0xf90(%rip),%rax
lea    0xf6f(%rip),%rsi
lea    0xd4e(%rip),%rdx
movslq (%rdx,%rcx,4),%rcx
add    %rdx,%rcx
jmp    *%rcx
lea    0xf83(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
and    $0x1f,%ebp
cmp    $0xa,%ebp
lea    0xf3b(%rip),%rax
lea    0xf3a(%rip),%rdi
cmovae %rax,%rdi
mov    %ebp,%esi
xor    %eax,%eax
call   1040 <printf@plt>
cmp    $0xa,%r14d
jb     1758 <print+0x638>
lea    0xf43(%rip),%rdi
jmp    16c2 <print+0x5a2>
lea    0xeaf(%rip),%rsi
jmp    1695 <print+0x575>
lea    0xeae(%rip),%rsi
jmp    1695 <print+0x575>
lea    0xea9(%rip),%rsi
jmp    1695 <print+0x575>
lea    0xea8(%rip),%rsi
jmp    1695 <print+0x575>
lea    0xea3(%rip),%rsi
jmp    1695 <print+0x575>
lea    0xea0(%rip),%rsi
jmp    1695 <print+0x575>
lea    0xe9b(%rip),%rsi
jmp    1695 <print+0x575>
lea    0xe98(%rip),%rsi
jmp    1695 <print+0x575>
lea    0xe93(%rip),%rsi
jmp    1695 <print+0x575>
lea    0xe8e(%rip),%rsi
jmp    1695 <print+0x575>
lea    0xe8d(%rip),%rsi
jmp    1695 <print+0x575>
lea    0xe8c(%rip),%rsi
jmp    1695 <print+0x575>
lea    0xe88(%rip),%rsi
jmp    1695 <print+0x575>
lea    0xe89(%rip),%rsi
jmp    1695 <print+0x575>
lea    0xe84(%rip),%rsi
lea    0xe81(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
cmp    $0xa,%r14d
jb     16b2 <print+0x592>
lea    0xe70(%rip),%rdi
jmp    16c2 <print+0x5a2>
test   %r14d,%r14d
je     12f4 <print+0x1d4>
lea    0xe64(%rip),%rdi
mov    %r14d,%esi
xor    %eax,%eax
call   1040 <printf@plt>
jmp    12f4 <print+0x1d4>
lea    0xe71(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
cmp    $0xa,%r14d
lea    0xe37(%rip),%rax
lea    0xe36(%rip),%rdi
cmovae %rax,%rdi
mov    %r14d,%esi
xor    %eax,%eax
call   1040 <printf@plt>
and    $0x1f,%ebp
cmp    $0xa,%ebp
jb     17b7 <print+0x697>
lea    0xe3c(%rip),%rdi
mov    %ebp,%esi
jmp    16c5 <print+0x5a5>
lea    0xdef(%rip),%rax
lea    0xdf9(%rip),%rdi
mov    %rax,%rsi
xor    %eax,%eax
call   1040 <printf@plt>
and    $0x1fff,%ebx
cmp    $0xa,%ebx
jb     1742 <print+0x622>
lea    0xde0(%rip),%rdi
jmp    1751 <print+0x631>
test   %ebx,%ebx
je     12f4 <print+0x1d4>
lea    0xdd5(%rip),%rdi
mov    %ebx,%esi
jmp    16c5 <print+0x5a5>
lea    0xde0(%rip),%rdi
jmp    16c2 <print+0x5a2>
lea    0xdc2(%rip),%rsi
jmp    1786 <print+0x666>
lea    0xdbc(%rip),%rsi
jmp    1786 <print+0x666>
lea    0xdb6(%rip),%rsi
jmp    1786 <print+0x666>
lea    0xdb1(%rip),%rsi
lea    0xdae(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
cmp    $0xa,%r14d
lea    0xd82(%rip),%rax
lea    0xd81(%rip),%rdi
cmovae %rax,%rdi
mov    %r14d,%esi
xor    %eax,%eax
call   1040 <printf@plt>
and    $0x7,%ebp
lea    0xd81(%rip),%rdi
mov    %ebp,%esi
jmp    16c5 <print+0x5a5>
mov    $0x3f,%edi
call   1030 <putchar@plt>
lea    -0x20(%rbx),%eax
cmp    $0x5e,%eax
ja     12f4 <print+0x1d4>
lea    0xd78(%rip),%rdi
jmp    1751 <print+0x631>

LLVM IR (-O0):
@.str = [17 x i8] c"%04x: %02x %02x\09\00"
@.str.1 = [4 x i8] c"nop\00"
@.str.2 = [4 x i8] c"ret\00"
@.str.3 = [6 x i8] c"sleep\00"
@.str.4 = [6 x i8] c"awake\00"
@.str.5 = [5 x i8] c"reti\00"
@.str.6 = [5 x i8] c"dump\00"
@.str.7 = [5 x i8] c"halt\00"
@.str.8 = [5 x i8] c"a--?\00"
@.str.9 = [3 x i8] c"aw\00"
@.str.10 = [5 x i8] c"a++?\00"
@.str.11 = [6 x i8] c"a++z?\00"
@.str.12 = [6 x i8] c"a--z?\00"
@.str.13 = [3 x i8] c"az\00"
@.str.14 = [3 x i8] c"as\00"
@.str.15 = [3 x i8] c"a?\00"
@.str.16 = [3 x i8] c"z?\00"
@.str.17 = [4 x i8] c"nz?\00"
@.str.18 = [3 x i8] c"c?\00"
@.str.19 = [3 x i8] c"b?\00"
@.str.20 = [4 x i8] c"atx\00"
@.str.21 = [5 x i8] c"a-bx\00"
@.str.22 = [5 x i8] c"x-ba\00"
@.str.23 = [4 x i8] c"a-x\00"
@.str.24 = [4 x i8] c"x-a\00"
@.str.25 = [5 x i8] c"x--a\00"
@.str.26 = [4 x i8] c"x--\00"
@.str.27 = [4 x i8] c"a|x\00"
@.str.28 = [4 x i8] c"x|a\00"
@.str.29 = [4 x i8] c"a&x\00"
@.str.30 = [4 x i8] c"x&a\00"
@.str.31 = [4 x i8] c"a^x\00"
@.str.32 = [4 x i8] c"x^a\00"
@.str.33 = [4 x i8] c"a+x\00"
@.str.34 = [4 x i8] c"x+a\00"
@.str.35 = [5 x i8] c"a+cx\00"
@.str.36 = [5 x i8] c"x+ca\00"
@.str.37 = [4 x i8] c"xca\00"
@.str.38 = [3 x i8] c"xc\00"
@.str.39 = [5 x i8] c"x++a\00"
@.str.40 = [4 x i8] c"x++\00"
@.str.41 = [6 x i8] c"x--a?\00"
@.str.42 = [5 x i8] c"x--?\00"
@.str.43 = [6 x i8] c"xc>>a\00"
@.str.44 = [6 x i8] c"xc>>x\00"
@.str.45 = [6 x i8] c"xc<<a\00"
@.str.46 = [6 x i8] c"xc<<x\00"
@.str.47 = [4 x i8] c"xwa\00"
@.str.48 = [3 x i8] c"xw\00"
@.str.49 = [6 x i8] c"x++a?\00"
@.str.50 = [5 x i8] c"x++?\00"
@.str.51 = [5 x i8] c"x>>a\00"
@.str.52 = [5 x i8] c"x>>x\00"
@.str.53 = [5 x i8] c"x<<a\00"
@.str.54 = [5 x i8] c"x<<x\00"
@.str.55 = [7 x i8] c"x++az?\00"
@.str.56 = [6 x i8] c"x++z?\00"
@.str.57 = [7 x i8] c"x--az?\00"
@.str.58 = [6 x i8] c"x--z?\00"
@.str.59 = [4 x i8] c"xza\00"
@.str.60 = [3 x i8] c"xz\00"
@.str.61 = [4 x i8] c"xsa\00"
@.str.62 = [3 x i8] c"xs\00"
@.str.63 = [5 x i8] c"anax\00"
@.str.64 = [4 x i8] c"anx\00"
@.str.65 = [5 x i8] c"adax\00"
@.str.66 = [4 x i8] c"adx\00"
@.str.67 = [6 x i8] c"x>=a?\00"
@.str.68 = [6 x i8] c"x!=a?\00"
@.str.69 = [6 x i8] c"x<=a?\00"
@.str.70 = [3 x i8] c"x?\00"
@.str.71 = [4 x i8] c"a*x\00"
@.str.72 = [4 x i8] c"xta\00"
@.str.73 = [4 x i8] c"llx\00"
@.str.74 = [4 x i8] c"lhx\00"
@.str.75 = [4 x i8] c"xll\00"
@.str.76 = [4 x i8] c"xhl\00"
@.str.77 = [4 x i8] c"plx\00"
@.str.78 = [6 x i8] c"pl++x\00"
@.str.79 = [4 x i8] c"xhp\00"
@.str.80 = [6 x i8] c"xhp++\00"
@.str.81 = [4 x i8] c"cta\00"
@.str.82 = [4 x i8] c"a+c\00"
@.str.83 = [4 x i8] c"c-a\00"
@.str.84 = [4 x i8] c"a|c\00"
@.str.85 = [4 x i8] c"a^c\00"
@.str.86 = [4 x i8] c"a&c\00"
@.str.87 = [5 x i8] c"retc\00"
@.str.88 = [6 x i8] c"lcall\00"
@.str.89 = [4 x i8] c"reg\00"
@.str.90 = [4 x i8] c"dat\00"
@.str.91 = [4 x i8] c"a*c\00"
@.str.92 = [3 x i8] c"%s\00"
@.str.93 = [6 x i8] c"\090x%x\00"
@.str.94 = [4 x i8] c"\09%d\00"
@.str.95 = [3 x i8] c"bt\00"
@.str.96 = [3 x i8] c"bs\00"
@.str.97 = [3 x i8] c"bz\00"
@.str.98 = [4 x i8] c"bz?\00"
@.str.99 = [4 x i8] c"bs?\00"
@.str.100 = [4 x i8] c"%s\09\00"
@.str.101 = [5 x i8] c"0x%x\00"
@.str.102 = [3 x i8] c"%d\00"
@.str.103 = [5 x i8] c", %d\00"
@.str.104 = [5 x i8] c"goto\00"
@.str.105 = [5 x i8] c"call\00"
@.str.106 = [5 x i8] c"xtr\09\00"
@.str.107 = [7 x i8] c", 0x%x\00"
@.str.108 = [5 x i8] c"rtx\09\00"
@.str.109 = [2 x i8] c"?\00"
@.str.110 = [9 x i8] c"\09\09; `%c'\00"
@.str.111 = [2 x i8] c"\0A\00"
define void @print(i32 %0, i32 %1) {
%3 = alloca i32
%4 = alloca i32
%5 = alloca i8*
%6 = alloca i32
store i32 %0, i32* %3
store i32 %1, i32* %4
%7 = load i32, i32* %3
%8 = load i32, i32* %4
%9 = ashr i32 %8, 8
%10 = and i32 %9, 255
%11 = load i32, i32* %4
%12 = and i32 %11, 255
%13 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str, i64 0, i64 0), i32 %7, i32 %10, i32 %12)
%14 = load i32, i32* %4
switch i32 %14, label %53 [
i32 0, label %15
i32 2, label %17
i32 3, label %19
i32 4, label %21
i32 5, label %23
i32 6, label %25
i32 7, label %27
i32 5898, label %29
i32 7434, label %31
i32 7946, label %33
i32 9482, label %35
i32 9994, label %37
i32 10506, label %39
i32 11018, label %41
i32 13066, label %43
i32 39428, label %45
i32 37380, label %47
i32 38916, label %49
i32 36868, label %51
]
15: ; preds = %2
%16 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0))
br label %255
17: ; preds = %2
%18 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0))
br label %255
19: ; preds = %2
%20 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.3, i64 0, i64 0))
br label %255
21: ; preds = %2
%22 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.4, i64 0, i64 0))
br label %255
23: ; preds = %2
%24 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.5, i64 0, i64 0))
br label %255
25: ; preds = %2
%26 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0))
br label %255
27: ; preds = %2
%28 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.7, i64 0, i64 0))
br label %255
29: ; preds = %2
%30 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.8, i64 0, i64 0))
br label %255
31: ; preds = %2
%32 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.9, i64 0, i64 0))
br label %255
33: ; preds = %2
%34 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.10, i64 0, i64 0))
br label %255
35: ; preds = %2
%36 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.11, i64 0, i64 0))
br label %255
37: ; preds = %2
%38 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.12, i64 0, i64 0))
br label %255
39: ; preds = %2
%40 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.13, i64 0, i64 0))
br label %255
41: ; preds = %2
%42 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.14, i64 0, i64 0))
br label %255
43: ; preds = %2
%44 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.15, i64 0, i64 0))
br label %255
45: ; preds = %2
%46 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.16, i64 0, i64 0))
br label %255
47: ; preds = %2
%48 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.17, i64 0, i64 0))
br label %255
49: ; preds = %2
%50 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.18, i64 0, i64 0))
br label %255
51: ; preds = %2
%52 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.19, i64 0, i64 0))
br label %255
53: ; preds = %2
%54 = load i32, i32* %4
%55 = ashr i32 %54, 8
switch i32 %55, label %146 [
i32 1, label %56
i32 2, label %57
i32 3, label %58
i32 4, label %59
i32 5, label %60
i32 6, label %61
i32 7, label %62
i32 8, label %63
i32 9, label %64
i32 10, label %65
i32 11, label %66
i32 12, label %67
i32 13, label %68
i32 14, label %69
i32 15, label %70
i32 16, label %71
i32 17, label %72
i32 18, label %73
i32 19, label %74
i32 20, label %75
i32 21, label %76
i32 22, label %77
i32 23, label %78
i32 24, label %79
i32 25, label %80
i32 26, label %81
i32 27, label %82
i32 28, label %83
i32 29, label %84
i32 30, label %85
i32 31, label %86
i32 32, label %87
i32 33, label %88
i32 34, label %89
i32 35, label %90
i32 36, label %91
i32 37, label %92
i32 38, label %93
i32 39, label %94
i32 40, label %95
i32 41, label %96
i32 42, label %97
i32 43, label %98
i32 44, label %99
i32 45, label %100
i32 46, label %101
i32 47, label %102
i32 48, label %103
i32 49, label %104
i32 50, label %105
i32 51, label %106
i32 52, label %107
i32 106, label %108
i32 160, label %109
i32 162, label %110
i32 164, label %111
i32 166, label %112
i32 168, label %113
i32 169, label %114
i32 174, label %115
i32 175, label %116
i32 176, label %117
i32 177, label %118
i32 178, label %119
i32 179, label %120
i32 180, label %121
i32 181, label %122
i32 182, label %123
i32 183, label %124
i32 184, label %125
i32 186, label %126
i32 188, label %127
]
56: ; preds = %53
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.20, i64 0, i64 0), i8** %5
br label %128
57: ; preds = %53
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.21, i64 0, i64 0), i8** %5
br label %128
58: ; preds = %53
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.22, i64 0, i64 0), i8** %5
br label %128
59: ; preds = %53
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.23, i64 0, i64 0), i8** %5
br label %128
60: ; preds = %53
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.24, i64 0, i64 0), i8** %5
br label %128
61: ; preds = %53
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.25, i64 0, i64 0), i8** %5
br label %128
62: ; preds = %53
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.26, i64 0, i64 0), i8** %5
br label %128
63: ; preds = %53
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.27, i64 0, i64 0), i8** %5
br label %128
64: ; preds = %53
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.28, i64 0, i64 0), i8** %5
br label %128
65: ; preds = %53
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.29, i64 0, i64 0), i8** %5
br label %128
66: ; preds = %53
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.30, i64 0, i64 0), i8** %5
br label %128
67: ; preds = %53
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.31, i64 0, i64 0), i8** %5
br label %128
68: ; preds = %53
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.32, i64 0, i64 0), i8** %5
br label %128
69: ; preds = %53
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.33, i64 0, i64 0), i8** %5
br label %128
70: ; preds = %53
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.34, i64 0, i64 0), i8** %5
br label %128
71: ; preds = %53
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.35, i64 0, i64 0), i8** %5
br label %128
72: ; preds = %53
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.36, i64 0, i64 0), i8** %5
br label %128
73: ; preds = %53
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.37, i64 0, i64 0), i8** %5
br label %128
74: ; preds = %53
store i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.38, i64 0, i64 0), i8** %5
br label %128
75: ; preds = %53
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.39, i64 0, i64 0), i8** %5
br label %128
76: ; preds = %53
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.40, i64 0, i64 0), i8** %5
br label %128
77: ; preds = %53
store i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.41, i64 0, i64 0), i8** %5
br label %128
78: ; preds = %53
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.42, i64 0, i64 0), i8** %5
br label %128
79: ; preds = %53
store i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.43, i64 0, i64 0), i8** %5
br label %128
80: ; preds = %53
store i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.44, i64 0, i64 0), i8** %5
br label %128
81: ; preds = %53
store i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.45, i64 0, i64 0), i8** %5
br label %128
82: ; preds = %53
store i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.46, i64 0, i64 0), i8** %5
br label %128
83: ; preds = %53
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.47, i64 0, i64 0), i8** %5
br label %128
84: ; preds = %53
store i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.48, i64 0, i64 0), i8** %5
br label %128
85: ; preds = %53
store i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.49, i64 0, i64 0), i8** %5
br label %128
86: ; preds = %53
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.50, i64 0, i64 0), i8** %5
br label %128
87: ; preds = %53
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.51, i64 0, i64 0), i8** %5
br label %128
88: ; preds = %53
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.52, i64 0, i64 0), i8** %5
br label %128
89: ; preds = %53
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.53, i64 0, i64 0), i8** %5
br label %128
90: ; preds = %53
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.54, i64 0, i64 0), i8** %5
br label %128
91: ; preds = %53
store i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.55, i64 0, i64 0), i8** %5
br label %128
92: ; preds = %53
store i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.56, i64 0, i64 0), i8** %5
br label %128
93: ; preds = %53
store i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.57, i64 0, i64 0), i8** %5
br label %128
94: ; preds = %53
store i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.58, i64 0, i64 0), i8** %5
br label %128
95: ; preds = %53
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.59, i64 0, i64 0), i8** %5
br label %128
96: ; preds = %53
store i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.60, i64 0, i64 0), i8** %5
br label %128
97: ; preds = %53
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.61, i64 0, i64 0), i8** %5
br label %128
98: ; preds = %53
store i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.62, i64 0, i64 0), i8** %5
br label %128
99: ; preds = %53
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.63, i64 0, i64 0), i8** %5
br label %128
100: ; preds = %53
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.64, i64 0, i64 0), i8** %5
br label %128
101: ; preds = %53
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.65, i64 0, i64 0), i8** %5
br label %128
102: ; preds = %53
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.66, i64 0, i64 0), i8** %5
br label %128
103: ; preds = %53
store i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.67, i64 0, i64 0), i8** %5
br label %128
104: ; preds = %53
store i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.68, i64 0, i64 0), i8** %5
br label %128
105: ; preds = %53
store i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.69, i64 0, i64 0), i8** %5
br label %128
106: ; preds = %53
store i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.70, i64 0, i64 0), i8** %5
br label %128
107: ; preds = %53
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.71, i64 0, i64 0), i8** %5
br label %128
108: ; preds = %53
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.72, i64 0, i64 0), i8** %5
br label %128
109: ; preds = %53
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.73, i64 0, i64 0), i8** %5
br label %128
110: ; preds = %53
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.74, i64 0, i64 0), i8** %5
br label %128
111: ; preds = %53
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.75, i64 0, i64 0), i8** %5
br label %128
112: ; preds = %53
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.76, i64 0, i64 0), i8** %5
br label %128
113: ; preds = %53
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.77, i64 0, i64 0), i8** %5
br label %128
114: ; preds = %53
store i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.78, i64 0, i64 0), i8** %5
br label %128
115: ; preds = %53
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.79, i64 0, i64 0), i8** %5
br label %128
116: ; preds = %53
store i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.80, i64 0, i64 0), i8** %5
br label %128
117: ; preds = %53
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.81, i64 0, i64 0), i8** %5
br label %128
118: ; preds = %53
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.82, i64 0, i64 0), i8** %5
br label %128
119: ; preds = %53
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.83, i64 0, i64 0), i8** %5
br label %128
120: ; preds = %53
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.84, i64 0, i64 0), i8** %5
br label %128
121: ; preds = %53
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.85, i64 0, i64 0), i8** %5
br label %128
122: ; preds = %53
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.86, i64 0, i64 0), i8** %5
br label %128
123: ; preds = %53
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.87, i64 0, i64 0), i8** %5
br label %128
124: ; preds = %53
store i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.88, i64 0, i64 0), i8** %5
br label %128
125: ; preds = %53
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.89, i64 0, i64 0), i8** %5
br label %128
126: ; preds = %53
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.90, i64 0, i64 0), i8** %5
br label %128
127: ; preds = %53
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.91, i64 0, i64 0), i8** %5
br label %128
128: ; preds = %127, %126, %125, %124, %123, %122, %121, %120, %119, %118, %117, %116, %115, %114, %113, %112, %111, %110, %109, %108, %107, %106, %105, %104, %103, %102, %101, %100, %99, %98, %97, %96, %95, %94, %93, %92, %91, %90, %89, %88, %87, %86, %85, %84, %83, %82, %81, %80, %79, %78, %77, %76, %75, %74, %73, %72, %71, %70, %69, %68, %67, %66, %65, %64, %63, %62, %61, %60, %59, %58, %57, %56
%129 = load i8*, i8** %5
%130 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.92, i64 0, i64 0), i8* %129)
%131 = load i32, i32* %4
%132 = and i32 %131, 255
store i32 %132, i32* %6
%133 = load i32, i32* %6
%134 = icmp sgt i32 %133, 9
br i1 %134, label %135, label %138
135: ; preds = %128
%136 = load i32, i32* %6
%137 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.93, i64 0, i64 0), i32 %136)
br label %145
138: ; preds = %128
%139 = load i32, i32* %6
%140 = icmp ne i32 %139, 0
br i1 %140, label %141, label %144
141: ; preds = %138
%142 = load i32, i32* %6
%143 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.94, i64 0, i64 0), i32 %142)
br label %144
144: ; preds = %141, %138
br label %145
145: ; preds = %144, %135
br label %255
146: ; preds = %53
%147 = load i32, i32* %4
%148 = ashr i32 %147, 8
%149 = and i32 %148, 248
switch i32 %149, label %243 [
i32 56, label %150
i32 128, label %151
i32 136, label %152
i32 144, label %153
i32 152, label %154
i32 192, label %173
i32 200, label %173
i32 208, label %173
i32 216, label %173
i32 224, label %174
i32 232, label %174
i32 240, label %174
i32 248, label %174
i32 96, label %193
i32 104, label %193
i32 112, label %193
i32 120, label %193
i32 64, label %218
i32 72, label %218
i32 80, label %218
i32 88, label %218
]
150: ; preds = %146
store i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.95, i64 0, i64 0), i8** %5
br label %155
151: ; preds = %146
store i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.96, i64 0, i64 0), i8** %5
br label %155
152: ; preds = %146
store i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.97, i64 0, i64 0), i8** %5
br label %155
153: ; preds = %146
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.98, i64 0, i64 0), i8** %5
br label %155
154: ; preds = %146
store i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.99, i64 0, i64 0), i8** %5
br label %155
155: ; preds = %154, %153, %152, %151, %150
%156 = load i8*, i8** %5
%157 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.100, i64 0, i64 0), i8* %156)
%158 = load i32, i32* %4
%159 = and i32 %158, 255
store i32 %159, i32* %6
%160 = load i32, i32* %6
%161 = icmp sgt i32 %160, 9
br i1 %161, label %162, label %165
162: ; preds = %155
%163 = load i32, i32* %6
%164 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.101, i64 0, i64 0), i32 %163)
br label %168
165: ; preds = %155
%166 = load i32, i32* %6
%167 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.102, i64 0, i64 0), i32 %166)
br label %168
168: ; preds = %165, %162
%169 = load i32, i32* %4
%170 = ashr i32 %169, 8
%171 = and i32 %170, 7
%172 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.103, i64 0, i64 0), i32 %171)
br label %254
173: ; preds = %146, %146, %146, %146
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.104, i64 0, i64 0), i8** %5
br label %175
174: ; preds = %146, %146, %146, %146
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.105, i64 0, i64 0), i8** %5
br label %175
175: ; preds = %174, %173
%176 = load i8*, i8** %5
%177 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.92, i64 0, i64 0), i8* %176)
%178 = load i32, i32* %4
%179 = and i32 %178, 8191
store i32 %179, i32* %6
%180 = load i32, i32* %6
%181 = icmp sgt i32 %180, 9
br i1 %181, label %182, label %185
182: ; preds = %175
%183 = load i32, i32* %6
%184 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.93, i64 0, i64 0), i32 %183)
br label %192
185: ; preds = %175
%186 = load i32, i32* %6
%187 = icmp ne i32 %186, 0
br i1 %187, label %188, label %191
188: ; preds = %185
%189 = load i32, i32* %6
%190 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.94, i64 0, i64 0), i32 %189)
br label %191
191: ; preds = %188, %185
br label %192
192: ; preds = %191, %182
br label %254
193: ; preds = %146, %146, %146, %146
%194 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.106, i64 0, i64 0))
%195 = load i32, i32* %4
%196 = and i32 %195, 255
store i32 %196, i32* %6
%197 = load i32, i32* %6
%198 = icmp sgt i32 %197, 9
br i1 %198, label %199, label %202
199: ; preds = %193
%200 = load i32, i32* %6
%201 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.101, i64 0, i64 0), i32 %200)
br label %205
202: ; preds = %193
%203 = load i32, i32* %6
%204 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.102, i64 0, i64 0), i32 %203)
br label %205
205: ; preds = %202, %199
%206 = load i32, i32* %4
%207 = ashr i32 %206, 8
%208 = and i32 %207, 31
store i32 %208, i32* %6
%209 = load i32, i32* %6
%210 = icmp sgt i32 %209, 9
br i1 %210, label %211, label %214
211: ; preds = %205
%212 = load i32, i32* %6
%213 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.107, i64 0, i64 0), i32 %212)
br label %217
214: ; preds = %205
%215 = load i32, i32* %6
%216 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.103, i64 0, i64 0), i32 %215)
br label %217
217: ; preds = %214, %211
br label %254
218: ; preds = %146, %146, %146, %146
%219 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.108, i64 0, i64 0))
%220 = load i32, i32* %4
%221 = ashr i32 %220, 8
%222 = and i32 %221, 31
store i32 %222, i32* %6
%223 = load i32, i32* %6
%224 = icmp sgt i32 %223, 9
br i1 %224, label %225, label %228
225: ; preds = %218
%226 = load i32, i32* %6
%227 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.101, i64 0, i64 0), i32 %226)
br label %231
228: ; preds = %218
%229 = load i32, i32* %6
%230 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.102, i64 0, i64 0), i32 %229)
br label %231
231: ; preds = %228, %225
%232 = load i32, i32* %4
%233 = and i32 %232, 255
store i32 %233, i32* %6
%234 = load i32, i32* %6
%235 = icmp sgt i32 %234, 9
br i1 %235, label %236, label %239
236: ; preds = %231
%237 = load i32, i32* %6
%238 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.107, i64 0, i64 0), i32 %237)
br label %242
239: ; preds = %231
%240 = load i32, i32* %6
%241 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.103, i64 0, i64 0), i32 %240)
br label %242
242: ; preds = %239, %236
br label %254
243: ; preds = %146
%244 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.109, i64 0, i64 0))
%245 = load i32, i32* %4
%246 = icmp sge i32 %245, 32
br i1 %246, label %247, label %253
247: ; preds = %243
%248 = load i32, i32* %4
%249 = icmp sle i32 %248, 126
br i1 %249, label %250, label %253
250: ; preds = %247
%251 = load i32, i32* %4
%252 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.110, i64 0, i64 0), i32 %251)
br label %253
253: ; preds = %250, %247, %243
br label %254
254: ; preds = %253, %242, %217, %192, %168
br label %255
255: ; preds = %254, %145, %51, %49, %47, %45, %43, %41, %39, %37, %35, %33, %31, %29, %27, %25, %23, %21, %19, %17, %15
%256 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.111, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@.str = [17 x i8] c"%04x: %02x %02x\09\00"
@.str.1 = [4 x i8] c"nop\00"
@.str.2 = [4 x i8] c"ret\00"
@.str.3 = [6 x i8] c"sleep\00"
@.str.4 = [6 x i8] c"awake\00"
@.str.5 = [5 x i8] c"reti\00"
@.str.6 = [5 x i8] c"dump\00"
@.str.7 = [5 x i8] c"halt\00"
@.str.8 = [5 x i8] c"a--?\00"
@.str.9 = [3 x i8] c"aw\00"
@.str.10 = [5 x i8] c"a++?\00"
@.str.11 = [6 x i8] c"a++z?\00"
@.str.12 = [6 x i8] c"a--z?\00"
@.str.13 = [3 x i8] c"az\00"
@.str.14 = [3 x i8] c"as\00"
@.str.15 = [3 x i8] c"a?\00"
@.str.16 = [3 x i8] c"z?\00"
@.str.17 = [4 x i8] c"nz?\00"
@.str.18 = [3 x i8] c"c?\00"
@.str.19 = [3 x i8] c"b?\00"
@.str.20 = [4 x i8] c"atx\00"
@.str.21 = [5 x i8] c"a-bx\00"
@.str.22 = [5 x i8] c"x-ba\00"
@.str.23 = [4 x i8] c"a-x\00"
@.str.24 = [4 x i8] c"x-a\00"
@.str.25 = [5 x i8] c"x--a\00"
@.str.26 = [4 x i8] c"x--\00"
@.str.27 = [4 x i8] c"a|x\00"
@.str.28 = [4 x i8] c"x|a\00"
@.str.29 = [4 x i8] c"a&x\00"
@.str.30 = [4 x i8] c"x&a\00"
@.str.31 = [4 x i8] c"a^x\00"
@.str.32 = [4 x i8] c"x^a\00"
@.str.33 = [4 x i8] c"a+x\00"
@.str.34 = [4 x i8] c"x+a\00"
@.str.35 = [5 x i8] c"a+cx\00"
@.str.36 = [5 x i8] c"x+ca\00"
@.str.37 = [4 x i8] c"xca\00"
@.str.38 = [3 x i8] c"xc\00"
@.str.39 = [5 x i8] c"x++a\00"
@.str.40 = [4 x i8] c"x++\00"
@.str.41 = [6 x i8] c"x--a?\00"
@.str.42 = [5 x i8] c"x--?\00"
@.str.43 = [6 x i8] c"xc>>a\00"
@.str.44 = [6 x i8] c"xc>>x\00"
@.str.45 = [6 x i8] c"xc<<a\00"
@.str.46 = [6 x i8] c"xc<<x\00"
@.str.47 = [4 x i8] c"xwa\00"
@.str.48 = [3 x i8] c"xw\00"
@.str.49 = [6 x i8] c"x++a?\00"
@.str.50 = [5 x i8] c"x++?\00"
@.str.51 = [5 x i8] c"x>>a\00"
@.str.52 = [5 x i8] c"x>>x\00"
@.str.53 = [5 x i8] c"x<<a\00"
@.str.54 = [5 x i8] c"x<<x\00"
@.str.55 = [7 x i8] c"x++az?\00"
@.str.56 = [6 x i8] c"x++z?\00"
@.str.57 = [7 x i8] c"x--az?\00"
@.str.58 = [6 x i8] c"x--z?\00"
@.str.59 = [4 x i8] c"xza\00"
@.str.60 = [3 x i8] c"xz\00"
@.str.61 = [4 x i8] c"xsa\00"
@.str.62 = [3 x i8] c"xs\00"
@.str.63 = [5 x i8] c"anax\00"
@.str.64 = [4 x i8] c"anx\00"
@.str.65 = [5 x i8] c"adax\00"
@.str.66 = [4 x i8] c"adx\00"
@.str.67 = [6 x i8] c"x>=a?\00"
@.str.68 = [6 x i8] c"x!=a?\00"
@.str.69 = [6 x i8] c"x<=a?\00"
@.str.70 = [3 x i8] c"x?\00"
@.str.71 = [4 x i8] c"a*x\00"
@.str.72 = [4 x i8] c"xta\00"
@.str.73 = [4 x i8] c"llx\00"
@.str.74 = [4 x i8] c"lhx\00"
@.str.75 = [4 x i8] c"xll\00"
@.str.76 = [4 x i8] c"xhl\00"
@.str.77 = [4 x i8] c"plx\00"
@.str.78 = [6 x i8] c"pl++x\00"
@.str.79 = [4 x i8] c"xhp\00"
@.str.80 = [6 x i8] c"xhp++\00"
@.str.81 = [4 x i8] c"cta\00"
@.str.82 = [4 x i8] c"a+c\00"
@.str.83 = [4 x i8] c"c-a\00"
@.str.84 = [4 x i8] c"a|c\00"
@.str.85 = [4 x i8] c"a^c\00"
@.str.86 = [4 x i8] c"a&c\00"
@.str.87 = [5 x i8] c"retc\00"
@.str.88 = [6 x i8] c"lcall\00"
@.str.89 = [4 x i8] c"reg\00"
@.str.90 = [4 x i8] c"dat\00"
@.str.91 = [4 x i8] c"a*c\00"
@.str.92 = [3 x i8] c"%s\00"
@.str.93 = [6 x i8] c"\090x%x\00"
@.str.94 = [4 x i8] c"\09%d\00"
@.str.95 = [3 x i8] c"bt\00"
@.str.96 = [3 x i8] c"bs\00"
@.str.97 = [3 x i8] c"bz\00"
@.str.98 = [4 x i8] c"bz?\00"
@.str.99 = [4 x i8] c"bs?\00"
@.str.100 = [4 x i8] c"%s\09\00"
@.str.101 = [5 x i8] c"0x%x\00"
@.str.102 = [3 x i8] c"%d\00"
@.str.103 = [5 x i8] c", %d\00"
@.str.104 = [5 x i8] c"goto\00"
@.str.105 = [5 x i8] c"call\00"
@.str.106 = [5 x i8] c"xtr\09\00"
@.str.107 = [7 x i8] c", 0x%x\00"
@.str.108 = [5 x i8] c"rtx\09\00"
@.str.110 = [9 x i8] c"\09\09; `%c'\00"
define void @print(i32 %0, i32 %1) {
%3 = ashr i32 %1, 8
%4 = and i32 %3, 255
%5 = and i32 %1, 255
%6 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @.str, i64 0, i64 0), i32 %0, i32 %4, i32 %5)
switch i32 %1, label %45 [
i32 0, label %7
i32 2, label %9
i32 3, label %11
i32 4, label %13
i32 5, label %15
i32 6, label %17
i32 7, label %19
i32 5898, label %21
i32 7434, label %23
i32 7946, label %25
i32 9482, label %27
i32 9994, label %29
i32 10506, label %31
i32 11018, label %33
i32 13066, label %35
i32 39428, label %37
i32 37380, label %39
i32 38916, label %41
i32 36868, label %43
]
7: ; preds = %2
%8 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0))
br label %183
9: ; preds = %2
%10 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0))
br label %183
11: ; preds = %2
%12 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.3, i64 0, i64 0))
br label %183
13: ; preds = %2
%14 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.4, i64 0, i64 0))
br label %183
15: ; preds = %2
%16 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.5, i64 0, i64 0))
br label %183
17: ; preds = %2
%18 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0))
br label %183
19: ; preds = %2
%20 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.7, i64 0, i64 0))
br label %183
21: ; preds = %2
%22 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.8, i64 0, i64 0))
br label %183
23: ; preds = %2
%24 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.9, i64 0, i64 0))
br label %183
25: ; preds = %2
%26 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.10, i64 0, i64 0))
br label %183
27: ; preds = %2
%28 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.11, i64 0, i64 0))
br label %183
29: ; preds = %2
%30 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.12, i64 0, i64 0))
br label %183
31: ; preds = %2
%32 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.13, i64 0, i64 0))
br label %183
33: ; preds = %2
%34 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.14, i64 0, i64 0))
br label %183
35: ; preds = %2
%36 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.15, i64 0, i64 0))
br label %183
37: ; preds = %2
%38 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.16, i64 0, i64 0))
br label %183
39: ; preds = %2
%40 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.17, i64 0, i64 0))
br label %183
41: ; preds = %2
%42 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.18, i64 0, i64 0))
br label %183
43: ; preds = %2
%44 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.19, i64 0, i64 0))
br label %183
45: ; preds = %2
switch i32 %3, label %127 [
i32 1, label %117
i32 2, label %46
i32 3, label %47
i32 4, label %48
i32 5, label %49
i32 6, label %50
i32 7, label %51
i32 8, label %52
i32 9, label %53
i32 10, label %54
i32 11, label %55
i32 12, label %56
i32 13, label %57
i32 14, label %58
i32 15, label %59
i32 16, label %60
i32 17, label %61
i32 18, label %62
i32 19, label %63
i32 20, label %64
i32 21, label %65
i32 22, label %66
i32 23, label %67
i32 24, label %68
i32 25, label %69
i32 26, label %70
i32 27, label %71
i32 28, label %72
i32 29, label %73
i32 30, label %74
i32 31, label %75
i32 32, label %76
i32 33, label %77
i32 34, label %78
i32 35, label %79
i32 36, label %80
i32 37, label %81
i32 38, label %82
i32 39, label %83
i32 40, label %84
i32 41, label %85
i32 42, label %86
i32 43, label %87
i32 44, label %88
i32 45, label %89
i32 46, label %90
i32 47, label %91
i32 48, label %92
i32 49, label %93
i32 50, label %94
i32 51, label %95
i32 52, label %96
i32 106, label %97
i32 160, label %98
i32 162, label %99
i32 164, label %100
i32 166, label %101
i32 168, label %102
i32 169, label %103
i32 174, label %104
i32 175, label %105
i32 176, label %106
i32 177, label %107
i32 178, label %108
i32 179, label %109
i32 180, label %110
i32 181, label %111
i32 182, label %112
i32 183, label %113
i32 184, label %114
i32 186, label %115
i32 188, label %116
]
46: ; preds = %45
br label %117
47: ; preds = %45
br label %117
48: ; preds = %45
br label %117
49: ; preds = %45
br label %117
50: ; preds = %45
br label %117
51: ; preds = %45
br label %117
52: ; preds = %45
br label %117
53: ; preds = %45
br label %117
54: ; preds = %45
br label %117
55: ; preds = %45
br label %117
56: ; preds = %45
br label %117
57: ; preds = %45
br label %117
58: ; preds = %45
br label %117
59: ; preds = %45
br label %117
60: ; preds = %45
br label %117
61: ; preds = %45
br label %117
62: ; preds = %45
br label %117
63: ; preds = %45
br label %117
64: ; preds = %45
br label %117
65: ; preds = %45
br label %117
66: ; preds = %45
br label %117
67: ; preds = %45
br label %117
68: ; preds = %45
br label %117
69: ; preds = %45
br label %117
70: ; preds = %45
br label %117
71: ; preds = %45
br label %117
72: ; preds = %45
br label %117
73: ; preds = %45
br label %117
74: ; preds = %45
br label %117
75: ; preds = %45
br label %117
76: ; preds = %45
br label %117
77: ; preds = %45
br label %117
78: ; preds = %45
br label %117
79: ; preds = %45
br label %117
80: ; preds = %45
br label %117
81: ; preds = %45
br label %117
82: ; preds = %45
br label %117
83: ; preds = %45
br label %117
84: ; preds = %45
br label %117
85: ; preds = %45
br label %117
86: ; preds = %45
br label %117
87: ; preds = %45
br label %117
88: ; preds = %45
br label %117
89: ; preds = %45
br label %117
90: ; preds = %45
br label %117
91: ; preds = %45
br label %117
92: ; preds = %45
br label %117
93: ; preds = %45
br label %117
94: ; preds = %45
br label %117
95: ; preds = %45
br label %117
96: ; preds = %45
br label %117
97: ; preds = %45
br label %117
98: ; preds = %45
br label %117
99: ; preds = %45
br label %117
100: ; preds = %45
br label %117
101: ; preds = %45
br label %117
102: ; preds = %45
br label %117
103: ; preds = %45
br label %117
104: ; preds = %45
br label %117
105: ; preds = %45
br label %117
106: ; preds = %45
br label %117
107: ; preds = %45
br label %117
108: ; preds = %45
br label %117
109: ; preds = %45
br label %117
110: ; preds = %45
br label %117
111: ; preds = %45
br label %117
112: ; preds = %45
br label %117
113: ; preds = %45
br label %117
114: ; preds = %45
br label %117
115: ; preds = %45
br label %117
116: ; preds = %45
br label %117
117: ; preds = %45, %116, %115, %114, %113, %112, %111, %110, %109, %108, %107, %106, %105, %104, %103, %102, %101, %100, %99, %98, %97, %96, %95, %94, %93, %92, %91, %90, %89, %88, %87, %86, %85, %84, %83, %82, %81, %80, %79, %78, %77, %76, %75, %74, %73, %72, %71, %70, %69, %68, %67, %66, %65, %64, %63, %62, %61, %60, %59, %58, %57, %56, %55, %54, %53, %52, %51, %50, %49, %48, %47, %46
%118 = phi i8* [ getelementptr inbounds ([4 x i8], [4 x i8]* @.str.91, i64 0, i64 0), %116 ], [ getelementptr inbounds ([4 x i8], [4 x i8]* @.str.90, i64 0, i64 0), %115 ], [ getelementptr inbounds ([4 x i8], [4 x i8]* @.str.89, i64 0, i64 0), %114 ], [ getelementptr inbounds ([6 x i8], [6 x i8]* @.str.88, i64 0, i64 0), %113 ], [ getelementptr inbounds ([5 x i8], [5 x i8]* @.str.87, i64 0, i64 0), %112 ], [ getelementptr inbounds ([4 x i8], [4 x i8]* @.str.86, i64 0, i64 0), %111 ], [ getelementptr inbounds ([4 x i8], [4 x i8]* @.str.85, i64 0, i64 0), %110 ], [ getelementptr inbounds ([4 x i8], [4 x i8]* @.str.84, i64 0, i64 0), %109 ], [ getelementptr inbounds ([4 x i8], [4 x i8]* @.str.83, i64 0, i64 0), %108 ], [ getelementptr inbounds ([4 x i8], [4 x i8]* @.str.82, i64 0, i64 0), %107 ], [ getelementptr inbounds ([4 x i8], [4 x i8]* @.str.81, i64 0, i64 0), %106 ], [ getelementptr inbounds ([6 x i8], [6 x i8]* @.str.80, i64 0, i64 0), %105 ], [ getelementptr inbounds ([4 x i8], [4 x i8]* @.str.79, i64 0, i64 0), %104 ], [ getelementptr inbounds ([6 x i8], [6 x i8]* @.str.78, i64 0, i64 0), %103 ], [ getelementptr inbounds ([4 x i8], [4 x i8]* @.str.77, i64 0, i64 0), %102 ], [ getelementptr inbounds ([4 x i8], [4 x i8]* @.str.76, i64 0, i64 0), %101 ], [ getelementptr inbounds ([4 x i8], [4 x i8]* @.str.75, i64 0, i64 0), %100 ], [ getelementptr inbounds ([4 x i8], [4 x i8]* @.str.74, i64 0, i64 0), %99 ], [ getelementptr inbounds ([4 x i8], [4 x i8]* @.str.73, i64 0, i64 0), %98 ], [ getelementptr inbounds ([4 x i8], [4 x i8]* @.str.72, i64 0, i64 0), %97 ], [ getelementptr inbounds ([4 x i8], [4 x i8]* @.str.71, i64 0, i64 0), %96 ], [ getelementptr inbounds ([3 x i8], [3 x i8]* @.str.70, i64 0, i64 0), %95 ], [ getelementptr inbounds ([6 x i8], [6 x i8]* @.str.69, i64 0, i64 0), %94 ], [ getelementptr inbounds ([6 x i8], [6 x i8]* @.str.68, i64 0, i64 0), %93 ], [ getelementptr inbounds ([6 x i8], [6 x i8]* @.str.67, i64 0, i64 0), %92 ], [ getelementptr inbounds ([4 x i8], [4 x i8]* @.str.66, i64 0, i64 0), %91 ], [ getelementptr inbounds ([5 x i8], [5 x i8]* @.str.65, i64 0, i64 0), %90 ], [ getelementptr inbounds ([4 x i8], [4 x i8]* @.str.64, i64 0, i64 0), %89 ], [ getelementptr inbounds ([5 x i8], [5 x i8]* @.str.63, i64 0, i64 0), %88 ], [ getelementptr inbounds ([3 x i8], [3 x i8]* @.str.62, i64 0, i64 0), %87 ], [ getelementptr inbounds ([4 x i8], [4 x i8]* @.str.61, i64 0, i64 0), %86 ], [ getelementptr inbounds ([3 x i8], [3 x i8]* @.str.60, i64 0, i64 0), %85 ], [ getelementptr inbounds ([4 x i8], [4 x i8]* @.str.59, i64 0, i64 0), %84 ], [ getelementptr inbounds ([6 x i8], [6 x i8]* @.str.58, i64 0, i64 0), %83 ], [ getelementptr inbounds ([7 x i8], [7 x i8]* @.str.57, i64 0, i64 0), %82 ], [ getelementptr inbounds ([6 x i8], [6 x i8]* @.str.56, i64 0, i64 0), %81 ], [ getelementptr inbounds ([7 x i8], [7 x i8]* @.str.55, i64 0, i64 0), %80 ], [ getelementptr inbounds ([5 x i8], [5 x i8]* @.str.54, i64 0, i64 0), %79 ], [ getelementptr inbounds ([5 x i8], [5 x i8]* @.str.53, i64 0, i64 0), %78 ], [ getelementptr inbounds ([5 x i8], [5 x i8]* @.str.52, i64 0, i64 0), %77 ], [ getelementptr inbounds ([5 x i8], [5 x i8]* @.str.51, i64 0, i64 0), %76 ], [ getelementptr inbounds ([5 x i8], [5 x i8]* @.str.50, i64 0, i64 0), %75 ], [ getelementptr inbounds ([6 x i8], [6 x i8]* @.str.49, i64 0, i64 0), %74 ], [ getelementptr inbounds ([3 x i8], [3 x i8]* @.str.48, i64 0, i64 0), %73 ], [ getelementptr inbounds ([4 x i8], [4 x i8]* @.str.47, i64 0, i64 0), %72 ], [ getelementptr inbounds ([6 x i8], [6 x i8]* @.str.46, i64 0, i64 0), %71 ], [ getelementptr inbounds ([6 x i8], [6 x i8]* @.str.45, i64 0, i64 0), %70 ], [ getelementptr inbounds ([6 x i8], [6 x i8]* @.str.44, i64 0, i64 0), %69 ], [ getelementptr inbounds ([6 x i8], [6 x i8]* @.str.43, i64 0, i64 0), %68 ], [ getelementptr inbounds ([5 x i8], [5 x i8]* @.str.42, i64 0, i64 0), %67 ], [ getelementptr inbounds ([6 x i8], [6 x i8]* @.str.41, i64 0, i64 0), %66 ], [ getelementptr inbounds ([4 x i8], [4 x i8]* @.str.40, i64 0, i64 0), %65 ], [ getelementptr inbounds ([5 x i8], [5 x i8]* @.str.39, i64 0, i64 0), %64 ], [ getelementptr inbounds ([3 x i8], [3 x i8]* @.str.38, i64 0, i64 0), %63 ], [ getelementptr inbounds ([4 x i8], [4 x i8]* @.str.37, i64 0, i64 0), %62 ], [ getelementptr inbounds ([5 x i8], [5 x i8]* @.str.36, i64 0, i64 0), %61 ], [ getelementptr inbounds ([5 x i8], [5 x i8]* @.str.35, i64 0, i64 0), %60 ], [ getelementptr inbounds ([4 x i8], [4 x i8]* @.str.34, i64 0, i64 0), %59 ], [ getelementptr inbounds ([4 x i8], [4 x i8]* @.str.33, i64 0, i64 0), %58 ], [ getelementptr inbounds ([4 x i8], [4 x i8]* @.str.32, i64 0, i64 0), %57 ], [ getelementptr inbounds ([4 x i8], [4 x i8]* @.str.31, i64 0, i64 0), %56 ], [ getelementptr inbounds ([4 x i8], [4 x i8]* @.str.30, i64 0, i64 0), %55 ], [ getelementptr inbounds ([4 x i8], [4 x i8]* @.str.29, i64 0, i64 0), %54 ], [ getelementptr inbounds ([4 x i8], [4 x i8]* @.str.28, i64 0, i64 0), %53 ], [ getelementptr inbounds ([4 x i8], [4 x i8]* @.str.27, i64 0, i64 0), %52 ], [ getelementptr inbounds ([4 x i8], [4 x i8]* @.str.26, i64 0, i64 0), %51 ], [ getelementptr inbounds ([5 x i8], [5 x i8]* @.str.25, i64 0, i64 0), %50 ], [ getelementptr inbounds ([4 x i8], [4 x i8]* @.str.24, i64 0, i64 0), %49 ], [ getelementptr inbounds ([4 x i8], [4 x i8]* @.str.23, i64 0, i64 0), %48 ], [ getelementptr inbounds ([5 x i8], [5 x i8]* @.str.22, i64 0, i64 0), %47 ], [ getelementptr inbounds ([5 x i8], [5 x i8]* @.str.21, i64 0, i64 0), %46 ], [ getelementptr inbounds ([4 x i8], [4 x i8]* @.str.20, i64 0, i64 0), %45 ]
%119 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.92, i64 0, i64 0), i8* %118)
%120 = icmp ugt i32 %5, 9
br i1 %120, label %121, label %123
121: ; preds = %117
%122 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.93, i64 0, i64 0), i32 %5)
br label %183
123: ; preds = %117
%124 = icmp eq i32 %5, 0
br i1 %124, label %183, label %125
125: ; preds = %123
%126 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.94, i64 0, i64 0), i32 %5)
br label %183
127: ; preds = %45
%128 = and i32 %3, 248
%129 = add nsw i32 %128, -56
%130 = lshr exact i32 %129, 3
switch i32 %130, label %177 [
i32 0, label %135
i32 9, label %131
i32 10, label %132
i32 11, label %133
i32 12, label %134
i32 17, label %144
i32 18, label %144
i32 19, label %144
i32 20, label %144
i32 21, label %143
i32 22, label %143
i32 23, label %143
i32 24, label %143
i32 5, label %155
i32 6, label %155
i32 7, label %155
i32 8, label %155
i32 1, label %166
i32 2, label %166
i32 3, label %166
i32 4, label %166
]
131: ; preds = %127
br label %135
132: ; preds = %127
br label %135
133: ; preds = %127
br label %135
134: ; preds = %127
br label %135
135: ; preds = %127, %134, %133, %132, %131
%136 = phi i8* [ getelementptr inbounds ([4 x i8], [4 x i8]* @.str.99, i64 0, i64 0), %134 ], [ getelementptr inbounds ([4 x i8], [4 x i8]* @.str.98, i64 0, i64 0), %133 ], [ getelementptr inbounds ([3 x i8], [3 x i8]* @.str.97, i64 0, i64 0), %132 ], [ getelementptr inbounds ([3 x i8], [3 x i8]* @.str.96, i64 0, i64 0), %131 ], [ getelementptr inbounds ([3 x i8], [3 x i8]* @.str.95, i64 0, i64 0), %127 ]
%137 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.100, i64 0, i64 0), i8* %136)
%138 = icmp ugt i32 %5, 9
%139 = select i1 %138, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.101, i64 0, i64 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.102, i64 0, i64 0)
%140 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) %139, i32 %5)
%141 = and i32 %3, 7
%142 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.103, i64 0, i64 0), i32 %141)
br label %183
143: ; preds = %127, %127, %127, %127
br label %144
144: ; preds = %127, %127, %127, %127, %143
%145 = phi i8* [ getelementptr inbounds ([5 x i8], [5 x i8]* @.str.105, i64 0, i64 0), %143 ], [ getelementptr inbounds ([5 x i8], [5 x i8]* @.str.104, i64 0, i64 0), %127 ], [ getelementptr inbounds ([5 x i8], [5 x i8]* @.str.104, i64 0, i64 0), %127 ], [ getelementptr inbounds ([5 x i8], [5 x i8]* @.str.104, i64 0, i64 0), %127 ], [ getelementptr inbounds ([5 x i8], [5 x i8]* @.str.104, i64 0, i64 0), %127 ]
%146 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.92, i64 0, i64 0), i8* %145)
%147 = and i32 %1, 8191
%148 = icmp ugt i32 %147, 9
br i1 %148, label %149, label %151
149: ; preds = %144
%150 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.93, i64 0, i64 0), i32 %147)
br label %183
151: ; preds = %144
%152 = icmp eq i32 %147, 0
br i1 %152, label %183, label %153
153: ; preds = %151
%154 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.94, i64 0, i64 0), i32 %147)
br label %183
155: ; preds = %127, %127, %127, %127
%156 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.106, i64 0, i64 0))
%157 = icmp ugt i32 %5, 9
%158 = select i1 %157, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.101, i64 0, i64 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.102, i64 0, i64 0)
%159 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) %158, i32 %5)
%160 = and i32 %3, 31
%161 = icmp ugt i32 %160, 9
br i1 %161, label %162, label %164
162: ; preds = %155
%163 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.107, i64 0, i64 0), i32 %160)
br label %183
164: ; preds = %155
%165 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.103, i64 0, i64 0), i32 %160)
br label %183
166: ; preds = %127, %127, %127, %127
%167 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.108, i64 0, i64 0))
%168 = and i32 %3, 31
%169 = icmp ugt i32 %168, 9
%170 = select i1 %169, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.101, i64 0, i64 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.102, i64 0, i64 0)
%171 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) %170, i32 %168)
%172 = icmp ugt i32 %5, 9
br i1 %172, label %173, label %175
173: ; preds = %166
%174 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.107, i64 0, i64 0), i32 %5)
br label %183
175: ; preds = %166
%176 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.103, i64 0, i64 0), i32 %5)
br label %183
177: ; preds = %127
%178 = tail call i32 @putchar(i32 63)
%179 = add i32 %1, -32
%180 = icmp ult i32 %179, 95
br i1 %180, label %181, label %183
181: ; preds = %177
%182 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([9 x i8], [9 x i8]* @.str.110, i64 0, i64 0), i32 %1)
br label %183
183: ; preds = %135, %151, %153, %149, %164, %162, %175, %173, %181, %177, %121, %125, %123, %43, %41, %39, %37, %35, %33, %31, %29, %27, %25, %23, %21, %19, %17, %15, %13, %11, %9, %7
%184 = tail call i32 @putchar(i32 10)
ret void
}