T0
u64 T0, T1, T2; \
T0 = BASH_ROTHI(W0, m1); \
W1 = (T0 ^ T1); \
T0 = (~(W2)); \
T0 = (T0 | W1); \
W0 = (W0 ^ T0); \
#define ARIA_ADD_ROUND_KEY(RK, T0, T1, T2, T3) \
(T0) ^= (RK)->u[0]; \
#define ARIA_SBOX_LAYER1_WITH_PRE_DIFF(T0, T1, T2, T3) \
(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)]; \
#define ARIA_SBOX_LAYER2_WITH_PRE_DIFF(T0, T1, T2, T3) \
(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)]; \
#define ARIA_DIFF_WORD(T0, T1, T2, T3) \
(T0) ^= (T1); \
(T2) ^= (T0); \
#define ARIA_DIFF_BYTE(T0, T1, T2, T3) \
#define ARIA_SUBST_DIFF_ODD(T0, T1, T2, T3) \
ARIA_SBOX_LAYER1_WITH_PRE_DIFF(T0, T1, T2, T3); \
ARIA_DIFF_WORD(T0, T1, T2, T3); \
ARIA_DIFF_BYTE(T0, T1, T2, T3); \
ARIA_DIFF_WORD(T0, T1, T2, T3); \
#define ARIA_SUBST_DIFF_EVEN(T0, T1, T2, T3) \
ARIA_SBOX_LAYER2_WITH_PRE_DIFF(T0, T1, T2, T3); \
ARIA_DIFF_WORD(T0, T1, T2, T3); \
ARIA_DIFF_BYTE(T2, T3, T0, T1); \
ARIA_DIFF_WORD(T0, T1, T2, T3); \
(T1) ^= (T0); \
(T0) = ((T0) + (T1)) & 0xffffffff; \
(T0) = G_FUNC((T0)); \
(T1) = ((T1) + (T0)) & 0xffffffff; \
(T0) = ((T0) + (T1)) & 0xffffffff; \
(X1) ^= (T0); \
#define KEYSCHEDULE_UPDATE0(T0, T1, X1, X2, X3, X4, KC) \
(T0) = (X3); \
(X4) = (((X4) << 8) ^ ((T0) >> 24)) & 0xffffffff; \
(T0) = ((X1) + (X3) - (KC)) & 0xffffffff; \
#define KEYSCHEDULE_UPDATE1(T0, T1, X1, X2, X3, X4, KC) \
(T0) = (X1); \
(X2) = (((X2) >> 8) ^ ((T0) << 24)) & 0xffffffff; \
(T0) = ((X1) + (X3) - (KC)) & 0xffffffff; \
#define KEYUPDATE_TEMP(T0, T1, K) \
(K)[0] = G_FUNC((T0)); \
#define E_SEED(T0, T1, X1, X2, X3, X4, rbase) \
(T0) = (X3) ^ (ks->data)[(rbase)]; \
#define Skein_Set_T0(ctxPtr,T0) Skein_Set_Tweak(ctxPtr,0,T0)
#define Skein_Set_T0_T1(ctxPtr,T0,T1) \
Skein_Set_T0(ctxPtr,(T0)); \
T0();
T0();
T0();
T0();
T0();
T0();
T0();
T0();
T0();
T0();
T0();
T0();
T0();
T0();