void print_mx1(unsigned cfg0, unsigned cfg1, unsigned cfg2, unsigned cfg3) {
  printf("    DEVCFG0 = %08x\n", cfg0);
  if ((~cfg0 & 0x00000003) == 0x00000002)
    printf("                     %u Debugger enabled\n", cfg0 & 0x00000003);
  else
    printf("                     %u Debugger disabled\n", cfg0 & 0x00000003);
  if (~cfg0 & 0x00000004)
    printf("                     %u JTAG disabled\n", cfg0 & 0x00000004);
  switch (~cfg0 & 0x00000018) {
  case 0x00000000:
    printf("                    %02x Use PGC1/PGD1\n", cfg0 & 0x00000018);
    break;
  case 0x00000008:
    printf("                    %02x Use PGC2/PGD2\n", cfg0 & 0x00000018);
    break;
  case 0x00000010:
    printf("                    %02x Use PGC3/PGD3\n", cfg0 & 0x00000018);
    break;
  case 0x00000018:
    printf("                    %02x Use PGC4/PGD4\n", cfg0 & 0x00000018);
    break;
  }
  if (~cfg0 & 0x0000fc00)
    printf("                 %05x Program flash write protect\n",
           cfg0 & 0x0000fc00);
  if (~cfg0 & 0x01000000)
    printf("                       Boot flash write protect\n");
  if (~cfg0 & 0x10000000)
    printf("                       Code protect\n");
  printf("    DEVCFG1 = %08x\n", cfg1);
  switch (cfg1 & 0x00000007) {
  case 0x00000000:
    printf("                     %u Fast RC oscillator\n", 0x00000000);
    break;
  case 0x00000001:
    printf(
        "                     %u Fast RC oscillator with divide-by-N and PLL\n",
        0x00000001);
    break;
  case 0x00000002:
    printf("                     %u Primary oscillator\n", 0x00000002);
    break;
  case 0x00000003:
    printf("                     %u Primary oscillator with PLL\n", 0x00000003);
    break;
  case 0x00000004:
    printf("                     %u Secondary oscillator\n", 0x00000004);
    break;
  case 0x00000005:
    printf("                     %u Low-power RC oscillator\n", 0x00000005);
    break;
  case 0x00000006:
    printf("                     %u Fast RC oscillator with divide-by-16\n",
           0x00000006);
    break;
  case 0x00000007:
    printf("                     %u Fast RC oscillator with divide-by-N\n",
           0x00000007);
    break;
  default:
    printf("                     %u UNKNOWN\n", cfg1 & 0x00000007);
    break;
  }
  if (cfg1 & 0x00000020)
    printf("                    %u  Secondary oscillator enabled\n",
           0x00000020 >> 4);
  if (cfg1 & 0x00000080)
    printf("                    %u  Internal-external switch over enabled\n",
           0x00000080 >> 4);
  switch (cfg1 & 0x00000300) {
  case 0x00000000:
    printf("                   %u   Primary oscillator: External\n",
           0x00000000 >> 8);
    break;
  case 0x00000100:
    printf("                   %u   Primary oscillator: XT\n", 0x00000100 >> 8);
    break;
  case 0x00000200:
    printf("                   %u   Primary oscillator: HS\n", 0x00000200 >> 8);
    break;
  case 0x00000300:
    printf("                   %u   Primary oscillator: disabled\n",
           0x00000300 >> 8);
    break;
  }
  if (cfg1 & 0x00000400)
    printf("                   %u   CLKO output disabled\n", 0x00000400 >> 8);
  switch (cfg1 & 0x00003000) {
  case 0x00000000:
    printf("                  %u    Peripheral bus clock: SYSCLK / 1\n",
           0x00000000 >> 12);
    break;
  case 0x00001000:
    printf("                  %u    Peripheral bus clock: SYSCLK / 2\n",
           0x00001000 >> 12);
    break;
  case 0x00002000:
    printf("                  %u    Peripheral bus clock: SYSCLK / 4\n",
           0x00002000 >> 12);
    break;
  case 0x00003000:
    printf("                  %u    Peripheral bus clock: SYSCLK / 8\n",
           0x00003000 >> 12);
    break;
  }
  if (cfg1 & 0x00008000)
    printf("                  %u    Fail-safe clock monitor enabled\n",
           0x00008000 >> 12);
  if (cfg1 & 0x00004000)
    printf("                  %u    Clock switching enabled\n",
           0x00004000 >> 12);
  if (cfg1 & 0x00800000) {
    switch (cfg1 & 0x001f0000) {
    case 0x00000000:
      printf("                %2x     Watchdog postscale: 1/1\n",
             0x00000000 >> 16);
      break;
    case 0x00010000:
      printf("                %2x     Watchdog postscale: 1/2\n",
             0x00010000 >> 16);
      break;
    case 0x00020000:
      printf("                %2x     Watchdog postscale: 1/4\n",
             0x00020000 >> 16);
      break;
    case 0x00030000:
      printf("                %2x     Watchdog postscale: 1/8\n",
             0x00030000 >> 16);
      break;
    case 0x00040000:
      printf("                %2x     Watchdog postscale: 1/16\n",
             0x00040000 >> 16);
      break;
    case 0x00050000:
      printf("                %2x     Watchdog postscale: 1/32\n",
             0x00050000 >> 16);
      break;
    case 0x00060000:
      printf("                %2x     Watchdog postscale: 1/64\n",
             0x00060000 >> 16);
      break;
    case 0x00070000:
      printf("                %2x     Watchdog postscale: 1/128\n",
             0x00070000 >> 16);
      break;
    case 0x00080000:
      printf("                %2x     Watchdog postscale: 1/256\n",
             0x00080000 >> 16);
      break;
    case 0x00090000:
      printf("                %2x     Watchdog postscale: 1/512\n",
             0x00090000 >> 16);
      break;
    case 0x000a0000:
      printf("                %2x     Watchdog postscale: 1/1024\n",
             0x000a0000 >> 16);
      break;
    case 0x000b0000:
      printf("                %2x     Watchdog postscale: 1/2048\n",
             0x000b0000 >> 16);
      break;
    case 0x000c0000:
      printf("                %2x     Watchdog postscale: 1/4096\n",
             0x000c0000 >> 16);
      break;
    case 0x000d0000:
      printf("                %2x     Watchdog postscale: 1/8192\n",
             0x000d0000 >> 16);
      break;
    case 0x000e0000:
      printf("                %2x     Watchdog postscale: 1/16384\n",
             0x000e0000 >> 16);
      break;
    case 0x000f0000:
      printf("                %2x     Watchdog postscale: 1/32768\n",
             0x000f0000 >> 16);
      break;
    case 0x00100000:
      printf("                %2x     Watchdog postscale: 1/65536\n",
             0x00100000 >> 16);
      break;
    case 0x00110000:
      printf("                %2x     Watchdog postscale: 1/131072\n",
             0x00110000 >> 16);
      break;
    case 0x00120000:
      printf("                %2x     Watchdog postscale: 1/262144\n",
             0x00120000 >> 16);
      break;
    case 0x00130000:
      printf("                %2x     Watchdog postscale: 1/524288\n",
             0x00130000 >> 16);
      break;
    case 0x00140000:
      printf("                %2x     Watchdog postscale: 1/1048576\n",
             0x00140000 >> 16);
      break;
    }
    if (cfg1 & 0x00400000)
      printf("                %u      Watchdog in non-Window mode\n",
             0x00400000 >> 20);
    printf("                %u      Watchdog enable\n", 0x00800000 >> 20);
  }
  printf("    DEVCFG2 = %08x\n", cfg2);
  switch (cfg2 & 0x00000007) {
  case 0x00000000:
    printf("                     %u PLL divider: 1/1\n", 0x00000000);
    break;
  case 0x00000001:
    printf("                     %u PLL divider: 1/2\n", 0x00000001);
    break;
  case 0x00000002:
    printf("                     %u PLL divider: 1/3\n", 0x00000002);
    break;
  case 0x00000003:
    printf("                     %u PLL divider: 1/4\n", 0x00000003);
    break;
  case 0x00000004:
    printf("                     %u PLL divider: 1/5\n", 0x00000004);
    break;
  case 0x00000005:
    printf("                     %u PLL divider: 1/6\n", 0x00000005);
    break;
  case 0x00000006:
    printf("                     %u PLL divider: 1/10\n", 0x00000006);
    break;
  case 0x00000007:
    printf("                     %u PLL divider: 1/12\n", 0x00000007);
    break;
  }
  switch (cfg2 & 0x00000070) {
  case 0x00000000:
    printf("                    %u  PLL multiplier: 15x\n", 0x00000000 >> 4);
    break;
  case 0x00000010:
    printf("                    %u  PLL multiplier: 16x\n", 0x00000010 >> 4);
    break;
  case 0x00000020:
    printf("                    %u  PLL multiplier: 17x\n", 0x00000020 >> 4);
    break;
  case 0x00000030:
    printf("                    %u  PLL multiplier: 18x\n", 0x00000030 >> 4);
    break;
  case 0x00000040:
    printf("                    %u  PLL multiplier: 19x\n", 0x00000040 >> 4);
    break;
  case 0x00000050:
    printf("                    %u  PLL multiplier: 20x\n", 0x00000050 >> 4);
    break;
  case 0x00000060:
    printf("                    %u  PLL multiplier: 21x\n", 0x00000060 >> 4);
    break;
  case 0x00000070:
    printf("                    %u  PLL multiplier: 24x\n", 0x00000070 >> 4);
    break;
  }
  switch (cfg2 & 0x00000700) {
  case 0x00000000:
    printf("                   %u   USB PLL divider: 1/1\n", 0x00000000 >> 8);
    break;
  case 0x00000100:
    printf("                   %u   USB PLL divider: 1/2\n", 0x00000100 >> 8);
    break;
  case 0x00000200:
    printf("                   %u   USB PLL divider: 1/3\n", 0x00000200 >> 8);
    break;
  case 0x00000300:
    printf("                   %u   USB PLL divider: 1/4\n", 0x00000300 >> 8);
    break;
  case 0x00000400:
    printf("                   %u   USB PLL divider: 1/5\n", 0x00000400 >> 8);
    break;
  case 0x00000500:
    printf("                   %u   USB PLL divider: 1/6\n", 0x00000500 >> 8);
    break;
  case 0x00000600:
    printf("                   %u   USB PLL divider: 1/10\n", 0x00000600 >> 8);
    break;
  case 0x00000700:
    printf("                   %u   USB PLL divider: 1/12\n", 0x00000700 >> 8);
    break;
  }
  if (cfg2 & 0x00008000)
    printf("                  %u    Disable USB PLL\n", 0x00008000 >> 12);
  else
    printf("                       Enable USB PLL\n");
  switch (cfg2 & 0x00070000) {
  case 0x00000000:
    printf("                 %u     PLL postscaler: 1/1\n", 0x00000000 >> 16);
    break;
  case 0x00010000:
    printf("                 %u     PLL postscaler: 1/2\n", 0x00010000 >> 16);
    break;
  case 0x00020000:
    printf("                 %u     PLL postscaler: 1/4\n", 0x00020000 >> 16);
    break;
  case 0x00030000:
    printf("                 %u     PLL postscaler: 1/8\n", 0x00030000 >> 16);
    break;
  case 0x00040000:
    printf("                 %u     PLL postscaler: 1/16\n", 0x00040000 >> 16);
    break;
  case 0x00050000:
    printf("                 %u     PLL postscaler: 1/32\n", 0x00050000 >> 16);
    break;
  case 0x00060000:
    printf("                 %u     PLL postscaler: 1/64\n", 0x00060000 >> 16);
    break;
  case 0x00070000:
    printf("                 %u     PLL postscaler: 1/128\n", 0x00070000 >> 16);
    break;
  }
  printf("    DEVCFG3 = %08x\n", cfg3);
  if (~cfg3 & 0x0000ffff)
    printf("                  %04x User-defined ID\n", cfg3 & 0x0000ffff);
  if (cfg3 & 0x10000000)
    printf(
        "              %u        Peripheral Module Disable - only 1 reconfig\n",
        0x10000000 >> 28);
  else
    printf("                       USBID pin: controlled by port\n");
  if (cfg3 & 0x20000000)
    printf("              %u        Peripheral Pin Select - only 1 reconfig\n",
           0x20000000 >> 28);
  else
    printf("                       USBID pin: controlled by port\n");
  if (cfg3 & 0x40000000)
    printf("              %u        USBID pin: controlled by USB\n",
           0x40000000 >> 28);
  else
    printf("                       USBID pin: controlled by port\n");
  if (cfg3 & 0x80000000)
    printf("              %u        VBuson pin: controlled by USB\n",
           0x80000000 >> 28);
  else
    printf("                       VBuson pin: controlled by port\n");
}


