#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */
typedef scalar_t__ uint32_t;

/* Variables and functions */
int /*<<< orphan*/ printf(char *, scalar_t__);
void print_mm_fwdt(uint32_t fwdt, uint32_t alternate) {
  if (0 == alternate) {
    printf("    FWDT    = 0x%08X\n", fwdt);
  } else {
    printf("   AFWDT    = 0x%08X\n", fwdt);
  }
  if (fwdt & 0x00008000) {
    printf("                    %01x    WDT is enabled\n", 0x00008000 >> 12);
  } else {
    printf("                    %01x    WDT is disabled\n", 0);
  }
  switch (fwdt & 0x00006000) {
  case 0x00006000:
    printf("                    %01x    WDT clock source is LPRC, same as in "
           "sleep\n",
           0x00006000 >> 12);
    break;
  case 0x00004000:
    printf("                    %01x    WDT clock source is FRC\n",
           0x00004000 >> 12);
    break;
  case 0x00002000:
    printf("                    %01x    WDT clock source RESERVED!\n",
           0x00002000 >> 12);
    break;
  case 0x00000000:
    printf("                    %01x    WDT clock source is system clock\n",
           0x00000000 >> 12);
    break;
  }
  switch (fwdt & 0x00001F00) {
  case 0x00000000:
    printf("                    %02x   Run mode Watchdog postscale: 1/1\n",
           0x00000000 >> 8);
    break;
  case 0x00000100:
    printf("                    %02x   Run mode Watchdog postscale: 1/2\n",
           0x00000100 >> 8);
    break;
  case 0x00000200:
    printf("                    %02x   Run mode Watchdog postscale: 1/4\n",
           0x00000200 >> 8);
    break;
  case 0x00000300:
    printf("                    %02x   Run mode Watchdog postscale: 1/8\n",
           0x00000300 >> 8);
    break;
  case 0x00000400:
    printf("                    %02x   Run mode Watchdog postscale: 1/16\n",
           0x00000400 >> 8);
    break;
  case 0x00000500:
    printf("                    %02x   Run mode Watchdog postscale: 1/32\n",
           0x00000500 >> 8);
    break;
  case 0x00000600:
    printf("                    %02x   Run mode Watchdog postscale: 1/64\n",
           0x00000600 >> 8);
    break;
  case 0x00000700:
    printf("                    %02x   Run mode Watchdog postscale: 1/128\n",
           0x00000700 >> 8);
    break;
  case 0x00000800:
    printf("                    %02x   Run mode Watchdog postscale: 1/256\n",
           0x00000800 >> 8);
    break;
  case 0x00000900:
    printf("                    %02x   Run mode Watchdog postscale: 1/512\n",
           0x00000900 >> 8);
    break;
  case 0x00000A00:
    printf("                    %02x   Run mode Watchdog postscale: 1/1024\n",
           0x00000A00 >> 8);
    break;
  case 0x00000B00:
    printf("                    %02x   Run mode Watchdog postscale: 1/2048\n",
           0x00000B00 >> 8);
    break;
  case 0x00000C00:
    printf("                    %02x   Run mode Watchdog postscale: 1/4096\n",
           0x00000C00 >> 8);
    break;
  case 0x00000D00:
    printf("                    %02x   Run mode Watchdog postscale: 1/8192\n",
           0x00000D00 >> 8);
    break;
  case 0x00000E00:
    printf("                    %02x   Run mode Watchdog postscale: 1/16384\n",
           0x00000E00 >> 8);
    break;
  case 0x00000F00:
    printf("                    %02x   Run mode Watchdog postscale: 1/32768\n",
           0x00000F00 >> 8);
    break;
  case 0x00001000:
    printf("                    %02x   Run mode Watchdog postscale: 1/65536\n",
           0x00001000 >> 8);
    break;
  case 0x00001100:
    printf("                    %02x   Run mode Watchdog postscale: 1/131072\n",
           0x00001100 >> 8);
    break;
  case 0x00001200:
    printf("                    %02x   Run mode Watchdog postscale: 1/262144\n",
           0x00001200 >> 8);
    break;
  case 0x00001300:
    printf("                    %02x   Run mode Watchdog postscale: 1/524288\n",
           0x00001300 >> 8);
    break;
  default:
    printf(
        "                    %02x   Run mode Watchdog postscale: 1/1048576\n",
        (fwdt & 0x00001F00) >> 8);
    break;
  }
  if (fwdt & 0x00000080) {
    printf("                      %01x  WDT Windowed mode disabled\n",
           0x00000080 >> 4);
  } else {
    printf("                      %01x  WDT Windowed mode enbled\n", 0);
  }
  switch (fwdt & 0x00000060) {
  case 0x00000060:
    printf("                      %01x  WDT window size is 25%%\n",
           0x00000060 >> 4);
    break;
  case 0x00000040:
    printf("                      %01x  WDT window size is 37.5%%\n",
           0x00000040 >> 4);
    break;
  case 0x00000020:
    printf("                      %01x  WDT window size is 50%%n",
           0x00000020 >> 4);
    break;
  case 0x00000000:
    printf("                      %01x  WDT window size is 75%%\n",
           0x00000000 >> 4);
    break;
  }
  switch (fwdt & 0x0000001F) {
  case 0x00000000:
    printf("                      %02x Sleep mode Watchdog postscale: 1/1\n",
           0x00000000);
    break;
  case 0x00000001:
    printf("                      %02x Sleep mode Watchdog postscale: 1/2\n",
           0x00000001);
    break;
  case 0x00000002:
    printf("                      %02x Sleep mode Watchdog postscale: 1/4\n",
           0x00000002);
    break;
  case 0x00000003:
    printf("                      %02x Sleep mode Watchdog postscale: 1/8\n",
           0x00000003);
    break;
  case 0x00000004:
    printf("                      %02x Sleep mode Watchdog postscale: 1/16\n",
           0x00000004);
    break;
  case 0x00000005:
    printf("                      %02x Sleep mode Watchdog postscale: 1/32\n",
           0x00000005);
    break;
  case 0x00000006:
    printf("                      %02x Sleep mode Watchdog postscale: 1/64\n",
           0x00000006);
    break;
  case 0x00000007:
    printf("                      %02x Sleep mode Watchdog postscale: 1/128\n",
           0x00000007);
    break;
  case 0x00000008:
    printf("                      %02x Sleep mode Watchdog postscale: 1/256\n",
           0x00000008);
    break;
  case 0x00000009:
    printf("                      %02x Sleep mode Watchdog postscale: 1/512\n",
           0x00000009);
    break;
  case 0x0000000A:
    printf("                      %02x Sleep mode Watchdog postscale: 1/1024\n",
           0x0000000A);
    break;
  case 0x0000000B:
    printf("                      %02x Sleep mode Watchdog postscale: 1/2048\n",
           0x0000000B);
    break;
  case 0x0000000C:
    printf("                      %02x Sleep mode Watchdog postscale: 1/4096\n",
           0x0000000C);
    break;
  case 0x0000000D:
    printf("                      %02x Sleep mode Watchdog postscale: 1/8192\n",
           0x0000000D);
    break;
  case 0x0000000E:
    printf(
        "                      %02x Sleep mode Watchdog postscale: 1/16384\n",
        0x0000000E);
    break;
  case 0x0000000F:
    printf(
        "                      %02x Sleep mode Watchdog postscale: 1/32768\n",
        0x0000000F);
    break;
  case 0x00000010:
    printf(
        "                      %02x Sleep mode Watchdog postscale: 1/65536\n",
        0x00000010);
    break;
  case 0x00000011:
    printf(
        "                      %02x Sleep mode Watchdog postscale: 1/131072\n",
        0x00000011);
    break;
  case 0x00000012:
    printf(
        "                      %02x Sleep mode Watchdog postscale: 1/262144\n",
        0x00000012);
    break;
  case 0x00000013:
    printf(
        "                      %02x Sleep mode Watchdog postscale: 1/524288\n",
        0x00000013);
    break;
  default:
    printf(
        "                      %02x Sleep mode Watchdog postscale: 1/1048576\n",
        (fwdt & 0x0000001F));
    break;
  }
}


