void print_mx3(unsigned cfg0, unsigned cfg1, unsigned cfg2, unsigned cfg3) {
  printf("    DEVCFG0 = %08x\n", cfg0);
  if ((~cfg0 & 0x00000003) == 0x00000002)
    printf("                     %u Debugger enabled\n", cfg0 & 0x00000003);
  else
    printf("                     %u Debugger disabled\n", cfg0 & 0x00000003);
  if (~cfg0 & 0x00000004)
    printf("                     %u JTAG disabled\n", cfg0 & 0x00000004);
  switch (~cfg0 & 0x00000018) {
  case 0x00000000:
    printf("                    %02x Use PGC1/PGD1\n", cfg0 & 0x00000018);
    break;
  case 0x00000008:
    printf("                    %02x Use PGC2/PGD2\n", cfg0 & 0x00000018);
    break;
  case 0x00000010:
    printf("                    %02x Use PGC3/PGD3\n", cfg0 & 0x00000018);
    break;
  case 0x00000018:
    printf("                    %02x Use PGC4/PGD4\n", cfg0 & 0x00000018);
    break;
  }
  if (~cfg0 & 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    %edi,-0x4(%rbp)
mov    %esi,-0x8(%rbp)
mov    %edx,-0xc(%rbp)
mov    %ecx,-0x10(%rbp)
mov    -0x4(%rbp),%esi
lea    0x1f76(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x4(%rbp),%eax
xor    $0xffffffff,%eax
and    $0x3,%eax
cmp    $0x2,%eax
jne    1160 <print_mx3+0x50>
mov    -0x4(%rbp),%esi
and    $0x3,%esi
lea    0x1f64(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1174 <print_mx3+0x64>
mov    -0x4(%rbp),%esi
and    $0x3,%esi
lea    0x1f75(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x4(%rbp),%eax
xor    $0xffffffff,%eax
and    $0x4,%eax
cmp    $0x0,%eax
je     119a <print_mx3+0x8a>
mov    -0x4(%rbp),%esi
and    $0x4,%esi
lea    0x1f7a(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x4(%rbp),%eax
not    %eax
and    $0x18,%eax
mov    %eax,%ecx
mov    %rcx,-0x18(%rbp)
sub    $0x18,%eax
ja     1224 <print_mx3+0x114>
mov    -0x18(%rbp),%rax
lea    0x1e44(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    -0x4(%rbp),%esi
and    $0x18,%esi
lea    0x1f62(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1224 <print_mx3+0x114>
mov    -0x4(%rbp),%esi
and    $0x18,%esi
lea    0x1f71(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1224 <print_mx3+0x114>
mov    -0x4(%rbp),%esi
and    $0x18,%esi
lea    0x1f80(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1224 <print_mx3+0x114>
mov    -0x4(%rbp),%esi
and    $0x18,%esi
lea    0x1f8f(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x4(%rbp),%eax
xor    $0xffffffff,%eax
and    $0xff000,%eax
cmp    $0x0,%eax
je     124f <print_mx3+0x13f>
mov    -0x4(%rbp),%esi
and    $0xff000,%esi
lea    0x1f8c(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x4(%rbp),%eax
xor    $0xffffffff,%eax
and    $0x1000000,%eax
cmp    $0x0,%eax
je     1271 <print_mx3+0x161>
lea    0x1f9d(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x4(%rbp),%eax
xor    $0xffffffff,%eax
and    $0x10000000,%eax
cmp    $0x0,%eax
je     1293 <print_mx3+0x183>
lea    0x1fac(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x8(%rbp),%esi
lea    0x1fc0(%rip),%rdi
xor    %eax,%eax
call   1030 <printf@plt>
mov    -0x8(%rbp),%eax
and    $0x7,%eax
mov    %rax,-0x20(%rbp)
sub    $0x7,%eax
ja     1388 <print_mx3+0x278>
mov    -0x20(%rbp),%rax
lea    0x1da2(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x1f9f(%rip),%rdi
xor    %esi,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    139c <print_mx3+0x28c>
lea    0x1fb6(%rip),%rdi
mov    $0x1,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    139c <print_mx3+0x28c>
lea    0x1fe3(%rip),%rdi
mov    $0x2,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    139c <print_mx3+0x28c>
lea    0x1ff7(%rip),%rdi
mov    $0x3,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    139c <print_mx3+0x28c>
lea    0x2014(%rip),%rdi
mov    $0x4,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    139c <print_mx3+0x28c>
lea    0x202a(%rip),%rdi
mov    $0x5,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    139c <print_mx3+0x28c>
lea    0x2043(%rip),%rdi
mov    $0x6,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    139c <print_mx3+0x28c>
lea    0x2069(%rip),%rdi
mov    $0x7,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    139c <print_mx3+0x28c>
mov    -0x8(%rbp),%esi
and    $0x7,%esi
lea    0x2088(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x8(%rbp),%eax
and    $0x20,%eax
cmp    $0x0,%eax
je     13be <print_mx3+0x2ae>
lea    0x208c(%rip),%rdi
mov    $0x2,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x8(%rbp),%eax
and    $0x80,%eax
cmp    $0x0,%eax
je     13e2 <print_mx3+0x2d2>
lea    0x209e(%rip),%rdi
mov    $0x8,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x8(%rbp),%eax
and    $0x300,%eax
mov    %eax,-0x24(%rbp)
je     1431 <print_mx3+0x321>
jmp    13f8 <print_mx3+0x2e8>
mov    -0x24(%rbp),%eax
sub    $0x100,%eax
je     1446 <print_mx3+0x336>
jmp    140b <print_mx3+0x2fb>
mov    -0x24(%rbp),%eax
sub    $0x200,%eax
je     145e <print_mx3+0x34e>
jmp    141e <print_mx3+0x30e>
mov    -0x24(%rbp),%eax
sub    $0x300,%eax
je     1476 <print_mx3+0x366>
jmp    1489 <print_mx3+0x379>
lea    0x207b(%rip),%rdi
xor    %esi,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1489 <print_mx3+0x379>
lea    0x209c(%rip),%rdi
mov    $0x1,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1489 <print_mx3+0x379>
lea    0x20b4(%rip),%rdi
mov    $0x2,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1489 <print_mx3+0x379>
lea    0x20cc(%rip),%rdi
mov    $0x3,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x8(%rbp),%eax
and    $0x400,%eax
cmp    $0x0,%eax
je     14ad <print_mx3+0x39d>
lea    0x20de(%rip),%rdi
mov    $0x4,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x8(%rbp),%eax
and    $0x3000,%eax
mov    %eax,-0x28(%rbp)
je     14fc <print_mx3+0x3ec>
jmp    14c3 <print_mx3+0x3b3>
mov    -0x28(%rbp),%eax
sub    $0x1000,%eax
je     1511 <print_mx3+0x401>
jmp    14d6 <print_mx3+0x3c6>
mov    -0x28(%rbp),%eax
sub    $0x2000,%eax
je     1529 <print_mx3+0x419>
jmp    14e9 <print_mx3+0x3d9>
mov    -0x28(%rbp),%eax
sub    $0x3000,%eax
je     1541 <print_mx3+0x431>
jmp    1554 <print_mx3+0x444>
lea    0x20aa(%rip),%rdi
xor    %esi,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1554 <print_mx3+0x444>
lea    0x20cf(%rip),%rdi
mov    $0x1,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1554 <print_mx3+0x444>
lea    0x20f1(%rip),%rdi
mov    $0x2,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1554 <print_mx3+0x444>
lea    0x2113(%rip),%rdi
mov    $0x3,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x8(%rbp),%eax
and    $0x4000,%eax
cmp    $0x0,%eax
je     1578 <print_mx3+0x468>
lea    0x2129(%rip),%rdi
mov    $0x4,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x8(%rbp),%eax
and    $0x8000,%eax
cmp    $0x0,%eax
je     159c <print_mx3+0x48c>
lea    0x213e(%rip),%rdi
mov    $0x8,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x8(%rbp),%eax
and    $0x1f0000,%eax
mov    %eax,-0x2c(%rbp)
je     172e <print_mx3+0x61e>
jmp    15b2 <print_mx3+0x4a2>
mov    -0x2c(%rbp),%eax
sub    $0x10000,%eax
je     1743 <print_mx3+0x633>
jmp    15c5 <print_mx3+0x4b5>
mov    -0x2c(%rbp),%eax
sub    $0x20000,%eax
je     175b <print_mx3+0x64b>
jmp    15d8 <print_mx3+0x4c8>
mov    -0x2c(%rbp),%eax
sub    $0x30000,%eax
je     1773 <print_mx3+0x663>
jmp    15eb <print_mx3+0x4db>
mov    -0x2c(%rbp),%eax
sub    $0x40000,%eax
je     178b <print_mx3+0x67b>
jmp    15fe <print_mx3+0x4ee>
mov    -0x2c(%rbp),%eax
sub    $0x50000,%eax
je     17a3 <print_mx3+0x693>
jmp    1611 <print_mx3+0x501>
mov    -0x2c(%rbp),%eax
sub    $0x60000,%eax
je     17bb <print_mx3+0x6ab>
jmp    1624 <print_mx3+0x514>
mov    -0x2c(%rbp),%eax
sub    $0x70000,%eax
je     17d3 <print_mx3+0x6c3>
jmp    1637 <print_mx3+0x527>
mov    -0x2c(%rbp),%eax
sub    $0x80000,%eax
je     17eb <print_mx3+0x6db>
jmp    164a <print_mx3+0x53a>
mov    -0x2c(%rbp),%eax
sub    $0x90000,%eax
je     1803 <print_mx3+0x6f3>
jmp    165d <print_mx3+0x54d>
mov    -0x2c(%rbp),%eax
sub    $0xa0000,%eax
je     181b <print_mx3+0x70b>
jmp    1670 <print_mx3+0x560>
mov    -0x2c(%rbp),%eax
sub    $0xb0000,%eax
je     1833 <print_mx3+0x723>
jmp    1683 <print_mx3+0x573>
mov    -0x2c(%rbp),%eax
sub    $0xc0000,%eax
je     184b <print_mx3+0x73b>
jmp    1696 <print_mx3+0x586>
mov    -0x2c(%rbp),%eax
sub    $0xd0000,%eax
je     1863 <print_mx3+0x753>
jmp    16a9 <print_mx3+0x599>
mov    -0x2c(%rbp),%eax
sub    $0xe0000,%eax
je     187b <print_mx3+0x76b>
jmp    16bc <print_mx3+0x5ac>
mov    -0x2c(%rbp),%eax
sub    $0xf0000,%eax
je     1893 <print_mx3+0x783>
jmp    16cf <print_mx3+0x5bf>
mov    -0x2c(%rbp),%eax
sub    $0x100000,%eax
je     18ab <print_mx3+0x79b>
jmp    16e2 <print_mx3+0x5d2>
mov    -0x2c(%rbp),%eax
sub    $0x110000,%eax
je     18c3 <print_mx3+0x7b3>
jmp    16f5 <print_mx3+0x5e5>
mov    -0x2c(%rbp),%eax
sub    $0x120000,%eax
je     18db <print_mx3+0x7cb>
jmp    1708 <print_mx3+0x5f8>
mov    -0x2c(%rbp),%eax
sub    $0x130000,%eax
je     18f3 <print_mx3+0x7e3>
jmp    171b <print_mx3+0x60b>
mov    -0x2c(%rbp),%eax
sub    $0x140000,%eax
je     190b <print_mx3+0x7fb>
jmp    191e <print_mx3+0x80e>
lea    0x1fca(%rip),%rdi
xor    %esi,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    191e <print_mx3+0x80e>
lea    0x1fe6(%rip),%rdi
mov    $0x1,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    191e <print_mx3+0x80e>
lea    0x1fff(%rip),%rdi
mov    $0x2,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    191e <print_mx3+0x80e>
lea    0x2018(%rip),%rdi
mov    $0x3,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    191e <print_mx3+0x80e>
lea    0x2031(%rip),%rdi
mov    $0x4,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    191e <print_mx3+0x80e>
lea    0x204b(%rip),%rdi
mov    $0x5,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    191e <print_mx3+0x80e>
lea    0x2065(%rip),%rdi
mov    $0x6,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    191e <print_mx3+0x80e>
lea    0x207f(%rip),%rdi
mov    $0x7,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    191e <print_mx3+0x80e>
lea    0x209a(%rip),%rdi
mov    $0x8,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    191e <print_mx3+0x80e>
lea    0x20b5(%rip),%rdi
mov    $0x9,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    191e <print_mx3+0x80e>
lea    0x20d0(%rip),%rdi
mov    $0xa,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    191e <print_mx3+0x80e>
lea    0x20ec(%rip),%rdi
mov    $0xb,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    191e <print_mx3+0x80e>
lea    0x2108(%rip),%rdi
mov    $0xc,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    191e <print_mx3+0x80e>
lea    0x2124(%rip),%rdi
mov    $0xd,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    191e <print_mx3+0x80e>
lea    0x2140(%rip),%rdi
mov    $0xe,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    191e <print_mx3+0x80e>
lea    0x215d(%rip),%rdi
mov    $0xf,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    191e <print_mx3+0x80e>
lea    0x217a(%rip),%rdi
mov    $0x10,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    191e <print_mx3+0x80e>
lea    0x2197(%rip),%rdi
mov    $0x11,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    191e <print_mx3+0x80e>
lea    0x21b5(%rip),%rdi
mov    $0x12,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    191e <print_mx3+0x80e>
lea    0x21d3(%rip),%rdi
mov    $0x13,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    191e <print_mx3+0x80e>
lea    0x21f1(%rip),%rdi
mov    $0x14,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x8(%rbp),%eax
and    $0x800000,%eax
cmp    $0x0,%eax
je     1942 <print_mx3+0x832>
lea    0x2204(%rip),%rdi
mov    $0x8,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0xc(%rbp),%esi
lea    0x2217(%rip),%rdi
xor    %eax,%eax
call   1030 <printf@plt>
mov    -0xc(%rbp),%eax
and    $0x7,%eax
mov    %rax,-0x38(%rbp)
sub    $0x7,%eax
ja     1a32 <print_mx3+0x922>
mov    -0x38(%rbp),%rax
lea    0x1713(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x21f6(%rip),%rdi
xor    %esi,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1a32 <print_mx3+0x922>
lea    0x220b(%rip),%rdi
mov    $0x1,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1a32 <print_mx3+0x922>
lea    0x221d(%rip),%rdi
mov    $0x2,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1a32 <print_mx3+0x922>
lea    0x222f(%rip),%rdi
mov    $0x3,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1a32 <print_mx3+0x922>
lea    0x2241(%rip),%rdi
mov    $0x4,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1a32 <print_mx3+0x922>
lea    0x2253(%rip),%rdi
mov    $0x5,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1a32 <print_mx3+0x922>
lea    0x2265(%rip),%rdi
mov    $0x6,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1a32 <print_mx3+0x922>
lea    0x2278(%rip),%rdi
mov    $0x7,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0xc(%rbp),%eax
and    $0x70,%eax
mov    %eax,-0x3c(%rbp)
je     1abd <print_mx3+0x9ad>
jmp    1a46 <print_mx3+0x936>
mov    -0x3c(%rbp),%eax
sub    $0x10,%eax
je     1ad2 <print_mx3+0x9c2>
jmp    1a57 <print_mx3+0x947>
mov    -0x3c(%rbp),%eax
sub    $0x20,%eax
je     1aea <print_mx3+0x9da>
jmp    1a68 <print_mx3+0x958>
mov    -0x3c(%rbp),%eax
sub    $0x30,%eax
je     1b02 <print_mx3+0x9f2>
jmp    1a79 <print_mx3+0x969>
mov    -0x3c(%rbp),%eax
sub    $0x40,%eax
je     1b1a <print_mx3+0xa0a>
jmp    1a8a <print_mx3+0x97a>
mov    -0x3c(%rbp),%eax
sub    $0x50,%eax
je     1b32 <print_mx3+0xa22>
jmp    1a9b <print_mx3+0x98b>
mov    -0x3c(%rbp),%eax
sub    $0x60,%eax
je     1b4a <print_mx3+0xa3a>
jmp    1aac <print_mx3+0x99c>
mov    -0x3c(%rbp),%eax
sub    $0x70,%eax
je     1b62 <print_mx3+0xa52>
jmp    1b75 <print_mx3+0xa65>
lea    0x2205(%rip),%rdi
xor    %esi,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1b75 <print_mx3+0xa65>
lea    0x221d(%rip),%rdi
mov    $0x1,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1b75 <print_mx3+0xa65>
lea    0x2232(%rip),%rdi
mov    $0x2,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1b75 <print_mx3+0xa65>
lea    0x2247(%rip),%rdi
mov    $0x3,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1b75 <print_mx3+0xa65>
lea    0x225c(%rip),%rdi
mov    $0x4,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1b75 <print_mx3+0xa65>
lea    0x2271(%rip),%rdi
mov    $0x5,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1b75 <print_mx3+0xa65>
lea    0x2286(%rip),%rdi
mov    $0x6,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1b75 <print_mx3+0xa65>
lea    0x229b(%rip),%rdi
mov    $0x7,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0xc(%rbp),%eax
and    $0x700,%eax
mov    %eax,-0x40(%rbp)
je     1c10 <print_mx3+0xb00>
jmp    1b8b <print_mx3+0xa7b>
mov    -0x40(%rbp),%eax
sub    $0x100,%eax
je     1c25 <print_mx3+0xb15>
jmp    1b9e <print_mx3+0xa8e>
mov    -0x40(%rbp),%eax
sub    $0x200,%eax
je     1c3d <print_mx3+0xb2d>
jmp    1bb1 <print_mx3+0xaa1>
mov    -0x40(%rbp),%eax
sub    $0x300,%eax
je     1c55 <print_mx3+0xb45>
jmp    1bc4 <print_mx3+0xab4>
mov    -0x40(%rbp),%eax
sub    $0x400,%eax
je     1c6d <print_mx3+0xb5d>
jmp    1bd7 <print_mx3+0xac7>
mov    -0x40(%rbp),%eax
sub    $0x500,%eax
je     1c85 <print_mx3+0xb75>
jmp    1bea <print_mx3+0xada>
mov    -0x40(%rbp),%eax
sub    $0x600,%eax
je     1c9d <print_mx3+0xb8d>
jmp    1bfd <print_mx3+0xaed>
mov    -0x40(%rbp),%eax
sub    $0x700,%eax
je     1cb5 <print_mx3+0xba5>
jmp    1cc8 <print_mx3+0xbb8>
lea    0x221a(%rip),%rdi
xor    %esi,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1cc8 <print_mx3+0xbb8>
lea    0x2233(%rip),%rdi
mov    $0x1,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1cc8 <print_mx3+0xbb8>
lea    0x2249(%rip),%rdi
mov    $0x2,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1cc8 <print_mx3+0xbb8>
lea    0x225f(%rip),%rdi
mov    $0x3,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1cc8 <print_mx3+0xbb8>
lea    0x2275(%rip),%rdi
mov    $0x4,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1cc8 <print_mx3+0xbb8>
lea    0x228b(%rip),%rdi
mov    $0x5,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1cc8 <print_mx3+0xbb8>
lea    0x22a1(%rip),%rdi
mov    $0x6,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1cc8 <print_mx3+0xbb8>
lea    0x22b8(%rip),%rdi
mov    $0x7,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0xc(%rbp),%eax
and    $0x8000,%eax
cmp    $0x0,%eax
je     1cf1 <print_mx3+0xbe1>
lea    0x22c3(%rip),%rdi
mov    $0x8,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1cff <print_mx3+0xbef>
lea    0x22d4(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0xc(%rbp),%eax
and    $0x70000,%eax
mov    %eax,-0x44(%rbp)
je     1d9a <print_mx3+0xc8a>
jmp    1d15 <print_mx3+0xc05>
mov    -0x44(%rbp),%eax
sub    $0x10000,%eax
je     1daf <print_mx3+0xc9f>
jmp    1d28 <print_mx3+0xc18>
mov    -0x44(%rbp),%eax
sub    $0x20000,%eax
je     1dc7 <print_mx3+0xcb7>
jmp    1d3b <print_mx3+0xc2b>
mov    -0x44(%rbp),%eax
sub    $0x30000,%eax
je     1ddf <print_mx3+0xccf>
jmp    1d4e <print_mx3+0xc3e>
mov    -0x44(%rbp),%eax
sub    $0x40000,%eax
je     1df7 <print_mx3+0xce7>
jmp    1d61 <print_mx3+0xc51>
mov    -0x44(%rbp),%eax
sub    $0x50000,%eax
je     1e0f <print_mx3+0xcff>
jmp    1d74 <print_mx3+0xc64>
mov    -0x44(%rbp),%eax
sub    $0x60000,%eax
je     1e27 <print_mx3+0xd17>
jmp    1d87 <print_mx3+0xc77>
mov    -0x44(%rbp),%eax
sub    $0x70000,%eax
je     1e3f <print_mx3+0xd2f>
jmp    1e52 <print_mx3+0xd42>
lea    0x2252(%rip),%rdi
xor    %esi,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1e52 <print_mx3+0xd42>
lea    0x226a(%rip),%rdi
mov    $0x1,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1e52 <print_mx3+0xd42>
lea    0x227f(%rip),%rdi
mov    $0x2,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1e52 <print_mx3+0xd42>
lea    0x2294(%rip),%rdi
mov    $0x3,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1e52 <print_mx3+0xd42>
lea    0x22a9(%rip),%rdi
mov    $0x4,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1e52 <print_mx3+0xd42>
lea    0x22bf(%rip),%rdi
mov    $0x5,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1e52 <print_mx3+0xd42>
lea    0x22d5(%rip),%rdi
mov    $0x6,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1e52 <print_mx3+0xd42>
lea    0x22eb(%rip),%rdi
mov    $0x7,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x10(%rbp),%esi
lea    0x2304(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x10(%rbp),%eax
xor    $0xffffffff,%eax
and    $0xffff,%eax
cmp    $0x0,%eax
je     1e8e <print_mx3+0xd7e>
mov    -0x10(%rbp),%esi
and    $0xffff,%esi
lea    0x22ed(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x10(%rbp),%eax
and    $0x70000,%eax
mov    %eax,-0x48(%rbp)
je     1f29 <print_mx3+0xe19>
jmp    1ea4 <print_mx3+0xd94>
mov    -0x48(%rbp),%eax
sub    $0x10000,%eax
je     1f3e <print_mx3+0xe2e>
jmp    1eb7 <print_mx3+0xda7>
mov    -0x48(%rbp),%eax
sub    $0x20000,%eax
je     1f56 <print_mx3+0xe46>
jmp    1eca <print_mx3+0xdba>
mov    -0x48(%rbp),%eax
sub    $0x30000,%eax
je     1f6e <print_mx3+0xe5e>
jmp    1edd <print_mx3+0xdcd>
mov    -0x48(%rbp),%eax
sub    $0x40000,%eax
je     1f86 <print_mx3+0xe76>
jmp    1ef0 <print_mx3+0xde0>
mov    -0x48(%rbp),%eax
sub    $0x50000,%eax
je     1f9e <print_mx3+0xe8e>
jmp    1f03 <print_mx3+0xdf3>
mov    -0x48(%rbp),%eax
sub    $0x60000,%eax
je     1fb6 <print_mx3+0xea6>
jmp    1f16 <print_mx3+0xe06>
mov    -0x48(%rbp),%eax
sub    $0x70000,%eax
je     1fce <print_mx3+0xebe>
jmp    1fe1 <print_mx3+0xed1>
lea    0x226c(%rip),%rdi
xor    %esi,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1fe1 <print_mx3+0xed1>
lea    0x2290(%rip),%rdi
mov    $0x1,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1fe1 <print_mx3+0xed1>
lea    0x22b5(%rip),%rdi
mov    $0x2,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1fe1 <print_mx3+0xed1>
lea    0x22da(%rip),%rdi
mov    $0x3,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1fe1 <print_mx3+0xed1>
lea    0x22ff(%rip),%rdi
mov    $0x4,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1fe1 <print_mx3+0xed1>
lea    0x2324(%rip),%rdi
mov    $0x5,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1fe1 <print_mx3+0xed1>
lea    0x2349(%rip),%rdi
mov    $0x6,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1fe1 <print_mx3+0xed1>
lea    0x236e(%rip),%rdi
mov    $0x7,%esi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x10(%rbp),%eax
and    $0x1000000,%eax
cmp    $0x0,%eax
je     200a <print_mx3+0xefa>
lea    0x2387(%rip),%rdi
mov    $0x1,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    2018 <print_mx3+0xf08>
lea    0x239d(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x10(%rbp),%eax
and    $0x2000000,%eax
cmp    $0x0,%eax
je     2041 <print_mx3+0xf31>
lea    0x23ac(%rip),%rdi
mov    $0x2,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    204f <print_mx3+0xf3f>
lea    0x23c7(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x10(%rbp),%eax
and    $0x4000000,%eax
cmp    $0x0,%eax
je     2078 <print_mx3+0xf68>
lea    0x23dc(%rip),%rdi
mov    $0x4,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    2086 <print_mx3+0xf76>
lea    0x23f2(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x10(%rbp),%eax
and    $0x40000000,%eax
cmp    $0x0,%eax
je     20af <print_mx3+0xf9f>
lea    0x2402(%rip),%rdi
mov    $0x4,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    20bd <print_mx3+0xfad>
lea    0x2420(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x10(%rbp),%eax
and    $0x80000000,%eax
cmp    $0x0,%eax
je     20e6 <print_mx3+0xfd6>
lea    0x2437(%rip),%rdi
mov    $0x8,%esi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    20f4 <print_mx3+0xfe4>
lea    0x2456(%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) {
%5 = alloca i32
%6 = alloca i32
%7 = alloca i32
%8 = alloca i32
store i32 %0, i32* %5
store i32 %1, i32* %6
store i32 %2, i32* %7
store i32 %3, i32* %8
%9 = load i32, i32* %5
%10 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str, i64 0, i64 0), i32 %9)
%11 = load i32, i32* %5
%12 = xor i32 %11, -1
%13 = and i32 %12, 3
%14 = icmp eq i32 %13, 2
br i1 %14, label %15, label %19
15: ; preds = %4
%16 = load i32, i32* %5
%17 = and i32 %16, 3
%18 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.1, i64 0, i64 0), i32 %17)
br label %23
19: ; preds = %4
%20 = load i32, i32* %5
%21 = and i32 %20, 3
%22 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([43 x i8], [43 x i8]* @.str.2, i64 0, i64 0), i32 %21)
br label %23
23: ; preds = %19, %15
%24 = load i32, i32* %5
%25 = xor i32 %24, -1
%26 = and i32 %25, 4
%27 = icmp ne i32 %26, 0
br i1 %27, label %28, label %32
28: ; preds = %23
%29 = load i32, i32* %5
%30 = and i32 %29, 4
%31 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([39 x i8], [39 x i8]* @.str.3, i64 0, i64 0), i32 %30)
br label %32
32: ; preds = %28, %23
%33 = load i32, i32* %5
%34 = xor i32 %33, -1
%35 = and i32 %34, 24
switch i32 %35, label %52 [
i32 0, label %36
i32 8, label %40
i32 16, label %44
i32 24, label %48
]
36: ; preds = %32
%37 = load i32, i32* %5
%38 = and i32 %37, 24
%39 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.4, i64 0, i64 0), i32 %38)
br label %52
40: ; preds = %32
%41 = load i32, i32* %5
%42 = and i32 %41, 24
%43 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.5, i64 0, i64 0), i32 %42)
br label %52
44: ; preds = %32
%45 = load i32, i32* %5
%46 = and i32 %45, 24
%47 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.6, i64 0, i64 0), i32 %46)
br label %52
48: ; preds = %32
%49 = load i32, i32* %5
%50 = and i32 %49, 24
%51 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.7, i64 0, i64 0), i32 %50)
br label %52
52: ; preds = %32, %48, %44, %40, %36
%53 = load i32, i32* %5
%54 = xor i32 %53, -1
%55 = and i32 %54, 1044480
%56 = icmp ne i32 %55, 0
br i1 %56, label %57, label %61
57: ; preds = %52
%58 = load i32, i32* %5
%59 = and i32 %58, 1044480
%60 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.8, i64 0, i64 0), i32 %59)
br label %61
61: ; preds = %57, %52
%62 = load i32, i32* %5
%63 = xor i32 %62, -1
%64 = and i32 %63, 16777216
%65 = icmp ne i32 %64, 0
br i1 %65, label %66, label %68
66: ; preds = %61
%67 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.9, i64 0, i64 0))
br label %68
68: ; preds = %66, %61
%69 = load i32, i32* %5
%70 = xor i32 %69, -1
%71 = and i32 %70, 268435456
%72 = icmp ne i32 %71, 0
br i1 %72, label %73, label %75
73: ; preds = %68
%74 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.10, i64 0, i64 0))
br label %75
75: ; preds = %73, %68
%76 = load i32, i32* %6
%77 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.11, i64 0, i64 0), i32 %76)
%78 = load i32, i32* %6
%79 = and i32 %78, 7
switch i32 %79, label %96 [
i32 0, label %80
i32 1, label %82
i32 2, label %84
i32 3, label %86
i32 4, label %88
i32 5, label %90
i32 6, label %92
i32 7, label %94
]
80: ; preds = %75
%81 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([44 x i8], [44 x i8]* @.str.12, i64 0, i64 0), i32 0)
br label %100
82: ; preds = %75
%83 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.13, i64 0, i64 0), i32 1)
br label %100
84: ; preds = %75
%85 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([44 x i8], [44 x i8]* @.str.14, i64 0, i64 0), i32 2)
br label %100
86: ; preds = %75
%87 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([53 x i8], [53 x i8]* @.str.15, i64 0, i64 0), i32 3)
br label %100
88: ; preds = %75
%89 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.16, i64 0, i64 0), i32 4)
br label %100
90: ; preds = %75
%91 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.17, i64 0, i64 0), i32 5)
br label %100
92: ; preds = %75
%93 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([62 x i8], [62 x i8]* @.str.18, i64 0, i64 0), i32 6)
br label %100
94: ; preds = %75
%95 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([61 x i8], [61 x i8]* @.str.19, i64 0, i64 0), i32 7)
br label %100
96: ; preds = %75
%97 = load i32, i32* %6
%98 = and i32 %97, 7
%99 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.20, i64 0, i64 0), i32 %98)
br label %100
100: ; preds = %96, %94, %92, %90, %88, %86, %84, %82, %80
%101 = load i32, i32* %6
%102 = and i32 %101, 32
%103 = icmp ne i32 %102, 0
br i1 %103, label %104, label %106
104: ; preds = %100
%105 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.21, i64 0, i64 0), i32 2)
br label %106
106: ; preds = %104, %100
%107 = load i32, i32* %6
%108 = and i32 %107, 128
%109 = icmp ne i32 %108, 0
br i1 %109, label %110, label %112
110: ; preds = %106
%111 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.22, i64 0, i64 0), i32 8)
br label %112
112: ; preds = %110, %106
%113 = load i32, i32* %6
%114 = and i32 %113, 768
switch i32 %114, label %123 [
i32 0, label %115
i32 256, label %117
i32 512, label %119
i32 768, label %121
]
115: ; preds = %112
%116 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.23, i64 0, i64 0), i32 0)
br label %123
117: ; preds = %112
%118 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.24, i64 0, i64 0), i32 1)
br label %123
119: ; preds = %112
%120 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.25, i64 0, i64 0), i32 2)
br label %123
121: ; preds = %112
%122 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.26, i64 0, i64 0), i32 3)
br label %123
123: ; preds = %112, %121, %119, %117, %115
%124 = load i32, i32* %6
%125 = and i32 %124, 1024
%126 = icmp ne i32 %125, 0
br i1 %126, label %127, label %129
127: ; preds = %123
%128 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.27, i64 0, i64 0), i32 4)
br label %129
129: ; preds = %127, %123
%130 = load i32, i32* %6
%131 = and i32 %130, 12288
switch i32 %131, label %140 [
i32 0, label %132
i32 4096, label %134
i32 8192, label %136
i32 12288, label %138
]
132: ; preds = %129
%133 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.28, i64 0, i64 0), i32 0)
br label %140
134: ; preds = %129
%135 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.29, i64 0, i64 0), i32 1)
br label %140
136: ; preds = %129
%137 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.30, i64 0, i64 0), i32 2)
br label %140
138: ; preds = %129
%139 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.31, i64 0, i64 0), i32 3)
br label %140
140: ; preds = %129, %138, %136, %134, %132
%141 = load i32, i32* %6
%142 = and i32 %141, 16384
%143 = icmp ne i32 %142, 0
br i1 %143, label %144, label %146
144: ; preds = %140
%145 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([57 x i8], [57 x i8]* @.str.32, i64 0, i64 0), i32 4)
br label %146
146: ; preds = %144, %140
%147 = load i32, i32* %6
%148 = and i32 %147, 32768
%149 = icmp ne i32 %148, 0
br i1 %149, label %150, label %152
150: ; preds = %146
%151 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.33, i64 0, i64 0), i32 8)
br label %152
152: ; preds = %150, %146
%153 = load i32, i32* %6
%154 = and i32 %153, 2031616
switch i32 %154, label %197 [
i32 0, label %155
i32 65536, label %157
i32 131072, label %159
i32 196608, label %161
i32 262144, label %163
i32 327680, label %165
i32 393216, label %167
i32 458752, label %169
i32 524288, label %171
i32 589824, label %173
i32 655360, label %175
i32 720896, label %177
i32 786432, label %179
i32 851968, label %181
i32 917504, label %183
i32 983040, label %185
i32 1048576, label %187
i32 1114112, label %189
i32 1179648, label %191
i32 1245184, label %193
i32 1310720, label %195
]
155: ; preds = %152
%156 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.34, i64 0, i64 0), i32 0)
br label %197
157: ; preds = %152
%158 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.35, i64 0, i64 0), i32 1)
br label %197
159: ; preds = %152
%160 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.36, i64 0, i64 0), i32 2)
br label %197
161: ; preds = %152
%162 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.37, i64 0, i64 0), i32 3)
br label %197
163: ; preds = %152
%164 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.38, i64 0, i64 0), i32 4)
br label %197
165: ; preds = %152
%166 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.39, i64 0, i64 0), i32 5)
br label %197
167: ; preds = %152
%168 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.40, i64 0, i64 0), i32 6)
br label %197
169: ; preds = %152
%170 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.41, i64 0, i64 0), i32 7)
br label %197
171: ; preds = %152
%172 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.42, i64 0, i64 0), i32 8)
br label %197
173: ; preds = %152
%174 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.43, i64 0, i64 0), i32 9)
br label %197
175: ; preds = %152
%176 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([52 x i8], [52 x i8]* @.str.44, i64 0, i64 0), i32 10)
br label %197
177: ; preds = %152
%178 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([52 x i8], [52 x i8]* @.str.45, i64 0, i64 0), i32 11)
br label %197
179: ; preds = %152
%180 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([52 x i8], [52 x i8]* @.str.46, i64 0, i64 0), i32 12)
br label %197
181: ; preds = %152
%182 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([52 x i8], [52 x i8]* @.str.47, i64 0, i64 0), i32 13)
br label %197
183: ; preds = %152
%184 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([53 x i8], [53 x i8]* @.str.48, i64 0, i64 0), i32 14)
br label %197
185: ; preds = %152
%186 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([53 x i8], [53 x i8]* @.str.49, i64 0, i64 0), i32 15)
br label %197
187: ; preds = %152
%188 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([53 x i8], [53 x i8]* @.str.50, i64 0, i64 0), i32 16)
br label %197
189: ; preds = %152
%190 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.51, i64 0, i64 0), i32 17)
br label %197
191: ; preds = %152
%192 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.52, i64 0, i64 0), i32 18)
br label %197
193: ; preds = %152
%194 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.53, i64 0, i64 0), i32 19)
br label %197
195: ; preds = %152
%196 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.54, i64 0, i64 0), i32 20)
br label %197
197: ; preds = %152, %195, %193, %191, %189, %187, %185, %183, %181, %179, %177, %175, %173, %171, %169, %167, %165, %163, %161, %159, %157, %155
%198 = load i32, i32* %6
%199 = and i32 %198, 8388608
%200 = icmp ne i32 %199, 0
br i1 %200, label %201, label %203
201: ; preds = %197
%202 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str.55, i64 0, i64 0), i32 8)
br label %203
203: ; preds = %201, %197
%204 = load i32, i32* %7
%205 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.56, i64 0, i64 0), i32 %204)
%206 = load i32, i32* %7
%207 = and i32 %206, 7
switch i32 %207, label %224 [
i32 0, label %208
i32 1, label %210
i32 2, label %212
i32 3, label %214
i32 4, label %216
i32 5, label %218
i32 6, label %220
i32 7, label %222
]
208: ; preds = %203
%209 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.57, i64 0, i64 0), i32 0)
br label %224
210: ; preds = %203
%211 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.58, i64 0, i64 0), i32 1)
br label %224
212: ; preds = %203
%213 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.59, i64 0, i64 0), i32 2)
br label %224
214: ; preds = %203
%215 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.60, i64 0, i64 0), i32 3)
br label %224
216: ; preds = %203
%217 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.61, i64 0, i64 0), i32 4)
br label %224
218: ; preds = %203
%219 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.62, i64 0, i64 0), i32 5)
br label %224
220: ; preds = %203
%221 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([43 x i8], [43 x i8]* @.str.63, i64 0, i64 0), i32 6)
br label %224
222: ; preds = %203
%223 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([43 x i8], [43 x i8]* @.str.64, i64 0, i64 0), i32 7)
br label %224
224: ; preds = %203, %222, %220, %218, %216, %214, %212, %210, %208
%225 = load i32, i32* %7
%226 = and i32 %225, 112
switch i32 %226, label %243 [
i32 0, label %227
i32 16, label %229
i32 32, label %231
i32 48, label %233
i32 64, label %235
i32 80, label %237
i32 96, label %239
i32 112, label %241
]
227: ; preds = %224
%228 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.65, i64 0, i64 0), i32 0)
br label %243
229: ; preds = %224
%230 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.66, i64 0, i64 0), i32 1)
br label %243
231: ; preds = %224
%232 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.67, i64 0, i64 0), i32 2)
br label %243
233: ; preds = %224
%234 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.68, i64 0, i64 0), i32 3)
br label %243
235: ; preds = %224
%236 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.69, i64 0, i64 0), i32 4)
br label %243
237: ; preds = %224
%238 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.70, i64 0, i64 0), i32 5)
br label %243
239: ; preds = %224
%240 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.71, i64 0, i64 0), i32 6)
br label %243
241: ; preds = %224
%242 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.72, i64 0, i64 0), i32 7)
br label %243
243: ; preds = %224, %241, %239, %237, %235, %233, %231, %229, %227
%244 = load i32, i32* %7
%245 = and i32 %244, 1792
switch i32 %245, label %262 [
i32 0, label %246
i32 256, label %248
i32 512, label %250
i32 768, label %252
i32 1024, label %254
i32 1280, label %256
i32 1536, label %258
i32 1792, label %260
]
246: ; preds = %243
%247 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.73, i64 0, i64 0), i32 0)
br label %262
248: ; preds = %243
%249 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.74, i64 0, i64 0), i32 1)
br label %262
250: ; preds = %243
%251 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.75, i64 0, i64 0), i32 2)
br label %262
252: ; preds = %243
%253 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.76, i64 0, i64 0), i32 3)
br label %262
254: ; preds = %243
%255 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.77, i64 0, i64 0), i32 4)
br label %262
256: ; preds = %243
%257 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.78, i64 0, i64 0), i32 5)
br label %262
258: ; preds = %243
%259 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.79, i64 0, i64 0), i32 6)
br label %262
260: ; preds = %243
%261 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.80, i64 0, i64 0), i32 7)
br label %262
262: ; preds = %243, %260, %258, %256, %254, %252, %250, %248, %246
%263 = load i32, i32* %7
%264 = and i32 %263, 32768
%265 = icmp ne i32 %264, 0
br i1 %265, label %266, label %268
266: ; preds = %262
%267 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str.81, i64 0, i64 0), i32 8)
br label %270
268: ; preds = %262
%269 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([39 x i8], [39 x i8]* @.str.82, i64 0, i64 0))
br label %270
270: ; preds = %268, %266
%271 = load i32, i32* %7
%272 = and i32 %271, 458752
switch i32 %272, label %289 [
i32 0, label %273
i32 65536, label %275
i32 131072, label %277
i32 196608, label %279
i32 262144, label %281
i32 327680, label %283
i32 393216, label %285
i32 458752, label %287
]
273: ; preds = %270
%274 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.83, i64 0, i64 0), i32 0)
br label %289
275: ; preds = %270
%276 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.84, i64 0, i64 0), i32 1)
br label %289
277: ; preds = %270
%278 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.85, i64 0, i64 0), i32 2)
br label %289
279: ; preds = %270
%280 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.86, i64 0, i64 0), i32 3)
br label %289
281: ; preds = %270
%282 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.87, i64 0, i64 0), i32 4)
br label %289
283: ; preds = %270
%284 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.88, i64 0, i64 0), i32 5)
br label %289
285: ; preds = %270
%286 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.89, i64 0, i64 0), i32 6)
br label %289
287: ; preds = %270
%288 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.90, i64 0, i64 0), i32 7)
br label %289
289: ; preds = %270, %287, %285, %283, %281, %279, %277, %275, %273
%290 = load i32, i32* %8
%291 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.91, i64 0, i64 0), i32 %290)
%292 = load i32, i32* %8
%293 = xor i32 %292, -1
%294 = and i32 %293, 65535
%295 = icmp ne i32 %294, 0
br i1 %295, label %296, label %300
296: ; preds = %289
%297 = load i32, i32* %8
%298 = and i32 %297, 65535
%299 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.92, i64 0, i64 0), i32 %298)
br label %300
300: ; preds = %296, %289
%301 = load i32, i32* %8
%302 = and i32 %301, 458752
switch i32 %302, label %319 [
i32 0, label %303
i32 65536, label %305
i32 131072, label %307
i32 196608, label %309
i32 262144, label %311
i32 327680, label %313
i32 393216, label %315
i32 458752, label %317
]
303: ; preds = %300
%304 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([57 x i8], [57 x i8]* @.str.93, i64 0, i64 0), i32 0)
br label %319
305: ; preds = %300
%306 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([61 x i8], [61 x i8]* @.str.94, i64 0, i64 0), i32 1)
br label %319
307: ; preds = %300
%308 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([61 x i8], [61 x i8]* @.str.95, i64 0, i64 0), i32 2)
br label %319
309: ; preds = %300
%310 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([61 x i8], [61 x i8]* @.str.96, i64 0, i64 0), i32 3)
br label %319
311: ; preds = %300
%312 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([61 x i8], [61 x i8]* @.str.97, i64 0, i64 0), i32 4)
br label %319
313: ; preds = %300
%314 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([61 x i8], [61 x i8]* @.str.98, i64 0, i64 0), i32 5)
br label %319
315: ; preds = %300
%316 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([61 x i8], [61 x i8]* @.str.99, i64 0, i64 0), i32 6)
br label %319
317: ; preds = %300
%318 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([61 x i8], [61 x i8]* @.str.100, i64 0, i64 0), i32 7)
br label %319
319: ; preds = %300, %317, %315, %313, %311, %309, %307, %305, %303
%320 = load i32, i32* %8
%321 = and i32 %320, 16777216
%322 = icmp ne i32 %321, 0
br i1 %322, label %323, label %325
323: ; preds = %319
%324 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.101, i64 0, i64 0), i32 1)
br label %327
325: ; preds = %319
%326 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.102, i64 0, i64 0))
br label %327
327: ; preds = %325, %323
%328 = load i32, i32* %8
%329 = and i32 %328, 33554432
%330 = icmp ne i32 %329, 0
br i1 %330, label %331, label %333
331: ; preds = %327
%332 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.103, i64 0, i64 0), i32 2)
br label %335
333: ; preds = %327
%334 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([52 x i8], [52 x i8]* @.str.104, i64 0, i64 0))
br label %335
335: ; preds = %333, %331
%336 = load i32, i32* %8
%337 = and i32 %336, 67108864
%338 = icmp ne i32 %337, 0
br i1 %338, label %339, label %341
339: ; preds = %335
%340 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.105, i64 0, i64 0), i32 4)
br label %343
341: ; preds = %335
%342 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.106, i64 0, i64 0))
br label %343
343: ; preds = %341, %339
%344 = load i32, i32* %8
%345 = and i32 %344, 1073741824
%346 = icmp ne i32 %345, 0
br i1 %346, label %347, label %349
347: ; preds = %343
%348 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.107, i64 0, i64 0), i32 4)
br label %351
349: ; preds = %343
%350 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.108, i64 0, i64 0))
br label %351
351: ; preds = %349, %347
%352 = load i32, i32* %8
%353 = and i32 %352, -2147483648
%354 = icmp ne i32 %353, 0
br i1 %354, label %355, label %357
355: ; preds = %351
%356 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.109, i64 0, i64 0), i32 8)
br label %359
357: ; preds = %351
%358 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.110, i64 0, i64 0))
br label %359
359: ; preds = %357, %355
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) {
%5 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([20 x i8], [20 x i8]* @.str, i64 0, i64 0), i32 %0)
%6 = xor i32 %0, -1
%7 = and i32 %6, 3
%8 = icmp eq i32 %7, 2
%9 = and i32 %0, 3
%10 = select i1 %8, i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([43 x i8], [43 x i8]* @.str.2, i64 0, i64 0)
%11 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) %10, i32 %9)
%12 = and i32 %6, 4
%13 = icmp eq i32 %12, 0
br i1 %13, label %17, label %14
14: ; preds = %4
%15 = and i32 %0, 4
%16 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.3, i64 0, i64 0), i32 %15)
br label %17
17: ; preds = %14, %4
%18 = lshr i32 %6, 3
%19 = and i32 %18, 3
%20 = zext i32 %19 to i64
%21 = shl i64 %20, 2
%22 = call i8* @llvm.load.relative.i64(i8* bitcast ([4 x i32]* @reltable.print_mx3 to i8*), i64 %21)
%23 = and i32 %0, 24
%24 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) %22, i32 %23)
%25 = and i32 %6, 1044480
%26 = icmp eq i32 %25, 0
br i1 %26, label %30, label %27
27: ; preds = %17
%28 = and i32 %0, 1044480
%29 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([51 x i8], [51 x i8]* @.str.8, i64 0, i64 0), i32 %28)
br label %30
30: ; preds = %27, %17
%31 = and i32 %6, 16777216
%32 = icmp eq i32 %31, 0
br i1 %32, label %35, label %33
33: ; preds = %30
%34 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([48 x i8], [48 x i8]* @str.117, i64 0, i64 0))
br label %35
35: ; preds = %33, %30
%36 = and i32 %6, 268435456
%37 = icmp eq i32 %36, 0
br i1 %37, label %40, label %38
38: ; preds = %35
%39 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([36 x i8], [36 x i8]* @str.116, i64 0, i64 0))
br label %40
40: ; preds = %38, %35
%41 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([20 x i8], [20 x i8]* @.str.11, i64 0, i64 0), i32 %1)
%42 = and i32 %1, 7
switch i32 %42, label %59 [
i32 0, label %43
i32 1, label %45
i32 2, label %47
i32 3, label %49
i32 4, label %51
i32 5, label %53
i32 6, label %55
i32 7, label %57
]
43: ; preds = %40
%44 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([44 x i8], [44 x i8]* @.str.12, i64 0, i64 0), i32 0)
br label %60
45: ; preds = %40
%46 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([69 x i8], [69 x i8]* @.str.13, i64 0, i64 0), i32 1)
br label %60
47: ; preds = %40
%48 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([44 x i8], [44 x i8]* @.str.14, i64 0, i64 0), i32 2)
br label %60
49: ; preds = %40
%50 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([53 x i8], [53 x i8]* @.str.15, i64 0, i64 0), i32 3)
br label %60
51: ; preds = %40
%52 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([46 x i8], [46 x i8]* @.str.16, i64 0, i64 0), i32 4)
br label %60
53: ; preds = %40
%54 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([49 x i8], [49 x i8]* @.str.17, i64 0, i64 0), i32 5)
br label %60
55: ; preds = %40
%56 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([62 x i8], [62 x i8]* @.str.18, i64 0, i64 0), i32 6)
br label %60
57: ; preds = %40
%58 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([61 x i8], [61 x i8]* @.str.19, i64 0, i64 0), i32 7)
br label %60
59: ; preds = %40
unreachable
60: ; preds = %57, %55, %53, %51, %49, %47, %45, %43
%61 = and i32 %1, 32
%62 = icmp eq i32 %61, 0
br i1 %62, label %65, label %63
63: ; preds = %60
%64 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([54 x i8], [54 x i8]* @.str.21, i64 0, i64 0), i32 2)
br label %65
65: ; preds = %63, %60
%66 = and i32 %1, 128
%67 = icmp eq i32 %66, 0
br i1 %67, label %70, label %68
68: ; preds = %65
%69 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([63 x i8], [63 x i8]* @.str.22, i64 0, i64 0), i32 8)
br label %70
70: ; preds = %68, %65
%71 = lshr i32 %1, 8
%72 = and i32 %71, 3
switch i32 %72, label %81 [
i32 0, label %73
i32 1, label %75
i32 2, label %77
i32 3, label %79
]
73: ; preds = %70
%74 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([54 x i8], [54 x i8]* @.str.23, i64 0, i64 0), i32 0)
br label %82
75: ; preds = %70
%76 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([48 x i8], [48 x i8]* @.str.24, i64 0, i64 0), i32 1)
br label %82
77: ; preds = %70
%78 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([48 x i8], [48 x i8]* @.str.25, i64 0, i64 0), i32 2)
br label %82
79: ; preds = %70
%80 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([54 x i8], [54 x i8]* @.str.26, i64 0, i64 0), i32 3)
br label %82
81: ; preds = %70
unreachable
82: ; preds = %79, %77, %75, %73
%83 = and i32 %1, 1024
%84 = icmp eq i32 %83, 0
br i1 %84, label %87, label %85
85: ; preds = %82
%86 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([46 x i8], [46 x i8]* @.str.27, i64 0, i64 0), i32 4)
br label %87
87: ; preds = %85, %82
%88 = lshr i32 %1, 12
%89 = and i32 %88, 3
switch i32 %89, label %98 [
i32 0, label %90
i32 1, label %92
i32 2, label %94
i32 3, label %96
]
90: ; preds = %87
%91 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([58 x i8], [58 x i8]* @.str.28, i64 0, i64 0), i32 0)
br label %99
92: ; preds = %87
%93 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([58 x i8], [58 x i8]* @.str.29, i64 0, i64 0), i32 1)
br label %99
94: ; preds = %87
%95 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([58 x i8], [58 x i8]* @.str.30, i64 0, i64 0), i32 2)
br label %99
96: ; preds = %87
%97 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([58 x i8], [58 x i8]* @.str.31, i64 0, i64 0), i32 3)
br label %99
98: ; preds = %87
unreachable
99: ; preds = %96, %94, %92, %90
%100 = and i32 %1, 16384
%101 = icmp eq i32 %100, 0
br i1 %101, label %104, label %102
102: ; preds = %99
%103 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([57 x i8], [57 x i8]* @.str.32, i64 0, i64 0), i32 4)
br label %104
104: ; preds = %102, %99
%105 = and i32 %1, 32768
%106 = icmp eq i32 %105, 0
br i1 %106, label %109, label %107
107: ; preds = %104
%108 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([49 x i8], [49 x i8]* @.str.33, i64 0, i64 0), i32 8)
br label %109
109: ; preds = %107, %104
%110 = lshr i32 %1, 16
%111 = and i32 %110, 31
switch i32 %111, label %154 [
i32 0, label %112
i32 1, label %114
i32 2, label %116
i32 3, label %118
i32 4, label %120
i32 5, label %122
i32 6, label %124
i32 7, label %126
i32 8, label %128
i32 9, label %130
i32 10, label %132
i32 11, label %134
i32 12, label %136
i32 13, label %138
i32 14, label %140
i32 15, label %142
i32 16, label %144
i32 17, label %146
i32 18, label %148
i32 19, label %150
i32 20, label %152
]
112: ; preds = %109
%113 = 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 %154
114: ; preds = %109
%115 = 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 %154
116: ; preds = %109
%117 = 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 %154
118: ; preds = %109
%119 = 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 %154
120: ; preds = %109
%121 = 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 %154
122: ; preds = %109
%123 = 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 %154
124: ; preds = %109
%125 = 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 %154
126: ; preds = %109
%127 = 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 %154
128: ; preds = %109
%129 = 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 %154
130: ; preds = %109
%131 = 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 %154
132: ; preds = %109
%133 = 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 %154
134: ; preds = %109
%135 = 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 %154
136: ; preds = %109
%137 = 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 %154
138: ; preds = %109
%139 = 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 %154
140: ; preds = %109
%141 = 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 %154
142: ; preds = %109
%143 = 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 %154
144: ; preds = %109
%145 = 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 %154
146: ; preds = %109
%147 = 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 %154
148: ; preds = %109
%149 = 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 %154
150: ; preds = %109
%151 = 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 %154
152: ; preds = %109
%153 = 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 %154
154: ; preds = %109, %152, %150, %148, %146, %144, %142, %140, %138, %136, %134, %132, %130, %128, %126, %124, %122, %120, %118, %116, %114, %112
%155 = and i32 %1, 8388608
%156 = icmp eq i32 %155, 0
br i1 %156, label %159, label %157
157: ; preds = %154
%158 = 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 %159
159: ; preds = %157, %154
%160 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([20 x i8], [20 x i8]* @.str.56, i64 0, i64 0), i32 %2)
%161 = and i32 %2, 7
switch i32 %161, label %178 [
i32 0, label %162
i32 1, label %164
i32 2, label %166
i32 3, label %168
i32 4, label %170
i32 5, label %172
i32 6, label %174
i32 7, label %176
]
162: ; preds = %159
%163 = 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 %179
164: ; preds = %159
%165 = 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 %179
166: ; preds = %159
%167 = 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 %179
168: ; preds = %159
%169 = 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 %179
170: ; preds = %159
%171 = 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 %179
172: ; preds = %159
%173 = 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 %179
174: ; preds = %159
%175 = 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 %179
176: ; preds = %159
%177 = 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 %179
178: ; preds = %159
unreachable
179: ; preds = %176, %174, %172, %170, %168, %166, %164, %162
%180 = lshr i32 %2, 4
%181 = and i32 %180, 7
switch i32 %181, label %198 [
i32 0, label %182
i32 1, label %184
i32 2, label %186
i32 3, label %188
i32 4, label %190
i32 5, label %192
i32 6, label %194
i32 7, label %196
]
182: ; preds = %179
%183 = 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 %199
184: ; preds = %179
%185 = 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 %199
186: ; preds = %179
%187 = 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 %199
188: ; preds = %179
%189 = 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 %199
190: ; preds = %179
%191 = 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 %199
192: ; preds = %179
%193 = 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 %199
194: ; preds = %179
%195 = 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 %199
196: ; preds = %179
%197 = 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 %199
198: ; preds = %179
unreachable
199: ; preds = %196, %194, %192, %190, %188, %186, %184, %182
%200 = lshr i32 %2, 8
%201 = and i32 %200, 7
switch i32 %201, label %218 [
i32 0, label %202
i32 1, label %204
i32 2, label %206
i32 3, label %208
i32 4, label %210
i32 5, label %212
i32 6, label %214
i32 7, label %216
]
202: ; preds = %199
%203 = 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 %219
204: ; preds = %199
%205 = 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 %219
206: ; preds = %199
%207 = 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 %219
208: ; preds = %199
%209 = 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 %219
210: ; preds = %199
%211 = 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 %219
212: ; preds = %199
%213 = 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 %219
214: ; preds = %199
%215 = 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 %219
216: ; preds = %199
%217 = 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 %219
218: ; preds = %199
unreachable
219: ; preds = %216, %214, %212, %210, %208, %206, %204, %202
%220 = and i32 %2, 32768
%221 = icmp eq i32 %220, 0
br i1 %221, label %224, label %222
222: ; preds = %219
%223 = 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 %226
224: ; preds = %219
%225 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([38 x i8], [38 x i8]* @str, i64 0, i64 0))
br label %226
226: ; preds = %224, %222
%227 = lshr i32 %2, 16
%228 = and i32 %227, 7
switch i32 %228, label %245 [
i32 0, label %229
i32 1, label %231
i32 2, label %233
i32 3, label %235
i32 4, label %237
i32 5, label %239
i32 6, label %241
i32 7, label %243
]
229: ; preds = %226
%230 = 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 %246
231: ; preds = %226
%232 = 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 %246
233: ; preds = %226
%234 = 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 %246
235: ; preds = %226
%236 = 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 %246
237: ; preds = %226
%238 = 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 %246
239: ; preds = %226
%240 = 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 %246
241: ; preds = %226
%242 = 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 %246
243: ; preds = %226
%244 = 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 %246
245: ; preds = %226
unreachable
246: ; preds = %243, %241, %239, %237, %235, %233, %231, %229
%247 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([20 x i8], [20 x i8]* @.str.91, i64 0, i64 0), i32 %3)
%248 = and i32 %3, 65535
%249 = icmp eq i32 %248, 65535
br i1 %249, label %252, label %250
250: ; preds = %246
%251 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([40 x i8], [40 x i8]* @.str.92, i64 0, i64 0), i32 %248)
br label %252
252: ; preds = %250, %246
%253 = lshr i32 %3, 16
%254 = and i32 %253, 7
switch i32 %254, label %271 [
i32 0, label %255
i32 1, label %257
i32 2, label %259
i32 3, label %261
i32 4, label %263
i32 5, label %265
i32 6, label %267
i32 7, label %269
]
255: ; preds = %252
%256 = 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 %272
257: ; preds = %252
%258 = 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 %272
259: ; preds = %252
%260 = 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 %272
261: ; preds = %252
%262 = 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 %272
263: ; preds = %252
%264 = 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 %272
265: ; preds = %252
%266 = 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 %272
267: ; preds = %252
%268 = 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 %272
269: ; preds = %252
%270 = 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 %272
271: ; preds = %252
unreachable
272: ; preds = %269, %267, %265, %263, %261, %259, %257, %255
%273 = and i32 %3, 16777216
%274 = icmp eq i32 %273, 0
br i1 %274, label %277, label %275
275: ; preds = %272
%276 = 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 %279
277: ; preds = %272
%278 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([45 x i8], [45 x i8]* @str.111, i64 0, i64 0))
br label %279
279: ; preds = %277, %275
%280 = and i32 %3, 33554432
%281 = icmp eq i32 %280, 0
br i1 %281, label %284, label %282
282: ; preds = %279
%283 = 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 %286
284: ; preds = %279
%285 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([51 x i8], [51 x i8]* @str.112, i64 0, i64 0))
br label %286
286: ; preds = %284, %282
%287 = and i32 %3, 67108864
%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.105, i64 0, i64 0), i32 4)
br label %293
291: ; preds = %286
%292 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([46 x i8], [46 x i8]* @str.113, i64 0, i64 0))
br label %293
293: ; preds = %291, %289
%294 = and i32 %3, 1073741824
%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 ([54 x i8], [54 x i8]* @.str.107, i64 0, i64 0), i32 4)
br label %300
298: ; preds = %293
%299 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([53 x i8], [53 x i8]* @str.114, i64 0, i64 0))
br label %300
300: ; preds = %298, %296
%301 = icmp sgt i32 %3, -1
br i1 %301, label %304, label %302
302: ; preds = %300
%303 = 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 %306
304: ; preds = %300
%305 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([54 x i8], [54 x i8]* @str.115, i64 0, i64 0))
br label %306
306: ; preds = %304, %302
ret void
}