void bitrv2(int n, int *ip, double *a) {
  int j, j1, k, k1, l, m, nh, nm;
  double xr, xi, yr, yi;
  m = 1;
  for (l = n >> 2; l > 8; l >>= 2) {
    m <<= 1;
  }
  nh = n >> 1;
  nm = 4 * m;
  if (l == 8) {
    for (k = 0; k < m; k++) {
      for (j = 0; j < k; j++) {
        j1 = 4 * j + 2 * ip[m + k];
        k1 = 4 * k + 2 * ip[m + j];
        xr = a[j1];
        xi = a[j1 + 1];
        yr = a[k1];
        yi = a[k1 + 1];
        a[j1] = yr;
        a[j1 + 1] = yi;
        a[k1] = xr;
        a[k1 + 1] = xi;
        j1 += nm;
        k1 += 2 * nm;
        xr = a[j1];
        xi = a[j1 + 1];
        yr = a[k1];
        yi = a[k1 + 1];
        a[j1] = yr;
        a[j1 + 1] = yi;
        a[k1] = xr;
        a[k1 + 1] = xi;
        j1 += nm;
        k1 -= nm;
        xr = a[j1];
        xi = a[j1 + 1];
        yr = a[k1];
        yi = a[k1 + 1];
        a[j1] = yr;
        a[j1 + 1] = yi;
        a[k1] = xr;
        a[k1 + 1] = xi;
        j1 += nm;
        k1 += 2 * nm;
        xr = a[j1];
        xi = a[j1 + 1];
        yr = a[k1];
        yi = a[k1 + 1];
        a[j1] = yr;
        a[j1 + 1] = yi;
        a[k1] = xr;
        a[k1 + 1] = xi;
        j1 += nh;
        k1 += 2;
        xr = a[j1];
        xi = a[j1 + 1];
        yr = a[k1];
        yi = a[k1 + 1];
        a[j1] = yr;
        a[j1 + 1] = yi;
        a[k1] = xr;
        a[k1 + 1] = xi;
        j1 -= nm;
        k1 -= 2 * nm;
        xr = a[j1];
        xi = a[j1 + 1];
        yr = a[k1];
        yi = a[k1 + 1];
        a[j1] = yr;
        a[j1 + 1] = yi;
        a[k1] = xr;
        a[k1 + 1] = xi;
        j1 -= nm;
        k1 += nm;
        xr = a[j1];
        xi = a[j1 + 1];
        yr = a[k1];
        yi = a[k1 + 1];
        a[j1] = yr;
        a[j1 + 1] = yi;
        a[k1] = xr;
        a[k1 + 1] = xi;
        j1 -= nm;
        k1 -= 2 * nm;
        xr = a[j1];
        xi = a[j1 + 1];
        yr = a[k1];
        yi = a[k1 + 1];
        a[j1] = yr;
        a[j1 + 1] = yi;
        a[k1] = xr;
        a[k1 + 1] = xi;
        j1 += 2;
        k1 += nh;
        xr = a[j1];
        xi = a[j1 + 1];
        yr = a[k1];
        yi = a[k1 + 1];
        a[j1] = yr;
        a[j1 + 1] = yi;
        a[k1] = xr;
        a[k1 + 1] = xi;
        j1 += nm;
        k1 += 2 * nm;
        xr = a[j1];
        xi = a[j1 + 1];
        yr = a[k1];
        yi = a[k1 + 1];
        a[j1] = yr;
        a[j1 + 1] = yi;
        a[k1] = xr;
        a[k1 + 1] = xi;
        j1 += nm;
        k1 -= nm;
        xr = a[j1];
        xi = a[j1 + 1];
        yr = a[k1];
        yi = a[k1 + 1];
        a[j1] = yr;
        a[j1 + 1] = yi;
        a[k1] = xr;
        a[k1 + 1] = xi;
        j1 += nm;
        k1 += 2 * nm;
        xr = a[j1];
        xi = a[j1 + 1];
        yr = a[k1];
        yi = a[k1 + 1];
        a[j1] = yr;
        a[j1 + 1] = yi;
        a[k1] = xr;
        a[k1 + 1] = xi;
        j1 -= nh;
        k1 -= 2;
        xr = a[j1];
        xi = a[j1 + 1];
        yr = a[k1];
        yi = a[k1 + 1];
        a[j1] = yr;
        a[j1 + 1] = yi;
        a[k1] = xr;
        a[k1 + 1] = xi;
        j1 -= nm;
        k1 -= 2 * nm;
        xr = a[j1];
        xi = a[j1 + 1];
        yr = a[k1];
        yi = a[k1 + 1];
        a[j1] = yr;
        a[j1 + 1] = yi;
        a[k1] = xr;
        a[k1 + 1] = xi;
        j1 -= nm;
        k1 += nm;
        xr = a[j1];
        xi = a[j1 + 1];
        yr = a[k1];
        yi = a[k1 + 1];
        a[j1] = yr;
        a[j1 + 1] = yi;
        a[k1] = xr;
        a[k1 + 1] = xi;
        j1 -= nm;
        k1 -= 2 * nm;
        xr = a[j1];
        xi = a[j1 + 1];
        yr = a[k1];
        yi = a[k1 + 1];
        a[j1] = yr;
        a[j1 + 1] = yi;
        a[k1] = xr;
        a[k1 + 1] = xi;
      }
      k1 = 4 * k + 2 * ip[m + k];
      j1 = k1 + 2;
      k1 += nh;
      xr = a[j1];
      xi = a[j1 + 1];
      yr = a[k1];
      yi = a[k1 + 1];
      a[j1] = yr;
      a[j1 + 1] = yi;
      a[k1] = xr;
      a[k1 + 1] = xi;
      j1 += nm;
      k1 += 2 * nm;
      xr = a[j1];
      xi = a[j1 + 1];
      yr = a[k1];
      yi = a[k1 + 1];
      a[j1] = yr;
      a[j1 + 1] = yi;
      a[k1] = xr;
      a[k1 + 1] = xi;
      j1 += nm;
      k1 -= nm;
      xr = a[j1];
      xi = a[j1 + 1];
      yr = a[k1];
      yi = a[k1 + 1];
      a[j1] = yr;
      a[j1 + 1] = yi;
      a[k1] = xr;
      a[k1 + 1] = xi;
      j1 -= 2;
      k1 -= nh;
      xr = a[j1];
      xi = a[j1 + 1];
      yr = a[k1];
      yi = a[k1 + 1];
      a[j1] = yr;
      a[j1 + 1] = yi;
      a[k1] = xr;
      a[k1 + 1] = xi;
      j1 += nh + 2;
      k1 += nh + 2;
      xr = a[j1];
      xi = a[j1 + 1];
      yr = a[k1];
      yi = a[k1 + 1];
      a[j1] = yr;
      a[j1 + 1] = yi;
      a[k1] = xr;
      a[k1 + 1] = xi;
      j1 -= nh - nm;
      k1 += 2 * nm - 2;
      xr = a[j1];
      xi = a[j1 + 1];
      yr = a[k1];
      yi = a[k1 + 1];
      a[j1] = yr;
      a[j1 + 1] = yi;
      a[k1] = xr;
      a[k1 + 1] = xi;
    }
  } else {
    for (k = 0; k < m; k++) {
      for (j = 0; j < k; j++) {
        j1 = 4 * j + ip[m + k];
        k1 = 4 * k + ip[m + j];
        xr = a[j1];
        xi = a[j1 + 1];
        yr = a[k1];
        yi = a[k1 + 1];
        a[j1] = yr;
        a[j1 + 1] = yi;
        a[k1] = xr;
        a[k1 + 1] = xi;
        j1 += nm;
        k1 += nm;
        xr = a[j1];
        xi = a[j1 + 1];
        yr = a[k1];
        yi = a[k1 + 1];
        a[j1] = yr;
        a[j1 + 1] = yi;
        a[k1] = xr;
        a[k1 + 1] = xi;
        j1 += nh;
        k1 += 2;
        xr = a[j1];
        xi = a[j1 + 1];
        yr = a[k1];
        yi = a[k1 + 1];
        a[j1] = yr;
        a[j1 + 1] = yi;
        a[k1] = xr;
        a[k1 + 1] = xi;
        j1 -= nm;
        k1 -= nm;
        xr = a[j1];
        xi = a[j1 + 1];
        yr = a[k1];
        yi = a[k1 + 1];
        a[j1] = yr;
        a[j1 + 1] = yi;
        a[k1] = xr;
        a[k1 + 1] = xi;
        j1 += 2;
        k1 += nh;
        xr = a[j1];
        xi = a[j1 + 1];
        yr = a[k1];
        yi = a[k1 + 1];
        a[j1] = yr;
        a[j1 + 1] = yi;
        a[k1] = xr;
        a[k1 + 1] = xi;
        j1 += nm;
        k1 += nm;
        xr = a[j1];
        xi = a[j1 + 1];
        yr = a[k1];
        yi = a[k1 + 1];
        a[j1] = yr;
        a[j1 + 1] = yi;
        a[k1] = xr;
        a[k1 + 1] = xi;
        j1 -= nh;
        k1 -= 2;
        xr = a[j1];
        xi = a[j1 + 1];
        yr = a[k1];
        yi = a[k1 + 1];
        a[j1] = yr;
        a[j1 + 1] = yi;
        a[k1] = xr;
        a[k1 + 1] = xi;
        j1 -= nm;
        k1 -= nm;
        xr = a[j1];
        xi = a[j1 + 1];
        yr = a[k1];
        yi = a[k1 + 1];
        a[j1] = yr;
        a[j1 + 1] = yi;
        a[k1] = xr;
        a[k1 + 1] = xi;
      }
      k1 = 4 * k + ip[m + k];
      j1 = k1 + 2;
      k1 += nh;
      xr = a[j1];
      xi = a[j1 + 1];
      yr = a[k1];
      yi = a[k1 + 1];
      a[j1] = yr;
      a[j1 + 1] = yi;
      a[k1] = xr;
      a[k1 + 1] = xi;
      j1 += nm;
      k1 += nm;
      xr = a[j1];
      xi = a[j1 + 1];
      yr = a[k1];
      yi = a[k1 + 1];
      a[j1] = yr;
      a[j1 + 1] = yi;
      a[k1] = xr;
      a[k1 + 1] = xi;
    }
  }
}


