S22
GG (d, a, b, c, x[ 4], S22); /* 18 */
GG (d, a, b, c, x[ 5], S22); /* 22 */
GG (d, a, b, c, x[ 6], S22); /* 26 */
GG (d, a, b, c, x[ 7], S22); /* 30 */
GG (d, a, b, c, x[ 6], S22, 0xc040b340); /* 18 */
GG (d, a, b, c, x[10], S22, 0x2441453); /* 22 */
GG (d, a, b, c, x[14], S22, 0xc33707d6); /* 26 */
GG (d, a, b, c, x[ 2], S22, 0xfcefa3f8); /* 30 */
M = (S11 * S22 - S12 * S12);
A = (S1Y * S22 - S2Y * S12) * scale / M;
int64_t S11, S22, S12;
S22 = X2X2s - n * X2a * X2a;
printf("S11=%d S22=%d S12=%d\n", (int)S11, (int)S22, (int)S12);