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