int evalhand(int *flop, int *hand) {
  int c[7];
  int ranksum[13];
  int suitesum[4];
  int matrix[13][4];
  int i, j;
  int t1, t2;
  c[0] = flop[0];
  c[1] = flop[1];
  c[2] = flop[2];
  c[3] = flop[3];
  c[4] = flop[4];
  c[5] = hand[0];
  c[6] = hand[1];
  for (i = 0; i < 13; i++) {
    for (j = 0; j < 4; j++)
      matrix[i][j] = 0;
    ranksum[i] = suitesum[i] = 0;
  }
  for (i = 0; i < 7; i++) {
    ranksum[((c[i]) % 13)]++;
    suitesum[((c[i]) / 13)]++;
    matrix[((c[i]) % 13)][((c[i]) / 13)]++;
  }
  for (i = 0; i < 4; i++) {
    t1 = 0;
    for (j = 12; j >= 0; j--) {
      if (matrix[j][i] > 0)
        t1++;
      else
        t1 = 0;
      if (t1 == 5)
        return 8000 + 4 + j;
    }
  }
  for (i = 12; i >= 0; i--)
    if (ranksum[i] >= 4)
      return 7000 + i;
  t1 = t2 = -1;
  for (i = 12; i >= 0; i--) {
    if (t1 == -1 && ranksum[i] == 3)
      t1 = i;
    if (t2 == -1 && ranksum[i] == 2)
      t2 = i;
  }
  if (t1 != -1 && t2 != -1)
    return 6000 + (t1 * 13) + t2;
  for (i = 3; i >= 0; i--) {
    if (suitesum[i] >= 5) {
      for (j = 12; j >= 0; j--) {
        if (matrix[j][i] > 0)
          return 5000 + j;
      }
    }
  }
  t1 = 0;
  for (i = 12; i >= 0; i--) {
    if (ranksum[i])
      t1++;
    else
      t1 = 0;
    if (t1 == 5)
      return 4000 + 4 + i;
  }
  for (i = 12; i >= 0; i--)
    if (ranksum[i] >= 3)
      return 3000 + i;
  for (i = 12; i >= 0; i--)
    if (ranksum[i] >= 2)
      return 1000 + i;
  for (i = 12; i >= 0; i--)
    if (ranksum[i] >= 1)
      return i;
  return -1;
}


