void bn_mul_comba4(unsigned long long *r, unsigned long long *a,
                   unsigned long long *b) {
  unsigned long long bl, bh;
  unsigned long long t1, t2;
  unsigned long long c1, c2, c3;
  c1 = 0;
  c2 = 0;
  c3 = 0;
  t1 = ((a[0]) & (0xffffffffL));
  t2 = (((a[0]) >> 32) & (0xffffffffL));
  bl = ((b[0]) & (0xffffffffL));
  bh = (((b[0]) >> 32) & (0xffffffffL));
  {
    unsigned long long m, m1, lt, ht;
    lt = t1;
    ht = t2;
    m = (bh) * (lt);
    lt = (bl) * (lt);
    m1 = (bl) * (ht);
    ht = (bh) * (ht);
    m = (m + m1) & (0xffffffffffffffffLL);
    if (m < m1)
      ht += ((unsigned long long)((1L) & (0xffffffffL)) << 32);
    ht += (((m) >> 32) & (0xffffffffL));
    m1 = ((unsigned long long)((m) & (0xffffffffL)) << 32);
    lt = (lt + m1) & (0xffffffffffffffffLL);
    if (lt < m1)
      ht++;
    (t1) = lt;
    (t2) = ht;
  };
  c1 = (c1 + t1) & (0xffffffffffffffffLL);
  if ((c1) < t1)
    t2++;
  c2 = (c2 + t2) & (0xffffffffffffffffLL);
  if ((c2) < t2)
    c3++;
  ;
  r[0] = c1;
  c1 = 0;
  t1 = ((a[0]) & (0xffffffffL));
  t2 = (((a[0]) >> 32) & (0xffffffffL));
  bl = ((b[1]) & (0xffffffffL));
  bh = (((b[1]) >> 32) & (0xffffffffL));
  {
    unsigned long long m, m1, lt, ht;
    lt = t1;
    ht = t2;
    m = (bh) * (lt);
    lt = (bl) * (lt);
    m1 = (bl) * (ht);
    ht = (bh) * (ht);
    m = (m + m1) & (0xffffffffffffffffLL);
    if (m < m1)
      ht += ((unsigned long long)((1L) & (0xffffffffL)) << 32);
    ht += (((m) >> 32) & (0xffffffffL));
    m1 = ((unsigned long long)((m) & (0xffffffffL)) << 32);
    lt = (lt + m1) & (0xffffffffffffffffLL);
    if (lt < m1)
      ht++;
    (t1) = lt;
    (t2) = ht;
  };
  c2 = (c2 + t1) & (0xffffffffffffffffLL);
  if ((c2) < t1)
    t2++;
  c3 = (c3 + t2) & (0xffffffffffffffffLL);
  if ((c3) < t2)
    c1++;
  ;
  t1 = ((a[1]) & (0xffffffffL));
  t2 = (((a[1]) >> 32) & (0xffffffffL));
  bl = ((b[0]) & (0xffffffffL));
  bh = (((b[0]) >> 32) & (0xffffffffL));
  {
    unsigned long long m, m1, lt, ht;
    lt = t1;
    ht = t2;
    m = (bh) * (lt);
    lt = (bl) * (lt);
    m1 = (bl) * (ht);
    ht = (bh) * (ht);
    m = (m + m1) & (0xffffffffffffffffLL);
    if (m < m1)
      ht += ((unsigned long long)((1L) & (0xffffffffL)) << 32);
    ht += (((m) >> 32) & (0xffffffffL));
    m1 = ((unsigned long long)((m) & (0xffffffffL)) << 32);
    lt = (lt + m1) & (0xffffffffffffffffLL);
    if (lt < m1)
      ht++;
    (t1) = lt;
    (t2) = ht;
  };
  c2 = (c2 + t1) & (0xffffffffffffffffLL);
  if ((c2) < t1)
    t2++;
  c3 = (c3 + t2) & (0xffffffffffffffffLL);
  if ((c3) < t2)
    c1++;
  ;
  r[1] = c2;
  c2 = 0;
  t1 = ((a[2]) & (0xffffffffL));
  t2 = (((a[2]) >> 32) & (0xffffffffL));
  bl = ((b[0]) & (0xffffffffL));
  bh = (((b[0]) >> 32) & (0xffffffffL));
  {
    unsigned long long m, m1, lt, ht;
    lt = t1;
    ht = t2;
    m = (bh) * (lt);
    lt = (bl) * (lt);
    m1 = (bl) * (ht);
    ht = (bh) * (ht);
    m = (m + m1) & (0xffffffffffffffffLL);
    if (m < m1)
      ht += ((unsigned long long)((1L) & (0xffffffffL)) << 32);
    ht += (((m) >> 32) & (0xffffffffL));
    m1 = ((unsigned long long)((m) & (0xffffffffL)) << 32);
    lt = (lt + m1) & (0xffffffffffffffffLL);
    if (lt < m1)
      ht++;
    (t1) = lt;
    (t2) = ht;
  };
  c3 = (c3 + t1) & (0xffffffffffffffffLL);
  if ((c3) < t1)
    t2++;
  c1 = (c1 + t2) & (0xffffffffffffffffLL);
  if ((c1) < t2)
    c2++;
  ;
  t1 = ((a[1]) & (0xffffffffL));
  t2 = (((a[1]) >> 32) & (0xffffffffL));
  bl = ((b[1]) & (0xffffffffL));
  bh = (((b[1]) >> 32) & (0xffffffffL));
  {
    unsigned long long m, m1, lt, ht;
    lt = t1;
    ht = t2;
    m = (bh) * (lt);
    lt = (bl) * (lt);
    m1 = (bl) * (ht);
    ht = (bh) * (ht);
    m = (m + m1) & (0xffffffffffffffffLL);
    if (m < m1)
      ht += ((unsigned long long)((1L) & (0xffffffffL)) << 32);
    ht += (((m) >> 32) & (0xffffffffL));
    m1 = ((unsigned long long)((m) & (0xffffffffL)) << 32);
    lt = (lt + m1) & (0xffffffffffffffffLL);
    if (lt < m1)
      ht++;
    (t1) = lt;
    (t2) = ht;
  };
  c3 = (c3 + t1) & (0xffffffffffffffffLL);
  if ((c3) < t1)
    t2++;
  c1 = (c1 + t2) & (0xffffffffffffffffLL);
  if ((c1) < t2)
    c2++;
  ;
  t1 = ((a[0]) & (0xffffffffL));
  t2 = (((a[0]) >> 32) & (0xffffffffL));
  bl = ((b[2]) & (0xffffffffL));
  bh = (((b[2]) >> 32) & (0xffffffffL));
  {
    unsigned long long m, m1, lt, ht;
    lt = t1;
    ht = t2;
    m = (bh) * (lt);
    lt = (bl) * (lt);
    m1 = (bl) * (ht);
    ht = (bh) * (ht);
    m = (m + m1) & (0xffffffffffffffffLL);
    if (m < m1)
      ht += ((unsigned long long)((1L) & (0xffffffffL)) << 32);
    ht += (((m) >> 32) & (0xffffffffL));
    m1 = ((unsigned long long)((m) & (0xffffffffL)) << 32);
    lt = (lt + m1) & (0xffffffffffffffffLL);
    if (lt < m1)
      ht++;
    (t1) = lt;
    (t2) = ht;
  };
  c3 = (c3 + t1) & (0xffffffffffffffffLL);
  if ((c3) < t1)
    t2++;
  c1 = (c1 + t2) & (0xffffffffffffffffLL);
  if ((c1) < t2)
    c2++;
  ;
  r[2] = c3;
  c3 = 0;
  t1 = ((a[0]) & (0xffffffffL));
  t2 = (((a[0]) >> 32) & (0xffffffffL));
  bl = ((b[3]) & (0xffffffffL));
  bh = (((b[3]) >> 32) & (0xffffffffL));
  {
    unsigned long long m, m1, lt, ht;
    lt = t1;
    ht = t2;
    m = (bh) * (lt);
    lt = (bl) * (lt);
    m1 = (bl) * (ht);
    ht = (bh) * (ht);
    m = (m + m1) & (0xffffffffffffffffLL);
    if (m < m1)
      ht += ((unsigned long long)((1L) & (0xffffffffL)) << 32);
    ht += (((m) >> 32) & (0xffffffffL));
    m1 = ((unsigned long long)((m) & (0xffffffffL)) << 32);
    lt = (lt + m1) & (0xffffffffffffffffLL);
    if (lt < m1)
      ht++;
    (t1) = lt;
    (t2) = ht;
  };
  c1 = (c1 + t1) & (0xffffffffffffffffLL);
  if ((c1) < t1)
    t2++;
  c2 = (c2 + t2) & (0xffffffffffffffffLL);
  if ((c2) < t2)
    c3++;
  ;
  t1 = ((a[1]) & (0xffffffffL));
  t2 = (((a[1]) >> 32) & (0xffffffffL));
  bl = ((b[2]) & (0xffffffffL));
  bh = (((b[2]) >> 32) & (0xffffffffL));
  {
    unsigned long long m, m1, lt, ht;
    lt = t1;
    ht = t2;
    m = (bh) * (lt);
    lt = (bl) * (lt);
    m1 = (bl) * (ht);
    ht = (bh) * (ht);
    m = (m + m1) & (0xffffffffffffffffLL);
    if (m < m1)
      ht += ((unsigned long long)((1L) & (0xffffffffL)) << 32);
    ht += (((m) >> 32) & (0xffffffffL));
    m1 = ((unsigned long long)((m) & (0xffffffffL)) << 32);
    lt = (lt + m1) & (0xffffffffffffffffLL);
    if (lt < m1)
      ht++;
    (t1) = lt;
    (t2) = ht;
  };
  c1 = (c1 + t1) & (0xffffffffffffffffLL);
  if ((c1) < t1)
    t2++;
  c2 = (c2 + t2) & (0xffffffffffffffffLL);
  if ((c2) < t2)
    c3++;
  ;
  t1 = ((a[2]) & (0xffffffffL));
  t2 = (((a[2]) >> 32) & (0xffffffffL));
  bl = ((b[1]) & (0xffffffffL));
  bh = (((b[1]) >> 32) & (0xffffffffL));
  {
    unsigned long long m, m1, lt, ht;
    lt = t1;
    ht = t2;
    m = (bh) * (lt);
    lt = (bl) * (lt);
    m1 = (bl) * (ht);
    ht = (bh) * (ht);
    m = (m + m1) & (0xffffffffffffffffLL);
    if (m < m1)
      ht += ((unsigned long long)((1L) & (0xffffffffL)) << 32);
    ht += (((m) >> 32) & (0xffffffffL));
    m1 = ((unsigned long long)((m) & (0xffffffffL)) << 32);
    lt = (lt + m1) & (0xffffffffffffffffLL);
    if (lt < m1)
      ht++;
    (t1) = lt;
    (t2) = ht;
  };
  c1 = (c1 + t1) & (0xffffffffffffffffLL);
  if ((c1) < t1)
    t2++;
  c2 = (c2 + t2) & (0xffffffffffffffffLL);
  if ((c2) < t2)
    c3++;
  ;
  t1 = ((a[3]) & (0xffffffffL));
  t2 = (((a[3]) >> 32) & (0xffffffffL));
  bl = ((b[0]) & (0xffffffffL));
  bh = (((b[0]) >> 32) & (0xffffffffL));
  {
    unsigned long long m, m1, lt, ht;
    lt = t1;
    ht = t2;
    m = (bh) * (lt);
    lt = (bl) * (lt);
    m1 = (bl) * (ht);
    ht = (bh) * (ht);
    m = (m + m1) & (0xffffffffffffffffLL);
    if (m < m1)
      ht += ((unsigned long long)((1L) & (0xffffffffL)) << 32);
    ht += (((m) >> 32) & (0xffffffffL));
    m1 = ((unsigned long long)((m) & (0xffffffffL)) << 32);
    lt = (lt + m1) & (0xffffffffffffffffLL);
    if (lt < m1)
      ht++;
    (t1) = lt;
    (t2) = ht;
  };
  c1 = (c1 + t1) & (0xffffffffffffffffLL);
  if ((c1) < t1)
    t2++;
  c2 = (c2 + t2) & (0xffffffffffffffffLL);
  if ((c2) < t2)
    c3++;
  ;
  r[3] = c1;
  c1 = 0;
  t1 = ((a[3]) & (0xffffffffL));
  t2 = (((a[3]) >> 32) & (0xffffffffL));
  bl = ((b[1]) & (0xffffffffL));
  bh = (((b[1]) >> 32) & (0xffffffffL));
  {
    unsigned long long m, m1, lt, ht;
    lt = t1;
    ht = t2;
    m = (bh) * (lt);
    lt = (bl) * (lt);
    m1 = (bl) * (ht);
    ht = (bh) * (ht);
    m = (m + m1) & (0xffffffffffffffffLL);
    if (m < m1)
      ht += ((unsigned long long)((1L) & (0xffffffffL)) << 32);
    ht += (((m) >> 32) & (0xffffffffL));
    m1 = ((unsigned long long)((m) & (0xffffffffL)) << 32);
    lt = (lt + m1) & (0xffffffffffffffffLL);
    if (lt < m1)
      ht++;
    (t1) = lt;
    (t2) = ht;
  };
  c2 = (c2 + t1) & (0xffffffffffffffffLL);
  if ((c2) < t1)
    t2++;
  c3 = (c3 + t2) & (0xffffffffffffffffLL);
  if ((c3) < t2)
    c1++;
  ;
  t1 = ((a[2]) & (0xffffffffL));
  t2 = (((a[2]) >> 32) & (0xffffffffL));
  bl = ((b[2]) & (0xffffffffL));
  bh = (((b[2]) >> 32) & (0xffffffffL));
  {
    unsigned long long m, m1, lt, ht;
    lt = t1;
    ht = t2;
    m = (bh) * (lt);
    lt = (bl) * (lt);
    m1 = (bl) * (ht);
    ht = (bh) * (ht);
    m = (m + m1) & (0xffffffffffffffffLL);
    if (m < m1)
      ht += ((unsigned long long)((1L) & (0xffffffffL)) << 32);
    ht += (((m) >> 32) & (0xffffffffL));
    m1 = ((unsigned long long)((m) & (0xffffffffL)) << 32);
    lt = (lt + m1) & (0xffffffffffffffffLL);
    if (lt < m1)
      ht++;
    (t1) = lt;
    (t2) = ht;
  };
  c2 = (c2 + t1) & (0xffffffffffffffffLL);
  if ((c2) < t1)
    t2++;
  c3 = (c3 + t2) & (0xffffffffffffffffLL);
  if ((c3) < t2)
    c1++;
  ;
  t1 = ((a[1]) & (0xffffffffL));
  t2 = (((a[1]) >> 32) & (0xffffffffL));
  bl = ((b[3]) & (0xffffffffL));
  bh = (((b[3]) >> 32) & (0xffffffffL));
  {
    unsigned long long m, m1, lt, ht;
    lt = t1;
    ht = t2;
    m = (bh) * (lt);
    lt = (bl) * (lt);
    m1 = (bl) * (ht);
    ht = (bh) * (ht);
    m = (m + m1) & (0xffffffffffffffffLL);
    if (m < m1)
      ht += ((unsigned long long)((1L) & (0xffffffffL)) << 32);
    ht += (((m) >> 32) & (0xffffffffL));
    m1 = ((unsigned long long)((m) & (0xffffffffL)) << 32);
    lt = (lt + m1) & (0xffffffffffffffffLL);
    if (lt < m1)
      ht++;
    (t1) = lt;
    (t2) = ht;
  };
  c2 = (c2 + t1) & (0xffffffffffffffffLL);
  if ((c2) < t1)
    t2++;
  c3 = (c3 + t2) & (0xffffffffffffffffLL);
  if ((c3) < t2)
    c1++;
  ;
  r[4] = c2;
  c2 = 0;
  t1 = ((a[2]) & (0xffffffffL));
  t2 = (((a[2]) >> 32) & (0xffffffffL));
  bl = ((b[3]) & (0xffffffffL));
  bh = (((b[3]) >> 32) & (0xffffffffL));
  {
    unsigned long long m, m1, lt, ht;
    lt = t1;
    ht = t2;
    m = (bh) * (lt);
    lt = (bl) * (lt);
    m1 = (bl) * (ht);
    ht = (bh) * (ht);
    m = (m + m1) & (0xffffffffffffffffLL);
    if (m < m1)
      ht += ((unsigned long long)((1L) & (0xffffffffL)) << 32);
    ht += (((m) >> 32) & (0xffffffffL));
    m1 = ((unsigned long long)((m) & (0xffffffffL)) << 32);
    lt = (lt + m1) & (0xffffffffffffffffLL);
    if (lt < m1)
      ht++;
    (t1) = lt;
    (t2) = ht;
  };
  c3 = (c3 + t1) & (0xffffffffffffffffLL);
  if ((c3) < t1)
    t2++;
  c1 = (c1 + t2) & (0xffffffffffffffffLL);
  if ((c1) < t2)
    c2++;
  ;
  t1 = ((a[3]) & (0xffffffffL));
  t2 = (((a[3]) >> 32) & (0xffffffffL));
  bl = ((b[2]) & (0xffffffffL));
  bh = (((b[2]) >> 32) & (0xffffffffL));
  {
    unsigned long long m, m1, lt, ht;
    lt = t1;
    ht = t2;
    m = (bh) * (lt);
    lt = (bl) * (lt);
    m1 = (bl) * (ht);
    ht = (bh) * (ht);
    m = (m + m1) & (0xffffffffffffffffLL);
    if (m < m1)
      ht += ((unsigned long long)((1L) & (0xffffffffL)) << 32);
    ht += (((m) >> 32) & (0xffffffffL));
    m1 = ((unsigned long long)((m) & (0xffffffffL)) << 32);
    lt = (lt + m1) & (0xffffffffffffffffLL);
    if (lt < m1)
      ht++;
    (t1) = lt;
    (t2) = ht;
  };
  c3 = (c3 + t1) & (0xffffffffffffffffLL);
  if ((c3) < t1)
    t2++;
  c1 = (c1 + t2) & (0xffffffffffffffffLL);
  if ((c1) < t2)
    c2++;
  ;
  r[5] = c3;
  c3 = 0;
  t1 = ((a[3]) & (0xffffffffL));
  t2 = (((a[3]) >> 32) & (0xffffffffL));
  bl = ((b[3]) & (0xffffffffL));
  bh = (((b[3]) >> 32) & (0xffffffffL));
  {
    unsigned long long m, m1, lt, ht;
    lt = t1;
    ht = t2;
    m = (bh) * (lt);
    lt = (bl) * (lt);
    m1 = (bl) * (ht);
    ht = (bh) * (ht);
    m = (m + m1) & (0xffffffffffffffffLL);
    if (m < m1)
      ht += ((unsigned long long)((1L) & (0xffffffffL)) << 32);
    ht += (((m) >> 32) & (0xffffffffL));
    m1 = ((unsigned long long)((m) & (0xffffffffL)) << 32);
    lt = (lt + m1) & (0xffffffffffffffffLL);
    if (lt < m1)
      ht++;
    (t1) = lt;
    (t2) = ht;
  };
  c1 = (c1 + t1) & (0xffffffffffffffffLL);
  if ((c1) < t1)
    t2++;
  c2 = (c2 + t2) & (0xffffffffffffffffLL);
  if ((c2) < t2)
    c3++;
  ;
  r[6] = c1;
  r[7] = c2;
}