x86 assembly (clang, -O0):
<print_mx1>:
push   %rbp
mov    %rsp,%rbp
sub    $0x50,%rsp
mov    %edi,-0x4(%rbp)
mov    %esi,-0x8(%rbp)
mov    %edx,-0xc(%rbp)
mov    %ecx,-0x10(%rbp)
mov    -0x4(%rbp),%esi
lea    0xf76(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x4(%rbp),%eax
xor    $0xffffffff,%eax
and    $0x3,%eax
cmp    $0x2,%eax
jne    1160 <print_mx1+0x50>
mov    -0x4(%rbp),%esi
and    $0x3,%esi
lea    0xf64(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1174 <print_mx1+0x64>
mov    -0x4(%rbp),%esi
and    $0x3,%esi
lea    0xf75(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x4(%rbp),%eax
xor    $0xffffffff,%eax
and    $0x4,%eax
cmp    $0x0,%eax
je     119a <print_mx1+0x8a>
mov    -0x4(%rbp),%esi
and    $0x4,%esi
lea    0xf7a(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x4(%rbp),%eax
not    %eax
and    $0x18,%eax
mov    %eax,%ecx
mov    %rcx,-0x18(%rbp)
sub    $0x18,%eax
ja     1224 <print_mx1+0x114>
mov    -0x18(%rbp),%rax
lea    0xe44(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    -0x4(%rbp),%esi
and    $0x18,%esi
lea    0xf62(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1224 <print_mx1+0x114>
mov    -0x4(%rbp),%esi
and    $0x18,%esi
lea    0xf71(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1224 <print_mx1+0x114>
mov    -0x4(%rbp),%esi
and    $0x18,%esi
lea    0xf80(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1224 <print_mx1+0x114>
mov    -0x4(%rbp),%esi
and    $0x18,%esi
lea    0xf8f(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x4(%rbp),%eax
xor    $0xffffffff,%eax
and    $0xfc00,%eax
cmp    $0x0,%eax
je     124f <print_mx1+0x13f>
mov    -0x4(%rbp),%esi
and    $0xfc00,%esi
lea    0xf8c(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x4(%rbp),%eax
xor    $0xffffffff,%eax
and    $0x1000000,%eax
cmp    $0x0,%eax
je     1271 <print_mx1+0x161>
lea    0xf9d(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x4(%rbp),%eax
xor    $0xffffffff,%eax
and    $0x10000000,%eax
cmp    $0x0,%eax
je     1293 <print_mx1+0x183>
lea    0xfac(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x8(%rbp),%esi
lea    0xfc0(%rip),%rdi
xor    %eax,%eax
call   1030 <printf@plt>
mov    -0x8(%rbp),%eax
and    $0x7,%eax
mov    %rax,-0x20(%rbp)
sub    $0x7,%eax
ja     1388 <print_mx1+0x278>
mov    -0x20(%rbp),%rax
lea    0xda2(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0xf9f(%rip),%rdi
xor    %esi,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    139c <print_mx1+0x28c>
lea    0xfb6(%rip),%rdi
mov    $0x1,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    139c <print_mx1+0x28c>
lea    0xfe3(%rip),%rdi
mov    $0x2,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    139c <print_mx1+0x28c>
lea    0xff7(%rip),%rdi
mov    $0x3,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    139c <print_mx1+0x28c>
lea    0x1014(%rip),%rdi
mov    $0x4,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    139c <print_mx1+0x28c>
lea    0x102a(%rip),%rdi
mov    $0x5,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    139c <print_mx1+0x28c>
lea    0x1043(%rip),%rdi
mov    $0x6,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    139c <print_mx1+0x28c>
lea    0x1069(%rip),%rdi
mov    $0x7,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    139c <print_mx1+0x28c>
mov    -0x8(%rbp),%esi
and    $0x7,%esi
lea    0x1088(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x8(%rbp),%eax
and    $0x20,%eax
cmp    $0x0,%eax
je     13be <print_mx1+0x2ae>
lea    0x108c(%rip),%rdi
mov    $0x2,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x8(%rbp),%eax
and    $0x80,%eax
cmp    $0x0,%eax
je     13e2 <print_mx1+0x2d2>
lea    0x109e(%rip),%rdi
mov    $0x8,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x8(%rbp),%eax
and    $0x300,%eax
mov    %eax,-0x24(%rbp)
je     1431 <print_mx1+0x321>
jmp    13f8 <print_mx1+0x2e8>
mov    -0x24(%rbp),%eax
sub    $0x100,%eax
je     1446 <print_mx1+0x336>
jmp    140b <print_mx1+0x2fb>
mov    -0x24(%rbp),%eax
sub    $0x200,%eax
je     145e <print_mx1+0x34e>
jmp    141e <print_mx1+0x30e>
mov    -0x24(%rbp),%eax
sub    $0x300,%eax
je     1476 <print_mx1+0x366>
jmp    1489 <print_mx1+0x379>
lea    0x107b(%rip),%rdi
xor    %esi,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1489 <print_mx1+0x379>
lea    0x109c(%rip),%rdi
mov    $0x1,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1489 <print_mx1+0x379>
lea    0x10b4(%rip),%rdi
mov    $0x2,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1489 <print_mx1+0x379>
lea    0x10cc(%rip),%rdi
mov    $0x3,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x8(%rbp),%eax
and    $0x400,%eax
cmp    $0x0,%eax
je     14ad <print_mx1+0x39d>
lea    0x10de(%rip),%rdi
mov    $0x4,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x8(%rbp),%eax
and    $0x3000,%eax
mov    %eax,-0x28(%rbp)
je     14fc <print_mx1+0x3ec>
jmp    14c3 <print_mx1+0x3b3>
mov    -0x28(%rbp),%eax
sub    $0x1000,%eax
je     1511 <print_mx1+0x401>
jmp    14d6 <print_mx1+0x3c6>
mov    -0x28(%rbp),%eax
sub    $0x2000,%eax
je     1529 <print_mx1+0x419>
jmp    14e9 <print_mx1+0x3d9>
mov    -0x28(%rbp),%eax
sub    $0x3000,%eax
je     1541 <print_mx1+0x431>
jmp    1554 <print_mx1+0x444>
lea    0x10aa(%rip),%rdi
xor    %esi,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1554 <print_mx1+0x444>
lea    0x10cf(%rip),%rdi
mov    $0x1,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1554 <print_mx1+0x444>
lea    0x10f1(%rip),%rdi
mov    $0x2,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1554 <print_mx1+0x444>
lea    0x1113(%rip),%rdi
mov    $0x3,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x8(%rbp),%eax
and    $0x8000,%eax
cmp    $0x0,%eax
je     1578 <print_mx1+0x468>
lea    0x1129(%rip),%rdi
mov    $0x8,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x8(%rbp),%eax
and    $0x4000,%eax
cmp    $0x0,%eax
je     159c <print_mx1+0x48c>
lea    0x113e(%rip),%rdi
mov    $0x4,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x8(%rbp),%eax
and    $0x800000,%eax
cmp    $0x0,%eax
je     1966 <print_mx1+0x856>
mov    -0x8(%rbp),%eax
and    $0x1f0000,%eax
mov    %eax,-0x2c(%rbp)
je     173f <print_mx1+0x62f>
jmp    15c3 <print_mx1+0x4b3>
mov    -0x2c(%rbp),%eax
sub    $0x10000,%eax
je     1754 <print_mx1+0x644>
jmp    15d6 <print_mx1+0x4c6>
mov    -0x2c(%rbp),%eax
sub    $0x20000,%eax
je     176c <print_mx1+0x65c>
jmp    15e9 <print_mx1+0x4d9>
mov    -0x2c(%rbp),%eax
sub    $0x30000,%eax
je     1784 <print_mx1+0x674>
jmp    15fc <print_mx1+0x4ec>
mov    -0x2c(%rbp),%eax
sub    $0x40000,%eax
je     179c <print_mx1+0x68c>
jmp    160f <print_mx1+0x4ff>
mov    -0x2c(%rbp),%eax
sub    $0x50000,%eax
je     17b4 <print_mx1+0x6a4>
jmp    1622 <print_mx1+0x512>
mov    -0x2c(%rbp),%eax
sub    $0x60000,%eax
je     17cc <print_mx1+0x6bc>
jmp    1635 <print_mx1+0x525>
mov    -0x2c(%rbp),%eax
sub    $0x70000,%eax
je     17e4 <print_mx1+0x6d4>
jmp    1648 <print_mx1+0x538>
mov    -0x2c(%rbp),%eax
sub    $0x80000,%eax
je     17fc <print_mx1+0x6ec>
jmp    165b <print_mx1+0x54b>
mov    -0x2c(%rbp),%eax
sub    $0x90000,%eax
je     1814 <print_mx1+0x704>
jmp    166e <print_mx1+0x55e>
mov    -0x2c(%rbp),%eax
sub    $0xa0000,%eax
je     182c <print_mx1+0x71c>
jmp    1681 <print_mx1+0x571>
mov    -0x2c(%rbp),%eax
sub    $0xb0000,%eax
je     1844 <print_mx1+0x734>
jmp    1694 <print_mx1+0x584>
mov    -0x2c(%rbp),%eax
sub    $0xc0000,%eax
je     185c <print_mx1+0x74c>
jmp    16a7 <print_mx1+0x597>
mov    -0x2c(%rbp),%eax
sub    $0xd0000,%eax
je     1874 <print_mx1+0x764>
jmp    16ba <print_mx1+0x5aa>
mov    -0x2c(%rbp),%eax
sub    $0xe0000,%eax
je     188c <print_mx1+0x77c>
jmp    16cd <print_mx1+0x5bd>
mov    -0x2c(%rbp),%eax
sub    $0xf0000,%eax
je     18a4 <print_mx1+0x794>
jmp    16e0 <print_mx1+0x5d0>
mov    -0x2c(%rbp),%eax
sub    $0x100000,%eax
je     18bc <print_mx1+0x7ac>
jmp    16f3 <print_mx1+0x5e3>
mov    -0x2c(%rbp),%eax
sub    $0x110000,%eax
je     18d4 <print_mx1+0x7c4>
jmp    1706 <print_mx1+0x5f6>
mov    -0x2c(%rbp),%eax
sub    $0x120000,%eax
je     18ec <print_mx1+0x7dc>
jmp    1719 <print_mx1+0x609>
mov    -0x2c(%rbp),%eax
sub    $0x130000,%eax
je     1904 <print_mx1+0x7f4>
jmp    172c <print_mx1+0x61c>
mov    -0x2c(%rbp),%eax
sub    $0x140000,%eax
je     191c <print_mx1+0x80c>
jmp    192f <print_mx1+0x81f>
lea    0xfb9(%rip),%rdi
xor    %esi,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    192f <print_mx1+0x81f>
lea    0xfd5(%rip),%rdi
mov    $0x1,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    192f <print_mx1+0x81f>
lea    0xfee(%rip),%rdi
mov    $0x2,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    192f <print_mx1+0x81f>
lea    0x1007(%rip),%rdi
mov    $0x3,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    192f <print_mx1+0x81f>
lea    0x1020(%rip),%rdi
mov    $0x4,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    192f <print_mx1+0x81f>
lea    0x103a(%rip),%rdi
mov    $0x5,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    192f <print_mx1+0x81f>
lea    0x1054(%rip),%rdi
mov    $0x6,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    192f <print_mx1+0x81f>
lea    0x106e(%rip),%rdi
mov    $0x7,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    192f <print_mx1+0x81f>
lea    0x1089(%rip),%rdi
mov    $0x8,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    192f <print_mx1+0x81f>
lea    0x10a4(%rip),%rdi
mov    $0x9,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    192f <print_mx1+0x81f>
lea    0x10bf(%rip),%rdi
mov    $0xa,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    192f <print_mx1+0x81f>
lea    0x10db(%rip),%rdi
mov    $0xb,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    192f <print_mx1+0x81f>
lea    0x10f7(%rip),%rdi
mov    $0xc,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    192f <print_mx1+0x81f>
lea    0x1113(%rip),%rdi
mov    $0xd,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    192f <print_mx1+0x81f>
lea    0x112f(%rip),%rdi
mov    $0xe,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    192f <print_mx1+0x81f>
lea    0x114c(%rip),%rdi
mov    $0xf,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    192f <print_mx1+0x81f>
lea    0x1169(%rip),%rdi
mov    $0x10,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    192f <print_mx1+0x81f>
lea    0x1186(%rip),%rdi
mov    $0x11,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    192f <print_mx1+0x81f>
lea    0x11a4(%rip),%rdi
mov    $0x12,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    192f <print_mx1+0x81f>
lea    0x11c2(%rip),%rdi
mov    $0x13,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    192f <print_mx1+0x81f>
lea    0x11e0(%rip),%rdi
mov    $0x14,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x8(%rbp),%eax
and    $0x400000,%eax
cmp    $0x0,%eax
je     1953 <print_mx1+0x843>
lea    0x11f3(%rip),%rdi
mov    $0x4,%esi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1215(%rip),%rdi
mov    $0x8,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0xc(%rbp),%esi
lea    0x1228(%rip),%rdi
xor    %eax,%eax
call   1030 <printf@plt>
mov    -0xc(%rbp),%eax
and    $0x7,%eax
mov    %rax,-0x38(%rbp)
sub    $0x7,%eax
ja     1a56 <print_mx1+0x946>
mov    -0x38(%rbp),%rax
lea    0x6ef(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x1207(%rip),%rdi
xor    %esi,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1a56 <print_mx1+0x946>
lea    0x121c(%rip),%rdi
mov    $0x1,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1a56 <print_mx1+0x946>
lea    0x122e(%rip),%rdi
mov    $0x2,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1a56 <print_mx1+0x946>
lea    0x1240(%rip),%rdi
mov    $0x3,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1a56 <print_mx1+0x946>
lea    0x1252(%rip),%rdi
mov    $0x4,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1a56 <print_mx1+0x946>
lea    0x1264(%rip),%rdi
mov    $0x5,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1a56 <print_mx1+0x946>
lea    0x1276(%rip),%rdi
mov    $0x6,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1a56 <print_mx1+0x946>
lea    0x1289(%rip),%rdi
mov    $0x7,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0xc(%rbp),%eax
and    $0x70,%eax
mov    %eax,-0x3c(%rbp)
je     1ae1 <print_mx1+0x9d1>
jmp    1a6a <print_mx1+0x95a>
mov    -0x3c(%rbp),%eax
sub    $0x10,%eax
je     1af6 <print_mx1+0x9e6>
jmp    1a7b <print_mx1+0x96b>
mov    -0x3c(%rbp),%eax
sub    $0x20,%eax
je     1b0e <print_mx1+0x9fe>
jmp    1a8c <print_mx1+0x97c>
mov    -0x3c(%rbp),%eax
sub    $0x30,%eax
je     1b26 <print_mx1+0xa16>
jmp    1a9d <print_mx1+0x98d>
mov    -0x3c(%rbp),%eax
sub    $0x40,%eax
je     1b3e <print_mx1+0xa2e>
jmp    1aae <print_mx1+0x99e>
mov    -0x3c(%rbp),%eax
sub    $0x50,%eax
je     1b56 <print_mx1+0xa46>
jmp    1abf <print_mx1+0x9af>
mov    -0x3c(%rbp),%eax
sub    $0x60,%eax
je     1b6e <print_mx1+0xa5e>
jmp    1ad0 <print_mx1+0x9c0>
mov    -0x3c(%rbp),%eax
sub    $0x70,%eax
je     1b86 <print_mx1+0xa76>
jmp    1b99 <print_mx1+0xa89>
lea    0x1216(%rip),%rdi
xor    %esi,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1b99 <print_mx1+0xa89>
lea    0x122e(%rip),%rdi
mov    $0x1,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1b99 <print_mx1+0xa89>
lea    0x1243(%rip),%rdi
mov    $0x2,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1b99 <print_mx1+0xa89>
lea    0x1258(%rip),%rdi
mov    $0x3,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1b99 <print_mx1+0xa89>
lea    0x126d(%rip),%rdi
mov    $0x4,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1b99 <print_mx1+0xa89>
lea    0x1282(%rip),%rdi
mov    $0x5,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1b99 <print_mx1+0xa89>
lea    0x1297(%rip),%rdi
mov    $0x6,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1b99 <print_mx1+0xa89>
lea    0x12ac(%rip),%rdi
mov    $0x7,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0xc(%rbp),%eax
and    $0x700,%eax
mov    %eax,-0x40(%rbp)
je     1c34 <print_mx1+0xb24>
jmp    1baf <print_mx1+0xa9f>
mov    -0x40(%rbp),%eax
sub    $0x100,%eax
je     1c49 <print_mx1+0xb39>
jmp    1bc2 <print_mx1+0xab2>
mov    -0x40(%rbp),%eax
sub    $0x200,%eax
je     1c61 <print_mx1+0xb51>
jmp    1bd5 <print_mx1+0xac5>
mov    -0x40(%rbp),%eax
sub    $0x300,%eax
je     1c79 <print_mx1+0xb69>
jmp    1be8 <print_mx1+0xad8>
mov    -0x40(%rbp),%eax
sub    $0x400,%eax
je     1c91 <print_mx1+0xb81>
jmp    1bfb <print_mx1+0xaeb>
mov    -0x40(%rbp),%eax
sub    $0x500,%eax
je     1ca9 <print_mx1+0xb99>
jmp    1c0e <print_mx1+0xafe>
mov    -0x40(%rbp),%eax
sub    $0x600,%eax
je     1cc1 <print_mx1+0xbb1>
jmp    1c21 <print_mx1+0xb11>
mov    -0x40(%rbp),%eax
sub    $0x700,%eax
je     1cd9 <print_mx1+0xbc9>
jmp    1cec <print_mx1+0xbdc>
lea    0x122b(%rip),%rdi
xor    %esi,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1cec <print_mx1+0xbdc>
lea    0x1244(%rip),%rdi
mov    $0x1,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1cec <print_mx1+0xbdc>
lea    0x125a(%rip),%rdi
mov    $0x2,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1cec <print_mx1+0xbdc>
lea    0x1270(%rip),%rdi
mov    $0x3,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1cec <print_mx1+0xbdc>
lea    0x1286(%rip),%rdi
mov    $0x4,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1cec <print_mx1+0xbdc>
lea    0x129c(%rip),%rdi
mov    $0x5,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1cec <print_mx1+0xbdc>
lea    0x12b2(%rip),%rdi
mov    $0x6,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1cec <print_mx1+0xbdc>
lea    0x12c9(%rip),%rdi
mov    $0x7,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0xc(%rbp),%eax
and    $0x8000,%eax
cmp    $0x0,%eax
je     1d15 <print_mx1+0xc05>
lea    0x12d4(%rip),%rdi
mov    $0x8,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1d23 <print_mx1+0xc13>
lea    0x12e5(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0xc(%rbp),%eax
and    $0x70000,%eax
mov    %eax,-0x44(%rbp)
je     1dbe <print_mx1+0xcae>
jmp    1d39 <print_mx1+0xc29>
mov    -0x44(%rbp),%eax
sub    $0x10000,%eax
je     1dd3 <print_mx1+0xcc3>
jmp    1d4c <print_mx1+0xc3c>
mov    -0x44(%rbp),%eax
sub    $0x20000,%eax
je     1deb <print_mx1+0xcdb>
jmp    1d5f <print_mx1+0xc4f>
mov    -0x44(%rbp),%eax
sub    $0x30000,%eax
je     1e03 <print_mx1+0xcf3>
jmp    1d72 <print_mx1+0xc62>
mov    -0x44(%rbp),%eax
sub    $0x40000,%eax
je     1e1b <print_mx1+0xd0b>
jmp    1d85 <print_mx1+0xc75>
mov    -0x44(%rbp),%eax
sub    $0x50000,%eax
je     1e33 <print_mx1+0xd23>
jmp    1d98 <print_mx1+0xc88>
mov    -0x44(%rbp),%eax
sub    $0x60000,%eax
je     1e4b <print_mx1+0xd3b>
jmp    1dab <print_mx1+0xc9b>
mov    -0x44(%rbp),%eax
sub    $0x70000,%eax
je     1e63 <print_mx1+0xd53>
jmp    1e76 <print_mx1+0xd66>
lea    0x1263(%rip),%rdi
xor    %esi,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1e76 <print_mx1+0xd66>
lea    0x127b(%rip),%rdi
mov    $0x1,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1e76 <print_mx1+0xd66>
lea    0x1290(%rip),%rdi
mov    $0x2,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1e76 <print_mx1+0xd66>
lea    0x12a5(%rip),%rdi
mov    $0x3,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1e76 <print_mx1+0xd66>
lea    0x12ba(%rip),%rdi
mov    $0x4,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1e76 <print_mx1+0xd66>
lea    0x12d0(%rip),%rdi
mov    $0x5,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1e76 <print_mx1+0xd66>
lea    0x12e6(%rip),%rdi
mov    $0x6,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1e76 <print_mx1+0xd66>
lea    0x12fc(%rip),%rdi
mov    $0x7,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x10(%rbp),%esi
lea    0x1315(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x10(%rbp),%eax
xor    $0xffffffff,%eax
and    $0xffff,%eax
cmp    $0x0,%eax
je     1eb2 <print_mx1+0xda2>
mov    -0x10(%rbp),%esi
and    $0xffff,%esi
lea    0x12fe(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x10(%rbp),%eax
and    $0x10000000,%eax
cmp    $0x0,%eax
je     1edb <print_mx1+0xdcb>
lea    0x1307(%rip),%rdi
mov    $0x1,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1ee9 <print_mx1+0xdd9>
lea    0x1334(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x10(%rbp),%eax
and    $0x20000000,%eax
cmp    $0x0,%eax
je     1f12 <print_mx1+0xe02>
lea    0x134b(%rip),%rdi
mov    $0x2,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1f20 <print_mx1+0xe10>
lea    0x12fd(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x10(%rbp),%eax
and    $0x40000000,%eax
cmp    $0x0,%eax
je     1f49 <print_mx1+0xe39>
lea    0x1355(%rip),%rdi
mov    $0x4,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1f57 <print_mx1+0xe47>
lea    0x12c6(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x10(%rbp),%eax
and    $0x80000000,%eax
cmp    $0x0,%eax
je     1f80 <print_mx1+0xe70>
lea    0x1354(%rip),%rdi
mov    $0x8,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1f8e <print_mx1+0xe7e>
lea    0x1373(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
add    $0x50,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<print_mx1>:
push   %rbp
push   %r15
push   %r14
push   %r12
push   %rbx
mov    %ecx,%r14d
mov    %edx,%r15d
mov    %esi,%r12d
mov    %edi,%ebp
lea    0xfea(%rip),%rdi
mov    %ebp,%esi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %ebp,%ebx
not    %ebx
mov    %ebx,%eax
and    $0x3,%eax
mov    %ebp,%esi
and    $0x3,%esi
cmp    $0x2,%eax
lea    0xfdd(%rip),%rax
lea    0x1000(%rip),%rdi
cmove  %rax,%rdi
xor    %eax,%eax
call   1040 <printf@plt>
test   $0x4,%bl
je     1185 <print_mx1+0x65>
mov    %ebp,%esi
and    $0x4,%esi
lea    0x100f(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %ebx,%eax
shr    $0x3,%eax
and    $0x3,%eax
lea    0xf80(%rip),%rcx
movslq (%rcx,%rax,4),%rdi
add    %rcx,%rdi
mov    %ebp,%esi
and    $0x18,%esi
xor    %eax,%eax
call   1040 <printf@plt>
test   $0xfc00,%ebx
je     11c5 <print_mx1+0xa5>
and    $0xfc00,%ebp
lea    0x1098(%rip),%rdi
mov    %ebp,%esi
xor    %eax,%eax
call   1040 <printf@plt>
test   $0x1000000,%ebx
je     11d9 <print_mx1+0xb9>
lea    0x2187(%rip),%rdi
call   1030 <puts@plt>
test   $0x10000000,%ebx
je     11ed <print_mx1+0xcd>
lea    0x214f(%rip),%rdi
call   1030 <puts@plt>
lea    0x1093(%rip),%rdi
mov    %r12d,%esi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r12d,%eax
and    $0x7,%eax
lea    0xdf5(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x1080(%rip),%rdi
xor    %esi,%esi
jmp    127f <print_mx1+0x15f>
lea    0x10a1(%rip),%rdi
mov    $0x1,%esi
jmp    127f <print_mx1+0x15f>
lea    0x10d8(%rip),%rdi
mov    $0x2,%esi
jmp    127f <print_mx1+0x15f>
lea    0x10f6(%rip),%rdi
mov    $0x3,%esi
jmp    127f <print_mx1+0x15f>
lea    0x111d(%rip),%rdi
mov    $0x4,%esi
jmp    127f <print_mx1+0x15f>
lea    0x113d(%rip),%rdi
mov    $0x5,%esi
jmp    127f <print_mx1+0x15f>
lea    0x1160(%rip),%rdi
mov    $0x6,%esi
jmp    127f <print_mx1+0x15f>
lea    0x1190(%rip),%rdi
mov    $0x7,%esi
xor    %eax,%eax
call   1040 <printf@plt>
test   $0x20,%r12b
je     129f <print_mx1+0x17f>
lea    0x11b4(%rip),%rdi
mov    $0x2,%esi
xor    %eax,%eax
call   1040 <printf@plt>
test   $0x80,%r12b
je     12b8 <print_mx1+0x198>
lea    0x11d1(%rip),%rdi
mov    $0x8,%esi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r12d,%eax
shr    $0x8,%eax
and    $0x3,%eax
lea    0xd58(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x11e4(%rip),%rdi
xor    %esi,%esi
jmp    1304 <print_mx1+0x1e4>
lea    0x120f(%rip),%rdi
mov    $0x1,%esi
jmp    1304 <print_mx1+0x1e4>
lea    0x1231(%rip),%rdi
mov    $0x2,%esi
jmp    1304 <print_mx1+0x1e4>
lea    0x1253(%rip),%rdi
mov    $0x3,%esi
xor    %eax,%eax
call   1040 <printf@plt>
test   $0x400,%r12d
je     1327 <print_mx1+0x207>
lea    0x126d(%rip),%rdi
mov    $0x4,%esi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r12d,%eax
shr    $0xc,%eax
and    $0x3,%eax
lea    0xcf9(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x126f(%rip),%rdi
xor    %esi,%esi
jmp    1373 <print_mx1+0x253>
lea    0x129e(%rip),%rdi
mov    $0x1,%esi
jmp    1373 <print_mx1+0x253>
lea    0x12ca(%rip),%rdi
mov    $0x2,%esi
jmp    1373 <print_mx1+0x253>
lea    0x12f6(%rip),%rdi
mov    $0x3,%esi
xor    %eax,%eax
call   1040 <printf@plt>
test   $0x8000,%r12d
jne    139a <print_mx1+0x27a>
test   $0x4000,%r12d
jne    13b6 <print_mx1+0x296>
test   $0x800000,%r12d
jne    13d6 <print_mx1+0x2b6>
jmp    1570 <print_mx1+0x450>
lea    0x12fd(%rip),%rdi
mov    $0x8,%esi
xor    %eax,%eax
call   1040 <printf@plt>
test   $0x4000,%r12d
je     138c <print_mx1+0x26c>
lea    0x131a(%rip),%rdi
mov    $0x4,%esi
xor    %eax,%eax
call   1040 <printf@plt>
test   $0x800000,%r12d
je     1570 <print_mx1+0x450>
mov    %r12d,%eax
shr    $0x10,%eax
and    $0x1f,%eax
cmp    $0x14,%eax
ja     1541 <print_mx1+0x421>
lea    0xc51(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x1309(%rip),%rdi
xor    %esi,%esi
jmp    153a <print_mx1+0x41a>
lea    0x132c(%rip),%rdi
mov    $0x1,%esi
jmp    153a <print_mx1+0x41a>
lea    0x134c(%rip),%rdi
mov    $0x2,%esi
jmp    153a <print_mx1+0x41a>
lea    0x136c(%rip),%rdi
mov    $0x3,%esi
jmp    153a <print_mx1+0x41a>
lea    0x138c(%rip),%rdi
mov    $0x4,%esi
jmp    153a <print_mx1+0x41a>
lea    0x13ad(%rip),%rdi
mov    $0x5,%esi
jmp    153a <print_mx1+0x41a>
lea    0x13ce(%rip),%rdi
mov    $0x6,%esi
jmp    153a <print_mx1+0x41a>
lea    0x13ef(%rip),%rdi
mov    $0x7,%esi
jmp    153a <print_mx1+0x41a>
lea    0x1411(%rip),%rdi
mov    $0x8,%esi
jmp    153a <print_mx1+0x41a>
lea    0x1433(%rip),%rdi
mov    $0x9,%esi
jmp    153a <print_mx1+0x41a>
lea    0x1455(%rip),%rdi
mov    $0xa,%esi
jmp    153a <print_mx1+0x41a>
lea    0x1478(%rip),%rdi
mov    $0xb,%esi
jmp    153a <print_mx1+0x41a>
lea    0x149e(%rip),%rdi
mov    $0xc,%esi
jmp    153a <print_mx1+0x41a>
lea    0x14c4(%rip),%rdi
mov    $0xd,%esi
jmp    153a <print_mx1+0x41a>
lea    0x14ea(%rip),%rdi
mov    $0xe,%esi
jmp    153a <print_mx1+0x41a>
lea    0x1511(%rip),%rdi
mov    $0xf,%esi
jmp    153a <print_mx1+0x41a>
lea    0x1538(%rip),%rdi
mov    $0x10,%esi
jmp    153a <print_mx1+0x41a>
lea    0x155f(%rip),%rdi
mov    $0x11,%esi
jmp    153a <print_mx1+0x41a>
lea    0x1587(%rip),%rdi
mov    $0x12,%esi
jmp    153a <print_mx1+0x41a>
lea    0x15af(%rip),%rdi
mov    $0x13,%esi
jmp    153a <print_mx1+0x41a>
lea    0x15d7(%rip),%rdi
mov    $0x14,%esi
xor    %eax,%eax
call   1040 <printf@plt>
test   $0x400000,%r12d
je     155d <print_mx1+0x43d>
lea    0x15f2(%rip),%rdi
mov    $0x4,%esi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x1614(%rip),%rdi
mov    $0x8,%esi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x162a(%rip),%rdi
mov    %r15d,%esi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r15d,%eax
and    $0x7,%eax
lea    0xb06(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x1617(%rip),%rdi
xor    %esi,%esi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r15d,%eax
shr    $0x4,%eax
and    $0x7,%eax
lea    0xafd(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x1618(%rip),%rdi
mov    $0x1,%esi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r15d,%eax
shr    $0x4,%eax
and    $0x7,%eax
lea    0xad1(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x1616(%rip),%rdi
mov    $0x2,%esi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r15d,%eax
shr    $0x4,%eax
and    $0x7,%eax
lea    0xaa5(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x1614(%rip),%rdi
mov    $0x3,%esi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r15d,%eax
shr    $0x4,%eax
and    $0x7,%eax
lea    0xa79(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x1612(%rip),%rdi
mov    $0x4,%esi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r15d,%eax
shr    $0x4,%eax
and    $0x7,%eax
lea    0xa4d(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x1610(%rip),%rdi
mov    $0x5,%esi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r15d,%eax
shr    $0x4,%eax
and    $0x7,%eax
lea    0xa21(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x160e(%rip),%rdi
mov    $0x6,%esi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r15d,%eax
shr    $0x4,%eax
and    $0x7,%eax
lea    0x9f5(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x160d(%rip),%rdi
mov    $0x7,%esi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r15d,%eax
shr    $0x4,%eax
and    $0x7,%eax
lea    0x9c9(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x160c(%rip),%rdi
xor    %esi,%esi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r15d,%eax
shr    $0x8,%eax
and    $0x7,%eax
lea    0x9c0(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x1610(%rip),%rdi
mov    $0x1,%esi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r15d,%eax
shr    $0x8,%eax
and    $0x7,%eax
lea    0x994(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x1611(%rip),%rdi
mov    $0x2,%esi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r15d,%eax
shr    $0x8,%eax
and    $0x7,%eax
lea    0x968(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x1612(%rip),%rdi
mov    $0x3,%esi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r15d,%eax
shr    $0x8,%eax
and    $0x7,%eax
lea    0x93c(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x1613(%rip),%rdi
mov    $0x4,%esi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r15d,%eax
shr    $0x8,%eax
and    $0x7,%eax
lea    0x910(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x1614(%rip),%rdi
mov    $0x5,%esi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r15d,%eax
shr    $0x8,%eax
and    $0x7,%eax
lea    0x8e4(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x1615(%rip),%rdi
mov    $0x6,%esi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r15d,%eax
shr    $0x8,%eax
and    $0x7,%eax
lea    0x8b8(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x1616(%rip),%rdi
mov    $0x7,%esi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r15d,%eax
shr    $0x8,%eax
and    $0x7,%eax
lea    0x88c(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x1617(%rip),%rdi
xor    %esi,%esi
jmp    18bc <print_mx1+0x79c>
lea    0x163a(%rip),%rdi
mov    $0x1,%esi
jmp    18bc <print_mx1+0x79c>
lea    0x165a(%rip),%rdi
mov    $0x2,%esi
jmp    18bc <print_mx1+0x79c>
lea    0x167a(%rip),%rdi
mov    $0x3,%esi
jmp    18bc <print_mx1+0x79c>
lea    0x169a(%rip),%rdi
mov    $0x4,%esi
jmp    18bc <print_mx1+0x79c>
lea    0x16ba(%rip),%rdi
mov    $0x5,%esi
jmp    18bc <print_mx1+0x79c>
lea    0x16da(%rip),%rdi
mov    $0x6,%esi
jmp    18bc <print_mx1+0x79c>
lea    0x16fb(%rip),%rdi
mov    $0x7,%esi
xor    %eax,%eax
call   1040 <printf@plt>
test   $0x8000,%r15d
jne    18f0 <print_mx1+0x7d0>
lea    0x19d3(%rip),%rdi
call   1030 <puts@plt>
shr    $0x10,%r15d
and    $0x7,%r15d
lea    0x80d(%rip),%rax
movslq (%rax,%r15,4),%rcx
add    %rax,%rcx
jmp    *%rcx
lea    0x16ea(%rip),%rdi
mov    $0x8,%esi
xor    %eax,%eax
call   1040 <printf@plt>
shr    $0x10,%r15d
and    $0x7,%r15d
lea    0x7e2(%rip),%rax
movslq (%rax,%r15,4),%rcx
add    %rax,%rcx
jmp    *%rcx
lea    0x16e8(%rip),%rdi
xor    %esi,%esi
jmp    1986 <print_mx1+0x866>
lea    0x170a(%rip),%rdi
mov    $0x1,%esi
jmp    1986 <print_mx1+0x866>
lea    0x1729(%rip),%rdi
mov    $0x2,%esi
jmp    1986 <print_mx1+0x866>
lea    0x1748(%rip),%rdi
mov    $0x3,%esi
jmp    1986 <print_mx1+0x866>
lea    0x1767(%rip),%rdi
mov    $0x4,%esi
jmp    1986 <print_mx1+0x866>
lea    0x1787(%rip),%rdi
mov    $0x5,%esi
jmp    1986 <print_mx1+0x866>
lea    0x17a7(%rip),%rdi
mov    $0x6,%esi
jmp    1986 <print_mx1+0x866>
lea    0x17c7(%rip),%rdi
mov    $0x7,%esi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x17e3(%rip),%rdi
mov    %r14d,%esi
xor    %eax,%eax
call   1040 <printf@plt>
movzwl %r14w,%esi
cmp    $0xffff,%esi
je     19b8 <print_mx1+0x898>
lea    0x17da(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
test   $0x10000000,%r14d
jne    1a25 <print_mx1+0x905>
lea    0x1904(%rip),%rdi
call   1030 <puts@plt>
test   $0x20000000,%r14d
je     1a41 <print_mx1+0x921>
lea    0x181b(%rip),%rdi
mov    $0x2,%esi
xor    %eax,%eax
call   1040 <printf@plt>
test   $0x40000000,%r14d
je     1a56 <print_mx1+0x936>
lea    0x1840(%rip),%rdi
mov    $0x4,%esi
xor    %eax,%eax
call   1040 <printf@plt>
test   %r14d,%r14d
jns    1a67 <print_mx1+0x947>
lea    0x185e(%rip),%rdi
mov    $0x8,%esi
xor    %eax,%eax
pop    %rbx
pop    %r12
pop    %r14
pop    %r15
pop    %rbp
jmp    1040 <printf@plt>
lea    0x1787(%rip),%rdi
mov    $0x1,%esi
xor    %eax,%eax
call   1040 <printf@plt>
test   $0x20000000,%r14d
jne    19d6 <print_mx1+0x8b6>
lea    0x1884(%rip),%rdi
call   1030 <puts@plt>
test   $0x40000000,%r14d
jne    19f2 <print_mx1+0x8d2>
lea    0x186f(%rip),%rdi
call   1030 <puts@plt>
test   %r14d,%r14d
js     1a0a <print_mx1+0x8ea>
lea    0x1893(%rip),%rdi
pop    %rbx
pop    %r12
pop    %r14
pop    %r15
pop    %rbp
jmp    1030 <puts@plt>

LLVM IR (-O0):
@.str = [20 x i8] c" DEVCFG0 = %08x\0A\00"
@.str.1 = [42 x i8] c" %u Debugger enabled\0A\00"
@.str.2 = [43 x i8] c" %u Debugger disabled\0A\00"
@.str.3 = [39 x i8] c" %u JTAG disabled\0A\00"
@.str.4 = [40 x i8] c" %02x Use PGC1/PGD1\0A\00"
@.str.5 = [40 x i8] c" %02x Use PGC2/PGD2\0A\00"
@.str.6 = [40 x i8] c" %02x Use PGC3/PGD3\0A\00"
@.str.7 = [40 x i8] c" %02x Use PGC4/PGD4\0A\00"
@.str.8 = [51 x i8] c" %05x Program flash write protect\0A\00"
@.str.9 = [49 x i8] c" Boot flash write protect\0A\00"
@.str.10 = [37 x i8] c" Code protect\0A\00"
@.str.11 = [20 x i8] c" DEVCFG1 = %08x\0A\00"
@.str.12 = [44 x i8] c" %u Fast RC oscillator\0A\00"
@.str.13 = [69 x i8] c" %u Fast RC oscillator with divide-by-N and PLL\0A\00"
@.str.14 = [44 x i8] c" %u Primary oscillator\0A\00"
@.str.15 = [53 x i8] c" %u Primary oscillator with PLL\0A\00"
@.str.16 = [46 x i8] c" %u Secondary oscillator\0A\00"
@.str.17 = [49 x i8] c" %u Low-power RC oscillator\0A\00"
@.str.18 = [62 x i8] c" %u Fast RC oscillator with divide-by-16\0A\00"
@.str.19 = [61 x i8] c" %u Fast RC oscillator with divide-by-N\0A\00"
@.str.20 = [33 x i8] c" %u UNKNOWN\0A\00"
@.str.21 = [54 x i8] c" %u Secondary oscillator enabled\0A\00"
@.str.22 = [63 x i8] c" %u Internal-external switch over enabled\0A\00"
@.str.23 = [54 x i8] c" %u Primary oscillator: External\0A\00"
@.str.24 = [48 x i8] c" %u Primary oscillator: XT\0A\00"
@.str.25 = [48 x i8] c" %u Primary oscillator: HS\0A\00"
@.str.26 = [54 x i8] c" %u Primary oscillator: disabled\0A\00"
@.str.27 = [46 x i8] c" %u CLKO output disabled\0A\00"
@.str.28 = [58 x i8] c" %u Peripheral bus clock: SYSCLK / 1\0A\00"
@.str.29 = [58 x i8] c" %u Peripheral bus clock: SYSCLK / 2\0A\00"
@.str.30 = [58 x i8] c" %u Peripheral bus clock: SYSCLK / 4\0A\00"
@.str.31 = [58 x i8] c" %u Peripheral bus clock: SYSCLK / 8\0A\00"
@.str.32 = [57 x i8] c" %u Fail-safe clock monitor enabled\0A\00"
@.str.33 = [49 x i8] c" %u Clock switching enabled\0A\00"
@.str.34 = [49 x i8] c" %2x Watchdog postscale: 1/1\0A\00"
@.str.35 = [49 x i8] c" %2x Watchdog postscale: 1/2\0A\00"
@.str.36 = [49 x i8] c" %2x Watchdog postscale: 1/4\0A\00"
@.str.37 = [49 x i8] c" %2x Watchdog postscale: 1/8\0A\00"
@.str.38 = [50 x i8] c" %2x Watchdog postscale: 1/16\0A\00"
@.str.39 = [50 x i8] c" %2x Watchdog postscale: 1/32\0A\00"
@.str.40 = [50 x i8] c" %2x Watchdog postscale: 1/64\0A\00"
@.str.41 = [51 x i8] c" %2x Watchdog postscale: 1/128\0A\00"
@.str.42 = [51 x i8] c" %2x Watchdog postscale: 1/256\0A\00"
@.str.43 = [51 x i8] c" %2x Watchdog postscale: 1/512\0A\00"
@.str.44 = [52 x i8] c" %2x Watchdog postscale: 1/1024\0A\00"
@.str.45 = [52 x i8] c" %2x Watchdog postscale: 1/2048\0A\00"
@.str.46 = [52 x i8] c" %2x Watchdog postscale: 1/4096\0A\00"
@.str.47 = [52 x i8] c" %2x Watchdog postscale: 1/8192\0A\00"
@.str.48 = [53 x i8] c" %2x Watchdog postscale: 1/16384\0A\00"
@.str.49 = [53 x i8] c" %2x Watchdog postscale: 1/32768\0A\00"
@.str.50 = [53 x i8] c" %2x Watchdog postscale: 1/65536\0A\00"
@.str.51 = [54 x i8] c" %2x Watchdog postscale: 1/131072\0A\00"
@.str.52 = [54 x i8] c" %2x Watchdog postscale: 1/262144\0A\00"
@.str.53 = [54 x i8] c" %2x Watchdog postscale: 1/524288\0A\00"
@.str.54 = [55 x i8] c" %2x Watchdog postscale: 1/1048576\0A\00"
@.str.55 = [53 x i8] c" %u Watchdog in non-Window mode\0A\00"
@.str.56 = [41 x i8] c" %u Watchdog enable\0A\00"
@.str.57 = [20 x i8] c" DEVCFG2 = %08x\0A\00"
@.str.58 = [42 x i8] c" %u PLL divider: 1/1\0A\00"
@.str.59 = [42 x i8] c" %u PLL divider: 1/2\0A\00"
@.str.60 = [42 x i8] c" %u PLL divider: 1/3\0A\00"
@.str.61 = [42 x i8] c" %u PLL divider: 1/4\0A\00"
@.str.62 = [42 x i8] c" %u PLL divider: 1/5\0A\00"
@.str.63 = [42 x i8] c" %u PLL divider: 1/6\0A\00"
@.str.64 = [43 x i8] c" %u PLL divider: 1/10\0A\00"
@.str.65 = [43 x i8] c" %u PLL divider: 1/12\0A\00"
@.str.66 = [45 x i8] c" %u PLL multiplier: 15x\0A\00"
@.str.67 = [45 x i8] c" %u PLL multiplier: 16x\0A\00"
@.str.68 = [45 x i8] c" %u PLL multiplier: 17x\0A\00"
@.str.69 = [45 x i8] c" %u PLL multiplier: 18x\0A\00"
@.str.70 = [45 x i8] c" %u PLL multiplier: 19x\0A\00"
@.str.71 = [45 x i8] c" %u PLL multiplier: 20x\0A\00"
@.str.72 = [45 x i8] c" %u PLL multiplier: 21x\0A\00"
@.str.73 = [45 x i8] c" %u PLL multiplier: 24x\0A\00"
@.str.74 = [46 x i8] c" %u USB PLL divider: 1/1\0A\00"
@.str.75 = [46 x i8] c" %u USB PLL divider: 1/2\0A\00"
@.str.76 = [46 x i8] c" %u USB PLL divider: 1/3\0A\00"
@.str.77 = [46 x i8] c" %u USB PLL divider: 1/4\0A\00"
@.str.78 = [46 x i8] c" %u USB PLL divider: 1/5\0A\00"
@.str.79 = [46 x i8] c" %u USB PLL divider: 1/6\0A\00"
@.str.80 = [47 x i8] c" %u USB PLL divider: 1/10\0A\00"
@.str.81 = [47 x i8] c" %u USB PLL divider: 1/12\0A\00"
@.str.82 = [41 x i8] c" %u Disable USB PLL\0A\00"
@.str.83 = [39 x i8] c" Enable USB PLL\0A\00"
@.str.84 = [45 x i8] c" %u PLL postscaler: 1/1\0A\00"
@.str.85 = [45 x i8] c" %u PLL postscaler: 1/2\0A\00"
@.str.86 = [45 x i8] c" %u PLL postscaler: 1/4\0A\00"
@.str.87 = [45 x i8] c" %u PLL postscaler: 1/8\0A\00"
@.str.88 = [46 x i8] c" %u PLL postscaler: 1/16\0A\00"
@.str.89 = [46 x i8] c" %u PLL postscaler: 1/32\0A\00"
@.str.90 = [46 x i8] c" %u PLL postscaler: 1/64\0A\00"
@.str.91 = [47 x i8] c" %u PLL postscaler: 1/128\0A\00"
@.str.92 = [20 x i8] c" DEVCFG3 = %08x\0A\00"
@.str.93 = [40 x i8] c" %04x User-defined ID\0A\00"
@.str.94 = [69 x i8] c" %u Peripheral Module Disable - only 1 reconfig\0A\00"
@.str.95 = [54 x i8] c" USBID pin: controlled by port\0A\00"
@.str.96 = [65 x i8] c" %u Peripheral Pin Select - only 1 reconfig\0A\00"
@.str.97 = [54 x i8] c" %u USBID pin: controlled by USB\0A\00"
@.str.98 = [55 x i8] c" %u VBuson pin: controlled by USB\0A\00"
@.str.99 = [55 x i8] c" VBuson pin: controlled by port\0A\00"
define void @print_mx1(i32 %0, i32 %1, i32 %2, i32 %3) {
%5 = alloca i32
%6 = alloca i32
%7 = alloca i32
%8 = alloca i32
store i32 %0, i32* %5
store i32 %1, i32* %6
store i32 %2, i32* %7
store i32 %3, i32* %8
%9 = load i32, i32* %5
%10 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str, i64 0, i64 0), i32 %9)
%11 = load i32, i32* %5
%12 = xor i32 %11, -1
%13 = and i32 %12, 3
%14 = icmp eq i32 %13, 2
br i1 %14, label %15, label %19
15: ; preds = %4
%16 = load i32, i32* %5
%17 = and i32 %16, 3
%18 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.1, i64 0, i64 0), i32 %17)
br label %23
19: ; preds = %4
%20 = load i32, i32* %5
%21 = and i32 %20, 3
%22 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([43 x i8], [43 x i8]* @.str.2, i64 0, i64 0), i32 %21)
br label %23
23: ; preds = %19, %15
%24 = load i32, i32* %5
%25 = xor i32 %24, -1
%26 = and i32 %25, 4
%27 = icmp ne i32 %26, 0
br i1 %27, label %28, label %32
28: ; preds = %23
%29 = load i32, i32* %5
%30 = and i32 %29, 4
%31 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([39 x i8], [39 x i8]* @.str.3, i64 0, i64 0), i32 %30)
br label %32
32: ; preds = %28, %23
%33 = load i32, i32* %5
%34 = xor i32 %33, -1
%35 = and i32 %34, 24
switch i32 %35, label %52 [
i32 0, label %36
i32 8, label %40
i32 16, label %44
i32 24, label %48
]
36: ; preds = %32
%37 = load i32, i32* %5
%38 = and i32 %37, 24
%39 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.4, i64 0, i64 0), i32 %38)
br label %52
40: ; preds = %32
%41 = load i32, i32* %5
%42 = and i32 %41, 24
%43 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.5, i64 0, i64 0), i32 %42)
br label %52
44: ; preds = %32
%45 = load i32, i32* %5
%46 = and i32 %45, 24
%47 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.6, i64 0, i64 0), i32 %46)
br label %52
48: ; preds = %32
%49 = load i32, i32* %5
%50 = and i32 %49, 24
%51 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.7, i64 0, i64 0), i32 %50)
br label %52
52: ; preds = %32, %48, %44, %40, %36
%53 = load i32, i32* %5
%54 = xor i32 %53, -1
%55 = and i32 %54, 64512
%56 = icmp ne i32 %55, 0
br i1 %56, label %57, label %61
57: ; preds = %52
%58 = load i32, i32* %5
%59 = and i32 %58, 64512
%60 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.8, i64 0, i64 0), i32 %59)
br label %61
61: ; preds = %57, %52
%62 = load i32, i32* %5
%63 = xor i32 %62, -1
%64 = and i32 %63, 16777216
%65 = icmp ne i32 %64, 0
br i1 %65, label %66, label %68
66: ; preds = %61
%67 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.9, i64 0, i64 0))
br label %68
68: ; preds = %66, %61
%69 = load i32, i32* %5
%70 = xor i32 %69, -1
%71 = and i32 %70, 268435456
%72 = icmp ne i32 %71, 0
br i1 %72, label %73, label %75
73: ; preds = %68
%74 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.10, i64 0, i64 0))
br label %75
75: ; preds = %73, %68
%76 = load i32, i32* %6
%77 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.11, i64 0, i64 0), i32 %76)
%78 = load i32, i32* %6
%79 = and i32 %78, 7
switch i32 %79, label %96 [
i32 0, label %80
i32 1, label %82
i32 2, label %84
i32 3, label %86
i32 4, label %88
i32 5, label %90
i32 6, label %92
i32 7, label %94
]
80: ; preds = %75
%81 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([44 x i8], [44 x i8]* @.str.12, i64 0, i64 0), i32 0)
br label %100
82: ; preds = %75
%83 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.13, i64 0, i64 0), i32 1)
br label %100
84: ; preds = %75
%85 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([44 x i8], [44 x i8]* @.str.14, i64 0, i64 0), i32 2)
br label %100
86: ; preds = %75
%87 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([53 x i8], [53 x i8]* @.str.15, i64 0, i64 0), i32 3)
br label %100
88: ; preds = %75
%89 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.16, i64 0, i64 0), i32 4)
br label %100
90: ; preds = %75
%91 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.17, i64 0, i64 0), i32 5)
br label %100
92: ; preds = %75
%93 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([62 x i8], [62 x i8]* @.str.18, i64 0, i64 0), i32 6)
br label %100
94: ; preds = %75
%95 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([61 x i8], [61 x i8]* @.str.19, i64 0, i64 0), i32 7)
br label %100
96: ; preds = %75
%97 = load i32, i32* %6
%98 = and i32 %97, 7
%99 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.20, i64 0, i64 0), i32 %98)
br label %100
100: ; preds = %96, %94, %92, %90, %88, %86, %84, %82, %80
%101 = load i32, i32* %6
%102 = and i32 %101, 32
%103 = icmp ne i32 %102, 0
br i1 %103, label %104, label %106
104: ; preds = %100
%105 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.21, i64 0, i64 0), i32 2)
br label %106
106: ; preds = %104, %100
%107 = load i32, i32* %6
%108 = and i32 %107, 128
%109 = icmp ne i32 %108, 0
br i1 %109, label %110, label %112
110: ; preds = %106
%111 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.22, i64 0, i64 0), i32 8)
br label %112
112: ; preds = %110, %106
%113 = load i32, i32* %6
%114 = and i32 %113, 768
switch i32 %114, label %123 [
i32 0, label %115
i32 256, label %117
i32 512, label %119
i32 768, label %121
]
115: ; preds = %112
%116 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.23, i64 0, i64 0), i32 0)
br label %123
117: ; preds = %112
%118 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.24, i64 0, i64 0), i32 1)
br label %123
119: ; preds = %112
%120 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.25, i64 0, i64 0), i32 2)
br label %123
121: ; preds = %112
%122 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.26, i64 0, i64 0), i32 3)
br label %123
123: ; preds = %112, %121, %119, %117, %115
%124 = load i32, i32* %6
%125 = and i32 %124, 1024
%126 = icmp ne i32 %125, 0
br i1 %126, label %127, label %129
127: ; preds = %123
%128 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.27, i64 0, i64 0), i32 4)
br label %129
129: ; preds = %127, %123
%130 = load i32, i32* %6
%131 = and i32 %130, 12288
switch i32 %131, label %140 [
i32 0, label %132
i32 4096, label %134
i32 8192, label %136
i32 12288, label %138
]
132: ; preds = %129
%133 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.28, i64 0, i64 0), i32 0)
br label %140
134: ; preds = %129
%135 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.29, i64 0, i64 0), i32 1)
br label %140
136: ; preds = %129
%137 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.30, i64 0, i64 0), i32 2)
br label %140
138: ; preds = %129
%139 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.31, i64 0, i64 0), i32 3)
br label %140
140: ; preds = %129, %138, %136, %134, %132
%141 = load i32, i32* %6
%142 = and i32 %141, 32768
%143 = icmp ne i32 %142, 0
br i1 %143, label %144, label %146
144: ; preds = %140
%145 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([57 x i8], [57 x i8]* @.str.32, i64 0, i64 0), i32 8)
br label %146
146: ; preds = %144, %140
%147 = load i32, i32* %6
%148 = and i32 %147, 16384
%149 = icmp ne i32 %148, 0
br i1 %149, label %150, label %152
150: ; preds = %146
%151 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.33, i64 0, i64 0), i32 4)
br label %152
152: ; preds = %150, %146
%153 = load i32, i32* %6
%154 = and i32 %153, 8388608
%155 = icmp ne i32 %154, 0
br i1 %155, label %156, label %209
156: ; preds = %152
%157 = load i32, i32* %6
%158 = and i32 %157, 2031616
switch i32 %158, label %201 [
i32 0, label %159
i32 65536, label %161
i32 131072, label %163
i32 196608, label %165
i32 262144, label %167
i32 327680, label %169
i32 393216, label %171
i32 458752, label %173
i32 524288, label %175
i32 589824, label %177
i32 655360, label %179
i32 720896, label %181
i32 786432, label %183
i32 851968, label %185
i32 917504, label %187
i32 983040, label %189
i32 1048576, label %191
i32 1114112, label %193
i32 1179648, label %195
i32 1245184, label %197
i32 1310720, label %199
]
159: ; preds = %156
%160 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.34, i64 0, i64 0), i32 0)
br label %201
161: ; preds = %156
%162 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.35, i64 0, i64 0), i32 1)
br label %201
163: ; preds = %156
%164 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.36, i64 0, i64 0), i32 2)
br label %201
165: ; preds = %156
%166 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.37, i64 0, i64 0), i32 3)
br label %201
167: ; preds = %156
%168 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.38, i64 0, i64 0), i32 4)
br label %201
169: ; preds = %156
%170 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.39, i64 0, i64 0), i32 5)
br label %201
171: ; preds = %156
%172 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.40, i64 0, i64 0), i32 6)
br label %201
173: ; preds = %156
%174 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.41, i64 0, i64 0), i32 7)
br label %201
175: ; preds = %156
%176 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.42, i64 0, i64 0), i32 8)
br label %201
177: ; preds = %156
%178 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.43, i64 0, i64 0), i32 9)
br label %201
179: ; preds = %156
%180 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([52 x i8], [52 x i8]* @.str.44, i64 0, i64 0), i32 10)
br label %201
181: ; preds = %156
%182 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([52 x i8], [52 x i8]* @.str.45, i64 0, i64 0), i32 11)
br label %201
183: ; preds = %156
%184 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([52 x i8], [52 x i8]* @.str.46, i64 0, i64 0), i32 12)
br label %201
185: ; preds = %156
%186 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([52 x i8], [52 x i8]* @.str.47, i64 0, i64 0), i32 13)
br label %201
187: ; preds = %156
%188 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([53 x i8], [53 x i8]* @.str.48, i64 0, i64 0), i32 14)
br label %201
189: ; preds = %156
%190 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([53 x i8], [53 x i8]* @.str.49, i64 0, i64 0), i32 15)
br label %201
191: ; preds = %156
%192 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([53 x i8], [53 x i8]* @.str.50, i64 0, i64 0), i32 16)
br label %201
193: ; preds = %156
%194 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.51, i64 0, i64 0), i32 17)
br label %201
195: ; preds = %156
%196 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.52, i64 0, i64 0), i32 18)
br label %201
197: ; preds = %156
%198 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.53, i64 0, i64 0), i32 19)
br label %201
199: ; preds = %156
%200 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.54, i64 0, i64 0), i32 20)
br label %201
201: ; preds = %156, %199, %197, %195, %193, %191, %189, %187, %185, %183, %181, %179, %177, %175, %173, %171, %169, %167, %165, %163, %161, %159
%202 = load i32, i32* %6
%203 = and i32 %202, 4194304
%204 = icmp ne i32 %203, 0
br i1 %204, label %205, label %207
205: ; preds = %201
%206 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([53 x i8], [53 x i8]* @.str.55, i64 0, i64 0), i32 4)
br label %207
207: ; preds = %205, %201
%208 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str.56, i64 0, i64 0), i32 8)
br label %209
209: ; preds = %207, %152
%210 = load i32, i32* %7
%211 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.57, i64 0, i64 0), i32 %210)
%212 = load i32, i32* %7
%213 = and i32 %212, 7
switch i32 %213, label %230 [
i32 0, label %214
i32 1, label %216
i32 2, label %218
i32 3, label %220
i32 4, label %222
i32 5, label %224
i32 6, label %226
i32 7, label %228
]
214: ; preds = %209
%215 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.58, i64 0, i64 0), i32 0)
br label %230
216: ; preds = %209
%217 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.59, i64 0, i64 0), i32 1)
br label %230
218: ; preds = %209
%219 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.60, i64 0, i64 0), i32 2)
br label %230
220: ; preds = %209
%221 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.61, i64 0, i64 0), i32 3)
br label %230
222: ; preds = %209
%223 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.62, i64 0, i64 0), i32 4)
br label %230
224: ; preds = %209
%225 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.63, i64 0, i64 0), i32 5)
br label %230
226: ; preds = %209
%227 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([43 x i8], [43 x i8]* @.str.64, i64 0, i64 0), i32 6)
br label %230
228: ; preds = %209
%229 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([43 x i8], [43 x i8]* @.str.65, i64 0, i64 0), i32 7)
br label %230
230: ; preds = %209, %228, %226, %224, %222, %220, %218, %216, %214
%231 = load i32, i32* %7
%232 = and i32 %231, 112
switch i32 %232, label %249 [
i32 0, label %233
i32 16, label %235
i32 32, label %237
i32 48, label %239
i32 64, label %241
i32 80, label %243
i32 96, label %245
i32 112, label %247
]
233: ; preds = %230
%234 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.66, i64 0, i64 0), i32 0)
br label %249
235: ; preds = %230
%236 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.67, i64 0, i64 0), i32 1)
br label %249
237: ; preds = %230
%238 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.68, i64 0, i64 0), i32 2)
br label %249
239: ; preds = %230
%240 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.69, i64 0, i64 0), i32 3)
br label %249
241: ; preds = %230
%242 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.70, i64 0, i64 0), i32 4)
br label %249
243: ; preds = %230
%244 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.71, i64 0, i64 0), i32 5)
br label %249
245: ; preds = %230
%246 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.72, i64 0, i64 0), i32 6)
br label %249
247: ; preds = %230
%248 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.73, i64 0, i64 0), i32 7)
br label %249
249: ; preds = %230, %247, %245, %243, %241, %239, %237, %235, %233
%250 = load i32, i32* %7
%251 = and i32 %250, 1792
switch i32 %251, label %268 [
i32 0, label %252
i32 256, label %254
i32 512, label %256
i32 768, label %258
i32 1024, label %260
i32 1280, label %262
i32 1536, label %264
i32 1792, label %266
]
252: ; preds = %249
%253 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.74, i64 0, i64 0), i32 0)
br label %268
254: ; preds = %249
%255 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.75, i64 0, i64 0), i32 1)
br label %268
256: ; preds = %249
%257 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.76, i64 0, i64 0), i32 2)
br label %268
258: ; preds = %249
%259 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.77, i64 0, i64 0), i32 3)
br label %268
260: ; preds = %249
%261 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.78, i64 0, i64 0), i32 4)
br label %268
262: ; preds = %249
%263 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.79, i64 0, i64 0), i32 5)
br label %268
264: ; preds = %249
%265 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.80, i64 0, i64 0), i32 6)
br label %268
266: ; preds = %249
%267 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.81, i64 0, i64 0), i32 7)
br label %268
268: ; preds = %249, %266, %264, %262, %260, %258, %256, %254, %252
%269 = load i32, i32* %7
%270 = and i32 %269, 32768
%271 = icmp ne i32 %270, 0
br i1 %271, label %272, label %274
272: ; preds = %268
%273 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str.82, i64 0, i64 0), i32 8)
br label %276
274: ; preds = %268
%275 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([39 x i8], [39 x i8]* @.str.83, i64 0, i64 0))
br label %276
276: ; preds = %274, %272
%277 = load i32, i32* %7
%278 = and i32 %277, 458752
switch i32 %278, label %295 [
i32 0, label %279
i32 65536, label %281
i32 131072, label %283
i32 196608, label %285
i32 262144, label %287
i32 327680, label %289
i32 393216, label %291
i32 458752, label %293
]
279: ; preds = %276
%280 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.84, i64 0, i64 0), i32 0)
br label %295
281: ; preds = %276
%282 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.85, i64 0, i64 0), i32 1)
br label %295
283: ; preds = %276
%284 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.86, i64 0, i64 0), i32 2)
br label %295
285: ; preds = %276
%286 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.87, i64 0, i64 0), i32 3)
br label %295
287: ; preds = %276
%288 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.88, i64 0, i64 0), i32 4)
br label %295
289: ; preds = %276
%290 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.89, i64 0, i64 0), i32 5)
br label %295
291: ; preds = %276
%292 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.90, i64 0, i64 0), i32 6)
br label %295
293: ; preds = %276
%294 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.91, i64 0, i64 0), i32 7)
br label %295
295: ; preds = %276, %293, %291, %289, %287, %285, %283, %281, %279
%296 = load i32, i32* %8
%297 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.92, i64 0, i64 0), i32 %296)
%298 = load i32, i32* %8
%299 = xor i32 %298, -1
%300 = and i32 %299, 65535
%301 = icmp ne i32 %300, 0
br i1 %301, label %302, label %306
302: ; preds = %295
%303 = load i32, i32* %8
%304 = and i32 %303, 65535
%305 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.93, i64 0, i64 0), i32 %304)
br label %306
306: ; preds = %302, %295
%307 = load i32, i32* %8
%308 = and i32 %307, 268435456
%309 = icmp ne i32 %308, 0
br i1 %309, label %310, label %312
310: ; preds = %306
%311 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.94, i64 0, i64 0), i32 1)
br label %314
312: ; preds = %306
%313 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.95, i64 0, i64 0))
br label %314
314: ; preds = %312, %310
%315 = load i32, i32* %8
%316 = and i32 %315, 536870912
%317 = icmp ne i32 %316, 0
br i1 %317, label %318, label %320
318: ; preds = %314
%319 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.96, i64 0, i64 0), i32 2)
br label %322
320: ; preds = %314
%321 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.95, i64 0, i64 0))
br label %322
322: ; preds = %320, %318
%323 = load i32, i32* %8
%324 = and i32 %323, 1073741824
%325 = icmp ne i32 %324, 0
br i1 %325, label %326, label %328
326: ; preds = %322
%327 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.97, i64 0, i64 0), i32 4)
br label %330
328: ; preds = %322
%329 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.95, i64 0, i64 0))
br label %330
330: ; preds = %328, %326
%331 = load i32, i32* %8
%332 = and i32 %331, -2147483648
%333 = icmp ne i32 %332, 0
br i1 %333, label %334, label %336
334: ; preds = %330
%335 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.98, i64 0, i64 0), i32 8)
br label %338
336: ; preds = %330
%337 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.99, i64 0, i64 0))
br label %338
338: ; preds = %336, %334
ret void
}