x86 assembly (clang, -O0):
<evalhand>:
push   %rbp
mov    %rsp,%rbp
sub    $0x100,%rsp
mov    %rdi,-0x10(%rbp)
mov    %rsi,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x40(%rbp)
mov    -0x10(%rbp),%rax
mov    0x4(%rax),%eax
mov    %eax,-0x3c(%rbp)
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%eax
mov    %eax,-0x38(%rbp)
mov    -0x10(%rbp),%rax
mov    0xc(%rax),%eax
mov    %eax,-0x34(%rbp)
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%eax
mov    %eax,-0x30(%rbp)
mov    -0x18(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x2c(%rbp)
mov    -0x18(%rbp),%rax
mov    0x4(%rax),%eax
mov    %eax,-0x28(%rbp)
movl   $0x0,-0x164(%rbp)
cmpl   $0xd,-0x164(%rbp)
jge    11f1 <evalhand+0xf1>
movl   $0x0,-0x168(%rbp)
cmpl   $0x4,-0x168(%rbp)
jge    11bc <evalhand+0xbc>
movslq -0x164(%rbp),%rcx
lea    -0x160(%rbp),%rax
shl    $0x4,%rcx
add    %rcx,%rax
movslq -0x168(%rbp),%rcx
movl   $0x0,(%rax,%rcx,4)
mov    -0x168(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x168(%rbp)
jmp    1178 <evalhand+0x78>
movslq -0x164(%rbp),%rax
movl   $0x0,-0x90(%rbp,%rax,4)
movslq -0x164(%rbp),%rax
movl   $0x0,-0x80(%rbp,%rax,4)
mov    -0x164(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x164(%rbp)
jmp    1161 <evalhand+0x61>
movl   $0x0,-0x164(%rbp)
cmpl   $0x7,-0x164(%rbp)
jge    12b6 <evalhand+0x1b6>
movslq -0x164(%rbp),%rax
mov    -0x40(%rbp,%rax,4),%eax
mov    $0xd,%ecx
cltd
idiv   %ecx
movslq %edx,%rax
mov    -0x80(%rbp,%rax,4),%ecx
add    $0x1,%ecx
mov    %ecx,-0x80(%rbp,%rax,4)
movslq -0x164(%rbp),%rax
mov    -0x40(%rbp,%rax,4),%eax
mov    $0xd,%ecx
cltd
idiv   %ecx
cltq
mov    -0x90(%rbp,%rax,4),%ecx
add    $0x1,%ecx
mov    %ecx,-0x90(%rbp,%rax,4)
movslq -0x164(%rbp),%rax
mov    -0x40(%rbp,%rax,4),%eax
mov    $0xd,%ecx
cltd
idiv   %ecx
movslq %edx,%rcx
lea    -0x160(%rbp),%rax
shl    $0x4,%rcx
add    %rcx,%rax
mov    %rax,-0x178(%rbp)
movslq -0x164(%rbp),%rax
mov    -0x40(%rbp,%rax,4),%eax
mov    $0xd,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    -0x178(%rbp),%rax
movslq %ecx,%rcx
mov    (%rax,%rcx,4),%edx
add    $0x1,%edx
mov    %edx,(%rax,%rcx,4)
mov    -0x164(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x164(%rbp)
jmp    11fb <evalhand+0xfb>
movl   $0x0,-0x164(%rbp)
cmpl   $0x4,-0x164(%rbp)
jge    1384 <evalhand+0x284>
movl   $0x0,-0x16c(%rbp)
movl   $0xc,-0x168(%rbp)
cmpl   $0x0,-0x168(%rbp)
jl     136b <evalhand+0x26b>
movslq -0x168(%rbp),%rcx
lea    -0x160(%rbp),%rax
shl    $0x4,%rcx
add    %rcx,%rax
movslq -0x164(%rbp),%rcx
cmpl   $0x0,(%rax,%rcx,4)
jle    1328 <evalhand+0x228>
mov    -0x16c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x16c(%rbp)
jmp    1332 <evalhand+0x232>
movl   $0x0,-0x16c(%rbp)
cmpl   $0x5,-0x16c(%rbp)
jne    1352 <evalhand+0x252>
mov    -0x168(%rbp),%eax
add    $0x1f44,%eax
mov    %eax,-0x4(%rbp)
jmp    16e5 <evalhand+0x5e5>
jmp    1357 <evalhand+0x257>
mov    -0x168(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x168(%rbp)
jmp    12e1 <evalhand+0x1e1>
jmp    1370 <evalhand+0x270>
mov    -0x164(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x164(%rbp)
jmp    12c0 <evalhand+0x1c0>
movl   $0xc,-0x164(%rbp)
cmpl   $0x0,-0x164(%rbp)
jl     13d9 <evalhand+0x2d9>
movslq -0x164(%rbp),%rax
cmpl   $0x4,-0x80(%rbp,%rax,4)
jl     13c0 <evalhand+0x2c0>
mov    -0x164(%rbp),%eax
add    $0x1b58,%eax
mov    %eax,-0x4(%rbp)
jmp    16e5 <evalhand+0x5e5>
jmp    13c5 <evalhand+0x2c5>
mov    -0x164(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x164(%rbp)
jmp    138e <evalhand+0x28e>
movl   $0xffffffff,-0x170(%rbp)
ff ff ff
movl   $0xffffffff,-0x16c(%rbp)
ff ff ff
movl   $0xc,-0x164(%rbp)
cmpl   $0x0,-0x164(%rbp)
jl     1473 <evalhand+0x373>
cmpl   $0xffffffff,-0x16c(%rbp)
jne    142f <evalhand+0x32f>
movslq -0x164(%rbp),%rax
cmpl   $0x3,-0x80(%rbp,%rax,4)
jne    142f <evalhand+0x32f>
mov    -0x164(%rbp),%eax
mov    %eax,-0x16c(%rbp)
cmpl   $0xffffffff,-0x170(%rbp)
jne    145a <evalhand+0x35a>
movslq -0x164(%rbp),%rax
cmpl   $0x2,-0x80(%rbp,%rax,4)
jne    145a <evalhand+0x35a>
mov    -0x164(%rbp),%eax
mov    %eax,-0x170(%rbp)
jmp    145f <evalhand+0x35f>
mov    -0x164(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x164(%rbp)
jmp    13f7 <evalhand+0x2f7>
cmpl   $0xffffffff,-0x16c(%rbp)
je     14a7 <evalhand+0x3a7>
cmpl   $0xffffffff,-0x170(%rbp)
je     14a7 <evalhand+0x3a7>
imul   $0xd,-0x16c(%rbp),%eax
add    $0x1770,%eax
add    -0x170(%rbp),%eax
mov    %eax,-0x4(%rbp)
jmp    16e5 <evalhand+0x5e5>
movl   $0x3,-0x164(%rbp)
cmpl   $0x0,-0x164(%rbp)
jl     155a <evalhand+0x45a>
movslq -0x164(%rbp),%rax
cmpl   $0x5,-0x90(%rbp,%rax,4)
05
jl     1541 <evalhand+0x441>
movl   $0xc,-0x168(%rbp)
cmpl   $0x0,-0x168(%rbp)
jl     153c <evalhand+0x43c>
movslq -0x168(%rbp),%rcx
lea    -0x160(%rbp),%rax
shl    $0x4,%rcx
add    %rcx,%rax
movslq -0x164(%rbp),%rcx
cmpl   $0x0,(%rax,%rcx,4)
jle    1523 <evalhand+0x423>
mov    -0x168(%rbp),%eax
add    $0x1388,%eax
mov    %eax,-0x4(%rbp)
jmp    16e5 <evalhand+0x5e5>
jmp    1528 <evalhand+0x428>
mov    -0x168(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x168(%rbp)
jmp    14dd <evalhand+0x3dd>
jmp    1541 <evalhand+0x441>
jmp    1546 <evalhand+0x446>
mov    -0x164(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x164(%rbp)
jmp    14b1 <evalhand+0x3b1>
movl   $0x0,-0x16c(%rbp)
movl   $0xc,-0x164(%rbp)
cmpl   $0x0,-0x164(%rbp)
jl     15e4 <evalhand+0x4e4>
movslq -0x164(%rbp),%rax
cmpl   $0x0,-0x80(%rbp,%rax,4)
je     15a1 <evalhand+0x4a1>
mov    -0x16c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x16c(%rbp)
jmp    15ab <evalhand+0x4ab>
movl   $0x0,-0x16c(%rbp)
cmpl   $0x5,-0x16c(%rbp)
jne    15cb <evalhand+0x4cb>
mov    -0x164(%rbp),%eax
add    $0xfa4,%eax
mov    %eax,-0x4(%rbp)
jmp    16e5 <evalhand+0x5e5>
jmp    15d0 <evalhand+0x4d0>
mov    -0x164(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x164(%rbp)
jmp    156e <evalhand+0x46e>
movl   $0xc,-0x164(%rbp)
cmpl   $0x0,-0x164(%rbp)
jl     1639 <evalhand+0x539>
movslq -0x164(%rbp),%rax
cmpl   $0x3,-0x80(%rbp,%rax,4)
jl     1620 <evalhand+0x520>
mov    -0x164(%rbp),%eax
add    $0xbb8,%eax
mov    %eax,-0x4(%rbp)
jmp    16e5 <evalhand+0x5e5>
jmp    1625 <evalhand+0x525>
mov    -0x164(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x164(%rbp)
jmp    15ee <evalhand+0x4ee>
movl   $0xc,-0x164(%rbp)
cmpl   $0x0,-0x164(%rbp)
jl     168e <evalhand+0x58e>
movslq -0x164(%rbp),%rax
cmpl   $0x2,-0x80(%rbp,%rax,4)
jl     1675 <evalhand+0x575>
mov    -0x164(%rbp),%eax
add    $0x3e8,%eax
mov    %eax,-0x4(%rbp)
jmp    16e5 <evalhand+0x5e5>
jmp    167a <evalhand+0x57a>
mov    -0x164(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x164(%rbp)
jmp    1643 <evalhand+0x543>
movl   $0xc,-0x164(%rbp)
cmpl   $0x0,-0x164(%rbp)
jl     16de <evalhand+0x5de>
movslq -0x164(%rbp),%rax
cmpl   $0x1,-0x80(%rbp,%rax,4)
jl     16c5 <evalhand+0x5c5>
mov    -0x164(%rbp),%eax
mov    %eax,-0x4(%rbp)
jmp    16e5 <evalhand+0x5e5>
jmp    16ca <evalhand+0x5ca>
mov    -0x164(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x164(%rbp)
jmp    1698 <evalhand+0x598>
movl   $0xffffffff,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0x100,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<evalhand>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0xd8,%rsp
movdqu (%rdi),%xmm0
movdqa %xmm0,0xb0(%rsp)
mov    0x10(%rdi),%eax
mov    %eax,0xc0(%rsp)
mov    (%rsi),%eax
mov    %eax,0xc4(%rsp)
mov    0x4(%rsi),%eax
mov    %eax,0xc8(%rsp)
xorps  %xmm1,%xmm1
movaps %xmm1,-0x20(%rsp)
movaps %xmm1,-0x10(%rsp)
movaps %xmm1,(%rsp)
movaps %xmm1,0x10(%rsp)
movaps %xmm1,0x20(%rsp)
movaps %xmm1,0x30(%rsp)
movaps %xmm1,0x40(%rsp)
movaps %xmm1,0x50(%rsp)
movaps %xmm1,0x60(%rsp)
movaps %xmm1,0x70(%rsp)
movaps %xmm1,0x80(%rsp)
movaps %xmm1,0x90(%rsp)
movaps %xmm1,0xa0(%rsp)
movaps %xmm1,-0x30(%rsp)
movaps %xmm1,-0x20(%rsp)
movaps %xmm1,-0x10(%rsp)
movl   $0x0,(%rsp)
movaps %xmm1,-0x50(%rsp)
movaps %xmm1,-0x60(%rsp)
movaps %xmm1,-0x70(%rsp)
movl   $0x0,-0x40(%rsp)
movd   %xmm0,%ecx
mov    $0x1,%eax
nopl   (%rax)
movslq %ecx,%rcx
imul   $0x4ec4ec4f,%rcx,%rdx
mov    %rdx,%rsi
shr    $0x3f,%rsi
sar    $0x22,%rdx
add    %esi,%edx
lea    (%rdx,%rdx,2),%esi
lea    (%rdx,%rsi,4),%esi
sub    %esi,%ecx
movslq %ecx,%rcx
addl   $0x1,-0x70(%rsp,%rcx,4)
movslq %edx,%rdx
addl   $0x1,-0x30(%rsp,%rdx,4)
shl    $0x4,%rcx
add    %rsp,%rcx
add    $0xffffffffffffffe0,%rcx
addl   $0x1,(%rcx,%rdx,4)
cmp    $0x7,%rax
je     1211 <evalhand+0x111>
mov    0xb0(%rsp,%rax,4),%ecx
add    $0x1,%rax
jmp    11c0 <evalhand+0xc0>
mov    $0xfffffffffffffffc,%rax
mov    $0x3,%ecx
mov    $0x2,%edx
mov    $0x1,%esi
xor    %edi,%edi
jmp    1239 <evalhand+0x139>
nopl   0x0(%rax,%rax,1)
inc    %rax
je     1361 <evalhand+0x261>
xor    %ebp,%ebp
cmpl   $0x0,0xb0(%rsp,%rax,4)
setle  %bpl
xor    $0x5,%ebp
cmpl   $0x0,0xa0(%rsp,%rax,4)
cmovle %ecx,%ebp
cmpl   $0x0,0x90(%rsp,%rax,4)
cmovle %edx,%ebp
cmpl   $0x0,0x80(%rsp,%rax,4)
cmovle %esi,%ebp
cmpl   $0x0,0x70(%rsp,%rax,4)
cmovle %edi,%ebp
cmp    $0x5,%ebp
je     1311 <evalhand+0x211>
add    $0x1,%ebp
cmpl   $0x0,0x60(%rsp,%rax,4)
cmovle %edi,%ebp
cmp    $0x5,%ebp
je     131b <evalhand+0x21b>
add    $0x1,%ebp
cmpl   $0x0,0x50(%rsp,%rax,4)
cmovle %edi,%ebp
cmp    $0x5,%ebp
je     1325 <evalhand+0x225>
add    $0x1,%ebp
cmpl   $0x0,0x40(%rsp,%rax,4)
cmovle %edi,%ebp
cmp    $0x5,%ebp
je     132f <evalhand+0x22f>
add    $0x1,%ebp
cmpl   $0x0,0x30(%rsp,%rax,4)
cmovle %edi,%ebp
cmp    $0x5,%ebp
je     1339 <evalhand+0x239>
add    $0x1,%ebp
cmpl   $0x0,0x20(%rsp,%rax,4)
cmovle %edi,%ebp
cmp    $0x5,%ebp
je     1343 <evalhand+0x243>
add    $0x1,%ebp
cmpl   $0x0,0x10(%rsp,%rax,4)
cmovle %edi,%ebp
cmp    $0x5,%ebp
je     134d <evalhand+0x24d>
add    $0x1,%ebp
cmpl   $0x0,(%rsp,%rax,4)
cmovle %edi,%ebp
cmp    $0x5,%ebp
je     1357 <evalhand+0x257>
cmpl   $0x0,-0x10(%rsp,%rax,4)
jle    1230 <evalhand+0x130>
cmp    $0x4,%ebp
jne    1230 <evalhand+0x130>
mov    $0x1f44,%eax
jmp    14f3 <evalhand+0x3f3>
mov    $0x1f4c,%eax
jmp    14f3 <evalhand+0x3f3>
mov    $0x1f4b,%eax
jmp    14f3 <evalhand+0x3f3>
mov    $0x1f4a,%eax
jmp    14f3 <evalhand+0x3f3>
mov    $0x1f49,%eax
jmp    14f3 <evalhand+0x3f3>
mov    $0x1f48,%eax
jmp    14f3 <evalhand+0x3f3>
mov    $0x1f47,%eax
jmp    14f3 <evalhand+0x3f3>
mov    $0x1f46,%eax
jmp    14f3 <evalhand+0x3f3>
mov    $0x1f45,%eax
jmp    14f3 <evalhand+0x3f3>
mov    -0x40(%rsp),%ecx
mov    $0x1b64,%eax
cmp    $0x3,%ecx
jg     14f3 <evalhand+0x3f3>
mov    -0x44(%rsp),%edx
mov    $0x1b63,%eax
cmp    $0x3,%edx
jg     14f3 <evalhand+0x3f3>
mov    -0x48(%rsp),%esi
mov    $0x1b62,%eax
cmp    $0x3,%esi
jg     14f3 <evalhand+0x3f3>
mov    -0x4c(%rsp),%edi
mov    $0x1b61,%eax
cmp    $0x3,%edi
jg     14f3 <evalhand+0x3f3>
mov    -0x50(%rsp),%r8d
mov    $0x1b60,%eax
cmp    $0x3,%r8d
jg     14f3 <evalhand+0x3f3>
mov    -0x54(%rsp),%r9d
mov    $0x1b5f,%eax
cmp    $0x3,%r9d
jg     14f3 <evalhand+0x3f3>
mov    -0x58(%rsp),%r10d
mov    $0x1b5e,%eax
cmp    $0x3,%r10d
jg     14f3 <evalhand+0x3f3>
mov    -0x5c(%rsp),%r11d
mov    $0x1b5d,%eax
cmp    $0x3,%r11d
jg     14f3 <evalhand+0x3f3>
mov    -0x60(%rsp),%ebx
mov    $0x1b5c,%eax
cmp    $0x3,%ebx
jg     14f3 <evalhand+0x3f3>
mov    -0x64(%rsp),%r13d
mov    $0x1b5b,%eax
cmp    $0x3,%r13d
jg     14f3 <evalhand+0x3f3>
mov    -0x68(%rsp),%r14d
mov    $0x1b5a,%eax
cmp    $0x3,%r14d
jg     14f3 <evalhand+0x3f3>
mov    -0x6c(%rsp),%ebp
mov    $0x1b59,%eax
mov    %ebp,-0x74(%rsp)
cmp    $0x3,%ebp
jg     14f3 <evalhand+0x3f3>
mov    -0x70(%rsp),%ebp
mov    $0x1b58,%eax
mov    %ebp,-0x78(%rsp)
cmp    $0x3,%ebp
jg     14f3 <evalhand+0x3f3>
mov    $0xffffffff,%ebp
mov    $0xc,%eax
mov    $0xb,%r15d
mov    $0xffffffff,%r12d
jmp    147f <evalhand+0x37f>
add    $0xfffffffffffffffe,%rax
add    $0xfffffffe,%r15d
cmp    $0xffffffff,%r12d
jne    1495 <evalhand+0x395>
cmpl   $0x3,-0x70(%rsp,%rax,4)
mov    %eax,%r12d
je     1495 <evalhand+0x395>
mov    $0xffffffff,%r12d
cmp    $0xffffffff,%ebp
jne    14a8 <evalhand+0x3a8>
cmpl   $0x2,-0x70(%rsp,%rax,4)
mov    %eax,%ebp
je     14a8 <evalhand+0x3a8>
mov    $0xffffffff,%ebp
test   %rax,%rax
je     14d9 <evalhand+0x3d9>
cmp    $0xffffffff,%r12d
jne    14c3 <evalhand+0x3c3>
cmpl   $0x3,-0x74(%rsp,%rax,4)
mov    %r15d,%r12d
je     14c3 <evalhand+0x3c3>
mov    $0xffffffff,%r12d
cmp    $0xffffffff,%ebp
jne    1477 <evalhand+0x377>
cmpl   $0x2,-0x74(%rsp,%rax,4)
mov    %r15d,%ebp
je     1477 <evalhand+0x377>
mov    $0xffffffff,%ebp
jmp    1477 <evalhand+0x377>
cmp    $0xffffffff,%r12d
je     1505 <evalhand+0x405>
cmp    $0xffffffff,%ebp
je     1505 <evalhand+0x405>
lea    (%r12,%r12,2),%eax
lea    (%r12,%rax,4),%eax
add    %ebp,%eax
add    $0x1770,%eax
add    $0xd8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret
xor    %eax,%eax
jmp    1517 <evalhand+0x417>
add    $0xffffffffffffffff,%rax
cmp    $0xfffffffffffffffc,%rax
je     15c0 <evalhand+0x4c0>
cmpl   $0x5,-0x24(%rsp,%rax,4)
jl     1509 <evalhand+0x409>
cmpl   $0x0,0xac(%rsp,%rax,4)
jg     18f1 <evalhand+0x7f1>
cmpl   $0x0,0x9c(%rsp,%rax,4)
jg     18fb <evalhand+0x7fb>
cmpl   $0x0,0x8c(%rsp,%rax,4)
jg     1905 <evalhand+0x805>
cmpl   $0x0,0x7c(%rsp,%rax,4)
jg     190f <evalhand+0x80f>
cmpl   $0x0,0x6c(%rsp,%rax,4)
jg     1919 <evalhand+0x819>
cmpl   $0x0,0x5c(%rsp,%rax,4)
jg     1923 <evalhand+0x823>
cmpl   $0x0,0x4c(%rsp,%rax,4)
jg     192d <evalhand+0x82d>
cmpl   $0x0,0x3c(%rsp,%rax,4)
jg     1937 <evalhand+0x837>
cmpl   $0x0,0x2c(%rsp,%rax,4)
jg     1941 <evalhand+0x841>
cmpl   $0x0,0x1c(%rsp,%rax,4)
jg     194b <evalhand+0x84b>
cmpl   $0x0,0xc(%rsp,%rax,4)
jg     1955 <evalhand+0x855>
cmpl   $0x0,-0x4(%rsp,%rax,4)
jg     195f <evalhand+0x85f>
cmpl   $0x0,-0x14(%rsp,%rax,4)
jle    1509 <evalhand+0x409>
mov    $0x1388,%eax
jmp    14f3 <evalhand+0x3f3>
cmp    $0x1,%ecx
mov    $0x5,%eax
sbb    $0x0,%eax
test   %edx,%edx
mov    $0x3,%ebp
cmovne %eax,%ebp
test   %esi,%esi
mov    $0x2,%eax
cmovne %ebp,%eax
test   %edi,%edi
mov    $0x1,%ebp
cmovne %eax,%ebp
test   %r8d,%r8d
cmove  %r8d,%ebp
mov    $0xfac,%eax
cmp    $0x5,%ebp
je     14f3 <evalhand+0x3f3>
add    $0x1,%ebp
test   %r9d,%r9d
cmove  %r9d,%ebp
mov    $0xfab,%eax
cmp    $0x5,%ebp
je     14f3 <evalhand+0x3f3>
add    $0x1,%ebp
test   %r10d,%r10d
cmove  %r10d,%ebp
mov    $0xfaa,%eax
cmp    $0x5,%ebp
je     14f3 <evalhand+0x3f3>
add    $0x1,%ebp
test   %r11d,%r11d
cmove  %r11d,%ebp
mov    $0xfa9,%eax
cmp    $0x5,%ebp
je     14f3 <evalhand+0x3f3>
add    $0x1,%ebp
test   %ebx,%ebx
cmove  %ebx,%ebp
mov    $0xfa8,%eax
cmp    $0x5,%ebp
je     14f3 <evalhand+0x3f3>
add    $0x1,%ebp
test   %r13d,%r13d
cmove  %r13d,%ebp
mov    $0xfa7,%eax
cmp    $0x5,%ebp
je     14f3 <evalhand+0x3f3>
add    $0x1,%ebp
test   %r14d,%r14d
cmove  %r14d,%ebp
mov    $0xfa6,%eax
cmp    $0x5,%ebp
je     14f3 <evalhand+0x3f3>
add    $0x1,%ebp
mov    -0x74(%rsp),%eax
test   %eax,%eax
cmove  %eax,%ebp
mov    $0xfa5,%eax
cmp    $0x5,%ebp
je     14f3 <evalhand+0x3f3>
cmpl   $0x0,-0x78(%rsp)
je     16bb <evalhand+0x5bb>
mov    $0xfa4,%eax
cmp    $0x4,%ebp
je     14f3 <evalhand+0x3f3>
mov    $0xbc4,%eax
cmp    $0x2,%ecx
jg     14f3 <evalhand+0x3f3>
mov    $0xbc3,%eax
cmp    $0x2,%edx
jg     14f3 <evalhand+0x3f3>
mov    $0xbc2,%eax
cmp    $0x2,%esi
jg     14f3 <evalhand+0x3f3>
mov    $0xbc1,%eax
cmp    $0x2,%edi
jg     14f3 <evalhand+0x3f3>
mov    $0xbc0,%eax
cmp    $0x2,%r8d
jg     14f3 <evalhand+0x3f3>
mov    $0xbbf,%eax
cmp    $0x2,%r9d
jg     14f3 <evalhand+0x3f3>
mov    $0xbbe,%eax
cmp    $0x2,%r10d
jg     14f3 <evalhand+0x3f3>
mov    $0xbbd,%eax
cmp    $0x2,%r11d
jg     14f3 <evalhand+0x3f3>
mov    $0xbbc,%eax
cmp    $0x2,%ebx
jg     14f3 <evalhand+0x3f3>
mov    $0xbbb,%eax
cmp    $0x2,%r13d
jg     14f3 <evalhand+0x3f3>
mov    $0xbba,%eax
cmp    $0x2,%r14d
jg     14f3 <evalhand+0x3f3>
mov    $0xbb9,%eax
cmpl   $0x2,-0x74(%rsp)
jg     14f3 <evalhand+0x3f3>
mov    $0xbb8,%eax
cmpl   $0x2,-0x78(%rsp)
jg     14f3 <evalhand+0x3f3>
mov    $0x3f4,%eax
cmp    $0x1,%ecx
jg     14f3 <evalhand+0x3f3>
mov    $0x3f3,%eax
cmp    $0x1,%edx
jg     14f3 <evalhand+0x3f3>
mov    $0x3f2,%eax
cmp    $0x1,%esi
jg     14f3 <evalhand+0x3f3>
mov    $0x3f1,%eax
cmp    $0x1,%edi
jg     14f3 <evalhand+0x3f3>
mov    $0x3f0,%eax
cmp    $0x1,%r8d
jg     14f3 <evalhand+0x3f3>
mov    $0x3ef,%eax
cmp    $0x1,%r9d
jg     14f3 <evalhand+0x3f3>
mov    $0x3ee,%eax
cmp    $0x1,%r10d
jg     14f3 <evalhand+0x3f3>
mov    $0x3ed,%eax
cmp    $0x1,%r11d
jg     14f3 <evalhand+0x3f3>
mov    $0x3ec,%eax
cmp    $0x1,%ebx
jg     14f3 <evalhand+0x3f3>
mov    $0x3eb,%eax
cmp    $0x1,%r13d
jg     14f3 <evalhand+0x3f3>
mov    $0x3ea,%eax
cmp    $0x1,%r14d
jg     14f3 <evalhand+0x3f3>
mov    $0x3e9,%eax
cmpl   $0x1,-0x74(%rsp)
jg     14f3 <evalhand+0x3f3>
mov    $0x3e8,%eax
cmpl   $0x1,-0x78(%rsp)
jg     14f3 <evalhand+0x3f3>
mov    $0xc,%eax
test   %ecx,%ecx
jg     14f3 <evalhand+0x3f3>
mov    $0xb,%eax
test   %edx,%edx
jg     14f3 <evalhand+0x3f3>
mov    $0xa,%eax
test   %esi,%esi
jg     14f3 <evalhand+0x3f3>
mov    $0x9,%eax
test   %edi,%edi
jg     14f3 <evalhand+0x3f3>
mov    $0x8,%eax
test   %r8d,%r8d
jg     14f3 <evalhand+0x3f3>
mov    $0x7,%eax
test   %r9d,%r9d
jg     14f3 <evalhand+0x3f3>
mov    $0x6,%eax
test   %r10d,%r10d
jg     14f3 <evalhand+0x3f3>
mov    $0x5,%eax
test   %r11d,%r11d
jg     14f3 <evalhand+0x3f3>
mov    $0x4,%eax
test   %ebx,%ebx
jg     14f3 <evalhand+0x3f3>
mov    $0x3,%eax
test   %r13d,%r13d
jg     14f3 <evalhand+0x3f3>
mov    $0x2,%eax
test   %r14d,%r14d
jg     14f3 <evalhand+0x3f3>
mov    $0x1,%eax
cmpl   $0x0,-0x74(%rsp)
jg     14f3 <evalhand+0x3f3>
xor    %eax,%eax
cmpl   $0x0,-0x78(%rsp)
setle  %al
neg    %eax
jmp    14f3 <evalhand+0x3f3>
mov    $0x1394,%eax
jmp    14f3 <evalhand+0x3f3>
mov    $0x1393,%eax
jmp    14f3 <evalhand+0x3f3>
mov    $0x1392,%eax
jmp    14f3 <evalhand+0x3f3>
mov    $0x1391,%eax
jmp    14f3 <evalhand+0x3f3>
mov    $0x1390,%eax
jmp    14f3 <evalhand+0x3f3>
mov    $0x138f,%eax
jmp    14f3 <evalhand+0x3f3>
mov    $0x138e,%eax
jmp    14f3 <evalhand+0x3f3>
mov    $0x138d,%eax
jmp    14f3 <evalhand+0x3f3>
mov    $0x138c,%eax
jmp    14f3 <evalhand+0x3f3>
mov    $0x138b,%eax
jmp    14f3 <evalhand+0x3f3>
mov    $0x138a,%eax
jmp    14f3 <evalhand+0x3f3>
mov    $0x1389,%eax
jmp    14f3 <evalhand+0x3f3>

LLVM IR (-O0):
define i32 @evalhand(i32* %0, i32* %1) {
%3 = alloca i32
%4 = alloca i32*
%5 = alloca i32*
%6 = alloca [7 x i32]
%7 = alloca [13 x i32]
%8 = alloca [4 x i32]
%9 = alloca [13 x [4 x i32]]
%10 = alloca i32
%11 = alloca i32
%12 = alloca i32
%13 = alloca i32
store i32* %0, i32** %4
store i32* %1, i32** %5
%14 = load i32*, i32** %4
%15 = getelementptr inbounds i32, i32* %14, i64 0
%16 = load i32, i32* %15
%17 = getelementptr inbounds [7 x i32], [7 x i32]* %6, i64 0, i64 0
store i32 %16, i32* %17
%18 = load i32*, i32** %4
%19 = getelementptr inbounds i32, i32* %18, i64 1
%20 = load i32, i32* %19
%21 = getelementptr inbounds [7 x i32], [7 x i32]* %6, i64 0, i64 1
store i32 %20, i32* %21
%22 = load i32*, i32** %4
%23 = getelementptr inbounds i32, i32* %22, i64 2
%24 = load i32, i32* %23
%25 = getelementptr inbounds [7 x i32], [7 x i32]* %6, i64 0, i64 2
store i32 %24, i32* %25
%26 = load i32*, i32** %4
%27 = getelementptr inbounds i32, i32* %26, i64 3
%28 = load i32, i32* %27
%29 = getelementptr inbounds [7 x i32], [7 x i32]* %6, i64 0, i64 3
store i32 %28, i32* %29
%30 = load i32*, i32** %4
%31 = getelementptr inbounds i32, i32* %30, i64 4
%32 = load i32, i32* %31
%33 = getelementptr inbounds [7 x i32], [7 x i32]* %6, i64 0, i64 4
store i32 %32, i32* %33
%34 = load i32*, i32** %5
%35 = getelementptr inbounds i32, i32* %34, i64 0
%36 = load i32, i32* %35
%37 = getelementptr inbounds [7 x i32], [7 x i32]* %6, i64 0, i64 5
store i32 %36, i32* %37
%38 = load i32*, i32** %5
%39 = getelementptr inbounds i32, i32* %38, i64 1
%40 = load i32, i32* %39
%41 = getelementptr inbounds [7 x i32], [7 x i32]* %6, i64 0, i64 6
store i32 %40, i32* %41
store i32 0, i32* %10
br label %42
42: ; preds = %66, %2
%43 = load i32, i32* %10
%44 = icmp slt i32 %43, 13
br i1 %44, label %45, label %69
45: ; preds = %42
store i32 0, i32* %11
br label %46
46: ; preds = %56, %45
%47 = load i32, i32* %11
%48 = icmp slt i32 %47, 4
br i1 %48, label %49, label %59
49: ; preds = %46
%50 = load i32, i32* %10
%51 = sext i32 %50 to i64
%52 = getelementptr inbounds [13 x [4 x i32]], [13 x [4 x i32]]* %9, i64 0, i64 %51
%53 = load i32, i32* %11
%54 = sext i32 %53 to i64
%55 = getelementptr inbounds [4 x i32], [4 x i32]* %52, i64 0, i64 %54
store i32 0, i32* %55
br label %56
56: ; preds = %49
%57 = load i32, i32* %11
%58 = add nsw i32 %57, 1
store i32 %58, i32* %11
br label %46
59: ; preds = %46
%60 = load i32, i32* %10
%61 = sext i32 %60 to i64
%62 = getelementptr inbounds [4 x i32], [4 x i32]* %8, i64 0, i64 %61
store i32 0, i32* %62
%63 = load i32, i32* %10
%64 = sext i32 %63 to i64
%65 = getelementptr inbounds [13 x i32], [13 x i32]* %7, i64 0, i64 %64
store i32 0, i32* %65
br label %66
66: ; preds = %59
%67 = load i32, i32* %10
%68 = add nsw i32 %67, 1
store i32 %68, i32* %10
br label %42
69: ; preds = %42
store i32 0, i32* %10
br label %70
70: ; preds = %108, %69
%71 = load i32, i32* %10
%72 = icmp slt i32 %71, 7
br i1 %72, label %73, label %111
73: ; preds = %70
%74 = load i32, i32* %10
%75 = sext i32 %74 to i64
%76 = getelementptr inbounds [7 x i32], [7 x i32]* %6, i64 0, i64 %75
%77 = load i32, i32* %76
%78 = srem i32 %77, 13
%79 = sext i32 %78 to i64
%80 = getelementptr inbounds [13 x i32], [13 x i32]* %7, i64 0, i64 %79
%81 = load i32, i32* %80
%82 = add nsw i32 %81, 1
store i32 %82, i32* %80
%83 = load i32, i32* %10
%84 = sext i32 %83 to i64
%85 = getelementptr inbounds [7 x i32], [7 x i32]* %6, i64 0, i64 %84
%86 = load i32, i32* %85
%87 = sdiv i32 %86, 13
%88 = sext i32 %87 to i64
%89 = getelementptr inbounds [4 x i32], [4 x i32]* %8, i64 0, i64 %88
%90 = load i32, i32* %89
%91 = add nsw i32 %90, 1
store i32 %91, i32* %89
%92 = load i32, i32* %10
%93 = sext i32 %92 to i64
%94 = getelementptr inbounds [7 x i32], [7 x i32]* %6, i64 0, i64 %93
%95 = load i32, i32* %94
%96 = srem i32 %95, 13
%97 = sext i32 %96 to i64
%98 = getelementptr inbounds [13 x [4 x i32]], [13 x [4 x i32]]* %9, i64 0, i64 %97
%99 = load i32, i32* %10
%100 = sext i32 %99 to i64
%101 = getelementptr inbounds [7 x i32], [7 x i32]* %6, i64 0, i64 %100
%102 = load i32, i32* %101
%103 = sdiv i32 %102, 13
%104 = sext i32 %103 to i64
%105 = getelementptr inbounds [4 x i32], [4 x i32]* %98, i64 0, i64 %104
%106 = load i32, i32* %105
%107 = add nsw i32 %106, 1
store i32 %107, i32* %105
br label %108
108: ; preds = %73
%109 = load i32, i32* %10
%110 = add nsw i32 %109, 1
store i32 %110, i32* %10
br label %70
111: ; preds = %70
store i32 0, i32* %10
br label %112
112: ; preds = %143, %111
%113 = load i32, i32* %10
%114 = icmp slt i32 %113, 4
br i1 %114, label %115, label %146
115: ; preds = %112
store i32 0, i32* %12
store i32 12, i32* %11
br label %116
116: ; preds = %139, %115
%117 = load i32, i32* %11
%118 = icmp sge i32 %117, 0
br i1 %118, label %119, label %142
119: ; preds = %116
%120 = load i32, i32* %11
%121 = sext i32 %120 to i64
%122 = getelementptr inbounds [13 x [4 x i32]], [13 x [4 x i32]]* %9, i64 0, i64 %121
%123 = load i32, i32* %10
%124 = sext i32 %123 to i64
%125 = getelementptr inbounds [4 x i32], [4 x i32]* %122, i64 0, i64 %124
%126 = load i32, i32* %125
%127 = icmp sgt i32 %126, 0
br i1 %127, label %128, label %131
128: ; preds = %119
%129 = load i32, i32* %12
%130 = add nsw i32 %129, 1
store i32 %130, i32* %12
br label %132
131: ; preds = %119
store i32 0, i32* %12
br label %132
132: ; preds = %131, %128
%133 = load i32, i32* %12
%134 = icmp eq i32 %133, 5
br i1 %134, label %135, label %138
135: ; preds = %132
%136 = load i32, i32* %11
%137 = add nsw i32 8004, %136
store i32 %137, i32* %3
br label %315
138: ; preds = %132
br label %139
139: ; preds = %138
%140 = load i32, i32* %11
%141 = add nsw i32 %140, -1
store i32 %141, i32* %11
br label %116
142: ; preds = %116
br label %143
143: ; preds = %142
%144 = load i32, i32* %10
%145 = add nsw i32 %144, 1
store i32 %145, i32* %10
br label %112
146: ; preds = %112
store i32 12, i32* %10
br label %147
147: ; preds = %160, %146
%148 = load i32, i32* %10
%149 = icmp sge i32 %148, 0
br i1 %149, label %150, label %163
150: ; preds = %147
%151 = load i32, i32* %10
%152 = sext i32 %151 to i64
%153 = getelementptr inbounds [13 x i32], [13 x i32]* %7, i64 0, i64 %152
%154 = load i32, i32* %153
%155 = icmp sge i32 %154, 4
br i1 %155, label %156, label %159
156: ; preds = %150
%157 = load i32, i32* %10
%158 = add nsw i32 7000, %157
store i32 %158, i32* %3
br label %315
159: ; preds = %150
br label %160
160: ; preds = %159
%161 = load i32, i32* %10
%162 = add nsw i32 %161, -1
store i32 %162, i32* %10
br label %147
163: ; preds = %147
store i32 -1, i32* %13
store i32 -1, i32* %12
store i32 12, i32* %10
br label %164
164: ; preds = %190, %163
%165 = load i32, i32* %10
%166 = icmp sge i32 %165, 0
br i1 %166, label %167, label %193
167: ; preds = %164
%168 = load i32, i32* %12
%169 = icmp eq i32 %168, -1
br i1 %169, label %170, label %178
170: ; preds = %167
%171 = load i32, i32* %10
%172 = sext i32 %171 to i64
%173 = getelementptr inbounds [13 x i32], [13 x i32]* %7, i64 0, i64 %172
%174 = load i32, i32* %173
%175 = icmp eq i32 %174, 3
br i1 %175, label %176, label %178
176: ; preds = %170
%177 = load i32, i32* %10
store i32 %177, i32* %12
br label %178
178: ; preds = %176, %170, %167
%179 = load i32, i32* %13
%180 = icmp eq i32 %179, -1
br i1 %180, label %181, label %189
181: ; preds = %178
%182 = load i32, i32* %10
%183 = sext i32 %182 to i64
%184 = getelementptr inbounds [13 x i32], [13 x i32]* %7, i64 0, i64 %183
%185 = load i32, i32* %184
%186 = icmp eq i32 %185, 2
br i1 %186, label %187, label %189
187: ; preds = %181
%188 = load i32, i32* %10
store i32 %188, i32* %13
br label %189
189: ; preds = %187, %181, %178
br label %190
190: ; preds = %189
%191 = load i32, i32* %10
%192 = add nsw i32 %191, -1
store i32 %192, i32* %10
br label %164
193: ; preds = %164
%194 = load i32, i32* %12
%195 = icmp ne i32 %194, -1
br i1 %195, label %196, label %205
196: ; preds = %193
%197 = load i32, i32* %13
%198 = icmp ne i32 %197, -1
br i1 %198, label %199, label %205
199: ; preds = %196
%200 = load i32, i32* %12
%201 = mul nsw i32 %200, 13
%202 = add nsw i32 6000, %201
%203 = load i32, i32* %13
%204 = add nsw i32 %202, %203
store i32 %204, i32* %3
br label %315
205: ; preds = %196, %193
store i32 3, i32* %10
br label %206
206: ; preds = %237, %205
%207 = load i32, i32* %10
%208 = icmp sge i32 %207, 0
br i1 %208, label %209, label %240
209: ; preds = %206
%210 = load i32, i32* %10
%211 = sext i32 %210 to i64
%212 = getelementptr inbounds [4 x i32], [4 x i32]* %8, i64 0, i64 %211
%213 = load i32, i32* %212
%214 = icmp sge i32 %213, 5
br i1 %214, label %215, label %236
215: ; preds = %209
store i32 12, i32* %11
br label %216
216: ; preds = %232, %215
%217 = load i32, i32* %11
%218 = icmp sge i32 %217, 0
br i1 %218, label %219, label %235
219: ; preds = %216
%220 = load i32, i32* %11
%221 = sext i32 %220 to i64
%222 = getelementptr inbounds [13 x [4 x i32]], [13 x [4 x i32]]* %9, i64 0, i64 %221
%223 = load i32, i32* %10
%224 = sext i32 %223 to i64
%225 = getelementptr inbounds [4 x i32], [4 x i32]* %222, i64 0, i64 %224
%226 = load i32, i32* %225
%227 = icmp sgt i32 %226, 0
br i1 %227, label %228, label %231
228: ; preds = %219
%229 = load i32, i32* %11
%230 = add nsw i32 5000, %229
store i32 %230, i32* %3
br label %315
231: ; preds = %219
br label %232
232: ; preds = %231
%233 = load i32, i32* %11
%234 = add nsw i32 %233, -1
store i32 %234, i32* %11
br label %216
235: ; preds = %216
br label %236
236: ; preds = %235, %209
br label %237
237: ; preds = %236
%238 = load i32, i32* %10
%239 = add nsw i32 %238, -1
store i32 %239, i32* %10
br label %206
240: ; preds = %206
store i32 0, i32* %12
store i32 12, i32* %10
br label %241
241: ; preds = %261, %240
%242 = load i32, i32* %10
%243 = icmp sge i32 %242, 0
br i1 %243, label %244, label %264
244: ; preds = %241
%245 = load i32, i32* %10
%246 = sext i32 %245 to i64
%247 = getelementptr inbounds [13 x i32], [13 x i32]* %7, i64 0, i64 %246
%248 = load i32, i32* %247
%249 = icmp ne i32 %248, 0
br i1 %249, label %250, label %253
250: ; preds = %244
%251 = load i32, i32* %12
%252 = add nsw i32 %251, 1
store i32 %252, i32* %12
br label %254
253: ; preds = %244
store i32 0, i32* %12
br label %254
254: ; preds = %253, %250
%255 = load i32, i32* %12
%256 = icmp eq i32 %255, 5
br i1 %256, label %257, label %260
257: ; preds = %254
%258 = load i32, i32* %10
%259 = add nsw i32 4004, %258
store i32 %259, i32* %3
br label %315
260: ; preds = %254
br label %261
261: ; preds = %260
%262 = load i32, i32* %10
%263 = add nsw i32 %262, -1
store i32 %263, i32* %10
br label %241
264: ; preds = %241
store i32 12, i32* %10
br label %265
265: ; preds = %278, %264
%266 = load i32, i32* %10
%267 = icmp sge i32 %266, 0
br i1 %267, label %268, label %281
268: ; preds = %265
%269 = load i32, i32* %10
%270 = sext i32 %269 to i64
%271 = getelementptr inbounds [13 x i32], [13 x i32]* %7, i64 0, i64 %270
%272 = load i32, i32* %271
%273 = icmp sge i32 %272, 3
br i1 %273, label %274, label %277
274: ; preds = %268
%275 = load i32, i32* %10
%276 = add nsw i32 3000, %275
store i32 %276, i32* %3
br label %315
277: ; preds = %268
br label %278
278: ; preds = %277
%279 = load i32, i32* %10
%280 = add nsw i32 %279, -1
store i32 %280, i32* %10
br label %265
281: ; preds = %265
store i32 12, i32* %10
br label %282
282: ; preds = %295, %281
%283 = load i32, i32* %10
%284 = icmp sge i32 %283, 0
br i1 %284, label %285, label %298
285: ; preds = %282
%286 = load i32, i32* %10
%287 = sext i32 %286 to i64
%288 = getelementptr inbounds [13 x i32], [13 x i32]* %7, i64 0, i64 %287
%289 = load i32, i32* %288
%290 = icmp sge i32 %289, 2
br i1 %290, label %291, label %294
291: ; preds = %285
%292 = load i32, i32* %10
%293 = add nsw i32 1000, %292
store i32 %293, i32* %3
br label %315
294: ; preds = %285
br label %295
295: ; preds = %294
%296 = load i32, i32* %10
%297 = add nsw i32 %296, -1
store i32 %297, i32* %10
br label %282
298: ; preds = %282
store i32 12, i32* %10
br label %299
299: ; preds = %311, %298
%300 = load i32, i32* %10
%301 = icmp sge i32 %300, 0
br i1 %301, label %302, label %314
302: ; preds = %299
%303 = load i32, i32* %10
%304 = sext i32 %303 to i64
%305 = getelementptr inbounds [13 x i32], [13 x i32]* %7, i64 0, i64 %304
%306 = load i32, i32* %305
%307 = icmp sge i32 %306, 1
br i1 %307, label %308, label %310
308: ; preds = %302
%309 = load i32, i32* %10
store i32 %309, i32* %3
br label %315
310: ; preds = %302
br label %311
311: ; preds = %310
%312 = load i32, i32* %10
%313 = add nsw i32 %312, -1
store i32 %313, i32* %10
br label %299
314: ; preds = %299
store i32 -1, i32* %3
br label %315
315: ; preds = %314, %308, %291, %274, %257, %228, %199, %156, %135
%316 = load i32, i32* %3
ret i32 %316
}

LLVM IR (-O2):
define i32 @evalhand(i32* nocapture %0, i32* nocapture %1) {
%3 = alloca [7 x i32]
%4 = alloca [13 x i32]
%5 = bitcast [13 x i32]* %4 to i8*
%6 = alloca [4 x i32]
%7 = bitcast [4 x i32]* %6 to i8*
%8 = alloca [13 x [4 x i32]]
%9 = bitcast [13 x [4 x i32]]* %8 to i8*
%10 = bitcast [7 x i32]* %3 to i8*
%11 = bitcast i32* %0 to <4 x i32>*
%12 = load <4 x i32>, <4 x i32>* %11
%13 = bitcast [7 x i32]* %3 to <4 x i32>*
store <4 x i32> %12, <4 x i32>* %13
%14 = getelementptr inbounds i32, i32* %0, i64 4
%15 = load i32, i32* %14
%16 = getelementptr inbounds [7 x i32], [7 x i32]* %3, i64 0, i64 4
store i32 %15, i32* %16
%17 = load i32, i32* %1
%18 = getelementptr inbounds [7 x i32], [7 x i32]* %3, i64 0, i64 5
store i32 %17, i32* %18
%19 = getelementptr inbounds i32, i32* %1, i64 1
%20 = load i32, i32* %19
%21 = getelementptr inbounds [7 x i32], [7 x i32]* %3, i64 0, i64 6
store i32 %20, i32* %21
%22 = extractelement <4 x i32> %12, i64 0
br label %23
23: ; preds = %41, %2
%24 = phi i32 [ %22, %2 ], [ %43, %41 ]
%25 = phi i64 [ 0, %2 ], [ %39, %41 ]
%26 = srem i32 %24, 13
%27 = sext i32 %26 to i64
%28 = getelementptr inbounds [13 x i32], [13 x i32]* %4, i64 0, i64 %27
%29 = load i32, i32* %28
%30 = add nsw i32 %29, 1
store i32 %30, i32* %28
%31 = sdiv i32 %24, 13
%32 = sext i32 %31 to i64
%33 = getelementptr inbounds [4 x i32], [4 x i32]* %6, i64 0, i64 %32
%34 = load i32, i32* %33
%35 = add nsw i32 %34, 1
store i32 %35, i32* %33
%36 = getelementptr inbounds [13 x [4 x i32]], [13 x [4 x i32]]* %8, i64 0, i64 %27, i64 %32
%37 = load i32, i32* %36
%38 = add nsw i32 %37, 1
store i32 %38, i32* %36
%39 = add nuw nsw i64 %25, 1
%40 = icmp eq i64 %39, 7
br i1 %40, label %44, label %41
41: ; preds = %23
%42 = getelementptr inbounds [7 x i32], [7 x i32]* %3, i64 0, i64 %39
%43 = load i32, i32* %42
br label %23
44: ; preds = %23, %122
%45 = phi i64 [ %123, %122 ], [ 0, %23 ]
%46 = getelementptr inbounds [13 x [4 x i32]], [13 x [4 x i32]]* %8, i64 0, i64 9, i64 %45
%47 = load i32, i32* %46
%48 = getelementptr inbounds [13 x [4 x i32]], [13 x [4 x i32]]* %8, i64 0, i64 10, i64 %45
%49 = load i32, i32* %48
%50 = icmp slt i32 %49, 1
%51 = getelementptr inbounds [13 x [4 x i32]], [13 x [4 x i32]]* %8, i64 0, i64 11, i64 %45
%52 = load i32, i32* %51
%53 = icmp slt i32 %52, 1
%54 = getelementptr inbounds [13 x [4 x i32]], [13 x [4 x i32]]* %8, i64 0, i64 12, i64 %45
%55 = load i32, i32* %54
%56 = icmp slt i32 %55, 1
%57 = getelementptr inbounds [13 x [4 x i32]], [13 x [4 x i32]]* %8, i64 0, i64 8, i64 %45
%58 = load i32, i32* %57
%59 = icmp sgt i32 %58, 0
%60 = select i1 %56, i32 4, i32 5
%61 = select i1 %53, i32 3, i32 %60
%62 = select i1 %50, i32 2, i32 %61
%63 = icmp slt i32 %47, 1
%64 = select i1 %63, i32 1, i32 %62
%65 = select i1 %59, i32 %64, i32 0
%66 = icmp eq i32 %65, 5
br i1 %66, label %419, label %67
67: ; preds = %44
%68 = getelementptr inbounds [13 x [4 x i32]], [13 x [4 x i32]]* %8, i64 0, i64 7, i64 %45
%69 = load i32, i32* %68
%70 = icmp sgt i32 %69, 0
%71 = add nuw nsw i32 %65, 1
%72 = select i1 %70, i32 %71, i32 0
%73 = icmp eq i32 %72, 5
br i1 %73, label %419, label %74
74: ; preds = %67
%75 = getelementptr inbounds [13 x [4 x i32]], [13 x [4 x i32]]* %8, i64 0, i64 6, i64 %45
%76 = load i32, i32* %75
%77 = icmp sgt i32 %76, 0
%78 = add nuw nsw i32 %72, 1
%79 = select i1 %77, i32 %78, i32 0
%80 = icmp eq i32 %79, 5
br i1 %80, label %419, label %81
81: ; preds = %74
%82 = getelementptr inbounds [13 x [4 x i32]], [13 x [4 x i32]]* %8, i64 0, i64 5, i64 %45
%83 = load i32, i32* %82
%84 = icmp sgt i32 %83, 0
%85 = add nuw nsw i32 %79, 1
%86 = select i1 %84, i32 %85, i32 0
%87 = icmp eq i32 %86, 5
br i1 %87, label %419, label %88
88: ; preds = %81
%89 = getelementptr inbounds [13 x [4 x i32]], [13 x [4 x i32]]* %8, i64 0, i64 4, i64 %45
%90 = load i32, i32* %89
%91 = icmp sgt i32 %90, 0
%92 = add nuw nsw i32 %86, 1
%93 = select i1 %91, i32 %92, i32 0
%94 = icmp eq i32 %93, 5
br i1 %94, label %419, label %95
95: ; preds = %88
%96 = getelementptr inbounds [13 x [4 x i32]], [13 x [4 x i32]]* %8, i64 0, i64 3, i64 %45
%97 = load i32, i32* %96
%98 = icmp sgt i32 %97, 0
%99 = add nuw nsw i32 %93, 1
%100 = select i1 %98, i32 %99, i32 0
%101 = icmp eq i32 %100, 5
br i1 %101, label %419, label %102
102: ; preds = %95
%103 = getelementptr inbounds [13 x [4 x i32]], [13 x [4 x i32]]* %8, i64 0, i64 2, i64 %45
%104 = load i32, i32* %103
%105 = icmp sgt i32 %104, 0
%106 = add nuw nsw i32 %100, 1
%107 = select i1 %105, i32 %106, i32 0
%108 = icmp eq i32 %107, 5
br i1 %108, label %419, label %109
109: ; preds = %102
%110 = getelementptr inbounds [13 x [4 x i32]], [13 x [4 x i32]]* %8, i64 0, i64 1, i64 %45
%111 = load i32, i32* %110
%112 = icmp sgt i32 %111, 0
%113 = add nuw nsw i32 %107, 1
%114 = select i1 %112, i32 %113, i32 0
%115 = icmp eq i32 %114, 5
br i1 %115, label %419, label %116
116: ; preds = %109
%117 = getelementptr inbounds [13 x [4 x i32]], [13 x [4 x i32]]* %8, i64 0, i64 0, i64 %45
%118 = load i32, i32* %117
%119 = icmp sgt i32 %118, 0
%120 = icmp eq i32 %114, 4
%121 = select i1 %119, i1 %120, i1 false
br i1 %121, label %419, label %122
122: ; preds = %116
%123 = add nuw nsw i64 %45, 1
%124 = icmp eq i64 %123, 4
br i1 %124, label %125, label %44
125: ; preds = %122
%126 = getelementptr inbounds [13 x i32], [13 x i32]* %4, i64 0, i64 12
%127 = load i32, i32* %126
%128 = icmp sgt i32 %127, 3
br i1 %128, label %419, label %129
129: ; preds = %125
%130 = getelementptr inbounds [13 x i32], [13 x i32]* %4, i64 0, i64 11
%131 = load i32, i32* %130
%132 = icmp sgt i32 %131, 3
br i1 %132, label %419, label %133
133: ; preds = %129
%134 = getelementptr inbounds [13 x i32], [13 x i32]* %4, i64 0, i64 10
%135 = load i32, i32* %134
%136 = icmp sgt i32 %135, 3
br i1 %136, label %419, label %137
137: ; preds = %133
%138 = getelementptr inbounds [13 x i32], [13 x i32]* %4, i64 0, i64 9
%139 = load i32, i32* %138
%140 = icmp sgt i32 %139, 3
br i1 %140, label %419, label %141
141: ; preds = %137
%142 = getelementptr inbounds [13 x i32], [13 x i32]* %4, i64 0, i64 8
%143 = load i32, i32* %142
%144 = icmp sgt i32 %143, 3
br i1 %144, label %419, label %145
145: ; preds = %141
%146 = getelementptr inbounds [13 x i32], [13 x i32]* %4, i64 0, i64 7
%147 = load i32, i32* %146
%148 = icmp sgt i32 %147, 3
br i1 %148, label %419, label %149
149: ; preds = %145
%150 = getelementptr inbounds [13 x i32], [13 x i32]* %4, i64 0, i64 6
%151 = load i32, i32* %150
%152 = icmp sgt i32 %151, 3
br i1 %152, label %419, label %153
153: ; preds = %149
%154 = getelementptr inbounds [13 x i32], [13 x i32]* %4, i64 0, i64 5
%155 = load i32, i32* %154
%156 = icmp sgt i32 %155, 3
br i1 %156, label %419, label %157
157: ; preds = %153
%158 = getelementptr inbounds [13 x i32], [13 x i32]* %4, i64 0, i64 4
%159 = load i32, i32* %158
%160 = icmp sgt i32 %159, 3
br i1 %160, label %419, label %161
161: ; preds = %157
%162 = getelementptr inbounds [13 x i32], [13 x i32]* %4, i64 0, i64 3
%163 = load i32, i32* %162
%164 = icmp sgt i32 %163, 3
br i1 %164, label %419, label %165
165: ; preds = %161
%166 = getelementptr inbounds [13 x i32], [13 x i32]* %4, i64 0, i64 2
%167 = load i32, i32* %166
%168 = icmp sgt i32 %167, 3
br i1 %168, label %419, label %169
169: ; preds = %165
%170 = getelementptr inbounds [13 x i32], [13 x i32]* %4, i64 0, i64 1
%171 = load i32, i32* %170
%172 = icmp sgt i32 %171, 3
br i1 %172, label %419, label %173
173: ; preds = %169
%174 = getelementptr inbounds [13 x i32], [13 x i32]* %4, i64 0, i64 0
%175 = load i32, i32* %174
%176 = icmp sgt i32 %175, 3
br i1 %176, label %419, label %177
177: ; preds = %173, %218
%178 = phi i64 [ %220, %218 ], [ 12, %173 ]
%179 = phi i32 [ %219, %218 ], [ -1, %173 ]
%180 = phi i32 [ %210, %218 ], [ -1, %173 ]
%181 = icmp eq i32 %180, -1
br i1 %181, label %182, label %188
182: ; preds = %177
%183 = getelementptr inbounds [13 x i32], [13 x i32]* %4, i64 0, i64 %178
%184 = load i32, i32* %183
%185 = icmp eq i32 %184, 3
%186 = trunc i64 %178 to i32
%187 = select i1 %185, i32 %186, i32 -1
br label %188
188: ; preds = %182, %177
%189 = phi i32 [ %180, %177 ], [ %187, %182 ]
%190 = icmp eq i32 %179, -1
br i1 %190, label %191, label %197
191: ; preds = %188
%192 = getelementptr inbounds [13 x i32], [13 x i32]* %4, i64 0, i64 %178
%193 = load i32, i32* %192
%194 = icmp eq i32 %193, 2
%195 = trunc i64 %178 to i32
%196 = select i1 %194, i32 %195, i32 -1
br label %197
197: ; preds = %191, %188
%198 = phi i32 [ %179, %188 ], [ %196, %191 ]
%199 = add nsw i64 %178, -1
%200 = icmp eq i64 %178, 0
br i1 %200, label %221, label %201
201: ; preds = %197
%202 = icmp eq i32 %189, -1
br i1 %202, label %203, label %209
203: ; preds = %201
%204 = getelementptr inbounds [13 x i32], [13 x i32]* %4, i64 0, i64 %199
%205 = load i32, i32* %204
%206 = icmp eq i32 %205, 3
%207 = trunc i64 %199 to i32
%208 = select i1 %206, i32 %207, i32 -1
br label %209
209: ; preds = %203, %201
%210 = phi i32 [ %189, %201 ], [ %208, %203 ]
%211 = icmp eq i32 %198, -1
br i1 %211, label %212, label %218
212: ; preds = %209
%213 = getelementptr inbounds [13 x i32], [13 x i32]* %4, i64 0, i64 %199
%214 = load i32, i32* %213
%215 = icmp eq i32 %214, 2
%216 = trunc i64 %199 to i32
%217 = select i1 %215, i32 %216, i32 -1
br label %218
218: ; preds = %212, %209
%219 = phi i32 [ %198, %209 ], [ %217, %212 ]
%220 = add nsw i64 %178, -2
br label %177
221: ; preds = %197
%222 = icmp ne i32 %189, -1
%223 = icmp ne i32 %198, -1
%224 = select i1 %222, i1 %223, i1 false
br i1 %224, label %225, label %229
225: ; preds = %221
%226 = mul nsw i32 %189, 13
%227 = add nsw i32 %226, 6000
%228 = add nsw i32 %227, %198
br label %419
229: ; preds = %221, %286
%230 = phi i64 [ %287, %286 ], [ 3, %221 ]
%231 = getelementptr inbounds [4 x i32], [4 x i32]* %6, i64 0, i64 %230
%232 = load i32, i32* %231
%233 = icmp sgt i32 %232, 4
br i1 %233, label %234, label %286
234: ; preds = %229
%235 = getelementptr inbounds [13 x [4 x i32]], [13 x [4 x i32]]* %8, i64 0, i64 12, i64 %230
%236 = load i32, i32* %235
%237 = icmp sgt i32 %236, 0
br i1 %237, label %419, label %238
238: ; preds = %234
%239 = getelementptr inbounds [13 x [4 x i32]], [13 x [4 x i32]]* %8, i64 0, i64 11, i64 %230
%240 = load i32, i32* %239
%241 = icmp sgt i32 %240, 0
br i1 %241, label %419, label %242
242: ; preds = %238
%243 = getelementptr inbounds [13 x [4 x i32]], [13 x [4 x i32]]* %8, i64 0, i64 10, i64 %230
%244 = load i32, i32* %243
%245 = icmp sgt i32 %244, 0
br i1 %245, label %419, label %246
246: ; preds = %242
%247 = getelementptr inbounds [13 x [4 x i32]], [13 x [4 x i32]]* %8, i64 0, i64 9, i64 %230
%248 = load i32, i32* %247
%249 = icmp sgt i32 %248, 0
br i1 %249, label %419, label %250
250: ; preds = %246
%251 = getelementptr inbounds [13 x [4 x i32]], [13 x [4 x i32]]* %8, i64 0, i64 8, i64 %230
%252 = load i32, i32* %251
%253 = icmp sgt i32 %252, 0
br i1 %253, label %419, label %254
254: ; preds = %250
%255 = getelementptr inbounds [13 x [4 x i32]], [13 x [4 x i32]]* %8, i64 0, i64 7, i64 %230
%256 = load i32, i32* %255
%257 = icmp sgt i32 %256, 0
br i1 %257, label %419, label %258
258: ; preds = %254
%259 = getelementptr inbounds [13 x [4 x i32]], [13 x [4 x i32]]* %8, i64 0, i64 6, i64 %230
%260 = load i32, i32* %259
%261 = icmp sgt i32 %260, 0
br i1 %261, label %419, label %262
262: ; preds = %258
%263 = getelementptr inbounds [13 x [4 x i32]], [13 x [4 x i32]]* %8, i64 0, i64 5, i64 %230
%264 = load i32, i32* %263
%265 = icmp sgt i32 %264, 0
br i1 %265, label %419, label %266
266: ; preds = %262
%267 = getelementptr inbounds [13 x [4 x i32]], [13 x [4 x i32]]* %8, i64 0, i64 4, i64 %230
%268 = load i32, i32* %267
%269 = icmp sgt i32 %268, 0
br i1 %269, label %419, label %270
270: ; preds = %266
%271 = getelementptr inbounds [13 x [4 x i32]], [13 x [4 x i32]]* %8, i64 0, i64 3, i64 %230
%272 = load i32, i32* %271
%273 = icmp sgt i32 %272, 0
br i1 %273, label %419, label %274
274: ; preds = %270
%275 = getelementptr inbounds [13 x [4 x i32]], [13 x [4 x i32]]* %8, i64 0, i64 2, i64 %230
%276 = load i32, i32* %275
%277 = icmp sgt i32 %276, 0
br i1 %277, label %419, label %278
278: ; preds = %274
%279 = getelementptr inbounds [13 x [4 x i32]], [13 x [4 x i32]]* %8, i64 0, i64 1, i64 %230
%280 = load i32, i32* %279
%281 = icmp sgt i32 %280, 0
br i1 %281, label %419, label %282
282: ; preds = %278
%283 = getelementptr inbounds [13 x [4 x i32]], [13 x [4 x i32]]* %8, i64 0, i64 0, i64 %230
%284 = load i32, i32* %283
%285 = icmp sgt i32 %284, 0
br i1 %285, label %419, label %286
286: ; preds = %282, %229
%287 = add nsw i64 %230, -1
%288 = icmp eq i64 %230, 0
br i1 %288, label %289, label %229
289: ; preds = %286
%290 = icmp eq i32 %139, 0
%291 = icmp eq i32 %135, 0
%292 = icmp eq i32 %131, 0
%293 = icmp eq i32 %127, 0
%294 = icmp eq i32 %143, 0
%295 = select i1 %293, i32 4, i32 5
%296 = select i1 %292, i32 3, i32 %295
%297 = select i1 %291, i32 2, i32 %296
%298 = select i1 %290, i32 1, i32 %297
%299 = select i1 %294, i32 0, i32 %298
%300 = icmp eq i32 %299, 5
br i1 %300, label %419, label %301
301: ; preds = %289
%302 = icmp eq i32 %147, 0
%303 = add nuw nsw i32 %299, 1
%304 = select i1 %302, i32 0, i32 %303
%305 = icmp eq i32 %304, 5
br i1 %305, label %419, label %306
306: ; preds = %301
%307 = icmp eq i32 %151, 0
%308 = add nuw nsw i32 %304, 1
%309 = select i1 %307, i32 0, i32 %308
%310 = icmp eq i32 %309, 5
br i1 %310, label %419, label %311
311: ; preds = %306
%312 = icmp eq i32 %155, 0
%313 = add nuw nsw i32 %309, 1
%314 = select i1 %312, i32 0, i32 %313
%315 = icmp eq i32 %314, 5
br i1 %315, label %419, label %316
316: ; preds = %311
%317 = icmp eq i32 %159, 0
%318 = add nuw nsw i32 %314, 1
%319 = select i1 %317, i32 0, i32 %318
%320 = icmp eq i32 %319, 5
br i1 %320, label %419, label %321
321: ; preds = %316
%322 = icmp eq i32 %163, 0
%323 = add nuw nsw i32 %319, 1
%324 = select i1 %322, i32 0, i32 %323
%325 = icmp eq i32 %324, 5
br i1 %325, label %419, label %326
326: ; preds = %321
%327 = icmp eq i32 %167, 0
%328 = add nuw nsw i32 %324, 1
%329 = select i1 %327, i32 0, i32 %328
%330 = icmp eq i32 %329, 5
br i1 %330, label %419, label %331
331: ; preds = %326
%332 = icmp eq i32 %171, 0
%333 = add nuw nsw i32 %329, 1
%334 = select i1 %332, i32 0, i32 %333
%335 = icmp eq i32 %334, 5
br i1 %335, label %419, label %336
336: ; preds = %331
%337 = icmp ne i32 %175, 0
%338 = icmp eq i32 %334, 4
%339 = select i1 %337, i1 %338, i1 false
br i1 %339, label %419, label %340
340: ; preds = %336
%341 = icmp sgt i32 %127, 2
br i1 %341, label %419, label %342
342: ; preds = %340
%343 = icmp sgt i32 %131, 2
br i1 %343, label %419, label %344
344: ; preds = %342
%345 = icmp sgt i32 %135, 2
br i1 %345, label %419, label %346
346: ; preds = %344
%347 = icmp sgt i32 %139, 2
br i1 %347, label %419, label %348
348: ; preds = %346
%349 = icmp sgt i32 %143, 2
br i1 %349, label %419, label %350
350: ; preds = %348
%351 = icmp sgt i32 %147, 2
br i1 %351, label %419, label %352
352: ; preds = %350
%353 = icmp sgt i32 %151, 2
br i1 %353, label %419, label %354
354: ; preds = %352
%355 = icmp sgt i32 %155, 2
br i1 %355, label %419, label %356
356: ; preds = %354
%357 = icmp sgt i32 %159, 2
br i1 %357, label %419, label %358
358: ; preds = %356
%359 = icmp sgt i32 %163, 2
br i1 %359, label %419, label %360
360: ; preds = %358
%361 = icmp sgt i32 %167, 2
br i1 %361, label %419, label %362
362: ; preds = %360
%363 = icmp sgt i32 %171, 2
br i1 %363, label %419, label %364
364: ; preds = %362
%365 = icmp sgt i32 %175, 2
br i1 %365, label %419, label %366
366: ; preds = %364
%367 = icmp sgt i32 %127, 1
br i1 %367, label %419, label %368
368: ; preds = %366
%369 = icmp sgt i32 %131, 1
br i1 %369, label %419, label %370
370: ; preds = %368
%371 = icmp sgt i32 %135, 1
br i1 %371, label %419, label %372
372: ; preds = %370
%373 = icmp sgt i32 %139, 1
br i1 %373, label %419, label %374
374: ; preds = %372
%375 = icmp sgt i32 %143, 1
br i1 %375, label %419, label %376
376: ; preds = %374
%377 = icmp sgt i32 %147, 1
br i1 %377, label %419, label %378
378: ; preds = %376
%379 = icmp sgt i32 %151, 1
br i1 %379, label %419, label %380
380: ; preds = %378
%381 = icmp sgt i32 %155, 1
br i1 %381, label %419, label %382
382: ; preds = %380
%383 = icmp sgt i32 %159, 1
br i1 %383, label %419, label %384
384: ; preds = %382
%385 = icmp sgt i32 %163, 1
br i1 %385, label %419, label %386
386: ; preds = %384
%387 = icmp sgt i32 %167, 1
br i1 %387, label %419, label %388
388: ; preds = %386
%389 = icmp sgt i32 %171, 1
br i1 %389, label %419, label %390
390: ; preds = %388
%391 = icmp sgt i32 %175, 1
br i1 %391, label %419, label %392
392: ; preds = %390
%393 = icmp sgt i32 %127, 0
br i1 %393, label %419, label %394
394: ; preds = %392
%395 = icmp sgt i32 %131, 0
br i1 %395, label %419, label %396
396: ; preds = %394
%397 = icmp sgt i32 %135, 0
br i1 %397, label %419, label %398
398: ; preds = %396
%399 = icmp sgt i32 %139, 0
br i1 %399, label %419, label %400
400: ; preds = %398
%401 = icmp sgt i32 %143, 0
br i1 %401, label %419, label %402
402: ; preds = %400
%403 = icmp sgt i32 %147, 0
br i1 %403, label %419, label %404
404: ; preds = %402
%405 = icmp sgt i32 %151, 0
br i1 %405, label %419, label %406
406: ; preds = %404
%407 = icmp sgt i32 %155, 0
br i1 %407, label %419, label %408
408: ; preds = %406
%409 = icmp sgt i32 %159, 0
br i1 %409, label %419, label %410
410: ; preds = %408
%411 = icmp sgt i32 %163, 0
br i1 %411, label %419, label %412
412: ; preds = %410
%413 = icmp sgt i32 %167, 0
br i1 %413, label %419, label %414
414: ; preds = %412
%415 = icmp sgt i32 %171, 0
br i1 %415, label %419, label %416
416: ; preds = %414
%417 = icmp slt i32 %175, 1
%418 = sext i1 %417 to i32
br label %419
419: ; preds = %44, %67, %74, %81, %88, %95, %102, %109, %116, %234, %238, %242, %246, %250, %254, %258, %262, %266, %270, %274, %278, %282, %416, %392, %394, %396, %398, %400, %402, %404, %406, %408, %410, %412, %414, %366, %368, %370, %372, %374, %376, %378, %380, %382, %384, %386, %388, %390, %340, %342, %344, %346, %348, %350, %352, %354, %356, %358, %360, %362, %364, %289, %301, %306, %311, %316, %321, %326, %331, %336, %125, %129, %133, %137, %141, %145, %149, %153, %157, %161, %165, %169, %173, %225
%420 = phi i32 [ %228, %225 ], [ 7012, %125 ], [ 7011, %129 ], [ 7010, %133 ], [ 7009, %137 ], [ 7008, %141 ], [ 7007, %145 ], [ 7006, %149 ], [ 7005, %153 ], [ 7004, %157 ], [ 7003, %161 ], [ 7002, %165 ], [ 7001, %169 ], [ 7000, %173 ], [ 4012, %289 ], [ 4011, %301 ], [ 4010, %306 ], [ 4009, %311 ], [ 4008, %316 ], [ 4007, %321 ], [ 4006, %326 ], [ 4005, %331 ], [ 4004, %336 ], [ 3012, %340 ], [ 3011, %342 ], [ 3010, %344 ], [ 3009, %346 ], [ 3008, %348 ], [ 3007, %350 ], [ 3006, %352 ], [ 3005, %354 ], [ 3004, %356 ], [ 3003, %358 ], [ 3002, %360 ], [ 3001, %362 ], [ 3000, %364 ], [ 1012, %366 ], [ 1011, %368 ], [ 1010, %370 ], [ 1009, %372 ], [ 1008, %374 ], [ 1007, %376 ], [ 1006, %378 ], [ 1005, %380 ], [ 1004, %382 ], [ 1003, %384 ], [ 1002, %386 ], [ 1001, %388 ], [ 1000, %390 ], [ 12, %392 ], [ 11, %394 ], [ 10, %396 ], [ 9, %398 ], [ 8, %400 ], [ 7, %402 ], [ 6, %404 ], [ 5, %406 ], [ 4, %408 ], [ 3, %410 ], [ 2, %412 ], [ 1, %414 ], [ %418, %416 ], [ 5000, %282 ], [ 5001, %278 ], [ 5002, %274 ], [ 5003, %270 ], [ 5004, %266 ], [ 5005, %262 ], [ 5006, %258 ], [ 5007, %254 ], [ 5008, %250 ], [ 5009, %246 ], [ 5010, %242 ], [ 5011, %238 ], [ 5012, %234 ], [ 8004, %116 ], [ 8005, %109 ], [ 8006, %102 ], [ 8007, %95 ], [ 8008, %88 ], [ 8009, %81 ], [ 8010, %74 ], [ 8011, %67 ], [ 8012, %44 ]
ret i32 %420
}