void print_mx1(unsigned cfg0, unsigned cfg1, unsigned cfg2, unsigned cfg3,
               unsigned cfg4, unsigned cfg5, unsigned cfg6, unsigned cfg7,
               unsigned cfg8, unsigned cfg9, unsigned cfg10, unsigned cfg11,
               unsigned cfg12, unsigned cfg13, unsigned cfg14, unsigned cfg15,
               unsigned cfg16, unsigned cfg17) {
  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    0x68(%rbp),%eax
mov    0x60(%rbp),%eax
mov    0x58(%rbp),%eax
mov    0x50(%rbp),%eax
mov    0x48(%rbp),%eax
mov    0x40(%rbp),%eax
mov    0x38(%rbp),%eax
mov    0x30(%rbp),%eax
mov    0x28(%rbp),%eax
mov    0x20(%rbp),%eax
mov    0x18(%rbp),%eax
mov    0x10(%rbp),%eax
mov    %edi,-0x4(%rbp)
mov    %esi,-0x8(%rbp)
mov    %edx,-0xc(%rbp)
mov    %ecx,-0x10(%rbp)
mov    %r8d,-0x14(%rbp)
mov    %r9d,-0x18(%rbp)
mov    -0x4(%rbp),%esi
lea    0xf4a(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x4(%rbp),%eax
xor    $0xffffffff,%eax
and    $0x3,%eax
cmp    $0x2,%eax
jne    118c <print_mx1+0x7c>
mov    -0x4(%rbp),%esi
and    $0x3,%esi
lea    0xf38(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    11a0 <print_mx1+0x90>
mov    -0x4(%rbp),%esi
and    $0x3,%esi
lea    0xf49(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x4(%rbp),%eax
xor    $0xffffffff,%eax
and    $0x4,%eax
cmp    $0x0,%eax
je     11c6 <print_mx1+0xb6>
mov    -0x4(%rbp),%esi
and    $0x4,%esi
lea    0xf4e(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x4(%rbp),%eax
not    %eax
and    $0x18,%eax
mov    %eax,%ecx
mov    %rcx,-0x20(%rbp)
sub    $0x18,%eax
ja     1250 <print_mx1+0x140>
mov    -0x20(%rbp),%rax
lea    0xe18(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    -0x4(%rbp),%esi
and    $0x18,%esi
lea    0xf36(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1250 <print_mx1+0x140>
mov    -0x4(%rbp),%esi
and    $0x18,%esi
lea    0xf45(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1250 <print_mx1+0x140>
mov    -0x4(%rbp),%esi
and    $0x18,%esi
lea    0xf54(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1250 <print_mx1+0x140>
mov    -0x4(%rbp),%esi
and    $0x18,%esi
lea    0xf63(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x4(%rbp),%eax
xor    $0xffffffff,%eax
and    $0xfc00,%eax
cmp    $0x0,%eax
je     127b <print_mx1+0x16b>
mov    -0x4(%rbp),%esi
and    $0xfc00,%esi
lea    0xf60(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x4(%rbp),%eax
xor    $0xffffffff,%eax
and    $0x1000000,%eax
cmp    $0x0,%eax
je     129d <print_mx1+0x18d>
lea    0xf71(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x4(%rbp),%eax
xor    $0xffffffff,%eax
and    $0x10000000,%eax
cmp    $0x0,%eax
je     12bf <print_mx1+0x1af>
lea    0xf80(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x8(%rbp),%esi
lea    0xf94(%rip),%rdi
xor    %eax,%eax
call   1030 <printf@plt>
mov    -0x8(%rbp),%eax
and    $0x7,%eax
mov    %rax,-0x28(%rbp)
sub    $0x7,%eax
ja     13b4 <print_mx1+0x2a4>
mov    -0x28(%rbp),%rax
lea    0xd76(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0xf73(%rip),%rdi
xor    %esi,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    13c8 <print_mx1+0x2b8>
lea    0xf8a(%rip),%rdi
mov    $0x1,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    13c8 <print_mx1+0x2b8>
lea    0xfb7(%rip),%rdi
mov    $0x2,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    13c8 <print_mx1+0x2b8>
lea    0xfcb(%rip),%rdi
mov    $0x3,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    13c8 <print_mx1+0x2b8>
lea    0xfe8(%rip),%rdi
mov    $0x4,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    13c8 <print_mx1+0x2b8>
lea    0xffe(%rip),%rdi
mov    $0x5,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    13c8 <print_mx1+0x2b8>
lea    0x1017(%rip),%rdi
mov    $0x6,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    13c8 <print_mx1+0x2b8>
lea    0x103d(%rip),%rdi
mov    $0x7,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    13c8 <print_mx1+0x2b8>
mov    -0x8(%rbp),%esi
and    $0x7,%esi
lea    0x105c(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x8(%rbp),%eax
and    $0x20,%eax
cmp    $0x0,%eax
je     13ea <print_mx1+0x2da>
lea    0x1060(%rip),%rdi
mov    $0x2,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x8(%rbp),%eax
and    $0x80,%eax
cmp    $0x0,%eax
je     140e <print_mx1+0x2fe>
lea    0x1072(%rip),%rdi
mov    $0x8,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x8(%rbp),%eax
and    $0x300,%eax
mov    %eax,-0x2c(%rbp)
je     145d <print_mx1+0x34d>
jmp    1424 <print_mx1+0x314>
mov    -0x2c(%rbp),%eax
sub    $0x100,%eax
je     1472 <print_mx1+0x362>
jmp    1437 <print_mx1+0x327>
mov    -0x2c(%rbp),%eax
sub    $0x200,%eax
je     148a <print_mx1+0x37a>
jmp    144a <print_mx1+0x33a>
mov    -0x2c(%rbp),%eax
sub    $0x300,%eax
je     14a2 <print_mx1+0x392>
jmp    14b5 <print_mx1+0x3a5>
lea    0x104f(%rip),%rdi
xor    %esi,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    14b5 <print_mx1+0x3a5>
lea    0x1070(%rip),%rdi
mov    $0x1,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    14b5 <print_mx1+0x3a5>
lea    0x1088(%rip),%rdi
mov    $0x2,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    14b5 <print_mx1+0x3a5>
lea    0x10a0(%rip),%rdi
mov    $0x3,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x8(%rbp),%eax
and    $0x400,%eax
cmp    $0x0,%eax
je     14d9 <print_mx1+0x3c9>
lea    0x10b2(%rip),%rdi
mov    $0x4,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x8(%rbp),%eax
and    $0x3000,%eax
mov    %eax,-0x30(%rbp)
je     1528 <print_mx1+0x418>
jmp    14ef <print_mx1+0x3df>
mov    -0x30(%rbp),%eax
sub    $0x1000,%eax
je     153d <print_mx1+0x42d>
jmp    1502 <print_mx1+0x3f2>
mov    -0x30(%rbp),%eax
sub    $0x2000,%eax
je     1555 <print_mx1+0x445>
jmp    1515 <print_mx1+0x405>
mov    -0x30(%rbp),%eax
sub    $0x3000,%eax
je     156d <print_mx1+0x45d>
jmp    1580 <print_mx1+0x470>
lea    0x107e(%rip),%rdi
xor    %esi,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1580 <print_mx1+0x470>
lea    0x10a3(%rip),%rdi
mov    $0x1,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1580 <print_mx1+0x470>
lea    0x10c5(%rip),%rdi
mov    $0x2,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1580 <print_mx1+0x470>
lea    0x10e7(%rip),%rdi
mov    $0x3,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x8(%rbp),%eax
and    $0x8000,%eax
cmp    $0x0,%eax
je     15a4 <print_mx1+0x494>
lea    0x10fd(%rip),%rdi
mov    $0x8,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x8(%rbp),%eax
and    $0x4000,%eax
cmp    $0x0,%eax
je     15c8 <print_mx1+0x4b8>
lea    0x1112(%rip),%rdi
mov    $0x4,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x8(%rbp),%eax
and    $0x800000,%eax
cmp    $0x0,%eax
je     1992 <print_mx1+0x882>
mov    -0x8(%rbp),%eax
and    $0x1f0000,%eax
mov    %eax,-0x34(%rbp)
je     176b <print_mx1+0x65b>
jmp    15ef <print_mx1+0x4df>
mov    -0x34(%rbp),%eax
sub    $0x10000,%eax
je     1780 <print_mx1+0x670>
jmp    1602 <print_mx1+0x4f2>
mov    -0x34(%rbp),%eax
sub    $0x20000,%eax
je     1798 <print_mx1+0x688>
jmp    1615 <print_mx1+0x505>
mov    -0x34(%rbp),%eax
sub    $0x30000,%eax
je     17b0 <print_mx1+0x6a0>
jmp    1628 <print_mx1+0x518>
mov    -0x34(%rbp),%eax
sub    $0x40000,%eax
je     17c8 <print_mx1+0x6b8>
jmp    163b <print_mx1+0x52b>
mov    -0x34(%rbp),%eax
sub    $0x50000,%eax
je     17e0 <print_mx1+0x6d0>
jmp    164e <print_mx1+0x53e>
mov    -0x34(%rbp),%eax
sub    $0x60000,%eax
je     17f8 <print_mx1+0x6e8>
jmp    1661 <print_mx1+0x551>
mov    -0x34(%rbp),%eax
sub    $0x70000,%eax
je     1810 <print_mx1+0x700>
jmp    1674 <print_mx1+0x564>
mov    -0x34(%rbp),%eax
sub    $0x80000,%eax
je     1828 <print_mx1+0x718>
jmp    1687 <print_mx1+0x577>
mov    -0x34(%rbp),%eax
sub    $0x90000,%eax
je     1840 <print_mx1+0x730>
jmp    169a <print_mx1+0x58a>
mov    -0x34(%rbp),%eax
sub    $0xa0000,%eax
je     1858 <print_mx1+0x748>
jmp    16ad <print_mx1+0x59d>
mov    -0x34(%rbp),%eax
sub    $0xb0000,%eax
je     1870 <print_mx1+0x760>
jmp    16c0 <print_mx1+0x5b0>
mov    -0x34(%rbp),%eax
sub    $0xc0000,%eax
je     1888 <print_mx1+0x778>
jmp    16d3 <print_mx1+0x5c3>
mov    -0x34(%rbp),%eax
sub    $0xd0000,%eax
je     18a0 <print_mx1+0x790>
jmp    16e6 <print_mx1+0x5d6>
mov    -0x34(%rbp),%eax
sub    $0xe0000,%eax
je     18b8 <print_mx1+0x7a8>
jmp    16f9 <print_mx1+0x5e9>
mov    -0x34(%rbp),%eax
sub    $0xf0000,%eax
je     18d0 <print_mx1+0x7c0>
jmp    170c <print_mx1+0x5fc>
mov    -0x34(%rbp),%eax
sub    $0x100000,%eax
je     18e8 <print_mx1+0x7d8>
jmp    171f <print_mx1+0x60f>
mov    -0x34(%rbp),%eax
sub    $0x110000,%eax
je     1900 <print_mx1+0x7f0>
jmp    1732 <print_mx1+0x622>
mov    -0x34(%rbp),%eax
sub    $0x120000,%eax
je     1918 <print_mx1+0x808>
jmp    1745 <print_mx1+0x635>
mov    -0x34(%rbp),%eax
sub    $0x130000,%eax
je     1930 <print_mx1+0x820>
jmp    1758 <print_mx1+0x648>
mov    -0x34(%rbp),%eax
sub    $0x140000,%eax
je     1948 <print_mx1+0x838>
jmp    195b <print_mx1+0x84b>
lea    0xf8d(%rip),%rdi
xor    %esi,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    195b <print_mx1+0x84b>
lea    0xfa9(%rip),%rdi
mov    $0x1,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    195b <print_mx1+0x84b>
lea    0xfc2(%rip),%rdi
mov    $0x2,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    195b <print_mx1+0x84b>
lea    0xfdb(%rip),%rdi
mov    $0x3,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    195b <print_mx1+0x84b>
lea    0xff4(%rip),%rdi
mov    $0x4,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    195b <print_mx1+0x84b>
lea    0x100e(%rip),%rdi
mov    $0x5,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    195b <print_mx1+0x84b>
lea    0x1028(%rip),%rdi
mov    $0x6,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    195b <print_mx1+0x84b>
lea    0x1042(%rip),%rdi
mov    $0x7,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    195b <print_mx1+0x84b>
lea    0x105d(%rip),%rdi
mov    $0x8,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    195b <print_mx1+0x84b>
lea    0x1078(%rip),%rdi
mov    $0x9,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    195b <print_mx1+0x84b>
lea    0x1093(%rip),%rdi
mov    $0xa,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    195b <print_mx1+0x84b>
lea    0x10af(%rip),%rdi
mov    $0xb,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    195b <print_mx1+0x84b>
lea    0x10cb(%rip),%rdi
mov    $0xc,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    195b <print_mx1+0x84b>
lea    0x10e7(%rip),%rdi
mov    $0xd,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    195b <print_mx1+0x84b>
lea    0x1103(%rip),%rdi
mov    $0xe,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    195b <print_mx1+0x84b>
lea    0x1120(%rip),%rdi
mov    $0xf,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    195b <print_mx1+0x84b>
lea    0x113d(%rip),%rdi
mov    $0x10,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    195b <print_mx1+0x84b>
lea    0x115a(%rip),%rdi
mov    $0x11,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    195b <print_mx1+0x84b>
lea    0x1178(%rip),%rdi
mov    $0x12,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    195b <print_mx1+0x84b>
lea    0x1196(%rip),%rdi
mov    $0x13,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    195b <print_mx1+0x84b>
lea    0x11b4(%rip),%rdi
mov    $0x14,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x8(%rbp),%eax
and    $0x400000,%eax
cmp    $0x0,%eax
je     197f <print_mx1+0x86f>
lea    0x11c7(%rip),%rdi
mov    $0x4,%esi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x11e9(%rip),%rdi
mov    $0x8,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0xc(%rbp),%esi
lea    0x11fc(%rip),%rdi
xor    %eax,%eax
call   1030 <printf@plt>
mov    -0xc(%rbp),%eax
and    $0x7,%eax
mov    %rax,-0x40(%rbp)
sub    $0x7,%eax
ja     1a82 <print_mx1+0x972>
mov    -0x40(%rbp),%rax
lea    0x6c3(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x11db(%rip),%rdi
xor    %esi,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1a82 <print_mx1+0x972>
lea    0x11f0(%rip),%rdi
mov    $0x1,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1a82 <print_mx1+0x972>
lea    0x1202(%rip),%rdi
mov    $0x2,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1a82 <print_mx1+0x972>
lea    0x1214(%rip),%rdi
mov    $0x3,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1a82 <print_mx1+0x972>
lea    0x1226(%rip),%rdi
mov    $0x4,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1a82 <print_mx1+0x972>
lea    0x1238(%rip),%rdi
mov    $0x5,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1a82 <print_mx1+0x972>
lea    0x124a(%rip),%rdi
mov    $0x6,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1a82 <print_mx1+0x972>
lea    0x125d(%rip),%rdi
mov    $0x7,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0xc(%rbp),%eax
and    $0x70,%eax
mov    %eax,-0x44(%rbp)
je     1b0d <print_mx1+0x9fd>
jmp    1a96 <print_mx1+0x986>
mov    -0x44(%rbp),%eax
sub    $0x10,%eax
je     1b22 <print_mx1+0xa12>
jmp    1aa7 <print_mx1+0x997>
mov    -0x44(%rbp),%eax
sub    $0x20,%eax
je     1b3a <print_mx1+0xa2a>
jmp    1ab8 <print_mx1+0x9a8>
mov    -0x44(%rbp),%eax
sub    $0x30,%eax
je     1b52 <print_mx1+0xa42>
jmp    1ac9 <print_mx1+0x9b9>
mov    -0x44(%rbp),%eax
sub    $0x40,%eax
je     1b6a <print_mx1+0xa5a>
jmp    1ada <print_mx1+0x9ca>
mov    -0x44(%rbp),%eax
sub    $0x50,%eax
je     1b82 <print_mx1+0xa72>
jmp    1aeb <print_mx1+0x9db>
mov    -0x44(%rbp),%eax
sub    $0x60,%eax
je     1b9a <print_mx1+0xa8a>
jmp    1afc <print_mx1+0x9ec>
mov    -0x44(%rbp),%eax
sub    $0x70,%eax
je     1bb2 <print_mx1+0xaa2>
jmp    1bc5 <print_mx1+0xab5>
lea    0x11ea(%rip),%rdi
xor    %esi,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1bc5 <print_mx1+0xab5>
lea    0x1202(%rip),%rdi
mov    $0x1,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1bc5 <print_mx1+0xab5>
lea    0x1217(%rip),%rdi
mov    $0x2,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1bc5 <print_mx1+0xab5>
lea    0x122c(%rip),%rdi
mov    $0x3,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1bc5 <print_mx1+0xab5>
lea    0x1241(%rip),%rdi
mov    $0x4,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1bc5 <print_mx1+0xab5>
lea    0x1256(%rip),%rdi
mov    $0x5,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1bc5 <print_mx1+0xab5>
lea    0x126b(%rip),%rdi
mov    $0x6,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1bc5 <print_mx1+0xab5>
lea    0x1280(%rip),%rdi
mov    $0x7,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0xc(%rbp),%eax
and    $0x700,%eax
mov    %eax,-0x48(%rbp)
je     1c60 <print_mx1+0xb50>
jmp    1bdb <print_mx1+0xacb>
mov    -0x48(%rbp),%eax
sub    $0x100,%eax
je     1c75 <print_mx1+0xb65>
jmp    1bee <print_mx1+0xade>
mov    -0x48(%rbp),%eax
sub    $0x200,%eax
je     1c8d <print_mx1+0xb7d>
jmp    1c01 <print_mx1+0xaf1>
mov    -0x48(%rbp),%eax
sub    $0x300,%eax
je     1ca5 <print_mx1+0xb95>
jmp    1c14 <print_mx1+0xb04>
mov    -0x48(%rbp),%eax
sub    $0x400,%eax
je     1cbd <print_mx1+0xbad>
jmp    1c27 <print_mx1+0xb17>
mov    -0x48(%rbp),%eax
sub    $0x500,%eax
je     1cd5 <print_mx1+0xbc5>
jmp    1c3a <print_mx1+0xb2a>
mov    -0x48(%rbp),%eax
sub    $0x600,%eax
je     1ced <print_mx1+0xbdd>
jmp    1c4d <print_mx1+0xb3d>
mov    -0x48(%rbp),%eax
sub    $0x700,%eax
je     1d05 <print_mx1+0xbf5>
jmp    1d18 <print_mx1+0xc08>
lea    0x11ff(%rip),%rdi
xor    %esi,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1d18 <print_mx1+0xc08>
lea    0x1218(%rip),%rdi
mov    $0x1,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1d18 <print_mx1+0xc08>
lea    0x122e(%rip),%rdi
mov    $0x2,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1d18 <print_mx1+0xc08>
lea    0x1244(%rip),%rdi
mov    $0x3,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1d18 <print_mx1+0xc08>
lea    0x125a(%rip),%rdi
mov    $0x4,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1d18 <print_mx1+0xc08>
lea    0x1270(%rip),%rdi
mov    $0x5,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1d18 <print_mx1+0xc08>
lea    0x1286(%rip),%rdi
mov    $0x6,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1d18 <print_mx1+0xc08>
lea    0x129d(%rip),%rdi
mov    $0x7,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0xc(%rbp),%eax
and    $0x8000,%eax
cmp    $0x0,%eax
je     1d41 <print_mx1+0xc31>
lea    0x12a8(%rip),%rdi
mov    $0x8,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1d4f <print_mx1+0xc3f>
lea    0x12b9(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0xc(%rbp),%eax
and    $0x70000,%eax
mov    %eax,-0x4c(%rbp)
je     1dea <print_mx1+0xcda>
jmp    1d65 <print_mx1+0xc55>
mov    -0x4c(%rbp),%eax
sub    $0x10000,%eax
je     1dff <print_mx1+0xcef>
jmp    1d78 <print_mx1+0xc68>
mov    -0x4c(%rbp),%eax
sub    $0x20000,%eax
je     1e17 <print_mx1+0xd07>
jmp    1d8b <print_mx1+0xc7b>
mov    -0x4c(%rbp),%eax
sub    $0x30000,%eax
je     1e2f <print_mx1+0xd1f>
jmp    1d9e <print_mx1+0xc8e>
mov    -0x4c(%rbp),%eax
sub    $0x40000,%eax
je     1e47 <print_mx1+0xd37>
jmp    1db1 <print_mx1+0xca1>
mov    -0x4c(%rbp),%eax
sub    $0x50000,%eax
je     1e5f <print_mx1+0xd4f>
jmp    1dc4 <print_mx1+0xcb4>
mov    -0x4c(%rbp),%eax
sub    $0x60000,%eax
je     1e77 <print_mx1+0xd67>
jmp    1dd7 <print_mx1+0xcc7>
mov    -0x4c(%rbp),%eax
sub    $0x70000,%eax
je     1e8f <print_mx1+0xd7f>
jmp    1ea2 <print_mx1+0xd92>
lea    0x1237(%rip),%rdi
xor    %esi,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1ea2 <print_mx1+0xd92>
lea    0x124f(%rip),%rdi
mov    $0x1,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1ea2 <print_mx1+0xd92>
lea    0x1264(%rip),%rdi
mov    $0x2,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1ea2 <print_mx1+0xd92>
lea    0x1279(%rip),%rdi
mov    $0x3,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1ea2 <print_mx1+0xd92>
lea    0x128e(%rip),%rdi
mov    $0x4,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1ea2 <print_mx1+0xd92>
lea    0x12a4(%rip),%rdi
mov    $0x5,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1ea2 <print_mx1+0xd92>
lea    0x12ba(%rip),%rdi
mov    $0x6,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1ea2 <print_mx1+0xd92>
lea    0x12d0(%rip),%rdi
mov    $0x7,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x10(%rbp),%esi
lea    0x12e9(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x10(%rbp),%eax
xor    $0xffffffff,%eax
and    $0xffff,%eax
cmp    $0x0,%eax
je     1ede <print_mx1+0xdce>
mov    -0x10(%rbp),%esi
and    $0xffff,%esi
lea    0x12d2(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x10(%rbp),%eax
and    $0x10000000,%eax
cmp    $0x0,%eax
je     1f07 <print_mx1+0xdf7>
lea    0x12db(%rip),%rdi
mov    $0x1,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1f15 <print_mx1+0xe05>
lea    0x1308(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x10(%rbp),%eax
and    $0x20000000,%eax
cmp    $0x0,%eax
je     1f3e <print_mx1+0xe2e>
lea    0x131f(%rip),%rdi
mov    $0x2,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1f4c <print_mx1+0xe3c>
lea    0x12d1(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x10(%rbp),%eax
and    $0x40000000,%eax
cmp    $0x0,%eax
je     1f75 <print_mx1+0xe65>
lea    0x1329(%rip),%rdi
mov    $0x4,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1f83 <print_mx1+0xe73>
lea    0x129a(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x10(%rbp),%eax
and    $0x80000000,%eax
cmp    $0x0,%eax
je     1fac <print_mx1+0xe9c>
lea    0x1328(%rip),%rdi
mov    $0x8,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1fba <print_mx1+0xeaa>
lea    0x1347(%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, i32 %4, i32 %5, i32 %6, i32 %7, i32 %8, i32 %9, i32 %10, i32 %11, i32 %12, i32 %13, i32 %14, i32 %15, i32 %16, i32 %17) {
%19 = alloca i32
%20 = alloca i32
%21 = alloca i32
%22 = alloca i32
%23 = alloca i32
%24 = alloca i32
%25 = alloca i32
%26 = alloca i32
%27 = alloca i32
%28 = alloca i32
%29 = alloca i32
%30 = alloca i32
%31 = alloca i32
%32 = alloca i32
%33 = alloca i32
%34 = alloca i32
%35 = alloca i32
%36 = alloca i32
store i32 %0, i32* %19
store i32 %1, i32* %20
store i32 %2, i32* %21
store i32 %3, i32* %22
store i32 %4, i32* %23
store i32 %5, i32* %24
store i32 %6, i32* %25
store i32 %7, i32* %26
store i32 %8, i32* %27
store i32 %9, i32* %28
store i32 %10, i32* %29
store i32 %11, i32* %30
store i32 %12, i32* %31
store i32 %13, i32* %32
store i32 %14, i32* %33
store i32 %15, i32* %34
store i32 %16, i32* %35
store i32 %17, i32* %36
%37 = load i32, i32* %19
%38 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str, i64 0, i64 0), i32 %37)
%39 = load i32, i32* %19
%40 = xor i32 %39, -1
%41 = and i32 %40, 3
%42 = icmp eq i32 %41, 2
br i1 %42, label %43, label %47
43: ; preds = %18
%44 = load i32, i32* %19
%45 = and i32 %44, 3
%46 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.1, i64 0, i64 0), i32 %45)
br label %51
47: ; preds = %18
%48 = load i32, i32* %19
%49 = and i32 %48, 3
%50 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([43 x i8], [43 x i8]* @.str.2, i64 0, i64 0), i32 %49)
br label %51
51: ; preds = %47, %43
%52 = load i32, i32* %19
%53 = xor i32 %52, -1
%54 = and i32 %53, 4
%55 = icmp ne i32 %54, 0
br i1 %55, label %56, label %60
56: ; preds = %51
%57 = load i32, i32* %19
%58 = and i32 %57, 4
%59 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([39 x i8], [39 x i8]* @.str.3, i64 0, i64 0), i32 %58)
br label %60
60: ; preds = %56, %51
%61 = load i32, i32* %19
%62 = xor i32 %61, -1
%63 = and i32 %62, 24
switch i32 %63, label %80 [
i32 0, label %64
i32 8, label %68
i32 16, label %72
i32 24, label %76
]
64: ; preds = %60
%65 = load i32, i32* %19
%66 = and i32 %65, 24
%67 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.4, i64 0, i64 0), i32 %66)
br label %80
68: ; preds = %60
%69 = load i32, i32* %19
%70 = and i32 %69, 24
%71 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.5, i64 0, i64 0), i32 %70)
br label %80
72: ; preds = %60
%73 = load i32, i32* %19
%74 = and i32 %73, 24
%75 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.6, i64 0, i64 0), i32 %74)
br label %80
76: ; preds = %60
%77 = load i32, i32* %19
%78 = and i32 %77, 24
%79 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.7, i64 0, i64 0), i32 %78)
br label %80
80: ; preds = %60, %76, %72, %68, %64
%81 = load i32, i32* %19
%82 = xor i32 %81, -1
%83 = and i32 %82, 64512
%84 = icmp ne i32 %83, 0
br i1 %84, label %85, label %89
85: ; preds = %80
%86 = load i32, i32* %19
%87 = and i32 %86, 64512
%88 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.8, i64 0, i64 0), i32 %87)
br label %89
89: ; preds = %85, %80
%90 = load i32, i32* %19
%91 = xor i32 %90, -1
%92 = and i32 %91, 16777216
%93 = icmp ne i32 %92, 0
br i1 %93, label %94, label %96
94: ; preds = %89
%95 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.9, i64 0, i64 0))
br label %96
96: ; preds = %94, %89
%97 = load i32, i32* %19
%98 = xor i32 %97, -1
%99 = and i32 %98, 268435456
%100 = icmp ne i32 %99, 0
br i1 %100, label %101, label %103
101: ; preds = %96
%102 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.10, i64 0, i64 0))
br label %103
103: ; preds = %101, %96
%104 = load i32, i32* %20
%105 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.11, i64 0, i64 0), i32 %104)
%106 = load i32, i32* %20
%107 = and i32 %106, 7
switch i32 %107, label %124 [
i32 0, label %108
i32 1, label %110
i32 2, label %112
i32 3, label %114
i32 4, label %116
i32 5, label %118
i32 6, label %120
i32 7, label %122
]
108: ; preds = %103
%109 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([44 x i8], [44 x i8]* @.str.12, i64 0, i64 0), i32 0)
br label %128
110: ; preds = %103
%111 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.13, i64 0, i64 0), i32 1)
br label %128
112: ; preds = %103
%113 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([44 x i8], [44 x i8]* @.str.14, i64 0, i64 0), i32 2)
br label %128
114: ; preds = %103
%115 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([53 x i8], [53 x i8]* @.str.15, i64 0, i64 0), i32 3)
br label %128
116: ; preds = %103
%117 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.16, i64 0, i64 0), i32 4)
br label %128
118: ; preds = %103
%119 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.17, i64 0, i64 0), i32 5)
br label %128
120: ; preds = %103
%121 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([62 x i8], [62 x i8]* @.str.18, i64 0, i64 0), i32 6)
br label %128
122: ; preds = %103
%123 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([61 x i8], [61 x i8]* @.str.19, i64 0, i64 0), i32 7)
br label %128
124: ; preds = %103
%125 = load i32, i32* %20
%126 = and i32 %125, 7
%127 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.20, i64 0, i64 0), i32 %126)
br label %128
128: ; preds = %124, %122, %120, %118, %116, %114, %112, %110, %108
%129 = load i32, i32* %20
%130 = and i32 %129, 32
%131 = icmp ne i32 %130, 0
br i1 %131, label %132, label %134
132: ; preds = %128
%133 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.21, i64 0, i64 0), i32 2)
br label %134
134: ; preds = %132, %128
%135 = load i32, i32* %20
%136 = and i32 %135, 128
%137 = icmp ne i32 %136, 0
br i1 %137, label %138, label %140
138: ; preds = %134
%139 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.22, i64 0, i64 0), i32 8)
br label %140
140: ; preds = %138, %134
%141 = load i32, i32* %20
%142 = and i32 %141, 768
switch i32 %142, label %151 [
i32 0, label %143
i32 256, label %145
i32 512, label %147
i32 768, label %149
]
143: ; preds = %140
%144 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.23, i64 0, i64 0), i32 0)
br label %151
145: ; preds = %140
%146 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.24, i64 0, i64 0), i32 1)
br label %151
147: ; preds = %140
%148 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.25, i64 0, i64 0), i32 2)
br label %151
149: ; preds = %140
%150 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.26, i64 0, i64 0), i32 3)
br label %151
151: ; preds = %140, %149, %147, %145, %143
%152 = load i32, i32* %20
%153 = and i32 %152, 1024
%154 = icmp ne i32 %153, 0
br i1 %154, label %155, label %157
155: ; preds = %151
%156 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.27, i64 0, i64 0), i32 4)
br label %157
157: ; preds = %155, %151
%158 = load i32, i32* %20
%159 = and i32 %158, 12288
switch i32 %159, label %168 [
i32 0, label %160
i32 4096, label %162
i32 8192, label %164
i32 12288, label %166
]
160: ; preds = %157
%161 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.28, i64 0, i64 0), i32 0)
br label %168
162: ; preds = %157
%163 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.29, i64 0, i64 0), i32 1)
br label %168
164: ; preds = %157
%165 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.30, i64 0, i64 0), i32 2)
br label %168
166: ; preds = %157
%167 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.31, i64 0, i64 0), i32 3)
br label %168
168: ; preds = %157, %166, %164, %162, %160
%169 = load i32, i32* %20
%170 = and i32 %169, 32768
%171 = icmp ne i32 %170, 0
br i1 %171, label %172, label %174
172: ; preds = %168
%173 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([57 x i8], [57 x i8]* @.str.32, i64 0, i64 0), i32 8)
br label %174
174: ; preds = %172, %168
%175 = load i32, i32* %20
%176 = and i32 %175, 16384
%177 = icmp ne i32 %176, 0
br i1 %177, label %178, label %180
178: ; preds = %174
%179 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.33, i64 0, i64 0), i32 4)
br label %180
180: ; preds = %178, %174
%181 = load i32, i32* %20
%182 = and i32 %181, 8388608
%183 = icmp ne i32 %182, 0
br i1 %183, label %184, label %237
184: ; preds = %180
%185 = load i32, i32* %20
%186 = and i32 %185, 2031616
switch i32 %186, label %229 [
i32 0, label %187
i32 65536, label %189
i32 131072, label %191
i32 196608, label %193
i32 262144, label %195
i32 327680, label %197
i32 393216, label %199
i32 458752, label %201
i32 524288, label %203
i32 589824, label %205
i32 655360, label %207
i32 720896, label %209
i32 786432, label %211
i32 851968, label %213
i32 917504, label %215
i32 983040, label %217
i32 1048576, label %219
i32 1114112, label %221
i32 1179648, label %223
i32 1245184, label %225
i32 1310720, label %227
]
187: ; preds = %184
%188 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.34, i64 0, i64 0), i32 0)
br label %229
189: ; preds = %184
%190 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.35, i64 0, i64 0), i32 1)
br label %229
191: ; preds = %184
%192 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.36, i64 0, i64 0), i32 2)
br label %229
193: ; preds = %184
%194 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.37, i64 0, i64 0), i32 3)
br label %229
195: ; preds = %184
%196 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.38, i64 0, i64 0), i32 4)
br label %229
197: ; preds = %184
%198 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.39, i64 0, i64 0), i32 5)
br label %229
199: ; preds = %184
%200 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.40, i64 0, i64 0), i32 6)
br label %229
201: ; preds = %184
%202 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.41, i64 0, i64 0), i32 7)
br label %229
203: ; preds = %184
%204 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.42, i64 0, i64 0), i32 8)
br label %229
205: ; preds = %184
%206 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.43, i64 0, i64 0), i32 9)
br label %229
207: ; preds = %184
%208 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([52 x i8], [52 x i8]* @.str.44, i64 0, i64 0), i32 10)
br label %229
209: ; preds = %184
%210 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([52 x i8], [52 x i8]* @.str.45, i64 0, i64 0), i32 11)
br label %229
211: ; preds = %184
%212 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([52 x i8], [52 x i8]* @.str.46, i64 0, i64 0), i32 12)
br label %229
213: ; preds = %184
%214 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([52 x i8], [52 x i8]* @.str.47, i64 0, i64 0), i32 13)
br label %229
215: ; preds = %184
%216 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([53 x i8], [53 x i8]* @.str.48, i64 0, i64 0), i32 14)
br label %229
217: ; preds = %184
%218 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([53 x i8], [53 x i8]* @.str.49, i64 0, i64 0), i32 15)
br label %229
219: ; preds = %184
%220 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([53 x i8], [53 x i8]* @.str.50, i64 0, i64 0), i32 16)
br label %229
221: ; preds = %184
%222 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.51, i64 0, i64 0), i32 17)
br label %229
223: ; preds = %184
%224 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.52, i64 0, i64 0), i32 18)
br label %229
225: ; preds = %184
%226 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.53, i64 0, i64 0), i32 19)
br label %229
227: ; preds = %184
%228 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.54, i64 0, i64 0), i32 20)
br label %229
229: ; preds = %184, %227, %225, %223, %221, %219, %217, %215, %213, %211, %209, %207, %205, %203, %201, %199, %197, %195, %193, %191, %189, %187
%230 = load i32, i32* %20
%231 = and i32 %230, 4194304
%232 = icmp ne i32 %231, 0
br i1 %232, label %233, label %235
233: ; preds = %229
%234 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([53 x i8], [53 x i8]* @.str.55, i64 0, i64 0), i32 4)
br label %235
235: ; preds = %233, %229
%236 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str.56, i64 0, i64 0), i32 8)
br label %237
237: ; preds = %235, %180
%238 = load i32, i32* %21
%239 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.57, i64 0, i64 0), i32 %238)
%240 = load i32, i32* %21
%241 = and i32 %240, 7
switch i32 %241, label %258 [
i32 0, label %242
i32 1, label %244
i32 2, label %246
i32 3, label %248
i32 4, label %250
i32 5, label %252
i32 6, label %254
i32 7, label %256
]
242: ; preds = %237
%243 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.58, i64 0, i64 0), i32 0)
br label %258
244: ; preds = %237
%245 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.59, i64 0, i64 0), i32 1)
br label %258
246: ; preds = %237
%247 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.60, i64 0, i64 0), i32 2)
br label %258
248: ; preds = %237
%249 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.61, i64 0, i64 0), i32 3)
br label %258
250: ; preds = %237
%251 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.62, i64 0, i64 0), i32 4)
br label %258
252: ; preds = %237
%253 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.63, i64 0, i64 0), i32 5)
br label %258
254: ; preds = %237
%255 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([43 x i8], [43 x i8]* @.str.64, i64 0, i64 0), i32 6)
br label %258
256: ; preds = %237
%257 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([43 x i8], [43 x i8]* @.str.65, i64 0, i64 0), i32 7)
br label %258
258: ; preds = %237, %256, %254, %252, %250, %248, %246, %244, %242
%259 = load i32, i32* %21
%260 = and i32 %259, 112
switch i32 %260, label %277 [
i32 0, label %261
i32 16, label %263
i32 32, label %265
i32 48, label %267
i32 64, label %269
i32 80, label %271
i32 96, label %273
i32 112, label %275
]
261: ; preds = %258
%262 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.66, i64 0, i64 0), i32 0)
br label %277
263: ; preds = %258
%264 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.67, i64 0, i64 0), i32 1)
br label %277
265: ; preds = %258
%266 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.68, i64 0, i64 0), i32 2)
br label %277
267: ; preds = %258
%268 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.69, i64 0, i64 0), i32 3)
br label %277
269: ; preds = %258
%270 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.70, i64 0, i64 0), i32 4)
br label %277
271: ; preds = %258
%272 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.71, i64 0, i64 0), i32 5)
br label %277
273: ; preds = %258
%274 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.72, i64 0, i64 0), i32 6)
br label %277
275: ; preds = %258
%276 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.73, i64 0, i64 0), i32 7)
br label %277
277: ; preds = %258, %275, %273, %271, %269, %267, %265, %263, %261
%278 = load i32, i32* %21
%279 = and i32 %278, 1792
switch i32 %279, label %296 [
i32 0, label %280
i32 256, label %282
i32 512, label %284
i32 768, label %286
i32 1024, label %288
i32 1280, label %290
i32 1536, label %292
i32 1792, label %294
]
280: ; preds = %277
%281 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.74, i64 0, i64 0), i32 0)
br label %296
282: ; preds = %277
%283 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.75, i64 0, i64 0), i32 1)
br label %296
284: ; preds = %277
%285 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.76, i64 0, i64 0), i32 2)
br label %296
286: ; preds = %277
%287 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.77, i64 0, i64 0), i32 3)
br label %296
288: ; preds = %277
%289 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.78, i64 0, i64 0), i32 4)
br label %296
290: ; preds = %277
%291 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.79, i64 0, i64 0), i32 5)
br label %296
292: ; preds = %277
%293 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.80, i64 0, i64 0), i32 6)
br label %296
294: ; preds = %277
%295 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.81, i64 0, i64 0), i32 7)
br label %296
296: ; preds = %277, %294, %292, %290, %288, %286, %284, %282, %280
%297 = load i32, i32* %21
%298 = and i32 %297, 32768
%299 = icmp ne i32 %298, 0
br i1 %299, label %300, label %302
300: ; preds = %296
%301 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str.82, i64 0, i64 0), i32 8)
br label %304
302: ; preds = %296
%303 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([39 x i8], [39 x i8]* @.str.83, i64 0, i64 0))
br label %304
304: ; preds = %302, %300
%305 = load i32, i32* %21
%306 = and i32 %305, 458752
switch i32 %306, label %323 [
i32 0, label %307
i32 65536, label %309
i32 131072, label %311
i32 196608, label %313
i32 262144, label %315
i32 327680, label %317
i32 393216, label %319
i32 458752, label %321
]
307: ; preds = %304
%308 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.84, i64 0, i64 0), i32 0)
br label %323
309: ; preds = %304
%310 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.85, i64 0, i64 0), i32 1)
br label %323
311: ; preds = %304
%312 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.86, i64 0, i64 0), i32 2)
br label %323
313: ; preds = %304
%314 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.87, i64 0, i64 0), i32 3)
br label %323
315: ; preds = %304
%316 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.88, i64 0, i64 0), i32 4)
br label %323
317: ; preds = %304
%318 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.89, i64 0, i64 0), i32 5)
br label %323
319: ; preds = %304
%320 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.90, i64 0, i64 0), i32 6)
br label %323
321: ; preds = %304
%322 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.91, i64 0, i64 0), i32 7)
br label %323
323: ; preds = %304, %321, %319, %317, %315, %313, %311, %309, %307
%324 = load i32, i32* %22
%325 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.92, i64 0, i64 0), i32 %324)
%326 = load i32, i32* %22
%327 = xor i32 %326, -1
%328 = and i32 %327, 65535
%329 = icmp ne i32 %328, 0
br i1 %329, label %330, label %334
330: ; preds = %323
%331 = load i32, i32* %22
%332 = and i32 %331, 65535
%333 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.93, i64 0, i64 0), i32 %332)
br label %334
334: ; preds = %330, %323
%335 = load i32, i32* %22
%336 = and i32 %335, 268435456
%337 = icmp ne i32 %336, 0
br i1 %337, label %338, label %340
338: ; preds = %334
%339 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.94, i64 0, i64 0), i32 1)
br label %342
340: ; preds = %334
%341 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.95, i64 0, i64 0))
br label %342
342: ; preds = %340, %338
%343 = load i32, i32* %22
%344 = and i32 %343, 536870912
%345 = icmp ne i32 %344, 0
br i1 %345, label %346, label %348
346: ; preds = %342
%347 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.96, i64 0, i64 0), i32 2)
br label %350
348: ; preds = %342
%349 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.95, i64 0, i64 0))
br label %350
350: ; preds = %348, %346
%351 = load i32, i32* %22
%352 = and i32 %351, 1073741824
%353 = icmp ne i32 %352, 0
br i1 %353, label %354, label %356
354: ; preds = %350
%355 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.97, i64 0, i64 0), i32 4)
br label %358
356: ; preds = %350
%357 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.95, i64 0, i64 0))
br label %358
358: ; preds = %356, %354
%359 = load i32, i32* %22
%360 = and i32 %359, -2147483648
%361 = icmp ne i32 %360, 0
br i1 %361, label %362, label %364
362: ; preds = %358
%363 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.98, i64 0, i64 0), i32 8)
br label %366
364: ; preds = %358
%365 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.99, i64 0, i64 0))
br label %366
366: ; preds = %364, %362
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, i32 %4, i32 %5, i32 %6, i32 %7, i32 %8, i32 %9, i32 %10, i32 %11, i32 %12, i32 %13, i32 %14, i32 %15, i32 %16, i32 %17) {
%19 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([20 x i8], [20 x i8]* @.str, i64 0, i64 0), i32 %0)
%20 = xor i32 %0, -1
%21 = and i32 %20, 3
%22 = icmp eq i32 %21, 2
%23 = and i32 %0, 3
%24 = select i1 %22, 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)
%25 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) %24, i32 %23)
%26 = and i32 %20, 4
%27 = icmp eq i32 %26, 0
br i1 %27, label %31, label %28
28: ; preds = %18
%29 = and i32 %0, 4
%30 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.3, i64 0, i64 0), i32 %29)
br label %31
31: ; preds = %28, %18
%32 = lshr i32 %20, 3
%33 = and i32 %32, 3
%34 = zext i32 %33 to i64
%35 = shl i64 %34, 2
%36 = call i8* @llvm.load.relative.i64(i8* bitcast ([4 x i32]* @reltable.print_mx1 to i8*), i64 %35)
%37 = and i32 %0, 24
%38 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) %36, i32 %37)
%39 = and i32 %20, 64512
%40 = icmp eq i32 %39, 0
br i1 %40, label %44, label %41
41: ; preds = %31
%42 = and i32 %0, 64512
%43 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([51 x i8], [51 x i8]* @.str.8, i64 0, i64 0), i32 %42)
br label %44
44: ; preds = %41, %31
%45 = and i32 %20, 16777216
%46 = icmp eq i32 %45, 0
br i1 %46, label %49, label %47
47: ; preds = %44
%48 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([48 x i8], [48 x i8]* @str.105, i64 0, i64 0))
br label %49
49: ; preds = %47, %44
%50 = and i32 %20, 268435456
%51 = icmp eq i32 %50, 0
br i1 %51, label %54, label %52
52: ; preds = %49
%53 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([36 x i8], [36 x i8]* @str.104, i64 0, i64 0))
br label %54
54: ; preds = %52, %49
%55 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([20 x i8], [20 x i8]* @.str.11, i64 0, i64 0), i32 %1)
%56 = and i32 %1, 7
switch i32 %56, label %73 [
i32 0, label %57
i32 1, label %59
i32 2, label %61
i32 3, label %63
i32 4, label %65
i32 5, label %67
i32 6, label %69
i32 7, label %71
]
57: ; preds = %54
%58 = 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 %74
59: ; preds = %54
%60 = 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 %74
61: ; preds = %54
%62 = 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 %74
63: ; preds = %54
%64 = 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 %74
65: ; preds = %54
%66 = 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 %74
67: ; preds = %54
%68 = 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 %74
69: ; preds = %54
%70 = 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 %74
71: ; preds = %54
%72 = 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 %74
73: ; preds = %54
unreachable
74: ; preds = %71, %69, %67, %65, %63, %61, %59, %57
%75 = and i32 %1, 32
%76 = icmp eq i32 %75, 0
br i1 %76, label %79, label %77
77: ; preds = %74
%78 = 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 %79
79: ; preds = %77, %74
%80 = and i32 %1, 128
%81 = icmp eq i32 %80, 0
br i1 %81, label %84, label %82
82: ; preds = %79
%83 = 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 %84
84: ; preds = %82, %79
%85 = lshr i32 %1, 8
%86 = and i32 %85, 3
switch i32 %86, label %95 [
i32 0, label %87
i32 1, label %89
i32 2, label %91
i32 3, label %93
]
87: ; preds = %84
%88 = 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 %96
89: ; preds = %84
%90 = 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 %96
91: ; preds = %84
%92 = 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 %96
93: ; preds = %84
%94 = 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 %96
95: ; preds = %84
unreachable
96: ; preds = %93, %91, %89, %87
%97 = and i32 %1, 1024
%98 = icmp eq i32 %97, 0
br i1 %98, label %101, label %99
99: ; preds = %96
%100 = 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 %101
101: ; preds = %99, %96
%102 = lshr i32 %1, 12
%103 = and i32 %102, 3
switch i32 %103, label %112 [
i32 0, label %104
i32 1, label %106
i32 2, label %108
i32 3, label %110
]
104: ; preds = %101
%105 = 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 %113
106: ; preds = %101
%107 = 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 %113
108: ; preds = %101
%109 = 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 %113
110: ; preds = %101
%111 = 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 %113
112: ; preds = %101
unreachable
113: ; preds = %110, %108, %106, %104
%114 = and i32 %1, 32768
%115 = icmp eq i32 %114, 0
br i1 %115, label %118, label %116
116: ; preds = %113
%117 = 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 %118
118: ; preds = %116, %113
%119 = and i32 %1, 16384
%120 = icmp eq i32 %119, 0
br i1 %120, label %123, label %121
121: ; preds = %118
%122 = 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 %123
123: ; preds = %121, %118
%124 = and i32 %1, 8388608
%125 = icmp eq i32 %124, 0
br i1 %125, label %178, label %126
126: ; preds = %123
%127 = lshr i32 %1, 16
%128 = and i32 %127, 31
switch i32 %128, label %171 [
i32 0, label %129
i32 1, label %131
i32 2, label %133
i32 3, label %135
i32 4, label %137
i32 5, label %139
i32 6, label %141
i32 7, label %143
i32 8, label %145
i32 9, label %147
i32 10, label %149
i32 11, label %151
i32 12, label %153
i32 13, label %155
i32 14, label %157
i32 15, label %159
i32 16, label %161
i32 17, label %163
i32 18, label %165
i32 19, label %167
i32 20, label %169
]
129: ; preds = %126
%130 = 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 %171
131: ; preds = %126
%132 = 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 %171
133: ; preds = %126
%134 = 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 %171
135: ; preds = %126
%136 = 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 %171
137: ; preds = %126
%138 = 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 %171
139: ; preds = %126
%140 = 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 %171
141: ; preds = %126
%142 = 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 %171
143: ; preds = %126
%144 = 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 %171
145: ; preds = %126
%146 = 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 %171
147: ; preds = %126
%148 = 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 %171
149: ; preds = %126
%150 = 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 %171
151: ; preds = %126
%152 = 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 %171
153: ; preds = %126
%154 = 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 %171
155: ; preds = %126
%156 = 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 %171
157: ; preds = %126
%158 = 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 %171
159: ; preds = %126
%160 = 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 %171
161: ; preds = %126
%162 = 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 %171
163: ; preds = %126
%164 = 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 %171
165: ; preds = %126
%166 = 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 %171
167: ; preds = %126
%168 = 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 %171
169: ; preds = %126
%170 = 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 %171
171: ; preds = %126, %169, %167, %165, %163, %161, %159, %157, %155, %153, %151, %149, %147, %145, %143, %141, %139, %137, %135, %133, %131, %129
%172 = and i32 %1, 4194304
%173 = icmp eq i32 %172, 0
br i1 %173, label %176, label %174
174: ; preds = %171
%175 = 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 %176
176: ; preds = %174, %171
%177 = 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 %178
178: ; preds = %176, %123
%179 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([20 x i8], [20 x i8]* @.str.57, i64 0, i64 0), i32 %2)
%180 = and i32 %2, 7
switch i32 %180, label %197 [
i32 0, label %181
i32 1, label %183
i32 2, label %185
i32 3, label %187
i32 4, label %189
i32 5, label %191
i32 6, label %193
i32 7, label %195
]
181: ; preds = %178
%182 = 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 %198
183: ; preds = %178
%184 = 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 %198
185: ; preds = %178
%186 = 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 %198
187: ; preds = %178
%188 = 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 %198
189: ; preds = %178
%190 = 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 %198
191: ; preds = %178
%192 = 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 %198
193: ; preds = %178
%194 = 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 %198
195: ; preds = %178
%196 = 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 %198
197: ; preds = %178
unreachable
198: ; preds = %195, %193, %191, %189, %187, %185, %183, %181
%199 = lshr i32 %2, 4
%200 = and i32 %199, 7
switch i32 %200, label %217 [
i32 0, label %201
i32 1, label %203
i32 2, label %205
i32 3, label %207
i32 4, label %209
i32 5, label %211
i32 6, label %213
i32 7, label %215
]
201: ; preds = %198
%202 = 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 %218
203: ; preds = %198
%204 = 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 %218
205: ; preds = %198
%206 = 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 %218
207: ; preds = %198
%208 = 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 %218
209: ; preds = %198
%210 = 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 %218
211: ; preds = %198
%212 = 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 %218
213: ; preds = %198
%214 = 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 %218
215: ; preds = %198
%216 = 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 %218
217: ; preds = %198
unreachable
218: ; preds = %215, %213, %211, %209, %207, %205, %203, %201
%219 = lshr i32 %2, 8
%220 = and i32 %219, 7
switch i32 %220, label %237 [
i32 0, label %221
i32 1, label %223
i32 2, label %225
i32 3, label %227
i32 4, label %229
i32 5, label %231
i32 6, label %233
i32 7, label %235
]
221: ; preds = %218
%222 = 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 %238
223: ; preds = %218
%224 = 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 %238
225: ; preds = %218
%226 = 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 %238
227: ; preds = %218
%228 = 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 %238
229: ; preds = %218
%230 = 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 %238
231: ; preds = %218
%232 = 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 %238
233: ; preds = %218
%234 = 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 %238
235: ; preds = %218
%236 = 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 %238
237: ; preds = %218
unreachable
238: ; preds = %235, %233, %231, %229, %227, %225, %223, %221
%239 = and i32 %2, 32768
%240 = icmp eq i32 %239, 0
br i1 %240, label %243, label %241
241: ; preds = %238
%242 = 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 %245
243: ; preds = %238
%244 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([38 x i8], [38 x i8]* @str, i64 0, i64 0))
br label %245
245: ; preds = %243, %241
%246 = lshr i32 %2, 16
%247 = and i32 %246, 7
switch i32 %247, label %264 [
i32 0, label %248
i32 1, label %250
i32 2, label %252
i32 3, label %254
i32 4, label %256
i32 5, label %258
i32 6, label %260
i32 7, label %262
]
248: ; preds = %245
%249 = 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 %265
250: ; preds = %245
%251 = 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 %265
252: ; preds = %245
%253 = 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 %265
254: ; preds = %245
%255 = 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 %265
256: ; preds = %245
%257 = 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 %265
258: ; preds = %245
%259 = 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 %265
260: ; preds = %245
%261 = 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 %265
262: ; preds = %245
%263 = 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 %265
264: ; preds = %245
unreachable
265: ; preds = %262, %260, %258, %256, %254, %252, %250, %248
%266 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([20 x i8], [20 x i8]* @.str.92, i64 0, i64 0), i32 %3)
%267 = and i32 %3, 65535
%268 = icmp eq i32 %267, 65535
br i1 %268, label %271, label %269
269: ; preds = %265
%270 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([40 x i8], [40 x i8]* @.str.93, i64 0, i64 0), i32 %267)
br label %271
271: ; preds = %269, %265
%272 = and i32 %3, 268435456
%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 ([69 x i8], [69 x i8]* @.str.94, i64 0, i64 0), i32 1)
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 = and i32 %3, 536870912
%280 = icmp eq i32 %279, 0
br i1 %280, label %283, label %281
281: ; preds = %278
%282 = 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 %285
283: ; preds = %278
%284 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([53 x i8], [53 x i8]* @str.102, i64 0, i64 0))
br label %285
285: ; preds = %283, %281
%286 = and i32 %3, 1073741824
%287 = icmp eq i32 %286, 0
br i1 %287, label %290, label %288
288: ; preds = %285
%289 = 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 %292
290: ; preds = %285
%291 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([53 x i8], [53 x i8]* @str.102, i64 0, i64 0))
br label %292
292: ; preds = %290, %288
%293 = icmp sgt i32 %3, -1
br i1 %293, label %296, label %294
294: ; preds = %292
%295 = 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 %298
296: ; preds = %292
%297 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([54 x i8], [54 x i8]* @str.103, i64 0, i64 0))
br label %298
298: ; preds = %296, %294
ret void
}