x86 assembly (clang, -O0):
<bitrv2>:
push   %rbp
mov    %rsp,%rbp
mov    %edi,-0x4(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
movl   $0x1,-0x30(%rbp)
mov    -0x4(%rbp),%eax
sar    $0x2,%eax
mov    %eax,-0x2c(%rbp)
cmpl   $0x8,-0x2c(%rbp)
jle    1140 <bitrv2+0x40>
mov    -0x30(%rbp),%eax
shl    $0x1,%eax
mov    %eax,-0x30(%rbp)
mov    -0x2c(%rbp),%eax
sar    $0x2,%eax
mov    %eax,-0x2c(%rbp)
jmp    111f <bitrv2+0x1f>
mov    -0x4(%rbp),%eax
sar    $0x1,%eax
mov    %eax,-0x34(%rbp)
mov    -0x30(%rbp),%eax
shl    $0x2,%eax
mov    %eax,-0x38(%rbp)
cmpl   $0x8,-0x2c(%rbp)
jne    21d9 <bitrv2+0x10d9>
movl   $0x0,-0x24(%rbp)
mov    -0x24(%rbp),%eax
cmp    -0x30(%rbp),%eax
jge    21d4 <bitrv2+0x10d4>
movl   $0x0,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
cmp    -0x24(%rbp),%eax
jge    1d4c <bitrv2+0xc4c>
mov    -0x1c(%rbp),%eax
shl    $0x2,%eax
mov    -0x10(%rbp),%rcx
mov    -0x30(%rbp),%edx
add    -0x24(%rbp),%edx
movslq %edx,%rdx
mov    (%rcx,%rdx,4),%ecx
shl    $0x1,%ecx
add    %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x24(%rbp),%eax
shl    $0x2,%eax
mov    -0x10(%rbp),%rcx
mov    -0x30(%rbp),%edx
add    -0x1c(%rbp),%edx
movslq %edx,%rdx
mov    (%rcx,%rdx,4),%ecx
shl    $0x1,%ecx
add    %ecx,%eax
mov    %eax,-0x28(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x50(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x58(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x40(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x48(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x38(%rbp),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x38(%rbp),%eax
shl    $0x1,%eax
add    -0x28(%rbp),%eax
mov    %eax,-0x28(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x50(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x58(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x40(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x48(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x38(%rbp),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x38(%rbp),%ecx
mov    -0x28(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x28(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x50(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x58(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x40(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x48(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x38(%rbp),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x38(%rbp),%eax
shl    $0x1,%eax
add    -0x28(%rbp),%eax
mov    %eax,-0x28(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x50(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x58(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x40(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x48(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x34(%rbp),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x28(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0x28(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x50(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x58(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x40(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x48(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x38(%rbp),%ecx
mov    -0x20(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x38(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x28(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x28(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x50(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x58(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x40(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x48(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x38(%rbp),%ecx
mov    -0x20(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x38(%rbp),%eax
add    -0x28(%rbp),%eax
mov    %eax,-0x28(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x50(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x58(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x40(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x48(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x38(%rbp),%ecx
mov    -0x20(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x38(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x28(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x28(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x50(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x58(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x40(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x48(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x20(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0x20(%rbp)
mov    -0x34(%rbp),%eax
add    -0x28(%rbp),%eax
mov    %eax,-0x28(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x50(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x58(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x40(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x48(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x38(%rbp),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x38(%rbp),%eax
shl    $0x1,%eax
add    -0x28(%rbp),%eax
mov    %eax,-0x28(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x50(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x58(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x40(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x48(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x38(%rbp),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x38(%rbp),%ecx
mov    -0x28(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x28(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x50(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x58(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x40(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x48(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x38(%rbp),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x38(%rbp),%eax
shl    $0x1,%eax
add    -0x28(%rbp),%eax
mov    %eax,-0x28(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x50(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x58(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x40(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x48(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x34(%rbp),%ecx
mov    -0x20(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x28(%rbp),%eax
sub    $0x2,%eax
mov    %eax,-0x28(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x50(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x58(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x40(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x48(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x38(%rbp),%ecx
mov    -0x20(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x38(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x28(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x28(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x50(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x58(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x40(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x48(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x38(%rbp),%ecx
mov    -0x20(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x38(%rbp),%eax
add    -0x28(%rbp),%eax
mov    %eax,-0x28(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x50(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x58(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x40(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x48(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x38(%rbp),%ecx
mov    -0x20(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x38(%rbp),%ecx
shl    $0x1,%ecx
mov    -0x28(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x28(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x50(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x58(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x40(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x48(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    1176 <bitrv2+0x76>
mov    -0x24(%rbp),%eax
shl    $0x2,%eax
mov    -0x10(%rbp),%rcx
mov    -0x30(%rbp),%edx
add    -0x24(%rbp),%edx
movslq %edx,%rdx
mov    (%rcx,%rdx,4),%ecx
shl    $0x1,%ecx
add    %ecx,%eax
mov    %eax,-0x28(%rbp)
mov    -0x28(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0x20(%rbp)
mov    -0x34(%rbp),%eax
add    -0x28(%rbp),%eax
mov    %eax,-0x28(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x50(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x58(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x40(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x48(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x38(%rbp),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x38(%rbp),%eax
shl    $0x1,%eax
add    -0x28(%rbp),%eax
mov    %eax,-0x28(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x50(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x58(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x40(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x48(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x38(%rbp),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x38(%rbp),%ecx
mov    -0x28(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x28(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x50(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x58(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x40(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x48(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x20(%rbp),%eax
sub    $0x2,%eax
mov    %eax,-0x20(%rbp)
mov    -0x34(%rbp),%ecx
mov    -0x28(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x28(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x50(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x58(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x40(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x48(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x34(%rbp),%eax
add    $0x2,%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x34(%rbp),%eax
add    $0x2,%eax
add    -0x28(%rbp),%eax
mov    %eax,-0x28(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x50(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x58(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x40(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x48(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x34(%rbp),%ecx
sub    -0x38(%rbp),%ecx
mov    -0x20(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x38(%rbp),%eax
shl    $0x1,%eax
sub    $0x2,%eax
add    -0x28(%rbp),%eax
mov    %eax,-0x28(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x50(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x58(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x40(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x48(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    1163 <bitrv2+0x63>
jmp    297f <bitrv2+0x187f>
movl   $0x0,-0x24(%rbp)
mov    -0x24(%rbp),%eax
cmp    -0x30(%rbp),%eax
jge    297a <bitrv2+0x187a>
movl   $0x0,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
cmp    -0x24(%rbp),%eax
jge    27e7 <bitrv2+0x16e7>
mov    -0x1c(%rbp),%eax
shl    $0x2,%eax
mov    -0x10(%rbp),%rcx
mov    -0x30(%rbp),%edx
add    -0x24(%rbp),%edx
movslq %edx,%rdx
add    (%rcx,%rdx,4),%eax
mov    %eax,-0x20(%rbp)
mov    -0x24(%rbp),%eax
shl    $0x2,%eax
mov    -0x10(%rbp),%rcx
mov    -0x30(%rbp),%edx
add    -0x1c(%rbp),%edx
movslq %edx,%rdx
add    (%rcx,%rdx,4),%eax
mov    %eax,-0x28(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x50(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x58(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x40(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x48(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x38(%rbp),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x38(%rbp),%eax
add    -0x28(%rbp),%eax
mov    %eax,-0x28(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x50(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x58(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x40(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x48(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x34(%rbp),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x28(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0x28(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x50(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x58(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x40(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x48(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x38(%rbp),%ecx
mov    -0x20(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x38(%rbp),%ecx
mov    -0x28(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x28(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x50(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x58(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x40(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x48(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x20(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0x20(%rbp)
mov    -0x34(%rbp),%eax
add    -0x28(%rbp),%eax
mov    %eax,-0x28(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x50(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x58(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x40(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x48(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x38(%rbp),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x38(%rbp),%eax
add    -0x28(%rbp),%eax
mov    %eax,-0x28(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x50(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x58(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x40(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x48(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x34(%rbp),%ecx
mov    -0x20(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x28(%rbp),%eax
sub    $0x2,%eax
mov    %eax,-0x28(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x50(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x58(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x40(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x48(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x38(%rbp),%ecx
mov    -0x20(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x38(%rbp),%ecx
mov    -0x28(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x28(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x50(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x58(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x40(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x48(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    21f3 <bitrv2+0x10f3>
mov    -0x24(%rbp),%eax
shl    $0x2,%eax
mov    -0x10(%rbp),%rcx
mov    -0x30(%rbp),%edx
add    -0x24(%rbp),%edx
movslq %edx,%rdx
add    (%rcx,%rdx,4),%eax
mov    %eax,-0x28(%rbp)
mov    -0x28(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0x20(%rbp)
mov    -0x34(%rbp),%eax
add    -0x28(%rbp),%eax
mov    %eax,-0x28(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x50(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x58(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x40(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x48(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x38(%rbp),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x38(%rbp),%eax
add    -0x28(%rbp),%eax
mov    %eax,-0x28(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x50(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x20(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x58(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x40(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movslq -0x28(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x48(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x28(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    21e0 <bitrv2+0x10e0>
jmp    297f <bitrv2+0x187f>
pop    %rbp
ret

x86 assembly (clang, -O2):
<bitrv2>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0xb8,%rsp
mov    $0x1,%eax
mov    %edi,%ecx
nopl   0x0(%rax,%rax,1)
mov    %eax,%r11d
mov    %ecx,%ebp
sar    $0x2,%ecx
lea    (%r11,%r11,1),%eax
cmp    $0x23,%ebp
jg     1120 <bitrv2+0x20>
sar    %edi
lea    0x0(,%r11,4),%r9d
cmp    $0x8,%ecx
mov    %rsi,-0x10(%rsp)
jne    18e6 <bitrv2+0x7e6>
test   %r11d,%r11d
jle    1c26 <bitrv2+0xb26>
movabs $0x400000000,%r13
movslq %r9d,%rcx
movslq %edi,%rbp
mov    %r11d,%r10d
shl    $0x3,%r11d
lea    (%rdx,%rcx,8),%rax
add    $0x8,%rax
mov    %rax,0x50(%rsp)
mov    %rcx,%rax
shl    $0x21,%rax
mov    %rax,0x48(%rsp)
mov    %rcx,%rax
shl    $0x20,%rax
lea    (%rax,%rax,2),%rax
mov    %rax,0x40(%rsp)
lea    (%rcx,%rcx,2),%rax
lea    (%rax,%rbp,1),%rbx
mov    %rbx,0x38(%rsp)
lea    0x0(,%rcx,2),%rbx
add    %rbp,%rbx
mov    %rbx,0x30(%rsp)
lea    (%rdx,%rbp,8),%rbx
add    %rcx,%rbp
mov    %rbp,0x60(%rsp)
shl    $0x4,%rcx
lea    (%rbx,%rcx,1),%rbp
mov    %rbp,0x20(%rsp)
mov    %rbx,0x28(%rsp)
lea    (%rbx,%rax,8),%rbp
mov    %rbp,0x18(%rsp)
lea    (%rdx,%rax,8),%rax
mov    %rax,0x10(%rsp)
add    %rdx,%rcx
mov    %rcx,0x68(%rsp)
lea    (%rsi,%r10,4),%r14
lea    0x8(%rdx),%rax
mov    %rax,0x8(%rsp)
lea    (%r9,%r9,2),%eax
mov    %rax,(%rsp)
add    %edi,%eax
add    $0x2,%eax
mov    %rax,-0x8(%rsp)
xor    %r15d,%r15d
xor    %r12d,%r12d
mov    %r10,0x58(%rsp)
mov    %r14,0x80(%rsp)
jmp    1389 <bitrv2+0x289>
xchg   %ax,%ax
movslq (%rsi,%rax,4),%rax
movslq %ecx,%rcx
lea    (%rcx,%rax,2),%rbp
lea    (%rcx,%rax,2),%rax
add    $0x2,%rax
movsd  0x10(%rdx,%rbp,8),%xmm0
movslq %ebp,%rcx
lea    0x0(%rbp,%rdi,1),%ebx
movsd  0x18(%rdx,%rcx,8),%xmm1
movslq %ebx,%rbx
movsd  (%rdx,%rbx,8),%xmm2
movsd  0x8(%rdx,%rbx,8),%xmm3
movsd  %xmm2,0x10(%rdx,%rbp,8)
movsd  %xmm3,0x18(%rdx,%rcx,8)
movsd  %xmm0,(%rdx,%rbx,8)
movsd  %xmm1,0x8(%rdx,%rbx,8)
add    %r9d,%eax
add    %r11d,%ebx
cltq
movsd  (%rdx,%rax,8),%xmm0
mov    %eax,%ecx
or     $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rdx,%rcx,8),%xmm1
movslq %ebx,%rbp
movsd  (%rdx,%rbp,8),%xmm2
movsd  0x8(%rdx,%rbp,8),%xmm3
movsd  %xmm2,(%rdx,%rax,8)
movsd  %xmm3,(%rdx,%rcx,8)
movsd  %xmm0,(%rdx,%rbp,8)
movsd  %xmm1,0x8(%rdx,%rbp,8)
add    %r9d,%eax
sub    %r9d,%ebp
movslq %eax,%rcx
movsd  (%rdx,%rcx,8),%xmm0
mov    %ecx,%eax
or     $0x1,%eax
cltq
movsd  (%rdx,%rax,8),%xmm1
movslq %ebp,%rbx
movsd  (%rdx,%rbx,8),%xmm2
movsd  0x8(%rdx,%rbx,8),%xmm3
movsd  %xmm2,(%rdx,%rcx,8)
movsd  %xmm3,(%rdx,%rax,8)
movsd  %xmm0,(%rdx,%rbx,8)
movsd  %xmm1,0x8(%rdx,%rbx,8)
mov    %ebx,%eax
sub    %edi,%eax
movups -0x10(%rdx,%rcx,8),%xmm0
cltq
movups (%rdx,%rax,8),%xmm1
movups %xmm1,-0x10(%rdx,%rcx,8)
movups %xmm0,(%rdx,%rax,8)
lea    (%rcx,%rdi,1),%eax
lea    0x2(%rbx),%ebp
cltq
movsd  (%rdx,%rax,8),%xmm0
movsd  0x8(%rdx,%rax,8),%xmm1
movslq %ebp,%r8
movsd  (%rdx,%r8,8),%xmm2
lea    0x3(%rbx),%ebp
movslq %ebp,%rbp
movsd  (%rdx,%rbp,8),%xmm3
movsd  %xmm2,(%rdx,%rax,8)
movsd  %xmm3,0x8(%rdx,%rax,8)
movsd  %xmm0,(%rdx,%r8,8)
movsd  %xmm1,(%rdx,%rbp,8)
lea    (%rcx,%r9,1),%eax
add    %r11d,%ebx
cltq
movsd  (%rdx,%rax,8),%xmm0
mov    %eax,%ecx
or     $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rdx,%rcx,8),%xmm1
movslq %ebx,%rbp
movsd  (%rdx,%rbp,8),%xmm2
movsd  0x8(%rdx,%rbp,8),%xmm3
movsd  %xmm2,(%rdx,%rax,8)
movsd  %xmm3,(%rdx,%rcx,8)
movsd  %xmm0,(%rdx,%rbp,8)
movsd  %xmm1,0x8(%rdx,%rbp,8)
add    $0x1,%r12
add    $0x4,%r15
cmp    %r10,%r12
je     1c26 <bitrv2+0xb26>
lea    (%r12,%r10,1),%rax
mov    $0x0,%ecx
test   %r12,%r12
je     1220 <bitrv2+0x120>
mov    %rax,0x70(%rsp)
movslq (%rsi,%rax,4),%rbp
mov    %rbp,%rsi
add    %rbp,%rsi
mov    %r12,0x78(%rsp)
movslq %r12d,%rax
shl    $0x2,%rax
mov    %rax,-0x78(%rsp)
mov    %rbp,%rcx
mov    0x60(%rsp),%rax
lea    (%rax,%rbp,2),%rbx
shl    $0x4,%rbp
shl    $0x21,%rcx
mov    0x48(%rsp),%rax
add    %rcx,%rax
mov    %rax,-0x30(%rsp)
add    0x40(%rsp),%rcx
mov    %rcx,-0x20(%rsp)
mov    0x38(%rsp),%rax
lea    (%rax,%rsi,1),%ecx
shl    $0x20,%rcx
movabs $0x300000000,%rax
add    %rax,%rcx
mov    %rcx,-0x38(%rsp)
mov    %esi,%ecx
mov    %rcx,-0x40(%rsp)
lea    (%r9,%rsi,1),%ecx
mov    %rcx,-0x48(%rsp)
lea    (%r11,%rsi,1),%ecx
mov    %rcx,-0x58(%rsp)
mov    (%rsp),%rcx
add    %esi,%ecx
mov    %rcx,-0x60(%rsp)
mov    -0x8(%rsp),%rcx
add    %esi,%ecx
mov    %rcx,-0x68(%rsp)
add    0x30(%rsp),%esi
shl    $0x20,%rsi
lea    (%rsi,%rax,1),%rcx
mov    %rcx,-0x70(%rsp)
movabs $0x200000000,%rcx
add    %rcx,%rsi
mov    %rsi,-0x18(%rsp)
mov    0x8(%rsp),%rsi
lea    (%rsi,%rbx,8),%rsi
mov    %rsi,0xb0(%rsp)
shl    $0x20,%rbx
add    %rbx,%rax
mov    %rax,0xa8(%rsp)
add    %rcx,%rbx
mov    %rbx,-0x28(%rsp)
lea    (%rdx,%rbp,1),%rax
mov    %rax,0x88(%rsp)
mov    0x50(%rsp),%rax
mov    %r15,-0x80(%rsp)
lea    (%rax,%rbp,1),%r15
mov    0x28(%rsp),%rax
lea    (%rax,%rbp,1),%r14
mov    0x20(%rsp),%rax
add    %rbp,%rax
mov    %rax,0xa0(%rsp)
mov    0x18(%rsp),%rax
add    %rbp,%rax
mov    %rax,0x98(%rsp)
mov    0x10(%rsp),%rax
add    %rbp,%rax
mov    %rax,0x90(%rsp)
add    0x68(%rsp),%rbp
mov    %rbp,-0x50(%rsp)
xor    %r8d,%r8d
xor    %r10d,%r10d
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
mov    0x80(%rsp),%rax
movslq (%rax,%r10,1),%rbp
mov    -0x78(%rsp),%rax
lea    (%rax,%rbp,2),%rbp
mov    0x88(%rsp),%rcx
movsd  (%rcx,%r10,8),%xmm0
movsd  0x8(%rcx,%r10,8),%xmm1
movsd  (%rdx,%rbp,8),%xmm2
mov    %ebp,%eax
or     $0x1,%eax
cltq
movsd  (%rdx,%rax,8),%xmm3
movsd  %xmm2,(%rcx,%r10,8)
movsd  %xmm3,0x8(%rcx,%r10,8)
movsd  %xmm0,(%rdx,%rbp,8)
add    %r11d,%ebp
movsd  %xmm1,(%rdx,%rax,8)
movsd  -0x8(%r15,%r10,8),%xmm0
movsd  (%r15,%r10,8),%xmm1
movslq %ebp,%rax
mov    %eax,%ebp
movsd  (%rdx,%rax,8),%xmm2
or     $0x1,%ebp
movslq %ebp,%rbp
movsd  (%rdx,%rbp,8),%xmm3
movsd  %xmm2,-0x8(%r15,%r10,8)
movsd  %xmm3,(%r15,%r10,8)
movsd  %xmm0,(%rdx,%rax,8)
sub    %r9d,%eax
movsd  %xmm1,(%rdx,%rbp,8)
mov    -0x30(%rsp),%rcx
add    %r8,%rcx
sar    $0x1d,%rcx
or     $0x8,%rcx
mov    -0x50(%rsp),%rsi
movsd  (%rsi,%r10,8),%xmm0
movsd  (%rdx,%rcx,1),%xmm1
movslq %eax,%rbp
mov    %ebp,%eax
or     $0x1,%eax
movsd  (%rdx,%rbp,8),%xmm2
cltq
movsd  (%rdx,%rax,8),%xmm3
movsd  %xmm2,(%rsi,%r10,8)
movsd  %xmm3,(%rdx,%rcx,1)
movsd  %xmm0,(%rdx,%rbp,8)
movsd  %xmm1,(%rdx,%rax,8)
lea    0x0(%rbp,%r11,1),%eax
mov    0x90(%rsp),%rbx
movsd  (%rbx,%r10,8),%xmm0
mov    -0x20(%rsp),%rcx
add    %r8,%rcx
sar    $0x1d,%rcx
or     $0x8,%rcx
movsd  (%rdx,%rcx,1),%xmm1
cltq
mov    %eax,%esi
or     $0x1,%esi
movslq %esi,%rsi
movsd  (%rdx,%rax,8),%xmm2
movsd  (%rdx,%rsi,8),%xmm3
movsd  %xmm2,(%rbx,%r10,8)
movsd  %xmm3,(%rdx,%rcx,1)
movsd  %xmm0,(%rdx,%rax,8)
movsd  %xmm1,(%rdx,%rsi,8)
mov    0x98(%rsp),%rcx
movups (%rcx,%r10,8),%xmm0
movups 0x10(%rdx,%rax,8),%xmm1
movups %xmm1,(%rcx,%r10,8)
movups %xmm0,0x10(%rdx,%rax,8)
lea    0x2(%rbp),%eax
cltq
mov    0xa0(%rsp),%rcx
movups (%rcx,%r10,8),%xmm0
movups (%rdx,%rax,8),%xmm1
movups %xmm1,(%rcx,%r10,8)
lea    0x2(%rbp,%r9,1),%ecx
movups %xmm0,(%rdx,%rax,8)
mov    0xb0(%rsp),%rsi
movups -0x8(%rsi,%r10,8),%xmm0
movslq %ecx,%rax
movups (%rdx,%rax,8),%xmm1
movups %xmm1,-0x8(%rsi,%r10,8)
movups %xmm0,(%rdx,%rax,8)
mov    %eax,%ecx
sub    %r11d,%ecx
movslq %ecx,%rcx
movups (%r14,%r10,8),%xmm0
movups (%rdx,%rcx,8),%xmm1
movups %xmm1,(%r14,%r10,8)
movups %xmm0,(%rdx,%rcx,8)
add    %edi,%ecx
movups 0x10(%r14,%r10,8),%xmm0
movslq %ecx,%rcx
movups (%rdx,%rcx,8),%xmm1
movups %xmm1,0x10(%r14,%r10,8)
add    %edi,%eax
mov    -0x28(%rsp),%rsi
add    %r8,%rsi
sar    $0x1d,%rsi
movups %xmm0,(%rdx,%rcx,8)
movsd  (%rdx,%rsi,1),%xmm0
mov    0xa8(%rsp),%rcx
add    %r8,%rcx
sar    $0x1d,%rcx
movsd  (%rdx,%rcx,1),%xmm1
cltq
movsd  (%rdx,%rax,8),%xmm2
movsd  0x8(%rdx,%rax,8),%xmm3
movsd  %xmm2,(%rdx,%rsi,1)
movsd  %xmm3,(%rdx,%rcx,1)
movsd  %xmm0,(%rdx,%rax,8)
movsd  %xmm1,0x8(%rdx,%rax,8)
sub    %r9d,%eax
mov    -0x18(%rsp),%rcx
add    %r8,%rcx
sar    $0x1d,%rcx
mov    -0x70(%rsp),%rsi
add    %r8,%rsi
movsd  (%rdx,%rcx,1),%xmm0
sar    $0x1d,%rsi
movsd  (%rdx,%rsi,1),%xmm1
mov    %r13,%rbp
movslq %eax,%r13
movsd  (%rdx,%r13,8),%xmm2
movsd  0x8(%rdx,%r13,8),%xmm3
movsd  %xmm2,(%rdx,%rcx,1)
movsd  %xmm3,(%rdx,%rsi,1)
movsd  %xmm0,(%rdx,%r13,8)
mov    -0x68(%rsp),%rax
add    %r10d,%eax
lea    0x0(%r13,%r11,1),%ecx
cltq
movsd  %xmm1,0x8(%rdx,%r13,8)
movsd  (%rdx,%rax,8),%xmm0
mov    -0x38(%rsp),%rsi
add    %r8,%rsi
sar    $0x1d,%rsi
movsd  (%rdx,%rsi,1),%xmm1
movslq %ecx,%rcx
movsd  (%rdx,%rcx,8),%xmm2
movsd  0x8(%rdx,%rcx,8),%xmm3
movsd  %xmm2,(%rdx,%rax,8)
movsd  %xmm3,(%rdx,%rsi,1)
movsd  %xmm0,(%rdx,%rcx,8)
mov    -0x60(%rsp),%rsi
lea    0x2(%rsi,%r10,1),%eax
movsd  %xmm1,0x8(%rdx,%rcx,8)
cltq
lea    0x3(%rsi,%r10,1),%esi
movslq %esi,%rsi
movsd  (%rdx,%rax,8),%xmm0
movsd  (%rdx,%rsi,8),%xmm1
movsd  -0x10(%rdx,%rcx,8),%xmm2
movsd  -0x8(%rdx,%rcx,8),%xmm3
movsd  %xmm2,(%rdx,%rax,8)
movsd  %xmm3,(%rdx,%rsi,8)
movsd  %xmm0,-0x10(%rdx,%rcx,8)
mov    -0x58(%rsp),%rsi
lea    0x2(%rsi,%r10,1),%eax
movsd  %xmm1,-0x8(%rdx,%rcx,8)
lea    -0x2(%r13),%ecx
cltq
lea    0x3(%rsi,%r10,1),%esi
movsd  (%rdx,%rax,8),%xmm0
movslq %esi,%rsi
movsd  (%rdx,%rsi,8),%xmm1
movslq %ecx,%rcx
movsd  (%rdx,%rcx,8),%xmm2
movsd  0x8(%rdx,%rcx,8),%xmm3
movsd  %xmm2,(%rdx,%rax,8)
movsd  %xmm3,(%rdx,%rsi,8)
movsd  %xmm0,(%rdx,%rcx,8)
mov    -0x48(%rsp),%rax
mov    %r11,%r12
mov    %r9,%r11
mov    %rax,%r9
lea    0x2(%rax,%r10,1),%eax
lea    -0x2(%r13,%r11,1),%esi
mov    %rbp,%r13
cltq
movsd  %xmm1,0x8(%rdx,%rcx,8)
movsd  (%rdx,%rax,8),%xmm0
lea    0x3(%r9,%r10,1),%ecx
mov    %r11,%r9
mov    %r12,%r11
movslq %ecx,%rcx
movsd  (%rdx,%rcx,8),%xmm1
movslq %esi,%rsi
movsd  (%rdx,%rsi,8),%xmm2
movsd  0x8(%rdx,%rsi,8),%xmm3
movsd  %xmm2,(%rdx,%rax,8)
movsd  %xmm3,(%rdx,%rcx,8)
movsd  %xmm0,(%rdx,%rsi,8)
mov    -0x40(%rsp),%rcx
lea    (%rcx,%r10,1),%eax
add    $0x2,%eax
movsd  %xmm1,0x8(%rdx,%rsi,8)
sub    %r11d,%esi
cltq
add    %r10d,%ecx
add    $0x3,%ecx
movsd  (%rdx,%rax,8),%xmm0
movslq %ecx,%rcx
movsd  (%rdx,%rcx,8),%xmm1
movslq %esi,%rsi
movsd  (%rdx,%rsi,8),%xmm2
movsd  0x8(%rdx,%rsi,8),%xmm3
movsd  %xmm2,(%rdx,%rax,8)
movsd  %xmm3,(%rdx,%rcx,8)
movsd  %xmm0,(%rdx,%rsi,8)
movsd  %xmm1,0x8(%rdx,%rsi,8)
add    $0x4,%r10
add    %rbp,%r8
cmp    %r10,-0x80(%rsp)
jne    14f0 <bitrv2+0x3f0>
mov    -0x10(%rsp),%rsi
mov    0x58(%rsp),%r10
mov    -0x80(%rsp),%r15
mov    0x78(%rsp),%r12
mov    0x70(%rsp),%rax
mov    -0x78(%rsp),%rcx
jmp    1220 <bitrv2+0x120>
test   %r11d,%r11d
jle    1c26 <bitrv2+0xb26>
movslq %r9d,%rax
movslq %edi,%r10
mov    %r11d,%r14d
mov    %rax,%r11
lea    (%rsi,%r14,4),%r15
add    %r10,%rax
mov    %rax,-0x50(%rsp)
lea    0x2(%r10,%r11,1),%eax
mov    %rax,-0x58(%rsp)
lea    (%rdx,%r10,8),%rax
mov    %rax,-0x60(%rsp)
lea    0x8(%rdx),%rax
mov    %rax,-0x68(%rsp)
lea    (%rdx,%r11,8),%rax
add    $0x8,%rax
mov    %rax,-0x70(%rsp)
xor    %r12d,%r12d
xor    %eax,%eax
mov    %r14,-0x48(%rsp)
mov    %r15,-0x30(%rsp)
jmp    19d7 <bitrv2+0x8d7>
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
movslq (%rsi,%rcx,4),%rbx
movslq %ebp,%rcx
lea    (%rbx,%rcx,1),%rbp
add    %rbx,%rcx
add    $0x2,%rcx
movsd  0x10(%rdx,%rbp,8),%xmm0
movslq %ebp,%r13
lea    0x0(%rbp,%rdi,1),%ebx
movsd  0x18(%rdx,%r13,8),%xmm1
movslq %ebx,%rbx
movsd  (%rdx,%rbx,8),%xmm2
movsd  0x8(%rdx,%rbx,8),%xmm3
movsd  %xmm2,0x10(%rdx,%rbp,8)
movsd  %xmm3,0x18(%rdx,%r13,8)
movsd  %xmm0,(%rdx,%rbx,8)
movsd  %xmm1,0x8(%rdx,%rbx,8)
add    %r9d,%ecx
add    %r9d,%ebx
movslq %ecx,%rbp
movups (%rdx,%rbp,8),%xmm0
movslq %ebx,%rcx
movsd  (%rdx,%rcx,8),%xmm1
movsd  0x8(%rdx,%rcx,8),%xmm2
movsd  %xmm1,(%rdx,%rbp,8)
movsd  %xmm2,0x8(%rdx,%rbp,8)
movups %xmm0,(%rdx,%rcx,8)
add    $0x1,%rax
add    $0x4,%r12
cmp    %r14,%rax
je     1c26 <bitrv2+0xb26>
lea    (%rax,%r14,1),%rcx
mov    $0x0,%ebp
test   %rax,%rax
je     1950 <bitrv2+0x850>
mov    %rcx,-0x40(%rsp)
mov    (%rsi,%rcx,4),%ecx
mov    %rax,-0x38(%rsp)
cltq
shl    $0x2,%rax
mov    %rax,-0x78(%rsp)
mov    %rcx,-0x18(%rsp)
movslq %ecx,%rsi
mov    -0x50(%rsp),%rax
add    %rsi,%rax
mov    -0x68(%rsp),%rcx
lea    (%rcx,%rax,8),%rcx
mov    %rcx,-0x20(%rsp)
shl    $0x20,%rax
movabs $0x300000000,%rcx
add    %rcx,%rax
lea    (%r9,%rsi,1),%r15d
mov    -0x58(%rsp),%rcx
add    %esi,%ecx
mov    %rcx,-0x28(%rsp)
mov    -0x60(%rsp),%rcx
lea    (%rcx,%rsi,8),%r8
mov    %r12,-0x80(%rsp)
mov    %rdi,%r12
mov    -0x70(%rsp),%rcx
lea    (%rcx,%rsi,8),%r13
lea    (%rdx,%rsi,8),%rsi
xor    %ebp,%ebp
mov    -0x30(%rsp),%rcx
movslq (%rcx,%rbp,1),%rbx
add    -0x78(%rsp),%rbx
movsd  (%rsi,%rbp,8),%xmm0
movsd  0x8(%rsi,%rbp,8),%xmm1
movsd  (%rdx,%rbx,8),%xmm2
movslq %ebx,%rdi
movsd  0x8(%rdx,%rdi,8),%xmm3
movsd  %xmm2,(%rsi,%rbp,8)
movsd  %xmm3,0x8(%rsi,%rbp,8)
movsd  %xmm0,(%rdx,%rbx,8)
movsd  %xmm1,0x8(%rdx,%rdi,8)
lea    (%rdi,%r9,1),%ebx
movups -0x8(%r13,%rbp,8),%xmm0
movslq %ebx,%rbx
movups (%rdx,%rbx,8),%xmm1
movups %xmm1,-0x8(%r13,%rbp,8)
movups %xmm0,(%rdx,%rbx,8)
lea    0x2(%rdi,%r11,1),%edi
mov    -0x20(%rsp),%rcx
movups -0x8(%rcx,%rbp,8),%xmm0
movups 0x10(%rdx,%rbx,8),%xmm1
movups %xmm1,-0x8(%rcx,%rbp,8)
movups %xmm0,0x10(%rdx,%rbx,8)
sub    %r9d,%edi
movups (%r8,%rbp,8),%xmm0
movslq %edi,%rdi
movups (%rdx,%rdi,8),%xmm1
movups %xmm1,(%r8,%rbp,8)
movups %xmm0,(%rdx,%rdi,8)
add    %r12d,%edi
movups 0x10(%r8,%rbp,8),%xmm0
movslq %edi,%rdi
movups (%rdx,%rdi,8),%xmm1
movups %xmm1,0x10(%r8,%rbp,8)
movups %xmm0,(%rdx,%rdi,8)
mov    -0x28(%rsp),%rcx
lea    (%rcx,%rbp,1),%edi
lea    0x2(%r10,%rbx,1),%ecx
movslq %edi,%rdi
movsd  (%rdx,%rdi,8),%xmm0
mov    %r10,%r14
mov    %r11,%r10
mov    %rax,%r11
sar    $0x1d,%r11
movsd  (%rdx,%r11,1),%xmm1
movslq %ecx,%rcx
movsd  (%rdx,%rcx,8),%xmm2
movsd  0x8(%rdx,%rcx,8),%xmm3
movsd  %xmm2,(%rdx,%rdi,8)
movsd  %xmm3,(%rdx,%r11,1)
mov    %r10,%r11
mov    %r14,%r10
movsd  %xmm0,(%rdx,%rcx,8)
movsd  %xmm1,0x8(%rdx,%rcx,8)
lea    (%r15,%rbp,1),%ecx
add    $0x2,%ecx
add    %r12d,%ebx
movslq %ecx,%rcx
movsd  (%rdx,%rcx,8),%xmm0
lea    (%r15,%rbp,1),%edi
add    $0x3,%edi
movslq %edi,%rdi
movsd  (%rdx,%rdi,8),%xmm1
movslq %ebx,%rbx
movsd  (%rdx,%rbx,8),%xmm2
movsd  0x8(%rdx,%rbx,8),%xmm3
movsd  %xmm2,(%rdx,%rcx,8)
movsd  %xmm3,(%rdx,%rdi,8)
movsd  %xmm0,(%rdx,%rbx,8)
movsd  %xmm1,0x8(%rdx,%rbx,8)
mov    -0x18(%rsp),%rdi
lea    (%rdi,%rbp,1),%ecx
add    $0x2,%ecx
sub    %r9d,%ebx
movslq %ecx,%rcx
movsd  (%rdx,%rcx,8),%xmm0
add    %ebp,%edi
add    $0x3,%edi
movslq %edi,%rdi
movsd  (%rdx,%rdi,8),%xmm1
movslq %ebx,%rbx
movsd  (%rdx,%rbx,8),%xmm2
movsd  0x8(%rdx,%rbx,8),%xmm3
movsd  %xmm2,(%rdx,%rcx,8)
movsd  %xmm3,(%rdx,%rdi,8)
movsd  %xmm0,(%rdx,%rbx,8)
movsd  %xmm1,0x8(%rdx,%rbx,8)
add    $0x4,%rbp
movabs $0x400000000,%rcx
add    %rcx,%rax
cmp    %rbp,-0x80(%rsp)
jne    1a60 <bitrv2+0x960>
mov    -0x10(%rsp),%rsi
mov    %r12,%rdi
mov    -0x48(%rsp),%r14
mov    -0x80(%rsp),%r12
mov    -0x38(%rsp),%rax
mov    -0x40(%rsp),%rcx
mov    -0x78(%rsp),%rbp
jmp    1950 <bitrv2+0x850>
add    $0xb8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

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

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