#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 int uint32_t;

/* Variables and functions */
int snprintf(char *, size_t, char *, char *, char *, char *, char *, char *,
             char *, char *, char *, char *, char *, char *, char *, char *,
             char *, char *, char *, char *, char *, char *, char *, char *,
             char *, char *, char *, char *, char *, char *, char *, char *,
             char *, char *, char *, char *, char *, char *, char *, char *,
             char *, char *, char *, char *, char *, char *, char *, char *,
             char *, char *, char *, char *, char *, char *, char *, char *,
             char *, char *, char *, char *, char *, char *, char *);
int get_x86_cpu_standard_flags(int intel, uint32_t ecx, uint32_t edx,
                               char *flags, size_t len) {
  return snprintf(
      flags, len,
      "%s%s%s%s"
      "%s%s%s%s"
      "%s%s%s"
      "%s%s%s%s"
      "%s%s%s%s"
      "%s%s%s"
      "%s%s%s%s"
      "%s%s%s"
      "%s%s%s%s"
      "%s%s%s%s"
      "%s%s%s%s"
      "%s%s%s%s"
      "%s%s%s"
      "%s%s%s%s"
      "%s%s%s%s"
      "%s%s%s%s",
      edx & 0x00000001 ? "fpu " : "", edx & 0x00000002 ? "vme " : "",
      edx & 0x00000004 ? "de " : "", edx & 0x00000008 ? "pse " : "",
      edx & 0x00000010 ? "tsc " : "", edx & 0x00000020 ? "msr " : "",
      edx & 0x00000040 ? "pae " : "", edx & 0x00000080 ? "mce " : "",
      edx & 0x00000100 ? "cx8 " : "", edx & 0x00000200 ? "apic " : "",
      edx & 0x00000800 ? "sep " : "", edx & 0x00001000 ? "mtrr " : "",
      edx & 0x00002000 ? "pge " : "", edx & 0x00004000 ? "mca " : "",
      edx & 0x00008000 ? "cmov " : "", edx & 0x00010000 ? "pat " : "",
      edx & 0x00020000 ? "pse36 " : "",
      intel ? (edx & 0x00040000 ? "psn " : "") : "",
      edx & 0x00080000 ? "cflsh " : "",
      intel ? (edx & 0x00200000 ? "ds " : "") : "",
      intel ? (edx & 0x00400000 ? "acpi " : "") : "",
      edx & 0x00800000 ? "mmx " : "", edx & 0x01000000 ? "fxsr " : "",
      edx & 0x02000000 ? "sse " : "", edx & 0x04000000 ? "sse2 " : "",
      intel ? (edx & 0x08000000 ? "ss " : "") : "",
      edx & 0x10000000 ? "htt " : "",
      intel ? (edx & 0x20000000 ? "tm " : "") : "",
      intel ? (edx & 0x80000000 ? "pbe " : "") : "",
      ecx & 0x00000001 ? "sse3 " : "", ecx & 0x00000002 ? "pclmulqdq " : "",
      intel ? (ecx & 0x00000004 ? "dtes64 " : "") : "",
      ecx & 0x00000008 ? "monitor " : "",
      intel ? (ecx & 0x00000010 ? "ds_cpl " : "") : "",
      intel ? (ecx & 0x00000020 ? "vmx " : "") : "",
      intel ? (ecx & 0x00000040 ? "smx " : "") : "",
      intel ? (ecx & 0x00000080 ? "est " : "") : "",
      intel ? (ecx & 0x00000100 ? "tm2 " : "") : "",
      ecx & 0x00000200 ? "ssse3 " : "",
      intel ? (ecx & 0x00000400 ? "cnxt-id " : "") : "",
      intel ? (ecx & 0x00000800 ? "sdbg " : "") : "",
      ecx & 0x00001000 ? "fma " : "", ecx & 0x00002000 ? "cx16 " : "",
      intel ? (ecx & 0x00004000 ? "xtpr " : "") : "",
      intel ? (ecx & 0x00008000 ? "pdcm " : "") : "",
      intel ? (ecx & 0x00020000 ? "pcid " : "") : "",
      intel ? (ecx & 0x00040000 ? "dca " : "") : "",
      ecx & 0x00080000 ? "sse4_1 " : "", ecx & 0x00100000 ? "sse4_2 " : "",
      intel ? (ecx & 0x00200000 ? "x2apic " : "") : "",
      intel ? (ecx & 0x00400000 ? "movbe " : "") : "",
      ecx & 0x00800000 ? "popcnt " : "",
      intel ? (ecx & 0x01000000 ? "tsc_deadline " : "") : "",
      ecx & 0x02000000 ? "aes " : "", ecx & 0x04000000 ? "xsave " : "",
      ecx & 0x08000000 ? "osxsave " : "", ecx & 0x10000000 ? "avx " : "",
      ecx & 0x20000000 ? "f16c " : "", ecx & 0x40000000 ? "rdrnd " : "",
      ecx & 0x80000000 ? "hypervisor " : "");
}


