void bn_sqr_comba8(unsigned long *r, unsigned long *a) {
  unsigned long bl, bh;
  unsigned long t1, t2;
  unsigned long c1, c2, c3;
  c1 = 0;
  c2 = 0;
  c3 = 0;
  {
    unsigned long l, h, m;
    h = ((a)[0]);
    l = ((h) & (0xffff));
    h = (((h) >> 16) & (0xffff));
    m = (l) * (h);
    l *= l;
    h *= h;
    h += (m & (0xffff8000L)) >> (16 - 1);
    m = (m & (0xffff)) << (16 + 1);
    l = (l + m) & (0xffffffffL);
    if (l < m)
      h++;
    (t1) = l;
    (t2) = h;
  };
  c1 = (c1 + t1) & (0xffffffffL);
  if ((c1) < t1)
    t2++;
  c2 = (c2 + t2) & (0xffffffffL);
  if ((c2) < t2)
    c3++;
  ;
  r[0] = c1;
  c1 = 0;
  t1 = (((a)[1]) & (0xffff));
  t2 = ((((a)[1]) >> 16) & (0xffff));
  bl = (((a)[0]) & (0xffff));
  bh = ((((a)[0]) >> 16) & (0xffff));
  {
    unsigned long m, m1, lt, ht;
    lt = t1;
    ht = t2;
    m = (bh) * (lt);
    lt = (bl) * (lt);
    m1 = (bl) * (ht);
    ht = (bh) * (ht);
    m = (m + m1) & (0xffffffffL);
    if (m < m1)
      ht += ((unsigned long)((1L) & (0xffff)) << 16);
    ht += (((m) >> 16) & (0xffff));
    m1 = ((unsigned long)((m) & (0xffff)) << 16);
    lt = (lt + m1) & (0xffffffffL);
    if (lt < m1)
      ht++;
    (t1) = lt;
    (t2) = ht;
  };
  if (t2 & (0x80000000L))
    c1++;
  t2 = (t2 + t2) & (0xffffffffL);
  if (t1 & (0x80000000L))
    t2++;
  t1 = (t1 + t1) & (0xffffffffL);
  c2 = (c2 + t1) & (0xffffffffL);
  if ((c2 < t1) && (((++t2) & (0xffffffffL)) == 0))
    c1++;
  c3 = (c3 + t2) & (0xffffffffL);
  if ((c3) < t2)
    c1++;
  ;
  r[1] = c2;
  c2 = 0;
  {
    unsigned long l, h, m;
    h = ((a)[1]);
    l = ((h) & (0xffff));
    h = (((h) >> 16) & (0xffff));
    m = (l) * (h);
    l *= l;
    h *= h;
    h += (m & (0xffff8000L)) >> (16 - 1);
    m = (m & (0xffff)) << (16 + 1);
    l = (l + m) & (0xffffffffL);
    if (l < m)
      h++;
    (t1) = l;
    (t2) = h;
  };
  c3 = (c3 + t1) & (0xffffffffL);
  if ((c3) < t1)
    t2++;
  c1 = (c1 + t2) & (0xffffffffL);
  if ((c1) < t2)
    c2++;
  ;
  t1 = (((a)[2]) & (0xffff));
  t2 = ((((a)[2]) >> 16) & (0xffff));
  bl = (((a)[0]) & (0xffff));
  bh = ((((a)[0]) >> 16) & (0xffff));
  {
    unsigned long m, m1, lt, ht;
    lt = t1;
    ht = t2;
    m = (bh) * (lt);
    lt = (bl) * (lt);
    m1 = (bl) * (ht);
    ht = (bh) * (ht);
    m = (m + m1) & (0xffffffffL);
    if (m < m1)
      ht += ((unsigned long)((1L) & (0xffff)) << 16);
    ht += (((m) >> 16) & (0xffff));
    m1 = ((unsigned long)((m) & (0xffff)) << 16);
    lt = (lt + m1) & (0xffffffffL);
    if (lt < m1)
      ht++;
    (t1) = lt;
    (t2) = ht;
  };
  if (t2 & (0x80000000L))
    c2++;
  t2 = (t2 + t2) & (0xffffffffL);
  if (t1 & (0x80000000L))
    t2++;
  t1 = (t1 + t1) & (0xffffffffL);
  c3 = (c3 + t1) & (0xffffffffL);
  if ((c3 < t1) && (((++t2) & (0xffffffffL)) == 0))
    c2++;
  c1 = (c1 + t2) & (0xffffffffL);
  if ((c1) < t2)
    c2++;
  ;
  r[2] = c3;
  c3 = 0;
  t1 = (((a)[3]) & (0xffff));
  t2 = ((((a)[3]) >> 16) & (0xffff));
  bl = (((a)[0]) & (0xffff));
  bh = ((((a)[0]) >> 16) & (0xffff));
  {
    unsigned long m, m1, lt, ht;
    lt = t1;
    ht = t2;
    m = (bh) * (lt);
    lt = (bl) * (lt);
    m1 = (bl) * (ht);
    ht = (bh) * (ht);
    m = (m + m1) & (0xffffffffL);
    if (m < m1)
      ht += ((unsigned long)((1L) & (0xffff)) << 16);
    ht += (((m) >> 16) & (0xffff));
    m1 = ((unsigned long)((m) & (0xffff)) << 16);
    lt = (lt + m1) & (0xffffffffL);
    if (lt < m1)
      ht++;
    (t1) = lt;
    (t2) = ht;
  };
  if (t2 & (0x80000000L))
    c3++;
  t2 = (t2 + t2) & (0xffffffffL);
  if (t1 & (0x80000000L))
    t2++;
  t1 = (t1 + t1) & (0xffffffffL);
  c1 = (c1 + t1) & (0xffffffffL);
  if ((c1 < t1) && (((++t2) & (0xffffffffL)) == 0))
    c3++;
  c2 = (c2 + t2) & (0xffffffffL);
  if ((c2) < t2)
    c3++;
  ;
  t1 = (((a)[2]) & (0xffff));
  t2 = ((((a)[2]) >> 16) & (0xffff));
  bl = (((a)[1]) & (0xffff));
  bh = ((((a)[1]) >> 16) & (0xffff));
  {
    unsigned long m, m1, lt, ht;
    lt = t1;
    ht = t2;
    m = (bh) * (lt);
    lt = (bl) * (lt);
    m1 = (bl) * (ht);
    ht = (bh) * (ht);
    m = (m + m1) & (0xffffffffL);
    if (m < m1)
      ht += ((unsigned long)((1L) & (0xffff)) << 16);
    ht += (((m) >> 16) & (0xffff));
    m1 = ((unsigned long)((m) & (0xffff)) << 16);
    lt = (lt + m1) & (0xffffffffL);
    if (lt < m1)
      ht++;
    (t1) = lt;
    (t2) = ht;
  };
  if (t2 & (0x80000000L))
    c3++;
  t2 = (t2 + t2) & (0xffffffffL);
  if (t1 & (0x80000000L))
    t2++;
  t1 = (t1 + t1) & (0xffffffffL);
  c1 = (c1 + t1) & (0xffffffffL);
  if ((c1 < t1) && (((++t2) & (0xffffffffL)) == 0))
    c3++;
  c2 = (c2 + t2) & (0xffffffffL);
  if ((c2) < t2)
    c3++;
  ;
  r[3] = c1;
  c1 = 0;
  {
    unsigned long l, h, m;
    h = ((a)[2]);
    l = ((h) & (0xffff));
    h = (((h) >> 16) & (0xffff));
    m = (l) * (h);
    l *= l;
    h *= h;
    h += (m & (0xffff8000L)) >> (16 - 1);
    m = (m & (0xffff)) << (16 + 1);
    l = (l + m) & (0xffffffffL);
    if (l < m)
      h++;
    (t1) = l;
    (t2) = h;
  };
  c2 = (c2 + t1) & (0xffffffffL);
  if ((c2) < t1)
    t2++;
  c3 = (c3 + t2) & (0xffffffffL);
  if ((c3) < t2)
    c1++;
  ;
  t1 = (((a)[3]) & (0xffff));
  t2 = ((((a)[3]) >> 16) & (0xffff));
  bl = (((a)[1]) & (0xffff));
  bh = ((((a)[1]) >> 16) & (0xffff));
  {
    unsigned long m, m1, lt, ht;
    lt = t1;
    ht = t2;
    m = (bh) * (lt);
    lt = (bl) * (lt);
    m1 = (bl) * (ht);
    ht = (bh) * (ht);
    m = (m + m1) & (0xffffffffL);
    if (m < m1)
      ht += ((unsigned long)((1L) & (0xffff)) << 16);
    ht += (((m) >> 16) & (0xffff));
    m1 = ((unsigned long)((m) & (0xffff)) << 16);
    lt = (lt + m1) & (0xffffffffL);
    if (lt < m1)
      ht++;
    (t1) = lt;
    (t2) = ht;
  };
  if (t2 & (0x80000000L))
    c1++;
  t2 = (t2 + t2) & (0xffffffffL);
  if (t1 & (0x80000000L))
    t2++;
  t1 = (t1 + t1) & (0xffffffffL);
  c2 = (c2 + t1) & (0xffffffffL);
  if ((c2 < t1) && (((++t2) & (0xffffffffL)) == 0))
    c1++;
  c3 = (c3 + t2) & (0xffffffffL);
  if ((c3) < t2)
    c1++;
  ;
  t1 = (((a)[4]) & (0xffff));
  t2 = ((((a)[4]) >> 16) & (0xffff));
  bl = (((a)[0]) & (0xffff));
  bh = ((((a)[0]) >> 16) & (0xffff));
  {
    unsigned long m, m1, lt, ht;
    lt = t1;
    ht = t2;
    m = (bh) * (lt);
    lt = (bl) * (lt);
    m1 = (bl) * (ht);
    ht = (bh) * (ht);
    m = (m + m1) & (0xffffffffL);
    if (m < m1)
      ht += ((unsigned long)((1L) & (0xffff)) << 16);
    ht += (((m) >> 16) & (0xffff));
    m1 = ((unsigned long)((m) & (0xffff)) << 16);
    lt = (lt + m1) & (0xffffffffL);
    if (lt < m1)
      ht++;
    (t1) = lt;
    (t2) = ht;
  };
  if (t2 & (0x80000000L))
    c1++;
  t2 = (t2 + t2) & (0xffffffffL);
  if (t1 & (0x80000000L))
    t2++;
  t1 = (t1 + t1) & (0xffffffffL);
  c2 = (c2 + t1) & (0xffffffffL);
  if ((c2 < t1) && (((++t2) & (0xffffffffL)) == 0))
    c1++;
  c3 = (c3 + t2) & (0xffffffffL);
  if ((c3) < t2)
    c1++;
  ;
  r[4] = c2;
  c2 = 0;
  t1 = (((a)[5]) & (0xffff));
  t2 = ((((a)[5]) >> 16) & (0xffff));
  bl = (((a)[0]) & (0xffff));
  bh = ((((a)[0]) >> 16) & (0xffff));
  {
    unsigned long m, m1, lt, ht;
    lt = t1;
    ht = t2;
    m = (bh) * (lt);
    lt = (bl) * (lt);
    m1 = (bl) * (ht);
    ht = (bh) * (ht);
    m = (m + m1) & (0xffffffffL);
    if (m < m1)
      ht += ((unsigned long)((1L) & (0xffff)) << 16);
    ht += (((m) >> 16) & (0xffff));
    m1 = ((unsigned long)((m) & (0xffff)) << 16);
    lt = (lt + m1) & (0xffffffffL);
    if (lt < m1)
      ht++;
    (t1) = lt;
    (t2) = ht;
  };
  if (t2 & (0x80000000L))
    c2++;
  t2 = (t2 + t2) & (0xffffffffL);
  if (t1 & (0x80000000L))
    t2++;
  t1 = (t1 + t1) & (0xffffffffL);
  c3 = (c3 + t1) & (0xffffffffL);
  if ((c3 < t1) && (((++t2) & (0xffffffffL)) == 0))
    c2++;
  c1 = (c1 + t2) & (0xffffffffL);
  if ((c1) < t2)
    c2++;
  ;
  t1 = (((a)[4]) & (0xffff));
  t2 = ((((a)[4]) >> 16) & (0xffff));
  bl = (((a)[1]) & (0xffff));
  bh = ((((a)[1]) >> 16) & (0xffff));
  {
    unsigned long m, m1, lt, ht;
    lt = t1;
    ht = t2;
    m = (bh) * (lt);
    lt = (bl) * (lt);
    m1 = (bl) * (ht);
    ht = (bh) * (ht);
    m = (m + m1) & (0xffffffffL);
    if (m < m1)
      ht += ((unsigned long)((1L) & (0xffff)) << 16);
    ht += (((m) >> 16) & (0xffff));
    m1 = ((unsigned long)((m) & (0xffff)) << 16);
    lt = (lt + m1) & (0xffffffffL);
    if (lt < m1)
      ht++;
    (t1) = lt;
    (t2) = ht;
  };
  if (t2 & (0x80000000L))
    c2++;
  t2 = (t2 + t2) & (0xffffffffL);
  if (t1 & (0x80000000L))
    t2++;
  t1 = (t1 + t1) & (0xffffffffL);
  c3 = (c3 + t1) & (0xffffffffL);
  if ((c3 < t1) && (((++t2) & (0xffffffffL)) == 0))
    c2++;
  c1 = (c1 + t2) & (0xffffffffL);
  if ((c1) < t2)
    c2++;
  ;
  t1 = (((a)[3]) & (0xffff));
  t2 = ((((a)[3]) >> 16) & (0xffff));
  bl = (((a)[2]) & (0xffff));
  bh = ((((a)[2]) >> 16) & (0xffff));
  {
    unsigned long m, m1, lt, ht;
    lt = t1;
    ht = t2;
    m = (bh) * (lt);
    lt = (bl) * (lt);
    m1 = (bl) * (ht);
    ht = (bh) * (ht);
    m = (m + m1) & (0xffffffffL);
    if (m < m1)
      ht += ((unsigned long)((1L) & (0xffff)) << 16);
    ht += (((m) >> 16) & (0xffff));
    m1 = ((unsigned long)((m) & (0xffff)) << 16);
    lt = (lt + m1) & (0xffffffffL);
    if (lt < m1)
      ht++;
    (t1) = lt;
    (t2) = ht;
  };
  if (t2 & (0x80000000L))
    c2++;
  t2 = (t2 + t2) & (0xffffffffL);
  if (t1 & (0x80000000L))
    t2++;
  t1 = (t1 + t1) & (0xffffffffL);
  c3 = (c3 + t1) & (0xffffffffL);
  if ((c3 < t1) && (((++t2) & (0xffffffffL)) == 0))
    c2++;
  c1 = (c1 + t2) & (0xffffffffL);
  if ((c1) < t2)
    c2++;
  ;
  r[5] = c3;
  c3 = 0;
  {
    unsigned long l, h, m;
    h = ((a)[3]);
    l = ((h) & (0xffff));
    h = (((h) >> 16) & (0xffff));
    m = (l) * (h);
    l *= l;
    h *= h;
    h += (m & (0xffff8000L)) >> (16 - 1);
    m = (m & (0xffff)) << (16 + 1);
    l = (l + m) & (0xffffffffL);
    if (l < m)
      h++;
    (t1) = l;
    (t2) = h;
  };
  c1 = (c1 + t1) & (0xffffffffL);
  if ((c1) < t1)
    t2++;
  c2 = (c2 + t2) & (0xffffffffL);
  if ((c2) < t2)
    c3++;
  ;
  t1 = (((a)[4]) & (0xffff));
  t2 = ((((a)[4]) >> 16) & (0xffff));
  bl = (((a)[2]) & (0xffff));
  bh = ((((a)[2]) >> 16) & (0xffff));
  {
    unsigned long m, m1, lt, ht;
    lt = t1;
    ht = t2;
    m = (bh) * (lt);
    lt = (bl) * (lt);
    m1 = (bl) * (ht);
    ht = (bh) * (ht);
    m = (m + m1) & (0xffffffffL);
    if (m < m1)
      ht += ((unsigned long)((1L) & (0xffff)) << 16);
    ht += (((m) >> 16) & (0xffff));
    m1 = ((unsigned long)((m) & (0xffff)) << 16);
    lt = (lt + m1) & (0xffffffffL);
    if (lt < m1)
      ht++;
    (t1) = lt;
    (t2) = ht;
  };
  if (t2 & (0x80000000L))
    c3++;
  t2 = (t2 + t2) & (0xffffffffL);
  if (t1 & (0x80000000L))
    t2++;
  t1 = (t1 + t1) & (0xffffffffL);
  c1 = (c1 + t1) & (0xffffffffL);
  if ((c1 < t1) && (((++t2) & (0xffffffffL)) == 0))
    c3++;
  c2 = (c2 + t2) & (0xffffffffL);
  if ((c2) < t2)
    c3++;
  ;
  t1 = (((a)[5]) & (0xffff));
  t2 = ((((a)[5]) >> 16) & (0xffff));
  bl = (((a)[1]) & (0xffff));
  bh = ((((a)[1]) >> 16) & (0xffff));
  {
    unsigned long m, m1, lt, ht;
    lt = t1;
    ht = t2;
    m = (bh) * (lt);
    lt = (bl) * (lt);
    m1 = (bl) * (ht);
    ht = (bh) * (ht);
    m = (m + m1) & (0xffffffffL);
    if (m < m1)
      ht += ((unsigned long)((1L) & (0xffff)) << 16);
    ht += (((m) >> 16) & (0xffff));
    m1 = ((unsigned long)((m) & (0xffff)) << 16);
    lt = (lt + m1) & (0xffffffffL);
    if (lt < m1)
      ht++;
    (t1) = lt;
    (t2) = ht;
  };
  if (t2 & (0x80000000L))
    c3++;
  t2 = (t2 + t2) & (0xffffffffL);
  if (t1 & (0x80000000L))
    t2++;
  t1 = (t1 + t1) & (0xffffffffL);
  c1 = (c1 + t1) & (0xffffffffL);
  if ((c1 < t1) && (((++t2) & (0xffffffffL)) == 0))
    c3++;
  c2 = (c2 + t2) & (0xffffffffL);
  if ((c2) < t2)
    c3++;
  ;
  t1 = (((a)[6]) & (0xffff));
  t2 = ((((a)[6]) >> 16) & (0xffff));
  bl = (((a)[0]) & (0xffff));
  bh = ((((a)[0]) >> 16) & (0xffff));
  {
    unsigned long m, m1, lt, ht;
    lt = t1;
    ht = t2;
    m = (bh) * (lt);
    lt = (bl) * (lt);
    m1 = (bl) * (ht);
    ht = (bh) * (ht);
    m = (m + m1) & (0xffffffffL);
    if (m < m1)
      ht += ((unsigned long)((1L) & (0xffff)) << 16);
    ht += (((m) >> 16) & (0xffff));
    m1 = ((unsigned long)((m) & (0xffff)) << 16);
    lt = (lt + m1) & (0xffffffffL);
    if (lt < m1)
      ht++;
    (t1) = lt;
    (t2) = ht;
  };
  if (t2 & (0x80000000L))
    c3++;
  t2 = (t2 + t2) & (0xffffffffL);
  if (t1 & (0x80000000L))
    t2++;
  t1 = (t1 + t1) & (0xffffffffL);
  c1 = (c1 + t1) & (0xffffffffL);
  if ((c1 < t1) && (((++t2) & (0xffffffffL)) == 0))
    c3++;
  c2 = (c2 + t2) & (0xffffffffL);
  if ((c2) < t2)
    c3++;
  ;
  r[6] = c1;
  c1 = 0;
  t1 = (((a)[7]) & (0xffff));
  t2 = ((((a)[7]) >> 16) & (0xffff));
  bl = (((a)[0]) & (0xffff));
  bh = ((((a)[0]) >> 16) & (0xffff));
  {
    unsigned long m, m1, lt, ht;
    lt = t1;
    ht = t2;
    m = (bh) * (lt);
    lt = (bl) * (lt);
    m1 = (bl) * (ht);
    ht = (bh) * (ht);
    m = (m + m1) & (0xffffffffL);
    if (m < m1)
      ht += ((unsigned long)((1L) & (0xffff)) << 16);
    ht += (((m) >> 16) & (0xffff));
    m1 = ((unsigned long)((m) & (0xffff)) << 16);
    lt = (lt + m1) & (0xffffffffL);
    if (lt < m1)
      ht++;
    (t1) = lt;
    (t2) = ht;
  };
  if (t2 & (0x80000000L))
    c1++;
  t2 = (t2 + t2) & (0xffffffffL);
  if (t1 & (0x80000000L))
    t2++;
  t1 = (t1 + t1) & (0xffffffffL);
  c2 = (c2 + t1) & (0xffffffffL);
  if ((c2 < t1) && (((++t2) & (0xffffffffL)) == 0))
    c1++;
  c3 = (c3 + t2) & (0xffffffffL);
  if ((c3) < t2)
    c1++;
  ;
  t1 = (((a)[6]) & (0xffff));
  t2 = ((((a)[6]) >> 16) & (0xffff));
  bl = (((a)[1]) & (0xffff));
  bh = ((((a)[1]) >> 16) & (0xffff));
  {
    unsigned long m, m1, lt, ht;
    lt = t1;
    ht = t2;
    m = (bh) * (lt);
    lt = (bl) * (lt);
    m1 = (bl) * (ht);
    ht = (bh) * (ht);
    m = (m + m1) & (0xffffffffL);
    if (m < m1)
      ht += ((unsigned long)((1L) & (0xffff)) << 16);
    ht += (((m) >> 16) & (0xffff));
    m1 = ((unsigned long)((m) & (0xffff)) << 16);
    lt = (lt + m1) & (0xffffffffL);
    if (lt < m1)
      ht++;
    (t1) = lt;
    (t2) = ht;
  };
  if (t2 & (0x80000000L))
    c1++;
  t2 = (t2 + t2) & (0xffffffffL);
  if (t1 & (0x80000000L))
    t2++;
  t1 = (t1 + t1) & (0xffffffffL);
  c2 = (c2 + t1) & (0xffffffffL);
  if ((c2 < t1) && (((++t2) & (0xffffffffL)) == 0))
    c1++;
  c3 = (c3 + t2) & (0xffffffffL);
  if ((c3) < t2)
    c1++;
  ;
  t1 = (((a)[5]) & (0xffff));
  t2 = ((((a)[5]) >> 16) & (0xffff));
  bl = (((a)[2]) & (0xffff));
  bh = ((((a)[2]) >> 16) & (0xffff));
  {
    unsigned long m, m1, lt, ht;
    lt = t1;
    ht = t2;
    m = (bh) * (lt);
    lt = (bl) * (lt);
    m1 = (bl) * (ht);
    ht = (bh) * (ht);
    m = (m + m1) & (0xffffffffL);
    if (m < m1)
      ht += ((unsigned long)((1L) & (0xffff)) << 16);
    ht += (((m) >> 16) & (0xffff));
    m1 = ((unsigned long)((m) & (0xffff)) << 16);
    lt = (lt + m1) & (0xffffffffL);
    if (lt < m1)
      ht++;
    (t1) = lt;
    (t2) = ht;
  };
  if (t2 & (0x80000000L))
    c1++;
  t2 = (t2 + t2) & (0xffffffffL);
  if (t1 & (0x80000000L))
    t2++;
  t1 = (t1 + t1) & (0xffffffffL);
  c2 = (c2 + t1) & (0xffffffffL);
  if ((c2 < t1) && (((++t2) & (0xffffffffL)) == 0))
    c1++;
  c3 = (c3 + t2) & (0xffffffffL);
  if ((c3) < t2)
    c1++;
  ;
  t1 = (((a)[4]) & (0xffff));
  t2 = ((((a)[4]) >> 16) & (0xffff));
  bl = (((a)[3]) & (0xffff));
  bh = ((((a)[3]) >> 16) & (0xffff));
  {
    unsigned long m, m1, lt, ht;
    lt = t1;
    ht = t2;
    m = (bh) * (lt);
    lt = (bl) * (lt);
    m1 = (bl) * (ht);
    ht = (bh) * (ht);
    m = (m + m1) & (0xffffffffL);
    if (m < m1)
      ht += ((unsigned long)((1L) & (0xffff)) << 16);
    ht += (((m) >> 16) & (0xffff));
    m1 = ((unsigned long)((m) & (0xffff)) << 16);
    lt = (lt + m1) & (0xffffffffL);
    if (lt < m1)
      ht++;
    (t1) = lt;
    (t2) = ht;
  };
  if (t2 & (0x80000000L))
    c1++;
  t2 = (t2 + t2) & (0xffffffffL);
  if (t1 & (0x80000000L))
    t2++;
  t1 = (t1 + t1) & (0xffffffffL);
  c2 = (c2 + t1) & (0xffffffffL);
  if ((c2 < t1) && (((++t2) & (0xffffffffL)) == 0))
    c1++;
  c3 = (c3 + t2) & (0xffffffffL);
  if ((c3) < t2)
    c1++;
  ;
  r[7] = c2;
  c2 = 0;
  {
    unsigned long l, h, m;
    h = ((a)[4]);
    l = ((h) & (0xffff));
    h = (((h) >> 16) & (0xffff));
    m = (l) * (h);
    l *= l;
    h *= h;
    h += (m & (0xffff8000L)) >> (16 - 1);
    m = (m & (0xffff)) << (16 + 1);
    l = (l + m) & (0xffffffffL);
    if (l < m)
      h++;
    (t1) = l;
    (t2) = h;
  };
  c3 = (c3 + t1) & (0xffffffffL);
  if ((c3) < t1)
    t2++;
  c1 = (c1 + t2) & (0xffffffffL);
  if ((c1) < t2)
    c2++;
  ;
  t1 = (((a)[5]) & (0xffff));
  t2 = ((((a)[5]) >> 16) & (0xffff));
  bl = (((a)[3]) & (0xffff));
  bh = ((((a)[3]) >> 16) & (0xffff));
  {
    unsigned long m, m1, lt, ht;
    lt = t1;
    ht = t2;
    m = (bh) * (lt);
    lt = (bl) * (lt);
    m1 = (bl) * (ht);
    ht = (bh) * (ht);
    m = (m + m1) & (0xffffffffL);
    if (m < m1)
      ht += ((unsigned long)((1L) & (0xffff)) << 16);
    ht += (((m) >> 16) & (0xffff));
    m1 = ((unsigned long)((m) & (0xffff)) << 16);
    lt = (lt + m1) & (0xffffffffL);
    if (lt < m1)
      ht++;
    (t1) = lt;
    (t2) = ht;
  };
  if (t2 & (0x80000000L))
    c2++;
  t2 = (t2 + t2) & (0xffffffffL);
  if (t1 & (0x80000000L))
    t2++;
  t1 = (t1 + t1) & (0xffffffffL);
  c3 = (c3 + t1) & (0xffffffffL);
  if ((c3 < t1) && (((++t2) & (0xffffffffL)) == 0))
    c2++;
  c1 = (c1 + t2) & (0xffffffffL);
  if ((c1) < t2)
    c2++;
  ;
  t1 = (((a)[6]) & (0xffff));
  t2 = ((((a)[6]) >> 16) & (0xffff));
  bl = (((a)[2]) & (0xffff));
  bh = ((((a)[2]) >> 16) & (0xffff));
  {
    unsigned long m, m1, lt, ht;
    lt = t1;
    ht = t2;
    m = (bh) * (lt);
    lt = (bl) * (lt);
    m1 = (bl) * (ht);
    ht = (bh) * (ht);
    m = (m + m1) & (0xffffffffL);
    if (m < m1)
      ht += ((unsigned long)((1L) & (0xffff)) << 16);
    ht += (((m) >> 16) & (0xffff));
    m1 = ((unsigned long)((m) & (0xffff)) << 16);
    lt = (lt + m1) & (0xffffffffL);
    if (lt < m1)
      ht++;
    (t1) = lt;
    (t2) = ht;
  };
  if (t2 & (0x80000000L))
    c2++;
  t2 = (t2 + t2) & (0xffffffffL);
  if (t1 & (0x80000000L))
    t2++;
  t1 = (t1 + t1) & (0xffffffffL);
  c3 = (c3 + t1) & (0xffffffffL);
  if ((c3 < t1) && (((++t2) & (0xffffffffL)) == 0))
    c2++;
  c1 = (c1 + t2) & (0xffffffffL);
  if ((c1) < t2)
    c2++;
  ;
  t1 = (((a)[7]) & (0xffff));
  t2 = ((((a)[7]) >> 16) & (0xffff));
  bl = (((a)[1]) & (0xffff));
  bh = ((((a)[1]) >> 16) & (0xffff));
  {
    unsigned long m, m1, lt, ht;
    lt = t1;
    ht = t2;
    m = (bh) * (lt);
    lt = (bl) * (lt);
    m1 = (bl) * (ht);
    ht = (bh) * (ht);
    m = (m + m1) & (0xffffffffL);
    if (m < m1)
      ht += ((unsigned long)((1L) & (0xffff)) << 16);
    ht += (((m) >> 16) & (0xffff));
    m1 = ((unsigned long)((m) & (0xffff)) << 16);
    lt = (lt + m1) & (0xffffffffL);
    if (lt < m1)
      ht++;
    (t1) = lt;
    (t2) = ht;
  };
  if (t2 & (0x80000000L))
    c2++;
  t2 = (t2 + t2) & (0xffffffffL);
  if (t1 & (0x80000000L))
    t2++;
  t1 = (t1 + t1) & (0xffffffffL);
  c3 = (c3 + t1) & (0xffffffffL);
  if ((c3 < t1) && (((++t2) & (0xffffffffL)) == 0))
    c2++;
  c1 = (c1 + t2) & (0xffffffffL);
  if ((c1) < t2)
    c2++;
  ;
  r[8] = c3;
  c3 = 0;
  t1 = (((a)[7]) & (0xffff));
  t2 = ((((a)[7]) >> 16) & (0xffff));
  bl = (((a)[2]) & (0xffff));
  bh = ((((a)[2]) >> 16) & (0xffff));
  {
    unsigned long m, m1, lt, ht;
    lt = t1;
    ht = t2;
    m = (bh) * (lt);
    lt = (bl) * (lt);
    m1 = (bl) * (ht);
    ht = (bh) * (ht);
    m = (m + m1) & (0xffffffffL);
    if (m < m1)
      ht += ((unsigned long)((1L) & (0xffff)) << 16);
    ht += (((m) >> 16) & (0xffff));
    m1 = ((unsigned long)((m) & (0xffff)) << 16);
    lt = (lt + m1) & (0xffffffffL);
    if (lt < m1)
      ht++;
    (t1) = lt;
    (t2) = ht;
  };
  if (t2 & (0x80000000L))
    c3++;
  t2 = (t2 + t2) & (0xffffffffL);
  if (t1 & (0x80000000L))
    t2++;
  t1 = (t1 + t1) & (0xffffffffL);
  c1 = (c1 + t1) & (0xffffffffL);
  if ((c1 < t1) && (((++t2) & (0xffffffffL)) == 0))
    c3++;
  c2 = (c2 + t2) & (0xffffffffL);
  if ((c2) < t2)
    c3++;
  ;
  t1 = (((a)[6]) & (0xffff));
  t2 = ((((a)[6]) >> 16) & (0xffff));
  bl = (((a)[3]) & (0xffff));
  bh = ((((a)[3]) >> 16) & (0xffff));
  {
    unsigned long m, m1, lt, ht;
    lt = t1;
    ht = t2;
    m = (bh) * (lt);
    lt = (bl) * (lt);
    m1 = (bl) * (ht);
    ht = (bh) * (ht);
    m = (m + m1) & (0xffffffffL);
    if (m < m1)
      ht += ((unsigned long)((1L) & (0xffff)) << 16);
    ht += (((m) >> 16) & (0xffff));
    m1 = ((unsigned long)((m) & (0xffff)) << 16);
    lt = (lt + m1) & (0xffffffffL);
    if (lt < m1)
      ht++;
    (t1) = lt;
    (t2) = ht;
  };
  if (t2 & (0x80000000L))
    c3++;
  t2 = (t2 + t2) & (0xffffffffL);
  if (t1 & (0x80000000L))
    t2++;
  t1 = (t1 + t1) & (0xffffffffL);
  c1 = (c1 + t1) & (0xffffffffL);
  if ((c1 < t1) && (((++t2) & (0xffffffffL)) == 0))
    c3++;
  c2 = (c2 + t2) & (0xffffffffL);
  if ((c2) < t2)
    c3++;
  ;
  t1 = (((a)[5]) & (0xffff));
  t2 = ((((a)[5]) >> 16) & (0xffff));
  bl = (((a)[4]) & (0xffff));
  bh = ((((a)[4]) >> 16) & (0xffff));
  {
    unsigned long m, m1, lt, ht;
    lt = t1;
    ht = t2;
    m = (bh) * (lt);
    lt = (bl) * (lt);
    m1 = (bl) * (ht);
    ht = (bh) * (ht);
    m = (m + m1) & (0xffffffffL);
    if (m < m1)
      ht += ((unsigned long)((1L) & (0xffff)) << 16);
    ht += (((m) >> 16) & (0xffff));
    m1 = ((unsigned long)((m) & (0xffff)) << 16);
    lt = (lt + m1) & (0xffffffffL);
    if (lt < m1)
      ht++;
    (t1) = lt;
    (t2) = ht;
  };
  if (t2 & (0x80000000L))
    c3++;
  t2 = (t2 + t2) & (0xffffffffL);
  if (t1 & (0x80000000L))
    t2++;
  t1 = (t1 + t1) & (0xffffffffL);
  c1 = (c1 + t1) & (0xffffffffL);
  if ((c1 < t1) && (((++t2) & (0xffffffffL)) == 0))
    c3++;
  c2 = (c2 + t2) & (0xffffffffL);
  if ((c2) < t2)
    c3++;
  ;
  r[9] = c1;
  c1 = 0;
  {
    unsigned long l, h, m;
    h = ((a)[5]);
    l = ((h) & (0xffff));
    h = (((h) >> 16) & (0xffff));
    m = (l) * (h);
    l *= l;
    h *= h;
    h += (m & (0xffff8000L)) >> (16 - 1);
    m = (m & (0xffff)) << (16 + 1);
    l = (l + m) & (0xffffffffL);
    if (l < m)
      h++;
    (t1) = l;
    (t2) = h;
  };
  c2 = (c2 + t1) & (0xffffffffL);
  if ((c2) < t1)
    t2++;
  c3 = (c3 + t2) & (0xffffffffL);
  if ((c3) < t2)
    c1++;
  ;
  t1 = (((a)[6]) & (0xffff));
  t2 = ((((a)[6]) >> 16) & (0xffff));
  bl = (((a)[4]) & (0xffff));
  bh = ((((a)[4]) >> 16) & (0xffff));
  {
    unsigned long m, m1, lt, ht;
    lt = t1;
    ht = t2;
    m = (bh) * (lt);
    lt = (bl) * (lt);
    m1 = (bl) * (ht);
    ht = (bh) * (ht);
    m = (m + m1) & (0xffffffffL);
    if (m < m1)
      ht += ((unsigned long)((1L) & (0xffff)) << 16);
    ht += (((m) >> 16) & (0xffff));
    m1 = ((unsigned long)((m) & (0xffff)) << 16);
    lt = (lt + m1) & (0xffffffffL);
    if (lt < m1)
      ht++;
    (t1) = lt;
    (t2) = ht;
  };
  if (t2 & (0x80000000L))
    c1++;
  t2 = (t2 + t2) & (0xffffffffL);
  if (t1 & (0x80000000L))
    t2++;
  t1 = (t1 + t1) & (0xffffffffL);
  c2 = (c2 + t1) & (0xffffffffL);
  if ((c2 < t1) && (((++t2) & (0xffffffffL)) == 0))
    c1++;
  c3 = (c3 + t2) & (0xffffffffL);
  if ((c3) < t2)
    c1++;
  ;
  t1 = (((a)[7]) & (0xffff));
  t2 = ((((a)[7]) >> 16) & (0xffff));
  bl = (((a)[3]) & (0xffff));
  bh = ((((a)[3]) >> 16) & (0xffff));
  {
    unsigned long m, m1, lt, ht;
    lt = t1;
    ht = t2;
    m = (bh) * (lt);
    lt = (bl) * (lt);
    m1 = (bl) * (ht);
    ht = (bh) * (ht);
    m = (m + m1) & (0xffffffffL);
    if (m < m1)
      ht += ((unsigned long)((1L) & (0xffff)) << 16);
    ht += (((m) >> 16) & (0xffff));
    m1 = ((unsigned long)((m) & (0xffff)) << 16);
    lt = (lt + m1) & (0xffffffffL);
    if (lt < m1)
      ht++;
    (t1) = lt;
    (t2) = ht;
  };
  if (t2 & (0x80000000L))
    c1++;
  t2 = (t2 + t2) & (0xffffffffL);
  if (t1 & (0x80000000L))
    t2++;
  t1 = (t1 + t1) & (0xffffffffL);
  c2 = (c2 + t1) & (0xffffffffL);
  if ((c2 < t1) && (((++t2) & (0xffffffffL)) == 0))
    c1++;
  c3 = (c3 + t2) & (0xffffffffL);
  if ((c3) < t2)
    c1++;
  ;
  r[10] = c2;
  c2 = 0;
  t1 = (((a)[7]) & (0xffff));
  t2 = ((((a)[7]) >> 16) & (0xffff));
  bl = (((a)[4]) & (0xffff));
  bh = ((((a)[4]) >> 16) & (0xffff));
  {
    unsigned long m, m1, lt, ht;
    lt = t1;
    ht = t2;
    m = (bh) * (lt);
    lt = (bl) * (lt);
    m1 = (bl) * (ht);
    ht = (bh) * (ht);
    m = (m + m1) & (0xffffffffL);
    if (m < m1)
      ht += ((unsigned long)((1L) & (0xffff)) << 16);
    ht += (((m) >> 16) & (0xffff));
    m1 = ((unsigned long)((m) & (0xffff)) << 16);
    lt = (lt + m1) & (0xffffffffL);
    if (lt < m1)
      ht++;
    (t1) = lt;
    (t2) = ht;
  };
  if (t2 & (0x80000000L))
    c2++;
  t2 = (t2 + t2) & (0xffffffffL);
  if (t1 & (0x80000000L))
    t2++;
  t1 = (t1 + t1) & (0xffffffffL);
  c3 = (c3 + t1) & (0xffffffffL);
  if ((c3 < t1) && (((++t2) & (0xffffffffL)) == 0))
    c2++;
  c1 = (c1 + t2) & (0xffffffffL);
  if ((c1) < t2)
    c2++;
  ;
  t1 = (((a)[6]) & (0xffff));
  t2 = ((((a)[6]) >> 16) & (0xffff));
  bl = (((a)[5]) & (0xffff));
  bh = ((((a)[5]) >> 16) & (0xffff));
  {
    unsigned long m, m1, lt, ht;
    lt = t1;
    ht = t2;
    m = (bh) * (lt);
    lt = (bl) * (lt);
    m1 = (bl) * (ht);
    ht = (bh) * (ht);
    m = (m + m1) & (0xffffffffL);
    if (m < m1)
      ht += ((unsigned long)((1L) & (0xffff)) << 16);
    ht += (((m) >> 16) & (0xffff));
    m1 = ((unsigned long)((m) & (0xffff)) << 16);
    lt = (lt + m1) & (0xffffffffL);
    if (lt < m1)
      ht++;
    (t1) = lt;
    (t2) = ht;
  };
  if (t2 & (0x80000000L))
    c2++;
  t2 = (t2 + t2) & (0xffffffffL);
  if (t1 & (0x80000000L))
    t2++;
  t1 = (t1 + t1) & (0xffffffffL);
  c3 = (c3 + t1) & (0xffffffffL);
  if ((c3 < t1) && (((++t2) & (0xffffffffL)) == 0))
    c2++;
  c1 = (c1 + t2) & (0xffffffffL);
  if ((c1) < t2)
    c2++;
  ;
  r[11] = c3;
  c3 = 0;
  {
    unsigned long l, h, m;
    h = ((a)[6]);
    l = ((h) & (0xffff));
    h = (((h) >> 16) & (0xffff));
    m = (l) * (h);
    l *= l;
    h *= h;
    h += (m & (0xffff8000L)) >> (16 - 1);
    m = (m & (0xffff)) << (16 + 1);
    l = (l + m) & (0xffffffffL);
    if (l < m)
      h++;
    (t1) = l;
    (t2) = h;
  };
  c1 = (c1 + t1) & (0xffffffffL);
  if ((c1) < t1)
    t2++;
  c2 = (c2 + t2) & (0xffffffffL);
  if ((c2) < t2)
    c3++;
  ;
  t1 = (((a)[7]) & (0xffff));
  t2 = ((((a)[7]) >> 16) & (0xffff));
  bl = (((a)[5]) & (0xffff));
  bh = ((((a)[5]) >> 16) & (0xffff));
  {
    unsigned long m, m1, lt, ht;
    lt = t1;
    ht = t2;
    m = (bh) * (lt);
    lt = (bl) * (lt);
    m1 = (bl) * (ht);
    ht = (bh) * (ht);
    m = (m + m1) & (0xffffffffL);
    if (m < m1)
      ht += ((unsigned long)((1L) & (0xffff)) << 16);
    ht += (((m) >> 16) & (0xffff));
    m1 = ((unsigned long)((m) & (0xffff)) << 16);
    lt = (lt + m1) & (0xffffffffL);
    if (lt < m1)
      ht++;
    (t1) = lt;
    (t2) = ht;
  };
  if (t2 & (0x80000000L))
    c3++;
  t2 = (t2 + t2) & (0xffffffffL);
  if (t1 & (0x80000000L))
    t2++;
  t1 = (t1 + t1) & (0xffffffffL);
  c1 = (c1 + t1) & (0xffffffffL);
  if ((c1 < t1) && (((++t2) & (0xffffffffL)) == 0))
    c3++;
  c2 = (c2 + t2) & (0xffffffffL);
  if ((c2) < t2)
    c3++;
  ;
  r[12] = c1;
  c1 = 0;
  t1 = (((a)[7]) & (0xffff));
  t2 = ((((a)[7]) >> 16) & (0xffff));
  bl = (((a)[6]) & (0xffff));
  bh = ((((a)[6]) >> 16) & (0xffff));
  {
    unsigned long m, m1, lt, ht;
    lt = t1;
    ht = t2;
    m = (bh) * (lt);
    lt = (bl) * (lt);
    m1 = (bl) * (ht);
    ht = (bh) * (ht);
    m = (m + m1) & (0xffffffffL);
    if (m < m1)
      ht += ((unsigned long)((1L) & (0xffff)) << 16);
    ht += (((m) >> 16) & (0xffff));
    m1 = ((unsigned long)((m) & (0xffff)) << 16);
    lt = (lt + m1) & (0xffffffffL);
    if (lt < m1)
      ht++;
    (t1) = lt;
    (t2) = ht;
  };
  if (t2 & (0x80000000L))
    c1++;
  t2 = (t2 + t2) & (0xffffffffL);
  if (t1 & (0x80000000L))
    t2++;
  t1 = (t1 + t1) & (0xffffffffL);
  c2 = (c2 + t1) & (0xffffffffL);
  if ((c2 < t1) && (((++t2) & (0xffffffffL)) == 0))
    c1++;
  c3 = (c3 + t2) & (0xffffffffL);
  if ((c3) < t2)
    c1++;
  ;
  r[13] = c2;
  c2 = 0;
  {
    unsigned long l, h, m;
    h = ((a)[7]);
    l = ((h) & (0xffff));
    h = (((h) >> 16) & (0xffff));
    m = (l) * (h);
    l *= l;
    h *= h;
    h += (m & (0xffff8000L)) >> (16 - 1);
    m = (m & (0xffff)) << (16 + 1);
    l = (l + m) & (0xffffffffL);
    if (l < m)
      h++;
    (t1) = l;
    (t2) = h;
  };
  c3 = (c3 + t1) & (0xffffffffL);
  if ((c3) < t1)
    t2++;
  c1 = (c1 + t2) & (0xffffffffL);
  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)
