bn_mulw_addtw
bn_mulw_addtw(a[3], b[2], c2, c1, c0, &c2, &c1, &r[5]);
bn_mulw_addtw(a[3], b[3], 0, c2, c1, &c2, &r[7], &r[6]);
bn_mulw_addtw(a[0], b[0], 0, 0, 0, &c2, &c1, &r[0]);
bn_mulw_addtw(a[0], b[1], 0, c2, c1, &c2, &c1, &c0);
bn_mulw_addtw(a[1], b[0], c2, c1, c0, &c2, &c1, &r[1]);
bn_mulw_addtw(a[2], b[0], 0, c2, c1, &c2, &c1, &c0);
bn_mulw_addtw(a[1], b[1], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[0], b[2], c2, c1, c0, &c2, &c1, &r[2]);
bn_mulw_addtw(a[0], b[3], 0, c2, c1, &c2, &c1, &c0);
bn_mulw_addtw(a[1], b[2], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[2], b[1], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[3], b[0], c2, c1, c0, &c2, &c1, &r[3]);
bn_mulw_addtw(a[4], b[0], 0, c2, c1, &c2, &c1, &c0);
bn_mulw_addtw(a[3], b[1], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[2], b[2], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[1], b[3], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[0], b[4], c2, c1, c0, &c2, &c1, &r[4]);
bn_mulw_addtw(a[0], b[5], 0, c2, c1, &c2, &c1, &c0);
bn_mulw_addtw(a[1], b[4], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[2], b[3], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[3], b[2], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[4], b[1], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[5], b[0], c2, c1, c0, &c2, &c1, &r[5]);
bn_mulw_addtw(a[5], b[1], 0, c2, c1, &c2, &c1, &c0);
bn_mulw_addtw(a[4], b[2], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[3], b[3], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[2], b[4], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[1], b[5], c2, c1, c0, &c2, &c1, &r[6]);
bn_mulw_addtw(a[2], b[5], 0, c2, c1, &c2, &c1, &c0);
bn_mulw_addtw(a[3], b[4], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[4], b[3], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[5], b[2], c2, c1, c0, &c2, &c1, &r[7]);
bn_mulw_addtw(a[5], b[3], 0, c2, c1, &c2, &c1, &c0);
bn_mulw_addtw(a[4], b[4], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[3], b[5], c2, c1, c0, &c2, &c1, &r[8]);
bn_mulw_addtw(a[4], b[5], 0, c2, c1, &c2, &c1, &c0);
bn_mulw_addtw(a[5], b[4], c2, c1, c0, &c2, &c1, &r[9]);
bn_mulw_addtw(a[5], b[5], 0, c2, c1, &c2, &r[11], &r[10]);
bn_mulw_addtw(a[0], b[0], 0, 0, 0, &c2, &c1, &r[0]);
bn_mulw_addtw(a[0], b[1], 0, c2, c1, &c2, &c1, &c0);
bn_mulw_addtw(a[1], b[0], c2, c1, c0, &c2, &c1, &r[1]);
bn_mulw_addtw(a[2], b[0], 0, c2, c1, &c2, &c1, &c0);
bn_mulw_addtw(a[1], b[1], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[0], b[2], c2, c1, c0, &c2, &c1, &r[2]);
bn_mulw_addtw(a[0], b[3], 0, c2, c1, &c2, &c1, &c0);
bn_mulw_addtw(a[1], b[2], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[2], b[1], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[3], b[0], c2, c1, c0, &c2, &c1, &r[3]);
bn_mulw_addtw(a[4], b[0], 0, c2, c1, &c2, &c1, &c0);
bn_mulw_addtw(a[3], b[1], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[2], b[2], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[1], b[3], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[0], b[4], c2, c1, c0, &c2, &c1, &r[4]);
bn_mulw_addtw(a[0], b[5], 0, c2, c1, &c2, &c1, &c0);
bn_mulw_addtw(a[1], b[4], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[2], b[3], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[3], b[2], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[4], b[1], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[5], b[0], c2, c1, c0, &c2, &c1, &r[5]);
bn_mulw_addtw(a[6], b[0], 0, c2, c1, &c2, &c1, &c0);
bn_mulw_addtw(a[5], b[1], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[4], b[2], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[3], b[3], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[2], b[4], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[1], b[5], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[0], b[6], c2, c1, c0, &c2, &c1, &r[6]);
bn_mulw_addtw(a[0], b[7], 0, c2, c1, &c2, &c1, &c0);
bn_mulw_addtw(a[1], b[6], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[2], b[5], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[3], b[4], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[4], b[3], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[5], b[2], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[6], b[1], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[7], b[0], c2, c1, c0, &c2, &c1, &r[7]);
bn_mulw_addtw(a[7], b[1], 0, c2, c1, &c2, &c1, &c0);
bn_mulw_addtw(a[6], b[2], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[5], b[3], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[4], b[4], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[3], b[5], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[2], b[6], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[1], b[7], c2, c1, c0, &c2, &c1, &r[8]);
bn_mulw_addtw(a[2], b[7], 0, c2, c1, &c2, &c1, &c0);
bn_mulw_addtw(a[3], b[6], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[4], b[5], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[5], b[4], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[6], b[3], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[7], b[2], c2, c1, c0, &c2, &c1, &r[9]);
bn_mulw_addtw(a[7], b[3], 0, c2, c1, &c2, &c1, &c0);
bn_mulw_addtw(a[6], b[4], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[5], b[5], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[4], b[6], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[3], b[7], c2, c1, c0, &c2, &c1, &r[10]);
bn_mulw_addtw(a[4], b[7], 0, c2, c1, &c2, &c1, &c0);
bn_mulw_addtw(a[5], b[6], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[6], b[5], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[7], b[4], c2, c1, c0, &c2, &c1, &r[11]);
bn_mulw_addtw(a[7], b[5], 0, c2, c1, &c2, &c1, &c0);
bn_mulw_addtw(a[6], b[6], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[5], b[7], c2, c1, c0, &c2, &c1, &r[12]);
bn_mulw_addtw(a[6], b[7], 0, c2, c1, &c2, &c1, &c0);
bn_mulw_addtw(a[7], b[6], c2, c1, c0, &c2, &c1, &r[13]);
bn_mulw_addtw(a[7], b[7], 0, c2, c1, &c2, &r[15], &r[14]);
bn_mulw_addtw(a[0], b[0], 0, 0, 0, &c2, &c1, &r[0]);
bn_mulw_addtw(a[0], b[1], 0, c2, c1, &c2, &c1, &c0);
bn_mulw_addtw(a[1], b[0], c2, c1, c0, &c2, &c1, &r[1]);
bn_mulw_addtw(a[2], b[0], 0, c2, c1, &c2, &c1, &c0);
bn_mulw_addtw(a[1], b[1], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[0], b[2], c2, c1, c0, &c2, &c1, &r[2]);
bn_mulw_addtw(a[0], b[3], 0, c2, c1, &c2, &c1, &c0);
bn_mulw_addtw(a[1], b[2], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[2], b[1], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[3], b[0], c2, c1, c0, &c2, &c1, &r[3]);
bn_mulw_addtw(a[3], b[1], 0, c2, c1, &c2, &c1, &c0);
bn_mulw_addtw(a[2], b[2], c2, c1, c0, &c2, &c1, &c0);
bn_mulw_addtw(a[1], b[3], c2, c1, c0, &c2, &c1, &r[4]);
bn_mulw_addtw(a[2], b[3], 0, c2, c1, &c2, &c1, &c0);
bn_mulw_addtw(a[0], a[0], 0, 0, 0, &c2, &c1, &r[0]);
bn_mulw_addtw(a[1], a[1], 0, c2, c1, &c2, &c1, &c0);
bn_mulw_addtw(a[2], a[2], 0, c2, c1, &c2, &c1, &c0);
bn_mulw_addtw(a[3], a[3], 0, c2, c1, &c2, &c1, &c0);
bn_mulw_addtw(a[4], a[4], 0, c2, c1, &c2, &c1, &c0);
bn_mulw_addtw(a[5], a[5], 0, c2, c1, &c2, &r[11], &r[10]);
bn_mulw_addtw(a[0], a[0], 0, 0, 0, &c2, &c1, &r[0]);
bn_mulw_addtw(a[1], a[1], 0, c2, c1, &c2, &c1, &c0);
bn_mulw_addtw(a[2], a[2], 0, c2, c1, &c2, &c1, &c0);
bn_mulw_addtw(a[3], a[3], 0, c2, c1, &c2, &c1, &c0);
bn_mulw_addtw(a[4], a[4], 0, c2, c1, &c2, &c1, &c0);
bn_mulw_addtw(a[5], a[5], 0, c2, c1, &c2, &c1, &c0);
bn_mulw_addtw(a[6], a[6], 0, c2, c1, &c2, &c1, &c0);
bn_mulw_addtw(a[7], a[7], 0, c2, c1, &c2, &r[15], &r[14]);
bn_mulw_addtw(a[0], a[0], 0, 0, 0, &c2, &c1, &r[0]);
bn_mulw_addtw(a[1], a[1], 0, c2, c1, &c2, &c1, &c0);
bn_mulw_addtw(a[2], a[2], 0, c2, c1, &c2, &c1, &c0);
bn_mulw_addtw(a[3], a[3], 0, c2, c1, &c2, &r[7], &r[6]);