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

/* Variables and functions */
int prng_successor(int, int);
bool candidate_nonce(uint32_t xored, uint32_t nt, bool ev1) {
  uint8_t byte, check;
  if (!ev1) {
    byte = (nt >> 24) & 0xFF;
    check = (((byte) ^ (byte) >> 1 ^ (byte) >> 2 ^ (byte) >> 3 ^ (byte) >> 4 ^
              (byte) >> 5 ^ (byte) >> 6 ^ (byte) >> 7 ^ 1) &
             0x01) ^
            ((nt >> 16) & 1) ^ ((xored >> 9) & 1);
    if (check)
      return false;
    byte = (nt >> 16) & 0xFF;
    check = (((byte) ^ (byte) >> 1 ^ (byte) >> 2 ^ (byte) >> 3 ^ (byte) >> 4 ^
              (byte) >> 5 ^ (byte) >> 6 ^ (byte) >> 7 ^ 1) &
             0x01) ^
            ((nt >> 8) & 1) ^ ((xored >> 8) & 1);
    if (check)
      return false;
  }
  byte = (nt >> 8) & 0xFF;
  check = (((byte) ^ (byte) >> 1 ^ (byte) >> 2 ^ (byte) >> 3 ^ (byte) >> 4 ^
            (byte) >> 5 ^ (byte) >> 6 ^ (byte) >> 7 ^ 1) &
           0x01) ^
          (nt & 1) ^ ((xored >> 7) & 1);
  if (check)
    return false;
  uint32_t ar = prng_successor(nt, 64);
  byte = (ar >> 24) & 0xFF;
  check = (((byte) ^ (byte) >> 1 ^ (byte) >> 2 ^ (byte) >> 3 ^ (byte) >> 4 ^
            (byte) >> 5 ^ (byte) >> 6 ^ (byte) >> 7 ^ 1) &
           0x01) ^
          ((ar >> 16) & 1) ^ ((xored >> 6) & 1);
  if (check)
    return false;
  byte = (ar >> 16) & 0x0FF;
  check = (((byte) ^ (byte) >> 1 ^ (byte) >> 2 ^ (byte) >> 3 ^ (byte) >> 4 ^
            (byte) >> 5 ^ (byte) >> 6 ^ (byte) >> 7 ^ 1) &
           0x01) ^
          ((ar >> 8) & 1) ^ ((xored >> 5) & 1);
  if (check)
    return false;
  byte = (ar >> 8) & 0xFF;
  check = (((byte) ^ (byte) >> 1 ^ (byte) >> 2 ^ (byte) >> 3 ^ (byte) >> 4 ^
            (byte) >> 5 ^ (byte) >> 6 ^ (byte) >> 7 ^ 1) &
           0x01) ^
          (ar & 1) ^ ((xored >> 4) & 1);
  if (check)
    return false;
  uint32_t at = prng_successor(nt, 96);
  byte = ar & 0xFF;
  check = (((byte) ^ (byte) >> 1 ^ (byte) >> 2 ^ (byte) >> 3 ^ (byte) >> 4 ^
            (byte) >> 5 ^ (byte) >> 6 ^ (byte) >> 7 ^ 1) &
           0x01) ^
          ((at >> 24) & 1) ^ ((xored >> 3) & 1);
  if (check)
    return false;
  byte = (at >> 24) & 0xFF;
  check = (((byte) ^ (byte) >> 1 ^ (byte) >> 2 ^ (byte) >> 3 ^ (byte) >> 4 ^
            (byte) >> 5 ^ (byte) >> 6 ^ (byte) >> 7 ^ 1) &
           0x01) ^
          ((at >> 16) & 1) ^ ((xored >> 2) & 1);
  if (check)
    return false;
  byte = (at >> 16) & 0xFF;
  check = (((byte) ^ (byte) >> 1 ^ (byte) >> 2 ^ (byte) >> 3 ^ (byte) >> 4 ^
            (byte) >> 5 ^ (byte) >> 6 ^ (byte) >> 7 ^ 1) &
           0x01) ^
          ((at >> 8) & 1) ^ ((xored >> 1) & 1);
  if (check)
    return false;
  byte = (at >> 8) & 0xFF;
  check = (((byte) ^ (byte) >> 1 ^ (byte) >> 2 ^ (byte) >> 3 ^ (byte) >> 4 ^
            (byte) >> 5 ^ (byte) >> 6 ^ (byte) >> 7 ^ 1) &
           0x01) ^
          (at & 1) ^ (xored & 1);
  if (check)
    return false;
  return true;
}


