S2
sb++; goto S2; /* slurp next character */
S2:
static const uint32_t S2[256] = {
(T0) = S1[GET_U8_BE(T0, 0)] ^ S2[GET_U8_BE(T0, 1)] ^ X1[GET_U8_BE(T0, 2)] ^ X2[GET_U8_BE(T0, 3)]; \
(T1) = S1[GET_U8_BE(T1, 0)] ^ S2[GET_U8_BE(T1, 1)] ^ X1[GET_U8_BE(T1, 2)] ^ X2[GET_U8_BE(T1, 3)]; \
(T2) = S1[GET_U8_BE(T2, 0)] ^ S2[GET_U8_BE(T2, 1)] ^ X1[GET_U8_BE(T2, 2)] ^ X2[GET_U8_BE(T2, 3)]; \
(T3) = S1[GET_U8_BE(T3, 0)] ^ S2[GET_U8_BE(T3, 1)] ^ X1[GET_U8_BE(T3, 2)] ^ X2[GET_U8_BE(T3, 3)]; \
(T0) = X1[GET_U8_BE(T0, 0)] ^ X2[GET_U8_BE(T0, 1)] ^ S1[GET_U8_BE(T0, 2)] ^ S2[GET_U8_BE(T0, 3)]; \
(T1) = X1[GET_U8_BE(T1, 0)] ^ X2[GET_U8_BE(T1, 1)] ^ S1[GET_U8_BE(T1, 2)] ^ S2[GET_U8_BE(T1, 3)]; \
(T2) = X1[GET_U8_BE(T2, 0)] ^ X2[GET_U8_BE(T2, 1)] ^ S1[GET_U8_BE(T2, 2)] ^ S2[GET_U8_BE(T2, 3)]; \
(T3) = X1[GET_U8_BE(T3, 0)] ^ X2[GET_U8_BE(T3, 1)] ^ S1[GET_U8_BE(T3, 2)] ^ S2[GET_U8_BE(T3, 3)]; \
reg0 = rk->u[0] ^ MAKE_U32((uint8_t)(X1[GET_U8_BE(reg0, 0)]), (uint8_t)(X2[GET_U8_BE(reg0, 1)] >> 8), (uint8_t)(S1[GET_U8_BE(reg0, 2)]), (uint8_t)(S2[GET_U8_BE(reg0, 3)]));
reg1 = rk->u[1] ^ MAKE_U32((uint8_t)(X1[GET_U8_BE(reg1, 0)]), (uint8_t)(X2[GET_U8_BE(reg1, 1)] >> 8), (uint8_t)(S1[GET_U8_BE(reg1, 2)]), (uint8_t)(S2[GET_U8_BE(reg1, 3)]));
reg2 = rk->u[2] ^ MAKE_U32((uint8_t)(X1[GET_U8_BE(reg2, 0)]), (uint8_t)(X2[GET_U8_BE(reg2, 1)] >> 8), (uint8_t)(S1[GET_U8_BE(reg2, 2)]), (uint8_t)(S2[GET_U8_BE(reg2, 3)]));
reg3 = rk->u[3] ^ MAKE_U32((uint8_t)(X1[GET_U8_BE(reg3, 0)]), (uint8_t)(X2[GET_U8_BE(reg3, 1)] >> 8), (uint8_t)(S1[GET_U8_BE(reg3, 2)]), (uint8_t)(S2[GET_U8_BE(reg3, 3)]));
BN_ULONG U2[P256_LIMBS], S2[P256_LIMBS];
ecp_nistz256_mul_mont(S2, Z1sqr, in1_z); /* S2 = Z1^3 */
ecp_nistz256_mul_mont(S2, S2, in2_y); /* S2 = Y2*Z1^3 */
ecp_nistz256_sub(R, S2, S1); /* R = S2 - S1 */
if (is_equal(U1, U2) & ~in1infty & ~in2infty & is_equal(S1, S2)) {
ecp_nistz256_mul_mont(S2, S1, Hcub);
ecp_nistz256_sub(res_y, res_y, S2);
BN_ULONG U2[P256_LIMBS], S2[P256_LIMBS];
ecp_nistz256_mul_mont(S2, Z1sqr, in1_z); /* S2 = Z1^3 */
ecp_nistz256_mul_mont(S2, S2, in2_y); /* S2 = Y2*Z1^3 */
ecp_nistz256_sub(R, S2, in1_y); /* R = S2 - S1 */
ecp_nistz256_mul_mont(S2, in1_y, Hcub);
ecp_nistz256_sub(res_y, H, S2);
S2 = 0.0083333333333333333333333333333331135404851288270047L,
r = S2+z*(S3+z*(S4+z*(S5+z*(S6+z*(S7+z*(S8+
S2 = 0.0083333333333333332, /* 0x11111111111111.0p-59 */
r = S2+z*(S3+z*(S4+z*(S5+z*(S6+z*(S7+z*S8)))));
S2 = 8.33333333332248946124e-03, /* 0x3F811111, 0x1110F8A6 */
r = S2+z*(S3+z*S4) + z*w*(S5+z*S6);
S2 = 8.33333333332248946124e-03, /* 0x3F811111, 0x1110F8A6 */
r = S2 + z * (S3 + z * S4) + z * w * (S5 + z * S6);
S2 = 0x111110896efbb2.0p-59, /* 0.0083333293858894631756 */
*sn = (x + s * (S1 + z * S2)) + s * w * r;
r = S2 + z * (S3 + z * (S4 + z * (S5 + z * (S6 + z * (S7 + z * (S8 +
S2 = 0.0083333333333333332, /* 0x11111111111111.0p-59 */
r = S2 + z * (S3 + z * (S4 + z * (S5 + z * (S6 + z * (S7 + z * S8)))));
S2 = 0.0083333333333333333333333333333331135404851288270047L,
S2 = 0x111110896efbb2.0p-59, /* 0.0083333293858894631756 */
return (x + s*(S1+z*S2)) + s*w*r;
{ { S0, S2, S1, S3, S0 }, 0, ~(MOUSE_BUTTON1DOWN | MOUSE_BUTTON3DOWN), false },
{ { S4, S2, S1, S3, S5 }, 0, ~MOUSE_BUTTON1DOWN, false },
{ { S8, S2, S1, S3, S6 }, 0, ~MOUSE_BUTTON3DOWN, false },
{ { S0, S2, S1, S3, S0 }, MOUSE_BUTTON1DOWN, ~0, true },
{ { S0, S2, S5, S7, S5 }, MOUSE_BUTTON1DOWN, ~0, false },
{ { S0, S2, S1, S3, S0 }, MOUSE_BUTTON3DOWN, ~0, true },