void test(int M, int N, int O, int P, int Q, int R, int S, int T, int U) {
  int c2, c4, c6;
  int i, j, k;
  if ((M >= 2) && (N >= 4)) {
    for (c2 = 1; c2 <= O - 1; c2++) {
      for (c6 = 1; c6 <= M; c6++) {
        {
          hash(1);
          hash(c2);
          hash(1);
          hash(c6);
        };
      }
      for (c6 = 1; c6 <= M - 1; c6++) {
        {
          hash(6);
          hash(c2);
          hash(1);
          hash(c6);
        };
        {
          hash(7);
          hash(c2);
          hash(1);
          hash(c6);
        };
      }
      for (c6 = 1; c6 <= M; c6++) {
        {
          hash(3);
          hash(c2);
          hash(1);
          hash(c6);
        };
      }
      for (c6 = 1; c6 <= M - 1; c6++) {
        {
          hash(1);
          hash(c2);
          hash(2);
          hash(c6);
        };
      }
      {
        hash(1);
        hash(c2);
        hash(2);
        hash(M);
      };
      for (c6 = 1; c6 <= M - 1; c6++) {
        {
          hash(6);
          hash(c2);
          hash(2);
          hash(c6);
        };
        {
          hash(7);
          hash(c2);
          hash(2);
          hash(c6);
        };
      }
      for (c6 = 1; c6 <= M - 1; c6++) {
        {
          hash(11);
          hash(c2);
          hash(1);
          hash(c6);
        };
      }
      for (c4 = 3; c4 <= 2 * N - 5; c4++) {
        for (c6 = 1; c6 <= M - 1; c6++) {
          if ((c4 + 1) % 2 == 0) {
            j = (c4 - 1) / 2;
            {
              hash(10);
              hash(c2);
              hash((c4 - 1) / 2);
              hash(c6);
            };
          }
        }
        for (c6 = 1; c6 <= M; c6++) {
          if ((c4 + 1) % 2 == 0) {
            j = (c4 + 1) / 2;
            {
              hash(3);
              hash(c2);
              hash((c4 + 1) / 2);
              hash(c6);
            };
          }
        }
        for (c6 = 1; c6 <= M - 1; c6++) {
          if (c4 % 2 == 0) {
            j = (c4 + 2) / 2;
            {
              hash(6);
              hash(c2);
              hash((c4 + 2) / 2);
              hash(c6);
            };
            {
              hash(7);
              hash(c2);
              hash((c4 + 2) / 2);
              hash(c6);
            };
          }
          if ((c4 + 1) % 2 == 0) {
            j = (c4 + 3) / 2;
            {
              hash(1);
              hash(c2);
              hash((c4 + 3) / 2);
              hash(c6);
            };
          }
        }
        if ((c4 + 1) % 2 == 0) {
          j = (c4 + 3) / 2;
          {
            hash(1);
            hash(c2);
            hash((c4 + 3) / 2);
            hash(M);
          };
        }
        for (c6 = 1; c6 <= M - 1; c6++) {
          if (c4 % 2 == 0) {
            {
              hash(11);
              hash(c2);
              hash(c4 / 2);
              hash(c6);
            };
          }
        }
      }
      c4 = 2 * N - 4;
      for (c6 = 1; c6 <= M - 1; c6++) {
        j = N - 1;
        {
          hash(6);
          hash(c2);
          hash(N - 1);
          hash(c6);
        };
        {
          hash(7);
          hash(c2);
          hash(N - 1);
          hash(c6);
        };
      }
      for (c6 = 1; c6 <= M - 1; c6++) {
        j = N - 2;
        {
          hash(11);
          hash(c2);
          hash(N - 2);
          hash(c6);
        };
      }
      c4 = 2 * N - 3;
      for (c6 = 1; c6 <= M - 1; c6++) {
        j = N - 2;
        {
          hash(10);
          hash(c2);
          hash(N - 2);
          hash(c6);
        };
      }
      for (c6 = 1; c6 <= M; c6++) {
        j = N - 1;
        {
          hash(3);
          hash(c2);
          hash(N - 1);
          hash(c6);
        };
      }
      c4 = 2 * N - 2;
      for (c6 = 1; c6 <= M - 1; c6++) {
        j = N - 1;
        {
          hash(11);
          hash(c2);
          hash(N - 1);
          hash(c6);
        };
      }
      c4 = 2 * N - 1;
      for (c6 = 1; c6 <= M - 1; c6++) {
        j = N - 1;
        {
          hash(10);
          hash(c2);
          hash(N - 1);
          hash(c6);
        };
      }
    }
  }
  if ((M >= 2) && (N == 3)) {
    for (c2 = 1; c2 <= O - 1; c2++) {
      for (c6 = 1; c6 <= M; c6++) {
        {
          hash(1);
          hash(c2);
          hash(1);
          hash(c6);
        };
      }
      for (c6 = 1; c6 <= M - 1; c6++) {
        {
          hash(6);
          hash(c2);
          hash(1);
          hash(c6);
        };
        {
          hash(7);
          hash(c2);
          hash(1);
          hash(c6);
        };
      }
      for (c6 = 1; c6 <= M; c6++) {
        {
          hash(3);
          hash(c2);
          hash(1);
          hash(c6);
        };
      }
      for (c6 = 1; c6 <= M - 1; c6++) {
        {
          hash(1);
          hash(c2);
          hash(2);
          hash(c6);
        };
      }
      {
        hash(1);
        hash(c2);
        hash(2);
        hash(M);
      };
      for (c6 = 1; c6 <= M - 1; c6++) {
        {
          hash(6);
          hash(c2);
          hash(2);
          hash(c6);
        };
        {
          hash(7);
          hash(c2);
          hash(2);
          hash(c6);
        };
      }
      for (c6 = 1; c6 <= M - 1; c6++) {
        {
          hash(11);
          hash(c2);
          hash(1);
          hash(c6);
        };
      }
      for (c6 = 1; c6 <= M - 1; c6++) {
        {
          hash(10);
          hash(c2);
          hash(1);
          hash(c6);
        };
      }
      for (c6 = 1; c6 <= M; c6++) {
        {
          hash(3);
          hash(c2);
          hash(2);
          hash(c6);
        };
      }
      for (c6 = 1; c6 <= M - 1; c6++) {
        {
          hash(11);
          hash(c2);
          hash(2);
          hash(c6);
        };
      }
      for (c6 = 1; c6 <= M - 1; c6++) {
        {
          hash(10);
          hash(c2);
          hash(2);
          hash(c6);
        };
      }
    }
  }
  if ((M >= 2) && (N == 2)) {
    for (c2 = 1; c2 <= O - 1; c2++) {
      for (c6 = 1; c6 <= M; c6++) {
        {
          hash(1);
          hash(c2);
          hash(1);
          hash(c6);
        };
      }
      for (c6 = 1; c6 <= M - 1; c6++) {
        {
          hash(6);
          hash(c2);
          hash(1);
          hash(c6);
        };
        {
          hash(7);
          hash(c2);
          hash(1);
          hash(c6);
        };
      }
      for (c6 = 1; c6 <= M; c6++) {
        {
          hash(3);
          hash(c2);
          hash(1);
          hash(c6);
        };
      }
      for (c6 = 1; c6 <= M - 1; c6++) {
        {
          hash(11);
          hash(c2);
          hash(1);
          hash(c6);
        };
      }
      for (c6 = 1; c6 <= M - 1; c6++) {
        {
          hash(10);
          hash(c2);
          hash(1);
          hash(c6);
        };
      }
    }
  }
  if ((M == 1) && (N >= 3)) {
    for (c2 = 1; c2 <= O - 1; c2++) {
      for (c4 = -1; c4 <= 0; c4++) {
        if ((c4 + 1) % 2 == 0) {
          j = (c4 + 3) / 2;
          {
            hash(1);
            hash(c2);
            hash((c4 + 3) / 2);
            hash(1);
          };
        }
      }
      for (c4 = 1; c4 <= 2 * N - 5; c4++) {
        if ((c4 + 1) % 2 == 0) {
          j = (c4 + 1) / 2;
          {
            hash(3);
            hash(c2);
            hash((c4 + 1) / 2);
            hash(1);
          };
        }
        if ((c4 + 1) % 2 == 0) {
          j = (c4 + 3) / 2;
          {
            hash(1);
            hash(c2);
            hash((c4 + 3) / 2);
            hash(1);
          };
        }
      }
      for (c4 = 2 * N - 4; c4 <= 2 * N - 3; c4++) {
        if ((c4 + 1) % 2 == 0) {
          j = (c4 + 1) / 2;
          {
            hash(3);
            hash(c2);
            hash((c4 + 1) / 2);
            hash(1);
          };
        }
      }
    }
  }
  if ((M == 1) && (N == 2)) {
    for (c2 = 1; c2 <= O - 1; c2++) {
      {
        hash(1);
        hash(c2);
        hash(1);
        hash(1);
      };
      {
        hash(3);
        hash(c2);
        hash(1);
        hash(1);
      };
    }
  }
  if ((M >= 2) && (N >= 3)) {
    for (c2 = 1; c2 <= O - 1; c2++) {
      for (c6 = 1; c6 <= M; c6++) {
        {
          hash(2);
          hash(c2);
          hash(1);
          hash(c6);
        };
      }
      for (c6 = 1; c6 <= M - 1; c6++) {
        {
          hash(8);
          hash(c2);
          hash(1);
          hash(c6);
        };
      }
      for (c4 = 3; c4 <= 2 * N - 2; c4++) {
        for (c6 = 1; c6 <= M; c6++) {
          if (c4 % 2 == 0) {
            {
              hash(2);
              hash(c2);
              hash(c4 / 2);
              hash(c6);
            };
          }
        }
        for (c6 = 1; c6 <= M - 1; c6++) {
          if (c4 % 2 == 0) {
            {
              hash(8);
              hash(c2);
              hash(c4 / 2);
              hash(c6);
            };
          }
        }
        for (c6 = 1; c6 <= M - 1; c6++) {
          if ((c4 + 1) % 2 == 0) {
            j = (c4 - 1) / 2;
            {
              hash(9);
              hash(c2);
              hash((c4 - 1) / 2);
              hash(c6);
            };
          }
        }
      }
      c4 = 2 * N - 1;
      for (c6 = 1; c6 <= M - 1; c6++) {
        j = N - 1;
        {
          hash(9);
          hash(c2);
          hash(N - 1);
          hash(c6);
        };
      }
    }
  }
  if ((M >= 2) && (N == 2)) {
    for (c2 = 1; c2 <= O - 1; c2++) {
      for (c6 = 1; c6 <= M; c6++) {
        {
          hash(2);
          hash(c2);
          hash(1);
          hash(c6);
        };
      }
      for (c6 = 1; c6 <= M - 1; c6++) {
        {
          hash(8);
          hash(c2);
          hash(1);
          hash(c6);
        };
      }
      for (c6 = 1; c6 <= M - 1; c6++) {
        {
          hash(9);
          hash(c2);
          hash(1);
          hash(c6);
        };
      }
    }
  }
  if ((M == 1) && (N >= 2)) {
    for (c2 = 1; c2 <= O - 1; c2++) {
      for (c4 = 2; c4 <= 2 * N - 2; c4++) {
        if (c4 % 2 == 0) {
          {
            hash(2);
            hash(c2);
            hash(c4 / 2);
            hash(1);
          };
        }
      }
    }
  }
  if ((M >= 2) && (N >= 2)) {
    for (c2 = 1; c2 <= O - 1; c2++) {
      for (c4 = 1; c4 <= N - 1; c4++) {
        for (c6 = 1; c6 <= M - 1; c6++) {
          {
            hash(4);
            hash(c2);
            hash(c4);
            hash(c6);
          };
        }
      }
    }
  }
  if ((M >= 2) && (N >= 2)) {
    for (c2 = 1; c2 <= O - 1; c2++) {
      for (c4 = 1; c4 <= N - 1; c4++) {
        for (c6 = 1; c6 <= M - 1; c6++) {
          {
            hash(5);
            hash(c2);
            hash(c4);
            hash(c6);
          };
        }
      }
    }
  }
  if ((M >= P + 1) && (N >= Q + 1)) {
    for (c2 = R; c2 <= O - 1; c2++) {
      for (c4 = Q; c4 <= N - 1; c4++) {
        for (c6 = P; c6 <= M - 1; c6++) {
          {
            hash(12);
            hash(c2);
            hash(c4);
            hash(c6);
          };
        }
      }
    }
  }
  if ((M >= 2) && (N >= Q + 1)) {
    for (c2 = R; c2 <= O - 1; c2++) {
      for (c4 = Q; c4 <= N - 1; c4++) {
        for (c6 = 1; c6 <= M - 1; c6++) {
          {
            hash(13);
            hash(c2);
            hash(c4);
            hash(c6);
          };
        }
      }
    }
  }
  if ((M >= P + 1) && (N >= 2)) {
    for (c2 = R; c2 <= O - 1; c2++) {
      for (c4 = 1; c4 <= N - 1; c4++) {
        for (c6 = P; c6 <= M - 1; c6++) {
          {
            hash(14);
            hash(c2);
            hash(c4);
            hash(c6);
          };
        }
      }
    }
  }
  if ((M >= 2) && (N >= 2)) {
    for (c2 = R; c2 <= O - 1; c2++) {
      for (c4 = 1; c4 <= N - 1; c4++) {
        for (c6 = 1; c6 <= M - 1; c6++) {
          {
            hash(15);
            hash(c2);
            hash(c4);
            hash(c6);
          };
        }
      }
    }
  }
}


