void bn_sqr_comba8(unsigned long long *r, unsigned long long *a) {
  unsigned long long bl, bh;
  unsigned long long t1, t2;
  unsigned long long c1, c2, c3;
  c1 = 0;
  c2 = 0;
  c3 = 0;
  {
    unsigned long long l, h, m;
    h = ((a)[0]);
    l = ((h) & (0xffffffffL));
    h = (((h) >> 32) & (0xffffffffL));
    m = (l) * (h);
    l *= l;
    h *= h;
    h += (m & (0xffffffff80000000LL)) >> (32 - 1);
    m = (m & (0xffffffffL)) << (32 + 1);
    l = (l + m) & (0xffffffffffffffffLL);
    if (l < m)
      h++;
    (t1) = l;
    (t2) = h;
  };
  c1 = (c1 + t1) & (0xffffffffffffffffLL);
  if ((c1) < t1)
    t2++;
  c2 = (c2 + t2) & (0xffffffffffffffffLL);
  if ((c2) < t2)
    c3++;
  ;
  r[0] = c1;
  c1 = 0;
  t1 = (((a)[1]) & (0xffffffffL));
  t2 = ((((a)[1]) >> 32) & (0xffffffffL));
  bl = (((a)[0]) & (0xffffffffL));
  bh = ((((a)[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;
  };
  if (t2 & (0x8000000000000000LL))
    c1++;
  t2 = (t2 + t2) & (0xffffffffffffffffLL);
  if (t1 & (0x8000000000000000LL))
    t2++;
  t1 = (t1 + t1) & (0xffffffffffffffffLL);
  c2 = (c2 + t1) & (0xffffffffffffffffLL);
  if ((c2 < t1) && (((++t2) & (0xffffffffffffffffLL)) == 0))
    c1++;
  c3 = (c3 + t2) & (0xffffffffffffffffLL);
  if ((c3) < t2)
    c1++;
  ;
  r[1] = c2;
  c2 = 0;
  {
    unsigned long long l, h, m;
    h = ((a)[1]);
    l = ((h) & (0xffffffffL));
    h = (((h) >> 32) & (0xffffffffL));
    m = (l) * (h);
    l *= l;
    h *= h;
    h += (m & (0xffffffff80000000LL)) >> (32 - 1);
    m = (m & (0xffffffffL)) << (32 + 1);
    l = (l + m) & (0xffffffffffffffffLL);
    if (l < m)
      h++;
    (t1) = l;
    (t2) = h;
  };
  c3 = (c3 + t1) & (0xffffffffffffffffLL);
  if ((c3) < t1)
    t2++;
  c1 = (c1 + t2) & (0xffffffffffffffffLL);
  if ((c1) < t2)
    c2++;
  ;
  t1 = (((a)[2]) & (0xffffffffL));
  t2 = ((((a)[2]) >> 32) & (0xffffffffL));
  bl = (((a)[0]) & (0xffffffffL));
  bh = ((((a)[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;
  };
  if (t2 & (0x8000000000000000LL))
    c2++;
  t2 = (t2 + t2) & (0xffffffffffffffffLL);
  if (t1 & (0x8000000000000000LL))
    t2++;
  t1 = (t1 + t1) & (0xffffffffffffffffLL);
  c3 = (c3 + t1) & (0xffffffffffffffffLL);
  if ((c3 < t1) && (((++t2) & (0xffffffffffffffffLL)) == 0))
    c2++;
  c1 = (c1 + t2) & (0xffffffffffffffffLL);
  if ((c1) < t2)
    c2++;
  ;
  r[2] = c3;
  c3 = 0;
  t1 = (((a)[3]) & (0xffffffffL));
  t2 = ((((a)[3]) >> 32) & (0xffffffffL));
  bl = (((a)[0]) & (0xffffffffL));
  bh = ((((a)[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;
  };
  if (t2 & (0x8000000000000000LL))
    c3++;
  t2 = (t2 + t2) & (0xffffffffffffffffLL);
  if (t1 & (0x8000000000000000LL))
    t2++;
  t1 = (t1 + t1) & (0xffffffffffffffffLL);
  c1 = (c1 + t1) & (0xffffffffffffffffLL);
  if ((c1 < t1) && (((++t2) & (0xffffffffffffffffLL)) == 0))
    c3++;
  c2 = (c2 + t2) & (0xffffffffffffffffLL);
  if ((c2) < t2)
    c3++;
  ;
  t1 = (((a)[2]) & (0xffffffffL));
  t2 = ((((a)[2]) >> 32) & (0xffffffffL));
  bl = (((a)[1]) & (0xffffffffL));
  bh = ((((a)[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;
  };
  if (t2 & (0x8000000000000000LL))
    c3++;
  t2 = (t2 + t2) & (0xffffffffffffffffLL);
  if (t1 & (0x8000000000000000LL))
    t2++;
  t1 = (t1 + t1) & (0xffffffffffffffffLL);
  c1 = (c1 + t1) & (0xffffffffffffffffLL);
  if ((c1 < t1) && (((++t2) & (0xffffffffffffffffLL)) == 0))
    c3++;
  c2 = (c2 + t2) & (0xffffffffffffffffLL);
  if ((c2) < t2)
    c3++;
  ;
  r[3] = c1;
  c1 = 0;
  {
    unsigned long long l, h, m;
    h = ((a)[2]);
    l = ((h) & (0xffffffffL));
    h = (((h) >> 32) & (0xffffffffL));
    m = (l) * (h);
    l *= l;
    h *= h;
    h += (m & (0xffffffff80000000LL)) >> (32 - 1);
    m = (m & (0xffffffffL)) << (32 + 1);
    l = (l + m) & (0xffffffffffffffffLL);
    if (l < m)
      h++;
    (t1) = l;
    (t2) = h;
  };
  c2 = (c2 + t1) & (0xffffffffffffffffLL);
  if ((c2) < t1)
    t2++;
  c3 = (c3 + t2) & (0xffffffffffffffffLL);
  if ((c3) < t2)
    c1++;
  ;
  t1 = (((a)[3]) & (0xffffffffL));
  t2 = ((((a)[3]) >> 32) & (0xffffffffL));
  bl = (((a)[1]) & (0xffffffffL));
  bh = ((((a)[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;
  };
  if (t2 & (0x8000000000000000LL))
    c1++;
  t2 = (t2 + t2) & (0xffffffffffffffffLL);
  if (t1 & (0x8000000000000000LL))
    t2++;
  t1 = (t1 + t1) & (0xffffffffffffffffLL);
  c2 = (c2 + t1) & (0xffffffffffffffffLL);
  if ((c2 < t1) && (((++t2) & (0xffffffffffffffffLL)) == 0))
    c1++;
  c3 = (c3 + t2) & (0xffffffffffffffffLL);
  if ((c3) < t2)
    c1++;
  ;
  t1 = (((a)[4]) & (0xffffffffL));
  t2 = ((((a)[4]) >> 32) & (0xffffffffL));
  bl = (((a)[0]) & (0xffffffffL));
  bh = ((((a)[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;
  };
  if (t2 & (0x8000000000000000LL))
    c1++;
  t2 = (t2 + t2) & (0xffffffffffffffffLL);
  if (t1 & (0x8000000000000000LL))
    t2++;
  t1 = (t1 + t1) & (0xffffffffffffffffLL);
  c2 = (c2 + t1) & (0xffffffffffffffffLL);
  if ((c2 < t1) && (((++t2) & (0xffffffffffffffffLL)) == 0))
    c1++;
  c3 = (c3 + t2) & (0xffffffffffffffffLL);
  if ((c3) < t2)
    c1++;
  ;
  r[4] = c2;
  c2 = 0;
  t1 = (((a)[5]) & (0xffffffffL));
  t2 = ((((a)[5]) >> 32) & (0xffffffffL));
  bl = (((a)[0]) & (0xffffffffL));
  bh = ((((a)[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;
  };
  if (t2 & (0x8000000000000000LL))
    c2++;
  t2 = (t2 + t2) & (0xffffffffffffffffLL);
  if (t1 & (0x8000000000000000LL))
    t2++;
  t1 = (t1 + t1) & (0xffffffffffffffffLL);
  c3 = (c3 + t1) & (0xffffffffffffffffLL);
  if ((c3 < t1) && (((++t2) & (0xffffffffffffffffLL)) == 0))
    c2++;
  c1 = (c1 + t2) & (0xffffffffffffffffLL);
  if ((c1) < t2)
    c2++;
  ;
  t1 = (((a)[4]) & (0xffffffffL));
  t2 = ((((a)[4]) >> 32) & (0xffffffffL));
  bl = (((a)[1]) & (0xffffffffL));
  bh = ((((a)[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;
  };
  if (t2 & (0x8000000000000000LL))
    c2++;
  t2 = (t2 + t2) & (0xffffffffffffffffLL);
  if (t1 & (0x8000000000000000LL))
    t2++;
  t1 = (t1 + t1) & (0xffffffffffffffffLL);
  c3 = (c3 + t1) & (0xffffffffffffffffLL);
  if ((c3 < t1) && (((++t2) & (0xffffffffffffffffLL)) == 0))
    c2++;
  c1 = (c1 + t2) & (0xffffffffffffffffLL);
  if ((c1) < t2)
    c2++;
  ;
  t1 = (((a)[3]) & (0xffffffffL));
  t2 = ((((a)[3]) >> 32) & (0xffffffffL));
  bl = (((a)[2]) & (0xffffffffL));
  bh = ((((a)[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;
  };
  if (t2 & (0x8000000000000000LL))
    c2++;
  t2 = (t2 + t2) & (0xffffffffffffffffLL);
  if (t1 & (0x8000000000000000LL))
    t2++;
  t1 = (t1 + t1) & (0xffffffffffffffffLL);
  c3 = (c3 + t1) & (0xffffffffffffffffLL);
  if ((c3 < t1) && (((++t2) & (0xffffffffffffffffLL)) == 0))
    c2++;
  c1 = (c1 + t2) & (0xffffffffffffffffLL);
  if ((c1) < t2)
    c2++;
  ;
  r[5] = c3;
  c3 = 0;
  {
    unsigned long long l, h, m;
    h = ((a)[3]);
    l = ((h) & (0xffffffffL));
    h = (((h) >> 32) & (0xffffffffL));
    m = (l) * (h);
    l *= l;
    h *= h;
    h += (m & (0xffffffff80000000LL)) >> (32 - 1);
    m = (m & (0xffffffffL)) << (32 + 1);
    l = (l + m) & (0xffffffffffffffffLL);
    if (l < m)
      h++;
    (t1) = l;
    (t2) = h;
  };
  c1 = (c1 + t1) & (0xffffffffffffffffLL);
  if ((c1) < t1)
    t2++;
  c2 = (c2 + t2) & (0xffffffffffffffffLL);
  if ((c2) < t2)
    c3++;
  ;
  t1 = (((a)[4]) & (0xffffffffL));
  t2 = ((((a)[4]) >> 32) & (0xffffffffL));
  bl = (((a)[2]) & (0xffffffffL));
  bh = ((((a)[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;
  };
  if (t2 & (0x8000000000000000LL))
    c3++;
  t2 = (t2 + t2) & (0xffffffffffffffffLL);
  if (t1 & (0x8000000000000000LL))
    t2++;
  t1 = (t1 + t1) & (0xffffffffffffffffLL);
  c1 = (c1 + t1) & (0xffffffffffffffffLL);
  if ((c1 < t1) && (((++t2) & (0xffffffffffffffffLL)) == 0))
    c3++;
  c2 = (c2 + t2) & (0xffffffffffffffffLL);
  if ((c2) < t2)
    c3++;
  ;
  t1 = (((a)[5]) & (0xffffffffL));
  t2 = ((((a)[5]) >> 32) & (0xffffffffL));
  bl = (((a)[1]) & (0xffffffffL));
  bh = ((((a)[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;
  };
  if (t2 & (0x8000000000000000LL))
    c3++;
  t2 = (t2 + t2) & (0xffffffffffffffffLL);
  if (t1 & (0x8000000000000000LL))
    t2++;
  t1 = (t1 + t1) & (0xffffffffffffffffLL);
  c1 = (c1 + t1) & (0xffffffffffffffffLL);
  if ((c1 < t1) && (((++t2) & (0xffffffffffffffffLL)) == 0))
    c3++;
  c2 = (c2 + t2) & (0xffffffffffffffffLL);
  if ((c2) < t2)
    c3++;
  ;
  t1 = (((a)[6]) & (0xffffffffL));
  t2 = ((((a)[6]) >> 32) & (0xffffffffL));
  bl = (((a)[0]) & (0xffffffffL));
  bh = ((((a)[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;
  };
  if (t2 & (0x8000000000000000LL))
    c3++;
  t2 = (t2 + t2) & (0xffffffffffffffffLL);
  if (t1 & (0x8000000000000000LL))
    t2++;
  t1 = (t1 + t1) & (0xffffffffffffffffLL);
  c1 = (c1 + t1) & (0xffffffffffffffffLL);
  if ((c1 < t1) && (((++t2) & (0xffffffffffffffffLL)) == 0))
    c3++;
  c2 = (c2 + t2) & (0xffffffffffffffffLL);
  if ((c2) < t2)
    c3++;
  ;
  r[6] = c1;
  c1 = 0;
  t1 = (((a)[7]) & (0xffffffffL));
  t2 = ((((a)[7]) >> 32) & (0xffffffffL));
  bl = (((a)[0]) & (0xffffffffL));
  bh = ((((a)[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;
  };
  if (t2 & (0x8000000000000000LL))
    c1++;
  t2 = (t2 + t2) & (0xffffffffffffffffLL);
  if (t1 & (0x8000000000000000LL))
    t2++;
  t1 = (t1 + t1) & (0xffffffffffffffffLL);
  c2 = (c2 + t1) & (0xffffffffffffffffLL);
  if ((c2 < t1) && (((++t2) & (0xffffffffffffffffLL)) == 0))
    c1++;
  c3 = (c3 + t2) & (0xffffffffffffffffLL);
  if ((c3) < t2)
    c1++;
  ;
  t1 = (((a)[6]) & (0xffffffffL));
  t2 = ((((a)[6]) >> 32) & (0xffffffffL));
  bl = (((a)[1]) & (0xffffffffL));
  bh = ((((a)[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;
  };
  if (t2 & (0x8000000000000000LL))
    c1++;
  t2 = (t2 + t2) & (0xffffffffffffffffLL);
  if (t1 & (0x8000000000000000LL))
    t2++;
  t1 = (t1 + t1) & (0xffffffffffffffffLL);
  c2 = (c2 + t1) & (0xffffffffffffffffLL);
  if ((c2 < t1) && (((++t2) & (0xffffffffffffffffLL)) == 0))
    c1++;
  c3 = (c3 + t2) & (0xffffffffffffffffLL);
  if ((c3) < t2)
    c1++;
  ;
  t1 = (((a)[5]) & (0xffffffffL));
  t2 = ((((a)[5]) >> 32) & (0xffffffffL));
  bl = (((a)[2]) & (0xffffffffL));
  bh = ((((a)[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;
  };
  if (t2 & (0x8000000000000000LL))
    c1++;
  t2 = (t2 + t2) & (0xffffffffffffffffLL);
  if (t1 & (0x8000000000000000LL))
    t2++;
  t1 = (t1 + t1) & (0xffffffffffffffffLL);
  c2 = (c2 + t1) & (0xffffffffffffffffLL);
  if ((c2 < t1) && (((++t2) & (0xffffffffffffffffLL)) == 0))
    c1++;
  c3 = (c3 + t2) & (0xffffffffffffffffLL);
  if ((c3) < t2)
    c1++;
  ;
  t1 = (((a)[4]) & (0xffffffffL));
  t2 = ((((a)[4]) >> 32) & (0xffffffffL));
  bl = (((a)[3]) & (0xffffffffL));
  bh = ((((a)[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;
  };
  if (t2 & (0x8000000000000000LL))
    c1++;
  t2 = (t2 + t2) & (0xffffffffffffffffLL);
  if (t1 & (0x8000000000000000LL))
    t2++;
  t1 = (t1 + t1) & (0xffffffffffffffffLL);
  c2 = (c2 + t1) & (0xffffffffffffffffLL);
  if ((c2 < t1) && (((++t2) & (0xffffffffffffffffLL)) == 0))
    c1++;
  c3 = (c3 + t2) & (0xffffffffffffffffLL);
  if ((c3) < t2)
    c1++;
  ;
  r[7] = c2;
  c2 = 0;
  {
    unsigned long long l, h, m;
    h = ((a)[4]);
    l = ((h) & (0xffffffffL));
    h = (((h) >> 32) & (0xffffffffL));
    m = (l) * (h);
    l *= l;
    h *= h;
    h += (m & (0xffffffff80000000LL)) >> (32 - 1);
    m = (m & (0xffffffffL)) << (32 + 1);
    l = (l + m) & (0xffffffffffffffffLL);
    if (l < m)
      h++;
    (t1) = l;
    (t2) = h;
  };
  c3 = (c3 + t1) & (0xffffffffffffffffLL);
  if ((c3) < t1)
    t2++;
  c1 = (c1 + t2) & (0xffffffffffffffffLL);
  if ((c1) < t2)
    c2++;
  ;
  t1 = (((a)[5]) & (0xffffffffL));
  t2 = ((((a)[5]) >> 32) & (0xffffffffL));
  bl = (((a)[3]) & (0xffffffffL));
  bh = ((((a)[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;
  };
  if (t2 & (0x8000000000000000LL))
    c2++;
  t2 = (t2 + t2) & (0xffffffffffffffffLL);
  if (t1 & (0x8000000000000000LL))
    t2++;
  t1 = (t1 + t1) & (0xffffffffffffffffLL);
  c3 = (c3 + t1) & (0xffffffffffffffffLL);
  if ((c3 < t1) && (((++t2) & (0xffffffffffffffffLL)) == 0))
    c2++;
  c1 = (c1 + t2) & (0xffffffffffffffffLL);
  if ((c1) < t2)
    c2++;
  ;
  t1 = (((a)[6]) & (0xffffffffL));
  t2 = ((((a)[6]) >> 32) & (0xffffffffL));
  bl = (((a)[2]) & (0xffffffffL));
  bh = ((((a)[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;
  };
  if (t2 & (0x8000000000000000LL))
    c2++;
  t2 = (t2 + t2) & (0xffffffffffffffffLL);
  if (t1 & (0x8000000000000000LL))
    t2++;
  t1 = (t1 + t1) & (0xffffffffffffffffLL);
  c3 = (c3 + t1) & (0xffffffffffffffffLL);
  if ((c3 < t1) && (((++t2) & (0xffffffffffffffffLL)) == 0))
    c2++;
  c1 = (c1 + t2) & (0xffffffffffffffffLL);
  if ((c1) < t2)
    c2++;
  ;
  t1 = (((a)[7]) & (0xffffffffL));
  t2 = ((((a)[7]) >> 32) & (0xffffffffL));
  bl = (((a)[1]) & (0xffffffffL));
  bh = ((((a)[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;
  };
  if (t2 & (0x8000000000000000LL))
    c2++;
  t2 = (t2 + t2) & (0xffffffffffffffffLL);
  if (t1 & (0x8000000000000000LL))
    t2++;
  t1 = (t1 + t1) & (0xffffffffffffffffLL);
  c3 = (c3 + t1) & (0xffffffffffffffffLL);
  if ((c3 < t1) && (((++t2) & (0xffffffffffffffffLL)) == 0))
    c2++;
  c1 = (c1 + t2) & (0xffffffffffffffffLL);
  if ((c1) < t2)
    c2++;
  ;
  r[8] = c3;
  c3 = 0;
  t1 = (((a)[7]) & (0xffffffffL));
  t2 = ((((a)[7]) >> 32) & (0xffffffffL));
  bl = (((a)[2]) & (0xffffffffL));
  bh = ((((a)[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;
  };
  if (t2 & (0x8000000000000000LL))
    c3++;
  t2 = (t2 + t2) & (0xffffffffffffffffLL);
  if (t1 & (0x8000000000000000LL))
    t2++;
  t1 = (t1 + t1) & (0xffffffffffffffffLL);
  c1 = (c1 + t1) & (0xffffffffffffffffLL);
  if ((c1 < t1) && (((++t2) & (0xffffffffffffffffLL)) == 0))
    c3++;
  c2 = (c2 + t2) & (0xffffffffffffffffLL);
  if ((c2) < t2)
    c3++;
  ;
  t1 = (((a)[6]) & (0xffffffffL));
  t2 = ((((a)[6]) >> 32) & (0xffffffffL));
  bl = (((a)[3]) & (0xffffffffL));
  bh = ((((a)[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;
  };
  if (t2 & (0x8000000000000000LL))
    c3++;
  t2 = (t2 + t2) & (0xffffffffffffffffLL);
  if (t1 & (0x8000000000000000LL))
    t2++;
  t1 = (t1 + t1) & (0xffffffffffffffffLL);
  c1 = (c1 + t1) & (0xffffffffffffffffLL);
  if ((c1 < t1) && (((++t2) & (0xffffffffffffffffLL)) == 0))
    c3++;
  c2 = (c2 + t2) & (0xffffffffffffffffLL);
  if ((c2) < t2)
    c3++;
  ;
  t1 = (((a)[5]) & (0xffffffffL));
  t2 = ((((a)[5]) >> 32) & (0xffffffffL));
  bl = (((a)[4]) & (0xffffffffL));
  bh = ((((a)[4]) >> 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;
  };
  if (t2 & (0x8000000000000000LL))
    c3++;
  t2 = (t2 + t2) & (0xffffffffffffffffLL);
  if (t1 & (0x8000000000000000LL))
    t2++;
  t1 = (t1 + t1) & (0xffffffffffffffffLL);
  c1 = (c1 + t1) & (0xffffffffffffffffLL);
  if ((c1 < t1) && (((++t2) & (0xffffffffffffffffLL)) == 0))
    c3++;
  c2 = (c2 + t2) & (0xffffffffffffffffLL);
  if ((c2) < t2)
    c3++;
  ;
  r[9] = c1;
  c1 = 0;
  {
    unsigned long long l, h, m;
    h = ((a)[5]);
    l = ((h) & (0xffffffffL));
    h = (((h) >> 32) & (0xffffffffL));
    m = (l) * (h);
    l *= l;
    h *= h;
    h += (m & (0xffffffff80000000LL)) >> (32 - 1);
    m = (m & (0xffffffffL)) << (32 + 1);
    l = (l + m) & (0xffffffffffffffffLL);
    if (l < m)
      h++;
    (t1) = l;
    (t2) = h;
  };
  c2 = (c2 + t1) & (0xffffffffffffffffLL);
  if ((c2) < t1)
    t2++;
  c3 = (c3 + t2) & (0xffffffffffffffffLL);
  if ((c3) < t2)
    c1++;
  ;
  t1 = (((a)[6]) & (0xffffffffL));
  t2 = ((((a)[6]) >> 32) & (0xffffffffL));
  bl = (((a)[4]) & (0xffffffffL));
  bh = ((((a)[4]) >> 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;
  };
  if (t2 & (0x8000000000000000LL))
    c1++;
  t2 = (t2 + t2) & (0xffffffffffffffffLL);
  if (t1 & (0x8000000000000000LL))
    t2++;
  t1 = (t1 + t1) & (0xffffffffffffffffLL);
  c2 = (c2 + t1) & (0xffffffffffffffffLL);
  if ((c2 < t1) && (((++t2) & (0xffffffffffffffffLL)) == 0))
    c1++;
  c3 = (c3 + t2) & (0xffffffffffffffffLL);
  if ((c3) < t2)
    c1++;
  ;
  t1 = (((a)[7]) & (0xffffffffL));
  t2 = ((((a)[7]) >> 32) & (0xffffffffL));
  bl = (((a)[3]) & (0xffffffffL));
  bh = ((((a)[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;
  };
  if (t2 & (0x8000000000000000LL))
    c1++;
  t2 = (t2 + t2) & (0xffffffffffffffffLL);
  if (t1 & (0x8000000000000000LL))
    t2++;
  t1 = (t1 + t1) & (0xffffffffffffffffLL);
  c2 = (c2 + t1) & (0xffffffffffffffffLL);
  if ((c2 < t1) && (((++t2) & (0xffffffffffffffffLL)) == 0))
    c1++;
  c3 = (c3 + t2) & (0xffffffffffffffffLL);
  if ((c3) < t2)
    c1++;
  ;
  r[10] = c2;
  c2 = 0;
  t1 = (((a)[7]) & (0xffffffffL));
  t2 = ((((a)[7]) >> 32) & (0xffffffffL));
  bl = (((a)[4]) & (0xffffffffL));
  bh = ((((a)[4]) >> 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;
  };
  if (t2 & (0x8000000000000000LL))
    c2++;
  t2 = (t2 + t2) & (0xffffffffffffffffLL);
  if (t1 & (0x8000000000000000LL))
    t2++;
  t1 = (t1 + t1) & (0xffffffffffffffffLL);
  c3 = (c3 + t1) & (0xffffffffffffffffLL);
  if ((c3 < t1) && (((++t2) & (0xffffffffffffffffLL)) == 0))
    c2++;
  c1 = (c1 + t2) & (0xffffffffffffffffLL);
  if ((c1) < t2)
    c2++;
  ;
  t1 = (((a)[6]) & (0xffffffffL));
  t2 = ((((a)[6]) >> 32) & (0xffffffffL));
  bl = (((a)[5]) & (0xffffffffL));
  bh = ((((a)[5]) >> 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;
  };
  if (t2 & (0x8000000000000000LL))
    c2++;
  t2 = (t2 + t2) & (0xffffffffffffffffLL);
  if (t1 & (0x8000000000000000LL))
    t2++;
  t1 = (t1 + t1) & (0xffffffffffffffffLL);
  c3 = (c3 + t1) & (0xffffffffffffffffLL);
  if ((c3 < t1) && (((++t2) & (0xffffffffffffffffLL)) == 0))
    c2++;
  c1 = (c1 + t2) & (0xffffffffffffffffLL);
  if ((c1) < t2)
    c2++;
  ;
  r[11] = c3;
  c3 = 0;
  {
    unsigned long long l, h, m;
    h = ((a)[6]);
    l = ((h) & (0xffffffffL));
    h = (((h) >> 32) & (0xffffffffL));
    m = (l) * (h);
    l *= l;
    h *= h;
    h += (m & (0xffffffff80000000LL)) >> (32 - 1);
    m = (m & (0xffffffffL)) << (32 + 1);
    l = (l + m) & (0xffffffffffffffffLL);
    if (l < m)
      h++;
    (t1) = l;
    (t2) = h;
  };
  c1 = (c1 + t1) & (0xffffffffffffffffLL);
  if ((c1) < t1)
    t2++;
  c2 = (c2 + t2) & (0xffffffffffffffffLL);
  if ((c2) < t2)
    c3++;
  ;
  t1 = (((a)[7]) & (0xffffffffL));
  t2 = ((((a)[7]) >> 32) & (0xffffffffL));
  bl = (((a)[5]) & (0xffffffffL));
  bh = ((((a)[5]) >> 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;
  };
  if (t2 & (0x8000000000000000LL))
    c3++;
  t2 = (t2 + t2) & (0xffffffffffffffffLL);
  if (t1 & (0x8000000000000000LL))
    t2++;
  t1 = (t1 + t1) & (0xffffffffffffffffLL);
  c1 = (c1 + t1) & (0xffffffffffffffffLL);
  if ((c1 < t1) && (((++t2) & (0xffffffffffffffffLL)) == 0))
    c3++;
  c2 = (c2 + t2) & (0xffffffffffffffffLL);
  if ((c2) < t2)
    c3++;
  ;
  r[12] = c1;
  c1 = 0;
  t1 = (((a)[7]) & (0xffffffffL));
  t2 = ((((a)[7]) >> 32) & (0xffffffffL));
  bl = (((a)[6]) & (0xffffffffL));
  bh = ((((a)[6]) >> 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;
  };
  if (t2 & (0x8000000000000000LL))
    c1++;
  t2 = (t2 + t2) & (0xffffffffffffffffLL);
  if (t1 & (0x8000000000000000LL))
    t2++;
  t1 = (t1 + t1) & (0xffffffffffffffffLL);
  c2 = (c2 + t1) & (0xffffffffffffffffLL);
  if ((c2 < t1) && (((++t2) & (0xffffffffffffffffLL)) == 0))
    c1++;
  c3 = (c3 + t2) & (0xffffffffffffffffLL);
  if ((c3) < t2)
    c1++;
  ;
  r[13] = c2;
  c2 = 0;
  {
    unsigned long long l, h, m;
    h = ((a)[7]);
    l = ((h) & (0xffffffffL));
    h = (((h) >> 32) & (0xffffffffL));
    m = (l) * (h);
    l *= l;
    h *= h;
    h += (m & (0xffffffff80000000LL)) >> (32 - 1);
    m = (m & (0xffffffffL)) << (32 + 1);
    l = (l + m) & (0xffffffffffffffffLL);
    if (l < m)
      h++;
    (t1) = l;
    (t2) = h;
  };
  c3 = (c3 + t1) & (0xffffffffffffffffLL);
  if ((c3) < t1)
    t2++;
  c1 = (c1 + t2) & (0xffffffffffffffffLL);
  if ((c1) < t2)
    c2++;
  ;
  r[14] = c3;
  r[15] = c1;
}


x86 assembly (clang, -O0):
<bn_sqr_comba8>:
push   %rbp
mov    %rsp,%rbp
sub    $0x408,%rsp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
movq   $0x0,-0x38(%rbp)
movq   $0x0,-0x40(%rbp)
movq   $0x0,-0x48(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
mov    %rax,-0x58(%rbp)
movabs $0xffffffff,%rax
and    -0x58(%rbp),%rax
mov    %rax,-0x50(%rbp)
mov    -0x58(%rbp),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x58(%rbp)
mov    -0x50(%rbp),%rax
imul   -0x58(%rbp),%rax
mov    %rax,-0x60(%rbp)
mov    -0x50(%rbp),%rax
imul   -0x50(%rbp),%rax
mov    %rax,-0x50(%rbp)
mov    -0x58(%rbp),%rax
imul   -0x58(%rbp),%rax
mov    %rax,-0x58(%rbp)
mov    -0x60(%rbp),%rax
and    $0xffffffff80000000,%rax
shr    $0x1f,%rax
add    -0x58(%rbp),%rax
mov    %rax,-0x58(%rbp)
movabs $0xffffffff,%rax
and    -0x60(%rbp),%rax
shl    $0x21,%rax
mov    %rax,-0x60(%rbp)
mov    -0x50(%rbp),%rax
add    -0x60(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x50(%rbp)
mov    -0x50(%rbp),%rax
cmp    -0x60(%rbp),%rax
jae    11de <bn_sqr_comba8+0xde>
mov    -0x58(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x58(%rbp)
mov    -0x50(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x58(%rbp),%rax
mov    %rax,-0x30(%rbp)
mov    -0x38(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    1218 <bn_sqr_comba8+0x118>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%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    1242 <bn_sqr_comba8+0x142>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x38(%rbp),%rcx
mov    -0x8(%rbp),%rax
mov    %rcx,(%rax)
movq   $0x0,-0x38(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x8(%rcx),%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    (%rcx),%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0x78(%rbp)
mov    -0x30(%rbp),%rax
mov    %rax,-0x80(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x78(%rbp),%rax
mov    %rax,-0x68(%rbp)
mov    -0x18(%rbp),%rax
imul   -0x78(%rbp),%rax
mov    %rax,-0x78(%rbp)
mov    -0x18(%rbp),%rax
imul   -0x80(%rbp),%rax
mov    %rax,-0x70(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x80(%rbp),%rax
mov    %rax,-0x80(%rbp)
mov    -0x68(%rbp),%rax
add    -0x70(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x68(%rbp)
mov    -0x68(%rbp),%rax
cmp    -0x70(%rbp),%rax
jae    132d <bn_sqr_comba8+0x22d>
movabs $0x100000000,%rax
add    -0x80(%rbp),%rax
mov    %rax,-0x80(%rbp)
mov    -0x68(%rbp),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
add    -0x80(%rbp),%rax
mov    %rax,-0x80(%rbp)
movabs $0xffffffff,%rax
and    -0x68(%rbp),%rax
shl    $0x20,%rax
mov    %rax,-0x70(%rbp)
mov    -0x78(%rbp),%rax
add    -0x70(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x78(%rbp)
mov    -0x78(%rbp),%rax
cmp    -0x70(%rbp),%rax
jae    138a <bn_sqr_comba8+0x28a>
mov    -0x80(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x80(%rbp)
mov    -0x78(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x80(%rbp),%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     13be <bn_sqr_comba8+0x2be>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     13f2 <bn_sqr_comba8+0x2f2>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x40(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    1446 <bn_sqr_comba8+0x346>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
and    $0xffffffffffffffff,%rax
cmp    $0x0,%rax
jne    1446 <bn_sqr_comba8+0x346>
mov    -0x38(%rbp),%rax
add    $0x1,%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    1470 <bn_sqr_comba8+0x370>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x40(%rbp),%rcx
mov    -0x8(%rbp),%rax
mov    %rcx,0x8(%rax)
movq   $0x0,-0x40(%rbp)
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
mov    %rax,-0x90(%rbp)
movabs $0xffffffff,%rax
and    -0x90(%rbp),%rax
mov    %rax,-0x88(%rbp)
mov    -0x90(%rbp),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x90(%rbp)
mov    -0x88(%rbp),%rax
imul   -0x90(%rbp),%rax
ff
mov    %rax,-0x98(%rbp)
mov    -0x88(%rbp),%rax
imul   -0x88(%rbp),%rax
ff
mov    %rax,-0x88(%rbp)
mov    -0x90(%rbp),%rax
imul   -0x90(%rbp),%rax
ff
mov    %rax,-0x90(%rbp)
mov    -0x98(%rbp),%rax
and    $0xffffffff80000000,%rax
shr    $0x1f,%rax
add    -0x90(%rbp),%rax
mov    %rax,-0x90(%rbp)
movabs $0xffffffff,%rax
and    -0x98(%rbp),%rax
shl    $0x21,%rax
mov    %rax,-0x98(%rbp)
mov    -0x88(%rbp),%rax
add    -0x98(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x88(%rbp)
mov    -0x88(%rbp),%rax
cmp    -0x98(%rbp),%rax
jae    1586 <bn_sqr_comba8+0x486>
mov    -0x90(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x90(%rbp)
mov    -0x88(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x90(%rbp),%rax
mov    %rax,-0x30(%rbp)
mov    -0x48(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    15c6 <bn_sqr_comba8+0x4c6>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x38(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    15f0 <bn_sqr_comba8+0x4f0>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x10(%rcx),%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    (%rcx),%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0xb0(%rbp)
mov    -0x30(%rbp),%rax
mov    %rax,-0xb8(%rbp)
mov    -0x20(%rbp),%rax
imul   -0xb0(%rbp),%rax
ff
mov    %rax,-0xa0(%rbp)
mov    -0x18(%rbp),%rax
imul   -0xb0(%rbp),%rax
ff
mov    %rax,-0xb0(%rbp)
mov    -0x18(%rbp),%rax
imul   -0xb8(%rbp),%rax
ff
mov    %rax,-0xa8(%rbp)
mov    -0x20(%rbp),%rax
imul   -0xb8(%rbp),%rax
ff
mov    %rax,-0xb8(%rbp)
mov    -0xa0(%rbp),%rax
add    -0xa8(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0xa0(%rbp)
mov    -0xa0(%rbp),%rax
cmp    -0xa8(%rbp),%rax
jae    16fb <bn_sqr_comba8+0x5fb>
movabs $0x100000000,%rax
add    -0xb8(%rbp),%rax
mov    %rax,-0xb8(%rbp)
mov    -0xa0(%rbp),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
add    -0xb8(%rbp),%rax
mov    %rax,-0xb8(%rbp)
movabs $0xffffffff,%rax
and    -0xa0(%rbp),%rax
shl    $0x20,%rax
mov    %rax,-0xa8(%rbp)
mov    -0xb0(%rbp),%rax
add    -0xa8(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0xb0(%rbp)
mov    -0xb0(%rbp),%rax
cmp    -0xa8(%rbp),%rax
jae    177c <bn_sqr_comba8+0x67c>
mov    -0xb8(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0xb8(%rbp)
mov    -0xb0(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0xb8(%rbp),%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     17b6 <bn_sqr_comba8+0x6b6>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     17ea <bn_sqr_comba8+0x6ea>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x48(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    183e <bn_sqr_comba8+0x73e>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
and    $0xffffffffffffffff,%rax
cmp    $0x0,%rax
jne    183e <bn_sqr_comba8+0x73e>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x38(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    1868 <bn_sqr_comba8+0x768>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x48(%rbp),%rcx
mov    -0x8(%rbp),%rax
mov    %rcx,0x10(%rax)
movq   $0x0,-0x48(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x18(%rcx),%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x18(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    (%rcx),%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0xd0(%rbp)
mov    -0x30(%rbp),%rax
mov    %rax,-0xd8(%rbp)
mov    -0x20(%rbp),%rax
imul   -0xd0(%rbp),%rax
ff
mov    %rax,-0xc0(%rbp)
mov    -0x18(%rbp),%rax
imul   -0xd0(%rbp),%rax
ff
mov    %rax,-0xd0(%rbp)
mov    -0x18(%rbp),%rax
imul   -0xd8(%rbp),%rax
ff
mov    %rax,-0xc8(%rbp)
mov    -0x20(%rbp),%rax
imul   -0xd8(%rbp),%rax
ff
mov    %rax,-0xd8(%rbp)
mov    -0xc0(%rbp),%rax
add    -0xc8(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0xc0(%rbp)
mov    -0xc0(%rbp),%rax
cmp    -0xc8(%rbp),%rax
jae    1987 <bn_sqr_comba8+0x887>
movabs $0x100000000,%rax
add    -0xd8(%rbp),%rax
mov    %rax,-0xd8(%rbp)
mov    -0xc0(%rbp),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
add    -0xd8(%rbp),%rax
mov    %rax,-0xd8(%rbp)
movabs $0xffffffff,%rax
and    -0xc0(%rbp),%rax
shl    $0x20,%rax
mov    %rax,-0xc8(%rbp)
mov    -0xd0(%rbp),%rax
add    -0xc8(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0xd0(%rbp)
mov    -0xd0(%rbp),%rax
cmp    -0xc8(%rbp),%rax
jae    1a08 <bn_sqr_comba8+0x908>
mov    -0xd8(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0xd8(%rbp)
mov    -0xd0(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0xd8(%rbp),%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     1a42 <bn_sqr_comba8+0x942>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     1a76 <bn_sqr_comba8+0x976>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x38(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    1aca <bn_sqr_comba8+0x9ca>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
and    $0xffffffffffffffff,%rax
cmp    $0x0,%rax
jne    1aca <bn_sqr_comba8+0x9ca>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%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    1af4 <bn_sqr_comba8+0x9f4>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x10(%rcx),%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x8(%rcx),%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0xf0(%rbp)
mov    -0x30(%rbp),%rax
mov    %rax,-0xf8(%rbp)
mov    -0x20(%rbp),%rax
imul   -0xf0(%rbp),%rax
ff
mov    %rax,-0xe0(%rbp)
mov    -0x18(%rbp),%rax
imul   -0xf0(%rbp),%rax
ff
mov    %rax,-0xf0(%rbp)
mov    -0x18(%rbp),%rax
imul   -0xf8(%rbp),%rax
ff
mov    %rax,-0xe8(%rbp)
mov    -0x20(%rbp),%rax
imul   -0xf8(%rbp),%rax
ff
mov    %rax,-0xf8(%rbp)
mov    -0xe0(%rbp),%rax
add    -0xe8(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0xe0(%rbp)
mov    -0xe0(%rbp),%rax
cmp    -0xe8(%rbp),%rax
jae    1c01 <bn_sqr_comba8+0xb01>
movabs $0x100000000,%rax
add    -0xf8(%rbp),%rax
mov    %rax,-0xf8(%rbp)
mov    -0xe0(%rbp),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
add    -0xf8(%rbp),%rax
mov    %rax,-0xf8(%rbp)
movabs $0xffffffff,%rax
and    -0xe0(%rbp),%rax
shl    $0x20,%rax
mov    %rax,-0xe8(%rbp)
mov    -0xf0(%rbp),%rax
add    -0xe8(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0xf0(%rbp)
mov    -0xf0(%rbp),%rax
cmp    -0xe8(%rbp),%rax
jae    1c82 <bn_sqr_comba8+0xb82>
mov    -0xf8(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0xf8(%rbp)
mov    -0xf0(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0xf8(%rbp),%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     1cbc <bn_sqr_comba8+0xbbc>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     1cf0 <bn_sqr_comba8+0xbf0>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x38(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    1d44 <bn_sqr_comba8+0xc44>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
and    $0xffffffffffffffff,%rax
cmp    $0x0,%rax
jne    1d44 <bn_sqr_comba8+0xc44>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%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    1d6e <bn_sqr_comba8+0xc6e>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x38(%rbp),%rcx
mov    -0x8(%rbp),%rax
mov    %rcx,0x18(%rax)
movq   $0x0,-0x38(%rbp)
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rax
mov    %rax,-0x108(%rbp)
movabs $0xffffffff,%rax
and    -0x108(%rbp),%rax
mov    %rax,-0x100(%rbp)
mov    -0x108(%rbp),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x108(%rbp)
mov    -0x100(%rbp),%rax
imul   -0x108(%rbp),%rax
ff
mov    %rax,-0x110(%rbp)
mov    -0x100(%rbp),%rax
imul   -0x100(%rbp),%rax
ff
mov    %rax,-0x100(%rbp)
mov    -0x108(%rbp),%rax
imul   -0x108(%rbp),%rax
ff
mov    %rax,-0x108(%rbp)
mov    -0x110(%rbp),%rax
and    $0xffffffff80000000,%rax
shr    $0x1f,%rax
add    -0x108(%rbp),%rax
mov    %rax,-0x108(%rbp)
movabs $0xffffffff,%rax
and    -0x110(%rbp),%rax
shl    $0x21,%rax
mov    %rax,-0x110(%rbp)
mov    -0x100(%rbp),%rax
add    -0x110(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x100(%rbp)
mov    -0x100(%rbp),%rax
cmp    -0x110(%rbp),%rax
jae    1e84 <bn_sqr_comba8+0xd84>
mov    -0x108(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x108(%rbp)
mov    -0x100(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x108(%rbp),%rax
mov    %rax,-0x30(%rbp)
mov    -0x40(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    1ec4 <bn_sqr_comba8+0xdc4>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%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    1eee <bn_sqr_comba8+0xdee>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x18(%rcx),%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x18(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x8(%rcx),%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0x128(%rbp)
mov    -0x30(%rbp),%rax
mov    %rax,-0x130(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x128(%rbp),%rax
ff
mov    %rax,-0x118(%rbp)
mov    -0x18(%rbp),%rax
imul   -0x128(%rbp),%rax
ff
mov    %rax,-0x128(%rbp)
mov    -0x18(%rbp),%rax
imul   -0x130(%rbp),%rax
ff
mov    %rax,-0x120(%rbp)
mov    -0x20(%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    1ffb <bn_sqr_comba8+0xefb>
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    207c <bn_sqr_comba8+0xf7c>
mov    -0x130(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x130(%rbp)
mov    -0x128(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x130(%rbp),%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     20b6 <bn_sqr_comba8+0xfb6>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     20ea <bn_sqr_comba8+0xfea>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x40(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    213e <bn_sqr_comba8+0x103e>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
and    $0xffffffffffffffff,%rax
cmp    $0x0,%rax
jne    213e <bn_sqr_comba8+0x103e>
mov    -0x38(%rbp),%rax
add    $0x1,%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    2168 <bn_sqr_comba8+0x1068>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x20(%rcx),%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x20(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    (%rcx),%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0x148(%rbp)
mov    -0x30(%rbp),%rax
mov    %rax,-0x150(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x148(%rbp),%rax
ff
mov    %rax,-0x138(%rbp)
mov    -0x18(%rbp),%rax
imul   -0x148(%rbp),%rax
mov    %rax,-0x148(%rbp)
mov    -0x18(%rbp),%rax
imul   -0x150(%rbp),%rax
ff
mov    %rax,-0x140(%rbp)
mov    -0x20(%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    2273 <bn_sqr_comba8+0x1173>
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    22f4 <bn_sqr_comba8+0x11f4>
mov    -0x150(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x150(%rbp)
mov    -0x148(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x150(%rbp),%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     232e <bn_sqr_comba8+0x122e>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     2362 <bn_sqr_comba8+0x1262>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x40(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    23b6 <bn_sqr_comba8+0x12b6>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
and    $0xffffffffffffffff,%rax
cmp    $0x0,%rax
jne    23b6 <bn_sqr_comba8+0x12b6>
mov    -0x38(%rbp),%rax
add    $0x1,%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    23e0 <bn_sqr_comba8+0x12e0>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x40(%rbp),%rcx
mov    -0x8(%rbp),%rax
mov    %rcx,0x20(%rax)
movq   $0x0,-0x40(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x28(%rcx),%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x28(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    (%rcx),%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0x168(%rbp)
mov    -0x30(%rbp),%rax
mov    %rax,-0x170(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x168(%rbp),%rax
ff
mov    %rax,-0x158(%rbp)
mov    -0x18(%rbp),%rax
imul   -0x168(%rbp),%rax
ff
mov    %rax,-0x168(%rbp)
mov    -0x18(%rbp),%rax
imul   -0x170(%rbp),%rax
ff
mov    %rax,-0x160(%rbp)
mov    -0x20(%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    24ff <bn_sqr_comba8+0x13ff>
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    2580 <bn_sqr_comba8+0x1480>
mov    -0x170(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x170(%rbp)
mov    -0x168(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x170(%rbp),%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     25ba <bn_sqr_comba8+0x14ba>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     25ee <bn_sqr_comba8+0x14ee>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x48(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    2642 <bn_sqr_comba8+0x1542>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
and    $0xffffffffffffffff,%rax
cmp    $0x0,%rax
jne    2642 <bn_sqr_comba8+0x1542>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x38(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    266c <bn_sqr_comba8+0x156c>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x20(%rcx),%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x20(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x8(%rcx),%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0x188(%rbp)
mov    -0x30(%rbp),%rax
mov    %rax,-0x190(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x188(%rbp),%rax
ff
mov    %rax,-0x178(%rbp)
mov    -0x18(%rbp),%rax
imul   -0x188(%rbp),%rax
ff
mov    %rax,-0x188(%rbp)
mov    -0x18(%rbp),%rax
imul   -0x190(%rbp),%rax
ff
mov    %rax,-0x180(%rbp)
mov    -0x20(%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    2779 <bn_sqr_comba8+0x1679>
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    27fa <bn_sqr_comba8+0x16fa>
mov    -0x190(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x190(%rbp)
mov    -0x188(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x190(%rbp),%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     2834 <bn_sqr_comba8+0x1734>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     2868 <bn_sqr_comba8+0x1768>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x48(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    28bc <bn_sqr_comba8+0x17bc>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
and    $0xffffffffffffffff,%rax
cmp    $0x0,%rax
jne    28bc <bn_sqr_comba8+0x17bc>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x38(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    28e6 <bn_sqr_comba8+0x17e6>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x18(%rcx),%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x18(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x10(%rcx),%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0x1a8(%rbp)
mov    -0x30(%rbp),%rax
mov    %rax,-0x1b0(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x1a8(%rbp),%rax
ff
mov    %rax,-0x198(%rbp)
mov    -0x18(%rbp),%rax
imul   -0x1a8(%rbp),%rax
ff
mov    %rax,-0x1a8(%rbp)
mov    -0x18(%rbp),%rax
imul   -0x1b0(%rbp),%rax
ff
mov    %rax,-0x1a0(%rbp)
mov    -0x20(%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    29f3 <bn_sqr_comba8+0x18f3>
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    2a74 <bn_sqr_comba8+0x1974>
mov    -0x1b0(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x1b0(%rbp)
mov    -0x1a8(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x1b0(%rbp),%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     2aae <bn_sqr_comba8+0x19ae>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     2ae2 <bn_sqr_comba8+0x19e2>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x48(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    2b36 <bn_sqr_comba8+0x1a36>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
and    $0xffffffffffffffff,%rax
cmp    $0x0,%rax
jne    2b36 <bn_sqr_comba8+0x1a36>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x38(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    2b60 <bn_sqr_comba8+0x1a60>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x48(%rbp),%rcx
mov    -0x8(%rbp),%rax
mov    %rcx,0x28(%rax)
movq   $0x0,-0x48(%rbp)
mov    -0x10(%rbp),%rax
mov    0x18(%rax),%rax
mov    %rax,-0x1c0(%rbp)
movabs $0xffffffff,%rax
and    -0x1c0(%rbp),%rax
mov    %rax,-0x1b8(%rbp)
mov    -0x1c0(%rbp),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x1c0(%rbp)
mov    -0x1b8(%rbp),%rax
imul   -0x1c0(%rbp),%rax
ff
mov    %rax,-0x1c8(%rbp)
mov    -0x1b8(%rbp),%rax
imul   -0x1b8(%rbp),%rax
ff
mov    %rax,-0x1b8(%rbp)
mov    -0x1c0(%rbp),%rax
imul   -0x1c0(%rbp),%rax
ff
mov    %rax,-0x1c0(%rbp)
mov    -0x1c8(%rbp),%rax
and    $0xffffffff80000000,%rax
shr    $0x1f,%rax
add    -0x1c0(%rbp),%rax
mov    %rax,-0x1c0(%rbp)
movabs $0xffffffff,%rax
and    -0x1c8(%rbp),%rax
shl    $0x21,%rax
mov    %rax,-0x1c8(%rbp)
mov    -0x1b8(%rbp),%rax
add    -0x1c8(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x1b8(%rbp)
mov    -0x1b8(%rbp),%rax
cmp    -0x1c8(%rbp),%rax
jae    2c76 <bn_sqr_comba8+0x1b76>
mov    -0x1c0(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x1c0(%rbp)
mov    -0x1b8(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x1c0(%rbp),%rax
mov    %rax,-0x30(%rbp)
mov    -0x38(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    2cb6 <bn_sqr_comba8+0x1bb6>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%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    2ce0 <bn_sqr_comba8+0x1be0>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x20(%rcx),%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x20(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x10(%rcx),%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0x1e0(%rbp)
mov    -0x30(%rbp),%rax
mov    %rax,-0x1e8(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x1e0(%rbp),%rax
ff
mov    %rax,-0x1d0(%rbp)
mov    -0x18(%rbp),%rax
imul   -0x1e0(%rbp),%rax
ff
mov    %rax,-0x1e0(%rbp)
mov    -0x18(%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    -0x1d0(%rbp),%rax
add    -0x1d8(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x1d0(%rbp)
mov    -0x1d0(%rbp),%rax
cmp    -0x1d8(%rbp),%rax
jae    2ded <bn_sqr_comba8+0x1ced>
movabs $0x100000000,%rax
add    -0x1e8(%rbp),%rax
mov    %rax,-0x1e8(%rbp)
mov    -0x1d0(%rbp),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
add    -0x1e8(%rbp),%rax
mov    %rax,-0x1e8(%rbp)
movabs $0xffffffff,%rax
and    -0x1d0(%rbp),%rax
shl    $0x20,%rax
mov    %rax,-0x1d8(%rbp)
mov    -0x1e0(%rbp),%rax
add    -0x1d8(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x1e0(%rbp)
mov    -0x1e0(%rbp),%rax
cmp    -0x1d8(%rbp),%rax
jae    2e6e <bn_sqr_comba8+0x1d6e>
mov    -0x1e8(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x1e8(%rbp)
mov    -0x1e0(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x1e8(%rbp),%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     2ea8 <bn_sqr_comba8+0x1da8>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     2edc <bn_sqr_comba8+0x1ddc>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x38(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    2f30 <bn_sqr_comba8+0x1e30>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
and    $0xffffffffffffffff,%rax
cmp    $0x0,%rax
jne    2f30 <bn_sqr_comba8+0x1e30>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%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    2f5a <bn_sqr_comba8+0x1e5a>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x28(%rcx),%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x28(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x8(%rcx),%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0x200(%rbp)
mov    -0x30(%rbp),%rax
mov    %rax,-0x208(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x200(%rbp),%rax
ff
mov    %rax,-0x1f0(%rbp)
mov    -0x18(%rbp),%rax
imul   -0x200(%rbp),%rax
ff
mov    %rax,-0x200(%rbp)
mov    -0x18(%rbp),%rax
imul   -0x208(%rbp),%rax
mov    %rax,-0x1f8(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x208(%rbp),%rax
ff
mov    %rax,-0x208(%rbp)
mov    -0x1f0(%rbp),%rax
add    -0x1f8(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x1f0(%rbp)
mov    -0x1f0(%rbp),%rax
cmp    -0x1f8(%rbp),%rax
jae    3067 <bn_sqr_comba8+0x1f67>
movabs $0x100000000,%rax
add    -0x208(%rbp),%rax
mov    %rax,-0x208(%rbp)
mov    -0x1f0(%rbp),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
add    -0x208(%rbp),%rax
mov    %rax,-0x208(%rbp)
movabs $0xffffffff,%rax
and    -0x1f0(%rbp),%rax
shl    $0x20,%rax
mov    %rax,-0x1f8(%rbp)
mov    -0x200(%rbp),%rax
add    -0x1f8(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x200(%rbp)
mov    -0x200(%rbp),%rax
cmp    -0x1f8(%rbp),%rax
jae    30e8 <bn_sqr_comba8+0x1fe8>
mov    -0x208(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x208(%rbp)
mov    -0x200(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x208(%rbp),%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     3122 <bn_sqr_comba8+0x2022>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     3156 <bn_sqr_comba8+0x2056>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x38(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    31aa <bn_sqr_comba8+0x20aa>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
and    $0xffffffffffffffff,%rax
cmp    $0x0,%rax
jne    31aa <bn_sqr_comba8+0x20aa>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%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    31d4 <bn_sqr_comba8+0x20d4>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x30(%rcx),%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x30(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    (%rcx),%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0x220(%rbp)
mov    -0x30(%rbp),%rax
mov    %rax,-0x228(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x220(%rbp),%rax
ff
mov    %rax,-0x210(%rbp)
mov    -0x18(%rbp),%rax
imul   -0x220(%rbp),%rax
ff
mov    %rax,-0x220(%rbp)
mov    -0x18(%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    -0x210(%rbp),%rax
add    -0x218(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x210(%rbp)
mov    -0x210(%rbp),%rax
cmp    -0x218(%rbp),%rax
jae    32df <bn_sqr_comba8+0x21df>
movabs $0x100000000,%rax
add    -0x228(%rbp),%rax
mov    %rax,-0x228(%rbp)
mov    -0x210(%rbp),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
add    -0x228(%rbp),%rax
mov    %rax,-0x228(%rbp)
movabs $0xffffffff,%rax
and    -0x210(%rbp),%rax
shl    $0x20,%rax
mov    %rax,-0x218(%rbp)
mov    -0x220(%rbp),%rax
add    -0x218(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x220(%rbp)
mov    -0x220(%rbp),%rax
cmp    -0x218(%rbp),%rax
jae    3360 <bn_sqr_comba8+0x2260>
mov    -0x228(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x228(%rbp)
mov    -0x220(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x228(%rbp),%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     339a <bn_sqr_comba8+0x229a>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     33ce <bn_sqr_comba8+0x22ce>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x38(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    3422 <bn_sqr_comba8+0x2322>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
and    $0xffffffffffffffff,%rax
cmp    $0x0,%rax
jne    3422 <bn_sqr_comba8+0x2322>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%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    344c <bn_sqr_comba8+0x234c>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x38(%rbp),%rcx
mov    -0x8(%rbp),%rax
mov    %rcx,0x30(%rax)
movq   $0x0,-0x38(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x38(%rcx),%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x38(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    (%rcx),%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0x240(%rbp)
mov    -0x30(%rbp),%rax
mov    %rax,-0x248(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x240(%rbp),%rax
ff
mov    %rax,-0x230(%rbp)
mov    -0x18(%rbp),%rax
imul   -0x240(%rbp),%rax
ff
mov    %rax,-0x240(%rbp)
mov    -0x18(%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    -0x230(%rbp),%rax
add    -0x238(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x230(%rbp)
mov    -0x230(%rbp),%rax
cmp    -0x238(%rbp),%rax
jae    356b <bn_sqr_comba8+0x246b>
movabs $0x100000000,%rax
add    -0x248(%rbp),%rax
mov    %rax,-0x248(%rbp)
mov    -0x230(%rbp),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
add    -0x248(%rbp),%rax
mov    %rax,-0x248(%rbp)
movabs $0xffffffff,%rax
and    -0x230(%rbp),%rax
shl    $0x20,%rax
mov    %rax,-0x238(%rbp)
mov    -0x240(%rbp),%rax
add    -0x238(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x240(%rbp)
mov    -0x240(%rbp),%rax
cmp    -0x238(%rbp),%rax
jae    35ec <bn_sqr_comba8+0x24ec>
mov    -0x248(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x248(%rbp)
mov    -0x240(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x248(%rbp),%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     3626 <bn_sqr_comba8+0x2526>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     365a <bn_sqr_comba8+0x255a>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x40(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    36ae <bn_sqr_comba8+0x25ae>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
and    $0xffffffffffffffff,%rax
cmp    $0x0,%rax
jne    36ae <bn_sqr_comba8+0x25ae>
mov    -0x38(%rbp),%rax
add    $0x1,%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    36d8 <bn_sqr_comba8+0x25d8>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x30(%rcx),%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x30(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x8(%rcx),%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0x260(%rbp)
mov    -0x30(%rbp),%rax
mov    %rax,-0x268(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x260(%rbp),%rax
ff
mov    %rax,-0x250(%rbp)
mov    -0x18(%rbp),%rax
imul   -0x260(%rbp),%rax
ff
mov    %rax,-0x260(%rbp)
mov    -0x18(%rbp),%rax
imul   -0x268(%rbp),%rax
ff
mov    %rax,-0x258(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x268(%rbp),%rax
ff
mov    %rax,-0x268(%rbp)
mov    -0x250(%rbp),%rax
add    -0x258(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x250(%rbp)
mov    -0x250(%rbp),%rax
cmp    -0x258(%rbp),%rax
jae    37e5 <bn_sqr_comba8+0x26e5>
movabs $0x100000000,%rax
add    -0x268(%rbp),%rax
mov    %rax,-0x268(%rbp)
mov    -0x250(%rbp),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
add    -0x268(%rbp),%rax
mov    %rax,-0x268(%rbp)
movabs $0xffffffff,%rax
and    -0x250(%rbp),%rax
shl    $0x20,%rax
mov    %rax,-0x258(%rbp)
mov    -0x260(%rbp),%rax
add    -0x258(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x260(%rbp)
mov    -0x260(%rbp),%rax
cmp    -0x258(%rbp),%rax
jae    3866 <bn_sqr_comba8+0x2766>
mov    -0x268(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x268(%rbp)
mov    -0x260(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x268(%rbp),%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     38a0 <bn_sqr_comba8+0x27a0>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     38d4 <bn_sqr_comba8+0x27d4>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x40(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    3928 <bn_sqr_comba8+0x2828>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
and    $0xffffffffffffffff,%rax
cmp    $0x0,%rax
jne    3928 <bn_sqr_comba8+0x2828>
mov    -0x38(%rbp),%rax
add    $0x1,%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    3952 <bn_sqr_comba8+0x2852>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x28(%rcx),%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x28(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x10(%rcx),%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0x280(%rbp)
mov    -0x30(%rbp),%rax
mov    %rax,-0x288(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x280(%rbp),%rax
ff
mov    %rax,-0x270(%rbp)
mov    -0x18(%rbp),%rax
imul   -0x280(%rbp),%rax
ff
mov    %rax,-0x280(%rbp)
mov    -0x18(%rbp),%rax
imul   -0x288(%rbp),%rax
ff
mov    %rax,-0x278(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x288(%rbp),%rax
ff
mov    %rax,-0x288(%rbp)
mov    -0x270(%rbp),%rax
add    -0x278(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x270(%rbp)
mov    -0x270(%rbp),%rax
cmp    -0x278(%rbp),%rax
jae    3a5f <bn_sqr_comba8+0x295f>
movabs $0x100000000,%rax
add    -0x288(%rbp),%rax
mov    %rax,-0x288(%rbp)
mov    -0x270(%rbp),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
add    -0x288(%rbp),%rax
mov    %rax,-0x288(%rbp)
movabs $0xffffffff,%rax
and    -0x270(%rbp),%rax
shl    $0x20,%rax
mov    %rax,-0x278(%rbp)
mov    -0x280(%rbp),%rax
add    -0x278(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x280(%rbp)
mov    -0x280(%rbp),%rax
cmp    -0x278(%rbp),%rax
jae    3ae0 <bn_sqr_comba8+0x29e0>
mov    -0x288(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x288(%rbp)
mov    -0x280(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x288(%rbp),%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     3b1a <bn_sqr_comba8+0x2a1a>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     3b4e <bn_sqr_comba8+0x2a4e>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x40(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    3ba2 <bn_sqr_comba8+0x2aa2>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
and    $0xffffffffffffffff,%rax
cmp    $0x0,%rax
jne    3ba2 <bn_sqr_comba8+0x2aa2>
mov    -0x38(%rbp),%rax
add    $0x1,%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    3bcc <bn_sqr_comba8+0x2acc>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x20(%rcx),%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x20(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x18(%rcx),%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    0x18(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0x2a0(%rbp)
mov    -0x30(%rbp),%rax
mov    %rax,-0x2a8(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x2a0(%rbp),%rax
ff
mov    %rax,-0x290(%rbp)
mov    -0x18(%rbp),%rax
imul   -0x2a0(%rbp),%rax
ff
mov    %rax,-0x2a0(%rbp)
mov    -0x18(%rbp),%rax
imul   -0x2a8(%rbp),%rax
ff
mov    %rax,-0x298(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x2a8(%rbp),%rax
ff
mov    %rax,-0x2a8(%rbp)
mov    -0x290(%rbp),%rax
add    -0x298(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x290(%rbp)
mov    -0x290(%rbp),%rax
cmp    -0x298(%rbp),%rax
jae    3cd9 <bn_sqr_comba8+0x2bd9>
movabs $0x100000000,%rax
add    -0x2a8(%rbp),%rax
mov    %rax,-0x2a8(%rbp)
mov    -0x290(%rbp),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
add    -0x2a8(%rbp),%rax
mov    %rax,-0x2a8(%rbp)
movabs $0xffffffff,%rax
and    -0x290(%rbp),%rax
shl    $0x20,%rax
mov    %rax,-0x298(%rbp)
mov    -0x2a0(%rbp),%rax
add    -0x298(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x2a0(%rbp)
mov    -0x2a0(%rbp),%rax
cmp    -0x298(%rbp),%rax
jae    3d5a <bn_sqr_comba8+0x2c5a>
mov    -0x2a8(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x2a8(%rbp)
mov    -0x2a0(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x2a8(%rbp),%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     3d94 <bn_sqr_comba8+0x2c94>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     3dc8 <bn_sqr_comba8+0x2cc8>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x40(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    3e1c <bn_sqr_comba8+0x2d1c>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
and    $0xffffffffffffffff,%rax
cmp    $0x0,%rax
jne    3e1c <bn_sqr_comba8+0x2d1c>
mov    -0x38(%rbp),%rax
add    $0x1,%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    3e46 <bn_sqr_comba8+0x2d46>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x40(%rbp),%rcx
mov    -0x8(%rbp),%rax
mov    %rcx,0x38(%rax)
movq   $0x0,-0x40(%rbp)
mov    -0x10(%rbp),%rax
mov    0x20(%rax),%rax
mov    %rax,-0x2b8(%rbp)
movabs $0xffffffff,%rax
and    -0x2b8(%rbp),%rax
mov    %rax,-0x2b0(%rbp)
mov    -0x2b8(%rbp),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x2b8(%rbp)
mov    -0x2b0(%rbp),%rax
imul   -0x2b8(%rbp),%rax
ff
mov    %rax,-0x2c0(%rbp)
mov    -0x2b0(%rbp),%rax
imul   -0x2b0(%rbp),%rax
ff
mov    %rax,-0x2b0(%rbp)
mov    -0x2b8(%rbp),%rax
imul   -0x2b8(%rbp),%rax
ff
mov    %rax,-0x2b8(%rbp)
mov    -0x2c0(%rbp),%rax
and    $0xffffffff80000000,%rax
shr    $0x1f,%rax
add    -0x2b8(%rbp),%rax
mov    %rax,-0x2b8(%rbp)
movabs $0xffffffff,%rax
and    -0x2c0(%rbp),%rax
shl    $0x21,%rax
mov    %rax,-0x2c0(%rbp)
mov    -0x2b0(%rbp),%rax
add    -0x2c0(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x2b0(%rbp)
mov    -0x2b0(%rbp),%rax
cmp    -0x2c0(%rbp),%rax
jae    3f5c <bn_sqr_comba8+0x2e5c>
mov    -0x2b8(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x2b8(%rbp)
mov    -0x2b0(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x2b8(%rbp),%rax
mov    %rax,-0x30(%rbp)
mov    -0x48(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    3f9c <bn_sqr_comba8+0x2e9c>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x38(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    3fc6 <bn_sqr_comba8+0x2ec6>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x28(%rcx),%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x28(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x18(%rcx),%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    0x18(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0x2d8(%rbp)
mov    -0x30(%rbp),%rax
mov    %rax,-0x2e0(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x2d8(%rbp),%rax
ff
mov    %rax,-0x2c8(%rbp)
mov    -0x18(%rbp),%rax
imul   -0x2d8(%rbp),%rax
ff
mov    %rax,-0x2d8(%rbp)
mov    -0x18(%rbp),%rax
imul   -0x2e0(%rbp),%rax
ff
mov    %rax,-0x2d0(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x2e0(%rbp),%rax
ff
mov    %rax,-0x2e0(%rbp)
mov    -0x2c8(%rbp),%rax
add    -0x2d0(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x2c8(%rbp)
mov    -0x2c8(%rbp),%rax
cmp    -0x2d0(%rbp),%rax
jae    40d3 <bn_sqr_comba8+0x2fd3>
movabs $0x100000000,%rax
add    -0x2e0(%rbp),%rax
mov    %rax,-0x2e0(%rbp)
mov    -0x2c8(%rbp),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
add    -0x2e0(%rbp),%rax
mov    %rax,-0x2e0(%rbp)
movabs $0xffffffff,%rax
and    -0x2c8(%rbp),%rax
shl    $0x20,%rax
mov    %rax,-0x2d0(%rbp)
mov    -0x2d8(%rbp),%rax
add    -0x2d0(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x2d8(%rbp)
mov    -0x2d8(%rbp),%rax
cmp    -0x2d0(%rbp),%rax
jae    4154 <bn_sqr_comba8+0x3054>
mov    -0x2e0(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x2e0(%rbp)
mov    -0x2d8(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x2e0(%rbp),%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     418e <bn_sqr_comba8+0x308e>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     41c2 <bn_sqr_comba8+0x30c2>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x48(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    4216 <bn_sqr_comba8+0x3116>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
and    $0xffffffffffffffff,%rax
cmp    $0x0,%rax
jne    4216 <bn_sqr_comba8+0x3116>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x38(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    4240 <bn_sqr_comba8+0x3140>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x30(%rcx),%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x30(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x10(%rcx),%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0x2f8(%rbp)
mov    -0x30(%rbp),%rax
mov    %rax,-0x300(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x2f8(%rbp),%rax
ff
mov    %rax,-0x2e8(%rbp)
mov    -0x18(%rbp),%rax
imul   -0x2f8(%rbp),%rax
ff
mov    %rax,-0x2f8(%rbp)
mov    -0x18(%rbp),%rax
imul   -0x300(%rbp),%rax
ff
mov    %rax,-0x2f0(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x300(%rbp),%rax
mov    %rax,-0x300(%rbp)
mov    -0x2e8(%rbp),%rax
add    -0x2f0(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x2e8(%rbp)
mov    -0x2e8(%rbp),%rax
cmp    -0x2f0(%rbp),%rax
jae    434d <bn_sqr_comba8+0x324d>
movabs $0x100000000,%rax
add    -0x300(%rbp),%rax
mov    %rax,-0x300(%rbp)
mov    -0x2e8(%rbp),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
add    -0x300(%rbp),%rax
mov    %rax,-0x300(%rbp)
movabs $0xffffffff,%rax
and    -0x2e8(%rbp),%rax
shl    $0x20,%rax
mov    %rax,-0x2f0(%rbp)
mov    -0x2f8(%rbp),%rax
add    -0x2f0(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x2f8(%rbp)
mov    -0x2f8(%rbp),%rax
cmp    -0x2f0(%rbp),%rax
jae    43ce <bn_sqr_comba8+0x32ce>
mov    -0x300(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x300(%rbp)
mov    -0x2f8(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x300(%rbp),%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     4408 <bn_sqr_comba8+0x3308>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     443c <bn_sqr_comba8+0x333c>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x48(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    4490 <bn_sqr_comba8+0x3390>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
and    $0xffffffffffffffff,%rax
cmp    $0x0,%rax
jne    4490 <bn_sqr_comba8+0x3390>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x38(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    44ba <bn_sqr_comba8+0x33ba>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x38(%rcx),%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x38(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x8(%rcx),%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0x318(%rbp)
mov    -0x30(%rbp),%rax
mov    %rax,-0x320(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x318(%rbp),%rax
ff
mov    %rax,-0x308(%rbp)
mov    -0x18(%rbp),%rax
imul   -0x318(%rbp),%rax
ff
mov    %rax,-0x318(%rbp)
mov    -0x18(%rbp),%rax
imul   -0x320(%rbp),%rax
ff
mov    %rax,-0x310(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x320(%rbp),%rax
ff
mov    %rax,-0x320(%rbp)
mov    -0x308(%rbp),%rax
add    -0x310(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x308(%rbp)
mov    -0x308(%rbp),%rax
cmp    -0x310(%rbp),%rax
jae    45c7 <bn_sqr_comba8+0x34c7>
movabs $0x100000000,%rax
add    -0x320(%rbp),%rax
mov    %rax,-0x320(%rbp)
mov    -0x308(%rbp),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
add    -0x320(%rbp),%rax
mov    %rax,-0x320(%rbp)
movabs $0xffffffff,%rax
and    -0x308(%rbp),%rax
shl    $0x20,%rax
mov    %rax,-0x310(%rbp)
mov    -0x318(%rbp),%rax
add    -0x310(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x318(%rbp)
mov    -0x318(%rbp),%rax
cmp    -0x310(%rbp),%rax
jae    4648 <bn_sqr_comba8+0x3548>
mov    -0x320(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x320(%rbp)
mov    -0x318(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x320(%rbp),%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     4682 <bn_sqr_comba8+0x3582>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     46b6 <bn_sqr_comba8+0x35b6>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x48(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    470a <bn_sqr_comba8+0x360a>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
and    $0xffffffffffffffff,%rax
cmp    $0x0,%rax
jne    470a <bn_sqr_comba8+0x360a>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x38(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    4734 <bn_sqr_comba8+0x3634>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x48(%rbp),%rcx
mov    -0x8(%rbp),%rax
mov    %rcx,0x40(%rax)
movq   $0x0,-0x48(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x38(%rcx),%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x38(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x10(%rcx),%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0x338(%rbp)
mov    -0x30(%rbp),%rax
mov    %rax,-0x340(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x338(%rbp),%rax
ff
mov    %rax,-0x328(%rbp)
mov    -0x18(%rbp),%rax
imul   -0x338(%rbp),%rax
ff
mov    %rax,-0x338(%rbp)
mov    -0x18(%rbp),%rax
imul   -0x340(%rbp),%rax
ff
mov    %rax,-0x330(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x340(%rbp),%rax
ff
mov    %rax,-0x340(%rbp)
mov    -0x328(%rbp),%rax
add    -0x330(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x328(%rbp)
mov    -0x328(%rbp),%rax
cmp    -0x330(%rbp),%rax
jae    4855 <bn_sqr_comba8+0x3755>
movabs $0x100000000,%rax
add    -0x340(%rbp),%rax
mov    %rax,-0x340(%rbp)
mov    -0x328(%rbp),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
add    -0x340(%rbp),%rax
mov    %rax,-0x340(%rbp)
movabs $0xffffffff,%rax
and    -0x328(%rbp),%rax
shl    $0x20,%rax
mov    %rax,-0x330(%rbp)
mov    -0x338(%rbp),%rax
add    -0x330(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x338(%rbp)
mov    -0x338(%rbp),%rax
cmp    -0x330(%rbp),%rax
jae    48d6 <bn_sqr_comba8+0x37d6>
mov    -0x340(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x340(%rbp)
mov    -0x338(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x340(%rbp),%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     4910 <bn_sqr_comba8+0x3810>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     4944 <bn_sqr_comba8+0x3844>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x38(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    4998 <bn_sqr_comba8+0x3898>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
and    $0xffffffffffffffff,%rax
cmp    $0x0,%rax
jne    4998 <bn_sqr_comba8+0x3898>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%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    49c2 <bn_sqr_comba8+0x38c2>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x30(%rcx),%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x30(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x18(%rcx),%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    0x18(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0x358(%rbp)
mov    -0x30(%rbp),%rax
mov    %rax,-0x360(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x358(%rbp),%rax
ff
mov    %rax,-0x348(%rbp)
mov    -0x18(%rbp),%rax
imul   -0x358(%rbp),%rax
ff
mov    %rax,-0x358(%rbp)
mov    -0x18(%rbp),%rax
imul   -0x360(%rbp),%rax
ff
mov    %rax,-0x350(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x360(%rbp),%rax
ff
mov    %rax,-0x360(%rbp)
mov    -0x348(%rbp),%rax
add    -0x350(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x348(%rbp)
mov    -0x348(%rbp),%rax
cmp    -0x350(%rbp),%rax
jae    4acf <bn_sqr_comba8+0x39cf>
movabs $0x100000000,%rax
add    -0x360(%rbp),%rax
mov    %rax,-0x360(%rbp)
mov    -0x348(%rbp),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
add    -0x360(%rbp),%rax
mov    %rax,-0x360(%rbp)
movabs $0xffffffff,%rax
and    -0x348(%rbp),%rax
shl    $0x20,%rax
mov    %rax,-0x350(%rbp)
mov    -0x358(%rbp),%rax
add    -0x350(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x358(%rbp)
mov    -0x358(%rbp),%rax
cmp    -0x350(%rbp),%rax
jae    4b50 <bn_sqr_comba8+0x3a50>
mov    -0x360(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x360(%rbp)
mov    -0x358(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x360(%rbp),%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     4b8a <bn_sqr_comba8+0x3a8a>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     4bbe <bn_sqr_comba8+0x3abe>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x38(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    4c12 <bn_sqr_comba8+0x3b12>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
and    $0xffffffffffffffff,%rax
cmp    $0x0,%rax
jne    4c12 <bn_sqr_comba8+0x3b12>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%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    4c3c <bn_sqr_comba8+0x3b3c>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x28(%rcx),%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x28(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x20(%rcx),%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    0x20(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0x378(%rbp)
mov    -0x30(%rbp),%rax
mov    %rax,-0x380(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x378(%rbp),%rax
ff
mov    %rax,-0x368(%rbp)
mov    -0x18(%rbp),%rax
imul   -0x378(%rbp),%rax
ff
mov    %rax,-0x378(%rbp)
mov    -0x18(%rbp),%rax
imul   -0x380(%rbp),%rax
ff
mov    %rax,-0x370(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x380(%rbp),%rax
ff
mov    %rax,-0x380(%rbp)
mov    -0x368(%rbp),%rax
add    -0x370(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x368(%rbp)
mov    -0x368(%rbp),%rax
cmp    -0x370(%rbp),%rax
jae    4d49 <bn_sqr_comba8+0x3c49>
movabs $0x100000000,%rax
add    -0x380(%rbp),%rax
mov    %rax,-0x380(%rbp)
mov    -0x368(%rbp),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
add    -0x380(%rbp),%rax
mov    %rax,-0x380(%rbp)
movabs $0xffffffff,%rax
and    -0x368(%rbp),%rax
shl    $0x20,%rax
mov    %rax,-0x370(%rbp)
mov    -0x378(%rbp),%rax
add    -0x370(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x378(%rbp)
mov    -0x378(%rbp),%rax
cmp    -0x370(%rbp),%rax
jae    4dca <bn_sqr_comba8+0x3cca>
mov    -0x380(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x380(%rbp)
mov    -0x378(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x380(%rbp),%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     4e04 <bn_sqr_comba8+0x3d04>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     4e38 <bn_sqr_comba8+0x3d38>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x38(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    4e8c <bn_sqr_comba8+0x3d8c>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
and    $0xffffffffffffffff,%rax
cmp    $0x0,%rax
jne    4e8c <bn_sqr_comba8+0x3d8c>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%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    4eb6 <bn_sqr_comba8+0x3db6>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x38(%rbp),%rcx
mov    -0x8(%rbp),%rax
mov    %rcx,0x48(%rax)
movq   $0x0,-0x38(%rbp)
mov    -0x10(%rbp),%rax
mov    0x28(%rax),%rax
mov    %rax,-0x390(%rbp)
movabs $0xffffffff,%rax
and    -0x390(%rbp),%rax
mov    %rax,-0x388(%rbp)
mov    -0x390(%rbp),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x390(%rbp)
mov    -0x388(%rbp),%rax
imul   -0x390(%rbp),%rax
ff
mov    %rax,-0x398(%rbp)
mov    -0x388(%rbp),%rax
imul   -0x388(%rbp),%rax
ff
mov    %rax,-0x388(%rbp)
mov    -0x390(%rbp),%rax
imul   -0x390(%rbp),%rax
ff
mov    %rax,-0x390(%rbp)
mov    -0x398(%rbp),%rax
and    $0xffffffff80000000,%rax
shr    $0x1f,%rax
add    -0x390(%rbp),%rax
mov    %rax,-0x390(%rbp)
movabs $0xffffffff,%rax
and    -0x398(%rbp),%rax
shl    $0x21,%rax
mov    %rax,-0x398(%rbp)
mov    -0x388(%rbp),%rax
add    -0x398(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x388(%rbp)
mov    -0x388(%rbp),%rax
cmp    -0x398(%rbp),%rax
jae    4fcc <bn_sqr_comba8+0x3ecc>
mov    -0x390(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x390(%rbp)
mov    -0x388(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x390(%rbp),%rax
mov    %rax,-0x30(%rbp)
mov    -0x40(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    500c <bn_sqr_comba8+0x3f0c>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%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    5036 <bn_sqr_comba8+0x3f36>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x30(%rcx),%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x30(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x20(%rcx),%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    0x20(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0x3b0(%rbp)
mov    -0x30(%rbp),%rax
mov    %rax,-0x3b8(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x3b0(%rbp),%rax
ff
mov    %rax,-0x3a0(%rbp)
mov    -0x18(%rbp),%rax
imul   -0x3b0(%rbp),%rax
ff
mov    %rax,-0x3b0(%rbp)
mov    -0x18(%rbp),%rax
imul   -0x3b8(%rbp),%rax
ff
mov    %rax,-0x3a8(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x3b8(%rbp),%rax
ff
mov    %rax,-0x3b8(%rbp)
mov    -0x3a0(%rbp),%rax
add    -0x3a8(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x3a0(%rbp)
mov    -0x3a0(%rbp),%rax
cmp    -0x3a8(%rbp),%rax
jae    5143 <bn_sqr_comba8+0x4043>
movabs $0x100000000,%rax
add    -0x3b8(%rbp),%rax
mov    %rax,-0x3b8(%rbp)
mov    -0x3a0(%rbp),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
add    -0x3b8(%rbp),%rax
mov    %rax,-0x3b8(%rbp)
movabs $0xffffffff,%rax
and    -0x3a0(%rbp),%rax
shl    $0x20,%rax
mov    %rax,-0x3a8(%rbp)
mov    -0x3b0(%rbp),%rax
add    -0x3a8(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x3b0(%rbp)
mov    -0x3b0(%rbp),%rax
cmp    -0x3a8(%rbp),%rax
jae    51c4 <bn_sqr_comba8+0x40c4>
mov    -0x3b8(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x3b8(%rbp)
mov    -0x3b0(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x3b8(%rbp),%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     51fe <bn_sqr_comba8+0x40fe>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     5232 <bn_sqr_comba8+0x4132>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x40(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    5286 <bn_sqr_comba8+0x4186>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
and    $0xffffffffffffffff,%rax
cmp    $0x0,%rax
jne    5286 <bn_sqr_comba8+0x4186>
mov    -0x38(%rbp),%rax
add    $0x1,%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    52b0 <bn_sqr_comba8+0x41b0>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x38(%rcx),%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x38(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x18(%rcx),%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    0x18(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0x3d0(%rbp)
mov    -0x30(%rbp),%rax
mov    %rax,-0x3d8(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x3d0(%rbp),%rax
ff
mov    %rax,-0x3c0(%rbp)
mov    -0x18(%rbp),%rax
imul   -0x3d0(%rbp),%rax
ff
mov    %rax,-0x3d0(%rbp)
mov    -0x18(%rbp),%rax
imul   -0x3d8(%rbp),%rax
ff
mov    %rax,-0x3c8(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x3d8(%rbp),%rax
ff
mov    %rax,-0x3d8(%rbp)
mov    -0x3c0(%rbp),%rax
add    -0x3c8(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x3c0(%rbp)
mov    -0x3c0(%rbp),%rax
cmp    -0x3c8(%rbp),%rax
jae    53bd <bn_sqr_comba8+0x42bd>
movabs $0x100000000,%rax
add    -0x3d8(%rbp),%rax
mov    %rax,-0x3d8(%rbp)
mov    -0x3c0(%rbp),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
add    -0x3d8(%rbp),%rax
mov    %rax,-0x3d8(%rbp)
movabs $0xffffffff,%rax
and    -0x3c0(%rbp),%rax
shl    $0x20,%rax
mov    %rax,-0x3c8(%rbp)
mov    -0x3d0(%rbp),%rax
add    -0x3c8(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x3d0(%rbp)
mov    -0x3d0(%rbp),%rax
cmp    -0x3c8(%rbp),%rax
jae    543e <bn_sqr_comba8+0x433e>
mov    -0x3d8(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x3d8(%rbp)
mov    -0x3d0(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x3d8(%rbp),%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     5478 <bn_sqr_comba8+0x4378>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     54ac <bn_sqr_comba8+0x43ac>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x40(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    5500 <bn_sqr_comba8+0x4400>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
and    $0xffffffffffffffff,%rax
cmp    $0x0,%rax
jne    5500 <bn_sqr_comba8+0x4400>
mov    -0x38(%rbp),%rax
add    $0x1,%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    552a <bn_sqr_comba8+0x442a>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x40(%rbp),%rcx
mov    -0x8(%rbp),%rax
mov    %rcx,0x50(%rax)
movq   $0x0,-0x40(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x38(%rcx),%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x38(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x20(%rcx),%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    0x20(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0x3f0(%rbp)
mov    -0x30(%rbp),%rax
mov    %rax,-0x3f8(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x3f0(%rbp),%rax
ff
mov    %rax,-0x3e0(%rbp)
mov    -0x18(%rbp),%rax
imul   -0x3f0(%rbp),%rax
ff
mov    %rax,-0x3f0(%rbp)
mov    -0x18(%rbp),%rax
imul   -0x3f8(%rbp),%rax
ff
mov    %rax,-0x3e8(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x3f8(%rbp),%rax
ff
mov    %rax,-0x3f8(%rbp)
mov    -0x3e0(%rbp),%rax
add    -0x3e8(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x3e0(%rbp)
mov    -0x3e0(%rbp),%rax
cmp    -0x3e8(%rbp),%rax
jae    564b <bn_sqr_comba8+0x454b>
movabs $0x100000000,%rax
add    -0x3f8(%rbp),%rax
mov    %rax,-0x3f8(%rbp)
mov    -0x3e0(%rbp),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
add    -0x3f8(%rbp),%rax
mov    %rax,-0x3f8(%rbp)
movabs $0xffffffff,%rax
and    -0x3e0(%rbp),%rax
shl    $0x20,%rax
mov    %rax,-0x3e8(%rbp)
mov    -0x3f0(%rbp),%rax
add    -0x3e8(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x3f0(%rbp)
mov    -0x3f0(%rbp),%rax
cmp    -0x3e8(%rbp),%rax
jae    56cc <bn_sqr_comba8+0x45cc>
mov    -0x3f8(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x3f8(%rbp)
mov    -0x3f0(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x3f8(%rbp),%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     5706 <bn_sqr_comba8+0x4606>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     573a <bn_sqr_comba8+0x463a>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x48(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    578e <bn_sqr_comba8+0x468e>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
and    $0xffffffffffffffff,%rax
cmp    $0x0,%rax
jne    578e <bn_sqr_comba8+0x468e>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x38(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    57b8 <bn_sqr_comba8+0x46b8>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x30(%rcx),%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x30(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x28(%rcx),%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    0x28(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0x410(%rbp)
mov    -0x30(%rbp),%rax
mov    %rax,-0x418(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x410(%rbp),%rax
ff
mov    %rax,-0x400(%rbp)
mov    -0x18(%rbp),%rax
imul   -0x410(%rbp),%rax
ff
mov    %rax,-0x410(%rbp)
mov    -0x18(%rbp),%rax
imul   -0x418(%rbp),%rax
ff
mov    %rax,-0x408(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x418(%rbp),%rax
ff
mov    %rax,-0x418(%rbp)
mov    -0x400(%rbp),%rax
add    -0x408(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x400(%rbp)
mov    -0x400(%rbp),%rax
cmp    -0x408(%rbp),%rax
jae    58c5 <bn_sqr_comba8+0x47c5>
movabs $0x100000000,%rax
add    -0x418(%rbp),%rax
mov    %rax,-0x418(%rbp)
mov    -0x400(%rbp),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
add    -0x418(%rbp),%rax
mov    %rax,-0x418(%rbp)
movabs $0xffffffff,%rax
and    -0x400(%rbp),%rax
shl    $0x20,%rax
mov    %rax,-0x408(%rbp)
mov    -0x410(%rbp),%rax
add    -0x408(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x410(%rbp)
mov    -0x410(%rbp),%rax
cmp    -0x408(%rbp),%rax
jae    5946 <bn_sqr_comba8+0x4846>
mov    -0x418(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x418(%rbp)
mov    -0x410(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x418(%rbp),%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     5980 <bn_sqr_comba8+0x4880>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     59b4 <bn_sqr_comba8+0x48b4>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x48(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    5a08 <bn_sqr_comba8+0x4908>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
and    $0xffffffffffffffff,%rax
cmp    $0x0,%rax
jne    5a08 <bn_sqr_comba8+0x4908>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x38(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    5a32 <bn_sqr_comba8+0x4932>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x48(%rbp),%rcx
mov    -0x8(%rbp),%rax
mov    %rcx,0x58(%rax)
movq   $0x0,-0x48(%rbp)
mov    -0x10(%rbp),%rax
mov    0x30(%rax),%rax
mov    %rax,-0x428(%rbp)
movabs $0xffffffff,%rax
and    -0x428(%rbp),%rax
mov    %rax,-0x420(%rbp)
mov    -0x428(%rbp),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x428(%rbp)
mov    -0x420(%rbp),%rax
imul   -0x428(%rbp),%rax
ff
mov    %rax,-0x430(%rbp)
mov    -0x420(%rbp),%rax
imul   -0x420(%rbp),%rax
ff
mov    %rax,-0x420(%rbp)
mov    -0x428(%rbp),%rax
imul   -0x428(%rbp),%rax
ff
mov    %rax,-0x428(%rbp)
mov    -0x430(%rbp),%rax
and    $0xffffffff80000000,%rax
shr    $0x1f,%rax
add    -0x428(%rbp),%rax
mov    %rax,-0x428(%rbp)
movabs $0xffffffff,%rax
and    -0x430(%rbp),%rax
shl    $0x21,%rax
mov    %rax,-0x430(%rbp)
mov    -0x420(%rbp),%rax
add    -0x430(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x420(%rbp)
mov    -0x420(%rbp),%rax
cmp    -0x430(%rbp),%rax
jae    5b48 <bn_sqr_comba8+0x4a48>
mov    -0x428(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x428(%rbp)
mov    -0x420(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x428(%rbp),%rax
mov    %rax,-0x30(%rbp)
mov    -0x38(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    5b88 <bn_sqr_comba8+0x4a88>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%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    5bb2 <bn_sqr_comba8+0x4ab2>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x38(%rcx),%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x38(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x28(%rcx),%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    0x28(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0x448(%rbp)
mov    -0x30(%rbp),%rax
mov    %rax,-0x450(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x448(%rbp),%rax
ff
mov    %rax,-0x438(%rbp)
mov    -0x18(%rbp),%rax
imul   -0x448(%rbp),%rax
ff
mov    %rax,-0x448(%rbp)
mov    -0x18(%rbp),%rax
imul   -0x450(%rbp),%rax
ff
mov    %rax,-0x440(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x450(%rbp),%rax
ff
mov    %rax,-0x450(%rbp)
mov    -0x438(%rbp),%rax
add    -0x440(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x438(%rbp)
mov    -0x438(%rbp),%rax
cmp    -0x440(%rbp),%rax
jae    5cbf <bn_sqr_comba8+0x4bbf>
movabs $0x100000000,%rax
add    -0x450(%rbp),%rax
mov    %rax,-0x450(%rbp)
mov    -0x438(%rbp),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
add    -0x450(%rbp),%rax
mov    %rax,-0x450(%rbp)
movabs $0xffffffff,%rax
and    -0x438(%rbp),%rax
shl    $0x20,%rax
mov    %rax,-0x440(%rbp)
mov    -0x448(%rbp),%rax
add    -0x440(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x448(%rbp)
mov    -0x448(%rbp),%rax
cmp    -0x440(%rbp),%rax
jae    5d40 <bn_sqr_comba8+0x4c40>
mov    -0x450(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x450(%rbp)
mov    -0x448(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x450(%rbp),%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     5d7a <bn_sqr_comba8+0x4c7a>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     5dae <bn_sqr_comba8+0x4cae>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x38(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    5e02 <bn_sqr_comba8+0x4d02>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
and    $0xffffffffffffffff,%rax
cmp    $0x0,%rax
jne    5e02 <bn_sqr_comba8+0x4d02>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%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    5e2c <bn_sqr_comba8+0x4d2c>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x38(%rbp),%rcx
mov    -0x8(%rbp),%rax
mov    %rcx,0x60(%rax)
movq   $0x0,-0x38(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x38(%rcx),%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x38(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rcx
movabs $0xffffffff,%rax
and    0x30(%rcx),%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    0x30(%rax),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0x468(%rbp)
mov    -0x30(%rbp),%rax
mov    %rax,-0x470(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x468(%rbp),%rax
ff
mov    %rax,-0x458(%rbp)
mov    -0x18(%rbp),%rax
imul   -0x468(%rbp),%rax
ff
mov    %rax,-0x468(%rbp)
mov    -0x18(%rbp),%rax
imul   -0x470(%rbp),%rax
ff
mov    %rax,-0x460(%rbp)
mov    -0x20(%rbp),%rax
imul   -0x470(%rbp),%rax
mov    %rax,-0x470(%rbp)
mov    -0x458(%rbp),%rax
add    -0x460(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x458(%rbp)
mov    -0x458(%rbp),%rax
cmp    -0x460(%rbp),%rax
jae    5f4d <bn_sqr_comba8+0x4e4d>
movabs $0x100000000,%rax
add    -0x470(%rbp),%rax
mov    %rax,-0x470(%rbp)
mov    -0x458(%rbp),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
add    -0x470(%rbp),%rax
mov    %rax,-0x470(%rbp)
movabs $0xffffffff,%rax
and    -0x458(%rbp),%rax
shl    $0x20,%rax
mov    %rax,-0x460(%rbp)
mov    -0x468(%rbp),%rax
add    -0x460(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x468(%rbp)
mov    -0x468(%rbp),%rax
cmp    -0x460(%rbp),%rax
jae    5fce <bn_sqr_comba8+0x4ece>
mov    -0x470(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x470(%rbp)
mov    -0x468(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x470(%rbp),%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     6008 <bn_sqr_comba8+0x4f08>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x30(%rbp)
movabs $0x8000000000000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     603c <bn_sqr_comba8+0x4f3c>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x40(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    6090 <bn_sqr_comba8+0x4f90>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
and    $0xffffffffffffffff,%rax
cmp    $0x0,%rax
jne    6090 <bn_sqr_comba8+0x4f90>
mov    -0x38(%rbp),%rax
add    $0x1,%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    60ba <bn_sqr_comba8+0x4fba>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x40(%rbp),%rcx
mov    -0x8(%rbp),%rax
mov    %rcx,0x68(%rax)
movq   $0x0,-0x40(%rbp)
mov    -0x10(%rbp),%rax
mov    0x38(%rax),%rax
mov    %rax,-0x480(%rbp)
movabs $0xffffffff,%rax
and    -0x480(%rbp),%rax
mov    %rax,-0x478(%rbp)
mov    -0x480(%rbp),%rax
shr    $0x20,%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x480(%rbp)
mov    -0x478(%rbp),%rax
imul   -0x480(%rbp),%rax
ff
mov    %rax,-0x488(%rbp)
mov    -0x478(%rbp),%rax
imul   -0x478(%rbp),%rax
ff
mov    %rax,-0x478(%rbp)
mov    -0x480(%rbp),%rax
imul   -0x480(%rbp),%rax
ff
mov    %rax,-0x480(%rbp)
mov    -0x488(%rbp),%rax
and    $0xffffffff80000000,%rax
shr    $0x1f,%rax
add    -0x480(%rbp),%rax
mov    %rax,-0x480(%rbp)
movabs $0xffffffff,%rax
and    -0x488(%rbp),%rax
shl    $0x21,%rax
mov    %rax,-0x488(%rbp)
mov    -0x478(%rbp),%rax
add    -0x488(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x478(%rbp)
mov    -0x478(%rbp),%rax
cmp    -0x488(%rbp),%rax
jae    61d0 <bn_sqr_comba8+0x50d0>
mov    -0x480(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x480(%rbp)
mov    -0x478(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x480(%rbp),%rax
mov    %rax,-0x30(%rbp)
mov    -0x48(%rbp),%rax
add    -0x28(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    6210 <bn_sqr_comba8+0x5110>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x38(%rbp),%rax
add    -0x30(%rbp),%rax
and    $0xffffffffffffffff,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    623a <bn_sqr_comba8+0x513a>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x48(%rbp),%rcx
mov    -0x8(%rbp),%rax
mov    %rcx,0x70(%rax)
mov    -0x38(%rbp),%rcx
mov    -0x8(%rbp),%rax
mov    %rcx,0x78(%rax)
add    $0x408,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<bn_sqr_comba8>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
mov    %rsi,%r8
mov    (%rsi),%rcx
mov    %ecx,%edx
shr    $0x20,%rcx
mov    %rdx,%rsi
imul   %rcx,%rsi
imul   %rdx,%rdx
imul   %rcx,%rcx
mov    %rsi,%rax
shr    $0x1f,%rax
shl    $0x21,%rsi
add    %rdx,%rsi
adc    %rcx,%rax
mov    %rsi,(%rdi)
mov    (%r8),%rcx
mov    0x8(%r8),%rsi
mov    %esi,%ebp
shr    $0x20,%rsi
mov    %ecx,%edx
shr    $0x20,%rcx
mov    %rcx,%rbx
imul   %rbp,%rbx
imul   %rdx,%rbp
imul   %rsi,%rdx
imul   %rsi,%rcx
movabs $0x100000000,%r9
lea    (%rcx,%r9,1),%rsi
mov    %r9,%r13
add    %rbx,%rdx
cmovae %rcx,%rsi
mov    %rdx,%rcx
shr    $0x20,%rcx
shl    $0x20,%rdx
add    %rbp,%rdx
adc    %rsi,%rcx
mov    %rcx,%rbp
shr    $0x3f,%rbp
shld   $0x1,%rdx,%rcx
add    %rdx,%rdx
mov    %rcx,%rsi
inc    %rsi
sete   %bl
add    %rax,%rdx
setb   %al
cmovae %rcx,%rsi
and    %bl,%al
movzbl %al,%r9d
add    %rbp,%r9
mov    %rdx,0x8(%rdi)
mov    (%r8),%rbp
mov    0x8(%r8),%rax
mov    %eax,%edx
shr    $0x20,%rax
mov    %rdx,%rcx
imul   %rax,%rcx
imul   %rdx,%rdx
imul   %rax,%rax
mov    %rcx,%rbx
shr    $0x1f,%rbx
add    %rax,%rbx
shl    $0x21,%rcx
xor    %r11d,%r11d
add    %rdx,%rcx
setb   %r11b
add    %rsi,%rcx
adc    %rbx,%r11
mov    0x10(%r8),%rax
mov    %eax,%r10d
shr    $0x20,%rax
mov    %ebp,%esi
shr    $0x20,%rbp
mov    %rbp,%rbx
imul   %r10,%rbx
imul   %rsi,%r10
imul   %rax,%rsi
imul   %rax,%rbp
mov    %rbp,%rdx
add    %r13,%rdx
add    %rbx,%rsi
cmovae %rbp,%rdx
mov    %rsi,%rax
shr    $0x20,%rax
shl    $0x20,%rsi
add    %r10,%rsi
adc    %rdx,%rax
xor    %edx,%edx
add    %r9,%r11
setb   %dl
mov    $0x1,%ebp
adc    $0x0,%rbp
test   %rax,%rax
cmovns %rdx,%rbp
shld   $0x1,%rsi,%rax
add    %rsi,%rsi
mov    %rax,%r15
inc    %r15
sete   %dl
add    %rcx,%rsi
cmovae %rax,%r15
setb   %al
and    %dl,%al
movzbl %al,%r9d
add    %rbp,%r9
lea    (%r11,%r15,1),%rax
mov    %rsi,0x10(%rdi)
mov    0x18(%r8),%rcx
mov    %ecx,%edx
shr    $0x20,%rcx
mov    (%r8),%rsi
mov    %esi,%ebx
shr    $0x20,%rsi
mov    %rsi,%rbp
imul   %rdx,%rbp
imul   %rbx,%rdx
imul   %rcx,%rbx
imul   %rcx,%rsi
lea    (%rsi,%r13,1),%rcx
add    %rbp,%rbx
cmovae %rsi,%rcx
mov    0x8(%r8),%rsi
mov    %rbx,%rbp
shr    $0x20,%rbp
shl    $0x20,%rbx
add    %rdx,%rbx
adc    %rcx,%rbp
mov    %rbp,%r14
shld   $0x1,%rbx,%rbp
shr    $0x3f,%r14
add    %rbx,%rbx
mov    %rbp,%r12
inc    %r12
sete   %dl
add    %rax,%rbx
setb   %al
cmovae %rbp,%r12
and    %dl,%al
movzbl %al,%r10d
mov    0x10(%r8),%rdx
mov    %edx,%ebp
shr    $0x20,%rdx
mov    %esi,%eax
shr    $0x20,%rsi
mov    %rsi,%rcx
imul   %rbp,%rcx
imul   %rax,%rbp
imul   %rdx,%rax
imul   %rdx,%rsi
lea    (%rsi,%r13,1),%rdx
add    %rcx,%rax
cmovae %rsi,%rdx
mov    %rax,%rcx
shr    $0x20,%rcx
shl    $0x20,%rax
add    %rbp,%rax
adc    %rdx,%rcx
mov    %rcx,%rdx
shr    $0x3f,%rdx
shld   $0x1,%rax,%rcx
add    %rax,%rax
mov    %rcx,%rsi
inc    %rsi
sete   %bpl
add    %rbx,%rax
setb   %bl
cmovae %rcx,%rsi
and    %bpl,%bl
add    %r14,%rdx
add    %r10,%rdx
add    %r11,%r15
adc    %r9,%r12
movzbl %bl,%r10d
mov    %rax,0x18(%rdi)
mov    %rdi,-0x20(%rsp)
mov    0x10(%r8),%rcx
mov    %ecx,%ebp
adc    %rdx,%r10
lea    (%r12,%rsi,1),%r9
shr    $0x20,%rcx
mov    %rbp,%rbx
imul   %rcx,%rbx
imul   %rbp,%rbp
imul   %rcx,%rcx
mov    %rbx,%rax
shr    $0x1f,%rax
add    %rcx,%rax
shl    $0x21,%rbx
xor    %r14d,%r14d
add    %rbp,%rbx
setb   %r14b
add    %r9,%rbx
adc    %rax,%r14
add    %rsi,%r12
adc    %r10,%r14
setb   %al
movzbl %al,%r9d
mov    0x18(%r8),%rax
mov    %eax,%ebp
mov    0x8(%r8),%rsi
mov    $0x1,%r10d
adc    $0x0,%r10
mov    %esi,%ecx
shr    $0x20,%rax
shr    $0x20,%rsi
mov    %rsi,%rdx
imul   %rbp,%rdx
imul   %rcx,%rbp
imul   %rax,%rcx
imul   %rax,%rsi
lea    (%rsi,%r13,1),%rax
add    %rdx,%rcx
cmovae %rsi,%rax
mov    %rcx,%rdx
shr    $0x20,%rdx
shl    $0x20,%rcx
add    %rbp,%rcx
adc    %rax,%rdx
cmovns %r9,%r10
shld   $0x1,%rcx,%rdx
mov    (%r8),%rbp
add    %rcx,%rcx
mov    %rdx,%r11
inc    %r11
sete   %al
add    %rbx,%rcx
setb   %bl
cmovae %rdx,%r11
and    %al,%bl
movzbl %bl,%r12d
mov    0x20(%r8),%rdx
mov    %edx,%ebx
shr    $0x20,%rdx
mov    %ebp,%esi
shr    $0x20,%rbp
mov    %rbp,%rax
imul   %rbx,%rax
imul   %rsi,%rbx
imul   %rdx,%rsi
imul   %rdx,%rbp
mov    %rbp,%rdx
add    %r13,%rdx
mov    %r13,%r9
add    %rax,%rsi
cmovae %rbp,%rdx
mov    %rsi,%rax
shr    $0x20,%rax
shl    $0x20,%rsi
add    %rbx,%rsi
adc    %rdx,%rax
mov    %rax,%r15
shr    $0x3f,%r15
shld   $0x1,%rsi,%rax
add    %rsi,%rsi
mov    %rax,%rdx
inc    %rdx
sete   %bpl
add    %rcx,%rsi
setb   %cl
cmovae %rax,%rdx
mov    %rdx,-0x18(%rsp)
and    %bpl,%cl
movzbl %cl,%eax
add    %r12,%r15
add    %rax,%r15
add    %r14,%r11
mov    %rsi,0x20(%rdi)
mov    0x28(%r8),%rbx
mov    %ebx,%esi
mov    (%r8),%rbp
mov    0x8(%r8),%r13
mov    %r8,%rdi
mov    %ebp,%ecx
adc    %r10,%r15
lea    (%r11,%rdx,1),%r14
shr    $0x20,%rbx
shr    $0x20,%rbp
mov    %rbp,%rdx
imul   %rsi,%rdx
imul   %rcx,%rsi
imul   %rbx,%rcx
imul   %rbx,%rbp
lea    (%r9,%rbp,1),%rbx
add    %rdx,%rcx
cmovae %rbp,%rbx
mov    %rcx,%rdx
shr    $0x20,%rdx
shl    $0x20,%rcx
add    %rsi,%rcx
adc    %rbx,%rdx
mov    %rdx,%r10
shr    $0x3f,%r10
shld   $0x1,%rcx,%rdx
add    %rcx,%rcx
mov    %rdx,%r12
inc    %r12
sete   %bl
add    %r14,%rcx
cmovae %rdx,%r12
setb   %r14b
and    %bl,%r14b
mov    0x20(%r8),%rdx
mov    %edx,%esi
shr    $0x20,%rdx
mov    %r13d,%ebx
shr    $0x20,%r13
mov    %r13,%rax
imul   %rsi,%rax
imul   %rbx,%rsi
imul   %rdx,%rbx
imul   %rdx,%r13
lea    (%r9,%r13,1),%rdx
add    %rax,%rbx
cmovae %r13,%rdx
mov    %rbx,%rax
shr    $0x20,%rax
shl    $0x20,%rbx
add    %rsi,%rbx
adc    %rdx,%rax
mov    %rax,%rbp
shr    $0x3f,%rbp
shld   $0x1,%rbx,%rax
add    %rbx,%rbx
mov    %rax,%r13
inc    %r13
sete   %r9b
add    %rcx,%rbx
setb   %r8b
cmovae %rax,%r13
mov    %rdi,%rax
mov    %rdi,-0x10(%rsp)
mov    0x18(%rdi),%rcx
mov    %ecx,%edi
shr    $0x20,%rcx
mov    0x10(%rax),%rax
mov    %eax,%edx
shr    $0x20,%rax
mov    %rax,%rsi
imul   %rdi,%rsi
imul   %rdx,%rdi
imul   %rcx,%rdx
imul   %rcx,%rax
and    %r9b,%r8b
add    %rsi,%rdx
movabs $0x100000000,%rcx
lea    (%rax,%rcx,1),%rcx
cmovae %rax,%rcx
mov    %rdx,%rax
shr    $0x20,%rax
shl    $0x20,%rdx
add    %rdi,%rdx
adc    %rcx,%rax
mov    %rax,%rcx
shr    $0x3f,%rcx
shld   $0x1,%rdx,%rax
add    %rdx,%rdx
mov    %rax,%rsi
inc    %rsi
sete   %r9b
add    %rbx,%rdx
cmovae %rax,%rsi
setb   %al
add    %r10,%rbp
movzbl %r14b,%ebx
movzbl %r8b,%edi
and    %r9b,%al
add    %rcx,%rbp
add    %rbx,%rbp
add    %rdi,%rbp
add    -0x18(%rsp),%r11
adc    %r15,%r12
movzbl %al,%ebx
adc    %rbp,%rbx
xor    %ecx,%ecx
add    %r13,%r12
setb   %cl
mov    -0x20(%rsp),%rax
mov    %rdx,0x28(%rax)
mov    -0x10(%rsp),%r13
mov    0x18(%r13),%rax
mov    %eax,%edx
shr    $0x20,%rax
mov    %rdx,%rdi
imul   %rax,%rdi
imul   %rdx,%rdx
imul   %rax,%rax
mov    %rdi,%rbp
shr    $0x1f,%rbp
add    %rax,%rbp
shl    $0x21,%rdi
xor    %r9d,%r9d
add    %rdx,%rdi
setb   %r9b
add    %rsi,%r12
adc    %rbx,%rcx
add    %rdi,%r12
adc    %rbp,%r9
mov    0x20(%r13),%rdx
mov    %edx,%esi
shr    $0x20,%rdx
mov    0x10(%r13),%rdi
mov    %edi,%eax
shr    $0x20,%rdi
mov    %rdi,%rbp
imul   %rsi,%rbp
imul   %rax,%rsi
imul   %rdx,%rax
imul   %rdx,%rdi
movabs $0x100000000,%r8
lea    (%rdi,%r8,1),%rbx
add    %rbp,%rax
cmovae %rdi,%rbx
mov    %rax,%rdx
shr    $0x20,%rdx
shl    $0x20,%rax
add    %rsi,%rax
adc    %rbx,%rdx
xor    %esi,%esi
add    %rcx,%r9
setb   %sil
mov    $0x1,%r11d
adc    $0x0,%r11
test   %rdx,%rdx
cmovns %rsi,%r11
shld   $0x1,%rax,%rdx
add    %rax,%rax
mov    %rdx,%r15
inc    %r15
sete   %cl
add    %r12,%rax
setb   %r10b
cmovae %rdx,%r15
and    %cl,%r10b
mov    0x28(%r13),%rcx
mov    %ecx,%ebx
shr    $0x20,%rcx
mov    0x0(%r13),%rsi
mov    0x8(%r13),%rdi
mov    %edi,%edx
shr    $0x20,%rdi
mov    %rdi,%rbp
imul   %rbx,%rbp
imul   %rdx,%rbx
imul   %rcx,%rdx
imul   %rcx,%rdi
lea    (%rdi,%r8,1),%rcx
add    %rbp,%rdx
cmovae %rdi,%rcx
mov    %rdx,%rdi
shr    $0x20,%rdi
shl    $0x20,%rdx
add    %rbx,%rdx
adc    %rcx,%rdi
mov    %rdi,%r14
shr    $0x3f,%r14
shld   $0x1,%rdx,%rdi
add    %rdx,%rdx
mov    %rdi,%r12
inc    %r12
sete   %cl
add    %rax,%rdx
setb   %r8b
cmovae %rdi,%r12
and    %cl,%r8b
mov    0x30(%r13),%rax
mov    %eax,%edi
shr    $0x20,%rax
mov    %esi,%ebp
shr    $0x20,%rsi
mov    %rsi,%rbx
imul   %rdi,%rbx
imul   %rbp,%rdi
imul   %rax,%rbp
imul   %rax,%rsi
movabs $0x100000000,%rax
add    %rsi,%rax
add    %rbx,%rbp
cmovae %rsi,%rax
movzbl %r10b,%esi
mov    %rbp,%rcx
shr    $0x20,%rcx
shl    $0x20,%rbp
add    %rdi,%rbp
adc    %rax,%rcx
mov    %rcx,%rax
shld   $0x1,%rbp,%rcx
shr    $0x3f,%rax
add    %rbp,%rbp
mov    %rcx,%r10
inc    %r10
sete   %bl
add    %rdx,%rbp
movzbl %r8b,%edx
cmovae %rcx,%r10
setb   %cl
and    %bl,%cl
movzbl %cl,%ecx
add    %r14,%rax
add    %rsi,%rax
add    %rdx,%rax
add    %rcx,%rax
add    %r9,%r15
adc    %r11,%rax
xor    %r8d,%r8d
add    %r12,%r15
setb   %r8b
mov    -0x20(%rsp),%rcx
mov    %rbp,0x30(%rcx)
mov    %r13,%r14
mov    0x38(%r13),%rcx
mov    %ecx,%ebp
mov    0x0(%r13),%rbx
mov    %ebx,%esi
shr    $0x20,%rcx
shr    $0x20,%rbx
mov    %rbx,%rdi
imul   %rbp,%rdi
imul   %rsi,%rbp
imul   %rcx,%rsi
imul   %rcx,%rbx
movabs $0x100000000,%r9
lea    (%rbx,%r9,1),%rdx
add    %rdi,%rsi
cmovae %rbx,%rdx
mov    0x8(%r13),%rcx
mov    %rsi,%rdi
shr    $0x20,%rdi
shl    $0x20,%rsi
add    %rbp,%rsi
adc    %rdx,%rdi
mov    %rdi,%rdx
shld   $0x1,%rsi,%rdi
shr    $0x3f,%rdx
mov    %rdx,-0x18(%rsp)
add    %rsi,%rsi
mov    %rdi,%r11
inc    %r11
sete   %dl
add    %r10,%r15
adc    %rax,%r8
add    %rsi,%r15
setb   %al
cmovae %rdi,%r11
and    %dl,%al
mov    %al,-0x21(%rsp)
xor    %eax,%eax
add    %r8,%r11
setb   %al
mov    %rax,-0x8(%rsp)
mov    0x30(%r13),%rax
mov    %eax,%edx
shr    $0x20,%rax
mov    %ecx,%ebp
shr    $0x20,%rcx
mov    %rcx,%rsi
imul   %rdx,%rsi
imul   %rbp,%rdx
imul   %rax,%rbp
imul   %rax,%rcx
mov    %r9,%r10
lea    (%rcx,%r9,1),%rax
add    %rsi,%rbp
cmovae %rcx,%rax
mov    %rbp,%rcx
shr    $0x20,%rcx
shl    $0x20,%rbp
add    %rdx,%rbp
adc    %rax,%rcx
mov    %rcx,%r8
shld   $0x1,%rbp,%rcx
shr    $0x3f,%r8
add    %rbp,%rbp
mov    %rcx,%r9
inc    %r9
sete   %al
add    %r15,%rbp
setb   %r15b
cmovae %rcx,%r9
and    %al,%r15b
mov    0x28(%r13),%rcx
mov    %ecx,%eax
shr    $0x20,%rcx
mov    0x10(%r13),%rdi
mov    %edi,%ebx
shr    $0x20,%rdi
mov    %rdi,%rsi
imul   %rax,%rsi
imul   %rbx,%rax
imul   %rcx,%rbx
imul   %rcx,%rdi
lea    (%rdi,%r10,1),%rcx
add    %rsi,%rbx
cmovae %rdi,%rcx
mov    %rbx,%rsi
shr    $0x20,%rsi
shl    $0x20,%rbx
add    %rax,%rbx
adc    %rcx,%rsi
mov    %rsi,%r12
shr    $0x3f,%r12
shld   $0x1,%rbx,%rsi
add    %rbx,%rbx
mov    %rsi,%r13
inc    %r13
sete   %r10b
add    %rbp,%rbx
setb   %bpl
cmovae %rsi,%r13
mov    0x20(%r14),%rsi
mov    %esi,%edi
shr    $0x20,%rsi
mov    0x18(%r14),%rax
mov    %eax,%ecx
shr    $0x20,%rax
mov    %rax,%rdx
imul   %rdi,%rdx
imul   %rcx,%rdi
imul   %rsi,%rcx
imul   %rsi,%rax
and    %r10b,%bpl
add    %rdx,%rcx
movabs $0x100000000,%rdx
lea    (%rax,%rdx,1),%rdx
cmovae %rax,%rdx
mov    %rcx,%rsi
shr    $0x20,%rsi
shl    $0x20,%rcx
add    %rdi,%rcx
adc    %rdx,%rsi
mov    %rsi,%rdx
shr    $0x3f,%rdx
shld   $0x1,%rcx,%rsi
add    %rcx,%rcx
mov    %rsi,%rax
inc    %rax
sete   %r10b
add    %rbx,%rcx
cmovae %rsi,%rax
setb   %bl
add    -0x18(%rsp),%r8
movzbl -0x21(%rsp),%esi
add    %r12,%r8
movzbl %r15b,%edi
movzbl %bpl,%ebp
and    %r10b,%bl
movzbl %bl,%ebx
add    %rdx,%r8
add    %rsi,%r8
add    %rdi,%r8
add    %rbp,%r8
add    %rbx,%r8
add    %r11,%r9
adc    -0x8(%rsp),%r8
xor    %ebp,%ebp
add    %r13,%r9
setb   %bpl
mov    -0x20(%rsp),%rdx
mov    %rcx,0x38(%rdx)
mov    0x20(%r14),%rcx
mov    %ecx,%edx
shr    $0x20,%rcx
mov    %rdx,%rsi
imul   %rcx,%rsi
imul   %rdx,%rdx
imul   %rcx,%rcx
mov    %rsi,%rbx
shr    $0x1f,%rbx
add    %rcx,%rbx
shl    $0x21,%rsi
xor    %r12d,%r12d
add    %rdx,%rsi
setb   %r12b
add    %rax,%r9
adc    %r8,%rbp
add    %rsi,%r9
adc    %rbx,%r12
mov    0x28(%r14),%rax
mov    %eax,%ecx
shr    $0x20,%rax
mov    0x18(%r14),%rdx
mov    %edx,%ebx
shr    $0x20,%rdx
mov    %rdx,%rsi
imul   %rcx,%rsi
imul   %rbx,%rcx
imul   %rax,%rbx
imul   %rax,%rdx
movabs $0x100000000,%r8
lea    (%rdx,%r8,1),%rdi
add    %rsi,%rbx
cmovae %rdx,%rdi
mov    %rbx,%rax
shr    $0x20,%rax
shl    $0x20,%rbx
add    %rcx,%rbx
adc    %rdi,%rax
xor    %ecx,%ecx
add    %rbp,%r12
setb   %cl
mov    $0x1,%r10d
adc    $0x0,%r10
test   %rax,%rax
cmovns %rcx,%r10
shld   $0x1,%rbx,%rax
add    %rbx,%rbx
mov    %rax,%r15
inc    %r15
sete   %cl
add    %r9,%rbx
cmovae %rax,%r15
setb   %r11b
and    %cl,%r11b
mov    0x30(%r14),%rax
mov    %eax,%ecx
shr    $0x20,%rax
mov    0x10(%r14),%rsi
mov    %esi,%edx
shr    $0x20,%rsi
mov    %rsi,%rdi
imul   %rcx,%rdi
imul   %rdx,%rcx
imul   %rax,%rdx
imul   %rax,%rsi
lea    (%rsi,%r8,1),%rax
add    %rdi,%rdx
cmovae %rsi,%rax
mov    %r14,%rsi
mov    0x8(%r14),%rbp
mov    %rdx,%rdi
shr    $0x20,%rdi
shl    $0x20,%rdx
add    %rcx,%rdx
adc    %rax,%rdi
mov    %rdi,%r14
shld   $0x1,%rdx,%rdi
shr    $0x3f,%r14
add    %rdx,%rdx
mov    %rdi,%r13
inc    %r13
sete   %r8b
add    %rbx,%rdx
setb   %r9b
cmovae %rdi,%r13
mov    0x38(%rsi),%rdi
mov    %edi,%ebx
shr    $0x20,%rdi
mov    %ebp,%ecx
shr    $0x20,%rbp
mov    %rbp,%rsi
imul   %rbx,%rsi
imul   %rcx,%rbx
imul   %rdi,%rcx
imul   %rdi,%rbp
movzbl %r11b,%r11d
and    %r8b,%r9b
add    %rsi,%rcx
movabs $0x100000000,%rax
lea    0x0(%rbp,%rax,1),%rsi
cmovae %rbp,%rsi
mov    %rcx,%rdi
shr    $0x20,%rdi
shl    $0x20,%rcx
add    %rbx,%rcx
adc    %rsi,%rdi
mov    %rdi,%rbp
shr    $0x3f,%rbp
shld   $0x1,%rcx,%rdi
add    %rcx,%rcx
mov    %rdi,%rbx
inc    %rbx
sete   %al
add    %rdx,%rcx
movzbl %r9b,%esi
setb   %dl
cmovae %rdi,%rbx
and    %al,%dl
movzbl %dl,%eax
add    %r14,%rbp
add    %r11,%rbp
add    %rsi,%rbp
add    %rax,%rbp
add    %r12,%r15
adc    %r10,%rbp
xor    %r10d,%r10d
add    %r13,%r15
setb   %r10b
mov    -0x20(%rsp),%rax
mov    %rcx,0x40(%rax)
mov    -0x10(%rsp),%r13
mov    0x38(%r13),%rcx
mov    %ecx,%edx
mov    0x10(%r13),%rsi
mov    %esi,%eax
shr    $0x20,%rcx
shr    $0x20,%rsi
mov    %rsi,%rdi
imul   %rdx,%rdi
imul   %rax,%rdx
imul   %rcx,%rax
imul   %rcx,%rsi
movabs $0x100000000,%r8
lea    (%rsi,%r8,1),%rcx
add    %rdi,%rax
cmovae %rsi,%rcx
mov    %rax,%rsi
shr    $0x20,%rsi
shl    $0x20,%rax
add    %rdx,%rax
adc    %rcx,%rsi
mov    %rsi,%r9
shr    $0x3f,%r9
shld   $0x1,%rax,%rsi
add    %rax,%rax
mov    %rsi,%r14
inc    %r14
sete   %dl
add    %rbx,%r15
adc    %rbp,%r10
mov    0x18(%r13),%rcx
add    %rax,%r15
cmovae %rsi,%r14
setb   %r11b
and    %dl,%r11b
mov    0x30(%r13),%rax
mov    %eax,%edx
shr    $0x20,%rax
mov    %ecx,%ebp
shr    $0x20,%rcx
mov    %rcx,%rsi
imul   %rdx,%rsi
imul   %rbp,%rdx
imul   %rax,%rbp
imul   %rax,%rcx
lea    (%rcx,%r8,1),%rax
add    %rsi,%rbp
cmovae %rcx,%rax
mov    %rbp,%rsi
shr    $0x20,%rsi
shl    $0x20,%rbp
add    %rdx,%rbp
adc    %rax,%rsi
mov    %rsi,%rbx
shr    $0x3f,%rbx
shld   $0x1,%rbp,%rsi
add    %rbp,%rbp
mov    %rsi,%r12
inc    %r12
sete   %r8b
add    %r15,%rbp
setb   %r15b
cmovae %rsi,%r12
mov    0x28(%r13),%rsi
mov    %esi,%edi
shr    $0x20,%rsi
mov    0x20(%r13),%rcx
mov    %ecx,%edx
shr    $0x20,%rcx
mov    %rcx,%rax
imul   %rdi,%rax
imul   %rdx,%rdi
imul   %rsi,%rdx
imul   %rsi,%rcx
movzbl %r11b,%r11d
and    %r8b,%r15b
add    %rax,%rdx
movabs $0x100000000,%rax
lea    (%rcx,%rax,1),%rax
cmovae %rcx,%rax
mov    %rdx,%rcx
shr    $0x20,%rcx
shl    $0x20,%rdx
add    %rdi,%rdx
adc    %rax,%rcx
mov    %rcx,%rdi
shr    $0x3f,%rdi
shld   $0x1,%rdx,%rcx
add    %rdx,%rdx
mov    %rcx,%rsi
inc    %rsi
sete   %r8b
add    %rbp,%rdx
movzbl %r15b,%ebp
setb   %al
cmovae %rcx,%rsi
and    %r8b,%al
add    %r9,%rbx
add    %rdi,%rbx
add    %r11,%rbx
add    %rbp,%rbx
add    %r10,%r14
movzbl %al,%ebp
adc    %rbx,%rbp
xor    %ecx,%ecx
add    %r12,%r14
setb   %cl
mov    -0x20(%rsp),%r12
mov    %rdx,0x48(%r12)
mov    0x28(%r13),%rax
mov    %eax,%edx
shr    $0x20,%rax
mov    %rdx,%rdi
imul   %rax,%rdi
imul   %rdx,%rdx
imul   %rax,%rax
mov    %rdi,%rbx
shr    $0x1f,%rbx
add    %rax,%rbx
shl    $0x21,%rdi
xor    %r11d,%r11d
add    %rdx,%rdi
setb   %r11b
add    %rsi,%r14
adc    %rbp,%rcx
add    %rdi,%r14
adc    %rbx,%r11
mov    0x30(%r13),%rdx
mov    %edx,%esi
shr    $0x20,%rdx
mov    0x20(%r13),%rdi
mov    %edi,%eax
shr    $0x20,%rdi
mov    %rdi,%rbp
imul   %rsi,%rbp
imul   %rax,%rsi
imul   %rdx,%rax
imul   %rdx,%rdi
movabs $0x100000000,%r9
lea    (%rdi,%r9,1),%rbx
add    %rbp,%rax
cmovae %rdi,%rbx
mov    %rax,%rdx
shr    $0x20,%rdx
shl    $0x20,%rax
add    %rsi,%rax
adc    %rbx,%rdx
mov    0x18(%r13),%rsi
xor    %edi,%edi
add    %rcx,%r11
setb   %dil
mov    $0x1,%r8d
adc    $0x0,%r8
test   %rdx,%rdx
cmovns %rdi,%r8
shld   $0x1,%rax,%rdx
add    %rax,%rax
mov    %rdx,%r10
inc    %r10
sete   %cl
add    %r14,%rax
setb   %bl
cmovae %rdx,%r10
and    %cl,%bl
movzbl %bl,%edx
mov    0x38(%r13),%rcx
mov    %ecx,%edi
shr    $0x20,%rcx
mov    %esi,%ebp
shr    $0x20,%rsi
mov    %rsi,%rbx
imul   %rdi,%rbx
imul   %rbp,%rdi
imul   %rcx,%rbp
imul   %rcx,%rsi
lea    (%rsi,%r9,1),%rcx
mov    %r9,%r14
add    %rbx,%rbp
cmovae %rsi,%rcx
mov    %rbp,%rsi
shr    $0x20,%rsi
shl    $0x20,%rbp
add    %rdi,%rbp
adc    %rcx,%rsi
mov    %rsi,%r15
shr    $0x3f,%r15
shld   $0x1,%rbp,%rsi
add    %rbp,%rbp
mov    %rsi,%r9
inc    %r9
sete   %bl
add    %rax,%rbp
cmovae %rsi,%r9
setb   %al
and    %bl,%al
movzbl %al,%eax
add    %rdx,%r15
add    %rax,%r15
add    %r11,%r10
mov    %rbp,0x50(%r12)
mov    0x38(%r13),%rdi
mov    %edi,%esi
mov    0x20(%r13),%rbp
mov    0x28(%r13),%r12
mov    %ebp,%ecx
adc    %r8,%r15
shr    $0x20,%rdi
shr    $0x20,%rbp
mov    %rbp,%rbx
imul   %rsi,%rbx
imul   %rcx,%rsi
imul   %rdi,%rcx
imul   %rdi,%rbp
mov    %r14,%r8
lea    (%r14,%rbp,1),%rdi
add    %rbx,%rcx
cmovae %rbp,%rdi
lea    (%r10,%r9,1),%rbp
mov    %rcx,%rax
shr    $0x20,%rax
shl    $0x20,%rcx
add    %rsi,%rcx
adc    %rdi,%rax
mov    %rax,%r11
shld   $0x1,%rcx,%rax
shr    $0x3f,%r11
add    %rcx,%rcx
mov    %rax,%rbx
inc    %rbx
sete   %dil
add    %rbp,%rcx
setb   %r14b
cmovae %rax,%rbx
mov    0x30(%r13),%rax
mov    %eax,%ebp
shr    $0x20,%rax
mov    %r12d,%esi
shr    $0x20,%r12
mov    %r12,%rdx
imul   %rbp,%rdx
imul   %rsi,%rbp
imul   %rax,%rsi
imul   %rax,%r12
and    %dil,%r14b
add    %rdx,%rsi
lea    (%r12,%r8,1),%rax
cmovae %r12,%rax
mov    %rsi,%rdi
shr    $0x20,%rdi
shl    $0x20,%rsi
add    %rbp,%rsi
adc    %rax,%rdi
mov    %rdi,%rdx
shr    $0x3f,%rdx
shld   $0x1,%rsi,%rdi
add    %rsi,%rsi
mov    %rdi,%rbp
inc    %rbp
sete   %al
add    %rcx,%rsi
cmovae %rdi,%rbp
setb   %cl
add    %r11,%rdx
and    %al,%cl
movzbl %r14b,%eax
add    %rax,%rdx
mov    $0x1,%r11d
add    %r9,%r10
adc    %r15,%rbx
movzbl %cl,%r9d
mov    -0x20(%rsp),%r8
mov    %rsi,0x58(%r8)
mov    0x30(%r13),%rax
mov    %eax,%esi
adc    %rdx,%r9
shr    $0x20,%rax
mov    %rsi,%rcx
imul   %rax,%rcx
imul   %rsi,%rsi
imul   %rax,%rax
mov    %rcx,%rdx
shr    $0x1f,%rdx
add    %rax,%rdx
shl    $0x21,%rcx
xor    %r10d,%r10d
add    %rsi,%rcx
lea    (%rbx,%rbp,1),%rax
setb   %r10b
add    %rax,%rcx
mov    0x28(%r13),%rax
adc    %rdx,%r10
add    %rbp,%rbx
adc    %r9,%r10
setb   %dl
mov    0x38(%r13),%rdi
mov    %edi,%ebp
mov    %eax,%esi
adc    $0x0,%r11
shr    $0x20,%rdi
shr    $0x20,%rax
mov    %rax,%rbx
imul   %rbp,%rbx
imul   %rsi,%rbp
imul   %rdi,%rsi
imul   %rdi,%rax
movzbl %dl,%edx
add    %rbx,%rsi
movabs $0x100000000,%r9
lea    (%rax,%r9,1),%rdi
cmovae %rax,%rdi
mov    %rsi,%rax
shr    $0x20,%rax
shl    $0x20,%rsi
add    %rbp,%rsi
adc    %rdi,%rax
cmovns %rdx,%r11
shld   $0x1,%rsi,%rax
add    %rsi,%rsi
mov    %rax,%rbp
inc    %rbp
sete   %dl
add    %rcx,%rsi
setb   %cl
cmovae %rax,%rbp
and    %dl,%cl
movzbl %cl,%ecx
add    %r11,%rcx
mov    %r8,%r11
mov    %rsi,0x60(%r8)
mov    0x30(%r13),%rax
mov    0x38(%r13),%rdx
mov    %edx,%edi
shr    $0x20,%rdx
mov    %eax,%esi
shr    $0x20,%rax
mov    %rax,%rbx
imul   %rdi,%rbx
imul   %rsi,%rdi
imul   %rdx,%rsi
imul   %rdx,%rax
mov    %r9,%rdx
add    %rax,%rdx
add    %rbx,%rsi
lea    (%r10,%rbp,1),%rbx
cmovae %rax,%rdx
mov    %rdx,%rax
mov    %rsi,%rdx
shr    $0x20,%rdx
shl    $0x20,%rsi
add    %rdi,%rsi
adc    %rax,%rdx
mov    %rdx,%rax
shld   $0x1,%rsi,%rax
add    %rsi,%rsi
mov    %rax,%rdi
inc    %rdi
sete   %r9b
add    %rbx,%rsi
cmovae %rax,%rdi
setb   %bl
add    %r10,%rbp
adc    %rcx,%rdi
setb   %r8b
mov    %rsi,0x68(%r11)
mov    0x38(%r13),%rcx
mov    %ecx,%eax
shr    $0x20,%rcx
mov    %rax,%rbp
imul   %rcx,%rbp
imul   %rcx,%rcx
mov    %rbp,%rsi
shr    $0x1f,%rsi
add    %rcx,%rsi
and    %r9b,%bl
shr    $0x3f,%rdx
imul   %rax,%rax
shl    $0x21,%rbp
add    %rax,%rbp
adc    %rdx,%rsi
movzbl %bl,%eax
add    %rax,%rsi
add    %rdi,%rbp
movzbl %r8b,%eax
adc    %rax,%rsi
mov    %rbp,0x70(%r11)
mov    %rsi,0x78(%r11)
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
define void @bn_sqr_comba8(i64* %0, i64* %1) {
%3 = alloca i64*
%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
%78 = alloca i64
%79 = alloca i64
%80 = alloca i64
%81 = alloca i64
%82 = alloca i64
%83 = alloca i64
%84 = alloca i64
%85 = alloca i64
%86 = alloca i64
%87 = alloca i64
%88 = alloca i64
%89 = alloca i64
%90 = alloca i64
%91 = alloca i64
%92 = alloca i64
%93 = alloca i64
%94 = alloca i64
%95 = alloca i64
%96 = alloca i64
%97 = alloca i64
%98 = alloca i64
%99 = alloca i64
%100 = alloca i64
%101 = alloca i64
%102 = alloca i64
%103 = alloca i64
%104 = alloca i64
%105 = alloca i64
%106 = alloca i64
%107 = alloca i64
%108 = alloca i64
%109 = alloca i64
%110 = alloca i64
%111 = alloca i64
%112 = alloca i64
%113 = alloca i64
%114 = alloca i64
%115 = alloca i64
%116 = alloca i64
%117 = alloca i64
%118 = alloca i64
%119 = alloca i64
%120 = alloca i64
%121 = alloca i64
%122 = alloca i64
%123 = alloca i64
%124 = alloca i64
%125 = alloca i64
%126 = alloca i64
%127 = alloca i64
%128 = alloca i64
%129 = alloca i64
%130 = alloca i64
%131 = alloca i64
%132 = alloca i64
%133 = alloca i64
%134 = alloca i64
%135 = alloca i64
%136 = alloca i64
%137 = alloca i64
%138 = alloca i64
%139 = alloca i64
%140 = alloca i64
%141 = alloca i64
%142 = alloca i64
%143 = alloca i64
%144 = alloca i64
%145 = alloca i64
%146 = alloca i64
%147 = alloca i64
store i64* %0, i64** %3
store i64* %1, i64** %4
store i64 0, i64* %9
store i64 0, i64* %10
store i64 0, i64* %11
%148 = load i64*, i64** %4
%149 = getelementptr inbounds i64, i64* %148, i64 0
%150 = load i64, i64* %149
store i64 %150, i64* %13
%151 = load i64, i64* %13
%152 = and i64 %151, 4294967295
store i64 %152, i64* %12
%153 = load i64, i64* %13
%154 = lshr i64 %153, 32
%155 = and i64 %154, 4294967295
store i64 %155, i64* %13
%156 = load i64, i64* %12
%157 = load i64, i64* %13
%158 = mul i64 %156, %157
store i64 %158, i64* %14
%159 = load i64, i64* %12
%160 = load i64, i64* %12
%161 = mul i64 %160, %159
store i64 %161, i64* %12
%162 = load i64, i64* %13
%163 = load i64, i64* %13
%164 = mul i64 %163, %162
store i64 %164, i64* %13
%165 = load i64, i64* %14
%166 = and i64 %165, -2147483648
%167 = lshr i64 %166, 31
%168 = load i64, i64* %13
%169 = add i64 %168, %167
store i64 %169, i64* %13
%170 = load i64, i64* %14
%171 = and i64 %170, 4294967295
%172 = shl i64 %171, 33
store i64 %172, i64* %14
%173 = load i64, i64* %12
%174 = load i64, i64* %14
%175 = add i64 %173, %174
%176 = and i64 %175, -1
store i64 %176, i64* %12
%177 = load i64, i64* %12
%178 = load i64, i64* %14
%179 = icmp ult i64 %177, %178
br i1 %179, label %180, label %183
180: ; preds = %2
%181 = load i64, i64* %13
%182 = add i64 %181, 1
store i64 %182, i64* %13
br label %183
183: ; preds = %180, %2
%184 = load i64, i64* %12
store i64 %184, i64* %7
%185 = load i64, i64* %13
store i64 %185, i64* %8
%186 = load i64, i64* %9
%187 = load i64, i64* %7
%188 = add i64 %186, %187
%189 = and i64 %188, -1
store i64 %189, i64* %9
%190 = load i64, i64* %9
%191 = load i64, i64* %7
%192 = icmp ult i64 %190, %191
br i1 %192, label %193, label %196
193: ; preds = %183
%194 = load i64, i64* %8
%195 = add i64 %194, 1
store i64 %195, i64* %8
br label %196
196: ; preds = %193, %183
%197 = load i64, i64* %10
%198 = load i64, i64* %8
%199 = add i64 %197, %198
%200 = and i64 %199, -1
store i64 %200, i64* %10
%201 = load i64, i64* %10
%202 = load i64, i64* %8
%203 = icmp ult i64 %201, %202
br i1 %203, label %204, label %207
204: ; preds = %196
%205 = load i64, i64* %11
%206 = add i64 %205, 1
store i64 %206, i64* %11
br label %207
207: ; preds = %204, %196
%208 = load i64, i64* %9
%209 = load i64*, i64** %3
%210 = getelementptr inbounds i64, i64* %209, i64 0
store i64 %208, i64* %210
store i64 0, i64* %9
%211 = load i64*, i64** %4
%212 = getelementptr inbounds i64, i64* %211, i64 1
%213 = load i64, i64* %212
%214 = and i64 %213, 4294967295
store i64 %214, i64* %7
%215 = load i64*, i64** %4
%216 = getelementptr inbounds i64, i64* %215, i64 1
%217 = load i64, i64* %216
%218 = lshr i64 %217, 32
%219 = and i64 %218, 4294967295
store i64 %219, i64* %8
%220 = load i64*, i64** %4
%221 = getelementptr inbounds i64, i64* %220, i64 0
%222 = load i64, i64* %221
%223 = and i64 %222, 4294967295
store i64 %223, i64* %5
%224 = load i64*, i64** %4
%225 = getelementptr inbounds i64, i64* %224, i64 0
%226 = load i64, i64* %225
%227 = lshr i64 %226, 32
%228 = and i64 %227, 4294967295
store i64 %228, i64* %6
%229 = load i64, i64* %7
store i64 %229, i64* %17
%230 = load i64, i64* %8
store i64 %230, i64* %18
%231 = load i64, i64* %6
%232 = load i64, i64* %17
%233 = mul i64 %231, %232
store i64 %233, i64* %15
%234 = load i64, i64* %5
%235 = load i64, i64* %17
%236 = mul i64 %234, %235
store i64 %236, i64* %17
%237 = load i64, i64* %5
%238 = load i64, i64* %18
%239 = mul i64 %237, %238
store i64 %239, i64* %16
%240 = load i64, i64* %6
%241 = load i64, i64* %18
%242 = mul i64 %240, %241
store i64 %242, i64* %18
%243 = load i64, i64* %15
%244 = load i64, i64* %16
%245 = add i64 %243, %244
%246 = and i64 %245, -1
store i64 %246, i64* %15
%247 = load i64, i64* %15
%248 = load i64, i64* %16
%249 = icmp ult i64 %247, %248
br i1 %249, label %250, label %253
250: ; preds = %207
%251 = load i64, i64* %18
%252 = add i64 %251, 4294967296
store i64 %252, i64* %18
br label %253
253: ; preds = %250, %207
%254 = load i64, i64* %15
%255 = lshr i64 %254, 32
%256 = and i64 %255, 4294967295
%257 = load i64, i64* %18
%258 = add i64 %257, %256
store i64 %258, i64* %18
%259 = load i64, i64* %15
%260 = and i64 %259, 4294967295
%261 = shl i64 %260, 32
store i64 %261, i64* %16
%262 = load i64, i64* %17
%263 = load i64, i64* %16
%264 = add i64 %262, %263
%265 = and i64 %264, -1
store i64 %265, i64* %17
%266 = load i64, i64* %17
%267 = load i64, i64* %16
%268 = icmp ult i64 %266, %267
br i1 %268, label %269, label %272
269: ; preds = %253
%270 = load i64, i64* %18
%271 = add i64 %270, 1
store i64 %271, i64* %18
br label %272
272: ; preds = %269, %253
%273 = load i64, i64* %17
store i64 %273, i64* %7
%274 = load i64, i64* %18
store i64 %274, i64* %8
%275 = load i64, i64* %8
%276 = and i64 %275, -9223372036854775808
%277 = icmp ne i64 %276, 0
br i1 %277, label %278, label %281
278: ; preds = %272
%279 = load i64, i64* %9
%280 = add i64 %279, 1
store i64 %280, i64* %9
br label %281
281: ; preds = %278, %272
%282 = load i64, i64* %8
%283 = load i64, i64* %8
%284 = add i64 %282, %283
%285 = and i64 %284, -1
store i64 %285, i64* %8
%286 = load i64, i64* %7
%287 = and i64 %286, -9223372036854775808
%288 = icmp ne i64 %287, 0
br i1 %288, label %289, label %292
289: ; preds = %281
%290 = load i64, i64* %8
%291 = add i64 %290, 1
store i64 %291, i64* %8
br label %292
292: ; preds = %289, %281
%293 = load i64, i64* %7
%294 = load i64, i64* %7
%295 = add i64 %293, %294
%296 = and i64 %295, -1
store i64 %296, i64* %7
%297 = load i64, i64* %10
%298 = load i64, i64* %7
%299 = add i64 %297, %298
%300 = and i64 %299, -1
store i64 %300, i64* %10
%301 = load i64, i64* %10
%302 = load i64, i64* %7
%303 = icmp ult i64 %301, %302
br i1 %303, label %304, label %312
304: ; preds = %292
%305 = load i64, i64* %8
%306 = add i64 %305, 1
store i64 %306, i64* %8
%307 = and i64 %306, -1
%308 = icmp eq i64 %307, 0
br i1 %308, label %309, label %312
309: ; preds = %304
%310 = load i64, i64* %9
%311 = add i64 %310, 1
store i64 %311, i64* %9
br label %312
312: ; preds = %309, %304, %292
%313 = load i64, i64* %11
%314 = load i64, i64* %8
%315 = add i64 %313, %314
%316 = and i64 %315, -1
store i64 %316, i64* %11
%317 = load i64, i64* %11
%318 = load i64, i64* %8
%319 = icmp ult i64 %317, %318
br i1 %319, label %320, label %323
320: ; preds = %312
%321 = load i64, i64* %9
%322 = add i64 %321, 1
store i64 %322, i64* %9
br label %323
323: ; preds = %320, %312
%324 = load i64, i64* %10
%325 = load i64*, i64** %3
%326 = getelementptr inbounds i64, i64* %325, i64 1
store i64 %324, i64* %326
store i64 0, i64* %10
%327 = load i64*, i64** %4
%328 = getelementptr inbounds i64, i64* %327, i64 1
%329 = load i64, i64* %328
store i64 %329, i64* %20
%330 = load i64, i64* %20
%331 = and i64 %330, 4294967295
store i64 %331, i64* %19
%332 = load i64, i64* %20
%333 = lshr i64 %332, 32
%334 = and i64 %333, 4294967295
store i64 %334, i64* %20
%335 = load i64, i64* %19
%336 = load i64, i64* %20
%337 = mul i64 %335, %336
store i64 %337, i64* %21
%338 = load i64, i64* %19
%339 = load i64, i64* %19
%340 = mul i64 %339, %338
store i64 %340, i64* %19
%341 = load i64, i64* %20
%342 = load i64, i64* %20
%343 = mul i64 %342, %341
store i64 %343, i64* %20
%344 = load i64, i64* %21
%345 = and i64 %344, -2147483648
%346 = lshr i64 %345, 31
%347 = load i64, i64* %20
%348 = add i64 %347, %346
store i64 %348, i64* %20
%349 = load i64, i64* %21
%350 = and i64 %349, 4294967295
%351 = shl i64 %350, 33
store i64 %351, i64* %21
%352 = load i64, i64* %19
%353 = load i64, i64* %21
%354 = add i64 %352, %353
%355 = and i64 %354, -1
store i64 %355, i64* %19
%356 = load i64, i64* %19
%357 = load i64, i64* %21
%358 = icmp ult i64 %356, %357
br i1 %358, label %359, label %362
359: ; preds = %323
%360 = load i64, i64* %20
%361 = add i64 %360, 1
store i64 %361, i64* %20
br label %362
362: ; preds = %359, %323
%363 = load i64, i64* %19
store i64 %363, i64* %7
%364 = load i64, i64* %20
store i64 %364, i64* %8
%365 = load i64, i64* %11
%366 = load i64, i64* %7
%367 = add i64 %365, %366
%368 = and i64 %367, -1
store i64 %368, i64* %11
%369 = load i64, i64* %11
%370 = load i64, i64* %7
%371 = icmp ult i64 %369, %370
br i1 %371, label %372, label %375
372: ; preds = %362
%373 = load i64, i64* %8
%374 = add i64 %373, 1
store i64 %374, i64* %8
br label %375
375: ; preds = %372, %362
%376 = load i64, i64* %9
%377 = load i64, i64* %8
%378 = add i64 %376, %377
%379 = and i64 %378, -1
store i64 %379, i64* %9
%380 = load i64, i64* %9
%381 = load i64, i64* %8
%382 = icmp ult i64 %380, %381
br i1 %382, label %383, label %386
383: ; preds = %375
%384 = load i64, i64* %10
%385 = add i64 %384, 1
store i64 %385, i64* %10
br label %386
386: ; preds = %383, %375
%387 = load i64*, i64** %4
%388 = getelementptr inbounds i64, i64* %387, i64 2
%389 = load i64, i64* %388
%390 = and i64 %389, 4294967295
store i64 %390, i64* %7
%391 = load i64*, i64** %4
%392 = getelementptr inbounds i64, i64* %391, i64 2
%393 = load i64, i64* %392
%394 = lshr i64 %393, 32
%395 = and i64 %394, 4294967295
store i64 %395, i64* %8
%396 = load i64*, i64** %4
%397 = getelementptr inbounds i64, i64* %396, i64 0
%398 = load i64, i64* %397
%399 = and i64 %398, 4294967295
store i64 %399, i64* %5
%400 = load i64*, i64** %4
%401 = getelementptr inbounds i64, i64* %400, i64 0
%402 = load i64, i64* %401
%403 = lshr i64 %402, 32
%404 = and i64 %403, 4294967295
store i64 %404, i64* %6
%405 = load i64, i64* %7
store i64 %405, i64* %24
%406 = load i64, i64* %8
store i64 %406, i64* %25
%407 = load i64, i64* %6
%408 = load i64, i64* %24
%409 = mul i64 %407, %408
store i64 %409, i64* %22
%410 = load i64, i64* %5
%411 = load i64, i64* %24
%412 = mul i64 %410, %411
store i64 %412, i64* %24
%413 = load i64, i64* %5
%414 = load i64, i64* %25
%415 = mul i64 %413, %414
store i64 %415, i64* %23
%416 = load i64, i64* %6
%417 = load i64, i64* %25
%418 = mul i64 %416, %417
store i64 %418, i64* %25
%419 = load i64, i64* %22
%420 = load i64, i64* %23
%421 = add i64 %419, %420
%422 = and i64 %421, -1
store i64 %422, i64* %22
%423 = load i64, i64* %22
%424 = load i64, i64* %23
%425 = icmp ult i64 %423, %424
br i1 %425, label %426, label %429
426: ; preds = %386
%427 = load i64, i64* %25
%428 = add i64 %427, 4294967296
store i64 %428, i64* %25
br label %429
429: ; preds = %426, %386
%430 = load i64, i64* %22
%431 = lshr i64 %430, 32
%432 = and i64 %431, 4294967295
%433 = load i64, i64* %25
%434 = add i64 %433, %432
store i64 %434, i64* %25
%435 = load i64, i64* %22
%436 = and i64 %435, 4294967295
%437 = shl i64 %436, 32
store i64 %437, i64* %23
%438 = load i64, i64* %24
%439 = load i64, i64* %23
%440 = add i64 %438, %439
%441 = and i64 %440, -1
store i64 %441, i64* %24
%442 = load i64, i64* %24
%443 = load i64, i64* %23
%444 = icmp ult i64 %442, %443
br i1 %444, label %445, label %448
445: ; preds = %429
%446 = load i64, i64* %25
%447 = add i64 %446, 1
store i64 %447, i64* %25
br label %448
448: ; preds = %445, %429
%449 = load i64, i64* %24
store i64 %449, i64* %7
%450 = load i64, i64* %25
store i64 %450, i64* %8
%451 = load i64, i64* %8
%452 = and i64 %451, -9223372036854775808
%453 = icmp ne i64 %452, 0
br i1 %453, label %454, label %457
454: ; preds = %448
%455 = load i64, i64* %10
%456 = add i64 %455, 1
store i64 %456, i64* %10
br label %457
457: ; preds = %454, %448
%458 = load i64, i64* %8
%459 = load i64, i64* %8
%460 = add i64 %458, %459
%461 = and i64 %460, -1
store i64 %461, i64* %8
%462 = load i64, i64* %7
%463 = and i64 %462, -9223372036854775808
%464 = icmp ne i64 %463, 0
br i1 %464, label %465, label %468
465: ; preds = %457
%466 = load i64, i64* %8
%467 = add i64 %466, 1
store i64 %467, i64* %8
br label %468
468: ; preds = %465, %457
%469 = load i64, i64* %7
%470 = load i64, i64* %7
%471 = add i64 %469, %470
%472 = and i64 %471, -1
store i64 %472, i64* %7
%473 = load i64, i64* %11
%474 = load i64, i64* %7
%475 = add i64 %473, %474
%476 = and i64 %475, -1
store i64 %476, i64* %11
%477 = load i64, i64* %11
%478 = load i64, i64* %7
%479 = icmp ult i64 %477, %478
br i1 %479, label %480, label %488
480: ; preds = %468
%481 = load i64, i64* %8
%482 = add i64 %481, 1
store i64 %482, i64* %8
%483 = and i64 %482, -1
%484 = icmp eq i64 %483, 0
br i1 %484, label %485, label %488
485: ; preds = %480
%486 = load i64, i64* %10
%487 = add i64 %486, 1
store i64 %487, i64* %10
br label %488
488: ; preds = %485, %480, %468
%489 = load i64, i64* %9
%490 = load i64, i64* %8
%491 = add i64 %489, %490
%492 = and i64 %491, -1
store i64 %492, i64* %9
%493 = load i64, i64* %9
%494 = load i64, i64* %8
%495 = icmp ult i64 %493, %494
br i1 %495, label %496, label %499
496: ; preds = %488
%497 = load i64, i64* %10
%498 = add i64 %497, 1
store i64 %498, i64* %10
br label %499
499: ; preds = %496, %488
%500 = load i64, i64* %11
%501 = load i64*, i64** %3
%502 = getelementptr inbounds i64, i64* %501, i64 2
store i64 %500, i64* %502
store i64 0, i64* %11
%503 = load i64*, i64** %4
%504 = getelementptr inbounds i64, i64* %503, i64 3
%505 = load i64, i64* %504
%506 = and i64 %505, 4294967295
store i64 %506, i64* %7
%507 = load i64*, i64** %4
%508 = getelementptr inbounds i64, i64* %507, i64 3
%509 = load i64, i64* %508
%510 = lshr i64 %509, 32
%511 = and i64 %510, 4294967295
store i64 %511, i64* %8
%512 = load i64*, i64** %4
%513 = getelementptr inbounds i64, i64* %512, i64 0
%514 = load i64, i64* %513
%515 = and i64 %514, 4294967295
store i64 %515, i64* %5
%516 = load i64*, i64** %4
%517 = getelementptr inbounds i64, i64* %516, i64 0
%518 = load i64, i64* %517
%519 = lshr i64 %518, 32
%520 = and i64 %519, 4294967295
store i64 %520, i64* %6
%521 = load i64, i64* %7
store i64 %521, i64* %28
%522 = load i64, i64* %8
store i64 %522, i64* %29
%523 = load i64, i64* %6
%524 = load i64, i64* %28
%525 = mul i64 %523, %524
store i64 %525, i64* %26
%526 = load i64, i64* %5
%527 = load i64, i64* %28
%528 = mul i64 %526, %527
store i64 %528, i64* %28
%529 = load i64, i64* %5
%530 = load i64, i64* %29
%531 = mul i64 %529, %530
store i64 %531, i64* %27
%532 = load i64, i64* %6
%533 = load i64, i64* %29
%534 = mul i64 %532, %533
store i64 %534, i64* %29
%535 = load i64, i64* %26
%536 = load i64, i64* %27
%537 = add i64 %535, %536
%538 = and i64 %537, -1
store i64 %538, i64* %26
%539 = load i64, i64* %26
%540 = load i64, i64* %27
%541 = icmp ult i64 %539, %540
br i1 %541, label %542, label %545
542: ; preds = %499
%543 = load i64, i64* %29
%544 = add i64 %543, 4294967296
store i64 %544, i64* %29
br label %545
545: ; preds = %542, %499
%546 = load i64, i64* %26
%547 = lshr i64 %546, 32
%548 = and i64 %547, 4294967295
%549 = load i64, i64* %29
%550 = add i64 %549, %548
store i64 %550, i64* %29
%551 = load i64, i64* %26
%552 = and i64 %551, 4294967295
%553 = shl i64 %552, 32
store i64 %553, i64* %27
%554 = load i64, i64* %28
%555 = load i64, i64* %27
%556 = add i64 %554, %555
%557 = and i64 %556, -1
store i64 %557, i64* %28
%558 = load i64, i64* %28
%559 = load i64, i64* %27
%560 = icmp ult i64 %558, %559
br i1 %560, label %561, label %564
561: ; preds = %545
%562 = load i64, i64* %29
%563 = add i64 %562, 1
store i64 %563, i64* %29
br label %564
564: ; preds = %561, %545
%565 = load i64, i64* %28
store i64 %565, i64* %7
%566 = load i64, i64* %29
store i64 %566, i64* %8
%567 = load i64, i64* %8
%568 = and i64 %567, -9223372036854775808
%569 = icmp ne i64 %568, 0
br i1 %569, label %570, label %573
570: ; preds = %564
%571 = load i64, i64* %11
%572 = add i64 %571, 1
store i64 %572, i64* %11
br label %573
573: ; preds = %570, %564
%574 = load i64, i64* %8
%575 = load i64, i64* %8
%576 = add i64 %574, %575
%577 = and i64 %576, -1
store i64 %577, i64* %8
%578 = load i64, i64* %7
%579 = and i64 %578, -9223372036854775808
%580 = icmp ne i64 %579, 0
br i1 %580, label %581, label %584
581: ; preds = %573
%582 = load i64, i64* %8
%583 = add i64 %582, 1
store i64 %583, i64* %8
br label %584
584: ; preds = %581, %573
%585 = load i64, i64* %7
%586 = load i64, i64* %7
%587 = add i64 %585, %586
%588 = and i64 %587, -1
store i64 %588, i64* %7
%589 = load i64, i64* %9
%590 = load i64, i64* %7
%591 = add i64 %589, %590
%592 = and i64 %591, -1
store i64 %592, i64* %9
%593 = load i64, i64* %9
%594 = load i64, i64* %7
%595 = icmp ult i64 %593, %594
br i1 %595, label %596, label %604
596: ; preds = %584
%597 = load i64, i64* %8
%598 = add i64 %597, 1
store i64 %598, i64* %8
%599 = and i64 %598, -1
%600 = icmp eq i64 %599, 0
br i1 %600, label %601, label %604
601: ; preds = %596
%602 = load i64, i64* %11
%603 = add i64 %602, 1
store i64 %603, i64* %11
br label %604
604: ; preds = %601, %596, %584
%605 = load i64, i64* %10
%606 = load i64, i64* %8
%607 = add i64 %605, %606
%608 = and i64 %607, -1
store i64 %608, i64* %10
%609 = load i64, i64* %10
%610 = load i64, i64* %8
%611 = icmp ult i64 %609, %610
br i1 %611, label %612, label %615
612: ; preds = %604
%613 = load i64, i64* %11
%614 = add i64 %613, 1
store i64 %614, i64* %11
br label %615
615: ; preds = %612, %604
%616 = load i64*, i64** %4
%617 = getelementptr inbounds i64, i64* %616, i64 2
%618 = load i64, i64* %617
%619 = and i64 %618, 4294967295
store i64 %619, i64* %7
%620 = load i64*, i64** %4
%621 = getelementptr inbounds i64, i64* %620, i64 2
%622 = load i64, i64* %621
%623 = lshr i64 %622, 32
%624 = and i64 %623, 4294967295
store i64 %624, i64* %8
%625 = load i64*, i64** %4
%626 = getelementptr inbounds i64, i64* %625, i64 1
%627 = load i64, i64* %626
%628 = and i64 %627, 4294967295
store i64 %628, i64* %5
%629 = load i64*, i64** %4
%630 = getelementptr inbounds i64, i64* %629, i64 1
%631 = load i64, i64* %630
%632 = lshr i64 %631, 32
%633 = and i64 %632, 4294967295
store i64 %633, i64* %6
%634 = load i64, i64* %7
store i64 %634, i64* %32
%635 = load i64, i64* %8
store i64 %635, i64* %33
%636 = load i64, i64* %6
%637 = load i64, i64* %32
%638 = mul i64 %636, %637
store i64 %638, i64* %30
%639 = load i64, i64* %5
%640 = load i64, i64* %32
%641 = mul i64 %639, %640
store i64 %641, i64* %32
%642 = load i64, i64* %5
%643 = load i64, i64* %33
%644 = mul i64 %642, %643
store i64 %644, i64* %31
%645 = load i64, i64* %6
%646 = load i64, i64* %33
%647 = mul i64 %645, %646
store i64 %647, i64* %33
%648 = load i64, i64* %30
%649 = load i64, i64* %31
%650 = add i64 %648, %649
%651 = and i64 %650, -1
store i64 %651, i64* %30
%652 = load i64, i64* %30
%653 = load i64, i64* %31
%654 = icmp ult i64 %652, %653
br i1 %654, label %655, label %658
655: ; preds = %615
%656 = load i64, i64* %33
%657 = add i64 %656, 4294967296
store i64 %657, i64* %33
br label %658
658: ; preds = %655, %615
%659 = load i64, i64* %30
%660 = lshr i64 %659, 32
%661 = and i64 %660, 4294967295
%662 = load i64, i64* %33
%663 = add i64 %662, %661
store i64 %663, i64* %33
%664 = load i64, i64* %30
%665 = and i64 %664, 4294967295
%666 = shl i64 %665, 32
store i64 %666, i64* %31
%667 = load i64, i64* %32
%668 = load i64, i64* %31
%669 = add i64 %667, %668
%670 = and i64 %669, -1
store i64 %670, i64* %32
%671 = load i64, i64* %32
%672 = load i64, i64* %31
%673 = icmp ult i64 %671, %672
br i1 %673, label %674, label %677
674: ; preds = %658
%675 = load i64, i64* %33
%676 = add i64 %675, 1
store i64 %676, i64* %33
br label %677
677: ; preds = %674, %658
%678 = load i64, i64* %32
store i64 %678, i64* %7
%679 = load i64, i64* %33
store i64 %679, i64* %8
%680 = load i64, i64* %8
%681 = and i64 %680, -9223372036854775808
%682 = icmp ne i64 %681, 0
br i1 %682, label %683, label %686
683: ; preds = %677
%684 = load i64, i64* %11
%685 = add i64 %684, 1
store i64 %685, i64* %11
br label %686
686: ; preds = %683, %677
%687 = load i64, i64* %8
%688 = load i64, i64* %8
%689 = add i64 %687, %688
%690 = and i64 %689, -1
store i64 %690, i64* %8
%691 = load i64, i64* %7
%692 = and i64 %691, -9223372036854775808
%693 = icmp ne i64 %692, 0
br i1 %693, label %694, label %697
694: ; preds = %686
%695 = load i64, i64* %8
%696 = add i64 %695, 1
store i64 %696, i64* %8
br label %697
697: ; preds = %694, %686
%698 = load i64, i64* %7
%699 = load i64, i64* %7
%700 = add i64 %698, %699
%701 = and i64 %700, -1
store i64 %701, i64* %7
%702 = load i64, i64* %9
%703 = load i64, i64* %7
%704 = add i64 %702, %703
%705 = and i64 %704, -1
store i64 %705, i64* %9
%706 = load i64, i64* %9
%707 = load i64, i64* %7
%708 = icmp ult i64 %706, %707
br i1 %708, label %709, label %717
709: ; preds = %697
%710 = load i64, i64* %8
%711 = add i64 %710, 1
store i64 %711, i64* %8
%712 = and i64 %711, -1
%713 = icmp eq i64 %712, 0
br i1 %713, label %714, label %717
714: ; preds = %709
%715 = load i64, i64* %11
%716 = add i64 %715, 1
store i64 %716, i64* %11
br label %717
717: ; preds = %714, %709, %697
%718 = load i64, i64* %10
%719 = load i64, i64* %8
%720 = add i64 %718, %719
%721 = and i64 %720, -1
store i64 %721, i64* %10
%722 = load i64, i64* %10
%723 = load i64, i64* %8
%724 = icmp ult i64 %722, %723
br i1 %724, label %725, label %728
725: ; preds = %717
%726 = load i64, i64* %11
%727 = add i64 %726, 1
store i64 %727, i64* %11
br label %728
728: ; preds = %725, %717
%729 = load i64, i64* %9
%730 = load i64*, i64** %3
%731 = getelementptr inbounds i64, i64* %730, i64 3
store i64 %729, i64* %731
store i64 0, i64* %9
%732 = load i64*, i64** %4
%733 = getelementptr inbounds i64, i64* %732, i64 2
%734 = load i64, i64* %733
store i64 %734, i64* %35
%735 = load i64, i64* %35
%736 = and i64 %735, 4294967295
store i64 %736, i64* %34
%737 = load i64, i64* %35
%738 = lshr i64 %737, 32
%739 = and i64 %738, 4294967295
store i64 %739, i64* %35
%740 = load i64, i64* %34
%741 = load i64, i64* %35
%742 = mul i64 %740, %741
store i64 %742, i64* %36
%743 = load i64, i64* %34
%744 = load i64, i64* %34
%745 = mul i64 %744, %743
store i64 %745, i64* %34
%746 = load i64, i64* %35
%747 = load i64, i64* %35
%748 = mul i64 %747, %746
store i64 %748, i64* %35
%749 = load i64, i64* %36
%750 = and i64 %749, -2147483648
%751 = lshr i64 %750, 31
%752 = load i64, i64* %35
%753 = add i64 %752, %751
store i64 %753, i64* %35
%754 = load i64, i64* %36
%755 = and i64 %754, 4294967295
%756 = shl i64 %755, 33
store i64 %756, i64* %36
%757 = load i64, i64* %34
%758 = load i64, i64* %36
%759 = add i64 %757, %758
%760 = and i64 %759, -1
store i64 %760, i64* %34
%761 = load i64, i64* %34
%762 = load i64, i64* %36
%763 = icmp ult i64 %761, %762
br i1 %763, label %764, label %767
764: ; preds = %728
%765 = load i64, i64* %35
%766 = add i64 %765, 1
store i64 %766, i64* %35
br label %767
767: ; preds = %764, %728
%768 = load i64, i64* %34
store i64 %768, i64* %7
%769 = load i64, i64* %35
store i64 %769, i64* %8
%770 = load i64, i64* %10
%771 = load i64, i64* %7
%772 = add i64 %770, %771
%773 = and i64 %772, -1
store i64 %773, i64* %10
%774 = load i64, i64* %10
%775 = load i64, i64* %7
%776 = icmp ult i64 %774, %775
br i1 %776, label %777, label %780
777: ; preds = %767
%778 = load i64, i64* %8
%779 = add i64 %778, 1
store i64 %779, i64* %8
br label %780
780: ; preds = %777, %767
%781 = load i64, i64* %11
%782 = load i64, i64* %8
%783 = add i64 %781, %782
%784 = and i64 %783, -1
store i64 %784, i64* %11
%785 = load i64, i64* %11
%786 = load i64, i64* %8
%787 = icmp ult i64 %785, %786
br i1 %787, label %788, label %791
788: ; preds = %780
%789 = load i64, i64* %9
%790 = add i64 %789, 1
store i64 %790, i64* %9
br label %791
791: ; preds = %788, %780
%792 = load i64*, i64** %4
%793 = getelementptr inbounds i64, i64* %792, i64 3
%794 = load i64, i64* %793
%795 = and i64 %794, 4294967295
store i64 %795, i64* %7
%796 = load i64*, i64** %4
%797 = getelementptr inbounds i64, i64* %796, i64 3
%798 = load i64, i64* %797
%799 = lshr i64 %798, 32
%800 = and i64 %799, 4294967295
store i64 %800, i64* %8
%801 = load i64*, i64** %4
%802 = getelementptr inbounds i64, i64* %801, i64 1
%803 = load i64, i64* %802
%804 = and i64 %803, 4294967295
store i64 %804, i64* %5
%805 = load i64*, i64** %4
%806 = getelementptr inbounds i64, i64* %805, i64 1
%807 = load i64, i64* %806
%808 = lshr i64 %807, 32
%809 = and i64 %808, 4294967295
store i64 %809, i64* %6
%810 = load i64, i64* %7
store i64 %810, i64* %39
%811 = load i64, i64* %8
store i64 %811, i64* %40
%812 = load i64, i64* %6
%813 = load i64, i64* %39
%814 = mul i64 %812, %813
store i64 %814, i64* %37
%815 = load i64, i64* %5
%816 = load i64, i64* %39
%817 = mul i64 %815, %816
store i64 %817, i64* %39
%818 = load i64, i64* %5
%819 = load i64, i64* %40
%820 = mul i64 %818, %819
store i64 %820, i64* %38
%821 = load i64, i64* %6
%822 = load i64, i64* %40
%823 = mul i64 %821, %822
store i64 %823, i64* %40
%824 = load i64, i64* %37
%825 = load i64, i64* %38
%826 = add i64 %824, %825
%827 = and i64 %826, -1
store i64 %827, i64* %37
%828 = load i64, i64* %37
%829 = load i64, i64* %38
%830 = icmp ult i64 %828, %829
br i1 %830, label %831, label %834
831: ; preds = %791
%832 = load i64, i64* %40
%833 = add i64 %832, 4294967296
store i64 %833, i64* %40
br label %834
834: ; preds = %831, %791
%835 = load i64, i64* %37
%836 = lshr i64 %835, 32
%837 = and i64 %836, 4294967295
%838 = load i64, i64* %40
%839 = add i64 %838, %837
store i64 %839, i64* %40
%840 = load i64, i64* %37
%841 = and i64 %840, 4294967295
%842 = shl i64 %841, 32
store i64 %842, i64* %38
%843 = load i64, i64* %39
%844 = load i64, i64* %38
%845 = add i64 %843, %844
%846 = and i64 %845, -1
store i64 %846, i64* %39
%847 = load i64, i64* %39
%848 = load i64, i64* %38
%849 = icmp ult i64 %847, %848
br i1 %849, label %850, label %853
850: ; preds = %834
%851 = load i64, i64* %40
%852 = add i64 %851, 1
store i64 %852, i64* %40
br label %853
853: ; preds = %850, %834
%854 = load i64, i64* %39
store i64 %854, i64* %7
%855 = load i64, i64* %40
store i64 %855, i64* %8
%856 = load i64, i64* %8
%857 = and i64 %856, -9223372036854775808
%858 = icmp ne i64 %857, 0
br i1 %858, label %859, label %862
859: ; preds = %853
%860 = load i64, i64* %9
%861 = add i64 %860, 1
store i64 %861, i64* %9
br label %862
862: ; preds = %859, %853
%863 = load i64, i64* %8
%864 = load i64, i64* %8
%865 = add i64 %863, %864
%866 = and i64 %865, -1
store i64 %866, i64* %8
%867 = load i64, i64* %7
%868 = and i64 %867, -9223372036854775808
%869 = icmp ne i64 %868, 0
br i1 %869, label %870, label %873
870: ; preds = %862
%871 = load i64, i64* %8
%872 = add i64 %871, 1
store i64 %872, i64* %8
br label %873
873: ; preds = %870, %862
%874 = load i64, i64* %7
%875 = load i64, i64* %7
%876 = add i64 %874, %875
%877 = and i64 %876, -1
store i64 %877, i64* %7
%878 = load i64, i64* %10
%879 = load i64, i64* %7
%880 = add i64 %878, %879
%881 = and i64 %880, -1
store i64 %881, i64* %10
%882 = load i64, i64* %10
%883 = load i64, i64* %7
%884 = icmp ult i64 %882, %883
br i1 %884, label %885, label %893
885: ; preds = %873
%886 = load i64, i64* %8
%887 = add i64 %886, 1
store i64 %887, i64* %8
%888 = and i64 %887, -1
%889 = icmp eq i64 %888, 0
br i1 %889, label %890, label %893
890: ; preds = %885
%891 = load i64, i64* %9
%892 = add i64 %891, 1
store i64 %892, i64* %9
br label %893
893: ; preds = %890, %885, %873
%894 = load i64, i64* %11
%895 = load i64, i64* %8
%896 = add i64 %894, %895
%897 = and i64 %896, -1
store i64 %897, i64* %11
%898 = load i64, i64* %11
%899 = load i64, i64* %8
%900 = icmp ult i64 %898, %899
br i1 %900, label %901, label %904
901: ; preds = %893
%902 = load i64, i64* %9
%903 = add i64 %902, 1
store i64 %903, i64* %9
br label %904
904: ; preds = %901, %893
%905 = load i64*, i64** %4
%906 = getelementptr inbounds i64, i64* %905, i64 4
%907 = load i64, i64* %906
%908 = and i64 %907, 4294967295
store i64 %908, i64* %7
%909 = load i64*, i64** %4
%910 = getelementptr inbounds i64, i64* %909, i64 4
%911 = load i64, i64* %910
%912 = lshr i64 %911, 32
%913 = and i64 %912, 4294967295
store i64 %913, i64* %8
%914 = load i64*, i64** %4
%915 = getelementptr inbounds i64, i64* %914, i64 0
%916 = load i64, i64* %915
%917 = and i64 %916, 4294967295
store i64 %917, i64* %5
%918 = load i64*, i64** %4
%919 = getelementptr inbounds i64, i64* %918, i64 0
%920 = load i64, i64* %919
%921 = lshr i64 %920, 32
%922 = and i64 %921, 4294967295
store i64 %922, i64* %6
%923 = load i64, i64* %7
store i64 %923, i64* %43
%924 = load i64, i64* %8
store i64 %924, i64* %44
%925 = load i64, i64* %6
%926 = load i64, i64* %43
%927 = mul i64 %925, %926
store i64 %927, i64* %41
%928 = load i64, i64* %5
%929 = load i64, i64* %43
%930 = mul i64 %928, %929
store i64 %930, i64* %43
%931 = load i64, i64* %5
%932 = load i64, i64* %44
%933 = mul i64 %931, %932
store i64 %933, i64* %42
%934 = load i64, i64* %6
%935 = load i64, i64* %44
%936 = mul i64 %934, %935
store i64 %936, i64* %44
%937 = load i64, i64* %41
%938 = load i64, i64* %42
%939 = add i64 %937, %938
%940 = and i64 %939, -1
store i64 %940, i64* %41
%941 = load i64, i64* %41
%942 = load i64, i64* %42
%943 = icmp ult i64 %941, %942
br i1 %943, label %944, label %947
944: ; preds = %904
%945 = load i64, i64* %44
%946 = add i64 %945, 4294967296
store i64 %946, i64* %44
br label %947
947: ; preds = %944, %904
%948 = load i64, i64* %41
%949 = lshr i64 %948, 32
%950 = and i64 %949, 4294967295
%951 = load i64, i64* %44
%952 = add i64 %951, %950
store i64 %952, i64* %44
%953 = load i64, i64* %41
%954 = and i64 %953, 4294967295
%955 = shl i64 %954, 32
store i64 %955, i64* %42
%956 = load i64, i64* %43
%957 = load i64, i64* %42
%958 = add i64 %956, %957
%959 = and i64 %958, -1
store i64 %959, i64* %43
%960 = load i64, i64* %43
%961 = load i64, i64* %42
%962 = icmp ult i64 %960, %961
br i1 %962, label %963, label %966
963: ; preds = %947
%964 = load i64, i64* %44
%965 = add i64 %964, 1
store i64 %965, i64* %44
br label %966
966: ; preds = %963, %947
%967 = load i64, i64* %43
store i64 %967, i64* %7
%968 = load i64, i64* %44
store i64 %968, i64* %8
%969 = load i64, i64* %8
%970 = and i64 %969, -9223372036854775808
%971 = icmp ne i64 %970, 0
br i1 %971, label %972, label %975
972: ; preds = %966
%973 = load i64, i64* %9
%974 = add i64 %973, 1
store i64 %974, i64* %9
br label %975
975: ; preds = %972, %966
%976 = load i64, i64* %8
%977 = load i64, i64* %8
%978 = add i64 %976, %977
%979 = and i64 %978, -1
store i64 %979, i64* %8
%980 = load i64, i64* %7
%981 = and i64 %980, -9223372036854775808
%982 = icmp ne i64 %981, 0
br i1 %982, label %983, label %986
983: ; preds = %975
%984 = load i64, i64* %8
%985 = add i64 %984, 1
store i64 %985, i64* %8
br label %986
986: ; preds = %983, %975
%987 = load i64, i64* %7
%988 = load i64, i64* %7
%989 = add i64 %987, %988
%990 = and i64 %989, -1
store i64 %990, i64* %7
%991 = load i64, i64* %10
%992 = load i64, i64* %7
%993 = add i64 %991, %992
%994 = and i64 %993, -1
store i64 %994, i64* %10
%995 = load i64, i64* %10
%996 = load i64, i64* %7
%997 = icmp ult i64 %995, %996
br i1 %997, label %998, label %1006
998: ; preds = %986
%999 = load i64, i64* %8
%1000 = add i64 %999, 1
store i64 %1000, i64* %8
%1001 = and i64 %1000, -1
%1002 = icmp eq i64 %1001, 0
br i1 %1002, label %1003, label %1006
1003: ; preds = %998
%1004 = load i64, i64* %9
%1005 = add i64 %1004, 1
store i64 %1005, i64* %9
br label %1006
1006: ; preds = %1003, %998, %986
%1007 = load i64, i64* %11
%1008 = load i64, i64* %8
%1009 = add i64 %1007, %1008
%1010 = and i64 %1009, -1
store i64 %1010, i64* %11
%1011 = load i64, i64* %11
%1012 = load i64, i64* %8
%1013 = icmp ult i64 %1011, %1012
br i1 %1013, label %1014, label %1017
1014: ; preds = %1006
%1015 = load i64, i64* %9
%1016 = add i64 %1015, 1
store i64 %1016, i64* %9
br label %1017
1017: ; preds = %1014, %1006
%1018 = load i64, i64* %10
%1019 = load i64*, i64** %3
%1020 = getelementptr inbounds i64, i64* %1019, i64 4
store i64 %1018, i64* %1020
store i64 0, i64* %10
%1021 = load i64*, i64** %4
%1022 = getelementptr inbounds i64, i64* %1021, i64 5
%1023 = load i64, i64* %1022
%1024 = and i64 %1023, 4294967295
store i64 %1024, i64* %7
%1025 = load i64*, i64** %4
%1026 = getelementptr inbounds i64, i64* %1025, i64 5
%1027 = load i64, i64* %1026
%1028 = lshr i64 %1027, 32
%1029 = and i64 %1028, 4294967295
store i64 %1029, i64* %8
%1030 = load i64*, i64** %4
%1031 = getelementptr inbounds i64, i64* %1030, i64 0
%1032 = load i64, i64* %1031
%1033 = and i64 %1032, 4294967295
store i64 %1033, i64* %5
%1034 = load i64*, i64** %4
%1035 = getelementptr inbounds i64, i64* %1034, i64 0
%1036 = load i64, i64* %1035
%1037 = lshr i64 %1036, 32
%1038 = and i64 %1037, 4294967295
store i64 %1038, i64* %6
%1039 = load i64, i64* %7
store i64 %1039, i64* %47
%1040 = load i64, i64* %8
store i64 %1040, i64* %48
%1041 = load i64, i64* %6
%1042 = load i64, i64* %47
%1043 = mul i64 %1041, %1042
store i64 %1043, i64* %45
%1044 = load i64, i64* %5
%1045 = load i64, i64* %47
%1046 = mul i64 %1044, %1045
store i64 %1046, i64* %47
%1047 = load i64, i64* %5
%1048 = load i64, i64* %48
%1049 = mul i64 %1047, %1048
store i64 %1049, i64* %46
%1050 = load i64, i64* %6
%1051 = load i64, i64* %48
%1052 = mul i64 %1050, %1051
store i64 %1052, i64* %48
%1053 = load i64, i64* %45
%1054 = load i64, i64* %46
%1055 = add i64 %1053, %1054
%1056 = and i64 %1055, -1
store i64 %1056, i64* %45
%1057 = load i64, i64* %45
%1058 = load i64, i64* %46
%1059 = icmp ult i64 %1057, %1058
br i1 %1059, label %1060, label %1063
1060: ; preds = %1017
%1061 = load i64, i64* %48
%1062 = add i64 %1061, 4294967296
store i64 %1062, i64* %48
br label %1063
1063: ; preds = %1060, %1017
%1064 = load i64, i64* %45
%1065 = lshr i64 %1064, 32
%1066 = and i64 %1065, 4294967295
%1067 = load i64, i64* %48
%1068 = add i64 %1067, %1066
store i64 %1068, i64* %48
%1069 = load i64, i64* %45
%1070 = and i64 %1069, 4294967295
%1071 = shl i64 %1070, 32
store i64 %1071, i64* %46
%1072 = load i64, i64* %47
%1073 = load i64, i64* %46
%1074 = add i64 %1072, %1073
%1075 = and i64 %1074, -1
store i64 %1075, i64* %47
%1076 = load i64, i64* %47
%1077 = load i64, i64* %46
%1078 = icmp ult i64 %1076, %1077
br i1 %1078, label %1079, label %1082
1079: ; preds = %1063
%1080 = load i64, i64* %48
%1081 = add i64 %1080, 1
store i64 %1081, i64* %48
br label %1082
1082: ; preds = %1079, %1063
%1083 = load i64, i64* %47
store i64 %1083, i64* %7
%1084 = load i64, i64* %48
store i64 %1084, i64* %8
%1085 = load i64, i64* %8
%1086 = and i64 %1085, -9223372036854775808
%1087 = icmp ne i64 %1086, 0
br i1 %1087, label %1088, label %1091
1088: ; preds = %1082
%1089 = load i64, i64* %10
%1090 = add i64 %1089, 1
store i64 %1090, i64* %10
br label %1091
1091: ; preds = %1088, %1082
%1092 = load i64, i64* %8
%1093 = load i64, i64* %8
%1094 = add i64 %1092, %1093
%1095 = and i64 %1094, -1
store i64 %1095, i64* %8
%1096 = load i64, i64* %7
%1097 = and i64 %1096, -9223372036854775808
%1098 = icmp ne i64 %1097, 0
br i1 %1098, label %1099, label %1102
1099: ; preds = %1091
%1100 = load i64, i64* %8
%1101 = add i64 %1100, 1
store i64 %1101, i64* %8
br label %1102
1102: ; preds = %1099, %1091
%1103 = load i64, i64* %7
%1104 = load i64, i64* %7
%1105 = add i64 %1103, %1104
%1106 = and i64 %1105, -1
store i64 %1106, i64* %7
%1107 = load i64, i64* %11
%1108 = load i64, i64* %7
%1109 = add i64 %1107, %1108
%1110 = and i64 %1109, -1
store i64 %1110, i64* %11
%1111 = load i64, i64* %11
%1112 = load i64, i64* %7
%1113 = icmp ult i64 %1111, %1112
br i1 %1113, label %1114, label %1122
1114: ; preds = %1102
%1115 = load i64, i64* %8
%1116 = add i64 %1115, 1
store i64 %1116, i64* %8
%1117 = and i64 %1116, -1
%1118 = icmp eq i64 %1117, 0
br i1 %1118, label %1119, label %1122
1119: ; preds = %1114
%1120 = load i64, i64* %10
%1121 = add i64 %1120, 1
store i64 %1121, i64* %10
br label %1122
1122: ; preds = %1119, %1114, %1102
%1123 = load i64, i64* %9
%1124 = load i64, i64* %8
%1125 = add i64 %1123, %1124
%1126 = and i64 %1125, -1
store i64 %1126, i64* %9
%1127 = load i64, i64* %9
%1128 = load i64, i64* %8
%1129 = icmp ult i64 %1127, %1128
br i1 %1129, label %1130, label %1133
1130: ; preds = %1122
%1131 = load i64, i64* %10
%1132 = add i64 %1131, 1
store i64 %1132, i64* %10
br label %1133
1133: ; preds = %1130, %1122
%1134 = load i64*, i64** %4
%1135 = getelementptr inbounds i64, i64* %1134, i64 4
%1136 = load i64, i64* %1135
%1137 = and i64 %1136, 4294967295
store i64 %1137, i64* %7
%1138 = load i64*, i64** %4
%1139 = getelementptr inbounds i64, i64* %1138, i64 4
%1140 = load i64, i64* %1139
%1141 = lshr i64 %1140, 32
%1142 = and i64 %1141, 4294967295
store i64 %1142, i64* %8
%1143 = load i64*, i64** %4
%1144 = getelementptr inbounds i64, i64* %1143, i64 1
%1145 = load i64, i64* %1144
%1146 = and i64 %1145, 4294967295
store i64 %1146, i64* %5
%1147 = load i64*, i64** %4
%1148 = getelementptr inbounds i64, i64* %1147, i64 1
%1149 = load i64, i64* %1148
%1150 = lshr i64 %1149, 32
%1151 = and i64 %1150, 4294967295
store i64 %1151, i64* %6
%1152 = load i64, i64* %7
store i64 %1152, i64* %51
%1153 = load i64, i64* %8
store i64 %1153, i64* %52
%1154 = load i64, i64* %6
%1155 = load i64, i64* %51
%1156 = mul i64 %1154, %1155
store i64 %1156, i64* %49
%1157 = load i64, i64* %5
%1158 = load i64, i64* %51
%1159 = mul i64 %1157, %1158
store i64 %1159, i64* %51
%1160 = load i64, i64* %5
%1161 = load i64, i64* %52
%1162 = mul i64 %1160, %1161
store i64 %1162, i64* %50
%1163 = load i64, i64* %6
%1164 = load i64, i64* %52
%1165 = mul i64 %1163, %1164
store i64 %1165, i64* %52
%1166 = load i64, i64* %49
%1167 = load i64, i64* %50
%1168 = add i64 %1166, %1167
%1169 = and i64 %1168, -1
store i64 %1169, i64* %49
%1170 = load i64, i64* %49
%1171 = load i64, i64* %50
%1172 = icmp ult i64 %1170, %1171
br i1 %1172, label %1173, label %1176
1173: ; preds = %1133
%1174 = load i64, i64* %52
%1175 = add i64 %1174, 4294967296
store i64 %1175, i64* %52
br label %1176
1176: ; preds = %1173, %1133
%1177 = load i64, i64* %49
%1178 = lshr i64 %1177, 32
%1179 = and i64 %1178, 4294967295
%1180 = load i64, i64* %52
%1181 = add i64 %1180, %1179
store i64 %1181, i64* %52
%1182 = load i64, i64* %49
%1183 = and i64 %1182, 4294967295
%1184 = shl i64 %1183, 32
store i64 %1184, i64* %50
%1185 = load i64, i64* %51
%1186 = load i64, i64* %50
%1187 = add i64 %1185, %1186
%1188 = and i64 %1187, -1
store i64 %1188, i64* %51
%1189 = load i64, i64* %51
%1190 = load i64, i64* %50
%1191 = icmp ult i64 %1189, %1190
br i1 %1191, label %1192, label %1195
1192: ; preds = %1176
%1193 = load i64, i64* %52
%1194 = add i64 %1193, 1
store i64 %1194, i64* %52
br label %1195
1195: ; preds = %1192, %1176
%1196 = load i64, i64* %51
store i64 %1196, i64* %7
%1197 = load i64, i64* %52
store i64 %1197, i64* %8
%1198 = load i64, i64* %8
%1199 = and i64 %1198, -9223372036854775808
%1200 = icmp ne i64 %1199, 0
br i1 %1200, label %1201, label %1204
1201: ; preds = %1195
%1202 = load i64, i64* %10
%1203 = add i64 %1202, 1
store i64 %1203, i64* %10
br label %1204
1204: ; preds = %1201, %1195
%1205 = load i64, i64* %8
%1206 = load i64, i64* %8
%1207 = add i64 %1205, %1206
%1208 = and i64 %1207, -1
store i64 %1208, i64* %8
%1209 = load i64, i64* %7
%1210 = and i64 %1209, -9223372036854775808
%1211 = icmp ne i64 %1210, 0
br i1 %1211, label %1212, label %1215
1212: ; preds = %1204
%1213 = load i64, i64* %8
%1214 = add i64 %1213, 1
store i64 %1214, i64* %8
br label %1215
1215: ; preds = %1212, %1204
%1216 = load i64, i64* %7
%1217 = load i64, i64* %7
%1218 = add i64 %1216, %1217
%1219 = and i64 %1218, -1
store i64 %1219, i64* %7
%1220 = load i64, i64* %11
%1221 = load i64, i64* %7
%1222 = add i64 %1220, %1221
%1223 = and i64 %1222, -1
store i64 %1223, i64* %11
%1224 = load i64, i64* %11
%1225 = load i64, i64* %7
%1226 = icmp ult i64 %1224, %1225
br i1 %1226, label %1227, label %1235
1227: ; preds = %1215
%1228 = load i64, i64* %8
%1229 = add i64 %1228, 1
store i64 %1229, i64* %8
%1230 = and i64 %1229, -1
%1231 = icmp eq i64 %1230, 0
br i1 %1231, label %1232, label %1235
1232: ; preds = %1227
%1233 = load i64, i64* %10
%1234 = add i64 %1233, 1
store i64 %1234, i64* %10
br label %1235
1235: ; preds = %1232, %1227, %1215
%1236 = load i64, i64* %9
%1237 = load i64, i64* %8
%1238 = add i64 %1236, %1237
%1239 = and i64 %1238, -1
store i64 %1239, i64* %9
%1240 = load i64, i64* %9
%1241 = load i64, i64* %8
%1242 = icmp ult i64 %1240, %1241
br i1 %1242, label %1243, label %1246
1243: ; preds = %1235
%1244 = load i64, i64* %10
%1245 = add i64 %1244, 1
store i64 %1245, i64* %10
br label %1246
1246: ; preds = %1243, %1235
%1247 = load i64*, i64** %4
%1248 = getelementptr inbounds i64, i64* %1247, i64 3
%1249 = load i64, i64* %1248
%1250 = and i64 %1249, 4294967295
store i64 %1250, i64* %7
%1251 = load i64*, i64** %4
%1252 = getelementptr inbounds i64, i64* %1251, i64 3
%1253 = load i64, i64* %1252
%1254 = lshr i64 %1253, 32
%1255 = and i64 %1254, 4294967295
store i64 %1255, i64* %8
%1256 = load i64*, i64** %4
%1257 = getelementptr inbounds i64, i64* %1256, i64 2
%1258 = load i64, i64* %1257
%1259 = and i64 %1258, 4294967295
store i64 %1259, i64* %5
%1260 = load i64*, i64** %4
%1261 = getelementptr inbounds i64, i64* %1260, i64 2
%1262 = load i64, i64* %1261
%1263 = lshr i64 %1262, 32
%1264 = and i64 %1263, 4294967295
store i64 %1264, i64* %6
%1265 = load i64, i64* %7
store i64 %1265, i64* %55
%1266 = load i64, i64* %8
store i64 %1266, i64* %56
%1267 = load i64, i64* %6
%1268 = load i64, i64* %55
%1269 = mul i64 %1267, %1268
store i64 %1269, i64* %53
%1270 = load i64, i64* %5
%1271 = load i64, i64* %55
%1272 = mul i64 %1270, %1271
store i64 %1272, i64* %55
%1273 = load i64, i64* %5
%1274 = load i64, i64* %56
%1275 = mul i64 %1273, %1274
store i64 %1275, i64* %54
%1276 = load i64, i64* %6
%1277 = load i64, i64* %56
%1278 = mul i64 %1276, %1277
store i64 %1278, i64* %56
%1279 = load i64, i64* %53
%1280 = load i64, i64* %54
%1281 = add i64 %1279, %1280
%1282 = and i64 %1281, -1
store i64 %1282, i64* %53
%1283 = load i64, i64* %53
%1284 = load i64, i64* %54
%1285 = icmp ult i64 %1283, %1284
br i1 %1285, label %1286, label %1289
1286: ; preds = %1246
%1287 = load i64, i64* %56
%1288 = add i64 %1287, 4294967296
store i64 %1288, i64* %56
br label %1289
1289: ; preds = %1286, %1246
%1290 = load i64, i64* %53
%1291 = lshr i64 %1290, 32
%1292 = and i64 %1291, 4294967295
%1293 = load i64, i64* %56
%1294 = add i64 %1293, %1292
store i64 %1294, i64* %56
%1295 = load i64, i64* %53
%1296 = and i64 %1295, 4294967295
%1297 = shl i64 %1296, 32
store i64 %1297, i64* %54
%1298 = load i64, i64* %55
%1299 = load i64, i64* %54
%1300 = add i64 %1298, %1299
%1301 = and i64 %1300, -1
store i64 %1301, i64* %55
%1302 = load i64, i64* %55
%1303 = load i64, i64* %54
%1304 = icmp ult i64 %1302, %1303
br i1 %1304, label %1305, label %1308
1305: ; preds = %1289
%1306 = load i64, i64* %56
%1307 = add i64 %1306, 1
store i64 %1307, i64* %56
br label %1308
1308: ; preds = %1305, %1289
%1309 = load i64, i64* %55
store i64 %1309, i64* %7
%1310 = load i64, i64* %56
store i64 %1310, i64* %8
%1311 = load i64, i64* %8
%1312 = and i64 %1311, -9223372036854775808
%1313 = icmp ne i64 %1312, 0
br i1 %1313, label %1314, label %1317
1314: ; preds = %1308
%1315 = load i64, i64* %10
%1316 = add i64 %1315, 1
store i64 %1316, i64* %10
br label %1317
1317: ; preds = %1314, %1308
%1318 = load i64, i64* %8
%1319 = load i64, i64* %8
%1320 = add i64 %1318, %1319
%1321 = and i64 %1320, -1
store i64 %1321, i64* %8
%1322 = load i64, i64* %7
%1323 = and i64 %1322, -9223372036854775808
%1324 = icmp ne i64 %1323, 0
br i1 %1324, label %1325, label %1328
1325: ; preds = %1317
%1326 = load i64, i64* %8
%1327 = add i64 %1326, 1
store i64 %1327, i64* %8
br label %1328
1328: ; preds = %1325, %1317
%1329 = load i64, i64* %7
%1330 = load i64, i64* %7
%1331 = add i64 %1329, %1330
%1332 = and i64 %1331, -1
store i64 %1332, i64* %7
%1333 = load i64, i64* %11
%1334 = load i64, i64* %7
%1335 = add i64 %1333, %1334
%1336 = and i64 %1335, -1
store i64 %1336, i64* %11
%1337 = load i64, i64* %11
%1338 = load i64, i64* %7
%1339 = icmp ult i64 %1337, %1338
br i1 %1339, label %1340, label %1348
1340: ; preds = %1328
%1341 = load i64, i64* %8
%1342 = add i64 %1341, 1
store i64 %1342, i64* %8
%1343 = and i64 %1342, -1
%1344 = icmp eq i64 %1343, 0
br i1 %1344, label %1345, label %1348
1345: ; preds = %1340
%1346 = load i64, i64* %10
%1347 = add i64 %1346, 1
store i64 %1347, i64* %10
br label %1348
1348: ; preds = %1345, %1340, %1328
%1349 = load i64, i64* %9
%1350 = load i64, i64* %8
%1351 = add i64 %1349, %1350
%1352 = and i64 %1351, -1
store i64 %1352, i64* %9
%1353 = load i64, i64* %9
%1354 = load i64, i64* %8
%1355 = icmp ult i64 %1353, %1354
br i1 %1355, label %1356, label %1359
1356: ; preds = %1348
%1357 = load i64, i64* %10
%1358 = add i64 %1357, 1
store i64 %1358, i64* %10
br label %1359
1359: ; preds = %1356, %1348
%1360 = load i64, i64* %11
%1361 = load i64*, i64** %3
%1362 = getelementptr inbounds i64, i64* %1361, i64 5
store i64 %1360, i64* %1362
store i64 0, i64* %11
%1363 = load i64*, i64** %4
%1364 = getelementptr inbounds i64, i64* %1363, i64 3
%1365 = load i64, i64* %1364
store i64 %1365, i64* %58
%1366 = load i64, i64* %58
%1367 = and i64 %1366, 4294967295
store i64 %1367, i64* %57
%1368 = load i64, i64* %58
%1369 = lshr i64 %1368, 32
%1370 = and i64 %1369, 4294967295
store i64 %1370, i64* %58
%1371 = load i64, i64* %57
%1372 = load i64, i64* %58
%1373 = mul i64 %1371, %1372
store i64 %1373, i64* %59
%1374 = load i64, i64* %57
%1375 = load i64, i64* %57
%1376 = mul i64 %1375, %1374
store i64 %1376, i64* %57
%1377 = load i64, i64* %58
%1378 = load i64, i64* %58
%1379 = mul i64 %1378, %1377
store i64 %1379, i64* %58
%1380 = load i64, i64* %59
%1381 = and i64 %1380, -2147483648
%1382 = lshr i64 %1381, 31
%1383 = load i64, i64* %58
%1384 = add i64 %1383, %1382
store i64 %1384, i64* %58
%1385 = load i64, i64* %59
%1386 = and i64 %1385, 4294967295
%1387 = shl i64 %1386, 33
store i64 %1387, i64* %59
%1388 = load i64, i64* %57
%1389 = load i64, i64* %59
%1390 = add i64 %1388, %1389
%1391 = and i64 %1390, -1
store i64 %1391, i64* %57
%1392 = load i64, i64* %57
%1393 = load i64, i64* %59
%1394 = icmp ult i64 %1392, %1393
br i1 %1394, label %1395, label %1398
1395: ; preds = %1359
%1396 = load i64, i64* %58
%1397 = add i64 %1396, 1
store i64 %1397, i64* %58
br label %1398
1398: ; preds = %1395, %1359
%1399 = load i64, i64* %57
store i64 %1399, i64* %7
%1400 = load i64, i64* %58
store i64 %1400, i64* %8
%1401 = load i64, i64* %9
%1402 = load i64, i64* %7
%1403 = add i64 %1401, %1402
%1404 = and i64 %1403, -1
store i64 %1404, i64* %9
%1405 = load i64, i64* %9
%1406 = load i64, i64* %7
%1407 = icmp ult i64 %1405, %1406
br i1 %1407, label %1408, label %1411
1408: ; preds = %1398
%1409 = load i64, i64* %8
%1410 = add i64 %1409, 1
store i64 %1410, i64* %8
br label %1411
1411: ; preds = %1408, %1398
%1412 = load i64, i64* %10
%1413 = load i64, i64* %8
%1414 = add i64 %1412, %1413
%1415 = and i64 %1414, -1
store i64 %1415, i64* %10
%1416 = load i64, i64* %10
%1417 = load i64, i64* %8
%1418 = icmp ult i64 %1416, %1417
br i1 %1418, label %1419, label %1422
1419: ; preds = %1411
%1420 = load i64, i64* %11
%1421 = add i64 %1420, 1
store i64 %1421, i64* %11
br label %1422
1422: ; preds = %1419, %1411
%1423 = load i64*, i64** %4
%1424 = getelementptr inbounds i64, i64* %1423, i64 4
%1425 = load i64, i64* %1424
%1426 = and i64 %1425, 4294967295
store i64 %1426, i64* %7
%1427 = load i64*, i64** %4
%1428 = getelementptr inbounds i64, i64* %1427, i64 4
%1429 = load i64, i64* %1428
%1430 = lshr i64 %1429, 32
%1431 = and i64 %1430, 4294967295
store i64 %1431, i64* %8
%1432 = load i64*, i64** %4
%1433 = getelementptr inbounds i64, i64* %1432, i64 2
%1434 = load i64, i64* %1433
%1435 = and i64 %1434, 4294967295
store i64 %1435, i64* %5
%1436 = load i64*, i64** %4
%1437 = getelementptr inbounds i64, i64* %1436, i64 2
%1438 = load i64, i64* %1437
%1439 = lshr i64 %1438, 32
%1440 = and i64 %1439, 4294967295
store i64 %1440, i64* %6
%1441 = load i64, i64* %7
store i64 %1441, i64* %62
%1442 = load i64, i64* %8
store i64 %1442, i64* %63
%1443 = load i64, i64* %6
%1444 = load i64, i64* %62
%1445 = mul i64 %1443, %1444
store i64 %1445, i64* %60
%1446 = load i64, i64* %5
%1447 = load i64, i64* %62
%1448 = mul i64 %1446, %1447
store i64 %1448, i64* %62
%1449 = load i64, i64* %5
%1450 = load i64, i64* %63
%1451 = mul i64 %1449, %1450
store i64 %1451, i64* %61
%1452 = load i64, i64* %6
%1453 = load i64, i64* %63
%1454 = mul i64 %1452, %1453
store i64 %1454, i64* %63
%1455 = load i64, i64* %60
%1456 = load i64, i64* %61
%1457 = add i64 %1455, %1456
%1458 = and i64 %1457, -1
store i64 %1458, i64* %60
%1459 = load i64, i64* %60
%1460 = load i64, i64* %61
%1461 = icmp ult i64 %1459, %1460
br i1 %1461, label %1462, label %1465
1462: ; preds = %1422
%1463 = load i64, i64* %63
%1464 = add i64 %1463, 4294967296
store i64 %1464, i64* %63
br label %1465
1465: ; preds = %1462, %1422
%1466 = load i64, i64* %60
%1467 = lshr i64 %1466, 32
%1468 = and i64 %1467, 4294967295
%1469 = load i64, i64* %63
%1470 = add i64 %1469, %1468
store i64 %1470, i64* %63
%1471 = load i64, i64* %60
%1472 = and i64 %1471, 4294967295
%1473 = shl i64 %1472, 32
store i64 %1473, i64* %61
%1474 = load i64, i64* %62
%1475 = load i64, i64* %61
%1476 = add i64 %1474, %1475
%1477 = and i64 %1476, -1
store i64 %1477, i64* %62
%1478 = load i64, i64* %62
%1479 = load i64, i64* %61
%1480 = icmp ult i64 %1478, %1479
br i1 %1480, label %1481, label %1484
1481: ; preds = %1465
%1482 = load i64, i64* %63
%1483 = add i64 %1482, 1
store i64 %1483, i64* %63
br label %1484
1484: ; preds = %1481, %1465
%1485 = load i64, i64* %62
store i64 %1485, i64* %7
%1486 = load i64, i64* %63
store i64 %1486, i64* %8
%1487 = load i64, i64* %8
%1488 = and i64 %1487, -9223372036854775808
%1489 = icmp ne i64 %1488, 0
br i1 %1489, label %1490, label %1493
1490: ; preds = %1484
%1491 = load i64, i64* %11
%1492 = add i64 %1491, 1
store i64 %1492, i64* %11
br label %1493
1493: ; preds = %1490, %1484
%1494 = load i64, i64* %8
%1495 = load i64, i64* %8
%1496 = add i64 %1494, %1495
%1497 = and i64 %1496, -1
store i64 %1497, i64* %8
%1498 = load i64, i64* %7
%1499 = and i64 %1498, -9223372036854775808
%1500 = icmp ne i64 %1499, 0
br i1 %1500, label %1501, label %1504
1501: ; preds = %1493
%1502 = load i64, i64* %8
%1503 = add i64 %1502, 1
store i64 %1503, i64* %8
br label %1504
1504: ; preds = %1501, %1493
%1505 = load i64, i64* %7
%1506 = load i64, i64* %7
%1507 = add i64 %1505, %1506
%1508 = and i64 %1507, -1
store i64 %1508, i64* %7
%1509 = load i64, i64* %9
%1510 = load i64, i64* %7
%1511 = add i64 %1509, %1510
%1512 = and i64 %1511, -1
store i64 %1512, i64* %9
%1513 = load i64, i64* %9
%1514 = load i64, i64* %7
%1515 = icmp ult i64 %1513, %1514
br i1 %1515, label %1516, label %1524
1516: ; preds = %1504
%1517 = load i64, i64* %8
%1518 = add i64 %1517, 1
store i64 %1518, i64* %8
%1519 = and i64 %1518, -1
%1520 = icmp eq i64 %1519, 0
br i1 %1520, label %1521, label %1524
1521: ; preds = %1516
%1522 = load i64, i64* %11
%1523 = add i64 %1522, 1
store i64 %1523, i64* %11
br label %1524
1524: ; preds = %1521, %1516, %1504
%1525 = load i64, i64* %10
%1526 = load i64, i64* %8
%1527 = add i64 %1525, %1526
%1528 = and i64 %1527, -1
store i64 %1528, i64* %10
%1529 = load i64, i64* %10
%1530 = load i64, i64* %8
%1531 = icmp ult i64 %1529, %1530
br i1 %1531, label %1532, label %1535
1532: ; preds = %1524
%1533 = load i64, i64* %11
%1534 = add i64 %1533, 1
store i64 %1534, i64* %11
br label %1535
1535: ; preds = %1532, %1524
%1536 = load i64*, i64** %4
%1537 = getelementptr inbounds i64, i64* %1536, i64 5
%1538 = load i64, i64* %1537
%1539 = and i64 %1538, 4294967295
store i64 %1539, i64* %7
%1540 = load i64*, i64** %4
%1541 = getelementptr inbounds i64, i64* %1540, i64 5
%1542 = load i64, i64* %1541
%1543 = lshr i64 %1542, 32
%1544 = and i64 %1543, 4294967295
store i64 %1544, i64* %8
%1545 = load i64*, i64** %4
%1546 = getelementptr inbounds i64, i64* %1545, i64 1
%1547 = load i64, i64* %1546
%1548 = and i64 %1547, 4294967295
store i64 %1548, i64* %5
%1549 = load i64*, i64** %4
%1550 = getelementptr inbounds i64, i64* %1549, i64 1
%1551 = load i64, i64* %1550
%1552 = lshr i64 %1551, 32
%1553 = and i64 %1552, 4294967295
store i64 %1553, i64* %6
%1554 = load i64, i64* %7
store i64 %1554, i64* %66
%1555 = load i64, i64* %8
store i64 %1555, i64* %67
%1556 = load i64, i64* %6
%1557 = load i64, i64* %66
%1558 = mul i64 %1556, %1557
store i64 %1558, i64* %64
%1559 = load i64, i64* %5
%1560 = load i64, i64* %66
%1561 = mul i64 %1559, %1560
store i64 %1561, i64* %66
%1562 = load i64, i64* %5
%1563 = load i64, i64* %67
%1564 = mul i64 %1562, %1563
store i64 %1564, i64* %65
%1565 = load i64, i64* %6
%1566 = load i64, i64* %67
%1567 = mul i64 %1565, %1566
store i64 %1567, i64* %67
%1568 = load i64, i64* %64
%1569 = load i64, i64* %65
%1570 = add i64 %1568, %1569
%1571 = and i64 %1570, -1
store i64 %1571, i64* %64
%1572 = load i64, i64* %64
%1573 = load i64, i64* %65
%1574 = icmp ult i64 %1572, %1573
br i1 %1574, label %1575, label %1578
1575: ; preds = %1535
%1576 = load i64, i64* %67
%1577 = add i64 %1576, 4294967296
store i64 %1577, i64* %67
br label %1578
1578: ; preds = %1575, %1535
%1579 = load i64, i64* %64
%1580 = lshr i64 %1579, 32
%1581 = and i64 %1580, 4294967295
%1582 = load i64, i64* %67
%1583 = add i64 %1582, %1581
store i64 %1583, i64* %67
%1584 = load i64, i64* %64
%1585 = and i64 %1584, 4294967295
%1586 = shl i64 %1585, 32
store i64 %1586, i64* %65
%1587 = load i64, i64* %66
%1588 = load i64, i64* %65
%1589 = add i64 %1587, %1588
%1590 = and i64 %1589, -1
store i64 %1590, i64* %66
%1591 = load i64, i64* %66
%1592 = load i64, i64* %65
%1593 = icmp ult i64 %1591, %1592
br i1 %1593, label %1594, label %1597
1594: ; preds = %1578
%1595 = load i64, i64* %67
%1596 = add i64 %1595, 1
store i64 %1596, i64* %67
br label %1597
1597: ; preds = %1594, %1578
%1598 = load i64, i64* %66
store i64 %1598, i64* %7
%1599 = load i64, i64* %67
store i64 %1599, i64* %8
%1600 = load i64, i64* %8
%1601 = and i64 %1600, -9223372036854775808
%1602 = icmp ne i64 %1601, 0
br i1 %1602, label %1603, label %1606
1603: ; preds = %1597
%1604 = load i64, i64* %11
%1605 = add i64 %1604, 1
store i64 %1605, i64* %11
br label %1606
1606: ; preds = %1603, %1597
%1607 = load i64, i64* %8
%1608 = load i64, i64* %8
%1609 = add i64 %1607, %1608
%1610 = and i64 %1609, -1
store i64 %1610, i64* %8
%1611 = load i64, i64* %7
%1612 = and i64 %1611, -9223372036854775808
%1613 = icmp ne i64 %1612, 0
br i1 %1613, label %1614, label %1617
1614: ; preds = %1606
%1615 = load i64, i64* %8
%1616 = add i64 %1615, 1
store i64 %1616, i64* %8
br label %1617
1617: ; preds = %1614, %1606
%1618 = load i64, i64* %7
%1619 = load i64, i64* %7
%1620 = add i64 %1618, %1619
%1621 = and i64 %1620, -1
store i64 %1621, i64* %7
%1622 = load i64, i64* %9
%1623 = load i64, i64* %7
%1624 = add i64 %1622, %1623
%1625 = and i64 %1624, -1
store i64 %1625, i64* %9
%1626 = load i64, i64* %9
%1627 = load i64, i64* %7
%1628 = icmp ult i64 %1626, %1627
br i1 %1628, label %1629, label %1637
1629: ; preds = %1617
%1630 = load i64, i64* %8
%1631 = add i64 %1630, 1
store i64 %1631, i64* %8
%1632 = and i64 %1631, -1
%1633 = icmp eq i64 %1632, 0
br i1 %1633, label %1634, label %1637
1634: ; preds = %1629
%1635 = load i64, i64* %11
%1636 = add i64 %1635, 1
store i64 %1636, i64* %11
br label %1637
1637: ; preds = %1634, %1629, %1617
%1638 = load i64, i64* %10
%1639 = load i64, i64* %8
%1640 = add i64 %1638, %1639
%1641 = and i64 %1640, -1
store i64 %1641, i64* %10
%1642 = load i64, i64* %10
%1643 = load i64, i64* %8
%1644 = icmp ult i64 %1642, %1643
br i1 %1644, label %1645, label %1648
1645: ; preds = %1637
%1646 = load i64, i64* %11
%1647 = add i64 %1646, 1
store i64 %1647, i64* %11
br label %1648
1648: ; preds = %1645, %1637
%1649 = load i64*, i64** %4
%1650 = getelementptr inbounds i64, i64* %1649, i64 6
%1651 = load i64, i64* %1650
%1652 = and i64 %1651, 4294967295
store i64 %1652, i64* %7
%1653 = load i64*, i64** %4
%1654 = getelementptr inbounds i64, i64* %1653, i64 6
%1655 = load i64, i64* %1654
%1656 = lshr i64 %1655, 32
%1657 = and i64 %1656, 4294967295
store i64 %1657, i64* %8
%1658 = load i64*, i64** %4
%1659 = getelementptr inbounds i64, i64* %1658, i64 0
%1660 = load i64, i64* %1659
%1661 = and i64 %1660, 4294967295
store i64 %1661, i64* %5
%1662 = load i64*, i64** %4
%1663 = getelementptr inbounds i64, i64* %1662, i64 0
%1664 = load i64, i64* %1663
%1665 = lshr i64 %1664, 32
%1666 = and i64 %1665, 4294967295
store i64 %1666, i64* %6
%1667 = load i64, i64* %7
store i64 %1667, i64* %70
%1668 = load i64, i64* %8
store i64 %1668, i64* %71
%1669 = load i64, i64* %6
%1670 = load i64, i64* %70
%1671 = mul i64 %1669, %1670
store i64 %1671, i64* %68
%1672 = load i64, i64* %5
%1673 = load i64, i64* %70
%1674 = mul i64 %1672, %1673
store i64 %1674, i64* %70
%1675 = load i64, i64* %5
%1676 = load i64, i64* %71
%1677 = mul i64 %1675, %1676
store i64 %1677, i64* %69
%1678 = load i64, i64* %6
%1679 = load i64, i64* %71
%1680 = mul i64 %1678, %1679
store i64 %1680, i64* %71
%1681 = load i64, i64* %68
%1682 = load i64, i64* %69
%1683 = add i64 %1681, %1682
%1684 = and i64 %1683, -1
store i64 %1684, i64* %68
%1685 = load i64, i64* %68
%1686 = load i64, i64* %69
%1687 = icmp ult i64 %1685, %1686
br i1 %1687, label %1688, label %1691
1688: ; preds = %1648
%1689 = load i64, i64* %71
%1690 = add i64 %1689, 4294967296
store i64 %1690, i64* %71
br label %1691
1691: ; preds = %1688, %1648
%1692 = load i64, i64* %68
%1693 = lshr i64 %1692, 32
%1694 = and i64 %1693, 4294967295
%1695 = load i64, i64* %71
%1696 = add i64 %1695, %1694
store i64 %1696, i64* %71
%1697 = load i64, i64* %68
%1698 = and i64 %1697, 4294967295
%1699 = shl i64 %1698, 32
store i64 %1699, i64* %69
%1700 = load i64, i64* %70
%1701 = load i64, i64* %69
%1702 = add i64 %1700, %1701
%1703 = and i64 %1702, -1
store i64 %1703, i64* %70
%1704 = load i64, i64* %70
%1705 = load i64, i64* %69
%1706 = icmp ult i64 %1704, %1705
br i1 %1706, label %1707, label %1710
1707: ; preds = %1691
%1708 = load i64, i64* %71
%1709 = add i64 %1708, 1
store i64 %1709, i64* %71
br label %1710
1710: ; preds = %1707, %1691
%1711 = load i64, i64* %70
store i64 %1711, i64* %7
%1712 = load i64, i64* %71
store i64 %1712, i64* %8
%1713 = load i64, i64* %8
%1714 = and i64 %1713, -9223372036854775808
%1715 = icmp ne i64 %1714, 0
br i1 %1715, label %1716, label %1719
1716: ; preds = %1710
%1717 = load i64, i64* %11
%1718 = add i64 %1717, 1
store i64 %1718, i64* %11
br label %1719
1719: ; preds = %1716, %1710
%1720 = load i64, i64* %8
%1721 = load i64, i64* %8
%1722 = add i64 %1720, %1721
%1723 = and i64 %1722, -1
store i64 %1723, i64* %8
%1724 = load i64, i64* %7
%1725 = and i64 %1724, -9223372036854775808
%1726 = icmp ne i64 %1725, 0
br i1 %1726, label %1727, label %1730
1727: ; preds = %1719
%1728 = load i64, i64* %8
%1729 = add i64 %1728, 1
store i64 %1729, i64* %8
br label %1730
1730: ; preds = %1727, %1719
%1731 = load i64, i64* %7
%1732 = load i64, i64* %7
%1733 = add i64 %1731, %1732
%1734 = and i64 %1733, -1
store i64 %1734, i64* %7
%1735 = load i64, i64* %9
%1736 = load i64, i64* %7
%1737 = add i64 %1735, %1736
%1738 = and i64 %1737, -1
store i64 %1738, i64* %9
%1739 = load i64, i64* %9
%1740 = load i64, i64* %7
%1741 = icmp ult i64 %1739, %1740
br i1 %1741, label %1742, label %1750
1742: ; preds = %1730
%1743 = load i64, i64* %8
%1744 = add i64 %1743, 1
store i64 %1744, i64* %8
%1745 = and i64 %1744, -1
%1746 = icmp eq i64 %1745, 0
br i1 %1746, label %1747, label %1750
1747: ; preds = %1742
%1748 = load i64, i64* %11
%1749 = add i64 %1748, 1
store i64 %1749, i64* %11
br label %1750
1750: ; preds = %1747, %1742, %1730
%1751 = load i64, i64* %10
%1752 = load i64, i64* %8
%1753 = add i64 %1751, %1752
%1754 = and i64 %1753, -1
store i64 %1754, i64* %10
%1755 = load i64, i64* %10
%1756 = load i64, i64* %8
%1757 = icmp ult i64 %1755, %1756
br i1 %1757, label %1758, label %1761
1758: ; preds = %1750
%1759 = load i64, i64* %11
%1760 = add i64 %1759, 1
store i64 %1760, i64* %11
br label %1761
1761: ; preds = %1758, %1750
%1762 = load i64, i64* %9
%1763 = load i64*, i64** %3
%1764 = getelementptr inbounds i64, i64* %1763, i64 6
store i64 %1762, i64* %1764
store i64 0, i64* %9
%1765 = load i64*, i64** %4
%1766 = getelementptr inbounds i64, i64* %1765, i64 7
%1767 = load i64, i64* %1766
%1768 = and i64 %1767, 4294967295
store i64 %1768, i64* %7
%1769 = load i64*, i64** %4
%1770 = getelementptr inbounds i64, i64* %1769, i64 7
%1771 = load i64, i64* %1770
%1772 = lshr i64 %1771, 32
%1773 = and i64 %1772, 4294967295
store i64 %1773, i64* %8
%1774 = load i64*, i64** %4
%1775 = getelementptr inbounds i64, i64* %1774, i64 0
%1776 = load i64, i64* %1775
%1777 = and i64 %1776, 4294967295
store i64 %1777, i64* %5
%1778 = load i64*, i64** %4
%1779 = getelementptr inbounds i64, i64* %1778, i64 0
%1780 = load i64, i64* %1779
%1781 = lshr i64 %1780, 32
%1782 = and i64 %1781, 4294967295
store i64 %1782, i64* %6
%1783 = load i64, i64* %7
store i64 %1783, i64* %74
%1784 = load i64, i64* %8
store i64 %1784, i64* %75
%1785 = load i64, i64* %6
%1786 = load i64, i64* %74
%1787 = mul i64 %1785, %1786
store i64 %1787, i64* %72
%1788 = load i64, i64* %5
%1789 = load i64, i64* %74
%1790 = mul i64 %1788, %1789
store i64 %1790, i64* %74
%1791 = load i64, i64* %5
%1792 = load i64, i64* %75
%1793 = mul i64 %1791, %1792
store i64 %1793, i64* %73
%1794 = load i64, i64* %6
%1795 = load i64, i64* %75
%1796 = mul i64 %1794, %1795
store i64 %1796, i64* %75
%1797 = load i64, i64* %72
%1798 = load i64, i64* %73
%1799 = add i64 %1797, %1798
%1800 = and i64 %1799, -1
store i64 %1800, i64* %72
%1801 = load i64, i64* %72
%1802 = load i64, i64* %73
%1803 = icmp ult i64 %1801, %1802
br i1 %1803, label %1804, label %1807
1804: ; preds = %1761
%1805 = load i64, i64* %75
%1806 = add i64 %1805, 4294967296
store i64 %1806, i64* %75
br label %1807
1807: ; preds = %1804, %1761
%1808 = load i64, i64* %72
%1809 = lshr i64 %1808, 32
%1810 = and i64 %1809, 4294967295
%1811 = load i64, i64* %75
%1812 = add i64 %1811, %1810
store i64 %1812, i64* %75
%1813 = load i64, i64* %72
%1814 = and i64 %1813, 4294967295
%1815 = shl i64 %1814, 32
store i64 %1815, i64* %73
%1816 = load i64, i64* %74
%1817 = load i64, i64* %73
%1818 = add i64 %1816, %1817
%1819 = and i64 %1818, -1
store i64 %1819, i64* %74
%1820 = load i64, i64* %74
%1821 = load i64, i64* %73
%1822 = icmp ult i64 %1820, %1821
br i1 %1822, label %1823, label %1826
1823: ; preds = %1807
%1824 = load i64, i64* %75
%1825 = add i64 %1824, 1
store i64 %1825, i64* %75
br label %1826
1826: ; preds = %1823, %1807
%1827 = load i64, i64* %74
store i64 %1827, i64* %7
%1828 = load i64, i64* %75
store i64 %1828, i64* %8
%1829 = load i64, i64* %8
%1830 = and i64 %1829, -9223372036854775808
%1831 = icmp ne i64 %1830, 0
br i1 %1831, label %1832, label %1835
1832: ; preds = %1826
%1833 = load i64, i64* %9
%1834 = add i64 %1833, 1
store i64 %1834, i64* %9
br label %1835
1835: ; preds = %1832, %1826
%1836 = load i64, i64* %8
%1837 = load i64, i64* %8
%1838 = add i64 %1836, %1837
%1839 = and i64 %1838, -1
store i64 %1839, i64* %8
%1840 = load i64, i64* %7
%1841 = and i64 %1840, -9223372036854775808
%1842 = icmp ne i64 %1841, 0
br i1 %1842, label %1843, label %1846
1843: ; preds = %1835
%1844 = load i64, i64* %8
%1845 = add i64 %1844, 1
store i64 %1845, i64* %8
br label %1846
1846: ; preds = %1843, %1835
%1847 = load i64, i64* %7
%1848 = load i64, i64* %7
%1849 = add i64 %1847, %1848
%1850 = and i64 %1849, -1
store i64 %1850, i64* %7
%1851 = load i64, i64* %10
%1852 = load i64, i64* %7
%1853 = add i64 %1851, %1852
%1854 = and i64 %1853, -1
store i64 %1854, i64* %10
%1855 = load i64, i64* %10
%1856 = load i64, i64* %7
%1857 = icmp ult i64 %1855, %1856
br i1 %1857, label %1858, label %1866
1858: ; preds = %1846
%1859 = load i64, i64* %8
%1860 = add i64 %1859, 1
store i64 %1860, i64* %8
%1861 = and i64 %1860, -1
%1862 = icmp eq i64 %1861, 0
br i1 %1862, label %1863, label %1866
1863: ; preds = %1858
%1864 = load i64, i64* %9
%1865 = add i64 %1864, 1
store i64 %1865, i64* %9
br label %1866
1866: ; preds = %1863, %1858, %1846
%1867 = load i64, i64* %11
%1868 = load i64, i64* %8
%1869 = add i64 %1867, %1868
%1870 = and i64 %1869, -1
store i64 %1870, i64* %11
%1871 = load i64, i64* %11
%1872 = load i64, i64* %8
%1873 = icmp ult i64 %1871, %1872
br i1 %1873, label %1874, label %1877
1874: ; preds = %1866
%1875 = load i64, i64* %9
%1876 = add i64 %1875, 1
store i64 %1876, i64* %9
br label %1877
1877: ; preds = %1874, %1866
%1878 = load i64*, i64** %4
%1879 = getelementptr inbounds i64, i64* %1878, i64 6
%1880 = load i64, i64* %1879
%1881 = and i64 %1880, 4294967295
store i64 %1881, i64* %7
%1882 = load i64*, i64** %4
%1883 = getelementptr inbounds i64, i64* %1882, i64 6
%1884 = load i64, i64* %1883
%1885 = lshr i64 %1884, 32
%1886 = and i64 %1885, 4294967295
store i64 %1886, i64* %8
%1887 = load i64*, i64** %4
%1888 = getelementptr inbounds i64, i64* %1887, i64 1
%1889 = load i64, i64* %1888
%1890 = and i64 %1889, 4294967295
store i64 %1890, i64* %5
%1891 = load i64*, i64** %4
%1892 = getelementptr inbounds i64, i64* %1891, i64 1
%1893 = load i64, i64* %1892
%1894 = lshr i64 %1893, 32
%1895 = and i64 %1894, 4294967295
store i64 %1895, i64* %6
%1896 = load i64, i64* %7
store i64 %1896, i64* %78
%1897 = load i64, i64* %8
store i64 %1897, i64* %79
%1898 = load i64, i64* %6
%1899 = load i64, i64* %78
%1900 = mul i64 %1898, %1899
store i64 %1900, i64* %76
%1901 = load i64, i64* %5
%1902 = load i64, i64* %78
%1903 = mul i64 %1901, %1902
store i64 %1903, i64* %78
%1904 = load i64, i64* %5
%1905 = load i64, i64* %79
%1906 = mul i64 %1904, %1905
store i64 %1906, i64* %77
%1907 = load i64, i64* %6
%1908 = load i64, i64* %79
%1909 = mul i64 %1907, %1908
store i64 %1909, i64* %79
%1910 = load i64, i64* %76
%1911 = load i64, i64* %77
%1912 = add i64 %1910, %1911
%1913 = and i64 %1912, -1
store i64 %1913, i64* %76
%1914 = load i64, i64* %76
%1915 = load i64, i64* %77
%1916 = icmp ult i64 %1914, %1915
br i1 %1916, label %1917, label %1920
1917: ; preds = %1877
%1918 = load i64, i64* %79
%1919 = add i64 %1918, 4294967296
store i64 %1919, i64* %79
br label %1920
1920: ; preds = %1917, %1877
%1921 = load i64, i64* %76
%1922 = lshr i64 %1921, 32
%1923 = and i64 %1922, 4294967295
%1924 = load i64, i64* %79
%1925 = add i64 %1924, %1923
store i64 %1925, i64* %79
%1926 = load i64, i64* %76
%1927 = and i64 %1926, 4294967295
%1928 = shl i64 %1927, 32
store i64 %1928, i64* %77
%1929 = load i64, i64* %78
%1930 = load i64, i64* %77
%1931 = add i64 %1929, %1930
%1932 = and i64 %1931, -1
store i64 %1932, i64* %78
%1933 = load i64, i64* %78
%1934 = load i64, i64* %77
%1935 = icmp ult i64 %1933, %1934
br i1 %1935, label %1936, label %1939
1936: ; preds = %1920
%1937 = load i64, i64* %79
%1938 = add i64 %1937, 1
store i64 %1938, i64* %79
br label %1939
1939: ; preds = %1936, %1920
%1940 = load i64, i64* %78
store i64 %1940, i64* %7
%1941 = load i64, i64* %79
store i64 %1941, i64* %8
%1942 = load i64, i64* %8
%1943 = and i64 %1942, -9223372036854775808
%1944 = icmp ne i64 %1943, 0
br i1 %1944, label %1945, label %1948
1945: ; preds = %1939
%1946 = load i64, i64* %9
%1947 = add i64 %1946, 1
store i64 %1947, i64* %9
br label %1948
1948: ; preds = %1945, %1939
%1949 = load i64, i64* %8
%1950 = load i64, i64* %8
%1951 = add i64 %1949, %1950
%1952 = and i64 %1951, -1
store i64 %1952, i64* %8
%1953 = load i64, i64* %7
%1954 = and i64 %1953, -9223372036854775808
%1955 = icmp ne i64 %1954, 0
br i1 %1955, label %1956, label %1959
1956: ; preds = %1948
%1957 = load i64, i64* %8
%1958 = add i64 %1957, 1
store i64 %1958, i64* %8
br label %1959
1959: ; preds = %1956, %1948
%1960 = load i64, i64* %7
%1961 = load i64, i64* %7
%1962 = add i64 %1960, %1961
%1963 = and i64 %1962, -1
store i64 %1963, i64* %7
%1964 = load i64, i64* %10
%1965 = load i64, i64* %7
%1966 = add i64 %1964, %1965
%1967 = and i64 %1966, -1
store i64 %1967, i64* %10
%1968 = load i64, i64* %10
%1969 = load i64, i64* %7
%1970 = icmp ult i64 %1968, %1969
br i1 %1970, label %1971, label %1979
1971: ; preds = %1959
%1972 = load i64, i64* %8
%1973 = add i64 %1972, 1
store i64 %1973, i64* %8
%1974 = and i64 %1973, -1
%1975 = icmp eq i64 %1974, 0
br i1 %1975, label %1976, label %1979
1976: ; preds = %1971
%1977 = load i64, i64* %9
%1978 = add i64 %1977, 1
store i64 %1978, i64* %9
br label %1979
1979: ; preds = %1976, %1971, %1959
%1980 = load i64, i64* %11
%1981 = load i64, i64* %8
%1982 = add i64 %1980, %1981
%1983 = and i64 %1982, -1
store i64 %1983, i64* %11
%1984 = load i64, i64* %11
%1985 = load i64, i64* %8
%1986 = icmp ult i64 %1984, %1985
br i1 %1986, label %1987, label %1990
1987: ; preds = %1979
%1988 = load i64, i64* %9
%1989 = add i64 %1988, 1
store i64 %1989, i64* %9
br label %1990
1990: ; preds = %1987, %1979
%1991 = load i64*, i64** %4
%1992 = getelementptr inbounds i64, i64* %1991, i64 5
%1993 = load i64, i64* %1992
%1994 = and i64 %1993, 4294967295
store i64 %1994, i64* %7
%1995 = load i64*, i64** %4
%1996 = getelementptr inbounds i64, i64* %1995, i64 5
%1997 = load i64, i64* %1996
%1998 = lshr i64 %1997, 32
%1999 = and i64 %1998, 4294967295
store i64 %1999, i64* %8
%2000 = load i64*, i64** %4
%2001 = getelementptr inbounds i64, i64* %2000, i64 2
%2002 = load i64, i64* %2001
%2003 = and i64 %2002, 4294967295
store i64 %2003, i64* %5
%2004 = load i64*, i64** %4
%2005 = getelementptr inbounds i64, i64* %2004, i64 2
%2006 = load i64, i64* %2005
%2007 = lshr i64 %2006, 32
%2008 = and i64 %2007, 4294967295
store i64 %2008, i64* %6
%2009 = load i64, i64* %7
store i64 %2009, i64* %82
%2010 = load i64, i64* %8
store i64 %2010, i64* %83
%2011 = load i64, i64* %6
%2012 = load i64, i64* %82
%2013 = mul i64 %2011, %2012
store i64 %2013, i64* %80
%2014 = load i64, i64* %5
%2015 = load i64, i64* %82
%2016 = mul i64 %2014, %2015
store i64 %2016, i64* %82
%2017 = load i64, i64* %5
%2018 = load i64, i64* %83
%2019 = mul i64 %2017, %2018
store i64 %2019, i64* %81
%2020 = load i64, i64* %6
%2021 = load i64, i64* %83
%2022 = mul i64 %2020, %2021
store i64 %2022, i64* %83
%2023 = load i64, i64* %80
%2024 = load i64, i64* %81
%2025 = add i64 %2023, %2024
%2026 = and i64 %2025, -1
store i64 %2026, i64* %80
%2027 = load i64, i64* %80
%2028 = load i64, i64* %81
%2029 = icmp ult i64 %2027, %2028
br i1 %2029, label %2030, label %2033
2030: ; preds = %1990
%2031 = load i64, i64* %83
%2032 = add i64 %2031, 4294967296
store i64 %2032, i64* %83
br label %2033
2033: ; preds = %2030, %1990
%2034 = load i64, i64* %80
%2035 = lshr i64 %2034, 32
%2036 = and i64 %2035, 4294967295
%2037 = load i64, i64* %83
%2038 = add i64 %2037, %2036
store i64 %2038, i64* %83
%2039 = load i64, i64* %80
%2040 = and i64 %2039, 4294967295
%2041 = shl i64 %2040, 32
store i64 %2041, i64* %81
%2042 = load i64, i64* %82
%2043 = load i64, i64* %81
%2044 = add i64 %2042, %2043
%2045 = and i64 %2044, -1
store i64 %2045, i64* %82
%2046 = load i64, i64* %82
%2047 = load i64, i64* %81
%2048 = icmp ult i64 %2046, %2047
br i1 %2048, label %2049, label %2052
2049: ; preds = %2033
%2050 = load i64, i64* %83
%2051 = add i64 %2050, 1
store i64 %2051, i64* %83
br label %2052
2052: ; preds = %2049, %2033
%2053 = load i64, i64* %82
store i64 %2053, i64* %7
%2054 = load i64, i64* %83
store i64 %2054, i64* %8
%2055 = load i64, i64* %8
%2056 = and i64 %2055, -9223372036854775808
%2057 = icmp ne i64 %2056, 0
br i1 %2057, label %2058, label %2061
2058: ; preds = %2052
%2059 = load i64, i64* %9
%2060 = add i64 %2059, 1
store i64 %2060, i64* %9
br label %2061
2061: ; preds = %2058, %2052
%2062 = load i64, i64* %8
%2063 = load i64, i64* %8
%2064 = add i64 %2062, %2063
%2065 = and i64 %2064, -1
store i64 %2065, i64* %8
%2066 = load i64, i64* %7
%2067 = and i64 %2066, -9223372036854775808
%2068 = icmp ne i64 %2067, 0
br i1 %2068, label %2069, label %2072
2069: ; preds = %2061
%2070 = load i64, i64* %8
%2071 = add i64 %2070, 1
store i64 %2071, i64* %8
br label %2072
2072: ; preds = %2069, %2061
%2073 = load i64, i64* %7
%2074 = load i64, i64* %7
%2075 = add i64 %2073, %2074
%2076 = and i64 %2075, -1
store i64 %2076, i64* %7
%2077 = load i64, i64* %10
%2078 = load i64, i64* %7
%2079 = add i64 %2077, %2078
%2080 = and i64 %2079, -1
store i64 %2080, i64* %10
%2081 = load i64, i64* %10
%2082 = load i64, i64* %7
%2083 = icmp ult i64 %2081, %2082
br i1 %2083, label %2084, label %2092
2084: ; preds = %2072
%2085 = load i64, i64* %8
%2086 = add i64 %2085, 1
store i64 %2086, i64* %8
%2087 = and i64 %2086, -1
%2088 = icmp eq i64 %2087, 0
br i1 %2088, label %2089, label %2092
2089: ; preds = %2084
%2090 = load i64, i64* %9
%2091 = add i64 %2090, 1
store i64 %2091, i64* %9
br label %2092
2092: ; preds = %2089, %2084, %2072
%2093 = load i64, i64* %11
%2094 = load i64, i64* %8
%2095 = add i64 %2093, %2094
%2096 = and i64 %2095, -1
store i64 %2096, i64* %11
%2097 = load i64, i64* %11
%2098 = load i64, i64* %8
%2099 = icmp ult i64 %2097, %2098
br i1 %2099, label %2100, label %2103
2100: ; preds = %2092
%2101 = load i64, i64* %9
%2102 = add i64 %2101, 1
store i64 %2102, i64* %9
br label %2103
2103: ; preds = %2100, %2092
%2104 = load i64*, i64** %4
%2105 = getelementptr inbounds i64, i64* %2104, i64 4
%2106 = load i64, i64* %2105
%2107 = and i64 %2106, 4294967295
store i64 %2107, i64* %7
%2108 = load i64*, i64** %4
%2109 = getelementptr inbounds i64, i64* %2108, i64 4
%2110 = load i64, i64* %2109
%2111 = lshr i64 %2110, 32
%2112 = and i64 %2111, 4294967295
store i64 %2112, i64* %8
%2113 = load i64*, i64** %4
%2114 = getelementptr inbounds i64, i64* %2113, i64 3
%2115 = load i64, i64* %2114
%2116 = and i64 %2115, 4294967295
store i64 %2116, i64* %5
%2117 = load i64*, i64** %4
%2118 = getelementptr inbounds i64, i64* %2117, i64 3
%2119 = load i64, i64* %2118
%2120 = lshr i64 %2119, 32
%2121 = and i64 %2120, 4294967295
store i64 %2121, i64* %6
%2122 = load i64, i64* %7
store i64 %2122, i64* %86
%2123 = load i64, i64* %8
store i64 %2123, i64* %87
%2124 = load i64, i64* %6
%2125 = load i64, i64* %86
%2126 = mul i64 %2124, %2125
store i64 %2126, i64* %84
%2127 = load i64, i64* %5
%2128 = load i64, i64* %86
%2129 = mul i64 %2127, %2128
store i64 %2129, i64* %86
%2130 = load i64, i64* %5
%2131 = load i64, i64* %87
%2132 = mul i64 %2130, %2131
store i64 %2132, i64* %85
%2133 = load i64, i64* %6
%2134 = load i64, i64* %87
%2135 = mul i64 %2133, %2134
store i64 %2135, i64* %87
%2136 = load i64, i64* %84
%2137 = load i64, i64* %85
%2138 = add i64 %2136, %2137
%2139 = and i64 %2138, -1
store i64 %2139, i64* %84
%2140 = load i64, i64* %84
%2141 = load i64, i64* %85
%2142 = icmp ult i64 %2140, %2141
br i1 %2142, label %2143, label %2146
2143: ; preds = %2103
%2144 = load i64, i64* %87
%2145 = add i64 %2144, 4294967296
store i64 %2145, i64* %87
br label %2146
2146: ; preds = %2143, %2103
%2147 = load i64, i64* %84
%2148 = lshr i64 %2147, 32
%2149 = and i64 %2148, 4294967295
%2150 = load i64, i64* %87
%2151 = add i64 %2150, %2149
store i64 %2151, i64* %87
%2152 = load i64, i64* %84
%2153 = and i64 %2152, 4294967295
%2154 = shl i64 %2153, 32
store i64 %2154, i64* %85
%2155 = load i64, i64* %86
%2156 = load i64, i64* %85
%2157 = add i64 %2155, %2156
%2158 = and i64 %2157, -1
store i64 %2158, i64* %86
%2159 = load i64, i64* %86
%2160 = load i64, i64* %85
%2161 = icmp ult i64 %2159, %2160
br i1 %2161, label %2162, label %2165
2162: ; preds = %2146
%2163 = load i64, i64* %87
%2164 = add i64 %2163, 1
store i64 %2164, i64* %87
br label %2165
2165: ; preds = %2162, %2146
%2166 = load i64, i64* %86
store i64 %2166, i64* %7
%2167 = load i64, i64* %87
store i64 %2167, i64* %8
%2168 = load i64, i64* %8
%2169 = and i64 %2168, -9223372036854775808
%2170 = icmp ne i64 %2169, 0
br i1 %2170, label %2171, label %2174
2171: ; preds = %2165
%2172 = load i64, i64* %9
%2173 = add i64 %2172, 1
store i64 %2173, i64* %9
br label %2174
2174: ; preds = %2171, %2165
%2175 = load i64, i64* %8
%2176 = load i64, i64* %8
%2177 = add i64 %2175, %2176
%2178 = and i64 %2177, -1
store i64 %2178, i64* %8
%2179 = load i64, i64* %7
%2180 = and i64 %2179, -9223372036854775808
%2181 = icmp ne i64 %2180, 0
br i1 %2181, label %2182, label %2185
2182: ; preds = %2174
%2183 = load i64, i64* %8
%2184 = add i64 %2183, 1
store i64 %2184, i64* %8
br label %2185
2185: ; preds = %2182, %2174
%2186 = load i64, i64* %7
%2187 = load i64, i64* %7
%2188 = add i64 %2186, %2187
%2189 = and i64 %2188, -1
store i64 %2189, i64* %7
%2190 = load i64, i64* %10
%2191 = load i64, i64* %7
%2192 = add i64 %2190, %2191
%2193 = and i64 %2192, -1
store i64 %2193, i64* %10
%2194 = load i64, i64* %10
%2195 = load i64, i64* %7
%2196 = icmp ult i64 %2194, %2195
br i1 %2196, label %2197, label %2205
2197: ; preds = %2185
%2198 = load i64, i64* %8
%2199 = add i64 %2198, 1
store i64 %2199, i64* %8
%2200 = and i64 %2199, -1
%2201 = icmp eq i64 %2200, 0
br i1 %2201, label %2202, label %2205
2202: ; preds = %2197
%2203 = load i64, i64* %9
%2204 = add i64 %2203, 1
store i64 %2204, i64* %9
br label %2205
2205: ; preds = %2202, %2197, %2185
%2206 = load i64, i64* %11
%2207 = load i64, i64* %8
%2208 = add i64 %2206, %2207
%2209 = and i64 %2208, -1
store i64 %2209, i64* %11
%2210 = load i64, i64* %11
%2211 = load i64, i64* %8
%2212 = icmp ult i64 %2210, %2211
br i1 %2212, label %2213, label %2216
2213: ; preds = %2205
%2214 = load i64, i64* %9
%2215 = add i64 %2214, 1
store i64 %2215, i64* %9
br label %2216
2216: ; preds = %2213, %2205
%2217 = load i64, i64* %10
%2218 = load i64*, i64** %3
%2219 = getelementptr inbounds i64, i64* %2218, i64 7
store i64 %2217, i64* %2219
store i64 0, i64* %10
%2220 = load i64*, i64** %4
%2221 = getelementptr inbounds i64, i64* %2220, i64 4
%2222 = load i64, i64* %2221
store i64 %2222, i64* %89
%2223 = load i64, i64* %89
%2224 = and i64 %2223, 4294967295
store i64 %2224, i64* %88
%2225 = load i64, i64* %89
%2226 = lshr i64 %2225, 32
%2227 = and i64 %2226, 4294967295
store i64 %2227, i64* %89
%2228 = load i64, i64* %88
%2229 = load i64, i64* %89
%2230 = mul i64 %2228, %2229
store i64 %2230, i64* %90
%2231 = load i64, i64* %88
%2232 = load i64, i64* %88
%2233 = mul i64 %2232, %2231
store i64 %2233, i64* %88
%2234 = load i64, i64* %89
%2235 = load i64, i64* %89
%2236 = mul i64 %2235, %2234
store i64 %2236, i64* %89
%2237 = load i64, i64* %90
%2238 = and i64 %2237, -2147483648
%2239 = lshr i64 %2238, 31
%2240 = load i64, i64* %89
%2241 = add i64 %2240, %2239
store i64 %2241, i64* %89
%2242 = load i64, i64* %90
%2243 = and i64 %2242, 4294967295
%2244 = shl i64 %2243, 33
store i64 %2244, i64* %90
%2245 = load i64, i64* %88
%2246 = load i64, i64* %90
%2247 = add i64 %2245, %2246
%2248 = and i64 %2247, -1
store i64 %2248, i64* %88
%2249 = load i64, i64* %88
%2250 = load i64, i64* %90
%2251 = icmp ult i64 %2249, %2250
br i1 %2251, label %2252, label %2255
2252: ; preds = %2216
%2253 = load i64, i64* %89
%2254 = add i64 %2253, 1
store i64 %2254, i64* %89
br label %2255
2255: ; preds = %2252, %2216
%2256 = load i64, i64* %88
store i64 %2256, i64* %7
%2257 = load i64, i64* %89
store i64 %2257, i64* %8
%2258 = load i64, i64* %11
%2259 = load i64, i64* %7
%2260 = add i64 %2258, %2259
%2261 = and i64 %2260, -1
store i64 %2261, i64* %11
%2262 = load i64, i64* %11
%2263 = load i64, i64* %7
%2264 = icmp ult i64 %2262, %2263
br i1 %2264, label %2265, label %2268
2265: ; preds = %2255
%2266 = load i64, i64* %8
%2267 = add i64 %2266, 1
store i64 %2267, i64* %8
br label %2268
2268: ; preds = %2265, %2255
%2269 = load i64, i64* %9
%2270 = load i64, i64* %8
%2271 = add i64 %2269, %2270
%2272 = and i64 %2271, -1
store i64 %2272, i64* %9
%2273 = load i64, i64* %9
%2274 = load i64, i64* %8
%2275 = icmp ult i64 %2273, %2274
br i1 %2275, label %2276, label %2279
2276: ; preds = %2268
%2277 = load i64, i64* %10
%2278 = add i64 %2277, 1
store i64 %2278, i64* %10
br label %2279
2279: ; preds = %2276, %2268
%2280 = load i64*, i64** %4
%2281 = getelementptr inbounds i64, i64* %2280, i64 5
%2282 = load i64, i64* %2281
%2283 = and i64 %2282, 4294967295
store i64 %2283, i64* %7
%2284 = load i64*, i64** %4
%2285 = getelementptr inbounds i64, i64* %2284, i64 5
%2286 = load i64, i64* %2285
%2287 = lshr i64 %2286, 32
%2288 = and i64 %2287, 4294967295
store i64 %2288, i64* %8
%2289 = load i64*, i64** %4
%2290 = getelementptr inbounds i64, i64* %2289, i64 3
%2291 = load i64, i64* %2290
%2292 = and i64 %2291, 4294967295
store i64 %2292, i64* %5
%2293 = load i64*, i64** %4
%2294 = getelementptr inbounds i64, i64* %2293, i64 3
%2295 = load i64, i64* %2294
%2296 = lshr i64 %2295, 32
%2297 = and i64 %2296, 4294967295
store i64 %2297, i64* %6
%2298 = load i64, i64* %7
store i64 %2298, i64* %93
%2299 = load i64, i64* %8
store i64 %2299, i64* %94
%2300 = load i64, i64* %6
%2301 = load i64, i64* %93
%2302 = mul i64 %2300, %2301
store i64 %2302, i64* %91
%2303 = load i64, i64* %5
%2304 = load i64, i64* %93
%2305 = mul i64 %2303, %2304
store i64 %2305, i64* %93
%2306 = load i64, i64* %5
%2307 = load i64, i64* %94
%2308 = mul i64 %2306, %2307
store i64 %2308, i64* %92
%2309 = load i64, i64* %6
%2310 = load i64, i64* %94
%2311 = mul i64 %2309, %2310
store i64 %2311, i64* %94
%2312 = load i64, i64* %91
%2313 = load i64, i64* %92
%2314 = add i64 %2312, %2313
%2315 = and i64 %2314, -1
store i64 %2315, i64* %91
%2316 = load i64, i64* %91
%2317 = load i64, i64* %92
%2318 = icmp ult i64 %2316, %2317
br i1 %2318, label %2319, label %2322
2319: ; preds = %2279
%2320 = load i64, i64* %94
%2321 = add i64 %2320, 4294967296
store i64 %2321, i64* %94
br label %2322
2322: ; preds = %2319, %2279
%2323 = load i64, i64* %91
%2324 = lshr i64 %2323, 32
%2325 = and i64 %2324, 4294967295
%2326 = load i64, i64* %94
%2327 = add i64 %2326, %2325
store i64 %2327, i64* %94
%2328 = load i64, i64* %91
%2329 = and i64 %2328, 4294967295
%2330 = shl i64 %2329, 32
store i64 %2330, i64* %92
%2331 = load i64, i64* %93
%2332 = load i64, i64* %92
%2333 = add i64 %2331, %2332
%2334 = and i64 %2333, -1
store i64 %2334, i64* %93
%2335 = load i64, i64* %93
%2336 = load i64, i64* %92
%2337 = icmp ult i64 %2335, %2336
br i1 %2337, label %2338, label %2341
2338: ; preds = %2322
%2339 = load i64, i64* %94
%2340 = add i64 %2339, 1
store i64 %2340, i64* %94
br label %2341
2341: ; preds = %2338, %2322
%2342 = load i64, i64* %93
store i64 %2342, i64* %7
%2343 = load i64, i64* %94
store i64 %2343, i64* %8
%2344 = load i64, i64* %8
%2345 = and i64 %2344, -9223372036854775808
%2346 = icmp ne i64 %2345, 0
br i1 %2346, label %2347, label %2350
2347: ; preds = %2341
%2348 = load i64, i64* %10
%2349 = add i64 %2348, 1
store i64 %2349, i64* %10
br label %2350
2350: ; preds = %2347, %2341
%2351 = load i64, i64* %8
%2352 = load i64, i64* %8
%2353 = add i64 %2351, %2352
%2354 = and i64 %2353, -1
store i64 %2354, i64* %8
%2355 = load i64, i64* %7
%2356 = and i64 %2355, -9223372036854775808
%2357 = icmp ne i64 %2356, 0
br i1 %2357, label %2358, label %2361
2358: ; preds = %2350
%2359 = load i64, i64* %8
%2360 = add i64 %2359, 1
store i64 %2360, i64* %8
br label %2361
2361: ; preds = %2358, %2350
%2362 = load i64, i64* %7
%2363 = load i64, i64* %7
%2364 = add i64 %2362, %2363
%2365 = and i64 %2364, -1
store i64 %2365, i64* %7
%2366 = load i64, i64* %11
%2367 = load i64, i64* %7
%2368 = add i64 %2366, %2367
%2369 = and i64 %2368, -1
store i64 %2369, i64* %11
%2370 = load i64, i64* %11
%2371 = load i64, i64* %7
%2372 = icmp ult i64 %2370, %2371
br i1 %2372, label %2373, label %2381
2373: ; preds = %2361
%2374 = load i64, i64* %8
%2375 = add i64 %2374, 1
store i64 %2375, i64* %8
%2376 = and i64 %2375, -1
%2377 = icmp eq i64 %2376, 0
br i1 %2377, label %2378, label %2381
2378: ; preds = %2373
%2379 = load i64, i64* %10
%2380 = add i64 %2379, 1
store i64 %2380, i64* %10
br label %2381
2381: ; preds = %2378, %2373, %2361
%2382 = load i64, i64* %9
%2383 = load i64, i64* %8
%2384 = add i64 %2382, %2383
%2385 = and i64 %2384, -1
store i64 %2385, i64* %9
%2386 = load i64, i64* %9
%2387 = load i64, i64* %8
%2388 = icmp ult i64 %2386, %2387
br i1 %2388, label %2389, label %2392
2389: ; preds = %2381
%2390 = load i64, i64* %10
%2391 = add i64 %2390, 1
store i64 %2391, i64* %10
br label %2392
2392: ; preds = %2389, %2381
%2393 = load i64*, i64** %4
%2394 = getelementptr inbounds i64, i64* %2393, i64 6
%2395 = load i64, i64* %2394
%2396 = and i64 %2395, 4294967295
store i64 %2396, i64* %7
%2397 = load i64*, i64** %4
%2398 = getelementptr inbounds i64, i64* %2397, i64 6
%2399 = load i64, i64* %2398
%2400 = lshr i64 %2399, 32
%2401 = and i64 %2400, 4294967295
store i64 %2401, i64* %8
%2402 = load i64*, i64** %4
%2403 = getelementptr inbounds i64, i64* %2402, i64 2
%2404 = load i64, i64* %2403
%2405 = and i64 %2404, 4294967295
store i64 %2405, i64* %5
%2406 = load i64*, i64** %4
%2407 = getelementptr inbounds i64, i64* %2406, i64 2
%2408 = load i64, i64* %2407
%2409 = lshr i64 %2408, 32
%2410 = and i64 %2409, 4294967295
store i64 %2410, i64* %6
%2411 = load i64, i64* %7
store i64 %2411, i64* %97
%2412 = load i64, i64* %8
store i64 %2412, i64* %98
%2413 = load i64, i64* %6
%2414 = load i64, i64* %97
%2415 = mul i64 %2413, %2414
store i64 %2415, i64* %95
%2416 = load i64, i64* %5
%2417 = load i64, i64* %97
%2418 = mul i64 %2416, %2417
store i64 %2418, i64* %97
%2419 = load i64, i64* %5
%2420 = load i64, i64* %98
%2421 = mul i64 %2419, %2420
store i64 %2421, i64* %96
%2422 = load i64, i64* %6
%2423 = load i64, i64* %98
%2424 = mul i64 %2422, %2423
store i64 %2424, i64* %98
%2425 = load i64, i64* %95
%2426 = load i64, i64* %96
%2427 = add i64 %2425, %2426
%2428 = and i64 %2427, -1
store i64 %2428, i64* %95
%2429 = load i64, i64* %95
%2430 = load i64, i64* %96
%2431 = icmp ult i64 %2429, %2430
br i1 %2431, label %2432, label %2435
2432: ; preds = %2392
%2433 = load i64, i64* %98
%2434 = add i64 %2433, 4294967296
store i64 %2434, i64* %98
br label %2435
2435: ; preds = %2432, %2392
%2436 = load i64, i64* %95
%2437 = lshr i64 %2436, 32
%2438 = and i64 %2437, 4294967295
%2439 = load i64, i64* %98
%2440 = add i64 %2439, %2438
store i64 %2440, i64* %98
%2441 = load i64, i64* %95
%2442 = and i64 %2441, 4294967295
%2443 = shl i64 %2442, 32
store i64 %2443, i64* %96
%2444 = load i64, i64* %97
%2445 = load i64, i64* %96
%2446 = add i64 %2444, %2445
%2447 = and i64 %2446, -1
store i64 %2447, i64* %97
%2448 = load i64, i64* %97
%2449 = load i64, i64* %96
%2450 = icmp ult i64 %2448, %2449
br i1 %2450, label %2451, label %2454
2451: ; preds = %2435
%2452 = load i64, i64* %98
%2453 = add i64 %2452, 1
store i64 %2453, i64* %98
br label %2454
2454: ; preds = %2451, %2435
%2455 = load i64, i64* %97
store i64 %2455, i64* %7
%2456 = load i64, i64* %98
store i64 %2456, i64* %8
%2457 = load i64, i64* %8
%2458 = and i64 %2457, -9223372036854775808
%2459 = icmp ne i64 %2458, 0
br i1 %2459, label %2460, label %2463
2460: ; preds = %2454
%2461 = load i64, i64* %10
%2462 = add i64 %2461, 1
store i64 %2462, i64* %10
br label %2463
2463: ; preds = %2460, %2454
%2464 = load i64, i64* %8
%2465 = load i64, i64* %8
%2466 = add i64 %2464, %2465
%2467 = and i64 %2466, -1
store i64 %2467, i64* %8
%2468 = load i64, i64* %7
%2469 = and i64 %2468, -9223372036854775808
%2470 = icmp ne i64 %2469, 0
br i1 %2470, label %2471, label %2474
2471: ; preds = %2463
%2472 = load i64, i64* %8
%2473 = add i64 %2472, 1
store i64 %2473, i64* %8
br label %2474
2474: ; preds = %2471, %2463
%2475 = load i64, i64* %7
%2476 = load i64, i64* %7
%2477 = add i64 %2475, %2476
%2478 = and i64 %2477, -1
store i64 %2478, i64* %7
%2479 = load i64, i64* %11
%2480 = load i64, i64* %7
%2481 = add i64 %2479, %2480
%2482 = and i64 %2481, -1
store i64 %2482, i64* %11
%2483 = load i64, i64* %11
%2484 = load i64, i64* %7
%2485 = icmp ult i64 %2483, %2484
br i1 %2485, label %2486, label %2494
2486: ; preds = %2474
%2487 = load i64, i64* %8
%2488 = add i64 %2487, 1
store i64 %2488, i64* %8
%2489 = and i64 %2488, -1
%2490 = icmp eq i64 %2489, 0
br i1 %2490, label %2491, label %2494
2491: ; preds = %2486
%2492 = load i64, i64* %10
%2493 = add i64 %2492, 1
store i64 %2493, i64* %10
br label %2494
2494: ; preds = %2491, %2486, %2474
%2495 = load i64, i64* %9
%2496 = load i64, i64* %8
%2497 = add i64 %2495, %2496
%2498 = and i64 %2497, -1
store i64 %2498, i64* %9
%2499 = load i64, i64* %9
%2500 = load i64, i64* %8
%2501 = icmp ult i64 %2499, %2500
br i1 %2501, label %2502, label %2505
2502: ; preds = %2494
%2503 = load i64, i64* %10
%2504 = add i64 %2503, 1
store i64 %2504, i64* %10
br label %2505
2505: ; preds = %2502, %2494
%2506 = load i64*, i64** %4
%2507 = getelementptr inbounds i64, i64* %2506, i64 7
%2508 = load i64, i64* %2507
%2509 = and i64 %2508, 4294967295
store i64 %2509, i64* %7
%2510 = load i64*, i64** %4
%2511 = getelementptr inbounds i64, i64* %2510, i64 7
%2512 = load i64, i64* %2511
%2513 = lshr i64 %2512, 32
%2514 = and i64 %2513, 4294967295
store i64 %2514, i64* %8
%2515 = load i64*, i64** %4
%2516 = getelementptr inbounds i64, i64* %2515, i64 1
%2517 = load i64, i64* %2516
%2518 = and i64 %2517, 4294967295
store i64 %2518, i64* %5
%2519 = load i64*, i64** %4
%2520 = getelementptr inbounds i64, i64* %2519, i64 1
%2521 = load i64, i64* %2520
%2522 = lshr i64 %2521, 32
%2523 = and i64 %2522, 4294967295
store i64 %2523, i64* %6
%2524 = load i64, i64* %7
store i64 %2524, i64* %101
%2525 = load i64, i64* %8
store i64 %2525, i64* %102
%2526 = load i64, i64* %6
%2527 = load i64, i64* %101
%2528 = mul i64 %2526, %2527
store i64 %2528, i64* %99
%2529 = load i64, i64* %5
%2530 = load i64, i64* %101
%2531 = mul i64 %2529, %2530
store i64 %2531, i64* %101
%2532 = load i64, i64* %5
%2533 = load i64, i64* %102
%2534 = mul i64 %2532, %2533
store i64 %2534, i64* %100
%2535 = load i64, i64* %6
%2536 = load i64, i64* %102
%2537 = mul i64 %2535, %2536
store i64 %2537, i64* %102
%2538 = load i64, i64* %99
%2539 = load i64, i64* %100
%2540 = add i64 %2538, %2539
%2541 = and i64 %2540, -1
store i64 %2541, i64* %99
%2542 = load i64, i64* %99
%2543 = load i64, i64* %100
%2544 = icmp ult i64 %2542, %2543
br i1 %2544, label %2545, label %2548
2545: ; preds = %2505
%2546 = load i64, i64* %102
%2547 = add i64 %2546, 4294967296
store i64 %2547, i64* %102
br label %2548
2548: ; preds = %2545, %2505
%2549 = load i64, i64* %99
%2550 = lshr i64 %2549, 32
%2551 = and i64 %2550, 4294967295
%2552 = load i64, i64* %102
%2553 = add i64 %2552, %2551
store i64 %2553, i64* %102
%2554 = load i64, i64* %99
%2555 = and i64 %2554, 4294967295
%2556 = shl i64 %2555, 32
store i64 %2556, i64* %100
%2557 = load i64, i64* %101
%2558 = load i64, i64* %100
%2559 = add i64 %2557, %2558
%2560 = and i64 %2559, -1
store i64 %2560, i64* %101
%2561 = load i64, i64* %101
%2562 = load i64, i64* %100
%2563 = icmp ult i64 %2561, %2562
br i1 %2563, label %2564, label %2567
2564: ; preds = %2548
%2565 = load i64, i64* %102
%2566 = add i64 %2565, 1
store i64 %2566, i64* %102
br label %2567
2567: ; preds = %2564, %2548
%2568 = load i64, i64* %101
store i64 %2568, i64* %7
%2569 = load i64, i64* %102
store i64 %2569, i64* %8
%2570 = load i64, i64* %8
%2571 = and i64 %2570, -9223372036854775808
%2572 = icmp ne i64 %2571, 0
br i1 %2572, label %2573, label %2576
2573: ; preds = %2567
%2574 = load i64, i64* %10
%2575 = add i64 %2574, 1
store i64 %2575, i64* %10
br label %2576
2576: ; preds = %2573, %2567
%2577 = load i64, i64* %8
%2578 = load i64, i64* %8
%2579 = add i64 %2577, %2578
%2580 = and i64 %2579, -1
store i64 %2580, i64* %8
%2581 = load i64, i64* %7
%2582 = and i64 %2581, -9223372036854775808
%2583 = icmp ne i64 %2582, 0
br i1 %2583, label %2584, label %2587
2584: ; preds = %2576
%2585 = load i64, i64* %8
%2586 = add i64 %2585, 1
store i64 %2586, i64* %8
br label %2587
2587: ; preds = %2584, %2576
%2588 = load i64, i64* %7
%2589 = load i64, i64* %7
%2590 = add i64 %2588, %2589
%2591 = and i64 %2590, -1
store i64 %2591, i64* %7
%2592 = load i64, i64* %11
%2593 = load i64, i64* %7
%2594 = add i64 %2592, %2593
%2595 = and i64 %2594, -1
store i64 %2595, i64* %11
%2596 = load i64, i64* %11
%2597 = load i64, i64* %7
%2598 = icmp ult i64 %2596, %2597
br i1 %2598, label %2599, label %2607
2599: ; preds = %2587
%2600 = load i64, i64* %8
%2601 = add i64 %2600, 1
store i64 %2601, i64* %8
%2602 = and i64 %2601, -1
%2603 = icmp eq i64 %2602, 0
br i1 %2603, label %2604, label %2607
2604: ; preds = %2599
%2605 = load i64, i64* %10
%2606 = add i64 %2605, 1
store i64 %2606, i64* %10
br label %2607
2607: ; preds = %2604, %2599, %2587
%2608 = load i64, i64* %9
%2609 = load i64, i64* %8
%2610 = add i64 %2608, %2609
%2611 = and i64 %2610, -1
store i64 %2611, i64* %9
%2612 = load i64, i64* %9
%2613 = load i64, i64* %8
%2614 = icmp ult i64 %2612, %2613
br i1 %2614, label %2615, label %2618
2615: ; preds = %2607
%2616 = load i64, i64* %10
%2617 = add i64 %2616, 1
store i64 %2617, i64* %10
br label %2618
2618: ; preds = %2615, %2607
%2619 = load i64, i64* %11
%2620 = load i64*, i64** %3
%2621 = getelementptr inbounds i64, i64* %2620, i64 8
store i64 %2619, i64* %2621
store i64 0, i64* %11
%2622 = load i64*, i64** %4
%2623 = getelementptr inbounds i64, i64* %2622, i64 7
%2624 = load i64, i64* %2623
%2625 = and i64 %2624, 4294967295
store i64 %2625, i64* %7
%2626 = load i64*, i64** %4
%2627 = getelementptr inbounds i64, i64* %2626, i64 7
%2628 = load i64, i64* %2627
%2629 = lshr i64 %2628, 32
%2630 = and i64 %2629, 4294967295
store i64 %2630, i64* %8
%2631 = load i64*, i64** %4
%2632 = getelementptr inbounds i64, i64* %2631, i64 2
%2633 = load i64, i64* %2632
%2634 = and i64 %2633, 4294967295
store i64 %2634, i64* %5
%2635 = load i64*, i64** %4
%2636 = getelementptr inbounds i64, i64* %2635, i64 2
%2637 = load i64, i64* %2636
%2638 = lshr i64 %2637, 32
%2639 = and i64 %2638, 4294967295
store i64 %2639, i64* %6
%2640 = load i64, i64* %7
store i64 %2640, i64* %105
%2641 = load i64, i64* %8
store i64 %2641, i64* %106
%2642 = load i64, i64* %6
%2643 = load i64, i64* %105
%2644 = mul i64 %2642, %2643
store i64 %2644, i64* %103
%2645 = load i64, i64* %5
%2646 = load i64, i64* %105
%2647 = mul i64 %2645, %2646
store i64 %2647, i64* %105
%2648 = load i64, i64* %5
%2649 = load i64, i64* %106
%2650 = mul i64 %2648, %2649
store i64 %2650, i64* %104
%2651 = load i64, i64* %6
%2652 = load i64, i64* %106
%2653 = mul i64 %2651, %2652
store i64 %2653, i64* %106
%2654 = load i64, i64* %103
%2655 = load i64, i64* %104
%2656 = add i64 %2654, %2655
%2657 = and i64 %2656, -1
store i64 %2657, i64* %103
%2658 = load i64, i64* %103
%2659 = load i64, i64* %104
%2660 = icmp ult i64 %2658, %2659
br i1 %2660, label %2661, label %2664
2661: ; preds = %2618
%2662 = load i64, i64* %106
%2663 = add i64 %2662, 4294967296
store i64 %2663, i64* %106
br label %2664
2664: ; preds = %2661, %2618
%2665 = load i64, i64* %103
%2666 = lshr i64 %2665, 32
%2667 = and i64 %2666, 4294967295
%2668 = load i64, i64* %106
%2669 = add i64 %2668, %2667
store i64 %2669, i64* %106
%2670 = load i64, i64* %103
%2671 = and i64 %2670, 4294967295
%2672 = shl i64 %2671, 32
store i64 %2672, i64* %104
%2673 = load i64, i64* %105
%2674 = load i64, i64* %104
%2675 = add i64 %2673, %2674
%2676 = and i64 %2675, -1
store i64 %2676, i64* %105
%2677 = load i64, i64* %105
%2678 = load i64, i64* %104
%2679 = icmp ult i64 %2677, %2678
br i1 %2679, label %2680, label %2683
2680: ; preds = %2664
%2681 = load i64, i64* %106
%2682 = add i64 %2681, 1
store i64 %2682, i64* %106
br label %2683
2683: ; preds = %2680, %2664
%2684 = load i64, i64* %105
store i64 %2684, i64* %7
%2685 = load i64, i64* %106
store i64 %2685, i64* %8
%2686 = load i64, i64* %8
%2687 = and i64 %2686, -9223372036854775808
%2688 = icmp ne i64 %2687, 0
br i1 %2688, label %2689, label %2692
2689: ; preds = %2683
%2690 = load i64, i64* %11
%2691 = add i64 %2690, 1
store i64 %2691, i64* %11
br label %2692
2692: ; preds = %2689, %2683
%2693 = load i64, i64* %8
%2694 = load i64, i64* %8
%2695 = add i64 %2693, %2694
%2696 = and i64 %2695, -1
store i64 %2696, i64* %8
%2697 = load i64, i64* %7
%2698 = and i64 %2697, -9223372036854775808
%2699 = icmp ne i64 %2698, 0
br i1 %2699, label %2700, label %2703
2700: ; preds = %2692
%2701 = load i64, i64* %8
%2702 = add i64 %2701, 1
store i64 %2702, i64* %8
br label %2703
2703: ; preds = %2700, %2692
%2704 = load i64, i64* %7
%2705 = load i64, i64* %7
%2706 = add i64 %2704, %2705
%2707 = and i64 %2706, -1
store i64 %2707, i64* %7
%2708 = load i64, i64* %9
%2709 = load i64, i64* %7
%2710 = add i64 %2708, %2709
%2711 = and i64 %2710, -1
store i64 %2711, i64* %9
%2712 = load i64, i64* %9
%2713 = load i64, i64* %7
%2714 = icmp ult i64 %2712, %2713
br i1 %2714, label %2715, label %2723
2715: ; preds = %2703
%2716 = load i64, i64* %8
%2717 = add i64 %2716, 1
store i64 %2717, i64* %8
%2718 = and i64 %2717, -1
%2719 = icmp eq i64 %2718, 0
br i1 %2719, label %2720, label %2723
2720: ; preds = %2715
%2721 = load i64, i64* %11
%2722 = add i64 %2721, 1
store i64 %2722, i64* %11
br label %2723
2723: ; preds = %2720, %2715, %2703
%2724 = load i64, i64* %10
%2725 = load i64, i64* %8
%2726 = add i64 %2724, %2725
%2727 = and i64 %2726, -1
store i64 %2727, i64* %10
%2728 = load i64, i64* %10
%2729 = load i64, i64* %8
%2730 = icmp ult i64 %2728, %2729
br i1 %2730, label %2731, label %2734
2731: ; preds = %2723
%2732 = load i64, i64* %11
%2733 = add i64 %2732, 1
store i64 %2733, i64* %11
br label %2734
2734: ; preds = %2731, %2723
%2735 = load i64*, i64** %4
%2736 = getelementptr inbounds i64, i64* %2735, i64 6
%2737 = load i64, i64* %2736
%2738 = and i64 %2737, 4294967295
store i64 %2738, i64* %7
%2739 = load i64*, i64** %4
%2740 = getelementptr inbounds i64, i64* %2739, i64 6
%2741 = load i64, i64* %2740
%2742 = lshr i64 %2741, 32
%2743 = and i64 %2742, 4294967295
store i64 %2743, i64* %8
%2744 = load i64*, i64** %4
%2745 = getelementptr inbounds i64, i64* %2744, i64 3
%2746 = load i64, i64* %2745
%2747 = and i64 %2746, 4294967295
store i64 %2747, i64* %5
%2748 = load i64*, i64** %4
%2749 = getelementptr inbounds i64, i64* %2748, i64 3
%2750 = load i64, i64* %2749
%2751 = lshr i64 %2750, 32
%2752 = and i64 %2751, 4294967295
store i64 %2752, i64* %6
%2753 = load i64, i64* %7
store i64 %2753, i64* %109
%2754 = load i64, i64* %8
store i64 %2754, i64* %110
%2755 = load i64, i64* %6
%2756 = load i64, i64* %109
%2757 = mul i64 %2755, %2756
store i64 %2757, i64* %107
%2758 = load i64, i64* %5
%2759 = load i64, i64* %109
%2760 = mul i64 %2758, %2759
store i64 %2760, i64* %109
%2761 = load i64, i64* %5
%2762 = load i64, i64* %110
%2763 = mul i64 %2761, %2762
store i64 %2763, i64* %108
%2764 = load i64, i64* %6
%2765 = load i64, i64* %110
%2766 = mul i64 %2764, %2765
store i64 %2766, i64* %110
%2767 = load i64, i64* %107
%2768 = load i64, i64* %108
%2769 = add i64 %2767, %2768
%2770 = and i64 %2769, -1
store i64 %2770, i64* %107
%2771 = load i64, i64* %107
%2772 = load i64, i64* %108
%2773 = icmp ult i64 %2771, %2772
br i1 %2773, label %2774, label %2777
2774: ; preds = %2734
%2775 = load i64, i64* %110
%2776 = add i64 %2775, 4294967296
store i64 %2776, i64* %110
br label %2777
2777: ; preds = %2774, %2734
%2778 = load i64, i64* %107
%2779 = lshr i64 %2778, 32
%2780 = and i64 %2779, 4294967295
%2781 = load i64, i64* %110
%2782 = add i64 %2781, %2780
store i64 %2782, i64* %110
%2783 = load i64, i64* %107
%2784 = and i64 %2783, 4294967295
%2785 = shl i64 %2784, 32
store i64 %2785, i64* %108
%2786 = load i64, i64* %109
%2787 = load i64, i64* %108
%2788 = add i64 %2786, %2787
%2789 = and i64 %2788, -1
store i64 %2789, i64* %109
%2790 = load i64, i64* %109
%2791 = load i64, i64* %108
%2792 = icmp ult i64 %2790, %2791
br i1 %2792, label %2793, label %2796
2793: ; preds = %2777
%2794 = load i64, i64* %110
%2795 = add i64 %2794, 1
store i64 %2795, i64* %110
br label %2796
2796: ; preds = %2793, %2777
%2797 = load i64, i64* %109
store i64 %2797, i64* %7
%2798 = load i64, i64* %110
store i64 %2798, i64* %8
%2799 = load i64, i64* %8
%2800 = and i64 %2799, -9223372036854775808
%2801 = icmp ne i64 %2800, 0
br i1 %2801, label %2802, label %2805
2802: ; preds = %2796
%2803 = load i64, i64* %11
%2804 = add i64 %2803, 1
store i64 %2804, i64* %11
br label %2805
2805: ; preds = %2802, %2796
%2806 = load i64, i64* %8
%2807 = load i64, i64* %8
%2808 = add i64 %2806, %2807
%2809 = and i64 %2808, -1
store i64 %2809, i64* %8
%2810 = load i64, i64* %7
%2811 = and i64 %2810, -9223372036854775808
%2812 = icmp ne i64 %2811, 0
br i1 %2812, label %2813, label %2816
2813: ; preds = %2805
%2814 = load i64, i64* %8
%2815 = add i64 %2814, 1
store i64 %2815, i64* %8
br label %2816
2816: ; preds = %2813, %2805
%2817 = load i64, i64* %7
%2818 = load i64, i64* %7
%2819 = add i64 %2817, %2818
%2820 = and i64 %2819, -1
store i64 %2820, i64* %7
%2821 = load i64, i64* %9
%2822 = load i64, i64* %7
%2823 = add i64 %2821, %2822
%2824 = and i64 %2823, -1
store i64 %2824, i64* %9
%2825 = load i64, i64* %9
%2826 = load i64, i64* %7
%2827 = icmp ult i64 %2825, %2826
br i1 %2827, label %2828, label %2836
2828: ; preds = %2816
%2829 = load i64, i64* %8
%2830 = add i64 %2829, 1
store i64 %2830, i64* %8
%2831 = and i64 %2830, -1
%2832 = icmp eq i64 %2831, 0
br i1 %2832, label %2833, label %2836
2833: ; preds = %2828
%2834 = load i64, i64* %11
%2835 = add i64 %2834, 1
store i64 %2835, i64* %11
br label %2836
2836: ; preds = %2833, %2828, %2816
%2837 = load i64, i64* %10
%2838 = load i64, i64* %8
%2839 = add i64 %2837, %2838
%2840 = and i64 %2839, -1
store i64 %2840, i64* %10
%2841 = load i64, i64* %10
%2842 = load i64, i64* %8
%2843 = icmp ult i64 %2841, %2842
br i1 %2843, label %2844, label %2847
2844: ; preds = %2836
%2845 = load i64, i64* %11
%2846 = add i64 %2845, 1
store i64 %2846, i64* %11
br label %2847
2847: ; preds = %2844, %2836
%2848 = load i64*, i64** %4
%2849 = getelementptr inbounds i64, i64* %2848, i64 5
%2850 = load i64, i64* %2849
%2851 = and i64 %2850, 4294967295
store i64 %2851, i64* %7
%2852 = load i64*, i64** %4
%2853 = getelementptr inbounds i64, i64* %2852, i64 5
%2854 = load i64, i64* %2853
%2855 = lshr i64 %2854, 32
%2856 = and i64 %2855, 4294967295
store i64 %2856, i64* %8
%2857 = load i64*, i64** %4
%2858 = getelementptr inbounds i64, i64* %2857, i64 4
%2859 = load i64, i64* %2858
%2860 = and i64 %2859, 4294967295
store i64 %2860, i64* %5
%2861 = load i64*, i64** %4
%2862 = getelementptr inbounds i64, i64* %2861, i64 4
%2863 = load i64, i64* %2862
%2864 = lshr i64 %2863, 32
%2865 = and i64 %2864, 4294967295
store i64 %2865, i64* %6
%2866 = load i64, i64* %7
store i64 %2866, i64* %113
%2867 = load i64, i64* %8
store i64 %2867, i64* %114
%2868 = load i64, i64* %6
%2869 = load i64, i64* %113
%2870 = mul i64 %2868, %2869
store i64 %2870, i64* %111
%2871 = load i64, i64* %5
%2872 = load i64, i64* %113
%2873 = mul i64 %2871, %2872
store i64 %2873, i64* %113
%2874 = load i64, i64* %5
%2875 = load i64, i64* %114
%2876 = mul i64 %2874, %2875
store i64 %2876, i64* %112
%2877 = load i64, i64* %6
%2878 = load i64, i64* %114
%2879 = mul i64 %2877, %2878
store i64 %2879, i64* %114
%2880 = load i64, i64* %111
%2881 = load i64, i64* %112
%2882 = add i64 %2880, %2881
%2883 = and i64 %2882, -1
store i64 %2883, i64* %111
%2884 = load i64, i64* %111
%2885 = load i64, i64* %112
%2886 = icmp ult i64 %2884, %2885
br i1 %2886, label %2887, label %2890
2887: ; preds = %2847
%2888 = load i64, i64* %114
%2889 = add i64 %2888, 4294967296
store i64 %2889, i64* %114
br label %2890
2890: ; preds = %2887, %2847
%2891 = load i64, i64* %111
%2892 = lshr i64 %2891, 32
%2893 = and i64 %2892, 4294967295
%2894 = load i64, i64* %114
%2895 = add i64 %2894, %2893
store i64 %2895, i64* %114
%2896 = load i64, i64* %111
%2897 = and i64 %2896, 4294967295
%2898 = shl i64 %2897, 32
store i64 %2898, i64* %112
%2899 = load i64, i64* %113
%2900 = load i64, i64* %112
%2901 = add i64 %2899, %2900
%2902 = and i64 %2901, -1
store i64 %2902, i64* %113
%2903 = load i64, i64* %113
%2904 = load i64, i64* %112
%2905 = icmp ult i64 %2903, %2904
br i1 %2905, label %2906, label %2909
2906: ; preds = %2890
%2907 = load i64, i64* %114
%2908 = add i64 %2907, 1
store i64 %2908, i64* %114
br label %2909
2909: ; preds = %2906, %2890
%2910 = load i64, i64* %113
store i64 %2910, i64* %7
%2911 = load i64, i64* %114
store i64 %2911, i64* %8
%2912 = load i64, i64* %8
%2913 = and i64 %2912, -9223372036854775808
%2914 = icmp ne i64 %2913, 0
br i1 %2914, label %2915, label %2918
2915: ; preds = %2909
%2916 = load i64, i64* %11
%2917 = add i64 %2916, 1
store i64 %2917, i64* %11
br label %2918
2918: ; preds = %2915, %2909
%2919 = load i64, i64* %8
%2920 = load i64, i64* %8
%2921 = add i64 %2919, %2920
%2922 = and i64 %2921, -1
store i64 %2922, i64* %8
%2923 = load i64, i64* %7
%2924 = and i64 %2923, -9223372036854775808
%2925 = icmp ne i64 %2924, 0
br i1 %2925, label %2926, label %2929
2926: ; preds = %2918
%2927 = load i64, i64* %8
%2928 = add i64 %2927, 1
store i64 %2928, i64* %8
br label %2929
2929: ; preds = %2926, %2918
%2930 = load i64, i64* %7
%2931 = load i64, i64* %7
%2932 = add i64 %2930, %2931
%2933 = and i64 %2932, -1
store i64 %2933, i64* %7
%2934 = load i64, i64* %9
%2935 = load i64, i64* %7
%2936 = add i64 %2934, %2935
%2937 = and i64 %2936, -1
store i64 %2937, i64* %9
%2938 = load i64, i64* %9
%2939 = load i64, i64* %7
%2940 = icmp ult i64 %2938, %2939
br i1 %2940, label %2941, label %2949
2941: ; preds = %2929
%2942 = load i64, i64* %8
%2943 = add i64 %2942, 1
store i64 %2943, i64* %8
%2944 = and i64 %2943, -1
%2945 = icmp eq i64 %2944, 0
br i1 %2945, label %2946, label %2949
2946: ; preds = %2941
%2947 = load i64, i64* %11
%2948 = add i64 %2947, 1
store i64 %2948, i64* %11
br label %2949
2949: ; preds = %2946, %2941, %2929
%2950 = load i64, i64* %10
%2951 = load i64, i64* %8
%2952 = add i64 %2950, %2951
%2953 = and i64 %2952, -1
store i64 %2953, i64* %10
%2954 = load i64, i64* %10
%2955 = load i64, i64* %8
%2956 = icmp ult i64 %2954, %2955
br i1 %2956, label %2957, label %2960
2957: ; preds = %2949
%2958 = load i64, i64* %11
%2959 = add i64 %2958, 1
store i64 %2959, i64* %11
br label %2960
2960: ; preds = %2957, %2949
%2961 = load i64, i64* %9
%2962 = load i64*, i64** %3
%2963 = getelementptr inbounds i64, i64* %2962, i64 9
store i64 %2961, i64* %2963
store i64 0, i64* %9
%2964 = load i64*, i64** %4
%2965 = getelementptr inbounds i64, i64* %2964, i64 5
%2966 = load i64, i64* %2965
store i64 %2966, i64* %116
%2967 = load i64, i64* %116
%2968 = and i64 %2967, 4294967295
store i64 %2968, i64* %115
%2969 = load i64, i64* %116
%2970 = lshr i64 %2969, 32
%2971 = and i64 %2970, 4294967295
store i64 %2971, i64* %116
%2972 = load i64, i64* %115
%2973 = load i64, i64* %116
%2974 = mul i64 %2972, %2973
store i64 %2974, i64* %117
%2975 = load i64, i64* %115
%2976 = load i64, i64* %115
%2977 = mul i64 %2976, %2975
store i64 %2977, i64* %115
%2978 = load i64, i64* %116
%2979 = load i64, i64* %116
%2980 = mul i64 %2979, %2978
store i64 %2980, i64* %116
%2981 = load i64, i64* %117
%2982 = and i64 %2981, -2147483648
%2983 = lshr i64 %2982, 31
%2984 = load i64, i64* %116
%2985 = add i64 %2984, %2983
store i64 %2985, i64* %116
%2986 = load i64, i64* %117
%2987 = and i64 %2986, 4294967295
%2988 = shl i64 %2987, 33
store i64 %2988, i64* %117
%2989 = load i64, i64* %115
%2990 = load i64, i64* %117
%2991 = add i64 %2989, %2990
%2992 = and i64 %2991, -1
store i64 %2992, i64* %115
%2993 = load i64, i64* %115
%2994 = load i64, i64* %117
%2995 = icmp ult i64 %2993, %2994
br i1 %2995, label %2996, label %2999
2996: ; preds = %2960
%2997 = load i64, i64* %116
%2998 = add i64 %2997, 1
store i64 %2998, i64* %116
br label %2999
2999: ; preds = %2996, %2960
%3000 = load i64, i64* %115
store i64 %3000, i64* %7
%3001 = load i64, i64* %116
store i64 %3001, i64* %8
%3002 = load i64, i64* %10
%3003 = load i64, i64* %7
%3004 = add i64 %3002, %3003
%3005 = and i64 %3004, -1
store i64 %3005, i64* %10
%3006 = load i64, i64* %10
%3007 = load i64, i64* %7
%3008 = icmp ult i64 %3006, %3007
br i1 %3008, label %3009, label %3012
3009: ; preds = %2999
%3010 = load i64, i64* %8
%3011 = add i64 %3010, 1
store i64 %3011, i64* %8
br label %3012
3012: ; preds = %3009, %2999
%3013 = load i64, i64* %11
%3014 = load i64, i64* %8
%3015 = add i64 %3013, %3014
%3016 = and i64 %3015, -1
store i64 %3016, i64* %11
%3017 = load i64, i64* %11
%3018 = load i64, i64* %8
%3019 = icmp ult i64 %3017, %3018
br i1 %3019, label %3020, label %3023
3020: ; preds = %3012
%3021 = load i64, i64* %9
%3022 = add i64 %3021, 1
store i64 %3022, i64* %9
br label %3023
3023: ; preds = %3020, %3012
%3024 = load i64*, i64** %4
%3025 = getelementptr inbounds i64, i64* %3024, i64 6
%3026 = load i64, i64* %3025
%3027 = and i64 %3026, 4294967295
store i64 %3027, i64* %7
%3028 = load i64*, i64** %4
%3029 = getelementptr inbounds i64, i64* %3028, i64 6
%3030 = load i64, i64* %3029
%3031 = lshr i64 %3030, 32
%3032 = and i64 %3031, 4294967295
store i64 %3032, i64* %8
%3033 = load i64*, i64** %4
%3034 = getelementptr inbounds i64, i64* %3033, i64 4
%3035 = load i64, i64* %3034
%3036 = and i64 %3035, 4294967295
store i64 %3036, i64* %5
%3037 = load i64*, i64** %4
%3038 = getelementptr inbounds i64, i64* %3037, i64 4
%3039 = load i64, i64* %3038
%3040 = lshr i64 %3039, 32
%3041 = and i64 %3040, 4294967295
store i64 %3041, i64* %6
%3042 = load i64, i64* %7
store i64 %3042, i64* %120
%3043 = load i64, i64* %8
store i64 %3043, i64* %121
%3044 = load i64, i64* %6
%3045 = load i64, i64* %120
%3046 = mul i64 %3044, %3045
store i64 %3046, i64* %118
%3047 = load i64, i64* %5
%3048 = load i64, i64* %120
%3049 = mul i64 %3047, %3048
store i64 %3049, i64* %120
%3050 = load i64, i64* %5
%3051 = load i64, i64* %121
%3052 = mul i64 %3050, %3051
store i64 %3052, i64* %119
%3053 = load i64, i64* %6
%3054 = load i64, i64* %121
%3055 = mul i64 %3053, %3054
store i64 %3055, i64* %121
%3056 = load i64, i64* %118
%3057 = load i64, i64* %119
%3058 = add i64 %3056, %3057
%3059 = and i64 %3058, -1
store i64 %3059, i64* %118
%3060 = load i64, i64* %118
%3061 = load i64, i64* %119
%3062 = icmp ult i64 %3060, %3061
br i1 %3062, label %3063, label %3066
3063: ; preds = %3023
%3064 = load i64, i64* %121
%3065 = add i64 %3064, 4294967296
store i64 %3065, i64* %121
br label %3066
3066: ; preds = %3063, %3023
%3067 = load i64, i64* %118
%3068 = lshr i64 %3067, 32
%3069 = and i64 %3068, 4294967295
%3070 = load i64, i64* %121
%3071 = add i64 %3070, %3069
store i64 %3071, i64* %121
%3072 = load i64, i64* %118
%3073 = and i64 %3072, 4294967295
%3074 = shl i64 %3073, 32
store i64 %3074, i64* %119
%3075 = load i64, i64* %120
%3076 = load i64, i64* %119
%3077 = add i64 %3075, %3076
%3078 = and i64 %3077, -1
store i64 %3078, i64* %120
%3079 = load i64, i64* %120
%3080 = load i64, i64* %119
%3081 = icmp ult i64 %3079, %3080
br i1 %3081, label %3082, label %3085
3082: ; preds = %3066
%3083 = load i64, i64* %121
%3084 = add i64 %3083, 1
store i64 %3084, i64* %121
br label %3085
3085: ; preds = %3082, %3066
%3086 = load i64, i64* %120
store i64 %3086, i64* %7
%3087 = load i64, i64* %121
store i64 %3087, i64* %8
%3088 = load i64, i64* %8
%3089 = and i64 %3088, -9223372036854775808
%3090 = icmp ne i64 %3089, 0
br i1 %3090, label %3091, label %3094
3091: ; preds = %3085
%3092 = load i64, i64* %9
%3093 = add i64 %3092, 1
store i64 %3093, i64* %9
br label %3094
3094: ; preds = %3091, %3085
%3095 = load i64, i64* %8
%3096 = load i64, i64* %8
%3097 = add i64 %3095, %3096
%3098 = and i64 %3097, -1
store i64 %3098, i64* %8
%3099 = load i64, i64* %7
%3100 = and i64 %3099, -9223372036854775808
%3101 = icmp ne i64 %3100, 0
br i1 %3101, label %3102, label %3105
3102: ; preds = %3094
%3103 = load i64, i64* %8
%3104 = add i64 %3103, 1
store i64 %3104, i64* %8
br label %3105
3105: ; preds = %3102, %3094
%3106 = load i64, i64* %7
%3107 = load i64, i64* %7
%3108 = add i64 %3106, %3107
%3109 = and i64 %3108, -1
store i64 %3109, i64* %7
%3110 = load i64, i64* %10
%3111 = load i64, i64* %7
%3112 = add i64 %3110, %3111
%3113 = and i64 %3112, -1
store i64 %3113, i64* %10
%3114 = load i64, i64* %10
%3115 = load i64, i64* %7
%3116 = icmp ult i64 %3114, %3115
br i1 %3116, label %3117, label %3125
3117: ; preds = %3105
%3118 = load i64, i64* %8
%3119 = add i64 %3118, 1
store i64 %3119, i64* %8
%3120 = and i64 %3119, -1
%3121 = icmp eq i64 %3120, 0
br i1 %3121, label %3122, label %3125
3122: ; preds = %3117
%3123 = load i64, i64* %9
%3124 = add i64 %3123, 1
store i64 %3124, i64* %9
br label %3125
3125: ; preds = %3122, %3117, %3105
%3126 = load i64, i64* %11
%3127 = load i64, i64* %8
%3128 = add i64 %3126, %3127
%3129 = and i64 %3128, -1
store i64 %3129, i64* %11
%3130 = load i64, i64* %11
%3131 = load i64, i64* %8
%3132 = icmp ult i64 %3130, %3131
br i1 %3132, label %3133, label %3136
3133: ; preds = %3125
%3134 = load i64, i64* %9
%3135 = add i64 %3134, 1
store i64 %3135, i64* %9
br label %3136
3136: ; preds = %3133, %3125
%3137 = load i64*, i64** %4
%3138 = getelementptr inbounds i64, i64* %3137, i64 7
%3139 = load i64, i64* %3138
%3140 = and i64 %3139, 4294967295
store i64 %3140, i64* %7
%3141 = load i64*, i64** %4
%3142 = getelementptr inbounds i64, i64* %3141, i64 7
%3143 = load i64, i64* %3142
%3144 = lshr i64 %3143, 32
%3145 = and i64 %3144, 4294967295
store i64 %3145, i64* %8
%3146 = load i64*, i64** %4
%3147 = getelementptr inbounds i64, i64* %3146, i64 3
%3148 = load i64, i64* %3147
%3149 = and i64 %3148, 4294967295
store i64 %3149, i64* %5
%3150 = load i64*, i64** %4
%3151 = getelementptr inbounds i64, i64* %3150, i64 3
%3152 = load i64, i64* %3151
%3153 = lshr i64 %3152, 32
%3154 = and i64 %3153, 4294967295
store i64 %3154, i64* %6
%3155 = load i64, i64* %7
store i64 %3155, i64* %124
%3156 = load i64, i64* %8
store i64 %3156, i64* %125
%3157 = load i64, i64* %6
%3158 = load i64, i64* %124
%3159 = mul i64 %3157, %3158
store i64 %3159, i64* %122
%3160 = load i64, i64* %5
%3161 = load i64, i64* %124
%3162 = mul i64 %3160, %3161
store i64 %3162, i64* %124
%3163 = load i64, i64* %5
%3164 = load i64, i64* %125
%3165 = mul i64 %3163, %3164
store i64 %3165, i64* %123
%3166 = load i64, i64* %6
%3167 = load i64, i64* %125
%3168 = mul i64 %3166, %3167
store i64 %3168, i64* %125
%3169 = load i64, i64* %122
%3170 = load i64, i64* %123
%3171 = add i64 %3169, %3170
%3172 = and i64 %3171, -1
store i64 %3172, i64* %122
%3173 = load i64, i64* %122
%3174 = load i64, i64* %123
%3175 = icmp ult i64 %3173, %3174
br i1 %3175, label %3176, label %3179
3176: ; preds = %3136
%3177 = load i64, i64* %125
%3178 = add i64 %3177, 4294967296
store i64 %3178, i64* %125
br label %3179
3179: ; preds = %3176, %3136
%3180 = load i64, i64* %122
%3181 = lshr i64 %3180, 32
%3182 = and i64 %3181, 4294967295
%3183 = load i64, i64* %125
%3184 = add i64 %3183, %3182
store i64 %3184, i64* %125
%3185 = load i64, i64* %122
%3186 = and i64 %3185, 4294967295
%3187 = shl i64 %3186, 32
store i64 %3187, i64* %123
%3188 = load i64, i64* %124
%3189 = load i64, i64* %123
%3190 = add i64 %3188, %3189
%3191 = and i64 %3190, -1
store i64 %3191, i64* %124
%3192 = load i64, i64* %124
%3193 = load i64, i64* %123
%3194 = icmp ult i64 %3192, %3193
br i1 %3194, label %3195, label %3198
3195: ; preds = %3179
%3196 = load i64, i64* %125
%3197 = add i64 %3196, 1
store i64 %3197, i64* %125
br label %3198
3198: ; preds = %3195, %3179
%3199 = load i64, i64* %124
store i64 %3199, i64* %7
%3200 = load i64, i64* %125
store i64 %3200, i64* %8
%3201 = load i64, i64* %8
%3202 = and i64 %3201, -9223372036854775808
%3203 = icmp ne i64 %3202, 0
br i1 %3203, label %3204, label %3207
3204: ; preds = %3198
%3205 = load i64, i64* %9
%3206 = add i64 %3205, 1
store i64 %3206, i64* %9
br label %3207
3207: ; preds = %3204, %3198
%3208 = load i64, i64* %8
%3209 = load i64, i64* %8
%3210 = add i64 %3208, %3209
%3211 = and i64 %3210, -1
store i64 %3211, i64* %8
%3212 = load i64, i64* %7
%3213 = and i64 %3212, -9223372036854775808
%3214 = icmp ne i64 %3213, 0
br i1 %3214, label %3215, label %3218
3215: ; preds = %3207
%3216 = load i64, i64* %8
%3217 = add i64 %3216, 1
store i64 %3217, i64* %8
br label %3218
3218: ; preds = %3215, %3207
%3219 = load i64, i64* %7
%3220 = load i64, i64* %7
%3221 = add i64 %3219, %3220
%3222 = and i64 %3221, -1
store i64 %3222, i64* %7
%3223 = load i64, i64* %10
%3224 = load i64, i64* %7
%3225 = add i64 %3223, %3224
%3226 = and i64 %3225, -1
store i64 %3226, i64* %10
%3227 = load i64, i64* %10
%3228 = load i64, i64* %7
%3229 = icmp ult i64 %3227, %3228
br i1 %3229, label %3230, label %3238
3230: ; preds = %3218
%3231 = load i64, i64* %8
%3232 = add i64 %3231, 1
store i64 %3232, i64* %8
%3233 = and i64 %3232, -1
%3234 = icmp eq i64 %3233, 0
br i1 %3234, label %3235, label %3238
3235: ; preds = %3230
%3236 = load i64, i64* %9
%3237 = add i64 %3236, 1
store i64 %3237, i64* %9
br label %3238
3238: ; preds = %3235, %3230, %3218
%3239 = load i64, i64* %11
%3240 = load i64, i64* %8
%3241 = add i64 %3239, %3240
%3242 = and i64 %3241, -1
store i64 %3242, i64* %11
%3243 = load i64, i64* %11
%3244 = load i64, i64* %8
%3245 = icmp ult i64 %3243, %3244
br i1 %3245, label %3246, label %3249
3246: ; preds = %3238
%3247 = load i64, i64* %9
%3248 = add i64 %3247, 1
store i64 %3248, i64* %9
br label %3249
3249: ; preds = %3246, %3238
%3250 = load i64, i64* %10
%3251 = load i64*, i64** %3
%3252 = getelementptr inbounds i64, i64* %3251, i64 10
store i64 %3250, i64* %3252
store i64 0, i64* %10
%3253 = load i64*, i64** %4
%3254 = getelementptr inbounds i64, i64* %3253, i64 7
%3255 = load i64, i64* %3254
%3256 = and i64 %3255, 4294967295
store i64 %3256, i64* %7
%3257 = load i64*, i64** %4
%3258 = getelementptr inbounds i64, i64* %3257, i64 7
%3259 = load i64, i64* %3258
%3260 = lshr i64 %3259, 32
%3261 = and i64 %3260, 4294967295
store i64 %3261, i64* %8
%3262 = load i64*, i64** %4
%3263 = getelementptr inbounds i64, i64* %3262, i64 4
%3264 = load i64, i64* %3263
%3265 = and i64 %3264, 4294967295
store i64 %3265, i64* %5
%3266 = load i64*, i64** %4
%3267 = getelementptr inbounds i64, i64* %3266, i64 4
%3268 = load i64, i64* %3267
%3269 = lshr i64 %3268, 32
%3270 = and i64 %3269, 4294967295
store i64 %3270, i64* %6
%3271 = load i64, i64* %7
store i64 %3271, i64* %128
%3272 = load i64, i64* %8
store i64 %3272, i64* %129
%3273 = load i64, i64* %6
%3274 = load i64, i64* %128
%3275 = mul i64 %3273, %3274
store i64 %3275, i64* %126
%3276 = load i64, i64* %5
%3277 = load i64, i64* %128
%3278 = mul i64 %3276, %3277
store i64 %3278, i64* %128
%3279 = load i64, i64* %5
%3280 = load i64, i64* %129
%3281 = mul i64 %3279, %3280
store i64 %3281, i64* %127
%3282 = load i64, i64* %6
%3283 = load i64, i64* %129
%3284 = mul i64 %3282, %3283
store i64 %3284, i64* %129
%3285 = load i64, i64* %126
%3286 = load i64, i64* %127
%3287 = add i64 %3285, %3286
%3288 = and i64 %3287, -1
store i64 %3288, i64* %126
%3289 = load i64, i64* %126
%3290 = load i64, i64* %127
%3291 = icmp ult i64 %3289, %3290
br i1 %3291, label %3292, label %3295
3292: ; preds = %3249
%3293 = load i64, i64* %129
%3294 = add i64 %3293, 4294967296
store i64 %3294, i64* %129
br label %3295
3295: ; preds = %3292, %3249
%3296 = load i64, i64* %126
%3297 = lshr i64 %3296, 32
%3298 = and i64 %3297, 4294967295
%3299 = load i64, i64* %129
%3300 = add i64 %3299, %3298
store i64 %3300, i64* %129
%3301 = load i64, i64* %126
%3302 = and i64 %3301, 4294967295
%3303 = shl i64 %3302, 32
store i64 %3303, i64* %127
%3304 = load i64, i64* %128
%3305 = load i64, i64* %127
%3306 = add i64 %3304, %3305
%3307 = and i64 %3306, -1
store i64 %3307, i64* %128
%3308 = load i64, i64* %128
%3309 = load i64, i64* %127
%3310 = icmp ult i64 %3308, %3309
br i1 %3310, label %3311, label %3314
3311: ; preds = %3295
%3312 = load i64, i64* %129
%3313 = add i64 %3312, 1
store i64 %3313, i64* %129
br label %3314
3314: ; preds = %3311, %3295
%3315 = load i64, i64* %128
store i64 %3315, i64* %7
%3316 = load i64, i64* %129
store i64 %3316, i64* %8
%3317 = load i64, i64* %8
%3318 = and i64 %3317, -9223372036854775808
%3319 = icmp ne i64 %3318, 0
br i1 %3319, label %3320, label %3323
3320: ; preds = %3314
%3321 = load i64, i64* %10
%3322 = add i64 %3321, 1
store i64 %3322, i64* %10
br label %3323
3323: ; preds = %3320, %3314
%3324 = load i64, i64* %8
%3325 = load i64, i64* %8
%3326 = add i64 %3324, %3325
%3327 = and i64 %3326, -1
store i64 %3327, i64* %8
%3328 = load i64, i64* %7
%3329 = and i64 %3328, -9223372036854775808
%3330 = icmp ne i64 %3329, 0
br i1 %3330, label %3331, label %3334
3331: ; preds = %3323
%3332 = load i64, i64* %8
%3333 = add i64 %3332, 1
store i64 %3333, i64* %8
br label %3334
3334: ; preds = %3331, %3323
%3335 = load i64, i64* %7
%3336 = load i64, i64* %7
%3337 = add i64 %3335, %3336
%3338 = and i64 %3337, -1
store i64 %3338, i64* %7
%3339 = load i64, i64* %11
%3340 = load i64, i64* %7
%3341 = add i64 %3339, %3340
%3342 = and i64 %3341, -1
store i64 %3342, i64* %11
%3343 = load i64, i64* %11
%3344 = load i64, i64* %7
%3345 = icmp ult i64 %3343, %3344
br i1 %3345, label %3346, label %3354
3346: ; preds = %3334
%3347 = load i64, i64* %8
%3348 = add i64 %3347, 1
store i64 %3348, i64* %8
%3349 = and i64 %3348, -1
%3350 = icmp eq i64 %3349, 0
br i1 %3350, label %3351, label %3354
3351: ; preds = %3346
%3352 = load i64, i64* %10
%3353 = add i64 %3352, 1
store i64 %3353, i64* %10
br label %3354
3354: ; preds = %3351, %3346, %3334
%3355 = load i64, i64* %9
%3356 = load i64, i64* %8
%3357 = add i64 %3355, %3356
%3358 = and i64 %3357, -1
store i64 %3358, i64* %9
%3359 = load i64, i64* %9
%3360 = load i64, i64* %8
%3361 = icmp ult i64 %3359, %3360
br i1 %3361, label %3362, label %3365
3362: ; preds = %3354
%3363 = load i64, i64* %10
%3364 = add i64 %3363, 1
store i64 %3364, i64* %10
br label %3365
3365: ; preds = %3362, %3354
%3366 = load i64*, i64** %4
%3367 = getelementptr inbounds i64, i64* %3366, i64 6
%3368 = load i64, i64* %3367
%3369 = and i64 %3368, 4294967295
store i64 %3369, i64* %7
%3370 = load i64*, i64** %4
%3371 = getelementptr inbounds i64, i64* %3370, i64 6
%3372 = load i64, i64* %3371
%3373 = lshr i64 %3372, 32
%3374 = and i64 %3373, 4294967295
store i64 %3374, i64* %8
%3375 = load i64*, i64** %4
%3376 = getelementptr inbounds i64, i64* %3375, i64 5
%3377 = load i64, i64* %3376
%3378 = and i64 %3377, 4294967295
store i64 %3378, i64* %5
%3379 = load i64*, i64** %4
%3380 = getelementptr inbounds i64, i64* %3379, i64 5
%3381 = load i64, i64* %3380
%3382 = lshr i64 %3381, 32
%3383 = and i64 %3382, 4294967295
store i64 %3383, i64* %6
%3384 = load i64, i64* %7
store i64 %3384, i64* %132
%3385 = load i64, i64* %8
store i64 %3385, i64* %133
%3386 = load i64, i64* %6
%3387 = load i64, i64* %132
%3388 = mul i64 %3386, %3387
store i64 %3388, i64* %130
%3389 = load i64, i64* %5
%3390 = load i64, i64* %132
%3391 = mul i64 %3389, %3390
store i64 %3391, i64* %132
%3392 = load i64, i64* %5
%3393 = load i64, i64* %133
%3394 = mul i64 %3392, %3393
store i64 %3394, i64* %131
%3395 = load i64, i64* %6
%3396 = load i64, i64* %133
%3397 = mul i64 %3395, %3396
store i64 %3397, i64* %133
%3398 = load i64, i64* %130
%3399 = load i64, i64* %131
%3400 = add i64 %3398, %3399
%3401 = and i64 %3400, -1
store i64 %3401, i64* %130
%3402 = load i64, i64* %130
%3403 = load i64, i64* %131
%3404 = icmp ult i64 %3402, %3403
br i1 %3404, label %3405, label %3408
3405: ; preds = %3365
%3406 = load i64, i64* %133
%3407 = add i64 %3406, 4294967296
store i64 %3407, i64* %133
br label %3408
3408: ; preds = %3405, %3365
%3409 = load i64, i64* %130
%3410 = lshr i64 %3409, 32
%3411 = and i64 %3410, 4294967295
%3412 = load i64, i64* %133
%3413 = add i64 %3412, %3411
store i64 %3413, i64* %133
%3414 = load i64, i64* %130
%3415 = and i64 %3414, 4294967295
%3416 = shl i64 %3415, 32
store i64 %3416, i64* %131
%3417 = load i64, i64* %132
%3418 = load i64, i64* %131
%3419 = add i64 %3417, %3418
%3420 = and i64 %3419, -1
store i64 %3420, i64* %132
%3421 = load i64, i64* %132
%3422 = load i64, i64* %131
%3423 = icmp ult i64 %3421, %3422
br i1 %3423, label %3424, label %3427
3424: ; preds = %3408
%3425 = load i64, i64* %133
%3426 = add i64 %3425, 1
store i64 %3426, i64* %133
br label %3427
3427: ; preds = %3424, %3408
%3428 = load i64, i64* %132
store i64 %3428, i64* %7
%3429 = load i64, i64* %133
store i64 %3429, i64* %8
%3430 = load i64, i64* %8
%3431 = and i64 %3430, -9223372036854775808
%3432 = icmp ne i64 %3431, 0
br i1 %3432, label %3433, label %3436
3433: ; preds = %3427
%3434 = load i64, i64* %10
%3435 = add i64 %3434, 1
store i64 %3435, i64* %10
br label %3436
3436: ; preds = %3433, %3427
%3437 = load i64, i64* %8
%3438 = load i64, i64* %8
%3439 = add i64 %3437, %3438
%3440 = and i64 %3439, -1
store i64 %3440, i64* %8
%3441 = load i64, i64* %7
%3442 = and i64 %3441, -9223372036854775808
%3443 = icmp ne i64 %3442, 0
br i1 %3443, label %3444, label %3447
3444: ; preds = %3436
%3445 = load i64, i64* %8
%3446 = add i64 %3445, 1
store i64 %3446, i64* %8
br label %3447
3447: ; preds = %3444, %3436
%3448 = load i64, i64* %7
%3449 = load i64, i64* %7
%3450 = add i64 %3448, %3449
%3451 = and i64 %3450, -1
store i64 %3451, i64* %7
%3452 = load i64, i64* %11
%3453 = load i64, i64* %7
%3454 = add i64 %3452, %3453
%3455 = and i64 %3454, -1
store i64 %3455, i64* %11
%3456 = load i64, i64* %11
%3457 = load i64, i64* %7
%3458 = icmp ult i64 %3456, %3457
br i1 %3458, label %3459, label %3467
3459: ; preds = %3447
%3460 = load i64, i64* %8
%3461 = add i64 %3460, 1
store i64 %3461, i64* %8
%3462 = and i64 %3461, -1
%3463 = icmp eq i64 %3462, 0
br i1 %3463, label %3464, label %3467
3464: ; preds = %3459
%3465 = load i64, i64* %10
%3466 = add i64 %3465, 1
store i64 %3466, i64* %10
br label %3467
3467: ; preds = %3464, %3459, %3447
%3468 = load i64, i64* %9
%3469 = load i64, i64* %8
%3470 = add i64 %3468, %3469
%3471 = and i64 %3470, -1
store i64 %3471, i64* %9
%3472 = load i64, i64* %9
%3473 = load i64, i64* %8
%3474 = icmp ult i64 %3472, %3473
br i1 %3474, label %3475, label %3478
3475: ; preds = %3467
%3476 = load i64, i64* %10
%3477 = add i64 %3476, 1
store i64 %3477, i64* %10
br label %3478
3478: ; preds = %3475, %3467
%3479 = load i64, i64* %11
%3480 = load i64*, i64** %3
%3481 = getelementptr inbounds i64, i64* %3480, i64 11
store i64 %3479, i64* %3481
store i64 0, i64* %11
%3482 = load i64*, i64** %4
%3483 = getelementptr inbounds i64, i64* %3482, i64 6
%3484 = load i64, i64* %3483
store i64 %3484, i64* %135
%3485 = load i64, i64* %135
%3486 = and i64 %3485, 4294967295
store i64 %3486, i64* %134
%3487 = load i64, i64* %135
%3488 = lshr i64 %3487, 32
%3489 = and i64 %3488, 4294967295
store i64 %3489, i64* %135
%3490 = load i64, i64* %134
%3491 = load i64, i64* %135
%3492 = mul i64 %3490, %3491
store i64 %3492, i64* %136
%3493 = load i64, i64* %134
%3494 = load i64, i64* %134
%3495 = mul i64 %3494, %3493
store i64 %3495, i64* %134
%3496 = load i64, i64* %135
%3497 = load i64, i64* %135
%3498 = mul i64 %3497, %3496
store i64 %3498, i64* %135
%3499 = load i64, i64* %136
%3500 = and i64 %3499, -2147483648
%3501 = lshr i64 %3500, 31
%3502 = load i64, i64* %135
%3503 = add i64 %3502, %3501
store i64 %3503, i64* %135
%3504 = load i64, i64* %136
%3505 = and i64 %3504, 4294967295
%3506 = shl i64 %3505, 33
store i64 %3506, i64* %136
%3507 = load i64, i64* %134
%3508 = load i64, i64* %136
%3509 = add i64 %3507, %3508
%3510 = and i64 %3509, -1
store i64 %3510, i64* %134
%3511 = load i64, i64* %134
%3512 = load i64, i64* %136
%3513 = icmp ult i64 %3511, %3512
br i1 %3513, label %3514, label %3517
3514: ; preds = %3478
%3515 = load i64, i64* %135
%3516 = add i64 %3515, 1
store i64 %3516, i64* %135
br label %3517
3517: ; preds = %3514, %3478
%3518 = load i64, i64* %134
store i64 %3518, i64* %7
%3519 = load i64, i64* %135
store i64 %3519, i64* %8
%3520 = load i64, i64* %9
%3521 = load i64, i64* %7
%3522 = add i64 %3520, %3521
%3523 = and i64 %3522, -1
store i64 %3523, i64* %9
%3524 = load i64, i64* %9
%3525 = load i64, i64* %7
%3526 = icmp ult i64 %3524, %3525
br i1 %3526, label %3527, label %3530
3527: ; preds = %3517
%3528 = load i64, i64* %8
%3529 = add i64 %3528, 1
store i64 %3529, i64* %8
br label %3530
3530: ; preds = %3527, %3517
%3531 = load i64, i64* %10
%3532 = load i64, i64* %8
%3533 = add i64 %3531, %3532
%3534 = and i64 %3533, -1
store i64 %3534, i64* %10
%3535 = load i64, i64* %10
%3536 = load i64, i64* %8
%3537 = icmp ult i64 %3535, %3536
br i1 %3537, label %3538, label %3541
3538: ; preds = %3530
%3539 = load i64, i64* %11
%3540 = add i64 %3539, 1
store i64 %3540, i64* %11
br label %3541
3541: ; preds = %3538, %3530
%3542 = load i64*, i64** %4
%3543 = getelementptr inbounds i64, i64* %3542, i64 7
%3544 = load i64, i64* %3543
%3545 = and i64 %3544, 4294967295
store i64 %3545, i64* %7
%3546 = load i64*, i64** %4
%3547 = getelementptr inbounds i64, i64* %3546, i64 7
%3548 = load i64, i64* %3547
%3549 = lshr i64 %3548, 32
%3550 = and i64 %3549, 4294967295
store i64 %3550, i64* %8
%3551 = load i64*, i64** %4
%3552 = getelementptr inbounds i64, i64* %3551, i64 5
%3553 = load i64, i64* %3552
%3554 = and i64 %3553, 4294967295
store i64 %3554, i64* %5
%3555 = load i64*, i64** %4
%3556 = getelementptr inbounds i64, i64* %3555, i64 5
%3557 = load i64, i64* %3556
%3558 = lshr i64 %3557, 32
%3559 = and i64 %3558, 4294967295
store i64 %3559, i64* %6
%3560 = load i64, i64* %7
store i64 %3560, i64* %139
%3561 = load i64, i64* %8
store i64 %3561, i64* %140
%3562 = load i64, i64* %6
%3563 = load i64, i64* %139
%3564 = mul i64 %3562, %3563
store i64 %3564, i64* %137
%3565 = load i64, i64* %5
%3566 = load i64, i64* %139
%3567 = mul i64 %3565, %3566
store i64 %3567, i64* %139
%3568 = load i64, i64* %5
%3569 = load i64, i64* %140
%3570 = mul i64 %3568, %3569
store i64 %3570, i64* %138
%3571 = load i64, i64* %6
%3572 = load i64, i64* %140
%3573 = mul i64 %3571, %3572
store i64 %3573, i64* %140
%3574 = load i64, i64* %137
%3575 = load i64, i64* %138
%3576 = add i64 %3574, %3575
%3577 = and i64 %3576, -1
store i64 %3577, i64* %137
%3578 = load i64, i64* %137
%3579 = load i64, i64* %138
%3580 = icmp ult i64 %3578, %3579
br i1 %3580, label %3581, label %3584
3581: ; preds = %3541
%3582 = load i64, i64* %140
%3583 = add i64 %3582, 4294967296
store i64 %3583, i64* %140
br label %3584
3584: ; preds = %3581, %3541
%3585 = load i64, i64* %137
%3586 = lshr i64 %3585, 32
%3587 = and i64 %3586, 4294967295
%3588 = load i64, i64* %140
%3589 = add i64 %3588, %3587
store i64 %3589, i64* %140
%3590 = load i64, i64* %137
%3591 = and i64 %3590, 4294967295
%3592 = shl i64 %3591, 32
store i64 %3592, i64* %138
%3593 = load i64, i64* %139
%3594 = load i64, i64* %138
%3595 = add i64 %3593, %3594
%3596 = and i64 %3595, -1
store i64 %3596, i64* %139
%3597 = load i64, i64* %139
%3598 = load i64, i64* %138
%3599 = icmp ult i64 %3597, %3598
br i1 %3599, label %3600, label %3603
3600: ; preds = %3584
%3601 = load i64, i64* %140
%3602 = add i64 %3601, 1
store i64 %3602, i64* %140
br label %3603
3603: ; preds = %3600, %3584
%3604 = load i64, i64* %139
store i64 %3604, i64* %7
%3605 = load i64, i64* %140
store i64 %3605, i64* %8
%3606 = load i64, i64* %8
%3607 = and i64 %3606, -9223372036854775808
%3608 = icmp ne i64 %3607, 0
br i1 %3608, label %3609, label %3612
3609: ; preds = %3603
%3610 = load i64, i64* %11
%3611 = add i64 %3610, 1
store i64 %3611, i64* %11
br label %3612
3612: ; preds = %3609, %3603
%3613 = load i64, i64* %8
%3614 = load i64, i64* %8
%3615 = add i64 %3613, %3614
%3616 = and i64 %3615, -1
store i64 %3616, i64* %8
%3617 = load i64, i64* %7
%3618 = and i64 %3617, -9223372036854775808
%3619 = icmp ne i64 %3618, 0
br i1 %3619, label %3620, label %3623
3620: ; preds = %3612
%3621 = load i64, i64* %8
%3622 = add i64 %3621, 1
store i64 %3622, i64* %8
br label %3623
3623: ; preds = %3620, %3612
%3624 = load i64, i64* %7
%3625 = load i64, i64* %7
%3626 = add i64 %3624, %3625
%3627 = and i64 %3626, -1
store i64 %3627, i64* %7
%3628 = load i64, i64* %9
%3629 = load i64, i64* %7
%3630 = add i64 %3628, %3629
%3631 = and i64 %3630, -1
store i64 %3631, i64* %9
%3632 = load i64, i64* %9
%3633 = load i64, i64* %7
%3634 = icmp ult i64 %3632, %3633
br i1 %3634, label %3635, label %3643
3635: ; preds = %3623
%3636 = load i64, i64* %8
%3637 = add i64 %3636, 1
store i64 %3637, i64* %8
%3638 = and i64 %3637, -1
%3639 = icmp eq i64 %3638, 0
br i1 %3639, label %3640, label %3643
3640: ; preds = %3635
%3641 = load i64, i64* %11
%3642 = add i64 %3641, 1
store i64 %3642, i64* %11
br label %3643
3643: ; preds = %3640, %3635, %3623
%3644 = load i64, i64* %10
%3645 = load i64, i64* %8
%3646 = add i64 %3644, %3645
%3647 = and i64 %3646, -1
store i64 %3647, i64* %10
%3648 = load i64, i64* %10
%3649 = load i64, i64* %8
%3650 = icmp ult i64 %3648, %3649
br i1 %3650, label %3651, label %3654
3651: ; preds = %3643
%3652 = load i64, i64* %11
%3653 = add i64 %3652, 1
store i64 %3653, i64* %11
br label %3654
3654: ; preds = %3651, %3643
%3655 = load i64, i64* %9
%3656 = load i64*, i64** %3
%3657 = getelementptr inbounds i64, i64* %3656, i64 12
store i64 %3655, i64* %3657
store i64 0, i64* %9
%3658 = load i64*, i64** %4
%3659 = getelementptr inbounds i64, i64* %3658, i64 7
%3660 = load i64, i64* %3659
%3661 = and i64 %3660, 4294967295
store i64 %3661, i64* %7
%3662 = load i64*, i64** %4
%3663 = getelementptr inbounds i64, i64* %3662, i64 7
%3664 = load i64, i64* %3663
%3665 = lshr i64 %3664, 32
%3666 = and i64 %3665, 4294967295
store i64 %3666, i64* %8
%3667 = load i64*, i64** %4
%3668 = getelementptr inbounds i64, i64* %3667, i64 6
%3669 = load i64, i64* %3668
%3670 = and i64 %3669, 4294967295
store i64 %3670, i64* %5
%3671 = load i64*, i64** %4
%3672 = getelementptr inbounds i64, i64* %3671, i64 6
%3673 = load i64, i64* %3672
%3674 = lshr i64 %3673, 32
%3675 = and i64 %3674, 4294967295
store i64 %3675, i64* %6
%3676 = load i64, i64* %7
store i64 %3676, i64* %143
%3677 = load i64, i64* %8
store i64 %3677, i64* %144
%3678 = load i64, i64* %6
%3679 = load i64, i64* %143
%3680 = mul i64 %3678, %3679
store i64 %3680, i64* %141
%3681 = load i64, i64* %5
%3682 = load i64, i64* %143
%3683 = mul i64 %3681, %3682
store i64 %3683, i64* %143
%3684 = load i64, i64* %5
%3685 = load i64, i64* %144
%3686 = mul i64 %3684, %3685
store i64 %3686, i64* %142
%3687 = load i64, i64* %6
%3688 = load i64, i64* %144
%3689 = mul i64 %3687, %3688
store i64 %3689, i64* %144
%3690 = load i64, i64* %141
%3691 = load i64, i64* %142
%3692 = add i64 %3690, %3691
%3693 = and i64 %3692, -1
store i64 %3693, i64* %141
%3694 = load i64, i64* %141
%3695 = load i64, i64* %142
%3696 = icmp ult i64 %3694, %3695
br i1 %3696, label %3697, label %3700
3697: ; preds = %3654
%3698 = load i64, i64* %144
%3699 = add i64 %3698, 4294967296
store i64 %3699, i64* %144
br label %3700
3700: ; preds = %3697, %3654
%3701 = load i64, i64* %141
%3702 = lshr i64 %3701, 32
%3703 = and i64 %3702, 4294967295
%3704 = load i64, i64* %144
%3705 = add i64 %3704, %3703
store i64 %3705, i64* %144
%3706 = load i64, i64* %141
%3707 = and i64 %3706, 4294967295
%3708 = shl i64 %3707, 32
store i64 %3708, i64* %142
%3709 = load i64, i64* %143
%3710 = load i64, i64* %142
%3711 = add i64 %3709, %3710
%3712 = and i64 %3711, -1
store i64 %3712, i64* %143
%3713 = load i64, i64* %143
%3714 = load i64, i64* %142
%3715 = icmp ult i64 %3713, %3714
br i1 %3715, label %3716, label %3719
3716: ; preds = %3700
%3717 = load i64, i64* %144
%3718 = add i64 %3717, 1
store i64 %3718, i64* %144
br label %3719
3719: ; preds = %3716, %3700
%3720 = load i64, i64* %143
store i64 %3720, i64* %7
%3721 = load i64, i64* %144
store i64 %3721, i64* %8
%3722 = load i64, i64* %8
%3723 = and i64 %3722, -9223372036854775808
%3724 = icmp ne i64 %3723, 0
br i1 %3724, label %3725, label %3728
3725: ; preds = %3719
%3726 = load i64, i64* %9
%3727 = add i64 %3726, 1
store i64 %3727, i64* %9
br label %3728
3728: ; preds = %3725, %3719
%3729 = load i64, i64* %8
%3730 = load i64, i64* %8
%3731 = add i64 %3729, %3730
%3732 = and i64 %3731, -1
store i64 %3732, i64* %8
%3733 = load i64, i64* %7
%3734 = and i64 %3733, -9223372036854775808
%3735 = icmp ne i64 %3734, 0
br i1 %3735, label %3736, label %3739
3736: ; preds = %3728
%3737 = load i64, i64* %8
%3738 = add i64 %3737, 1
store i64 %3738, i64* %8
br label %3739
3739: ; preds = %3736, %3728
%3740 = load i64, i64* %7
%3741 = load i64, i64* %7
%3742 = add i64 %3740, %3741
%3743 = and i64 %3742, -1
store i64 %3743, i64* %7
%3744 = load i64, i64* %10
%3745 = load i64, i64* %7
%3746 = add i64 %3744, %3745
%3747 = and i64 %3746, -1
store i64 %3747, i64* %10
%3748 = load i64, i64* %10
%3749 = load i64, i64* %7
%3750 = icmp ult i64 %3748, %3749
br i1 %3750, label %3751, label %3759
3751: ; preds = %3739
%3752 = load i64, i64* %8
%3753 = add i64 %3752, 1
store i64 %3753, i64* %8
%3754 = and i64 %3753, -1
%3755 = icmp eq i64 %3754, 0
br i1 %3755, label %3756, label %3759
3756: ; preds = %3751
%3757 = load i64, i64* %9
%3758 = add i64 %3757, 1
store i64 %3758, i64* %9
br label %3759
3759: ; preds = %3756, %3751, %3739
%3760 = load i64, i64* %11
%3761 = load i64, i64* %8
%3762 = add i64 %3760, %3761
%3763 = and i64 %3762, -1
store i64 %3763, i64* %11
%3764 = load i64, i64* %11
%3765 = load i64, i64* %8
%3766 = icmp ult i64 %3764, %3765
br i1 %3766, label %3767, label %3770
3767: ; preds = %3759
%3768 = load i64, i64* %9
%3769 = add i64 %3768, 1
store i64 %3769, i64* %9
br label %3770
3770: ; preds = %3767, %3759
%3771 = load i64, i64* %10
%3772 = load i64*, i64** %3
%3773 = getelementptr inbounds i64, i64* %3772, i64 13
store i64 %3771, i64* %3773
store i64 0, i64* %10
%3774 = load i64*, i64** %4
%3775 = getelementptr inbounds i64, i64* %3774, i64 7
%3776 = load i64, i64* %3775
store i64 %3776, i64* %146
%3777 = load i64, i64* %146
%3778 = and i64 %3777, 4294967295
store i64 %3778, i64* %145
%3779 = load i64, i64* %146
%3780 = lshr i64 %3779, 32
%3781 = and i64 %3780, 4294967295
store i64 %3781, i64* %146
%3782 = load i64, i64* %145
%3783 = load i64, i64* %146
%3784 = mul i64 %3782, %3783
store i64 %3784, i64* %147
%3785 = load i64, i64* %145
%3786 = load i64, i64* %145
%3787 = mul i64 %3786, %3785
store i64 %3787, i64* %145
%3788 = load i64, i64* %146
%3789 = load i64, i64* %146
%3790 = mul i64 %3789, %3788
store i64 %3790, i64* %146
%3791 = load i64, i64* %147
%3792 = and i64 %3791, -2147483648
%3793 = lshr i64 %3792, 31
%3794 = load i64, i64* %146
%3795 = add i64 %3794, %3793
store i64 %3795, i64* %146
%3796 = load i64, i64* %147
%3797 = and i64 %3796, 4294967295
%3798 = shl i64 %3797, 33
store i64 %3798, i64* %147
%3799 = load i64, i64* %145
%3800 = load i64, i64* %147
%3801 = add i64 %3799, %3800
%3802 = and i64 %3801, -1
store i64 %3802, i64* %145
%3803 = load i64, i64* %145
%3804 = load i64, i64* %147
%3805 = icmp ult i64 %3803, %3804
br i1 %3805, label %3806, label %3809
3806: ; preds = %3770
%3807 = load i64, i64* %146
%3808 = add i64 %3807, 1
store i64 %3808, i64* %146
br label %3809
3809: ; preds = %3806, %3770
%3810 = load i64, i64* %145
store i64 %3810, i64* %7
%3811 = load i64, i64* %146
store i64 %3811, i64* %8
%3812 = load i64, i64* %11
%3813 = load i64, i64* %7
%3814 = add i64 %3812, %3813
%3815 = and i64 %3814, -1
store i64 %3815, i64* %11
%3816 = load i64, i64* %11
%3817 = load i64, i64* %7
%3818 = icmp ult i64 %3816, %3817
br i1 %3818, label %3819, label %3822
3819: ; preds = %3809
%3820 = load i64, i64* %8
%3821 = add i64 %3820, 1
store i64 %3821, i64* %8
br label %3822
3822: ; preds = %3819, %3809
%3823 = load i64, i64* %9
%3824 = load i64, i64* %8
%3825 = add i64 %3823, %3824
%3826 = and i64 %3825, -1
store i64 %3826, i64* %9
%3827 = load i64, i64* %9
%3828 = load i64, i64* %8
%3829 = icmp ult i64 %3827, %3828
br i1 %3829, label %3830, label %3833
3830: ; preds = %3822
%3831 = load i64, i64* %10
%3832 = add i64 %3831, 1
store i64 %3832, i64* %10
br label %3833
3833: ; preds = %3830, %3822
%3834 = load i64, i64* %11
%3835 = load i64*, i64** %3
%3836 = getelementptr inbounds i64, i64* %3835, i64 14
store i64 %3834, i64* %3836
%3837 = load i64, i64* %9
%3838 = load i64*, i64** %3
%3839 = getelementptr inbounds i64, i64* %3838, i64 15
store i64 %3837, i64* %3839
ret void
}

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