mov    -0x58(%rbp),%rax
and    $0xffff,%rax
mov    %rax,-0x50(%rbp)
mov    -0x58(%rbp),%rax
shr    $0x10,%rax
and    $0xffff,%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)
movabs $0xffff8000,%rax
and    -0x60(%rbp),%rax
shr    $0xf,%rax
add    -0x58(%rbp),%rax
mov    %rax,-0x58(%rbp)
mov    -0x60(%rbp),%rax
and    $0xffff,%rax
shl    $0x11,%rax
mov    %rax,-0x60(%rbp)
mov    -0x50(%rbp),%rax
add    -0x60(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x50(%rbp)
mov    -0x50(%rbp),%rax
cmp    -0x60(%rbp),%rax
jae    11dc <bn_sqr_comba8+0xdc>
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
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    121f <bn_sqr_comba8+0x11f>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x40(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    1252 <bn_sqr_comba8+0x152>
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),%rax
mov    0x8(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
shr    $0x10,%rax
and    $0xffff,%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
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x68(%rbp)
mov    -0x68(%rbp),%rax
cmp    -0x70(%rbp),%rax
jae    132c <bn_sqr_comba8+0x22c>
mov    -0x80(%rbp),%rax
add    $0x10000,%rax
mov    %rax,-0x80(%rbp)
mov    -0x68(%rbp),%rax
shr    $0x10,%rax
and    $0xffff,%rax
add    -0x80(%rbp),%rax
mov    %rax,-0x80(%rbp)
mov    -0x68(%rbp),%rax
and    $0xffff,%rax
shl    $0x10,%rax
mov    %rax,-0x70(%rbp)
mov    -0x78(%rbp),%rax
add    -0x70(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x78(%rbp)
mov    -0x78(%rbp),%rax
cmp    -0x70(%rbp),%rax
jae    1387 <bn_sqr_comba8+0x287>
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 $0x80000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     13bb <bn_sqr_comba8+0x2bb>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
movabs $0x80000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     13f8 <bn_sqr_comba8+0x2f8>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x40(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    1467 <bn_sqr_comba8+0x367>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
movabs $0xffffffff,%rcx
and    %rcx,%rax
cmp    $0x0,%rax
jne    1467 <bn_sqr_comba8+0x367>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x48(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    149a <bn_sqr_comba8+0x39a>
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)
mov    -0x90(%rbp),%rax
and    $0xffff,%rax
mov    %rax,-0x88(%rbp)
mov    -0x90(%rbp),%rax
shr    $0x10,%rax
and    $0xffff,%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)
movabs $0xffff8000,%rax
and    -0x98(%rbp),%rax
shr    $0xf,%rax
add    -0x90(%rbp),%rax
mov    %rax,-0x90(%rbp)
mov    -0x98(%rbp),%rax
and    $0xffff,%rax
shl    $0x11,%rax
mov    %rax,-0x98(%rbp)
mov    -0x88(%rbp),%rax
add    -0x98(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x88(%rbp)
mov    -0x88(%rbp),%rax
cmp    -0x98(%rbp),%rax
jae    15ae <bn_sqr_comba8+0x4ae>
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
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    15f7 <bn_sqr_comba8+0x4f7>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x38(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    162a <bn_sqr_comba8+0x52a>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
shr    $0x10,%rax
and    $0xffff,%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
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0xa0(%rbp)
mov    -0xa0(%rbp),%rax
cmp    -0xa8(%rbp),%rax
jae    1724 <bn_sqr_comba8+0x624>
mov    -0xb8(%rbp),%rax
add    $0x10000,%rax
mov    %rax,-0xb8(%rbp)
mov    -0xa0(%rbp),%rax
shr    $0x10,%rax
and    $0xffff,%rax
add    -0xb8(%rbp),%rax
mov    %rax,-0xb8(%rbp)
mov    -0xa0(%rbp),%rax
and    $0xffff,%rax
shl    $0x10,%rax
mov    %rax,-0xa8(%rbp)
mov    -0xb0(%rbp),%rax
add    -0xa8(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0xb0(%rbp)
mov    -0xb0(%rbp),%rax
cmp    -0xa8(%rbp),%rax
jae    17a3 <bn_sqr_comba8+0x6a3>
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 $0x80000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     17dd <bn_sqr_comba8+0x6dd>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
movabs $0x80000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     181a <bn_sqr_comba8+0x71a>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x48(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    1889 <bn_sqr_comba8+0x789>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
movabs $0xffffffff,%rcx
and    %rcx,%rax
cmp    $0x0,%rax
jne    1889 <bn_sqr_comba8+0x789>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x38(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    18bc <bn_sqr_comba8+0x7bc>
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),%rax
mov    0x18(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x18(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
shr    $0x10,%rax
and    $0xffff,%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
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0xc0(%rbp)
mov    -0xc0(%rbp),%rax
cmp    -0xc8(%rbp),%rax
jae    19ca <bn_sqr_comba8+0x8ca>
mov    -0xd8(%rbp),%rax
add    $0x10000,%rax
mov    %rax,-0xd8(%rbp)
mov    -0xc0(%rbp),%rax
shr    $0x10,%rax
and    $0xffff,%rax
add    -0xd8(%rbp),%rax
mov    %rax,-0xd8(%rbp)
mov    -0xc0(%rbp),%rax
and    $0xffff,%rax
shl    $0x10,%rax
mov    %rax,-0xc8(%rbp)
mov    -0xd0(%rbp),%rax
add    -0xc8(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0xd0(%rbp)
mov    -0xd0(%rbp),%rax
cmp    -0xc8(%rbp),%rax
jae    1a49 <bn_sqr_comba8+0x949>
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 $0x80000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     1a83 <bn_sqr_comba8+0x983>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
movabs $0x80000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     1ac0 <bn_sqr_comba8+0x9c0>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x38(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    1b2f <bn_sqr_comba8+0xa2f>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
movabs $0xffffffff,%rcx
and    %rcx,%rax
cmp    $0x0,%rax
jne    1b2f <bn_sqr_comba8+0xa2f>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x40(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    1b62 <bn_sqr_comba8+0xa62>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%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
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0xe0(%rbp)
mov    -0xe0(%rbp),%rax
cmp    -0xe8(%rbp),%rax
jae    1c5e <bn_sqr_comba8+0xb5e>
mov    -0xf8(%rbp),%rax
add    $0x10000,%rax
mov    %rax,-0xf8(%rbp)
mov    -0xe0(%rbp),%rax
shr    $0x10,%rax
and    $0xffff,%rax
add    -0xf8(%rbp),%rax
mov    %rax,-0xf8(%rbp)
mov    -0xe0(%rbp),%rax
and    $0xffff,%rax
shl    $0x10,%rax
mov    %rax,-0xe8(%rbp)
mov    -0xf0(%rbp),%rax
add    -0xe8(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0xf0(%rbp)
mov    -0xf0(%rbp),%rax
cmp    -0xe8(%rbp),%rax
jae    1cdd <bn_sqr_comba8+0xbdd>
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 $0x80000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     1d17 <bn_sqr_comba8+0xc17>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
movabs $0x80000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     1d54 <bn_sqr_comba8+0xc54>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x38(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    1dc3 <bn_sqr_comba8+0xcc3>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
movabs $0xffffffff,%rcx
and    %rcx,%rax
cmp    $0x0,%rax
jne    1dc3 <bn_sqr_comba8+0xcc3>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x40(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    1df6 <bn_sqr_comba8+0xcf6>
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)
mov    -0x108(%rbp),%rax
and    $0xffff,%rax
mov    %rax,-0x100(%rbp)
mov    -0x108(%rbp),%rax
shr    $0x10,%rax
and    $0xffff,%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)
movabs $0xffff8000,%rax
and    -0x110(%rbp),%rax
shr    $0xf,%rax
add    -0x108(%rbp),%rax
mov    %rax,-0x108(%rbp)
mov    -0x110(%rbp),%rax
and    $0xffff,%rax
shl    $0x11,%rax
mov    %rax,-0x110(%rbp)
mov    -0x100(%rbp),%rax
add    -0x110(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x100(%rbp)
mov    -0x100(%rbp),%rax
cmp    -0x110(%rbp),%rax
jae    1f0a <bn_sqr_comba8+0xe0a>
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
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    1f53 <bn_sqr_comba8+0xe53>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x48(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    1f86 <bn_sqr_comba8+0xe86>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x10(%rbp),%rax
mov    0x18(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x18(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%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
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
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x118(%rbp)
mov    -0x118(%rbp),%rax
cmp    -0x120(%rbp),%rax
jae    2082 <bn_sqr_comba8+0xf82>
mov    -0x130(%rbp),%rax
add    $0x10000,%rax
mov    %rax,-0x130(%rbp)
mov    -0x118(%rbp),%rax
shr    $0x10,%rax
and    $0xffff,%rax
add    -0x130(%rbp),%rax
mov    %rax,-0x130(%rbp)
mov    -0x118(%rbp),%rax
and    $0xffff,%rax
shl    $0x10,%rax
mov    %rax,-0x120(%rbp)
mov    -0x128(%rbp),%rax
add    -0x120(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x128(%rbp)
mov    -0x128(%rbp),%rax
cmp    -0x120(%rbp),%rax
jae    2101 <bn_sqr_comba8+0x1001>
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 $0x80000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     213b <bn_sqr_comba8+0x103b>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
movabs $0x80000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     2178 <bn_sqr_comba8+0x1078>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x40(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    21e7 <bn_sqr_comba8+0x10e7>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
movabs $0xffffffff,%rcx
and    %rcx,%rax
cmp    $0x0,%rax
jne    21e7 <bn_sqr_comba8+0x10e7>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x48(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    221a <bn_sqr_comba8+0x111a>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x10(%rbp),%rax
mov    0x20(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x20(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
shr    $0x10,%rax
and    $0xffff,%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
ff
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
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x138(%rbp)
mov    -0x138(%rbp),%rax
cmp    -0x140(%rbp),%rax
jae    2314 <bn_sqr_comba8+0x1214>
mov    -0x150(%rbp),%rax
add    $0x10000,%rax
mov    %rax,-0x150(%rbp)
mov    -0x138(%rbp),%rax
shr    $0x10,%rax
and    $0xffff,%rax
add    -0x150(%rbp),%rax
mov    %rax,-0x150(%rbp)
mov    -0x138(%rbp),%rax
and    $0xffff,%rax
shl    $0x10,%rax
mov    %rax,-0x140(%rbp)
mov    -0x148(%rbp),%rax
add    -0x140(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x148(%rbp)
mov    -0x148(%rbp),%rax
cmp    -0x140(%rbp),%rax
jae    2393 <bn_sqr_comba8+0x1293>
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 $0x80000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     23cd <bn_sqr_comba8+0x12cd>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
movabs $0x80000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     240a <bn_sqr_comba8+0x130a>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x40(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    2479 <bn_sqr_comba8+0x1379>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
movabs $0xffffffff,%rcx
and    %rcx,%rax
cmp    $0x0,%rax
jne    2479 <bn_sqr_comba8+0x1379>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x48(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    24ac <bn_sqr_comba8+0x13ac>
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),%rax
mov    0x28(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x28(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
shr    $0x10,%rax
and    $0xffff,%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
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x158(%rbp)
mov    -0x158(%rbp),%rax
cmp    -0x160(%rbp),%rax
jae    25ba <bn_sqr_comba8+0x14ba>
mov    -0x170(%rbp),%rax
add    $0x10000,%rax
mov    %rax,-0x170(%rbp)
mov    -0x158(%rbp),%rax
shr    $0x10,%rax
and    $0xffff,%rax
add    -0x170(%rbp),%rax
mov    %rax,-0x170(%rbp)
mov    -0x158(%rbp),%rax
and    $0xffff,%rax
shl    $0x10,%rax
mov    %rax,-0x160(%rbp)
mov    -0x168(%rbp),%rax
add    -0x160(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x168(%rbp)
mov    -0x168(%rbp),%rax
cmp    -0x160(%rbp),%rax
jae    2639 <bn_sqr_comba8+0x1539>
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 $0x80000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     2673 <bn_sqr_comba8+0x1573>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
movabs $0x80000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     26b0 <bn_sqr_comba8+0x15b0>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x48(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    271f <bn_sqr_comba8+0x161f>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
movabs $0xffffffff,%rcx
and    %rcx,%rax
cmp    $0x0,%rax
jne    271f <bn_sqr_comba8+0x161f>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x38(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    2752 <bn_sqr_comba8+0x1652>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x10(%rbp),%rax
mov    0x20(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x20(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%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
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x178(%rbp)
mov    -0x178(%rbp),%rax
cmp    -0x180(%rbp),%rax
jae    284e <bn_sqr_comba8+0x174e>
mov    -0x190(%rbp),%rax
add    $0x10000,%rax
mov    %rax,-0x190(%rbp)
mov    -0x178(%rbp),%rax
shr    $0x10,%rax
and    $0xffff,%rax
add    -0x190(%rbp),%rax
mov    %rax,-0x190(%rbp)
mov    -0x178(%rbp),%rax
and    $0xffff,%rax
shl    $0x10,%rax
mov    %rax,-0x180(%rbp)
mov    -0x188(%rbp),%rax
add    -0x180(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x188(%rbp)
mov    -0x188(%rbp),%rax
cmp    -0x180(%rbp),%rax
jae    28cd <bn_sqr_comba8+0x17cd>
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 $0x80000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     2907 <bn_sqr_comba8+0x1807>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
movabs $0x80000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     2944 <bn_sqr_comba8+0x1844>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x48(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    29b3 <bn_sqr_comba8+0x18b3>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
movabs $0xffffffff,%rcx
and    %rcx,%rax
cmp    $0x0,%rax
jne    29b3 <bn_sqr_comba8+0x18b3>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x38(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    29e6 <bn_sqr_comba8+0x18e6>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x10(%rbp),%rax
mov    0x18(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x18(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%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
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x198(%rbp)
mov    -0x198(%rbp),%rax
cmp    -0x1a0(%rbp),%rax
jae    2ae2 <bn_sqr_comba8+0x19e2>
mov    -0x1b0(%rbp),%rax
add    $0x10000,%rax
mov    %rax,-0x1b0(%rbp)
mov    -0x198(%rbp),%rax
shr    $0x10,%rax
and    $0xffff,%rax
add    -0x1b0(%rbp),%rax
mov    %rax,-0x1b0(%rbp)
mov    -0x198(%rbp),%rax
and    $0xffff,%rax
shl    $0x10,%rax
mov    %rax,-0x1a0(%rbp)
mov    -0x1a8(%rbp),%rax
add    -0x1a0(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x1a8(%rbp)
mov    -0x1a8(%rbp),%rax
cmp    -0x1a0(%rbp),%rax
jae    2b61 <bn_sqr_comba8+0x1a61>
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 $0x80000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     2b9b <bn_sqr_comba8+0x1a9b>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
movabs $0x80000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     2bd8 <bn_sqr_comba8+0x1ad8>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x48(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    2c47 <bn_sqr_comba8+0x1b47>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
movabs $0xffffffff,%rcx
and    %rcx,%rax
cmp    $0x0,%rax
jne    2c47 <bn_sqr_comba8+0x1b47>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x38(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    2c7a <bn_sqr_comba8+0x1b7a>
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)
mov    -0x1c0(%rbp),%rax
and    $0xffff,%rax
mov    %rax,-0x1b8(%rbp)
mov    -0x1c0(%rbp),%rax
shr    $0x10,%rax
and    $0xffff,%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)
movabs $0xffff8000,%rax
and    -0x1c8(%rbp),%rax
shr    $0xf,%rax
add    -0x1c0(%rbp),%rax
mov    %rax,-0x1c0(%rbp)
mov    -0x1c8(%rbp),%rax
and    $0xffff,%rax
shl    $0x11,%rax
mov    %rax,-0x1c8(%rbp)
mov    -0x1b8(%rbp),%rax
add    -0x1c8(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x1b8(%rbp)
mov    -0x1b8(%rbp),%rax
cmp    -0x1c8(%rbp),%rax
jae    2d8e <bn_sqr_comba8+0x1c8e>
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
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    2dd7 <bn_sqr_comba8+0x1cd7>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x40(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    2e0a <bn_sqr_comba8+0x1d0a>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x10(%rbp),%rax
mov    0x20(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x20(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%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
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x1d0(%rbp)
mov    -0x1d0(%rbp),%rax
cmp    -0x1d8(%rbp),%rax
jae    2f06 <bn_sqr_comba8+0x1e06>
mov    -0x1e8(%rbp),%rax
add    $0x10000,%rax
mov    %rax,-0x1e8(%rbp)
mov    -0x1d0(%rbp),%rax
shr    $0x10,%rax
and    $0xffff,%rax
add    -0x1e8(%rbp),%rax
mov    %rax,-0x1e8(%rbp)
mov    -0x1d0(%rbp),%rax
and    $0xffff,%rax
shl    $0x10,%rax
mov    %rax,-0x1d8(%rbp)
mov    -0x1e0(%rbp),%rax
add    -0x1d8(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x1e0(%rbp)
mov    -0x1e0(%rbp),%rax
cmp    -0x1d8(%rbp),%rax
jae    2f85 <bn_sqr_comba8+0x1e85>
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 $0x80000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     2fbf <bn_sqr_comba8+0x1ebf>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
movabs $0x80000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     2ffc <bn_sqr_comba8+0x1efc>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x38(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    306b <bn_sqr_comba8+0x1f6b>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
movabs $0xffffffff,%rcx
and    %rcx,%rax
cmp    $0x0,%rax
jne    306b <bn_sqr_comba8+0x1f6b>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x40(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    309e <bn_sqr_comba8+0x1f9e>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x10(%rbp),%rax
mov    0x28(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x28(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%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
ff
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
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x1f0(%rbp)
mov    -0x1f0(%rbp),%rax
cmp    -0x1f8(%rbp),%rax
jae    319a <bn_sqr_comba8+0x209a>
mov    -0x208(%rbp),%rax
add    $0x10000,%rax
mov    %rax,-0x208(%rbp)
mov    -0x1f0(%rbp),%rax
shr    $0x10,%rax
and    $0xffff,%rax
add    -0x208(%rbp),%rax
mov    %rax,-0x208(%rbp)
mov    -0x1f0(%rbp),%rax
and    $0xffff,%rax
shl    $0x10,%rax
mov    %rax,-0x1f8(%rbp)
mov    -0x200(%rbp),%rax
add    -0x1f8(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x200(%rbp)
mov    -0x200(%rbp),%rax
cmp    -0x1f8(%rbp),%rax
jae    3219 <bn_sqr_comba8+0x2119>
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 $0x80000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     3253 <bn_sqr_comba8+0x2153>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
movabs $0x80000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     3290 <bn_sqr_comba8+0x2190>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x38(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    32ff <bn_sqr_comba8+0x21ff>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
movabs $0xffffffff,%rcx
and    %rcx,%rax
cmp    $0x0,%rax
jne    32ff <bn_sqr_comba8+0x21ff>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x40(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    3332 <bn_sqr_comba8+0x2232>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x10(%rbp),%rax
mov    0x30(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x30(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
shr    $0x10,%rax
and    $0xffff,%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
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x210(%rbp)
mov    -0x210(%rbp),%rax
cmp    -0x218(%rbp),%rax
jae    342c <bn_sqr_comba8+0x232c>
mov    -0x228(%rbp),%rax
add    $0x10000,%rax
mov    %rax,-0x228(%rbp)
mov    -0x210(%rbp),%rax
shr    $0x10,%rax
and    $0xffff,%rax
add    -0x228(%rbp),%rax
mov    %rax,-0x228(%rbp)
mov    -0x210(%rbp),%rax
and    $0xffff,%rax
shl    $0x10,%rax
mov    %rax,-0x218(%rbp)
mov    -0x220(%rbp),%rax
add    -0x218(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x220(%rbp)
mov    -0x220(%rbp),%rax
cmp    -0x218(%rbp),%rax
jae    34ab <bn_sqr_comba8+0x23ab>
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 $0x80000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     34e5 <bn_sqr_comba8+0x23e5>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
movabs $0x80000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     3522 <bn_sqr_comba8+0x2422>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x38(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    3591 <bn_sqr_comba8+0x2491>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
movabs $0xffffffff,%rcx
and    %rcx,%rax
cmp    $0x0,%rax
jne    3591 <bn_sqr_comba8+0x2491>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x40(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    35c4 <bn_sqr_comba8+0x24c4>
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),%rax
mov    0x38(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x38(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
shr    $0x10,%rax
and    $0xffff,%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
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x230(%rbp)
mov    -0x230(%rbp),%rax
cmp    -0x238(%rbp),%rax
jae    36d2 <bn_sqr_comba8+0x25d2>
mov    -0x248(%rbp),%rax
add    $0x10000,%rax
mov    %rax,-0x248(%rbp)
mov    -0x230(%rbp),%rax
shr    $0x10,%rax
and    $0xffff,%rax
add    -0x248(%rbp),%rax
mov    %rax,-0x248(%rbp)
mov    -0x230(%rbp),%rax
and    $0xffff,%rax
shl    $0x10,%rax
mov    %rax,-0x238(%rbp)
mov    -0x240(%rbp),%rax
add    -0x238(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x240(%rbp)
mov    -0x240(%rbp),%rax
cmp    -0x238(%rbp),%rax
jae    3751 <bn_sqr_comba8+0x2651>
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 $0x80000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     378b <bn_sqr_comba8+0x268b>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
movabs $0x80000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     37c8 <bn_sqr_comba8+0x26c8>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x40(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    3837 <bn_sqr_comba8+0x2737>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
movabs $0xffffffff,%rcx
and    %rcx,%rax
cmp    $0x0,%rax
jne    3837 <bn_sqr_comba8+0x2737>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x48(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    386a <bn_sqr_comba8+0x276a>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x10(%rbp),%rax
mov    0x30(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x30(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%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
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x250(%rbp)
mov    -0x250(%rbp),%rax
cmp    -0x258(%rbp),%rax
jae    3966 <bn_sqr_comba8+0x2866>
mov    -0x268(%rbp),%rax
add    $0x10000,%rax
mov    %rax,-0x268(%rbp)
mov    -0x250(%rbp),%rax
shr    $0x10,%rax
and    $0xffff,%rax
add    -0x268(%rbp),%rax
mov    %rax,-0x268(%rbp)
mov    -0x250(%rbp),%rax
and    $0xffff,%rax
shl    $0x10,%rax
mov    %rax,-0x258(%rbp)
mov    -0x260(%rbp),%rax
add    -0x258(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x260(%rbp)
mov    -0x260(%rbp),%rax
cmp    -0x258(%rbp),%rax
jae    39e5 <bn_sqr_comba8+0x28e5>
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 $0x80000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     3a1f <bn_sqr_comba8+0x291f>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
movabs $0x80000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     3a5c <bn_sqr_comba8+0x295c>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x40(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    3acb <bn_sqr_comba8+0x29cb>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
movabs $0xffffffff,%rcx
and    %rcx,%rax
cmp    $0x0,%rax
jne    3acb <bn_sqr_comba8+0x29cb>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x48(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    3afe <bn_sqr_comba8+0x29fe>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x10(%rbp),%rax
mov    0x28(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x28(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%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
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x270(%rbp)
mov    -0x270(%rbp),%rax
cmp    -0x278(%rbp),%rax
jae    3bfa <bn_sqr_comba8+0x2afa>
mov    -0x288(%rbp),%rax
add    $0x10000,%rax
mov    %rax,-0x288(%rbp)
mov    -0x270(%rbp),%rax
shr    $0x10,%rax
and    $0xffff,%rax
add    -0x288(%rbp),%rax
mov    %rax,-0x288(%rbp)
mov    -0x270(%rbp),%rax
and    $0xffff,%rax
shl    $0x10,%rax
mov    %rax,-0x278(%rbp)
mov    -0x280(%rbp),%rax
add    -0x278(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x280(%rbp)
mov    -0x280(%rbp),%rax
cmp    -0x278(%rbp),%rax
jae    3c79 <bn_sqr_comba8+0x2b79>
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 $0x80000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     3cb3 <bn_sqr_comba8+0x2bb3>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
movabs $0x80000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     3cf0 <bn_sqr_comba8+0x2bf0>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x40(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    3d5f <bn_sqr_comba8+0x2c5f>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
movabs $0xffffffff,%rcx
and    %rcx,%rax
cmp    $0x0,%rax
jne    3d5f <bn_sqr_comba8+0x2c5f>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x48(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    3d92 <bn_sqr_comba8+0x2c92>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x10(%rbp),%rax
mov    0x20(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x20(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
mov    0x18(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    0x18(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%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
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x290(%rbp)
mov    -0x290(%rbp),%rax
cmp    -0x298(%rbp),%rax
jae    3e8e <bn_sqr_comba8+0x2d8e>
mov    -0x2a8(%rbp),%rax
add    $0x10000,%rax
mov    %rax,-0x2a8(%rbp)
mov    -0x290(%rbp),%rax
shr    $0x10,%rax
and    $0xffff,%rax
add    -0x2a8(%rbp),%rax
mov    %rax,-0x2a8(%rbp)
mov    -0x290(%rbp),%rax
and    $0xffff,%rax
shl    $0x10,%rax
mov    %rax,-0x298(%rbp)
mov    -0x2a0(%rbp),%rax
add    -0x298(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x2a0(%rbp)
mov    -0x2a0(%rbp),%rax
cmp    -0x298(%rbp),%rax
jae    3f0d <bn_sqr_comba8+0x2e0d>
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 $0x80000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     3f47 <bn_sqr_comba8+0x2e47>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
movabs $0x80000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     3f84 <bn_sqr_comba8+0x2e84>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x40(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    3ff3 <bn_sqr_comba8+0x2ef3>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
movabs $0xffffffff,%rcx
and    %rcx,%rax
cmp    $0x0,%rax
jne    3ff3 <bn_sqr_comba8+0x2ef3>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x48(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    4026 <bn_sqr_comba8+0x2f26>
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)
mov    -0x2b8(%rbp),%rax
and    $0xffff,%rax
mov    %rax,-0x2b0(%rbp)
mov    -0x2b8(%rbp),%rax
shr    $0x10,%rax
and    $0xffff,%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)
movabs $0xffff8000,%rax
and    -0x2c0(%rbp),%rax
shr    $0xf,%rax
add    -0x2b8(%rbp),%rax
mov    %rax,-0x2b8(%rbp)
mov    -0x2c0(%rbp),%rax
and    $0xffff,%rax
shl    $0x11,%rax
mov    %rax,-0x2c0(%rbp)
mov    -0x2b0(%rbp),%rax
add    -0x2c0(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x2b0(%rbp)
mov    -0x2b0(%rbp),%rax
cmp    -0x2c0(%rbp),%rax
jae    413a <bn_sqr_comba8+0x303a>
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
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    4183 <bn_sqr_comba8+0x3083>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x38(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    41b6 <bn_sqr_comba8+0x30b6>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x10(%rbp),%rax
mov    0x28(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x28(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
mov    0x18(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    0x18(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%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
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x2c8(%rbp)
mov    -0x2c8(%rbp),%rax
cmp    -0x2d0(%rbp),%rax
jae    42b2 <bn_sqr_comba8+0x31b2>
mov    -0x2e0(%rbp),%rax
add    $0x10000,%rax
mov    %rax,-0x2e0(%rbp)
mov    -0x2c8(%rbp),%rax
shr    $0x10,%rax
and    $0xffff,%rax
add    -0x2e0(%rbp),%rax
mov    %rax,-0x2e0(%rbp)
mov    -0x2c8(%rbp),%rax
and    $0xffff,%rax
shl    $0x10,%rax
mov    %rax,-0x2d0(%rbp)
mov    -0x2d8(%rbp),%rax
add    -0x2d0(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x2d8(%rbp)
mov    -0x2d8(%rbp),%rax
cmp    -0x2d0(%rbp),%rax
jae    4331 <bn_sqr_comba8+0x3231>
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 $0x80000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     436b <bn_sqr_comba8+0x326b>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
movabs $0x80000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     43a8 <bn_sqr_comba8+0x32a8>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x48(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    4417 <bn_sqr_comba8+0x3317>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
movabs $0xffffffff,%rcx
and    %rcx,%rax
cmp    $0x0,%rax
jne    4417 <bn_sqr_comba8+0x3317>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x38(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    444a <bn_sqr_comba8+0x334a>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x10(%rbp),%rax
mov    0x30(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x30(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%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
ff
mov    %rax,-0x300(%rbp)
mov    -0x2e8(%rbp),%rax
add    -0x2f0(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x2e8(%rbp)
mov    -0x2e8(%rbp),%rax
cmp    -0x2f0(%rbp),%rax
jae    4546 <bn_sqr_comba8+0x3446>
mov    -0x300(%rbp),%rax
add    $0x10000,%rax
mov    %rax,-0x300(%rbp)
mov    -0x2e8(%rbp),%rax
shr    $0x10,%rax
and    $0xffff,%rax
add    -0x300(%rbp),%rax
mov    %rax,-0x300(%rbp)
mov    -0x2e8(%rbp),%rax
and    $0xffff,%rax
shl    $0x10,%rax
mov    %rax,-0x2f0(%rbp)
mov    -0x2f8(%rbp),%rax
add    -0x2f0(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x2f8(%rbp)
mov    -0x2f8(%rbp),%rax
cmp    -0x2f0(%rbp),%rax
jae    45c5 <bn_sqr_comba8+0x34c5>
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 $0x80000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     45ff <bn_sqr_comba8+0x34ff>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
movabs $0x80000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     463c <bn_sqr_comba8+0x353c>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x48(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    46ab <bn_sqr_comba8+0x35ab>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
movabs $0xffffffff,%rcx
and    %rcx,%rax
cmp    $0x0,%rax
jne    46ab <bn_sqr_comba8+0x35ab>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x38(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    46de <bn_sqr_comba8+0x35de>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x10(%rbp),%rax
mov    0x38(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x38(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%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
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x308(%rbp)
mov    -0x308(%rbp),%rax
cmp    -0x310(%rbp),%rax
jae    47da <bn_sqr_comba8+0x36da>
mov    -0x320(%rbp),%rax
add    $0x10000,%rax
mov    %rax,-0x320(%rbp)
mov    -0x308(%rbp),%rax
shr    $0x10,%rax
and    $0xffff,%rax
add    -0x320(%rbp),%rax
mov    %rax,-0x320(%rbp)
mov    -0x308(%rbp),%rax
and    $0xffff,%rax
shl    $0x10,%rax
mov    %rax,-0x310(%rbp)
mov    -0x318(%rbp),%rax
add    -0x310(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x318(%rbp)
mov    -0x318(%rbp),%rax
cmp    -0x310(%rbp),%rax
jae    4859 <bn_sqr_comba8+0x3759>
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 $0x80000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     4893 <bn_sqr_comba8+0x3793>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
movabs $0x80000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     48d0 <bn_sqr_comba8+0x37d0>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x48(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    493f <bn_sqr_comba8+0x383f>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
movabs $0xffffffff,%rcx
and    %rcx,%rax
cmp    $0x0,%rax
jne    493f <bn_sqr_comba8+0x383f>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x38(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    4972 <bn_sqr_comba8+0x3872>
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),%rax
mov    0x38(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x38(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%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
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x328(%rbp)
mov    -0x328(%rbp),%rax
cmp    -0x330(%rbp),%rax
jae    4a82 <bn_sqr_comba8+0x3982>
mov    -0x340(%rbp),%rax
add    $0x10000,%rax
mov    %rax,-0x340(%rbp)
mov    -0x328(%rbp),%rax
shr    $0x10,%rax
and    $0xffff,%rax
add    -0x340(%rbp),%rax
mov    %rax,-0x340(%rbp)
mov    -0x328(%rbp),%rax
and    $0xffff,%rax
shl    $0x10,%rax
mov    %rax,-0x330(%rbp)
mov    -0x338(%rbp),%rax
add    -0x330(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x338(%rbp)
mov    -0x338(%rbp),%rax
cmp    -0x330(%rbp),%rax
jae    4b01 <bn_sqr_comba8+0x3a01>
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 $0x80000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     4b3b <bn_sqr_comba8+0x3a3b>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
movabs $0x80000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     4b78 <bn_sqr_comba8+0x3a78>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x38(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    4be7 <bn_sqr_comba8+0x3ae7>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
movabs $0xffffffff,%rcx
and    %rcx,%rax
cmp    $0x0,%rax
jne    4be7 <bn_sqr_comba8+0x3ae7>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x40(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    4c1a <bn_sqr_comba8+0x3b1a>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x10(%rbp),%rax
mov    0x30(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x30(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
mov    0x18(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    0x18(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%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
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x348(%rbp)
mov    -0x348(%rbp),%rax
cmp    -0x350(%rbp),%rax
jae    4d16 <bn_sqr_comba8+0x3c16>
mov    -0x360(%rbp),%rax
add    $0x10000,%rax
mov    %rax,-0x360(%rbp)
mov    -0x348(%rbp),%rax
shr    $0x10,%rax
and    $0xffff,%rax
add    -0x360(%rbp),%rax
mov    %rax,-0x360(%rbp)
mov    -0x348(%rbp),%rax
and    $0xffff,%rax
shl    $0x10,%rax
mov    %rax,-0x350(%rbp)
mov    -0x358(%rbp),%rax
add    -0x350(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x358(%rbp)
mov    -0x358(%rbp),%rax
cmp    -0x350(%rbp),%rax
jae    4d95 <bn_sqr_comba8+0x3c95>
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 $0x80000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     4dcf <bn_sqr_comba8+0x3ccf>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
movabs $0x80000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     4e0c <bn_sqr_comba8+0x3d0c>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x38(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    4e7b <bn_sqr_comba8+0x3d7b>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
movabs $0xffffffff,%rcx
and    %rcx,%rax
cmp    $0x0,%rax
jne    4e7b <bn_sqr_comba8+0x3d7b>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x40(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    4eae <bn_sqr_comba8+0x3dae>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x10(%rbp),%rax
mov    0x28(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x28(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
mov    0x20(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    0x20(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%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
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x368(%rbp)
mov    -0x368(%rbp),%rax
cmp    -0x370(%rbp),%rax
jae    4faa <bn_sqr_comba8+0x3eaa>
mov    -0x380(%rbp),%rax
add    $0x10000,%rax
mov    %rax,-0x380(%rbp)
mov    -0x368(%rbp),%rax
shr    $0x10,%rax
and    $0xffff,%rax
add    -0x380(%rbp),%rax
mov    %rax,-0x380(%rbp)
mov    -0x368(%rbp),%rax
and    $0xffff,%rax
shl    $0x10,%rax
mov    %rax,-0x370(%rbp)
mov    -0x378(%rbp),%rax
add    -0x370(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x378(%rbp)
mov    -0x378(%rbp),%rax
cmp    -0x370(%rbp),%rax
jae    5029 <bn_sqr_comba8+0x3f29>
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 $0x80000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     5063 <bn_sqr_comba8+0x3f63>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
movabs $0x80000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     50a0 <bn_sqr_comba8+0x3fa0>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x38(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    510f <bn_sqr_comba8+0x400f>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
movabs $0xffffffff,%rcx
and    %rcx,%rax
cmp    $0x0,%rax
jne    510f <bn_sqr_comba8+0x400f>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x40(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    5142 <bn_sqr_comba8+0x4042>
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)
mov    -0x390(%rbp),%rax
and    $0xffff,%rax
mov    %rax,-0x388(%rbp)
mov    -0x390(%rbp),%rax
shr    $0x10,%rax
and    $0xffff,%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)
movabs $0xffff8000,%rax
and    -0x398(%rbp),%rax
shr    $0xf,%rax
add    -0x390(%rbp),%rax
mov    %rax,-0x390(%rbp)
mov    -0x398(%rbp),%rax
and    $0xffff,%rax
shl    $0x11,%rax
mov    %rax,-0x398(%rbp)
mov    -0x388(%rbp),%rax
add    -0x398(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x388(%rbp)
mov    -0x388(%rbp),%rax
cmp    -0x398(%rbp),%rax
jae    5256 <bn_sqr_comba8+0x4156>
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
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    529f <bn_sqr_comba8+0x419f>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x48(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    52d2 <bn_sqr_comba8+0x41d2>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x10(%rbp),%rax
mov    0x30(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x30(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
mov    0x20(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    0x20(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%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
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x3a0(%rbp)
mov    -0x3a0(%rbp),%rax
cmp    -0x3a8(%rbp),%rax
jae    53ce <bn_sqr_comba8+0x42ce>
mov    -0x3b8(%rbp),%rax
add    $0x10000,%rax
mov    %rax,-0x3b8(%rbp)
mov    -0x3a0(%rbp),%rax
shr    $0x10,%rax
and    $0xffff,%rax
add    -0x3b8(%rbp),%rax
mov    %rax,-0x3b8(%rbp)
mov    -0x3a0(%rbp),%rax
and    $0xffff,%rax
shl    $0x10,%rax
mov    %rax,-0x3a8(%rbp)
mov    -0x3b0(%rbp),%rax
add    -0x3a8(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x3b0(%rbp)
mov    -0x3b0(%rbp),%rax
cmp    -0x3a8(%rbp),%rax
jae    544d <bn_sqr_comba8+0x434d>
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 $0x80000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     5487 <bn_sqr_comba8+0x4387>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
movabs $0x80000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     54c4 <bn_sqr_comba8+0x43c4>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x40(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    5533 <bn_sqr_comba8+0x4433>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
movabs $0xffffffff,%rcx
and    %rcx,%rax
cmp    $0x0,%rax
jne    5533 <bn_sqr_comba8+0x4433>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x48(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    5566 <bn_sqr_comba8+0x4466>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x10(%rbp),%rax
mov    0x38(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x38(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
mov    0x18(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    0x18(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%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
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x3c0(%rbp)
mov    -0x3c0(%rbp),%rax
cmp    -0x3c8(%rbp),%rax
jae    5662 <bn_sqr_comba8+0x4562>
mov    -0x3d8(%rbp),%rax
add    $0x10000,%rax
mov    %rax,-0x3d8(%rbp)
mov    -0x3c0(%rbp),%rax
shr    $0x10,%rax
and    $0xffff,%rax
add    -0x3d8(%rbp),%rax
mov    %rax,-0x3d8(%rbp)
mov    -0x3c0(%rbp),%rax
and    $0xffff,%rax
shl    $0x10,%rax
mov    %rax,-0x3c8(%rbp)
mov    -0x3d0(%rbp),%rax
add    -0x3c8(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x3d0(%rbp)
mov    -0x3d0(%rbp),%rax
cmp    -0x3c8(%rbp),%rax
jae    56e1 <bn_sqr_comba8+0x45e1>
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 $0x80000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     571b <bn_sqr_comba8+0x461b>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
movabs $0x80000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     5758 <bn_sqr_comba8+0x4658>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x40(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    57c7 <bn_sqr_comba8+0x46c7>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
movabs $0xffffffff,%rcx
and    %rcx,%rax
cmp    $0x0,%rax
jne    57c7 <bn_sqr_comba8+0x46c7>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x48(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    57fa <bn_sqr_comba8+0x46fa>
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),%rax
mov    0x38(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x38(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
mov    0x20(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    0x20(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%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
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x3e0(%rbp)
mov    -0x3e0(%rbp),%rax
cmp    -0x3e8(%rbp),%rax
jae    590a <bn_sqr_comba8+0x480a>
mov    -0x3f8(%rbp),%rax
add    $0x10000,%rax
mov    %rax,-0x3f8(%rbp)
mov    -0x3e0(%rbp),%rax
shr    $0x10,%rax
and    $0xffff,%rax
add    -0x3f8(%rbp),%rax
mov    %rax,-0x3f8(%rbp)
mov    -0x3e0(%rbp),%rax
and    $0xffff,%rax
shl    $0x10,%rax
mov    %rax,-0x3e8(%rbp)
mov    -0x3f0(%rbp),%rax
add    -0x3e8(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x3f0(%rbp)
mov    -0x3f0(%rbp),%rax
cmp    -0x3e8(%rbp),%rax
jae    5989 <bn_sqr_comba8+0x4889>
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 $0x80000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     59c3 <bn_sqr_comba8+0x48c3>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
movabs $0x80000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     5a00 <bn_sqr_comba8+0x4900>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x48(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    5a6f <bn_sqr_comba8+0x496f>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
movabs $0xffffffff,%rcx
and    %rcx,%rax
cmp    $0x0,%rax
jne    5a6f <bn_sqr_comba8+0x496f>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x38(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    5aa2 <bn_sqr_comba8+0x49a2>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x10(%rbp),%rax
mov    0x30(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x30(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
mov    0x28(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    0x28(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%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
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x400(%rbp)
mov    -0x400(%rbp),%rax
cmp    -0x408(%rbp),%rax
jae    5b9e <bn_sqr_comba8+0x4a9e>
mov    -0x418(%rbp),%rax
add    $0x10000,%rax
mov    %rax,-0x418(%rbp)
mov    -0x400(%rbp),%rax
shr    $0x10,%rax
and    $0xffff,%rax
add    -0x418(%rbp),%rax
mov    %rax,-0x418(%rbp)
mov    -0x400(%rbp),%rax
and    $0xffff,%rax
shl    $0x10,%rax
mov    %rax,-0x408(%rbp)
mov    -0x410(%rbp),%rax
add    -0x408(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x410(%rbp)
mov    -0x410(%rbp),%rax
cmp    -0x408(%rbp),%rax
jae    5c1d <bn_sqr_comba8+0x4b1d>
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 $0x80000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     5c57 <bn_sqr_comba8+0x4b57>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
movabs $0x80000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     5c94 <bn_sqr_comba8+0x4b94>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x48(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    5d03 <bn_sqr_comba8+0x4c03>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
movabs $0xffffffff,%rcx
and    %rcx,%rax
cmp    $0x0,%rax
jne    5d03 <bn_sqr_comba8+0x4c03>
mov    -0x40(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x40(%rbp)
mov    -0x38(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    5d36 <bn_sqr_comba8+0x4c36>
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)
mov    -0x428(%rbp),%rax
and    $0xffff,%rax
mov    %rax,-0x420(%rbp)
mov    -0x428(%rbp),%rax
shr    $0x10,%rax
and    $0xffff,%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)
movabs $0xffff8000,%rax
and    -0x430(%rbp),%rax
shr    $0xf,%rax
add    -0x428(%rbp),%rax
mov    %rax,-0x428(%rbp)
mov    -0x430(%rbp),%rax
and    $0xffff,%rax
shl    $0x11,%rax
mov    %rax,-0x430(%rbp)
mov    -0x420(%rbp),%rax
add    -0x430(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x420(%rbp)
mov    -0x420(%rbp),%rax
cmp    -0x430(%rbp),%rax
jae    5e4a <bn_sqr_comba8+0x4d4a>
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
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    5e93 <bn_sqr_comba8+0x4d93>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x40(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    5ec6 <bn_sqr_comba8+0x4dc6>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x10(%rbp),%rax
mov    0x38(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x38(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
mov    0x28(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    0x28(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%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
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x438(%rbp)
mov    -0x438(%rbp),%rax
cmp    -0x440(%rbp),%rax
jae    5fc2 <bn_sqr_comba8+0x4ec2>
mov    -0x450(%rbp),%rax
add    $0x10000,%rax
mov    %rax,-0x450(%rbp)
mov    -0x438(%rbp),%rax
shr    $0x10,%rax
and    $0xffff,%rax
add    -0x450(%rbp),%rax
mov    %rax,-0x450(%rbp)
mov    -0x438(%rbp),%rax
and    $0xffff,%rax
shl    $0x10,%rax
mov    %rax,-0x440(%rbp)
mov    -0x448(%rbp),%rax
add    -0x440(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x448(%rbp)
mov    -0x448(%rbp),%rax
cmp    -0x440(%rbp),%rax
jae    6041 <bn_sqr_comba8+0x4f41>
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 $0x80000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     607b <bn_sqr_comba8+0x4f7b>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
movabs $0x80000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     60b8 <bn_sqr_comba8+0x4fb8>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x38(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    6127 <bn_sqr_comba8+0x5027>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
movabs $0xffffffff,%rcx
and    %rcx,%rax
cmp    $0x0,%rax
jne    6127 <bn_sqr_comba8+0x5027>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
mov    -0x40(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    615a <bn_sqr_comba8+0x505a>
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),%rax
mov    0x38(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    0x38(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rax
mov    0x30(%rax),%rax
and    $0xffff,%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    0x30(%rax),%rax
shr    $0x10,%rax
and    $0xffff,%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
ff
mov    %rax,-0x470(%rbp)
mov    -0x458(%rbp),%rax
add    -0x460(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x458(%rbp)
mov    -0x458(%rbp),%rax
cmp    -0x460(%rbp),%rax
jae    626a <bn_sqr_comba8+0x516a>
mov    -0x470(%rbp),%rax
add    $0x10000,%rax
mov    %rax,-0x470(%rbp)
mov    -0x458(%rbp),%rax
shr    $0x10,%rax
and    $0xffff,%rax
add    -0x470(%rbp),%rax
mov    %rax,-0x470(%rbp)
mov    -0x458(%rbp),%rax
and    $0xffff,%rax
shl    $0x10,%rax
mov    %rax,-0x460(%rbp)
mov    -0x468(%rbp),%rax
add    -0x460(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x468(%rbp)
mov    -0x468(%rbp),%rax
cmp    -0x460(%rbp),%rax
jae    62e9 <bn_sqr_comba8+0x51e9>
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 $0x80000000,%rax
and    -0x30(%rbp),%rax
cmp    $0x0,%rax
je     6323 <bn_sqr_comba8+0x5223>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x30(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x30(%rbp)
movabs $0x80000000,%rax
and    -0x28(%rbp),%rax
cmp    $0x0,%rax
je     6360 <bn_sqr_comba8+0x5260>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x28(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x40(%rbp),%rax
add    -0x28(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    63cf <bn_sqr_comba8+0x52cf>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
movabs $0xffffffff,%rcx
and    %rcx,%rax
cmp    $0x0,%rax
jne    63cf <bn_sqr_comba8+0x52cf>
mov    -0x38(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x38(%rbp)
mov    -0x48(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    6402 <bn_sqr_comba8+0x5302>
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)
mov    -0x480(%rbp),%rax
and    $0xffff,%rax
mov    %rax,-0x478(%rbp)
mov    -0x480(%rbp),%rax
shr    $0x10,%rax
and    $0xffff,%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)
movabs $0xffff8000,%rax
and    -0x488(%rbp),%rax
shr    $0xf,%rax
add    -0x480(%rbp),%rax
mov    %rax,-0x480(%rbp)
mov    -0x488(%rbp),%rax
and    $0xffff,%rax
shl    $0x11,%rax
mov    %rax,-0x488(%rbp)
mov    -0x478(%rbp),%rax
add    -0x488(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x478(%rbp)
mov    -0x478(%rbp),%rax
cmp    -0x488(%rbp),%rax
jae    6516 <bn_sqr_comba8+0x5416>
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
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x48(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    655f <bn_sqr_comba8+0x545f>
mov    -0x30(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x30(%rbp)
mov    -0x38(%rbp),%rax
add    -0x30(%rbp),%rax
movabs $0xffffffff,%rcx
and    %rcx,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x30(%rbp),%rax
jae    6592 <bn_sqr_comba8+0x5492>
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   %rbx
movabs $0x1fffe0000,%r8
mov    (%rsi),%rcx
movzwl %cx,%edx
shr    $0x10,%ecx
mov    %rcx,%rax
imul   %rdx,%rax
imul   %edx,%edx
imul   %ecx,%ecx
mov    %rax,%r11
shr    $0xf,%r11
add    %ecx,%r11d
shl    $0x11,%rax
mov    %rax,%rcx
and    %r8,%rcx
add    %edx,%eax
cmp    %rcx,%rax
adc    $0x0,%r11d
mov    %rax,(%rdi)
mov    (%rsi),%rdx
mov    0x8(%rsi),%rax
movzwl %ax,%r9d
shr    $0x10,%eax
movzwl %dx,%ecx
shr    $0x10,%edx
mov    %rdx,%rbx
imul   %r9,%rbx
imul   %rcx,%r9
imul   %eax,%edx
imul   %rcx,%rax
add    %rax,%rbx
mov    %ebx,%r10d
lea    0x10000(%rdx),%ecx
mov    %ebx,%ebp
shr    $0x10,%ebp
cmp    %rax,%r10
cmovae %edx,%ecx
add    %ebp,%ecx
shl    $0x10,%rbx
mov    %ebx,%eax
add    %r9,%rbx
mov    %ebx,%ebp
cmp    %rax,%rbp
adc    $0x0,%ecx
mov    %ecx,%edx
shr    $0x1f,%edx
shld   $0x1,%ebx,%ecx
add    %rbp,%rbp
mov    %ebp,%eax
add    %ebp,%r11d
cmp    %rax,%r11
jae    11b7 <bn_sqr_comba8+0xb7>
add    $0x1,%rcx
cmp    $0x1,%ecx
adc    $0x0,%rdx
mov    %rcx,%r10
shr    $0x20,%r10
add    %rdx,%r10
mov    %r11,0x8(%rdi)
mov    (%rsi),%r14
mov    0x8(%rsi),%rax
movzwl %ax,%ebx
shr    $0x10,%eax
mov    %rax,%rbp
imul   %rbx,%rbp
imul   %rbx,%rbx
imul   %rax,%rax
mov    %rbp,%rdx
shr    $0xf,%rdx
add    %rax,%rdx
shl    $0x11,%rbp
mov    %rbp,%rax
and    %r8,%rax
add    %rbx,%rbp
mov    %ebp,%ebx
cmp    %rax,%rbx
adc    $0x0,%rdx
add    %rcx,%rbp
mov    %ebp,%eax
cmp    %rbx,%rax
adc    $0x0,%rdx
add    %rdx,%r10
mov    %r10d,%eax
xor    %r11d,%r11d
cmp    %rdx,%rax
setb   %r11b
mov    0x10(%rsi),%rcx
movzwl %cx,%r9d
shr    $0x10,%ecx
movzwl %r14w,%edx
shr    $0x10,%r14d
mov    %r14,%rax
imul   %r9,%rax
imul   %rdx,%r9
imul   %rcx,%rdx
imul   %rcx,%r14
add    %rdx,%rax
mov    %eax,%ecx
lea    0x10000(%r14),%rbx
cmp    %rdx,%rcx
cmovae %r14,%rbx
mov    %eax,%ecx
shr    $0x10,%ecx
add    %rbx,%rcx
shl    $0x10,%rax
mov    %eax,%edx
add    %r9,%rax
mov    %eax,%ebx
cmp    %rdx,%rbx
adc    $0x0,%rcx
lea    0x1(%r11),%r9
test   $0x80000000,%ecx
cmove  %r11,%r9
shld   $0x1,%eax,%ecx
add    %rbx,%rbx
mov    %ebx,%eax
add    %ebp,%ebx
cmp    %rax,%rbx
jae    1299 <bn_sqr_comba8+0x199>
add    $0x1,%rcx
cmp    $0x1,%ecx
adc    $0x0,%r9
add    %rcx,%r10
mov    %r10d,%eax
cmp    %rcx,%rax
adc    $0x0,%r9
mov    %rbx,0x10(%rdi)
mov    (%rsi),%rbx
mov    0x18(%rsi),%rdx
movzwl %dx,%r11d
shr    $0x10,%edx
movzwl %bx,%ebp
shr    $0x10,%ebx
mov    %rbx,%rcx
imul   %r11,%rcx
imul   %rbp,%r11
imul   %edx,%ebx
mov    %rdx,%rax
imul   %rbp,%rax
add    %rax,%rcx
mov    %ecx,%r14d
lea    0x10000(%rbx),%edx
mov    %ecx,%ebp
shr    $0x10,%ebp
cmp    %rax,%r14
cmovae %ebx,%edx
add    %ebp,%edx
shl    $0x10,%rcx
mov    %ecx,%eax
add    %r11,%rcx
mov    %ecx,%ebp
cmp    %rax,%rbp
adc    $0x0,%edx
mov    %edx,%r14d
shr    $0x1f,%r14d
shld   $0x1,%ecx,%edx
mov    %rbp,%rax
add    %rbp,%rax
mov    %eax,%eax
lea    (%r10,%rbp,2),%r10
mov    %r10d,%ecx
cmp    %rax,%rcx
jae    1327 <bn_sqr_comba8+0x227>
add    $0x1,%rdx
cmp    $0x1,%edx
adc    $0x0,%r14
add    %rdx,%r9
mov    %r9d,%eax
cmp    %rdx,%rax
adc    $0x0,%r14
mov    0x8(%rsi),%rax
mov    0x10(%rsi),%rdx
movzwl %dx,%r11d
shr    $0x10,%edx
movzwl %ax,%ebp
shr    $0x10,%eax
mov    %rax,%rcx
imul   %r11,%rcx
imul   %rbp,%r11
imul   %edx,%eax
mov    %rdx,%rbx
imul   %rbp,%rbx
add    %rbx,%rcx
mov    %ecx,%r15d
lea    0x10000(%rax),%edx
mov    %ecx,%ebp
shr    $0x10,%ebp
cmp    %rbx,%r15
cmovae %eax,%edx
add    %ebp,%edx
shl    $0x10,%rcx
mov    %ecx,%eax
add    %r11,%rcx
mov    %ecx,%ebx
cmp    %rax,%rbx
adc    $0x0,%edx
mov    %edx,%r11d
shr    $0x1f,%r11d
add    %r14,%r11
shld   $0x1,%ecx,%edx
add    %rbx,%rbx
mov    %ebx,%eax
add    %ebx,%r10d
cmp    %rax,%r10
jae    13ae <bn_sqr_comba8+0x2ae>
add    $0x1,%rdx
cmp    $0x1,%edx
adc    $0x0,%r11
add    %rdx,%r9
mov    %r9d,%eax
cmp    %rdx,%rax
adc    $0x0,%r11
mov    %r10,0x18(%rdi)
mov    0x8(%rsi),%rbx
mov    0x10(%rsi),%rax
movzwl %ax,%edx
shr    $0x10,%eax
mov    %rax,%rbp
imul   %rdx,%rbp
imul   %rdx,%rdx
imul   %rax,%rax
mov    %rbp,%rcx
shr    $0xf,%rcx
add    %rax,%rcx
shl    $0x11,%rbp
mov    %rbp,%rax
and    %r8,%rax
add    %rdx,%rbp
mov    %ebp,%edx
cmp    %rax,%rdx
adc    $0x0,%rcx
add    %r9,%rbp
mov    %ebp,%eax
cmp    %rdx,%rax
adc    $0x0,%rcx
add    %rcx,%r11
mov    %r11d,%eax
xor    %r9d,%r9d
cmp    %rcx,%rax
setb   %r9b
mov    0x18(%rsi),%rcx
movzwl %cx,%r10d
shr    $0x10,%ecx
movzwl %bx,%edx
shr    $0x10,%ebx
mov    %rbx,%rax
imul   %r10,%rax
imul   %rdx,%r10
imul   %rcx,%rdx
imul   %rcx,%rbx
add    %rdx,%rax
mov    %eax,%r14d
lea    0x10000(%rbx),%rcx
cmp    %rdx,%r14
cmovae %rbx,%rcx
mov    %eax,%ebx
shr    $0x10,%ebx
add    %rcx,%rbx
shl    $0x10,%rax
mov    %eax,%ecx
add    %r10,%rax
mov    %eax,%edx
cmp    %rcx,%rdx
adc    $0x0,%rbx
lea    0x1(%r9),%r14
test   $0x80000000,%ebx
cmove  %r9,%r14
shld   $0x1,%eax,%ebx
lea    (%rdx,%rdx,1),%rax
mov    %eax,%eax
lea    0x0(,%rdx,2),%r9
add    %rbp,%r9
mov    %r9d,%ecx
cmp    %rax,%rcx
jae    14a0 <bn_sqr_comba8+0x3a0>
add    $0x1,%rbx
cmp    $0x1,%ebx
adc    $0x0,%r14
add    %rbx,%r11
mov    %r11d,%eax
cmp    %rbx,%rax
adc    $0x0,%r14
mov    (%rsi),%rdx
mov    0x20(%rsi),%rcx
movzwl %cx,%r10d
shr    $0x10,%ecx
movzwl %dx,%ebp
shr    $0x10,%edx
mov    %rdx,%rbx
imul   %r10,%rbx
imul   %rbp,%r10
imul   %ecx,%edx
mov    %rcx,%rax
imul   %rbp,%rax
add    %rax,%rbx
mov    %ebx,%r15d
lea    0x10000(%rdx),%ecx
mov    %ebx,%ebp
shr    $0x10,%ebp
cmp    %rax,%r15
cmovae %edx,%ecx
add    %ebp,%ecx
shl    $0x10,%rbx
mov    %ebx,%eax
add    %r10,%rbx
mov    %ebx,%edx
cmp    %rax,%rdx
adc    $0x0,%ecx
mov    %ecx,%r10d
shr    $0x1f,%r10d
add    %r14,%r10
shld   $0x1,%ebx,%ecx
add    %rdx,%rdx
mov    %edx,%eax
add    %edx,%r9d
cmp    %rax,%r9
jae    1526 <bn_sqr_comba8+0x426>
add    $0x1,%rcx
cmp    $0x1,%ecx
adc    $0x0,%r10
add    %rcx,%r11
mov    %r11d,%eax
cmp    %rcx,%rax
adc    $0x0,%r10
mov    %r9,0x20(%rdi)
mov    (%rsi),%rbx
mov    0x28(%rsi),%rax
movzwl %ax,%r9d
shr    $0x10,%eax
movzwl %bx,%ebp
shr    $0x10,%ebx
mov    %rbx,%rdx
imul   %r9,%rdx
imul   %rbp,%r9
imul   %eax,%ebx
mov    %rax,%rcx
imul   %rbp,%rcx
add    %rcx,%rdx
mov    %edx,%r14d
lea    0x10000(%rbx),%eax
mov    %edx,%ebp
shr    $0x10,%ebp
cmp    %rcx,%r14
cmovae %ebx,%eax
add    %ebp,%eax
shl    $0x10,%rdx
mov    %edx,%ecx
add    %r9,%rdx
mov    %edx,%ebp
cmp    %rcx,%rbp
adc    $0x0,%eax
mov    %eax,%r14d
shr    $0x1f,%r14d
shld   $0x1,%edx,%eax
mov    %rbp,%rcx
add    %rbp,%rcx
mov    %ecx,%ecx
lea    (%r11,%rbp,2),%r9
mov    %r9d,%edx
cmp    %rcx,%rdx
jae    15b4 <bn_sqr_comba8+0x4b4>
add    $0x1,%rax
cmp    $0x1,%eax
adc    $0x0,%r14
add    %rax,%r10
mov    %r10d,%ecx
cmp    %rax,%rcx
adc    $0x0,%r14
mov    0x8(%rsi),%rcx
mov    0x20(%rsi),%rax
movzwl %ax,%r11d
shr    $0x10,%eax
movzwl %cx,%ebp
shr    $0x10,%ecx
mov    %rcx,%rdx
imul   %r11,%rdx
imul   %rbp,%r11
imul   %eax,%ecx
mov    %rax,%rbx
imul   %rbp,%rbx
add    %rbx,%rdx
mov    %edx,%r15d
lea    0x10000(%rcx),%eax
mov    %edx,%ebp
shr    $0x10,%ebp
cmp    %rbx,%r15
cmovae %ecx,%eax
add    %ebp,%eax
shl    $0x10,%rdx
mov    %edx,%ecx
add    %r11,%rdx
mov    %edx,%ebp
cmp    %rcx,%rbp
adc    $0x0,%eax
mov    %eax,%r15d
shr    $0x1f,%r15d
add    %r14,%r15
shld   $0x1,%edx,%eax
mov    %rbp,%rcx
add    %rbp,%rcx
mov    %ecx,%ecx
lea    (%r9,%rbp,2),%r9
mov    %r9d,%edx
cmp    %rcx,%rdx
jae    1642 <bn_sqr_comba8+0x542>
add    $0x1,%rax
cmp    $0x1,%eax
adc    $0x0,%r15
add    %rax,%r10
mov    %r10d,%ecx
cmp    %rax,%rcx
adc    $0x0,%r15
mov    0x10(%rsi),%rbx
mov    0x18(%rsi),%rcx
movzwl %cx,%r11d
shr    $0x10,%ecx
movzwl %bx,%ebp
shr    $0x10,%ebx
mov    %rbx,%rdx
imul   %r11,%rdx
imul   %rbp,%r11
imul   %ecx,%ebx
mov    %rcx,%rax
imul   %rbp,%rax
add    %rax,%rdx
mov    %edx,%r14d
lea    0x10000(%rbx),%ecx
mov    %edx,%ebp
shr    $0x10,%ebp
cmp    %rax,%r14
cmovae %ebx,%ecx
add    %ebp,%ecx
shl    $0x10,%rdx
mov    %edx,%eax
add    %r11,%rdx
mov    %edx,%ebx
cmp    %rax,%rbx
adc    $0x0,%ecx
mov    %ecx,%r11d
shr    $0x1f,%r11d
add    %r15,%r11
shld   $0x1,%edx,%ecx
add    %rbx,%rbx
mov    %ebx,%eax
add    %ebx,%r9d
cmp    %rax,%r9
jae    16c9 <bn_sqr_comba8+0x5c9>
add    $0x1,%rcx
cmp    $0x1,%ecx
adc    $0x0,%r11
add    %rcx,%r10
mov    %r10d,%eax
cmp    %rcx,%rax
adc    $0x0,%r11
mov    %r9,0x28(%rdi)
mov    0x10(%rsi),%rbx
mov    0x18(%rsi),%rcx
movzwl %cx,%edx
shr    $0x10,%ecx
mov    %rcx,%rbp
imul   %rdx,%rbp
imul   %rdx,%rdx
imul   %rcx,%rcx
mov    %rbp,%rax
shr    $0xf,%rax
add    %rcx,%rax
shl    $0x11,%rbp
mov    %rbp,%rcx
and    %r8,%rcx
add    %rdx,%rbp
mov    %ebp,%edx
cmp    %rcx,%rdx
adc    $0x0,%rax
add    %r10,%rbp
mov    %ebp,%ecx
cmp    %rdx,%rcx
adc    $0x0,%rax
add    %rax,%r11
mov    %r11d,%ecx
xor    %r9d,%r9d
cmp    %rax,%rcx
setb   %r9b
mov    0x20(%rsi),%rax
movzwl %ax,%r10d
shr    $0x10,%eax
movzwl %bx,%edx
shr    $0x10,%ebx
mov    %rbx,%rcx
imul   %r10,%rcx
imul   %rdx,%r10
imul   %rax,%rdx
imul   %rax,%rbx
add    %rdx,%rcx
mov    %ecx,%r14d
lea    0x10000(%rbx),%rax
cmp    %rdx,%r14
cmovae %rbx,%rax
mov    %ecx,%ebx
shr    $0x10,%ebx
add    %rax,%rbx
shl    $0x10,%rcx
mov    %ecx,%eax
add    %r10,%rcx
mov    %ecx,%edx
cmp    %rax,%rdx
adc    $0x0,%rbx
lea    0x1(%r9),%r10
test   $0x80000000,%ebx
cmove  %r9,%r10
shld   $0x1,%ecx,%ebx
lea    (%rdx,%rdx,1),%rax
mov    %eax,%eax
lea    0x0(,%rdx,2),%r9
add    %rbp,%r9
mov    %r9d,%ecx
cmp    %rax,%rcx
jae    17bb <bn_sqr_comba8+0x6bb>
add    $0x1,%rbx
cmp    $0x1,%ebx
adc    $0x0,%r10
add    %rbx,%r11
mov    %r11d,%eax
cmp    %rbx,%rax
adc    $0x0,%r10
mov    0x8(%rsi),%rbx
mov    0x28(%rsi),%rdx
movzwl %dx,%r14d
shr    $0x10,%edx
movzwl %bx,%ebp
shr    $0x10,%ebx
mov    %rbx,%rcx
imul   %r14,%rcx
imul   %rbp,%r14
imul   %edx,%ebx
mov    %rdx,%rax
imul   %rbp,%rax
add    %rax,%rcx
mov    %ecx,%r15d
lea    0x10000(%rbx),%edx
mov    %ecx,%ebp
shr    $0x10,%ebp
cmp    %rax,%r15
cmovae %ebx,%edx
add    %ebp,%edx
shl    $0x10,%rcx
mov    %ecx,%eax
add    %r14,%rcx
mov    %ecx,%ebx
cmp    %rax,%rbx
adc    $0x0,%edx
mov    %edx,%r14d
shr    $0x1f,%r14d
add    %r10,%r14
shld   $0x1,%ecx,%edx
lea    (%rbx,%rbx,1),%rax
mov    %eax,%eax
lea    (%r9,%rbx,2),%r9
mov    %r9d,%ecx
cmp    %rax,%rcx
jae    1847 <bn_sqr_comba8+0x747>
add    $0x1,%rdx
cmp    $0x1,%edx
adc    $0x0,%r14
add    %rdx,%r11
mov    %r11d,%eax
cmp    %rdx,%rax
adc    $0x0,%r14
mov    (%rsi),%rax
mov    0x30(%rsi),%rcx
movzwl %cx,%r10d
shr    $0x10,%ecx
movzwl %ax,%ebp
shr    $0x10,%eax
mov    %rax,%rbx
imul   %r10,%rbx
imul   %rbp,%r10
imul   %ecx,%eax
mov    %rcx,%rdx
imul   %rbp,%rdx
add    %rdx,%rbx
mov    %ebx,%r15d
lea    0x10000(%rax),%ecx
mov    %ebx,%ebp
shr    $0x10,%ebp
cmp    %rdx,%r15
cmovae %eax,%ecx
add    %ebp,%ecx
shl    $0x10,%rbx
mov    %ebx,%eax
add    %r10,%rbx
mov    %ebx,%edx
cmp    %rax,%rdx
adc    $0x0,%ecx
mov    %ecx,%r10d
shr    $0x1f,%r10d
add    %r14,%r10
shld   $0x1,%ebx,%ecx
add    %rdx,%rdx
mov    %edx,%eax
add    %edx,%r9d
cmp    %rax,%r9
jae    18cd <bn_sqr_comba8+0x7cd>
add    $0x1,%rcx
cmp    $0x1,%ecx
adc    $0x0,%r10
add    %rcx,%r11
mov    %r11d,%eax
cmp    %rcx,%rax
adc    $0x0,%r10
mov    %r9,0x30(%rdi)
mov    (%rsi),%rbx
mov    0x38(%rsi),%rax
movzwl %ax,%r9d
shr    $0x10,%eax
movzwl %bx,%ebp
shr    $0x10,%ebx
mov    %rbx,%rdx
imul   %r9,%rdx
imul   %rbp,%r9
imul   %eax,%ebx
mov    %rax,%rcx
imul   %rbp,%rcx
add    %rcx,%rdx
mov    %edx,%r14d
lea    0x10000(%rbx),%eax
mov    %edx,%ebp
shr    $0x10,%ebp
cmp    %rcx,%r14
cmovae %ebx,%eax
add    %ebp,%eax
shl    $0x10,%rdx
mov    %edx,%ecx
add    %r9,%rdx
mov    %edx,%ebp
cmp    %rcx,%rbp
adc    $0x0,%eax
mov    %eax,%r14d
shr    $0x1f,%r14d
shld   $0x1,%edx,%eax
mov    %rbp,%rcx
add    %rbp,%rcx
mov    %ecx,%ecx
lea    (%r11,%rbp,2),%r9
mov    %r9d,%edx
cmp    %rcx,%rdx
jae    195b <bn_sqr_comba8+0x85b>
add    $0x1,%rax
cmp    $0x1,%eax
adc    $0x0,%r14
add    %rax,%r10
mov    %r10d,%ecx
cmp    %rax,%rcx
adc    $0x0,%r14
mov    0x8(%rsi),%rcx
mov    0x30(%rsi),%rax
movzwl %ax,%r11d
shr    $0x10,%eax
movzwl %cx,%ebp
shr    $0x10,%ecx
mov    %rcx,%rdx
imul   %r11,%rdx
imul   %rbp,%r11
imul   %eax,%ecx
mov    %rax,%rbx
imul   %rbp,%rbx
add    %rbx,%rdx
mov    %edx,%r15d
lea    0x10000(%rcx),%eax
mov    %edx,%ebp
shr    $0x10,%ebp
cmp    %rbx,%r15
cmovae %ecx,%eax
add    %ebp,%eax
shl    $0x10,%rdx
mov    %edx,%ecx
add    %r11,%rdx
mov    %edx,%ebx
cmp    %rcx,%rbx
adc    $0x0,%eax
mov    %eax,%r11d
shr    $0x1f,%r11d
add    %r14,%r11
shld   $0x1,%edx,%eax
lea    (%rbx,%rbx,1),%rcx
mov    %ecx,%ecx
lea    (%r9,%rbx,2),%r9
mov    %r9d,%edx
cmp    %rcx,%rdx
jae    19e7 <bn_sqr_comba8+0x8e7>
add    $0x1,%rax
cmp    $0x1,%eax
adc    $0x0,%r11
add    %rax,%r10
mov    %r10d,%ecx
cmp    %rax,%rcx
adc    $0x0,%r11
mov    0x10(%rsi),%rbx
mov    0x28(%rsi),%rcx
movzwl %cx,%r14d
shr    $0x10,%ecx
movzwl %bx,%ebp
shr    $0x10,%ebx
mov    %rbx,%rdx
imul   %r14,%rdx
imul   %rbp,%r14
imul   %ecx,%ebx
mov    %rcx,%rax
imul   %rbp,%rax
add    %rax,%rdx
mov    %edx,%r15d
lea    0x10000(%rbx),%ecx
mov    %edx,%ebp
shr    $0x10,%ebp
cmp    %rax,%r15
cmovae %ebx,%ecx
add    %ebp,%ecx
shl    $0x10,%rdx
mov    %edx,%eax
add    %r14,%rdx
mov    %edx,%ebx
cmp    %rax,%rbx
adc    $0x0,%ecx
mov    %ecx,%r14d
shr    $0x1f,%r14d
add    %r11,%r14
shld   $0x1,%edx,%ecx
lea    (%rbx,%rbx,1),%rax
mov    %eax,%eax
lea    (%r9,%rbx,2),%r9
mov    %r9d,%edx
cmp    %rax,%rdx
jae    1a73 <bn_sqr_comba8+0x973>
add    $0x1,%rcx
cmp    $0x1,%ecx
adc    $0x0,%r14
add    %rcx,%r10
mov    %r10d,%eax
cmp    %rcx,%rax
adc    $0x0,%r14
mov    0x18(%rsi),%rax
mov    0x20(%rsi),%rdx
movzwl %dx,%r11d
shr    $0x10,%edx
movzwl %ax,%ebp
shr    $0x10,%eax
mov    %rax,%rbx
imul   %r11,%rbx
imul   %rbp,%r11
imul   %edx,%eax
mov    %rdx,%rcx
imul   %rbp,%rcx
add    %rcx,%rbx
mov    %ebx,%r15d
lea    0x10000(%rax),%edx
mov    %ebx,%ebp
shr    $0x10,%ebp
cmp    %rcx,%r15
cmovae %eax,%edx
add    %ebp,%edx
shl    $0x10,%rbx
mov    %ebx,%eax
add    %r11,%rbx
mov    %ebx,%ecx
cmp    %rax,%rcx
adc    $0x0,%edx
mov    %edx,%r11d
shr    $0x1f,%r11d
add    %r14,%r11
shld   $0x1,%ebx,%edx
add    %rcx,%rcx
mov    %ecx,%eax
add    %ecx,%r9d
cmp    %rax,%r9
jae    1afa <bn_sqr_comba8+0x9fa>
add    $0x1,%rdx
cmp    $0x1,%edx
adc    $0x0,%r11
add    %rdx,%r10
mov    %r10d,%eax
cmp    %rdx,%rax
adc    $0x0,%r11
mov    %r9,0x38(%rdi)
mov    0x18(%rsi),%rbx
mov    0x20(%rsi),%rcx
movzwl %cx,%edx
shr    $0x10,%ecx
mov    %rcx,%rbp
imul   %rdx,%rbp
imul   %rdx,%rdx
imul   %rcx,%rcx
mov    %rbp,%rax
shr    $0xf,%rax
add    %rcx,%rax
shl    $0x11,%rbp
mov    %rbp,%rcx
and    %r8,%rcx
add    %rdx,%rbp
mov    %ebp,%edx
cmp    %rcx,%rdx
adc    $0x0,%rax
add    %r10,%rbp
mov    %ebp,%ecx
cmp    %rdx,%rcx
adc    $0x0,%rax
add    %rax,%r11
mov    %r11d,%ecx
xor    %r9d,%r9d
cmp    %rax,%rcx
setb   %r9b
mov    0x28(%rsi),%rax
movzwl %ax,%r10d
shr    $0x10,%eax
movzwl %bx,%edx
shr    $0x10,%ebx
mov    %rbx,%rcx
imul   %r10,%rcx
imul   %rdx,%r10
imul   %rax,%rdx
imul   %rax,%rbx
add    %rdx,%rcx
mov    %ecx,%r14d
lea    0x10000(%rbx),%rax
cmp    %rdx,%r14
cmovae %rbx,%rax
mov    %ecx,%ebx
shr    $0x10,%ebx
add    %rax,%rbx
shl    $0x10,%rcx
mov    %ecx,%eax
add    %r10,%rcx
mov    %ecx,%edx
cmp    %rax,%rdx
adc    $0x0,%rbx
lea    0x1(%r9),%r10
test   $0x80000000,%ebx
cmove  %r9,%r10
shld   $0x1,%ecx,%ebx
lea    (%rdx,%rdx,1),%rax
mov    %eax,%eax
lea    0x0(,%rdx,2),%r9
add    %rbp,%r9
mov    %r9d,%ecx
cmp    %rax,%rcx
jae    1bec <bn_sqr_comba8+0xaec>
add    $0x1,%rbx
cmp    $0x1,%ebx
adc    $0x0,%r10
add    %rbx,%r11
mov    %r11d,%eax
cmp    %rbx,%rax
adc    $0x0,%r10
mov    0x10(%rsi),%rdx
mov    0x30(%rsi),%rax
movzwl %ax,%r14d
shr    $0x10,%eax
movzwl %dx,%ebp
shr    $0x10,%edx
mov    %rdx,%rcx
imul   %r14,%rcx
imul   %rbp,%r14
imul   %eax,%edx
mov    %rax,%rbx
imul   %rbp,%rbx
add    %rbx,%rcx
mov    %ecx,%r15d
lea    0x10000(%rdx),%eax
mov    %ecx,%ebp
shr    $0x10,%ebp
cmp    %rbx,%r15
cmovae %edx,%eax
add    %ebp,%eax
shl    $0x10,%rcx
mov    %ecx,%edx
add    %r14,%rcx
mov    %ecx,%ebx
cmp    %rdx,%rbx
adc    $0x0,%eax
mov    %eax,%r14d
shr    $0x1f,%r14d
add    %r10,%r14
shld   $0x1,%ecx,%eax
lea    (%rbx,%rbx,1),%rcx
mov    %ecx,%ecx
lea    (%r9,%rbx,2),%r9
mov    %r9d,%edx
cmp    %rcx,%rdx
jae    1c78 <bn_sqr_comba8+0xb78>
add    $0x1,%rax
cmp    $0x1,%eax
adc    $0x0,%r14
add    %rax,%r11
mov    %r11d,%ecx
cmp    %rax,%rcx
adc    $0x0,%r14
mov    0x8(%rsi),%rbx
mov    0x38(%rsi),%rcx
movzwl %cx,%r10d
shr    $0x10,%ecx
movzwl %bx,%ebp
shr    $0x10,%ebx
mov    %rbx,%rdx
imul   %r10,%rdx
imul   %rbp,%r10
imul   %ecx,%ebx
mov    %rcx,%rax
imul   %rbp,%rax
add    %rax,%rdx
mov    %edx,%r15d
lea    0x10000(%rbx),%ecx
mov    %edx,%ebp
shr    $0x10,%ebp
cmp    %rax,%r15
cmovae %ebx,%ecx
add    %ebp,%ecx
shl    $0x10,%rdx
mov    %edx,%eax
add    %r10,%rdx
mov    %edx,%ebx
cmp    %rax,%rbx
adc    $0x0,%ecx
mov    %ecx,%r10d
shr    $0x1f,%r10d
add    %r14,%r10
shld   $0x1,%edx,%ecx
add    %rbx,%rbx
mov    %ebx,%eax
add    %ebx,%r9d
cmp    %rax,%r9
jae    1cff <bn_sqr_comba8+0xbff>
add    $0x1,%rcx
cmp    $0x1,%ecx
adc    $0x0,%r10
add    %rcx,%r11
mov    %r11d,%eax
cmp    %rcx,%rax
adc    $0x0,%r10
mov    %r9,0x40(%rdi)
mov    0x10(%rsi),%rdx
mov    0x38(%rsi),%rax
movzwl %ax,%r9d
shr    $0x10,%eax
movzwl %dx,%ebp
shr    $0x10,%edx
mov    %rdx,%rbx
imul   %r9,%rbx
imul   %rbp,%r9
imul   %eax,%edx
mov    %rax,%rcx
imul   %rbp,%rcx
add    %rcx,%rbx
mov    %ebx,%r14d
lea    0x10000(%rdx),%eax
mov    %ebx,%ebp
shr    $0x10,%ebp
cmp    %rcx,%r14
cmovae %edx,%eax
add    %ebp,%eax
shl    $0x10,%rbx
mov    %ebx,%ecx
add    %r9,%rbx
mov    %ebx,%edx
cmp    %rcx,%rdx
adc    $0x0,%eax
mov    %eax,%r14d
shr    $0x1f,%r14d
shld   $0x1,%ebx,%eax
lea    (%rdx,%rdx,1),%rcx
mov    %ecx,%ecx
lea    (%r11,%rdx,2),%r9
mov    %r9d,%edx
cmp    %rcx,%rdx
jae    1d8c <bn_sqr_comba8+0xc8c>
add    $0x1,%rax
cmp    $0x1,%eax
adc    $0x0,%r14
add    %rax,%r10
mov    %r10d,%ecx
cmp    %rax,%rcx
adc    $0x0,%r14
mov    0x18(%rsi),%rdx
mov    0x30(%rsi),%rcx
movzwl %cx,%r11d
shr    $0x10,%ecx
movzwl %dx,%ebp
shr    $0x10,%edx
mov    %rdx,%rbx
imul   %r11,%rbx
imul   %rbp,%r11
imul   %ecx,%edx
mov    %rcx,%rax
imul   %rbp,%rax
add    %rax,%rbx
mov    %ebx,%r15d
lea    0x10000(%rdx),%ecx
mov    %ebx,%ebp
shr    $0x10,%ebp
cmp    %rax,%r15
cmovae %edx,%ecx
add    %ebp,%ecx
shl    $0x10,%rbx
mov    %ebx,%eax
add    %r11,%rbx
mov    %ebx,%edx
cmp    %rax,%rdx
adc    $0x0,%ecx
mov    %ecx,%r15d
shr    $0x1f,%r15d
add    %r14,%r15
shld   $0x1,%ebx,%ecx
lea    (%rdx,%rdx,1),%rax
mov    %eax,%eax
lea    (%r9,%rdx,2),%r9
mov    %r9d,%edx
cmp    %rax,%rdx
jae    1e18 <bn_sqr_comba8+0xd18>
add    $0x1,%rcx
cmp    $0x1,%ecx
adc    $0x0,%r15
add    %rcx,%r10
mov    %r10d,%eax
cmp    %rcx,%rax
adc    $0x0,%r15
mov    0x20(%rsi),%rax
mov    0x28(%rsi),%rcx
movzwl %cx,%r11d
shr    $0x10,%ecx
movzwl %ax,%ebp
shr    $0x10,%eax
mov    %rax,%rbx
imul   %r11,%rbx
imul   %rbp,%r11
imul   %ecx,%eax
mov    %rcx,%rdx
imul   %rbp,%rdx
add    %rdx,%rbx
mov    %ebx,%r14d
lea    0x10000(%rax),%ecx
mov    %ebx,%ebp
shr    $0x10,%ebp
cmp    %rdx,%r14
cmovae %eax,%ecx
add    %ebp,%ecx
shl    $0x10,%rbx
mov    %ebx,%eax
add    %r11,%rbx
mov    %ebx,%edx
cmp    %rax,%rdx
adc    $0x0,%ecx
mov    %ecx,%r11d
shr    $0x1f,%r11d
add    %r15,%r11
shld   $0x1,%ebx,%ecx
add    %rdx,%rdx
mov    %edx,%eax
add    %edx,%r9d
cmp    %rax,%r9
jae    1e9f <bn_sqr_comba8+0xd9f>
add    $0x1,%rcx
cmp    $0x1,%ecx
adc    $0x0,%r11
add    %rcx,%r10
mov    %r10d,%eax
cmp    %rcx,%rax
adc    $0x0,%r11
mov    %r9,0x48(%rdi)
mov    0x20(%rsi),%rbx
mov    0x28(%rsi),%rcx
movzwl %cx,%edx
shr    $0x10,%ecx
mov    %rcx,%rbp
imul   %rdx,%rbp
imul   %rdx,%rdx
imul   %rcx,%rcx
mov    %rbp,%rax
shr    $0xf,%rax
add    %rcx,%rax
shl    $0x11,%rbp
mov    %rbp,%rcx
and    %r8,%rcx
add    %rdx,%rbp
mov    %ebp,%edx
cmp    %rcx,%rdx
adc    $0x0,%rax
add    %r10,%rbp
mov    %ebp,%ecx
cmp    %rdx,%rcx
adc    $0x0,%rax
add    %rax,%r11
mov    %r11d,%ecx
xor    %r9d,%r9d
cmp    %rax,%rcx
setb   %r9b
mov    0x30(%rsi),%rax
movzwl %ax,%r10d
shr    $0x10,%eax
movzwl %bx,%edx
shr    $0x10,%ebx
mov    %rbx,%rcx
imul   %r10,%rcx
imul   %rdx,%r10
imul   %rax,%rdx
imul   %rax,%rbx
add    %rdx,%rcx
mov    %ecx,%r14d
lea    0x10000(%rbx),%rax
cmp    %rdx,%r14
cmovae %rbx,%rax
mov    %ecx,%ebx
shr    $0x10,%ebx
add    %rax,%rbx
shl    $0x10,%rcx
mov    %ecx,%eax
add    %r10,%rcx
mov    %ecx,%edx
cmp    %rax,%rdx
adc    $0x0,%rbx
lea    0x1(%r9),%r14
test   $0x80000000,%ebx
cmove  %r9,%r14
shld   $0x1,%ecx,%ebx
lea    (%rdx,%rdx,1),%rax
mov    %eax,%eax
lea    0x0(,%rdx,2),%r9
add    %rbp,%r9
mov    %r9d,%ecx
cmp    %rax,%rcx
jae    1f91 <bn_sqr_comba8+0xe91>
add    $0x1,%rbx
cmp    $0x1,%ebx
adc    $0x0,%r14
add    %rbx,%r11
mov    %r11d,%eax
cmp    %rbx,%rax
adc    $0x0,%r14
mov    0x18(%rsi),%rdx
mov    0x38(%rsi),%rax
movzwl %ax,%r10d
shr    $0x10,%eax
movzwl %dx,%ebp
shr    $0x10,%edx
mov    %rdx,%rbx
imul   %r10,%rbx
imul   %rbp,%r10
imul   %eax,%edx
mov    %rax,%rcx
imul   %rbp,%rcx
add    %rcx,%rbx
mov    %ebx,%r15d
lea    0x10000(%rdx),%eax
mov    %ebx,%ebp
shr    $0x10,%ebp
cmp    %rcx,%r15
cmovae %edx,%eax
add    %ebp,%eax
shl    $0x10,%rbx
mov    %ebx,%ecx
add    %r10,%rbx
mov    %ebx,%edx
cmp    %rcx,%rdx
adc    $0x0,%eax
mov    %eax,%r10d
shr    $0x1f,%r10d
add    %r14,%r10
shld   $0x1,%ebx,%eax
add    %rdx,%rdx
mov    %edx,%ecx
add    %edx,%r9d
cmp    %rcx,%r9
jae    2018 <bn_sqr_comba8+0xf18>
add    $0x1,%rax
cmp    $0x1,%eax
adc    $0x0,%r10
add    %rax,%r11
mov    %r11d,%ecx
cmp    %rax,%rcx
adc    $0x0,%r10
mov    %r9,0x50(%rdi)
mov    0x20(%rsi),%rbx
mov    0x38(%rsi),%rax
movzwl %ax,%r9d
shr    $0x10,%eax
movzwl %bx,%ebp
shr    $0x10,%ebx
mov    %rbx,%rdx
imul   %r9,%rdx
imul   %rbp,%r9
imul   %eax,%ebx
mov    %rax,%rcx
imul   %rbp,%rcx
add    %rcx,%rdx
mov    %edx,%r14d
lea    0x10000(%rbx),%eax
mov    %edx,%ebp
shr    $0x10,%ebp
cmp    %rcx,%r14
cmovae %ebx,%eax
add    %ebp,%eax
shl    $0x10,%rdx
mov    %edx,%ecx
add    %r9,%rdx
mov    %edx,%ebp
cmp    %rcx,%rbp
adc    $0x0,%eax
mov    %eax,%r14d
shr    $0x1f,%r14d
shld   $0x1,%edx,%eax
mov    %rbp,%rcx
add    %rbp,%rcx
mov    %ecx,%ecx
lea    (%r11,%rbp,2),%r11
mov    %r11d,%edx
cmp    %rcx,%rdx
jae    20a7 <bn_sqr_comba8+0xfa7>
add    $0x1,%rax
cmp    $0x1,%eax
adc    $0x0,%r14
add    %rax,%r10
mov    %r10d,%ecx
cmp    %rax,%rcx
adc    $0x0,%r14
mov    0x28(%rsi),%rcx
mov    0x30(%rsi),%rax
movzwl %ax,%r9d
shr    $0x10,%eax
movzwl %cx,%ebp
shr    $0x10,%ecx
mov    %rcx,%rdx
imul   %r9,%rdx
imul   %rbp,%r9
imul   %eax,%ecx
mov    %rax,%rbx
imul   %rbp,%rbx
add    %rbx,%rdx
mov    %edx,%r15d
lea    0x10000(%rcx),%eax
mov    %edx,%ebp
shr    $0x10,%ebp
cmp    %rbx,%r15
cmovae %ecx,%eax
add    %ebp,%eax
shl    $0x10,%rdx
mov    %edx,%ecx
add    %r9,%rdx
mov    %edx,%ebx
cmp    %rcx,%rbx
adc    $0x0,%eax
mov    %eax,%r9d
shr    $0x1f,%r9d
add    %r14,%r9
shld   $0x1,%edx,%eax
add    %rbx,%rbx
mov    %ebx,%ecx
add    %ebx,%r11d
cmp    %rcx,%r11
jae    212e <bn_sqr_comba8+0x102e>
add    $0x1,%rax
cmp    $0x1,%eax
adc    $0x0,%r9
add    %rax,%r10
mov    %r10d,%ecx
cmp    %rax,%rcx
adc    $0x0,%r9
mov    %r11,0x58(%rdi)
mov    0x28(%rsi),%rbx
mov    0x30(%rsi),%rdx
movzwl %dx,%ebp
shr    $0x10,%edx
mov    %rdx,%rax
imul   %rbp,%rax
imul   %rbp,%rbp
imul   %rdx,%rdx
mov    %rax,%rcx
shr    $0xf,%rcx
add    %rdx,%rcx
shl    $0x11,%rax
mov    %rax,%rdx
and    %r8,%rdx
add    %rbp,%rax
mov    %eax,%ebp
cmp    %rdx,%rbp
adc    $0x0,%rcx
add    %r10,%rax
mov    %eax,%edx
cmp    %rbp,%rdx
adc    $0x0,%rcx
add    %rcx,%r9
mov    %r9d,%edx
xor    %r14d,%r14d
cmp    %rcx,%rdx
setb   %r14b
mov    0x38(%rsi),%rbp
movzwl %bp,%r10d
shr    $0x10,%ebp
movzwl %bx,%ecx
shr    $0x10,%ebx
mov    %rbx,%rdx
imul   %r10,%rdx
imul   %rcx,%r10
imul   %rbp,%rcx
imul   %rbp,%rbx
add    %rcx,%rdx
mov    %edx,%r11d
lea    0x10000(%rbx),%rbp
cmp    %rcx,%r11
cmovae %rbx,%rbp
mov    %edx,%r11d
shr    $0x10,%r11d
add    %rbp,%r11
shl    $0x10,%rdx
mov    %edx,%ecx
add    %r10,%rdx
mov    %edx,%ebx
cmp    %rcx,%rbx
adc    $0x0,%r11
lea    0x1(%r14),%r10
test   $0x80000000,%r11d
cmove  %r14,%r10
shld   $0x1,%edx,%r11d
add    %rbx,%rbx
mov    %ebx,%ecx
add    %eax,%ebx
cmp    %rcx,%rbx
jae    2218 <bn_sqr_comba8+0x1118>
add    $0x1,%r11
cmp    $0x1,%r11d
adc    $0x0,%r10
add    %r11,%r9
mov    %rbx,0x60(%rdi)
mov    0x30(%rsi),%rbx
mov    0x38(%rsi),%rcx
movzwl %cx,%r14d
shr    $0x10,%ecx
movzwl %bx,%ebp
shr    $0x10,%ebx
mov    %rbx,%rdx
imul   %r14,%rdx
imul   %rbp,%r14
imul   %ecx,%ebx
imul   %rbp,%rcx
add    %rcx,%rdx
mov    %edx,%r15d
lea    0x10000(%rbx),%eax
mov    %edx,%ebp
shr    $0x10,%ebp
cmp    %rcx,%r15
cmovae %ebx,%eax
add    %ebp,%eax
shl    $0x10,%rdx
mov    %edx,%ecx
add    %r14,%rdx
mov    %edx,%ebx
cmp    %rcx,%rbx
adc    $0x0,%eax
mov    %eax,%ecx
shr    $0x1f,%ecx
shld   $0x1,%edx,%eax
add    %rbx,%rbx
mov    %ebx,%ebp
lea    (%r9,%rbx,1),%edx
cmp    %rbp,%rdx
jae    2292 <bn_sqr_comba8+0x1192>
add    $0x1,%rax
cmp    $0x1,%eax
adc    $0x0,%rcx
mov    %r9d,%ebp
cmp    %r11,%rbp
adc    $0x0,%r10
add    %rax,%r10
mov    %r10d,%r9d
mov    %rdx,0x68(%rdi)
mov    0x38(%rsi),%rbp
movzwl %bp,%ebx
shr    $0x10,%ebp
mov    %rbp,%rdx
imul   %rbx,%rdx
imul   %rbx,%rbx
imul   %ebp,%ebp
mov    %rdx,%rsi
shr    $0xf,%rsi
shl    $0x11,%rdx
and    %rdx,%r8
add    %rbx,%rdx
add    %edx,%r10d
cmp    %rax,%r9
mov    %edx,%eax
adc    $0x0,%ecx
add    %ebp,%ecx
add    %ecx,%esi
cmp    %r8,%rax
adc    $0x0,%esi
cmp    %rax,%r10
adc    $0x0,%esi
mov    %r10,0x70(%rdi)
mov    %rsi,0x78(%rdi)
pop    %rbx
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, 65535
store i64 %152, i64* %12
%153 = load i64, i64* %13
%154 = lshr i64 %153, 16
%155 = and i64 %154, 65535
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, 4294934528
%167 = lshr i64 %166, 15
%168 = load i64, i64* %13
%169 = add i64 %168, %167
store i64 %169, i64* %13
%170 = load i64, i64* %14
%171 = and i64 %170, 65535
%172 = shl i64 %171, 17
store i64 %172, i64* %14
%173 = load i64, i64* %12
%174 = load i64, i64* %14
%175 = add i64 %173, %174
%176 = and i64 %175, 4294967295
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, 4294967295
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, 4294967295
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, 65535
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, 16
%219 = and i64 %218, 65535
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, 65535
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, 16
%228 = and i64 %227, 65535
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, 4294967295
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, 65536
store i64 %252, i64* %18
br label %253
253: ; preds = %250, %207
%254 = load i64, i64* %15
%255 = lshr i64 %254, 16
%256 = and i64 %255, 65535
%257 = load i64, i64* %18
%258 = add i64 %257, %256
store i64 %258, i64* %18
%259 = load i64, i64* %15
%260 = and i64 %259, 65535
%261 = shl i64 %260, 16
store i64 %261, i64* %16
%262 = load i64, i64* %17
%263 = load i64, i64* %16
%264 = add i64 %262, %263
%265 = and i64 %264, 4294967295
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, 2147483648
%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, 4294967295
store i64 %285, i64* %8
%286 = load i64, i64* %7
%287 = and i64 %286, 2147483648
%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, 4294967295
store i64 %296, i64* %7
%297 = load i64, i64* %10
%298 = load i64, i64* %7
%299 = add i64 %297, %298
%300 = and i64 %299, 4294967295
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, 4294967295
%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, 4294967295
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, 65535
store i64 %331, i64* %19
%332 = load i64, i64* %20
%333 = lshr i64 %332, 16
%334 = and i64 %333, 65535
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, 4294934528
%346 = lshr i64 %345, 15
%347 = load i64, i64* %20
%348 = add i64 %347, %346
store i64 %348, i64* %20
%349 = load i64, i64* %21
%350 = and i64 %349, 65535
%351 = shl i64 %350, 17
store i64 %351, i64* %21
%352 = load i64, i64* %19
%353 = load i64, i64* %21
%354 = add i64 %352, %353
%355 = and i64 %354, 4294967295
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, 4294967295
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, 4294967295
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, 65535
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, 16
%395 = and i64 %394, 65535
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, 65535
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, 16
%404 = and i64 %403, 65535
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, 4294967295
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, 65536
store i64 %428, i64* %25
br label %429
429: ; preds = %426, %386
%430 = load i64, i64* %22
%431 = lshr i64 %430, 16
%432 = and i64 %431, 65535
%433 = load i64, i64* %25
%434 = add i64 %433, %432
store i64 %434, i64* %25
%435 = load i64, i64* %22
%436 = and i64 %435, 65535
%437 = shl i64 %436, 16
store i64 %437, i64* %23
%438 = load i64, i64* %24
%439 = load i64, i64* %23
%440 = add i64 %438, %439
%441 = and i64 %440, 4294967295
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, 2147483648
%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, 4294967295
store i64 %461, i64* %8
%462 = load i64, i64* %7
%463 = and i64 %462, 2147483648
%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, 4294967295
store i64 %472, i64* %7
%473 = load i64, i64* %11
%474 = load i64, i64* %7
%475 = add i64 %473, %474
%476 = and i64 %475, 4294967295
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, 4294967295
%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, 4294967295
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, 65535
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, 16
%511 = and i64 %510, 65535
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, 65535
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, 16
%520 = and i64 %519, 65535
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, 4294967295
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, 65536
store i64 %544, i64* %29
br label %545
545: ; preds = %542, %499
%546 = load i64, i64* %26
%547 = lshr i64 %546, 16
%548 = and i64 %547, 65535
%549 = load i64, i64* %29
%550 = add i64 %549, %548
store i64 %550, i64* %29
%551 = load i64, i64* %26
%552 = and i64 %551, 65535
%553 = shl i64 %552, 16
store i64 %553, i64* %27
%554 = load i64, i64* %28
%555 = load i64, i64* %27
%556 = add i64 %554, %555
%557 = and i64 %556, 4294967295
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, 2147483648
%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, 4294967295
store i64 %577, i64* %8
%578 = load i64, i64* %7
%579 = and i64 %578, 2147483648
%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, 4294967295
store i64 %588, i64* %7
%589 = load i64, i64* %9
%590 = load i64, i64* %7
%591 = add i64 %589, %590
%592 = and i64 %591, 4294967295
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, 4294967295
%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, 4294967295
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, 65535
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, 16
%624 = and i64 %623, 65535
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, 65535
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, 16
%633 = and i64 %632, 65535
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, 4294967295
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, 65536
store i64 %657, i64* %33
br label %658
658: ; preds = %655, %615
%659 = load i64, i64* %30
%660 = lshr i64 %659, 16
%661 = and i64 %660, 65535
%662 = load i64, i64* %33
%663 = add i64 %662, %661
store i64 %663, i64* %33
%664 = load i64, i64* %30
%665 = and i64 %664, 65535
%666 = shl i64 %665, 16
store i64 %666, i64* %31
%667 = load i64, i64* %32
%668 = load i64, i64* %31
%669 = add i64 %667, %668
%670 = and i64 %669, 4294967295
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, 2147483648
%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, 4294967295
store i64 %690, i64* %8
%691 = load i64, i64* %7
%692 = and i64 %691, 2147483648
%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, 4294967295
store i64 %701, i64* %7
%702 = load i64, i64* %9
%703 = load i64, i64* %7
%704 = add i64 %702, %703
%705 = and i64 %704, 4294967295
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, 4294967295
%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, 4294967295
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, 65535
store i64 %736, i64* %34
%737 = load i64, i64* %35
%738 = lshr i64 %737, 16
%739 = and i64 %738, 65535
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, 4294934528
%751 = lshr i64 %750, 15
%752 = load i64, i64* %35
%753 = add i64 %752, %751
store i64 %753, i64* %35
%754 = load i64, i64* %36
%755 = and i64 %754, 65535
%756 = shl i64 %755, 17
store i64 %756, i64* %36
%757 = load i64, i64* %34
%758 = load i64, i64* %36
%759 = add i64 %757, %758
%760 = and i64 %759, 4294967295
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, 4294967295
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, 4294967295
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, 65535
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, 16
%800 = and i64 %799, 65535
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, 65535
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, 16
%809 = and i64 %808, 65535
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, 4294967295
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, 65536
store i64 %833, i64* %40
br label %834
834: ; preds = %831, %791
%835 = load i64, i64* %37
%836 = lshr i64 %835, 16
%837 = and i64 %836, 65535
%838 = load i64, i64* %40
%839 = add i64 %838, %837
store i64 %839, i64* %40
%840 = load i64, i64* %37
%841 = and i64 %840, 65535
%842 = shl i64 %841, 16
store i64 %842, i64* %38
%843 = load i64, i64* %39
%844 = load i64, i64* %38
%845 = add i64 %843, %844
%846 = and i64 %845, 4294967295
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, 2147483648
%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, 4294967295
store i64 %866, i64* %8
%867 = load i64, i64* %7
%868 = and i64 %867, 2147483648
%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, 4294967295
store i64 %877, i64* %7
%878 = load i64, i64* %10
%879 = load i64, i64* %7
%880 = add i64 %878, %879
%881 = and i64 %880, 4294967295
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, 4294967295
%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, 4294967295
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, 65535
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, 16
%913 = and i64 %912, 65535
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, 65535
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, 16
%922 = and i64 %921, 65535
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, 4294967295
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, 65536
store i64 %946, i64* %44
br label %947
947: ; preds = %944, %904
%948 = load i64, i64* %41
%949 = lshr i64 %948, 16
%950 = and i64 %949, 65535
%951 = load i64, i64* %44
%952 = add i64 %951, %950
store i64 %952, i64* %44
%953 = load i64, i64* %41
%954 = and i64 %953, 65535
%955 = shl i64 %954, 16
store i64 %955, i64* %42
%956 = load i64, i64* %43
%957 = load i64, i64* %42
%958 = add i64 %956, %957
%959 = and i64 %958, 4294967295
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, 2147483648
%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, 4294967295
store i64 %979, i64* %8
%980 = load i64, i64* %7
%981 = and i64 %980, 2147483648
%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, 4294967295
store i64 %990, i64* %7
%991 = load i64, i64* %10
%992 = load i64, i64* %7
%993 = add i64 %991, %992
%994 = and i64 %993, 4294967295
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, 4294967295
%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, 4294967295
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, 65535
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, 16
%1029 = and i64 %1028, 65535
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, 65535
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, 16
%1038 = and i64 %1037, 65535
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, 4294967295
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, 65536
store i64 %1062, i64* %48
br label %1063
1063: ; preds = %1060, %1017
%1064 = load i64, i64* %45
%1065 = lshr i64 %1064, 16
%1066 = and i64 %1065, 65535
%1067 = load i64, i64* %48
%1068 = add i64 %1067, %1066
store i64 %1068, i64* %48
%1069 = load i64, i64* %45
%1070 = and i64 %1069, 65535
%1071 = shl i64 %1070, 16
store i64 %1071, i64* %46
%1072 = load i64, i64* %47
%1073 = load i64, i64* %46
%1074 = add i64 %1072, %1073
%1075 = and i64 %1074, 4294967295
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, 2147483648
%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, 4294967295
store i64 %1095, i64* %8
%1096 = load i64, i64* %7
%1097 = and i64 %1096, 2147483648
%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, 4294967295
store i64 %1106, i64* %7
%1107 = load i64, i64* %11
%1108 = load i64, i64* %7
%1109 = add i64 %1107, %1108
%1110 = and i64 %1109, 4294967295
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, 4294967295
%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, 4294967295
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, 65535
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, 16
%1142 = and i64 %1141, 65535
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, 65535
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, 16
%1151 = and i64 %1150, 65535
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, 4294967295
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, 65536
store i64 %1175, i64* %52
br label %1176
1176: ; preds = %1173, %1133
%1177 = load i64, i64* %49
%1178 = lshr i64 %1177, 16
%1179 = and i64 %1178, 65535
%1180 = load i64, i64* %52
%1181 = add i64 %1180, %1179
store i64 %1181, i64* %52
%1182 = load i64, i64* %49
%1183 = and i64 %1182, 65535
%1184 = shl i64 %1183, 16
store i64 %1184, i64* %50
%1185 = load i64, i64* %51
%1186 = load i64, i64* %50
%1187 = add i64 %1185, %1186
%1188 = and i64 %1187, 4294967295
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, 2147483648
%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, 4294967295
store i64 %1208, i64* %8
%1209 = load i64, i64* %7
%1210 = and i64 %1209, 2147483648
%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, 4294967295
store i64 %1219, i64* %7
%1220 = load i64, i64* %11
%1221 = load i64, i64* %7
%1222 = add i64 %1220, %1221
%1223 = and i64 %1222, 4294967295
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, 4294967295
%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, 4294967295
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, 65535
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, 16
%1255 = and i64 %1254, 65535
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, 65535
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, 16
%1264 = and i64 %1263, 65535
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, 4294967295
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, 65536
store i64 %1288, i64* %56
br label %1289
1289: ; preds = %1286, %1246
%1290 = load i64, i64* %53
%1291 = lshr i64 %1290, 16
%1292 = and i64 %1291, 65535
%1293 = load i64, i64* %56
%1294 = add i64 %1293, %1292
store i64 %1294, i64* %56
%1295 = load i64, i64* %53
%1296 = and i64 %1295, 65535
%1297 = shl i64 %1296, 16
store i64 %1297, i64* %54
%1298 = load i64, i64* %55
%1299 = load i64, i64* %54
%1300 = add i64 %1298, %1299
%1301 = and i64 %1300, 4294967295
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, 2147483648
%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, 4294967295
store i64 %1321, i64* %8
%1322 = load i64, i64* %7
%1323 = and i64 %1322, 2147483648
%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, 4294967295
store i64 %1332, i64* %7
%1333 = load i64, i64* %11
%1334 = load i64, i64* %7
%1335 = add i64 %1333, %1334
%1336 = and i64 %1335, 4294967295
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, 4294967295
%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, 4294967295
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, 65535
store i64 %1367, i64* %57
%1368 = load i64, i64* %58
%1369 = lshr i64 %1368, 16
%1370 = and i64 %1369, 65535
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, 4294934528
%1382 = lshr i64 %1381, 15
%1383 = load i64, i64* %58
%1384 = add i64 %1383, %1382
store i64 %1384, i64* %58
%1385 = load i64, i64* %59
%1386 = and i64 %1385, 65535
%1387 = shl i64 %1386, 17
store i64 %1387, i64* %59
%1388 = load i64, i64* %57
%1389 = load i64, i64* %59
%1390 = add i64 %1388, %1389
%1391 = and i64 %1390, 4294967295
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, 4294967295
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, 4294967295
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, 65535
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, 16
%1431 = and i64 %1430, 65535
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, 65535
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, 16
%1440 = and i64 %1439, 65535
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, 4294967295
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, 65536
store i64 %1464, i64* %63
br label %1465
1465: ; preds = %1462, %1422
%1466 = load i64, i64* %60
%1467 = lshr i64 %1466, 16
%1468 = and i64 %1467, 65535
%1469 = load i64, i64* %63
%1470 = add i64 %1469, %1468
store i64 %1470, i64* %63
%1471 = load i64, i64* %60
%1472 = and i64 %1471, 65535
%1473 = shl i64 %1472, 16
store i64 %1473, i64* %61
%1474 = load i64, i64* %62
%1475 = load i64, i64* %61
%1476 = add i64 %1474, %1475
%1477 = and i64 %1476, 4294967295
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, 2147483648
%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, 4294967295
store i64 %1497, i64* %8
%1498 = load i64, i64* %7
%1499 = and i64 %1498, 2147483648
%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, 4294967295
store i64 %1508, i64* %7
%1509 = load i64, i64* %9
%1510 = load i64, i64* %7
%1511 = add i64 %1509, %1510
%1512 = and i64 %1511, 4294967295
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, 4294967295
%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, 4294967295
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, 65535
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, 16
%1544 = and i64 %1543, 65535
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, 65535
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, 16
%1553 = and i64 %1552, 65535
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, 4294967295
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, 65536
store i64 %1577, i64* %67
br label %1578
1578: ; preds = %1575, %1535
%1579 = load i64, i64* %64
%1580 = lshr i64 %1579, 16
%1581 = and i64 %1580, 65535
%1582 = load i64, i64* %67
%1583 = add i64 %1582, %1581
store i64 %1583, i64* %67
%1584 = load i64, i64* %64
%1585 = and i64 %1584, 65535
%1586 = shl i64 %1585, 16
store i64 %1586, i64* %65
%1587 = load i64, i64* %66
%1588 = load i64, i64* %65
%1589 = add i64 %1587, %1588
%1590 = and i64 %1589, 4294967295
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, 2147483648
%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, 4294967295
store i64 %1610, i64* %8
%1611 = load i64, i64* %7
%1612 = and i64 %1611, 2147483648
%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, 4294967295
store i64 %1621, i64* %7
%1622 = load i64, i64* %9
%1623 = load i64, i64* %7
%1624 = add i64 %1622, %1623
%1625 = and i64 %1624, 4294967295
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, 4294967295
%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, 4294967295
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, 65535
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, 16
%1657 = and i64 %1656, 65535
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, 65535
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, 16
%1666 = and i64 %1665, 65535
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, 4294967295
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, 65536
store i64 %1690, i64* %71
br label %1691
1691: ; preds = %1688, %1648
%1692 = load i64, i64* %68
%1693 = lshr i64 %1692, 16
%1694 = and i64 %1693, 65535
%1695 = load i64, i64* %71
%1696 = add i64 %1695, %1694
store i64 %1696, i64* %71
%1697 = load i64, i64* %68
%1698 = and i64 %1697, 65535
%1699 = shl i64 %1698, 16
store i64 %1699, i64* %69
%1700 = load i64, i64* %70
%1701 = load i64, i64* %69
%1702 = add i64 %1700, %1701
%1703 = and i64 %1702, 4294967295
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, 2147483648
%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, 4294967295
store i64 %1723, i64* %8
%1724 = load i64, i64* %7
%1725 = and i64 %1724, 2147483648
%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, 4294967295
store i64 %1734, i64* %7
%1735 = load i64, i64* %9
%1736 = load i64, i64* %7
%1737 = add i64 %1735, %1736
%1738 = and i64 %1737, 4294967295
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, 4294967295
%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, 4294967295
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, 65535
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, 16
%1773 = and i64 %1772, 65535
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, 65535
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, 16
%1782 = and i64 %1781, 65535
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, 4294967295
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, 65536
store i64 %1806, i64* %75
br label %1807
1807: ; preds = %1804, %1761
%1808 = load i64, i64* %72
%1809 = lshr i64 %1808, 16
%1810 = and i64 %1809, 65535
%1811 = load i64, i64* %75
%1812 = add i64 %1811, %1810
store i64 %1812, i64* %75
%1813 = load i64, i64* %72
%1814 = and i64 %1813, 65535
%1815 = shl i64 %1814, 16
store i64 %1815, i64* %73
%1816 = load i64, i64* %74
%1817 = load i64, i64* %73
%1818 = add i64 %1816, %1817
%1819 = and i64 %1818, 4294967295
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, 2147483648
%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, 4294967295
store i64 %1839, i64* %8
%1840 = load i64, i64* %7
%1841 = and i64 %1840, 2147483648
%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, 4294967295
store i64 %1850, i64* %7
%1851 = load i64, i64* %10
%1852 = load i64, i64* %7
%1853 = add i64 %1851, %1852
%1854 = and i64 %1853, 4294967295
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, 4294967295
%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, 4294967295
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, 65535
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, 16
%1886 = and i64 %1885, 65535
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, 65535
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, 16
%1895 = and i64 %1894, 65535
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, 4294967295
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, 65536
store i64 %1919, i64* %79
br label %1920
1920: ; preds = %1917, %1877
%1921 = load i64, i64* %76
%1922 = lshr i64 %1921, 16
%1923 = and i64 %1922, 65535
%1924 = load i64, i64* %79
%1925 = add i64 %1924, %1923
store i64 %1925, i64* %79
%1926 = load i64, i64* %76
%1927 = and i64 %1926, 65535
%1928 = shl i64 %1927, 16
store i64 %1928, i64* %77
%1929 = load i64, i64* %78
%1930 = load i64, i64* %77
%1931 = add i64 %1929, %1930
%1932 = and i64 %1931, 4294967295
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, 2147483648
%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, 4294967295
store i64 %1952, i64* %8
%1953 = load i64, i64* %7
%1954 = and i64 %1953, 2147483648
%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, 4294967295
store i64 %1963, i64* %7
%1964 = load i64, i64* %10
%1965 = load i64, i64* %7
%1966 = add i64 %1964, %1965
%1967 = and i64 %1966, 4294967295
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, 4294967295
%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, 4294967295
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, 65535
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, 16
%1999 = and i64 %1998, 65535
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, 65535
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, 16
%2008 = and i64 %2007, 65535
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, 4294967295
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, 65536
store i64 %2032, i64* %83
br label %2033
2033: ; preds = %2030, %1990
%2034 = load i64, i64* %80
%2035 = lshr i64 %2034, 16
%2036 = and i64 %2035, 65535
%2037 = load i64, i64* %83
%2038 = add i64 %2037, %2036
store i64 %2038, i64* %83
%2039 = load i64, i64* %80
%2040 = and i64 %2039, 65535
%2041 = shl i64 %2040, 16
store i64 %2041, i64* %81
%2042 = load i64, i64* %82
%2043 = load i64, i64* %81
%2044 = add i64 %2042, %2043
%2045 = and i64 %2044, 4294967295
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, 2147483648
%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, 4294967295
store i64 %2065, i64* %8
%2066 = load i64, i64* %7
%2067 = and i64 %2066, 2147483648
%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, 4294967295
store i64 %2076, i64* %7
%2077 = load i64, i64* %10
%2078 = load i64, i64* %7
%2079 = add i64 %2077, %2078
%2080 = and i64 %2079, 4294967295
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, 4294967295
%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, 4294967295
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, 65535
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, 16
%2112 = and i64 %2111, 65535
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, 65535
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, 16
%2121 = and i64 %2120, 65535
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, 4294967295
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, 65536
store i64 %2145, i64* %87
br label %2146
2146: ; preds = %2143, %2103
%2147 = load i64, i64* %84
%2148 = lshr i64 %2147, 16
%2149 = and i64 %2148, 65535
%2150 = load i64, i64* %87
%2151 = add i64 %2150, %2149
store i64 %2151, i64* %87
%2152 = load i64, i64* %84
%2153 = and i64 %2152, 65535
%2154 = shl i64 %2153, 16
store i64 %2154, i64* %85
%2155 = load i64, i64* %86
%2156 = load i64, i64* %85
%2157 = add i64 %2155, %2156
%2158 = and i64 %2157, 4294967295
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, 2147483648
%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, 4294967295
store i64 %2178, i64* %8
%2179 = load i64, i64* %7
%2180 = and i64 %2179, 2147483648
%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, 4294967295
store i64 %2189, i64* %7
%2190 = load i64, i64* %10
%2191 = load i64, i64* %7
%2192 = add i64 %2190, %2191
%2193 = and i64 %2192, 4294967295
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, 4294967295
%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, 4294967295
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, 65535
store i64 %2224, i64* %88
%2225 = load i64, i64* %89
%2226 = lshr i64 %2225, 16
%2227 = and i64 %2226, 65535
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, 4294934528
%2239 = lshr i64 %2238, 15
%2240 = load i64, i64* %89
%2241 = add i64 %2240, %2239
store i64 %2241, i64* %89
%2242 = load i64, i64* %90
%2243 = and i64 %2242, 65535
%2244 = shl i64 %2243, 17
store i64 %2244, i64* %90
%2245 = load i64, i64* %88
%2246 = load i64, i64* %90
%2247 = add i64 %2245, %2246
%2248 = and i64 %2247, 4294967295
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, 4294967295
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, 4294967295
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, 65535
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, 16
%2288 = and i64 %2287, 65535
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, 65535
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, 16
%2297 = and i64 %2296, 65535
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, 4294967295
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, 65536
store i64 %2321, i64* %94
br label %2322
2322: ; preds = %2319, %2279
%2323 = load i64, i64* %91
%2324 = lshr i64 %2323, 16
%2325 = and i64 %2324, 65535
%2326 = load i64, i64* %94
%2327 = add i64 %2326, %2325
store i64 %2327, i64* %94
%2328 = load i64, i64* %91
%2329 = and i64 %2328, 65535
%2330 = shl i64 %2329, 16
store i64 %2330, i64* %92
%2331 = load i64, i64* %93
%2332 = load i64, i64* %92
%2333 = add i64 %2331, %2332
%2334 = and i64 %2333, 4294967295
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, 2147483648
%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, 4294967295
store i64 %2354, i64* %8
%2355 = load i64, i64* %7
%2356 = and i64 %2355, 2147483648
%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, 4294967295
store i64 %2365, i64* %7
%2366 = load i64, i64* %11
%2367 = load i64, i64* %7
%2368 = add i64 %2366, %2367
%2369 = and i64 %2368, 4294967295
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, 4294967295
%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, 4294967295
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, 65535
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, 16
%2401 = and i64 %2400, 65535
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, 65535
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, 16
%2410 = and i64 %2409, 65535
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, 4294967295
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, 65536
store i64 %2434, i64* %98
br label %2435
2435: ; preds = %2432, %2392
%2436 = load i64, i64* %95
%2437 = lshr i64 %2436, 16
%2438 = and i64 %2437, 65535
%2439 = load i64, i64* %98
%2440 = add i64 %2439, %2438
store i64 %2440, i64* %98
%2441 = load i64, i64* %95
%2442 = and i64 %2441, 65535
%2443 = shl i64 %2442, 16
store i64 %2443, i64* %96
%2444 = load i64, i64* %97
%2445 = load i64, i64* %96
%2446 = add i64 %2444, %2445
%2447 = and i64 %2446, 4294967295
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, 2147483648
%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, 4294967295
store i64 %2467, i64* %8
%2468 = load i64, i64* %7
%2469 = and i64 %2468, 2147483648
%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, 4294967295
store i64 %2478, i64* %7
%2479 = load i64, i64* %11
%2480 = load i64, i64* %7
%2481 = add i64 %2479, %2480
%2482 = and i64 %2481, 4294967295
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, 4294967295
%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, 4294967295
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, 65535
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, 16
%2514 = and i64 %2513, 65535
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, 65535
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, 16
%2523 = and i64 %2522, 65535
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, 4294967295
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, 65536
store i64 %2547, i64* %102
br label %2548
2548: ; preds = %2545, %2505
%2549 = load i64, i64* %99
%2550 = lshr i64 %2549, 16
%2551 = and i64 %2550, 65535
%2552 = load i64, i64* %102
%2553 = add i64 %2552, %2551
store i64 %2553, i64* %102
%2554 = load i64, i64* %99
%2555 = and i64 %2554, 65535
%2556 = shl i64 %2555, 16
store i64 %2556, i64* %100
%2557 = load i64, i64* %101
%2558 = load i64, i64* %100
%2559 = add i64 %2557, %2558
%2560 = and i64 %2559, 4294967295
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, 2147483648
%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, 4294967295
store i64 %2580, i64* %8
%2581 = load i64, i64* %7
%2582 = and i64 %2581, 2147483648
%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, 4294967295
store i64 %2591, i64* %7
%2592 = load i64, i64* %11
%2593 = load i64, i64* %7
%2594 = add i64 %2592, %2593
%2595 = and i64 %2594, 4294967295
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, 4294967295
%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, 4294967295
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, 65535
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, 16
%2630 = and i64 %2629, 65535
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, 65535
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, 16
%2639 = and i64 %2638, 65535
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, 4294967295
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, 65536
store i64 %2663, i64* %106
br label %2664
2664: ; preds = %2661, %2618
%2665 = load i64, i64* %103
%2666 = lshr i64 %2665, 16
%2667 = and i64 %2666, 65535
%2668 = load i64, i64* %106
%2669 = add i64 %2668, %2667
store i64 %2669, i64* %106
%2670 = load i64, i64* %103
%2671 = and i64 %2670, 65535
%2672 = shl i64 %2671, 16
store i64 %2672, i64* %104
%2673 = load i64, i64* %105
%2674 = load i64, i64* %104
%2675 = add i64 %2673, %2674
%2676 = and i64 %2675, 4294967295
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, 2147483648
%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, 4294967295
store i64 %2696, i64* %8
%2697 = load i64, i64* %7
%2698 = and i64 %2697, 2147483648
%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, 4294967295
store i64 %2707, i64* %7
%2708 = load i64, i64* %9
%2709 = load i64, i64* %7
%2710 = add i64 %2708, %2709
%2711 = and i64 %2710, 4294967295
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, 4294967295
%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, 4294967295
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, 65535
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, 16
%2743 = and i64 %2742, 65535
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, 65535
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, 16
%2752 = and i64 %2751, 65535
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, 4294967295
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, 65536
store i64 %2776, i64* %110
br label %2777
2777: ; preds = %2774, %2734
%2778 = load i64, i64* %107
%2779 = lshr i64 %2778, 16
%2780 = and i64 %2779, 65535
%2781 = load i64, i64* %110
%2782 = add i64 %2781, %2780
store i64 %2782, i64* %110
%2783 = load i64, i64* %107
%2784 = and i64 %2783, 65535
%2785 = shl i64 %2784, 16
store i64 %2785, i64* %108
%2786 = load i64, i64* %109
%2787 = load i64, i64* %108
%2788 = add i64 %2786, %2787
%2789 = and i64 %2788, 4294967295
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, 2147483648
%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, 4294967295
store i64 %2809, i64* %8
%2810 = load i64, i64* %7
%2811 = and i64 %2810, 2147483648
%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, 4294967295
store i64 %2820, i64* %7
%2821 = load i64, i64* %9
%2822 = load i64, i64* %7
%2823 = add i64 %2821, %2822
%2824 = and i64 %2823, 4294967295
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, 4294967295
%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, 4294967295
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, 65535
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, 16
%2856 = and i64 %2855, 65535
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, 65535
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, 16
%2865 = and i64 %2864, 65535
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, 4294967295
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, 65536
store i64 %2889, i64* %114
br label %2890
2890: ; preds = %2887, %2847
%2891 = load i64, i64* %111
%2892 = lshr i64 %2891, 16
%2893 = and i64 %2892, 65535
%2894 = load i64, i64* %114
%2895 = add i64 %2894, %2893
store i64 %2895, i64* %114
%2896 = load i64, i64* %111
%2897 = and i64 %2896, 65535
%2898 = shl i64 %2897, 16
store i64 %2898, i64* %112
%2899 = load i64, i64* %113
%2900 = load i64, i64* %112
%2901 = add i64 %2899, %2900
%2902 = and i64 %2901, 4294967295
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, 2147483648
%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, 4294967295
store i64 %2922, i64* %8
%2923 = load i64, i64* %7
%2924 = and i64 %2923, 2147483648
%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, 4294967295
store i64 %2933, i64* %7
%2934 = load i64, i64* %9
%2935 = load i64, i64* %7
%2936 = add i64 %2934, %2935
%2937 = and i64 %2936, 4294967295
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, 4294967295
%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, 4294967295
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, 65535
store i64 %2968, i64* %115
%2969 = load i64, i64* %116
%2970 = lshr i64 %2969, 16
%2971 = and i64 %2970, 65535
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, 4294934528
%2983 = lshr i64 %2982, 15
%2984 = load i64, i64* %116
%2985 = add i64 %2984, %2983
store i64 %2985, i64* %116
%2986 = load i64, i64* %117
%2987 = and i64 %2986, 65535
%2988 = shl i64 %2987, 17
store i64 %2988, i64* %117
%2989 = load i64, i64* %115
%2990 = load i64, i64* %117
%2991 = add i64 %2989, %2990
%2992 = and i64 %2991, 4294967295
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, 4294967295
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, 4294967295
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, 65535
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, 16
%3032 = and i64 %3031, 65535
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, 65535
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, 16
%3041 = and i64 %3040, 65535
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, 4294967295
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, 65536
store i64 %3065, i64* %121
br label %3066
3066: ; preds = %3063, %3023
%3067 = load i64, i64* %118
%3068 = lshr i64 %3067, 16
%3069 = and i64 %3068, 65535
%3070 = load i64, i64* %121
%3071 = add i64 %3070, %3069
store i64 %3071, i64* %121
%3072 = load i64, i64* %118
%3073 = and i64 %3072, 65535
%3074 = shl i64 %3073, 16
store i64 %3074, i64* %119
%3075 = load i64, i64* %120
%3076 = load i64, i64* %119
%3077 = add i64 %3075, %3076
%3078 = and i64 %3077, 4294967295
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, 2147483648
%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, 4294967295
store i64 %3098, i64* %8
%3099 = load i64, i64* %7
%3100 = and i64 %3099, 2147483648
%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, 4294967295
store i64 %3109, i64* %7
%3110 = load i64, i64* %10
%3111 = load i64, i64* %7
%3112 = add i64 %3110, %3111
%3113 = and i64 %3112, 4294967295
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, 4294967295
%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, 4294967295
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, 65535
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, 16
%3145 = and i64 %3144, 65535
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, 65535
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, 16
%3154 = and i64 %3153, 65535
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, 4294967295
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, 65536
store i64 %3178, i64* %125
br label %3179
3179: ; preds = %3176, %3136
%3180 = load i64, i64* %122
%3181 = lshr i64 %3180, 16
%3182 = and i64 %3181, 65535
%3183 = load i64, i64* %125
%3184 = add i64 %3183, %3182
store i64 %3184, i64* %125
%3185 = load i64, i64* %122
%3186 = and i64 %3185, 65535
%3187 = shl i64 %3186, 16
store i64 %3187, i64* %123
%3188 = load i64, i64* %124
%3189 = load i64, i64* %123
%3190 = add i64 %3188, %3189
%3191 = and i64 %3190, 4294967295
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, 2147483648
%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, 4294967295
store i64 %3211, i64* %8
%3212 = load i64, i64* %7
%3213 = and i64 %3212, 2147483648
%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, 4294967295
store i64 %3222, i64* %7
%3223 = load i64, i64* %10
%3224 = load i64, i64* %7
%3225 = add i64 %3223, %3224
%3226 = and i64 %3225, 4294967295
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, 4294967295
%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, 4294967295
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, 65535
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, 16
%3261 = and i64 %3260, 65535
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, 65535
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, 16
%3270 = and i64 %3269, 65535
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, 4294967295
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, 65536
store i64 %3294, i64* %129
br label %3295
3295: ; preds = %3292, %3249
%3296 = load i64, i64* %126
%3297 = lshr i64 %3296, 16
%3298 = and i64 %3297, 65535
%3299 = load i64, i64* %129
%3300 = add i64 %3299, %3298
store i64 %3300, i64* %129
%3301 = load i64, i64* %126
%3302 = and i64 %3301, 65535
%3303 = shl i64 %3302, 16
store i64 %3303, i64* %127
%3304 = load i64, i64* %128
%3305 = load i64, i64* %127
%3306 = add i64 %3304, %3305
%3307 = and i64 %3306, 4294967295
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, 2147483648
%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, 4294967295
store i64 %3327, i64* %8
%3328 = load i64, i64* %7
%3329 = and i64 %3328, 2147483648
%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, 4294967295
store i64 %3338, i64* %7
%3339 = load i64, i64* %11
%3340 = load i64, i64* %7
%3341 = add i64 %3339, %3340
%3342 = and i64 %3341, 4294967295
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, 4294967295
%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, 4294967295
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, 65535
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, 16
%3374 = and i64 %3373, 65535
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, 65535
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, 16
%3383 = and i64 %3382, 65535
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, 4294967295
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, 65536
store i64 %3407, i64* %133
br label %3408
3408: ; preds = %3405, %3365
%3409 = load i64, i64* %130
%3410 = lshr i64 %3409, 16
%3411 = and i64 %3410, 65535
%3412 = load i64, i64* %133
%3413 = add i64 %3412, %3411
store i64 %3413, i64* %133
%3414 = load i64, i64* %130
%3415 = and i64 %3414, 65535
%3416 = shl i64 %3415, 16
store i64 %3416, i64* %131
%3417 = load i64, i64* %132
%3418 = load i64, i64* %131
%3419 = add i64 %3417, %3418
%3420 = and i64 %3419, 4294967295
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, 2147483648
%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, 4294967295
store i64 %3440, i64* %8
%3441 = load i64, i64* %7
%3442 = and i64 %3441, 2147483648
%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, 4294967295
store i64 %3451, i64* %7
%3452 = load i64, i64* %11
%3453 = load i64, i64* %7
%3454 = add i64 %3452, %3453
%3455 = and i64 %3454, 4294967295
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, 4294967295
%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, 4294967295
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, 65535
store i64 %3486, i64* %134
%3487 = load i64, i64* %135
%3488 = lshr i64 %3487, 16
%3489 = and i64 %3488, 65535
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, 4294934528
%3501 = lshr i64 %3500, 15
%3502 = load i64, i64* %135
%3503 = add i64 %3502, %3501
store i64 %3503, i64* %135
%3504 = load i64, i64* %136
%3505 = and i64 %3504, 65535
%3506 = shl i64 %3505, 17
store i64 %3506, i64* %136
%3507 = load i64, i64* %134
%3508 = load i64, i64* %136
%3509 = add i64 %3507, %3508
%3510 = and i64 %3509, 4294967295
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, 4294967295
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, 4294967295
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, 65535
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, 16
%3550 = and i64 %3549, 65535
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, 65535
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, 16
%3559 = and i64 %3558, 65535
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, 4294967295
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, 65536
store i64 %3583, i64* %140
br label %3584
3584: ; preds = %3581, %3541
%3585 = load i64, i64* %137
%3586 = lshr i64 %3585, 16
%3587 = and i64 %3586, 65535
%3588 = load i64, i64* %140
%3589 = add i64 %3588, %3587
store i64 %3589, i64* %140
%3590 = load i64, i64* %137
%3591 = and i64 %3590, 65535
%3592 = shl i64 %3591, 16
store i64 %3592, i64* %138
%3593 = load i64, i64* %139
%3594 = load i64, i64* %138
%3595 = add i64 %3593, %3594
%3596 = and i64 %3595, 4294967295
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, 2147483648
%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, 4294967295
store i64 %3616, i64* %8
%3617 = load i64, i64* %7
%3618 = and i64 %3617, 2147483648
%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, 4294967295
store i64 %3627, i64* %7
%3628 = load i64, i64* %9
%3629 = load i64, i64* %7
%3630 = add i64 %3628, %3629
%3631 = and i64 %3630, 4294967295
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, 4294967295
%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, 4294967295
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, 65535
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, 16
%3666 = and i64 %3665, 65535
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, 65535
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, 16
%3675 = and i64 %3674, 65535
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, 4294967295
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, 65536
store i64 %3699, i64* %144
br label %3700
3700: ; preds = %3697, %3654
%3701 = load i64, i64* %141
%3702 = lshr i64 %3701, 16
%3703 = and i64 %3702, 65535
%3704 = load i64, i64* %144
%3705 = add i64 %3704, %3703
store i64 %3705, i64* %144
%3706 = load i64, i64* %141
%3707 = and i64 %3706, 65535
%3708 = shl i64 %3707, 16
store i64 %3708, i64* %142
%3709 = load i64, i64* %143
%3710 = load i64, i64* %142
%3711 = add i64 %3709, %3710
%3712 = and i64 %3711, 4294967295
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, 2147483648
%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, 4294967295
store i64 %3732, i64* %8
%3733 = load i64, i64* %7
%3734 = and i64 %3733, 2147483648
%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, 4294967295
store i64 %3743, i64* %7
%3744 = load i64, i64* %10
%3745 = load i64, i64* %7
%3746 = add i64 %3744, %3745
%3747 = and i64 %3746, 4294967295
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, 4294967295
%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, 4294967295
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, 65535
store i64 %3778, i64* %145
%3779 = load i64, i64* %146
%3780 = lshr i64 %3779, 16
%3781 = and i64 %3780, 65535
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, 4294934528
%3793 = lshr i64 %3792, 15
%3794 = load i64, i64* %146
%3795 = add i64 %3794, %3793
store i64 %3795, i64* %146
%3796 = load i64, i64* %147
%3797 = and i64 %3796, 65535
%3798 = shl i64 %3797, 17
store i64 %3798, i64* %147
%3799 = load i64, i64* %145
%3800 = load i64, i64* %147
%3801 = add i64 %3799, %3800
%3802 = and i64 %3801, 4294967295
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, 4294967295
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, 4294967295
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, 65535
%5 = lshr i64 %3, 16
%6 = and i64 %5, 65535
%7 = mul nuw nsw i64 %6, %4
%8 = mul nuw nsw i64 %4, %4
%9 = mul nuw nsw i64 %6, %6
%10 = lshr i64 %7, 15
%11 = add nuw nsw i64 %10, %9
%12 = shl nuw nsw i64 %7, 17
%13 = and i64 %12, 8589803520
%14 = add nuw nsw i64 %12, %8
%15 = and i64 %14, 4294967295
%16 = icmp ult i64 %15, %13
%17 = zext i1 %16 to i64
%18 = add nuw nsw i64 %11, %17
store i64 %15, i64* %0
%19 = getelementptr inbounds i64, i64* %1, i64 1
%20 = load i64, i64* %19
%21 = and i64 %20, 65535
%22 = lshr i64 %20, 16
%23 = and i64 %22, 65535
%24 = load i64, i64* %1
%25 = and i64 %24, 65535
%26 = lshr i64 %24, 16
%27 = and i64 %26, 65535
%28 = mul nuw nsw i64 %27, %21
%29 = mul nuw nsw i64 %25, %21
%30 = mul nuw nsw i64 %25, %23
%31 = mul nuw nsw i64 %27, %23
%32 = add nuw nsw i64 %28, %30
%33 = and i64 %32, 4294967295
%34 = icmp ult i64 %33, %30
%35 = add nuw nsw i64 %31, 65536
%36 = select i1 %34, i64 %35, i64 %31
%37 = lshr i64 %32, 16
%38 = and i64 %37, 65535
%39 = add nuw nsw i64 %36, %38
%40 = shl nuw nsw i64 %32, 16
%41 = and i64 %40, 4294901760
%42 = add nuw nsw i64 %40, %29
%43 = and i64 %42, 4294967295
%44 = icmp ult i64 %43, %41
%45 = zext i1 %44 to i64
%46 = add nuw nsw i64 %39, %45
%47 = lshr i64 %46, 31
%48 = and i64 %47, 1
%49 = shl nuw nsw i64 %46, 1
%50 = and i64 %49, 4294967294
%51 = lshr i64 %42, 31
%52 = and i64 %51, 1
%53 = or i64 %50, %52
%54 = shl nuw nsw i64 %43, 1
%55 = and i64 %54, 4294967294
%56 = add nuw nsw i64 %18, %54
%57 = and i64 %56, 4294967295
%58 = icmp ult i64 %57, %55
br i1 %58, label %59, label %65
59: ; preds = %2
%60 = add nuw nsw i64 %53, 1
%61 = and i64 %60, 4294967295
%62 = icmp eq i64 %61, 0
%63 = zext i1 %62 to i64
%64 = add nuw nsw i64 %48, %63
br label %65
65: ; preds = %59, %2
%66 = phi i64 [ %48, %2 ], [ %64, %59 ]
%67 = phi i64 [ %53, %2 ], [ %60, %59 ]
%68 = icmp ugt i64 %67, 4294967295
%69 = zext i1 %68 to i64
%70 = add nuw nsw i64 %66, %69
%71 = getelementptr inbounds i64, i64* %0, i64 1
store i64 %57, i64* %71
%72 = load i64, i64* %19
%73 = and i64 %72, 65535
%74 = lshr i64 %72, 16
%75 = and i64 %74, 65535
%76 = mul nuw nsw i64 %75, %73
%77 = mul nuw nsw i64 %73, %73
%78 = mul nuw nsw i64 %75, %75
%79 = lshr i64 %76, 15
%80 = add nuw nsw i64 %79, %78
%81 = shl nuw nsw i64 %76, 17
%82 = and i64 %81, 8589803520
%83 = add nuw nsw i64 %81, %77
%84 = and i64 %83, 4294967295
%85 = icmp ult i64 %84, %82
%86 = zext i1 %85 to i64
%87 = add nuw nsw i64 %80, %86
%88 = add nsw i64 %83, %67
%89 = and i64 %88, 4294967295
%90 = icmp ult i64 %89, %84
%91 = zext i1 %90 to i64
%92 = add nuw nsw i64 %87, %91
%93 = add nuw nsw i64 %70, %92
%94 = and i64 %93, 4294967295
%95 = icmp ult i64 %94, %92
%96 = zext i1 %95 to i64
%97 = getelementptr inbounds i64, i64* %1, i64 2
%98 = load i64, i64* %97
%99 = and i64 %98, 65535
%100 = lshr i64 %98, 16
%101 = and i64 %100, 65535
%102 = load i64, i64* %1
%103 = and i64 %102, 65535
%104 = lshr i64 %102, 16
%105 = and i64 %104, 65535
%106 = mul nuw nsw i64 %105, %99
%107 = mul nuw nsw i64 %103, %99
%108 = mul nuw nsw i64 %103, %101
%109 = mul nuw nsw i64 %105, %101
%110 = add nuw nsw i64 %106, %108
%111 = and i64 %110, 4294967295
%112 = icmp ult i64 %111, %108
%113 = add nuw nsw i64 %109, 65536
%114 = select i1 %112, i64 %113, i64 %109
%115 = lshr i64 %110, 16
%116 = and i64 %115, 65535
%117 = add nuw nsw i64 %114, %116
%118 = shl nuw nsw i64 %110, 16
%119 = and i64 %118, 4294901760
%120 = add nuw nsw i64 %118, %107
%121 = and i64 %120, 4294967295
%122 = icmp ult i64 %121, %119
%123 = zext i1 %122 to i64
%124 = add nuw nsw i64 %117, %123
%125 = and i64 %124, 2147483648
%126 = icmp eq i64 %125, 0
%127 = select i1 %95, i64 2, i64 1
%128 = select i1 %126, i64 %96, i64 %127
%129 = shl nuw nsw i64 %124, 1
%130 = and i64 %129, 4294967294
%131 = lshr i64 %120, 31
%132 = and i64 %131, 1
%133 = or i64 %130, %132
%134 = shl nuw nsw i64 %121, 1
%135 = and i64 %134, 4294967294
%136 = add nsw i64 %134, %88
%137 = and i64 %136, 4294967295
%138 = icmp ult i64 %137, %135
br i1 %138, label %139, label %145
139: ; preds = %65
%140 = add nuw nsw i64 %133, 1
%141 = and i64 %140, 4294967295
%142 = icmp eq i64 %141, 0
%143 = zext i1 %142 to i64
%144 = add nuw nsw i64 %128, %143
br label %145
145: ; preds = %139, %65
%146 = phi i64 [ %128, %65 ], [ %144, %139 ]
%147 = phi i64 [ %133, %65 ], [ %140, %139 ]
%148 = add nsw i64 %147, %93
%149 = and i64 %148, 4294967295
%150 = icmp ult i64 %149, %147
%151 = zext i1 %150 to i64
%152 = add nuw nsw i64 %146, %151
%153 = getelementptr inbounds i64, i64* %0, i64 2
store i64 %137, i64* %153
%154 = getelementptr inbounds i64, i64* %1, i64 3
%155 = load i64, i64* %154
%156 = and i64 %155, 65535
%157 = lshr i64 %155, 16
%158 = and i64 %157, 65535
%159 = load i64, i64* %1
%160 = and i64 %159, 65535
%161 = lshr i64 %159, 16
%162 = and i64 %161, 65535
%163 = mul nuw nsw i64 %162, %156
%164 = mul nuw nsw i64 %160, %156
%165 = mul nuw nsw i64 %160, %158
%166 = mul nuw nsw i64 %162, %158
%167 = add nuw nsw i64 %163, %165
%168 = and i64 %167, 4294967295
%169 = icmp ult i64 %168, %165
%170 = add nuw nsw i64 %166, 65536
%171 = select i1 %169, i64 %170, i64 %166
%172 = lshr i64 %167, 16
%173 = and i64 %172, 65535
%174 = add nuw nsw i64 %171, %173
%175 = shl nuw nsw i64 %167, 16
%176 = and i64 %175, 4294901760
%177 = add nuw nsw i64 %175, %164
%178 = and i64 %177, 4294967295
%179 = icmp ult i64 %178, %176
%180 = zext i1 %179 to i64
%181 = add nuw nsw i64 %174, %180
%182 = lshr i64 %181, 31
%183 = and i64 %182, 1
%184 = shl nuw nsw i64 %181, 1
%185 = and i64 %184, 4294967294
%186 = lshr i64 %177, 31
%187 = and i64 %186, 1
%188 = or i64 %185, %187
%189 = shl nuw nsw i64 %178, 1
%190 = and i64 %189, 4294967294
%191 = add i64 %189, %148
%192 = and i64 %191, 4294967295
%193 = icmp ult i64 %192, %190
br i1 %193, label %194, label %200
194: ; preds = %145
%195 = add nuw nsw i64 %188, 1
%196 = and i64 %195, 4294967295
%197 = icmp eq i64 %196, 0
%198 = zext i1 %197 to i64
%199 = add nuw nsw i64 %183, %198
br label %200
200: ; preds = %194, %145
%201 = phi i64 [ %183, %145 ], [ %199, %194 ]
%202 = phi i64 [ %188, %145 ], [ %195, %194 ]
%203 = add nsw i64 %152, %202
%204 = and i64 %203, 4294967295
%205 = icmp ult i64 %204, %202
%206 = zext i1 %205 to i64
%207 = add nuw nsw i64 %201, %206
%208 = load i64, i64* %97
%209 = and i64 %208, 65535
%210 = lshr i64 %208, 16
%211 = and i64 %210, 65535
%212 = load i64, i64* %19
%213 = and i64 %212, 65535
%214 = lshr i64 %212, 16
%215 = and i64 %214, 65535
%216 = mul nuw nsw i64 %215, %209
%217 = mul nuw nsw i64 %213, %209
%218 = mul nuw nsw i64 %213, %211
%219 = mul nuw nsw i64 %215, %211
%220 = add nuw nsw i64 %216, %218
%221 = and i64 %220, 4294967295
%222 = icmp ult i64 %221, %218
%223 = add nuw nsw i64 %219, 65536
%224 = select i1 %222, i64 %223, i64 %219
%225 = lshr i64 %220, 16
%226 = and i64 %225, 65535
%227 = add nuw nsw i64 %224, %226
%228 = shl nuw nsw i64 %220, 16
%229 = and i64 %228, 4294901760
%230 = add nuw nsw i64 %228, %217
%231 = and i64 %230, 4294967295
%232 = icmp ult i64 %231, %229
%233 = zext i1 %232 to i64
%234 = add nuw nsw i64 %227, %233
%235 = lshr i64 %234, 31
%236 = and i64 %235, 1
%237 = add nuw nsw i64 %207, %236
%238 = shl nuw nsw i64 %234, 1
%239 = and i64 %238, 4294967294
%240 = lshr i64 %230, 31
%241 = and i64 %240, 1
%242 = or i64 %239, %241
%243 = shl nuw nsw i64 %231, 1
%244 = and i64 %243, 4294967294
%245 = add i64 %243, %191
%246 = and i64 %245, 4294967295
%247 = icmp ult i64 %246, %244
br i1 %247, label %248, label %254
248: ; preds = %200
%249 = add nuw nsw i64 %242, 1
%250 = and i64 %249, 4294967295
%251 = icmp eq i64 %250, 0
%252 = zext i1 %251 to i64
%253 = add nuw nsw i64 %237, %252
br label %254
254: ; preds = %248, %200
%255 = phi i64 [ %237, %200 ], [ %253, %248 ]
%256 = phi i64 [ %242, %200 ], [ %249, %248 ]
%257 = add nsw i64 %256, %203
%258 = and i64 %257, 4294967295
%259 = icmp ult i64 %258, %256
%260 = zext i1 %259 to i64
%261 = add nuw nsw i64 %255, %260
%262 = getelementptr inbounds i64, i64* %0, i64 3
store i64 %246, i64* %262
%263 = load i64, i64* %97
%264 = and i64 %263, 65535
%265 = lshr i64 %263, 16
%266 = and i64 %265, 65535
%267 = mul nuw nsw i64 %266, %264
%268 = mul nuw nsw i64 %264, %264
%269 = mul nuw nsw i64 %266, %266
%270 = lshr i64 %267, 15
%271 = add nuw nsw i64 %270, %269
%272 = shl nuw nsw i64 %267, 17
%273 = and i64 %272, 8589803520
%274 = add nuw nsw i64 %272, %268
%275 = and i64 %274, 4294967295
%276 = icmp ult i64 %275, %273
%277 = zext i1 %276 to i64
%278 = add nuw nsw i64 %271, %277
%279 = add i64 %274, %257
%280 = and i64 %279, 4294967295
%281 = icmp ult i64 %280, %275
%282 = zext i1 %281 to i64
%283 = add nuw nsw i64 %278, %282
%284 = add nuw nsw i64 %261, %283
%285 = and i64 %284, 4294967295
%286 = icmp ult i64 %285, %283
%287 = zext i1 %286 to i64
%288 = load i64, i64* %154
%289 = and i64 %288, 65535
%290 = lshr i64 %288, 16
%291 = and i64 %290, 65535
%292 = load i64, i64* %19
%293 = and i64 %292, 65535
%294 = lshr i64 %292, 16
%295 = and i64 %294, 65535
%296 = mul nuw nsw i64 %295, %289
%297 = mul nuw nsw i64 %293, %289
%298 = mul nuw nsw i64 %293, %291
%299 = mul nuw nsw i64 %295, %291
%300 = add nuw nsw i64 %296, %298
%301 = and i64 %300, 4294967295
%302 = icmp ult i64 %301, %298
%303 = add nuw nsw i64 %299, 65536
%304 = select i1 %302, i64 %303, i64 %299
%305 = lshr i64 %300, 16
%306 = and i64 %305, 65535
%307 = add nuw nsw i64 %304, %306
%308 = shl nuw nsw i64 %300, 16
%309 = and i64 %308, 4294901760
%310 = add nuw nsw i64 %308, %297
%311 = and i64 %310, 4294967295
%312 = icmp ult i64 %311, %309
%313 = zext i1 %312 to i64
%314 = add nuw nsw i64 %307, %313
%315 = and i64 %314, 2147483648
%316 = icmp eq i64 %315, 0
%317 = select i1 %286, i64 2, i64 1
%318 = select i1 %316, i64 %287, i64 %317
%319 = shl nuw nsw i64 %314, 1
%320 = and i64 %319, 4294967294
%321 = lshr i64 %310, 31
%322 = and i64 %321, 1
%323 = or i64 %320, %322
%324 = shl nuw nsw i64 %311, 1
%325 = and i64 %324, 4294967294
%326 = add i64 %324, %279
%327 = and i64 %326, 4294967295
%328 = icmp ult i64 %327, %325
br i1 %328, label %329, label %335
329: ; preds = %254
%330 = add nuw nsw i64 %323, 1
%331 = and i64 %330, 4294967295
%332 = icmp eq i64 %331, 0
%333 = zext i1 %332 to i64
%334 = add nuw nsw i64 %318, %333
br label %335
335: ; preds = %329, %254
%336 = phi i64 [ %318, %254 ], [ %334, %329 ]
%337 = phi i64 [ %323, %254 ], [ %330, %329 ]
%338 = add i64 %337, %284
%339 = and i64 %338, 4294967295
%340 = icmp ult i64 %339, %337
%341 = zext i1 %340 to i64
%342 = add nuw nsw i64 %336, %341
%343 = getelementptr inbounds i64, i64* %1, i64 4
%344 = load i64, i64* %343
%345 = and i64 %344, 65535
%346 = lshr i64 %344, 16
%347 = and i64 %346, 65535
%348 = load i64, i64* %1
%349 = and i64 %348, 65535
%350 = lshr i64 %348, 16
%351 = and i64 %350, 65535
%352 = mul nuw nsw i64 %351, %345
%353 = mul nuw nsw i64 %349, %345
%354 = mul nuw nsw i64 %349, %347
%355 = mul nuw nsw i64 %351, %347
%356 = add nuw nsw i64 %352, %354
%357 = and i64 %356, 4294967295
%358 = icmp ult i64 %357, %354
%359 = add nuw nsw i64 %355, 65536
%360 = select i1 %358, i64 %359, i64 %355
%361 = lshr i64 %356, 16
%362 = and i64 %361, 65535
%363 = add nuw nsw i64 %360, %362
%364 = shl nuw nsw i64 %356, 16
%365 = and i64 %364, 4294901760
%366 = add nuw nsw i64 %364, %353
%367 = and i64 %366, 4294967295
%368 = icmp ult i64 %367, %365
%369 = zext i1 %368 to i64
%370 = add nuw nsw i64 %363, %369
%371 = lshr i64 %370, 31
%372 = and i64 %371, 1
%373 = add nuw nsw i64 %342, %372
%374 = shl nuw nsw i64 %370, 1
%375 = and i64 %374, 4294967294
%376 = lshr i64 %366, 31
%377 = and i64 %376, 1
%378 = or i64 %375, %377
%379 = shl nuw nsw i64 %367, 1
%380 = and i64 %379, 4294967294
%381 = add i64 %379, %326
%382 = and i64 %381, 4294967295
%383 = icmp ult i64 %382, %380
br i1 %383, label %384, label %390
384: ; preds = %335
%385 = add nuw nsw i64 %378, 1
%386 = and i64 %385, 4294967295
%387 = icmp eq i64 %386, 0
%388 = zext i1 %387 to i64
%389 = add nuw nsw i64 %373, %388
br label %390
390: ; preds = %384, %335
%391 = phi i64 [ %373, %335 ], [ %389, %384 ]
%392 = phi i64 [ %378, %335 ], [ %385, %384 ]
%393 = add i64 %392, %338
%394 = and i64 %393, 4294967295
%395 = icmp ult i64 %394, %392
%396 = zext i1 %395 to i64
%397 = add nuw nsw i64 %391, %396
%398 = getelementptr inbounds i64, i64* %0, i64 4
store i64 %382, i64* %398
%399 = getelementptr inbounds i64, i64* %1, i64 5
%400 = load i64, i64* %399
%401 = and i64 %400, 65535
%402 = lshr i64 %400, 16
%403 = and i64 %402, 65535
%404 = load i64, i64* %1
%405 = and i64 %404, 65535
%406 = lshr i64 %404, 16
%407 = and i64 %406, 65535
%408 = mul nuw nsw i64 %407, %401
%409 = mul nuw nsw i64 %405, %401
%410 = mul nuw nsw i64 %405, %403
%411 = mul nuw nsw i64 %407, %403
%412 = add nuw nsw i64 %408, %410
%413 = and i64 %412, 4294967295
%414 = icmp ult i64 %413, %410
%415 = add nuw nsw i64 %411, 65536
%416 = select i1 %414, i64 %415, i64 %411
%417 = lshr i64 %412, 16
%418 = and i64 %417, 65535
%419 = add nuw nsw i64 %416, %418
%420 = shl nuw nsw i64 %412, 16
%421 = and i64 %420, 4294901760
%422 = add nuw nsw i64 %420, %409
%423 = and i64 %422, 4294967295
%424 = icmp ult i64 %423, %421
%425 = zext i1 %424 to i64
%426 = add nuw nsw i64 %419, %425
%427 = lshr i64 %426, 31
%428 = and i64 %427, 1
%429 = shl nuw nsw i64 %426, 1
%430 = and i64 %429, 4294967294
%431 = lshr i64 %422, 31
%432 = and i64 %431, 1
%433 = or i64 %430, %432
%434 = shl nuw nsw i64 %423, 1
%435 = and i64 %434, 4294967294
%436 = add i64 %434, %393
%437 = and i64 %436, 4294967295
%438 = icmp ult i64 %437, %435
br i1 %438, label %439, label %445
439: ; preds = %390
%440 = add nuw nsw i64 %433, 1
%441 = and i64 %440, 4294967295
%442 = icmp eq i64 %441, 0
%443 = zext i1 %442 to i64
%444 = add nuw nsw i64 %428, %443
br label %445
445: ; preds = %439, %390
%446 = phi i64 [ %428, %390 ], [ %444, %439 ]
%447 = phi i64 [ %433, %390 ], [ %440, %439 ]
%448 = add i64 %397, %447
%449 = and i64 %448, 4294967295
%450 = icmp ult i64 %449, %447
%451 = zext i1 %450 to i64
%452 = add nuw nsw i64 %446, %451
%453 = load i64, i64* %343
%454 = and i64 %453, 65535
%455 = lshr i64 %453, 16
%456 = and i64 %455, 65535
%457 = load i64, i64* %19
%458 = and i64 %457, 65535
%459 = lshr i64 %457, 16
%460 = and i64 %459, 65535
%461 = mul nuw nsw i64 %460, %454
%462 = mul nuw nsw i64 %458, %454
%463 = mul nuw nsw i64 %458, %456
%464 = mul nuw nsw i64 %460, %456
%465 = add nuw nsw i64 %461, %463
%466 = and i64 %465, 4294967295
%467 = icmp ult i64 %466, %463
%468 = add nuw nsw i64 %464, 65536
%469 = select i1 %467, i64 %468, i64 %464
%470 = lshr i64 %465, 16
%471 = and i64 %470, 65535
%472 = add nuw nsw i64 %469, %471
%473 = shl nuw nsw i64 %465, 16
%474 = and i64 %473, 4294901760
%475 = add nuw nsw i64 %473, %462
%476 = and i64 %475, 4294967295
%477 = icmp ult i64 %476, %474
%478 = zext i1 %477 to i64
%479 = add nuw nsw i64 %472, %478
%480 = lshr i64 %479, 31
%481 = and i64 %480, 1
%482 = add nuw nsw i64 %452, %481
%483 = shl nuw nsw i64 %479, 1
%484 = and i64 %483, 4294967294
%485 = lshr i64 %475, 31
%486 = and i64 %485, 1
%487 = or i64 %484, %486
%488 = shl nuw nsw i64 %476, 1
%489 = and i64 %488, 4294967294
%490 = add i64 %488, %436
%491 = and i64 %490, 4294967295
%492 = icmp ult i64 %491, %489
br i1 %492, label %493, label %499
493: ; preds = %445
%494 = add nuw nsw i64 %487, 1
%495 = and i64 %494, 4294967295
%496 = icmp eq i64 %495, 0
%497 = zext i1 %496 to i64
%498 = add nuw nsw i64 %482, %497
br label %499
499: ; preds = %493, %445
%500 = phi i64 [ %482, %445 ], [ %498, %493 ]
%501 = phi i64 [ %487, %445 ], [ %494, %493 ]
%502 = add i64 %501, %448
%503 = and i64 %502, 4294967295
%504 = icmp ult i64 %503, %501
%505 = zext i1 %504 to i64
%506 = add nuw nsw i64 %500, %505
%507 = load i64, i64* %154
%508 = and i64 %507, 65535
%509 = lshr i64 %507, 16
%510 = and i64 %509, 65535
%511 = load i64, i64* %97
%512 = and i64 %511, 65535
%513 = lshr i64 %511, 16
%514 = and i64 %513, 65535
%515 = mul nuw nsw i64 %514, %508
%516 = mul nuw nsw i64 %512, %508
%517 = mul nuw nsw i64 %512, %510
%518 = mul nuw nsw i64 %514, %510
%519 = add nuw nsw i64 %515, %517
%520 = and i64 %519, 4294967295
%521 = icmp ult i64 %520, %517
%522 = add nuw nsw i64 %518, 65536
%523 = select i1 %521, i64 %522, i64 %518
%524 = lshr i64 %519, 16
%525 = and i64 %524, 65535
%526 = add nuw nsw i64 %523, %525
%527 = shl nuw nsw i64 %519, 16
%528 = and i64 %527, 4294901760
%529 = add nuw nsw i64 %527, %516
%530 = and i64 %529, 4294967295
%531 = icmp ult i64 %530, %528
%532 = zext i1 %531 to i64
%533 = add nuw nsw i64 %526, %532
%534 = lshr i64 %533, 31
%535 = and i64 %534, 1
%536 = add nuw nsw i64 %506, %535
%537 = shl nuw nsw i64 %533, 1
%538 = and i64 %537, 4294967294
%539 = lshr i64 %529, 31
%540 = and i64 %539, 1
%541 = or i64 %538, %540
%542 = shl nuw nsw i64 %530, 1
%543 = and i64 %542, 4294967294
%544 = add i64 %542, %490
%545 = and i64 %544, 4294967295
%546 = icmp ult i64 %545, %543
br i1 %546, label %547, label %553
547: ; preds = %499
%548 = add nuw nsw i64 %541, 1
%549 = and i64 %548, 4294967295
%550 = icmp eq i64 %549, 0
%551 = zext i1 %550 to i64
%552 = add nuw nsw i64 %536, %551
br label %553
553: ; preds = %547, %499
%554 = phi i64 [ %536, %499 ], [ %552, %547 ]
%555 = phi i64 [ %541, %499 ], [ %548, %547 ]
%556 = add i64 %555, %502
%557 = and i64 %556, 4294967295
%558 = icmp ult i64 %557, %555
%559 = zext i1 %558 to i64
%560 = add nuw nsw i64 %554, %559
%561 = getelementptr inbounds i64, i64* %0, i64 5
store i64 %545, i64* %561
%562 = load i64, i64* %154
%563 = and i64 %562, 65535
%564 = lshr i64 %562, 16
%565 = and i64 %564, 65535
%566 = mul nuw nsw i64 %565, %563
%567 = mul nuw nsw i64 %563, %563
%568 = mul nuw nsw i64 %565, %565
%569 = lshr i64 %566, 15
%570 = add nuw nsw i64 %569, %568
%571 = shl nuw nsw i64 %566, 17
%572 = and i64 %571, 8589803520
%573 = add nuw nsw i64 %571, %567
%574 = and i64 %573, 4294967295
%575 = icmp ult i64 %574, %572
%576 = zext i1 %575 to i64
%577 = add nuw nsw i64 %570, %576
%578 = add i64 %573, %556
%579 = and i64 %578, 4294967295
%580 = icmp ult i64 %579, %574
%581 = zext i1 %580 to i64
%582 = add nuw nsw i64 %577, %581
%583 = add nuw nsw i64 %560, %582
%584 = and i64 %583, 4294967295
%585 = icmp ult i64 %584, %582
%586 = zext i1 %585 to i64
%587 = load i64, i64* %343
%588 = and i64 %587, 65535
%589 = lshr i64 %587, 16
%590 = and i64 %589, 65535
%591 = load i64, i64* %97
%592 = and i64 %591, 65535
%593 = lshr i64 %591, 16
%594 = and i64 %593, 65535
%595 = mul nuw nsw i64 %594, %588
%596 = mul nuw nsw i64 %592, %588
%597 = mul nuw nsw i64 %592, %590
%598 = mul nuw nsw i64 %594, %590
%599 = add nuw nsw i64 %595, %597
%600 = and i64 %599, 4294967295
%601 = icmp ult i64 %600, %597
%602 = add nuw nsw i64 %598, 65536
%603 = select i1 %601, i64 %602, i64 %598
%604 = lshr i64 %599, 16
%605 = and i64 %604, 65535
%606 = add nuw nsw i64 %603, %605
%607 = shl nuw nsw i64 %599, 16
%608 = and i64 %607, 4294901760
%609 = add nuw nsw i64 %607, %596
%610 = and i64 %609, 4294967295
%611 = icmp ult i64 %610, %608
%612 = zext i1 %611 to i64
%613 = add nuw nsw i64 %606, %612
%614 = and i64 %613, 2147483648
%615 = icmp eq i64 %614, 0
%616 = select i1 %585, i64 2, i64 1
%617 = select i1 %615, i64 %586, i64 %616
%618 = shl nuw nsw i64 %613, 1
%619 = and i64 %618, 4294967294
%620 = lshr i64 %609, 31
%621 = and i64 %620, 1
%622 = or i64 %619, %621
%623 = shl nuw nsw i64 %610, 1
%624 = and i64 %623, 4294967294
%625 = add i64 %623, %578
%626 = and i64 %625, 4294967295
%627 = icmp ult i64 %626, %624
br i1 %627, label %628, label %634
628: ; preds = %553
%629 = add nuw nsw i64 %622, 1
%630 = and i64 %629, 4294967295
%631 = icmp eq i64 %630, 0
%632 = zext i1 %631 to i64
%633 = add nuw nsw i64 %617, %632
br label %634
634: ; preds = %628, %553
%635 = phi i64 [ %617, %553 ], [ %633, %628 ]
%636 = phi i64 [ %622, %553 ], [ %629, %628 ]
%637 = add i64 %636, %583
%638 = and i64 %637, 4294967295
%639 = icmp ult i64 %638, %636
%640 = zext i1 %639 to i64
%641 = add nuw nsw i64 %635, %640
%642 = load i64, i64* %399
%643 = and i64 %642, 65535
%644 = lshr i64 %642, 16
%645 = and i64 %644, 65535
%646 = load i64, i64* %19
%647 = and i64 %646, 65535
%648 = lshr i64 %646, 16
%649 = and i64 %648, 65535
%650 = mul nuw nsw i64 %649, %643
%651 = mul nuw nsw i64 %647, %643
%652 = mul nuw nsw i64 %647, %645
%653 = mul nuw nsw i64 %649, %645
%654 = add nuw nsw i64 %650, %652
%655 = and i64 %654, 4294967295
%656 = icmp ult i64 %655, %652
%657 = add nuw nsw i64 %653, 65536
%658 = select i1 %656, i64 %657, i64 %653
%659 = lshr i64 %654, 16
%660 = and i64 %659, 65535
%661 = add nuw nsw i64 %658, %660
%662 = shl nuw nsw i64 %654, 16
%663 = and i64 %662, 4294901760
%664 = add nuw nsw i64 %662, %651
%665 = and i64 %664, 4294967295
%666 = icmp ult i64 %665, %663
%667 = zext i1 %666 to i64
%668 = add nuw nsw i64 %661, %667
%669 = lshr i64 %668, 31
%670 = and i64 %669, 1
%671 = add nuw nsw i64 %641, %670
%672 = shl nuw nsw i64 %668, 1
%673 = and i64 %672, 4294967294
%674 = lshr i64 %664, 31
%675 = and i64 %674, 1
%676 = or i64 %673, %675
%677 = shl nuw nsw i64 %665, 1
%678 = and i64 %677, 4294967294
%679 = add i64 %677, %625
%680 = and i64 %679, 4294967295
%681 = icmp ult i64 %680, %678
br i1 %681, label %682, label %688
682: ; preds = %634
%683 = add nuw nsw i64 %676, 1
%684 = and i64 %683, 4294967295
%685 = icmp eq i64 %684, 0
%686 = zext i1 %685 to i64
%687 = add nuw nsw i64 %671, %686
br label %688
688: ; preds = %682, %634
%689 = phi i64 [ %671, %634 ], [ %687, %682 ]
%690 = phi i64 [ %676, %634 ], [ %683, %682 ]
%691 = add i64 %690, %637
%692 = and i64 %691, 4294967295
%693 = icmp ult i64 %692, %690
%694 = zext i1 %693 to i64
%695 = add nuw nsw i64 %689, %694
%696 = getelementptr inbounds i64, i64* %1, i64 6
%697 = load i64, i64* %696
%698 = and i64 %697, 65535
%699 = lshr i64 %697, 16
%700 = and i64 %699, 65535
%701 = load i64, i64* %1
%702 = and i64 %701, 65535
%703 = lshr i64 %701, 16
%704 = and i64 %703, 65535
%705 = mul nuw nsw i64 %704, %698
%706 = mul nuw nsw i64 %702, %698
%707 = mul nuw nsw i64 %702, %700
%708 = mul nuw nsw i64 %704, %700
%709 = add nuw nsw i64 %705, %707
%710 = and i64 %709, 4294967295
%711 = icmp ult i64 %710, %707
%712 = add nuw nsw i64 %708, 65536
%713 = select i1 %711, i64 %712, i64 %708
%714 = lshr i64 %709, 16
%715 = and i64 %714, 65535
%716 = add nuw nsw i64 %713, %715
%717 = shl nuw nsw i64 %709, 16
%718 = and i64 %717, 4294901760
%719 = add nuw nsw i64 %717, %706
%720 = and i64 %719, 4294967295
%721 = icmp ult i64 %720, %718
%722 = zext i1 %721 to i64
%723 = add nuw nsw i64 %716, %722
%724 = lshr i64 %723, 31
%725 = and i64 %724, 1
%726 = add nuw nsw i64 %695, %725
%727 = shl nuw nsw i64 %723, 1
%728 = and i64 %727, 4294967294
%729 = lshr i64 %719, 31
%730 = and i64 %729, 1
%731 = or i64 %728, %730
%732 = shl nuw nsw i64 %720, 1
%733 = and i64 %732, 4294967294
%734 = add i64 %732, %679
%735 = and i64 %734, 4294967295
%736 = icmp ult i64 %735, %733
br i1 %736, label %737, label %743
737: ; preds = %688
%738 = add nuw nsw i64 %731, 1
%739 = and i64 %738, 4294967295
%740 = icmp eq i64 %739, 0
%741 = zext i1 %740 to i64
%742 = add nuw nsw i64 %726, %741
br label %743
743: ; preds = %737, %688
%744 = phi i64 [ %726, %688 ], [ %742, %737 ]
%745 = phi i64 [ %731, %688 ], [ %738, %737 ]
%746 = add i64 %745, %691
%747 = and i64 %746, 4294967295
%748 = icmp ult i64 %747, %745
%749 = zext i1 %748 to i64
%750 = add nuw nsw i64 %744, %749
%751 = getelementptr inbounds i64, i64* %0, i64 6
store i64 %735, i64* %751
%752 = getelementptr inbounds i64, i64* %1, i64 7
%753 = load i64, i64* %752
%754 = and i64 %753, 65535
%755 = lshr i64 %753, 16
%756 = and i64 %755, 65535
%757 = load i64, i64* %1
%758 = and i64 %757, 65535
%759 = lshr i64 %757, 16
%760 = and i64 %759, 65535
%761 = mul nuw nsw i64 %760, %754
%762 = mul nuw nsw i64 %758, %754
%763 = mul nuw nsw i64 %758, %756
%764 = mul nuw nsw i64 %760, %756
%765 = add nuw nsw i64 %761, %763
%766 = and i64 %765, 4294967295
%767 = icmp ult i64 %766, %763
%768 = add nuw nsw i64 %764, 65536
%769 = select i1 %767, i64 %768, i64 %764
%770 = lshr i64 %765, 16
%771 = and i64 %770, 65535
%772 = add nuw nsw i64 %769, %771
%773 = shl nuw nsw i64 %765, 16
%774 = and i64 %773, 4294901760
%775 = add nuw nsw i64 %773, %762
%776 = and i64 %775, 4294967295
%777 = icmp ult i64 %776, %774
%778 = zext i1 %777 to i64
%779 = add nuw nsw i64 %772, %778
%780 = lshr i64 %779, 31
%781 = and i64 %780, 1
%782 = shl nuw nsw i64 %779, 1
%783 = and i64 %782, 4294967294
%784 = lshr i64 %775, 31
%785 = and i64 %784, 1
%786 = or i64 %783, %785
%787 = shl nuw nsw i64 %776, 1
%788 = and i64 %787, 4294967294
%789 = add i64 %787, %746
%790 = and i64 %789, 4294967295
%791 = icmp ult i64 %790, %788
br i1 %791, label %792, label %798
792: ; preds = %743
%793 = add nuw nsw i64 %786, 1
%794 = and i64 %793, 4294967295
%795 = icmp eq i64 %794, 0
%796 = zext i1 %795 to i64
%797 = add nuw nsw i64 %781, %796
br label %798
798: ; preds = %792, %743
%799 = phi i64 [ %781, %743 ], [ %797, %792 ]
%800 = phi i64 [ %786, %743 ], [ %793, %792 ]
%801 = add i64 %750, %800
%802 = and i64 %801, 4294967295
%803 = icmp ult i64 %802, %800
%804 = zext i1 %803 to i64
%805 = add nuw nsw i64 %799, %804
%806 = load i64, i64* %696
%807 = and i64 %806, 65535
%808 = lshr i64 %806, 16
%809 = and i64 %808, 65535
%810 = load i64, i64* %19
%811 = and i64 %810, 65535
%812 = lshr i64 %810, 16
%813 = and i64 %812, 65535
%814 = mul nuw nsw i64 %813, %807
%815 = mul nuw nsw i64 %811, %807
%816 = mul nuw nsw i64 %811, %809
%817 = mul nuw nsw i64 %813, %809
%818 = add nuw nsw i64 %814, %816
%819 = and i64 %818, 4294967295
%820 = icmp ult i64 %819, %816
%821 = add nuw nsw i64 %817, 65536
%822 = select i1 %820, i64 %821, i64 %817
%823 = lshr i64 %818, 16
%824 = and i64 %823, 65535
%825 = add nuw nsw i64 %822, %824
%826 = shl nuw nsw i64 %818, 16
%827 = and i64 %826, 4294901760
%828 = add nuw nsw i64 %826, %815
%829 = and i64 %828, 4294967295
%830 = icmp ult i64 %829, %827
%831 = zext i1 %830 to i64
%832 = add nuw nsw i64 %825, %831
%833 = lshr i64 %832, 31
%834 = and i64 %833, 1
%835 = add nuw nsw i64 %805, %834
%836 = shl nuw nsw i64 %832, 1
%837 = and i64 %836, 4294967294
%838 = lshr i64 %828, 31
%839 = and i64 %838, 1
%840 = or i64 %837, %839
%841 = shl nuw nsw i64 %829, 1
%842 = and i64 %841, 4294967294
%843 = add i64 %841, %789
%844 = and i64 %843, 4294967295
%845 = icmp ult i64 %844, %842
br i1 %845, label %846, label %852
846: ; preds = %798
%847 = add nuw nsw i64 %840, 1
%848 = and i64 %847, 4294967295
%849 = icmp eq i64 %848, 0
%850 = zext i1 %849 to i64
%851 = add nuw nsw i64 %835, %850
br label %852
852: ; preds = %846, %798
%853 = phi i64 [ %835, %798 ], [ %851, %846 ]
%854 = phi i64 [ %840, %798 ], [ %847, %846 ]
%855 = add i64 %854, %801
%856 = and i64 %855, 4294967295
%857 = icmp ult i64 %856, %854
%858 = zext i1 %857 to i64
%859 = add nuw nsw i64 %853, %858
%860 = load i64, i64* %399
%861 = and i64 %860, 65535
%862 = lshr i64 %860, 16
%863 = and i64 %862, 65535
%864 = load i64, i64* %97
%865 = and i64 %864, 65535
%866 = lshr i64 %864, 16
%867 = and i64 %866, 65535
%868 = mul nuw nsw i64 %867, %861
%869 = mul nuw nsw i64 %865, %861
%870 = mul nuw nsw i64 %865, %863
%871 = mul nuw nsw i64 %867, %863
%872 = add nuw nsw i64 %868, %870
%873 = and i64 %872, 4294967295
%874 = icmp ult i64 %873, %870
%875 = add nuw nsw i64 %871, 65536
%876 = select i1 %874, i64 %875, i64 %871
%877 = lshr i64 %872, 16
%878 = and i64 %877, 65535
%879 = add nuw nsw i64 %876, %878
%880 = shl nuw nsw i64 %872, 16
%881 = and i64 %880, 4294901760
%882 = add nuw nsw i64 %880, %869
%883 = and i64 %882, 4294967295
%884 = icmp ult i64 %883, %881
%885 = zext i1 %884 to i64
%886 = add nuw nsw i64 %879, %885
%887 = lshr i64 %886, 31
%888 = and i64 %887, 1
%889 = add nuw nsw i64 %859, %888
%890 = shl nuw nsw i64 %886, 1
%891 = and i64 %890, 4294967294
%892 = lshr i64 %882, 31
%893 = and i64 %892, 1
%894 = or i64 %891, %893
%895 = shl nuw nsw i64 %883, 1
%896 = and i64 %895, 4294967294
%897 = add i64 %895, %843
%898 = and i64 %897, 4294967295
%899 = icmp ult i64 %898, %896
br i1 %899, label %900, label %906
900: ; preds = %852
%901 = add nuw nsw i64 %894, 1
%902 = and i64 %901, 4294967295
%903 = icmp eq i64 %902, 0
%904 = zext i1 %903 to i64
%905 = add nuw nsw i64 %889, %904
br label %906
906: ; preds = %900, %852
%907 = phi i64 [ %889, %852 ], [ %905, %900 ]
%908 = phi i64 [ %894, %852 ], [ %901, %900 ]
%909 = add i64 %908, %855
%910 = and i64 %909, 4294967295
%911 = icmp ult i64 %910, %908
%912 = zext i1 %911 to i64
%913 = add nuw nsw i64 %907, %912
%914 = load i64, i64* %343
%915 = and i64 %914, 65535
%916 = lshr i64 %914, 16
%917 = and i64 %916, 65535
%918 = load i64, i64* %154
%919 = and i64 %918, 65535
%920 = lshr i64 %918, 16
%921 = and i64 %920, 65535
%922 = mul nuw nsw i64 %921, %915
%923 = mul nuw nsw i64 %919, %915
%924 = mul nuw nsw i64 %919, %917
%925 = mul nuw nsw i64 %921, %917
%926 = add nuw nsw i64 %922, %924
%927 = and i64 %926, 4294967295
%928 = icmp ult i64 %927, %924
%929 = add nuw nsw i64 %925, 65536
%930 = select i1 %928, i64 %929, i64 %925
%931 = lshr i64 %926, 16
%932 = and i64 %931, 65535
%933 = add nuw nsw i64 %930, %932
%934 = shl nuw nsw i64 %926, 16
%935 = and i64 %934, 4294901760
%936 = add nuw nsw i64 %934, %923
%937 = and i64 %936, 4294967295
%938 = icmp ult i64 %937, %935
%939 = zext i1 %938 to i64
%940 = add nuw nsw i64 %933, %939
%941 = lshr i64 %940, 31
%942 = and i64 %941, 1
%943 = add nuw nsw i64 %913, %942
%944 = shl nuw nsw i64 %940, 1
%945 = and i64 %944, 4294967294
%946 = lshr i64 %936, 31
%947 = and i64 %946, 1
%948 = or i64 %945, %947
%949 = shl nuw nsw i64 %937, 1
%950 = and i64 %949, 4294967294
%951 = add i64 %949, %897
%952 = and i64 %951, 4294967295
%953 = icmp ult i64 %952, %950
br i1 %953, label %954, label %960
954: ; preds = %906
%955 = add nuw nsw i64 %948, 1
%956 = and i64 %955, 4294967295
%957 = icmp eq i64 %956, 0
%958 = zext i1 %957 to i64
%959 = add nuw nsw i64 %943, %958
br label %960
960: ; preds = %954, %906
%961 = phi i64 [ %943, %906 ], [ %959, %954 ]
%962 = phi i64 [ %948, %906 ], [ %955, %954 ]
%963 = add i64 %962, %909
%964 = and i64 %963, 4294967295
%965 = icmp ult i64 %964, %962
%966 = zext i1 %965 to i64
%967 = add nuw nsw i64 %961, %966
%968 = getelementptr inbounds i64, i64* %0, i64 7
store i64 %952, i64* %968
%969 = load i64, i64* %343
%970 = and i64 %969, 65535
%971 = lshr i64 %969, 16
%972 = and i64 %971, 65535
%973 = mul nuw nsw i64 %972, %970
%974 = mul nuw nsw i64 %970, %970
%975 = mul nuw nsw i64 %972, %972
%976 = lshr i64 %973, 15
%977 = add nuw nsw i64 %976, %975
%978 = shl nuw nsw i64 %973, 17
%979 = and i64 %978, 8589803520
%980 = add nuw nsw i64 %978, %974
%981 = and i64 %980, 4294967295
%982 = icmp ult i64 %981, %979
%983 = zext i1 %982 to i64
%984 = add nuw nsw i64 %977, %983
%985 = add i64 %980, %963
%986 = and i64 %985, 4294967295
%987 = icmp ult i64 %986, %981
%988 = zext i1 %987 to i64
%989 = add nuw nsw i64 %984, %988
%990 = add nuw nsw i64 %967, %989
%991 = and i64 %990, 4294967295
%992 = icmp ult i64 %991, %989
%993 = zext i1 %992 to i64
%994 = load i64, i64* %399
%995 = and i64 %994, 65535
%996 = lshr i64 %994, 16
%997 = and i64 %996, 65535
%998 = load i64, i64* %154
%999 = and i64 %998, 65535
%1000 = lshr i64 %998, 16
%1001 = and i64 %1000, 65535
%1002 = mul nuw nsw i64 %1001, %995
%1003 = mul nuw nsw i64 %999, %995
%1004 = mul nuw nsw i64 %999, %997
%1005 = mul nuw nsw i64 %1001, %997
%1006 = add nuw nsw i64 %1002, %1004
%1007 = and i64 %1006, 4294967295
%1008 = icmp ult i64 %1007, %1004
%1009 = add nuw nsw i64 %1005, 65536
%1010 = select i1 %1008, i64 %1009, i64 %1005
%1011 = lshr i64 %1006, 16
%1012 = and i64 %1011, 65535
%1013 = add nuw nsw i64 %1010, %1012
%1014 = shl nuw nsw i64 %1006, 16
%1015 = and i64 %1014, 4294901760
%1016 = add nuw nsw i64 %1014, %1003
%1017 = and i64 %1016, 4294967295
%1018 = icmp ult i64 %1017, %1015
%1019 = zext i1 %1018 to i64
%1020 = add nuw nsw i64 %1013, %1019
%1021 = and i64 %1020, 2147483648
%1022 = icmp eq i64 %1021, 0
%1023 = select i1 %992, i64 2, i64 1
%1024 = select i1 %1022, i64 %993, i64 %1023
%1025 = shl nuw nsw i64 %1020, 1
%1026 = and i64 %1025, 4294967294
%1027 = lshr i64 %1016, 31
%1028 = and i64 %1027, 1
%1029 = or i64 %1026, %1028
%1030 = shl nuw nsw i64 %1017, 1
%1031 = and i64 %1030, 4294967294
%1032 = add i64 %1030, %985
%1033 = and i64 %1032, 4294967295
%1034 = icmp ult i64 %1033, %1031
br i1 %1034, label %1035, label %1041
1035: ; preds = %960
%1036 = add nuw nsw i64 %1029, 1
%1037 = and i64 %1036, 4294967295
%1038 = icmp eq i64 %1037, 0
%1039 = zext i1 %1038 to i64
%1040 = add nuw nsw i64 %1024, %1039
br label %1041
1041: ; preds = %1035, %960
%1042 = phi i64 [ %1024, %960 ], [ %1040, %1035 ]
%1043 = phi i64 [ %1029, %960 ], [ %1036, %1035 ]
%1044 = add i64 %1043, %990
%1045 = and i64 %1044, 4294967295
%1046 = icmp ult i64 %1045, %1043
%1047 = zext i1 %1046 to i64
%1048 = add nuw nsw i64 %1042, %1047
%1049 = load i64, i64* %696
%1050 = and i64 %1049, 65535
%1051 = lshr i64 %1049, 16
%1052 = and i64 %1051, 65535
%1053 = load i64, i64* %97
%1054 = and i64 %1053, 65535
%1055 = lshr i64 %1053, 16
%1056 = and i64 %1055, 65535
%1057 = mul nuw nsw i64 %1056, %1050
%1058 = mul nuw nsw i64 %1054, %1050
%1059 = mul nuw nsw i64 %1054, %1052
%1060 = mul nuw nsw i64 %1056, %1052
%1061 = add nuw nsw i64 %1057, %1059
%1062 = and i64 %1061, 4294967295
%1063 = icmp ult i64 %1062, %1059
%1064 = add nuw nsw i64 %1060, 65536
%1065 = select i1 %1063, i64 %1064, i64 %1060
%1066 = lshr i64 %1061, 16
%1067 = and i64 %1066, 65535
%1068 = add nuw nsw i64 %1065, %1067
%1069 = shl nuw nsw i64 %1061, 16
%1070 = and i64 %1069, 4294901760
%1071 = add nuw nsw i64 %1069, %1058
%1072 = and i64 %1071, 4294967295
%1073 = icmp ult i64 %1072, %1070
%1074 = zext i1 %1073 to i64
%1075 = add nuw nsw i64 %1068, %1074
%1076 = lshr i64 %1075, 31
%1077 = and i64 %1076, 1
%1078 = add nuw nsw i64 %1048, %1077
%1079 = shl nuw nsw i64 %1075, 1
%1080 = and i64 %1079, 4294967294
%1081 = lshr i64 %1071, 31
%1082 = and i64 %1081, 1
%1083 = or i64 %1080, %1082
%1084 = shl nuw nsw i64 %1072, 1
%1085 = and i64 %1084, 4294967294
%1086 = add i64 %1084, %1032
%1087 = and i64 %1086, 4294967295
%1088 = icmp ult i64 %1087, %1085
br i1 %1088, label %1089, label %1095
1089: ; preds = %1041
%1090 = add nuw nsw i64 %1083, 1
%1091 = and i64 %1090, 4294967295
%1092 = icmp eq i64 %1091, 0
%1093 = zext i1 %1092 to i64
%1094 = add nuw nsw i64 %1078, %1093
br label %1095
1095: ; preds = %1089, %1041
%1096 = phi i64 [ %1078, %1041 ], [ %1094, %1089 ]
%1097 = phi i64 [ %1083, %1041 ], [ %1090, %1089 ]
%1098 = add i64 %1097, %1044
%1099 = and i64 %1098, 4294967295
%1100 = icmp ult i64 %1099, %1097
%1101 = zext i1 %1100 to i64
%1102 = add nuw nsw i64 %1096, %1101
%1103 = load i64, i64* %752
%1104 = and i64 %1103, 65535
%1105 = lshr i64 %1103, 16
%1106 = and i64 %1105, 65535
%1107 = load i64, i64* %19
%1108 = and i64 %1107, 65535
%1109 = lshr i64 %1107, 16
%1110 = and i64 %1109, 65535
%1111 = mul nuw nsw i64 %1110, %1104
%1112 = mul nuw nsw i64 %1108, %1104
%1113 = mul nuw nsw i64 %1108, %1106
%1114 = mul nuw nsw i64 %1110, %1106
%1115 = add nuw nsw i64 %1111, %1113
%1116 = and i64 %1115, 4294967295
%1117 = icmp ult i64 %1116, %1113
%1118 = add nuw nsw i64 %1114, 65536
%1119 = select i1 %1117, i64 %1118, i64 %1114
%1120 = lshr i64 %1115, 16
%1121 = and i64 %1120, 65535
%1122 = add nuw nsw i64 %1119, %1121
%1123 = shl nuw nsw i64 %1115, 16
%1124 = and i64 %1123, 4294901760
%1125 = add nuw nsw i64 %1123, %1112
%1126 = and i64 %1125, 4294967295
%1127 = icmp ult i64 %1126, %1124
%1128 = zext i1 %1127 to i64
%1129 = add nuw nsw i64 %1122, %1128
%1130 = lshr i64 %1129, 31
%1131 = and i64 %1130, 1
%1132 = add nuw nsw i64 %1102, %1131
%1133 = shl nuw nsw i64 %1129, 1
%1134 = and i64 %1133, 4294967294
%1135 = lshr i64 %1125, 31
%1136 = and i64 %1135, 1
%1137 = or i64 %1134, %1136
%1138 = shl nuw nsw i64 %1126, 1
%1139 = and i64 %1138, 4294967294
%1140 = add i64 %1138, %1086
%1141 = and i64 %1140, 4294967295
%1142 = icmp ult i64 %1141, %1139
br i1 %1142, label %1143, label %1149
1143: ; preds = %1095
%1144 = add nuw nsw i64 %1137, 1
%1145 = and i64 %1144, 4294967295
%1146 = icmp eq i64 %1145, 0
%1147 = zext i1 %1146 to i64
%1148 = add nuw nsw i64 %1132, %1147
br label %1149
1149: ; preds = %1143, %1095
%1150 = phi i64 [ %1132, %1095 ], [ %1148, %1143 ]
%1151 = phi i64 [ %1137, %1095 ], [ %1144, %1143 ]
%1152 = add i64 %1151, %1098
%1153 = and i64 %1152, 4294967295
%1154 = icmp ult i64 %1153, %1151
%1155 = zext i1 %1154 to i64
%1156 = add nuw nsw i64 %1150, %1155
%1157 = getelementptr inbounds i64, i64* %0, i64 8
store i64 %1141, i64* %1157
%1158 = load i64, i64* %752
%1159 = and i64 %1158, 65535
%1160 = lshr i64 %1158, 16
%1161 = and i64 %1160, 65535
%1162 = load i64, i64* %97
%1163 = and i64 %1162, 65535
%1164 = lshr i64 %1162, 16
%1165 = and i64 %1164, 65535
%1166 = mul nuw nsw i64 %1165, %1159
%1167 = mul nuw nsw i64 %1163, %1159
%1168 = mul nuw nsw i64 %1163, %1161
%1169 = mul nuw nsw i64 %1165, %1161
%1170 = add nuw nsw i64 %1166, %1168
%1171 = and i64 %1170, 4294967295
%1172 = icmp ult i64 %1171, %1168
%1173 = add nuw nsw i64 %1169, 65536
%1174 = select i1 %1172, i64 %1173, i64 %1169
%1175 = lshr i64 %1170, 16
%1176 = and i64 %1175, 65535
%1177 = add nuw nsw i64 %1174, %1176
%1178 = shl nuw nsw i64 %1170, 16
%1179 = and i64 %1178, 4294901760
%1180 = add nuw nsw i64 %1178, %1167
%1181 = and i64 %1180, 4294967295
%1182 = icmp ult i64 %1181, %1179
%1183 = zext i1 %1182 to i64
%1184 = add nuw nsw i64 %1177, %1183
%1185 = lshr i64 %1184, 31
%1186 = and i64 %1185, 1
%1187 = shl nuw nsw i64 %1184, 1
%1188 = and i64 %1187, 4294967294
%1189 = lshr i64 %1180, 31
%1190 = and i64 %1189, 1
%1191 = or i64 %1188, %1190
%1192 = shl nuw nsw i64 %1181, 1
%1193 = and i64 %1192, 4294967294
%1194 = add i64 %1192, %1152
%1195 = and i64 %1194, 4294967295
%1196 = icmp ult i64 %1195, %1193
br i1 %1196, label %1197, label %1203
1197: ; preds = %1149
%1198 = add nuw nsw i64 %1191, 1
%1199 = and i64 %1198, 4294967295
%1200 = icmp eq i64 %1199, 0
%1201 = zext i1 %1200 to i64
%1202 = add nuw nsw i64 %1186, %1201
br label %1203
1203: ; preds = %1197, %1149
%1204 = phi i64 [ %1186, %1149 ], [ %1202, %1197 ]
%1205 = phi i64 [ %1191, %1149 ], [ %1198, %1197 ]
%1206 = add i64 %1156, %1205
%1207 = and i64 %1206, 4294967295
%1208 = icmp ult i64 %1207, %1205
%1209 = zext i1 %1208 to i64
%1210 = add nuw nsw i64 %1204, %1209
%1211 = load i64, i64* %696
%1212 = and i64 %1211, 65535
%1213 = lshr i64 %1211, 16
%1214 = and i64 %1213, 65535
%1215 = load i64, i64* %154
%1216 = and i64 %1215, 65535
%1217 = lshr i64 %1215, 16
%1218 = and i64 %1217, 65535
%1219 = mul nuw nsw i64 %1218, %1212
%1220 = mul nuw nsw i64 %1216, %1212
%1221 = mul nuw nsw i64 %1216, %1214
%1222 = mul nuw nsw i64 %1218, %1214
%1223 = add nuw nsw i64 %1219, %1221
%1224 = and i64 %1223, 4294967295
%1225 = icmp ult i64 %1224, %1221
%1226 = add nuw nsw i64 %1222, 65536
%1227 = select i1 %1225, i64 %1226, i64 %1222
%1228 = lshr i64 %1223, 16
%1229 = and i64 %1228, 65535
%1230 = add nuw nsw i64 %1227, %1229
%1231 = shl nuw nsw i64 %1223, 16
%1232 = and i64 %1231, 4294901760
%1233 = add nuw nsw i64 %1231, %1220
%1234 = and i64 %1233, 4294967295
%1235 = icmp ult i64 %1234, %1232
%1236 = zext i1 %1235 to i64
%1237 = add nuw nsw i64 %1230, %1236
%1238 = lshr i64 %1237, 31
%1239 = and i64 %1238, 1
%1240 = add nuw nsw i64 %1210, %1239
%1241 = shl nuw nsw i64 %1237, 1
%1242 = and i64 %1241, 4294967294
%1243 = lshr i64 %1233, 31
%1244 = and i64 %1243, 1
%1245 = or i64 %1242, %1244
%1246 = shl nuw nsw i64 %1234, 1
%1247 = and i64 %1246, 4294967294
%1248 = add i64 %1246, %1194
%1249 = and i64 %1248, 4294967295
%1250 = icmp ult i64 %1249, %1247
br i1 %1250, label %1251, label %1257
1251: ; preds = %1203
%1252 = add nuw nsw i64 %1245, 1
%1253 = and i64 %1252, 4294967295
%1254 = icmp eq i64 %1253, 0
%1255 = zext i1 %1254 to i64
%1256 = add nuw nsw i64 %1240, %1255
br label %1257
1257: ; preds = %1251, %1203
%1258 = phi i64 [ %1240, %1203 ], [ %1256, %1251 ]
%1259 = phi i64 [ %1245, %1203 ], [ %1252, %1251 ]
%1260 = add i64 %1259, %1206
%1261 = and i64 %1260, 4294967295
%1262 = icmp ult i64 %1261, %1259
%1263 = zext i1 %1262 to i64
%1264 = add nuw nsw i64 %1258, %1263
%1265 = load i64, i64* %399
%1266 = and i64 %1265, 65535
%1267 = lshr i64 %1265, 16
%1268 = and i64 %1267, 65535
%1269 = load i64, i64* %343
%1270 = and i64 %1269, 65535
%1271 = lshr i64 %1269, 16
%1272 = and i64 %1271, 65535
%1273 = mul nuw nsw i64 %1272, %1266
%1274 = mul nuw nsw i64 %1270, %1266
%1275 = mul nuw nsw i64 %1270, %1268
%1276 = mul nuw nsw i64 %1272, %1268
%1277 = add nuw nsw i64 %1273, %1275
%1278 = and i64 %1277, 4294967295
%1279 = icmp ult i64 %1278, %1275
%1280 = add nuw nsw i64 %1276, 65536
%1281 = select i1 %1279, i64 %1280, i64 %1276
%1282 = lshr i64 %1277, 16
%1283 = and i64 %1282, 65535
%1284 = add nuw nsw i64 %1281, %1283
%1285 = shl nuw nsw i64 %1277, 16
%1286 = and i64 %1285, 4294901760
%1287 = add nuw nsw i64 %1285, %1274
%1288 = and i64 %1287, 4294967295
%1289 = icmp ult i64 %1288, %1286
%1290 = zext i1 %1289 to i64
%1291 = add nuw nsw i64 %1284, %1290
%1292 = lshr i64 %1291, 31
%1293 = and i64 %1292, 1
%1294 = add nuw nsw i64 %1264, %1293
%1295 = shl nuw nsw i64 %1291, 1
%1296 = and i64 %1295, 4294967294
%1297 = lshr i64 %1287, 31
%1298 = and i64 %1297, 1
%1299 = or i64 %1296, %1298
%1300 = shl nuw nsw i64 %1288, 1
%1301 = and i64 %1300, 4294967294
%1302 = add i64 %1300, %1248
%1303 = and i64 %1302, 4294967295
%1304 = icmp ult i64 %1303, %1301
br i1 %1304, label %1305, label %1311
1305: ; preds = %1257
%1306 = add nuw nsw i64 %1299, 1
%1307 = and i64 %1306, 4294967295
%1308 = icmp eq i64 %1307, 0
%1309 = zext i1 %1308 to i64
%1310 = add nuw nsw i64 %1294, %1309
br label %1311
1311: ; preds = %1305, %1257
%1312 = phi i64 [ %1294, %1257 ], [ %1310, %1305 ]
%1313 = phi i64 [ %1299, %1257 ], [ %1306, %1305 ]
%1314 = add i64 %1313, %1260
%1315 = and i64 %1314, 4294967295
%1316 = icmp ult i64 %1315, %1313
%1317 = zext i1 %1316 to i64
%1318 = add nuw nsw i64 %1312, %1317
%1319 = getelementptr inbounds i64, i64* %0, i64 9
store i64 %1303, i64* %1319
%1320 = load i64, i64* %399
%1321 = and i64 %1320, 65535
%1322 = lshr i64 %1320, 16
%1323 = and i64 %1322, 65535
%1324 = mul nuw nsw i64 %1323, %1321
%1325 = mul nuw nsw i64 %1321, %1321
%1326 = mul nuw nsw i64 %1323, %1323
%1327 = lshr i64 %1324, 15
%1328 = add nuw nsw i64 %1327, %1326
%1329 = shl nuw nsw i64 %1324, 17
%1330 = and i64 %1329, 8589803520
%1331 = add nuw nsw i64 %1329, %1325
%1332 = and i64 %1331, 4294967295
%1333 = icmp ult i64 %1332, %1330
%1334 = zext i1 %1333 to i64
%1335 = add nuw nsw i64 %1328, %1334
%1336 = add i64 %1331, %1314
%1337 = and i64 %1336, 4294967295
%1338 = icmp ult i64 %1337, %1332
%1339 = zext i1 %1338 to i64
%1340 = add nuw nsw i64 %1335, %1339
%1341 = add nuw nsw i64 %1318, %1340
%1342 = and i64 %1341, 4294967295
%1343 = icmp ult i64 %1342, %1340
%1344 = zext i1 %1343 to i64
%1345 = load i64, i64* %696
%1346 = and i64 %1345, 65535
%1347 = lshr i64 %1345, 16
%1348 = and i64 %1347, 65535
%1349 = load i64, i64* %343
%1350 = and i64 %1349, 65535
%1351 = lshr i64 %1349, 16
%1352 = and i64 %1351, 65535
%1353 = mul nuw nsw i64 %1352, %1346
%1354 = mul nuw nsw i64 %1350, %1346
%1355 = mul nuw nsw i64 %1350, %1348
%1356 = mul nuw nsw i64 %1352, %1348
%1357 = add nuw nsw i64 %1353, %1355
%1358 = and i64 %1357, 4294967295
%1359 = icmp ult i64 %1358, %1355
%1360 = add nuw nsw i64 %1356, 65536
%1361 = select i1 %1359, i64 %1360, i64 %1356
%1362 = lshr i64 %1357, 16
%1363 = and i64 %1362, 65535
%1364 = add nuw nsw i64 %1361, %1363
%1365 = shl nuw nsw i64 %1357, 16
%1366 = and i64 %1365, 4294901760
%1367 = add nuw nsw i64 %1365, %1354
%1368 = and i64 %1367, 4294967295
%1369 = icmp ult i64 %1368, %1366
%1370 = zext i1 %1369 to i64
%1371 = add nuw nsw i64 %1364, %1370
%1372 = and i64 %1371, 2147483648
%1373 = icmp eq i64 %1372, 0
%1374 = select i1 %1343, i64 2, i64 1
%1375 = select i1 %1373, i64 %1344, i64 %1374
%1376 = shl nuw nsw i64 %1371, 1
%1377 = and i64 %1376, 4294967294
%1378 = lshr i64 %1367, 31
%1379 = and i64 %1378, 1
%1380 = or i64 %1377, %1379
%1381 = shl nuw nsw i64 %1368, 1
%1382 = and i64 %1381, 4294967294
%1383 = add i64 %1381, %1336
%1384 = and i64 %1383, 4294967295
%1385 = icmp ult i64 %1384, %1382
br i1 %1385, label %1386, label %1392
1386: ; preds = %1311
%1387 = add nuw nsw i64 %1380, 1
%1388 = and i64 %1387, 4294967295
%1389 = icmp eq i64 %1388, 0
%1390 = zext i1 %1389 to i64
%1391 = add nuw nsw i64 %1375, %1390
br label %1392
1392: ; preds = %1386, %1311
%1393 = phi i64 [ %1375, %1311 ], [ %1391, %1386 ]
%1394 = phi i64 [ %1380, %1311 ], [ %1387, %1386 ]
%1395 = add i64 %1394, %1341
%1396 = and i64 %1395, 4294967295
%1397 = icmp ult i64 %1396, %1394
%1398 = zext i1 %1397 to i64
%1399 = add nuw nsw i64 %1393, %1398
%1400 = load i64, i64* %752
%1401 = and i64 %1400, 65535
%1402 = lshr i64 %1400, 16
%1403 = and i64 %1402, 65535
%1404 = load i64, i64* %154
%1405 = and i64 %1404, 65535
%1406 = lshr i64 %1404, 16
%1407 = and i64 %1406, 65535
%1408 = mul nuw nsw i64 %1407, %1401
%1409 = mul nuw nsw i64 %1405, %1401
%1410 = mul nuw nsw i64 %1405, %1403
%1411 = mul nuw nsw i64 %1407, %1403
%1412 = add nuw nsw i64 %1408, %1410
%1413 = and i64 %1412, 4294967295
%1414 = icmp ult i64 %1413, %1410
%1415 = add nuw nsw i64 %1411, 65536
%1416 = select i1 %1414, i64 %1415, i64 %1411
%1417 = lshr i64 %1412, 16
%1418 = and i64 %1417, 65535
%1419 = add nuw nsw i64 %1416, %1418
%1420 = shl nuw nsw i64 %1412, 16
%1421 = and i64 %1420, 4294901760
%1422 = add nuw nsw i64 %1420, %1409
%1423 = and i64 %1422, 4294967295
%1424 = icmp ult i64 %1423, %1421
%1425 = zext i1 %1424 to i64
%1426 = add nuw nsw i64 %1419, %1425
%1427 = lshr i64 %1426, 31
%1428 = and i64 %1427, 1
%1429 = add nuw nsw i64 %1399, %1428
%1430 = shl nuw nsw i64 %1426, 1
%1431 = and i64 %1430, 4294967294
%1432 = lshr i64 %1422, 31
%1433 = and i64 %1432, 1
%1434 = or i64 %1431, %1433
%1435 = shl nuw nsw i64 %1423, 1
%1436 = and i64 %1435, 4294967294
%1437 = add i64 %1435, %1383
%1438 = and i64 %1437, 4294967295
%1439 = icmp ult i64 %1438, %1436
br i1 %1439, label %1440, label %1446
1440: ; preds = %1392
%1441 = add nuw nsw i64 %1434, 1
%1442 = and i64 %1441, 4294967295
%1443 = icmp eq i64 %1442, 0
%1444 = zext i1 %1443 to i64
%1445 = add nuw nsw i64 %1429, %1444
br label %1446
1446: ; preds = %1440, %1392
%1447 = phi i64 [ %1429, %1392 ], [ %1445, %1440 ]
%1448 = phi i64 [ %1434, %1392 ], [ %1441, %1440 ]
%1449 = add i64 %1448, %1395
%1450 = and i64 %1449, 4294967295
%1451 = icmp ult i64 %1450, %1448
%1452 = zext i1 %1451 to i64
%1453 = add nuw nsw i64 %1447, %1452
%1454 = getelementptr inbounds i64, i64* %0, i64 10
store i64 %1438, i64* %1454
%1455 = load i64, i64* %752
%1456 = and i64 %1455, 65535
%1457 = lshr i64 %1455, 16
%1458 = and i64 %1457, 65535
%1459 = load i64, i64* %343
%1460 = and i64 %1459, 65535
%1461 = lshr i64 %1459, 16
%1462 = and i64 %1461, 65535
%1463 = mul nuw nsw i64 %1462, %1456
%1464 = mul nuw nsw i64 %1460, %1456
%1465 = mul nuw nsw i64 %1460, %1458
%1466 = mul nuw nsw i64 %1462, %1458
%1467 = add nuw nsw i64 %1463, %1465
%1468 = and i64 %1467, 4294967295
%1469 = icmp ult i64 %1468, %1465
%1470 = add nuw nsw i64 %1466, 65536
%1471 = select i1 %1469, i64 %1470, i64 %1466
%1472 = lshr i64 %1467, 16
%1473 = and i64 %1472, 65535
%1474 = add nuw nsw i64 %1471, %1473
%1475 = shl nuw nsw i64 %1467, 16
%1476 = and i64 %1475, 4294901760
%1477 = add nuw nsw i64 %1475, %1464
%1478 = and i64 %1477, 4294967295
%1479 = icmp ult i64 %1478, %1476
%1480 = zext i1 %1479 to i64
%1481 = add nuw nsw i64 %1474, %1480
%1482 = lshr i64 %1481, 31
%1483 = and i64 %1482, 1
%1484 = shl nuw nsw i64 %1481, 1
%1485 = and i64 %1484, 4294967294
%1486 = lshr i64 %1477, 31
%1487 = and i64 %1486, 1
%1488 = or i64 %1485, %1487
%1489 = shl nuw nsw i64 %1478, 1
%1490 = and i64 %1489, 4294967294
%1491 = add i64 %1489, %1449
%1492 = and i64 %1491, 4294967295
%1493 = icmp ult i64 %1492, %1490
br i1 %1493, label %1494, label %1500
1494: ; preds = %1446
%1495 = add nuw nsw i64 %1488, 1
%1496 = and i64 %1495, 4294967295
%1497 = icmp eq i64 %1496, 0
%1498 = zext i1 %1497 to i64
%1499 = add nuw nsw i64 %1483, %1498
br label %1500
1500: ; preds = %1494, %1446
%1501 = phi i64 [ %1483, %1446 ], [ %1499, %1494 ]
%1502 = phi i64 [ %1488, %1446 ], [ %1495, %1494 ]
%1503 = add i64 %1453, %1502
%1504 = and i64 %1503, 4294967295
%1505 = icmp ult i64 %1504, %1502
%1506 = zext i1 %1505 to i64
%1507 = add nuw nsw i64 %1501, %1506
%1508 = load i64, i64* %696
%1509 = and i64 %1508, 65535
%1510 = lshr i64 %1508, 16
%1511 = and i64 %1510, 65535
%1512 = load i64, i64* %399
%1513 = and i64 %1512, 65535
%1514 = lshr i64 %1512, 16
%1515 = and i64 %1514, 65535
%1516 = mul nuw nsw i64 %1515, %1509
%1517 = mul nuw nsw i64 %1513, %1509
%1518 = mul nuw nsw i64 %1513, %1511
%1519 = mul nuw nsw i64 %1515, %1511
%1520 = add nuw nsw i64 %1516, %1518
%1521 = and i64 %1520, 4294967295
%1522 = icmp ult i64 %1521, %1518
%1523 = add nuw nsw i64 %1519, 65536
%1524 = select i1 %1522, i64 %1523, i64 %1519
%1525 = lshr i64 %1520, 16
%1526 = and i64 %1525, 65535
%1527 = add nuw nsw i64 %1524, %1526
%1528 = shl nuw nsw i64 %1520, 16
%1529 = and i64 %1528, 4294901760
%1530 = add nuw nsw i64 %1528, %1517
%1531 = and i64 %1530, 4294967295
%1532 = icmp ult i64 %1531, %1529
%1533 = zext i1 %1532 to i64
%1534 = add nuw nsw i64 %1527, %1533
%1535 = lshr i64 %1534, 31
%1536 = and i64 %1535, 1
%1537 = add nuw nsw i64 %1507, %1536
%1538 = shl nuw nsw i64 %1534, 1
%1539 = and i64 %1538, 4294967294
%1540 = lshr i64 %1530, 31
%1541 = and i64 %1540, 1
%1542 = or i64 %1539, %1541
%1543 = shl nuw nsw i64 %1531, 1
%1544 = and i64 %1543, 4294967294
%1545 = add i64 %1543, %1491
%1546 = and i64 %1545, 4294967295
%1547 = icmp ult i64 %1546, %1544
br i1 %1547, label %1548, label %1554
1548: ; preds = %1500
%1549 = add nuw nsw i64 %1542, 1
%1550 = and i64 %1549, 4294967295
%1551 = icmp eq i64 %1550, 0
%1552 = zext i1 %1551 to i64
%1553 = add nuw nsw i64 %1537, %1552
br label %1554
1554: ; preds = %1548, %1500
%1555 = phi i64 [ %1537, %1500 ], [ %1553, %1548 ]
%1556 = phi i64 [ %1542, %1500 ], [ %1549, %1548 ]
%1557 = add i64 %1556, %1503
%1558 = and i64 %1557, 4294967295
%1559 = icmp ult i64 %1558, %1556
%1560 = zext i1 %1559 to i64
%1561 = add nuw nsw i64 %1555, %1560
%1562 = getelementptr inbounds i64, i64* %0, i64 11
store i64 %1546, i64* %1562
%1563 = load i64, i64* %696
%1564 = and i64 %1563, 65535
%1565 = lshr i64 %1563, 16
%1566 = and i64 %1565, 65535
%1567 = mul nuw nsw i64 %1566, %1564
%1568 = mul nuw nsw i64 %1564, %1564
%1569 = mul nuw nsw i64 %1566, %1566
%1570 = lshr i64 %1567, 15
%1571 = add nuw nsw i64 %1570, %1569
%1572 = shl nuw nsw i64 %1567, 17
%1573 = and i64 %1572, 8589803520
%1574 = add nuw nsw i64 %1572, %1568
%1575 = and i64 %1574, 4294967295
%1576 = icmp ult i64 %1575, %1573
%1577 = zext i1 %1576 to i64
%1578 = add nuw nsw i64 %1571, %1577
%1579 = add i64 %1574, %1557
%1580 = and i64 %1579, 4294967295
%1581 = icmp ult i64 %1580, %1575
%1582 = zext i1 %1581 to i64
%1583 = add nuw nsw i64 %1578, %1582
%1584 = add nuw nsw i64 %1561, %1583
%1585 = and i64 %1584, 4294967295
%1586 = icmp ult i64 %1585, %1583
%1587 = zext i1 %1586 to i64
%1588 = load i64, i64* %752
%1589 = and i64 %1588, 65535
%1590 = lshr i64 %1588, 16
%1591 = and i64 %1590, 65535
%1592 = load i64, i64* %399
%1593 = and i64 %1592, 65535
%1594 = lshr i64 %1592, 16
%1595 = and i64 %1594, 65535
%1596 = mul nuw nsw i64 %1595, %1589
%1597 = mul nuw nsw i64 %1593, %1589
%1598 = mul nuw nsw i64 %1593, %1591
%1599 = mul nuw nsw i64 %1595, %1591
%1600 = add nuw nsw i64 %1596, %1598
%1601 = and i64 %1600, 4294967295
%1602 = icmp ult i64 %1601, %1598
%1603 = add nuw nsw i64 %1599, 65536
%1604 = select i1 %1602, i64 %1603, i64 %1599
%1605 = lshr i64 %1600, 16
%1606 = and i64 %1605, 65535
%1607 = add nuw nsw i64 %1604, %1606
%1608 = shl nuw nsw i64 %1600, 16
%1609 = and i64 %1608, 4294901760
%1610 = add nuw nsw i64 %1608, %1597
%1611 = and i64 %1610, 4294967295
%1612 = icmp ult i64 %1611, %1609
%1613 = zext i1 %1612 to i64
%1614 = add nuw nsw i64 %1607, %1613
%1615 = and i64 %1614, 2147483648
%1616 = icmp eq i64 %1615, 0
%1617 = select i1 %1586, i64 2, i64 1
%1618 = select i1 %1616, i64 %1587, i64 %1617
%1619 = shl nuw nsw i64 %1614, 1
%1620 = and i64 %1619, 4294967294
%1621 = lshr i64 %1610, 31
%1622 = and i64 %1621, 1
%1623 = or i64 %1620, %1622
%1624 = shl nuw nsw i64 %1611, 1
%1625 = and i64 %1624, 4294967294
%1626 = add i64 %1624, %1579
%1627 = and i64 %1626, 4294967295
%1628 = icmp ult i64 %1627, %1625
br i1 %1628, label %1629, label %1635
1629: ; preds = %1554
%1630 = add nuw nsw i64 %1623, 1
%1631 = and i64 %1630, 4294967295
%1632 = icmp eq i64 %1631, 0
%1633 = zext i1 %1632 to i64
%1634 = add nuw nsw i64 %1618, %1633
br label %1635
1635: ; preds = %1629, %1554
%1636 = phi i64 [ %1618, %1554 ], [ %1634, %1629 ]
%1637 = phi i64 [ %1623, %1554 ], [ %1630, %1629 ]
%1638 = add i64 %1637, %1584
%1639 = getelementptr inbounds i64, i64* %0, i64 12
store i64 %1627, i64* %1639
%1640 = load i64, i64* %752
%1641 = and i64 %1640, 65535
%1642 = lshr i64 %1640, 16
%1643 = and i64 %1642, 65535
%1644 = load i64, i64* %696
%1645 = and i64 %1644, 65535
%1646 = lshr i64 %1644, 16
%1647 = and i64 %1646, 65535
%1648 = mul nuw nsw i64 %1647, %1641
%1649 = mul nuw nsw i64 %1645, %1641
%1650 = mul nuw nsw i64 %1645, %1643
%1651 = mul nuw nsw i64 %1647, %1643
%1652 = add nuw nsw i64 %1648, %1650
%1653 = and i64 %1652, 4294967295
%1654 = icmp ult i64 %1653, %1650
%1655 = add nuw nsw i64 %1651, 65536
%1656 = select i1 %1654, i64 %1655, i64 %1651
%1657 = lshr i64 %1652, 16
%1658 = and i64 %1657, 65535
%1659 = add nuw nsw i64 %1656, %1658
%1660 = shl nuw nsw i64 %1652, 16
%1661 = and i64 %1660, 4294901760
%1662 = add nuw nsw i64 %1660, %1649
%1663 = and i64 %1662, 4294967295
%1664 = icmp ult i64 %1663, %1661
%1665 = zext i1 %1664 to i64
%1666 = add nuw nsw i64 %1659, %1665
%1667 = lshr i64 %1666, 31
%1668 = and i64 %1667, 1
%1669 = shl nuw nsw i64 %1666, 1
%1670 = and i64 %1669, 4294967294
%1671 = lshr i64 %1662, 31
%1672 = and i64 %1671, 1
%1673 = or i64 %1670, %1672
%1674 = shl nuw nsw i64 %1663, 1
%1675 = and i64 %1674, 4294967294
%1676 = add i64 %1674, %1638
%1677 = and i64 %1676, 4294967295
%1678 = icmp ult i64 %1677, %1675
br i1 %1678, label %1679, label %1685
1679: ; preds = %1635
%1680 = add nuw nsw i64 %1673, 1
%1681 = and i64 %1680, 4294967295
%1682 = icmp eq i64 %1681, 0
%1683 = zext i1 %1682 to i64
%1684 = add nuw nsw i64 %1668, %1683
br label %1685
1685: ; preds = %1679, %1635
%1686 = phi i64 [ %1668, %1635 ], [ %1684, %1679 ]
%1687 = phi i64 [ %1673, %1635 ], [ %1680, %1679 ]
%1688 = and i64 %1638, 4294967295
%1689 = icmp ult i64 %1688, %1637
%1690 = zext i1 %1689 to i64
%1691 = add nuw nsw i64 %1636, %1690
%1692 = add nsw i64 %1691, %1687
%1693 = and i64 %1692, 4294967295
%1694 = icmp ult i64 %1693, %1687
%1695 = zext i1 %1694 to i64
%1696 = getelementptr inbounds i64, i64* %0, i64 13
store i64 %1677, i64* %1696
%1697 = load i64, i64* %752
%1698 = and i64 %1697, 65535
%1699 = lshr i64 %1697, 16
%1700 = and i64 %1699, 65535
%1701 = mul nuw nsw i64 %1700, %1698
%1702 = mul nuw nsw i64 %1698, %1698
%1703 = mul nuw nsw i64 %1700, %1700
%1704 = lshr i64 %1701, 15
%1705 = shl nuw nsw i64 %1701, 17
%1706 = and i64 %1705, 8589803520
%1707 = add nuw nsw i64 %1705, %1702
%1708 = and i64 %1707, 4294967295
%1709 = icmp ult i64 %1708, %1706
%1710 = zext i1 %1709 to i64
%1711 = add nsw i64 %1707, %1692
%1712 = and i64 %1711, 4294967295
%1713 = icmp ult i64 %1712, %1708
%1714 = zext i1 %1713 to i64
%1715 = add nuw nsw i64 %1686, %1695
%1716 = add nuw nsw i64 %1715, %1703
%1717 = add nuw nsw i64 %1716, %1704
%1718 = add nuw nsw i64 %1717, %1710
%1719 = add nuw nsw i64 %1718, %1714
%1720 = and i64 %1719, 4294967295
%1721 = getelementptr inbounds i64, i64* %0, i64 14
store i64 %1712, i64* %1721
%1722 = getelementptr inbounds i64, i64* %0, i64 15
store i64 %1720, i64* %1722
ret void
}