x86 assembly (clang, -O0):
<get_x86_cpu_standard_flags>:
push   %rbp
mov    %rsp,%rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x448,%rsp
mov    %edi,-0x2c(%rbp)
mov    %esi,-0x30(%rbp)
mov    %edx,-0x34(%rbp)
mov    %rcx,-0x40(%rbp)
mov    %r8,-0x48(%rbp)
mov    -0x40(%rbp),%rax
mov    %rax,-0xe0(%rbp)
mov    -0x48(%rbp),%rax
mov    %rax,-0xd8(%rbp)
mov    -0x34(%rbp),%edx
and    $0x1,%edx
lea    0x2029(%rip),%rax
lea    0x1f1a(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0xd0(%rbp)
mov    -0x34(%rbp),%edx
and    $0x2,%edx
lea    0x2007(%rip),%rax
lea    0x1efd(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0xc8(%rbp)
mov    -0x34(%rbp),%edx
and    $0x4,%edx
lea    0x1fe5(%rip),%rax
lea    0x1ee0(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0xc0(%rbp)
mov    -0x34(%rbp),%edx
and    $0x8,%edx
lea    0x1fc3(%rip),%rax
lea    0x1ec2(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0xb8(%rbp)
mov    -0x34(%rbp),%edx
and    $0x10,%edx
lea    0x1fa1(%rip),%rax
lea    0x1ea5(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0xb0(%rbp)
mov    -0x34(%rbp),%edx
and    $0x20,%edx
lea    0x1f7f(%rip),%rax
lea    0x1e88(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0xa8(%rbp)
mov    -0x34(%rbp),%edx
and    $0x40,%edx
lea    0x1f5d(%rip),%rax
lea    0x1e6b(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0xa0(%rbp)
mov    -0x34(%rbp),%edx
and    $0x80,%edx
lea    0x1f38(%rip),%rax
lea    0x1e4b(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x98(%rbp)
mov    -0x34(%rbp),%edx
and    $0x100,%edx
lea    0x1f13(%rip),%rax
lea    0x1e2b(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x90(%rbp)
mov    -0x34(%rbp),%edx
and    $0x200,%edx
lea    0x1eee(%rip),%rax
lea    0x1ef2(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x88(%rbp)
mov    -0x34(%rbp),%edx
and    $0x800,%edx
lea    0x1ec9(%rip),%rax
lea    0x1de6(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x80(%rbp)
mov    -0x34(%rbp),%edx
and    $0x1000,%edx
lea    0x1ea7(%rip),%rax
lea    0x1dc9(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x78(%rbp)
mov    -0x34(%rbp),%edx
and    $0x2000,%edx
lea    0x1e85(%rip),%rax
lea    0x1dad(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x70(%rbp)
mov    -0x34(%rbp),%edx
and    $0x4000,%edx
lea    0x1e63(%rip),%rax
lea    0x1d90(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x68(%rbp)
mov    -0x34(%rbp),%edx
and    $0x8000,%edx
lea    0x1e41(%rip),%rax
lea    0x1d73(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x60(%rbp)
mov    -0x34(%rbp),%edx
and    $0x10000,%edx
lea    0x1e1f(%rip),%rax
lea    0x1d57(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x58(%rbp)
mov    -0x34(%rbp),%edx
and    $0x20000,%edx
lea    0x1dfd(%rip),%rax
lea    0x1d3a(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x50(%rbp)
cmpl   $0x0,-0x2c(%rbp)
je     13ca <get_x86_cpu_standard_flags+0x2ba>
mov    -0x34(%rbp),%edx
and    $0x40000,%edx
lea    0x1dd1(%rip),%rax
lea    0x1d15(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0xe8(%rbp)
jmp    13dd <get_x86_cpu_standard_flags+0x2cd>
lea    0x1db0(%rip),%rax
mov    %rax,-0xe8(%rbp)
jmp    13dd <get_x86_cpu_standard_flags+0x2cd>
mov    -0xe8(%rbp),%rax
mov    %rax,-0xf8(%rbp)
mov    -0x34(%rbp),%edx
and    $0x80000,%edx
lea    0x1d86(%rip),%rax
lea    0x1ccf(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0xf0(%rbp)
cmpl   $0x0,-0x2c(%rbp)
je     1444 <get_x86_cpu_standard_flags+0x334>
mov    -0x34(%rbp),%edx
and    $0x200000,%edx
lea    0x1d57(%rip),%rax
lea    0x1ca7(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x100(%rbp)
jmp    1457 <get_x86_cpu_standard_flags+0x347>
lea    0x1d36(%rip),%rax
mov    %rax,-0x100(%rbp)
jmp    1457 <get_x86_cpu_standard_flags+0x347>
mov    -0x100(%rbp),%rax
mov    %rax,-0x108(%rbp)
cmpl   $0x0,-0x2c(%rbp)
je     1499 <get_x86_cpu_standard_flags+0x389>
mov    -0x34(%rbp),%edx
and    $0x400000,%edx
lea    0x1d02(%rip),%rax
lea    0x1c56(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x110(%rbp)
jmp    14ac <get_x86_cpu_standard_flags+0x39c>
lea    0x1ce1(%rip),%rax
mov    %rax,-0x110(%rbp)
jmp    14ac <get_x86_cpu_standard_flags+0x39c>
mov    -0x110(%rbp),%rax
mov    %rax,-0x138(%rbp)
mov    -0x34(%rbp),%edx
and    $0x800000,%edx
lea    0x1cb7(%rip),%rax
lea    0x1c11(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x130(%rbp)
mov    -0x34(%rbp),%edx
and    $0x1000000,%edx
lea    0x1c92(%rip),%rax
lea    0x1bf1(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x128(%rbp)
mov    -0x34(%rbp),%edx
and    $0x2000000,%edx
lea    0x1c6d(%rip),%rax
lea    0x1bd2(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x120(%rbp)
mov    -0x34(%rbp),%edx
and    $0x4000000,%edx
lea    0x1c48(%rip),%rax
lea    0x1bb2(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x118(%rbp)
cmpl   $0x0,-0x2c(%rbp)
je     1582 <get_x86_cpu_standard_flags+0x472>
mov    -0x34(%rbp),%edx
and    $0x8000000,%edx
lea    0x1c19(%rip),%rax
lea    0x1b89(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x140(%rbp)
jmp    1595 <get_x86_cpu_standard_flags+0x485>
lea    0x1bf8(%rip),%rax
mov    %rax,-0x140(%rbp)
jmp    1595 <get_x86_cpu_standard_flags+0x485>
mov    -0x140(%rbp),%rax
mov    %rax,-0x150(%rbp)
mov    -0x34(%rbp),%edx
and    $0x10000000,%edx
lea    0x1bce(%rip),%rax
lea    0x1b42(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x148(%rbp)
cmpl   $0x0,-0x2c(%rbp)
je     15fc <get_x86_cpu_standard_flags+0x4ec>
mov    -0x34(%rbp),%edx
and    $0x20000000,%edx
lea    0x1b9f(%rip),%rax
lea    0x1b18(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x158(%rbp)
jmp    160f <get_x86_cpu_standard_flags+0x4ff>
lea    0x1b7e(%rip),%rax
mov    %rax,-0x158(%rbp)
jmp    160f <get_x86_cpu_standard_flags+0x4ff>
mov    -0x158(%rbp),%rax
mov    %rax,-0x160(%rbp)
cmpl   $0x0,-0x2c(%rbp)
je     1651 <get_x86_cpu_standard_flags+0x541>
mov    -0x34(%rbp),%edx
and    $0x80000000,%edx
lea    0x1b4a(%rip),%rax
lea    0x1ac7(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x168(%rbp)
jmp    1664 <get_x86_cpu_standard_flags+0x554>
lea    0x1b29(%rip),%rax
mov    %rax,-0x168(%rbp)
jmp    1664 <get_x86_cpu_standard_flags+0x554>
mov    -0x168(%rbp),%rax
mov    %rax,-0x180(%rbp)
mov    -0x30(%rbp),%edx
and    $0x1,%edx
lea    0x1b02(%rip),%rax
lea    0x1abd(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x178(%rbp)
mov    -0x30(%rbp),%edx
and    $0x2,%edx
lea    0x1ae0(%rip),%rax
lea    0x1a62(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x170(%rbp)
cmpl   $0x0,-0x2c(%rbp)
je     16e7 <get_x86_cpu_standard_flags+0x5d7>
mov    -0x30(%rbp),%edx
and    $0x4,%edx
lea    0x1ab4(%rip),%rax
lea    0x1a41(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x188(%rbp)
jmp    16fa <get_x86_cpu_standard_flags+0x5ea>
lea    0x1a93(%rip),%rax
mov    %rax,-0x188(%rbp)
jmp    16fa <get_x86_cpu_standard_flags+0x5ea>
mov    -0x188(%rbp),%rax
mov    %rax,-0x198(%rbp)
mov    -0x30(%rbp),%edx
and    $0x8,%edx
lea    0x1a6c(%rip),%rax
lea    0x1a01(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x190(%rbp)
cmpl   $0x0,-0x2c(%rbp)
je     175b <get_x86_cpu_standard_flags+0x64b>
mov    -0x30(%rbp),%edx
and    $0x10,%edx
lea    0x1a40(%rip),%rax
lea    0x19de(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x1a0(%rbp)
jmp    176e <get_x86_cpu_standard_flags+0x65e>
lea    0x1a1f(%rip),%rax
mov    %rax,-0x1a0(%rbp)
jmp    176e <get_x86_cpu_standard_flags+0x65e>
mov    -0x1a0(%rbp),%rax
mov    %rax,-0x1a8(%rbp)
cmpl   $0x0,-0x2c(%rbp)
je     17ad <get_x86_cpu_standard_flags+0x69d>
mov    -0x30(%rbp),%edx
and    $0x20,%edx
lea    0x19ee(%rip),%rax
lea    0x1994(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x1b0(%rbp)
jmp    17c0 <get_x86_cpu_standard_flags+0x6b0>
lea    0x19cd(%rip),%rax
mov    %rax,-0x1b0(%rbp)
jmp    17c0 <get_x86_cpu_standard_flags+0x6b0>
mov    -0x1b0(%rbp),%rax
mov    %rax,-0x1b8(%rbp)
cmpl   $0x0,-0x2c(%rbp)
je     17ff <get_x86_cpu_standard_flags+0x6ef>
mov    -0x30(%rbp),%edx
and    $0x40,%edx
lea    0x199c(%rip),%rax
lea    0x1947(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x1c0(%rbp)
jmp    1812 <get_x86_cpu_standard_flags+0x702>
lea    0x197b(%rip),%rax
mov    %rax,-0x1c0(%rbp)
jmp    1812 <get_x86_cpu_standard_flags+0x702>
mov    -0x1c0(%rbp),%rax
mov    %rax,-0x1c8(%rbp)
cmpl   $0x0,-0x2c(%rbp)
je     1854 <get_x86_cpu_standard_flags+0x744>
mov    -0x30(%rbp),%edx
and    $0x80,%edx
lea    0x1947(%rip),%rax
lea    0x18f7(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x1d0(%rbp)
jmp    1867 <get_x86_cpu_standard_flags+0x757>
lea    0x1926(%rip),%rax
mov    %rax,-0x1d0(%rbp)
jmp    1867 <get_x86_cpu_standard_flags+0x757>
mov    -0x1d0(%rbp),%rax
mov    %rax,-0x1d8(%rbp)
cmpl   $0x0,-0x2c(%rbp)
je     18a9 <get_x86_cpu_standard_flags+0x799>
mov    -0x30(%rbp),%edx
and    $0x100,%edx
lea    0x18f2(%rip),%rax
lea    0x18a7(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x1e0(%rbp)
jmp    18bc <get_x86_cpu_standard_flags+0x7ac>
lea    0x18d1(%rip),%rax
mov    %rax,-0x1e0(%rbp)
jmp    18bc <get_x86_cpu_standard_flags+0x7ac>
mov    -0x1e0(%rbp),%rax
mov    %rax,-0x1f0(%rbp)
mov    -0x30(%rbp),%edx
and    $0x200,%edx
lea    0x18a7(%rip),%rax
lea    0x1861(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x1e8(%rbp)
cmpl   $0x0,-0x2c(%rbp)
je     1923 <get_x86_cpu_standard_flags+0x813>
mov    -0x30(%rbp),%edx
and    $0x400,%edx
lea    0x1878(%rip),%rax
lea    0x1839(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x1f8(%rbp)
jmp    1936 <get_x86_cpu_standard_flags+0x826>
lea    0x1857(%rip),%rax
mov    %rax,-0x1f8(%rbp)
jmp    1936 <get_x86_cpu_standard_flags+0x826>
mov    -0x1f8(%rbp),%rax
mov    %rax,-0x200(%rbp)
cmpl   $0x0,-0x2c(%rbp)
je     1978 <get_x86_cpu_standard_flags+0x868>
mov    -0x30(%rbp),%edx
and    $0x800,%edx
lea    0x1823(%rip),%rax
lea    0x17ed(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x208(%rbp)
jmp    198b <get_x86_cpu_standard_flags+0x87b>
lea    0x1802(%rip),%rax
mov    %rax,-0x208(%rbp)
jmp    198b <get_x86_cpu_standard_flags+0x87b>
mov    -0x208(%rbp),%rax
mov    %rax,-0x220(%rbp)
mov    -0x30(%rbp),%edx
and    $0x1000,%edx
lea    0x17d8(%rip),%rax
lea    0x17a8(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x218(%rbp)
mov    -0x30(%rbp),%edx
and    $0x2000,%edx
lea    0x17b3(%rip),%rax
lea    0x1788(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x210(%rbp)
cmpl   $0x0,-0x2c(%rbp)
je     1a17 <get_x86_cpu_standard_flags+0x907>
mov    -0x30(%rbp),%edx
and    $0x4000,%edx
lea    0x1784(%rip),%rax
lea    0x175f(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x228(%rbp)
jmp    1a2a <get_x86_cpu_standard_flags+0x91a>
lea    0x1763(%rip),%rax
mov    %rax,-0x228(%rbp)
jmp    1a2a <get_x86_cpu_standard_flags+0x91a>
mov    -0x228(%rbp),%rax
mov    %rax,-0x230(%rbp)
cmpl   $0x0,-0x2c(%rbp)
je     1a6c <get_x86_cpu_standard_flags+0x95c>
mov    -0x30(%rbp),%edx
and    $0x8000,%edx
lea    0x172f(%rip),%rax
lea    0x1710(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x238(%rbp)
jmp    1a7f <get_x86_cpu_standard_flags+0x96f>
lea    0x170e(%rip),%rax
mov    %rax,-0x238(%rbp)
jmp    1a7f <get_x86_cpu_standard_flags+0x96f>
mov    -0x238(%rbp),%rax
mov    %rax,-0x240(%rbp)
cmpl   $0x0,-0x2c(%rbp)
je     1ac1 <get_x86_cpu_standard_flags+0x9b1>
mov    -0x30(%rbp),%edx
and    $0x20000,%edx
lea    0x16da(%rip),%rax
lea    0x16c1(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x248(%rbp)
jmp    1ad4 <get_x86_cpu_standard_flags+0x9c4>
lea    0x16b9(%rip),%rax
mov    %rax,-0x248(%rbp)
jmp    1ad4 <get_x86_cpu_standard_flags+0x9c4>
mov    -0x248(%rbp),%rax
mov    %rax,-0x250(%rbp)
cmpl   $0x0,-0x2c(%rbp)
je     1b16 <get_x86_cpu_standard_flags+0xa06>
mov    -0x30(%rbp),%edx
and    $0x40000,%edx
lea    0x1685(%rip),%rax
lea    0x1672(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x258(%rbp)
jmp    1b29 <get_x86_cpu_standard_flags+0xa19>
lea    0x1664(%rip),%rax
mov    %rax,-0x258(%rbp)
jmp    1b29 <get_x86_cpu_standard_flags+0xa19>
mov    -0x258(%rbp),%rax
mov    %rax,-0x270(%rbp)
mov    -0x30(%rbp),%edx
and    $0x80000,%edx
lea    0x163a(%rip),%rax
lea    0x162c(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x268(%rbp)
mov    -0x30(%rbp),%edx
and    $0x100000,%edx
lea    0x1615(%rip),%rax
lea    0x160f(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x260(%rbp)
cmpl   $0x0,-0x2c(%rbp)
je     1bb5 <get_x86_cpu_standard_flags+0xaa5>
mov    -0x30(%rbp),%edx
and    $0x200000,%edx
lea    0x15e6(%rip),%rax
lea    0x15e8(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x278(%rbp)
jmp    1bc8 <get_x86_cpu_standard_flags+0xab8>
lea    0x15c5(%rip),%rax
mov    %rax,-0x278(%rbp)
jmp    1bc8 <get_x86_cpu_standard_flags+0xab8>
mov    -0x278(%rbp),%rax
mov    %rax,-0x280(%rbp)
cmpl   $0x0,-0x2c(%rbp)
je     1c0a <get_x86_cpu_standard_flags+0xafa>
mov    -0x30(%rbp),%edx
and    $0x400000,%edx
lea    0x1591(%rip),%rax
lea    0x159b(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x288(%rbp)
jmp    1c1d <get_x86_cpu_standard_flags+0xb0d>
lea    0x1570(%rip),%rax
mov    %rax,-0x288(%rbp)
jmp    1c1d <get_x86_cpu_standard_flags+0xb0d>
mov    -0x288(%rbp),%rax
mov    %rax,-0x298(%rbp)
mov    -0x30(%rbp),%edx
and    $0x800000,%edx
lea    0x1546(%rip),%rax
lea    0x1557(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x290(%rbp)
cmpl   $0x0,-0x2c(%rbp)
je     1c84 <get_x86_cpu_standard_flags+0xb74>
mov    -0x30(%rbp),%edx
and    $0x1000000,%edx
lea    0x1517(%rip),%rax
lea    0x1530(%rip),%rcx
cmp    $0x0,%edx
cmovne %rcx,%rax
mov    %rax,-0x2a0(%rbp)
jmp    1c97 <get_x86_cpu_standard_flags+0xb87>
lea    0x14f6(%rip),%rax
mov    %rax,-0x2a0(%rbp)
jmp    1c97 <get_x86_cpu_standard_flags+0xb87>
mov    -0xc0(%rbp),%r9
mov    -0xc8(%rbp),%r8
mov    -0xd8(%rbp),%rsi
mov    -0xe0(%rbp),%rdi
mov    -0x2a0(%rbp),%r13
mov    -0x30(%rbp),%ecx
and    $0x2000000,%ecx
lea    0x14b7(%rip),%r12
lea    0x14de(%rip),%rax
cmp    $0x0,%ecx
cmovne %rax,%r12
mov    -0x30(%rbp),%ecx
and    $0x4000000,%ecx
lea    0x1499(%rip),%r15
lea    0x14c7(%rip),%rax
cmp    $0x0,%ecx
cmovne %rax,%r15
mov    -0x30(%rbp),%ecx
and    $0x8000000,%ecx
lea    0x147b(%rip),%r14
lea    0x14a7(%rip),%rax
cmp    $0x0,%ecx
cmovne %rax,%r14
mov    -0x30(%rbp),%ecx
and    $0x10000000,%ecx
lea    0x145d(%rip),%rbx
lea    0x1492(%rip),%rax
cmp    $0x0,%ecx
cmovne %rax,%rbx
mov    -0x30(%rbp),%ecx
and    $0x20000000,%ecx
lea    0x143f(%rip),%r11
lea    0x1479(%rip),%rax
cmp    $0x0,%ecx
cmovne %rax,%r11
mov    -0x30(%rbp),%ecx
and    $0x40000000,%ecx
lea    0x1421(%rip),%r10
lea    0x1461(%rip),%rax
cmp    $0x0,%ecx
cmovne %rax,%r10
mov    -0x30(%rbp),%ecx
and    $0x80000000,%ecx
lea    0x1403(%rip),%rdx
lea    0x144a(%rip),%rax
cmp    $0x0,%ecx
mov    -0xd0(%rbp),%rcx
cmovne %rax,%rdx
mov    -0xb8(%rbp),%rax
mov    %rdx,-0x2a8(%rbp)
lea    0x1258(%rip),%rdx
mov    %rax,(%rsp)
mov    -0xb0(%rbp),%rax
mov    %rax,0x8(%rsp)
mov    -0xa8(%rbp),%rax
mov    %rax,0x10(%rsp)
mov    -0xa0(%rbp),%rax
mov    %rax,0x18(%rsp)
mov    -0x98(%rbp),%rax
mov    %rax,0x20(%rsp)
mov    -0x90(%rbp),%rax
mov    %rax,0x28(%rsp)
mov    -0x88(%rbp),%rax
mov    %rax,0x30(%rsp)
mov    -0x80(%rbp),%rax
mov    %rax,0x38(%rsp)
mov    -0x78(%rbp),%rax
mov    %rax,0x40(%rsp)
mov    -0x70(%rbp),%rax
mov    %rax,0x48(%rsp)
mov    -0x68(%rbp),%rax
mov    %rax,0x50(%rsp)
mov    -0x60(%rbp),%rax
mov    %rax,0x58(%rsp)
mov    -0x58(%rbp),%rax
mov    %rax,0x60(%rsp)
mov    -0x50(%rbp),%rax
mov    %rax,0x68(%rsp)
mov    -0xf8(%rbp),%rax
mov    %rax,0x70(%rsp)
mov    -0xf0(%rbp),%rax
mov    %rax,0x78(%rsp)
mov    -0x108(%rbp),%rax
mov    %rax,0x80(%rsp)
mov    -0x138(%rbp),%rax
mov    %rax,0x88(%rsp)
mov    -0x130(%rbp),%rax
mov    %rax,0x90(%rsp)
mov    -0x128(%rbp),%rax
mov    %rax,0x98(%rsp)
mov    -0x120(%rbp),%rax
mov    %rax,0xa0(%rsp)
mov    -0x118(%rbp),%rax
mov    %rax,0xa8(%rsp)
mov    -0x150(%rbp),%rax
mov    %rax,0xb0(%rsp)
mov    -0x148(%rbp),%rax
mov    %rax,0xb8(%rsp)
mov    -0x160(%rbp),%rax
mov    %rax,0xc0(%rsp)
mov    -0x180(%rbp),%rax
mov    %rax,0xc8(%rsp)
mov    -0x178(%rbp),%rax
mov    %rax,0xd0(%rsp)
mov    -0x170(%rbp),%rax
mov    %rax,0xd8(%rsp)
mov    -0x198(%rbp),%rax
mov    %rax,0xe0(%rsp)
mov    -0x190(%rbp),%rax
mov    %rax,0xe8(%rsp)
mov    -0x1a8(%rbp),%rax
mov    %rax,0xf0(%rsp)
mov    -0x1b8(%rbp),%rax
mov    %rax,0xf8(%rsp)
mov    -0x1c8(%rbp),%rax
mov    %rax,0x100(%rsp)
mov    -0x1d8(%rbp),%rax
mov    %rax,0x108(%rsp)
mov    -0x1f0(%rbp),%rax
mov    %rax,0x110(%rsp)
mov    -0x1e8(%rbp),%rax
mov    %rax,0x118(%rsp)
mov    -0x200(%rbp),%rax
mov    %rax,0x120(%rsp)
mov    -0x220(%rbp),%rax
mov    %rax,0x128(%rsp)
mov    -0x218(%rbp),%rax
mov    %rax,0x130(%rsp)
mov    -0x210(%rbp),%rax
mov    %rax,0x138(%rsp)
mov    -0x230(%rbp),%rax
mov    %rax,0x140(%rsp)
mov    -0x240(%rbp),%rax
mov    %rax,0x148(%rsp)
mov    -0x250(%rbp),%rax
mov    %rax,0x150(%rsp)
mov    -0x270(%rbp),%rax
mov    %rax,0x158(%rsp)
mov    -0x268(%rbp),%rax
mov    %rax,0x160(%rsp)
mov    -0x260(%rbp),%rax
mov    %rax,0x168(%rsp)
mov    -0x280(%rbp),%rax
mov    %rax,0x170(%rsp)
mov    -0x298(%rbp),%rax
mov    %rax,0x178(%rsp)
mov    -0x290(%rbp),%rax
mov    %rax,0x180(%rsp)
mov    -0x2a8(%rbp),%rax
mov    %r13,0x188(%rsp)
mov    %r12,0x190(%rsp)
mov    %r15,0x198(%rsp)
mov    %r14,0x1a0(%rsp)
mov    %rbx,0x1a8(%rsp)
mov    %r11,0x1b0(%rsp)
mov    %r10,0x1b8(%rsp)
mov    %rax,0x1c0(%rsp)
call   1030 <snprintf@plt>
add    $0x448,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

x86 assembly (clang, -O2):
<get_x86_cpu_standard_flags>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x1a8,%rsp
mov    %edx,0x64(%rsp)
mov    %esi,%ebp
test   $0x40000,%edx
lea    0x104d(%rip),%rsi
lea    0xf91(%rip),%rax
cmove  %rsi,%rax
mov    %rax,0x58(%rsp)
test   $0x200000,%edx
lea    0xf87(%rip),%rax
cmove  %rsi,%rax
mov    %rax,0x50(%rsp)
test   $0x400000,%edx
lea    0xf75(%rip),%rax
cmove  %rsi,%rax
mov    %rax,0x48(%rsp)
test   $0x8000000,%edx
lea    0xf7b(%rip),%rax
cmove  %rsi,%rax
mov    %rax,0x40(%rsp)
test   $0x20000000,%edx
lea    0xf6e(%rip),%rax
cmove  %rsi,%rax
mov    %rax,0x38(%rsp)
test   %edx,%edx
lea    0xf60(%rip),%rax
cmovns %rsi,%rax
mov    %rax,0x30(%rsp)
mov    %ebp,%edx
test   $0x4,%dl
lea    0xf5b(%rip),%rax
cmove  %rsi,%rax
mov    %rax,0x28(%rsp)
test   $0x10,%dl
lea    0xf59(%rip),%rax
cmove  %rsi,%rax
mov    %rax,0x20(%rsp)
test   $0x20,%dl
lea    0xf4e(%rip),%rax
cmove  %rsi,%rax
mov    %rax,0x18(%rsp)
test   $0x40,%dl
lea    0xf40(%rip),%r9
cmove  %rsi,%r9
test   $0x80,%dl
lea    0xf37(%rip),%rbp
cmove  %rsi,%rbp
test   $0x100,%edx
lea    0xf2b(%rip),%rbx
cmove  %rsi,%rbx
test   $0x400,%edx
lea    0xf26(%rip),%r10
cmove  %rsi,%r10
test   $0x800,%edx
lea    0xf1e(%rip),%r11
cmove  %rsi,%r11
test   $0x4000,%edx
lea    0xf1e(%rip),%r14
cmove  %rsi,%r14
test   $0x8000,%edx
lea    0xf13(%rip),%r12
cmove  %rsi,%r12
test   $0x20000,%edx
lea    0xf08(%rip),%r13
cmove  %rsi,%r13
test   $0x40000,%edx
lea    0xefd(%rip),%rax
cmove  %rsi,%rax
mov    %rax,0x8(%rsp)
test   $0x200000,%edx
mov    %edx,%eax
lea    0xefa(%rip),%rdx
cmove  %rsi,%rdx
mov    %rdx,0x10(%rsp)
test   $0x400000,%eax
lea    0xeed(%rip),%r15
cmove  %rsi,%r15
mov    %r15,%rdx
test   $0x1000000,%eax
lea    0xee9(%rip),%r15
cmove  %rsi,%r15
mov    %rcx,0x160(%rsp)
mov    %r8,0x168(%rsp)
test   %edi,%edi
mov    0x58(%rsp),%rcx
cmove  %rsi,%rcx
mov    %rcx,0x58(%rsp)
mov    0x50(%rsp),%rcx
cmove  %rsi,%rcx
mov    %rcx,0x50(%rsp)
mov    0x48(%rsp),%rcx
cmove  %rsi,%rcx
mov    %rcx,0x48(%rsp)
mov    0x40(%rsp),%rcx
cmove  %rsi,%rcx
mov    %rcx,0x40(%rsp)
mov    0x38(%rsp),%rcx
cmove  %rsi,%rcx
mov    %rcx,0x38(%rsp)
mov    0x30(%rsp),%rcx
cmove  %rsi,%rcx
mov    %rcx,0x30(%rsp)
mov    0x28(%rsp),%rcx
cmove  %rsi,%rcx
mov    %rcx,0x28(%rsp)
mov    0x20(%rsp),%rcx
cmove  %rsi,%rcx
mov    %rcx,0x20(%rsp)
mov    0x18(%rsp),%rcx
cmove  %rsi,%rcx
mov    %rcx,0x18(%rsp)
cmove  %rsi,%r9
mov    %r9,0x1a0(%rsp)
cmove  %rsi,%rbp
mov    %rbp,0x198(%rsp)
cmove  %rsi,%rbx
mov    %rbx,0x190(%rsp)
cmove  %rsi,%r10
mov    %r10,0x188(%rsp)
cmove  %rsi,%r11
mov    %r11,0x180(%rsp)
cmove  %rsi,%r14
mov    %r14,0x178(%rsp)
cmove  %rsi,%r12
mov    %r12,0x170(%rsp)
cmove  %rsi,%r13
mov    %r13,0x158(%rsp)
mov    0x8(%rsp),%rcx
cmove  %rsi,%rcx
mov    %rcx,0x8(%rsp)
mov    0x10(%rsp),%rcx
cmove  %rsi,%rcx
mov    %rcx,0x10(%rsp)
cmove  %rsi,%rdx
mov    %rdx,0x108(%rsp)
cmove  %rsi,%r15
test   $0x800000,%eax
lea    0xdb5(%rip),%rcx
cmove  %rsi,%rcx
mov    %rcx,0xb8(%rsp)
test   $0x100000,%eax
lea    0xd86(%rip),%rcx
cmove  %rsi,%rcx
mov    %rcx,0xc8(%rsp)
test   $0x80000,%eax
lea    0xd66(%rip),%rcx
cmove  %rsi,%rcx
mov    %rcx,0xb0(%rsp)
test   $0x2000,%eax
lea    0xd31(%rip),%rcx
cmove  %rsi,%rcx
mov    %rcx,0xf0(%rsp)
test   $0x1000,%eax
lea    0xd14(%rip),%rcx
cmove  %rsi,%rcx
mov    %rcx,0xd8(%rsp)
test   $0x200,%eax
lea    0xce6(%rip),%rcx
cmove  %rsi,%rcx
mov    %rcx,0xe8(%rsp)
test   $0x8,%al
lea    0xcac(%rip),%rcx
cmove  %rsi,%rcx
mov    %rcx,0x150(%rsp)
test   $0x2,%al
lea    0xc84(%rip),%rcx
cmove  %rsi,%rcx
mov    %rcx,0x148(%rsp)
test   $0x1,%al
lea    0xca8(%rip),%rcx
cmove  %rsi,%rcx
mov    %rcx,0x130(%rsp)
mov    0x64(%rsp),%ecx
test   $0x10000000,%ecx
lea    0xc44(%rip),%rdi
cmove  %rsi,%rdi
mov    %rdi,0x140(%rsp)
test   $0x4000000,%ecx
lea    0xc21(%rip),%rdi
cmove  %rsi,%rdi
mov    %rdi,0x138(%rsp)
test   $0x2000000,%ecx
lea    0xc03(%rip),%rdi
cmove  %rsi,%rdi
mov    %rdi,0x128(%rsp)
test   $0x1000000,%ecx
lea    0xbe4(%rip),%rdi
cmove  %rsi,%rdi
mov    %rdi,0x120(%rsp)
test   $0x800000,%ecx
lea    0xbc6(%rip),%rdi
cmove  %rsi,%rdi
mov    %rdi,0x100(%rsp)
test   $0x80000,%ecx
lea    0xb9c(%rip),%rdi
cmove  %rsi,%rdi
mov    %rdi,0x118(%rsp)
test   $0x20000,%ecx
lea    0xb77(%rip),%rdi
cmove  %rsi,%rdi
mov    %rdi,0x110(%rsp)
test   $0x10000,%ecx
lea    0xb59(%rip),%rdi
cmove  %rsi,%rdi
mov    %rdi,0xf8(%rsp)
test   $0x8000,%ecx
lea    0xb3a(%rip),%rdi
cmove  %rsi,%rdi
mov    %rdi,0xe0(%rsp)
test   $0x4000,%ecx
lea    0xb1c(%rip),%rdi
cmove  %rsi,%rdi
mov    %rdi,0xd0(%rsp)
test   $0x2000,%ecx
lea    0xafe(%rip),%rdi
cmove  %rsi,%rdi
mov    %rdi,0xc0(%rsp)
test   $0x1000,%ecx
lea    0xadf(%rip),%rdi
cmove  %rsi,%rdi
mov    %rdi,0xa8(%rsp)
test   $0x800,%ecx
lea    0xac1(%rip),%rdi
cmove  %rsi,%rdi
mov    %rdi,0xa0(%rsp)
test   $0x200,%ecx
lea    0xb8f(%rip),%rdi
cmove  %rsi,%rdi
mov    %rdi,0x98(%rsp)
test   $0x100,%ecx
lea    0xa8a(%rip),%rdi
cmove  %rsi,%rdi
mov    %rdi,0x90(%rsp)
test   $0x80,%cl
lea    0xa6f(%rip),%rdi
cmove  %rsi,%rdi
mov    %rdi,0x88(%rsp)
test   $0x40,%cl
lea    0xa54(%rip),%rdi
cmove  %rsi,%rdi
mov    %rdi,0x80(%rsp)
test   $0x20,%cl
lea    0xa39(%rip),%rdi
cmove  %rsi,%rdi
mov    %rdi,0x78(%rsp)
test   $0x10,%cl
lea    0xa21(%rip),%rdi
cmove  %rsi,%rdi
mov    %rdi,0x70(%rsp)
test   $0x8,%cl
lea    0xa09(%rip),%rdi
cmove  %rsi,%rdi
mov    %rdi,0x68(%rsp)
test   $0x4,%cl
lea    0x9f2(%rip),%r9
cmove  %rsi,%r9
test   $0x2,%cl
lea    0x9df(%rip),%r8
cmove  %rsi,%r8
test   $0x1,%cl
lea    0x9cc(%rip),%rcx
cmove  %rsi,%rcx
test   $0x2000000,%eax
lea    0xaf2(%rip),%r14
cmove  %rsi,%r14
test   $0x4000000,%eax
lea    0xae9(%rip),%r12
cmove  %rsi,%r12
test   $0x8000000,%eax
lea    0xad7(%rip),%r13
cmove  %rsi,%r13
test   $0x10000000,%eax
lea    0xad0(%rip),%r10
cmove  %rsi,%r10
test   $0x20000000,%eax
lea    0xac5(%rip),%rbp
cmove  %rsi,%rbp
test   $0x40000000,%eax
lea    0xabb(%rip),%r11
cmove  %rsi,%r11
test   %eax,%eax
lea    0xab5(%rip),%rbx
cmovns %rsi,%rbx
sub    $0x8,%rsp
lea    0x8d7(%rip),%rdx
mov    0x168(%rsp),%rdi
mov    0x170(%rsp),%rsi
push   %rbx
push   %r11
push   %rbp
push   %r10
push   %r13
push   %r12
push   %r14
push   %r15
push   0x100(%rsp)
push   0x158(%rsp)
push   0x68(%rsp)
push   0x128(%rsp)
push   0x118(%rsp)
push   0x78(%rsp)
push   0x1d0(%rsp)
push   0x1f0(%rsp)
push   0x200(%rsp)
push   0x180(%rsp)
push   0x170(%rsp)
push   0x220(%rsp)
push   0x230(%rsp)
push   0x198(%rsp)
push   0x248(%rsp)
push   0x258(%rsp)
push   0x268(%rsp)
push   0xe8(%rsp)
push   0xf8(%rsp)
push   0x230(%rsp)
push   0x110(%rsp)
push   0x238(%rsp)
push   0x228(%rsp)
push   0x130(%rsp)
push   0x140(%rsp)
push   0x250(%rsp)
push   0x158(%rsp)
push   0x258(%rsp)
push   0x250(%rsp)
push   0x250(%rsp)
push   0x238(%rsp)
push   0x188(%rsp)
push   0x198(%rsp)
push   0x268(%rsp)
push   0x1b0(%rsp)
push   0x270(%rsp)
push   0x260(%rsp)
push   0x250(%rsp)
push   0x248(%rsp)
push   0x240(%rsp)
push   0x230(%rsp)
push   0x230(%rsp)
push   0x230(%rsp)
push   0x230(%rsp)
push   0x230(%rsp)
push   0x230(%rsp)
push   0x230(%rsp)
push   0x230(%rsp)
push   0x230(%rsp)
call   1030 <snprintf@plt>
add    $0x378,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
@.str = [121 x i8] c"%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s\00"
@.str.1 = [5 x i8] c"fpu \00"
@.str.2 = [1 x i8] zeroinitializer
@.str.3 = [5 x i8] c"vme \00"
@.str.4 = [4 x i8] c"de \00"
@.str.5 = [5 x i8] c"pse \00"
@.str.6 = [5 x i8] c"tsc \00"
@.str.7 = [5 x i8] c"msr \00"
@.str.8 = [5 x i8] c"pae \00"
@.str.9 = [5 x i8] c"mce \00"
@.str.10 = [5 x i8] c"cx8 \00"
@.str.11 = [6 x i8] c"apic \00"
@.str.12 = [5 x i8] c"sep \00"
@.str.13 = [6 x i8] c"mtrr \00"
@.str.14 = [5 x i8] c"pge \00"
@.str.15 = [5 x i8] c"mca \00"
@.str.16 = [6 x i8] c"cmov \00"
@.str.17 = [5 x i8] c"pat \00"
@.str.18 = [7 x i8] c"pse36 \00"
@.str.19 = [5 x i8] c"psn \00"
@.str.20 = [7 x i8] c"cflsh \00"
@.str.21 = [4 x i8] c"ds \00"
@.str.22 = [6 x i8] c"acpi \00"
@.str.23 = [5 x i8] c"mmx \00"
@.str.24 = [6 x i8] c"fxsr \00"
@.str.25 = [5 x i8] c"sse \00"
@.str.26 = [6 x i8] c"sse2 \00"
@.str.27 = [4 x i8] c"ss \00"
@.str.28 = [5 x i8] c"htt \00"
@.str.29 = [4 x i8] c"tm \00"
@.str.30 = [5 x i8] c"pbe \00"
@.str.31 = [6 x i8] c"sse3 \00"
@.str.32 = [11 x i8] c"pclmulqdq \00"
@.str.33 = [8 x i8] c"dtes64 \00"
@.str.34 = [9 x i8] c"monitor \00"
@.str.35 = [8 x i8] c"ds_cpl \00"
@.str.36 = [5 x i8] c"vmx \00"
@.str.37 = [5 x i8] c"smx \00"
@.str.38 = [5 x i8] c"est \00"
@.str.39 = [5 x i8] c"tm2 \00"
@.str.40 = [7 x i8] c"ssse3 \00"
@.str.41 = [9 x i8] c"cnxt-id \00"
@.str.42 = [6 x i8] c"sdbg \00"
@.str.43 = [5 x i8] c"fma \00"
@.str.44 = [6 x i8] c"cx16 \00"
@.str.45 = [6 x i8] c"xtpr \00"
@.str.46 = [6 x i8] c"pdcm \00"
@.str.47 = [6 x i8] c"pcid \00"
@.str.48 = [5 x i8] c"dca \00"
@.str.49 = [8 x i8] c"sse4_1 \00"
@.str.50 = [8 x i8] c"sse4_2 \00"
@.str.51 = [8 x i8] c"x2apic \00"
@.str.52 = [7 x i8] c"movbe \00"
@.str.53 = [8 x i8] c"popcnt \00"
@.str.54 = [14 x i8] c"tsc_deadline \00"
@.str.55 = [5 x i8] c"aes \00"
@.str.56 = [7 x i8] c"xsave \00"
@.str.57 = [9 x i8] c"osxsave \00"
@.str.58 = [5 x i8] c"avx \00"
@.str.59 = [6 x i8] c"f16c \00"
@.str.60 = [7 x i8] c"rdrnd \00"
@.str.61 = [12 x i8] c"hypervisor \00"
define i32 @get_x86_cpu_standard_flags(i32 %0, i32 %1, i32 %2, i8* %3, i64 %4) {
%6 = alloca i32
%7 = alloca i32
%8 = alloca i32
%9 = alloca i8*
%10 = alloca i64
store i32 %0, i32* %6
store i32 %1, i32* %7
store i32 %2, i32* %8
store i8* %3, i8** %9
store i64 %4, i64* %10
%11 = load i8*, i8** %9
%12 = load i64, i64* %10
%13 = load i32, i32* %8
%14 = and i32 %13, 1
%15 = icmp ne i32 %14, 0
%16 = zext i1 %15 to i64
%17 = select i1 %15, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
%18 = load i32, i32* %8
%19 = and i32 %18, 2
%20 = icmp ne i32 %19, 0
%21 = zext i1 %20 to i64
%22 = select i1 %20, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.3, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
%23 = load i32, i32* %8
%24 = and i32 %23, 4
%25 = icmp ne i32 %24, 0
%26 = zext i1 %25 to i64
%27 = select i1 %25, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.4, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
%28 = load i32, i32* %8
%29 = and i32 %28, 8
%30 = icmp ne i32 %29, 0
%31 = zext i1 %30 to i64
%32 = select i1 %30, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.5, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
%33 = load i32, i32* %8
%34 = and i32 %33, 16
%35 = icmp ne i32 %34, 0
%36 = zext i1 %35 to i64
%37 = select i1 %35, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
%38 = load i32, i32* %8
%39 = and i32 %38, 32
%40 = icmp ne i32 %39, 0
%41 = zext i1 %40 to i64
%42 = select i1 %40, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.7, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
%43 = load i32, i32* %8
%44 = and i32 %43, 64
%45 = icmp ne i32 %44, 0
%46 = zext i1 %45 to i64
%47 = select i1 %45, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.8, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
%48 = load i32, i32* %8
%49 = and i32 %48, 128
%50 = icmp ne i32 %49, 0
%51 = zext i1 %50 to i64
%52 = select i1 %50, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.9, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
%53 = load i32, i32* %8
%54 = and i32 %53, 256
%55 = icmp ne i32 %54, 0
%56 = zext i1 %55 to i64
%57 = select i1 %55, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.10, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
%58 = load i32, i32* %8
%59 = and i32 %58, 512
%60 = icmp ne i32 %59, 0
%61 = zext i1 %60 to i64
%62 = select i1 %60, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.11, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
%63 = load i32, i32* %8
%64 = and i32 %63, 2048
%65 = icmp ne i32 %64, 0
%66 = zext i1 %65 to i64
%67 = select i1 %65, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.12, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
%68 = load i32, i32* %8
%69 = and i32 %68, 4096
%70 = icmp ne i32 %69, 0
%71 = zext i1 %70 to i64
%72 = select i1 %70, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.13, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
%73 = load i32, i32* %8
%74 = and i32 %73, 8192
%75 = icmp ne i32 %74, 0
%76 = zext i1 %75 to i64
%77 = select i1 %75, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.14, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
%78 = load i32, i32* %8
%79 = and i32 %78, 16384
%80 = icmp ne i32 %79, 0
%81 = zext i1 %80 to i64
%82 = select i1 %80, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.15, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
%83 = load i32, i32* %8
%84 = and i32 %83, 32768
%85 = icmp ne i32 %84, 0
%86 = zext i1 %85 to i64
%87 = select i1 %85, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.16, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
%88 = load i32, i32* %8
%89 = and i32 %88, 65536
%90 = icmp ne i32 %89, 0
%91 = zext i1 %90 to i64
%92 = select i1 %90, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.17, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
%93 = load i32, i32* %8
%94 = and i32 %93, 131072
%95 = icmp ne i32 %94, 0
%96 = zext i1 %95 to i64
%97 = select i1 %95, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.18, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
%98 = load i32, i32* %6
%99 = icmp ne i32 %98, 0
br i1 %99, label %100, label %106
100: ; preds = %5
%101 = load i32, i32* %8
%102 = and i32 %101, 262144
%103 = icmp ne i32 %102, 0
%104 = zext i1 %103 to i64
%105 = select i1 %103, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.19, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
br label %107
106: ; preds = %5
br label %107
107: ; preds = %106, %100
%108 = phi i8* [ %105, %100 ], [ getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), %106 ]
%109 = load i32, i32* %8
%110 = and i32 %109, 524288
%111 = icmp ne i32 %110, 0
%112 = zext i1 %111 to i64
%113 = select i1 %111, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.20, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
%114 = load i32, i32* %6
%115 = icmp ne i32 %114, 0
br i1 %115, label %116, label %122
116: ; preds = %107
%117 = load i32, i32* %8
%118 = and i32 %117, 2097152
%119 = icmp ne i32 %118, 0
%120 = zext i1 %119 to i64
%121 = select i1 %119, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.21, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
br label %123
122: ; preds = %107
br label %123
123: ; preds = %122, %116
%124 = phi i8* [ %121, %116 ], [ getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), %122 ]
%125 = load i32, i32* %6
%126 = icmp ne i32 %125, 0
br i1 %126, label %127, label %133
127: ; preds = %123
%128 = load i32, i32* %8
%129 = and i32 %128, 4194304
%130 = icmp ne i32 %129, 0
%131 = zext i1 %130 to i64
%132 = select i1 %130, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.22, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
br label %134
133: ; preds = %123
br label %134
134: ; preds = %133, %127
%135 = phi i8* [ %132, %127 ], [ getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), %133 ]
%136 = load i32, i32* %8
%137 = and i32 %136, 8388608
%138 = icmp ne i32 %137, 0
%139 = zext i1 %138 to i64
%140 = select i1 %138, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.23, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
%141 = load i32, i32* %8
%142 = and i32 %141, 16777216
%143 = icmp ne i32 %142, 0
%144 = zext i1 %143 to i64
%145 = select i1 %143, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.24, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
%146 = load i32, i32* %8
%147 = and i32 %146, 33554432
%148 = icmp ne i32 %147, 0
%149 = zext i1 %148 to i64
%150 = select i1 %148, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.25, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
%151 = load i32, i32* %8
%152 = and i32 %151, 67108864
%153 = icmp ne i32 %152, 0
%154 = zext i1 %153 to i64
%155 = select i1 %153, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.26, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
%156 = load i32, i32* %6
%157 = icmp ne i32 %156, 0
br i1 %157, label %158, label %164
158: ; preds = %134
%159 = load i32, i32* %8
%160 = and i32 %159, 134217728
%161 = icmp ne i32 %160, 0
%162 = zext i1 %161 to i64
%163 = select i1 %161, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.27, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
br label %165
164: ; preds = %134
br label %165
165: ; preds = %164, %158
%166 = phi i8* [ %163, %158 ], [ getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), %164 ]
%167 = load i32, i32* %8
%168 = and i32 %167, 268435456
%169 = icmp ne i32 %168, 0
%170 = zext i1 %169 to i64
%171 = select i1 %169, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.28, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
%172 = load i32, i32* %6
%173 = icmp ne i32 %172, 0
br i1 %173, label %174, label %180
174: ; preds = %165
%175 = load i32, i32* %8
%176 = and i32 %175, 536870912
%177 = icmp ne i32 %176, 0
%178 = zext i1 %177 to i64
%179 = select i1 %177, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.29, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
br label %181
180: ; preds = %165
br label %181
181: ; preds = %180, %174
%182 = phi i8* [ %179, %174 ], [ getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), %180 ]
%183 = load i32, i32* %6
%184 = icmp ne i32 %183, 0
br i1 %184, label %185, label %191
185: ; preds = %181
%186 = load i32, i32* %8
%187 = and i32 %186, -2147483648
%188 = icmp ne i32 %187, 0
%189 = zext i1 %188 to i64
%190 = select i1 %188, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.30, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
br label %192
191: ; preds = %181
br label %192
192: ; preds = %191, %185
%193 = phi i8* [ %190, %185 ], [ getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), %191 ]
%194 = load i32, i32* %7
%195 = and i32 %194, 1
%196 = icmp ne i32 %195, 0
%197 = zext i1 %196 to i64
%198 = select i1 %196, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.31, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
%199 = load i32, i32* %7
%200 = and i32 %199, 2
%201 = icmp ne i32 %200, 0
%202 = zext i1 %201 to i64
%203 = select i1 %201, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.32, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
%204 = load i32, i32* %6
%205 = icmp ne i32 %204, 0
br i1 %205, label %206, label %212
206: ; preds = %192
%207 = load i32, i32* %7
%208 = and i32 %207, 4
%209 = icmp ne i32 %208, 0
%210 = zext i1 %209 to i64
%211 = select i1 %209, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.33, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
br label %213
212: ; preds = %192
br label %213
213: ; preds = %212, %206
%214 = phi i8* [ %211, %206 ], [ getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), %212 ]
%215 = load i32, i32* %7
%216 = and i32 %215, 8
%217 = icmp ne i32 %216, 0
%218 = zext i1 %217 to i64
%219 = select i1 %217, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.34, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
%220 = load i32, i32* %6
%221 = icmp ne i32 %220, 0
br i1 %221, label %222, label %228
222: ; preds = %213
%223 = load i32, i32* %7
%224 = and i32 %223, 16
%225 = icmp ne i32 %224, 0
%226 = zext i1 %225 to i64
%227 = select i1 %225, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.35, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
br label %229
228: ; preds = %213
br label %229
229: ; preds = %228, %222
%230 = phi i8* [ %227, %222 ], [ getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), %228 ]
%231 = load i32, i32* %6
%232 = icmp ne i32 %231, 0
br i1 %232, label %233, label %239
233: ; preds = %229
%234 = load i32, i32* %7
%235 = and i32 %234, 32
%236 = icmp ne i32 %235, 0
%237 = zext i1 %236 to i64
%238 = select i1 %236, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.36, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
br label %240
239: ; preds = %229
br label %240
240: ; preds = %239, %233
%241 = phi i8* [ %238, %233 ], [ getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), %239 ]
%242 = load i32, i32* %6
%243 = icmp ne i32 %242, 0
br i1 %243, label %244, label %250
244: ; preds = %240
%245 = load i32, i32* %7
%246 = and i32 %245, 64
%247 = icmp ne i32 %246, 0
%248 = zext i1 %247 to i64
%249 = select i1 %247, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.37, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
br label %251
250: ; preds = %240
br label %251
251: ; preds = %250, %244
%252 = phi i8* [ %249, %244 ], [ getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), %250 ]
%253 = load i32, i32* %6
%254 = icmp ne i32 %253, 0
br i1 %254, label %255, label %261
255: ; preds = %251
%256 = load i32, i32* %7
%257 = and i32 %256, 128
%258 = icmp ne i32 %257, 0
%259 = zext i1 %258 to i64
%260 = select i1 %258, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.38, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
br label %262
261: ; preds = %251
br label %262
262: ; preds = %261, %255
%263 = phi i8* [ %260, %255 ], [ getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), %261 ]
%264 = load i32, i32* %6
%265 = icmp ne i32 %264, 0
br i1 %265, label %266, label %272
266: ; preds = %262
%267 = load i32, i32* %7
%268 = and i32 %267, 256
%269 = icmp ne i32 %268, 0
%270 = zext i1 %269 to i64
%271 = select i1 %269, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.39, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
br label %273
272: ; preds = %262
br label %273
273: ; preds = %272, %266
%274 = phi i8* [ %271, %266 ], [ getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), %272 ]
%275 = load i32, i32* %7
%276 = and i32 %275, 512
%277 = icmp ne i32 %276, 0
%278 = zext i1 %277 to i64
%279 = select i1 %277, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.40, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
%280 = load i32, i32* %6
%281 = icmp ne i32 %280, 0
br i1 %281, label %282, label %288
282: ; preds = %273
%283 = load i32, i32* %7
%284 = and i32 %283, 1024
%285 = icmp ne i32 %284, 0
%286 = zext i1 %285 to i64
%287 = select i1 %285, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.41, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
br label %289
288: ; preds = %273
br label %289
289: ; preds = %288, %282
%290 = phi i8* [ %287, %282 ], [ getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), %288 ]
%291 = load i32, i32* %6
%292 = icmp ne i32 %291, 0
br i1 %292, label %293, label %299
293: ; preds = %289
%294 = load i32, i32* %7
%295 = and i32 %294, 2048
%296 = icmp ne i32 %295, 0
%297 = zext i1 %296 to i64
%298 = select i1 %296, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.42, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
br label %300
299: ; preds = %289
br label %300
300: ; preds = %299, %293
%301 = phi i8* [ %298, %293 ], [ getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), %299 ]
%302 = load i32, i32* %7
%303 = and i32 %302, 4096
%304 = icmp ne i32 %303, 0
%305 = zext i1 %304 to i64
%306 = select i1 %304, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.43, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
%307 = load i32, i32* %7
%308 = and i32 %307, 8192
%309 = icmp ne i32 %308, 0
%310 = zext i1 %309 to i64
%311 = select i1 %309, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.44, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
%312 = load i32, i32* %6
%313 = icmp ne i32 %312, 0
br i1 %313, label %314, label %320
314: ; preds = %300
%315 = load i32, i32* %7
%316 = and i32 %315, 16384
%317 = icmp ne i32 %316, 0
%318 = zext i1 %317 to i64
%319 = select i1 %317, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.45, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
br label %321
320: ; preds = %300
br label %321
321: ; preds = %320, %314
%322 = phi i8* [ %319, %314 ], [ getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), %320 ]
%323 = load i32, i32* %6
%324 = icmp ne i32 %323, 0
br i1 %324, label %325, label %331
325: ; preds = %321
%326 = load i32, i32* %7
%327 = and i32 %326, 32768
%328 = icmp ne i32 %327, 0
%329 = zext i1 %328 to i64
%330 = select i1 %328, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.46, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
br label %332
331: ; preds = %321
br label %332
332: ; preds = %331, %325
%333 = phi i8* [ %330, %325 ], [ getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), %331 ]
%334 = load i32, i32* %6
%335 = icmp ne i32 %334, 0
br i1 %335, label %336, label %342
336: ; preds = %332
%337 = load i32, i32* %7
%338 = and i32 %337, 131072
%339 = icmp ne i32 %338, 0
%340 = zext i1 %339 to i64
%341 = select i1 %339, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.47, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
br label %343
342: ; preds = %332
br label %343
343: ; preds = %342, %336
%344 = phi i8* [ %341, %336 ], [ getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), %342 ]
%345 = load i32, i32* %6
%346 = icmp ne i32 %345, 0
br i1 %346, label %347, label %353
347: ; preds = %343
%348 = load i32, i32* %7
%349 = and i32 %348, 262144
%350 = icmp ne i32 %349, 0
%351 = zext i1 %350 to i64
%352 = select i1 %350, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.48, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
br label %354
353: ; preds = %343
br label %354
354: ; preds = %353, %347
%355 = phi i8* [ %352, %347 ], [ getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), %353 ]
%356 = load i32, i32* %7
%357 = and i32 %356, 524288
%358 = icmp ne i32 %357, 0
%359 = zext i1 %358 to i64
%360 = select i1 %358, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.49, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
%361 = load i32, i32* %7
%362 = and i32 %361, 1048576
%363 = icmp ne i32 %362, 0
%364 = zext i1 %363 to i64
%365 = select i1 %363, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.50, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
%366 = load i32, i32* %6
%367 = icmp ne i32 %366, 0
br i1 %367, label %368, label %374
368: ; preds = %354
%369 = load i32, i32* %7
%370 = and i32 %369, 2097152
%371 = icmp ne i32 %370, 0
%372 = zext i1 %371 to i64
%373 = select i1 %371, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.51, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
br label %375
374: ; preds = %354
br label %375
375: ; preds = %374, %368
%376 = phi i8* [ %373, %368 ], [ getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), %374 ]
%377 = load i32, i32* %6
%378 = icmp ne i32 %377, 0
br i1 %378, label %379, label %385
379: ; preds = %375
%380 = load i32, i32* %7
%381 = and i32 %380, 4194304
%382 = icmp ne i32 %381, 0
%383 = zext i1 %382 to i64
%384 = select i1 %382, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.52, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
br label %386
385: ; preds = %375
br label %386
386: ; preds = %385, %379
%387 = phi i8* [ %384, %379 ], [ getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), %385 ]
%388 = load i32, i32* %7
%389 = and i32 %388, 8388608
%390 = icmp ne i32 %389, 0
%391 = zext i1 %390 to i64
%392 = select i1 %390, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.53, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
%393 = load i32, i32* %6
%394 = icmp ne i32 %393, 0
br i1 %394, label %395, label %401
395: ; preds = %386
%396 = load i32, i32* %7
%397 = and i32 %396, 16777216
%398 = icmp ne i32 %397, 0
%399 = zext i1 %398 to i64
%400 = select i1 %398, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.54, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
br label %402
401: ; preds = %386
br label %402
402: ; preds = %401, %395
%403 = phi i8* [ %400, %395 ], [ getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), %401 ]
%404 = load i32, i32* %7
%405 = and i32 %404, 33554432
%406 = icmp ne i32 %405, 0
%407 = zext i1 %406 to i64
%408 = select i1 %406, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.55, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
%409 = load i32, i32* %7
%410 = and i32 %409, 67108864
%411 = icmp ne i32 %410, 0
%412 = zext i1 %411 to i64
%413 = select i1 %411, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.56, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
%414 = load i32, i32* %7
%415 = and i32 %414, 134217728
%416 = icmp ne i32 %415, 0
%417 = zext i1 %416 to i64
%418 = select i1 %416, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.57, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
%419 = load i32, i32* %7
%420 = and i32 %419, 268435456
%421 = icmp ne i32 %420, 0
%422 = zext i1 %421 to i64
%423 = select i1 %421, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.58, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
%424 = load i32, i32* %7
%425 = and i32 %424, 536870912
%426 = icmp ne i32 %425, 0
%427 = zext i1 %426 to i64
%428 = select i1 %426, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.59, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
%429 = load i32, i32* %7
%430 = and i32 %429, 1073741824
%431 = icmp ne i32 %430, 0
%432 = zext i1 %431 to i64
%433 = select i1 %431, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.60, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
%434 = load i32, i32* %7
%435 = and i32 %434, -2147483648
%436 = icmp ne i32 %435, 0
%437 = zext i1 %436 to i64
%438 = select i1 %436, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.61, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0)
%439 = call i32 @snprintf(i8* %11, i64 %12, i8* getelementptr inbounds ([121 x i8], [121 x i8]* @.str, i64 0, i64 0), i8* %17, i8* %22, i8* %27, i8* %32, i8* %37, i8* %42, i8* %47, i8* %52, i8* %57, i8* %62, i8* %67, i8* %72, i8* %77, i8* %82, i8* %87, i8* %92, i8* %97, i8* %108, i8* %113, i8* %124, i8* %135, i8* %140, i8* %145, i8* %150, i8* %155, i8* %166, i8* %171, i8* %182, i8* %193, i8* %198, i8* %203, i8* %214, i8* %219, i8* %230, i8* %241, i8* %252, i8* %263, i8* %274, i8* %279, i8* %290, i8* %301, i8* %306, i8* %311, i8* %322, i8* %333, i8* %344, i8* %355, i8* %360, i8* %365, i8* %376, i8* %387, i8* %392, i8* %403, i8* %408, i8* %413, i8* %418, i8* %423, i8* %428, i8* %433, i8* %438)
ret i32 %439
}

LLVM IR (-O2):
@.str = [121 x i8] c"%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s\00"
@.str.1 = [5 x i8] c"fpu \00"
@.str.2 = [1 x i8] zeroinitializer
@.str.3 = [5 x i8] c"vme \00"
@.str.4 = [4 x i8] c"de \00"
@.str.5 = [5 x i8] c"pse \00"
@.str.6 = [5 x i8] c"tsc \00"
@.str.7 = [5 x i8] c"msr \00"
@.str.8 = [5 x i8] c"pae \00"
@.str.9 = [5 x i8] c"mce \00"
@.str.10 = [5 x i8] c"cx8 \00"
@.str.11 = [6 x i8] c"apic \00"
@.str.12 = [5 x i8] c"sep \00"
@.str.13 = [6 x i8] c"mtrr \00"
@.str.14 = [5 x i8] c"pge \00"
@.str.15 = [5 x i8] c"mca \00"
@.str.16 = [6 x i8] c"cmov \00"
@.str.17 = [5 x i8] c"pat \00"
@.str.18 = [7 x i8] c"pse36 \00"
@.str.19 = [5 x i8] c"psn \00"
@.str.20 = [7 x i8] c"cflsh \00"
@.str.21 = [4 x i8] c"ds \00"
@.str.22 = [6 x i8] c"acpi \00"
@.str.23 = [5 x i8] c"mmx \00"
@.str.24 = [6 x i8] c"fxsr \00"
@.str.25 = [5 x i8] c"sse \00"
@.str.26 = [6 x i8] c"sse2 \00"
@.str.27 = [4 x i8] c"ss \00"
@.str.28 = [5 x i8] c"htt \00"
@.str.29 = [4 x i8] c"tm \00"
@.str.30 = [5 x i8] c"pbe \00"
@.str.31 = [6 x i8] c"sse3 \00"
@.str.32 = [11 x i8] c"pclmulqdq \00"
@.str.33 = [8 x i8] c"dtes64 \00"
@.str.34 = [9 x i8] c"monitor \00"
@.str.35 = [8 x i8] c"ds_cpl \00"
@.str.36 = [5 x i8] c"vmx \00"
@.str.37 = [5 x i8] c"smx \00"
@.str.38 = [5 x i8] c"est \00"
@.str.39 = [5 x i8] c"tm2 \00"
@.str.40 = [7 x i8] c"ssse3 \00"
@.str.41 = [9 x i8] c"cnxt-id \00"
@.str.42 = [6 x i8] c"sdbg \00"
@.str.43 = [5 x i8] c"fma \00"
@.str.44 = [6 x i8] c"cx16 \00"
@.str.45 = [6 x i8] c"xtpr \00"
@.str.46 = [6 x i8] c"pdcm \00"
@.str.47 = [6 x i8] c"pcid \00"
@.str.48 = [5 x i8] c"dca \00"
@.str.49 = [8 x i8] c"sse4_1 \00"
@.str.50 = [8 x i8] c"sse4_2 \00"
@.str.51 = [8 x i8] c"x2apic \00"
@.str.52 = [7 x i8] c"movbe \00"
@.str.53 = [8 x i8] c"popcnt \00"
@.str.54 = [14 x i8] c"tsc_deadline \00"
@.str.55 = [5 x i8] c"aes \00"
@.str.56 = [7 x i8] c"xsave \00"
@.str.57 = [9 x i8] c"osxsave \00"
@.str.58 = [5 x i8] c"avx \00"
@.str.59 = [6 x i8] c"f16c \00"
@.str.60 = [7 x i8] c"rdrnd \00"
@.str.61 = [12 x i8] c"hypervisor \00"
define i32 @get_x86_cpu_standard_flags(i32 %0, i32 %1, i32 %2, i8* %3, i64 %4) {
%6 = icmp eq i32 %0, 0
%7 = and i32 %2, 262144
%8 = icmp eq i32 %7, 0
%9 = or i1 %6, %8
%10 = select i1 %9, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.19, i64 0, i64 0)
%11 = and i32 %2, 2097152
%12 = icmp eq i32 %11, 0
%13 = or i1 %6, %12
%14 = select i1 %13, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.21, i64 0, i64 0)
%15 = and i32 %2, 4194304
%16 = icmp eq i32 %15, 0
%17 = or i1 %6, %16
%18 = select i1 %17, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.22, i64 0, i64 0)
%19 = and i32 %2, 134217728
%20 = icmp eq i32 %19, 0
%21 = or i1 %6, %20
%22 = select i1 %21, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.27, i64 0, i64 0)
%23 = and i32 %2, 536870912
%24 = icmp eq i32 %23, 0
%25 = or i1 %6, %24
%26 = select i1 %25, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.29, i64 0, i64 0)
%27 = icmp sgt i32 %2, -1
%28 = or i1 %6, %27
%29 = select i1 %28, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.30, i64 0, i64 0)
%30 = and i32 %1, 4
%31 = icmp eq i32 %30, 0
%32 = or i1 %6, %31
%33 = select i1 %32, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.33, i64 0, i64 0)
%34 = and i32 %1, 16
%35 = icmp eq i32 %34, 0
%36 = or i1 %6, %35
%37 = select i1 %36, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.35, i64 0, i64 0)
%38 = and i32 %1, 32
%39 = icmp eq i32 %38, 0
%40 = or i1 %6, %39
%41 = select i1 %40, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.36, i64 0, i64 0)
%42 = and i32 %1, 64
%43 = icmp eq i32 %42, 0
%44 = or i1 %6, %43
%45 = select i1 %44, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.37, i64 0, i64 0)
%46 = and i32 %1, 128
%47 = icmp eq i32 %46, 0
%48 = or i1 %6, %47
%49 = select i1 %48, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.38, i64 0, i64 0)
%50 = and i32 %1, 256
%51 = icmp eq i32 %50, 0
%52 = or i1 %6, %51
%53 = select i1 %52, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.39, i64 0, i64 0)
%54 = and i32 %1, 1024
%55 = icmp eq i32 %54, 0
%56 = or i1 %6, %55
%57 = select i1 %56, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.41, i64 0, i64 0)
%58 = and i32 %1, 2048
%59 = icmp eq i32 %58, 0
%60 = or i1 %6, %59
%61 = select i1 %60, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.42, i64 0, i64 0)
%62 = and i32 %1, 16384
%63 = icmp eq i32 %62, 0
%64 = or i1 %6, %63
%65 = select i1 %64, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.45, i64 0, i64 0)
%66 = and i32 %1, 32768
%67 = icmp eq i32 %66, 0
%68 = or i1 %6, %67
%69 = select i1 %68, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.46, i64 0, i64 0)
%70 = and i32 %1, 131072
%71 = icmp eq i32 %70, 0
%72 = or i1 %6, %71
%73 = select i1 %72, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.47, i64 0, i64 0)
%74 = and i32 %1, 262144
%75 = icmp eq i32 %74, 0
%76 = or i1 %6, %75
%77 = select i1 %76, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.48, i64 0, i64 0)
%78 = and i32 %1, 2097152
%79 = icmp eq i32 %78, 0
%80 = or i1 %6, %79
%81 = select i1 %80, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.51, i64 0, i64 0)
%82 = and i32 %1, 4194304
%83 = icmp eq i32 %82, 0
%84 = or i1 %6, %83
%85 = select i1 %84, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.52, i64 0, i64 0)
%86 = and i32 %1, 16777216
%87 = icmp eq i32 %86, 0
%88 = or i1 %6, %87
%89 = select i1 %88, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.54, i64 0, i64 0)
%90 = and i32 %1, 8388608
%91 = icmp eq i32 %90, 0
%92 = select i1 %91, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.53, i64 0, i64 0)
%93 = and i32 %1, 1048576
%94 = icmp eq i32 %93, 0
%95 = select i1 %94, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.50, i64 0, i64 0)
%96 = and i32 %1, 524288
%97 = icmp eq i32 %96, 0
%98 = select i1 %97, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.49, i64 0, i64 0)
%99 = and i32 %1, 8192
%100 = icmp eq i32 %99, 0
%101 = select i1 %100, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.44, i64 0, i64 0)
%102 = and i32 %1, 4096
%103 = icmp eq i32 %102, 0
%104 = select i1 %103, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.43, i64 0, i64 0)
%105 = and i32 %1, 512
%106 = icmp eq i32 %105, 0
%107 = select i1 %106, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.40, i64 0, i64 0)
%108 = and i32 %1, 8
%109 = icmp eq i32 %108, 0
%110 = select i1 %109, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.34, i64 0, i64 0)
%111 = and i32 %1, 2
%112 = icmp eq i32 %111, 0
%113 = select i1 %112, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.32, i64 0, i64 0)
%114 = and i32 %1, 1
%115 = icmp eq i32 %114, 0
%116 = select i1 %115, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.31, i64 0, i64 0)
%117 = and i32 %2, 268435456
%118 = icmp eq i32 %117, 0
%119 = select i1 %118, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.28, i64 0, i64 0)
%120 = and i32 %2, 67108864
%121 = icmp eq i32 %120, 0
%122 = select i1 %121, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.26, i64 0, i64 0)
%123 = and i32 %2, 33554432
%124 = icmp eq i32 %123, 0
%125 = select i1 %124, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.25, i64 0, i64 0)
%126 = and i32 %2, 16777216
%127 = icmp eq i32 %126, 0
%128 = select i1 %127, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.24, i64 0, i64 0)
%129 = and i32 %2, 8388608
%130 = icmp eq i32 %129, 0
%131 = select i1 %130, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.23, i64 0, i64 0)
%132 = and i32 %2, 524288
%133 = icmp eq i32 %132, 0
%134 = select i1 %133, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.20, i64 0, i64 0)
%135 = and i32 %2, 131072
%136 = icmp eq i32 %135, 0
%137 = select i1 %136, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.18, i64 0, i64 0)
%138 = and i32 %2, 65536
%139 = icmp eq i32 %138, 0
%140 = select i1 %139, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.17, i64 0, i64 0)
%141 = and i32 %2, 32768
%142 = icmp eq i32 %141, 0
%143 = select i1 %142, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.16, i64 0, i64 0)
%144 = and i32 %2, 16384
%145 = icmp eq i32 %144, 0
%146 = select i1 %145, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.15, i64 0, i64 0)
%147 = and i32 %2, 8192
%148 = icmp eq i32 %147, 0
%149 = select i1 %148, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.14, i64 0, i64 0)
%150 = and i32 %2, 4096
%151 = icmp eq i32 %150, 0
%152 = select i1 %151, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.13, i64 0, i64 0)
%153 = and i32 %2, 2048
%154 = icmp eq i32 %153, 0
%155 = select i1 %154, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.12, i64 0, i64 0)
%156 = and i32 %2, 512
%157 = icmp eq i32 %156, 0
%158 = select i1 %157, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.11, i64 0, i64 0)
%159 = and i32 %2, 256
%160 = icmp eq i32 %159, 0
%161 = select i1 %160, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.10, i64 0, i64 0)
%162 = and i32 %2, 128
%163 = icmp eq i32 %162, 0
%164 = select i1 %163, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.9, i64 0, i64 0)
%165 = and i32 %2, 64
%166 = icmp eq i32 %165, 0
%167 = select i1 %166, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.8, i64 0, i64 0)
%168 = and i32 %2, 32
%169 = icmp eq i32 %168, 0
%170 = select i1 %169, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.7, i64 0, i64 0)
%171 = and i32 %2, 16
%172 = icmp eq i32 %171, 0
%173 = select i1 %172, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0)
%174 = and i32 %2, 8
%175 = icmp eq i32 %174, 0
%176 = select i1 %175, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.5, i64 0, i64 0)
%177 = and i32 %2, 4
%178 = icmp eq i32 %177, 0
%179 = select i1 %178, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.4, i64 0, i64 0)
%180 = and i32 %2, 2
%181 = icmp eq i32 %180, 0
%182 = select i1 %181, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.3, i64 0, i64 0)
%183 = and i32 %2, 1
%184 = icmp eq i32 %183, 0
%185 = select i1 %184, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.1, i64 0, i64 0)
%186 = and i32 %1, 33554432
%187 = icmp eq i32 %186, 0
%188 = select i1 %187, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.55, i64 0, i64 0)
%189 = and i32 %1, 67108864
%190 = icmp eq i32 %189, 0
%191 = select i1 %190, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.56, i64 0, i64 0)
%192 = and i32 %1, 134217728
%193 = icmp eq i32 %192, 0
%194 = select i1 %193, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.57, i64 0, i64 0)
%195 = and i32 %1, 268435456
%196 = icmp eq i32 %195, 0
%197 = select i1 %196, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.58, i64 0, i64 0)
%198 = and i32 %1, 536870912
%199 = icmp eq i32 %198, 0
%200 = select i1 %199, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.59, i64 0, i64 0)
%201 = and i32 %1, 1073741824
%202 = icmp eq i32 %201, 0
%203 = select i1 %202, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.60, i64 0, i64 0)
%204 = icmp sgt i32 %1, -1
%205 = select i1 %204, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.61, i64 0, i64 0)
%206 = tail call i32 @snprintf(i8* %3, i64 %4, i8* getelementptr inbounds ([121 x i8], [121 x i8]* @.str, i64 0, i64 0), i8* %185, i8* %182, i8* %179, i8* %176, i8* %173, i8* %170, i8* %167, i8* %164, i8* %161, i8* %158, i8* %155, i8* %152, i8* %149, i8* %146, i8* %143, i8* %140, i8* %137, i8* %10, i8* %134, i8* %14, i8* %18, i8* %131, i8* %128, i8* %125, i8* %122, i8* %22, i8* %119, i8* %26, i8* %29, i8* %116, i8* %113, i8* %33, i8* %110, i8* %37, i8* %41, i8* %45, i8* %49, i8* %53, i8* %107, i8* %57, i8* %61, i8* %104, i8* %101, i8* %65, i8* %69, i8* %73, i8* %77, i8* %98, i8* %95, i8* %81, i8* %85, i8* %92, i8* %89, i8* %188, i8* %191, i8* %194, i8* %197, i8* %200, i8* %203, i8* %205)
ret i32 %206
}