175 const uint32_t *wp = (
const uint32_t *)ptr;
176 uint32_t A = *a, B = *b, C = *c, D = *d;
187 uint32_t w10 = wp[10];
188 uint32_t w11 = wp[11];
189 uint32_t w12 = wp[12];
190 uint32_t w13 = wp[13];
191 uint32_t w14 = wp[14];
192 uint32_t w15 = wp[15];
194 uint32_t sA = A, sB = B, sC = C, sD = D;
197 STEP(
F, A, B, C, D, w0, 0xd76aa478, 7)
198 STEP(
F, D, A, B, C, w1, 0xe8c7b756, 12)
199 STEP(
F, C, D, A, B, w2, 0x242070db, 17)
200 STEP(
F, B, C, D, A, w3, 0xc1bdceee, 22)
201 STEP(
F, A, B, C, D, w4, 0xf57c0faf, 7)
202 STEP(
F, D, A, B, C, w5, 0x4787c62a, 12)
203 STEP(
F, C, D, A, B, w6, 0xa8304613, 17)
204 STEP(
F, B, C, D, A, w7, 0xfd469501, 22)
205 STEP(
F, A, B, C, D, w8, 0x698098d8, 7)
206 STEP(
F, D, A, B, C, w9, 0x8b44f7af, 12)
207 STEP(
F, C, D, A, B, w10, 0xffff5bb1, 17)
208 STEP(
F, B, C, D, A, w11, 0x895cd7be, 22)
209 STEP(
F, A, B, C, D, w12, 0x6b901122, 7)
210 STEP(
F, D, A, B, C, w13, 0xfd987193, 12)
211 STEP(
F, C, D, A, B, w14, 0xa679438e, 17)
212 STEP(
F, B, C, D, A, w15, 0x49b40821, 22)
215 STEP(
G, A, B, C, D, w1, 0xf61e2562, 5)
216 STEP(
G, D, A, B, C, w6, 0xc040b340, 9)
217 STEP(
G, C, D, A, B, w11, 0x265e5a51, 14)
218 STEP(
G, B, C, D, A, w0, 0xe9b6c7aa, 20)
219 STEP(
G, A, B, C, D, w5, 0xd62f105d, 5)
220 STEP(
G, D, A, B, C, w10, 0x02441453, 9)
221 STEP(
G, C, D, A, B, w15, 0xd8a1e681, 14)
222 STEP(
G, B, C, D, A, w4, 0xe7d3fbc8, 20)
223 STEP(
G, A, B, C, D, w9, 0x21e1cde6, 5)
224 STEP(
G, D, A, B, C, w14, 0xc33707d6, 9)
225 STEP(
G, C, D, A, B, w3, 0xf4d50d87, 14)
226 STEP(
G, B, C, D, A, w8, 0x455a14ed, 20)
227 STEP(
G, A, B, C, D, w13, 0xa9e3e905, 5)
228 STEP(
G, D, A, B, C, w2, 0xfcefa3f8, 9)
229 STEP(
G, C, D, A, B, w7, 0x676f02d9, 14)
230 STEP(
G, B, C, D, A, w12, 0x8d2a4c8a, 20)
233 STEP(
H, A, B, C, D, w5, 0xfffa3942, 4)
234 STEP(
H2, D, A, B, C, w8, 0x8771f681, 11)
235 STEP(
H, C, D, A, B, w11, 0x6d9d6122, 16)
236 STEP(
H2, B, C, D, A, w14, 0xfde5380c, 23)
237 STEP(
H, A, B, C, D, w1, 0xa4beea44, 4)
238 STEP(
H2, D, A, B, C, w4, 0x4bdecfa9, 11)
239 STEP(
H, C, D, A, B, w7, 0xf6bb4b60, 16)
240 STEP(
H2, B, C, D, A, w10, 0xbebfbc70, 23)
241 STEP(
H, A, B, C, D, w13, 0x289b7ec6, 4)
242 STEP(
H2, D, A, B, C, w0, 0xeaa127fa, 11)
243 STEP(
H, C, D, A, B, w3, 0xd4ef3085, 16)
244 STEP(
H2, B, C, D, A, w6, 0x04881d05, 23)
245 STEP(
H, A, B, C, D, w9, 0xd9d4d039, 4)
246 STEP(
H2, D, A, B, C, w12, 0xe6db99e5, 11)
247 STEP(
H, C, D, A, B, w15, 0x1fa27cf8, 16)
248 STEP(
H2, B, C, D, A, w2, 0xc4ac5665, 23)
251 STEP(
I, A, B, C, D, w0, 0xf4292244, 6)
252 STEP(
I, D, A, B, C, w7, 0x432aff97, 10)
253 STEP(
I, C, D, A, B, w14, 0xab9423a7, 15)
254 STEP(
I, B, C, D, A, w5, 0xfc93a039, 21)
255 STEP(
I, A, B, C, D, w12, 0x655b59c3, 6)
256 STEP(
I, D, A, B, C, w3, 0x8f0ccc92, 10)
257 STEP(
I, C, D, A, B, w10, 0xffeff47d, 15)
258 STEP(
I, B, C, D, A, w1, 0x85845dd1, 21)
259 STEP(
I, A, B, C, D, w8, 0x6fa87e4f, 6)
260 STEP(
I, D, A, B, C, w15, 0xfe2ce6e0, 10)
261 STEP(
I, C, D, A, B, w6, 0xa3014314, 15)
262 STEP(
I, B, C, D, A, w13, 0x4e0811a1, 21)
263 STEP(
I, A, B, C, D, w4, 0xf7537e82, 6)
264 STEP(
I, D, A, B, C, w11, 0xbd3af235, 10)
265 STEP(
I, C, D, A, B, w2, 0x2ad7d2bb, 15)
266 STEP(
I, B, C, D, A, w9, 0xeb86d391, 21)