x86 assembly (clang, -O0):
<print_mm_fwdt>:
push   %rbp
mov    %rsp,%rbp
sub    $0x30,%rsp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
xor    %eax,%eax
cmp    -0x10(%rbp),%rax
jne    1141 <print_mm_fwdt+0x31>
mov    -0x8(%rbp),%rsi
lea    0xf19(%rip),%rdi
call   1030 <printf@plt>
jmp    1151 <print_mm_fwdt+0x41>
mov    -0x8(%rbp),%rsi
lea    0xf1a(%rip),%rdi
call   1030 <printf@plt>
mov    -0x8(%rbp),%rax
and    $0x8000,%rax
cmp    $0x0,%rax
je     117b <print_mm_fwdt+0x6b>
lea    0xf10(%rip),%rdi
mov    $0x8,%esi
call   1030 <printf@plt>
jmp    118b <print_mm_fwdt+0x7b>
lea    0xf26(%rip),%rdi
xor    %eax,%eax
mov    %eax,%esi
call   1030 <printf@plt>
mov    -0x8(%rbp),%rax
and    $0x6000,%rax
mov    %rax,-0x18(%rbp)
je     1225 <print_mm_fwdt+0x115>
jmp    11a4 <print_mm_fwdt+0x94>
mov    -0x18(%rbp),%rax
sub    $0x2000,%rax
je     120f <print_mm_fwdt+0xff>
jmp    11b9 <print_mm_fwdt+0xa9>
mov    -0x18(%rbp),%rax
sub    $0x4000,%rax
je     11f9 <print_mm_fwdt+0xe9>
jmp    11ce <print_mm_fwdt+0xbe>
mov    -0x18(%rbp),%rax
sub    $0x6000,%rax
jne    1235 <print_mm_fwdt+0x125>
jmp    11e3 <print_mm_fwdt+0xd3>
lea    0xeeb(%rip),%rdi
mov    $0x6,%esi
call   1030 <printf@plt>
jmp    1235 <print_mm_fwdt+0x125>
lea    0xf1d(%rip),%rdi
mov    $0x4,%esi
call   1030 <printf@plt>
jmp    1235 <print_mm_fwdt+0x125>
lea    0xf3c(%rip),%rdi
mov    $0x2,%esi
call   1030 <printf@plt>
jmp    1235 <print_mm_fwdt+0x125>
lea    0xf5e(%rip),%rdi
xor    %eax,%eax
mov    %eax,%esi
call   1030 <printf@plt>
mov    -0x8(%rbp),%rax
and    $0x1f00,%rax
mov    %rax,-0x20(%rbp)
je     13dd <print_mm_fwdt+0x2cd>
jmp    124e <print_mm_fwdt+0x13e>
mov    -0x20(%rbp),%rax
sub    $0x100,%rax
je     13f2 <print_mm_fwdt+0x2e2>
jmp    1263 <print_mm_fwdt+0x153>
mov    -0x20(%rbp),%rax
sub    $0x200,%rax
je     1408 <print_mm_fwdt+0x2f8>
jmp    1278 <print_mm_fwdt+0x168>
mov    -0x20(%rbp),%rax
sub    $0x300,%rax
je     141e <print_mm_fwdt+0x30e>
jmp    128d <print_mm_fwdt+0x17d>
mov    -0x20(%rbp),%rax
sub    $0x400,%rax
je     1434 <print_mm_fwdt+0x324>
jmp    12a2 <print_mm_fwdt+0x192>
mov    -0x20(%rbp),%rax
sub    $0x500,%rax
je     144a <print_mm_fwdt+0x33a>
jmp    12b7 <print_mm_fwdt+0x1a7>
mov    -0x20(%rbp),%rax
sub    $0x600,%rax
je     1460 <print_mm_fwdt+0x350>
jmp    12cc <print_mm_fwdt+0x1bc>
mov    -0x20(%rbp),%rax
sub    $0x700,%rax
je     1476 <print_mm_fwdt+0x366>
jmp    12e1 <print_mm_fwdt+0x1d1>
mov    -0x20(%rbp),%rax
sub    $0x800,%rax
je     148c <print_mm_fwdt+0x37c>
jmp    12f6 <print_mm_fwdt+0x1e6>
mov    -0x20(%rbp),%rax
sub    $0x900,%rax
je     14a2 <print_mm_fwdt+0x392>
jmp    130b <print_mm_fwdt+0x1fb>
mov    -0x20(%rbp),%rax
sub    $0xa00,%rax
je     14b8 <print_mm_fwdt+0x3a8>
jmp    1320 <print_mm_fwdt+0x210>
mov    -0x20(%rbp),%rax
sub    $0xb00,%rax
je     14ce <print_mm_fwdt+0x3be>
jmp    1335 <print_mm_fwdt+0x225>
mov    -0x20(%rbp),%rax
sub    $0xc00,%rax
je     14e4 <print_mm_fwdt+0x3d4>
jmp    134a <print_mm_fwdt+0x23a>
mov    -0x20(%rbp),%rax
sub    $0xd00,%rax
je     14fa <print_mm_fwdt+0x3ea>
jmp    135f <print_mm_fwdt+0x24f>
mov    -0x20(%rbp),%rax
sub    $0xe00,%rax
je     1510 <print_mm_fwdt+0x400>
jmp    1374 <print_mm_fwdt+0x264>
mov    -0x20(%rbp),%rax
sub    $0xf00,%rax
je     1526 <print_mm_fwdt+0x416>
jmp    1389 <print_mm_fwdt+0x279>
mov    -0x20(%rbp),%rax
sub    $0x1000,%rax
je     153c <print_mm_fwdt+0x42c>
jmp    139e <print_mm_fwdt+0x28e>
mov    -0x20(%rbp),%rax
sub    $0x1100,%rax
je     1552 <print_mm_fwdt+0x442>
jmp    13b3 <print_mm_fwdt+0x2a3>
mov    -0x20(%rbp),%rax
sub    $0x1200,%rax
je     1568 <print_mm_fwdt+0x458>
jmp    13c8 <print_mm_fwdt+0x2b8>
mov    -0x20(%rbp),%rax
sub    $0x1300,%rax
je     157e <print_mm_fwdt+0x46e>
jmp    1594 <print_mm_fwdt+0x484>
lea    0xde4(%rip),%rdi
xor    %eax,%eax
mov    %eax,%esi
call   1030 <printf@plt>
jmp    15af <print_mm_fwdt+0x49f>
lea    0xe0c(%rip),%rdi
mov    $0x1,%esi
call   1030 <printf@plt>
jmp    15af <print_mm_fwdt+0x49f>
lea    0xe33(%rip),%rdi
mov    $0x2,%esi
call   1030 <printf@plt>
jmp    15af <print_mm_fwdt+0x49f>
lea    0xe5a(%rip),%rdi
mov    $0x3,%esi
call   1030 <printf@plt>
jmp    15af <print_mm_fwdt+0x49f>
lea    0xe81(%rip),%rdi
mov    $0x4,%esi
call   1030 <printf@plt>
jmp    15af <print_mm_fwdt+0x49f>
lea    0xea9(%rip),%rdi
mov    $0x5,%esi
call   1030 <printf@plt>
jmp    15af <print_mm_fwdt+0x49f>
lea    0xed1(%rip),%rdi
mov    $0x6,%esi
call   1030 <printf@plt>
jmp    15af <print_mm_fwdt+0x49f>
lea    0xef9(%rip),%rdi
mov    $0x7,%esi
call   1030 <printf@plt>
jmp    15af <print_mm_fwdt+0x49f>
lea    0xf22(%rip),%rdi
mov    $0x8,%esi
call   1030 <printf@plt>
jmp    15af <print_mm_fwdt+0x49f>
lea    0xf4b(%rip),%rdi
mov    $0x9,%esi
call   1030 <printf@plt>
jmp    15af <print_mm_fwdt+0x49f>
lea    0xf74(%rip),%rdi
mov    $0xa,%esi
call   1030 <printf@plt>
jmp    15af <print_mm_fwdt+0x49f>
lea    0xf9e(%rip),%rdi
mov    $0xb,%esi
call   1030 <printf@plt>
jmp    15af <print_mm_fwdt+0x49f>
lea    0xfc8(%rip),%rdi
mov    $0xc,%esi
call   1030 <printf@plt>
jmp    15af <print_mm_fwdt+0x49f>
lea    0xff2(%rip),%rdi
mov    $0xd,%esi
call   1030 <printf@plt>
jmp    15af <print_mm_fwdt+0x49f>
lea    0x101c(%rip),%rdi
mov    $0xe,%esi
call   1030 <printf@plt>
jmp    15af <print_mm_fwdt+0x49f>
lea    0x1047(%rip),%rdi
mov    $0xf,%esi
call   1030 <printf@plt>
jmp    15af <print_mm_fwdt+0x49f>
lea    0x1072(%rip),%rdi
mov    $0x10,%esi
call   1030 <printf@plt>
jmp    15af <print_mm_fwdt+0x49f>
lea    0x109d(%rip),%rdi
mov    $0x11,%esi
call   1030 <printf@plt>
jmp    15af <print_mm_fwdt+0x49f>
lea    0x10c9(%rip),%rdi
mov    $0x12,%esi
call   1030 <printf@plt>
jmp    15af <print_mm_fwdt+0x49f>
lea    0x10f5(%rip),%rdi
mov    $0x13,%esi
call   1030 <printf@plt>
jmp    15af <print_mm_fwdt+0x49f>
mov    -0x8(%rbp),%rsi
and    $0x1f00,%rsi
sar    $0x8,%rsi
lea    0x1112(%rip),%rdi
call   1030 <printf@plt>
mov    -0x8(%rbp),%rax
and    $0x80,%rax
cmp    $0x0,%rax
je     15d9 <print_mm_fwdt+0x4c9>
lea    0x1135(%rip),%rdi
mov    $0x8,%esi
call   1030 <printf@plt>
jmp    15e9 <print_mm_fwdt+0x4d9>
lea    0x1157(%rip),%rdi
xor    %eax,%eax
mov    %eax,%esi
call   1030 <printf@plt>
mov    -0x8(%rbp),%rax
and    $0x60,%rax
mov    %rax,-0x28(%rbp)
je     167b <print_mm_fwdt+0x56b>
jmp    1600 <print_mm_fwdt+0x4f0>
mov    -0x28(%rbp),%rax
sub    $0x20,%rax
je     1665 <print_mm_fwdt+0x555>
jmp    1613 <print_mm_fwdt+0x503>
mov    -0x28(%rbp),%rax
sub    $0x40,%rax
je     164f <print_mm_fwdt+0x53f>
jmp    1626 <print_mm_fwdt+0x516>
mov    -0x28(%rbp),%rax
sub    $0x60,%rax
jne    168b <print_mm_fwdt+0x57b>
jmp    1639 <print_mm_fwdt+0x529>
lea    0x112d(%rip),%rdi
mov    $0x6,%esi
call   1030 <printf@plt>
jmp    168b <print_mm_fwdt+0x57b>
lea    0x114c(%rip),%rdi
mov    $0x4,%esi
call   1030 <printf@plt>
jmp    168b <print_mm_fwdt+0x57b>
lea    0x116d(%rip),%rdi
mov    $0x2,%esi
call   1030 <printf@plt>
jmp    168b <print_mm_fwdt+0x57b>
lea    0x118c(%rip),%rdi
xor    %eax,%eax
mov    %eax,%esi
call   1030 <printf@plt>
mov    -0x8(%rbp),%rax
and    $0x1f,%eax
mov    %rax,-0x30(%rbp)
sub    $0x13,%rax
ja     186b <print_mm_fwdt+0x75b>
mov    -0x30(%rbp),%rax
lea    0x955(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x1188(%rip),%rdi
xor    %eax,%eax
mov    %eax,%esi
call   1030 <printf@plt>
jmp    187f <print_mm_fwdt+0x76f>
lea    0x11b2(%rip),%rdi
mov    $0x1,%esi
call   1030 <printf@plt>
jmp    187f <print_mm_fwdt+0x76f>
lea    0x11db(%rip),%rdi
mov    $0x2,%esi
call   1030 <printf@plt>
jmp    187f <print_mm_fwdt+0x76f>
lea    0x1204(%rip),%rdi
mov    $0x3,%esi
call   1030 <printf@plt>
jmp    187f <print_mm_fwdt+0x76f>
lea    0x122d(%rip),%rdi
mov    $0x4,%esi
call   1030 <printf@plt>
jmp    187f <print_mm_fwdt+0x76f>
lea    0x1257(%rip),%rdi
mov    $0x5,%esi
call   1030 <printf@plt>
jmp    187f <print_mm_fwdt+0x76f>
lea    0x1281(%rip),%rdi
mov    $0x6,%esi
call   1030 <printf@plt>
jmp    187f <print_mm_fwdt+0x76f>
lea    0x12ab(%rip),%rdi
mov    $0x7,%esi
call   1030 <printf@plt>
jmp    187f <print_mm_fwdt+0x76f>
lea    0x12d6(%rip),%rdi
mov    $0x8,%esi
call   1030 <printf@plt>
jmp    187f <print_mm_fwdt+0x76f>
lea    0x1301(%rip),%rdi
mov    $0x9,%esi
call   1030 <printf@plt>
jmp    187f <print_mm_fwdt+0x76f>
lea    0x132c(%rip),%rdi
mov    $0xa,%esi
call   1030 <printf@plt>
jmp    187f <print_mm_fwdt+0x76f>
lea    0x1358(%rip),%rdi
mov    $0xb,%esi
call   1030 <printf@plt>
jmp    187f <print_mm_fwdt+0x76f>
lea    0x1384(%rip),%rdi
mov    $0xc,%esi
call   1030 <printf@plt>
jmp    187f <print_mm_fwdt+0x76f>
lea    0x13b0(%rip),%rdi
mov    $0xd,%esi
call   1030 <printf@plt>
jmp    187f <print_mm_fwdt+0x76f>
lea    0x13dc(%rip),%rdi
mov    $0xe,%esi
call   1030 <printf@plt>
jmp    187f <print_mm_fwdt+0x76f>
lea    0x1409(%rip),%rdi
mov    $0xf,%esi
call   1030 <printf@plt>
jmp    187f <print_mm_fwdt+0x76f>
lea    0x1436(%rip),%rdi
mov    $0x10,%esi
call   1030 <printf@plt>
jmp    187f <print_mm_fwdt+0x76f>
lea    0x1463(%rip),%rdi
mov    $0x11,%esi
call   1030 <printf@plt>
jmp    187f <print_mm_fwdt+0x76f>
lea    0x1491(%rip),%rdi
mov    $0x12,%esi
call   1030 <printf@plt>
jmp    187f <print_mm_fwdt+0x76f>
lea    0x14bf(%rip),%rdi
mov    $0x13,%esi
call   1030 <printf@plt>
jmp    187f <print_mm_fwdt+0x76f>
mov    -0x8(%rbp),%rsi
and    $0x1f,%rsi
lea    0x14e5(%rip),%rdi
call   1030 <printf@plt>
add    $0x30,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<print_mm_fwdt>:
push   %rbx
mov    %rdi,%rbx
test   %rsi,%rsi
lea    0xfa2(%rip),%rax
lea    0xfb1(%rip),%rdi
cmove  %rax,%rdi
mov    %rbx,%rsi
call   1030 <printf@plt>
test   $0x8000,%ebx
jne    115f <print_mm_fwdt+0x4f>
lea    0xfd8(%rip),%rdi
xor    %esi,%esi
call   1030 <printf@plt>
mov    %ebx,%eax
shr    $0xd,%eax
and    $0x3,%eax
lea    0xeaa(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0xf86(%rip),%rdi
mov    $0x8,%esi
call   1030 <printf@plt>
mov    %ebx,%eax
shr    $0xd,%eax
and    $0x3,%eax
lea    0xe81(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x106b(%rip),%rdi
xor    %esi,%esi
jmp    11bb <print_mm_fwdt+0xab>
lea    0x1028(%rip),%rdi
mov    $0x2,%esi
jmp    11bb <print_mm_fwdt+0xab>
lea    0xfe5(%rip),%rdi
mov    $0x4,%esi
jmp    11bb <print_mm_fwdt+0xab>
lea    0xf8f(%rip),%rdi
mov    $0x6,%esi
call   1030 <printf@plt>
mov    %ebx,%esi
shr    $0x8,%esi
and    $0x1f,%esi
cmp    $0x13,%esi
ja     11eb <print_mm_fwdt+0xdb>
lea    0xe3c(%rip),%rax
movslq (%rax,%rsi,4),%rcx
add    %rax,%rcx
jmp    *%rcx
lea    0x1054(%rip),%rdi
xor    %esi,%esi
jmp    131a <print_mm_fwdt+0x20a>
lea    0x153a(%rip),%rdi
jmp    131a <print_mm_fwdt+0x20a>
lea    0x1077(%rip),%rdi
mov    $0x1,%esi
jmp    131a <print_mm_fwdt+0x20a>
lea    0x10a3(%rip),%rdi
mov    $0x2,%esi
jmp    131a <print_mm_fwdt+0x20a>
lea    0x10cf(%rip),%rdi
mov    $0x3,%esi
jmp    131a <print_mm_fwdt+0x20a>
lea    0x10fb(%rip),%rdi
mov    $0x4,%esi
jmp    131a <print_mm_fwdt+0x20a>
lea    0x1128(%rip),%rdi
mov    $0x5,%esi
jmp    131a <print_mm_fwdt+0x20a>
lea    0x1155(%rip),%rdi
mov    $0x6,%esi
jmp    131a <print_mm_fwdt+0x20a>
lea    0x1182(%rip),%rdi
mov    $0x7,%esi
jmp    131a <print_mm_fwdt+0x20a>
lea    0x11b0(%rip),%rdi
mov    $0x8,%esi
jmp    131a <print_mm_fwdt+0x20a>
lea    0x11de(%rip),%rdi
mov    $0x9,%esi
jmp    131a <print_mm_fwdt+0x20a>
lea    0x120c(%rip),%rdi
mov    $0xa,%esi
jmp    131a <print_mm_fwdt+0x20a>
lea    0x123e(%rip),%rdi
mov    $0xb,%esi
jmp    131a <print_mm_fwdt+0x20a>
lea    0x1270(%rip),%rdi
mov    $0xc,%esi
jmp    131a <print_mm_fwdt+0x20a>
lea    0x12a2(%rip),%rdi
mov    $0xd,%esi
jmp    131a <print_mm_fwdt+0x20a>
lea    0x12d4(%rip),%rdi
mov    $0xe,%esi
jmp    131a <print_mm_fwdt+0x20a>
lea    0x1307(%rip),%rdi
mov    $0xf,%esi
jmp    131a <print_mm_fwdt+0x20a>
lea    0x133a(%rip),%rdi
mov    $0x10,%esi
jmp    131a <print_mm_fwdt+0x20a>
lea    0x136d(%rip),%rdi
mov    $0x11,%esi
jmp    131a <print_mm_fwdt+0x20a>
lea    0x13a1(%rip),%rdi
mov    $0x12,%esi
jmp    131a <print_mm_fwdt+0x20a>
lea    0x13d5(%rip),%rdi
mov    $0x13,%esi
call   1030 <printf@plt>
test   $0x80,%bl
jne    134a <print_mm_fwdt+0x23a>
lea    0x147c(%rip),%rdi
xor    %esi,%esi
call   1030 <printf@plt>
mov    %ebx,%eax
shr    $0x5,%eax
and    $0x3,%eax
lea    0xd1f(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x141e(%rip),%rdi
mov    $0x8,%esi
call   1030 <printf@plt>
mov    %ebx,%eax
shr    $0x5,%eax
and    $0x3,%eax
lea    0xcf6(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x1504(%rip),%rdi
xor    %esi,%esi
jmp    13a6 <print_mm_fwdt+0x296>
lea    0x14c4(%rip),%rdi
mov    $0x2,%esi
jmp    13a6 <print_mm_fwdt+0x296>
lea    0x147f(%rip),%rdi
mov    $0x4,%esi
jmp    13a6 <print_mm_fwdt+0x296>
lea    0x143c(%rip),%rdi
mov    $0x6,%esi
call   1030 <printf@plt>
and    $0x1f,%ebx
cmp    $0x13,%rbx
ja     13d3 <print_mm_fwdt+0x2c3>
lea    0xcb5(%rip),%rax
movslq (%rax,%rbx,4),%rcx
add    %rax,%rcx
jmp    *%rcx
lea    0x14e8(%rip),%rdi
xor    %esi,%esi
pop    %rbx
jmp    1030 <printf@plt>
lea    0x19f5(%rip),%rdi
mov    %rbx,%rsi
pop    %rbx
jmp    1030 <printf@plt>
lea    0x1508(%rip),%rdi
mov    $0x1,%esi
pop    %rbx
jmp    1030 <printf@plt>
lea    0x1535(%rip),%rdi
mov    $0x2,%esi
pop    %rbx
jmp    1030 <printf@plt>
lea    0x1562(%rip),%rdi
mov    $0x3,%esi
pop    %rbx
jmp    1030 <printf@plt>
lea    0x158f(%rip),%rdi
mov    $0x4,%esi
pop    %rbx
jmp    1030 <printf@plt>
lea    0x15bd(%rip),%rdi
mov    $0x5,%esi
pop    %rbx
jmp    1030 <printf@plt>
lea    0x15eb(%rip),%rdi
mov    $0x6,%esi
pop    %rbx
jmp    1030 <printf@plt>
lea    0x1619(%rip),%rdi
mov    $0x7,%esi
pop    %rbx
jmp    1030 <printf@plt>
lea    0x1648(%rip),%rdi
mov    $0x8,%esi
pop    %rbx
jmp    1030 <printf@plt>
lea    0x1677(%rip),%rdi
mov    $0x9,%esi
pop    %rbx
jmp    1030 <printf@plt>
lea    0x16a6(%rip),%rdi
mov    $0xa,%esi
pop    %rbx
jmp    1030 <printf@plt>
lea    0x16d6(%rip),%rdi
mov    $0xb,%esi
pop    %rbx
jmp    1030 <printf@plt>
lea    0x1706(%rip),%rdi
mov    $0xc,%esi
pop    %rbx
jmp    1030 <printf@plt>
lea    0x1736(%rip),%rdi
mov    $0xd,%esi
pop    %rbx
jmp    1030 <printf@plt>
lea    0x1766(%rip),%rdi
mov    $0xe,%esi
pop    %rbx
jmp    1030 <printf@plt>
lea    0x1797(%rip),%rdi
mov    $0xf,%esi
pop    %rbx
jmp    1030 <printf@plt>
lea    0x17c8(%rip),%rdi
mov    $0x10,%esi
pop    %rbx
jmp    1030 <printf@plt>
lea    0x17f9(%rip),%rdi
mov    $0x11,%esi
pop    %rbx
jmp    1030 <printf@plt>
lea    0x182b(%rip),%rdi
mov    $0x12,%esi
pop    %rbx
jmp    1030 <printf@plt>
lea    0x185d(%rip),%rdi
mov    $0x13,%esi
pop    %rbx
jmp    1030 <printf@plt>

LLVM IR (-O0):
@.str = [22 x i8] c" FWDT = 0x%08X\0A\00"
@.str.1 = [22 x i8] c" AFWDT = 0x%08X\0A\00"
@.str.2 = [44 x i8] c" %01x WDT is enabled\0A\00"
@.str.3 = [45 x i8] c" %01x WDT is disabled\0A\00"
@.str.4 = [72 x i8] c" %01x WDT clock source is LPRC, same as in sleep\0A\00"
@.str.5 = [53 x i8] c" %01x WDT clock source is FRC\0A\00"
@.str.6 = [56 x i8] c" %01x WDT clock source RESERVED!\0A\00"
@.str.7 = [62 x i8] c" %01x WDT clock source is system clock\0A\00"
@.str.8 = [61 x i8] c" %02x Run mode Watchdog postscale: 1/1\0A\00"
@.str.9 = [61 x i8] c" %02x Run mode Watchdog postscale: 1/2\0A\00"
@.str.10 = [61 x i8] c" %02x Run mode Watchdog postscale: 1/4\0A\00"
@.str.11 = [61 x i8] c" %02x Run mode Watchdog postscale: 1/8\0A\00"
@.str.12 = [62 x i8] c" %02x Run mode Watchdog postscale: 1/16\0A\00"
@.str.13 = [62 x i8] c" %02x Run mode Watchdog postscale: 1/32\0A\00"
@.str.14 = [62 x i8] c" %02x Run mode Watchdog postscale: 1/64\0A\00"
@.str.15 = [63 x i8] c" %02x Run mode Watchdog postscale: 1/128\0A\00"
@.str.16 = [63 x i8] c" %02x Run mode Watchdog postscale: 1/256\0A\00"
@.str.17 = [63 x i8] c" %02x Run mode Watchdog postscale: 1/512\0A\00"
@.str.18 = [64 x i8] c" %02x Run mode Watchdog postscale: 1/1024\0A\00"
@.str.19 = [64 x i8] c" %02x Run mode Watchdog postscale: 1/2048\0A\00"
@.str.20 = [64 x i8] c" %02x Run mode Watchdog postscale: 1/4096\0A\00"
@.str.21 = [64 x i8] c" %02x Run mode Watchdog postscale: 1/8192\0A\00"
@.str.22 = [65 x i8] c" %02x Run mode Watchdog postscale: 1/16384\0A\00"
@.str.23 = [65 x i8] c" %02x Run mode Watchdog postscale: 1/32768\0A\00"
@.str.24 = [65 x i8] c" %02x Run mode Watchdog postscale: 1/65536\0A\00"
@.str.25 = [66 x i8] c" %02x Run mode Watchdog postscale: 1/131072\0A\00"
@.str.26 = [66 x i8] c" %02x Run mode Watchdog postscale: 1/262144\0A\00"
@.str.27 = [66 x i8] c" %02x Run mode Watchdog postscale: 1/524288\0A\00"
@.str.28 = [67 x i8] c" %02x Run mode Watchdog postscale: 1/1048576\0A\00"
@.str.29 = [56 x i8] c" %01x WDT Windowed mode disabled\0A\00"
@.str.30 = [54 x i8] c" %01x WDT Windowed mode enbled\0A\00"
@.str.31 = [53 x i8] c" %01x WDT window size is 25%%\0A\00"
@.str.32 = [55 x i8] c" %01x WDT window size is 37.5%%\0A\00"
@.str.33 = [53 x i8] c" %01x WDT window size is 50%%n\00"
@.str.34 = [53 x i8] c" %01x WDT window size is 75%%\0A\00"
@.str.35 = [63 x i8] c" %02x Sleep mode Watchdog postscale: 1/1\0A\00"
@.str.36 = [63 x i8] c" %02x Sleep mode Watchdog postscale: 1/2\0A\00"
@.str.37 = [63 x i8] c" %02x Sleep mode Watchdog postscale: 1/4\0A\00"
@.str.38 = [63 x i8] c" %02x Sleep mode Watchdog postscale: 1/8\0A\00"
@.str.39 = [64 x i8] c" %02x Sleep mode Watchdog postscale: 1/16\0A\00"
@.str.40 = [64 x i8] c" %02x Sleep mode Watchdog postscale: 1/32\0A\00"
@.str.41 = [64 x i8] c" %02x Sleep mode Watchdog postscale: 1/64\0A\00"
@.str.42 = [65 x i8] c" %02x Sleep mode Watchdog postscale: 1/128\0A\00"
@.str.43 = [65 x i8] c" %02x Sleep mode Watchdog postscale: 1/256\0A\00"
@.str.44 = [65 x i8] c" %02x Sleep mode Watchdog postscale: 1/512\0A\00"
@.str.45 = [66 x i8] c" %02x Sleep mode Watchdog postscale: 1/1024\0A\00"
@.str.46 = [66 x i8] c" %02x Sleep mode Watchdog postscale: 1/2048\0A\00"
@.str.47 = [66 x i8] c" %02x Sleep mode Watchdog postscale: 1/4096\0A\00"
@.str.48 = [66 x i8] c" %02x Sleep mode Watchdog postscale: 1/8192\0A\00"
@.str.49 = [67 x i8] c" %02x Sleep mode Watchdog postscale: 1/16384\0A\00"
@.str.50 = [67 x i8] c" %02x Sleep mode Watchdog postscale: 1/32768\0A\00"
@.str.51 = [67 x i8] c" %02x Sleep mode Watchdog postscale: 1/65536\0A\00"
@.str.52 = [68 x i8] c" %02x Sleep mode Watchdog postscale: 1/131072\0A\00"
@.str.53 = [68 x i8] c" %02x Sleep mode Watchdog postscale: 1/262144\0A\00"
@.str.54 = [68 x i8] c" %02x Sleep mode Watchdog postscale: 1/524288\0A\00"
@.str.55 = [69 x i8] c" %02x Sleep mode Watchdog postscale: 1/1048576\0A\00"
define void @print_mm_fwdt(i64 %0, i64 %1) {
%3 = alloca i64
%4 = alloca i64
store i64 %0, i64* %3
store i64 %1, i64* %4
%5 = load i64, i64* %4
%6 = icmp eq i64 0, %5
br i1 %6, label %7, label %10
7: ; preds = %2
%8 = load i64, i64* %3
%9 = call i32 @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str, i64 0, i64 0), i64 %8)
br label %13
10: ; preds = %2
%11 = load i64, i64* %3
%12 = call i32 @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1, i64 0, i64 0), i64 %11)
br label %13
13: ; preds = %10, %7
%14 = load i64, i64* %3
%15 = and i64 %14, 32768
%16 = icmp ne i64 %15, 0
br i1 %16, label %17, label %19
17: ; preds = %13
%18 = call i32 @printf(i8* getelementptr inbounds ([44 x i8], [44 x i8]* @.str.2, i64 0, i64 0), i64 8)
br label %21
19: ; preds = %13
%20 = call i32 @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.3, i64 0, i64 0), i64 0)
br label %21
21: ; preds = %19, %17
%22 = load i64, i64* %3
%23 = and i64 %22, 24576
switch i64 %23, label %32 [
i64 24576, label %24
i64 16384, label %26
i64 8192, label %28
i64 0, label %30
]
24: ; preds = %21
%25 = call i32 @printf(i8* getelementptr inbounds ([72 x i8], [72 x i8]* @.str.4, i64 0, i64 0), i64 6)
br label %32
26: ; preds = %21
%27 = call i32 @printf(i8* getelementptr inbounds ([53 x i8], [53 x i8]* @.str.5, i64 0, i64 0), i64 4)
br label %32
28: ; preds = %21
%29 = call i32 @printf(i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.6, i64 0, i64 0), i64 2)
br label %32
30: ; preds = %21
%31 = call i32 @printf(i8* getelementptr inbounds ([62 x i8], [62 x i8]* @.str.7, i64 0, i64 0), i64 0)
br label %32
32: ; preds = %21, %30, %28, %26, %24
%33 = load i64, i64* %3
%34 = and i64 %33, 7936
switch i64 %34, label %75 [
i64 0, label %35
i64 256, label %37
i64 512, label %39
i64 768, label %41
i64 1024, label %43
i64 1280, label %45
i64 1536, label %47
i64 1792, label %49
i64 2048, label %51
i64 2304, label %53
i64 2560, label %55
i64 2816, label %57
i64 3072, label %59
i64 3328, label %61
i64 3584, label %63
i64 3840, label %65
i64 4096, label %67
i64 4352, label %69
i64 4608, label %71
i64 4864, label %73
]
35: ; preds = %32
%36 = call i32 @printf(i8* getelementptr inbounds ([61 x i8], [61 x i8]* @.str.8, i64 0, i64 0), i64 0)
br label %80
37: ; preds = %32
%38 = call i32 @printf(i8* getelementptr inbounds ([61 x i8], [61 x i8]* @.str.9, i64 0, i64 0), i64 1)
br label %80
39: ; preds = %32
%40 = call i32 @printf(i8* getelementptr inbounds ([61 x i8], [61 x i8]* @.str.10, i64 0, i64 0), i64 2)
br label %80
41: ; preds = %32
%42 = call i32 @printf(i8* getelementptr inbounds ([61 x i8], [61 x i8]* @.str.11, i64 0, i64 0), i64 3)
br label %80
43: ; preds = %32
%44 = call i32 @printf(i8* getelementptr inbounds ([62 x i8], [62 x i8]* @.str.12, i64 0, i64 0), i64 4)
br label %80
45: ; preds = %32
%46 = call i32 @printf(i8* getelementptr inbounds ([62 x i8], [62 x i8]* @.str.13, i64 0, i64 0), i64 5)
br label %80
47: ; preds = %32
%48 = call i32 @printf(i8* getelementptr inbounds ([62 x i8], [62 x i8]* @.str.14, i64 0, i64 0), i64 6)
br label %80
49: ; preds = %32
%50 = call i32 @printf(i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.15, i64 0, i64 0), i64 7)
br label %80
51: ; preds = %32
%52 = call i32 @printf(i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.16, i64 0, i64 0), i64 8)
br label %80
53: ; preds = %32
%54 = call i32 @printf(i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.17, i64 0, i64 0), i64 9)
br label %80
55: ; preds = %32
%56 = call i32 @printf(i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.18, i64 0, i64 0), i64 10)
br label %80
57: ; preds = %32
%58 = call i32 @printf(i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.19, i64 0, i64 0), i64 11)
br label %80
59: ; preds = %32
%60 = call i32 @printf(i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.20, i64 0, i64 0), i64 12)
br label %80
61: ; preds = %32
%62 = call i32 @printf(i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.21, i64 0, i64 0), i64 13)
br label %80
63: ; preds = %32
%64 = call i32 @printf(i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.22, i64 0, i64 0), i64 14)
br label %80
65: ; preds = %32
%66 = call i32 @printf(i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.23, i64 0, i64 0), i64 15)
br label %80
67: ; preds = %32
%68 = call i32 @printf(i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.24, i64 0, i64 0), i64 16)
br label %80
69: ; preds = %32
%70 = call i32 @printf(i8* getelementptr inbounds ([66 x i8], [66 x i8]* @.str.25, i64 0, i64 0), i64 17)
br label %80
71: ; preds = %32
%72 = call i32 @printf(i8* getelementptr inbounds ([66 x i8], [66 x i8]* @.str.26, i64 0, i64 0), i64 18)
br label %80
73: ; preds = %32
%74 = call i32 @printf(i8* getelementptr inbounds ([66 x i8], [66 x i8]* @.str.27, i64 0, i64 0), i64 19)
br label %80
75: ; preds = %32
%76 = load i64, i64* %3
%77 = and i64 %76, 7936
%78 = ashr i64 %77, 8
%79 = call i32 @printf(i8* getelementptr inbounds ([67 x i8], [67 x i8]* @.str.28, i64 0, i64 0), i64 %78)
br label %80
80: ; preds = %75, %73, %71, %69, %67, %65, %63, %61, %59, %57, %55, %53, %51, %49, %47, %45, %43, %41, %39, %37, %35
%81 = load i64, i64* %3
%82 = and i64 %81, 128
%83 = icmp ne i64 %82, 0
br i1 %83, label %84, label %86
84: ; preds = %80
%85 = call i32 @printf(i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.29, i64 0, i64 0), i64 8)
br label %88
86: ; preds = %80
%87 = call i32 @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.30, i64 0, i64 0), i64 0)
br label %88
88: ; preds = %86, %84
%89 = load i64, i64* %3
%90 = and i64 %89, 96
switch i64 %90, label %99 [
i64 96, label %91
i64 64, label %93
i64 32, label %95
i64 0, label %97
]
91: ; preds = %88
%92 = call i32 @printf(i8* getelementptr inbounds ([53 x i8], [53 x i8]* @.str.31, i64 0, i64 0), i64 6)
br label %99
93: ; preds = %88
%94 = call i32 @printf(i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.32, i64 0, i64 0), i64 4)
br label %99
95: ; preds = %88
%96 = call i32 @printf(i8* getelementptr inbounds ([53 x i8], [53 x i8]* @.str.33, i64 0, i64 0), i64 2)
br label %99
97: ; preds = %88
%98 = call i32 @printf(i8* getelementptr inbounds ([53 x i8], [53 x i8]* @.str.34, i64 0, i64 0), i64 0)
br label %99
99: ; preds = %88, %97, %95, %93, %91
%100 = load i64, i64* %3
%101 = and i64 %100, 31
switch i64 %101, label %142 [
i64 0, label %102
i64 1, label %104
i64 2, label %106
i64 3, label %108
i64 4, label %110
i64 5, label %112
i64 6, label %114
i64 7, label %116
i64 8, label %118
i64 9, label %120
i64 10, label %122
i64 11, label %124
i64 12, label %126
i64 13, label %128
i64 14, label %130
i64 15, label %132
i64 16, label %134
i64 17, label %136
i64 18, label %138
i64 19, label %140
]
102: ; preds = %99
%103 = call i32 @printf(i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.35, i64 0, i64 0), i64 0)
br label %146
104: ; preds = %99
%105 = call i32 @printf(i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.36, i64 0, i64 0), i64 1)
br label %146
106: ; preds = %99
%107 = call i32 @printf(i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.37, i64 0, i64 0), i64 2)
br label %146
108: ; preds = %99
%109 = call i32 @printf(i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.38, i64 0, i64 0), i64 3)
br label %146
110: ; preds = %99
%111 = call i32 @printf(i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.39, i64 0, i64 0), i64 4)
br label %146
112: ; preds = %99
%113 = call i32 @printf(i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.40, i64 0, i64 0), i64 5)
br label %146
114: ; preds = %99
%115 = call i32 @printf(i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.41, i64 0, i64 0), i64 6)
br label %146
116: ; preds = %99
%117 = call i32 @printf(i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.42, i64 0, i64 0), i64 7)
br label %146
118: ; preds = %99
%119 = call i32 @printf(i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.43, i64 0, i64 0), i64 8)
br label %146
120: ; preds = %99
%121 = call i32 @printf(i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.44, i64 0, i64 0), i64 9)
br label %146
122: ; preds = %99
%123 = call i32 @printf(i8* getelementptr inbounds ([66 x i8], [66 x i8]* @.str.45, i64 0, i64 0), i64 10)
br label %146
124: ; preds = %99
%125 = call i32 @printf(i8* getelementptr inbounds ([66 x i8], [66 x i8]* @.str.46, i64 0, i64 0), i64 11)
br label %146
126: ; preds = %99
%127 = call i32 @printf(i8* getelementptr inbounds ([66 x i8], [66 x i8]* @.str.47, i64 0, i64 0), i64 12)
br label %146
128: ; preds = %99
%129 = call i32 @printf(i8* getelementptr inbounds ([66 x i8], [66 x i8]* @.str.48, i64 0, i64 0), i64 13)
br label %146
130: ; preds = %99
%131 = call i32 @printf(i8* getelementptr inbounds ([67 x i8], [67 x i8]* @.str.49, i64 0, i64 0), i64 14)
br label %146
132: ; preds = %99
%133 = call i32 @printf(i8* getelementptr inbounds ([67 x i8], [67 x i8]* @.str.50, i64 0, i64 0), i64 15)
br label %146
134: ; preds = %99
%135 = call i32 @printf(i8* getelementptr inbounds ([67 x i8], [67 x i8]* @.str.51, i64 0, i64 0), i64 16)
br label %146
136: ; preds = %99
%137 = call i32 @printf(i8* getelementptr inbounds ([68 x i8], [68 x i8]* @.str.52, i64 0, i64 0), i64 17)
br label %146
138: ; preds = %99
%139 = call i32 @printf(i8* getelementptr inbounds ([68 x i8], [68 x i8]* @.str.53, i64 0, i64 0), i64 18)
br label %146
140: ; preds = %99
%141 = call i32 @printf(i8* getelementptr inbounds ([68 x i8], [68 x i8]* @.str.54, i64 0, i64 0), i64 19)
br label %146
142: ; preds = %99
%143 = load i64, i64* %3
%144 = and i64 %143, 31
%145 = call i32 @printf(i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.55, i64 0, i64 0), i64 %144)
br label %146
146: ; preds = %142, %140, %138, %136, %134, %132, %130, %128, %126, %124, %122, %120, %118, %116, %114, %112, %110, %108, %106, %104, %102
ret void
}