x86 assembly (clang, -O0):
<bn_mul_comba4>:
push   %rbp
mov    %rsp,%rbp
sub    $0x1d0,%rsp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
movq   $0x0,-0x40(%rbp)
movq   $0x0,-0x48(%rbp)
movq   $0x0,-0x50(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    (%rcx),%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x18(%rbp),%rcx
movabs $0xffffffff,%rax
and    (%rcx),%rax
mov    %rax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
mov    (%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x30(%rbp),%rax
mov    %rax,-0x68(%rbp)
mov    -0x38(%rbp),%rax
mov    %rax,-0x70(%rbp)
mov    -0x28(%rbp),%rax
imul   -0x68(%rbp),%rax
mov    %rax,-0x58(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x68(%rbp),%rax
mov    %rax,-0x68(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x70(%rbp),%rax
mov    %rax,-0x60(%rbp)
mov    -0x28(%rbp),%rax
imul   -0x70(%rbp),%rax
mov    %rax,-0x70(%rbp)
mov    -0x58(%rbp),%rax
add    -0x60(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x58(%rbp)
mov    -0x58(%rbp),%rax
cmp    -0x60(%rbp),%rax
jae    1205 <bn_mul_comba4+0x105>
movabs $0x100000000,%rax
add    -0x70(%rbp),%rax
mov    %rax,-0x70(%rbp)
mov    -0x58(%rbp),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
add    -0x70(%rbp),%rax
mov    %rax,-0x70(%rbp)
movabs $0xffffffff,%rax
and    -0x58(%rbp),%rax
shl    $0x20,%rax
mov    %rax,-0x60(%rbp)
mov    -0x68(%rbp),%rax
add    -0x60(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x68(%rbp)
mov    -0x68(%rbp),%rax
cmp    -0x60(%rbp),%rax
jae    1262 <bn_mul_comba4+0x162>
mov    -0x70(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x70(%rbp)
mov    -0x68(%rbp),%rax
mov    %rax,-0x30(%rbp)
mov    -0x70(%rbp),%rax
mov    %rax,-0x38(%rbp)
mov    -0x40(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    129c <bn_mul_comba4+0x19c>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x48(%rbp),%rax
add    -0x38(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x38(%rbp),%rax
jae    12c6 <bn_mul_comba4+0x1c6>
mov    -0x50(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x50(%rbp)
mov    -0x40(%rbp),%rcx
mov    -0x8(%rbp),%rax
mov    %rcx,(%rax)
movq   $0x0,-0x40(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    (%rcx),%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x18(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x8(%rcx),%rax
mov    %rax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
mov    0x8(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x30(%rbp),%rax
mov    %rax,-0x88(%rbp)
mov    -0x38(%rbp),%rax
mov    %rax,-0x90(%rbp)
mov    -0x28(%rbp),%rax
imul   -0x88(%rbp),%rax
ff
mov    %rax,-0x78(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x88(%rbp),%rax
ff
mov    %rax,-0x88(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x90(%rbp),%rax
ff
mov    %rax,-0x80(%rbp)
mov    -0x28(%rbp),%rax
imul   -0x90(%rbp),%rax
ff
mov    %rax,-0x90(%rbp)
mov    -0x78(%rbp),%rax
add    -0x80(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x78(%rbp)
mov    -0x78(%rbp),%rax
cmp    -0x80(%rbp),%rax
jae    13cf <bn_mul_comba4+0x2cf>
movabs $0x100000000,%rax
add    -0x90(%rbp),%rax
mov    %rax,-0x90(%rbp)
mov    -0x78(%rbp),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
add    -0x90(%rbp),%rax
mov    %rax,-0x90(%rbp)
movabs $0xffffffff,%rax
and    -0x78(%rbp),%rax
shl    $0x20,%rax
mov    %rax,-0x80(%rbp)
mov    -0x88(%rbp),%rax
add    -0x80(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x88(%rbp)
mov    -0x88(%rbp),%rax
cmp    -0x80(%rbp),%rax
jae    1441 <bn_mul_comba4+0x341>
mov    -0x90(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x90(%rbp)
mov    -0x88(%rbp),%rax
mov    %rax,-0x30(%rbp)
mov    -0x90(%rbp),%rax
mov    %rax,-0x38(%rbp)
mov    -0x48(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    1481 <bn_mul_comba4+0x381>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x50(%rbp),%rax
add    -0x38(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x50(%rbp)
mov    -0x50(%rbp),%rax
cmp    -0x38(%rbp),%rax
jae    14ab <bn_mul_comba4+0x3ab>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x8(%rcx),%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x18(%rbp),%rcx
movabs $0xffffffff,%rax
and    (%rcx),%rax
mov    %rax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
mov    (%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x30(%rbp),%rax
mov    %rax,-0xa8(%rbp)
mov    -0x38(%rbp),%rax
mov    %rax,-0xb0(%rbp)
mov    -0x28(%rbp),%rax
imul   -0xa8(%rbp),%rax
ff
mov    %rax,-0x98(%rbp)
mov    -0x20(%rbp),%rax
imul   -0xa8(%rbp),%rax
ff
mov    %rax,-0xa8(%rbp)
mov    -0x20(%rbp),%rax
imul   -0xb0(%rbp),%rax
ff
mov    %rax,-0xa0(%rbp)
mov    -0x28(%rbp),%rax
imul   -0xb0(%rbp),%rax
ff
mov    %rax,-0xb0(%rbp)
mov    -0x98(%rbp),%rax
add    -0xa0(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x98(%rbp)
mov    -0x98(%rbp),%rax
cmp    -0xa0(%rbp),%rax
jae    15b6 <bn_mul_comba4+0x4b6>
movabs $0x100000000,%rax
add    -0xb0(%rbp),%rax
mov    %rax,-0xb0(%rbp)
mov    -0x98(%rbp),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
add    -0xb0(%rbp),%rax
mov    %rax,-0xb0(%rbp)
movabs $0xffffffff,%rax
and    -0x98(%rbp),%rax
shl    $0x20,%rax
mov    %rax,-0xa0(%rbp)
mov    -0xa8(%rbp),%rax
add    -0xa0(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0xa8(%rbp)
mov    -0xa8(%rbp),%rax
cmp    -0xa0(%rbp),%rax
jae    1637 <bn_mul_comba4+0x537>
mov    -0xb0(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0xb0(%rbp)
mov    -0xa8(%rbp),%rax
mov    %rax,-0x30(%rbp)
mov    -0xb0(%rbp),%rax
mov    %rax,-0x38(%rbp)
mov    -0x48(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    1677 <bn_mul_comba4+0x577>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x50(%rbp),%rax
add    -0x38(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x50(%rbp)
mov    -0x50(%rbp),%rax
cmp    -0x38(%rbp),%rax
jae    16a1 <bn_mul_comba4+0x5a1>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x48(%rbp),%rcx
mov    -0x8(%rbp),%rax
mov    %rcx,0x8(%rax)
movq   $0x0,-0x48(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x10(%rcx),%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x18(%rbp),%rcx
movabs $0xffffffff,%rax
and    (%rcx),%rax
mov    %rax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
mov    (%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x30(%rbp),%rax
mov    %rax,-0xc8(%rbp)
mov    -0x38(%rbp),%rax
mov    %rax,-0xd0(%rbp)
mov    -0x28(%rbp),%rax
imul   -0xc8(%rbp),%rax
ff
mov    %rax,-0xb8(%rbp)
mov    -0x20(%rbp),%rax
imul   -0xc8(%rbp),%rax
ff
mov    %rax,-0xc8(%rbp)
mov    -0x20(%rbp),%rax
imul   -0xd0(%rbp),%rax
ff
mov    %rax,-0xc0(%rbp)
mov    -0x28(%rbp),%rax
imul   -0xd0(%rbp),%rax
ff
mov    %rax,-0xd0(%rbp)
mov    -0xb8(%rbp),%rax
add    -0xc0(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0xb8(%rbp)
mov    -0xb8(%rbp),%rax
cmp    -0xc0(%rbp),%rax
jae    17c0 <bn_mul_comba4+0x6c0>
movabs $0x100000000,%rax
add    -0xd0(%rbp),%rax
mov    %rax,-0xd0(%rbp)
mov    -0xb8(%rbp),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
add    -0xd0(%rbp),%rax
mov    %rax,-0xd0(%rbp)
movabs $0xffffffff,%rax
and    -0xb8(%rbp),%rax
shl    $0x20,%rax
mov    %rax,-0xc0(%rbp)
mov    -0xc8(%rbp),%rax
add    -0xc0(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0xc8(%rbp)
mov    -0xc8(%rbp),%rax
cmp    -0xc0(%rbp),%rax
jae    1841 <bn_mul_comba4+0x741>
mov    -0xd0(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0xd0(%rbp)
mov    -0xc8(%rbp),%rax
mov    %rax,-0x30(%rbp)
mov    -0xd0(%rbp),%rax
mov    %rax,-0x38(%rbp)
mov    -0x50(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x50(%rbp)
mov    -0x50(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    1881 <bn_mul_comba4+0x781>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x40(%rbp),%rax
add    -0x38(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
cmp    -0x38(%rbp),%rax
jae    18ab <bn_mul_comba4+0x7ab>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x8(%rcx),%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x18(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x8(%rcx),%rax
mov    %rax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
mov    0x8(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x30(%rbp),%rax
mov    %rax,-0xe8(%rbp)
mov    -0x38(%rbp),%rax
mov    %rax,-0xf0(%rbp)
mov    -0x28(%rbp),%rax
imul   -0xe8(%rbp),%rax
ff
mov    %rax,-0xd8(%rbp)
mov    -0x20(%rbp),%rax
imul   -0xe8(%rbp),%rax
ff
mov    %rax,-0xe8(%rbp)
mov    -0x20(%rbp),%rax
imul   -0xf0(%rbp),%rax
ff
mov    %rax,-0xe0(%rbp)
mov    -0x28(%rbp),%rax
imul   -0xf0(%rbp),%rax
ff
mov    %rax,-0xf0(%rbp)
mov    -0xd8(%rbp),%rax
add    -0xe0(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0xd8(%rbp)
mov    -0xd8(%rbp),%rax
cmp    -0xe0(%rbp),%rax
jae    19b8 <bn_mul_comba4+0x8b8>
movabs $0x100000000,%rax
add    -0xf0(%rbp),%rax
mov    %rax,-0xf0(%rbp)
mov    -0xd8(%rbp),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
add    -0xf0(%rbp),%rax
mov    %rax,-0xf0(%rbp)
movabs $0xffffffff,%rax
and    -0xd8(%rbp),%rax
shl    $0x20,%rax
mov    %rax,-0xe0(%rbp)
mov    -0xe8(%rbp),%rax
add    -0xe0(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0xe8(%rbp)
mov    -0xe8(%rbp),%rax
cmp    -0xe0(%rbp),%rax
jae    1a39 <bn_mul_comba4+0x939>
mov    -0xf0(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0xf0(%rbp)
mov    -0xe8(%rbp),%rax
mov    %rax,-0x30(%rbp)
mov    -0xf0(%rbp),%rax
mov    %rax,-0x38(%rbp)
mov    -0x50(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x50(%rbp)
mov    -0x50(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    1a79 <bn_mul_comba4+0x979>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x40(%rbp),%rax
add    -0x38(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
cmp    -0x38(%rbp),%rax
jae    1aa3 <bn_mul_comba4+0x9a3>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    (%rcx),%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x18(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x10(%rcx),%rax
mov    %rax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
mov    0x10(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x30(%rbp),%rax
mov    %rax,-0x108(%rbp)
mov    -0x38(%rbp),%rax
mov    %rax,-0x110(%rbp)
mov    -0x28(%rbp),%rax
imul   -0x108(%rbp),%rax
ff
mov    %rax,-0xf8(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x108(%rbp),%rax
ff
mov    %rax,-0x108(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x110(%rbp),%rax
ff
mov    %rax,-0x100(%rbp)
mov    -0x28(%rbp),%rax
imul   -0x110(%rbp),%rax
ff
mov    %rax,-0x110(%rbp)
mov    -0xf8(%rbp),%rax
add    -0x100(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0xf8(%rbp)
mov    -0xf8(%rbp),%rax
cmp    -0x100(%rbp),%rax
jae    1bae <bn_mul_comba4+0xaae>
movabs $0x100000000,%rax
add    -0x110(%rbp),%rax
mov    %rax,-0x110(%rbp)
mov    -0xf8(%rbp),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
add    -0x110(%rbp),%rax
mov    %rax,-0x110(%rbp)
movabs $0xffffffff,%rax
and    -0xf8(%rbp),%rax
shl    $0x20,%rax
mov    %rax,-0x100(%rbp)
mov    -0x108(%rbp),%rax
add    -0x100(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x108(%rbp)
mov    -0x108(%rbp),%rax
cmp    -0x100(%rbp),%rax
jae    1c2f <bn_mul_comba4+0xb2f>
mov    -0x110(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x110(%rbp)
mov    -0x108(%rbp),%rax
mov    %rax,-0x30(%rbp)
mov    -0x110(%rbp),%rax
mov    %rax,-0x38(%rbp)
mov    -0x50(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x50(%rbp)
mov    -0x50(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    1c6f <bn_mul_comba4+0xb6f>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x40(%rbp),%rax
add    -0x38(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
cmp    -0x38(%rbp),%rax
jae    1c99 <bn_mul_comba4+0xb99>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x50(%rbp),%rcx
mov    -0x8(%rbp),%rax
mov    %rcx,0x10(%rax)
movq   $0x0,-0x50(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    (%rcx),%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x18(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x18(%rcx),%rax
mov    %rax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
mov    0x18(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x30(%rbp),%rax
mov    %rax,-0x128(%rbp)
mov    -0x38(%rbp),%rax
mov    %rax,-0x130(%rbp)
mov    -0x28(%rbp),%rax
imul   -0x128(%rbp),%rax
ff
mov    %rax,-0x118(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x128(%rbp),%rax
ff
mov    %rax,-0x128(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x130(%rbp),%rax
ff
mov    %rax,-0x120(%rbp)
mov    -0x28(%rbp),%rax
imul   -0x130(%rbp),%rax
ff
mov    %rax,-0x130(%rbp)
mov    -0x118(%rbp),%rax
add    -0x120(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x118(%rbp)
mov    -0x118(%rbp),%rax
cmp    -0x120(%rbp),%rax
jae    1db8 <bn_mul_comba4+0xcb8>
movabs $0x100000000,%rax
add    -0x130(%rbp),%rax
mov    %rax,-0x130(%rbp)
mov    -0x118(%rbp),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
add    -0x130(%rbp),%rax
mov    %rax,-0x130(%rbp)
movabs $0xffffffff,%rax
and    -0x118(%rbp),%rax
shl    $0x20,%rax
mov    %rax,-0x120(%rbp)
mov    -0x128(%rbp),%rax
add    -0x120(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x128(%rbp)
mov    -0x128(%rbp),%rax
cmp    -0x120(%rbp),%rax
jae    1e39 <bn_mul_comba4+0xd39>
mov    -0x130(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x130(%rbp)
mov    -0x128(%rbp),%rax
mov    %rax,-0x30(%rbp)
mov    -0x130(%rbp),%rax
mov    %rax,-0x38(%rbp)
mov    -0x40(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    1e79 <bn_mul_comba4+0xd79>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x48(%rbp),%rax
add    -0x38(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x38(%rbp),%rax
jae    1ea3 <bn_mul_comba4+0xda3>
mov    -0x50(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x50(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x8(%rcx),%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x18(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x10(%rcx),%rax
mov    %rax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
mov    0x10(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x30(%rbp),%rax
mov    %rax,-0x148(%rbp)
mov    -0x38(%rbp),%rax
mov    %rax,-0x150(%rbp)
mov    -0x28(%rbp),%rax
imul   -0x148(%rbp),%rax
ff
mov    %rax,-0x138(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x148(%rbp),%rax
ff
mov    %rax,-0x148(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x150(%rbp),%rax
ff
mov    %rax,-0x140(%rbp)
mov    -0x28(%rbp),%rax
imul   -0x150(%rbp),%rax
ff
mov    %rax,-0x150(%rbp)
mov    -0x138(%rbp),%rax
add    -0x140(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x138(%rbp)
mov    -0x138(%rbp),%rax
cmp    -0x140(%rbp),%rax
jae    1fb0 <bn_mul_comba4+0xeb0>
movabs $0x100000000,%rax
add    -0x150(%rbp),%rax
mov    %rax,-0x150(%rbp)
mov    -0x138(%rbp),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
add    -0x150(%rbp),%rax
mov    %rax,-0x150(%rbp)
movabs $0xffffffff,%rax
and    -0x138(%rbp),%rax
shl    $0x20,%rax
mov    %rax,-0x140(%rbp)
mov    -0x148(%rbp),%rax
add    -0x140(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x148(%rbp)
mov    -0x148(%rbp),%rax
cmp    -0x140(%rbp),%rax
jae    2031 <bn_mul_comba4+0xf31>
mov    -0x150(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x150(%rbp)
mov    -0x148(%rbp),%rax
mov    %rax,-0x30(%rbp)
mov    -0x150(%rbp),%rax
mov    %rax,-0x38(%rbp)
mov    -0x40(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    2071 <bn_mul_comba4+0xf71>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x48(%rbp),%rax
add    -0x38(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x38(%rbp),%rax
jae    209b <bn_mul_comba4+0xf9b>
mov    -0x50(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x50(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x10(%rcx),%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x18(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x8(%rcx),%rax
mov    %rax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
mov    0x8(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x30(%rbp),%rax
mov    %rax,-0x168(%rbp)
mov    -0x38(%rbp),%rax
mov    %rax,-0x170(%rbp)
mov    -0x28(%rbp),%rax
imul   -0x168(%rbp),%rax
ff
mov    %rax,-0x158(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x168(%rbp),%rax
ff
mov    %rax,-0x168(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x170(%rbp),%rax
ff
mov    %rax,-0x160(%rbp)
mov    -0x28(%rbp),%rax
imul   -0x170(%rbp),%rax
ff
mov    %rax,-0x170(%rbp)
mov    -0x158(%rbp),%rax
add    -0x160(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x158(%rbp)
mov    -0x158(%rbp),%rax
cmp    -0x160(%rbp),%rax
jae    21a8 <bn_mul_comba4+0x10a8>
movabs $0x100000000,%rax
add    -0x170(%rbp),%rax
mov    %rax,-0x170(%rbp)
mov    -0x158(%rbp),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
add    -0x170(%rbp),%rax
mov    %rax,-0x170(%rbp)
movabs $0xffffffff,%rax
and    -0x158(%rbp),%rax
shl    $0x20,%rax
mov    %rax,-0x160(%rbp)
mov    -0x168(%rbp),%rax
add    -0x160(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x168(%rbp)
mov    -0x168(%rbp),%rax
cmp    -0x160(%rbp),%rax
jae    2229 <bn_mul_comba4+0x1129>
mov    -0x170(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x170(%rbp)
mov    -0x168(%rbp),%rax
mov    %rax,-0x30(%rbp)
mov    -0x170(%rbp),%rax
mov    %rax,-0x38(%rbp)
mov    -0x40(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    2269 <bn_mul_comba4+0x1169>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x48(%rbp),%rax
add    -0x38(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x38(%rbp),%rax
jae    2293 <bn_mul_comba4+0x1193>
mov    -0x50(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x50(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x18(%rcx),%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
mov    0x18(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x18(%rbp),%rcx
movabs $0xffffffff,%rax
and    (%rcx),%rax
mov    %rax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
mov    (%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x30(%rbp),%rax
mov    %rax,-0x188(%rbp)
mov    -0x38(%rbp),%rax
mov    %rax,-0x190(%rbp)
mov    -0x28(%rbp),%rax
imul   -0x188(%rbp),%rax
ff
mov    %rax,-0x178(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x188(%rbp),%rax
ff
mov    %rax,-0x188(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x190(%rbp),%rax
ff
mov    %rax,-0x180(%rbp)
mov    -0x28(%rbp),%rax
imul   -0x190(%rbp),%rax
ff
mov    %rax,-0x190(%rbp)
mov    -0x178(%rbp),%rax
add    -0x180(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x178(%rbp)
mov    -0x178(%rbp),%rax
cmp    -0x180(%rbp),%rax
jae    239e <bn_mul_comba4+0x129e>
movabs $0x100000000,%rax
add    -0x190(%rbp),%rax
mov    %rax,-0x190(%rbp)
mov    -0x178(%rbp),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
add    -0x190(%rbp),%rax
mov    %rax,-0x190(%rbp)
movabs $0xffffffff,%rax
and    -0x178(%rbp),%rax
shl    $0x20,%rax
mov    %rax,-0x180(%rbp)
mov    -0x188(%rbp),%rax
add    -0x180(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x188(%rbp)
mov    -0x188(%rbp),%rax
cmp    -0x180(%rbp),%rax
jae    241f <bn_mul_comba4+0x131f>
mov    -0x190(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x190(%rbp)
mov    -0x188(%rbp),%rax
mov    %rax,-0x30(%rbp)
mov    -0x190(%rbp),%rax
mov    %rax,-0x38(%rbp)
mov    -0x40(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    245f <bn_mul_comba4+0x135f>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x48(%rbp),%rax
add    -0x38(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x38(%rbp),%rax
jae    2489 <bn_mul_comba4+0x1389>
mov    -0x50(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x50(%rbp)
mov    -0x40(%rbp),%rcx
mov    -0x8(%rbp),%rax
mov    %rcx,0x18(%rax)
movq   $0x0,-0x40(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x18(%rcx),%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
mov    0x18(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x18(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x8(%rcx),%rax
mov    %rax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
mov    0x8(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x30(%rbp),%rax
mov    %rax,-0x1a8(%rbp)
mov    -0x38(%rbp),%rax
mov    %rax,-0x1b0(%rbp)
mov    -0x28(%rbp),%rax
imul   -0x1a8(%rbp),%rax
ff
mov    %rax,-0x198(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x1a8(%rbp),%rax
ff
mov    %rax,-0x1a8(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x1b0(%rbp),%rax
ff
mov    %rax,-0x1a0(%rbp)
mov    -0x28(%rbp),%rax
imul   -0x1b0(%rbp),%rax
ff
mov    %rax,-0x1b0(%rbp)
mov    -0x198(%rbp),%rax
add    -0x1a0(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x198(%rbp)
mov    -0x198(%rbp),%rax
cmp    -0x1a0(%rbp),%rax
jae    25aa <bn_mul_comba4+0x14aa>
movabs $0x100000000,%rax
add    -0x1b0(%rbp),%rax
mov    %rax,-0x1b0(%rbp)
mov    -0x198(%rbp),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
add    -0x1b0(%rbp),%rax
mov    %rax,-0x1b0(%rbp)
movabs $0xffffffff,%rax
and    -0x198(%rbp),%rax
shl    $0x20,%rax
mov    %rax,-0x1a0(%rbp)
mov    -0x1a8(%rbp),%rax
add    -0x1a0(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x1a8(%rbp)
mov    -0x1a8(%rbp),%rax
cmp    -0x1a0(%rbp),%rax
jae    262b <bn_mul_comba4+0x152b>
mov    -0x1b0(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x1b0(%rbp)
mov    -0x1a8(%rbp),%rax
mov    %rax,-0x30(%rbp)
mov    -0x1b0(%rbp),%rax
mov    %rax,-0x38(%rbp)
mov    -0x48(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    266b <bn_mul_comba4+0x156b>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x50(%rbp),%rax
add    -0x38(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x50(%rbp)
mov    -0x50(%rbp),%rax
cmp    -0x38(%rbp),%rax
jae    2695 <bn_mul_comba4+0x1595>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x10(%rcx),%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x18(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x10(%rcx),%rax
mov    %rax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
mov    0x10(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x30(%rbp),%rax
mov    %rax,-0x1c8(%rbp)
mov    -0x38(%rbp),%rax
mov    %rax,-0x1d0(%rbp)
mov    -0x28(%rbp),%rax
imul   -0x1c8(%rbp),%rax
ff
mov    %rax,-0x1b8(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x1c8(%rbp),%rax
ff
mov    %rax,-0x1c8(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x1d0(%rbp),%rax
ff
mov    %rax,-0x1c0(%rbp)
mov    -0x28(%rbp),%rax
imul   -0x1d0(%rbp),%rax
ff
mov    %rax,-0x1d0(%rbp)
mov    -0x1b8(%rbp),%rax
add    -0x1c0(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x1b8(%rbp)
mov    -0x1b8(%rbp),%rax
cmp    -0x1c0(%rbp),%rax
jae    27a2 <bn_mul_comba4+0x16a2>
movabs $0x100000000,%rax
add    -0x1d0(%rbp),%rax
mov    %rax,-0x1d0(%rbp)
mov    -0x1b8(%rbp),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
add    -0x1d0(%rbp),%rax
mov    %rax,-0x1d0(%rbp)
movabs $0xffffffff,%rax
and    -0x1b8(%rbp),%rax
shl    $0x20,%rax
mov    %rax,-0x1c0(%rbp)
mov    -0x1c8(%rbp),%rax
add    -0x1c0(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x1c8(%rbp)
mov    -0x1c8(%rbp),%rax
cmp    -0x1c0(%rbp),%rax
jae    2823 <bn_mul_comba4+0x1723>
mov    -0x1d0(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x1d0(%rbp)
mov    -0x1c8(%rbp),%rax
mov    %rax,-0x30(%rbp)
mov    -0x1d0(%rbp),%rax
mov    %rax,-0x38(%rbp)
mov    -0x48(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    2863 <bn_mul_comba4+0x1763>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x50(%rbp),%rax
add    -0x38(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x50(%rbp)
mov    -0x50(%rbp),%rax
cmp    -0x38(%rbp),%rax
jae    288d <bn_mul_comba4+0x178d>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x8(%rcx),%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x18(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x18(%rcx),%rax
mov    %rax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
mov    0x18(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x30(%rbp),%rax
mov    %rax,-0x1e8(%rbp)
mov    -0x38(%rbp),%rax
mov    %rax,-0x1f0(%rbp)
mov    -0x28(%rbp),%rax
imul   -0x1e8(%rbp),%rax
ff
mov    %rax,-0x1d8(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x1e8(%rbp),%rax
ff
mov    %rax,-0x1e8(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x1f0(%rbp),%rax
ff
mov    %rax,-0x1e0(%rbp)
mov    -0x28(%rbp),%rax
imul   -0x1f0(%rbp),%rax
ff
mov    %rax,-0x1f0(%rbp)
mov    -0x1d8(%rbp),%rax
add    -0x1e0(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x1d8(%rbp)
mov    -0x1d8(%rbp),%rax
cmp    -0x1e0(%rbp),%rax
jae    299a <bn_mul_comba4+0x189a>
movabs $0x100000000,%rax
add    -0x1f0(%rbp),%rax
mov    %rax,-0x1f0(%rbp)
mov    -0x1d8(%rbp),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
add    -0x1f0(%rbp),%rax
mov    %rax,-0x1f0(%rbp)
movabs $0xffffffff,%rax
and    -0x1d8(%rbp),%rax
shl    $0x20,%rax
mov    %rax,-0x1e0(%rbp)
mov    -0x1e8(%rbp),%rax
add    -0x1e0(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x1e8(%rbp)
mov    -0x1e8(%rbp),%rax
cmp    -0x1e0(%rbp),%rax
jae    2a1b <bn_mul_comba4+0x191b>
mov    -0x1f0(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x1f0(%rbp)
mov    -0x1e8(%rbp),%rax
mov    %rax,-0x30(%rbp)
mov    -0x1f0(%rbp),%rax
mov    %rax,-0x38(%rbp)
mov    -0x48(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    2a5b <bn_mul_comba4+0x195b>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x50(%rbp),%rax
add    -0x38(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x50(%rbp)
mov    -0x50(%rbp),%rax
cmp    -0x38(%rbp),%rax
jae    2a85 <bn_mul_comba4+0x1985>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x48(%rbp),%rcx
mov    -0x8(%rbp),%rax
mov    %rcx,0x20(%rax)
movq   $0x0,-0x48(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x10(%rcx),%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x18(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x18(%rcx),%rax
mov    %rax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
mov    0x18(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x30(%rbp),%rax
mov    %rax,-0x208(%rbp)
mov    -0x38(%rbp),%rax
mov    %rax,-0x210(%rbp)
mov    -0x28(%rbp),%rax
imul   -0x208(%rbp),%rax
ff
mov    %rax,-0x1f8(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x208(%rbp),%rax
ff
mov    %rax,-0x208(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x210(%rbp),%rax
ff
mov    %rax,-0x200(%rbp)
mov    -0x28(%rbp),%rax
imul   -0x210(%rbp),%rax
ff
mov    %rax,-0x210(%rbp)
mov    -0x1f8(%rbp),%rax
add    -0x200(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x1f8(%rbp)
mov    -0x1f8(%rbp),%rax
cmp    -0x200(%rbp),%rax
jae    2ba6 <bn_mul_comba4+0x1aa6>
movabs $0x100000000,%rax
add    -0x210(%rbp),%rax
mov    %rax,-0x210(%rbp)
mov    -0x1f8(%rbp),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
add    -0x210(%rbp),%rax
mov    %rax,-0x210(%rbp)
movabs $0xffffffff,%rax
and    -0x1f8(%rbp),%rax
shl    $0x20,%rax
mov    %rax,-0x200(%rbp)
mov    -0x208(%rbp),%rax
add    -0x200(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x208(%rbp)
mov    -0x208(%rbp),%rax
cmp    -0x200(%rbp),%rax
jae    2c27 <bn_mul_comba4+0x1b27>
mov    -0x210(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x210(%rbp)
mov    -0x208(%rbp),%rax
mov    %rax,-0x30(%rbp)
mov    -0x210(%rbp),%rax
mov    %rax,-0x38(%rbp)
mov    -0x50(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x50(%rbp)
mov    -0x50(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    2c67 <bn_mul_comba4+0x1b67>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x40(%rbp),%rax
add    -0x38(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
cmp    -0x38(%rbp),%rax
jae    2c91 <bn_mul_comba4+0x1b91>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x18(%rcx),%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
mov    0x18(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x18(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x10(%rcx),%rax
mov    %rax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
mov    0x10(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x30(%rbp),%rax
mov    %rax,-0x228(%rbp)
mov    -0x38(%rbp),%rax
mov    %rax,-0x230(%rbp)
mov    -0x28(%rbp),%rax
imul   -0x228(%rbp),%rax
ff
mov    %rax,-0x218(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x228(%rbp),%rax
ff
mov    %rax,-0x228(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x230(%rbp),%rax
ff
mov    %rax,-0x220(%rbp)
mov    -0x28(%rbp),%rax
imul   -0x230(%rbp),%rax
ff
mov    %rax,-0x230(%rbp)
mov    -0x218(%rbp),%rax
add    -0x220(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x218(%rbp)
mov    -0x218(%rbp),%rax
cmp    -0x220(%rbp),%rax
jae    2d9e <bn_mul_comba4+0x1c9e>
movabs $0x100000000,%rax
add    -0x230(%rbp),%rax
mov    %rax,-0x230(%rbp)
mov    -0x218(%rbp),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
add    -0x230(%rbp),%rax
mov    %rax,-0x230(%rbp)
movabs $0xffffffff,%rax
and    -0x218(%rbp),%rax
shl    $0x20,%rax
mov    %rax,-0x220(%rbp)
mov    -0x228(%rbp),%rax
add    -0x220(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x228(%rbp)
mov    -0x228(%rbp),%rax
cmp    -0x220(%rbp),%rax
jae    2e1f <bn_mul_comba4+0x1d1f>
mov    -0x230(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x230(%rbp)
mov    -0x228(%rbp),%rax
mov    %rax,-0x30(%rbp)
mov    -0x230(%rbp),%rax
mov    %rax,-0x38(%rbp)
mov    -0x50(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x50(%rbp)
mov    -0x50(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    2e5f <bn_mul_comba4+0x1d5f>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x40(%rbp),%rax
add    -0x38(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
cmp    -0x38(%rbp),%rax
jae    2e89 <bn_mul_comba4+0x1d89>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x50(%rbp),%rcx
mov    -0x8(%rbp),%rax
mov    %rcx,0x28(%rax)
movq   $0x0,-0x50(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x18(%rcx),%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
mov    0x18(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x18(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x18(%rcx),%rax
mov    %rax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
mov    0x18(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x30(%rbp),%rax
mov    %rax,-0x248(%rbp)
mov    -0x38(%rbp),%rax
mov    %rax,-0x250(%rbp)
mov    -0x28(%rbp),%rax
imul   -0x248(%rbp),%rax
ff
mov    %rax,-0x238(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x248(%rbp),%rax
ff
mov    %rax,-0x248(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x250(%rbp),%rax
ff
mov    %rax,-0x240(%rbp)
mov    -0x28(%rbp),%rax
imul   -0x250(%rbp),%rax
ff
mov    %rax,-0x250(%rbp)
mov    -0x238(%rbp),%rax
add    -0x240(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x238(%rbp)
mov    -0x238(%rbp),%rax
cmp    -0x240(%rbp),%rax
jae    2faa <bn_mul_comba4+0x1eaa>
movabs $0x100000000,%rax
add    -0x250(%rbp),%rax
mov    %rax,-0x250(%rbp)
mov    -0x238(%rbp),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
add    -0x250(%rbp),%rax
mov    %rax,-0x250(%rbp)
movabs $0xffffffff,%rax
and    -0x238(%rbp),%rax
shl    $0x20,%rax
mov    %rax,-0x240(%rbp)
mov    -0x248(%rbp),%rax
add    -0x240(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x248(%rbp)
mov    -0x248(%rbp),%rax
cmp    -0x240(%rbp),%rax
jae    302b <bn_mul_comba4+0x1f2b>
mov    -0x250(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x250(%rbp)
mov    -0x248(%rbp),%rax
mov    %rax,-0x30(%rbp)
mov    -0x250(%rbp),%rax
mov    %rax,-0x38(%rbp)
mov    -0x40(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    306b <bn_mul_comba4+0x1f6b>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x48(%rbp),%rax
add    -0x38(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x38(%rbp),%rax
jae    3095 <bn_mul_comba4+0x1f95>
mov    -0x50(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x50(%rbp)
mov    -0x40(%rbp),%rcx
mov    -0x8(%rbp),%rax
mov    %rcx,0x30(%rax)
mov    -0x48(%rbp),%rcx
mov    -0x8(%rbp),%rax
mov    %rcx,0x38(%rax)
add    $0x1d0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<bn_mul_comba4>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
mov    (%rsi),%rax
mov    %eax,%r9d
shr    $0x20,%rax
mov    (%rdx),%rbx
mov    %ebx,%ecx
shr    $0x20,%rbx
mov    %rbx,%r10
imul   %r9,%r10
imul   %rcx,%r9
imul   %rax,%rcx
imul   %rax,%rbx
movabs $0x100000000,%r8
lea    (%rbx,%r8,1),%rax
add    %r10,%rcx
cmovae %rbx,%rax
mov    %rcx,%r11
shr    $0x20,%r11
shl    $0x20,%rcx
add    %r9,%rcx
adc    %rax,%r11
mov    %rcx,(%rdi)
mov    (%rsi),%rbx
mov    0x8(%rsi),%r10
mov    %ebx,%r14d
shr    $0x20,%rbx
mov    (%rdx),%r15
mov    0x8(%rdx),%rax
mov    %eax,%ecx
shr    $0x20,%rax
mov    %rax,%r9
imul   %r14,%r9
imul   %rcx,%r14
imul   %rbx,%rcx
imul   %rbx,%rax
lea    (%rax,%r8,1),%rbx
add    %r9,%rcx
cmovae %rax,%rbx
mov    %rcx,%rax
shr    $0x20,%rax
add    %rbx,%rax
shl    $0x20,%rcx
xor    %r9d,%r9d
add    %r14,%rcx
setb   %r9b
add    %r11,%rcx
adc    %rax,%r9
mov    %r10d,%r11d
shr    $0x20,%r10
mov    %r15d,%ebx
shr    $0x20,%r15
mov    %r15,%r14
imul   %r11,%r14
imul   %rbx,%r11
imul   %r10,%rbx
imul   %r10,%r15
lea    (%r15,%r8,1),%r10
add    %r14,%rbx
cmovae %r15,%r10
mov    %rbx,%rax
shr    $0x20,%rax
add    %r10,%rax
shl    $0x20,%rbx
xor    %r15d,%r15d
add    %r11,%rbx
setb   %r15b
add    %rcx,%rbx
adc    %rax,%r15
lea    (%r9,%r15,1),%r10
mov    %rbx,0x8(%rdi)
mov    0x10(%rsi),%rax
mov    %eax,%r14d
shr    $0x20,%rax
mov    (%rdx),%rbx
mov    %ebx,%r13d
shr    $0x20,%rbx
mov    %rbx,%r11
imul   %r14,%r11
imul   %r13,%r14
imul   %rax,%r13
imul   %rax,%rbx
mov    0x8(%rdx),%r12
add    %r11,%r13
lea    (%rbx,%r8,1),%rax
cmovae %rbx,%rax
mov    %r13,%rbx
shr    $0x20,%rbx
add    %rax,%rbx
shl    $0x20,%r13
xor    %r11d,%r11d
add    %r14,%r13
setb   %r11b
add    %r10,%r13
adc    %rbx,%r11
add    %r9,%r15
adc    $0x0,%r11
setb   %r10b
mov    0x8(%rsi),%rbx
mov    %ebx,%r14d
mov    %r12d,%ecx
mov    $0x1,%r9d
adc    $0x0,%r9
shr    $0x20,%rbx
shr    $0x20,%r12
mov    %r12,%r15
imul   %r14,%r15
imul   %rcx,%r14
imul   %rbx,%rcx
imul   %rbx,%r12
lea    (%r12,%r8,1),%rbx
add    %r15,%rcx
cmovae %r12,%rbx
movzbl %r10b,%r15d
mov    %rcx,%rax
shr    $0x20,%rax
add    %rbx,%rax
shl    $0x20,%rcx
xor    %r10d,%r10d
add    %r14,%rcx
mov    (%rsi),%r14
setb   %r10b
add    %r13,%rcx
adc    %rax,%r10
add    %r11,%r10
cmovae %r15,%r9
mov    %r14d,%r11d
shr    $0x20,%r14
mov    0x10(%rdx),%rax
mov    %eax,%ebx
shr    $0x20,%rax
mov    %rax,%r15
imul   %r11,%r15
imul   %rbx,%r11
imul   %r14,%rbx
imul   %r14,%rax
lea    (%rax,%r8,1),%r14
add    %r15,%rbx
cmovae %rax,%r14
mov    %rbx,%rax
shr    $0x20,%rax
add    %r14,%rax
shl    $0x20,%rbx
xor    %r14d,%r14d
add    %r11,%rbx
setb   %r14b
add    %rcx,%rbx
adc    %rax,%r14
mov    %rbx,0x10(%rdi)
mov    (%rsi),%rcx
mov    %ecx,%r15d
shr    $0x20,%rcx
mov    0x18(%rdx),%rbx
mov    %ebx,%r13d
shr    $0x20,%rbx
mov    %rbx,%r11
imul   %r15,%r11
imul   %r13,%r15
imul   %rcx,%r13
imul   %rcx,%rbx
lea    (%rbx,%r8,1),%rcx
add    %r11,%r13
cmovae %rbx,%rcx
lea    (%r10,%r14,1),%r12
mov    %r13,%rax
shr    $0x20,%rax
add    %rcx,%rax
shl    $0x20,%r13
xor    %r11d,%r11d
add    %r15,%r13
mov    0x8(%rsi),%rbp
setb   %r11b
add    %r12,%r13
adc    %rax,%r11
add    %r10,%r14
adc    %r9,%r11
setb   %r10b
mov    %ebp,%r15d
mov    0x10(%rdx),%rax
mov    $0x1,%r9d
adc    $0x0,%r9
mov    %eax,%ecx
shr    $0x20,%rbp
shr    $0x20,%rax
mov    %rax,%rbx
imul   %r15,%rbx
imul   %rcx,%r15
imul   %rbp,%rcx
imul   %rbp,%rax
lea    (%rax,%r8,1),%rbp
add    %rbx,%rcx
cmovae %rax,%rbp
mov    %rcx,%rax
shr    $0x20,%rax
add    %rbp,%rax
shl    $0x20,%rcx
xor    %r14d,%r14d
add    %r15,%rcx
setb   %r14b
add    %r13,%rcx
adc    %rax,%r14
movzbl %r10b,%eax
add    %r11,%r14
cmovae %rax,%r9
mov    0x10(%rsi),%rbp
mov    %ebp,%r11d
shr    $0x20,%rbp
mov    0x8(%rdx),%rbx
mov    %ebx,%eax
shr    $0x20,%rbx
mov    %rbx,%r10
imul   %r11,%r10
imul   %rax,%r11
imul   %rbp,%rax
imul   %rbp,%rbx
mov    (%rdx),%r15
add    %r10,%rax
lea    (%rbx,%r8,1),%rbp
cmovae %rbx,%rbp
mov    %rax,%rbx
shr    $0x20,%rbx
add    %rbp,%rbx
shl    $0x20,%rax
xor    %r10d,%r10d
add    %r11,%rax
setb   %r10b
add    %rcx,%rax
adc    %rbx,%r10
add    %r14,%r10
adc    $0x0,%r9
mov    0x18(%rsi),%rbp
mov    %ebp,%r11d
shr    $0x20,%rbp
mov    %r15d,%ecx
shr    $0x20,%r15
mov    %r15,%rbx
imul   %r11,%rbx
imul   %rcx,%r11
imul   %rbp,%rcx
imul   %rbp,%r15
lea    (%r15,%r8,1),%rbp
add    %rbx,%rcx
cmovae %r15,%rbp
mov    %rcx,%rbx
shr    $0x20,%rbx
add    %rbp,%rbx
shl    $0x20,%rcx
xor    %r14d,%r14d
add    %r11,%rcx
setb   %r14b
add    %rax,%rcx
adc    %rbx,%r14
mov    %rcx,0x18(%rdi)
mov    0x18(%rsi),%rbp
mov    %ebp,%r15d
shr    $0x20,%rbp
mov    0x8(%rdx),%rbx
mov    %ebx,%r12d
shr    $0x20,%rbx
mov    %rbx,%rax
imul   %r15,%rax
imul   %r12,%r15
imul   %rbp,%r12
imul   %rbp,%rbx
lea    (%r14,%r10,1),%rbp
add    %rax,%r12
lea    (%rbx,%r8,1),%rax
cmovae %rbx,%rax
mov    %r12,%rcx
shr    $0x20,%rcx
add    %rax,%rcx
shl    $0x20,%r12
xor    %r11d,%r11d
add    %r15,%r12
mov    0x10(%rdx),%rbx
setb   %r11b
add    %rbp,%r12
adc    %rcx,%r11
add    %r10,%r14
adc    %r9,%r11
setb   %r10b
mov    0x10(%rsi),%rbp
mov    %ebp,%r14d
mov    %ebx,%eax
mov    $0x1,%r9d
adc    $0x0,%r9
shr    $0x20,%rbp
shr    $0x20,%rbx
mov    %rbx,%rcx
imul   %r14,%rcx
imul   %rax,%r14
imul   %rbp,%rax
imul   %rbp,%rbx
lea    (%rbx,%r8,1),%rbp
add    %rcx,%rax
cmovae %rbx,%rbp
movzbl %r10b,%ecx
mov    %rax,%rbx
shr    $0x20,%rbx
add    %rbp,%rbx
shl    $0x20,%rax
xor    %r10d,%r10d
add    %r14,%rax
mov    0x8(%rsi),%r14
setb   %r10b
add    %r12,%rax
adc    %rbx,%r10
add    %r11,%r10
cmovae %rcx,%r9
mov    %r14d,%r11d
shr    $0x20,%r14
mov    0x18(%rdx),%rbx
mov    %ebx,%ecx
shr    $0x20,%rbx
mov    %rbx,%r15
imul   %r11,%r15
imul   %rcx,%r11
imul   %r14,%rcx
imul   %r14,%rbx
lea    (%rbx,%r8,1),%rbp
add    %r15,%rcx
cmovae %rbx,%rbp
mov    %rcx,%rbx
shr    $0x20,%rbx
add    %rbp,%rbx
shl    $0x20,%rcx
xor    %r15d,%r15d
add    %r11,%rcx
setb   %r15b
add    %rax,%rcx
adc    %rbx,%r15
mov    %rcx,0x20(%rdi)
mov    0x10(%rsi),%rbp
mov    %ebp,%r12d
shr    $0x20,%rbp
mov    0x18(%rdx),%rbx
mov    %ebx,%eax
shr    $0x20,%rbx
mov    %rbx,%rcx
imul   %r12,%rcx
imul   %rax,%r12
imul   %rbp,%rax
imul   %rbp,%rbx
mov    $0x1,%r11d
add    %rcx,%rax
lea    (%rbx,%r8,1),%rcx
cmovae %rbx,%rcx
mov    %rax,%rbx
shr    $0x20,%rbx
add    %rcx,%rbx
shl    $0x20,%rax
xor    %r14d,%r14d
add    %r12,%rax
lea    (%r10,%r15,1),%rcx
setb   %r14b
add    %rcx,%rax
mov    0x18(%rsi),%r12
adc    %rbx,%r14
mov    0x10(%rdx),%rbx
add    %r10,%r15
adc    %r9,%r14
setb   %r9b
mov    %r12d,%r10d
mov    %ebx,%ecx
adc    $0x0,%r11
shr    $0x20,%r12
shr    $0x20,%rbx
mov    %rbx,%rbp
imul   %r10,%rbp
imul   %rcx,%r10
imul   %r12,%rcx
imul   %r12,%rbx
add    %rbp,%rcx
lea    (%rbx,%r8,1),%rbp
cmovae %rbx,%rbp
mov    %rcx,%rbx
shr    $0x20,%rbx
add    %rbp,%rbx
shl    $0x20,%rcx
xor    %ebp,%ebp
add    %r10,%rcx
setb   %bpl
add    %rax,%rcx
adc    %rbx,%rbp
movzbl %r9b,%eax
add    %r14,%rbp
cmovae %rax,%r11
mov    %rcx,0x28(%rdi)
mov    0x18(%rsi),%rax
mov    %eax,%ecx
shr    $0x20,%rax
mov    0x18(%rdx),%rdx
mov    %edx,%esi
shr    $0x20,%rdx
mov    %rdx,%rbx
imul   %rcx,%rbx
imul   %rsi,%rcx
imul   %rax,%rsi
imul   %rax,%rdx
add    %rdx,%r8
add    %rbx,%rsi
cmovae %rdx,%r8
mov    %rsi,%rax
shr    $0x20,%rax
shl    $0x20,%rsi
add    %rcx,%rsi
adc    %r8,%rax
add    %rbp,%rsi
adc    %r11,%rax
mov    %rsi,0x30(%rdi)
mov    %rax,0x38(%rdi)
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

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

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