x86 assembly (clang, -O0):
<test>:
push   %rbp
mov    %rsp,%rbp
sub    $0x30,%rsp
mov    0x20(%rbp),%eax
mov    0x18(%rbp),%eax
mov    0x10(%rbp),%eax
mov    %edi,-0x4(%rbp)
mov    %esi,-0x8(%rbp)
mov    %edx,-0xc(%rbp)
mov    %ecx,-0x10(%rbp)
mov    %r8d,-0x14(%rbp)
mov    %r9d,-0x18(%rbp)
cmpl   $0x2,-0x4(%rbp)
jl     198b <test+0x87b>
cmpl   $0x4,-0x8(%rbp)
jl     198b <test+0x87b>
movl   $0x1,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
mov    -0xc(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     1986 <test+0x876>
movl   $0x1,-0x24(%rbp)
mov    -0x24(%rbp),%eax
cmp    -0x4(%rbp),%eax
jg     11ae <test+0x9e>
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    1168 <test+0x58>
movl   $0x1,-0x24(%rbp)
mov    -0x24(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     122c <test+0x11c>
mov    $0x6,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x7,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    11b5 <test+0xa5>
movl   $0x1,-0x24(%rbp)
mov    -0x24(%rbp),%eax
cmp    -0x4(%rbp),%eax
jg     1279 <test+0x169>
mov    $0x3,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    1233 <test+0x123>
movl   $0x1,-0x24(%rbp)
mov    -0x24(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     12cb <test+0x1bb>
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x2,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    1280 <test+0x170>
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x2,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x4(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
movl   $0x1,-0x24(%rbp)
mov    -0x24(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     1375 <test+0x265>
mov    $0x6,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x2,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x7,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x2,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    12fe <test+0x1ee>
movl   $0x1,-0x24(%rbp)
mov    -0x24(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     13c7 <test+0x2b7>
mov    $0xb,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    137c <test+0x26c>
movl   $0x3,-0x20(%rbp)
mov    -0x20(%rbp),%eax
mov    -0x8(%rbp),%ecx
shl    $0x1,%ecx
sub    $0x5,%ecx
cmp    %ecx,%eax
jg     16f3 <test+0x5e3>
movl   $0x1,-0x24(%rbp)
mov    -0x24(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     146c <test+0x35c>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
cmp    $0x0,%edx
jne    1459 <test+0x349>
mov    -0x20(%rbp),%eax
sub    $0x1,%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,-0x2c(%rbp)
mov    $0xa,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x20(%rbp),%eax
sub    $0x1,%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
jmp    145e <test+0x34e>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    13e9 <test+0x2d9>
movl   $0x1,-0x24(%rbp)
mov    -0x24(%rbp),%eax
cmp    -0x4(%rbp),%eax
jg     14f1 <test+0x3e1>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
cmp    $0x0,%edx
jne    14de <test+0x3ce>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,-0x2c(%rbp)
mov    $0x3,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
jmp    14e3 <test+0x3d3>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    1473 <test+0x363>
movl   $0x1,-0x24(%rbp)
mov    -0x24(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     160e <test+0x4fe>
mov    -0x20(%rbp),%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
cmp    $0x0,%edx
jne    159c <test+0x48c>
mov    -0x20(%rbp),%eax
add    $0x2,%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,-0x2c(%rbp)
mov    $0x6,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x20(%rbp),%eax
add    $0x2,%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x7,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x20(%rbp),%eax
add    $0x2,%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
cmp    $0x0,%edx
jne    15fb <test+0x4eb>
mov    -0x20(%rbp),%eax
add    $0x3,%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,-0x2c(%rbp)
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x20(%rbp),%eax
add    $0x3,%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
jmp    1600 <test+0x4f0>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    14f8 <test+0x3e8>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
cmp    $0x0,%edx
jne    166d <test+0x55d>
mov    -0x20(%rbp),%eax
add    $0x3,%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,-0x2c(%rbp)
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x20(%rbp),%eax
add    $0x3,%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x4(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
movl   $0x1,-0x24(%rbp)
mov    -0x24(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     16e0 <test+0x5d0>
mov    -0x20(%rbp),%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
cmp    $0x0,%edx
jne    16cd <test+0x5bd>
mov    $0xb,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x20(%rbp),%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
jmp    16d2 <test+0x5c2>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    1674 <test+0x564>
jmp    16e5 <test+0x5d5>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    13ce <test+0x2be>
mov    -0x8(%rbp),%eax
shl    $0x1,%eax
sub    $0x4,%eax
mov    %eax,-0x20(%rbp)
movl   $0x1,-0x24(%rbp)
mov    -0x24(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     1788 <test+0x678>
mov    -0x8(%rbp),%eax
sub    $0x1,%eax
mov    %eax,-0x2c(%rbp)
mov    $0x6,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x8(%rbp),%edi
sub    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x7,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x8(%rbp),%edi
sub    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    1706 <test+0x5f6>
movl   $0x1,-0x24(%rbp)
mov    -0x24(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     17e4 <test+0x6d4>
mov    -0x8(%rbp),%eax
sub    $0x2,%eax
mov    %eax,-0x2c(%rbp)
mov    $0xb,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x8(%rbp),%edi
sub    $0x2,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    178f <test+0x67f>
mov    -0x8(%rbp),%eax
shl    $0x1,%eax
sub    $0x3,%eax
mov    %eax,-0x20(%rbp)
movl   $0x1,-0x24(%rbp)
mov    -0x24(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     184c <test+0x73c>
mov    -0x8(%rbp),%eax
sub    $0x2,%eax
mov    %eax,-0x2c(%rbp)
mov    $0xa,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x8(%rbp),%edi
sub    $0x2,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    17f7 <test+0x6e7>
movl   $0x1,-0x24(%rbp)
mov    -0x24(%rbp),%eax
cmp    -0x4(%rbp),%eax
jg     18a3 <test+0x793>
mov    -0x8(%rbp),%eax
sub    $0x1,%eax
mov    %eax,-0x2c(%rbp)
mov    $0x3,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x8(%rbp),%edi
sub    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    1853 <test+0x743>
mov    -0x8(%rbp),%eax
shl    $0x1,%eax
sub    $0x2,%eax
mov    %eax,-0x20(%rbp)
movl   $0x1,-0x24(%rbp)
mov    -0x24(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     190b <test+0x7fb>
mov    -0x8(%rbp),%eax
sub    $0x1,%eax
mov    %eax,-0x2c(%rbp)
mov    $0xb,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x8(%rbp),%edi
sub    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    18b6 <test+0x7a6>
mov    -0x8(%rbp),%eax
shl    $0x1,%eax
sub    $0x1,%eax
mov    %eax,-0x20(%rbp)
movl   $0x1,-0x24(%rbp)
mov    -0x24(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     1973 <test+0x863>
mov    -0x8(%rbp),%eax
sub    $0x1,%eax
mov    %eax,-0x2c(%rbp)
mov    $0xa,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x8(%rbp),%edi
sub    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    191e <test+0x80e>
jmp    1978 <test+0x868>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    1150 <test+0x40>
jmp    198b <test+0x87b>
cmpl   $0x2,-0x4(%rbp)
jl     1d78 <test+0xc68>
cmpl   $0x3,-0x8(%rbp)
jne    1d78 <test+0xc68>
movl   $0x1,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
mov    -0xc(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     1d73 <test+0xc63>
movl   $0x1,-0x24(%rbp)
mov    -0x24(%rbp),%eax
cmp    -0x4(%rbp),%eax
jg     1a04 <test+0x8f4>
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    19be <test+0x8ae>
movl   $0x1,-0x24(%rbp)
mov    -0x24(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     1a82 <test+0x972>
mov    $0x6,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x7,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    1a0b <test+0x8fb>
movl   $0x1,-0x24(%rbp)
mov    -0x24(%rbp),%eax
cmp    -0x4(%rbp),%eax
jg     1acf <test+0x9bf>
mov    $0x3,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    1a89 <test+0x979>
movl   $0x1,-0x24(%rbp)
mov    -0x24(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     1b21 <test+0xa11>
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x2,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    1ad6 <test+0x9c6>
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x2,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x4(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
movl   $0x1,-0x24(%rbp)
mov    -0x24(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     1bcb <test+0xabb>
mov    $0x6,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x2,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x7,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x2,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    1b54 <test+0xa44>
movl   $0x1,-0x24(%rbp)
mov    -0x24(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     1c1d <test+0xb0d>
mov    $0xb,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    1bd2 <test+0xac2>
movl   $0x1,-0x24(%rbp)
mov    -0x24(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     1c6f <test+0xb5f>
mov    $0xa,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    1c24 <test+0xb14>
movl   $0x1,-0x24(%rbp)
mov    -0x24(%rbp),%eax
cmp    -0x4(%rbp),%eax
jg     1cbc <test+0xbac>
mov    $0x3,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x2,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    1c76 <test+0xb66>
movl   $0x1,-0x24(%rbp)
mov    -0x24(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     1d0e <test+0xbfe>
mov    $0xb,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x2,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    1cc3 <test+0xbb3>
movl   $0x1,-0x24(%rbp)
mov    -0x24(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     1d60 <test+0xc50>
mov    $0xa,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x2,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    1d15 <test+0xc05>
jmp    1d65 <test+0xc55>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    19a6 <test+0x896>
jmp    1d78 <test+0xc68>
cmpl   $0x2,-0x4(%rbp)
jl     1f78 <test+0xe68>
cmpl   $0x2,-0x8(%rbp)
jne    1f78 <test+0xe68>
movl   $0x1,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
mov    -0xc(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     1f73 <test+0xe63>
movl   $0x1,-0x24(%rbp)
mov    -0x24(%rbp),%eax
cmp    -0x4(%rbp),%eax
jg     1df1 <test+0xce1>
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    1dab <test+0xc9b>
movl   $0x1,-0x24(%rbp)
mov    -0x24(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     1e6f <test+0xd5f>
mov    $0x6,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x7,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    1df8 <test+0xce8>
movl   $0x1,-0x24(%rbp)
mov    -0x24(%rbp),%eax
cmp    -0x4(%rbp),%eax
jg     1ebc <test+0xdac>
mov    $0x3,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    1e76 <test+0xd66>
movl   $0x1,-0x24(%rbp)
mov    -0x24(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     1f0e <test+0xdfe>
mov    $0xb,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    1ec3 <test+0xdb3>
movl   $0x1,-0x24(%rbp)
mov    -0x24(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     1f60 <test+0xe50>
mov    $0xa,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    1f15 <test+0xe05>
jmp    1f65 <test+0xe55>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    1d93 <test+0xc83>
jmp    1f78 <test+0xe68>
cmpl   $0x1,-0x4(%rbp)
jne    21c5 <test+0x10b5>
cmpl   $0x3,-0x8(%rbp)
jl     21c5 <test+0x10b5>
movl   $0x1,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
mov    -0xc(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     21c0 <test+0x10b0>
movl   $0xffffffff,-0x20(%rbp)
cmpl   $0x0,-0x20(%rbp)
jg     2029 <test+0xf19>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
cmp    $0x0,%edx
jne    2016 <test+0xf06>
mov    -0x20(%rbp),%eax
add    $0x3,%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,-0x2c(%rbp)
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x20(%rbp),%eax
add    $0x3,%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
jmp    201b <test+0xf0b>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    1fab <test+0xe9b>
movl   $0x1,-0x20(%rbp)
mov    -0x20(%rbp),%eax
mov    -0x8(%rbp),%ecx
shl    $0x1,%ecx
sub    $0x5,%ecx
cmp    %ecx,%eax
jg     2119 <test+0x1009>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
cmp    $0x0,%edx
jne    20a5 <test+0xf95>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,-0x2c(%rbp)
mov    $0x3,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
cmp    $0x0,%edx
jne    2106 <test+0xff6>
mov    -0x20(%rbp),%eax
add    $0x3,%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,-0x2c(%rbp)
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x20(%rbp),%eax
add    $0x3,%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
jmp    210b <test+0xffb>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    2030 <test+0xf20>
mov    -0x8(%rbp),%eax
shl    $0x1,%eax
sub    $0x4,%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
mov    -0x8(%rbp),%ecx
shl    $0x1,%ecx
sub    $0x3,%ecx
cmp    %ecx,%eax
jg     21ad <test+0x109d>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
cmp    $0x0,%edx
jne    219a <test+0x108a>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,-0x2c(%rbp)
mov    $0x3,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
jmp    219f <test+0x108f>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    2125 <test+0x1015>
jmp    21b2 <test+0x10a2>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    1f93 <test+0xe83>
jmp    21c5 <test+0x10b5>
cmpl   $0x1,-0x4(%rbp)
jne    2260 <test+0x1150>
cmpl   $0x2,-0x8(%rbp)
jne    2260 <test+0x1150>
movl   $0x1,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
mov    -0xc(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     225b <test+0x114b>
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x3,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    21e0 <test+0x10d0>
jmp    2260 <test+0x1150>
cmpl   $0x2,-0x4(%rbp)
jl     2544 <test+0x1434>
cmpl   $0x3,-0x8(%rbp)
jl     2544 <test+0x1434>
movl   $0x1,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
mov    -0xc(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     253f <test+0x142f>
movl   $0x1,-0x24(%rbp)
mov    -0x24(%rbp),%eax
cmp    -0x4(%rbp),%eax
jg     22d9 <test+0x11c9>
mov    $0x2,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    2293 <test+0x1183>
movl   $0x1,-0x24(%rbp)
mov    -0x24(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     232b <test+0x121b>
mov    $0x8,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    22e0 <test+0x11d0>
movl   $0x3,-0x20(%rbp)
mov    -0x20(%rbp),%eax
mov    -0x8(%rbp),%ecx
shl    $0x1,%ecx
sub    $0x2,%ecx
cmp    %ecx,%eax
jg     24c4 <test+0x13b4>
movl   $0x1,-0x24(%rbp)
mov    -0x24(%rbp),%eax
cmp    -0x4(%rbp),%eax
jg     23b4 <test+0x12a4>
mov    -0x20(%rbp),%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
cmp    $0x0,%edx
jne    23a1 <test+0x1291>
mov    $0x2,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x20(%rbp),%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
jmp    23a6 <test+0x1296>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    234d <test+0x123d>
movl   $0x1,-0x24(%rbp)
mov    -0x24(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     2427 <test+0x1317>
mov    -0x20(%rbp),%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
cmp    $0x0,%edx
jne    2414 <test+0x1304>
mov    $0x8,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x20(%rbp),%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
jmp    2419 <test+0x1309>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    23bb <test+0x12ab>
movl   $0x1,-0x24(%rbp)
mov    -0x24(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     24b1 <test+0x13a1>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
cmp    $0x0,%edx
jne    249e <test+0x138e>
mov    -0x20(%rbp),%eax
sub    $0x1,%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,-0x2c(%rbp)
mov    $0x9,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x20(%rbp),%eax
sub    $0x1,%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
jmp    24a3 <test+0x1393>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    242e <test+0x131e>
jmp    24b6 <test+0x13a6>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    2332 <test+0x1222>
mov    -0x8(%rbp),%eax
shl    $0x1,%eax
sub    $0x1,%eax
mov    %eax,-0x20(%rbp)
movl   $0x1,-0x24(%rbp)
mov    -0x24(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     252c <test+0x141c>
mov    -0x8(%rbp),%eax
sub    $0x1,%eax
mov    %eax,-0x2c(%rbp)
mov    $0x9,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x8(%rbp),%edi
sub    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    24d7 <test+0x13c7>
jmp    2531 <test+0x1421>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    227b <test+0x116b>
jmp    2544 <test+0x1434>
cmpl   $0x2,-0x4(%rbp)
jl     2679 <test+0x1569>
cmpl   $0x2,-0x8(%rbp)
jne    2679 <test+0x1569>
movl   $0x1,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
mov    -0xc(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     2674 <test+0x1564>
movl   $0x1,-0x24(%rbp)
mov    -0x24(%rbp),%eax
cmp    -0x4(%rbp),%eax
jg     25bd <test+0x14ad>
mov    $0x2,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    2577 <test+0x1467>
movl   $0x1,-0x24(%rbp)
mov    -0x24(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     260f <test+0x14ff>
mov    $0x8,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    25c4 <test+0x14b4>
movl   $0x1,-0x24(%rbp)
mov    -0x24(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     2661 <test+0x1551>
mov    $0x9,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    2616 <test+0x1506>
jmp    2666 <test+0x1556>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    255f <test+0x144f>
jmp    2679 <test+0x1569>
cmpl   $0x1,-0x4(%rbp)
jne    2735 <test+0x1625>
cmpl   $0x2,-0x8(%rbp)
jl     2735 <test+0x1625>
movl   $0x1,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
mov    -0xc(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     2730 <test+0x1620>
movl   $0x2,-0x20(%rbp)
mov    -0x20(%rbp),%eax
mov    -0x8(%rbp),%ecx
shl    $0x1,%ecx
sub    $0x2,%ecx
cmp    %ecx,%eax
jg     271d <test+0x160d>
mov    -0x20(%rbp),%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
cmp    $0x0,%edx
jne    270a <test+0x15fa>
mov    $0x2,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x20(%rbp),%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
mov    %eax,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
jmp    270f <test+0x15ff>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    26ac <test+0x159c>
jmp    2722 <test+0x1612>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    2694 <test+0x1584>
jmp    2735 <test+0x1625>
cmpl   $0x2,-0x4(%rbp)
jl     27f4 <test+0x16e4>
cmpl   $0x2,-0x8(%rbp)
jl     27f4 <test+0x16e4>
movl   $0x1,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
mov    -0xc(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     27ef <test+0x16df>
movl   $0x1,-0x20(%rbp)
mov    -0x20(%rbp),%eax
mov    -0x8(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     27dc <test+0x16cc>
movl   $0x1,-0x24(%rbp)
mov    -0x24(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     27c9 <test+0x16b9>
mov    $0x4,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x20(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    2780 <test+0x1670>
jmp    27ce <test+0x16be>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    2768 <test+0x1658>
jmp    27e1 <test+0x16d1>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    2750 <test+0x1640>
jmp    27f4 <test+0x16e4>
cmpl   $0x2,-0x4(%rbp)
jl     28b3 <test+0x17a3>
cmpl   $0x2,-0x8(%rbp)
jl     28b3 <test+0x17a3>
movl   $0x1,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
mov    -0xc(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     28ae <test+0x179e>
movl   $0x1,-0x20(%rbp)
mov    -0x20(%rbp),%eax
mov    -0x8(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     289b <test+0x178b>
movl   $0x1,-0x24(%rbp)
mov    -0x24(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     2888 <test+0x1778>
mov    $0x5,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x20(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    283f <test+0x172f>
jmp    288d <test+0x177d>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    2827 <test+0x1717>
jmp    28a0 <test+0x1790>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    280f <test+0x16ff>
jmp    28b3 <test+0x17a3>
mov    -0x4(%rbp),%eax
mov    -0x10(%rbp),%ecx
add    $0x1,%ecx
cmp    %ecx,%eax
jl     297d <test+0x186d>
mov    -0x8(%rbp),%eax
mov    -0x14(%rbp),%ecx
add    $0x1,%ecx
cmp    %ecx,%eax
jl     297d <test+0x186d>
mov    -0x18(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
mov    -0xc(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     2978 <test+0x1868>
mov    -0x14(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
mov    -0x8(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     2965 <test+0x1855>
mov    -0x10(%rbp),%eax
mov    %eax,-0x24(%rbp)
mov    -0x24(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     2952 <test+0x1842>
mov    $0xc,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x20(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    2909 <test+0x17f9>
jmp    2957 <test+0x1847>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    28f2 <test+0x17e2>
jmp    296a <test+0x185a>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    28db <test+0x17cb>
jmp    297d <test+0x186d>
cmpl   $0x2,-0x4(%rbp)
jl     2a41 <test+0x1931>
mov    -0x8(%rbp),%eax
mov    -0x14(%rbp),%ecx
add    $0x1,%ecx
cmp    %ecx,%eax
jl     2a41 <test+0x1931>
mov    -0x18(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
mov    -0xc(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     2a3c <test+0x192c>
mov    -0x14(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
mov    -0x8(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     2a29 <test+0x1919>
movl   $0x1,-0x24(%rbp)
mov    -0x24(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     2a16 <test+0x1906>
mov    $0xd,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x20(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    29cd <test+0x18bd>
jmp    2a1b <test+0x190b>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    29b5 <test+0x18a5>
jmp    2a2e <test+0x191e>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    299e <test+0x188e>
jmp    2a41 <test+0x1931>
mov    -0x4(%rbp),%eax
mov    -0x10(%rbp),%ecx
add    $0x1,%ecx
cmp    %ecx,%eax
jl     2b05 <test+0x19f5>
cmpl   $0x2,-0x8(%rbp)
jl     2b05 <test+0x19f5>
mov    -0x18(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
mov    -0xc(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     2b00 <test+0x19f0>
movl   $0x1,-0x20(%rbp)
mov    -0x20(%rbp),%eax
mov    -0x8(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     2aed <test+0x19dd>
mov    -0x10(%rbp),%eax
mov    %eax,-0x24(%rbp)
mov    -0x24(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     2ada <test+0x19ca>
mov    $0xe,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x20(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    2a91 <test+0x1981>
jmp    2adf <test+0x19cf>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    2a7a <test+0x196a>
jmp    2af2 <test+0x19e2>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    2a62 <test+0x1952>
jmp    2b05 <test+0x19f5>
cmpl   $0x2,-0x4(%rbp)
jl     2bc3 <test+0x1ab3>
cmpl   $0x2,-0x8(%rbp)
jl     2bc3 <test+0x1ab3>
mov    -0x18(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
mov    -0xc(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     2bbe <test+0x1aae>
movl   $0x1,-0x20(%rbp)
mov    -0x20(%rbp),%eax
mov    -0x8(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     2bab <test+0x1a9b>
movl   $0x1,-0x24(%rbp)
mov    -0x24(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     2b98 <test+0x1a88>
mov    $0xf,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x20(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    2b4f <test+0x1a3f>
jmp    2b9d <test+0x1a8d>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    2b37 <test+0x1a27>
jmp    2bb0 <test+0x1aa0>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    2b1f <test+0x1a0f>
jmp    2bc3 <test+0x1ab3>
add    $0x30,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<test>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x38,%rsp
mov    %r9d,0x28(%rsp)
mov    %r8d,0x10(%rsp)
mov    %ecx,0x14(%rsp)
mov    %rsi,0x18(%rsp)
mov    %edi,%r15d
cmp    $0x2,%edi
mov    %edx,0x8(%rsp)
mov    %edi,0x4(%rsp)
jl     17b7 <test+0x6a7>
cmpl   $0x4,0x18(%rsp)
jl     17b7 <test+0x6a7>
cmp    $0x2,%edx
jl     17b7 <test+0x6a7>
mov    0x18(%rsp),%rax
lea    (%rax,%rax,1),%ecx
add    $0xfffffffb,%ecx
lea    -0x1(%rax),%r14d
lea    -0x2(%rax),%r12d
cmp    $0x4,%ecx
mov    $0x3,%eax
cmovl  %eax,%ecx
mov    %ecx,0x34(%rsp)
mov    %r15d,%eax
neg    %eax
mov    %rax,0x20(%rsp)
movl   $0x1,0xc(%rsp)
mov    %r14d,0x30(%rsp)
mov    %r12d,0x2c(%rsp)
nopw   0x0(%rax,%rax,1)
mov    $0x1,%ebx
mov    0x20(%rsp),%r13
mov    0xc(%rsp),%ebp
xchg   %ax,%ax
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebp,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
lea    (%rbx,%r13,1),%eax
add    $0x1,%eax
mov    %ebx,%ecx
add    $0x1,%ecx
mov    %ecx,%ebx
cmp    $0x1,%eax
jne    11b0 <test+0xa0>
mov    $0x1,%ebx
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
mov    $0x6,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebp,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x7,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebp,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
add    $0x1,%ebx
cmp    %ebx,%r15d
jne    1200 <test+0xf0>
mov    $0x1,%ebx
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
mov    $0x3,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebp,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
lea    (%rbx,%r13,1),%eax
add    $0x1,%eax
mov    %ebx,%ecx
add    $0x1,%ecx
mov    %ecx,%ebx
cmp    $0x1,%eax
jne    1270 <test+0x160>
mov    $0x1,%ebx
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebp,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x2,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
add    $0x1,%ebx
cmp    %ebx,%r15d
jne    12c0 <test+0x1b0>
mov    $0x1,%ebx
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebp,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x2,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r15d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
mov    $0x6,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebp,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x2,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x7,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebp,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x2,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
add    $0x1,%ebx
cmp    %ebx,%r15d
jne    1330 <test+0x220>
mov    $0x1,%ebx
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
mov    $0xb,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebp,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
add    $0x1,%ebx
cmp    %ebx,%r15d
jne    13a0 <test+0x290>
mov    $0x3,%r14d
jmp    13eb <test+0x2db>
nopw   0x0(%rax,%rax,1)
cmp    0x34(%rsp),%r12d
je     15f0 <test+0x4e0>
mov    %r14d,%r12d
lea    -0x1(%r12),%r14d
shr    %r14d
mov    $0x1,%ebp
mov    0x20(%rsp),%r13
mov    0xc(%rsp),%ebx
jmp    1418 <test+0x308>
cs nopw 0x0(%rax,%rax,1)
add    $0x1,%ebp
cmp    %ebp,%r15d
je     1450 <test+0x340>
test   $0x1,%r12b
je     1410 <test+0x300>
mov    $0xa,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r14d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebp,%edi
xor    %eax,%eax
call   1030 <hash@plt>
jmp    1410 <test+0x300>
nopl   0x0(%rax,%rax,1)
lea    0x1(%r12),%r14d
mov    %r14d,%r15d
shr    %r15d
mov    $0x1,%ebp
jmp    1481 <test+0x371>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
lea    0x1(%r13,%rbp,1),%eax
mov    %ebp,%ecx
add    $0x1,%ecx
mov    %ecx,%ebp
cmp    $0x1,%eax
je     14c0 <test+0x3b0>
test   $0x1,%r14b
jne    1470 <test+0x360>
mov    $0x3,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r15d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebp,%edi
xor    %eax,%eax
call   1030 <hash@plt>
jmp    1470 <test+0x360>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
lea    0x3(%r12),%r15d
shr    %r15d
lea    0x2(%r12),%ebp
shr    %ebp
mov    $0x1,%r13d
jmp    1510 <test+0x400>
nopw   0x0(%rax,%rax,1)
xor    %eax,%eax
call   1030 <hash@plt>
mov    0xc(%rsp),%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r13d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
add    $0x1,%r13d
cmp    %r13d,0x4(%rsp)
je     1560 <test+0x450>
mov    $0x1,%edi
mov    %r15d,%ebx
test   $0x1,%r12b
jne    14e0 <test+0x3d0>
mov    $0x6,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    0xc(%rsp),%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebp,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r13d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x7,%edi
mov    %ebp,%ebx
jmp    14e0 <test+0x3d0>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
test   $0x1,%r14b
jne    1592 <test+0x482>
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    0xc(%rsp),%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r15d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    0x4(%rsp),%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r12d,%ebx
shr    %ebx
mov    $0x1,%ebp
mov    0x4(%rsp),%r15d
jmp    15bc <test+0x4ac>
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
add    $0x1,%ebp
cmp    %ebp,%r15d
je     13e0 <test+0x2d0>
test   $0x1,%r12b
jne    15b0 <test+0x4a0>
mov    $0xb,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    0xc(%rsp),%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebp,%edi
xor    %eax,%eax
call   1030 <hash@plt>
jmp    15b0 <test+0x4a0>
nopl   (%rax)
mov    $0x1,%ebx
mov    0x30(%rsp),%r14d
mov    0xc(%rsp),%r13d
nop
mov    $0x6,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r13d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r14d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x7,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r13d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r14d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
add    $0x1,%ebx
cmp    %ebx,%r15d
jne    1600 <test+0x4f0>
mov    $0x1,%ebx
mov    0x2c(%rsp),%r12d
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
mov    $0xb,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r13d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r12d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
add    $0x1,%ebx
cmp    %ebx,%r15d
jne    1670 <test+0x560>
mov    $0x1,%ebx
cs nopw 0x0(%rax,%rax,1)
mov    $0xa,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r13d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r12d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
add    $0x1,%ebx
cmp    %ebx,%r15d
jne    16b0 <test+0x5a0>
mov    $0x1,%ebx
mov    0x20(%rsp),%rbp
nopl   0x0(%rax,%rax,1)
mov    $0x3,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r13d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r14d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
lea    (%rbx,%rbp,1),%eax
add    $0x1,%eax
mov    %ebx,%ecx
add    $0x1,%ecx
mov    %ecx,%ebx
cmp    $0x1,%eax
jne    16f0 <test+0x5e0>
mov    $0x1,%ebx
mov    $0xb,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r13d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r14d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
add    $0x1,%ebx
cmp    %ebx,%r15d
jne    1730 <test+0x620>
mov    $0x1,%ebx
cs nopw 0x0(%rax,%rax,1)
mov    $0xa,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r13d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r14d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
add    $0x1,%ebx
cmp    %ebx,%r15d
jne    1770 <test+0x660>
add    $0x1,%r13d
mov    0x8(%rsp),%edx
mov    %r13d,0xc(%rsp)
cmp    %edx,%r13d
jne    11a0 <test+0x90>
cmp    $0x2,%r15d
mov    %edx,%r14d
mov    0x18(%rsp),%r13
jl     1b3e <test+0xa2e>
cmp    $0x3,%r13d
jne    1b3e <test+0xa2e>
cmp    $0x2,%r14d
jl     1b3e <test+0xa2e>
mov    0x4(%rsp),%eax
mov    %eax,%r15d
neg    %r15d
mov    $0x1,%ebx
nopl   0x0(%rax)
mov    $0x1,%ebp
cs nopw 0x0(%rax,%rax,1)
nop
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebp,%edi
xor    %eax,%eax
call   1030 <hash@plt>
lea    (%r15,%rbp,1),%eax
add    $0x1,%eax
mov    %ebp,%ecx
add    $0x1,%ecx
mov    %ecx,%ebp
cmp    $0x1,%eax
jne    1800 <test+0x6f0>
mov    $0x1,%ebp
mov    0x4(%rsp),%r12d
nopw   0x0(%rax,%rax,1)
mov    $0x6,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebp,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x7,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebp,%edi
xor    %eax,%eax
call   1030 <hash@plt>
add    $0x1,%ebp
cmp    %ebp,%r12d
jne    1850 <test+0x740>
mov    $0x1,%ebp
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
mov    $0x3,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebp,%edi
xor    %eax,%eax
call   1030 <hash@plt>
lea    (%r15,%rbp,1),%eax
add    $0x1,%eax
mov    %ebp,%ecx
add    $0x1,%ecx
mov    %ecx,%ebp
cmp    $0x1,%eax
jne    18c0 <test+0x7b0>
mov    $0x1,%ebp
mov    0x4(%rsp),%r12d
nopw   0x0(%rax,%rax,1)
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x2,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebp,%edi
xor    %eax,%eax
call   1030 <hash@plt>
add    $0x1,%ebp
cmp    %ebp,%r12d
jne    1910 <test+0x800>
mov    $0x1,%ebp
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x2,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r12d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
mov    $0x6,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x2,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebp,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x7,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x2,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebp,%edi
xor    %eax,%eax
call   1030 <hash@plt>
add    $0x1,%ebp
cmp    %ebp,%r12d
jne    1980 <test+0x870>
mov    $0x1,%ebp
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
mov    $0xb,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebp,%edi
xor    %eax,%eax
call   1030 <hash@plt>
add    $0x1,%ebp
cmp    %ebp,%r12d
jne    19f0 <test+0x8e0>
mov    $0x1,%ebp
nopw   0x0(%rax,%rax,1)
mov    $0xa,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebp,%edi
xor    %eax,%eax
call   1030 <hash@plt>
add    $0x1,%ebp
cmp    %ebp,%r12d
jne    1a30 <test+0x920>
mov    $0x1,%ebp
nopw   0x0(%rax,%rax,1)
mov    $0x3,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x2,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebp,%edi
xor    %eax,%eax
call   1030 <hash@plt>
lea    (%r15,%rbp,1),%eax
add    $0x1,%eax
mov    %ebp,%ecx
add    $0x1,%ecx
mov    %ecx,%ebp
cmp    $0x1,%eax
jne    1a70 <test+0x960>
mov    $0x1,%ebp
mov    0x4(%rsp),%r12d
nopw   0x0(%rax,%rax,1)
mov    $0xb,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x2,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebp,%edi
xor    %eax,%eax
call   1030 <hash@plt>
add    $0x1,%ebp
cmp    %ebp,%r12d
jne    1ac0 <test+0x9b0>
mov    $0x1,%ebp
nopw   0x0(%rax,%rax,1)
mov    $0xa,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x2,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebp,%edi
xor    %eax,%eax
call   1030 <hash@plt>
add    $0x1,%ebp
cmp    %ebp,%r12d
jne    1b00 <test+0x9f0>
add    $0x1,%ebx
cmp    %r14d,%ebx
jne    17f0 <test+0x6e0>
cmp    $0x2,%r14d
setge  %al
cmpl   $0x2,0x4(%rsp)
setge  %cl
cmp    $0x2,%r13d
sete   %dl
and    %cl,%dl
and    %al,%dl
mov    %dl,0x20(%rsp)
cmp    $0x1,%dl
jne    1d1e <test+0xc0e>
mov    0x4(%rsp),%eax
mov    %eax,%r15d
neg    %r15d
mov    $0x1,%ebx
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
mov    $0x1,%ebp
cs nopw 0x0(%rax,%rax,1)
nop
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebp,%edi
xor    %eax,%eax
call   1030 <hash@plt>
lea    (%r15,%rbp,1),%eax
add    $0x1,%eax
mov    %ebp,%ecx
add    $0x1,%ecx
mov    %ecx,%ebp
cmp    $0x1,%eax
jne    1b90 <test+0xa80>
mov    $0x1,%ebp
mov    0x4(%rsp),%r12d
nopw   0x0(%rax,%rax,1)
mov    $0x6,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebp,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x7,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebp,%edi
xor    %eax,%eax
call   1030 <hash@plt>
add    $0x1,%ebp
cmp    %ebp,%r12d
jne    1be0 <test+0xad0>
mov    $0x1,%ebp
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
mov    $0x3,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebp,%edi
xor    %eax,%eax
call   1030 <hash@plt>
lea    (%r15,%rbp,1),%eax
add    $0x1,%eax
mov    %ebp,%ecx
add    $0x1,%ecx
mov    %ecx,%ebp
cmp    $0x1,%eax
jne    1c50 <test+0xb40>
mov    $0x1,%ebp
mov    0x4(%rsp),%r12d
nopw   0x0(%rax,%rax,1)
mov    $0xb,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebp,%edi
xor    %eax,%eax
call   1030 <hash@plt>
add    $0x1,%ebp
cmp    %ebp,%r12d
jne    1ca0 <test+0xb90>
mov    $0x1,%ebp
nopw   0x0(%rax,%rax,1)
mov    $0xa,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebp,%edi
xor    %eax,%eax
call   1030 <hash@plt>
add    $0x1,%ebp
cmp    %ebp,%r12d
jne    1ce0 <test+0xbd0>
add    $0x1,%ebx
cmp    %r14d,%ebx
jne    1b80 <test+0xa70>
cmpl   $0x1,0x4(%rsp)
jne    1e4b <test+0xd3b>
cmp    $0x3,%r13d
jl     1e4b <test+0xd3b>
cmpl   $0x2,0x8(%rsp)
jl     1e4b <test+0xd3b>
lea    -0x5(%r13,%r13,1),%r14d
cmp    $0x2,%r14d
mov    $0x1,%r12d
cmovl  %r12d,%r14d
lea    -0x2(%r13,%r13,1),%r15d
sar    %r15d
neg    %r14d
jmp    1d9b <test+0xc8b>
xchg   %ax,%ax
mov    $0x3,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r12d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r15d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
add    $0x1,%r12d
cmp    0x8(%rsp),%r12d
je     1e4b <test+0xd3b>
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r12d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x2,%ebx
jmp    1de7 <test+0xcd7>
lea    (%r14,%rbx,1),%eax
add    $0x1,%eax
mov    %ebx,%ecx
add    $0x1,%ecx
mov    %ecx,%ebx
cmp    $0x2,%eax
je     1d60 <test+0xc50>
test   $0x1,%bl
jne    1dd0 <test+0xcc0>
mov    $0x3,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r12d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
shr    %edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
lea    0x2(%rbx),%ebp
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r12d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
shr    %ebp
mov    %ebp,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
jmp    1dd0 <test+0xcc0>
mov    0x4(%rsp),%r14d
cmp    $0x1,%r14d
mov    0x8(%rsp),%ebp
jne    1ed1 <test+0xdc1>
cmp    $0x2,%r13d
jne    1ed1 <test+0xdc1>
cmp    $0x2,%ebp
jl     1ed1 <test+0xdc1>
mov    $0x1,%ebx
nopw   0x0(%rax,%rax,1)
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x3,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
add    $0x1,%ebx
cmp    %ebx,%ebp
jne    1e70 <test+0xd60>
cmp    $0x2,%r14d
jl     212f <test+0x101f>
cmpl   $0x3,0x18(%rsp)
jl     212f <test+0x101f>
cmpl   $0x2,0x8(%rsp)
jl     212f <test+0x101f>
mov    0x18(%rsp),%rcx
lea    (%rcx,%rcx,1),%eax
add    $0xfffffffe,%eax
lea    -0x1(%rcx),%r14d
cmp    $0x4,%eax
mov    $0x3,%r12d
cmovge %eax,%r12d
mov    0x4(%rsp),%eax
mov    %eax,%r15d
neg    %r15d
mov    $0x1,%r13d
mov    %r14d,0xc(%rsp)
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
mov    $0x1,%ebx
cs nopw 0x0(%rax,%rax,1)
nop
mov    $0x2,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r13d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
lea    (%r15,%rbx,1),%eax
add    $0x1,%eax
mov    %ebx,%ecx
add    $0x1,%ecx
mov    %ecx,%ebx
cmp    $0x1,%eax
jne    1f40 <test+0xe30>
mov    $0x1,%ebx
mov    0x4(%rsp),%ebp
nopw   0x0(%rax,%rax,1)
mov    $0x8,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r13d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
add    $0x1,%ebx
cmp    %ebx,%ebp
jne    1f90 <test+0xe80>
mov    $0x3,%ebp
jmp    1fde <test+0xece>
nopl   0x0(%rax)
lea    0x1(%rbp),%eax
cmp    %r12d,%ebp
mov    %eax,%ebp
je     20e0 <test+0xfd0>
mov    %ebp,%r14d
shr    %r14d
mov    $0x1,%ebx
jmp    2003 <test+0xef3>
nopl   0x0(%rax,%rax,1)
lea    (%r15,%rbx,1),%eax
add    $0x1,%eax
mov    %ebx,%ecx
add    $0x1,%ecx
mov    %ecx,%ebx
cmp    $0x1,%eax
je     2040 <test+0xf30>
test   $0x1,%bpl
jne    1ff0 <test+0xee0>
mov    $0x2,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r13d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r14d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
jmp    1ff0 <test+0xee0>
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
mov    $0x1,%ebx
jmp    2059 <test+0xf49>
nopw   0x0(%rax,%rax,1)
add    $0x1,%ebx
cmp    %ebx,0x4(%rsp)
je     2090 <test+0xf80>
test   $0x1,%bpl
jne    2050 <test+0xf40>
mov    $0x8,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r13d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r14d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
jmp    2050 <test+0xf40>
nopw   0x0(%rax,%rax,1)
lea    -0x1(%rbp),%r14d
shr    %r14d
mov    $0x1,%ebx
jmp    20ad <test+0xf9d>
xchg   %ax,%ax
add    $0x1,%ebx
cmp    %ebx,0x4(%rsp)
je     1fd0 <test+0xec0>
test   $0x1,%bpl
je     20a0 <test+0xf90>
mov    $0x9,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r13d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r14d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
jmp    20a0 <test+0xf90>
xchg   %ax,%ax
mov    $0x1,%ebx
mov    0x4(%rsp),%ebp
mov    0xc(%rsp),%r14d
xchg   %ax,%ax
mov    $0x9,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r13d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r14d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
add    $0x1,%ebx
cmp    %ebx,%ebp
jne    20f0 <test+0xfe0>
add    $0x1,%r13d
cmp    0x8(%rsp),%r13d
jne    1f30 <test+0xe20>
cmpb   $0x0,0x20(%rsp)
mov    0x8(%rsp),%r15d
mov    0x18(%rsp),%r13
je     223e <test+0x112e>
mov    0x4(%rsp),%eax
mov    %eax,%r14d
neg    %r14d
mov    $0x1,%ebx
mov    0x4(%rsp),%r12d
nopl   0x0(%rax,%rax,1)
mov    $0x1,%ebp
cs nopw 0x0(%rax,%rax,1)
nop
mov    $0x2,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebp,%edi
xor    %eax,%eax
call   1030 <hash@plt>
lea    (%r14,%rbp,1),%eax
add    $0x1,%eax
mov    %ebp,%ecx
add    $0x1,%ecx
mov    %ecx,%ebp
cmp    $0x1,%eax
jne    2170 <test+0x1060>
mov    $0x1,%ebp
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
mov    $0x8,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebp,%edi
xor    %eax,%eax
call   1030 <hash@plt>
add    $0x1,%ebp
cmp    %ebp,%r12d
jne    21c0 <test+0x10b0>
mov    $0x1,%ebp
nopw   0x0(%rax,%rax,1)
mov    $0x9,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebp,%edi
xor    %eax,%eax
call   1030 <hash@plt>
add    $0x1,%ebp
cmp    %ebp,%r12d
jne    2200 <test+0x10f0>
add    $0x1,%ebx
cmp    %r15d,%ebx
jne    2160 <test+0x1050>
cmpl   $0x1,0x4(%rsp)
jne    22c6 <test+0x11b6>
cmp    $0x2,%r13d
jl     22c6 <test+0x11b6>
cmp    $0x2,%r15d
jl     22c6 <test+0x11b6>
lea    -0x2(%r13,%r13,1),%ebp
cmp    $0x3,%ebp
mov    $0x2,%eax
cmovl  %eax,%ebp
neg    %ebp
mov    $0x1,%r14d
jmp    2279 <test+0x1169>
nop
add    $0x1,%r14d
cmp    %r15d,%r14d
je     22c6 <test+0x11b6>
mov    $0x2,%ebx
jmp    2292 <test+0x1182>
lea    (%rbx,%rbp,1),%eax
add    $0x1,%eax
mov    %ebx,%ecx
add    $0x1,%ecx
mov    %ecx,%ebx
cmp    $0x1,%eax
je     2270 <test+0x1160>
test   $0x1,%bl
jne    2280 <test+0x1170>
mov    $0x2,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r14d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
shr    %edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
jmp    2280 <test+0x1170>
cmp    $0x2,%r13d
setge  %al
cmpl   $0x2,0x4(%rsp)
setge  %cl
and    %al,%cl
mov    %cl,0xc(%rsp)
cmp    $0x1,%cl
mov    0x28(%rsp),%r14d
jne    23d4 <test+0x12c4>
cmpl   $0x2,0x8(%rsp)
jl     23d4 <test+0x12c4>
mov    $0x1,%r12d
mov    0x4(%rsp),%r15d
nop
mov    $0x1,%ebp
cs nopw 0x0(%rax,%rax,1)
nop
mov    $0x1,%ebx
cs nopw 0x0(%rax,%rax,1)
nop
mov    $0x4,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r12d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebp,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
add    $0x1,%ebx
cmp    %ebx,%r15d
jne    2320 <test+0x1210>
add    $0x1,%ebp
cmp    %r13d,%ebp
jne    2310 <test+0x1200>
add    $0x1,%r12d
cmp    0x8(%rsp),%r12d
jne    2300 <test+0x11f0>
mov    $0x1,%r12d
mov    0x4(%rsp),%ebp
nopl   (%rax)
mov    $0x1,%r15d
cs nopw 0x0(%rax,%rax,1)
mov    $0x1,%ebx
cs nopw 0x0(%rax,%rax,1)
nop
mov    $0x5,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r12d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r15d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
add    $0x1,%ebx
cmp    %ebx,%ebp
jne    2390 <test+0x1280>
add    $0x1,%r15d
cmp    %r13d,%r15d
jne    2380 <test+0x1270>
add    $0x1,%r12d
cmp    0x8(%rsp),%r12d
jne    2370 <test+0x1260>
mov    0x14(%rsp),%eax
cmp    0x4(%rsp),%eax
jge    2464 <test+0x1354>
cmp    %r13d,0x10(%rsp)
jge    2464 <test+0x1354>
cmp    0x8(%rsp),%r14d
jge    2464 <test+0x1354>
mov    %r14d,%r12d
mov    0x4(%rsp),%ebp
nopw   0x0(%rax,%rax,1)
mov    0x10(%rsp),%r15d
cs nopw 0x0(%rax,%rax,1)
nop
mov    0x14(%rsp),%ebx
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
mov    $0xc,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r12d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r15d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
add    $0x1,%ebx
cmp    %ebx,%ebp
jne    2420 <test+0x1310>
add    $0x1,%r15d
cmp    %r13d,%r15d
jne    2410 <test+0x1300>
add    $0x1,%r12d
cmp    0x8(%rsp),%r12d
jne    2400 <test+0x12f0>
cmpl   $0x2,0x4(%rsp)
jl     24e4 <test+0x13d4>
cmp    %r13d,0x10(%rsp)
jge    24e4 <test+0x13d4>
cmp    0x8(%rsp),%r14d
jge    24e4 <test+0x13d4>
mov    %r14d,%r12d
mov    0x4(%rsp),%ebp
mov    0x10(%rsp),%r15d
cs nopw 0x0(%rax,%rax,1)
nop
mov    $0x1,%ebx
cs nopw 0x0(%rax,%rax,1)
nop
mov    $0xd,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r12d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r15d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
add    $0x1,%ebx
cmp    %ebx,%ebp
jne    24a0 <test+0x1390>
add    $0x1,%r15d
cmp    %r13d,%r15d
jne    2490 <test+0x1380>
add    $0x1,%r12d
cmp    0x8(%rsp),%r12d
jne    2480 <test+0x1370>
cmp    $0x2,%r13d
jl     2574 <test+0x1464>
mov    0x14(%rsp),%eax
cmp    0x4(%rsp),%eax
jge    2574 <test+0x1464>
cmp    0x8(%rsp),%r14d
jge    2574 <test+0x1464>
mov    %r14d,%r12d
mov    0x4(%rsp),%ebp
nopw   0x0(%rax,%rax,1)
mov    $0x1,%r15d
cs nopw 0x0(%rax,%rax,1)
mov    0x14(%rsp),%ebx
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
mov    $0xe,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r12d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r15d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
add    $0x1,%ebx
cmp    %ebx,%ebp
jne    2530 <test+0x1420>
add    $0x1,%r15d
cmp    %r13d,%r15d
jne    2520 <test+0x1410>
add    $0x1,%r12d
cmp    0x8(%rsp),%r12d
jne    2510 <test+0x1400>
mov    0x8(%rsp),%r12d
cmp    %r12d,%r14d
setge  %al
mov    0xc(%rsp),%cl
xor    $0x1,%cl
or     %al,%cl
mov    0x4(%rsp),%r15d
jne    25f1 <test+0x14e1>
nop
mov    $0x1,%ebx
cs nopw 0x0(%rax,%rax,1)
nop
mov    $0x1,%ebp
cs nopw 0x0(%rax,%rax,1)
nop
mov    $0xf,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r14d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebp,%edi
xor    %eax,%eax
call   1030 <hash@plt>
add    $0x1,%ebp
cmp    %ebp,%r15d
jne    25b0 <test+0x14a0>
add    $0x1,%ebx
cmp    %r13d,%ebx
jne    25a0 <test+0x1490>
add    $0x1,%r14d
cmp    %r12d,%r14d
jne    2590 <test+0x1480>
add    $0x38,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
define void @test(i32 %0, i32 %1, i32 %2, i32 %3, i32 %4, i32 %5, i32 %6, i32 %7, i32 %8) {
%10 = alloca i32
%11 = alloca i32
%12 = alloca i32
%13 = alloca i32
%14 = alloca i32
%15 = alloca i32
%16 = alloca i32
%17 = alloca i32
%18 = alloca i32
%19 = alloca i32
%20 = alloca i32
%21 = alloca i32
%22 = alloca i32
%23 = alloca i32
%24 = alloca i32
store i32 %0, i32* %10
store i32 %1, i32* %11
store i32 %2, i32* %12
store i32 %3, i32* %13
store i32 %4, i32* %14
store i32 %5, i32* %15
store i32 %6, i32* %16
store i32 %7, i32* %17
store i32 %8, i32* %18
%25 = load i32, i32* %10
%26 = icmp sge i32 %25, 2
br i1 %26, label %27, label %453
27: ; preds = %9
%28 = load i32, i32* %11
%29 = icmp sge i32 %28, 4
br i1 %29, label %30, label %453
30: ; preds = %27
store i32 1, i32* %19
br label %31
31: ; preds = %449, %30
%32 = load i32, i32* %19
%33 = load i32, i32* %12
%34 = sub nsw i32 %33, 1
%35 = icmp sle i32 %32, %34
br i1 %35, label %36, label %452
36: ; preds = %31
store i32 1, i32* %21
br label %37
37: ; preds = %48, %36
%38 = load i32, i32* %21
%39 = load i32, i32* %10
%40 = icmp sle i32 %38, %39
br i1 %40, label %41, label %51
41: ; preds = %37
%42 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%43 = load i32, i32* %19
%44 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %43)
%45 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%46 = load i32, i32* %21
%47 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %46)
br label %48
48: ; preds = %41
%49 = load i32, i32* %21
%50 = add nsw i32 %49, 1
store i32 %50, i32* %21
br label %37
51: ; preds = %37
store i32 1, i32* %21
br label %52
52: ; preds = %70, %51
%53 = load i32, i32* %21
%54 = load i32, i32* %10
%55 = sub nsw i32 %54, 1
%56 = icmp sle i32 %53, %55
br i1 %56, label %57, label %73
57: ; preds = %52
%58 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 6)
%59 = load i32, i32* %19
%60 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %59)
%61 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%62 = load i32, i32* %21
%63 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %62)
%64 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 7)
%65 = load i32, i32* %19
%66 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %65)
%67 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%68 = load i32, i32* %21
%69 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %68)
br label %70
70: ; preds = %57
%71 = load i32, i32* %21
%72 = add nsw i32 %71, 1
store i32 %72, i32* %21
br label %52
73: ; preds = %52
store i32 1, i32* %21
br label %74
74: ; preds = %85, %73
%75 = load i32, i32* %21
%76 = load i32, i32* %10
%77 = icmp sle i32 %75, %76
br i1 %77, label %78, label %88
78: ; preds = %74
%79 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 3)
%80 = load i32, i32* %19
%81 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %80)
%82 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%83 = load i32, i32* %21
%84 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %83)
br label %85
85: ; preds = %78
%86 = load i32, i32* %21
%87 = add nsw i32 %86, 1
store i32 %87, i32* %21
br label %74
88: ; preds = %74
store i32 1, i32* %21
br label %89
89: ; preds = %101, %88
%90 = load i32, i32* %21
%91 = load i32, i32* %10
%92 = sub nsw i32 %91, 1
%93 = icmp sle i32 %90, %92
br i1 %93, label %94, label %104
94: ; preds = %89
%95 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%96 = load i32, i32* %19
%97 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %96)
%98 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 2)
%99 = load i32, i32* %21
%100 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %99)
br label %101
101: ; preds = %94
%102 = load i32, i32* %21
%103 = add nsw i32 %102, 1
store i32 %103, i32* %21
br label %89
104: ; preds = %89
%105 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%106 = load i32, i32* %19
%107 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %106)
%108 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 2)
%109 = load i32, i32* %10
%110 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %109)
store i32 1, i32* %21
br label %111
111: ; preds = %129, %104
%112 = load i32, i32* %21
%113 = load i32, i32* %10
%114 = sub nsw i32 %113, 1
%115 = icmp sle i32 %112, %114
br i1 %115, label %116, label %132
116: ; preds = %111
%117 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 6)
%118 = load i32, i32* %19
%119 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %118)
%120 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 2)
%121 = load i32, i32* %21
%122 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %121)
%123 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 7)
%124 = load i32, i32* %19
%125 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %124)
%126 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 2)
%127 = load i32, i32* %21
%128 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %127)
br label %129
129: ; preds = %116
%130 = load i32, i32* %21
%131 = add nsw i32 %130, 1
store i32 %131, i32* %21
br label %111
132: ; preds = %111
store i32 1, i32* %21
br label %133
133: ; preds = %145, %132
%134 = load i32, i32* %21
%135 = load i32, i32* %10
%136 = sub nsw i32 %135, 1
%137 = icmp sle i32 %134, %136
br i1 %137, label %138, label %148
138: ; preds = %133
%139 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 11)
%140 = load i32, i32* %19
%141 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %140)
%142 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%143 = load i32, i32* %21
%144 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %143)
br label %145
145: ; preds = %138
%146 = load i32, i32* %21
%147 = add nsw i32 %146, 1
store i32 %147, i32* %21
br label %133
148: ; preds = %133
store i32 3, i32* %20
br label %149
149: ; preds = %306, %148
%150 = load i32, i32* %20
%151 = load i32, i32* %11
%152 = mul nsw i32 2, %151
%153 = sub nsw i32 %152, 5
%154 = icmp sle i32 %150, %153
br i1 %154, label %155, label %309
155: ; preds = %149
store i32 1, i32* %21
br label %156
156: ; preds = %180, %155
%157 = load i32, i32* %21
%158 = load i32, i32* %10
%159 = sub nsw i32 %158, 1
%160 = icmp sle i32 %157, %159
br i1 %160, label %161, label %183
161: ; preds = %156
%162 = load i32, i32* %20
%163 = add nsw i32 %162, 1
%164 = srem i32 %163, 2
%165 = icmp eq i32 %164, 0
br i1 %165, label %166, label %179
166: ; preds = %161
%167 = load i32, i32* %20
%168 = sub nsw i32 %167, 1
%169 = sdiv i32 %168, 2
store i32 %169, i32* %23
%170 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 10)
%171 = load i32, i32* %19
%172 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %171)
%173 = load i32, i32* %20
%174 = sub nsw i32 %173, 1
%175 = sdiv i32 %174, 2
%176 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %175)
%177 = load i32, i32* %21
%178 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %177)
br label %179
179: ; preds = %166, %161
br label %180
180: ; preds = %179
%181 = load i32, i32* %21
%182 = add nsw i32 %181, 1
store i32 %182, i32* %21
br label %156
183: ; preds = %156
store i32 1, i32* %21
br label %184
184: ; preds = %207, %183
%185 = load i32, i32* %21
%186 = load i32, i32* %10
%187 = icmp sle i32 %185, %186
br i1 %187, label %188, label %210
188: ; preds = %184
%189 = load i32, i32* %20
%190 = add nsw i32 %189, 1
%191 = srem i32 %190, 2
%192 = icmp eq i32 %191, 0
br i1 %192, label %193, label %206
193: ; preds = %188
%194 = load i32, i32* %20
%195 = add nsw i32 %194, 1
%196 = sdiv i32 %195, 2
store i32 %196, i32* %23
%197 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 3)
%198 = load i32, i32* %19
%199 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %198)
%200 = load i32, i32* %20
%201 = add nsw i32 %200, 1
%202 = sdiv i32 %201, 2
%203 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %202)
%204 = load i32, i32* %21
%205 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %204)
br label %206
206: ; preds = %193, %188
br label %207
207: ; preds = %206
%208 = load i32, i32* %21
%209 = add nsw i32 %208, 1
store i32 %209, i32* %21
br label %184
210: ; preds = %184
store i32 1, i32* %21
br label %211
211: ; preds = %261, %210
%212 = load i32, i32* %21
%213 = load i32, i32* %10
%214 = sub nsw i32 %213, 1
%215 = icmp sle i32 %212, %214
br i1 %215, label %216, label %264
216: ; preds = %211
%217 = load i32, i32* %20
%218 = srem i32 %217, 2
%219 = icmp eq i32 %218, 0
br i1 %219, label %220, label %242
220: ; preds = %216
%221 = load i32, i32* %20
%222 = add nsw i32 %221, 2
%223 = sdiv i32 %222, 2
store i32 %223, i32* %23
%224 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 6)
%225 = load i32, i32* %19
%226 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %225)
%227 = load i32, i32* %20
%228 = add nsw i32 %227, 2
%229 = sdiv i32 %228, 2
%230 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %229)
%231 = load i32, i32* %21
%232 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %231)
%233 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 7)
%234 = load i32, i32* %19
%235 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %234)
%236 = load i32, i32* %20
%237 = add nsw i32 %236, 2
%238 = sdiv i32 %237, 2
%239 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %238)
%240 = load i32, i32* %21
%241 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %240)
br label %242
242: ; preds = %220, %216
%243 = load i32, i32* %20
%244 = add nsw i32 %243, 1
%245 = srem i32 %244, 2
%246 = icmp eq i32 %245, 0
br i1 %246, label %247, label %260
247: ; preds = %242
%248 = load i32, i32* %20
%249 = add nsw i32 %248, 3
%250 = sdiv i32 %249, 2
store i32 %250, i32* %23
%251 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%252 = load i32, i32* %19
%253 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %252)
%254 = load i32, i32* %20
%255 = add nsw i32 %254, 3
%256 = sdiv i32 %255, 2
%257 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %256)
%258 = load i32, i32* %21
%259 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %258)
br label %260
260: ; preds = %247, %242
br label %261
261: ; preds = %260
%262 = load i32, i32* %21
%263 = add nsw i32 %262, 1
store i32 %263, i32* %21
br label %211
264: ; preds = %211
%265 = load i32, i32* %20
%266 = add nsw i32 %265, 1
%267 = srem i32 %266, 2
%268 = icmp eq i32 %267, 0
br i1 %268, label %269, label %282
269: ; preds = %264
%270 = load i32, i32* %20
%271 = add nsw i32 %270, 3
%272 = sdiv i32 %271, 2
store i32 %272, i32* %23
%273 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%274 = load i32, i32* %19
%275 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %274)
%276 = load i32, i32* %20
%277 = add nsw i32 %276, 3
%278 = sdiv i32 %277, 2
%279 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %278)
%280 = load i32, i32* %10
%281 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %280)
br label %282
282: ; preds = %269, %264
store i32 1, i32* %21
br label %283
283: ; preds = %302, %282
%284 = load i32, i32* %21
%285 = load i32, i32* %10
%286 = sub nsw i32 %285, 1
%287 = icmp sle i32 %284, %286
br i1 %287, label %288, label %305
288: ; preds = %283
%289 = load i32, i32* %20
%290 = srem i32 %289, 2
%291 = icmp eq i32 %290, 0
br i1 %291, label %292, label %301
292: ; preds = %288
%293 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 11)
%294 = load i32, i32* %19
%295 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %294)
%296 = load i32, i32* %20
%297 = sdiv i32 %296, 2
%298 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %297)
%299 = load i32, i32* %21
%300 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %299)
br label %301
301: ; preds = %292, %288
br label %302
302: ; preds = %301
%303 = load i32, i32* %21
%304 = add nsw i32 %303, 1
store i32 %304, i32* %21
br label %283
305: ; preds = %283
br label %306
306: ; preds = %305
%307 = load i32, i32* %20
%308 = add nsw i32 %307, 1
store i32 %308, i32* %20
br label %149
309: ; preds = %149
%310 = load i32, i32* %11
%311 = mul nsw i32 2, %310
%312 = sub nsw i32 %311, 4
store i32 %312, i32* %20
store i32 1, i32* %21
br label %313
313: ; preds = %337, %309
%314 = load i32, i32* %21
%315 = load i32, i32* %10
%316 = sub nsw i32 %315, 1
%317 = icmp sle i32 %314, %316
br i1 %317, label %318, label %340
318: ; preds = %313
%319 = load i32, i32* %11
%320 = sub nsw i32 %319, 1
store i32 %320, i32* %23
%321 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 6)
%322 = load i32, i32* %19
%323 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %322)
%324 = load i32, i32* %11
%325 = sub nsw i32 %324, 1
%326 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %325)
%327 = load i32, i32* %21
%328 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %327)
%329 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 7)
%330 = load i32, i32* %19
%331 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %330)
%332 = load i32, i32* %11
%333 = sub nsw i32 %332, 1
%334 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %333)
%335 = load i32, i32* %21
%336 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %335)
br label %337
337: ; preds = %318
%338 = load i32, i32* %21
%339 = add nsw i32 %338, 1
store i32 %339, i32* %21
br label %313
340: ; preds = %313
store i32 1, i32* %21
br label %341
341: ; preds = %357, %340
%342 = load i32, i32* %21
%343 = load i32, i32* %10
%344 = sub nsw i32 %343, 1
%345 = icmp sle i32 %342, %344
br i1 %345, label %346, label %360
346: ; preds = %341
%347 = load i32, i32* %11
%348 = sub nsw i32 %347, 2
store i32 %348, i32* %23
%349 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 11)
%350 = load i32, i32* %19
%351 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %350)
%352 = load i32, i32* %11
%353 = sub nsw i32 %352, 2
%354 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %353)
%355 = load i32, i32* %21
%356 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %355)
br label %357
357: ; preds = %346
%358 = load i32, i32* %21
%359 = add nsw i32 %358, 1
store i32 %359, i32* %21
br label %341
360: ; preds = %341
%361 = load i32, i32* %11
%362 = mul nsw i32 2, %361
%363 = sub nsw i32 %362, 3
store i32 %363, i32* %20
store i32 1, i32* %21
br label %364
364: ; preds = %380, %360
%365 = load i32, i32* %21
%366 = load i32, i32* %10
%367 = sub nsw i32 %366, 1
%368 = icmp sle i32 %365, %367
br i1 %368, label %369, label %383
369: ; preds = %364
%370 = load i32, i32* %11
%371 = sub nsw i32 %370, 2
store i32 %371, i32* %23
%372 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 10)
%373 = load i32, i32* %19
%374 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %373)
%375 = load i32, i32* %11
%376 = sub nsw i32 %375, 2
%377 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %376)
%378 = load i32, i32* %21
%379 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %378)
br label %380
380: ; preds = %369
%381 = load i32, i32* %21
%382 = add nsw i32 %381, 1
store i32 %382, i32* %21
br label %364
383: ; preds = %364
store i32 1, i32* %21
br label %384
384: ; preds = %399, %383
%385 = load i32, i32* %21
%386 = load i32, i32* %10
%387 = icmp sle i32 %385, %386
br i1 %387, label %388, label %402
388: ; preds = %384
%389 = load i32, i32* %11
%390 = sub nsw i32 %389, 1
store i32 %390, i32* %23
%391 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 3)
%392 = load i32, i32* %19
%393 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %392)
%394 = load i32, i32* %11
%395 = sub nsw i32 %394, 1
%396 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %395)
%397 = load i32, i32* %21
%398 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %397)
br label %399
399: ; preds = %388
%400 = load i32, i32* %21
%401 = add nsw i32 %400, 1
store i32 %401, i32* %21
br label %384
402: ; preds = %384
%403 = load i32, i32* %11
%404 = mul nsw i32 2, %403
%405 = sub nsw i32 %404, 2
store i32 %405, i32* %20
store i32 1, i32* %21
br label %406
406: ; preds = %422, %402
%407 = load i32, i32* %21
%408 = load i32, i32* %10
%409 = sub nsw i32 %408, 1
%410 = icmp sle i32 %407, %409
br i1 %410, label %411, label %425
411: ; preds = %406
%412 = load i32, i32* %11
%413 = sub nsw i32 %412, 1
store i32 %413, i32* %23
%414 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 11)
%415 = load i32, i32* %19
%416 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %415)
%417 = load i32, i32* %11
%418 = sub nsw i32 %417, 1
%419 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %418)
%420 = load i32, i32* %21
%421 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %420)
br label %422
422: ; preds = %411
%423 = load i32, i32* %21
%424 = add nsw i32 %423, 1
store i32 %424, i32* %21
br label %406
425: ; preds = %406
%426 = load i32, i32* %11
%427 = mul nsw i32 2, %426
%428 = sub nsw i32 %427, 1
store i32 %428, i32* %20
store i32 1, i32* %21
br label %429
429: ; preds = %445, %425
%430 = load i32, i32* %21
%431 = load i32, i32* %10
%432 = sub nsw i32 %431, 1
%433 = icmp sle i32 %430, %432
br i1 %433, label %434, label %448
434: ; preds = %429
%435 = load i32, i32* %11
%436 = sub nsw i32 %435, 1
store i32 %436, i32* %23
%437 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 10)
%438 = load i32, i32* %19
%439 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %438)
%440 = load i32, i32* %11
%441 = sub nsw i32 %440, 1
%442 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %441)
%443 = load i32, i32* %21
%444 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %443)
br label %445
445: ; preds = %434
%446 = load i32, i32* %21
%447 = add nsw i32 %446, 1
store i32 %447, i32* %21
br label %429
448: ; preds = %429
br label %449
449: ; preds = %448
%450 = load i32, i32* %19
%451 = add nsw i32 %450, 1
store i32 %451, i32* %19
br label %31
452: ; preds = %31
br label %453
453: ; preds = %452, %27, %9
%454 = load i32, i32* %10
%455 = icmp sge i32 %454, 2
br i1 %455, label %456, label %645
456: ; preds = %453
%457 = load i32, i32* %11
%458 = icmp eq i32 %457, 3
br i1 %458, label %459, label %645
459: ; preds = %456
store i32 1, i32* %19
br label %460
460: ; preds = %641, %459
%461 = load i32, i32* %19
%462 = load i32, i32* %12
%463 = sub nsw i32 %462, 1
%464 = icmp sle i32 %461, %463
br i1 %464, label %465, label %644
465: ; preds = %460
store i32 1, i32* %21
br label %466
466: ; preds = %477, %465
%467 = load i32, i32* %21
%468 = load i32, i32* %10
%469 = icmp sle i32 %467, %468
br i1 %469, label %470, label %480
470: ; preds = %466
%471 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%472 = load i32, i32* %19
%473 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %472)
%474 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%475 = load i32, i32* %21
%476 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %475)
br label %477
477: ; preds = %470
%478 = load i32, i32* %21
%479 = add nsw i32 %478, 1
store i32 %479, i32* %21
br label %466
480: ; preds = %466
store i32 1, i32* %21
br label %481
481: ; preds = %499, %480
%482 = load i32, i32* %21
%483 = load i32, i32* %10
%484 = sub nsw i32 %483, 1
%485 = icmp sle i32 %482, %484
br i1 %485, label %486, label %502
486: ; preds = %481
%487 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 6)
%488 = load i32, i32* %19
%489 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %488)
%490 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%491 = load i32, i32* %21
%492 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %491)
%493 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 7)
%494 = load i32, i32* %19
%495 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %494)
%496 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%497 = load i32, i32* %21
%498 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %497)
br label %499
499: ; preds = %486
%500 = load i32, i32* %21
%501 = add nsw i32 %500, 1
store i32 %501, i32* %21
br label %481
502: ; preds = %481
store i32 1, i32* %21
br label %503
503: ; preds = %514, %502
%504 = load i32, i32* %21
%505 = load i32, i32* %10
%506 = icmp sle i32 %504, %505
br i1 %506, label %507, label %517
507: ; preds = %503
%508 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 3)
%509 = load i32, i32* %19
%510 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %509)
%511 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%512 = load i32, i32* %21
%513 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %512)
br label %514
514: ; preds = %507
%515 = load i32, i32* %21
%516 = add nsw i32 %515, 1
store i32 %516, i32* %21
br label %503
517: ; preds = %503
store i32 1, i32* %21
br label %518
518: ; preds = %530, %517
%519 = load i32, i32* %21
%520 = load i32, i32* %10
%521 = sub nsw i32 %520, 1
%522 = icmp sle i32 %519, %521
br i1 %522, label %523, label %533
523: ; preds = %518
%524 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%525 = load i32, i32* %19
%526 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %525)
%527 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 2)
%528 = load i32, i32* %21
%529 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %528)
br label %530
530: ; preds = %523
%531 = load i32, i32* %21
%532 = add nsw i32 %531, 1
store i32 %532, i32* %21
br label %518
533: ; preds = %518
%534 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%535 = load i32, i32* %19
%536 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %535)
%537 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 2)
%538 = load i32, i32* %10
%539 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %538)
store i32 1, i32* %21
br label %540
540: ; preds = %558, %533
%541 = load i32, i32* %21
%542 = load i32, i32* %10
%543 = sub nsw i32 %542, 1
%544 = icmp sle i32 %541, %543
br i1 %544, label %545, label %561
545: ; preds = %540
%546 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 6)
%547 = load i32, i32* %19
%548 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %547)
%549 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 2)
%550 = load i32, i32* %21
%551 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %550)
%552 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 7)
%553 = load i32, i32* %19
%554 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %553)
%555 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 2)
%556 = load i32, i32* %21
%557 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %556)
br label %558
558: ; preds = %545
%559 = load i32, i32* %21
%560 = add nsw i32 %559, 1
store i32 %560, i32* %21
br label %540
561: ; preds = %540
store i32 1, i32* %21
br label %562
562: ; preds = %574, %561
%563 = load i32, i32* %21
%564 = load i32, i32* %10
%565 = sub nsw i32 %564, 1
%566 = icmp sle i32 %563, %565
br i1 %566, label %567, label %577
567: ; preds = %562
%568 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 11)
%569 = load i32, i32* %19
%570 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %569)
%571 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%572 = load i32, i32* %21
%573 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %572)
br label %574
574: ; preds = %567
%575 = load i32, i32* %21
%576 = add nsw i32 %575, 1
store i32 %576, i32* %21
br label %562
577: ; preds = %562
store i32 1, i32* %21
br label %578
578: ; preds = %590, %577
%579 = load i32, i32* %21
%580 = load i32, i32* %10
%581 = sub nsw i32 %580, 1
%582 = icmp sle i32 %579, %581
br i1 %582, label %583, label %593
583: ; preds = %578
%584 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 10)
%585 = load i32, i32* %19
%586 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %585)
%587 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%588 = load i32, i32* %21
%589 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %588)
br label %590
590: ; preds = %583
%591 = load i32, i32* %21
%592 = add nsw i32 %591, 1
store i32 %592, i32* %21
br label %578
593: ; preds = %578
store i32 1, i32* %21
br label %594
594: ; preds = %605, %593
%595 = load i32, i32* %21
%596 = load i32, i32* %10
%597 = icmp sle i32 %595, %596
br i1 %597, label %598, label %608
598: ; preds = %594
%599 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 3)
%600 = load i32, i32* %19
%601 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %600)
%602 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 2)
%603 = load i32, i32* %21
%604 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %603)
br label %605
605: ; preds = %598
%606 = load i32, i32* %21
%607 = add nsw i32 %606, 1
store i32 %607, i32* %21
br label %594
608: ; preds = %594
store i32 1, i32* %21
br label %609
609: ; preds = %621, %608
%610 = load i32, i32* %21
%611 = load i32, i32* %10
%612 = sub nsw i32 %611, 1
%613 = icmp sle i32 %610, %612
br i1 %613, label %614, label %624
614: ; preds = %609
%615 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 11)
%616 = load i32, i32* %19
%617 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %616)
%618 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 2)
%619 = load i32, i32* %21
%620 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %619)
br label %621
621: ; preds = %614
%622 = load i32, i32* %21
%623 = add nsw i32 %622, 1
store i32 %623, i32* %21
br label %609
624: ; preds = %609
store i32 1, i32* %21
br label %625
625: ; preds = %637, %624
%626 = load i32, i32* %21
%627 = load i32, i32* %10
%628 = sub nsw i32 %627, 1
%629 = icmp sle i32 %626, %628
br i1 %629, label %630, label %640
630: ; preds = %625
%631 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 10)
%632 = load i32, i32* %19
%633 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %632)
%634 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 2)
%635 = load i32, i32* %21
%636 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %635)
br label %637
637: ; preds = %630
%638 = load i32, i32* %21
%639 = add nsw i32 %638, 1
store i32 %639, i32* %21
br label %625
640: ; preds = %625
br label %641
641: ; preds = %640
%642 = load i32, i32* %19
%643 = add nsw i32 %642, 1
store i32 %643, i32* %19
br label %460
644: ; preds = %460
br label %645
645: ; preds = %644, %456, %453
%646 = load i32, i32* %10
%647 = icmp sge i32 %646, 2
br i1 %647, label %648, label %746
648: ; preds = %645
%649 = load i32, i32* %11
%650 = icmp eq i32 %649, 2
br i1 %650, label %651, label %746
651: ; preds = %648
store i32 1, i32* %19
br label %652
652: ; preds = %742, %651
%653 = load i32, i32* %19
%654 = load i32, i32* %12
%655 = sub nsw i32 %654, 1
%656 = icmp sle i32 %653, %655
br i1 %656, label %657, label %745
657: ; preds = %652
store i32 1, i32* %21
br label %658
658: ; preds = %669, %657
%659 = load i32, i32* %21
%660 = load i32, i32* %10
%661 = icmp sle i32 %659, %660
br i1 %661, label %662, label %672
662: ; preds = %658
%663 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%664 = load i32, i32* %19
%665 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %664)
%666 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%667 = load i32, i32* %21
%668 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %667)
br label %669
669: ; preds = %662
%670 = load i32, i32* %21
%671 = add nsw i32 %670, 1
store i32 %671, i32* %21
br label %658
672: ; preds = %658
store i32 1, i32* %21
br label %673
673: ; preds = %691, %672
%674 = load i32, i32* %21
%675 = load i32, i32* %10
%676 = sub nsw i32 %675, 1
%677 = icmp sle i32 %674, %676
br i1 %677, label %678, label %694
678: ; preds = %673
%679 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 6)
%680 = load i32, i32* %19
%681 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %680)
%682 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%683 = load i32, i32* %21
%684 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %683)
%685 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 7)
%686 = load i32, i32* %19
%687 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %686)
%688 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%689 = load i32, i32* %21
%690 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %689)
br label %691
691: ; preds = %678
%692 = load i32, i32* %21
%693 = add nsw i32 %692, 1
store i32 %693, i32* %21
br label %673
694: ; preds = %673
store i32 1, i32* %21
br label %695
695: ; preds = %706, %694
%696 = load i32, i32* %21
%697 = load i32, i32* %10
%698 = icmp sle i32 %696, %697
br i1 %698, label %699, label %709
699: ; preds = %695
%700 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 3)
%701 = load i32, i32* %19
%702 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %701)
%703 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%704 = load i32, i32* %21
%705 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %704)
br label %706
706: ; preds = %699
%707 = load i32, i32* %21
%708 = add nsw i32 %707, 1
store i32 %708, i32* %21
br label %695
709: ; preds = %695
store i32 1, i32* %21
br label %710
710: ; preds = %722, %709
%711 = load i32, i32* %21
%712 = load i32, i32* %10
%713 = sub nsw i32 %712, 1
%714 = icmp sle i32 %711, %713
br i1 %714, label %715, label %725
715: ; preds = %710
%716 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 11)
%717 = load i32, i32* %19
%718 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %717)
%719 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%720 = load i32, i32* %21
%721 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %720)
br label %722
722: ; preds = %715
%723 = load i32, i32* %21
%724 = add nsw i32 %723, 1
store i32 %724, i32* %21
br label %710
725: ; preds = %710
store i32 1, i32* %21
br label %726
726: ; preds = %738, %725
%727 = load i32, i32* %21
%728 = load i32, i32* %10
%729 = sub nsw i32 %728, 1
%730 = icmp sle i32 %727, %729
br i1 %730, label %731, label %741
731: ; preds = %726
%732 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 10)
%733 = load i32, i32* %19
%734 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %733)
%735 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%736 = load i32, i32* %21
%737 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %736)
br label %738
738: ; preds = %731
%739 = load i32, i32* %21
%740 = add nsw i32 %739, 1
store i32 %740, i32* %21
br label %726
741: ; preds = %726
br label %742
742: ; preds = %741
%743 = load i32, i32* %19
%744 = add nsw i32 %743, 1
store i32 %744, i32* %19
br label %652
745: ; preds = %652
br label %746
746: ; preds = %745, %648, %645
%747 = load i32, i32* %10
%748 = icmp eq i32 %747, 1
br i1 %748, label %749, label %864
749: ; preds = %746
%750 = load i32, i32* %11
%751 = icmp sge i32 %750, 3
br i1 %751, label %752, label %864
752: ; preds = %749
store i32 1, i32* %19
br label %753
753: ; preds = %860, %752
%754 = load i32, i32* %19
%755 = load i32, i32* %12
%756 = sub nsw i32 %755, 1
%757 = icmp sle i32 %754, %756
br i1 %757, label %758, label %863
758: ; preds = %753
store i32 -1, i32* %20
br label %759
759: ; preds = %780, %758
%760 = load i32, i32* %20
%761 = icmp sle i32 %760, 0
br i1 %761, label %762, label %783
762: ; preds = %759
%763 = load i32, i32* %20
%764 = add nsw i32 %763, 1
%765 = srem i32 %764, 2
%766 = icmp eq i32 %765, 0
br i1 %766, label %767, label %779
767: ; preds = %762
%768 = load i32, i32* %20
%769 = add nsw i32 %768, 3
%770 = sdiv i32 %769, 2
store i32 %770, i32* %23
%771 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%772 = load i32, i32* %19
%773 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %772)
%774 = load i32, i32* %20
%775 = add nsw i32 %774, 3
%776 = sdiv i32 %775, 2
%777 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %776)
%778 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
br label %779
779: ; preds = %767, %762
br label %780
780: ; preds = %779
%781 = load i32, i32* %20
%782 = add nsw i32 %781, 1
store i32 %782, i32* %20
br label %759
783: ; preds = %759
store i32 1, i32* %20
br label %784
784: ; preds = %825, %783
%785 = load i32, i32* %20
%786 = load i32, i32* %11
%787 = mul nsw i32 2, %786
%788 = sub nsw i32 %787, 5
%789 = icmp sle i32 %785, %788
br i1 %789, label %790, label %828
790: ; preds = %784
%791 = load i32, i32* %20
%792 = add nsw i32 %791, 1
%793 = srem i32 %792, 2
%794 = icmp eq i32 %793, 0
br i1 %794, label %795, label %807
795: ; preds = %790
%796 = load i32, i32* %20
%797 = add nsw i32 %796, 1
%798 = sdiv i32 %797, 2
store i32 %798, i32* %23
%799 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 3)
%800 = load i32, i32* %19
%801 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %800)
%802 = load i32, i32* %20
%803 = add nsw i32 %802, 1
%804 = sdiv i32 %803, 2
%805 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %804)
%806 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
br label %807
807: ; preds = %795, %790
%808 = load i32, i32* %20
%809 = add nsw i32 %808, 1
%810 = srem i32 %809, 2
%811 = icmp eq i32 %810, 0
br i1 %811, label %812, label %824
812: ; preds = %807
%813 = load i32, i32* %20
%814 = add nsw i32 %813, 3
%815 = sdiv i32 %814, 2
store i32 %815, i32* %23
%816 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%817 = load i32, i32* %19
%818 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %817)
%819 = load i32, i32* %20
%820 = add nsw i32 %819, 3
%821 = sdiv i32 %820, 2
%822 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %821)
%823 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
br label %824
824: ; preds = %812, %807
br label %825
825: ; preds = %824
%826 = load i32, i32* %20
%827 = add nsw i32 %826, 1
store i32 %827, i32* %20
br label %784
828: ; preds = %784
%829 = load i32, i32* %11
%830 = mul nsw i32 2, %829
%831 = sub nsw i32 %830, 4
store i32 %831, i32* %20
br label %832
832: ; preds = %856, %828
%833 = load i32, i32* %20
%834 = load i32, i32* %11
%835 = mul nsw i32 2, %834
%836 = sub nsw i32 %835, 3
%837 = icmp sle i32 %833, %836
br i1 %837, label %838, label %859
838: ; preds = %832
%839 = load i32, i32* %20
%840 = add nsw i32 %839, 1
%841 = srem i32 %840, 2
%842 = icmp eq i32 %841, 0
br i1 %842, label %843, label %855
843: ; preds = %838
%844 = load i32, i32* %20
%845 = add nsw i32 %844, 1
%846 = sdiv i32 %845, 2
store i32 %846, i32* %23
%847 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 3)
%848 = load i32, i32* %19
%849 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %848)
%850 = load i32, i32* %20
%851 = add nsw i32 %850, 1
%852 = sdiv i32 %851, 2
%853 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %852)
%854 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
br label %855
855: ; preds = %843, %838
br label %856
856: ; preds = %855
%857 = load i32, i32* %20
%858 = add nsw i32 %857, 1
store i32 %858, i32* %20
br label %832
859: ; preds = %832
br label %860
860: ; preds = %859
%861 = load i32, i32* %19
%862 = add nsw i32 %861, 1
store i32 %862, i32* %19
br label %753
863: ; preds = %753
br label %864
864: ; preds = %863, %749, %746
%865 = load i32, i32* %10
%866 = icmp eq i32 %865, 1
br i1 %866, label %867, label %891
867: ; preds = %864
%868 = load i32, i32* %11
%869 = icmp eq i32 %868, 2
br i1 %869, label %870, label %891
870: ; preds = %867
store i32 1, i32* %19
br label %871
871: ; preds = %887, %870
%872 = load i32, i32* %19
%873 = load i32, i32* %12
%874 = sub nsw i32 %873, 1
%875 = icmp sle i32 %872, %874
br i1 %875, label %876, label %890
876: ; preds = %871
%877 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%878 = load i32, i32* %19
%879 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %878)
%880 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%881 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%882 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 3)
%883 = load i32, i32* %19
%884 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %883)
%885 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%886 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
br label %887
887: ; preds = %876
%888 = load i32, i32* %19
%889 = add nsw i32 %888, 1
store i32 %889, i32* %19
br label %871
890: ; preds = %871
br label %891
891: ; preds = %890, %867, %864
%892 = load i32, i32* %10
%893 = icmp sge i32 %892, 2
br i1 %893, label %894, label %1046
894: ; preds = %891
%895 = load i32, i32* %11
%896 = icmp sge i32 %895, 3
br i1 %896, label %897, label %1046
897: ; preds = %894
store i32 1, i32* %19
br label %898
898: ; preds = %1042, %897
%899 = load i32, i32* %19
%900 = load i32, i32* %12
%901 = sub nsw i32 %900, 1
%902 = icmp sle i32 %899, %901
br i1 %902, label %903, label %1045
903: ; preds = %898
store i32 1, i32* %21
br label %904
904: ; preds = %915, %903
%905 = load i32, i32* %21
%906 = load i32, i32* %10
%907 = icmp sle i32 %905, %906
br i1 %907, label %908, label %918
908: ; preds = %904
%909 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 2)
%910 = load i32, i32* %19
%911 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %910)
%912 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%913 = load i32, i32* %21
%914 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %913)
br label %915
915: ; preds = %908
%916 = load i32, i32* %21
%917 = add nsw i32 %916, 1
store i32 %917, i32* %21
br label %904
918: ; preds = %904
store i32 1, i32* %21
br label %919
919: ; preds = %931, %918
%920 = load i32, i32* %21
%921 = load i32, i32* %10
%922 = sub nsw i32 %921, 1
%923 = icmp sle i32 %920, %922
br i1 %923, label %924, label %934
924: ; preds = %919
%925 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 8)
%926 = load i32, i32* %19
%927 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %926)
%928 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%929 = load i32, i32* %21
%930 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %929)
br label %931
931: ; preds = %924
%932 = load i32, i32* %21
%933 = add nsw i32 %932, 1
store i32 %933, i32* %21
br label %919
934: ; preds = %919
store i32 3, i32* %20
br label %935
935: ; preds = %1015, %934
%936 = load i32, i32* %20
%937 = load i32, i32* %11
%938 = mul nsw i32 2, %937
%939 = sub nsw i32 %938, 2
%940 = icmp sle i32 %936, %939
br i1 %940, label %941, label %1018
941: ; preds = %935
store i32 1, i32* %21
br label %942
942: ; preds = %960, %941
%943 = load i32, i32* %21
%944 = load i32, i32* %10
%945 = icmp sle i32 %943, %944
br i1 %945, label %946, label %963
946: ; preds = %942
%947 = load i32, i32* %20
%948 = srem i32 %947, 2
%949 = icmp eq i32 %948, 0
br i1 %949, label %950, label %959
950: ; preds = %946
%951 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 2)
%952 = load i32, i32* %19
%953 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %952)
%954 = load i32, i32* %20
%955 = sdiv i32 %954, 2
%956 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %955)
%957 = load i32, i32* %21
%958 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %957)
br label %959
959: ; preds = %950, %946
br label %960
960: ; preds = %959
%961 = load i32, i32* %21
%962 = add nsw i32 %961, 1
store i32 %962, i32* %21
br label %942
963: ; preds = %942
store i32 1, i32* %21
br label %964
964: ; preds = %983, %963
%965 = load i32, i32* %21
%966 = load i32, i32* %10
%967 = sub nsw i32 %966, 1
%968 = icmp sle i32 %965, %967
br i1 %968, label %969, label %986
969: ; preds = %964
%970 = load i32, i32* %20
%971 = srem i32 %970, 2
%972 = icmp eq i32 %971, 0
br i1 %972, label %973, label %982
973: ; preds = %969
%974 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 8)
%975 = load i32, i32* %19
%976 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %975)
%977 = load i32, i32* %20
%978 = sdiv i32 %977, 2
%979 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %978)
%980 = load i32, i32* %21
%981 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %980)
br label %982
982: ; preds = %973, %969
br label %983
983: ; preds = %982
%984 = load i32, i32* %21
%985 = add nsw i32 %984, 1
store i32 %985, i32* %21
br label %964
986: ; preds = %964
store i32 1, i32* %21
br label %987
987: ; preds = %1011, %986
%988 = load i32, i32* %21
%989 = load i32, i32* %10
%990 = sub nsw i32 %989, 1
%991 = icmp sle i32 %988, %990
br i1 %991, label %992, label %1014
992: ; preds = %987
%993 = load i32, i32* %20
%994 = add nsw i32 %993, 1
%995 = srem i32 %994, 2
%996 = icmp eq i32 %995, 0
br i1 %996, label %997, label %1010
997: ; preds = %992
%998 = load i32, i32* %20
%999 = sub nsw i32 %998, 1
%1000 = sdiv i32 %999, 2
store i32 %1000, i32* %23
%1001 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 9)
%1002 = load i32, i32* %19
%1003 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %1002)
%1004 = load i32, i32* %20
%1005 = sub nsw i32 %1004, 1
%1006 = sdiv i32 %1005, 2
%1007 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %1006)
%1008 = load i32, i32* %21
%1009 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %1008)
br label %1010
1010: ; preds = %997, %992
br label %1011
1011: ; preds = %1010
%1012 = load i32, i32* %21
%1013 = add nsw i32 %1012, 1
store i32 %1013, i32* %21
br label %987
1014: ; preds = %987
br label %1015
1015: ; preds = %1014
%1016 = load i32, i32* %20
%1017 = add nsw i32 %1016, 1
store i32 %1017, i32* %20
br label %935
1018: ; preds = %935
%1019 = load i32, i32* %11
%1020 = mul nsw i32 2, %1019
%1021 = sub nsw i32 %1020, 1
store i32 %1021, i32* %20
store i32 1, i32* %21
br label %1022
1022: ; preds = %1038, %1018
%1023 = load i32, i32* %21
%1024 = load i32, i32* %10
%1025 = sub nsw i32 %1024, 1
%1026 = icmp sle i32 %1023, %1025
br i1 %1026, label %1027, label %1041
1027: ; preds = %1022
%1028 = load i32, i32* %11
%1029 = sub nsw i32 %1028, 1
store i32 %1029, i32* %23
%1030 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 9)
%1031 = load i32, i32* %19
%1032 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %1031)
%1033 = load i32, i32* %11
%1034 = sub nsw i32 %1033, 1
%1035 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %1034)
%1036 = load i32, i32* %21
%1037 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %1036)
br label %1038
1038: ; preds = %1027
%1039 = load i32, i32* %21
%1040 = add nsw i32 %1039, 1
store i32 %1040, i32* %21
br label %1022
1041: ; preds = %1022
br label %1042
1042: ; preds = %1041
%1043 = load i32, i32* %19
%1044 = add nsw i32 %1043, 1
store i32 %1044, i32* %19
br label %898
1045: ; preds = %898
br label %1046
1046: ; preds = %1045, %894, %891
%1047 = load i32, i32* %10
%1048 = icmp sge i32 %1047, 2
br i1 %1048, label %1049, label %1110
1049: ; preds = %1046
%1050 = load i32, i32* %11
%1051 = icmp eq i32 %1050, 2
br i1 %1051, label %1052, label %1110
1052: ; preds = %1049
store i32 1, i32* %19
br label %1053
1053: ; preds = %1106, %1052
%1054 = load i32, i32* %19
%1055 = load i32, i32* %12
%1056 = sub nsw i32 %1055, 1
%1057 = icmp sle i32 %1054, %1056
br i1 %1057, label %1058, label %1109
1058: ; preds = %1053
store i32 1, i32* %21
br label %1059
1059: ; preds = %1070, %1058
%1060 = load i32, i32* %21
%1061 = load i32, i32* %10
%1062 = icmp sle i32 %1060, %1061
br i1 %1062, label %1063, label %1073
1063: ; preds = %1059
%1064 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 2)
%1065 = load i32, i32* %19
%1066 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %1065)
%1067 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%1068 = load i32, i32* %21
%1069 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %1068)
br label %1070
1070: ; preds = %1063
%1071 = load i32, i32* %21
%1072 = add nsw i32 %1071, 1
store i32 %1072, i32* %21
br label %1059
1073: ; preds = %1059
store i32 1, i32* %21
br label %1074
1074: ; preds = %1086, %1073
%1075 = load i32, i32* %21
%1076 = load i32, i32* %10
%1077 = sub nsw i32 %1076, 1
%1078 = icmp sle i32 %1075, %1077
br i1 %1078, label %1079, label %1089
1079: ; preds = %1074
%1080 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 8)
%1081 = load i32, i32* %19
%1082 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %1081)
%1083 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%1084 = load i32, i32* %21
%1085 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %1084)
br label %1086
1086: ; preds = %1079
%1087 = load i32, i32* %21
%1088 = add nsw i32 %1087, 1
store i32 %1088, i32* %21
br label %1074
1089: ; preds = %1074
store i32 1, i32* %21
br label %1090
1090: ; preds = %1102, %1089
%1091 = load i32, i32* %21
%1092 = load i32, i32* %10
%1093 = sub nsw i32 %1092, 1
%1094 = icmp sle i32 %1091, %1093
br i1 %1094, label %1095, label %1105
1095: ; preds = %1090
%1096 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 9)
%1097 = load i32, i32* %19
%1098 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %1097)
%1099 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%1100 = load i32, i32* %21
%1101 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %1100)
br label %1102
1102: ; preds = %1095
%1103 = load i32, i32* %21
%1104 = add nsw i32 %1103, 1
store i32 %1104, i32* %21
br label %1090
1105: ; preds = %1090
br label %1106
1106: ; preds = %1105
%1107 = load i32, i32* %19
%1108 = add nsw i32 %1107, 1
store i32 %1108, i32* %19
br label %1053
1109: ; preds = %1053
br label %1110
1110: ; preds = %1109, %1049, %1046
%1111 = load i32, i32* %10
%1112 = icmp eq i32 %1111, 1
br i1 %1112, label %1113, label %1150
1113: ; preds = %1110
%1114 = load i32, i32* %11
%1115 = icmp sge i32 %1114, 2
br i1 %1115, label %1116, label %1150
1116: ; preds = %1113
store i32 1, i32* %19
br label %1117
1117: ; preds = %1146, %1116
%1118 = load i32, i32* %19
%1119 = load i32, i32* %12
%1120 = sub nsw i32 %1119, 1
%1121 = icmp sle i32 %1118, %1120
br i1 %1121, label %1122, label %1149
1122: ; preds = %1117
store i32 2, i32* %20
br label %1123
1123: ; preds = %1142, %1122
%1124 = load i32, i32* %20
%1125 = load i32, i32* %11
%1126 = mul nsw i32 2, %1125
%1127 = sub nsw i32 %1126, 2
%1128 = icmp sle i32 %1124, %1127
br i1 %1128, label %1129, label %1145
1129: ; preds = %1123
%1130 = load i32, i32* %20
%1131 = srem i32 %1130, 2
%1132 = icmp eq i32 %1131, 0
br i1 %1132, label %1133, label %1141
1133: ; preds = %1129
%1134 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 2)
%1135 = load i32, i32* %19
%1136 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %1135)
%1137 = load i32, i32* %20
%1138 = sdiv i32 %1137, 2
%1139 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %1138)
%1140 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
br label %1141
1141: ; preds = %1133, %1129
br label %1142
1142: ; preds = %1141
%1143 = load i32, i32* %20
%1144 = add nsw i32 %1143, 1
store i32 %1144, i32* %20
br label %1123
1145: ; preds = %1123
br label %1146
1146: ; preds = %1145
%1147 = load i32, i32* %19
%1148 = add nsw i32 %1147, 1
store i32 %1148, i32* %19
br label %1117
1149: ; preds = %1117
br label %1150
1150: ; preds = %1149, %1113, %1110
%1151 = load i32, i32* %10
%1152 = icmp sge i32 %1151, 2
br i1 %1152, label %1153, label %1194
1153: ; preds = %1150
%1154 = load i32, i32* %11
%1155 = icmp sge i32 %1154, 2
br i1 %1155, label %1156, label %1194
1156: ; preds = %1153
store i32 1, i32* %19
br label %1157
1157: ; preds = %1190, %1156
%1158 = load i32, i32* %19
%1159 = load i32, i32* %12
%1160 = sub nsw i32 %1159, 1
%1161 = icmp sle i32 %1158, %1160
br i1 %1161, label %1162, label %1193
1162: ; preds = %1157
store i32 1, i32* %20
br label %1163
1163: ; preds = %1186, %1162
%1164 = load i32, i32* %20
%1165 = load i32, i32* %11
%1166 = sub nsw i32 %1165, 1
%1167 = icmp sle i32 %1164, %1166
br i1 %1167, label %1168, label %1189
1168: ; preds = %1163
store i32 1, i32* %21
br label %1169
1169: ; preds = %1182, %1168
%1170 = load i32, i32* %21
%1171 = load i32, i32* %10
%1172 = sub nsw i32 %1171, 1
%1173 = icmp sle i32 %1170, %1172
br i1 %1173, label %1174, label %1185
1174: ; preds = %1169
%1175 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 4)
%1176 = load i32, i32* %19
%1177 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %1176)
%1178 = load i32, i32* %20
%1179 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %1178)
%1180 = load i32, i32* %21
%1181 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %1180)
br label %1182
1182: ; preds = %1174
%1183 = load i32, i32* %21
%1184 = add nsw i32 %1183, 1
store i32 %1184, i32* %21
br label %1169
1185: ; preds = %1169
br label %1186
1186: ; preds = %1185
%1187 = load i32, i32* %20
%1188 = add nsw i32 %1187, 1
store i32 %1188, i32* %20
br label %1163
1189: ; preds = %1163
br label %1190
1190: ; preds = %1189
%1191 = load i32, i32* %19
%1192 = add nsw i32 %1191, 1
store i32 %1192, i32* %19
br label %1157
1193: ; preds = %1157
br label %1194
1194: ; preds = %1193, %1153, %1150
%1195 = load i32, i32* %10
%1196 = icmp sge i32 %1195, 2
br i1 %1196, label %1197, label %1238
1197: ; preds = %1194
%1198 = load i32, i32* %11
%1199 = icmp sge i32 %1198, 2
br i1 %1199, label %1200, label %1238
1200: ; preds = %1197
store i32 1, i32* %19
br label %1201
1201: ; preds = %1234, %1200
%1202 = load i32, i32* %19
%1203 = load i32, i32* %12
%1204 = sub nsw i32 %1203, 1
%1205 = icmp sle i32 %1202, %1204
br i1 %1205, label %1206, label %1237
1206: ; preds = %1201
store i32 1, i32* %20
br label %1207
1207: ; preds = %1230, %1206
%1208 = load i32, i32* %20
%1209 = load i32, i32* %11
%1210 = sub nsw i32 %1209, 1
%1211 = icmp sle i32 %1208, %1210
br i1 %1211, label %1212, label %1233
1212: ; preds = %1207
store i32 1, i32* %21
br label %1213
1213: ; preds = %1226, %1212
%1214 = load i32, i32* %21
%1215 = load i32, i32* %10
%1216 = sub nsw i32 %1215, 1
%1217 = icmp sle i32 %1214, %1216
br i1 %1217, label %1218, label %1229
1218: ; preds = %1213
%1219 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 5)
%1220 = load i32, i32* %19
%1221 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %1220)
%1222 = load i32, i32* %20
%1223 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %1222)
%1224 = load i32, i32* %21
%1225 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %1224)
br label %1226
1226: ; preds = %1218
%1227 = load i32, i32* %21
%1228 = add nsw i32 %1227, 1
store i32 %1228, i32* %21
br label %1213
1229: ; preds = %1213
br label %1230
1230: ; preds = %1229
%1231 = load i32, i32* %20
%1232 = add nsw i32 %1231, 1
store i32 %1232, i32* %20
br label %1207
1233: ; preds = %1207
br label %1234
1234: ; preds = %1233
%1235 = load i32, i32* %19
%1236 = add nsw i32 %1235, 1
store i32 %1236, i32* %19
br label %1201
1237: ; preds = %1201
br label %1238
1238: ; preds = %1237, %1197, %1194
%1239 = load i32, i32* %10
%1240 = load i32, i32* %13
%1241 = add nsw i32 %1240, 1
%1242 = icmp sge i32 %1239, %1241
br i1 %1242, label %1243, label %1289
1243: ; preds = %1238
%1244 = load i32, i32* %11
%1245 = load i32, i32* %14
%1246 = add nsw i32 %1245, 1
%1247 = icmp sge i32 %1244, %1246
br i1 %1247, label %1248, label %1289
1248: ; preds = %1243
%1249 = load i32, i32* %15
store i32 %1249, i32* %19
br label %1250
1250: ; preds = %1285, %1248
%1251 = load i32, i32* %19
%1252 = load i32, i32* %12
%1253 = sub nsw i32 %1252, 1
%1254 = icmp sle i32 %1251, %1253
br i1 %1254, label %1255, label %1288
1255: ; preds = %1250
%1256 = load i32, i32* %14
store i32 %1256, i32* %20
br label %1257
1257: ; preds = %1281, %1255
%1258 = load i32, i32* %20
%1259 = load i32, i32* %11
%1260 = sub nsw i32 %1259, 1
%1261 = icmp sle i32 %1258, %1260
br i1 %1261, label %1262, label %1284
1262: ; preds = %1257
%1263 = load i32, i32* %13
store i32 %1263, i32* %21
br label %1264
1264: ; preds = %1277, %1262
%1265 = load i32, i32* %21
%1266 = load i32, i32* %10
%1267 = sub nsw i32 %1266, 1
%1268 = icmp sle i32 %1265, %1267
br i1 %1268, label %1269, label %1280
1269: ; preds = %1264
%1270 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 12)
%1271 = load i32, i32* %19
%1272 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %1271)
%1273 = load i32, i32* %20
%1274 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %1273)
%1275 = load i32, i32* %21
%1276 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %1275)
br label %1277
1277: ; preds = %1269
%1278 = load i32, i32* %21
%1279 = add nsw i32 %1278, 1
store i32 %1279, i32* %21
br label %1264
1280: ; preds = %1264
br label %1281
1281: ; preds = %1280
%1282 = load i32, i32* %20
%1283 = add nsw i32 %1282, 1
store i32 %1283, i32* %20
br label %1257
1284: ; preds = %1257
br label %1285
1285: ; preds = %1284
%1286 = load i32, i32* %19
%1287 = add nsw i32 %1286, 1
store i32 %1287, i32* %19
br label %1250
1288: ; preds = %1250
br label %1289
1289: ; preds = %1288, %1243, %1238
%1290 = load i32, i32* %10
%1291 = icmp sge i32 %1290, 2
br i1 %1291, label %1292, label %1337
1292: ; preds = %1289
%1293 = load i32, i32* %11
%1294 = load i32, i32* %14
%1295 = add nsw i32 %1294, 1
%1296 = icmp sge i32 %1293, %1295
br i1 %1296, label %1297, label %1337
1297: ; preds = %1292
%1298 = load i32, i32* %15
store i32 %1298, i32* %19
br label %1299
1299: ; preds = %1333, %1297
%1300 = load i32, i32* %19
%1301 = load i32, i32* %12
%1302 = sub nsw i32 %1301, 1
%1303 = icmp sle i32 %1300, %1302
br i1 %1303, label %1304, label %1336
1304: ; preds = %1299
%1305 = load i32, i32* %14
store i32 %1305, i32* %20
br label %1306
1306: ; preds = %1329, %1304
%1307 = load i32, i32* %20
%1308 = load i32, i32* %11
%1309 = sub nsw i32 %1308, 1
%1310 = icmp sle i32 %1307, %1309
br i1 %1310, label %1311, label %1332
1311: ; preds = %1306
store i32 1, i32* %21
br label %1312
1312: ; preds = %1325, %1311
%1313 = load i32, i32* %21
%1314 = load i32, i32* %10
%1315 = sub nsw i32 %1314, 1
%1316 = icmp sle i32 %1313, %1315
br i1 %1316, label %1317, label %1328
1317: ; preds = %1312
%1318 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 13)
%1319 = load i32, i32* %19
%1320 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %1319)
%1321 = load i32, i32* %20
%1322 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %1321)
%1323 = load i32, i32* %21
%1324 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %1323)
br label %1325
1325: ; preds = %1317
%1326 = load i32, i32* %21
%1327 = add nsw i32 %1326, 1
store i32 %1327, i32* %21
br label %1312
1328: ; preds = %1312
br label %1329
1329: ; preds = %1328
%1330 = load i32, i32* %20
%1331 = add nsw i32 %1330, 1
store i32 %1331, i32* %20
br label %1306
1332: ; preds = %1306
br label %1333
1333: ; preds = %1332
%1334 = load i32, i32* %19
%1335 = add nsw i32 %1334, 1
store i32 %1335, i32* %19
br label %1299
1336: ; preds = %1299
br label %1337
1337: ; preds = %1336, %1292, %1289
%1338 = load i32, i32* %10
%1339 = load i32, i32* %13
%1340 = add nsw i32 %1339, 1
%1341 = icmp sge i32 %1338, %1340
br i1 %1341, label %1342, label %1385
1342: ; preds = %1337
%1343 = load i32, i32* %11
%1344 = icmp sge i32 %1343, 2
br i1 %1344, label %1345, label %1385
1345: ; preds = %1342
%1346 = load i32, i32* %15
store i32 %1346, i32* %19
br label %1347
1347: ; preds = %1381, %1345
%1348 = load i32, i32* %19
%1349 = load i32, i32* %12
%1350 = sub nsw i32 %1349, 1
%1351 = icmp sle i32 %1348, %1350
br i1 %1351, label %1352, label %1384
1352: ; preds = %1347
store i32 1, i32* %20
br label %1353
1353: ; preds = %1377, %1352
%1354 = load i32, i32* %20
%1355 = load i32, i32* %11
%1356 = sub nsw i32 %1355, 1
%1357 = icmp sle i32 %1354, %1356
br i1 %1357, label %1358, label %1380
1358: ; preds = %1353
%1359 = load i32, i32* %13
store i32 %1359, i32* %21
br label %1360
1360: ; preds = %1373, %1358
%1361 = load i32, i32* %21
%1362 = load i32, i32* %10
%1363 = sub nsw i32 %1362, 1
%1364 = icmp sle i32 %1361, %1363
br i1 %1364, label %1365, label %1376
1365: ; preds = %1360
%1366 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 14)
%1367 = load i32, i32* %19
%1368 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %1367)
%1369 = load i32, i32* %20
%1370 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %1369)
%1371 = load i32, i32* %21
%1372 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %1371)
br label %1373
1373: ; preds = %1365
%1374 = load i32, i32* %21
%1375 = add nsw i32 %1374, 1
store i32 %1375, i32* %21
br label %1360
1376: ; preds = %1360
br label %1377
1377: ; preds = %1376
%1378 = load i32, i32* %20
%1379 = add nsw i32 %1378, 1
store i32 %1379, i32* %20
br label %1353
1380: ; preds = %1353
br label %1381
1381: ; preds = %1380
%1382 = load i32, i32* %19
%1383 = add nsw i32 %1382, 1
store i32 %1383, i32* %19
br label %1347
1384: ; preds = %1347
br label %1385
1385: ; preds = %1384, %1342, %1337
%1386 = load i32, i32* %10
%1387 = icmp sge i32 %1386, 2
br i1 %1387, label %1388, label %1430
1388: ; preds = %1385
%1389 = load i32, i32* %11
%1390 = icmp sge i32 %1389, 2
br i1 %1390, label %1391, label %1430
1391: ; preds = %1388
%1392 = load i32, i32* %15
store i32 %1392, i32* %19
br label %1393
1393: ; preds = %1426, %1391
%1394 = load i32, i32* %19
%1395 = load i32, i32* %12
%1396 = sub nsw i32 %1395, 1
%1397 = icmp sle i32 %1394, %1396
br i1 %1397, label %1398, label %1429
1398: ; preds = %1393
store i32 1, i32* %20
br label %1399
1399: ; preds = %1422, %1398
%1400 = load i32, i32* %20
%1401 = load i32, i32* %11
%1402 = sub nsw i32 %1401, 1
%1403 = icmp sle i32 %1400, %1402
br i1 %1403, label %1404, label %1425
1404: ; preds = %1399
store i32 1, i32* %21
br label %1405
1405: ; preds = %1418, %1404
%1406 = load i32, i32* %21
%1407 = load i32, i32* %10
%1408 = sub nsw i32 %1407, 1
%1409 = icmp sle i32 %1406, %1408
br i1 %1409, label %1410, label %1421
1410: ; preds = %1405
%1411 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 15)
%1412 = load i32, i32* %19
%1413 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %1412)
%1414 = load i32, i32* %20
%1415 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %1414)
%1416 = load i32, i32* %21
%1417 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %1416)
br label %1418
1418: ; preds = %1410
%1419 = load i32, i32* %21
%1420 = add nsw i32 %1419, 1
store i32 %1420, i32* %21
br label %1405
1421: ; preds = %1405
br label %1422
1422: ; preds = %1421
%1423 = load i32, i32* %20
%1424 = add nsw i32 %1423, 1
store i32 %1424, i32* %20
br label %1399
1425: ; preds = %1399
br label %1426
1426: ; preds = %1425
%1427 = load i32, i32* %19
%1428 = add nsw i32 %1427, 1
store i32 %1428, i32* %19
br label %1393
1429: ; preds = %1393
br label %1430
1430: ; preds = %1429, %1388, %1385
ret void
}

