void test(int n) {
  int c1, c2;
  int i, j, k, p, q;
  for (c1 = 0;
       c1 <= (((n - 5) < 0) ? -((-(n - 5) + (3) - 1) / (3)) : (n - 5) / (3));
       c1++) {
    for (i = ((3 * c1 + 1) > (1) ? (3 * c1 + 1) : (1)); i <= 3 * c1 + 3; i++) {
      {
        hash(1);
        hash(i);
        hash(c1);
      };
    }
  }
  if (n == 1) {
    {
      hash(1);
      hash(1);
      hash(0);
    };
    for (k = 0; k <= ((0) < (0) ? (0) : (0)); k++) {
      for (p = ((0) > ((((-3 * k - 1) < 0) ? -((-(-3 * k - 1)) / (3))
                                           : ((-3 * k - 1) + (3) - 1) / (3)))
                    ? (0)
                    : ((((-3 * k - 1) < 0) ? -((-(-3 * k - 1)) / (3))
                                           : ((-3 * k - 1) + (3) - 1) / (3))));
           p <= (((((-3 * k + 1) < 0) ? -((-(-3 * k + 1) + (3) - 1) / (3))
                                      : (-3 * k + 1) / (3))) < (0)
                     ? ((((-3 * k + 1) < 0) ? -((-(-3 * k + 1) + (3) - 1) / (3))
                                            : (-3 * k + 1) / (3)))
                     : (0));
           p++) {
        q = -k - p;
        {
          hash(2);
          hash(1);
          hash(1);
          hash(k);
          hash(p);
          hash(-k - p);
        };
      }
    }
  }
  if (n >= 2) {
    for (c1 = ((0) > ((((n - 4) < 0) ? -((-(n - 4)) / (3))
                                     : ((n - 4) + (3) - 1) / (3)))
                   ? (0)
                   : ((((n - 4) < 0) ? -((-(n - 4)) / (3))
                                     : ((n - 4) + (3) - 1) / (3))));
         c1 <= 0; c1++) {
      {
        hash(1);
        hash(1);
        hash(c1);
      };
      for (j = 1; j <= ((n) < (3 * c1 - n + 5) ? (n) : (3 * c1 - n + 5)); j++) {
        for (k = 0; k <= (((3 * c1 - j - n + 4) < 0)
                              ? -((-(3 * c1 - j - n + 4) + (3) - 1) / (3))
                              : (3 * c1 - j - n + 4) / (3));
             k++) {
          for (p = (((n - 2) < 0) ? -((-(n - 2)) / (3))
                                  : ((n - 2) + (3) - 1) / (3));
               p <= (((3 * c1 - j - 3 * k + 2) < 0)
                         ? -((-(3 * c1 - j - 3 * k + 2) + (3) - 1) / (3))
                         : (3 * c1 - j - 3 * k + 2) / (3));
               p++) {
            q = c1 - k - p;
            {
              hash(2);
              hash(1);
              hash(j);
              hash(k);
              hash(p);
              hash(c1 - k - p);
            };
          }
        }
      }
      for (i = 2; i <= ((n) < (3 * c1 + 3) ? (n) : (3 * c1 + 3)); i++) {
        {
          hash(1);
          hash(i);
          hash(c1);
        };
      }
      for (c2 = 1; c2 <= n - 1; c2++) {
        i = c2 + 1;
        for (j = 1; j <= ((3 * c1 - n + 5) < (n) ? (3 * c1 - n + 5) : (n));
             j++) {
          for (k = 0; k <= (((3 * c1 - j - n + 4) < 0)
                                ? -((-(3 * c1 - j - n + 4) + (3) - 1) / (3))
                                : (3 * c1 - j - n + 4) / (3));
               k++) {
            for (p = (((n - 2) < 0) ? -((-(n - 2)) / (3))
                                    : ((n - 2) + (3) - 1) / (3));
                 p <= (((3 * c1 - j - 3 * k + 2) < 0)
                           ? -((-(3 * c1 - j - 3 * k + 2) + (3) - 1) / (3))
                           : (3 * c1 - j - 3 * k + 2) / (3));
                 p++) {
              q = c1 - k - p;
              {
                hash(2);
                hash(c2 + 1);
                hash(j);
                hash(k);
                hash(p);
                hash(c1 - k - p);
              };
            }
          }
        }
      }
    }
  }
  for (c1 = ((1) > ((((n - 4) < 0) ? -((-(n - 4)) / (3))
                                   : ((n - 4) + (3) - 1) / (3)))
                 ? (1)
                 : ((((n - 4) < 0) ? -((-(n - 4)) / (3))
                                   : ((n - 4) + (3) - 1) / (3))));
       c1 <= (((n - 1) < 0) ? -((-(n - 1) + (3) - 1) / (3)) : (n - 1) / (3));
       c1++) {
    for (j = 1; j <= 3 * c1 - n + 5; j++) {
      for (k = 0; k <= (((((3 * c1 - j - n + 4) < 0)
                              ? -((-(3 * c1 - j - n + 4) + (3) - 1) / (3))
                              : (3 * c1 - j - n + 4) / (3))) < (0)
                            ? ((((3 * c1 - j - n + 4) < 0)
                                    ? -((-(3 * c1 - j - n + 4) + (3) - 1) / (3))
                                    : (3 * c1 - j - n + 4) / (3)))
                            : (0));
           k++) {
        for (p = (((((n - 2) < 0) ? -((-(n - 2)) / (3))
                                  : ((n - 2) + (3) - 1) / (3))) >
                          ((((3 * c1 - j - 3 * k) < 0)
                                ? -((-(3 * c1 - j - 3 * k)) / (3))
                                : ((3 * c1 - j - 3 * k) + (3) - 1) / (3)))
                      ? ((((n - 2) < 0) ? -((-(n - 2)) / (3))
                                        : ((n - 2) + (3) - 1) / (3)))
                      : ((((3 * c1 - j - 3 * k) < 0)
                              ? -((-(3 * c1 - j - 3 * k)) / (3))
                              : ((3 * c1 - j - 3 * k) + (3) - 1) / (3))));
             p <= (((((3 * c1 - j - 3 * k + 2) < 0)
                         ? -((-(3 * c1 - j - 3 * k + 2) + (3) - 1) / (3))
                         : (3 * c1 - j - 3 * k + 2) / (3))) <
                           ((((n) < 0) ? -((-(n) + (3) - 1) / (3)) : (n) / (3)))
                       ? ((((3 * c1 - j - 3 * k + 2) < 0)
                               ? -((-(3 * c1 - j - 3 * k + 2) + (3) - 1) / (3))
                               : (3 * c1 - j - 3 * k + 2) / (3)))
                       : ((((n) < 0) ? -((-(n) + (3) - 1) / (3)) : (n) / (3))));
             p++) {
          q = c1 - k - p;
          {
            hash(2);
            hash(1);
            hash(j);
            hash(k);
            hash(p);
            hash(c1 - k - p);
          };
        }
      }
    }
    for (i = 3 * c1 + 1; i <= ((n) < (3 * c1 + 3) ? (n) : (3 * c1 + 3)); i++) {
      {
        hash(1);
        hash(i);
        hash(c1);
      };
    }
    for (c2 = 1; c2 <= n - 1; c2++) {
      i = c2 + 1;
      for (j = 1; j <= 3 * c1 - n + 5; j++) {
        for (k = 0;
             k <= (((((3 * c1 - j - n + 4) < 0)
                         ? -((-(3 * c1 - j - n + 4) + (3) - 1) / (3))
                         : (3 * c1 - j - n + 4) / (3))) < (0)
                       ? ((((3 * c1 - j - n + 4) < 0)
                               ? -((-(3 * c1 - j - n + 4) + (3) - 1) / (3))
                               : (3 * c1 - j - n + 4) / (3)))
                       : (0));
             k++) {
          for (p = (((((n - 2) < 0) ? -((-(n - 2)) / (3))
                                    : ((n - 2) + (3) - 1) / (3))) >
                            ((((3 * c1 - j - 3 * k) < 0)
                                  ? -((-(3 * c1 - j - 3 * k)) / (3))
                                  : ((3 * c1 - j - 3 * k) + (3) - 1) / (3)))
                        ? ((((n - 2) < 0) ? -((-(n - 2)) / (3))
                                          : ((n - 2) + (3) - 1) / (3)))
                        : ((((3 * c1 - j - 3 * k) < 0)
                                ? -((-(3 * c1 - j - 3 * k)) / (3))
                                : ((3 * c1 - j - 3 * k) + (3) - 1) / (3))));
               p <=
               (((((3 * c1 - j - 3 * k + 2) < 0)
                      ? -((-(3 * c1 - j - 3 * k + 2) + (3) - 1) / (3))
                      : (3 * c1 - j - 3 * k + 2) / (3))) <
                        ((((n) < 0) ? -((-(n) + (3) - 1) / (3)) : (n) / (3)))
                    ? ((((3 * c1 - j - 3 * k + 2) < 0)
                            ? -((-(3 * c1 - j - 3 * k + 2) + (3) - 1) / (3))
                            : (3 * c1 - j - 3 * k + 2) / (3)))
                    : ((((n) < 0) ? -((-(n) + (3) - 1) / (3)) : (n) / (3))));
               p++) {
            q = c1 - k - p;
            {
              hash(2);
              hash(c2 + 1);
              hash(j);
              hash(k);
              hash(p);
              hash(c1 - k - p);
            };
          }
        }
      }
    }
  }
  if (n >= 1) {
    for (c1 = (((n) < 0) ? -((-(n)) / (3)) : ((n) + (3) - 1) / (3));
         c1 <= (((2 * n + 1) < 0) ? -((-(2 * n + 1) + (3) - 1) / (3))
                                  : (2 * n + 1) / (3));
         c1++) {
      for (c2 = 0; c2 <= n - 1; c2++) {
        i = c2 + 1;
        for (j = ((1) > (3 * c1 - n - 1) ? (1) : (3 * c1 - n - 1));
             j <= ((n) < (3 * c1 - n + 5) ? (n) : (3 * c1 - n + 5)); j++) {
          for (k = (((((3 * c1 - j - n) < 0)
                          ? -((-(3 * c1 - j - n)) / (3))
                          : ((3 * c1 - j - n) + (3) - 1) / (3))) > (0)
                        ? ((((3 * c1 - j - n) < 0)
                                ? -((-(3 * c1 - j - n)) / (3))
                                : ((3 * c1 - j - n) + (3) - 1) / (3)))
                        : (0));
               k <= (((((3 * c1 - j - n + 4) < 0)
                           ? -((-(3 * c1 - j - n + 4) + (3) - 1) / (3))
                           : (3 * c1 - j - n + 4) / (3))) < (0)
                         ? ((((3 * c1 - j - n + 4) < 0)
                                 ? -((-(3 * c1 - j - n + 4) + (3) - 1) / (3))
                                 : (3 * c1 - j - n + 4) / (3)))
                         : (0));
               k++) {
            for (p = (((((n - 2) < 0) ? -((-(n - 2)) / (3))
                                      : ((n - 2) + (3) - 1) / (3))) >
                              ((((3 * c1 - j - 3 * k) < 0)
                                    ? -((-(3 * c1 - j - 3 * k)) / (3))
                                    : ((3 * c1 - j - 3 * k) + (3) - 1) / (3)))
                          ? ((((n - 2) < 0) ? -((-(n - 2)) / (3))
                                            : ((n - 2) + (3) - 1) / (3)))
                          : ((((3 * c1 - j - 3 * k) < 0)
                                  ? -((-(3 * c1 - j - 3 * k)) / (3))
                                  : ((3 * c1 - j - 3 * k) + (3) - 1) / (3))));
                 p <=
                 (((((3 * c1 - j - 3 * k + 2) < 0)
                        ? -((-(3 * c1 - j - 3 * k + 2) + (3) - 1) / (3))
                        : (3 * c1 - j - 3 * k + 2) / (3))) <
                          ((((n) < 0) ? -((-(n) + (3) - 1) / (3)) : (n) / (3)))
                      ? ((((3 * c1 - j - 3 * k + 2) < 0)
                              ? -((-(3 * c1 - j - 3 * k + 2) + (3) - 1) / (3))
                              : (3 * c1 - j - 3 * k + 2) / (3)))
                      : ((((n) < 0) ? -((-(n) + (3) - 1) / (3)) : (n) / (3))));
                 p++) {
              q = c1 - k - p;
              {
                hash(2);
                hash(c2 + 1);
                hash(j);
                hash(k);
                hash(p);
                hash(c1 - k - p);
              };
            }
          }
        }
      }
    }
  }
}


