- uint32 _x = (a); \
- uint32 _y = (b); \
- ROUND((k), _x, _y, 17); \
- ROUND((k), _y, _x, 16); \
- ROUND((k), _x, _y, 15); \
- ROUND((k), _y, _x, 14); \
- ROUND((k), _x, _y, 13); \
- ROUND((k), _y, _x, 12); \
- ROUND((k), _x, _y, 11); \
- ROUND((k), _y, _x, 10); \
- ROUND((k), _x, _y, 9); \
- ROUND((k), _y, _x, 8); \
- ROUND((k), _x, _y, 7); \
- ROUND((k), _y, _x, 6); \
- ROUND((k), _x, _y, 5); \
- ROUND((k), _y, _x, 4); \
- ROUND((k), _x, _y, 3); \
- ROUND((k), _y, _x, 2); \
- (c) = _y ^ (k)->p[0]; \
- (d) = _x ^ (k)->p[1]; \
+ const uint32 *_r = k->p + 18; \
+ uint32 _x = a; \
+ uint32 _y = b; \
+ ROUND(k, _x, _y, --_r); \
+ ROUND(k, _y, _x, --_r); \
+ ROUND(k, _x, _y, --_r); \
+ ROUND(k, _y, _x, --_r); \
+ ROUND(k, _x, _y, --_r); \
+ ROUND(k, _y, _x, --_r); \
+ ROUND(k, _x, _y, --_r); \
+ ROUND(k, _y, _x, --_r); \
+ ROUND(k, _x, _y, --_r); \
+ ROUND(k, _y, _x, --_r); \
+ ROUND(k, _x, _y, --_r); \
+ ROUND(k, _y, _x, --_r); \
+ ROUND(k, _x, _y, --_r); \
+ ROUND(k, _y, _x, --_r); \
+ ROUND(k, _x, _y, --_r); \
+ ROUND(k, _y, _x, --_r); \
+ c = _y ^ k->p[0]; \
+ d = _x ^ k->p[1]; \