x86 assembly (clang, -O0):
<candidate_nonce>:
push   %rbp
mov    %rsp,%rbp
sub    $0x20,%rsp
mov    %edi,-0x8(%rbp)
mov    %esi,-0xc(%rbp)
mov    %edx,-0x10(%rbp)
cmpl   $0x0,-0x10(%rbp)
jne    122c <candidate_nonce+0x11c>
mov    -0xc(%rbp),%eax
sar    $0x18,%eax
and    $0xff,%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
mov    -0x14(%rbp),%ecx
sar    $0x1,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x2,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x3,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x4,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x5,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x6,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x7,%ecx
xor    %ecx,%eax
xor    $0x1,%eax
and    $0x1,%eax
mov    -0xc(%rbp),%ecx
sar    $0x10,%ecx
and    $0x1,%ecx
xor    %ecx,%eax
mov    -0x8(%rbp),%ecx
sar    $0x9,%ecx
and    $0x1,%ecx
xor    %ecx,%eax
mov    %eax,-0x18(%rbp)
cmpl   $0x0,-0x18(%rbp)
je     11a9 <candidate_nonce+0x99>
movl   $0x0,-0x4(%rbp)
jmp    1634 <candidate_nonce+0x524>
mov    -0xc(%rbp),%eax
sar    $0x10,%eax
and    $0xff,%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
mov    -0x14(%rbp),%ecx
sar    $0x1,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x2,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x3,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x4,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x5,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x6,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x7,%ecx
xor    %ecx,%eax
xor    $0x1,%eax
and    $0x1,%eax
mov    -0xc(%rbp),%ecx
sar    $0x8,%ecx
and    $0x1,%ecx
xor    %ecx,%eax
mov    -0x8(%rbp),%ecx
sar    $0x8,%ecx
and    $0x1,%ecx
xor    %ecx,%eax
mov    %eax,-0x18(%rbp)
cmpl   $0x0,-0x18(%rbp)
je     1227 <candidate_nonce+0x117>
movl   $0x0,-0x4(%rbp)
jmp    1634 <candidate_nonce+0x524>
jmp    122c <candidate_nonce+0x11c>
mov    -0xc(%rbp),%eax
sar    $0x8,%eax
and    $0xff,%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
mov    -0x14(%rbp),%ecx
sar    $0x1,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x2,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x3,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x4,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x5,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x6,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x7,%ecx
xor    %ecx,%eax
xor    $0x1,%eax
and    $0x1,%eax
mov    -0xc(%rbp),%ecx
and    $0x1,%ecx
xor    %ecx,%eax
mov    -0x8(%rbp),%ecx
sar    $0x7,%ecx
and    $0x1,%ecx
xor    %ecx,%eax
mov    %eax,-0x18(%rbp)
cmpl   $0x0,-0x18(%rbp)
je     12a7 <candidate_nonce+0x197>
movl   $0x0,-0x4(%rbp)
jmp    1634 <candidate_nonce+0x524>
mov    -0xc(%rbp),%edi
mov    $0x40,%esi
call   1030 <prng_successor@plt>
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
sar    $0x18,%eax
and    $0xff,%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
mov    -0x14(%rbp),%ecx
sar    $0x1,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x2,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x3,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x4,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x5,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x6,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x7,%ecx
xor    %ecx,%eax
xor    $0x1,%eax
and    $0x1,%eax
mov    -0x1c(%rbp),%ecx
sar    $0x10,%ecx
and    $0x1,%ecx
xor    %ecx,%eax
mov    -0x8(%rbp),%ecx
sar    $0x6,%ecx
and    $0x1,%ecx
xor    %ecx,%eax
mov    %eax,-0x18(%rbp)
cmpl   $0x0,-0x18(%rbp)
je     1335 <candidate_nonce+0x225>
movl   $0x0,-0x4(%rbp)
jmp    1634 <candidate_nonce+0x524>
mov    -0x1c(%rbp),%eax
sar    $0x10,%eax
and    $0xff,%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
mov    -0x14(%rbp),%ecx
sar    $0x1,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x2,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x3,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x4,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x5,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x6,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x7,%ecx
xor    %ecx,%eax
xor    $0x1,%eax
and    $0x1,%eax
mov    -0x1c(%rbp),%ecx
sar    $0x8,%ecx
and    $0x1,%ecx
xor    %ecx,%eax
mov    -0x8(%rbp),%ecx
sar    $0x5,%ecx
and    $0x1,%ecx
xor    %ecx,%eax
mov    %eax,-0x18(%rbp)
cmpl   $0x0,-0x18(%rbp)
je     13b3 <candidate_nonce+0x2a3>
movl   $0x0,-0x4(%rbp)
jmp    1634 <candidate_nonce+0x524>
mov    -0x1c(%rbp),%eax
sar    $0x8,%eax
and    $0xff,%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
mov    -0x14(%rbp),%ecx
sar    $0x1,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x2,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x3,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x4,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x5,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x6,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x7,%ecx
xor    %ecx,%eax
xor    $0x1,%eax
and    $0x1,%eax
mov    -0x1c(%rbp),%ecx
and    $0x1,%ecx
xor    %ecx,%eax
mov    -0x8(%rbp),%ecx
sar    $0x4,%ecx
and    $0x1,%ecx
xor    %ecx,%eax
mov    %eax,-0x18(%rbp)
cmpl   $0x0,-0x18(%rbp)
je     142e <candidate_nonce+0x31e>
movl   $0x0,-0x4(%rbp)
jmp    1634 <candidate_nonce+0x524>
mov    -0xc(%rbp),%edi
mov    $0x60,%esi
call   1030 <prng_successor@plt>
mov    %eax,-0x20(%rbp)
mov    -0x1c(%rbp),%eax
and    $0xff,%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
mov    -0x14(%rbp),%ecx
sar    $0x1,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x2,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x3,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x4,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x5,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x6,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x7,%ecx
xor    %ecx,%eax
xor    $0x1,%eax
and    $0x1,%eax
mov    -0x20(%rbp),%ecx
sar    $0x18,%ecx
and    $0x1,%ecx
xor    %ecx,%eax
mov    -0x8(%rbp),%ecx
sar    $0x3,%ecx
and    $0x1,%ecx
xor    %ecx,%eax
mov    %eax,-0x18(%rbp)
cmpl   $0x0,-0x18(%rbp)
je     14b9 <candidate_nonce+0x3a9>
movl   $0x0,-0x4(%rbp)
jmp    1634 <candidate_nonce+0x524>
mov    -0x20(%rbp),%eax
sar    $0x18,%eax
and    $0xff,%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
mov    -0x14(%rbp),%ecx
sar    $0x1,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x2,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x3,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x4,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x5,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x6,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x7,%ecx
xor    %ecx,%eax
xor    $0x1,%eax
and    $0x1,%eax
mov    -0x20(%rbp),%ecx
sar    $0x10,%ecx
and    $0x1,%ecx
xor    %ecx,%eax
mov    -0x8(%rbp),%ecx
sar    $0x2,%ecx
and    $0x1,%ecx
xor    %ecx,%eax
mov    %eax,-0x18(%rbp)
cmpl   $0x0,-0x18(%rbp)
je     1537 <candidate_nonce+0x427>
movl   $0x0,-0x4(%rbp)
jmp    1634 <candidate_nonce+0x524>
mov    -0x20(%rbp),%eax
sar    $0x10,%eax
and    $0xff,%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
mov    -0x14(%rbp),%ecx
sar    $0x1,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x2,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x3,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x4,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x5,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x6,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x7,%ecx
xor    %ecx,%eax
xor    $0x1,%eax
and    $0x1,%eax
mov    -0x20(%rbp),%ecx
sar    $0x8,%ecx
and    $0x1,%ecx
xor    %ecx,%eax
mov    -0x8(%rbp),%ecx
sar    $0x1,%ecx
and    $0x1,%ecx
xor    %ecx,%eax
mov    %eax,-0x18(%rbp)
cmpl   $0x0,-0x18(%rbp)
je     15b5 <candidate_nonce+0x4a5>
movl   $0x0,-0x4(%rbp)
jmp    1634 <candidate_nonce+0x524>
mov    -0x20(%rbp),%eax
sar    $0x8,%eax
and    $0xff,%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
mov    -0x14(%rbp),%ecx
sar    $0x1,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x2,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x3,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x4,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x5,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x6,%ecx
xor    %ecx,%eax
mov    -0x14(%rbp),%ecx
sar    $0x7,%ecx
xor    %ecx,%eax
xor    $0x1,%eax
and    $0x1,%eax
mov    -0x20(%rbp),%ecx
and    $0x1,%ecx
xor    %ecx,%eax
mov    -0x8(%rbp),%ecx
and    $0x1,%ecx
xor    %ecx,%eax
mov    %eax,-0x18(%rbp)
cmpl   $0x0,-0x18(%rbp)
je     162d <candidate_nonce+0x51d>
movl   $0x0,-0x4(%rbp)
jmp    1634 <candidate_nonce+0x524>
movl   $0x1,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0x20,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<candidate_nonce>:
push   %rbp
push   %r15
push   %r14
push   %r12
push   %rbx
sub    $0x10,%rsp
mov    %esi,%ebx
mov    %edi,%r15d
test   %edx,%edx
je     1384 <candidate_nonce+0x274>
movzbl %bh,%eax
mov    %ebx,%ecx
shr    $0xf,%ecx
xor    %eax,%ecx
shr    %eax
mov    %ebx,%edx
shr    $0xa,%edx
mov    %ebx,%esi
shr    $0xb,%esi
xor    %edx,%esi
mov    %ebx,%edx
shr    $0xc,%edx
xor    %esi,%edx
mov    %ebx,%r12d
shr    $0xd,%ebx
mov    %r12d,%esi
shr    $0xe,%esi
xor    %ebx,%esi
mov    %r15d,%ebp
shr    $0x7,%ebp
xor    %r12d,%ebp
xor    %esi,%ebp
xor    %eax,%ecx
xor    %ebp,%ecx
xor    %edx,%ecx
xor    %r14d,%r14d
test   $0x1,%cl
je     1426 <candidate_nonce+0x316>
mov    %r12d,%edi
mov    $0x40,%esi
call   1030 <prng_successor@plt>
mov    %eax,%ebp
shr    $0x18,%eax
mov    %ebp,%ecx
shr    $0x19,%ecx
xor    %eax,%ecx
mov    %ebp,%eax
shr    $0x1a,%eax
mov    %ebp,%edx
shr    $0x1b,%edx
xor    %eax,%edx
xor    %ecx,%edx
mov    %ebp,%eax
shr    $0x1c,%eax
mov    %ebp,%ecx
shr    $0x1d,%ecx
xor    %eax,%ecx
mov    %ebp,%eax
shr    $0x1e,%eax
xor    %ecx,%eax
xor    %edx,%eax
mov    %ebp,%edx
shr    $0x1f,%edx
and    $0x1,%eax
mov    %ebp,%ecx
sar    $0x10,%ecx
mov    %ecx,%esi
and    $0x1,%esi
mov    %r15d,%edi
shr    $0x6,%edi
and    $0x1,%edi
xor    %edx,%edi
xor    %esi,%edi
xor    %eax,%edi
cmp    $0x1,%edi
jne    1426 <candidate_nonce+0x316>
movzbl %cl,%edx
mov    %ecx,%eax
shr    $0x2,%eax
mov    %ecx,%esi
shr    $0x3,%esi
xor    %eax,%esi
mov    %ecx,%edi
shr    $0x4,%edi
xor    %esi,%edi
mov    %ecx,%eax
shr    $0x5,%eax
mov    %ecx,%esi
shr    $0x6,%esi
xor    %eax,%esi
mov    %ebp,%eax
sar    $0x8,%eax
mov    %r15d,%ebx
shr    $0x5,%ebx
xor    %eax,%ebx
xor    %edx,%ebx
shr    %edx
shr    $0x7,%ecx
xor    %edx,%ecx
xor    %esi,%ebx
xor    %ecx,%ebx
xor    %edi,%ebx
test   $0x1,%bl
je     1426 <candidate_nonce+0x316>
movzbl %al,%ecx
mov    %r15d,%edx
shr    $0x4,%edx
xor    %ebp,%edx
xor    %ecx,%edx
shr    %ecx
mov    %eax,%esi
shr    $0x2,%esi
mov    %eax,%edi
shr    $0x3,%edi
xor    %esi,%edi
mov    %eax,%esi
shr    $0x4,%esi
xor    %edi,%esi
mov    %eax,%edi
shr    $0x5,%edi
mov    %eax,%ebx
shr    $0x6,%ebx
xor    %edi,%ebx
shr    $0x7,%eax
xor    %ecx,%eax
xor    %ebx,%edx
xor    %eax,%edx
xor    %esi,%edx
test   $0x1,%dl
je     1426 <candidate_nonce+0x316>
mov    %r12d,%edi
mov    $0x60,%esi
call   1030 <prng_successor@plt>
movzbl %bpl,%ecx
mov    %ecx,%edx
mov    %r15d,%esi
shr    $0x3,%esi
xor    %ecx,%esi
shr    %ecx
shr    $0x2,%edx
mov    %ebp,%edi
shr    $0x3,%edi
xor    %edx,%edi
mov    %ebp,%edx
shr    $0x4,%edx
xor    %edi,%edx
mov    %ebp,%edi
shr    $0x5,%edi
mov    %ebp,%ebx
shr    $0x6,%ebx
xor    %edi,%ebx
shr    $0x7,%ebp
xor    %ecx,%ebp
mov    %eax,%ecx
sar    $0x18,%ecx
xor    %ebx,%esi
xor    %ebp,%esi
xor    %edx,%esi
xor    %ecx,%esi
test   $0x1,%sil
je     1426 <candidate_nonce+0x316>
movzbl %cl,%esi
mov    %ecx,%edx
shr    $0x2,%edx
mov    %ecx,%edi
shr    $0x3,%edi
xor    %edx,%edi
mov    %ecx,%ebp
shr    $0x4,%ebp
xor    %edi,%ebp
mov    %ecx,%edx
shr    $0x5,%edx
mov    %ecx,%edi
shr    $0x6,%edi
xor    %edx,%edi
mov    %eax,%edx
sar    $0x10,%edx
mov    %r15d,%ebx
shr    $0x2,%ebx
xor    %edx,%ebx
xor    %esi,%ebx
shr    %esi
shr    $0x7,%ecx
xor    %esi,%ecx
xor    %edi,%ebx
xor    %ecx,%ebx
xor    %ebp,%ebx
test   $0x1,%bl
je     1426 <candidate_nonce+0x316>
movzbl %dl,%esi
mov    %edx,%ecx
shr    $0x2,%ecx
mov    %edx,%edi
shr    $0x3,%edi
xor    %ecx,%edi
mov    %edx,%ebp
shr    $0x4,%ebp
xor    %edi,%ebp
mov    %edx,%ecx
shr    $0x5,%ecx
mov    %edx,%edi
shr    $0x6,%edi
xor    %ecx,%edi
mov    %eax,%ecx
sar    $0x8,%ecx
mov    %r15d,%ebx
shr    %ebx
xor    %ecx,%ebx
xor    %esi,%ebx
shr    %esi
shr    $0x7,%edx
xor    %esi,%edx
xor    %edi,%ebx
xor    %edx,%ebx
xor    %ebp,%ebx
test   $0x1,%bl
je     1426 <candidate_nonce+0x316>
movzbl %cl,%edx
xor    %r15d,%eax
xor    %edx,%eax
shr    %edx
mov    %ecx,%esi
shr    $0x2,%esi
mov    %ecx,%edi
shr    $0x3,%edi
xor    %esi,%edi
mov    %ecx,%esi
shr    $0x4,%esi
xor    %edi,%esi
mov    %ecx,%edi
shr    $0x5,%edi
mov    %ecx,%ebp
shr    $0x6,%ebp
xor    %edi,%ebp
shr    $0x7,%ecx
xor    %edx,%ecx
xor    %ebp,%eax
xor    %ecx,%eax
xor    %esi,%eax
and    $0x1,%eax
mov    %eax,%r14d
jmp    1426 <candidate_nonce+0x316>
mov    %ebx,%eax
shr    $0x18,%eax
mov    %ebx,%ecx
shr    $0x19,%ecx
xor    %eax,%ecx
mov    %ebx,%eax
shr    $0x1a,%eax
mov    %ebx,%edx
shr    $0x1b,%edx
xor    %eax,%edx
xor    %ecx,%edx
mov    %ebx,%eax
shr    $0x1c,%eax
mov    %ebx,%ecx
shr    $0x1d,%ecx
xor    %eax,%ecx
mov    %ebx,%esi
shr    $0x1e,%esi
xor    %ecx,%esi
xor    %edx,%esi
mov    %ebx,%ecx
shr    $0x1f,%ecx
and    $0x1,%esi
mov    %ebx,%eax
sar    $0x10,%eax
mov    %eax,%edx
and    $0x1,%edx
mov    %r15d,%edi
shr    $0x9,%edi
and    $0x1,%edi
xor    %ecx,%edi
xor    %edx,%edi
xor    %esi,%edi
xor    %r14d,%r14d
cmp    $0x1,%edi
jne    1426 <candidate_nonce+0x316>
movzbl %al,%ecx
mov    %ebx,%edx
xor    %r15d,%edx
shr    $0x8,%edx
xor    %ecx,%edx
mov    %ecx,%esi
shr    %esi
mov    %eax,%ecx
shr    $0x2,%ecx
mov    %eax,%edi
shr    $0x3,%edi
xor    %ecx,%edi
mov    %eax,%ecx
shr    $0x4,%ecx
xor    %edi,%ecx
mov    %eax,%edi
mov    %eax,0xc(%rsp)
shrl   $0x5,0xc(%rsp)
shr    $0x6,%edi
xor    0xc(%rsp),%edi
shr    $0x7,%eax
xor    %esi,%eax
xor    %edi,%edx
xor    %eax,%edx
xor    %ecx,%edx
test   $0x1,%dl
jne    1129 <candidate_nonce+0x19>
mov    %r14d,%eax
add    $0x10,%rsp
pop    %rbx
pop    %r12
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
define i32 @candidate_nonce(i32 %0, i32 %1, i32 %2) {
%4 = alloca i32
%5 = alloca i32
%6 = alloca i32
%7 = alloca i32
%8 = alloca i32
%9 = alloca i32
%10 = alloca i32
%11 = alloca i32
store i32 %0, i32* %5
store i32 %1, i32* %6
store i32 %2, i32* %7
%12 = load i32, i32* %7
%13 = icmp ne i32 %12, 0
br i1 %13, label %93, label %14
14: ; preds = %3
%15 = load i32, i32* %6
%16 = ashr i32 %15, 24
%17 = and i32 %16, 255
store i32 %17, i32* %8
%18 = load i32, i32* %8
%19 = load i32, i32* %8
%20 = ashr i32 %19, 1
%21 = xor i32 %18, %20
%22 = load i32, i32* %8
%23 = ashr i32 %22, 2
%24 = xor i32 %21, %23
%25 = load i32, i32* %8
%26 = ashr i32 %25, 3
%27 = xor i32 %24, %26
%28 = load i32, i32* %8
%29 = ashr i32 %28, 4
%30 = xor i32 %27, %29
%31 = load i32, i32* %8
%32 = ashr i32 %31, 5
%33 = xor i32 %30, %32
%34 = load i32, i32* %8
%35 = ashr i32 %34, 6
%36 = xor i32 %33, %35
%37 = load i32, i32* %8
%38 = ashr i32 %37, 7
%39 = xor i32 %36, %38
%40 = xor i32 %39, 1
%41 = and i32 %40, 1
%42 = load i32, i32* %6
%43 = ashr i32 %42, 16
%44 = and i32 %43, 1
%45 = xor i32 %41, %44
%46 = load i32, i32* %5
%47 = ashr i32 %46, 9
%48 = and i32 %47, 1
%49 = xor i32 %45, %48
store i32 %49, i32* %9
%50 = load i32, i32* %9
%51 = icmp ne i32 %50, 0
br i1 %51, label %52, label %53
52: ; preds = %14
store i32 0, i32* %4
br label %405
53: ; preds = %14
%54 = load i32, i32* %6
%55 = ashr i32 %54, 16
%56 = and i32 %55, 255
store i32 %56, i32* %8
%57 = load i32, i32* %8
%58 = load i32, i32* %8
%59 = ashr i32 %58, 1
%60 = xor i32 %57, %59
%61 = load i32, i32* %8
%62 = ashr i32 %61, 2
%63 = xor i32 %60, %62
%64 = load i32, i32* %8
%65 = ashr i32 %64, 3
%66 = xor i32 %63, %65
%67 = load i32, i32* %8
%68 = ashr i32 %67, 4
%69 = xor i32 %66, %68
%70 = load i32, i32* %8
%71 = ashr i32 %70, 5
%72 = xor i32 %69, %71
%73 = load i32, i32* %8
%74 = ashr i32 %73, 6
%75 = xor i32 %72, %74
%76 = load i32, i32* %8
%77 = ashr i32 %76, 7
%78 = xor i32 %75, %77
%79 = xor i32 %78, 1
%80 = and i32 %79, 1
%81 = load i32, i32* %6
%82 = ashr i32 %81, 8
%83 = and i32 %82, 1
%84 = xor i32 %80, %83
%85 = load i32, i32* %5
%86 = ashr i32 %85, 8
%87 = and i32 %86, 1
%88 = xor i32 %84, %87
store i32 %88, i32* %9
%89 = load i32, i32* %9
%90 = icmp ne i32 %89, 0
br i1 %90, label %91, label %92
91: ; preds = %53
store i32 0, i32* %4
br label %405
92: ; preds = %53
br label %93
93: ; preds = %92, %3
%94 = load i32, i32* %6
%95 = ashr i32 %94, 8
%96 = and i32 %95, 255
store i32 %96, i32* %8
%97 = load i32, i32* %8
%98 = load i32, i32* %8
%99 = ashr i32 %98, 1
%100 = xor i32 %97, %99
%101 = load i32, i32* %8
%102 = ashr i32 %101, 2
%103 = xor i32 %100, %102
%104 = load i32, i32* %8
%105 = ashr i32 %104, 3
%106 = xor i32 %103, %105
%107 = load i32, i32* %8
%108 = ashr i32 %107, 4
%109 = xor i32 %106, %108
%110 = load i32, i32* %8
%111 = ashr i32 %110, 5
%112 = xor i32 %109, %111
%113 = load i32, i32* %8
%114 = ashr i32 %113, 6
%115 = xor i32 %112, %114
%116 = load i32, i32* %8
%117 = ashr i32 %116, 7
%118 = xor i32 %115, %117
%119 = xor i32 %118, 1
%120 = and i32 %119, 1
%121 = load i32, i32* %6
%122 = and i32 %121, 1
%123 = xor i32 %120, %122
%124 = load i32, i32* %5
%125 = ashr i32 %124, 7
%126 = and i32 %125, 1
%127 = xor i32 %123, %126
store i32 %127, i32* %9
%128 = load i32, i32* %9
%129 = icmp ne i32 %128, 0
br i1 %129, label %130, label %131
130: ; preds = %93
store i32 0, i32* %4
br label %405
131: ; preds = %93
%132 = load i32, i32* %6
%133 = call i32 @prng_successor(i32 %132, i32 64)
store i32 %133, i32* %10
%134 = load i32, i32* %10
%135 = ashr i32 %134, 24
%136 = and i32 %135, 255
store i32 %136, i32* %8
%137 = load i32, i32* %8
%138 = load i32, i32* %8
%139 = ashr i32 %138, 1
%140 = xor i32 %137, %139
%141 = load i32, i32* %8
%142 = ashr i32 %141, 2
%143 = xor i32 %140, %142
%144 = load i32, i32* %8
%145 = ashr i32 %144, 3
%146 = xor i32 %143, %145
%147 = load i32, i32* %8
%148 = ashr i32 %147, 4
%149 = xor i32 %146, %148
%150 = load i32, i32* %8
%151 = ashr i32 %150, 5
%152 = xor i32 %149, %151
%153 = load i32, i32* %8
%154 = ashr i32 %153, 6
%155 = xor i32 %152, %154
%156 = load i32, i32* %8
%157 = ashr i32 %156, 7
%158 = xor i32 %155, %157
%159 = xor i32 %158, 1
%160 = and i32 %159, 1
%161 = load i32, i32* %10
%162 = ashr i32 %161, 16
%163 = and i32 %162, 1
%164 = xor i32 %160, %163
%165 = load i32, i32* %5
%166 = ashr i32 %165, 6
%167 = and i32 %166, 1
%168 = xor i32 %164, %167
store i32 %168, i32* %9
%169 = load i32, i32* %9
%170 = icmp ne i32 %169, 0
br i1 %170, label %171, label %172
171: ; preds = %131
store i32 0, i32* %4
br label %405
172: ; preds = %131
%173 = load i32, i32* %10
%174 = ashr i32 %173, 16
%175 = and i32 %174, 255
store i32 %175, i32* %8
%176 = load i32, i32* %8
%177 = load i32, i32* %8
%178 = ashr i32 %177, 1
%179 = xor i32 %176, %178
%180 = load i32, i32* %8
%181 = ashr i32 %180, 2
%182 = xor i32 %179, %181
%183 = load i32, i32* %8
%184 = ashr i32 %183, 3
%185 = xor i32 %182, %184
%186 = load i32, i32* %8
%187 = ashr i32 %186, 4
%188 = xor i32 %185, %187
%189 = load i32, i32* %8
%190 = ashr i32 %189, 5
%191 = xor i32 %188, %190
%192 = load i32, i32* %8
%193 = ashr i32 %192, 6
%194 = xor i32 %191, %193
%195 = load i32, i32* %8
%196 = ashr i32 %195, 7
%197 = xor i32 %194, %196
%198 = xor i32 %197, 1
%199 = and i32 %198, 1
%200 = load i32, i32* %10
%201 = ashr i32 %200, 8
%202 = and i32 %201, 1
%203 = xor i32 %199, %202
%204 = load i32, i32* %5
%205 = ashr i32 %204, 5
%206 = and i32 %205, 1
%207 = xor i32 %203, %206
store i32 %207, i32* %9
%208 = load i32, i32* %9
%209 = icmp ne i32 %208, 0
br i1 %209, label %210, label %211
210: ; preds = %172
store i32 0, i32* %4
br label %405
211: ; preds = %172
%212 = load i32, i32* %10
%213 = ashr i32 %212, 8
%214 = and i32 %213, 255
store i32 %214, i32* %8
%215 = load i32, i32* %8
%216 = load i32, i32* %8
%217 = ashr i32 %216, 1
%218 = xor i32 %215, %217
%219 = load i32, i32* %8
%220 = ashr i32 %219, 2
%221 = xor i32 %218, %220
%222 = load i32, i32* %8
%223 = ashr i32 %222, 3
%224 = xor i32 %221, %223
%225 = load i32, i32* %8
%226 = ashr i32 %225, 4
%227 = xor i32 %224, %226
%228 = load i32, i32* %8
%229 = ashr i32 %228, 5
%230 = xor i32 %227, %229
%231 = load i32, i32* %8
%232 = ashr i32 %231, 6
%233 = xor i32 %230, %232
%234 = load i32, i32* %8
%235 = ashr i32 %234, 7
%236 = xor i32 %233, %235
%237 = xor i32 %236, 1
%238 = and i32 %237, 1
%239 = load i32, i32* %10
%240 = and i32 %239, 1
%241 = xor i32 %238, %240
%242 = load i32, i32* %5
%243 = ashr i32 %242, 4
%244 = and i32 %243, 1
%245 = xor i32 %241, %244
store i32 %245, i32* %9
%246 = load i32, i32* %9
%247 = icmp ne i32 %246, 0
br i1 %247, label %248, label %249
248: ; preds = %211
store i32 0, i32* %4
br label %405
249: ; preds = %211
%250 = load i32, i32* %6
%251 = call i32 @prng_successor(i32 %250, i32 96)
store i32 %251, i32* %11
%252 = load i32, i32* %10
%253 = and i32 %252, 255
store i32 %253, i32* %8
%254 = load i32, i32* %8
%255 = load i32, i32* %8
%256 = ashr i32 %255, 1
%257 = xor i32 %254, %256
%258 = load i32, i32* %8
%259 = ashr i32 %258, 2
%260 = xor i32 %257, %259
%261 = load i32, i32* %8
%262 = ashr i32 %261, 3
%263 = xor i32 %260, %262
%264 = load i32, i32* %8
%265 = ashr i32 %264, 4
%266 = xor i32 %263, %265
%267 = load i32, i32* %8
%268 = ashr i32 %267, 5
%269 = xor i32 %266, %268
%270 = load i32, i32* %8
%271 = ashr i32 %270, 6
%272 = xor i32 %269, %271
%273 = load i32, i32* %8
%274 = ashr i32 %273, 7
%275 = xor i32 %272, %274
%276 = xor i32 %275, 1
%277 = and i32 %276, 1
%278 = load i32, i32* %11
%279 = ashr i32 %278, 24
%280 = and i32 %279, 1
%281 = xor i32 %277, %280
%282 = load i32, i32* %5
%283 = ashr i32 %282, 3
%284 = and i32 %283, 1
%285 = xor i32 %281, %284
store i32 %285, i32* %9
%286 = load i32, i32* %9
%287 = icmp ne i32 %286, 0
br i1 %287, label %288, label %289
288: ; preds = %249
store i32 0, i32* %4
br label %405
289: ; preds = %249
%290 = load i32, i32* %11
%291 = ashr i32 %290, 24
%292 = and i32 %291, 255
store i32 %292, i32* %8
%293 = load i32, i32* %8
%294 = load i32, i32* %8
%295 = ashr i32 %294, 1
%296 = xor i32 %293, %295
%297 = load i32, i32* %8
%298 = ashr i32 %297, 2
%299 = xor i32 %296, %298
%300 = load i32, i32* %8
%301 = ashr i32 %300, 3
%302 = xor i32 %299, %301
%303 = load i32, i32* %8
%304 = ashr i32 %303, 4
%305 = xor i32 %302, %304
%306 = load i32, i32* %8
%307 = ashr i32 %306, 5
%308 = xor i32 %305, %307
%309 = load i32, i32* %8
%310 = ashr i32 %309, 6
%311 = xor i32 %308, %310
%312 = load i32, i32* %8
%313 = ashr i32 %312, 7
%314 = xor i32 %311, %313
%315 = xor i32 %314, 1
%316 = and i32 %315, 1
%317 = load i32, i32* %11
%318 = ashr i32 %317, 16
%319 = and i32 %318, 1
%320 = xor i32 %316, %319
%321 = load i32, i32* %5
%322 = ashr i32 %321, 2
%323 = and i32 %322, 1
%324 = xor i32 %320, %323
store i32 %324, i32* %9
%325 = load i32, i32* %9
%326 = icmp ne i32 %325, 0
br i1 %326, label %327, label %328
327: ; preds = %289
store i32 0, i32* %4
br label %405
328: ; preds = %289
%329 = load i32, i32* %11
%330 = ashr i32 %329, 16
%331 = and i32 %330, 255
store i32 %331, i32* %8
%332 = load i32, i32* %8
%333 = load i32, i32* %8
%334 = ashr i32 %333, 1
%335 = xor i32 %332, %334
%336 = load i32, i32* %8
%337 = ashr i32 %336, 2
%338 = xor i32 %335, %337
%339 = load i32, i32* %8
%340 = ashr i32 %339, 3
%341 = xor i32 %338, %340
%342 = load i32, i32* %8
%343 = ashr i32 %342, 4
%344 = xor i32 %341, %343
%345 = load i32, i32* %8
%346 = ashr i32 %345, 5
%347 = xor i32 %344, %346
%348 = load i32, i32* %8
%349 = ashr i32 %348, 6
%350 = xor i32 %347, %349
%351 = load i32, i32* %8
%352 = ashr i32 %351, 7
%353 = xor i32 %350, %352
%354 = xor i32 %353, 1
%355 = and i32 %354, 1
%356 = load i32, i32* %11
%357 = ashr i32 %356, 8
%358 = and i32 %357, 1
%359 = xor i32 %355, %358
%360 = load i32, i32* %5
%361 = ashr i32 %360, 1
%362 = and i32 %361, 1
%363 = xor i32 %359, %362
store i32 %363, i32* %9
%364 = load i32, i32* %9
%365 = icmp ne i32 %364, 0
br i1 %365, label %366, label %367
366: ; preds = %328
store i32 0, i32* %4
br label %405
367: ; preds = %328
%368 = load i32, i32* %11
%369 = ashr i32 %368, 8
%370 = and i32 %369, 255
store i32 %370, i32* %8
%371 = load i32, i32* %8
%372 = load i32, i32* %8
%373 = ashr i32 %372, 1
%374 = xor i32 %371, %373
%375 = load i32, i32* %8
%376 = ashr i32 %375, 2
%377 = xor i32 %374, %376
%378 = load i32, i32* %8
%379 = ashr i32 %378, 3
%380 = xor i32 %377, %379
%381 = load i32, i32* %8
%382 = ashr i32 %381, 4
%383 = xor i32 %380, %382
%384 = load i32, i32* %8
%385 = ashr i32 %384, 5
%386 = xor i32 %383, %385
%387 = load i32, i32* %8
%388 = ashr i32 %387, 6
%389 = xor i32 %386, %388
%390 = load i32, i32* %8
%391 = ashr i32 %390, 7
%392 = xor i32 %389, %391
%393 = xor i32 %392, 1
%394 = and i32 %393, 1
%395 = load i32, i32* %11
%396 = and i32 %395, 1
%397 = xor i32 %394, %396
%398 = load i32, i32* %5
%399 = and i32 %398, 1
%400 = xor i32 %397, %399
store i32 %400, i32* %9
%401 = load i32, i32* %9
%402 = icmp ne i32 %401, 0
br i1 %402, label %403, label %404
403: ; preds = %367
store i32 0, i32* %4
br label %405
404: ; preds = %367
store i32 1, i32* %4
br label %405
405: ; preds = %404, %403, %366, %327, %288, %248, %210, %171, %130, %91, %52
%406 = load i32, i32* %4
ret i32 %406
}