LLVM IR (-O2):
define void @test(i32 %0, i32 %1, i32 %2, i32 %3, i32 %4, i32 %5, i32 %6, i32 %7, i32 %8) {
%10 = icmp sgt i32 %0, 1
%11 = icmp sgt i32 %1, 3
%12 = and i1 %10, %11
%13 = icmp sgt i32 %2, 1
%14 = and i1 %12, %13
br i1 %14, label %15, label %211
15: ; preds = %9
%16 = shl nuw nsw i32 %1, 1
%17 = add i32 %16, -5
%18 = add nsw i32 %1, -1
%19 = add nsw i32 %1, -2
%20 = tail call i32 @llvm.smax.i32(i32 %17, i32 3)
br label %21
21: ; preds = %208, %15
%22 = phi i32 [ 1, %15 ], [ %209, %208 ]
br label %23
23: ; preds = %21, %23
%24 = phi i32 [ %29, %23 ], [ 1, %21 ]
%25 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%26 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %22)
%27 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%28 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %24)
%29 = add nuw i32 %24, 1
%30 = icmp eq i32 %24, %0
br i1 %30, label %31, label %23
31: ; preds = %23, %31
%32 = phi i32 [ %41, %31 ], [ 1, %23 ]
%33 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 6)
%34 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %22)
%35 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%36 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %32)
%37 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 7)
%38 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %22)
%39 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%40 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %32)
%41 = add nuw nsw i32 %32, 1
%42 = icmp eq i32 %41, %0
br i1 %42, label %43, label %31
43: ; preds = %31, %43
%44 = phi i32 [ %49, %43 ], [ 1, %31 ]
%45 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 3)
%46 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %22)
%47 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%48 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %44)
%49 = add nuw i32 %44, 1
%50 = icmp eq i32 %44, %0
br i1 %50, label %51, label %43
51: ; preds = %43, %51
%52 = phi i32 [ %57, %51 ], [ 1, %43 ]
%53 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%54 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %22)
%55 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 2)
%56 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %52)
%57 = add nuw nsw i32 %52, 1
%58 = icmp eq i32 %57, %0
br i1 %58, label %59, label %51
59: ; preds = %51
%60 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%61 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %22)
%62 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 2)
%63 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %0)
br label %64
64: ; preds = %59, %64
%65 = phi i32 [ %74, %64 ], [ 1, %59 ]
%66 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 6)
%67 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %22)
%68 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 2)
%69 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %65)
%70 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 7)
%71 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %22)
%72 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 2)
%73 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %65)
%74 = add nuw nsw i32 %65, 1
%75 = icmp eq i32 %74, %0
br i1 %75, label %76, label %64
76: ; preds = %64, %76
%77 = phi i32 [ %82, %76 ], [ 1, %64 ]
%78 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 11)
%79 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %22)
%80 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%81 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %77)
%82 = add nuw nsw i32 %77, 1
%83 = icmp eq i32 %82, %0
br i1 %83, label %86, label %76
84: ; preds = %153
%85 = icmp eq i32 %87, %20
br i1 %85, label %156, label %86
86: ; preds = %76, %84
%87 = phi i32 [ %93, %84 ], [ 3, %76 ]
%88 = and i32 %87, 1
%89 = icmp eq i32 %88, 0
%90 = add nsw i32 %87, -1
%91 = lshr i32 %90, 1
br label %97
92: ; preds = %104
%93 = add nuw i32 %87, 1
%94 = and i32 %93, 1
%95 = icmp eq i32 %94, 0
%96 = lshr i32 %93, 1
br label %112
97: ; preds = %86, %104
%98 = phi i32 [ 1, %86 ], [ %105, %104 ]
br i1 %89, label %104, label %99
99: ; preds = %97
%100 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 10)
%101 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %22)
%102 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %91)
%103 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %98)
br label %104
104: ; preds = %97, %99
%105 = add nuw nsw i32 %98, 1
%106 = icmp eq i32 %105, %0
br i1 %106, label %92, label %97
107: ; preds = %119
%108 = add nuw nsw i32 %87, 3
%109 = lshr i32 %108, 1
%110 = add nuw nsw i32 %87, 2
%111 = lshr i32 %110, 1
br label %122
112: ; preds = %92, %119
%113 = phi i32 [ 1, %92 ], [ %120, %119 ]
br i1 %95, label %114, label %119
114: ; preds = %112
%115 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 3)
%116 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %22)
%117 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %96)
%118 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %113)
br label %119
119: ; preds = %112, %114
%120 = add nuw i32 %113, 1
%121 = icmp eq i32 %113, %0
br i1 %121, label %107, label %112
122: ; preds = %107, %129
%123 = phi i32 [ 1, %107 ], [ %136, %129 ]
br i1 %89, label %124, label %129
124: ; preds = %122
%125 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 6)
%126 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %22)
%127 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %111)
%128 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %123)
br label %129
129: ; preds = %122, %124
%130 = phi i32 [ 7, %124 ], [ 1, %122 ]
%131 = phi i32 [ %111, %124 ], [ %109, %122 ]
%132 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %130)
%133 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %22)
%134 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %131)
%135 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %123)
%136 = add nuw nsw i32 %123, 1
%137 = icmp eq i32 %136, %0
br i1 %137, label %138, label %122
138: ; preds = %129
br i1 %95, label %139, label %144
139: ; preds = %138
%140 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%141 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %22)
%142 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %109)
%143 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %0)
br label %144
144: ; preds = %138, %139
%145 = lshr i32 %87, 1
br label %146
146: ; preds = %144, %153
%147 = phi i32 [ 1, %144 ], [ %154, %153 ]
br i1 %89, label %148, label %153
148: ; preds = %146
%149 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 11)
%150 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %22)
%151 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %145)
%152 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %147)
br label %153
153: ; preds = %146, %148
%154 = add nuw nsw i32 %147, 1
%155 = icmp eq i32 %154, %0
br i1 %155, label %84, label %146
156: ; preds = %84, %156
%157 = phi i32 [ %166, %156 ], [ 1, %84 ]
%158 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 6)
%159 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %22)
%160 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %18)
%161 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %157)
%162 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 7)
%163 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %22)
%164 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %18)
%165 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %157)
%166 = add nuw nsw i32 %157, 1
%167 = icmp eq i32 %166, %0
br i1 %167, label %168, label %156
168: ; preds = %156, %168
%169 = phi i32 [ %174, %168 ], [ 1, %156 ]
%170 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 11)
%171 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %22)
%172 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %19)
%173 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %169)
%174 = add nuw nsw i32 %169, 1
%175 = icmp eq i32 %174, %0
br i1 %175, label %176, label %168
176: ; preds = %168, %176
%177 = phi i32 [ %182, %176 ], [ 1, %168 ]
%178 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 10)
%179 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %22)
%180 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %19)
%181 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %177)
%182 = add nuw nsw i32 %177, 1
%183 = icmp eq i32 %182, %0
br i1 %183, label %184, label %176
184: ; preds = %176, %184
%185 = phi i32 [ %190, %184 ], [ 1, %176 ]
%186 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 3)
%187 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %22)
%188 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %18)
%189 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %185)
%190 = add nuw i32 %185, 1
%191 = icmp eq i32 %185, %0
br i1 %191, label %192, label %184
192: ; preds = %184, %192
%193 = phi i32 [ %198, %192 ], [ 1, %184 ]
%194 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 11)
%195 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %22)
%196 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %18)
%197 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %193)
%198 = add nuw nsw i32 %193, 1
%199 = icmp eq i32 %198, %0
br i1 %199, label %200, label %192
200: ; preds = %192, %200
%201 = phi i32 [ %206, %200 ], [ 1, %192 ]
%202 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 10)
%203 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %22)
%204 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %18)
%205 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %201)
%206 = add nuw nsw i32 %201, 1
%207 = icmp eq i32 %206, %0
br i1 %207, label %208, label %200
208: ; preds = %200
%209 = add nuw nsw i32 %22, 1
%210 = icmp eq i32 %209, %2
br i1 %210, label %211, label %21
211: ; preds = %208, %9
%212 = icmp eq i32 %1, 3
%213 = and i1 %10, %212
%214 = and i1 %213, %13
br i1 %214, label %215, label %313
215: ; preds = %211, %310
%216 = phi i32 [ %311, %310 ], [ 1, %211 ]
br label %217
217: ; preds = %215, %217
%218 = phi i32 [ %223, %217 ], [ 1, %215 ]
%219 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%220 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %216)
%221 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%222 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %218)
%223 = add nuw i32 %218, 1
%224 = icmp eq i32 %218, %0
br i1 %224, label %225, label %217
225: ; preds = %217, %225
%226 = phi i32 [ %235, %225 ], [ 1, %217 ]
%227 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 6)
%228 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %216)
%229 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%230 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %226)
%231 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 7)
%232 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %216)
%233 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%234 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %226)
%235 = add nuw nsw i32 %226, 1
%236 = icmp eq i32 %235, %0
br i1 %236, label %237, label %225
237: ; preds = %225, %237
%238 = phi i32 [ %243, %237 ], [ 1, %225 ]
%239 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 3)
%240 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %216)
%241 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%242 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %238)
%243 = add nuw i32 %238, 1
%244 = icmp eq i32 %238, %0
br i1 %244, label %245, label %237
245: ; preds = %237, %245
%246 = phi i32 [ %251, %245 ], [ 1, %237 ]
%247 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%248 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %216)
%249 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 2)
%250 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %246)
%251 = add nuw nsw i32 %246, 1
%252 = icmp eq i32 %251, %0
br i1 %252, label %253, label %245
253: ; preds = %245
%254 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%255 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %216)
%256 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 2)
%257 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %0)
br label %258
258: ; preds = %253, %258
%259 = phi i32 [ %268, %258 ], [ 1, %253 ]
%260 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 6)
%261 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %216)
%262 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 2)
%263 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %259)
%264 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 7)
%265 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %216)
%266 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 2)
%267 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %259)
%268 = add nuw nsw i32 %259, 1
%269 = icmp eq i32 %268, %0
br i1 %269, label %270, label %258
270: ; preds = %258, %270
%271 = phi i32 [ %276, %270 ], [ 1, %258 ]
%272 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 11)
%273 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %216)
%274 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%275 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %271)
%276 = add nuw nsw i32 %271, 1
%277 = icmp eq i32 %276, %0
br i1 %277, label %278, label %270
278: ; preds = %270, %278
%279 = phi i32 [ %284, %278 ], [ 1, %270 ]
%280 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 10)
%281 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %216)
%282 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%283 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %279)
%284 = add nuw nsw i32 %279, 1
%285 = icmp eq i32 %284, %0
br i1 %285, label %286, label %278
286: ; preds = %278, %286
%287 = phi i32 [ %292, %286 ], [ 1, %278 ]
%288 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 3)
%289 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %216)
%290 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 2)
%291 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %287)
%292 = add nuw i32 %287, 1
%293 = icmp eq i32 %287, %0
br i1 %293, label %294, label %286
294: ; preds = %286, %294
%295 = phi i32 [ %300, %294 ], [ 1, %286 ]
%296 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 11)
%297 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %216)
%298 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 2)
%299 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %295)
%300 = add nuw nsw i32 %295, 1
%301 = icmp eq i32 %300, %0
br i1 %301, label %302, label %294
302: ; preds = %294, %302
%303 = phi i32 [ %308, %302 ], [ 1, %294 ]
%304 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 10)
%305 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %216)
%306 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 2)
%307 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %303)
%308 = add nuw nsw i32 %303, 1
%309 = icmp eq i32 %308, %0
br i1 %309, label %310, label %302
310: ; preds = %302
%311 = add nuw nsw i32 %216, 1
%312 = icmp eq i32 %311, %2
br i1 %312, label %313, label %215
313: ; preds = %310, %211
%314 = icmp eq i32 %1, 2
%315 = and i1 %10, %314
%316 = and i1 %315, %13
br i1 %316, label %317, label %366
317: ; preds = %313, %363
%318 = phi i32 [ %364, %363 ], [ 1, %313 ]
br label %319
319: ; preds = %317, %319
%320 = phi i32 [ %325, %319 ], [ 1, %317 ]
%321 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%322 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %318)
%323 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%324 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %320)
%325 = add nuw i32 %320, 1
%326 = icmp eq i32 %320, %0
br i1 %326, label %327, label %319
327: ; preds = %319, %327
%328 = phi i32 [ %337, %327 ], [ 1, %319 ]
%329 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 6)
%330 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %318)
%331 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%332 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %328)
%333 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 7)
%334 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %318)
%335 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%336 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %328)
%337 = add nuw nsw i32 %328, 1
%338 = icmp eq i32 %337, %0
br i1 %338, label %339, label %327
339: ; preds = %327, %339
%340 = phi i32 [ %345, %339 ], [ 1, %327 ]
%341 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 3)
%342 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %318)
%343 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%344 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %340)
%345 = add nuw i32 %340, 1
%346 = icmp eq i32 %340, %0
br i1 %346, label %347, label %339
347: ; preds = %339, %347
%348 = phi i32 [ %353, %347 ], [ 1, %339 ]
%349 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 11)
%350 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %318)
%351 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%352 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %348)
%353 = add nuw nsw i32 %348, 1
%354 = icmp eq i32 %353, %0
br i1 %354, label %355, label %347
355: ; preds = %347, %355
%356 = phi i32 [ %361, %355 ], [ 1, %347 ]
%357 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 10)
%358 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %318)
%359 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%360 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %356)
%361 = add nuw nsw i32 %356, 1
%362 = icmp eq i32 %361, %0
br i1 %362, label %363, label %355
363: ; preds = %355
%364 = add nuw nsw i32 %318, 1
%365 = icmp eq i32 %364, %2
br i1 %365, label %366, label %317
366: ; preds = %363, %313
%367 = icmp eq i32 %0, 1
%368 = icmp sgt i32 %1, 2
%369 = and i1 %367, %368
%370 = and i1 %369, %13
br i1 %370, label %371, label %409
371: ; preds = %366
%372 = shl nuw nsw i32 %1, 1
%373 = add i32 %372, -5
%374 = tail call i32 @llvm.smax.i32(i32 %373, i32 1)
%375 = add nsw i32 %372, -2
%376 = sdiv i32 %375, 2
br label %377
377: ; preds = %371, %402
%378 = phi i32 [ 1, %371 ], [ %407, %402 ]
%379 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%380 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %378)
%381 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%382 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
br label %383
383: ; preds = %377, %400
%384 = phi i32 [ %385, %400 ], [ 1, %377 ]
%385 = add nuw i32 %384, 1
%386 = and i32 %385, 1
%387 = icmp eq i32 %386, 0
br i1 %387, label %388, label %400
388: ; preds = %383
%389 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 3)
%390 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %378)
%391 = lshr i32 %385, 1
%392 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %391)
%393 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%394 = add nuw nsw i32 %384, 3
%395 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%396 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %378)
%397 = lshr i32 %394, 1
%398 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %397)
%399 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
br label %400
400: ; preds = %383, %388
%401 = icmp eq i32 %384, %374
br i1 %401, label %402, label %383
402: ; preds = %400
%403 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 3)
%404 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %378)
%405 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %376)
%406 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%407 = add nuw nsw i32 %378, 1
%408 = icmp eq i32 %407, %2
br i1 %408, label %409, label %377
409: ; preds = %402, %366
%410 = and i1 %367, %314
%411 = and i1 %410, %13
br i1 %411, label %412, label %424
412: ; preds = %409, %412
%413 = phi i32 [ %422, %412 ], [ 1, %409 ]
%414 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%415 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %413)
%416 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%417 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%418 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 3)
%419 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %413)
%420 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%421 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%422 = add nuw nsw i32 %413, 1
%423 = icmp eq i32 %422, %2
br i1 %423, label %424, label %412
424: ; preds = %412, %409
%425 = and i1 %10, %368
%426 = and i1 %425, %13
br i1 %426, label %427, label %502
427: ; preds = %424
%428 = shl nuw nsw i32 %1, 1
%429 = add i32 %428, -2
%430 = add nsw i32 %1, -1
%431 = tail call i32 @llvm.smax.i32(i32 %429, i32 3)
br label %432
432: ; preds = %499, %427
%433 = phi i32 [ 1, %427 ], [ %500, %499 ]
br label %434
434: ; preds = %432, %434
%435 = phi i32 [ %440, %434 ], [ 1, %432 ]
%436 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 2)
%437 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %433)
%438 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%439 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %435)
%440 = add nuw i32 %435, 1
%441 = icmp eq i32 %435, %0
br i1 %441, label %442, label %434
442: ; preds = %434, %442
%443 = phi i32 [ %448, %442 ], [ 1, %434 ]
%444 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 8)
%445 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %433)
%446 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%447 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %443)
%448 = add nuw nsw i32 %443, 1
%449 = icmp eq i32 %448, %0
br i1 %449, label %450, label %442
450: ; preds = %442, %488
%451 = phi i32 [ %489, %488 ], [ 3, %442 ]
%452 = and i32 %451, 1
%453 = icmp eq i32 %452, 0
%454 = lshr i32 %451, 1
br label %455
455: ; preds = %450, %462
%456 = phi i32 [ 1, %450 ], [ %463, %462 ]
br i1 %453, label %457, label %462
457: ; preds = %455
%458 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 2)
%459 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %433)
%460 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %454)
%461 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %456)
br label %462
462: ; preds = %455, %457
%463 = add nuw i32 %456, 1
%464 = icmp eq i32 %456, %0
br i1 %464, label %468, label %455
465: ; preds = %475
%466 = add nsw i32 %451, -1
%467 = lshr i32 %466, 1
br label %478
468: ; preds = %462, %475
%469 = phi i32 [ %476, %475 ], [ 1, %462 ]
br i1 %453, label %470, label %475
470: ; preds = %468
%471 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 8)
%472 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %433)
%473 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %454)
%474 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %469)
br label %475
475: ; preds = %468, %470
%476 = add nuw nsw i32 %469, 1
%477 = icmp eq i32 %476, %0
br i1 %477, label %465, label %468
478: ; preds = %465, %485
%479 = phi i32 [ 1, %465 ], [ %486, %485 ]
br i1 %453, label %485, label %480
480: ; preds = %478
%481 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 9)
%482 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %433)
%483 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %467)
%484 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %479)
br label %485
485: ; preds = %478, %480
%486 = add nuw nsw i32 %479, 1
%487 = icmp eq i32 %486, %0
br i1 %487, label %488, label %478
488: ; preds = %485
%489 = add nuw nsw i32 %451, 1
%490 = icmp eq i32 %451, %431
br i1 %490, label %491, label %450
491: ; preds = %488, %491
%492 = phi i32 [ %497, %491 ], [ 1, %488 ]
%493 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 9)
%494 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %433)
%495 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %430)
%496 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %492)
%497 = add nuw nsw i32 %492, 1
%498 = icmp eq i32 %497, %0
br i1 %498, label %499, label %491
499: ; preds = %491
%500 = add nuw nsw i32 %433, 1
%501 = icmp eq i32 %500, %2
br i1 %501, label %502, label %432
502: ; preds = %499, %424
br i1 %316, label %503, label %532
503: ; preds = %502, %529
%504 = phi i32 [ %530, %529 ], [ 1, %502 ]
br label %505
505: ; preds = %503, %505
%506 = phi i32 [ %511, %505 ], [ 1, %503 ]
%507 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 2)
%508 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %504)
%509 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%510 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %506)
%511 = add nuw i32 %506, 1
%512 = icmp eq i32 %506, %0
br i1 %512, label %513, label %505
513: ; preds = %505, %513
%514 = phi i32 [ %519, %513 ], [ 1, %505 ]
%515 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 8)
%516 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %504)
%517 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%518 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %514)
%519 = add nuw nsw i32 %514, 1
%520 = icmp eq i32 %519, %0
br i1 %520, label %521, label %513
521: ; preds = %513, %521
%522 = phi i32 [ %527, %521 ], [ 1, %513 ]
%523 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 9)
%524 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %504)
%525 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%526 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %522)
%527 = add nuw nsw i32 %522, 1
%528 = icmp eq i32 %527, %0
br i1 %528, label %529, label %521
529: ; preds = %521
%530 = add nuw nsw i32 %504, 1
%531 = icmp eq i32 %530, %2
br i1 %531, label %532, label %503
532: ; preds = %529, %502
%533 = icmp sgt i32 %1, 1
%534 = and i1 %367, %533
%535 = and i1 %534, %13
br i1 %535, label %536, label %559
536: ; preds = %532
%537 = shl nuw nsw i32 %1, 1
%538 = add i32 %537, -2
%539 = tail call i32 @llvm.smax.i32(i32 %538, i32 2)
%540 = or i32 %539, 1
br label %541
541: ; preds = %556, %536
%542 = phi i32 [ 1, %536 ], [ %557, %556 ]
br label %543
543: ; preds = %541, %553
%544 = phi i32 [ %554, %553 ], [ 2, %541 ]
%545 = and i32 %544, 1
%546 = icmp eq i32 %545, 0
br i1 %546, label %547, label %553
547: ; preds = %543
%548 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 2)
%549 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %542)
%550 = lshr i32 %544, 1
%551 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %550)
%552 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
br label %553
553: ; preds = %543, %547
%554 = add nuw nsw i32 %544, 1
%555 = icmp eq i32 %554, %540
br i1 %555, label %556, label %543
556: ; preds = %553
%557 = add nuw nsw i32 %542, 1
%558 = icmp eq i32 %557, %2
br i1 %558, label %559, label %541
559: ; preds = %556, %532
%560 = and i1 %10, %533
%561 = and i1 %560, %13
br i1 %561, label %562, label %598
562: ; preds = %559, %577
%563 = phi i32 [ %578, %577 ], [ 1, %559 ]
br label %564
564: ; preds = %574, %562
%565 = phi i32 [ %575, %574 ], [ 1, %562 ]
br label %566
566: ; preds = %564, %566
%567 = phi i32 [ %572, %566 ], [ 1, %564 ]
%568 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 4)
%569 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %563)
%570 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %565)
%571 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %567)
%572 = add nuw nsw i32 %567, 1
%573 = icmp eq i32 %572, %0
br i1 %573, label %574, label %566
574: ; preds = %566
%575 = add nuw nsw i32 %565, 1
%576 = icmp eq i32 %575, %1
br i1 %576, label %577, label %564
577: ; preds = %574
%578 = add nuw nsw i32 %563, 1
%579 = icmp eq i32 %578, %2
br i1 %579, label %580, label %562
580: ; preds = %577, %595
%581 = phi i32 [ %596, %595 ], [ 1, %577 ]
br label %582
582: ; preds = %592, %580
%583 = phi i32 [ %593, %592 ], [ 1, %580 ]
br label %584
584: ; preds = %582, %584
%585 = phi i32 [ %590, %584 ], [ 1, %582 ]
%586 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 5)
%587 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %581)
%588 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %583)
%589 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %585)
%590 = add nuw nsw i32 %585, 1
%591 = icmp eq i32 %590, %0
br i1 %591, label %592, label %584
592: ; preds = %584
%593 = add nuw nsw i32 %583, 1
%594 = icmp eq i32 %593, %1
br i1 %594, label %595, label %582
595: ; preds = %592
%596 = add nuw nsw i32 %581, 1
%597 = icmp eq i32 %596, %2
br i1 %597, label %598, label %580
598: ; preds = %595, %559
%599 = icmp slt i32 %3, %0
%600 = icmp slt i32 %4, %1
%601 = and i1 %599, %600
%602 = icmp slt i32 %5, %2
%603 = and i1 %601, %602
br i1 %603, label %604, label %622
604: ; preds = %598, %619
%605 = phi i32 [ %620, %619 ], [ %5, %598 ]
br label %606
606: ; preds = %616, %604
%607 = phi i32 [ %617, %616 ], [ %4, %604 ]
br label %608
608: ; preds = %606, %608
%609 = phi i32 [ %614, %608 ], [ %3, %606 ]
%610 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 12)
%611 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %605)
%612 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %607)
%613 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %609)
%614 = add i32 %609, 1
%615 = icmp eq i32 %614, %0
br i1 %615, label %616, label %608
616: ; preds = %608
%617 = add i32 %607, 1
%618 = icmp eq i32 %617, %1
br i1 %618, label %619, label %606
619: ; preds = %616
%620 = add i32 %605, 1
%621 = icmp eq i32 %620, %2
br i1 %621, label %622, label %604
622: ; preds = %619, %598
%623 = and i1 %10, %600
%624 = and i1 %623, %602
br i1 %624, label %625, label %643
625: ; preds = %622, %640
%626 = phi i32 [ %641, %640 ], [ %5, %622 ]
br label %627
627: ; preds = %637, %625
%628 = phi i32 [ %638, %637 ], [ %4, %625 ]
br label %629
629: ; preds = %627, %629
%630 = phi i32 [ %635, %629 ], [ 1, %627 ]
%631 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 13)
%632 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %626)
%633 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %628)
%634 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %630)
%635 = add nuw nsw i32 %630, 1
%636 = icmp eq i32 %635, %0
br i1 %636, label %637, label %629
637: ; preds = %629
%638 = add i32 %628, 1
%639 = icmp eq i32 %638, %1
br i1 %639, label %640, label %627
640: ; preds = %637
%641 = add i32 %626, 1
%642 = icmp eq i32 %641, %2
br i1 %642, label %643, label %625
643: ; preds = %640, %622
%644 = and i1 %533, %599
%645 = and i1 %644, %602
br i1 %645, label %646, label %664
646: ; preds = %643, %661
%647 = phi i32 [ %662, %661 ], [ %5, %643 ]
br label %648
648: ; preds = %658, %646
%649 = phi i32 [ %659, %658 ], [ 1, %646 ]
br label %650
650: ; preds = %648, %650
%651 = phi i32 [ %656, %650 ], [ %3, %648 ]
%652 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 14)
%653 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %647)
%654 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %649)
%655 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %651)
%656 = add i32 %651, 1
%657 = icmp eq i32 %656, %0
br i1 %657, label %658, label %650
658: ; preds = %650
%659 = add nuw nsw i32 %649, 1
%660 = icmp eq i32 %659, %1
br i1 %660, label %661, label %648
661: ; preds = %658
%662 = add i32 %647, 1
%663 = icmp eq i32 %662, %2
br i1 %663, label %664, label %646
664: ; preds = %661, %643
%665 = and i1 %560, %602
br i1 %665, label %666, label %684
666: ; preds = %664, %681
%667 = phi i32 [ %682, %681 ], [ %5, %664 ]
br label %668
668: ; preds = %678, %666
%669 = phi i32 [ %679, %678 ], [ 1, %666 ]
br label %670
670: ; preds = %668, %670
%671 = phi i32 [ %676, %670 ], [ 1, %668 ]
%672 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 15)
%673 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %667)
%674 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %669)
%675 = tail call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %671)
%676 = add nuw nsw i32 %671, 1
%677 = icmp eq i32 %676, %0
br i1 %677, label %678, label %670
678: ; preds = %670
%679 = add nuw nsw i32 %669, 1
%680 = icmp eq i32 %679, %1
br i1 %680, label %681, label %668
681: ; preds = %678
%682 = add i32 %667, 1
%683 = icmp eq i32 %682, %2
br i1 %683, label %684, label %666
684: ; preds = %681, %664
ret void
}