x86 assembly (clang, -O0):
<test>:
push   %rbp
mov    %rsp,%rbp
sub    $0x1a0,%rsp
mov    %edi,-0x4(%rbp)
movl   $0x0,-0x8(%rbp)
mov    -0x8(%rbp),%eax
mov    %eax,-0x24(%rbp)
mov    -0x4(%rbp),%eax
sub    $0x5,%eax
cmp    $0x0,%eax
jge    1160 <test+0x50>
mov    -0x4(%rbp),%ecx
sub    $0x5,%ecx
xor    %eax,%eax
sub    %ecx,%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0x28(%rbp)
jmp    1171 <test+0x61>
mov    -0x4(%rbp),%eax
sub    $0x5,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0x28(%rbp)
mov    -0x24(%rbp),%eax
mov    -0x28(%rbp),%ecx
cmp    %ecx,%eax
jg     1204 <test+0xf4>
imul   $0x3,-0x8(%rbp),%eax
add    $0x1,%eax
cmp    $0x1,%eax
jle    119e <test+0x8e>
imul   $0x3,-0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x2c(%rbp)
jmp    11ab <test+0x9b>
mov    $0x1,%eax
mov    %eax,-0x2c(%rbp)
jmp    11ab <test+0x9b>
mov    -0x2c(%rbp),%eax
mov    %eax,-0x10(%rbp)
mov    -0x10(%rbp),%eax
imul   $0x3,-0x8(%rbp),%ecx
add    $0x3,%ecx
cmp    %ecx,%eax
jg     11f1 <test+0xe1>
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x10(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x8(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x10(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x10(%rbp)
jmp    11b1 <test+0xa1>
jmp    11f6 <test+0xe6>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1125 <test+0x15>
cmpl   $0x1,-0x4(%rbp)
jne    1458 <test+0x348>
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
xor    %edi,%edi
mov    $0x0,%al
call   1030 <hash@plt>
movl   $0x0,-0x18(%rbp)
cmpl   $0x0,-0x18(%rbp)
jg     1453 <test+0x343>
imul   $0xfffffffd,-0x18(%rbp),%eax
sub    $0x1,%eax
cmp    $0x0,%eax
jge    1277 <test+0x167>
imul   $0xfffffffd,-0x18(%rbp),%ecx
sub    $0x1,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0x30(%rbp)
jmp    1292 <test+0x182>
imul   $0xfffffffd,-0x18(%rbp),%eax
sub    $0x1,%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0x30(%rbp)
mov    -0x30(%rbp),%ecx
xor    %eax,%eax
cmp    %ecx,%eax
jle    12a9 <test+0x199>
xor    %eax,%eax
mov    %eax,-0x34(%rbp)
jmp    1301 <test+0x1f1>
imul   $0xfffffffd,-0x18(%rbp),%eax
sub    $0x1,%eax
cmp    $0x0,%eax
jge    12e0 <test+0x1d0>
imul   $0xfffffffd,-0x18(%rbp),%ecx
sub    $0x1,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0x38(%rbp)
jmp    12fb <test+0x1eb>
imul   $0xfffffffd,-0x18(%rbp),%eax
sub    $0x1,%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0x38(%rbp)
mov    -0x38(%rbp),%eax
mov    %eax,-0x34(%rbp)
mov    -0x34(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
mov    %eax,-0x3c(%rbp)
imul   $0xfffffffd,-0x18(%rbp),%eax
add    $0x1,%eax
cmp    $0x0,%eax
jge    134a <test+0x23a>
imul   $0xfffffffd,-0x18(%rbp),%ecx
add    $0x1,%ecx
xor    %eax,%eax
sub    %ecx,%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0x40(%rbp)
jmp    135f <test+0x24f>
imul   $0xfffffffd,-0x18(%rbp),%eax
add    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0x40(%rbp)
mov    -0x40(%rbp),%eax
cmp    $0x0,%eax
jge    13c8 <test+0x2b8>
imul   $0xfffffffd,-0x18(%rbp),%eax
add    $0x1,%eax
cmp    $0x0,%eax
jge    13a8 <test+0x298>
imul   $0xfffffffd,-0x18(%rbp),%ecx
add    $0x1,%ecx
xor    %eax,%eax
sub    %ecx,%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0x44(%rbp)
jmp    13bd <test+0x2ad>
imul   $0xfffffffd,-0x18(%rbp),%eax
add    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0x44(%rbp)
mov    -0x44(%rbp),%eax
mov    %eax,-0x48(%rbp)
jmp    13d2 <test+0x2c2>
xor    %eax,%eax
mov    %eax,-0x48(%rbp)
jmp    13d2 <test+0x2c2>
mov    -0x3c(%rbp),%eax
mov    -0x48(%rbp),%ecx
cmp    %ecx,%eax
jg     1440 <test+0x330>
xor    %eax,%eax
sub    -0x18(%rbp),%eax
sub    -0x1c(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    $0x2,%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    -0x18(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
xor    %edi,%edi
sub    -0x18(%rbp),%edi
sub    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    1307 <test+0x1f7>
jmp    1445 <test+0x335>
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    1236 <test+0x126>
jmp    1458 <test+0x348>
cmpl   $0x2,-0x4(%rbp)
jl     1a2f <test+0x91f>
mov    -0x4(%rbp),%eax
sub    $0x4,%eax
cmp    $0x0,%eax
jge    1491 <test+0x381>
mov    -0x4(%rbp),%ecx
sub    $0x4,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0x4c(%rbp)
jmp    14a8 <test+0x398>
mov    -0x4(%rbp),%eax
sub    $0x4,%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0x4c(%rbp)
mov    -0x4c(%rbp),%ecx
xor    %eax,%eax
cmp    %ecx,%eax
jle    14bf <test+0x3af>
xor    %eax,%eax
mov    %eax,-0x50(%rbp)
jmp    150b <test+0x3fb>
mov    -0x4(%rbp),%eax
sub    $0x4,%eax
cmp    $0x0,%eax
jge    14ee <test+0x3de>
mov    -0x4(%rbp),%ecx
sub    $0x4,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0x54(%rbp)
jmp    1505 <test+0x3f5>
mov    -0x4(%rbp),%eax
sub    $0x4,%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0x54(%rbp)
mov    -0x54(%rbp),%eax
mov    %eax,-0x50(%rbp)
mov    -0x50(%rbp),%eax
mov    %eax,-0x8(%rbp)
cmpl   $0x0,-0x8(%rbp)
jg     1a2a <test+0x91a>
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x8(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
movl   $0x1,-0x14(%rbp)
mov    -0x14(%rbp),%eax
mov    %eax,-0x58(%rbp)
mov    -0x4(%rbp),%eax
imul   $0x3,-0x8(%rbp),%ecx
sub    -0x4(%rbp),%ecx
add    $0x5,%ecx
cmp    %ecx,%eax
jge    156a <test+0x45a>
mov    -0x4(%rbp),%eax
mov    %eax,-0x5c(%rbp)
jmp    1577 <test+0x467>
imul   $0x3,-0x8(%rbp),%eax
sub    -0x4(%rbp),%eax
add    $0x5,%eax
mov    %eax,-0x5c(%rbp)
mov    -0x58(%rbp),%eax
mov    -0x5c(%rbp),%ecx
cmp    %ecx,%eax
jg     1745 <test+0x635>
movl   $0x0,-0x18(%rbp)
mov    -0x18(%rbp),%eax
mov    %eax,-0x60(%rbp)
imul   $0x3,-0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
sub    -0x4(%rbp),%eax
add    $0x4,%eax
cmp    $0x0,%eax
jge    15d5 <test+0x4c5>
imul   $0x3,-0x8(%rbp),%ecx
sub    -0x14(%rbp),%ecx
sub    -0x4(%rbp),%ecx
add    $0x4,%ecx
xor    %eax,%eax
sub    %ecx,%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0x64(%rbp)
jmp    15ed <test+0x4dd>
imul   $0x3,-0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
sub    -0x4(%rbp),%eax
add    $0x4,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0x64(%rbp)
mov    -0x60(%rbp),%eax
mov    -0x64(%rbp),%ecx
cmp    %ecx,%eax
jg     1732 <test+0x622>
mov    -0x4(%rbp),%eax
sub    $0x2,%eax
cmp    $0x0,%eax
jge    162a <test+0x51a>
mov    -0x4(%rbp),%ecx
sub    $0x2,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0x68(%rbp)
jmp    1641 <test+0x531>
mov    -0x4(%rbp),%eax
sub    $0x2,%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0x68(%rbp)
mov    -0x68(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
mov    %eax,-0x6c(%rbp)
imul   $0x3,-0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
imul   $0x3,-0x18(%rbp),%ecx
sub    %ecx,%eax
add    $0x2,%eax
cmp    $0x0,%eax
jge    1696 <test+0x586>
imul   $0x3,-0x8(%rbp),%ecx
sub    -0x14(%rbp),%ecx
imul   $0x3,-0x18(%rbp),%eax
sub    %eax,%ecx
add    $0x2,%ecx
xor    %eax,%eax
sub    %ecx,%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0x70(%rbp)
jmp    16b1 <test+0x5a1>
imul   $0x3,-0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
imul   $0x3,-0x18(%rbp),%ecx
sub    %ecx,%eax
add    $0x2,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0x70(%rbp)
mov    -0x6c(%rbp),%eax
mov    -0x70(%rbp),%ecx
cmp    %ecx,%eax
jg     171f <test+0x60f>
mov    -0x8(%rbp),%eax
sub    -0x18(%rbp),%eax
sub    -0x1c(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    $0x2,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x14(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x18(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x8(%rbp),%edi
sub    -0x18(%rbp),%edi
sub    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    1647 <test+0x537>
jmp    1724 <test+0x614>
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    158c <test+0x47c>
jmp    1737 <test+0x627>
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    1544 <test+0x434>
movl   $0x2,-0x10(%rbp)
mov    -0x10(%rbp),%eax
mov    %eax,-0x74(%rbp)
mov    -0x4(%rbp),%eax
imul   $0x3,-0x8(%rbp),%ecx
add    $0x3,%ecx
cmp    %ecx,%eax
jge    176f <test+0x65f>
mov    -0x4(%rbp),%eax
mov    %eax,-0x78(%rbp)
jmp    1779 <test+0x669>
imul   $0x3,-0x8(%rbp),%eax
add    $0x3,%eax
mov    %eax,-0x78(%rbp)
mov    -0x74(%rbp),%eax
mov    -0x78(%rbp),%ecx
cmp    %ecx,%eax
jg     17b5 <test+0x6a5>
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x10(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x8(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x10(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x10(%rbp)
jmp    174c <test+0x63c>
movl   $0x1,-0xc(%rbp)
mov    -0xc(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     1a17 <test+0x907>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x10(%rbp)
movl   $0x1,-0x14(%rbp)
mov    -0x14(%rbp),%eax
mov    %eax,-0x7c(%rbp)
imul   $0x3,-0x8(%rbp),%eax
sub    -0x4(%rbp),%eax
add    $0x5,%eax
cmp    -0x4(%rbp),%eax
jge    1808 <test+0x6f8>
imul   $0x3,-0x8(%rbp),%eax
sub    -0x4(%rbp),%eax
add    $0x5,%eax
mov    %eax,-0x80(%rbp)
jmp    180e <test+0x6fe>
mov    -0x4(%rbp),%eax
mov    %eax,-0x80(%rbp)
mov    -0x7c(%rbp),%eax
mov    -0x80(%rbp),%ecx
cmp    %ecx,%eax
jg     1a04 <test+0x8f4>
movl   $0x0,-0x18(%rbp)
mov    -0x18(%rbp),%eax
mov    %eax,-0x84(%rbp)
imul   $0x3,-0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
sub    -0x4(%rbp),%eax
add    $0x4,%eax
cmp    $0x0,%eax
jge    1872 <test+0x762>
imul   $0x3,-0x8(%rbp),%ecx
sub    -0x14(%rbp),%ecx
sub    -0x4(%rbp),%ecx
add    $0x4,%ecx
xor    %eax,%eax
sub    %ecx,%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0x88(%rbp)
jmp    188d <test+0x77d>
imul   $0x3,-0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
sub    -0x4(%rbp),%eax
add    $0x4,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0x88(%rbp)
mov    -0x84(%rbp),%eax
mov    -0x88(%rbp),%ecx
cmp    %ecx,%eax
jg     19f1 <test+0x8e1>
mov    -0x4(%rbp),%eax
sub    $0x2,%eax
cmp    $0x0,%eax
jge    18d3 <test+0x7c3>
mov    -0x4(%rbp),%ecx
sub    $0x2,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0x8c(%rbp)
jmp    18ed <test+0x7dd>
mov    -0x4(%rbp),%eax
sub    $0x2,%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0x8c(%rbp)
mov    -0x8c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
mov    %eax,-0x90(%rbp)
imul   $0x3,-0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
imul   $0x3,-0x18(%rbp),%ecx
sub    %ecx,%eax
add    $0x2,%eax
cmp    $0x0,%eax
jge    194b <test+0x83b>
imul   $0x3,-0x8(%rbp),%ecx
sub    -0x14(%rbp),%ecx
imul   $0x3,-0x18(%rbp),%eax
sub    %eax,%ecx
add    $0x2,%ecx
xor    %eax,%eax
sub    %ecx,%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0x94(%rbp)
jmp    1969 <test+0x859>
imul   $0x3,-0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
imul   $0x3,-0x18(%rbp),%ecx
sub    %ecx,%eax
add    $0x2,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0x94(%rbp)
mov    -0x90(%rbp),%eax
mov    -0x94(%rbp),%ecx
cmp    %ecx,%eax
jg     19de <test+0x8ce>
mov    -0x8(%rbp),%eax
sub    -0x18(%rbp),%eax
sub    -0x1c(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    $0x2,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0xc(%rbp),%edi
add    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x14(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x18(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x8(%rbp),%edi
sub    -0x18(%rbp),%edi
sub    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    18f6 <test+0x7e6>
jmp    19e3 <test+0x8d3>
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    1823 <test+0x713>
jmp    19f6 <test+0x8e6>
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    17dd <test+0x6cd>
jmp    1a09 <test+0x8f9>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    17bc <test+0x6ac>
jmp    1a1c <test+0x90c>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1511 <test+0x401>
jmp    1a2f <test+0x91f>
mov    -0x4(%rbp),%eax
sub    $0x4,%eax
cmp    $0x0,%eax
jge    1a61 <test+0x951>
mov    -0x4(%rbp),%ecx
sub    $0x4,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0x98(%rbp)
jmp    1a7b <test+0x96b>
mov    -0x4(%rbp),%eax
sub    $0x4,%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0x98(%rbp)
mov    -0x98(%rbp),%ecx
mov    $0x1,%eax
cmp    %ecx,%eax
jle    1a9e <test+0x98e>
mov    $0x1,%eax
mov    %eax,-0x9c(%rbp)
jmp    1af6 <test+0x9e6>
mov    -0x4(%rbp),%eax
sub    $0x4,%eax
cmp    $0x0,%eax
jge    1ad0 <test+0x9c0>
mov    -0x4(%rbp),%ecx
sub    $0x4,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0xa0(%rbp)
jmp    1aea <test+0x9da>
mov    -0x4(%rbp),%eax
sub    $0x4,%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0xa0(%rbp)
mov    -0xa0(%rbp),%eax
mov    %eax,-0x9c(%rbp)
mov    -0x9c(%rbp),%eax
mov    %eax,-0x8(%rbp)
mov    -0x8(%rbp),%eax
mov    %eax,-0xa4(%rbp)
mov    -0x4(%rbp),%eax
sub    $0x1,%eax
cmp    $0x0,%eax
jge    1b40 <test+0xa30>
mov    -0x4(%rbp),%ecx
sub    $0x1,%ecx
xor    %eax,%eax
sub    %ecx,%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0xa8(%rbp)
jmp    1b54 <test+0xa44>
mov    -0x4(%rbp),%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0xa8(%rbp)
mov    -0xa4(%rbp),%eax
mov    -0xa8(%rbp),%ecx
cmp    %ecx,%eax
jg     2634 <test+0x1524>
movl   $0x1,-0x14(%rbp)
mov    -0x14(%rbp),%eax
imul   $0x3,-0x8(%rbp),%ecx
sub    -0x4(%rbp),%ecx
add    $0x5,%ecx
cmp    %ecx,%eax
jg     2069 <test+0xf59>
movl   $0x0,-0x18(%rbp)
mov    -0x18(%rbp),%eax
mov    %eax,-0xac(%rbp)
imul   $0x3,-0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
sub    -0x4(%rbp),%eax
add    $0x4,%eax
cmp    $0x0,%eax
jge    1bda <test+0xaca>
imul   $0x3,-0x8(%rbp),%ecx
sub    -0x14(%rbp),%ecx
sub    -0x4(%rbp),%ecx
add    $0x4,%ecx
xor    %eax,%eax
sub    %ecx,%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0xb0(%rbp)
jmp    1bf5 <test+0xae5>
imul   $0x3,-0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
sub    -0x4(%rbp),%eax
add    $0x4,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0xb0(%rbp)
mov    -0xb0(%rbp),%eax
cmp    $0x0,%eax
jge    1c76 <test+0xb66>
imul   $0x3,-0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
sub    -0x4(%rbp),%eax
add    $0x4,%eax
cmp    $0x0,%eax
jge    1c4a <test+0xb3a>
imul   $0x3,-0x8(%rbp),%ecx
sub    -0x14(%rbp),%ecx
sub    -0x4(%rbp),%ecx
add    $0x4,%ecx
xor    %eax,%eax
sub    %ecx,%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0xb4(%rbp)
jmp    1c65 <test+0xb55>
imul   $0x3,-0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
sub    -0x4(%rbp),%eax
add    $0x4,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0xb4(%rbp)
mov    -0xb4(%rbp),%eax
mov    %eax,-0xb8(%rbp)
jmp    1c83 <test+0xb73>
xor    %eax,%eax
mov    %eax,-0xb8(%rbp)
jmp    1c83 <test+0xb73>
mov    -0xac(%rbp),%eax
mov    -0xb8(%rbp),%ecx
cmp    %ecx,%eax
jg     2056 <test+0xf46>
mov    -0x4(%rbp),%eax
sub    $0x2,%eax
cmp    $0x0,%eax
jge    1cc9 <test+0xbb9>
mov    -0x4(%rbp),%ecx
sub    $0x2,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0xbc(%rbp)
jmp    1ce3 <test+0xbd3>
mov    -0x4(%rbp),%eax
sub    $0x2,%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0xbc(%rbp)
mov    -0xbc(%rbp),%eax
mov    %eax,-0xc0(%rbp)
imul   $0x3,-0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
imul   $0x3,-0x18(%rbp),%ecx
sub    %ecx,%eax
cmp    $0x0,%eax
jge    1d2f <test+0xc1f>
imul   $0x3,-0x8(%rbp),%ecx
sub    -0x14(%rbp),%ecx
imul   $0x3,-0x18(%rbp),%eax
sub    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0xc4(%rbp)
jmp    1d50 <test+0xc40>
imul   $0x3,-0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
imul   $0x3,-0x18(%rbp),%ecx
sub    %ecx,%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0xc4(%rbp)
mov    -0xc0(%rbp),%eax
mov    -0xc4(%rbp),%ecx
cmp    %ecx,%eax
jle    1dc1 <test+0xcb1>
mov    -0x4(%rbp),%eax
sub    $0x2,%eax
cmp    $0x0,%eax
jge    1d96 <test+0xc86>
mov    -0x4(%rbp),%ecx
sub    $0x2,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0xc8(%rbp)
jmp    1db0 <test+0xca0>
mov    -0x4(%rbp),%eax
sub    $0x2,%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0xc8(%rbp)
mov    -0xc8(%rbp),%eax
mov    %eax,-0xcc(%rbp)
jmp    1e2e <test+0xd1e>
imul   $0x3,-0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
imul   $0x3,-0x18(%rbp),%ecx
sub    %ecx,%eax
cmp    $0x0,%eax
jge    1e01 <test+0xcf1>
imul   $0x3,-0x8(%rbp),%ecx
sub    -0x14(%rbp),%ecx
imul   $0x3,-0x18(%rbp),%eax
sub    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0xd0(%rbp)
jmp    1e22 <test+0xd12>
imul   $0x3,-0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
imul   $0x3,-0x18(%rbp),%ecx
sub    %ecx,%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0xd0(%rbp)
mov    -0xd0(%rbp),%eax
mov    %eax,-0xcc(%rbp)
mov    -0xcc(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
mov    %eax,-0xd4(%rbp)
imul   $0x3,-0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
imul   $0x3,-0x18(%rbp),%ecx
sub    %ecx,%eax
add    $0x2,%eax
cmp    $0x0,%eax
jge    1e8c <test+0xd7c>
imul   $0x3,-0x8(%rbp),%ecx
sub    -0x14(%rbp),%ecx
imul   $0x3,-0x18(%rbp),%eax
sub    %eax,%ecx
add    $0x2,%ecx
xor    %eax,%eax
sub    %ecx,%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0xd8(%rbp)
jmp    1eaa <test+0xd9a>
imul   $0x3,-0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
imul   $0x3,-0x18(%rbp),%ecx
sub    %ecx,%eax
add    $0x2,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0xd8(%rbp)
mov    -0xd8(%rbp),%eax
mov    %eax,-0xdc(%rbp)
cmpl   $0x0,-0x4(%rbp)
jge    1ee4 <test+0xdd4>
xor    %eax,%eax
sub    -0x4(%rbp),%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0xe0(%rbp)
jmp    1ef5 <test+0xde5>
mov    -0x4(%rbp),%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0xe0(%rbp)
mov    -0xdc(%rbp),%eax
mov    -0xe0(%rbp),%ecx
cmp    %ecx,%eax
jge    1f84 <test+0xe74>
imul   $0x3,-0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
imul   $0x3,-0x18(%rbp),%ecx
sub    %ecx,%eax
add    $0x2,%eax
cmp    $0x0,%eax
jge    1f55 <test+0xe45>
imul   $0x3,-0x8(%rbp),%ecx
sub    -0x14(%rbp),%ecx
imul   $0x3,-0x18(%rbp),%eax
sub    %eax,%ecx
add    $0x2,%ecx
xor    %eax,%eax
sub    %ecx,%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0xe4(%rbp)
jmp    1f73 <test+0xe63>
imul   $0x3,-0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
imul   $0x3,-0x18(%rbp),%ecx
sub    %ecx,%eax
add    $0x2,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0xe4(%rbp)
mov    -0xe4(%rbp),%eax
mov    %eax,-0xe8(%rbp)
jmp    1fcf <test+0xebf>
cmpl   $0x0,-0x4(%rbp)
jge    1fb2 <test+0xea2>
xor    %eax,%eax
sub    -0x4(%rbp),%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0xec(%rbp)
jmp    1fc3 <test+0xeb3>
mov    -0x4(%rbp),%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0xec(%rbp)
mov    -0xec(%rbp),%eax
mov    %eax,-0xe8(%rbp)
mov    -0xd4(%rbp),%eax
mov    -0xe8(%rbp),%ecx
cmp    %ecx,%eax
jg     2043 <test+0xf33>
mov    -0x8(%rbp),%eax
sub    -0x18(%rbp),%eax
sub    -0x1c(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    $0x2,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x14(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x18(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x8(%rbp),%edi
sub    -0x18(%rbp),%edi
sub    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    1e37 <test+0xd27>
jmp    2048 <test+0xf38>
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    1b8b <test+0xa7b>
jmp    205b <test+0xf4b>
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    1b6f <test+0xa5f>
imul   $0x3,-0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x10(%rbp)
mov    -0x10(%rbp),%eax
mov    %eax,-0xf0(%rbp)
mov    -0x4(%rbp),%eax
imul   $0x3,-0x8(%rbp),%ecx
add    $0x3,%ecx
cmp    %ecx,%eax
jge    209c <test+0xf8c>
mov    -0x4(%rbp),%eax
mov    %eax,-0xf4(%rbp)
jmp    20a9 <test+0xf99>
imul   $0x3,-0x8(%rbp),%eax
add    $0x3,%eax
mov    %eax,-0xf4(%rbp)
mov    -0xf0(%rbp),%eax
mov    -0xf4(%rbp),%ecx
cmp    %ecx,%eax
jg     20eb <test+0xfdb>
mov    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x10(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x8(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x10(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x10(%rbp)
jmp    2073 <test+0xf63>
movl   $0x1,-0xc(%rbp)
mov    -0xc(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     2621 <test+0x1511>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x10(%rbp)
movl   $0x1,-0x14(%rbp)
mov    -0x14(%rbp),%eax
imul   $0x3,-0x8(%rbp),%ecx
sub    -0x4(%rbp),%ecx
add    $0x5,%ecx
cmp    %ecx,%eax
jg     260e <test+0x14fe>
movl   $0x0,-0x18(%rbp)
mov    -0x18(%rbp),%eax
mov    %eax,-0xf8(%rbp)
imul   $0x3,-0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
sub    -0x4(%rbp),%eax
add    $0x4,%eax
cmp    $0x0,%eax
jge    217e <test+0x106e>
imul   $0x3,-0x8(%rbp),%ecx
sub    -0x14(%rbp),%ecx
sub    -0x4(%rbp),%ecx
add    $0x4,%ecx
xor    %eax,%eax
sub    %ecx,%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0xfc(%rbp)
jmp    2199 <test+0x1089>
imul   $0x3,-0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
sub    -0x4(%rbp),%eax
add    $0x4,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0xfc(%rbp)
mov    -0xfc(%rbp),%eax
cmp    $0x0,%eax
jge    221a <test+0x110a>
imul   $0x3,-0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
sub    -0x4(%rbp),%eax
add    $0x4,%eax
cmp    $0x0,%eax
jge    21ee <test+0x10de>
imul   $0x3,-0x8(%rbp),%ecx
sub    -0x14(%rbp),%ecx
sub    -0x4(%rbp),%ecx
add    $0x4,%ecx
xor    %eax,%eax
sub    %ecx,%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0x100(%rbp)
jmp    2209 <test+0x10f9>
imul   $0x3,-0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
sub    -0x4(%rbp),%eax
add    $0x4,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0x100(%rbp)
mov    -0x100(%rbp),%eax
mov    %eax,-0x104(%rbp)
jmp    2227 <test+0x1117>
xor    %eax,%eax
mov    %eax,-0x104(%rbp)
jmp    2227 <test+0x1117>
mov    -0xf8(%rbp),%eax
mov    -0x104(%rbp),%ecx
cmp    %ecx,%eax
jg     25fb <test+0x14eb>
mov    -0x4(%rbp),%eax
sub    $0x2,%eax
cmp    $0x0,%eax
jge    226d <test+0x115d>
mov    -0x4(%rbp),%ecx
sub    $0x2,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0x108(%rbp)
jmp    2287 <test+0x1177>
mov    -0x4(%rbp),%eax
sub    $0x2,%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0x108(%rbp)
mov    -0x108(%rbp),%eax
mov    %eax,-0x10c(%rbp)
imul   $0x3,-0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
imul   $0x3,-0x18(%rbp),%ecx
sub    %ecx,%eax
cmp    $0x0,%eax
jge    22d3 <test+0x11c3>
imul   $0x3,-0x8(%rbp),%ecx
sub    -0x14(%rbp),%ecx
imul   $0x3,-0x18(%rbp),%eax
sub    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0x110(%rbp)
jmp    22f4 <test+0x11e4>
imul   $0x3,-0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
imul   $0x3,-0x18(%rbp),%ecx
sub    %ecx,%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0x110(%rbp)
mov    -0x10c(%rbp),%eax
mov    -0x110(%rbp),%ecx
cmp    %ecx,%eax
jle    2365 <test+0x1255>
mov    -0x4(%rbp),%eax
sub    $0x2,%eax
cmp    $0x0,%eax
jge    233a <test+0x122a>
mov    -0x4(%rbp),%ecx
sub    $0x2,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0x114(%rbp)
jmp    2354 <test+0x1244>
mov    -0x4(%rbp),%eax
sub    $0x2,%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0x114(%rbp)
mov    -0x114(%rbp),%eax
mov    %eax,-0x118(%rbp)
jmp    23d2 <test+0x12c2>
imul   $0x3,-0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
imul   $0x3,-0x18(%rbp),%ecx
sub    %ecx,%eax
cmp    $0x0,%eax
jge    23a5 <test+0x1295>
imul   $0x3,-0x8(%rbp),%ecx
sub    -0x14(%rbp),%ecx
imul   $0x3,-0x18(%rbp),%eax
sub    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0x11c(%rbp)
jmp    23c6 <test+0x12b6>
imul   $0x3,-0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
imul   $0x3,-0x18(%rbp),%ecx
sub    %ecx,%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0x11c(%rbp)
mov    -0x11c(%rbp),%eax
mov    %eax,-0x118(%rbp)
mov    -0x118(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
mov    %eax,-0x120(%rbp)
imul   $0x3,-0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
imul   $0x3,-0x18(%rbp),%ecx
sub    %ecx,%eax
add    $0x2,%eax
cmp    $0x0,%eax
jge    2430 <test+0x1320>
imul   $0x3,-0x8(%rbp),%ecx
sub    -0x14(%rbp),%ecx
imul   $0x3,-0x18(%rbp),%eax
sub    %eax,%ecx
add    $0x2,%ecx
xor    %eax,%eax
sub    %ecx,%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0x124(%rbp)
jmp    244e <test+0x133e>
imul   $0x3,-0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
imul   $0x3,-0x18(%rbp),%ecx
sub    %ecx,%eax
add    $0x2,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0x124(%rbp)
mov    -0x124(%rbp),%eax
mov    %eax,-0x128(%rbp)
cmpl   $0x0,-0x4(%rbp)
jge    2488 <test+0x1378>
xor    %eax,%eax
sub    -0x4(%rbp),%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0x12c(%rbp)
jmp    2499 <test+0x1389>
mov    -0x4(%rbp),%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0x12c(%rbp)
mov    -0x128(%rbp),%eax
mov    -0x12c(%rbp),%ecx
cmp    %ecx,%eax
jge    2528 <test+0x1418>
imul   $0x3,-0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
imul   $0x3,-0x18(%rbp),%ecx
sub    %ecx,%eax
add    $0x2,%eax
cmp    $0x0,%eax
jge    24f9 <test+0x13e9>
imul   $0x3,-0x8(%rbp),%ecx
sub    -0x14(%rbp),%ecx
imul   $0x3,-0x18(%rbp),%eax
sub    %eax,%ecx
add    $0x2,%ecx
xor    %eax,%eax
sub    %ecx,%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0x130(%rbp)
jmp    2517 <test+0x1407>
imul   $0x3,-0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
imul   $0x3,-0x18(%rbp),%ecx
sub    %ecx,%eax
add    $0x2,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0x130(%rbp)
mov    -0x130(%rbp),%eax
mov    %eax,-0x134(%rbp)
jmp    2573 <test+0x1463>
cmpl   $0x0,-0x4(%rbp)
jge    2556 <test+0x1446>
xor    %eax,%eax
sub    -0x4(%rbp),%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0x138(%rbp)
jmp    2567 <test+0x1457>
mov    -0x4(%rbp),%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0x138(%rbp)
mov    -0x138(%rbp),%eax
mov    %eax,-0x134(%rbp)
mov    -0x120(%rbp),%eax
mov    -0x134(%rbp),%ecx
cmp    %ecx,%eax
jg     25e8 <test+0x14d8>
mov    -0x8(%rbp),%eax
sub    -0x18(%rbp),%eax
sub    -0x1c(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    $0x2,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0xc(%rbp),%edi
add    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x14(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x18(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x8(%rbp),%edi
sub    -0x18(%rbp),%edi
sub    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    23db <test+0x12cb>
jmp    25ed <test+0x14dd>
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    212f <test+0x101f>
jmp    2600 <test+0x14f0>
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    2113 <test+0x1003>
jmp    2613 <test+0x1503>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    20f2 <test+0xfe2>
jmp    2626 <test+0x1516>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1aff <test+0x9ef>
cmpl   $0x1,-0x4(%rbp)
jl     2d99 <test+0x1c89>
cmpl   $0x0,-0x4(%rbp)
jge    2666 <test+0x1556>
xor    %eax,%eax
sub    -0x4(%rbp),%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0x13c(%rbp)
jmp    267d <test+0x156d>
mov    -0x4(%rbp),%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0x13c(%rbp)
mov    -0x13c(%rbp),%eax
mov    %eax,-0x8(%rbp)
mov    -0x8(%rbp),%eax
mov    %eax,-0x140(%rbp)
mov    -0x4(%rbp),%eax
shl    $0x1,%eax
add    $0x1,%eax
cmp    $0x0,%eax
jge    26cd <test+0x15bd>
mov    -0x4(%rbp),%ecx
shl    $0x1,%ecx
add    $0x1,%ecx
xor    %eax,%eax
sub    %ecx,%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0x144(%rbp)
jmp    26e4 <test+0x15d4>
mov    -0x4(%rbp),%eax
shl    $0x1,%eax
add    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0x144(%rbp)
mov    -0x140(%rbp),%eax
mov    -0x144(%rbp),%ecx
cmp    %ecx,%eax
jg     2d94 <test+0x1c84>
movl   $0x0,-0xc(%rbp)
mov    -0xc(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     2d81 <test+0x1c71>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x10(%rbp)
imul   $0x3,-0x8(%rbp),%ecx
sub    -0x4(%rbp),%ecx
sub    $0x1,%ecx
mov    $0x1,%eax
cmp    %ecx,%eax
jle    2740 <test+0x1630>
mov    $0x1,%eax
mov    %eax,-0x148(%rbp)
jmp    2750 <test+0x1640>
imul   $0x3,-0x8(%rbp),%eax
sub    -0x4(%rbp),%eax
sub    $0x1,%eax
mov    %eax,-0x148(%rbp)
mov    -0x148(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
mov    %eax,-0x14c(%rbp)
mov    -0x4(%rbp),%eax
imul   $0x3,-0x8(%rbp),%ecx
sub    -0x4(%rbp),%ecx
add    $0x5,%ecx
cmp    %ecx,%eax
jge    2785 <test+0x1675>
mov    -0x4(%rbp),%eax
mov    %eax,-0x150(%rbp)
jmp    2795 <test+0x1685>
imul   $0x3,-0x8(%rbp),%eax
sub    -0x4(%rbp),%eax
add    $0x5,%eax
mov    %eax,-0x150(%rbp)
mov    -0x14c(%rbp),%eax
mov    -0x150(%rbp),%ecx
cmp    %ecx,%eax
jg     2d6e <test+0x1c5e>
imul   $0x3,-0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
sub    -0x4(%rbp),%eax
cmp    $0x0,%eax
jge    27e3 <test+0x16d3>
imul   $0x3,-0x8(%rbp),%ecx
sub    -0x14(%rbp),%ecx
sub    -0x4(%rbp),%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0x154(%rbp)
jmp    2801 <test+0x16f1>
imul   $0x3,-0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
sub    -0x4(%rbp),%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0x154(%rbp)
mov    -0x154(%rbp),%eax
cmp    $0x0,%eax
jle    2879 <test+0x1769>
imul   $0x3,-0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
sub    -0x4(%rbp),%eax
cmp    $0x0,%eax
jge    284a <test+0x173a>
imul   $0x3,-0x8(%rbp),%ecx
sub    -0x14(%rbp),%ecx
sub    -0x4(%rbp),%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0x158(%rbp)
jmp    2868 <test+0x1758>
imul   $0x3,-0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
sub    -0x4(%rbp),%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0x158(%rbp)
mov    -0x158(%rbp),%eax
mov    %eax,-0x15c(%rbp)
jmp    2886 <test+0x1776>
xor    %eax,%eax
mov    %eax,-0x15c(%rbp)
jmp    2886 <test+0x1776>
mov    -0x15c(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
mov    %eax,-0x160(%rbp)
imul   $0x3,-0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
sub    -0x4(%rbp),%eax
add    $0x4,%eax
cmp    $0x0,%eax
jge    28de <test+0x17ce>
imul   $0x3,-0x8(%rbp),%ecx
sub    -0x14(%rbp),%ecx
sub    -0x4(%rbp),%ecx
add    $0x4,%ecx
xor    %eax,%eax
sub    %ecx,%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0x164(%rbp)
jmp    28f9 <test+0x17e9>
imul   $0x3,-0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
sub    -0x4(%rbp),%eax
add    $0x4,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0x164(%rbp)
mov    -0x164(%rbp),%eax
cmp    $0x0,%eax
jge    297a <test+0x186a>
imul   $0x3,-0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
sub    -0x4(%rbp),%eax
add    $0x4,%eax
cmp    $0x0,%eax
jge    294e <test+0x183e>
imul   $0x3,-0x8(%rbp),%ecx
sub    -0x14(%rbp),%ecx
sub    -0x4(%rbp),%ecx
add    $0x4,%ecx
xor    %eax,%eax
sub    %ecx,%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0x168(%rbp)
jmp    2969 <test+0x1859>
imul   $0x3,-0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
sub    -0x4(%rbp),%eax
add    $0x4,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0x168(%rbp)
mov    -0x168(%rbp),%eax
mov    %eax,-0x16c(%rbp)
jmp    2987 <test+0x1877>
xor    %eax,%eax
mov    %eax,-0x16c(%rbp)
jmp    2987 <test+0x1877>
mov    -0x160(%rbp),%eax
mov    -0x16c(%rbp),%ecx
cmp    %ecx,%eax
jg     2d5b <test+0x1c4b>
mov    -0x4(%rbp),%eax
sub    $0x2,%eax
cmp    $0x0,%eax
jge    29cd <test+0x18bd>
mov    -0x4(%rbp),%ecx
sub    $0x2,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0x170(%rbp)
jmp    29e7 <test+0x18d7>
mov    -0x4(%rbp),%eax
sub    $0x2,%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0x170(%rbp)
mov    -0x170(%rbp),%eax
mov    %eax,-0x174(%rbp)
imul   $0x3,-0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
imul   $0x3,-0x18(%rbp),%ecx
sub    %ecx,%eax
cmp    $0x0,%eax
jge    2a33 <test+0x1923>
imul   $0x3,-0x8(%rbp),%ecx
sub    -0x14(%rbp),%ecx
imul   $0x3,-0x18(%rbp),%eax
sub    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0x178(%rbp)
jmp    2a54 <test+0x1944>
imul   $0x3,-0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
imul   $0x3,-0x18(%rbp),%ecx
sub    %ecx,%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0x178(%rbp)
mov    -0x174(%rbp),%eax
mov    -0x178(%rbp),%ecx
cmp    %ecx,%eax
jle    2ac5 <test+0x19b5>
mov    -0x4(%rbp),%eax
sub    $0x2,%eax
cmp    $0x0,%eax
jge    2a9a <test+0x198a>
mov    -0x4(%rbp),%ecx
sub    $0x2,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0x17c(%rbp)
jmp    2ab4 <test+0x19a4>
mov    -0x4(%rbp),%eax
sub    $0x2,%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0x17c(%rbp)
mov    -0x17c(%rbp),%eax
mov    %eax,-0x180(%rbp)
jmp    2b32 <test+0x1a22>
imul   $0x3,-0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
imul   $0x3,-0x18(%rbp),%ecx
sub    %ecx,%eax
cmp    $0x0,%eax
jge    2b05 <test+0x19f5>
imul   $0x3,-0x8(%rbp),%ecx
sub    -0x14(%rbp),%ecx
imul   $0x3,-0x18(%rbp),%eax
sub    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0x184(%rbp)
jmp    2b26 <test+0x1a16>
imul   $0x3,-0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
imul   $0x3,-0x18(%rbp),%ecx
sub    %ecx,%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0x184(%rbp)
mov    -0x184(%rbp),%eax
mov    %eax,-0x180(%rbp)
mov    -0x180(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
mov    %eax,-0x188(%rbp)
imul   $0x3,-0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
imul   $0x3,-0x18(%rbp),%ecx
sub    %ecx,%eax
add    $0x2,%eax
cmp    $0x0,%eax
jge    2b90 <test+0x1a80>
imul   $0x3,-0x8(%rbp),%ecx
sub    -0x14(%rbp),%ecx
imul   $0x3,-0x18(%rbp),%eax
sub    %eax,%ecx
add    $0x2,%ecx
xor    %eax,%eax
sub    %ecx,%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0x18c(%rbp)
jmp    2bae <test+0x1a9e>
imul   $0x3,-0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
imul   $0x3,-0x18(%rbp),%ecx
sub    %ecx,%eax
add    $0x2,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0x18c(%rbp)
mov    -0x18c(%rbp),%eax
mov    %eax,-0x190(%rbp)
cmpl   $0x0,-0x4(%rbp)
jge    2be8 <test+0x1ad8>
xor    %eax,%eax
sub    -0x4(%rbp),%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0x194(%rbp)
jmp    2bf9 <test+0x1ae9>
mov    -0x4(%rbp),%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0x194(%rbp)
mov    -0x190(%rbp),%eax
mov    -0x194(%rbp),%ecx
cmp    %ecx,%eax
jge    2c88 <test+0x1b78>
imul   $0x3,-0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
imul   $0x3,-0x18(%rbp),%ecx
sub    %ecx,%eax
add    $0x2,%eax
cmp    $0x0,%eax
jge    2c59 <test+0x1b49>
imul   $0x3,-0x8(%rbp),%ecx
sub    -0x14(%rbp),%ecx
imul   $0x3,-0x18(%rbp),%eax
sub    %eax,%ecx
add    $0x2,%ecx
xor    %eax,%eax
sub    %ecx,%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0x198(%rbp)
jmp    2c77 <test+0x1b67>
imul   $0x3,-0x8(%rbp),%eax
sub    -0x14(%rbp),%eax
imul   $0x3,-0x18(%rbp),%ecx
sub    %ecx,%eax
add    $0x2,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0x198(%rbp)
mov    -0x198(%rbp),%eax
mov    %eax,-0x19c(%rbp)
jmp    2cd3 <test+0x1bc3>
cmpl   $0x0,-0x4(%rbp)
jge    2cb6 <test+0x1ba6>
xor    %eax,%eax
sub    -0x4(%rbp),%eax
add    $0x3,%eax
sub    $0x1,%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0x1a0(%rbp)
jmp    2cc7 <test+0x1bb7>
mov    -0x4(%rbp),%eax
mov    $0x3,%ecx
cltd
idiv   %ecx
mov    %eax,-0x1a0(%rbp)
mov    -0x1a0(%rbp),%eax
mov    %eax,-0x19c(%rbp)
mov    -0x188(%rbp),%eax
mov    -0x19c(%rbp),%ecx
cmp    %ecx,%eax
jg     2d48 <test+0x1c38>
mov    -0x8(%rbp),%eax
sub    -0x18(%rbp),%eax
sub    -0x1c(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    $0x2,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0xc(%rbp),%edi
add    $0x1,%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x14(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x18(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x8(%rbp),%edi
sub    -0x18(%rbp),%edi
sub    -0x1c(%rbp),%edi
mov    $0x0,%al
call   1030 <hash@plt>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    2b3b <test+0x1a2b>
jmp    2d4d <test+0x1c3d>
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    288f <test+0x177f>
jmp    2d60 <test+0x1c50>
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    2759 <test+0x1649>
jmp    2d73 <test+0x1c63>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    26ff <test+0x15ef>
jmp    2d86 <test+0x1c76>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    2686 <test+0x1576>
jmp    2d99 <test+0x1c89>
add    $0x1a0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<test>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x68,%rsp
lea    -0x5(%rdi),%eax
cmp    $0x4,%edi
mov    %rdi,0x18(%rsp)
mov    %eax,0x38(%rsp)
jg     1159 <test+0x49>
mov    $0x7,%eax
sub    %edi,%eax
cltq
imul   $0x55555555,%rax,%r14
shr    $0x20,%r14
sub    %eax,%r14d
mov    %r14d,%eax
shr    $0x1f,%eax
sar    %r14d
add    %eax,%r14d
test   %r14d,%r14d
jns    116e <test+0x5e>
jmp    11c8 <test+0xb8>
mov    %eax,%eax
mov    $0xaaaaaaab,%r14d
imul   %rax,%r14
shr    $0x21,%r14
test   %r14d,%r14d
js     11c8 <test+0xb8>
xor    %ebx,%ebx
jmp    118a <test+0x7a>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
lea    0x1(%rbx),%eax
cmp    %r14d,%ebx
mov    %eax,%ebx
jge    11c8 <test+0xb8>
lea    (%rbx,%rbx,2),%r15d
add    $0x3,%r15d
lea    (%rbx,%rbx,2),%ebp
add    $0x1,%ebp
cmp    %r15d,%ebp
jg     1180 <test+0x70>
nopl   (%rax)
mov    $0x1,%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,%ebp
cmp    %r15d,%ebp
jle    11a0 <test+0x90>
jmp    1180 <test+0x70>
mov    0x18(%rsp),%rdi
cmp    $0x1,%edi
jne    123c <test+0x12c>
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
xor    %edi,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x2,%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>
xor    %edi,%edi
xor    %eax,%eax
call   1030 <hash@plt>
xor    %edi,%edi
xor    %eax,%eax
call   1030 <hash@plt>
xor    %edi,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    0x18(%rsp),%rdi
jmp    1603 <test+0x4f3>
jle    1603 <test+0x4f3>
cmp    $0x4,%edi
ja     1630 <test+0x520>
mov    $0x5,%ecx
sub    %edi,%ecx
movzbl %dil,%eax
imul   $0xab,%eax,%ebx
shr    $0x9,%ebx
cmp    $0x3,%edi
mov    $0x3,%eax
cmovb  %edi,%eax
mov    %rax,0x48(%rsp)
cmp    %edi,%ecx
mov    $0x2,%eax
mov    %ecx,%edx
cmova  %eax,%edx
mov    %edx,0x20(%rsp)
cmovae %edi,%ecx
mov    %ecx,0x4(%rsp)
mov    $0x1,%r14d
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
xor    %edi,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    0x18(%rsp),%rdx
mov    %ebx,0x8(%rsp)
neg    %ebx
mov    %ebx,(%rsp)
jmp    12d2 <test+0x1c2>
nopl   (%rax)
lea    0x1(%r14),%eax
cmp    0x20(%rsp),%r14d
mov    %eax,%r14d
je     1420 <test+0x310>
lea    (%r14,%rdx,1),%eax
add    $0xffffffff,%eax
cmp    $0x3,%eax
jle    1300 <test+0x1f0>
lea    (%r14,%rdx,1),%ecx
add    $0xfffffffe,%ecx
mov    $0xaaaaaaab,%eax
imul   %rax,%rcx
shr    $0x21,%rcx
neg    %ecx
test   %ecx,%ecx
jns    1325 <test+0x215>
jmp    12c0 <test+0x1b0>
nopw   0x0(%rax,%rax,1)
mov    $0x4,%ecx
sub    %r14d,%ecx
sub    %edx,%ecx
movslq %ecx,%rax
imul   $0x55555556,%rax,%rcx
mov    %rcx,%rax
shr    $0x3f,%rax
shr    $0x20,%rcx
add    %eax,%ecx
test   %ecx,%ecx
js     12c0 <test+0x1b0>
xor    %r12d,%r12d
mov    (%rsp),%r15d
mov    %rcx,0x10(%rsp)
jmp    135f <test+0x24f>
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
lea    0x1(%r12),%eax
add    $0xffffffff,%r15d
mov    0x10(%rsp),%rcx
cmp    %ecx,%r12d
mov    %eax,%r12d
mov    0x18(%rsp),%rdx
jge    12c0 <test+0x1b0>
lea    (%r12,%r12,2),%eax
add    %r14d,%eax
mov    %eax,%ecx
neg    %ecx
cmp    $0xfffffffd,%ecx
jg     13a0 <test+0x290>
movslq %eax,%rcx
imul   $0x55555555,%rcx,%r13
shr    $0x20,%r13
sub    %eax,%r13d
mov    %r13d,%eax
shr    $0x1f,%eax
sar    %r13d
add    %eax,%r13d
cmp    0x8(%rsp),%r13d
jl     1340 <test+0x230>
jmp    13be <test+0x2ae>
cs nopw 0x0(%rax,%rax,1)
nop
mov    $0x2,%ecx
sub    %eax,%ecx
mov    %ecx,%r13d
mov    $0xaaaaaaab,%eax
imul   %rax,%r13
shr    $0x21,%r13
cmp    0x8(%rsp),%r13d
jl     1340 <test+0x230>
mov    %r15d,%ebx
mov    0x8(%rsp),%eax
mov    %eax,%ebp
nopw   0x0(%rax,%rax,1)
mov    $0x2,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r14d,%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>
lea    0x1(%rbp),%eax
add    $0xffffffff,%ebx
cmp    %r13d,%ebp
mov    %eax,%ebp
jl     13d0 <test+0x2c0>
jmp    1340 <test+0x230>
mov    0x48(%rsp),%rbp
neg    %ebp
mov    $0x2,%ebx
nopl   0x0(%rax)
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %ebx,%edi
xor    %eax,%eax
call   1030 <hash@plt>
xor    %edi,%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    1430 <test+0x320>
mov    0x8(%rsp),%eax
neg    %eax
mov    %eax,(%rsp)
mov    $0x1,%r14d
mov    0x18(%rsp),%rdi
jmp    1489 <test+0x379>
cs nopw 0x0(%rax,%rax,1)
cmp    %edi,%r14d
je     15fe <test+0x4ee>
add    $0x1,%r14d
mov    $0x1,%r12d
jmp    14af <test+0x39f>
cs nopw 0x0(%rax,%rax,1)
nop
lea    0x1(%r12),%eax
cmp    0x4(%rsp),%r12d
mov    %eax,%r12d
je     1480 <test+0x370>
lea    (%r12,%rdi,1),%eax
add    $0xffffffff,%eax
cmp    $0x3,%eax
jle    14e0 <test+0x3d0>
lea    (%r12,%rdi,1),%ecx
add    $0xfffffffe,%ecx
mov    $0xaaaaaaab,%eax
imul   %rax,%rcx
shr    $0x21,%rcx
neg    %ecx
test   %ecx,%ecx
jns    1505 <test+0x3f5>
jmp    14a0 <test+0x390>
nopw   0x0(%rax,%rax,1)
mov    $0x4,%ecx
sub    %r12d,%ecx
sub    %edi,%ecx
movslq %ecx,%rax
imul   $0x55555556,%rax,%rcx
mov    %rcx,%rax
shr    $0x3f,%rax
shr    $0x20,%rcx
add    %eax,%ecx
test   %ecx,%ecx
js     14a0 <test+0x390>
xor    %r13d,%r13d
mov    (%rsp),%eax
mov    %eax,0x10(%rsp)
mov    %rcx,0x20(%rsp)
jmp    153c <test+0x42c>
cs nopw 0x0(%rax,%rax,1)
lea    0x1(%r13),%eax
addl   $0xffffffff,0x10(%rsp)
cmp    0x20(%rsp),%r13d
mov    %eax,%r13d
mov    0x18(%rsp),%rdi
jge    14a0 <test+0x390>
lea    0x0(%r13,%r13,2),%eax
add    %r12d,%eax
mov    %eax,%ecx
neg    %ecx
cmp    $0xfffffffd,%ecx
jg     1580 <test+0x470>
movslq %eax,%rcx
imul   $0x55555555,%rcx,%r15
shr    $0x20,%r15
sub    %eax,%r15d
mov    %r15d,%eax
shr    $0x1f,%eax
sar    %r15d
add    %eax,%r15d
cmp    0x8(%rsp),%r15d
jl     1520 <test+0x410>
jmp    159e <test+0x48e>
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
mov    $0x2,%ecx
sub    %eax,%ecx
mov    %ecx,%r15d
mov    $0xaaaaaaab,%eax
imul   %rax,%r15
shr    $0x21,%r15
cmp    0x8(%rsp),%r15d
jl     1520 <test+0x410>
mov    0x10(%rsp),%ebp
mov    0x8(%rsp),%eax
mov    %eax,%ebx
nopl   0x0(%rax,%rax,1)
mov    $0x2,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r14d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r12d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r13d,%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>
lea    0x1(%rbx),%eax
add    $0xffffffff,%ebp
cmp    %r15d,%ebx
mov    %eax,%ebx
jl     15b0 <test+0x4a0>
jmp    1520 <test+0x410>
cmp    $0x3,%edi
jg     1630 <test+0x520>
mov    $0x1,%edx
cmpl   $0x2,0x38(%rsp)
jl     164a <test+0x53a>
mov    $0x4,%eax
sub    %edi,%eax
cltq
imul   $0x55555555,%rax,%rdx
shr    $0x20,%rdx
sub    %eax,%edx
mov    %edx,%eax
shr    $0x1f,%eax
sar    %edx
add    %eax,%edx
jmp    164a <test+0x53a>
lea    -0x2(%rdi),%eax
mov    $0x1,%edx
cmp    $0x3,%eax
jb     164a <test+0x53a>
mov    $0xaaaaaaab,%edx
imul   %rax,%rdx
shr    $0x21,%rdx
mov    %edi,%ecx
mov    $0xaaaaaaab,%eax
mov    %rcx,0x48(%rsp)
imul   %rax,%rcx
shr    $0x21,%rcx
mov    %rcx,0x8(%rsp)
mov    $0x2,%ecx
sub    %edi,%ecx
movslq %ecx,%rcx
imul   $0x55555555,%rcx,%rsi
shr    $0x20,%rsi
sub    %ecx,%esi
mov    %esi,%ecx
shr    $0x1f,%ecx
sar    %esi
add    %ecx,%esi
mov    %rsi,0x10(%rsp)
test   %edi,%edi
jle    169b <test+0x58b>
lea    -0x1(%rdi),%ecx
mov    %ecx,%esi
imul   %rax,%rsi
shr    $0x21,%rsi
jmp    16ba <test+0x5aa>
mov    $0x3,%eax
sub    %edi,%eax
cltq
imul   $0x55555555,%rax,%rsi
shr    $0x20,%rsi
sub    %eax,%esi
mov    %esi,%eax
shr    $0x1f,%eax
sar    %esi
add    %eax,%esi
cmp    $0x2,%edi
mov    0x8(%rsp),%rax
cmovl  0x10(%rsp),%eax
mov    %eax,0x4(%rsp)
cmp    %esi,%edx
jle    170c <test+0x5fc>
test   %edi,%edi
jle    1b8a <test+0xa7a>
lea    0x2(%rdi),%esi
mov    $0xaaaaaaab,%eax
imul   %rax,%rsi
shr    $0x21,%rsi
lea    (%rdi,%rdi,1),%ecx
add    $0x1,%ecx
test   %ecx,%ecx
js     1b66 <test+0xa56>
mov    %ecx,%edx
imul   %rax,%rdx
shr    $0x21,%rdx
cmp    %edx,%esi
jg     1b8a <test+0xa7a>
jmp    1b99 <test+0xa89>
lea    (%rdx,%rdx,2),%ebp
sub    %edi,%ebp
add    $0x5,%ebp
cmp    $0x2,%ebp
mov    $0x1,%eax
cmovge %ebp,%eax
mov    %eax,0x40(%rsp)
mov    %rsi,0x60(%rsp)
jmp    175d <test+0x64d>
nopw   0x0(%rax,%rax,1)
mov    0x28(%rsp),%rcx
lea    0x1(%rcx),%eax
mov    0x5c(%rsp),%ebp
add    $0x3,%ebp
cmp    $0x2,%ebp
mov    $0x1,%edx
cmovge %ebp,%edx
mov    %edx,0x40(%rsp)
mov    0x60(%rsp),%rsi
cmp    %esi,%ecx
mov    %eax,%edx
jge    16cf <test+0x5bf>
mov    %ebp,0x5c(%rsp)
mov    %rdx,0x28(%rsp)
lea    (%rdx,%rdx,2),%eax
mov    %rax,0x30(%rsp)
sub    %edi,%eax
mov    %eax,0x50(%rsp)
cmp    $0xfffffffc,%eax
jge    19b0 <test+0x8a0>
mov    0x30(%rsp),%rax
lea    0x3(%rax),%ebp
cmp    %edi,%ebp
cmovg  %edi,%ebp
mov    %eax,%ebx
cmp    %ebp,%eax
mov    0x28(%rsp),%r14
jge    17c6 <test+0x6b6>
cs nopw 0x0(%rax,%rax,1)
nop
add    $0x1,%ebx
mov    $0x1,%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>
cmp    %ebp,%ebx
jl     17a0 <test+0x690>
mov    0x18(%rsp),%rdi
cmp    $0x2,%edi
jl     1730 <test+0x620>
mov    $0x1,%r12d
jmp    17e9 <test+0x6d9>
nopl   0x0(%rax)
cmp    %edi,%r12d
je     1730 <test+0x620>
add    $0x1,%r12d
cmpl   $0xfffffffc,0x50(%rsp)
jl     17e0 <test+0x6d0>
mov    $0x1,%r13d
jmp    180e <test+0x6fe>
nopl   0x0(%rax)
lea    0x1(%r13),%eax
cmp    0x40(%rsp),%r13d
mov    %eax,%r13d
je     17e0 <test+0x6d0>
mov    0x30(%rsp),%rax
sub    %r13d,%eax
mov    %eax,(%rsp)
sub    %edi,%eax
mov    $0xfffffffe,%edx
sub    %eax,%edx
mov    $0xaaaaaaab,%ecx
imul   %rcx,%rdx
shr    $0x21,%rdx
neg    %edx
cmp    $0xfffffffc,%eax
mov    $0x0,%eax
cmovge %eax,%edx
mov    %rdx,0x38(%rsp)
test   %edx,%edx
js     1800 <test+0x6f0>
xor    %ebx,%ebx
mov    0x28(%rsp),%rax
mov    %eax,%r14d
jmp    1874 <test+0x764>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
lea    0x1(%rbx),%eax
mov    0x20(%rsp),%r14d
add    $0xffffffff,%r14d
cmp    0x38(%rsp),%ebx
mov    %eax,%ebx
jge    1800 <test+0x6f0>
lea    (%rbx,%rbx,2),%ecx
mov    (%rsp),%eax
sub    %ecx,%eax
lea    0x2(%rax),%ecx
test   %eax,%eax
mov    %ecx,%edx
cmovs  %eax,%edx
movslq %edx,%rdx
imul   $0x55555556,%rdx,%rdx
mov    %rdx,%rsi
shr    $0x3f,%rsi
shr    $0x20,%rdx
add    %esi,%edx
mov    0x4(%rsp),%esi
mov    %esi,%ebp
cmp    %edx,%esi
jg     18ba <test+0x7aa>
test   %eax,%eax
js     18df <test+0x7cf>
mov    %ecx,%ebp
mov    $0xaaaaaaab,%edx
imul   %rdx,%rbp
shr    $0x21,%rbp
cmp    $0xfffffffd,%eax
jg     1900 <test+0x7f0>
neg    %eax
cltq
imul   $0x55555555,%rax,%r15
shr    $0x20,%r15
sub    %eax,%r15d
mov    %r15d,%eax
shr    $0x1f,%eax
sar    %r15d
add    %eax,%r15d
jmp    1918 <test+0x808>
mov    %eax,%ebp
neg    %ebp
mov    $0xaaaaaaab,%edx
imul   %rdx,%rbp
shr    $0x21,%rbp
neg    %ebp
cmp    $0xfffffffd,%eax
jle    18bf <test+0x7af>
nopw   0x0(%rax,%rax,1)
movslq %ecx,%rax
imul   $0x55555556,%rax,%r15
mov    %r15,%rax
shr    $0x3f,%rax
shr    $0x20,%r15
add    %eax,%r15d
mov    %r14d,0x20(%rsp)
sub    %ebp,%r14d
test   %edi,%edi
js     1940 <test+0x830>
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
mov    0x8(%rsp),%rcx
jmp    1945 <test+0x835>
nopw   0x0(%rax,%rax,1)
mov    0x10(%rsp),%rcx
mov    %ecx,%eax
cmp    %ecx,%r15d
jge    194f <test+0x83f>
mov    %r15d,%eax
cmp    %eax,%ebp
jg     1860 <test+0x750>
mov    $0x2,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r12d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r13d,%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>
mov    %r14d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    0x18(%rsp),%rdi
add    $0x1,%ebp
add    $0xffffffff,%r14d
test   %edi,%edi
jns    1930 <test+0x820>
jmp    1940 <test+0x830>
cs nopw 0x0(%rax,%rax,1)
nop
mov    $0x1,%r12d
jmp    19d3 <test+0x8c3>
nopl   0x0(%rax,%rax,1)
lea    0x1(%r12),%eax
cmp    0x40(%rsp),%r12d
mov    %eax,%r12d
je     177d <test+0x66d>
mov    0x30(%rsp),%rax
sub    %r12d,%eax
mov    %eax,(%rsp)
sub    %edi,%eax
mov    $0xfffffffe,%edx
sub    %eax,%edx
mov    $0xaaaaaaab,%ecx
imul   %rcx,%rdx
shr    $0x21,%rdx
neg    %edx
cmp    $0xfffffffc,%eax
mov    $0x0,%eax
cmovge %eax,%edx
mov    %rdx,0x20(%rsp)
test   %edx,%edx
js     19c0 <test+0x8b0>
xor    %r13d,%r13d
mov    0x28(%rsp),%rax
mov    %eax,%ebp
jmp    1a34 <test+0x924>
cs nopw 0x0(%rax,%rax,1)
lea    0x1(%r13),%eax
mov    %r15d,%ebp
add    $0xffffffff,%ebp
cmp    0x20(%rsp),%r13d
mov    %eax,%r13d
jge    19c0 <test+0x8b0>
lea    0x0(%r13,%r13,2),%ecx
mov    (%rsp),%eax
sub    %ecx,%eax
lea    0x2(%rax),%ecx
test   %eax,%eax
mov    %ecx,%edx
cmovs  %eax,%edx
movslq %edx,%rdx
imul   $0x55555556,%rdx,%rdx
mov    %rdx,%rsi
shr    $0x3f,%rsi
shr    $0x20,%rdx
add    %esi,%edx
mov    0x4(%rsp),%esi
mov    %esi,%ebx
cmp    %edx,%esi
jg     1a7c <test+0x96c>
test   %eax,%eax
js     1aa1 <test+0x991>
mov    %ecx,%ebx
mov    $0xaaaaaaab,%edx
imul   %rdx,%rbx
shr    $0x21,%rbx
cmp    $0xfffffffd,%eax
jg     1ac0 <test+0x9b0>
neg    %eax
cltq
imul   $0x55555555,%rax,%r14
shr    $0x20,%r14
sub    %eax,%r14d
mov    %r14d,%eax
shr    $0x1f,%eax
sar    %r14d
add    %eax,%r14d
jmp    1ad8 <test+0x9c8>
mov    %eax,%ebx
neg    %ebx
mov    $0xaaaaaaab,%edx
imul   %rdx,%rbx
shr    $0x21,%rbx
neg    %ebx
cmp    $0xfffffffd,%eax
jle    1a81 <test+0x971>
nopl   0x0(%rax)
movslq %ecx,%rax
imul   $0x55555556,%rax,%r14
mov    %r14,%rax
shr    $0x3f,%rax
shr    $0x20,%r14
add    %eax,%r14d
mov    %ebp,%r15d
sub    %ebx,%ebp
test   %edi,%edi
js     1b00 <test+0x9f0>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
mov    0x8(%rsp),%rcx
jmp    1b05 <test+0x9f5>
nopw   0x0(%rax,%rax,1)
mov    0x10(%rsp),%rcx
mov    %ecx,%eax
cmp    %ecx,%r14d
jge    1b0f <test+0x9ff>
mov    %r14d,%eax
cmp    %eax,%ebx
jg     1a20 <test+0x910>
mov    $0x2,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    $0x1,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r12d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r13d,%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>
mov    0x18(%rsp),%rdi
add    $0x1,%ebx
add    $0xffffffff,%ebp
test   %edi,%edi
jns    1af0 <test+0x9e0>
jmp    1b00 <test+0x9f0>
mov    $0x2,%edx
sub    %ecx,%edx
movslq %edx,%rcx
imul   $0x55555555,%rcx,%rdx
shr    $0x20,%rdx
sub    %ecx,%edx
mov    %edx,%ecx
shr    $0x1f,%ecx
sar    %edx
add    %ecx,%edx
cmp    %edx,%esi
jle    1b99 <test+0xa89>
add    $0x68,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret
mov    0x48(%rsp),%rcx
imul   %rax,%rcx
lea    (%rsi,%rsi,2),%ebp
shr    $0x21,%rcx
mov    %rcx,0x48(%rsp)
sub    %edi,%ebp
add    $0x5,%ebp
cmp    %ebp,%edi
mov    %ebp,%eax
cmovl  %edi,%eax
mov    %eax,0x4(%rsp)
mov    %rdx,0x50(%rsp)
jmp    1bf5 <test+0xae5>
cs nopw 0x0(%rax,%rax,1)
nop
mov    0x38(%rsp),%rcx
lea    0x1(%rcx),%eax
mov    0x28(%rsp),%ebp
add    $0x3,%ebp
cmp    %ebp,%edi
mov    %ebp,%edx
cmovl  %edi,%edx
mov    %edx,0x4(%rsp)
mov    0x50(%rsp),%rdx
cmp    %edx,%ecx
mov    %eax,%esi
jge    1b8a <test+0xa7a>
mov    %ebp,0x28(%rsp)
mov    %rsi,0x38(%rsp)
lea    (%rsi,%rsi,2),%eax
mov    %eax,(%rsp)
mov    %eax,%ecx
sub    %edi,%ecx
lea    -0x1(%rcx),%edx
cmp    $0x2,%ecx
mov    $0x1,%eax
cmovl  %eax,%edx
mov    %edx,0x30(%rsp)
add    $0x5,%ecx
cmp    %edi,%ecx
cmovg  %edi,%ecx
mov    %rcx,0x40(%rsp)
xor    %r14d,%r14d
jmp    1c35 <test+0xb25>
nopl   0x0(%rax)
cmp    %edi,%r14d
je     1bd0 <test+0xac0>
add    $0x1,%r14d
mov    0x30(%rsp),%eax
cmp    0x40(%rsp),%eax
jg     1c30 <test+0xb20>
mov    0x30(%rsp),%eax
mov    %eax,%r12d
jmp    1c5f <test+0xb4f>
nopl   0x0(%rax)
lea    0x1(%r12),%eax
cmp    0x4(%rsp),%r12d
mov    %eax,%r12d
je     1c30 <test+0xb20>
mov    (%rsp),%eax
sub    %r12d,%eax
mov    %eax,0x10(%rsp)
sub    %edi,%eax
lea    0x2(%rax),%ecx
test   %eax,%eax
mov    %ecx,%edx
cmovs  %eax,%edx
xor    %r13d,%r13d
cmp    $0x3,%edx
jl     1cb0 <test+0xba0>
test   %eax,%eax
js     1c93 <test+0xb83>
mov    %ecx,%r13d
mov    $0xaaaaaaab,%ecx
imul   %rcx,%r13
shr    $0x21,%r13
jmp    1cb0 <test+0xba0>
mov    %eax,%r13d
neg    %r13d
mov    $0xaaaaaaab,%ecx
imul   %rcx,%r13
shr    $0x21,%r13
neg    %r13d
nopl   0x0(%rax)
mov    $0xfffffffe,%edx
sub    %eax,%edx
mov    $0xaaaaaaab,%ecx
imul   %rcx,%rdx
shr    $0x21,%rdx
neg    %edx
cmp    $0xfffffffc,%eax
mov    $0x0,%eax
cmovge %eax,%edx
mov    %rdx,0x20(%rsp)
cmp    %edx,%r13d
jg     1c50 <test+0xb40>
mov    0x38(%rsp),%rax
sub    %r13d,%eax
mov    %eax,0x8(%rsp)
jmp    1d0c <test+0xbfc>
nopl   (%rax)
lea    0x1(%r13),%eax
addl   $0xffffffff,0x8(%rsp)
cmp    0x20(%rsp),%r13d
mov    %eax,%r13d
mov    0x18(%rsp),%rdi
jge    1c50 <test+0xb40>
lea    0x0(%r13,%r13,2),%ecx
mov    0x10(%rsp),%eax
sub    %ecx,%eax
lea    0x2(%rax),%ecx
test   %eax,%eax
mov    %ecx,%edx
cmovs  %eax,%edx
movslq %edx,%rdx
imul   $0x55555556,%rdx,%rdx
mov    %rdx,%rsi
shr    $0x3f,%rsi
shr    $0x20,%rdx
add    %esi,%edx
mov    0x48(%rsp),%rsi
mov    %esi,%ebx
cmp    %edx,%esi
jg     1d70 <test+0xc60>
test   %eax,%eax
js     1d58 <test+0xc48>
mov    %ecx,%ebx
mov    $0xaaaaaaab,%edx
imul   %rdx,%rbx
shr    $0x21,%rbx
jmp    1d70 <test+0xc60>
mov    %eax,%ebx
neg    %ebx
mov    $0xaaaaaaab,%edx
imul   %rdx,%rbx
shr    $0x21,%rbx
neg    %ebx
nopl   0x0(%rax,%rax,1)
movslq %ecx,%rcx
imul   $0x55555556,%rcx,%r15
mov    %r15,%rcx
shr    $0x3f,%rcx
shr    $0x20,%r15
add    %ecx,%r15d
mov    %eax,%ecx
neg    %ecx
movslq %ecx,%rcx
imul   $0x55555555,%rcx,%rcx
shr    $0x20,%rcx
add    %eax,%ecx
mov    %ecx,%edx
shr    $0x1f,%edx
sar    %ecx
add    %edx,%ecx
cmp    %esi,%ecx
cmovge %esi,%ecx
cmp    %esi,%r15d
cmovge %esi,%r15d
cmp    $0xfffffffe,%eax
cmovl  %ecx,%r15d
cmp    %r15d,%ebx
jg     1cf0 <test+0xbe0>
mov    0x8(%rsp),%ebp
sub    %ebx,%ebp
nopw   0x0(%rax,%rax,1)
mov    $0x2,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r14d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r12d,%edi
xor    %eax,%eax
call   1030 <hash@plt>
mov    %r13d,%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>
lea    0x1(%rbx),%eax
add    $0xffffffff,%ebp
cmp    %r15d,%ebx
mov    %eax,%ebx
jl     1dd0 <test+0xcc0>
jmp    1cf0 <test+0xbe0>

LLVM IR (-O0):
define void @test(i32 %0) {
%2 = alloca i32
%3 = alloca i32
%4 = alloca i32
%5 = alloca i32
%6 = alloca i32
%7 = alloca i32
%8 = alloca i32
%9 = alloca i32
store i32 %0, i32* %2
store i32 0, i32* %3
br label %10
10: ; preds = %58, %1
%11 = load i32, i32* %3
%12 = load i32, i32* %2
%13 = sub nsw i32 %12, 5
%14 = icmp slt i32 %13, 0
br i1 %14, label %15, label %23
15: ; preds = %10
%16 = load i32, i32* %2
%17 = sub nsw i32 %16, 5
%18 = sub nsw i32 0, %17
%19 = add nsw i32 %18, 3
%20 = sub nsw i32 %19, 1
%21 = sdiv i32 %20, 3
%22 = sub nsw i32 0, %21
br label %27
23: ; preds = %10
%24 = load i32, i32* %2
%25 = sub nsw i32 %24, 5
%26 = sdiv i32 %25, 3
br label %27
27: ; preds = %23, %15
%28 = phi i32 [ %22, %15 ], [ %26, %23 ]
%29 = icmp sle i32 %11, %28
br i1 %29, label %30, label %61
30: ; preds = %27
%31 = load i32, i32* %3
%32 = mul nsw i32 3, %31
%33 = add nsw i32 %32, 1
%34 = icmp sgt i32 %33, 1
br i1 %34, label %35, label %39
35: ; preds = %30
%36 = load i32, i32* %3
%37 = mul nsw i32 3, %36
%38 = add nsw i32 %37, 1
br label %40
39: ; preds = %30
br label %40
40: ; preds = %39, %35
%41 = phi i32 [ %38, %35 ], [ 1, %39 ]
store i32 %41, i32* %5
br label %42
42: ; preds = %54, %40
%43 = load i32, i32* %5
%44 = load i32, i32* %3
%45 = mul nsw i32 3, %44
%46 = add nsw i32 %45, 3
%47 = icmp sle i32 %43, %46
br i1 %47, label %48, label %57
48: ; preds = %42
%49 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%50 = load i32, i32* %5
%51 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %50)
%52 = load i32, i32* %3
%53 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %52)
br label %54
54: ; preds = %48
%55 = load i32, i32* %5
%56 = add nsw i32 %55, 1
store i32 %56, i32* %5
br label %42
57: ; preds = %42
br label %58
58: ; preds = %57
%59 = load i32, i32* %3
%60 = add nsw i32 %59, 1
store i32 %60, i32* %3
br label %10
61: ; preds = %27
%62 = load i32, i32* %2
%63 = icmp eq i32 %62, 1
br i1 %63, label %64, label %190
64: ; preds = %61
%65 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%66 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%67 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 0)
store i32 0, i32* %7
br label %68
68: ; preds = %186, %64
%69 = load i32, i32* %7
%70 = icmp sle i32 %69, 0
br i1 %70, label %71, label %189
71: ; preds = %68
%72 = load i32, i32* %7
%73 = mul nsw i32 -3, %72
%74 = sub nsw i32 %73, 1
%75 = icmp slt i32 %74, 0
br i1 %75, label %76, label %83
76: ; preds = %71
%77 = load i32, i32* %7
%78 = mul nsw i32 -3, %77
%79 = sub nsw i32 %78, 1
%80 = sub nsw i32 0, %79
%81 = sdiv i32 %80, 3
%82 = sub nsw i32 0, %81
br label %90
83: ; preds = %71
%84 = load i32, i32* %7
%85 = mul nsw i32 -3, %84
%86 = sub nsw i32 %85, 1
%87 = add nsw i32 %86, 3
%88 = sub nsw i32 %87, 1
%89 = sdiv i32 %88, 3
br label %90
90: ; preds = %83, %76
%91 = phi i32 [ %82, %76 ], [ %89, %83 ]
%92 = icmp sgt i32 0, %91
br i1 %92, label %93, label %94
93: ; preds = %90
br label %115
94: ; preds = %90
%95 = load i32, i32* %7
%96 = mul nsw i32 -3, %95
%97 = sub nsw i32 %96, 1
%98 = icmp slt i32 %97, 0
br i1 %98, label %99, label %106
99: ; preds = %94
%100 = load i32, i32* %7
%101 = mul nsw i32 -3, %100
%102 = sub nsw i32 %101, 1
%103 = sub nsw i32 0, %102
%104 = sdiv i32 %103, 3
%105 = sub nsw i32 0, %104
br label %113
106: ; preds = %94
%107 = load i32, i32* %7
%108 = mul nsw i32 -3, %107
%109 = sub nsw i32 %108, 1
%110 = add nsw i32 %109, 3
%111 = sub nsw i32 %110, 1
%112 = sdiv i32 %111, 3
br label %113
113: ; preds = %106, %99
%114 = phi i32 [ %105, %99 ], [ %112, %106 ]
br label %115
115: ; preds = %113, %93
%116 = phi i32 [ 0, %93 ], [ %114, %113 ]
store i32 %116, i32* %8
br label %117
117: ; preds = %182, %115
%118 = load i32, i32* %8
%119 = load i32, i32* %7
%120 = mul nsw i32 -3, %119
%121 = add nsw i32 %120, 1
%122 = icmp slt i32 %121, 0
br i1 %122, label %123, label %132
123: ; preds = %117
%124 = load i32, i32* %7
%125 = mul nsw i32 -3, %124
%126 = add nsw i32 %125, 1
%127 = sub nsw i32 0, %126
%128 = add nsw i32 %127, 3
%129 = sub nsw i32 %128, 1
%130 = sdiv i32 %129, 3
%131 = sub nsw i32 0, %130
br label %137
132: ; preds = %117
%133 = load i32, i32* %7
%134 = mul nsw i32 -3, %133
%135 = add nsw i32 %134, 1
%136 = sdiv i32 %135, 3
br label %137
137: ; preds = %132, %123
%138 = phi i32 [ %131, %123 ], [ %136, %132 ]
%139 = icmp slt i32 %138, 0
br i1 %139, label %140, label %161
140: ; preds = %137
%141 = load i32, i32* %7
%142 = mul nsw i32 -3, %141
%143 = add nsw i32 %142, 1
%144 = icmp slt i32 %143, 0
br i1 %144, label %145, label %154
145: ; preds = %140
%146 = load i32, i32* %7
%147 = mul nsw i32 -3, %146
%148 = add nsw i32 %147, 1
%149 = sub nsw i32 0, %148
%150 = add nsw i32 %149, 3
%151 = sub nsw i32 %150, 1
%152 = sdiv i32 %151, 3
%153 = sub nsw i32 0, %152
br label %159
154: ; preds = %140
%155 = load i32, i32* %7
%156 = mul nsw i32 -3, %155
%157 = add nsw i32 %156, 1
%158 = sdiv i32 %157, 3
br label %159
159: ; preds = %154, %145
%160 = phi i32 [ %153, %145 ], [ %158, %154 ]
br label %162
161: ; preds = %137
br label %162
162: ; preds = %161, %159
%163 = phi i32 [ %160, %159 ], [ 0, %161 ]
%164 = icmp sle i32 %118, %163
br i1 %164, label %165, label %185
165: ; preds = %162
%166 = load i32, i32* %7
%167 = sub nsw i32 0, %166
%168 = load i32, i32* %8
%169 = sub nsw i32 %167, %168
store i32 %169, i32* %9
%170 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 2)
%171 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%172 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%173 = load i32, i32* %7
%174 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %173)
%175 = load i32, i32* %8
%176 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %175)
%177 = load i32, i32* %7
%178 = sub nsw i32 0, %177
%179 = load i32, i32* %8
%180 = sub nsw i32 %178, %179
%181 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %180)
br label %182
182: ; preds = %165
%183 = load i32, i32* %8
%184 = add nsw i32 %183, 1
store i32 %184, i32* %8
br label %117
185: ; preds = %162
br label %186
186: ; preds = %185
%187 = load i32, i32* %7
%188 = add nsw i32 %187, 1
store i32 %188, i32* %7
br label %68
189: ; preds = %68
br label %190
190: ; preds = %189, %61
%191 = load i32, i32* %2
%192 = icmp sge i32 %191, 2
br i1 %192, label %193, label %573
193: ; preds = %190
%194 = load i32, i32* %2
%195 = sub nsw i32 %194, 4
%196 = icmp slt i32 %195, 0
br i1 %196, label %197, label %203
197: ; preds = %193
%198 = load i32, i32* %2
%199 = sub nsw i32 %198, 4
%200 = sub nsw i32 0, %199
%201 = sdiv i32 %200, 3
%202 = sub nsw i32 0, %201
br label %209
203: ; preds = %193
%204 = load i32, i32* %2
%205 = sub nsw i32 %204, 4
%206 = add nsw i32 %205, 3
%207 = sub nsw i32 %206, 1
%208 = sdiv i32 %207, 3
br label %209
209: ; preds = %203, %197
%210 = phi i32 [ %202, %197 ], [ %208, %203 ]
%211 = icmp sgt i32 0, %210
br i1 %211, label %212, label %213
212: ; preds = %209
br label %231
213: ; preds = %209
%214 = load i32, i32* %2
%215 = sub nsw i32 %214, 4
%216 = icmp slt i32 %215, 0
br i1 %216, label %217, label %223
217: ; preds = %213
%218 = load i32, i32* %2
%219 = sub nsw i32 %218, 4
%220 = sub nsw i32 0, %219
%221 = sdiv i32 %220, 3
%222 = sub nsw i32 0, %221
br label %229
223: ; preds = %213
%224 = load i32, i32* %2
%225 = sub nsw i32 %224, 4
%226 = add nsw i32 %225, 3
%227 = sub nsw i32 %226, 1
%228 = sdiv i32 %227, 3
br label %229
229: ; preds = %223, %217
%230 = phi i32 [ %222, %217 ], [ %228, %223 ]
br label %231
231: ; preds = %229, %212
%232 = phi i32 [ 0, %212 ], [ %230, %229 ]
store i32 %232, i32* %3
br label %233
233: ; preds = %569, %231
%234 = load i32, i32* %3
%235 = icmp sle i32 %234, 0
br i1 %235, label %236, label %572
236: ; preds = %233
%237 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%238 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%239 = load i32, i32* %3
%240 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %239)
store i32 1, i32* %6
br label %241
241: ; preds = %381, %236
%242 = load i32, i32* %6
%243 = load i32, i32* %2
%244 = load i32, i32* %3
%245 = mul nsw i32 3, %244
%246 = load i32, i32* %2
%247 = sub nsw i32 %245, %246
%248 = add nsw i32 %247, 5
%249 = icmp slt i32 %243, %248
br i1 %249, label %250, label %252
250: ; preds = %241
%251 = load i32, i32* %2
br label %258
252: ; preds = %241
%253 = load i32, i32* %3
%254 = mul nsw i32 3, %253
%255 = load i32, i32* %2
%256 = sub nsw i32 %254, %255
%257 = add nsw i32 %256, 5
br label %258
258: ; preds = %252, %250
%259 = phi i32 [ %251, %250 ], [ %257, %252 ]
%260 = icmp sle i32 %242, %259
br i1 %260, label %261, label %384
261: ; preds = %258
store i32 0, i32* %7
br label %262
262: ; preds = %377, %261
%263 = load i32, i32* %7
%264 = load i32, i32* %3
%265 = mul nsw i32 3, %264
%266 = load i32, i32* %6
%267 = sub nsw i32 %265, %266
%268 = load i32, i32* %2
%269 = sub nsw i32 %267, %268
%270 = add nsw i32 %269, 4
%271 = icmp slt i32 %270, 0
br i1 %271, label %272, label %285
272: ; preds = %262
%273 = load i32, i32* %3
%274 = mul nsw i32 3, %273
%275 = load i32, i32* %6
%276 = sub nsw i32 %274, %275
%277 = load i32, i32* %2
%278 = sub nsw i32 %276, %277
%279 = add nsw i32 %278, 4
%280 = sub nsw i32 0, %279
%281 = add nsw i32 %280, 3
%282 = sub nsw i32 %281, 1
%283 = sdiv i32 %282, 3
%284 = sub nsw i32 0, %283
br label %294
285: ; preds = %262
%286 = load i32, i32* %3
%287 = mul nsw i32 3, %286
%288 = load i32, i32* %6
%289 = sub nsw i32 %287, %288
%290 = load i32, i32* %2
%291 = sub nsw i32 %289, %290
%292 = add nsw i32 %291, 4
%293 = sdiv i32 %292, 3
br label %294
294: ; preds = %285, %272
%295 = phi i32 [ %284, %272 ], [ %293, %285 ]
%296 = icmp sle i32 %263, %295
br i1 %296, label %297, label %380
297: ; preds = %294
%298 = load i32, i32* %2
%299 = sub nsw i32 %298, 2
%300 = icmp slt i32 %299, 0
br i1 %300, label %301, label %307
301: ; preds = %297
%302 = load i32, i32* %2
%303 = sub nsw i32 %302, 2
%304 = sub nsw i32 0, %303
%305 = sdiv i32 %304, 3
%306 = sub nsw i32 0, %305
br label %313
307: ; preds = %297
%308 = load i32, i32* %2
%309 = sub nsw i32 %308, 2
%310 = add nsw i32 %309, 3
%311 = sub nsw i32 %310, 1
%312 = sdiv i32 %311, 3
br label %313
313: ; preds = %307, %301
%314 = phi i32 [ %306, %301 ], [ %312, %307 ]
store i32 %314, i32* %8
br label %315
315: ; preds = %373, %313
%316 = load i32, i32* %8
%317 = load i32, i32* %3
%318 = mul nsw i32 3, %317
%319 = load i32, i32* %6
%320 = sub nsw i32 %318, %319
%321 = load i32, i32* %7
%322 = mul nsw i32 3, %321
%323 = sub nsw i32 %320, %322
%324 = add nsw i32 %323, 2
%325 = icmp slt i32 %324, 0
br i1 %325, label %326, label %340
326: ; preds = %315
%327 = load i32, i32* %3
%328 = mul nsw i32 3, %327
%329 = load i32, i32* %6
%330 = sub nsw i32 %328, %329
%331 = load i32, i32* %7
%332 = mul nsw i32 3, %331
%333 = sub nsw i32 %330, %332
%334 = add nsw i32 %333, 2
%335 = sub nsw i32 0, %334
%336 = add nsw i32 %335, 3
%337 = sub nsw i32 %336, 1
%338 = sdiv i32 %337, 3
%339 = sub nsw i32 0, %338
br label %350
340: ; preds = %315
%341 = load i32, i32* %3
%342 = mul nsw i32 3, %341
%343 = load i32, i32* %6
%344 = sub nsw i32 %342, %343
%345 = load i32, i32* %7
%346 = mul nsw i32 3, %345
%347 = sub nsw i32 %344, %346
%348 = add nsw i32 %347, 2
%349 = sdiv i32 %348, 3
br label %350
350: ; preds = %340, %326
%351 = phi i32 [ %339, %326 ], [ %349, %340 ]
%352 = icmp sle i32 %316, %351
br i1 %352, label %353, label %376
353: ; preds = %350
%354 = load i32, i32* %3
%355 = load i32, i32* %7
%356 = sub nsw i32 %354, %355
%357 = load i32, i32* %8
%358 = sub nsw i32 %356, %357
store i32 %358, i32* %9
%359 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 2)
%360 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%361 = load i32, i32* %6
%362 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %361)
%363 = load i32, i32* %7
%364 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %363)
%365 = load i32, i32* %8
%366 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %365)
%367 = load i32, i32* %3
%368 = load i32, i32* %7
%369 = sub nsw i32 %367, %368
%370 = load i32, i32* %8
%371 = sub nsw i32 %369, %370
%372 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %371)
br label %373
373: ; preds = %353
%374 = load i32, i32* %8
%375 = add nsw i32 %374, 1
store i32 %375, i32* %8
br label %315
376: ; preds = %350
br label %377
377: ; preds = %376
%378 = load i32, i32* %7
%379 = add nsw i32 %378, 1
store i32 %379, i32* %7
br label %262
380: ; preds = %294
br label %381
381: ; preds = %380
%382 = load i32, i32* %6
%383 = add nsw i32 %382, 1
store i32 %383, i32* %6
br label %241
384: ; preds = %258
store i32 2, i32* %5
br label %385
385: ; preds = %407, %384
%386 = load i32, i32* %5
%387 = load i32, i32* %2
%388 = load i32, i32* %3
%389 = mul nsw i32 3, %388
%390 = add nsw i32 %389, 3
%391 = icmp slt i32 %387, %390
br i1 %391, label %392, label %394
392: ; preds = %385
%393 = load i32, i32* %2
br label %398
394: ; preds = %385
%395 = load i32, i32* %3
%396 = mul nsw i32 3, %395
%397 = add nsw i32 %396, 3
br label %398
398: ; preds = %394, %392
%399 = phi i32 [ %393, %392 ], [ %397, %394 ]
%400 = icmp sle i32 %386, %399
br i1 %400, label %401, label %410
401: ; preds = %398
%402 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%403 = load i32, i32* %5
%404 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %403)
%405 = load i32, i32* %3
%406 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %405)
br label %407
407: ; preds = %401
%408 = load i32, i32* %5
%409 = add nsw i32 %408, 1
store i32 %409, i32* %5
br label %385
410: ; preds = %398
store i32 1, i32* %4
br label %411
411: ; preds = %565, %410
%412 = load i32, i32* %4
%413 = load i32, i32* %2
%414 = sub nsw i32 %413, 1
%415 = icmp sle i32 %412, %414
br i1 %415, label %416, label %568
416: ; preds = %411
%417 = load i32, i32* %4
%418 = add nsw i32 %417, 1
store i32 %418, i32* %5
store i32 1, i32* %6
br label %419
419: ; preds = %561, %416
%420 = load i32, i32* %6
%421 = load i32, i32* %3
%422 = mul nsw i32 3, %421
%423 = load i32, i32* %2
%424 = sub nsw i32 %422, %423
%425 = add nsw i32 %424, 5
%426 = load i32, i32* %2
%427 = icmp slt i32 %425, %426
br i1 %427, label %428, label %434
428: ; preds = %419
%429 = load i32, i32* %3
%430 = mul nsw i32 3, %429
%431 = load i32, i32* %2
%432 = sub nsw i32 %430, %431
%433 = add nsw i32 %432, 5
br label %436
434: ; preds = %419
%435 = load i32, i32* %2
br label %436
436: ; preds = %434, %428
%437 = phi i32 [ %433, %428 ], [ %435, %434 ]
%438 = icmp sle i32 %420, %437
br i1 %438, label %439, label %564
439: ; preds = %436
store i32 0, i32* %7
br label %440
440: ; preds = %557, %439
%441 = load i32, i32* %7
%442 = load i32, i32* %3
%443 = mul nsw i32 3, %442
%444 = load i32, i32* %6
%445 = sub nsw i32 %443, %444
%446 = load i32, i32* %2
%447 = sub nsw i32 %445, %446
%448 = add nsw i32 %447, 4
%449 = icmp slt i32 %448, 0
br i1 %449, label %450, label %463
450: ; preds = %440
%451 = load i32, i32* %3
%452 = mul nsw i32 3, %451
%453 = load i32, i32* %6
%454 = sub nsw i32 %452, %453
%455 = load i32, i32* %2
%456 = sub nsw i32 %454, %455
%457 = add nsw i32 %456, 4
%458 = sub nsw i32 0, %457
%459 = add nsw i32 %458, 3
%460 = sub nsw i32 %459, 1
%461 = sdiv i32 %460, 3
%462 = sub nsw i32 0, %461
br label %472
463: ; preds = %440
%464 = load i32, i32* %3
%465 = mul nsw i32 3, %464
%466 = load i32, i32* %6
%467 = sub nsw i32 %465, %466
%468 = load i32, i32* %2
%469 = sub nsw i32 %467, %468
%470 = add nsw i32 %469, 4
%471 = sdiv i32 %470, 3
br label %472
472: ; preds = %463, %450
%473 = phi i32 [ %462, %450 ], [ %471, %463 ]
%474 = icmp sle i32 %441, %473
br i1 %474, label %475, label %560
475: ; preds = %472
%476 = load i32, i32* %2
%477 = sub nsw i32 %476, 2
%478 = icmp slt i32 %477, 0
br i1 %478, label %479, label %485
479: ; preds = %475
%480 = load i32, i32* %2
%481 = sub nsw i32 %480, 2
%482 = sub nsw i32 0, %481
%483 = sdiv i32 %482, 3
%484 = sub nsw i32 0, %483
br label %491
485: ; preds = %475
%486 = load i32, i32* %2
%487 = sub nsw i32 %486, 2
%488 = add nsw i32 %487, 3
%489 = sub nsw i32 %488, 1
%490 = sdiv i32 %489, 3
br label %491
491: ; preds = %485, %479
%492 = phi i32 [ %484, %479 ], [ %490, %485 ]
store i32 %492, i32* %8
br label %493
493: ; preds = %553, %491
%494 = load i32, i32* %8
%495 = load i32, i32* %3
%496 = mul nsw i32 3, %495
%497 = load i32, i32* %6
%498 = sub nsw i32 %496, %497
%499 = load i32, i32* %7
%500 = mul nsw i32 3, %499
%501 = sub nsw i32 %498, %500
%502 = add nsw i32 %501, 2
%503 = icmp slt i32 %502, 0
br i1 %503, label %504, label %518
504: ; preds = %493
%505 = load i32, i32* %3
%506 = mul nsw i32 3, %505
%507 = load i32, i32* %6
%508 = sub nsw i32 %506, %507
%509 = load i32, i32* %7
%510 = mul nsw i32 3, %509
%511 = sub nsw i32 %508, %510
%512 = add nsw i32 %511, 2
%513 = sub nsw i32 0, %512
%514 = add nsw i32 %513, 3
%515 = sub nsw i32 %514, 1
%516 = sdiv i32 %515, 3
%517 = sub nsw i32 0, %516
br label %528
518: ; preds = %493
%519 = load i32, i32* %3
%520 = mul nsw i32 3, %519
%521 = load i32, i32* %6
%522 = sub nsw i32 %520, %521
%523 = load i32, i32* %7
%524 = mul nsw i32 3, %523
%525 = sub nsw i32 %522, %524
%526 = add nsw i32 %525, 2
%527 = sdiv i32 %526, 3
br label %528
528: ; preds = %518, %504
%529 = phi i32 [ %517, %504 ], [ %527, %518 ]
%530 = icmp sle i32 %494, %529
br i1 %530, label %531, label %556
531: ; preds = %528
%532 = load i32, i32* %3
%533 = load i32, i32* %7
%534 = sub nsw i32 %532, %533
%535 = load i32, i32* %8
%536 = sub nsw i32 %534, %535
store i32 %536, i32* %9
%537 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 2)
%538 = load i32, i32* %4
%539 = add nsw i32 %538, 1
%540 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %539)
%541 = load i32, i32* %6
%542 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %541)
%543 = load i32, i32* %7
%544 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %543)
%545 = load i32, i32* %8
%546 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %545)
%547 = load i32, i32* %3
%548 = load i32, i32* %7
%549 = sub nsw i32 %547, %548
%550 = load i32, i32* %8
%551 = sub nsw i32 %549, %550
%552 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %551)
br label %553
553: ; preds = %531
%554 = load i32, i32* %8
%555 = add nsw i32 %554, 1
store i32 %555, i32* %8
br label %493
556: ; preds = %528
br label %557
557: ; preds = %556
%558 = load i32, i32* %7
%559 = add nsw i32 %558, 1
store i32 %559, i32* %7
br label %440
560: ; preds = %472
br label %561
561: ; preds = %560
%562 = load i32, i32* %6
%563 = add nsw i32 %562, 1
store i32 %563, i32* %6
br label %419
564: ; preds = %436
br label %565
565: ; preds = %564
%566 = load i32, i32* %4
%567 = add nsw i32 %566, 1
store i32 %567, i32* %4
br label %411
568: ; preds = %411
br label %569
569: ; preds = %568
%570 = load i32, i32* %3
%571 = add nsw i32 %570, 1
store i32 %571, i32* %3
br label %233
572: ; preds = %233
br label %573
573: ; preds = %572, %190
%574 = load i32, i32* %2
%575 = sub nsw i32 %574, 4
%576 = icmp slt i32 %575, 0
br i1 %576, label %577, label %583
577: ; preds = %573
%578 = load i32, i32* %2
%579 = sub nsw i32 %578, 4
%580 = sub nsw i32 0, %579
%581 = sdiv i32 %580, 3
%582 = sub nsw i32 0, %581
br label %589
583: ; preds = %573
%584 = load i32, i32* %2
%585 = sub nsw i32 %584, 4
%586 = add nsw i32 %585, 3
%587 = sub nsw i32 %586, 1
%588 = sdiv i32 %587, 3
br label %589
589: ; preds = %583, %577
%590 = phi i32 [ %582, %577 ], [ %588, %583 ]
%591 = icmp sgt i32 1, %590
br i1 %591, label %592, label %593
592: ; preds = %589
br label %611
593: ; preds = %589
%594 = load i32, i32* %2
%595 = sub nsw i32 %594, 4
%596 = icmp slt i32 %595, 0
br i1 %596, label %597, label %603
597: ; preds = %593
%598 = load i32, i32* %2
%599 = sub nsw i32 %598, 4
%600 = sub nsw i32 0, %599
%601 = sdiv i32 %600, 3
%602 = sub nsw i32 0, %601
br label %609
603: ; preds = %593
%604 = load i32, i32* %2
%605 = sub nsw i32 %604, 4
%606 = add nsw i32 %605, 3
%607 = sub nsw i32 %606, 1
%608 = sdiv i32 %607, 3
br label %609
609: ; preds = %603, %597
%610 = phi i32 [ %602, %597 ], [ %608, %603 ]
br label %611
611: ; preds = %609, %592
%612 = phi i32 [ 1, %592 ], [ %610, %609 ]
store i32 %612, i32* %3
br label %613
613: ; preds = %1323, %611
%614 = load i32, i32* %3
%615 = load i32, i32* %2
%616 = sub nsw i32 %615, 1
%617 = icmp slt i32 %616, 0
br i1 %617, label %618, label %626
618: ; preds = %613
%619 = load i32, i32* %2
%620 = sub nsw i32 %619, 1
%621 = sub nsw i32 0, %620
%622 = add nsw i32 %621, 3
%623 = sub nsw i32 %622, 1
%624 = sdiv i32 %623, 3
%625 = sub nsw i32 0, %624
br label %630
626: ; preds = %613
%627 = load i32, i32* %2
%628 = sub nsw i32 %627, 1
%629 = sdiv i32 %628, 3
br label %630
630: ; preds = %626, %618
%631 = phi i32 [ %625, %618 ], [ %629, %626 ]
%632 = icmp sle i32 %614, %631
br i1 %632, label %633, label %1326
633: ; preds = %630
store i32 1, i32* %6
br label %634
634: ; preds = %953, %633
%635 = load i32, i32* %6
%636 = load i32, i32* %3
%637 = mul nsw i32 3, %636
%638 = load i32, i32* %2
%639 = sub nsw i32 %637, %638
%640 = add nsw i32 %639, 5
%641 = icmp sle i32 %635, %640
br i1 %641, label %642, label %956
642: ; preds = %634
store i32 0, i32* %7
br label %643
643: ; preds = %949, %642
%644 = load i32, i32* %7
%645 = load i32, i32* %3
%646 = mul nsw i32 3, %645
%647 = load i32, i32* %6
%648 = sub nsw i32 %646, %647
%649 = load i32, i32* %2
%650 = sub nsw i32 %648, %649
%651 = add nsw i32 %650, 4
%652 = icmp slt i32 %651, 0
br i1 %652, label %653, label %666
653: ; preds = %643
%654 = load i32, i32* %3
%655 = mul nsw i32 3, %654
%656 = load i32, i32* %6
%657 = sub nsw i32 %655, %656
%658 = load i32, i32* %2
%659 = sub nsw i32 %657, %658
%660 = add nsw i32 %659, 4
%661 = sub nsw i32 0, %660
%662 = add nsw i32 %661, 3
%663 = sub nsw i32 %662, 1
%664 = sdiv i32 %663, 3
%665 = sub nsw i32 0, %664
br label %675
666: ; preds = %643
%667 = load i32, i32* %3
%668 = mul nsw i32 3, %667
%669 = load i32, i32* %6
%670 = sub nsw i32 %668, %669
%671 = load i32, i32* %2
%672 = sub nsw i32 %670, %671
%673 = add nsw i32 %672, 4
%674 = sdiv i32 %673, 3
br label %675
675: ; preds = %666, %653
%676 = phi i32 [ %665, %653 ], [ %674, %666 ]
%677 = icmp slt i32 %676, 0
br i1 %677, label %678, label %711
678: ; preds = %675
%679 = load i32, i32* %3
%680 = mul nsw i32 3, %679
%681 = load i32, i32* %6
%682 = sub nsw i32 %680, %681
%683 = load i32, i32* %2
%684 = sub nsw i32 %682, %683
%685 = add nsw i32 %684, 4
%686 = icmp slt i32 %685, 0
br i1 %686, label %687, label %700
687: ; preds = %678
%688 = load i32, i32* %3
%689 = mul nsw i32 3, %688
%690 = load i32, i32* %6
%691 = sub nsw i32 %689, %690
%692 = load i32, i32* %2
%693 = sub nsw i32 %691, %692
%694 = add nsw i32 %693, 4
%695 = sub nsw i32 0, %694
%696 = add nsw i32 %695, 3
%697 = sub nsw i32 %696, 1
%698 = sdiv i32 %697, 3
%699 = sub nsw i32 0, %698
br label %709
700: ; preds = %678
%701 = load i32, i32* %3
%702 = mul nsw i32 3, %701
%703 = load i32, i32* %6
%704 = sub nsw i32 %702, %703
%705 = load i32, i32* %2
%706 = sub nsw i32 %704, %705
%707 = add nsw i32 %706, 4
%708 = sdiv i32 %707, 3
br label %709
709: ; preds = %700, %687
%710 = phi i32 [ %699, %687 ], [ %708, %700 ]
br label %712
711: ; preds = %675
br label %712
712: ; preds = %711, %709
%713 = phi i32 [ %710, %709 ], [ 0, %711 ]
%714 = icmp sle i32 %644, %713
br i1 %714, label %715, label %952
715: ; preds = %712
%716 = load i32, i32* %2
%717 = sub nsw i32 %716, 2
%718 = icmp slt i32 %717, 0
br i1 %718, label %719, label %725
719: ; preds = %715
%720 = load i32, i32* %2
%721 = sub nsw i32 %720, 2
%722 = sub nsw i32 0, %721
%723 = sdiv i32 %722, 3
%724 = sub nsw i32 0, %723
br label %731
725: ; preds = %715
%726 = load i32, i32* %2
%727 = sub nsw i32 %726, 2
%728 = add nsw i32 %727, 3
%729 = sub nsw i32 %728, 1
%730 = sdiv i32 %729, 3
br label %731
731: ; preds = %725, %719
%732 = phi i32 [ %724, %719 ], [ %730, %725 ]
%733 = load i32, i32* %3
%734 = mul nsw i32 3, %733
%735 = load i32, i32* %6
%736 = sub nsw i32 %734, %735
%737 = load i32, i32* %7
%738 = mul nsw i32 3, %737
%739 = sub nsw i32 %736, %738
%740 = icmp slt i32 %739, 0
br i1 %740, label %741, label %752
741: ; preds = %731
%742 = load i32, i32* %3
%743 = mul nsw i32 3, %742
%744 = load i32, i32* %6
%745 = sub nsw i32 %743, %744
%746 = load i32, i32* %7
%747 = mul nsw i32 3, %746
%748 = sub nsw i32 %745, %747
%749 = sub nsw i32 0, %748
%750 = sdiv i32 %749, 3
%751 = sub nsw i32 0, %750
br label %763
752: ; preds = %731
%753 = load i32, i32* %3
%754 = mul nsw i32 3, %753
%755 = load i32, i32* %6
%756 = sub nsw i32 %754, %755
%757 = load i32, i32* %7
%758 = mul nsw i32 3, %757
%759 = sub nsw i32 %756, %758
%760 = add nsw i32 %759, 3
%761 = sub nsw i32 %760, 1
%762 = sdiv i32 %761, 3
br label %763
763: ; preds = %752, %741
%764 = phi i32 [ %751, %741 ], [ %762, %752 ]
%765 = icmp sgt i32 %732, %764
br i1 %765, label %766, label %784
766: ; preds = %763
%767 = load i32, i32* %2
%768 = sub nsw i32 %767, 2
%769 = icmp slt i32 %768, 0
br i1 %769, label %770, label %776
770: ; preds = %766
%771 = load i32, i32* %2
%772 = sub nsw i32 %771, 2
%773 = sub nsw i32 0, %772
%774 = sdiv i32 %773, 3
%775 = sub nsw i32 0, %774
br label %782
776: ; preds = %766
%777 = load i32, i32* %2
%778 = sub nsw i32 %777, 2
%779 = add nsw i32 %778, 3
%780 = sub nsw i32 %779, 1
%781 = sdiv i32 %780, 3
br label %782
782: ; preds = %776, %770
%783 = phi i32 [ %775, %770 ], [ %781, %776 ]
br label %817
784: ; preds = %763
%785 = load i32, i32* %3
%786 = mul nsw i32 3, %785
%787 = load i32, i32* %6
%788 = sub nsw i32 %786, %787
%789 = load i32, i32* %7
%790 = mul nsw i32 3, %789
%791 = sub nsw i32 %788, %790
%792 = icmp slt i32 %791, 0
br i1 %792, label %793, label %804
793: ; preds = %784
%794 = load i32, i32* %3
%795 = mul nsw i32 3, %794
%796 = load i32, i32* %6
%797 = sub nsw i32 %795, %796
%798 = load i32, i32* %7
%799 = mul nsw i32 3, %798
%800 = sub nsw i32 %797, %799
%801 = sub nsw i32 0, %800
%802 = sdiv i32 %801, 3
%803 = sub nsw i32 0, %802
br label %815
804: ; preds = %784
%805 = load i32, i32* %3
%806 = mul nsw i32 3, %805
%807 = load i32, i32* %6
%808 = sub nsw i32 %806, %807
%809 = load i32, i32* %7
%810 = mul nsw i32 3, %809
%811 = sub nsw i32 %808, %810
%812 = add nsw i32 %811, 3
%813 = sub nsw i32 %812, 1
%814 = sdiv i32 %813, 3
br label %815
815: ; preds = %804, %793
%816 = phi i32 [ %803, %793 ], [ %814, %804 ]
br label %817
817: ; preds = %815, %782
%818 = phi i32 [ %783, %782 ], [ %816, %815 ]
store i32 %818, i32* %8
br label %819
819: ; preds = %945, %817
%820 = load i32, i32* %8
%821 = load i32, i32* %3
%822 = mul nsw i32 3, %821
%823 = load i32, i32* %6
%824 = sub nsw i32 %822, %823
%825 = load i32, i32* %7
%826 = mul nsw i32 3, %825
%827 = sub nsw i32 %824, %826
%828 = add nsw i32 %827, 2
%829 = icmp slt i32 %828, 0
br i1 %829, label %830, label %844
830: ; preds = %819
%831 = load i32, i32* %3
%832 = mul nsw i32 3, %831
%833 = load i32, i32* %6
%834 = sub nsw i32 %832, %833
%835 = load i32, i32* %7
%836 = mul nsw i32 3, %835
%837 = sub nsw i32 %834, %836
%838 = add nsw i32 %837, 2
%839 = sub nsw i32 0, %838
%840 = add nsw i32 %839, 3
%841 = sub nsw i32 %840, 1
%842 = sdiv i32 %841, 3
%843 = sub nsw i32 0, %842
br label %854
844: ; preds = %819
%845 = load i32, i32* %3
%846 = mul nsw i32 3, %845
%847 = load i32, i32* %6
%848 = sub nsw i32 %846, %847
%849 = load i32, i32* %7
%850 = mul nsw i32 3, %849
%851 = sub nsw i32 %848, %850
%852 = add nsw i32 %851, 2
%853 = sdiv i32 %852, 3
br label %854
854: ; preds = %844, %830
%855 = phi i32 [ %843, %830 ], [ %853, %844 ]
%856 = load i32, i32* %2
%857 = icmp slt i32 %856, 0
br i1 %857, label %858, label %865
858: ; preds = %854
%859 = load i32, i32* %2
%860 = sub nsw i32 0, %859
%861 = add nsw i32 %860, 3
%862 = sub nsw i32 %861, 1
%863 = sdiv i32 %862, 3
%864 = sub nsw i32 0, %863
br label %868
865: ; preds = %854
%866 = load i32, i32* %2
%867 = sdiv i32 %866, 3
br label %868
868: ; preds = %865, %858
%869 = phi i32 [ %864, %858 ], [ %867, %865 ]
%870 = icmp slt i32 %855, %869
br i1 %870, label %871, label %907
871: ; preds = %868
%872 = load i32, i32* %3
%873 = mul nsw i32 3, %872
%874 = load i32, i32* %6
%875 = sub nsw i32 %873, %874
%876 = load i32, i32* %7
%877 = mul nsw i32 3, %876
%878 = sub nsw i32 %875, %877
%879 = add nsw i32 %878, 2
%880 = icmp slt i32 %879, 0
br i1 %880, label %881, label %895
881: ; preds = %871
%882 = load i32, i32* %3
%883 = mul nsw i32 3, %882
%884 = load i32, i32* %6
%885 = sub nsw i32 %883, %884
%886 = load i32, i32* %7
%887 = mul nsw i32 3, %886
%888 = sub nsw i32 %885, %887
%889 = add nsw i32 %888, 2
%890 = sub nsw i32 0, %889
%891 = add nsw i32 %890, 3
%892 = sub nsw i32 %891, 1
%893 = sdiv i32 %892, 3
%894 = sub nsw i32 0, %893
br label %905
895: ; preds = %871
%896 = load i32, i32* %3
%897 = mul nsw i32 3, %896
%898 = load i32, i32* %6
%899 = sub nsw i32 %897, %898
%900 = load i32, i32* %7
%901 = mul nsw i32 3, %900
%902 = sub nsw i32 %899, %901
%903 = add nsw i32 %902, 2
%904 = sdiv i32 %903, 3
br label %905
905: ; preds = %895, %881
%906 = phi i32 [ %894, %881 ], [ %904, %895 ]
br label %922
907: ; preds = %868
%908 = load i32, i32* %2
%909 = icmp slt i32 %908, 0
br i1 %909, label %910, label %917
910: ; preds = %907
%911 = load i32, i32* %2
%912 = sub nsw i32 0, %911
%913 = add nsw i32 %912, 3
%914 = sub nsw i32 %913, 1
%915 = sdiv i32 %914, 3
%916 = sub nsw i32 0, %915
br label %920
917: ; preds = %907
%918 = load i32, i32* %2
%919 = sdiv i32 %918, 3
br label %920
920: ; preds = %917, %910
%921 = phi i32 [ %916, %910 ], [ %919, %917 ]
br label %922
922: ; preds = %920, %905
%923 = phi i32 [ %906, %905 ], [ %921, %920 ]
%924 = icmp sle i32 %820, %923
br i1 %924, label %925, label %948
925: ; preds = %922
%926 = load i32, i32* %3
%927 = load i32, i32* %7
%928 = sub nsw i32 %926, %927
%929 = load i32, i32* %8
%930 = sub nsw i32 %928, %929
store i32 %930, i32* %9
%931 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 2)
%932 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%933 = load i32, i32* %6
%934 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %933)
%935 = load i32, i32* %7
%936 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %935)
%937 = load i32, i32* %8
%938 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %937)
%939 = load i32, i32* %3
%940 = load i32, i32* %7
%941 = sub nsw i32 %939, %940
%942 = load i32, i32* %8
%943 = sub nsw i32 %941, %942
%944 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %943)
br label %945
945: ; preds = %925
%946 = load i32, i32* %8
%947 = add nsw i32 %946, 1
store i32 %947, i32* %8
br label %819
948: ; preds = %922
br label %949
949: ; preds = %948
%950 = load i32, i32* %7
%951 = add nsw i32 %950, 1
store i32 %951, i32* %7
br label %643
952: ; preds = %712
br label %953
953: ; preds = %952
%954 = load i32, i32* %6
%955 = add nsw i32 %954, 1
store i32 %955, i32* %6
br label %634
956: ; preds = %634
%957 = load i32, i32* %3
%958 = mul nsw i32 3, %957
%959 = add nsw i32 %958, 1
store i32 %959, i32* %5
br label %960
960: ; preds = %982, %956
%961 = load i32, i32* %5
%962 = load i32, i32* %2
%963 = load i32, i32* %3
%964 = mul nsw i32 3, %963
%965 = add nsw i32 %964, 3
%966 = icmp slt i32 %962, %965
br i1 %966, label %967, label %969
967: ; preds = %960
%968 = load i32, i32* %2
br label %973
969: ; preds = %960
%970 = load i32, i32* %3
%971 = mul nsw i32 3, %970
%972 = add nsw i32 %971, 3
br label %973
973: ; preds = %969, %967
%974 = phi i32 [ %968, %967 ], [ %972, %969 ]
%975 = icmp sle i32 %961, %974
br i1 %975, label %976, label %985
976: ; preds = %973
%977 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 1)
%978 = load i32, i32* %5
%979 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %978)
%980 = load i32, i32* %3
%981 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %980)
br label %982
982: ; preds = %976
%983 = load i32, i32* %5
%984 = add nsw i32 %983, 1
store i32 %984, i32* %5
br label %960
985: ; preds = %973
store i32 1, i32* %4
br label %986
986: ; preds = %1319, %985
%987 = load i32, i32* %4
%988 = load i32, i32* %2
%989 = sub nsw i32 %988, 1
%990 = icmp sle i32 %987, %989
br i1 %990, label %991, label %1322
991: ; preds = %986
%992 = load i32, i32* %4
%993 = add nsw i32 %992, 1
store i32 %993, i32* %5
store i32 1, i32* %6
br label %994
994: ; preds = %1315, %991
%995 = load i32, i32* %6
%996 = load i32, i32* %3
%997 = mul nsw i32 3, %996
%998 = load i32, i32* %2
%999 = sub nsw i32 %997, %998
%1000 = add nsw i32 %999, 5
%1001 = icmp sle i32 %995, %1000
br i1 %1001, label %1002, label %1318
1002: ; preds = %994
store i32 0, i32* %7
br label %1003
1003: ; preds = %1311, %1002
%1004 = load i32, i32* %7
%1005 = load i32, i32* %3
%1006 = mul nsw i32 3, %1005
%1007 = load i32, i32* %6
%1008 = sub nsw i32 %1006, %1007
%1009 = load i32, i32* %2
%1010 = sub nsw i32 %1008, %1009
%1011 = add nsw i32 %1010, 4
%1012 = icmp slt i32 %1011, 0
br i1 %1012, label %1013, label %1026
1013: ; preds = %1003
%1014 = load i32, i32* %3
%1015 = mul nsw i32 3, %1014
%1016 = load i32, i32* %6
%1017 = sub nsw i32 %1015, %1016
%1018 = load i32, i32* %2
%1019 = sub nsw i32 %1017, %1018
%1020 = add nsw i32 %1019, 4
%1021 = sub nsw i32 0, %1020
%1022 = add nsw i32 %1021, 3
%1023 = sub nsw i32 %1022, 1
%1024 = sdiv i32 %1023, 3
%1025 = sub nsw i32 0, %1024
br label %1035
1026: ; preds = %1003
%1027 = load i32, i32* %3
%1028 = mul nsw i32 3, %1027
%1029 = load i32, i32* %6
%1030 = sub nsw i32 %1028, %1029
%1031 = load i32, i32* %2
%1032 = sub nsw i32 %1030, %1031
%1033 = add nsw i32 %1032, 4
%1034 = sdiv i32 %1033, 3
br label %1035
1035: ; preds = %1026, %1013
%1036 = phi i32 [ %1025, %1013 ], [ %1034, %1026 ]
%1037 = icmp slt i32 %1036, 0
br i1 %1037, label %1038, label %1071
1038: ; preds = %1035
%1039 = load i32, i32* %3
%1040 = mul nsw i32 3, %1039
%1041 = load i32, i32* %6
%1042 = sub nsw i32 %1040, %1041
%1043 = load i32, i32* %2
%1044 = sub nsw i32 %1042, %1043
%1045 = add nsw i32 %1044, 4
%1046 = icmp slt i32 %1045, 0
br i1 %1046, label %1047, label %1060
1047: ; preds = %1038
%1048 = load i32, i32* %3
%1049 = mul nsw i32 3, %1048
%1050 = load i32, i32* %6
%1051 = sub nsw i32 %1049, %1050
%1052 = load i32, i32* %2
%1053 = sub nsw i32 %1051, %1052
%1054 = add nsw i32 %1053, 4
%1055 = sub nsw i32 0, %1054
%1056 = add nsw i32 %1055, 3
%1057 = sub nsw i32 %1056, 1
%1058 = sdiv i32 %1057, 3
%1059 = sub nsw i32 0, %1058
br label %1069
1060: ; preds = %1038
%1061 = load i32, i32* %3
%1062 = mul nsw i32 3, %1061
%1063 = load i32, i32* %6
%1064 = sub nsw i32 %1062, %1063
%1065 = load i32, i32* %2
%1066 = sub nsw i32 %1064, %1065
%1067 = add nsw i32 %1066, 4
%1068 = sdiv i32 %1067, 3
br label %1069
1069: ; preds = %1060, %1047
%1070 = phi i32 [ %1059, %1047 ], [ %1068, %1060 ]
br label %1072
1071: ; preds = %1035
br label %1072
1072: ; preds = %1071, %1069
%1073 = phi i32 [ %1070, %1069 ], [ 0, %1071 ]
%1074 = icmp sle i32 %1004, %1073
br i1 %1074, label %1075, label %1314
1075: ; preds = %1072
%1076 = load i32, i32* %2
%1077 = sub nsw i32 %1076, 2
%1078 = icmp slt i32 %1077, 0
br i1 %1078, label %1079, label %1085
1079: ; preds = %1075
%1080 = load i32, i32* %2
%1081 = sub nsw i32 %1080, 2
%1082 = sub nsw i32 0, %1081
%1083 = sdiv i32 %1082, 3
%1084 = sub nsw i32 0, %1083
br label %1091
1085: ; preds = %1075
%1086 = load i32, i32* %2
%1087 = sub nsw i32 %1086, 2
%1088 = add nsw i32 %1087, 3
%1089 = sub nsw i32 %1088, 1
%1090 = sdiv i32 %1089, 3
br label %1091
1091: ; preds = %1085, %1079
%1092 = phi i32 [ %1084, %1079 ], [ %1090, %1085 ]
%1093 = load i32, i32* %3
%1094 = mul nsw i32 3, %1093
%1095 = load i32, i32* %6
%1096 = sub nsw i32 %1094, %1095
%1097 = load i32, i32* %7
%1098 = mul nsw i32 3, %1097
%1099 = sub nsw i32 %1096, %1098
%1100 = icmp slt i32 %1099, 0
br i1 %1100, label %1101, label %1112
1101: ; preds = %1091
%1102 = load i32, i32* %3
%1103 = mul nsw i32 3, %1102
%1104 = load i32, i32* %6
%1105 = sub nsw i32 %1103, %1104
%1106 = load i32, i32* %7
%1107 = mul nsw i32 3, %1106
%1108 = sub nsw i32 %1105, %1107
%1109 = sub nsw i32 0, %1108
%1110 = sdiv i32 %1109, 3
%1111 = sub nsw i32 0, %1110
br label %1123
1112: ; preds = %1091
%1113 = load i32, i32* %3
%1114 = mul nsw i32 3, %1113
%1115 = load i32, i32* %6
%1116 = sub nsw i32 %1114, %1115
%1117 = load i32, i32* %7
%1118 = mul nsw i32 3, %1117
%1119 = sub nsw i32 %1116, %1118
%1120 = add nsw i32 %1119, 3
%1121 = sub nsw i32 %1120, 1
%1122 = sdiv i32 %1121, 3
br label %1123
1123: ; preds = %1112, %1101
%1124 = phi i32 [ %1111, %1101 ], [ %1122, %1112 ]
%1125 = icmp sgt i32 %1092, %1124
br i1 %1125, label %1126, label %1144
1126: ; preds = %1123
%1127 = load i32, i32* %2
%1128 = sub nsw i32 %1127, 2
%1129 = icmp slt i32 %1128, 0
br i1 %1129, label %1130, label %1136
1130: ; preds = %1126
%1131 = load i32, i32* %2
%1132 = sub nsw i32 %1131, 2
%1133 = sub nsw i32 0, %1132
%1134 = sdiv i32 %1133, 3
%1135 = sub nsw i32 0, %1134
br label %1142
1136: ; preds = %1126
%1137 = load i32, i32* %2
%1138 = sub nsw i32 %1137, 2
%1139 = add nsw i32 %1138, 3
%1140 = sub nsw i32 %1139, 1
%1141 = sdiv i32 %1140, 3
br label %1142
1142: ; preds = %1136, %1130
%1143 = phi i32 [ %1135, %1130 ], [ %1141, %1136 ]
br label %1177
1144: ; preds = %1123
%1145 = load i32, i32* %3
%1146 = mul nsw i32 3, %1145
%1147 = load i32, i32* %6
%1148 = sub nsw i32 %1146, %1147
%1149 = load i32, i32* %7
%1150 = mul nsw i32 3, %1149
%1151 = sub nsw i32 %1148, %1150
%1152 = icmp slt i32 %1151, 0
br i1 %1152, label %1153, label %1164
1153: ; preds = %1144
%1154 = load i32, i32* %3
%1155 = mul nsw i32 3, %1154
%1156 = load i32, i32* %6
%1157 = sub nsw i32 %1155, %1156
%1158 = load i32, i32* %7
%1159 = mul nsw i32 3, %1158
%1160 = sub nsw i32 %1157, %1159
%1161 = sub nsw i32 0, %1160
%1162 = sdiv i32 %1161, 3
%1163 = sub nsw i32 0, %1162
br label %1175
1164: ; preds = %1144
%1165 = load i32, i32* %3
%1166 = mul nsw i32 3, %1165
%1167 = load i32, i32* %6
%1168 = sub nsw i32 %1166, %1167
%1169 = load i32, i32* %7
%1170 = mul nsw i32 3, %1169
%1171 = sub nsw i32 %1168, %1170
%1172 = add nsw i32 %1171, 3
%1173 = sub nsw i32 %1172, 1
%1174 = sdiv i32 %1173, 3
br label %1175
1175: ; preds = %1164, %1153
%1176 = phi i32 [ %1163, %1153 ], [ %1174, %1164 ]
br label %1177
1177: ; preds = %1175, %1142
%1178 = phi i32 [ %1143, %1142 ], [ %1176, %1175 ]
store i32 %1178, i32* %8
br label %1179
1179: ; preds = %1307, %1177
%1180 = load i32, i32* %8
%1181 = load i32, i32* %3
%1182 = mul nsw i32 3, %1181
%1183 = load i32, i32* %6
%1184 = sub nsw i32 %1182, %1183
%1185 = load i32, i32* %7
%1186 = mul nsw i32 3, %1185
%1187 = sub nsw i32 %1184, %1186
%1188 = add nsw i32 %1187, 2
%1189 = icmp slt i32 %1188, 0
br i1 %1189, label %1190, label %1204
1190: ; preds = %1179
%1191 = load i32, i32* %3
%1192 = mul nsw i32 3, %1191
%1193 = load i32, i32* %6
%1194 = sub nsw i32 %1192, %1193
%1195 = load i32, i32* %7
%1196 = mul nsw i32 3, %1195
%1197 = sub nsw i32 %1194, %1196
%1198 = add nsw i32 %1197, 2
%1199 = sub nsw i32 0, %1198
%1200 = add nsw i32 %1199, 3
%1201 = sub nsw i32 %1200, 1
%1202 = sdiv i32 %1201, 3
%1203 = sub nsw i32 0, %1202
br label %1214
1204: ; preds = %1179
%1205 = load i32, i32* %3
%1206 = mul nsw i32 3, %1205
%1207 = load i32, i32* %6
%1208 = sub nsw i32 %1206, %1207
%1209 = load i32, i32* %7
%1210 = mul nsw i32 3, %1209
%1211 = sub nsw i32 %1208, %1210
%1212 = add nsw i32 %1211, 2
%1213 = sdiv i32 %1212, 3
br label %1214
1214: ; preds = %1204, %1190
%1215 = phi i32 [ %1203, %1190 ], [ %1213, %1204 ]
%1216 = load i32, i32* %2
%1217 = icmp slt i32 %1216, 0
br i1 %1217, label %1218, label %1225
1218: ; preds = %1214
%1219 = load i32, i32* %2
%1220 = sub nsw i32 0, %1219
%1221 = add nsw i32 %1220, 3
%1222 = sub nsw i32 %1221, 1
%1223 = sdiv i32 %1222, 3
%1224 = sub nsw i32 0, %1223
br label %1228
1225: ; preds = %1214
%1226 = load i32, i32* %2
%1227 = sdiv i32 %1226, 3
br label %1228
1228: ; preds = %1225, %1218
%1229 = phi i32 [ %1224, %1218 ], [ %1227, %1225 ]
%1230 = icmp slt i32 %1215, %1229
br i1 %1230, label %1231, label %1267
1231: ; preds = %1228
%1232 = load i32, i32* %3
%1233 = mul nsw i32 3, %1232
%1234 = load i32, i32* %6
%1235 = sub nsw i32 %1233, %1234
%1236 = load i32, i32* %7
%1237 = mul nsw i32 3, %1236
%1238 = sub nsw i32 %1235, %1237
%1239 = add nsw i32 %1238, 2
%1240 = icmp slt i32 %1239, 0
br i1 %1240, label %1241, label %1255
1241: ; preds = %1231
%1242 = load i32, i32* %3
%1243 = mul nsw i32 3, %1242
%1244 = load i32, i32* %6
%1245 = sub nsw i32 %1243, %1244
%1246 = load i32, i32* %7
%1247 = mul nsw i32 3, %1246
%1248 = sub nsw i32 %1245, %1247
%1249 = add nsw i32 %1248, 2
%1250 = sub nsw i32 0, %1249
%1251 = add nsw i32 %1250, 3
%1252 = sub nsw i32 %1251, 1
%1253 = sdiv i32 %1252, 3
%1254 = sub nsw i32 0, %1253
br label %1265
1255: ; preds = %1231
%1256 = load i32, i32* %3
%1257 = mul nsw i32 3, %1256
%1258 = load i32, i32* %6
%1259 = sub nsw i32 %1257, %1258
%1260 = load i32, i32* %7
%1261 = mul nsw i32 3, %1260
%1262 = sub nsw i32 %1259, %1261
%1263 = add nsw i32 %1262, 2
%1264 = sdiv i32 %1263, 3
br label %1265
1265: ; preds = %1255, %1241
%1266 = phi i32 [ %1254, %1241 ], [ %1264, %1255 ]
br label %1282
1267: ; preds = %1228
%1268 = load i32, i32* %2
%1269 = icmp slt i32 %1268, 0
br i1 %1269, label %1270, label %1277
1270: ; preds = %1267
%1271 = load i32, i32* %2
%1272 = sub nsw i32 0, %1271
%1273 = add nsw i32 %1272, 3
%1274 = sub nsw i32 %1273, 1
%1275 = sdiv i32 %1274, 3
%1276 = sub nsw i32 0, %1275
br label %1280
1277: ; preds = %1267
%1278 = load i32, i32* %2
%1279 = sdiv i32 %1278, 3
br label %1280
1280: ; preds = %1277, %1270
%1281 = phi i32 [ %1276, %1270 ], [ %1279, %1277 ]
br label %1282
1282: ; preds = %1280, %1265
%1283 = phi i32 [ %1266, %1265 ], [ %1281, %1280 ]
%1284 = icmp sle i32 %1180, %1283
br i1 %1284, label %1285, label %1310
1285: ; preds = %1282
%1286 = load i32, i32* %3
%1287 = load i32, i32* %7
%1288 = sub nsw i32 %1286, %1287
%1289 = load i32, i32* %8
%1290 = sub nsw i32 %1288, %1289
store i32 %1290, i32* %9
%1291 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 2)
%1292 = load i32, i32* %4
%1293 = add nsw i32 %1292, 1
%1294 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %1293)
%1295 = load i32, i32* %6
%1296 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %1295)
%1297 = load i32, i32* %7
%1298 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %1297)
%1299 = load i32, i32* %8
%1300 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %1299)
%1301 = load i32, i32* %3
%1302 = load i32, i32* %7
%1303 = sub nsw i32 %1301, %1302
%1304 = load i32, i32* %8
%1305 = sub nsw i32 %1303, %1304
%1306 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %1305)
br label %1307
1307: ; preds = %1285
%1308 = load i32, i32* %8
%1309 = add nsw i32 %1308, 1
store i32 %1309, i32* %8
br label %1179
1310: ; preds = %1282
br label %1311
1311: ; preds = %1310
%1312 = load i32, i32* %7
%1313 = add nsw i32 %1312, 1
store i32 %1313, i32* %7
br label %1003
1314: ; preds = %1072
br label %1315
1315: ; preds = %1314
%1316 = load i32, i32* %6
%1317 = add nsw i32 %1316, 1
store i32 %1317, i32* %6
br label %994
1318: ; preds = %994
br label %1319
1319: ; preds = %1318
%1320 = load i32, i32* %4
%1321 = add nsw i32 %1320, 1
store i32 %1321, i32* %4
br label %986
1322: ; preds = %986
br label %1323
1323: ; preds = %1322
%1324 = load i32, i32* %3
%1325 = add nsw i32 %1324, 1
store i32 %1325, i32* %3
br label %613
1326: ; preds = %630
%1327 = load i32, i32* %2
%1328 = icmp sge i32 %1327, 1
br i1 %1328, label %1329, label %1799
1329: ; preds = %1326
%1330 = load i32, i32* %2
%1331 = icmp slt i32 %1330, 0
br i1 %1331, label %1332, label %1337
1332: ; preds = %1329
%1333 = load i32, i32* %2
%1334 = sub nsw i32 0, %1333
%1335 = sdiv i32 %1334, 3
%1336 = sub nsw i32 0, %1335
br label %1342
1337: ; preds = %1329
%1338 = load i32, i32* %2
%1339 = add nsw i32 %1338, 3
%1340 = sub nsw i32 %1339, 1
%1341 = sdiv i32 %1340, 3
br label %1342
1342: ; preds = %1337, %1332
%1343 = phi i32 [ %1336, %1332 ], [ %1341, %1337 ]
store i32 %1343, i32* %3
br label %1344
1344: ; preds = %1795, %1342
%1345 = load i32, i32* %3
%1346 = load i32, i32* %2
%1347 = mul nsw i32 2, %1346
%1348 = add nsw i32 %1347, 1
%1349 = icmp slt i32 %1348, 0
br i1 %1349, label %1350, label %1359
1350: ; preds = %1344
%1351 = load i32, i32* %2
%1352 = mul nsw i32 2, %1351
%1353 = add nsw i32 %1352, 1
%1354 = sub nsw i32 0, %1353
%1355 = add nsw i32 %1354, 3
%1356 = sub nsw i32 %1355, 1
%1357 = sdiv i32 %1356, 3
%1358 = sub nsw i32 0, %1357
br label %1364
1359: ; preds = %1344
%1360 = load i32, i32* %2
%1361 = mul nsw i32 2, %1360
%1362 = add nsw i32 %1361, 1
%1363 = sdiv i32 %1362, 3
br label %1364
1364: ; preds = %1359, %1350
%1365 = phi i32 [ %1358, %1350 ], [ %1363, %1359 ]
%1366 = icmp sle i32 %1345, %1365
br i1 %1366, label %1367, label %1798
1367: ; preds = %1364
store i32 0, i32* %4
br label %1368
1368: ; preds = %1791, %1367
%1369 = load i32, i32* %4
%1370 = load i32, i32* %2
%1371 = sub nsw i32 %1370, 1
%1372 = icmp sle i32 %1369, %1371
br i1 %1372, label %1373, label %1794
1373: ; preds = %1368
%1374 = load i32, i32* %4
%1375 = add nsw i32 %1374, 1
store i32 %1375, i32* %5
%1376 = load i32, i32* %3
%1377 = mul nsw i32 3, %1376
%1378 = load i32, i32* %2
%1379 = sub nsw i32 %1377, %1378
%1380 = sub nsw i32 %1379, 1
%1381 = icmp sgt i32 1, %1380
br i1 %1381, label %1382, label %1383
1382: ; preds = %1373
br label %1389
1383: ; preds = %1373
%1384 = load i32, i32* %3
%1385 = mul nsw i32 3, %1384
%1386 = load i32, i32* %2
%1387 = sub nsw i32 %1385, %1386
%1388 = sub nsw i32 %1387, 1
br label %1389
1389: ; preds = %1383, %1382
%1390 = phi i32 [ 1, %1382 ], [ %1388, %1383 ]
store i32 %1390, i32* %6
br label %1391
1391: ; preds = %1787, %1389
%1392 = load i32, i32* %6
%1393 = load i32, i32* %2
%1394 = load i32, i32* %3
%1395 = mul nsw i32 3, %1394
%1396 = load i32, i32* %2
%1397 = sub nsw i32 %1395, %1396
%1398 = add nsw i32 %1397, 5
%1399 = icmp slt i32 %1393, %1398
br i1 %1399, label %1400, label %1402
1400: ; preds = %1391
%1401 = load i32, i32* %2
br label %1408
1402: ; preds = %1391
%1403 = load i32, i32* %3
%1404 = mul nsw i32 3, %1403
%1405 = load i32, i32* %2
%1406 = sub nsw i32 %1404, %1405
%1407 = add nsw i32 %1406, 5
br label %1408
1408: ; preds = %1402, %1400
%1409 = phi i32 [ %1401, %1400 ], [ %1407, %1402 ]
%1410 = icmp sle i32 %1392, %1409
br i1 %1410, label %1411, label %1790
1411: ; preds = %1408
%1412 = load i32, i32* %3
%1413 = mul nsw i32 3, %1412
%1414 = load i32, i32* %6
%1415 = sub nsw i32 %1413, %1414
%1416 = load i32, i32* %2
%1417 = sub nsw i32 %1415, %1416
%1418 = icmp slt i32 %1417, 0
br i1 %1418, label %1419, label %1429
1419: ; preds = %1411
%1420 = load i32, i32* %3
%1421 = mul nsw i32 3, %1420
%1422 = load i32, i32* %6
%1423 = sub nsw i32 %1421, %1422
%1424 = load i32, i32* %2
%1425 = sub nsw i32 %1423, %1424
%1426 = sub nsw i32 0, %1425
%1427 = sdiv i32 %1426, 3
%1428 = sub nsw i32 0, %1427
br label %1439
1429: ; preds = %1411
%1430 = load i32, i32* %3
%1431 = mul nsw i32 3, %1430
%1432 = load i32, i32* %6
%1433 = sub nsw i32 %1431, %1432
%1434 = load i32, i32* %2
%1435 = sub nsw i32 %1433, %1434
%1436 = add nsw i32 %1435, 3
%1437 = sub nsw i32 %1436, 1
%1438 = sdiv i32 %1437, 3
br label %1439
1439: ; preds = %1429, %1419
%1440 = phi i32 [ %1428, %1419 ], [ %1438, %1429 ]
%1441 = icmp sgt i32 %1440, 0
br i1 %1441, label %1442, label %1472
1442: ; preds = %1439
%1443 = load i32, i32* %3
%1444 = mul nsw i32 3, %1443
%1445 = load i32, i32* %6
%1446 = sub nsw i32 %1444, %1445
%1447 = load i32, i32* %2
%1448 = sub nsw i32 %1446, %1447
%1449 = icmp slt i32 %1448, 0
br i1 %1449, label %1450, label %1460
1450: ; preds = %1442
%1451 = load i32, i32* %3
%1452 = mul nsw i32 3, %1451
%1453 = load i32, i32* %6
%1454 = sub nsw i32 %1452, %1453
%1455 = load i32, i32* %2
%1456 = sub nsw i32 %1454, %1455
%1457 = sub nsw i32 0, %1456
%1458 = sdiv i32 %1457, 3
%1459 = sub nsw i32 0, %1458
br label %1470
1460: ; preds = %1442
%1461 = load i32, i32* %3
%1462 = mul nsw i32 3, %1461
%1463 = load i32, i32* %6
%1464 = sub nsw i32 %1462, %1463
%1465 = load i32, i32* %2
%1466 = sub nsw i32 %1464, %1465
%1467 = add nsw i32 %1466, 3
%1468 = sub nsw i32 %1467, 1
%1469 = sdiv i32 %1468, 3
br label %1470
1470: ; preds = %1460, %1450
%1471 = phi i32 [ %1459, %1450 ], [ %1469, %1460 ]
br label %1473
1472: ; preds = %1439
br label %1473
1473: ; preds = %1472, %1470
%1474 = phi i32 [ %1471, %1470 ], [ 0, %1472 ]
store i32 %1474, i32* %7
br label %1475
1475: ; preds = %1783, %1473
%1476 = load i32, i32* %7
%1477 = load i32, i32* %3
%1478 = mul nsw i32 3, %1477
%1479 = load i32, i32* %6
%1480 = sub nsw i32 %1478, %1479
%1481 = load i32, i32* %2
%1482 = sub nsw i32 %1480, %1481
%1483 = add nsw i32 %1482, 4
%1484 = icmp slt i32 %1483, 0
br i1 %1484, label %1485, label %1498
1485: ; preds = %1475
%1486 = load i32, i32* %3
%1487 = mul nsw i32 3, %1486
%1488 = load i32, i32* %6
%1489 = sub nsw i32 %1487, %1488
%1490 = load i32, i32* %2
%1491 = sub nsw i32 %1489, %1490
%1492 = add nsw i32 %1491, 4
%1493 = sub nsw i32 0, %1492
%1494 = add nsw i32 %1493, 3
%1495 = sub nsw i32 %1494, 1
%1496 = sdiv i32 %1495, 3
%1497 = sub nsw i32 0, %1496
br label %1507
1498: ; preds = %1475
%1499 = load i32, i32* %3
%1500 = mul nsw i32 3, %1499
%1501 = load i32, i32* %6
%1502 = sub nsw i32 %1500, %1501
%1503 = load i32, i32* %2
%1504 = sub nsw i32 %1502, %1503
%1505 = add nsw i32 %1504, 4
%1506 = sdiv i32 %1505, 3
br label %1507
1507: ; preds = %1498, %1485
%1508 = phi i32 [ %1497, %1485 ], [ %1506, %1498 ]
%1509 = icmp slt i32 %1508, 0
br i1 %1509, label %1510, label %1543
1510: ; preds = %1507
%1511 = load i32, i32* %3
%1512 = mul nsw i32 3, %1511
%1513 = load i32, i32* %6
%1514 = sub nsw i32 %1512, %1513
%1515 = load i32, i32* %2
%1516 = sub nsw i32 %1514, %1515
%1517 = add nsw i32 %1516, 4
%1518 = icmp slt i32 %1517, 0
br i1 %1518, label %1519, label %1532
1519: ; preds = %1510
%1520 = load i32, i32* %3
%1521 = mul nsw i32 3, %1520
%1522 = load i32, i32* %6
%1523 = sub nsw i32 %1521, %1522
%1524 = load i32, i32* %2
%1525 = sub nsw i32 %1523, %1524
%1526 = add nsw i32 %1525, 4
%1527 = sub nsw i32 0, %1526
%1528 = add nsw i32 %1527, 3
%1529 = sub nsw i32 %1528, 1
%1530 = sdiv i32 %1529, 3
%1531 = sub nsw i32 0, %1530
br label %1541
1532: ; preds = %1510
%1533 = load i32, i32* %3
%1534 = mul nsw i32 3, %1533
%1535 = load i32, i32* %6
%1536 = sub nsw i32 %1534, %1535
%1537 = load i32, i32* %2
%1538 = sub nsw i32 %1536, %1537
%1539 = add nsw i32 %1538, 4
%1540 = sdiv i32 %1539, 3
br label %1541
1541: ; preds = %1532, %1519
%1542 = phi i32 [ %1531, %1519 ], [ %1540, %1532 ]
br label %1544
1543: ; preds = %1507
br label %1544
1544: ; preds = %1543, %1541
%1545 = phi i32 [ %1542, %1541 ], [ 0, %1543 ]
%1546 = icmp sle i32 %1476, %1545
br i1 %1546, label %1547, label %1786
1547: ; preds = %1544
%1548 = load i32, i32* %2
%1549 = sub nsw i32 %1548, 2
%1550 = icmp slt i32 %1549, 0
br i1 %1550, label %1551, label %1557
1551: ; preds = %1547
%1552 = load i32, i32* %2
%1553 = sub nsw i32 %1552, 2
%1554 = sub nsw i32 0, %1553
%1555 = sdiv i32 %1554, 3
%1556 = sub nsw i32 0, %1555
br label %1563
1557: ; preds = %1547
%1558 = load i32, i32* %2
%1559 = sub nsw i32 %1558, 2
%1560 = add nsw i32 %1559, 3
%1561 = sub nsw i32 %1560, 1
%1562 = sdiv i32 %1561, 3
br label %1563
1563: ; preds = %1557, %1551
%1564 = phi i32 [ %1556, %1551 ], [ %1562, %1557 ]
%1565 = load i32, i32* %3
%1566 = mul nsw i32 3, %1565
%1567 = load i32, i32* %6
%1568 = sub nsw i32 %1566, %1567
%1569 = load i32, i32* %7
%1570 = mul nsw i32 3, %1569
%1571 = sub nsw i32 %1568, %1570
%1572 = icmp slt i32 %1571, 0
br i1 %1572, label %1573, label %1584
1573: ; preds = %1563
%1574 = load i32, i32* %3
%1575 = mul nsw i32 3, %1574
%1576 = load i32, i32* %6
%1577 = sub nsw i32 %1575, %1576
%1578 = load i32, i32* %7
%1579 = mul nsw i32 3, %1578
%1580 = sub nsw i32 %1577, %1579
%1581 = sub nsw i32 0, %1580
%1582 = sdiv i32 %1581, 3
%1583 = sub nsw i32 0, %1582
br label %1595
1584: ; preds = %1563
%1585 = load i32, i32* %3
%1586 = mul nsw i32 3, %1585
%1587 = load i32, i32* %6
%1588 = sub nsw i32 %1586, %1587
%1589 = load i32, i32* %7
%1590 = mul nsw i32 3, %1589
%1591 = sub nsw i32 %1588, %1590
%1592 = add nsw i32 %1591, 3
%1593 = sub nsw i32 %1592, 1
%1594 = sdiv i32 %1593, 3
br label %1595
1595: ; preds = %1584, %1573
%1596 = phi i32 [ %1583, %1573 ], [ %1594, %1584 ]
%1597 = icmp sgt i32 %1564, %1596
br i1 %1597, label %1598, label %1616
1598: ; preds = %1595
%1599 = load i32, i32* %2
%1600 = sub nsw i32 %1599, 2
%1601 = icmp slt i32 %1600, 0
br i1 %1601, label %1602, label %1608
1602: ; preds = %1598
%1603 = load i32, i32* %2
%1604 = sub nsw i32 %1603, 2
%1605 = sub nsw i32 0, %1604
%1606 = sdiv i32 %1605, 3
%1607 = sub nsw i32 0, %1606
br label %1614
1608: ; preds = %1598
%1609 = load i32, i32* %2
%1610 = sub nsw i32 %1609, 2
%1611 = add nsw i32 %1610, 3
%1612 = sub nsw i32 %1611, 1
%1613 = sdiv i32 %1612, 3
br label %1614
1614: ; preds = %1608, %1602
%1615 = phi i32 [ %1607, %1602 ], [ %1613, %1608 ]
br label %1649
1616: ; preds = %1595
%1617 = load i32, i32* %3
%1618 = mul nsw i32 3, %1617
%1619 = load i32, i32* %6
%1620 = sub nsw i32 %1618, %1619
%1621 = load i32, i32* %7
%1622 = mul nsw i32 3, %1621
%1623 = sub nsw i32 %1620, %1622
%1624 = icmp slt i32 %1623, 0
br i1 %1624, label %1625, label %1636
1625: ; preds = %1616
%1626 = load i32, i32* %3
%1627 = mul nsw i32 3, %1626
%1628 = load i32, i32* %6
%1629 = sub nsw i32 %1627, %1628
%1630 = load i32, i32* %7
%1631 = mul nsw i32 3, %1630
%1632 = sub nsw i32 %1629, %1631
%1633 = sub nsw i32 0, %1632
%1634 = sdiv i32 %1633, 3
%1635 = sub nsw i32 0, %1634
br label %1647
1636: ; preds = %1616
%1637 = load i32, i32* %3
%1638 = mul nsw i32 3, %1637
%1639 = load i32, i32* %6
%1640 = sub nsw i32 %1638, %1639
%1641 = load i32, i32* %7
%1642 = mul nsw i32 3, %1641
%1643 = sub nsw i32 %1640, %1642
%1644 = add nsw i32 %1643, 3
%1645 = sub nsw i32 %1644, 1
%1646 = sdiv i32 %1645, 3
br label %1647
1647: ; preds = %1636, %1625
%1648 = phi i32 [ %1635, %1625 ], [ %1646, %1636 ]
br label %1649
1649: ; preds = %1647, %1614
%1650 = phi i32 [ %1615, %1614 ], [ %1648, %1647 ]
store i32 %1650, i32* %8
br label %1651
1651: ; preds = %1779, %1649
%1652 = load i32, i32* %8
%1653 = load i32, i32* %3
%1654 = mul nsw i32 3, %1653
%1655 = load i32, i32* %6
%1656 = sub nsw i32 %1654, %1655
%1657 = load i32, i32* %7
%1658 = mul nsw i32 3, %1657
%1659 = sub nsw i32 %1656, %1658
%1660 = add nsw i32 %1659, 2
%1661 = icmp slt i32 %1660, 0
br i1 %1661, label %1662, label %1676
1662: ; preds = %1651
%1663 = load i32, i32* %3
%1664 = mul nsw i32 3, %1663
%1665 = load i32, i32* %6
%1666 = sub nsw i32 %1664, %1665
%1667 = load i32, i32* %7
%1668 = mul nsw i32 3, %1667
%1669 = sub nsw i32 %1666, %1668
%1670 = add nsw i32 %1669, 2
%1671 = sub nsw i32 0, %1670
%1672 = add nsw i32 %1671, 3
%1673 = sub nsw i32 %1672, 1
%1674 = sdiv i32 %1673, 3
%1675 = sub nsw i32 0, %1674
br label %1686
1676: ; preds = %1651
%1677 = load i32, i32* %3
%1678 = mul nsw i32 3, %1677
%1679 = load i32, i32* %6
%1680 = sub nsw i32 %1678, %1679
%1681 = load i32, i32* %7
%1682 = mul nsw i32 3, %1681
%1683 = sub nsw i32 %1680, %1682
%1684 = add nsw i32 %1683, 2
%1685 = sdiv i32 %1684, 3
br label %1686
1686: ; preds = %1676, %1662
%1687 = phi i32 [ %1675, %1662 ], [ %1685, %1676 ]
%1688 = load i32, i32* %2
%1689 = icmp slt i32 %1688, 0
br i1 %1689, label %1690, label %1697
1690: ; preds = %1686
%1691 = load i32, i32* %2
%1692 = sub nsw i32 0, %1691
%1693 = add nsw i32 %1692, 3
%1694 = sub nsw i32 %1693, 1
%1695 = sdiv i32 %1694, 3
%1696 = sub nsw i32 0, %1695
br label %1700
1697: ; preds = %1686
%1698 = load i32, i32* %2
%1699 = sdiv i32 %1698, 3
br label %1700
1700: ; preds = %1697, %1690
%1701 = phi i32 [ %1696, %1690 ], [ %1699, %1697 ]
%1702 = icmp slt i32 %1687, %1701
br i1 %1702, label %1703, label %1739
1703: ; preds = %1700
%1704 = load i32, i32* %3
%1705 = mul nsw i32 3, %1704
%1706 = load i32, i32* %6
%1707 = sub nsw i32 %1705, %1706
%1708 = load i32, i32* %7
%1709 = mul nsw i32 3, %1708
%1710 = sub nsw i32 %1707, %1709
%1711 = add nsw i32 %1710, 2
%1712 = icmp slt i32 %1711, 0
br i1 %1712, label %1713, label %1727
1713: ; preds = %1703
%1714 = load i32, i32* %3
%1715 = mul nsw i32 3, %1714
%1716 = load i32, i32* %6
%1717 = sub nsw i32 %1715, %1716
%1718 = load i32, i32* %7
%1719 = mul nsw i32 3, %1718
%1720 = sub nsw i32 %1717, %1719
%1721 = add nsw i32 %1720, 2
%1722 = sub nsw i32 0, %1721
%1723 = add nsw i32 %1722, 3
%1724 = sub nsw i32 %1723, 1
%1725 = sdiv i32 %1724, 3
%1726 = sub nsw i32 0, %1725
br label %1737
1727: ; preds = %1703
%1728 = load i32, i32* %3
%1729 = mul nsw i32 3, %1728
%1730 = load i32, i32* %6
%1731 = sub nsw i32 %1729, %1730
%1732 = load i32, i32* %7
%1733 = mul nsw i32 3, %1732
%1734 = sub nsw i32 %1731, %1733
%1735 = add nsw i32 %1734, 2
%1736 = sdiv i32 %1735, 3
br label %1737
1737: ; preds = %1727, %1713
%1738 = phi i32 [ %1726, %1713 ], [ %1736, %1727 ]
br label %1754
1739: ; preds = %1700
%1740 = load i32, i32* %2
%1741 = icmp slt i32 %1740, 0
br i1 %1741, label %1742, label %1749
1742: ; preds = %1739
%1743 = load i32, i32* %2
%1744 = sub nsw i32 0, %1743
%1745 = add nsw i32 %1744, 3
%1746 = sub nsw i32 %1745, 1
%1747 = sdiv i32 %1746, 3
%1748 = sub nsw i32 0, %1747
br label %1752
1749: ; preds = %1739
%1750 = load i32, i32* %2
%1751 = sdiv i32 %1750, 3
br label %1752
1752: ; preds = %1749, %1742
%1753 = phi i32 [ %1748, %1742 ], [ %1751, %1749 ]
br label %1754
1754: ; preds = %1752, %1737
%1755 = phi i32 [ %1738, %1737 ], [ %1753, %1752 ]
%1756 = icmp sle i32 %1652, %1755
br i1 %1756, label %1757, label %1782
1757: ; preds = %1754
%1758 = load i32, i32* %3
%1759 = load i32, i32* %7
%1760 = sub nsw i32 %1758, %1759
%1761 = load i32, i32* %8
%1762 = sub nsw i32 %1760, %1761
store i32 %1762, i32* %9
%1763 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 2)
%1764 = load i32, i32* %4
%1765 = add nsw i32 %1764, 1
%1766 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %1765)
%1767 = load i32, i32* %6
%1768 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %1767)
%1769 = load i32, i32* %7
%1770 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %1769)
%1771 = load i32, i32* %8
%1772 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %1771)
%1773 = load i32, i32* %3
%1774 = load i32, i32* %7
%1775 = sub nsw i32 %1773, %1774
%1776 = load i32, i32* %8
%1777 = sub nsw i32 %1775, %1776
%1778 = call i32 (i32, ...) bitcast (i32 (...)* @hash to i32 (i32, ...)*)(i32 %1777)
br label %1779
1779: ; preds = %1757
%1780 = load i32, i32* %8
%1781 = add nsw i32 %1780, 1
store i32 %1781, i32* %8
br label %1651
1782: ; preds = %1754
br label %1783
1783: ; preds = %1782
%1784 = load i32, i32* %7
%1785 = add nsw i32 %1784, 1
store i32 %1785, i32* %7
br label %1475
1786: ; preds = %1544
br label %1787
1787: ; preds = %1786
%1788 = load i32, i32* %6
%1789 = add nsw i32 %1788, 1
store i32 %1789, i32* %6
br label %1391
1790: ; preds = %1408
br label %1791
1791: ; preds = %1790
%1792 = load i32, i32* %4
%1793 = add nsw i32 %1792, 1
store i32 %1793, i32* %4
br label %1368
1794: ; preds = %1368
br label %1795
1795: ; preds = %1794
%1796 = load i32, i32* %3
%1797 = add nsw i32 %1796, 1
store i32 %1797, i32* %3
br label %1344
1798: ; preds = %1364
br label %1799
1799: ; preds = %1798, %1326
ret void
}

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