LLVM IR (-O2):
@.str = [22 x i8] c" FWDT = 0x%08X\0A\00"
@.str.1 = [22 x i8] c" AFWDT = 0x%08X\0A\00"
@.str.2 = [44 x i8] c" %01x WDT is enabled\0A\00"
@.str.3 = [45 x i8] c" %01x WDT is disabled\0A\00"
@.str.4 = [72 x i8] c" %01x WDT clock source is LPRC, same as in sleep\0A\00"
@.str.5 = [53 x i8] c" %01x WDT clock source is FRC\0A\00"
@.str.6 = [56 x i8] c" %01x WDT clock source RESERVED!\0A\00"
@.str.7 = [62 x i8] c" %01x WDT clock source is system clock\0A\00"
@.str.8 = [61 x i8] c" %02x Run mode Watchdog postscale: 1/1\0A\00"
@.str.9 = [61 x i8] c" %02x Run mode Watchdog postscale: 1/2\0A\00"
@.str.10 = [61 x i8] c" %02x Run mode Watchdog postscale: 1/4\0A\00"
@.str.11 = [61 x i8] c" %02x Run mode Watchdog postscale: 1/8\0A\00"
@.str.12 = [62 x i8] c" %02x Run mode Watchdog postscale: 1/16\0A\00"
@.str.13 = [62 x i8] c" %02x Run mode Watchdog postscale: 1/32\0A\00"
@.str.14 = [62 x i8] c" %02x Run mode Watchdog postscale: 1/64\0A\00"
@.str.15 = [63 x i8] c" %02x Run mode Watchdog postscale: 1/128\0A\00"
@.str.16 = [63 x i8] c" %02x Run mode Watchdog postscale: 1/256\0A\00"
@.str.17 = [63 x i8] c" %02x Run mode Watchdog postscale: 1/512\0A\00"
@.str.18 = [64 x i8] c" %02x Run mode Watchdog postscale: 1/1024\0A\00"
@.str.19 = [64 x i8] c" %02x Run mode Watchdog postscale: 1/2048\0A\00"
@.str.20 = [64 x i8] c" %02x Run mode Watchdog postscale: 1/4096\0A\00"
@.str.21 = [64 x i8] c" %02x Run mode Watchdog postscale: 1/8192\0A\00"
@.str.22 = [65 x i8] c" %02x Run mode Watchdog postscale: 1/16384\0A\00"
@.str.23 = [65 x i8] c" %02x Run mode Watchdog postscale: 1/32768\0A\00"
@.str.24 = [65 x i8] c" %02x Run mode Watchdog postscale: 1/65536\0A\00"
@.str.25 = [66 x i8] c" %02x Run mode Watchdog postscale: 1/131072\0A\00"
@.str.26 = [66 x i8] c" %02x Run mode Watchdog postscale: 1/262144\0A\00"
@.str.27 = [66 x i8] c" %02x Run mode Watchdog postscale: 1/524288\0A\00"
@.str.28 = [67 x i8] c" %02x Run mode Watchdog postscale: 1/1048576\0A\00"
@.str.29 = [56 x i8] c" %01x WDT Windowed mode disabled\0A\00"
@.str.30 = [54 x i8] c" %01x WDT Windowed mode enbled\0A\00"
@.str.31 = [53 x i8] c" %01x WDT window size is 25%%\0A\00"
@.str.32 = [55 x i8] c" %01x WDT window size is 37.5%%\0A\00"
@.str.33 = [53 x i8] c" %01x WDT window size is 50%%n\00"
@.str.34 = [53 x i8] c" %01x WDT window size is 75%%\0A\00"
@.str.35 = [63 x i8] c" %02x Sleep mode Watchdog postscale: 1/1\0A\00"
@.str.36 = [63 x i8] c" %02x Sleep mode Watchdog postscale: 1/2\0A\00"
@.str.37 = [63 x i8] c" %02x Sleep mode Watchdog postscale: 1/4\0A\00"
@.str.38 = [63 x i8] c" %02x Sleep mode Watchdog postscale: 1/8\0A\00"
@.str.39 = [64 x i8] c" %02x Sleep mode Watchdog postscale: 1/16\0A\00"
@.str.40 = [64 x i8] c" %02x Sleep mode Watchdog postscale: 1/32\0A\00"
@.str.41 = [64 x i8] c" %02x Sleep mode Watchdog postscale: 1/64\0A\00"
@.str.42 = [65 x i8] c" %02x Sleep mode Watchdog postscale: 1/128\0A\00"
@.str.43 = [65 x i8] c" %02x Sleep mode Watchdog postscale: 1/256\0A\00"
@.str.44 = [65 x i8] c" %02x Sleep mode Watchdog postscale: 1/512\0A\00"
@.str.45 = [66 x i8] c" %02x Sleep mode Watchdog postscale: 1/1024\0A\00"
@.str.46 = [66 x i8] c" %02x Sleep mode Watchdog postscale: 1/2048\0A\00"
@.str.47 = [66 x i8] c" %02x Sleep mode Watchdog postscale: 1/4096\0A\00"
@.str.48 = [66 x i8] c" %02x Sleep mode Watchdog postscale: 1/8192\0A\00"
@.str.49 = [67 x i8] c" %02x Sleep mode Watchdog postscale: 1/16384\0A\00"
@.str.50 = [67 x i8] c" %02x Sleep mode Watchdog postscale: 1/32768\0A\00"
@.str.51 = [67 x i8] c" %02x Sleep mode Watchdog postscale: 1/65536\0A\00"
@.str.52 = [68 x i8] c" %02x Sleep mode Watchdog postscale: 1/131072\0A\00"
@.str.53 = [68 x i8] c" %02x Sleep mode Watchdog postscale: 1/262144\0A\00"
@.str.54 = [68 x i8] c" %02x Sleep mode Watchdog postscale: 1/524288\0A\00"
@.str.55 = [69 x i8] c" %02x Sleep mode Watchdog postscale: 1/1048576\0A\00"
define void @print_mm_fwdt(i64 %0, i64 %1) {
%3 = icmp eq i64 %1, 0
%4 = select i1 %3, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1, i64 0, i64 0)
%5 = tail call i32 @printf(i8* %4, i64 %0)
%6 = and i64 %0, 32768
%7 = icmp eq i64 %6, 0
br i1 %7, label %10, label %8
8: ; preds = %2
%9 = tail call i32 @printf(i8* getelementptr inbounds ([44 x i8], [44 x i8]* @.str.2, i64 0, i64 0), i64 8)
br label %12
10: ; preds = %2
%11 = tail call i32 @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.3, i64 0, i64 0), i64 0)
br label %12
12: ; preds = %10, %8
%13 = lshr i64 %0, 13
%14 = and i64 %13, 3
switch i64 %14, label %23 [
i64 3, label %15
i64 2, label %17
i64 1, label %19
i64 0, label %21
]
15: ; preds = %12
%16 = tail call i32 @printf(i8* getelementptr inbounds ([72 x i8], [72 x i8]* @.str.4, i64 0, i64 0), i64 6)
br label %24
17: ; preds = %12
%18 = tail call i32 @printf(i8* getelementptr inbounds ([53 x i8], [53 x i8]* @.str.5, i64 0, i64 0), i64 4)
br label %24
19: ; preds = %12
%20 = tail call i32 @printf(i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.6, i64 0, i64 0), i64 2)
br label %24
21: ; preds = %12
%22 = tail call i32 @printf(i8* getelementptr inbounds ([62 x i8], [62 x i8]* @.str.7, i64 0, i64 0), i64 0)
br label %24
23: ; preds = %12
unreachable
24: ; preds = %21, %19, %17, %15
%25 = lshr i64 %0, 8
%26 = and i64 %25, 31
switch i64 %26, label %67 [
i64 0, label %27
i64 1, label %29
i64 2, label %31
i64 3, label %33
i64 4, label %35
i64 5, label %37
i64 6, label %39
i64 7, label %41
i64 8, label %43
i64 9, label %45
i64 10, label %47
i64 11, label %49
i64 12, label %51
i64 13, label %53
i64 14, label %55
i64 15, label %57
i64 16, label %59
i64 17, label %61
i64 18, label %63
i64 19, label %65
]
27: ; preds = %24
%28 = tail call i32 @printf(i8* getelementptr inbounds ([61 x i8], [61 x i8]* @.str.8, i64 0, i64 0), i64 0)
br label %69
29: ; preds = %24
%30 = tail call i32 @printf(i8* getelementptr inbounds ([61 x i8], [61 x i8]* @.str.9, i64 0, i64 0), i64 1)
br label %69
31: ; preds = %24
%32 = tail call i32 @printf(i8* getelementptr inbounds ([61 x i8], [61 x i8]* @.str.10, i64 0, i64 0), i64 2)
br label %69
33: ; preds = %24
%34 = tail call i32 @printf(i8* getelementptr inbounds ([61 x i8], [61 x i8]* @.str.11, i64 0, i64 0), i64 3)
br label %69
35: ; preds = %24
%36 = tail call i32 @printf(i8* getelementptr inbounds ([62 x i8], [62 x i8]* @.str.12, i64 0, i64 0), i64 4)
br label %69
37: ; preds = %24
%38 = tail call i32 @printf(i8* getelementptr inbounds ([62 x i8], [62 x i8]* @.str.13, i64 0, i64 0), i64 5)
br label %69
39: ; preds = %24
%40 = tail call i32 @printf(i8* getelementptr inbounds ([62 x i8], [62 x i8]* @.str.14, i64 0, i64 0), i64 6)
br label %69
41: ; preds = %24
%42 = tail call i32 @printf(i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.15, i64 0, i64 0), i64 7)
br label %69
43: ; preds = %24
%44 = tail call i32 @printf(i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.16, i64 0, i64 0), i64 8)
br label %69
45: ; preds = %24
%46 = tail call i32 @printf(i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.17, i64 0, i64 0), i64 9)
br label %69
47: ; preds = %24
%48 = tail call i32 @printf(i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.18, i64 0, i64 0), i64 10)
br label %69
49: ; preds = %24
%50 = tail call i32 @printf(i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.19, i64 0, i64 0), i64 11)
br label %69
51: ; preds = %24
%52 = tail call i32 @printf(i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.20, i64 0, i64 0), i64 12)
br label %69
53: ; preds = %24
%54 = tail call i32 @printf(i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.21, i64 0, i64 0), i64 13)
br label %69
55: ; preds = %24
%56 = tail call i32 @printf(i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.22, i64 0, i64 0), i64 14)
br label %69
57: ; preds = %24
%58 = tail call i32 @printf(i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.23, i64 0, i64 0), i64 15)
br label %69
59: ; preds = %24
%60 = tail call i32 @printf(i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.24, i64 0, i64 0), i64 16)
br label %69
61: ; preds = %24
%62 = tail call i32 @printf(i8* getelementptr inbounds ([66 x i8], [66 x i8]* @.str.25, i64 0, i64 0), i64 17)
br label %69
63: ; preds = %24
%64 = tail call i32 @printf(i8* getelementptr inbounds ([66 x i8], [66 x i8]* @.str.26, i64 0, i64 0), i64 18)
br label %69
65: ; preds = %24
%66 = tail call i32 @printf(i8* getelementptr inbounds ([66 x i8], [66 x i8]* @.str.27, i64 0, i64 0), i64 19)
br label %69
67: ; preds = %24
%68 = tail call i32 @printf(i8* getelementptr inbounds ([67 x i8], [67 x i8]* @.str.28, i64 0, i64 0), i64 %26)
br label %69
69: ; preds = %67, %65, %63, %61, %59, %57, %55, %53, %51, %49, %47, %45, %43, %41, %39, %37, %35, %33, %31, %29, %27
%70 = and i64 %0, 128
%71 = icmp eq i64 %70, 0
br i1 %71, label %74, label %72
72: ; preds = %69
%73 = tail call i32 @printf(i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.29, i64 0, i64 0), i64 8)
br label %76
74: ; preds = %69
%75 = tail call i32 @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.30, i64 0, i64 0), i64 0)
br label %76
76: ; preds = %74, %72
%77 = lshr i64 %0, 5
%78 = and i64 %77, 3
switch i64 %78, label %87 [
i64 3, label %79
i64 2, label %81
i64 1, label %83
i64 0, label %85
]
79: ; preds = %76
%80 = tail call i32 @printf(i8* getelementptr inbounds ([53 x i8], [53 x i8]* @.str.31, i64 0, i64 0), i64 6)
br label %88
81: ; preds = %76
%82 = tail call i32 @printf(i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.32, i64 0, i64 0), i64 4)
br label %88
83: ; preds = %76
%84 = tail call i32 @printf(i8* getelementptr inbounds ([53 x i8], [53 x i8]* @.str.33, i64 0, i64 0), i64 2)
br label %88
85: ; preds = %76
%86 = tail call i32 @printf(i8* getelementptr inbounds ([53 x i8], [53 x i8]* @.str.34, i64 0, i64 0), i64 0)
br label %88
87: ; preds = %76
unreachable
88: ; preds = %85, %83, %81, %79
%89 = and i64 %0, 31
switch i64 %89, label %130 [
i64 0, label %90
i64 1, label %92
i64 2, label %94
i64 3, label %96
i64 4, label %98
i64 5, label %100
i64 6, label %102
i64 7, label %104
i64 8, label %106
i64 9, label %108
i64 10, label %110
i64 11, label %112
i64 12, label %114
i64 13, label %116
i64 14, label %118
i64 15, label %120
i64 16, label %122
i64 17, label %124
i64 18, label %126
i64 19, label %128
]
90: ; preds = %88
%91 = tail call i32 @printf(i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.35, i64 0, i64 0), i64 0)
br label %132
92: ; preds = %88
%93 = tail call i32 @printf(i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.36, i64 0, i64 0), i64 1)
br label %132
94: ; preds = %88
%95 = tail call i32 @printf(i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.37, i64 0, i64 0), i64 2)
br label %132
96: ; preds = %88
%97 = tail call i32 @printf(i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.38, i64 0, i64 0), i64 3)
br label %132
98: ; preds = %88
%99 = tail call i32 @printf(i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.39, i64 0, i64 0), i64 4)
br label %132
100: ; preds = %88
%101 = tail call i32 @printf(i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.40, i64 0, i64 0), i64 5)
br label %132
102: ; preds = %88
%103 = tail call i32 @printf(i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.41, i64 0, i64 0), i64 6)
br label %132
104: ; preds = %88
%105 = tail call i32 @printf(i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.42, i64 0, i64 0), i64 7)
br label %132
106: ; preds = %88
%107 = tail call i32 @printf(i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.43, i64 0, i64 0), i64 8)
br label %132
108: ; preds = %88
%109 = tail call i32 @printf(i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.44, i64 0, i64 0), i64 9)
br label %132
110: ; preds = %88
%111 = tail call i32 @printf(i8* getelementptr inbounds ([66 x i8], [66 x i8]* @.str.45, i64 0, i64 0), i64 10)
br label %132
112: ; preds = %88
%113 = tail call i32 @printf(i8* getelementptr inbounds ([66 x i8], [66 x i8]* @.str.46, i64 0, i64 0), i64 11)
br label %132
114: ; preds = %88
%115 = tail call i32 @printf(i8* getelementptr inbounds ([66 x i8], [66 x i8]* @.str.47, i64 0, i64 0), i64 12)
br label %132
116: ; preds = %88
%117 = tail call i32 @printf(i8* getelementptr inbounds ([66 x i8], [66 x i8]* @.str.48, i64 0, i64 0), i64 13)
br label %132
118: ; preds = %88
%119 = tail call i32 @printf(i8* getelementptr inbounds ([67 x i8], [67 x i8]* @.str.49, i64 0, i64 0), i64 14)
br label %132
120: ; preds = %88
%121 = tail call i32 @printf(i8* getelementptr inbounds ([67 x i8], [67 x i8]* @.str.50, i64 0, i64 0), i64 15)
br label %132
122: ; preds = %88
%123 = tail call i32 @printf(i8* getelementptr inbounds ([67 x i8], [67 x i8]* @.str.51, i64 0, i64 0), i64 16)
br label %132
124: ; preds = %88
%125 = tail call i32 @printf(i8* getelementptr inbounds ([68 x i8], [68 x i8]* @.str.52, i64 0, i64 0), i64 17)
br label %132
126: ; preds = %88
%127 = tail call i32 @printf(i8* getelementptr inbounds ([68 x i8], [68 x i8]* @.str.53, i64 0, i64 0), i64 18)
br label %132
128: ; preds = %88
%129 = tail call i32 @printf(i8* getelementptr inbounds ([68 x i8], [68 x i8]* @.str.54, i64 0, i64 0), i64 19)
br label %132
130: ; preds = %88
%131 = tail call i32 @printf(i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.55, i64 0, i64 0), i64 %89)
br label %132
132: ; preds = %130, %128, %126, %124, %122, %120, %118, %116, %114, %112, %110, %108, %106, %104, %102, %100, %98, %96, %94, %92, %90
ret void
}