LLVM IR (-O2):
@.str = [20 x i8] c" DEVCFG0 = %08x\0A\00"
@.str.1 = [42 x i8] c" %u Debugger enabled\0A\00"
@.str.2 = [43 x i8] c" %u Debugger disabled\0A\00"
@.str.3 = [39 x i8] c" %u JTAG disabled\0A\00"
@.str.4 = [40 x i8] c" %02x Use PGC1/PGD1\0A\00"
@.str.5 = [40 x i8] c" %02x Use PGC2/PGD2\0A\00"
@.str.6 = [40 x i8] c" %02x Use PGC3/PGD3\0A\00"
@.str.7 = [40 x i8] c" %02x Use PGC4/PGD4\0A\00"
@.str.8 = [51 x i8] c" %05x Program flash write protect\0A\00"
@.str.11 = [20 x i8] c" DEVCFG1 = %08x\0A\00"
@.str.12 = [44 x i8] c" %u Fast RC oscillator\0A\00"
@.str.13 = [69 x i8] c" %u Fast RC oscillator with divide-by-N and PLL\0A\00"
@.str.14 = [44 x i8] c" %u Primary oscillator\0A\00"
@.str.15 = [53 x i8] c" %u Primary oscillator with PLL\0A\00"
@.str.16 = [46 x i8] c" %u Secondary oscillator\0A\00"
@.str.17 = [49 x i8] c" %u Low-power RC oscillator\0A\00"
@.str.18 = [62 x i8] c" %u Fast RC oscillator with divide-by-16\0A\00"
@.str.19 = [61 x i8] c" %u Fast RC oscillator with divide-by-N\0A\00"
@.str.21 = [54 x i8] c" %u Secondary oscillator enabled\0A\00"
@.str.22 = [63 x i8] c" %u Internal-external switch over enabled\0A\00"
@.str.23 = [54 x i8] c" %u Primary oscillator: External\0A\00"
@.str.24 = [48 x i8] c" %u Primary oscillator: XT\0A\00"
@.str.25 = [48 x i8] c" %u Primary oscillator: HS\0A\00"
@.str.26 = [54 x i8] c" %u Primary oscillator: disabled\0A\00"
@.str.27 = [46 x i8] c" %u CLKO output disabled\0A\00"
@.str.28 = [58 x i8] c" %u Peripheral bus clock: SYSCLK / 1\0A\00"
@.str.29 = [58 x i8] c" %u Peripheral bus clock: SYSCLK / 2\0A\00"
@.str.30 = [58 x i8] c" %u Peripheral bus clock: SYSCLK / 4\0A\00"
@.str.31 = [58 x i8] c" %u Peripheral bus clock: SYSCLK / 8\0A\00"
@.str.32 = [57 x i8] c" %u Fail-safe clock monitor enabled\0A\00"
@.str.33 = [49 x i8] c" %u Clock switching enabled\0A\00"
@.str.34 = [49 x i8] c" %2x Watchdog postscale: 1/1\0A\00"
@.str.35 = [49 x i8] c" %2x Watchdog postscale: 1/2\0A\00"
@.str.36 = [49 x i8] c" %2x Watchdog postscale: 1/4\0A\00"
@.str.37 = [49 x i8] c" %2x Watchdog postscale: 1/8\0A\00"
@.str.38 = [50 x i8] c" %2x Watchdog postscale: 1/16\0A\00"
@.str.39 = [50 x i8] c" %2x Watchdog postscale: 1/32\0A\00"
@.str.40 = [50 x i8] c" %2x Watchdog postscale: 1/64\0A\00"
@.str.41 = [51 x i8] c" %2x Watchdog postscale: 1/128\0A\00"
@.str.42 = [51 x i8] c" %2x Watchdog postscale: 1/256\0A\00"
@.str.43 = [51 x i8] c" %2x Watchdog postscale: 1/512\0A\00"
@.str.44 = [52 x i8] c" %2x Watchdog postscale: 1/1024\0A\00"
@.str.45 = [52 x i8] c" %2x Watchdog postscale: 1/2048\0A\00"
@.str.46 = [52 x i8] c" %2x Watchdog postscale: 1/4096\0A\00"
@.str.47 = [52 x i8] c" %2x Watchdog postscale: 1/8192\0A\00"
@.str.48 = [53 x i8] c" %2x Watchdog postscale: 1/16384\0A\00"
@.str.49 = [53 x i8] c" %2x Watchdog postscale: 1/32768\0A\00"
@.str.50 = [53 x i8] c" %2x Watchdog postscale: 1/65536\0A\00"
@.str.51 = [54 x i8] c" %2x Watchdog postscale: 1/131072\0A\00"
@.str.52 = [54 x i8] c" %2x Watchdog postscale: 1/262144\0A\00"
@.str.53 = [54 x i8] c" %2x Watchdog postscale: 1/524288\0A\00"
@.str.54 = [55 x i8] c" %2x Watchdog postscale: 1/1048576\0A\00"
@.str.55 = [53 x i8] c" %u Watchdog in non-Window mode\0A\00"
@.str.56 = [41 x i8] c" %u Watchdog enable\0A\00"
@.str.57 = [20 x i8] c" DEVCFG2 = %08x\0A\00"
@.str.58 = [42 x i8] c" %u PLL divider: 1/1\0A\00"
@.str.59 = [42 x i8] c" %u PLL divider: 1/2\0A\00"
@.str.60 = [42 x i8] c" %u PLL divider: 1/3\0A\00"
@.str.61 = [42 x i8] c" %u PLL divider: 1/4\0A\00"
@.str.62 = [42 x i8] c" %u PLL divider: 1/5\0A\00"
@.str.63 = [42 x i8] c" %u PLL divider: 1/6\0A\00"
@.str.64 = [43 x i8] c" %u PLL divider: 1/10\0A\00"
@.str.65 = [43 x i8] c" %u PLL divider: 1/12\0A\00"
@.str.66 = [45 x i8] c" %u PLL multiplier: 15x\0A\00"
@.str.67 = [45 x i8] c" %u PLL multiplier: 16x\0A\00"
@.str.68 = [45 x i8] c" %u PLL multiplier: 17x\0A\00"
@.str.69 = [45 x i8] c" %u PLL multiplier: 18x\0A\00"
@.str.70 = [45 x i8] c" %u PLL multiplier: 19x\0A\00"
@.str.71 = [45 x i8] c" %u PLL multiplier: 20x\0A\00"
@.str.72 = [45 x i8] c" %u PLL multiplier: 21x\0A\00"
@.str.73 = [45 x i8] c" %u PLL multiplier: 24x\0A\00"
@.str.74 = [46 x i8] c" %u USB PLL divider: 1/1\0A\00"
@.str.75 = [46 x i8] c" %u USB PLL divider: 1/2\0A\00"
@.str.76 = [46 x i8] c" %u USB PLL divider: 1/3\0A\00"
@.str.77 = [46 x i8] c" %u USB PLL divider: 1/4\0A\00"
@.str.78 = [46 x i8] c" %u USB PLL divider: 1/5\0A\00"
@.str.79 = [46 x i8] c" %u USB PLL divider: 1/6\0A\00"
@.str.80 = [47 x i8] c" %u USB PLL divider: 1/10\0A\00"
@.str.81 = [47 x i8] c" %u USB PLL divider: 1/12\0A\00"
@.str.82 = [41 x i8] c" %u Disable USB PLL\0A\00"
@.str.84 = [45 x i8] c" %u PLL postscaler: 1/1\0A\00"
@.str.85 = [45 x i8] c" %u PLL postscaler: 1/2\0A\00"
@.str.86 = [45 x i8] c" %u PLL postscaler: 1/4\0A\00"
@.str.87 = [45 x i8] c" %u PLL postscaler: 1/8\0A\00"
@.str.88 = [46 x i8] c" %u PLL postscaler: 1/16\0A\00"
@.str.89 = [46 x i8] c" %u PLL postscaler: 1/32\0A\00"
@.str.90 = [46 x i8] c" %u PLL postscaler: 1/64\0A\00"
@.str.91 = [47 x i8] c" %u PLL postscaler: 1/128\0A\00"
@.str.92 = [20 x i8] c" DEVCFG3 = %08x\0A\00"
@.str.93 = [40 x i8] c" %04x User-defined ID\0A\00"
@.str.94 = [69 x i8] c" %u Peripheral Module Disable - only 1 reconfig\0A\00"
@.str.96 = [65 x i8] c" %u Peripheral Pin Select - only 1 reconfig\0A\00"
@.str.97 = [54 x i8] c" %u USBID pin: controlled by USB\0A\00"
@.str.98 = [55 x i8] c" %u VBuson pin: controlled by USB\0A\00"
@str = [38 x i8] c" Enable USB PLL\00"
@str.102 = [53 x i8] c" USBID pin: controlled by port\00"
@str.103 = [54 x i8] c" VBuson pin: controlled by port\00"
@str.104 = [36 x i8] c" Code protect\00"
@str.105 = [48 x i8] c" Boot flash write protect\00"
@reltable.print_mx1 = [4 x i32] [i32 trunc (i64 sub (i64 ptrtoint ([40 x i8]* @.str.4 to i64), i64 ptrtoint ([4 x i32]* @reltable.print_mx1 to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([40 x i8]* @.str.5 to i64), i64 ptrtoint ([4 x i32]* @reltable.print_mx1 to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([40 x i8]* @.str.6 to i64), i64 ptrtoint ([4 x i32]* @reltable.print_mx1 to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([40 x i8]* @.str.7 to i64), i64 ptrtoint ([4 x i32]* @reltable.print_mx1 to i64)) to i32)]
define void @print_mx1(i32 %0, i32 %1, i32 %2, i32 %3) {
%5 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([20 x i8], [20 x i8]* @.str, i64 0, i64 0), i32 %0)
%6 = xor i32 %0, -1
%7 = and i32 %6, 3
%8 = icmp eq i32 %7, 2
%9 = and i32 %0, 3
%10 = select i1 %8, i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([43 x i8], [43 x i8]* @.str.2, i64 0, i64 0)
%11 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) %10, i32 %9)
%12 = and i32 %6, 4
%13 = icmp eq i32 %12, 0
br i1 %13, label %17, label %14
14: ; preds = %4
%15 = and i32 %0, 4
%16 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.3, i64 0, i64 0), i32 %15)
br label %17
17: ; preds = %14, %4
%18 = lshr i32 %6, 3
%19 = and i32 %18, 3
%20 = zext i32 %19 to i64
%21 = shl i64 %20, 2
%22 = call i8* @llvm.load.relative.i64(i8* bitcast ([4 x i32]* @reltable.print_mx1 to i8*), i64 %21)
%23 = and i32 %0, 24
%24 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) %22, i32 %23)
%25 = and i32 %6, 64512
%26 = icmp eq i32 %25, 0
br i1 %26, label %30, label %27
27: ; preds = %17
%28 = and i32 %0, 64512
%29 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([51 x i8], [51 x i8]* @.str.8, i64 0, i64 0), i32 %28)
br label %30
30: ; preds = %27, %17
%31 = and i32 %6, 16777216
%32 = icmp eq i32 %31, 0
br i1 %32, label %35, label %33
33: ; preds = %30
%34 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([48 x i8], [48 x i8]* @str.105, i64 0, i64 0))
br label %35
35: ; preds = %33, %30
%36 = and i32 %6, 268435456
%37 = icmp eq i32 %36, 0
br i1 %37, label %40, label %38
38: ; preds = %35
%39 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([36 x i8], [36 x i8]* @str.104, i64 0, i64 0))
br label %40
40: ; preds = %38, %35
%41 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([20 x i8], [20 x i8]* @.str.11, i64 0, i64 0), i32 %1)
%42 = and i32 %1, 7
switch i32 %42, label %59 [
i32 0, label %43
i32 1, label %45
i32 2, label %47
i32 3, label %49
i32 4, label %51
i32 5, label %53
i32 6, label %55
i32 7, label %57
]
43: ; preds = %40
%44 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([44 x i8], [44 x i8]* @.str.12, i64 0, i64 0), i32 0)
br label %60
45: ; preds = %40
%46 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([69 x i8], [69 x i8]* @.str.13, i64 0, i64 0), i32 1)
br label %60
47: ; preds = %40
%48 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([44 x i8], [44 x i8]* @.str.14, i64 0, i64 0), i32 2)
br label %60
49: ; preds = %40
%50 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([53 x i8], [53 x i8]* @.str.15, i64 0, i64 0), i32 3)
br label %60
51: ; preds = %40
%52 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([46 x i8], [46 x i8]* @.str.16, i64 0, i64 0), i32 4)
br label %60
53: ; preds = %40
%54 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([49 x i8], [49 x i8]* @.str.17, i64 0, i64 0), i32 5)
br label %60
55: ; preds = %40
%56 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([62 x i8], [62 x i8]* @.str.18, i64 0, i64 0), i32 6)
br label %60
57: ; preds = %40
%58 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([61 x i8], [61 x i8]* @.str.19, i64 0, i64 0), i32 7)
br label %60
59: ; preds = %40
unreachable
60: ; preds = %57, %55, %53, %51, %49, %47, %45, %43
%61 = and i32 %1, 32
%62 = icmp eq i32 %61, 0
br i1 %62, label %65, label %63
63: ; preds = %60
%64 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([54 x i8], [54 x i8]* @.str.21, i64 0, i64 0), i32 2)
br label %65
65: ; preds = %63, %60
%66 = and i32 %1, 128
%67 = icmp eq i32 %66, 0
br i1 %67, label %70, label %68
68: ; preds = %65
%69 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([63 x i8], [63 x i8]* @.str.22, i64 0, i64 0), i32 8)
br label %70
70: ; preds = %68, %65
%71 = lshr i32 %1, 8
%72 = and i32 %71, 3
switch i32 %72, label %81 [
i32 0, label %73
i32 1, label %75
i32 2, label %77
i32 3, label %79
]
73: ; preds = %70
%74 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([54 x i8], [54 x i8]* @.str.23, i64 0, i64 0), i32 0)
br label %82
75: ; preds = %70
%76 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([48 x i8], [48 x i8]* @.str.24, i64 0, i64 0), i32 1)
br label %82
77: ; preds = %70
%78 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([48 x i8], [48 x i8]* @.str.25, i64 0, i64 0), i32 2)
br label %82
79: ; preds = %70
%80 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([54 x i8], [54 x i8]* @.str.26, i64 0, i64 0), i32 3)
br label %82
81: ; preds = %70
unreachable
82: ; preds = %79, %77, %75, %73
%83 = and i32 %1, 1024
%84 = icmp eq i32 %83, 0
br i1 %84, label %87, label %85
85: ; preds = %82
%86 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([46 x i8], [46 x i8]* @.str.27, i64 0, i64 0), i32 4)
br label %87
87: ; preds = %85, %82
%88 = lshr i32 %1, 12
%89 = and i32 %88, 3
switch i32 %89, label %98 [
i32 0, label %90
i32 1, label %92
i32 2, label %94
i32 3, label %96
]
90: ; preds = %87
%91 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([58 x i8], [58 x i8]* @.str.28, i64 0, i64 0), i32 0)
br label %99
92: ; preds = %87
%93 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([58 x i8], [58 x i8]* @.str.29, i64 0, i64 0), i32 1)
br label %99
94: ; preds = %87
%95 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([58 x i8], [58 x i8]* @.str.30, i64 0, i64 0), i32 2)
br label %99
96: ; preds = %87
%97 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([58 x i8], [58 x i8]* @.str.31, i64 0, i64 0), i32 3)
br label %99
98: ; preds = %87
unreachable
99: ; preds = %96, %94, %92, %90
%100 = and i32 %1, 32768
%101 = icmp eq i32 %100, 0
br i1 %101, label %104, label %102
102: ; preds = %99
%103 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([57 x i8], [57 x i8]* @.str.32, i64 0, i64 0), i32 8)
br label %104
104: ; preds = %102, %99
%105 = and i32 %1, 16384
%106 = icmp eq i32 %105, 0
br i1 %106, label %109, label %107
107: ; preds = %104
%108 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([49 x i8], [49 x i8]* @.str.33, i64 0, i64 0), i32 4)
br label %109
109: ; preds = %107, %104
%110 = and i32 %1, 8388608
%111 = icmp eq i32 %110, 0
br i1 %111, label %164, label %112
112: ; preds = %109
%113 = lshr i32 %1, 16
%114 = and i32 %113, 31
switch i32 %114, label %157 [
i32 0, label %115
i32 1, label %117
i32 2, label %119
i32 3, label %121
i32 4, label %123
i32 5, label %125
i32 6, label %127
i32 7, label %129
i32 8, label %131
i32 9, label %133
i32 10, label %135
i32 11, label %137
i32 12, label %139
i32 13, label %141
i32 14, label %143
i32 15, label %145
i32 16, label %147
i32 17, label %149
i32 18, label %151
i32 19, label %153
i32 20, label %155
]
115: ; preds = %112
%116 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([49 x i8], [49 x i8]* @.str.34, i64 0, i64 0), i32 0)
br label %157
117: ; preds = %112
%118 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([49 x i8], [49 x i8]* @.str.35, i64 0, i64 0), i32 1)
br label %157
119: ; preds = %112
%120 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([49 x i8], [49 x i8]* @.str.36, i64 0, i64 0), i32 2)
br label %157
121: ; preds = %112
%122 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([49 x i8], [49 x i8]* @.str.37, i64 0, i64 0), i32 3)
br label %157
123: ; preds = %112
%124 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([50 x i8], [50 x i8]* @.str.38, i64 0, i64 0), i32 4)
br label %157
125: ; preds = %112
%126 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([50 x i8], [50 x i8]* @.str.39, i64 0, i64 0), i32 5)
br label %157
127: ; preds = %112
%128 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([50 x i8], [50 x i8]* @.str.40, i64 0, i64 0), i32 6)
br label %157
129: ; preds = %112
%130 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([51 x i8], [51 x i8]* @.str.41, i64 0, i64 0), i32 7)
br label %157
131: ; preds = %112
%132 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([51 x i8], [51 x i8]* @.str.42, i64 0, i64 0), i32 8)
br label %157
133: ; preds = %112
%134 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([51 x i8], [51 x i8]* @.str.43, i64 0, i64 0), i32 9)
br label %157
135: ; preds = %112
%136 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([52 x i8], [52 x i8]* @.str.44, i64 0, i64 0), i32 10)
br label %157
137: ; preds = %112
%138 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([52 x i8], [52 x i8]* @.str.45, i64 0, i64 0), i32 11)
br label %157
139: ; preds = %112
%140 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([52 x i8], [52 x i8]* @.str.46, i64 0, i64 0), i32 12)
br label %157
141: ; preds = %112
%142 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([52 x i8], [52 x i8]* @.str.47, i64 0, i64 0), i32 13)
br label %157
143: ; preds = %112
%144 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([53 x i8], [53 x i8]* @.str.48, i64 0, i64 0), i32 14)
br label %157
145: ; preds = %112
%146 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([53 x i8], [53 x i8]* @.str.49, i64 0, i64 0), i32 15)
br label %157
147: ; preds = %112
%148 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([53 x i8], [53 x i8]* @.str.50, i64 0, i64 0), i32 16)
br label %157
149: ; preds = %112
%150 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([54 x i8], [54 x i8]* @.str.51, i64 0, i64 0), i32 17)
br label %157
151: ; preds = %112
%152 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([54 x i8], [54 x i8]* @.str.52, i64 0, i64 0), i32 18)
br label %157
153: ; preds = %112
%154 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([54 x i8], [54 x i8]* @.str.53, i64 0, i64 0), i32 19)
br label %157
155: ; preds = %112
%156 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([55 x i8], [55 x i8]* @.str.54, i64 0, i64 0), i32 20)
br label %157
157: ; preds = %112, %155, %153, %151, %149, %147, %145, %143, %141, %139, %137, %135, %133, %131, %129, %127, %125, %123, %121, %119, %117, %115
%158 = and i32 %1, 4194304
%159 = icmp eq i32 %158, 0
br i1 %159, label %162, label %160
160: ; preds = %157
%161 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([53 x i8], [53 x i8]* @.str.55, i64 0, i64 0), i32 4)
br label %162
162: ; preds = %160, %157
%163 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([41 x i8], [41 x i8]* @.str.56, i64 0, i64 0), i32 8)
br label %164
164: ; preds = %162, %109
%165 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([20 x i8], [20 x i8]* @.str.57, i64 0, i64 0), i32 %2)
%166 = and i32 %2, 7
switch i32 %166, label %183 [
i32 0, label %167
i32 1, label %169
i32 2, label %171
i32 3, label %173
i32 4, label %175
i32 5, label %177
i32 6, label %179
i32 7, label %181
]
167: ; preds = %164
%168 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([42 x i8], [42 x i8]* @.str.58, i64 0, i64 0), i32 0)
br label %184
169: ; preds = %164
%170 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([42 x i8], [42 x i8]* @.str.59, i64 0, i64 0), i32 1)
br label %184
171: ; preds = %164
%172 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([42 x i8], [42 x i8]* @.str.60, i64 0, i64 0), i32 2)
br label %184
173: ; preds = %164
%174 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([42 x i8], [42 x i8]* @.str.61, i64 0, i64 0), i32 3)
br label %184
175: ; preds = %164
%176 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([42 x i8], [42 x i8]* @.str.62, i64 0, i64 0), i32 4)
br label %184
177: ; preds = %164
%178 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([42 x i8], [42 x i8]* @.str.63, i64 0, i64 0), i32 5)
br label %184
179: ; preds = %164
%180 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([43 x i8], [43 x i8]* @.str.64, i64 0, i64 0), i32 6)
br label %184
181: ; preds = %164
%182 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([43 x i8], [43 x i8]* @.str.65, i64 0, i64 0), i32 7)
br label %184
183: ; preds = %164
unreachable
184: ; preds = %181, %179, %177, %175, %173, %171, %169, %167
%185 = lshr i32 %2, 4
%186 = and i32 %185, 7
switch i32 %186, label %203 [
i32 0, label %187
i32 1, label %189
i32 2, label %191
i32 3, label %193
i32 4, label %195
i32 5, label %197
i32 6, label %199
i32 7, label %201
]
187: ; preds = %184
%188 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([45 x i8], [45 x i8]* @.str.66, i64 0, i64 0), i32 0)
br label %204
189: ; preds = %184
%190 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([45 x i8], [45 x i8]* @.str.67, i64 0, i64 0), i32 1)
br label %204
191: ; preds = %184
%192 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([45 x i8], [45 x i8]* @.str.68, i64 0, i64 0), i32 2)
br label %204
193: ; preds = %184
%194 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([45 x i8], [45 x i8]* @.str.69, i64 0, i64 0), i32 3)
br label %204
195: ; preds = %184
%196 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([45 x i8], [45 x i8]* @.str.70, i64 0, i64 0), i32 4)
br label %204
197: ; preds = %184
%198 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([45 x i8], [45 x i8]* @.str.71, i64 0, i64 0), i32 5)
br label %204
199: ; preds = %184
%200 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([45 x i8], [45 x i8]* @.str.72, i64 0, i64 0), i32 6)
br label %204
201: ; preds = %184
%202 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([45 x i8], [45 x i8]* @.str.73, i64 0, i64 0), i32 7)
br label %204
203: ; preds = %184
unreachable
204: ; preds = %201, %199, %197, %195, %193, %191, %189, %187
%205 = lshr i32 %2, 8
%206 = and i32 %205, 7
switch i32 %206, label %223 [
i32 0, label %207
i32 1, label %209
i32 2, label %211
i32 3, label %213
i32 4, label %215
i32 5, label %217
i32 6, label %219
i32 7, label %221
]
207: ; preds = %204
%208 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([46 x i8], [46 x i8]* @.str.74, i64 0, i64 0), i32 0)
br label %224
209: ; preds = %204
%210 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([46 x i8], [46 x i8]* @.str.75, i64 0, i64 0), i32 1)
br label %224
211: ; preds = %204
%212 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([46 x i8], [46 x i8]* @.str.76, i64 0, i64 0), i32 2)
br label %224
213: ; preds = %204
%214 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([46 x i8], [46 x i8]* @.str.77, i64 0, i64 0), i32 3)
br label %224
215: ; preds = %204
%216 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([46 x i8], [46 x i8]* @.str.78, i64 0, i64 0), i32 4)
br label %224
217: ; preds = %204
%218 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([46 x i8], [46 x i8]* @.str.79, i64 0, i64 0), i32 5)
br label %224
219: ; preds = %204
%220 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([47 x i8], [47 x i8]* @.str.80, i64 0, i64 0), i32 6)
br label %224
221: ; preds = %204
%222 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([47 x i8], [47 x i8]* @.str.81, i64 0, i64 0), i32 7)
br label %224
223: ; preds = %204
unreachable
224: ; preds = %221, %219, %217, %215, %213, %211, %209, %207
%225 = and i32 %2, 32768
%226 = icmp eq i32 %225, 0
br i1 %226, label %229, label %227
227: ; preds = %224
%228 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([41 x i8], [41 x i8]* @.str.82, i64 0, i64 0), i32 8)
br label %231
229: ; preds = %224
%230 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([38 x i8], [38 x i8]* @str, i64 0, i64 0))
br label %231
231: ; preds = %229, %227
%232 = lshr i32 %2, 16
%233 = and i32 %232, 7
switch i32 %233, label %250 [
i32 0, label %234
i32 1, label %236
i32 2, label %238
i32 3, label %240
i32 4, label %242
i32 5, label %244
i32 6, label %246
i32 7, label %248
]
234: ; preds = %231
%235 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([45 x i8], [45 x i8]* @.str.84, i64 0, i64 0), i32 0)
br label %251
236: ; preds = %231
%237 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([45 x i8], [45 x i8]* @.str.85, i64 0, i64 0), i32 1)
br label %251
238: ; preds = %231
%239 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([45 x i8], [45 x i8]* @.str.86, i64 0, i64 0), i32 2)
br label %251
240: ; preds = %231
%241 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([45 x i8], [45 x i8]* @.str.87, i64 0, i64 0), i32 3)
br label %251
242: ; preds = %231
%243 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([46 x i8], [46 x i8]* @.str.88, i64 0, i64 0), i32 4)
br label %251
244: ; preds = %231
%245 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([46 x i8], [46 x i8]* @.str.89, i64 0, i64 0), i32 5)
br label %251
246: ; preds = %231
%247 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([46 x i8], [46 x i8]* @.str.90, i64 0, i64 0), i32 6)
br label %251
248: ; preds = %231
%249 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([47 x i8], [47 x i8]* @.str.91, i64 0, i64 0), i32 7)
br label %251
250: ; preds = %231
unreachable
251: ; preds = %248, %246, %244, %242, %240, %238, %236, %234
%252 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([20 x i8], [20 x i8]* @.str.92, i64 0, i64 0), i32 %3)
%253 = and i32 %3, 65535
%254 = icmp eq i32 %253, 65535
br i1 %254, label %257, label %255
255: ; preds = %251
%256 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([40 x i8], [40 x i8]* @.str.93, i64 0, i64 0), i32 %253)
br label %257
257: ; preds = %255, %251
%258 = and i32 %3, 268435456
%259 = icmp eq i32 %258, 0
br i1 %259, label %262, label %260
260: ; preds = %257
%261 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([69 x i8], [69 x i8]* @.str.94, i64 0, i64 0), i32 1)
br label %264
262: ; preds = %257
%263 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([53 x i8], [53 x i8]* @str.102, i64 0, i64 0))
br label %264
264: ; preds = %262, %260
%265 = and i32 %3, 536870912
%266 = icmp eq i32 %265, 0
br i1 %266, label %269, label %267
267: ; preds = %264
%268 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([65 x i8], [65 x i8]* @.str.96, i64 0, i64 0), i32 2)
br label %271
269: ; preds = %264
%270 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([53 x i8], [53 x i8]* @str.102, i64 0, i64 0))
br label %271
271: ; preds = %269, %267
%272 = and i32 %3, 1073741824
%273 = icmp eq i32 %272, 0
br i1 %273, label %276, label %274
274: ; preds = %271
%275 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([54 x i8], [54 x i8]* @.str.97, i64 0, i64 0), i32 4)
br label %278
276: ; preds = %271
%277 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([53 x i8], [53 x i8]* @str.102, i64 0, i64 0))
br label %278
278: ; preds = %276, %274
%279 = icmp sgt i32 %3, -1
br i1 %279, label %282, label %280
280: ; preds = %278
%281 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([55 x i8], [55 x i8]* @.str.98, i64 0, i64 0), i32 8)
br label %284
282: ; preds = %278
%283 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([54 x i8], [54 x i8]* @str.103, i64 0, i64 0))
br label %284
284: ; preds = %282, %280
ret void
}