void print_mx3(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 & 0x000ff000)
    printf("                 %05x Program flash write protect\n",
           cfg0 & 0x000ff000);
  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 & 0x00004000)
    printf("                  %u    Fail-safe clock monitor disable\n",
           0x00004000 >> 12);
  if (cfg1 & 0x00008000)
    printf("                  %u    Clock switching disable\n",
           0x00008000 >> 12);
  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 & 0x00800000)
    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);
  switch (cfg3 & 0x00070000) {
  case 0x00000000:
    printf("                 %u     All irqs assigned to shadow set\n",
           0x00000000 >> 16);
    break;
  case 0x00010000:
    printf("                 %u     Assign irq priority 1 to shadow set\n",
           0x00010000 >> 16);
    break;
  case 0x00020000:
    printf("                 %u     Assign irq priority 2 to shadow set\n",
           0x00020000 >> 16);
    break;
  case 0x00030000:
    printf("                 %u     Assign irq priority 3 to shadow set\n",
           0x00030000 >> 16);
    break;
  case 0x00040000:
    printf("                 %u     Assign irq priority 4 to shadow set\n",
           0x00040000 >> 16);
    break;
  case 0x00050000:
    printf("                 %u     Assign irq priority 5 to shadow set\n",
           0x00050000 >> 16);
    break;
  case 0x00060000:
    printf("                 %u     Assign irq priority 6 to shadow set\n",
           0x00060000 >> 16);
    break;
  case 0x00070000:
    printf("                 %u     Assign irq priority 7 to shadow set\n",
           0x00070000 >> 16);
    break;
  }
  if (cfg3 & 0x01000000)
    printf("               %u       Ethernet MII enabled\n", 0x01000000 >> 24);
  else
    printf("                       Ethernet RMII enabled\n");
  if (cfg3 & 0x02000000)
    printf("               %u       Default Ethernet i/o pins\n",
           0x02000000 >> 24);
  else
    printf("                       Alternate Ethernet i/o pins\n");
  if (cfg3 & 0x04000000)
    printf("               %u       Default CAN i/o pins\n", 0x04000000 >> 24);
  else
    printf("                       Alternate CAN i/o pins\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_mx3>:
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    0x1f4a(%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_mx3+0x7c>
mov    -0x4(%rbp),%esi
and    $0x3,%esi
lea    0x1f38(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    11a0 <print_mx3+0x90>
mov    -0x4(%rbp),%esi
and    $0x3,%esi
lea    0x1f49(%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_mx3+0xb6>
mov    -0x4(%rbp),%esi
and    $0x4,%esi
lea    0x1f4e(%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_mx3+0x140>
mov    -0x20(%rbp),%rax
lea    0x1e18(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    -0x4(%rbp),%esi
and    $0x18,%esi
lea    0x1f36(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1250 <print_mx3+0x140>
mov    -0x4(%rbp),%esi
and    $0x18,%esi
lea    0x1f45(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1250 <print_mx3+0x140>
mov    -0x4(%rbp),%esi
and    $0x18,%esi
lea    0x1f54(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1250 <print_mx3+0x140>
mov    -0x4(%rbp),%esi
and    $0x18,%esi
lea    0x1f63(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x4(%rbp),%eax
xor    $0xffffffff,%eax
and    $0xff000,%eax
cmp    $0x0,%eax
je     127b <print_mx3+0x16b>
mov    -0x4(%rbp),%esi
and    $0xff000,%esi
lea    0x1f60(%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_mx3+0x18d>
lea    0x1f71(%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_mx3+0x1af>
lea    0x1f80(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x8(%rbp),%esi
lea    0x1f94(%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_mx3+0x2a4>
mov    -0x28(%rbp),%rax
lea    0x1d76(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x1f73(%rip),%rdi
xor    %esi,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    13c8 <print_mx3+0x2b8>
lea    0x1f8a(%rip),%rdi
mov    $0x1,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    13c8 <print_mx3+0x2b8>
lea    0x1fb7(%rip),%rdi
mov    $0x2,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    13c8 <print_mx3+0x2b8>
lea    0x1fcb(%rip),%rdi
mov    $0x3,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    13c8 <print_mx3+0x2b8>
lea    0x1fe8(%rip),%rdi
mov    $0x4,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    13c8 <print_mx3+0x2b8>
lea    0x1ffe(%rip),%rdi
mov    $0x5,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    13c8 <print_mx3+0x2b8>
lea    0x2017(%rip),%rdi
mov    $0x6,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    13c8 <print_mx3+0x2b8>
lea    0x203d(%rip),%rdi
mov    $0x7,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    13c8 <print_mx3+0x2b8>
mov    -0x8(%rbp),%esi
and    $0x7,%esi
lea    0x205c(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x8(%rbp),%eax
and    $0x20,%eax
cmp    $0x0,%eax
je     13ea <print_mx3+0x2da>
lea    0x2060(%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_mx3+0x2fe>
lea    0x2072(%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_mx3+0x34d>
jmp    1424 <print_mx3+0x314>
mov    -0x2c(%rbp),%eax
sub    $0x100,%eax
je     1472 <print_mx3+0x362>
jmp    1437 <print_mx3+0x327>
mov    -0x2c(%rbp),%eax
sub    $0x200,%eax
je     148a <print_mx3+0x37a>
jmp    144a <print_mx3+0x33a>
mov    -0x2c(%rbp),%eax
sub    $0x300,%eax
je     14a2 <print_mx3+0x392>
jmp    14b5 <print_mx3+0x3a5>
lea    0x204f(%rip),%rdi
xor    %esi,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    14b5 <print_mx3+0x3a5>
lea    0x2070(%rip),%rdi
mov    $0x1,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    14b5 <print_mx3+0x3a5>
lea    0x2088(%rip),%rdi
mov    $0x2,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    14b5 <print_mx3+0x3a5>
lea    0x20a0(%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_mx3+0x3c9>
lea    0x20b2(%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_mx3+0x418>
jmp    14ef <print_mx3+0x3df>
mov    -0x30(%rbp),%eax
sub    $0x1000,%eax
je     153d <print_mx3+0x42d>
jmp    1502 <print_mx3+0x3f2>
mov    -0x30(%rbp),%eax
sub    $0x2000,%eax
je     1555 <print_mx3+0x445>
jmp    1515 <print_mx3+0x405>
mov    -0x30(%rbp),%eax
sub    $0x3000,%eax
je     156d <print_mx3+0x45d>
jmp    1580 <print_mx3+0x470>
lea    0x207e(%rip),%rdi
xor    %esi,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1580 <print_mx3+0x470>
lea    0x20a3(%rip),%rdi
mov    $0x1,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1580 <print_mx3+0x470>
lea    0x20c5(%rip),%rdi
mov    $0x2,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1580 <print_mx3+0x470>
lea    0x20e7(%rip),%rdi
mov    $0x3,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x8(%rbp),%eax
and    $0x4000,%eax
cmp    $0x0,%eax
je     15a4 <print_mx3+0x494>
lea    0x20fd(%rip),%rdi
mov    $0x4,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x8(%rbp),%eax
and    $0x8000,%eax
cmp    $0x0,%eax
je     15c8 <print_mx3+0x4b8>
lea    0x2112(%rip),%rdi
mov    $0x8,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x8(%rbp),%eax
and    $0x1f0000,%eax
mov    %eax,-0x34(%rbp)
je     175a <print_mx3+0x64a>
jmp    15de <print_mx3+0x4ce>
mov    -0x34(%rbp),%eax
sub    $0x10000,%eax
je     176f <print_mx3+0x65f>
jmp    15f1 <print_mx3+0x4e1>
mov    -0x34(%rbp),%eax
sub    $0x20000,%eax
je     1787 <print_mx3+0x677>
jmp    1604 <print_mx3+0x4f4>
mov    -0x34(%rbp),%eax
sub    $0x30000,%eax
je     179f <print_mx3+0x68f>
jmp    1617 <print_mx3+0x507>
mov    -0x34(%rbp),%eax
sub    $0x40000,%eax
je     17b7 <print_mx3+0x6a7>
jmp    162a <print_mx3+0x51a>
mov    -0x34(%rbp),%eax
sub    $0x50000,%eax
je     17cf <print_mx3+0x6bf>
jmp    163d <print_mx3+0x52d>
mov    -0x34(%rbp),%eax
sub    $0x60000,%eax
je     17e7 <print_mx3+0x6d7>
jmp    1650 <print_mx3+0x540>
mov    -0x34(%rbp),%eax
sub    $0x70000,%eax
je     17ff <print_mx3+0x6ef>
jmp    1663 <print_mx3+0x553>
mov    -0x34(%rbp),%eax
sub    $0x80000,%eax
je     1817 <print_mx3+0x707>
jmp    1676 <print_mx3+0x566>
mov    -0x34(%rbp),%eax
sub    $0x90000,%eax
je     182f <print_mx3+0x71f>
jmp    1689 <print_mx3+0x579>
mov    -0x34(%rbp),%eax
sub    $0xa0000,%eax
je     1847 <print_mx3+0x737>
jmp    169c <print_mx3+0x58c>
mov    -0x34(%rbp),%eax
sub    $0xb0000,%eax
je     185f <print_mx3+0x74f>
jmp    16af <print_mx3+0x59f>
mov    -0x34(%rbp),%eax
sub    $0xc0000,%eax
je     1877 <print_mx3+0x767>
jmp    16c2 <print_mx3+0x5b2>
mov    -0x34(%rbp),%eax
sub    $0xd0000,%eax
je     188f <print_mx3+0x77f>
jmp    16d5 <print_mx3+0x5c5>
mov    -0x34(%rbp),%eax
sub    $0xe0000,%eax
je     18a7 <print_mx3+0x797>
jmp    16e8 <print_mx3+0x5d8>
mov    -0x34(%rbp),%eax
sub    $0xf0000,%eax
je     18bf <print_mx3+0x7af>
jmp    16fb <print_mx3+0x5eb>
mov    -0x34(%rbp),%eax
sub    $0x100000,%eax
je     18d7 <print_mx3+0x7c7>
jmp    170e <print_mx3+0x5fe>
mov    -0x34(%rbp),%eax
sub    $0x110000,%eax
je     18ef <print_mx3+0x7df>
jmp    1721 <print_mx3+0x611>
mov    -0x34(%rbp),%eax
sub    $0x120000,%eax
je     1907 <print_mx3+0x7f7>
jmp    1734 <print_mx3+0x624>
mov    -0x34(%rbp),%eax
sub    $0x130000,%eax
je     191f <print_mx3+0x80f>
jmp    1747 <print_mx3+0x637>
mov    -0x34(%rbp),%eax
sub    $0x140000,%eax
je     1937 <print_mx3+0x827>
jmp    194a <print_mx3+0x83a>
lea    0x1f9e(%rip),%rdi
xor    %esi,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    194a <print_mx3+0x83a>
lea    0x1fba(%rip),%rdi
mov    $0x1,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    194a <print_mx3+0x83a>
lea    0x1fd3(%rip),%rdi
mov    $0x2,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    194a <print_mx3+0x83a>
lea    0x1fec(%rip),%rdi
mov    $0x3,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    194a <print_mx3+0x83a>
lea    0x2005(%rip),%rdi
mov    $0x4,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    194a <print_mx3+0x83a>
lea    0x201f(%rip),%rdi
mov    $0x5,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    194a <print_mx3+0x83a>
lea    0x2039(%rip),%rdi
mov    $0x6,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    194a <print_mx3+0x83a>
lea    0x2053(%rip),%rdi
mov    $0x7,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    194a <print_mx3+0x83a>
lea    0x206e(%rip),%rdi
mov    $0x8,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    194a <print_mx3+0x83a>
lea    0x2089(%rip),%rdi
mov    $0x9,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    194a <print_mx3+0x83a>
lea    0x20a4(%rip),%rdi
mov    $0xa,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    194a <print_mx3+0x83a>
lea    0x20c0(%rip),%rdi
mov    $0xb,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    194a <print_mx3+0x83a>
lea    0x20dc(%rip),%rdi
mov    $0xc,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    194a <print_mx3+0x83a>
lea    0x20f8(%rip),%rdi
mov    $0xd,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    194a <print_mx3+0x83a>
lea    0x2114(%rip),%rdi
mov    $0xe,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    194a <print_mx3+0x83a>
lea    0x2131(%rip),%rdi
mov    $0xf,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    194a <print_mx3+0x83a>
lea    0x214e(%rip),%rdi
mov    $0x10,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    194a <print_mx3+0x83a>
lea    0x216b(%rip),%rdi
mov    $0x11,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    194a <print_mx3+0x83a>
lea    0x2189(%rip),%rdi
mov    $0x12,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    194a <print_mx3+0x83a>
lea    0x21a7(%rip),%rdi
mov    $0x13,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    194a <print_mx3+0x83a>
lea    0x21c5(%rip),%rdi
mov    $0x14,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x8(%rbp),%eax
and    $0x800000,%eax
cmp    $0x0,%eax
je     196e <print_mx3+0x85e>
lea    0x21d8(%rip),%rdi
mov    $0x8,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0xc(%rbp),%esi
lea    0x21eb(%rip),%rdi
xor    %eax,%eax
call   1030 <printf@plt>
mov    -0xc(%rbp),%eax
and    $0x7,%eax
mov    %rax,-0x40(%rbp)
sub    $0x7,%eax
ja     1a5e <print_mx3+0x94e>
mov    -0x40(%rbp),%rax
lea    0x16e7(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x21ca(%rip),%rdi
xor    %esi,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1a5e <print_mx3+0x94e>
lea    0x21df(%rip),%rdi
mov    $0x1,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1a5e <print_mx3+0x94e>
lea    0x21f1(%rip),%rdi
mov    $0x2,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1a5e <print_mx3+0x94e>
lea    0x2203(%rip),%rdi
mov    $0x3,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1a5e <print_mx3+0x94e>
lea    0x2215(%rip),%rdi
mov    $0x4,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1a5e <print_mx3+0x94e>
lea    0x2227(%rip),%rdi
mov    $0x5,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1a5e <print_mx3+0x94e>
lea    0x2239(%rip),%rdi
mov    $0x6,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1a5e <print_mx3+0x94e>
lea    0x224c(%rip),%rdi
mov    $0x7,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0xc(%rbp),%eax
and    $0x70,%eax
mov    %eax,-0x44(%rbp)
je     1ae9 <print_mx3+0x9d9>
jmp    1a72 <print_mx3+0x962>
mov    -0x44(%rbp),%eax
sub    $0x10,%eax
je     1afe <print_mx3+0x9ee>
jmp    1a83 <print_mx3+0x973>
mov    -0x44(%rbp),%eax
sub    $0x20,%eax
je     1b16 <print_mx3+0xa06>
jmp    1a94 <print_mx3+0x984>
mov    -0x44(%rbp),%eax
sub    $0x30,%eax
je     1b2e <print_mx3+0xa1e>
jmp    1aa5 <print_mx3+0x995>
mov    -0x44(%rbp),%eax
sub    $0x40,%eax
je     1b46 <print_mx3+0xa36>
jmp    1ab6 <print_mx3+0x9a6>
mov    -0x44(%rbp),%eax
sub    $0x50,%eax
je     1b5e <print_mx3+0xa4e>
jmp    1ac7 <print_mx3+0x9b7>
mov    -0x44(%rbp),%eax
sub    $0x60,%eax
je     1b76 <print_mx3+0xa66>
jmp    1ad8 <print_mx3+0x9c8>
mov    -0x44(%rbp),%eax
sub    $0x70,%eax
je     1b8e <print_mx3+0xa7e>
jmp    1ba1 <print_mx3+0xa91>
lea    0x21d9(%rip),%rdi
xor    %esi,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1ba1 <print_mx3+0xa91>
lea    0x21f1(%rip),%rdi
mov    $0x1,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1ba1 <print_mx3+0xa91>
lea    0x2206(%rip),%rdi
mov    $0x2,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1ba1 <print_mx3+0xa91>
lea    0x221b(%rip),%rdi
mov    $0x3,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1ba1 <print_mx3+0xa91>
lea    0x2230(%rip),%rdi
mov    $0x4,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1ba1 <print_mx3+0xa91>
lea    0x2245(%rip),%rdi
mov    $0x5,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1ba1 <print_mx3+0xa91>
lea    0x225a(%rip),%rdi
mov    $0x6,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1ba1 <print_mx3+0xa91>
lea    0x226f(%rip),%rdi
mov    $0x7,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0xc(%rbp),%eax
and    $0x700,%eax
mov    %eax,-0x48(%rbp)
je     1c3c <print_mx3+0xb2c>
jmp    1bb7 <print_mx3+0xaa7>
mov    -0x48(%rbp),%eax
sub    $0x100,%eax
je     1c51 <print_mx3+0xb41>
jmp    1bca <print_mx3+0xaba>
mov    -0x48(%rbp),%eax
sub    $0x200,%eax
je     1c69 <print_mx3+0xb59>
jmp    1bdd <print_mx3+0xacd>
mov    -0x48(%rbp),%eax
sub    $0x300,%eax
je     1c81 <print_mx3+0xb71>
jmp    1bf0 <print_mx3+0xae0>
mov    -0x48(%rbp),%eax
sub    $0x400,%eax
je     1c99 <print_mx3+0xb89>
jmp    1c03 <print_mx3+0xaf3>
mov    -0x48(%rbp),%eax
sub    $0x500,%eax
je     1cb1 <print_mx3+0xba1>
jmp    1c16 <print_mx3+0xb06>
mov    -0x48(%rbp),%eax
sub    $0x600,%eax
je     1cc9 <print_mx3+0xbb9>
jmp    1c29 <print_mx3+0xb19>
mov    -0x48(%rbp),%eax
sub    $0x700,%eax
je     1ce1 <print_mx3+0xbd1>
jmp    1cf4 <print_mx3+0xbe4>
lea    0x21ee(%rip),%rdi
xor    %esi,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1cf4 <print_mx3+0xbe4>
lea    0x2207(%rip),%rdi
mov    $0x1,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1cf4 <print_mx3+0xbe4>
lea    0x221d(%rip),%rdi
mov    $0x2,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1cf4 <print_mx3+0xbe4>
lea    0x2233(%rip),%rdi
mov    $0x3,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1cf4 <print_mx3+0xbe4>
lea    0x2249(%rip),%rdi
mov    $0x4,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1cf4 <print_mx3+0xbe4>
lea    0x225f(%rip),%rdi
mov    $0x5,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1cf4 <print_mx3+0xbe4>
lea    0x2275(%rip),%rdi
mov    $0x6,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1cf4 <print_mx3+0xbe4>
lea    0x228c(%rip),%rdi
mov    $0x7,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0xc(%rbp),%eax
and    $0x8000,%eax
cmp    $0x0,%eax
je     1d1d <print_mx3+0xc0d>
lea    0x2297(%rip),%rdi
mov    $0x8,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1d2b <print_mx3+0xc1b>
lea    0x22a8(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0xc(%rbp),%eax
and    $0x70000,%eax
mov    %eax,-0x4c(%rbp)
je     1dc6 <print_mx3+0xcb6>
jmp    1d41 <print_mx3+0xc31>
mov    -0x4c(%rbp),%eax
sub    $0x10000,%eax
je     1ddb <print_mx3+0xccb>
jmp    1d54 <print_mx3+0xc44>
mov    -0x4c(%rbp),%eax
sub    $0x20000,%eax
je     1df3 <print_mx3+0xce3>
jmp    1d67 <print_mx3+0xc57>
mov    -0x4c(%rbp),%eax
sub    $0x30000,%eax
je     1e0b <print_mx3+0xcfb>
jmp    1d7a <print_mx3+0xc6a>
mov    -0x4c(%rbp),%eax
sub    $0x40000,%eax
je     1e23 <print_mx3+0xd13>
jmp    1d8d <print_mx3+0xc7d>
mov    -0x4c(%rbp),%eax
sub    $0x50000,%eax
je     1e3b <print_mx3+0xd2b>
jmp    1da0 <print_mx3+0xc90>
mov    -0x4c(%rbp),%eax
sub    $0x60000,%eax
je     1e53 <print_mx3+0xd43>
jmp    1db3 <print_mx3+0xca3>
mov    -0x4c(%rbp),%eax
sub    $0x70000,%eax
je     1e6b <print_mx3+0xd5b>
jmp    1e7e <print_mx3+0xd6e>
lea    0x2226(%rip),%rdi
xor    %esi,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1e7e <print_mx3+0xd6e>
lea    0x223e(%rip),%rdi
mov    $0x1,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1e7e <print_mx3+0xd6e>
lea    0x2253(%rip),%rdi
mov    $0x2,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1e7e <print_mx3+0xd6e>
lea    0x2268(%rip),%rdi
mov    $0x3,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1e7e <print_mx3+0xd6e>
lea    0x227d(%rip),%rdi
mov    $0x4,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1e7e <print_mx3+0xd6e>
lea    0x2293(%rip),%rdi
mov    $0x5,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1e7e <print_mx3+0xd6e>
lea    0x22a9(%rip),%rdi
mov    $0x6,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1e7e <print_mx3+0xd6e>
lea    0x22bf(%rip),%rdi
mov    $0x7,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x10(%rbp),%esi
lea    0x22d8(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x10(%rbp),%eax
xor    $0xffffffff,%eax
and    $0xffff,%eax
cmp    $0x0,%eax
je     1eba <print_mx3+0xdaa>
mov    -0x10(%rbp),%esi
and    $0xffff,%esi
lea    0x22c1(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x10(%rbp),%eax
and    $0x70000,%eax
mov    %eax,-0x50(%rbp)
je     1f55 <print_mx3+0xe45>
jmp    1ed0 <print_mx3+0xdc0>
mov    -0x50(%rbp),%eax
sub    $0x10000,%eax
je     1f6a <print_mx3+0xe5a>
jmp    1ee3 <print_mx3+0xdd3>
mov    -0x50(%rbp),%eax
sub    $0x20000,%eax
je     1f82 <print_mx3+0xe72>
jmp    1ef6 <print_mx3+0xde6>
mov    -0x50(%rbp),%eax
sub    $0x30000,%eax
je     1f9a <print_mx3+0xe8a>
jmp    1f09 <print_mx3+0xdf9>
mov    -0x50(%rbp),%eax
sub    $0x40000,%eax
je     1fb2 <print_mx3+0xea2>
jmp    1f1c <print_mx3+0xe0c>
mov    -0x50(%rbp),%eax
sub    $0x50000,%eax
je     1fca <print_mx3+0xeba>
jmp    1f2f <print_mx3+0xe1f>
mov    -0x50(%rbp),%eax
sub    $0x60000,%eax
je     1fe2 <print_mx3+0xed2>
jmp    1f42 <print_mx3+0xe32>
mov    -0x50(%rbp),%eax
sub    $0x70000,%eax
je     1ffa <print_mx3+0xeea>
jmp    200d <print_mx3+0xefd>
lea    0x2240(%rip),%rdi
xor    %esi,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    200d <print_mx3+0xefd>
lea    0x2264(%rip),%rdi
mov    $0x1,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    200d <print_mx3+0xefd>
lea    0x2289(%rip),%rdi
mov    $0x2,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    200d <print_mx3+0xefd>
lea    0x22ae(%rip),%rdi
mov    $0x3,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    200d <print_mx3+0xefd>
lea    0x22d3(%rip),%rdi
mov    $0x4,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    200d <print_mx3+0xefd>
lea    0x22f8(%rip),%rdi
mov    $0x5,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    200d <print_mx3+0xefd>
lea    0x231d(%rip),%rdi
mov    $0x6,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    200d <print_mx3+0xefd>
lea    0x2342(%rip),%rdi
mov    $0x7,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x10(%rbp),%eax
and    $0x1000000,%eax
cmp    $0x0,%eax
je     2036 <print_mx3+0xf26>
lea    0x235b(%rip),%rdi
mov    $0x1,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    2044 <print_mx3+0xf34>
lea    0x2371(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x10(%rbp),%eax
and    $0x2000000,%eax
cmp    $0x0,%eax
je     206d <print_mx3+0xf5d>
lea    0x2380(%rip),%rdi
mov    $0x2,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    207b <print_mx3+0xf6b>
lea    0x239b(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x10(%rbp),%eax
and    $0x4000000,%eax
cmp    $0x0,%eax
je     20a4 <print_mx3+0xf94>
lea    0x23b0(%rip),%rdi
mov    $0x4,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    20b2 <print_mx3+0xfa2>
lea    0x23c6(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x10(%rbp),%eax
and    $0x40000000,%eax
cmp    $0x0,%eax
je     20db <print_mx3+0xfcb>
lea    0x23d6(%rip),%rdi
mov    $0x4,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    20e9 <print_mx3+0xfd9>
lea    0x23f4(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x10(%rbp),%eax
and    $0x80000000,%eax
cmp    $0x0,%eax
je     2112 <print_mx3+0x1002>
lea    0x240b(%rip),%rdi
mov    $0x8,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    2120 <print_mx3+0x1010>
lea    0x242a(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
add    $0x50,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<print_mx3>:
push   %rbp
push   %r15
push   %r14
push   %r12
push   %rbx
mov    %ecx,%r14d
mov    %edx,%r15d
mov    %esi,%r12d
mov    %edi,%ebp
lea    0x100a(%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    0xffd(%rip),%rax
lea    0x1020(%rip),%rdi
cmove  %rax,%rdi
xor    %eax,%eax
call   1040 <printf@plt>
test   $0x4,%bl
je     1185 <print_mx3+0x65>
mov    %ebp,%esi
and    $0x4,%esi
lea    0x102f(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %ebx,%eax
shr    $0x3,%eax
and    $0x3,%eax
lea    0xfa0(%rip),%rcx
movslq (%rcx,%rax,4),%rdi
add    %rcx,%rdi
mov    %ebp,%esi
and    $0x18,%esi
xor    %eax,%eax
call   1040 <printf@plt>
test   $0xff000,%ebx
je     11c5 <print_mx3+0xa5>
and    $0xff000,%ebp
lea    0x10b8(%rip),%rdi
mov    %ebp,%esi
xor    %eax,%eax
call   1040 <printf@plt>
test   $0x1000000,%ebx
je     11d9 <print_mx3+0xb9>
lea    0x23ed(%rip),%rdi
call   1030 <puts@plt>
test   $0x10000000,%ebx
je     11ed <print_mx3+0xcd>
lea    0x23b5(%rip),%rdi
call   1030 <puts@plt>
lea    0x10b3(%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    0x10a0(%rip),%rdi
xor    %esi,%esi
jmp    127f <print_mx3+0x15f>
lea    0x10c1(%rip),%rdi
mov    $0x1,%esi
jmp    127f <print_mx3+0x15f>
lea    0x10f8(%rip),%rdi
mov    $0x2,%esi
jmp    127f <print_mx3+0x15f>
lea    0x1116(%rip),%rdi
mov    $0x3,%esi
jmp    127f <print_mx3+0x15f>
lea    0x113d(%rip),%rdi
mov    $0x4,%esi
jmp    127f <print_mx3+0x15f>
lea    0x115d(%rip),%rdi
mov    $0x5,%esi
jmp    127f <print_mx3+0x15f>
lea    0x1180(%rip),%rdi
mov    $0x6,%esi
jmp    127f <print_mx3+0x15f>
lea    0x11b0(%rip),%rdi
mov    $0x7,%esi
xor    %eax,%eax
call   1040 <printf@plt>
test   $0x20,%r12b
je     129f <print_mx3+0x17f>
lea    0x11d4(%rip),%rdi
mov    $0x2,%esi
xor    %eax,%eax
call   1040 <printf@plt>
test   $0x80,%r12b
je     12b8 <print_mx3+0x198>
lea    0x11f1(%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    0x1204(%rip),%rdi
xor    %esi,%esi
jmp    1304 <print_mx3+0x1e4>
lea    0x122f(%rip),%rdi
mov    $0x1,%esi
jmp    1304 <print_mx3+0x1e4>
lea    0x1251(%rip),%rdi
mov    $0x2,%esi
jmp    1304 <print_mx3+0x1e4>
lea    0x1273(%rip),%rdi
mov    $0x3,%esi
xor    %eax,%eax
call   1040 <printf@plt>
test   $0x400,%r12d
je     1327 <print_mx3+0x207>
lea    0x128d(%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    0x128f(%rip),%rdi
xor    %esi,%esi
jmp    1373 <print_mx3+0x253>
lea    0x12be(%rip),%rdi
mov    $0x1,%esi
jmp    1373 <print_mx3+0x253>
lea    0x12ea(%rip),%rdi
mov    $0x2,%esi
jmp    1373 <print_mx3+0x253>
lea    0x1316(%rip),%rdi
mov    $0x3,%esi
xor    %eax,%eax
call   1040 <printf@plt>
test   $0x4000,%r12d
je     1396 <print_mx3+0x276>
lea    0x1334(%rip),%rdi
mov    $0x4,%esi
xor    %eax,%eax
call   1040 <printf@plt>
test   $0x8000,%r12d
je     13b2 <print_mx3+0x292>
lea    0x1351(%rip),%rdi
mov    $0x8,%esi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r12d,%eax
shr    $0x10,%eax
and    $0x1f,%eax
cmp    $0x14,%eax
ja     151d <print_mx3+0x3fd>
lea    0xc75(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x134d(%rip),%rdi
xor    %esi,%esi
jmp    1516 <print_mx3+0x3f6>
lea    0x1370(%rip),%rdi
mov    $0x1,%esi
jmp    1516 <print_mx3+0x3f6>
lea    0x1390(%rip),%rdi
mov    $0x2,%esi
jmp    1516 <print_mx3+0x3f6>
lea    0x13b0(%rip),%rdi
mov    $0x3,%esi
jmp    1516 <print_mx3+0x3f6>
lea    0x13d0(%rip),%rdi
mov    $0x4,%esi
jmp    1516 <print_mx3+0x3f6>
lea    0x13f1(%rip),%rdi
mov    $0x5,%esi
jmp    1516 <print_mx3+0x3f6>
lea    0x1412(%rip),%rdi
mov    $0x6,%esi
jmp    1516 <print_mx3+0x3f6>
lea    0x1433(%rip),%rdi
mov    $0x7,%esi
jmp    1516 <print_mx3+0x3f6>
lea    0x1455(%rip),%rdi
mov    $0x8,%esi
jmp    1516 <print_mx3+0x3f6>
lea    0x1477(%rip),%rdi
mov    $0x9,%esi
jmp    1516 <print_mx3+0x3f6>
lea    0x1499(%rip),%rdi
mov    $0xa,%esi
jmp    1516 <print_mx3+0x3f6>
lea    0x14bc(%rip),%rdi
mov    $0xb,%esi
jmp    1516 <print_mx3+0x3f6>
lea    0x14e2(%rip),%rdi
mov    $0xc,%esi
jmp    1516 <print_mx3+0x3f6>
lea    0x1508(%rip),%rdi
mov    $0xd,%esi
jmp    1516 <print_mx3+0x3f6>
lea    0x152e(%rip),%rdi
mov    $0xe,%esi
jmp    1516 <print_mx3+0x3f6>
lea    0x1555(%rip),%rdi
mov    $0xf,%esi
jmp    1516 <print_mx3+0x3f6>
lea    0x157c(%rip),%rdi
mov    $0x10,%esi
jmp    1516 <print_mx3+0x3f6>
lea    0x15a3(%rip),%rdi
mov    $0x11,%esi
jmp    1516 <print_mx3+0x3f6>
lea    0x15cb(%rip),%rdi
mov    $0x12,%esi
jmp    1516 <print_mx3+0x3f6>
lea    0x15f3(%rip),%rdi
mov    $0x13,%esi
jmp    1516 <print_mx3+0x3f6>
lea    0x161b(%rip),%rdi
mov    $0x14,%esi
xor    %eax,%eax
call   1040 <printf@plt>
test   $0x800000,%r12d
je     1539 <print_mx3+0x419>
lea    0x1636(%rip),%rdi
mov    $0x8,%esi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x164c(%rip),%rdi
mov    %r15d,%esi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r15d,%eax
and    $0x7,%eax
lea    0xb3d(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x1639(%rip),%rdi
xor    %esi,%esi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r15d,%eax
shr    $0x4,%eax
and    $0x7,%eax
lea    0xb34(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x163a(%rip),%rdi
mov    $0x1,%esi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r15d,%eax
shr    $0x4,%eax
and    $0x7,%eax
lea    0xb08(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x1638(%rip),%rdi
mov    $0x2,%esi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r15d,%eax
shr    $0x4,%eax
and    $0x7,%eax
lea    0xadc(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x1636(%rip),%rdi
mov    $0x3,%esi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r15d,%eax
shr    $0x4,%eax
and    $0x7,%eax
lea    0xab0(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x1634(%rip),%rdi
mov    $0x4,%esi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r15d,%eax
shr    $0x4,%eax
and    $0x7,%eax
lea    0xa84(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x1632(%rip),%rdi
mov    $0x5,%esi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r15d,%eax
shr    $0x4,%eax
and    $0x7,%eax
lea    0xa58(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x1630(%rip),%rdi
mov    $0x6,%esi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r15d,%eax
shr    $0x4,%eax
and    $0x7,%eax
lea    0xa2c(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x162f(%rip),%rdi
mov    $0x7,%esi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r15d,%eax
shr    $0x4,%eax
and    $0x7,%eax
lea    0xa00(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x162e(%rip),%rdi
xor    %esi,%esi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r15d,%eax
shr    $0x8,%eax
and    $0x7,%eax
lea    0x9f7(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x1632(%rip),%rdi
mov    $0x1,%esi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r15d,%eax
shr    $0x8,%eax
and    $0x7,%eax
lea    0x9cb(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x1633(%rip),%rdi
mov    $0x2,%esi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r15d,%eax
shr    $0x8,%eax
and    $0x7,%eax
lea    0x99f(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x1634(%rip),%rdi
mov    $0x3,%esi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r15d,%eax
shr    $0x8,%eax
and    $0x7,%eax
lea    0x973(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x1635(%rip),%rdi
mov    $0x4,%esi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r15d,%eax
shr    $0x8,%eax
and    $0x7,%eax
lea    0x947(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x1636(%rip),%rdi
mov    $0x5,%esi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r15d,%eax
shr    $0x8,%eax
and    $0x7,%eax
lea    0x91b(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x1637(%rip),%rdi
mov    $0x6,%esi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r15d,%eax
shr    $0x8,%eax
and    $0x7,%eax
lea    0x8ef(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x1638(%rip),%rdi
mov    $0x7,%esi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r15d,%eax
shr    $0x8,%eax
and    $0x7,%eax
lea    0x8c3(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x1639(%rip),%rdi
xor    %esi,%esi
jmp    1885 <print_mx3+0x765>
lea    0x165c(%rip),%rdi
mov    $0x1,%esi
jmp    1885 <print_mx3+0x765>
lea    0x167c(%rip),%rdi
mov    $0x2,%esi
jmp    1885 <print_mx3+0x765>
lea    0x169c(%rip),%rdi
mov    $0x3,%esi
jmp    1885 <print_mx3+0x765>
lea    0x16bc(%rip),%rdi
mov    $0x4,%esi
jmp    1885 <print_mx3+0x765>
lea    0x16dc(%rip),%rdi
mov    $0x5,%esi
jmp    1885 <print_mx3+0x765>
lea    0x16fc(%rip),%rdi
mov    $0x6,%esi
jmp    1885 <print_mx3+0x765>
lea    0x171d(%rip),%rdi
mov    $0x7,%esi
xor    %eax,%eax
call   1040 <printf@plt>
test   $0x8000,%r15d
jne    18b9 <print_mx3+0x799>
lea    0x1be2(%rip),%rdi
call   1030 <puts@plt>
shr    $0x10,%r15d
and    $0x7,%r15d
lea    0x844(%rip),%rax
movslq (%rax,%r15,4),%rcx
add    %rax,%rcx
jmp    *%rcx
lea    0x170c(%rip),%rdi
mov    $0x8,%esi
xor    %eax,%eax
call   1040 <printf@plt>
shr    $0x10,%r15d
and    $0x7,%r15d
lea    0x819(%rip),%rax
movslq (%rax,%r15,4),%rcx
add    %rax,%rcx
jmp    *%rcx
lea    0x170a(%rip),%rdi
xor    %esi,%esi
jmp    194f <print_mx3+0x82f>
lea    0x172c(%rip),%rdi
mov    $0x1,%esi
jmp    194f <print_mx3+0x82f>
lea    0x174b(%rip),%rdi
mov    $0x2,%esi
jmp    194f <print_mx3+0x82f>
lea    0x176a(%rip),%rdi
mov    $0x3,%esi
jmp    194f <print_mx3+0x82f>
lea    0x1789(%rip),%rdi
mov    $0x4,%esi
jmp    194f <print_mx3+0x82f>
lea    0x17a9(%rip),%rdi
mov    $0x5,%esi
jmp    194f <print_mx3+0x82f>
lea    0x17c9(%rip),%rdi
mov    $0x6,%esi
jmp    194f <print_mx3+0x82f>
lea    0x17e9(%rip),%rdi
mov    $0x7,%esi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x1805(%rip),%rdi
mov    %r14d,%esi
xor    %eax,%eax
call   1040 <printf@plt>
movzwl %r14w,%esi
cmp    $0xffff,%esi
je     1981 <print_mx3+0x861>
lea    0x17fc(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
mov    %r14d,%eax
shr    $0x10,%eax
and    $0x7,%eax
lea    0x783(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x17fd(%rip),%rdi
xor    %esi,%esi
jmp    1a05 <print_mx3+0x8e5>
lea    0x182b(%rip),%rdi
mov    $0x1,%esi
jmp    1a05 <print_mx3+0x8e5>
lea    0x185a(%rip),%rdi
mov    $0x2,%esi
jmp    1a05 <print_mx3+0x8e5>
lea    0x1889(%rip),%rdi
mov    $0x3,%esi
jmp    1a05 <print_mx3+0x8e5>
lea    0x18b8(%rip),%rdi
mov    $0x4,%esi
jmp    1a05 <print_mx3+0x8e5>
lea    0x18e7(%rip),%rdi
mov    $0x5,%esi
jmp    1a05 <print_mx3+0x8e5>
lea    0x1916(%rip),%rdi
mov    $0x6,%esi
jmp    1a05 <print_mx3+0x8e5>
lea    0x1945(%rip),%rdi
mov    $0x7,%esi
xor    %eax,%eax
call   1040 <printf@plt>
test   $0x1000000,%r14d
jne    1aa5 <print_mx3+0x985>
lea    0x1a84(%rip),%rdi
call   1030 <puts@plt>
test   $0x2000000,%r14d
je     1ac5 <print_mx3+0x9a5>
lea    0x1977(%rip),%rdi
mov    $0x2,%esi
xor    %eax,%eax
call   1040 <printf@plt>
test   $0x4000000,%r14d
je     1ade <print_mx3+0x9be>
lea    0x198a(%rip),%rdi
mov    $0x4,%esi
xor    %eax,%eax
call   1040 <printf@plt>
test   $0x40000000,%r14d
je     1af7 <print_mx3+0x9d7>
lea    0x1998(%rip),%rdi
mov    $0x4,%esi
xor    %eax,%eax
call   1040 <printf@plt>
test   %r14d,%r14d
jns    1b08 <print_mx3+0x9e8>
lea    0x19b6(%rip),%rdi
mov    $0x8,%esi
xor    %eax,%eax
pop    %rbx
pop    %r12
pop    %r14
pop    %r15
pop    %rbp
jmp    1040 <printf@plt>
lea    0x18d6(%rip),%rdi
mov    $0x1,%esi
xor    %eax,%eax
call   1040 <printf@plt>
test   $0x2000000,%r14d
jne    1a32 <print_mx3+0x912>
lea    0x1a05(%rip),%rdi
call   1030 <puts@plt>
test   $0x4000000,%r14d
jne    1a52 <print_mx3+0x932>
lea    0x1a1f(%rip),%rdi
call   1030 <puts@plt>
test   $0x40000000,%r14d
jne    1a72 <print_mx3+0x952>
lea    0x1a34(%rip),%rdi
call   1030 <puts@plt>
test   %r14d,%r14d
js     1a8a <print_mx3+0x96a>
lea    0x1a58(%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 disable\0A\00"
@.str.33 = [49 x i8] c" %u Clock switching disable\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 = [41 x i8] c" %u Watchdog enable\0A\00"
@.str.56 = [20 x i8] c" DEVCFG2 = %08x\0A\00"
@.str.57 = [42 x i8] c" %u PLL divider: 1/1\0A\00"
@.str.58 = [42 x i8] c" %u PLL divider: 1/2\0A\00"
@.str.59 = [42 x i8] c" %u PLL divider: 1/3\0A\00"
@.str.60 = [42 x i8] c" %u PLL divider: 1/4\0A\00"
@.str.61 = [42 x i8] c" %u PLL divider: 1/5\0A\00"
@.str.62 = [42 x i8] c" %u PLL divider: 1/6\0A\00"
@.str.63 = [43 x i8] c" %u PLL divider: 1/10\0A\00"
@.str.64 = [43 x i8] c" %u PLL divider: 1/12\0A\00"
@.str.65 = [45 x i8] c" %u PLL multiplier: 15x\0A\00"
@.str.66 = [45 x i8] c" %u PLL multiplier: 16x\0A\00"
@.str.67 = [45 x i8] c" %u PLL multiplier: 17x\0A\00"
@.str.68 = [45 x i8] c" %u PLL multiplier: 18x\0A\00"
@.str.69 = [45 x i8] c" %u PLL multiplier: 19x\0A\00"
@.str.70 = [45 x i8] c" %u PLL multiplier: 20x\0A\00"
@.str.71 = [45 x i8] c" %u PLL multiplier: 21x\0A\00"
@.str.72 = [45 x i8] c" %u PLL multiplier: 24x\0A\00"
@.str.73 = [46 x i8] c" %u USB PLL divider: 1/1\0A\00"
@.str.74 = [46 x i8] c" %u USB PLL divider: 1/2\0A\00"
@.str.75 = [46 x i8] c" %u USB PLL divider: 1/3\0A\00"
@.str.76 = [46 x i8] c" %u USB PLL divider: 1/4\0A\00"
@.str.77 = [46 x i8] c" %u USB PLL divider: 1/5\0A\00"
@.str.78 = [46 x i8] c" %u USB PLL divider: 1/6\0A\00"
@.str.79 = [47 x i8] c" %u USB PLL divider: 1/10\0A\00"
@.str.80 = [47 x i8] c" %u USB PLL divider: 1/12\0A\00"
@.str.81 = [41 x i8] c" %u Disable USB PLL\0A\00"
@.str.82 = [39 x i8] c" Enable USB PLL\0A\00"
@.str.83 = [45 x i8] c" %u PLL postscaler: 1/1\0A\00"
@.str.84 = [45 x i8] c" %u PLL postscaler: 1/2\0A\00"
@.str.85 = [45 x i8] c" %u PLL postscaler: 1/4\0A\00"
@.str.86 = [45 x i8] c" %u PLL postscaler: 1/8\0A\00"
@.str.87 = [46 x i8] c" %u PLL postscaler: 1/16\0A\00"
@.str.88 = [46 x i8] c" %u PLL postscaler: 1/32\0A\00"
@.str.89 = [46 x i8] c" %u PLL postscaler: 1/64\0A\00"
@.str.90 = [47 x i8] c" %u PLL postscaler: 1/128\0A\00"
@.str.91 = [20 x i8] c" DEVCFG3 = %08x\0A\00"
@.str.92 = [40 x i8] c" %04x User-defined ID\0A\00"
@.str.93 = [57 x i8] c" %u All irqs assigned to shadow set\0A\00"
@.str.94 = [61 x i8] c" %u Assign irq priority 1 to shadow set\0A\00"
@.str.95 = [61 x i8] c" %u Assign irq priority 2 to shadow set\0A\00"
@.str.96 = [61 x i8] c" %u Assign irq priority 3 to shadow set\0A\00"
@.str.97 = [61 x i8] c" %u Assign irq priority 4 to shadow set\0A\00"
@.str.98 = [61 x i8] c" %u Assign irq priority 5 to shadow set\0A\00"
@.str.99 = [61 x i8] c" %u Assign irq priority 6 to shadow set\0A\00"
@.str.100 = [61 x i8] c" %u Assign irq priority 7 to shadow set\0A\00"
@.str.101 = [46 x i8] c" %u Ethernet MII enabled\0A\00"
@.str.102 = [46 x i8] c" Ethernet RMII enabled\0A\00"
@.str.103 = [51 x i8] c" %u Default Ethernet i/o pins\0A\00"
@.str.104 = [52 x i8] c" Alternate Ethernet i/o pins\0A\00"
@.str.105 = [46 x i8] c" %u Default CAN i/o pins\0A\00"
@.str.106 = [47 x i8] c" Alternate CAN i/o pins\0A\00"
@.str.107 = [54 x i8] c" %u USBID pin: controlled by USB\0A\00"
@.str.108 = [54 x i8] c" USBID pin: controlled by port\0A\00"
@.str.109 = [55 x i8] c" %u VBuson pin: controlled by USB\0A\00"
@.str.110 = [55 x i8] c" VBuson pin: controlled by port\0A\00"
define void @print_mx3(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, 1044480
%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, 1044480
%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, 16384
%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 4)
br label %174
174: ; preds = %172, %168
%175 = load i32, i32* %20
%176 = and i32 %175, 32768
%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 8)
br label %180
180: ; preds = %178, %174
%181 = load i32, i32* %20
%182 = and i32 %181, 2031616
switch i32 %182, label %225 [
i32 0, label %183
i32 65536, label %185
i32 131072, label %187
i32 196608, label %189
i32 262144, label %191
i32 327680, label %193
i32 393216, label %195
i32 458752, label %197
i32 524288, label %199
i32 589824, label %201
i32 655360, label %203
i32 720896, label %205
i32 786432, label %207
i32 851968, label %209
i32 917504, label %211
i32 983040, label %213
i32 1048576, label %215
i32 1114112, label %217
i32 1179648, label %219
i32 1245184, label %221
i32 1310720, label %223
]
183: ; preds = %180
%184 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.34, i64 0, i64 0), i32 0)
br label %225
185: ; preds = %180
%186 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.35, i64 0, i64 0), i32 1)
br label %225
187: ; preds = %180
%188 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.36, i64 0, i64 0), i32 2)
br label %225
189: ; preds = %180
%190 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.37, i64 0, i64 0), i32 3)
br label %225
191: ; preds = %180
%192 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.38, i64 0, i64 0), i32 4)
br label %225
193: ; preds = %180
%194 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.39, i64 0, i64 0), i32 5)
br label %225
195: ; preds = %180
%196 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.40, i64 0, i64 0), i32 6)
br label %225
197: ; preds = %180
%198 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.41, i64 0, i64 0), i32 7)
br label %225
199: ; preds = %180
%200 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.42, i64 0, i64 0), i32 8)
br label %225
201: ; preds = %180
%202 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.43, i64 0, i64 0), i32 9)
br label %225
203: ; preds = %180
%204 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([52 x i8], [52 x i8]* @.str.44, i64 0, i64 0), i32 10)
br label %225
205: ; preds = %180
%206 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([52 x i8], [52 x i8]* @.str.45, i64 0, i64 0), i32 11)
br label %225
207: ; preds = %180
%208 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([52 x i8], [52 x i8]* @.str.46, i64 0, i64 0), i32 12)
br label %225
209: ; preds = %180
%210 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([52 x i8], [52 x i8]* @.str.47, i64 0, i64 0), i32 13)
br label %225
211: ; preds = %180
%212 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([53 x i8], [53 x i8]* @.str.48, i64 0, i64 0), i32 14)
br label %225
213: ; preds = %180
%214 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([53 x i8], [53 x i8]* @.str.49, i64 0, i64 0), i32 15)
br label %225
215: ; preds = %180
%216 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([53 x i8], [53 x i8]* @.str.50, i64 0, i64 0), i32 16)
br label %225
217: ; preds = %180
%218 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.51, i64 0, i64 0), i32 17)
br label %225
219: ; preds = %180
%220 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.52, i64 0, i64 0), i32 18)
br label %225
221: ; preds = %180
%222 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.53, i64 0, i64 0), i32 19)
br label %225
223: ; preds = %180
%224 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.54, i64 0, i64 0), i32 20)
br label %225
225: ; preds = %180, %223, %221, %219, %217, %215, %213, %211, %209, %207, %205, %203, %201, %199, %197, %195, %193, %191, %189, %187, %185, %183
%226 = load i32, i32* %20
%227 = and i32 %226, 8388608
%228 = icmp ne i32 %227, 0
br i1 %228, label %229, label %231
229: ; preds = %225
%230 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str.55, i64 0, i64 0), i32 8)
br label %231
231: ; preds = %229, %225
%232 = load i32, i32* %21
%233 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.56, i64 0, i64 0), i32 %232)
%234 = load i32, i32* %21
%235 = and i32 %234, 7
switch i32 %235, label %252 [
i32 0, label %236
i32 1, label %238
i32 2, label %240
i32 3, label %242
i32 4, label %244
i32 5, label %246
i32 6, label %248
i32 7, label %250
]
236: ; preds = %231
%237 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.57, i64 0, i64 0), i32 0)
br label %252
238: ; preds = %231
%239 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.58, i64 0, i64 0), i32 1)
br label %252
240: ; preds = %231
%241 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.59, i64 0, i64 0), i32 2)
br label %252
242: ; preds = %231
%243 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.60, i64 0, i64 0), i32 3)
br label %252
244: ; preds = %231
%245 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.61, i64 0, i64 0), i32 4)
br label %252
246: ; preds = %231
%247 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.62, i64 0, i64 0), i32 5)
br label %252
248: ; preds = %231
%249 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([43 x i8], [43 x i8]* @.str.63, i64 0, i64 0), i32 6)
br label %252
250: ; preds = %231
%251 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([43 x i8], [43 x i8]* @.str.64, i64 0, i64 0), i32 7)
br label %252
252: ; preds = %231, %250, %248, %246, %244, %242, %240, %238, %236
%253 = load i32, i32* %21
%254 = and i32 %253, 112
switch i32 %254, label %271 [
i32 0, label %255
i32 16, label %257
i32 32, label %259
i32 48, label %261
i32 64, label %263
i32 80, label %265
i32 96, label %267
i32 112, label %269
]
255: ; preds = %252
%256 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.65, i64 0, i64 0), i32 0)
br label %271
257: ; preds = %252
%258 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.66, i64 0, i64 0), i32 1)
br label %271
259: ; preds = %252
%260 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.67, i64 0, i64 0), i32 2)
br label %271
261: ; preds = %252
%262 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.68, i64 0, i64 0), i32 3)
br label %271
263: ; preds = %252
%264 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.69, i64 0, i64 0), i32 4)
br label %271
265: ; preds = %252
%266 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.70, i64 0, i64 0), i32 5)
br label %271
267: ; preds = %252
%268 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.71, i64 0, i64 0), i32 6)
br label %271
269: ; preds = %252
%270 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.72, i64 0, i64 0), i32 7)
br label %271
271: ; preds = %252, %269, %267, %265, %263, %261, %259, %257, %255
%272 = load i32, i32* %21
%273 = and i32 %272, 1792
switch i32 %273, label %290 [
i32 0, label %274
i32 256, label %276
i32 512, label %278
i32 768, label %280
i32 1024, label %282
i32 1280, label %284
i32 1536, label %286
i32 1792, label %288
]
274: ; preds = %271
%275 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.73, i64 0, i64 0), i32 0)
br label %290
276: ; preds = %271
%277 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.74, i64 0, i64 0), i32 1)
br label %290
278: ; preds = %271
%279 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.75, i64 0, i64 0), i32 2)
br label %290
280: ; preds = %271
%281 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.76, i64 0, i64 0), i32 3)
br label %290
282: ; preds = %271
%283 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.77, i64 0, i64 0), i32 4)
br label %290
284: ; preds = %271
%285 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.78, i64 0, i64 0), i32 5)
br label %290
286: ; preds = %271
%287 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.79, i64 0, i64 0), i32 6)
br label %290
288: ; preds = %271
%289 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.80, i64 0, i64 0), i32 7)
br label %290
290: ; preds = %271, %288, %286, %284, %282, %280, %278, %276, %274
%291 = load i32, i32* %21
%292 = and i32 %291, 32768
%293 = icmp ne i32 %292, 0
br i1 %293, label %294, label %296
294: ; preds = %290
%295 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str.81, i64 0, i64 0), i32 8)
br label %298
296: ; preds = %290
%297 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([39 x i8], [39 x i8]* @.str.82, i64 0, i64 0))
br label %298
298: ; preds = %296, %294
%299 = load i32, i32* %21
%300 = and i32 %299, 458752
switch i32 %300, label %317 [
i32 0, label %301
i32 65536, label %303
i32 131072, label %305
i32 196608, label %307
i32 262144, label %309
i32 327680, label %311
i32 393216, label %313
i32 458752, label %315
]
301: ; preds = %298
%302 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.83, i64 0, i64 0), i32 0)
br label %317
303: ; preds = %298
%304 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.84, i64 0, i64 0), i32 1)
br label %317
305: ; preds = %298
%306 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.85, i64 0, i64 0), i32 2)
br label %317
307: ; preds = %298
%308 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.86, i64 0, i64 0), i32 3)
br label %317
309: ; preds = %298
%310 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.87, i64 0, i64 0), i32 4)
br label %317
311: ; preds = %298
%312 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.88, i64 0, i64 0), i32 5)
br label %317
313: ; preds = %298
%314 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.89, i64 0, i64 0), i32 6)
br label %317
315: ; preds = %298
%316 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.90, i64 0, i64 0), i32 7)
br label %317
317: ; preds = %298, %315, %313, %311, %309, %307, %305, %303, %301
%318 = load i32, i32* %22
%319 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.91, i64 0, i64 0), i32 %318)
%320 = load i32, i32* %22
%321 = xor i32 %320, -1
%322 = and i32 %321, 65535
%323 = icmp ne i32 %322, 0
br i1 %323, label %324, label %328
324: ; preds = %317
%325 = load i32, i32* %22
%326 = and i32 %325, 65535
%327 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.92, i64 0, i64 0), i32 %326)
br label %328
328: ; preds = %324, %317
%329 = load i32, i32* %22
%330 = and i32 %329, 458752
switch i32 %330, label %347 [
i32 0, label %331
i32 65536, label %333
i32 131072, label %335
i32 196608, label %337
i32 262144, label %339
i32 327680, label %341
i32 393216, label %343
i32 458752, label %345
]
331: ; preds = %328
%332 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([57 x i8], [57 x i8]* @.str.93, i64 0, i64 0), i32 0)
br label %347
333: ; preds = %328
%334 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([61 x i8], [61 x i8]* @.str.94, i64 0, i64 0), i32 1)
br label %347
335: ; preds = %328
%336 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([61 x i8], [61 x i8]* @.str.95, i64 0, i64 0), i32 2)
br label %347
337: ; preds = %328
%338 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([61 x i8], [61 x i8]* @.str.96, i64 0, i64 0), i32 3)
br label %347
339: ; preds = %328
%340 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([61 x i8], [61 x i8]* @.str.97, i64 0, i64 0), i32 4)
br label %347
341: ; preds = %328
%342 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([61 x i8], [61 x i8]* @.str.98, i64 0, i64 0), i32 5)
br label %347
343: ; preds = %328
%344 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([61 x i8], [61 x i8]* @.str.99, i64 0, i64 0), i32 6)
br label %347
345: ; preds = %328
%346 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([61 x i8], [61 x i8]* @.str.100, i64 0, i64 0), i32 7)
br label %347
347: ; preds = %328, %345, %343, %341, %339, %337, %335, %333, %331
%348 = load i32, i32* %22
%349 = and i32 %348, 16777216
%350 = icmp ne i32 %349, 0
br i1 %350, label %351, label %353
351: ; preds = %347
%352 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.101, i64 0, i64 0), i32 1)
br label %355
353: ; preds = %347
%354 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.102, i64 0, i64 0))
br label %355
355: ; preds = %353, %351
%356 = load i32, i32* %22
%357 = and i32 %356, 33554432
%358 = icmp ne i32 %357, 0
br i1 %358, label %359, label %361
359: ; preds = %355
%360 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.103, i64 0, i64 0), i32 2)
br label %363
361: ; preds = %355
%362 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([52 x i8], [52 x i8]* @.str.104, i64 0, i64 0))
br label %363
363: ; preds = %361, %359
%364 = load i32, i32* %22
%365 = and i32 %364, 67108864
%366 = icmp ne i32 %365, 0
br i1 %366, label %367, label %369
367: ; preds = %363
%368 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.105, i64 0, i64 0), i32 4)
br label %371
369: ; preds = %363
%370 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.106, i64 0, i64 0))
br label %371
371: ; preds = %369, %367
%372 = load i32, i32* %22
%373 = and i32 %372, 1073741824
%374 = icmp ne i32 %373, 0
br i1 %374, label %375, label %377
375: ; preds = %371
%376 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.107, i64 0, i64 0), i32 4)
br label %379
377: ; preds = %371
%378 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.108, i64 0, i64 0))
br label %379
379: ; preds = %377, %375
%380 = load i32, i32* %22
%381 = and i32 %380, -2147483648
%382 = icmp ne i32 %381, 0
br i1 %382, label %383, label %385
383: ; preds = %379
%384 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.109, i64 0, i64 0), i32 8)
br label %387
385: ; preds = %379
%386 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.110, i64 0, i64 0))
br label %387
387: ; preds = %385, %383
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 disable\0A\00"
@.str.33 = [49 x i8] c" %u Clock switching disable\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 = [41 x i8] c" %u Watchdog enable\0A\00"
@.str.56 = [20 x i8] c" DEVCFG2 = %08x\0A\00"
@.str.57 = [42 x i8] c" %u PLL divider: 1/1\0A\00"
@.str.58 = [42 x i8] c" %u PLL divider: 1/2\0A\00"
@.str.59 = [42 x i8] c" %u PLL divider: 1/3\0A\00"
@.str.60 = [42 x i8] c" %u PLL divider: 1/4\0A\00"
@.str.61 = [42 x i8] c" %u PLL divider: 1/5\0A\00"
@.str.62 = [42 x i8] c" %u PLL divider: 1/6\0A\00"
@.str.63 = [43 x i8] c" %u PLL divider: 1/10\0A\00"
@.str.64 = [43 x i8] c" %u PLL divider: 1/12\0A\00"
@.str.65 = [45 x i8] c" %u PLL multiplier: 15x\0A\00"
@.str.66 = [45 x i8] c" %u PLL multiplier: 16x\0A\00"
@.str.67 = [45 x i8] c" %u PLL multiplier: 17x\0A\00"
@.str.68 = [45 x i8] c" %u PLL multiplier: 18x\0A\00"
@.str.69 = [45 x i8] c" %u PLL multiplier: 19x\0A\00"
@.str.70 = [45 x i8] c" %u PLL multiplier: 20x\0A\00"
@.str.71 = [45 x i8] c" %u PLL multiplier: 21x\0A\00"
@.str.72 = [45 x i8] c" %u PLL multiplier: 24x\0A\00"
@.str.73 = [46 x i8] c" %u USB PLL divider: 1/1\0A\00"
@.str.74 = [46 x i8] c" %u USB PLL divider: 1/2\0A\00"
@.str.75 = [46 x i8] c" %u USB PLL divider: 1/3\0A\00"
@.str.76 = [46 x i8] c" %u USB PLL divider: 1/4\0A\00"
@.str.77 = [46 x i8] c" %u USB PLL divider: 1/5\0A\00"
@.str.78 = [46 x i8] c" %u USB PLL divider: 1/6\0A\00"
@.str.79 = [47 x i8] c" %u USB PLL divider: 1/10\0A\00"
@.str.80 = [47 x i8] c" %u USB PLL divider: 1/12\0A\00"
@.str.81 = [41 x i8] c" %u Disable USB PLL\0A\00"
@.str.83 = [45 x i8] c" %u PLL postscaler: 1/1\0A\00"
@.str.84 = [45 x i8] c" %u PLL postscaler: 1/2\0A\00"
@.str.85 = [45 x i8] c" %u PLL postscaler: 1/4\0A\00"
@.str.86 = [45 x i8] c" %u PLL postscaler: 1/8\0A\00"
@.str.87 = [46 x i8] c" %u PLL postscaler: 1/16\0A\00"
@.str.88 = [46 x i8] c" %u PLL postscaler: 1/32\0A\00"
@.str.89 = [46 x i8] c" %u PLL postscaler: 1/64\0A\00"
@.str.90 = [47 x i8] c" %u PLL postscaler: 1/128\0A\00"
@.str.91 = [20 x i8] c" DEVCFG3 = %08x\0A\00"
@.str.92 = [40 x i8] c" %04x User-defined ID\0A\00"
@.str.93 = [57 x i8] c" %u All irqs assigned to shadow set\0A\00"
@.str.94 = [61 x i8] c" %u Assign irq priority 1 to shadow set\0A\00"
@.str.95 = [61 x i8] c" %u Assign irq priority 2 to shadow set\0A\00"
@.str.96 = [61 x i8] c" %u Assign irq priority 3 to shadow set\0A\00"
@.str.97 = [61 x i8] c" %u Assign irq priority 4 to shadow set\0A\00"
@.str.98 = [61 x i8] c" %u Assign irq priority 5 to shadow set\0A\00"
@.str.99 = [61 x i8] c" %u Assign irq priority 6 to shadow set\0A\00"
@.str.100 = [61 x i8] c" %u Assign irq priority 7 to shadow set\0A\00"
@.str.101 = [46 x i8] c" %u Ethernet MII enabled\0A\00"
@.str.103 = [51 x i8] c" %u Default Ethernet i/o pins\0A\00"
@.str.105 = [46 x i8] c" %u Default CAN i/o pins\0A\00"
@.str.107 = [54 x i8] c" %u USBID pin: controlled by USB\0A\00"
@.str.109 = [55 x i8] c" %u VBuson pin: controlled by USB\0A\00"
@str = [38 x i8] c" Enable USB PLL\00"
@str.111 = [45 x i8] c" Ethernet RMII enabled\00"
@str.112 = [51 x i8] c" Alternate Ethernet i/o pins\00"
@str.113 = [46 x i8] c" Alternate CAN i/o pins\00"
@str.114 = [53 x i8] c" USBID pin: controlled by port\00"
@str.115 = [54 x i8] c" VBuson pin: controlled by port\00"
@str.116 = [36 x i8] c" Code protect\00"
@str.117 = [48 x i8] c" Boot flash write protect\00"
@reltable.print_mx3 = [4 x i32] [i32 trunc (i64 sub (i64 ptrtoint ([40 x i8]* @.str.4 to i64), i64 ptrtoint ([4 x i32]* @reltable.print_mx3 to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([40 x i8]* @.str.5 to i64), i64 ptrtoint ([4 x i32]* @reltable.print_mx3 to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([40 x i8]* @.str.6 to i64), i64 ptrtoint ([4 x i32]* @reltable.print_mx3 to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([40 x i8]* @.str.7 to i64), i64 ptrtoint ([4 x i32]* @reltable.print_mx3 to i64)) to i32)]
define void @print_mx3(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_mx3 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, 1044480
%40 = icmp eq i32 %39, 0
br i1 %40, label %44, label %41
41: ; preds = %31
%42 = and i32 %0, 1044480
%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.117, 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.116, 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, 16384
%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 4)
br label %118
118: ; preds = %116, %113
%119 = and i32 %1, 32768
%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 8)
br label %123
123: ; preds = %121, %118
%124 = lshr i32 %1, 16
%125 = and i32 %124, 31
switch i32 %125, label %168 [
i32 0, label %126
i32 1, label %128
i32 2, label %130
i32 3, label %132
i32 4, label %134
i32 5, label %136
i32 6, label %138
i32 7, label %140
i32 8, label %142
i32 9, label %144
i32 10, label %146
i32 11, label %148
i32 12, label %150
i32 13, label %152
i32 14, label %154
i32 15, label %156
i32 16, label %158
i32 17, label %160
i32 18, label %162
i32 19, label %164
i32 20, label %166
]
126: ; preds = %123
%127 = 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 %168
128: ; preds = %123
%129 = 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 %168
130: ; preds = %123
%131 = 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 %168
132: ; preds = %123
%133 = 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 %168
134: ; preds = %123
%135 = 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 %168
136: ; preds = %123
%137 = 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 %168
138: ; preds = %123
%139 = 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 %168
140: ; preds = %123
%141 = 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 %168
142: ; preds = %123
%143 = 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 %168
144: ; preds = %123
%145 = 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 %168
146: ; preds = %123
%147 = 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 %168
148: ; preds = %123
%149 = 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 %168
150: ; preds = %123
%151 = 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 %168
152: ; preds = %123
%153 = 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 %168
154: ; preds = %123
%155 = 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 %168
156: ; preds = %123
%157 = 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 %168
158: ; preds = %123
%159 = 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 %168
160: ; preds = %123
%161 = 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 %168
162: ; preds = %123
%163 = 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 %168
164: ; preds = %123
%165 = 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 %168
166: ; preds = %123
%167 = 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 %168
168: ; preds = %123, %166, %164, %162, %160, %158, %156, %154, %152, %150, %148, %146, %144, %142, %140, %138, %136, %134, %132, %130, %128, %126
%169 = and i32 %1, 8388608
%170 = icmp eq i32 %169, 0
br i1 %170, label %173, label %171
171: ; preds = %168
%172 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([41 x i8], [41 x i8]* @.str.55, i64 0, i64 0), i32 8)
br label %173
173: ; preds = %171, %168
%174 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([20 x i8], [20 x i8]* @.str.56, i64 0, i64 0), i32 %2)
%175 = and i32 %2, 7
switch i32 %175, label %192 [
i32 0, label %176
i32 1, label %178
i32 2, label %180
i32 3, label %182
i32 4, label %184
i32 5, label %186
i32 6, label %188
i32 7, label %190
]
176: ; preds = %173
%177 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([42 x i8], [42 x i8]* @.str.57, i64 0, i64 0), i32 0)
br label %193
178: ; preds = %173
%179 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([42 x i8], [42 x i8]* @.str.58, i64 0, i64 0), i32 1)
br label %193
180: ; preds = %173
%181 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([42 x i8], [42 x i8]* @.str.59, i64 0, i64 0), i32 2)
br label %193
182: ; preds = %173
%183 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([42 x i8], [42 x i8]* @.str.60, i64 0, i64 0), i32 3)
br label %193
184: ; preds = %173
%185 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([42 x i8], [42 x i8]* @.str.61, i64 0, i64 0), i32 4)
br label %193
186: ; preds = %173
%187 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([42 x i8], [42 x i8]* @.str.62, i64 0, i64 0), i32 5)
br label %193
188: ; preds = %173
%189 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([43 x i8], [43 x i8]* @.str.63, i64 0, i64 0), i32 6)
br label %193
190: ; preds = %173
%191 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([43 x i8], [43 x i8]* @.str.64, i64 0, i64 0), i32 7)
br label %193
192: ; preds = %173
unreachable
193: ; preds = %190, %188, %186, %184, %182, %180, %178, %176
%194 = lshr i32 %2, 4
%195 = and i32 %194, 7
switch i32 %195, label %212 [
i32 0, label %196
i32 1, label %198
i32 2, label %200
i32 3, label %202
i32 4, label %204
i32 5, label %206
i32 6, label %208
i32 7, label %210
]
196: ; preds = %193
%197 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([45 x i8], [45 x i8]* @.str.65, i64 0, i64 0), i32 0)
br label %213
198: ; preds = %193
%199 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([45 x i8], [45 x i8]* @.str.66, i64 0, i64 0), i32 1)
br label %213
200: ; preds = %193
%201 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([45 x i8], [45 x i8]* @.str.67, i64 0, i64 0), i32 2)
br label %213
202: ; preds = %193
%203 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([45 x i8], [45 x i8]* @.str.68, i64 0, i64 0), i32 3)
br label %213
204: ; preds = %193
%205 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([45 x i8], [45 x i8]* @.str.69, i64 0, i64 0), i32 4)
br label %213
206: ; preds = %193
%207 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([45 x i8], [45 x i8]* @.str.70, i64 0, i64 0), i32 5)
br label %213
208: ; preds = %193
%209 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([45 x i8], [45 x i8]* @.str.71, i64 0, i64 0), i32 6)
br label %213
210: ; preds = %193
%211 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([45 x i8], [45 x i8]* @.str.72, i64 0, i64 0), i32 7)
br label %213
212: ; preds = %193
unreachable
213: ; preds = %210, %208, %206, %204, %202, %200, %198, %196
%214 = lshr i32 %2, 8
%215 = and i32 %214, 7
switch i32 %215, label %232 [
i32 0, label %216
i32 1, label %218
i32 2, label %220
i32 3, label %222
i32 4, label %224
i32 5, label %226
i32 6, label %228
i32 7, label %230
]
216: ; preds = %213
%217 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([46 x i8], [46 x i8]* @.str.73, i64 0, i64 0), i32 0)
br label %233
218: ; preds = %213
%219 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([46 x i8], [46 x i8]* @.str.74, i64 0, i64 0), i32 1)
br label %233
220: ; preds = %213
%221 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([46 x i8], [46 x i8]* @.str.75, i64 0, i64 0), i32 2)
br label %233
222: ; preds = %213
%223 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([46 x i8], [46 x i8]* @.str.76, i64 0, i64 0), i32 3)
br label %233
224: ; preds = %213
%225 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([46 x i8], [46 x i8]* @.str.77, i64 0, i64 0), i32 4)
br label %233
226: ; preds = %213
%227 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([46 x i8], [46 x i8]* @.str.78, i64 0, i64 0), i32 5)
br label %233
228: ; preds = %213
%229 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([47 x i8], [47 x i8]* @.str.79, i64 0, i64 0), i32 6)
br label %233
230: ; preds = %213
%231 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([47 x i8], [47 x i8]* @.str.80, i64 0, i64 0), i32 7)
br label %233
232: ; preds = %213
unreachable
233: ; preds = %230, %228, %226, %224, %222, %220, %218, %216
%234 = and i32 %2, 32768
%235 = icmp eq i32 %234, 0
br i1 %235, label %238, label %236
236: ; preds = %233
%237 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([41 x i8], [41 x i8]* @.str.81, i64 0, i64 0), i32 8)
br label %240
238: ; preds = %233
%239 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([38 x i8], [38 x i8]* @str, i64 0, i64 0))
br label %240
240: ; preds = %238, %236
%241 = lshr i32 %2, 16
%242 = and i32 %241, 7
switch i32 %242, label %259 [
i32 0, label %243
i32 1, label %245
i32 2, label %247
i32 3, label %249
i32 4, label %251
i32 5, label %253
i32 6, label %255
i32 7, label %257
]
243: ; preds = %240
%244 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([45 x i8], [45 x i8]* @.str.83, i64 0, i64 0), i32 0)
br label %260
245: ; preds = %240
%246 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([45 x i8], [45 x i8]* @.str.84, i64 0, i64 0), i32 1)
br label %260
247: ; preds = %240
%248 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([45 x i8], [45 x i8]* @.str.85, i64 0, i64 0), i32 2)
br label %260
249: ; preds = %240
%250 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([45 x i8], [45 x i8]* @.str.86, i64 0, i64 0), i32 3)
br label %260
251: ; preds = %240
%252 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([46 x i8], [46 x i8]* @.str.87, i64 0, i64 0), i32 4)
br label %260
253: ; preds = %240
%254 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([46 x i8], [46 x i8]* @.str.88, i64 0, i64 0), i32 5)
br label %260
255: ; preds = %240
%256 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([46 x i8], [46 x i8]* @.str.89, i64 0, i64 0), i32 6)
br label %260
257: ; preds = %240
%258 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([47 x i8], [47 x i8]* @.str.90, i64 0, i64 0), i32 7)
br label %260
259: ; preds = %240
unreachable
260: ; preds = %257, %255, %253, %251, %249, %247, %245, %243
%261 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([20 x i8], [20 x i8]* @.str.91, i64 0, i64 0), i32 %3)
%262 = and i32 %3, 65535
%263 = icmp eq i32 %262, 65535
br i1 %263, label %266, label %264
264: ; preds = %260
%265 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([40 x i8], [40 x i8]* @.str.92, i64 0, i64 0), i32 %262)
br label %266
266: ; preds = %264, %260
%267 = lshr i32 %3, 16
%268 = and i32 %267, 7
switch i32 %268, label %285 [
i32 0, label %269
i32 1, label %271
i32 2, label %273
i32 3, label %275
i32 4, label %277
i32 5, label %279
i32 6, label %281
i32 7, label %283
]
269: ; preds = %266
%270 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([57 x i8], [57 x i8]* @.str.93, i64 0, i64 0), i32 0)
br label %286
271: ; preds = %266
%272 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([61 x i8], [61 x i8]* @.str.94, i64 0, i64 0), i32 1)
br label %286
273: ; preds = %266
%274 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([61 x i8], [61 x i8]* @.str.95, i64 0, i64 0), i32 2)
br label %286
275: ; preds = %266
%276 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([61 x i8], [61 x i8]* @.str.96, i64 0, i64 0), i32 3)
br label %286
277: ; preds = %266
%278 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([61 x i8], [61 x i8]* @.str.97, i64 0, i64 0), i32 4)
br label %286
279: ; preds = %266
%280 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([61 x i8], [61 x i8]* @.str.98, i64 0, i64 0), i32 5)
br label %286
281: ; preds = %266
%282 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([61 x i8], [61 x i8]* @.str.99, i64 0, i64 0), i32 6)
br label %286
283: ; preds = %266
%284 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([61 x i8], [61 x i8]* @.str.100, i64 0, i64 0), i32 7)
br label %286
285: ; preds = %266
unreachable
286: ; preds = %283, %281, %279, %277, %275, %273, %271, %269
%287 = and i32 %3, 16777216
%288 = icmp eq i32 %287, 0
br i1 %288, label %291, label %289
289: ; preds = %286
%290 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([46 x i8], [46 x i8]* @.str.101, i64 0, i64 0), i32 1)
br label %293
291: ; preds = %286
%292 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([45 x i8], [45 x i8]* @str.111, i64 0, i64 0))
br label %293
293: ; preds = %291, %289
%294 = and i32 %3, 33554432
%295 = icmp eq i32 %294, 0
br i1 %295, label %298, label %296
296: ; preds = %293
%297 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([51 x i8], [51 x i8]* @.str.103, i64 0, i64 0), i32 2)
br label %300
298: ; preds = %293
%299 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([51 x i8], [51 x i8]* @str.112, i64 0, i64 0))
br label %300
300: ; preds = %298, %296
%301 = and i32 %3, 67108864
%302 = icmp eq i32 %301, 0
br i1 %302, label %305, label %303
303: ; preds = %300
%304 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([46 x i8], [46 x i8]* @.str.105, i64 0, i64 0), i32 4)
br label %307
305: ; preds = %300
%306 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([46 x i8], [46 x i8]* @str.113, i64 0, i64 0))
br label %307
307: ; preds = %305, %303
%308 = and i32 %3, 1073741824
%309 = icmp eq i32 %308, 0
br i1 %309, label %312, label %310
310: ; preds = %307
%311 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([54 x i8], [54 x i8]* @.str.107, i64 0, i64 0), i32 4)
br label %314
312: ; preds = %307
%313 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([53 x i8], [53 x i8]* @str.114, i64 0, i64 0))
br label %314
314: ; preds = %312, %310
%315 = icmp sgt i32 %3, -1
br i1 %315, label %318, label %316
316: ; preds = %314
%317 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([55 x i8], [55 x i8]* @.str.109, i64 0, i64 0), i32 8)
br label %320
318: ; preds = %314
%319 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([54 x i8], [54 x i8]* @str.115, i64 0, i64 0))
br label %320
320: ; preds = %318, %316
ret void
}