LLVM IR (-O2):
define i32 @candidate_nonce(i32 %0, i32 %1, i32 %2) {
%4 = icmp eq i32 %2, 0
br i1 %4, label %5, label %50
5: ; preds = %3
%6 = lshr i32 %1, 24
%7 = lshr i32 %1, 25
%8 = xor i32 %6, %7
%9 = lshr i32 %1, 26
%10 = xor i32 %8, %9
%11 = lshr i32 %1, 27
%12 = xor i32 %10, %11
%13 = lshr i32 %1, 28
%14 = xor i32 %12, %13
%15 = lshr i32 %1, 29
%16 = xor i32 %14, %15
%17 = lshr i32 %1, 30
%18 = xor i32 %16, %17
%19 = lshr i32 %1, 31
%20 = and i32 %18, 1
%21 = ashr i32 %1, 16
%22 = and i32 %21, 1
%23 = lshr i32 %0, 9
%24 = and i32 %23, 1
%25 = xor i32 %24, %19
%26 = xor i32 %25, %22
%27 = xor i32 %26, %20
%28 = icmp eq i32 %27, 1
br i1 %28, label %29, label %226
29: ; preds = %5
%30 = and i32 %21, 255
%31 = lshr i32 %30, 1
%32 = lshr i32 %21, 2
%33 = lshr i32 %21, 3
%34 = lshr i32 %21, 4
%35 = lshr i32 %21, 5
%36 = lshr i32 %21, 6
%37 = lshr i32 %21, 7
%38 = xor i32 %1, %0
%39 = lshr i32 %38, 8
%40 = xor i32 %39, %30
%41 = xor i32 %40, %35
%42 = xor i32 %41, %36
%43 = xor i32 %42, %37
%44 = xor i32 %43, %31
%45 = xor i32 %44, %32
%46 = xor i32 %45, %33
%47 = xor i32 %46, %34
%48 = and i32 %47, 1
%49 = icmp eq i32 %48, 0
br i1 %49, label %226, label %50
50: ; preds = %29, %3
%51 = lshr i32 %1, 8
%52 = and i32 %51, 255
%53 = lshr i32 %52, 1
%54 = lshr i32 %1, 10
%55 = lshr i32 %1, 11
%56 = lshr i32 %1, 12
%57 = lshr i32 %1, 13
%58 = lshr i32 %1, 14
%59 = lshr i32 %1, 15
%60 = lshr i32 %0, 7
%61 = xor i32 %60, %1
%62 = xor i32 %61, %57
%63 = xor i32 %62, %58
%64 = xor i32 %63, %59
%65 = xor i32 %64, %52
%66 = xor i32 %65, %53
%67 = xor i32 %66, %54
%68 = xor i32 %67, %55
%69 = xor i32 %68, %56
%70 = and i32 %69, 1
%71 = icmp eq i32 %70, 0
br i1 %71, label %226, label %72
72: ; preds = %50
%73 = tail call i32 @prng_successor(i32 %1, i32 64)
%74 = lshr i32 %73, 24
%75 = lshr i32 %73, 25
%76 = xor i32 %74, %75
%77 = lshr i32 %73, 26
%78 = xor i32 %76, %77
%79 = lshr i32 %73, 27
%80 = xor i32 %78, %79
%81 = lshr i32 %73, 28
%82 = xor i32 %80, %81
%83 = lshr i32 %73, 29
%84 = xor i32 %82, %83
%85 = lshr i32 %73, 30
%86 = xor i32 %84, %85
%87 = lshr i32 %73, 31
%88 = and i32 %86, 1
%89 = ashr i32 %73, 16
%90 = and i32 %89, 1
%91 = lshr i32 %0, 6
%92 = and i32 %91, 1
%93 = xor i32 %87, %92
%94 = xor i32 %93, %90
%95 = xor i32 %94, %88
%96 = icmp eq i32 %95, 1
br i1 %96, label %97, label %226
97: ; preds = %72
%98 = and i32 %89, 255
%99 = lshr i32 %98, 1
%100 = lshr i32 %89, 2
%101 = lshr i32 %89, 3
%102 = lshr i32 %89, 4
%103 = lshr i32 %89, 5
%104 = lshr i32 %89, 6
%105 = lshr i32 %89, 7
%106 = ashr i32 %73, 8
%107 = lshr i32 %0, 5
%108 = xor i32 %106, %107
%109 = xor i32 %108, %98
%110 = xor i32 %109, %103
%111 = xor i32 %110, %104
%112 = xor i32 %111, %105
%113 = xor i32 %112, %99
%114 = xor i32 %113, %100
%115 = xor i32 %114, %101
%116 = xor i32 %115, %102
%117 = and i32 %116, 1
%118 = icmp eq i32 %117, 0
br i1 %118, label %226, label %119
119: ; preds = %97
%120 = and i32 %106, 255
%121 = lshr i32 %120, 1
%122 = lshr i32 %106, 2
%123 = lshr i32 %106, 3
%124 = lshr i32 %106, 4
%125 = lshr i32 %106, 5
%126 = lshr i32 %106, 6
%127 = lshr i32 %106, 7
%128 = lshr i32 %0, 4
%129 = xor i32 %73, %128
%130 = xor i32 %129, %120
%131 = xor i32 %130, %125
%132 = xor i32 %131, %126
%133 = xor i32 %132, %127
%134 = xor i32 %133, %121
%135 = xor i32 %134, %122
%136 = xor i32 %135, %123
%137 = xor i32 %136, %124
%138 = and i32 %137, 1
%139 = icmp eq i32 %138, 0
br i1 %139, label %226, label %140
140: ; preds = %119
%141 = tail call i32 @prng_successor(i32 %1, i32 96)
%142 = and i32 %73, 255
%143 = lshr i32 %142, 1
%144 = lshr i32 %142, 2
%145 = lshr i32 %73, 3
%146 = lshr i32 %73, 4
%147 = lshr i32 %73, 5
%148 = lshr i32 %73, 6
%149 = lshr i32 %73, 7
%150 = ashr i32 %141, 24
%151 = lshr i32 %0, 3
%152 = xor i32 %142, %151
%153 = xor i32 %152, %147
%154 = xor i32 %153, %148
%155 = xor i32 %154, %149
%156 = xor i32 %155, %143
%157 = xor i32 %156, %144
%158 = xor i32 %157, %145
%159 = xor i32 %158, %146
%160 = xor i32 %159, %150
%161 = and i32 %160, 1
%162 = icmp eq i32 %161, 0
br i1 %162, label %226, label %163
163: ; preds = %140
%164 = and i32 %150, 255
%165 = lshr i32 %164, 1
%166 = lshr i32 %150, 2
%167 = lshr i32 %150, 3
%168 = lshr i32 %150, 4
%169 = lshr i32 %150, 5
%170 = lshr i32 %150, 6
%171 = lshr i32 %150, 7
%172 = ashr i32 %141, 16
%173 = lshr i32 %0, 2
%174 = xor i32 %172, %173
%175 = xor i32 %174, %164
%176 = xor i32 %175, %169
%177 = xor i32 %176, %170
%178 = xor i32 %177, %171
%179 = xor i32 %178, %165
%180 = xor i32 %179, %166
%181 = xor i32 %180, %167
%182 = xor i32 %181, %168
%183 = and i32 %182, 1
%184 = icmp eq i32 %183, 0
br i1 %184, label %226, label %185
185: ; preds = %163
%186 = and i32 %172, 255
%187 = lshr i32 %186, 1
%188 = lshr i32 %172, 2
%189 = lshr i32 %172, 3
%190 = lshr i32 %172, 4
%191 = lshr i32 %172, 5
%192 = lshr i32 %172, 6
%193 = lshr i32 %172, 7
%194 = ashr i32 %141, 8
%195 = lshr i32 %0, 1
%196 = xor i32 %194, %195
%197 = xor i32 %196, %186
%198 = xor i32 %197, %191
%199 = xor i32 %198, %192
%200 = xor i32 %199, %193
%201 = xor i32 %200, %187
%202 = xor i32 %201, %188
%203 = xor i32 %202, %189
%204 = xor i32 %203, %190
%205 = and i32 %204, 1
%206 = icmp eq i32 %205, 0
br i1 %206, label %226, label %207
207: ; preds = %185
%208 = and i32 %194, 255
%209 = lshr i32 %208, 1
%210 = lshr i32 %194, 2
%211 = lshr i32 %194, 3
%212 = lshr i32 %194, 4
%213 = lshr i32 %194, 5
%214 = lshr i32 %194, 6
%215 = lshr i32 %194, 7
%216 = xor i32 %141, %0
%217 = xor i32 %216, %208
%218 = xor i32 %217, %213
%219 = xor i32 %218, %214
%220 = xor i32 %219, %215
%221 = xor i32 %220, %209
%222 = xor i32 %221, %210
%223 = xor i32 %222, %211
%224 = xor i32 %223, %212
%225 = and i32 %224, 1
br label %226
226: ; preds = %72, %97, %119, %207, %185, %163, %140, %50, %29, %5
%227 = phi i32 [ 0, %5 ], [ 0, %29 ], [ 0, %50 ], [ 0, %72 ], [ 0, %97 ], [ 0, %119 ], [ 0, %140 ], [ 0, %163 ], [ 0, %185 ], [ %225, %207 ]
ret i32 %227
}