1 // Code generated by command: go run sha256block_amd64_asm.go -out ../sha256block_amd64.s. DO NOT EDIT.
2
3 //go:build !purego
4
5 #include "textflag.h"
6
7 // func blockAMD64(dig *Digest, p []byte)
8 TEXT ·blockAMD64(SB), $264-32
9 MOVQ p_base+8(FP), SI
10 MOVQ p_len+16(FP), DX
11 SHRQ $0x06, DX
12 SHLQ $0x06, DX
13 LEAQ (SI)(DX*1), DI
14 MOVQ DI, 256(SP)
15 CMPQ SI, DI
16 JEQ end
17 MOVQ dig+0(FP), BP
18 MOVL (BP), R8
19 MOVL 4(BP), R9
20 MOVL 8(BP), R10
21 MOVL 12(BP), R11
22 MOVL 16(BP), R12
23 MOVL 20(BP), R13
24 MOVL 24(BP), R14
25 MOVL 28(BP), R15
26
27 loop:
28 MOVQ SP, BP
29 MOVL (SI), AX
30 BSWAPL AX
31 MOVL AX, (BP)
32 ADDL AX, R15
33 MOVL R12, AX
34 ADDL $0x428a2f98, R15
35 MOVL R12, CX
36 RORL $0x06, AX
37 MOVL R12, DX
38 RORL $0x0b, CX
39 XORL CX, AX
40 MOVL R12, CX
41 RORL $0x19, DX
42 ANDL R13, CX
43 XORL AX, DX
44 MOVL R12, AX
45 NOTL AX
46 ADDL DX, R15
47 ANDL R14, AX
48 XORL CX, AX
49 ADDL R15, AX
50 MOVL R8, DI
51 MOVL R10, BX
52 RORL $0x02, DI
53 MOVL R8, DX
54 ANDL R9, BX
55 RORL $0x0d, DX
56 MOVL R8, CX
57 ANDL R10, CX
58 XORL DX, DI
59 XORL CX, BX
60 MOVL R8, DX
61 MOVL R9, CX
62 RORL $0x16, DX
63 ANDL R8, CX
64 XORL CX, BX
65 XORL DX, DI
66 ADDL DI, BX
67 MOVL BX, R15
68 ADDL AX, R11
69 ADDL AX, R15
70 MOVL 4(SI), AX
71 BSWAPL AX
72 MOVL AX, 4(BP)
73 ADDL AX, R14
74 MOVL R11, AX
75 ADDL $0x71374491, R14
76 MOVL R11, CX
77 RORL $0x06, AX
78 MOVL R11, DX
79 RORL $0x0b, CX
80 XORL CX, AX
81 MOVL R11, CX
82 RORL $0x19, DX
83 ANDL R12, CX
84 XORL AX, DX
85 MOVL R11, AX
86 NOTL AX
87 ADDL DX, R14
88 ANDL R13, AX
89 XORL CX, AX
90 ADDL R14, AX
91 MOVL R15, DI
92 MOVL R9, BX
93 RORL $0x02, DI
94 MOVL R15, DX
95 ANDL R8, BX
96 RORL $0x0d, DX
97 MOVL R15, CX
98 ANDL R9, CX
99 XORL DX, DI
100 XORL CX, BX
101 MOVL R15, DX
102 MOVL R8, CX
103 RORL $0x16, DX
104 ANDL R15, CX
105 XORL CX, BX
106 XORL DX, DI
107 ADDL DI, BX
108 MOVL BX, R14
109 ADDL AX, R10
110 ADDL AX, R14
111 MOVL 8(SI), AX
112 BSWAPL AX
113 MOVL AX, 8(BP)
114 ADDL AX, R13
115 MOVL R10, AX
116 ADDL $0xb5c0fbcf, R13
117 MOVL R10, CX
118 RORL $0x06, AX
119 MOVL R10, DX
120 RORL $0x0b, CX
121 XORL CX, AX
122 MOVL R10, CX
123 RORL $0x19, DX
124 ANDL R11, CX
125 XORL AX, DX
126 MOVL R10, AX
127 NOTL AX
128 ADDL DX, R13
129 ANDL R12, AX
130 XORL CX, AX
131 ADDL R13, AX
132 MOVL R14, DI
133 MOVL R8, BX
134 RORL $0x02, DI
135 MOVL R14, DX
136 ANDL R15, BX
137 RORL $0x0d, DX
138 MOVL R14, CX
139 ANDL R8, CX
140 XORL DX, DI
141 XORL CX, BX
142 MOVL R14, DX
143 MOVL R15, CX
144 RORL $0x16, DX
145 ANDL R14, CX
146 XORL CX, BX
147 XORL DX, DI
148 ADDL DI, BX
149 MOVL BX, R13
150 ADDL AX, R9
151 ADDL AX, R13
152 MOVL 12(SI), AX
153 BSWAPL AX
154 MOVL AX, 12(BP)
155 ADDL AX, R12
156 MOVL R9, AX
157 ADDL $0xe9b5dba5, R12
158 MOVL R9, CX
159 RORL $0x06, AX
160 MOVL R9, DX
161 RORL $0x0b, CX
162 XORL CX, AX
163 MOVL R9, CX
164 RORL $0x19, DX
165 ANDL R10, CX
166 XORL AX, DX
167 MOVL R9, AX
168 NOTL AX
169 ADDL DX, R12
170 ANDL R11, AX
171 XORL CX, AX
172 ADDL R12, AX
173 MOVL R13, DI
174 MOVL R15, BX
175 RORL $0x02, DI
176 MOVL R13, DX
177 ANDL R14, BX
178 RORL $0x0d, DX
179 MOVL R13, CX
180 ANDL R15, CX
181 XORL DX, DI
182 XORL CX, BX
183 MOVL R13, DX
184 MOVL R14, CX
185 RORL $0x16, DX
186 ANDL R13, CX
187 XORL CX, BX
188 XORL DX, DI
189 ADDL DI, BX
190 MOVL BX, R12
191 ADDL AX, R8
192 ADDL AX, R12
193 MOVL 16(SI), AX
194 BSWAPL AX
195 MOVL AX, 16(BP)
196 ADDL AX, R11
197 MOVL R8, AX
198 ADDL $0x3956c25b, R11
199 MOVL R8, CX
200 RORL $0x06, AX
201 MOVL R8, DX
202 RORL $0x0b, CX
203 XORL CX, AX
204 MOVL R8, CX
205 RORL $0x19, DX
206 ANDL R9, CX
207 XORL AX, DX
208 MOVL R8, AX
209 NOTL AX
210 ADDL DX, R11
211 ANDL R10, AX
212 XORL CX, AX
213 ADDL R11, AX
214 MOVL R12, DI
215 MOVL R14, BX
216 RORL $0x02, DI
217 MOVL R12, DX
218 ANDL R13, BX
219 RORL $0x0d, DX
220 MOVL R12, CX
221 ANDL R14, CX
222 XORL DX, DI
223 XORL CX, BX
224 MOVL R12, DX
225 MOVL R13, CX
226 RORL $0x16, DX
227 ANDL R12, CX
228 XORL CX, BX
229 XORL DX, DI
230 ADDL DI, BX
231 MOVL BX, R11
232 ADDL AX, R15
233 ADDL AX, R11
234 MOVL 20(SI), AX
235 BSWAPL AX
236 MOVL AX, 20(BP)
237 ADDL AX, R10
238 MOVL R15, AX
239 ADDL $0x59f111f1, R10
240 MOVL R15, CX
241 RORL $0x06, AX
242 MOVL R15, DX
243 RORL $0x0b, CX
244 XORL CX, AX
245 MOVL R15, CX
246 RORL $0x19, DX
247 ANDL R8, CX
248 XORL AX, DX
249 MOVL R15, AX
250 NOTL AX
251 ADDL DX, R10
252 ANDL R9, AX
253 XORL CX, AX
254 ADDL R10, AX
255 MOVL R11, DI
256 MOVL R13, BX
257 RORL $0x02, DI
258 MOVL R11, DX
259 ANDL R12, BX
260 RORL $0x0d, DX
261 MOVL R11, CX
262 ANDL R13, CX
263 XORL DX, DI
264 XORL CX, BX
265 MOVL R11, DX
266 MOVL R12, CX
267 RORL $0x16, DX
268 ANDL R11, CX
269 XORL CX, BX
270 XORL DX, DI
271 ADDL DI, BX
272 MOVL BX, R10
273 ADDL AX, R14
274 ADDL AX, R10
275 MOVL 24(SI), AX
276 BSWAPL AX
277 MOVL AX, 24(BP)
278 ADDL AX, R9
279 MOVL R14, AX
280 ADDL $0x923f82a4, R9
281 MOVL R14, CX
282 RORL $0x06, AX
283 MOVL R14, DX
284 RORL $0x0b, CX
285 XORL CX, AX
286 MOVL R14, CX
287 RORL $0x19, DX
288 ANDL R15, CX
289 XORL AX, DX
290 MOVL R14, AX
291 NOTL AX
292 ADDL DX, R9
293 ANDL R8, AX
294 XORL CX, AX
295 ADDL R9, AX
296 MOVL R10, DI
297 MOVL R12, BX
298 RORL $0x02, DI
299 MOVL R10, DX
300 ANDL R11, BX
301 RORL $0x0d, DX
302 MOVL R10, CX
303 ANDL R12, CX
304 XORL DX, DI
305 XORL CX, BX
306 MOVL R10, DX
307 MOVL R11, CX
308 RORL $0x16, DX
309 ANDL R10, CX
310 XORL CX, BX
311 XORL DX, DI
312 ADDL DI, BX
313 MOVL BX, R9
314 ADDL AX, R13
315 ADDL AX, R9
316 MOVL 28(SI), AX
317 BSWAPL AX
318 MOVL AX, 28(BP)
319 ADDL AX, R8
320 MOVL R13, AX
321 ADDL $0xab1c5ed5, R8
322 MOVL R13, CX
323 RORL $0x06, AX
324 MOVL R13, DX
325 RORL $0x0b, CX
326 XORL CX, AX
327 MOVL R13, CX
328 RORL $0x19, DX
329 ANDL R14, CX
330 XORL AX, DX
331 MOVL R13, AX
332 NOTL AX
333 ADDL DX, R8
334 ANDL R15, AX
335 XORL CX, AX
336 ADDL R8, AX
337 MOVL R9, DI
338 MOVL R11, BX
339 RORL $0x02, DI
340 MOVL R9, DX
341 ANDL R10, BX
342 RORL $0x0d, DX
343 MOVL R9, CX
344 ANDL R11, CX
345 XORL DX, DI
346 XORL CX, BX
347 MOVL R9, DX
348 MOVL R10, CX
349 RORL $0x16, DX
350 ANDL R9, CX
351 XORL CX, BX
352 XORL DX, DI
353 ADDL DI, BX
354 MOVL BX, R8
355 ADDL AX, R12
356 ADDL AX, R8
357 MOVL 32(SI), AX
358 BSWAPL AX
359 MOVL AX, 32(BP)
360 ADDL AX, R15
361 MOVL R12, AX
362 ADDL $0xd807aa98, R15
363 MOVL R12, CX
364 RORL $0x06, AX
365 MOVL R12, DX
366 RORL $0x0b, CX
367 XORL CX, AX
368 MOVL R12, CX
369 RORL $0x19, DX
370 ANDL R13, CX
371 XORL AX, DX
372 MOVL R12, AX
373 NOTL AX
374 ADDL DX, R15
375 ANDL R14, AX
376 XORL CX, AX
377 ADDL R15, AX
378 MOVL R8, DI
379 MOVL R10, BX
380 RORL $0x02, DI
381 MOVL R8, DX
382 ANDL R9, BX
383 RORL $0x0d, DX
384 MOVL R8, CX
385 ANDL R10, CX
386 XORL DX, DI
387 XORL CX, BX
388 MOVL R8, DX
389 MOVL R9, CX
390 RORL $0x16, DX
391 ANDL R8, CX
392 XORL CX, BX
393 XORL DX, DI
394 ADDL DI, BX
395 MOVL BX, R15
396 ADDL AX, R11
397 ADDL AX, R15
398 MOVL 36(SI), AX
399 BSWAPL AX
400 MOVL AX, 36(BP)
401 ADDL AX, R14
402 MOVL R11, AX
403 ADDL $0x12835b01, R14
404 MOVL R11, CX
405 RORL $0x06, AX
406 MOVL R11, DX
407 RORL $0x0b, CX
408 XORL CX, AX
409 MOVL R11, CX
410 RORL $0x19, DX
411 ANDL R12, CX
412 XORL AX, DX
413 MOVL R11, AX
414 NOTL AX
415 ADDL DX, R14
416 ANDL R13, AX
417 XORL CX, AX
418 ADDL R14, AX
419 MOVL R15, DI
420 MOVL R9, BX
421 RORL $0x02, DI
422 MOVL R15, DX
423 ANDL R8, BX
424 RORL $0x0d, DX
425 MOVL R15, CX
426 ANDL R9, CX
427 XORL DX, DI
428 XORL CX, BX
429 MOVL R15, DX
430 MOVL R8, CX
431 RORL $0x16, DX
432 ANDL R15, CX
433 XORL CX, BX
434 XORL DX, DI
435 ADDL DI, BX
436 MOVL BX, R14
437 ADDL AX, R10
438 ADDL AX, R14
439 MOVL 40(SI), AX
440 BSWAPL AX
441 MOVL AX, 40(BP)
442 ADDL AX, R13
443 MOVL R10, AX
444 ADDL $0x243185be, R13
445 MOVL R10, CX
446 RORL $0x06, AX
447 MOVL R10, DX
448 RORL $0x0b, CX
449 XORL CX, AX
450 MOVL R10, CX
451 RORL $0x19, DX
452 ANDL R11, CX
453 XORL AX, DX
454 MOVL R10, AX
455 NOTL AX
456 ADDL DX, R13
457 ANDL R12, AX
458 XORL CX, AX
459 ADDL R13, AX
460 MOVL R14, DI
461 MOVL R8, BX
462 RORL $0x02, DI
463 MOVL R14, DX
464 ANDL R15, BX
465 RORL $0x0d, DX
466 MOVL R14, CX
467 ANDL R8, CX
468 XORL DX, DI
469 XORL CX, BX
470 MOVL R14, DX
471 MOVL R15, CX
472 RORL $0x16, DX
473 ANDL R14, CX
474 XORL CX, BX
475 XORL DX, DI
476 ADDL DI, BX
477 MOVL BX, R13
478 ADDL AX, R9
479 ADDL AX, R13
480 MOVL 44(SI), AX
481 BSWAPL AX
482 MOVL AX, 44(BP)
483 ADDL AX, R12
484 MOVL R9, AX
485 ADDL $0x550c7dc3, R12
486 MOVL R9, CX
487 RORL $0x06, AX
488 MOVL R9, DX
489 RORL $0x0b, CX
490 XORL CX, AX
491 MOVL R9, CX
492 RORL $0x19, DX
493 ANDL R10, CX
494 XORL AX, DX
495 MOVL R9, AX
496 NOTL AX
497 ADDL DX, R12
498 ANDL R11, AX
499 XORL CX, AX
500 ADDL R12, AX
501 MOVL R13, DI
502 MOVL R15, BX
503 RORL $0x02, DI
504 MOVL R13, DX
505 ANDL R14, BX
506 RORL $0x0d, DX
507 MOVL R13, CX
508 ANDL R15, CX
509 XORL DX, DI
510 XORL CX, BX
511 MOVL R13, DX
512 MOVL R14, CX
513 RORL $0x16, DX
514 ANDL R13, CX
515 XORL CX, BX
516 XORL DX, DI
517 ADDL DI, BX
518 MOVL BX, R12
519 ADDL AX, R8
520 ADDL AX, R12
521 MOVL 48(SI), AX
522 BSWAPL AX
523 MOVL AX, 48(BP)
524 ADDL AX, R11
525 MOVL R8, AX
526 ADDL $0x72be5d74, R11
527 MOVL R8, CX
528 RORL $0x06, AX
529 MOVL R8, DX
530 RORL $0x0b, CX
531 XORL CX, AX
532 MOVL R8, CX
533 RORL $0x19, DX
534 ANDL R9, CX
535 XORL AX, DX
536 MOVL R8, AX
537 NOTL AX
538 ADDL DX, R11
539 ANDL R10, AX
540 XORL CX, AX
541 ADDL R11, AX
542 MOVL R12, DI
543 MOVL R14, BX
544 RORL $0x02, DI
545 MOVL R12, DX
546 ANDL R13, BX
547 RORL $0x0d, DX
548 MOVL R12, CX
549 ANDL R14, CX
550 XORL DX, DI
551 XORL CX, BX
552 MOVL R12, DX
553 MOVL R13, CX
554 RORL $0x16, DX
555 ANDL R12, CX
556 XORL CX, BX
557 XORL DX, DI
558 ADDL DI, BX
559 MOVL BX, R11
560 ADDL AX, R15
561 ADDL AX, R11
562 MOVL 52(SI), AX
563 BSWAPL AX
564 MOVL AX, 52(BP)
565 ADDL AX, R10
566 MOVL R15, AX
567 ADDL $0x80deb1fe, R10
568 MOVL R15, CX
569 RORL $0x06, AX
570 MOVL R15, DX
571 RORL $0x0b, CX
572 XORL CX, AX
573 MOVL R15, CX
574 RORL $0x19, DX
575 ANDL R8, CX
576 XORL AX, DX
577 MOVL R15, AX
578 NOTL AX
579 ADDL DX, R10
580 ANDL R9, AX
581 XORL CX, AX
582 ADDL R10, AX
583 MOVL R11, DI
584 MOVL R13, BX
585 RORL $0x02, DI
586 MOVL R11, DX
587 ANDL R12, BX
588 RORL $0x0d, DX
589 MOVL R11, CX
590 ANDL R13, CX
591 XORL DX, DI
592 XORL CX, BX
593 MOVL R11, DX
594 MOVL R12, CX
595 RORL $0x16, DX
596 ANDL R11, CX
597 XORL CX, BX
598 XORL DX, DI
599 ADDL DI, BX
600 MOVL BX, R10
601 ADDL AX, R14
602 ADDL AX, R10
603 MOVL 56(SI), AX
604 BSWAPL AX
605 MOVL AX, 56(BP)
606 ADDL AX, R9
607 MOVL R14, AX
608 ADDL $0x9bdc06a7, R9
609 MOVL R14, CX
610 RORL $0x06, AX
611 MOVL R14, DX
612 RORL $0x0b, CX
613 XORL CX, AX
614 MOVL R14, CX
615 RORL $0x19, DX
616 ANDL R15, CX
617 XORL AX, DX
618 MOVL R14, AX
619 NOTL AX
620 ADDL DX, R9
621 ANDL R8, AX
622 XORL CX, AX
623 ADDL R9, AX
624 MOVL R10, DI
625 MOVL R12, BX
626 RORL $0x02, DI
627 MOVL R10, DX
628 ANDL R11, BX
629 RORL $0x0d, DX
630 MOVL R10, CX
631 ANDL R12, CX
632 XORL DX, DI
633 XORL CX, BX
634 MOVL R10, DX
635 MOVL R11, CX
636 RORL $0x16, DX
637 ANDL R10, CX
638 XORL CX, BX
639 XORL DX, DI
640 ADDL DI, BX
641 MOVL BX, R9
642 ADDL AX, R13
643 ADDL AX, R9
644 MOVL 60(SI), AX
645 BSWAPL AX
646 MOVL AX, 60(BP)
647 ADDL AX, R8
648 MOVL R13, AX
649 ADDL $0xc19bf174, R8
650 MOVL R13, CX
651 RORL $0x06, AX
652 MOVL R13, DX
653 RORL $0x0b, CX
654 XORL CX, AX
655 MOVL R13, CX
656 RORL $0x19, DX
657 ANDL R14, CX
658 XORL AX, DX
659 MOVL R13, AX
660 NOTL AX
661 ADDL DX, R8
662 ANDL R15, AX
663 XORL CX, AX
664 ADDL R8, AX
665 MOVL R9, DI
666 MOVL R11, BX
667 RORL $0x02, DI
668 MOVL R9, DX
669 ANDL R10, BX
670 RORL $0x0d, DX
671 MOVL R9, CX
672 ANDL R11, CX
673 XORL DX, DI
674 XORL CX, BX
675 MOVL R9, DX
676 MOVL R10, CX
677 RORL $0x16, DX
678 ANDL R9, CX
679 XORL CX, BX
680 XORL DX, DI
681 ADDL DI, BX
682 MOVL BX, R8
683 ADDL AX, R12
684 ADDL AX, R8
685 MOVL 56(BP), AX
686 MOVL AX, CX
687 RORL $0x11, AX
688 MOVL CX, DX
689 RORL $0x13, CX
690 SHRL $0x0a, DX
691 MOVL 4(BP), BX
692 XORL CX, AX
693 MOVL BX, CX
694 XORL DX, AX
695 RORL $0x07, BX
696 MOVL CX, DX
697 SHRL $0x03, DX
698 RORL $0x12, CX
699 ADDL 36(BP), AX
700 XORL CX, BX
701 XORL DX, BX
702 ADDL (BP), BX
703 ADDL BX, AX
704 MOVL AX, 64(BP)
705 ADDL AX, R15
706 MOVL R12, AX
707 ADDL $0xe49b69c1, R15
708 MOVL R12, CX
709 RORL $0x06, AX
710 MOVL R12, DX
711 RORL $0x0b, CX
712 XORL CX, AX
713 MOVL R12, CX
714 RORL $0x19, DX
715 ANDL R13, CX
716 XORL AX, DX
717 MOVL R12, AX
718 NOTL AX
719 ADDL DX, R15
720 ANDL R14, AX
721 XORL CX, AX
722 ADDL R15, AX
723 MOVL R8, DI
724 MOVL R10, BX
725 RORL $0x02, DI
726 MOVL R8, DX
727 ANDL R9, BX
728 RORL $0x0d, DX
729 MOVL R8, CX
730 ANDL R10, CX
731 XORL DX, DI
732 XORL CX, BX
733 MOVL R8, DX
734 MOVL R9, CX
735 RORL $0x16, DX
736 ANDL R8, CX
737 XORL CX, BX
738 XORL DX, DI
739 ADDL DI, BX
740 MOVL BX, R15
741 ADDL AX, R11
742 ADDL AX, R15
743 MOVL 60(BP), AX
744 MOVL AX, CX
745 RORL $0x11, AX
746 MOVL CX, DX
747 RORL $0x13, CX
748 SHRL $0x0a, DX
749 MOVL 8(BP), BX
750 XORL CX, AX
751 MOVL BX, CX
752 XORL DX, AX
753 RORL $0x07, BX
754 MOVL CX, DX
755 SHRL $0x03, DX
756 RORL $0x12, CX
757 ADDL 40(BP), AX
758 XORL CX, BX
759 XORL DX, BX
760 ADDL 4(BP), BX
761 ADDL BX, AX
762 MOVL AX, 68(BP)
763 ADDL AX, R14
764 MOVL R11, AX
765 ADDL $0xefbe4786, R14
766 MOVL R11, CX
767 RORL $0x06, AX
768 MOVL R11, DX
769 RORL $0x0b, CX
770 XORL CX, AX
771 MOVL R11, CX
772 RORL $0x19, DX
773 ANDL R12, CX
774 XORL AX, DX
775 MOVL R11, AX
776 NOTL AX
777 ADDL DX, R14
778 ANDL R13, AX
779 XORL CX, AX
780 ADDL R14, AX
781 MOVL R15, DI
782 MOVL R9, BX
783 RORL $0x02, DI
784 MOVL R15, DX
785 ANDL R8, BX
786 RORL $0x0d, DX
787 MOVL R15, CX
788 ANDL R9, CX
789 XORL DX, DI
790 XORL CX, BX
791 MOVL R15, DX
792 MOVL R8, CX
793 RORL $0x16, DX
794 ANDL R15, CX
795 XORL CX, BX
796 XORL DX, DI
797 ADDL DI, BX
798 MOVL BX, R14
799 ADDL AX, R10
800 ADDL AX, R14
801 MOVL 64(BP), AX
802 MOVL AX, CX
803 RORL $0x11, AX
804 MOVL CX, DX
805 RORL $0x13, CX
806 SHRL $0x0a, DX
807 MOVL 12(BP), BX
808 XORL CX, AX
809 MOVL BX, CX
810 XORL DX, AX
811 RORL $0x07, BX
812 MOVL CX, DX
813 SHRL $0x03, DX
814 RORL $0x12, CX
815 ADDL 44(BP), AX
816 XORL CX, BX
817 XORL DX, BX
818 ADDL 8(BP), BX
819 ADDL BX, AX
820 MOVL AX, 72(BP)
821 ADDL AX, R13
822 MOVL R10, AX
823 ADDL $0x0fc19dc6, R13
824 MOVL R10, CX
825 RORL $0x06, AX
826 MOVL R10, DX
827 RORL $0x0b, CX
828 XORL CX, AX
829 MOVL R10, CX
830 RORL $0x19, DX
831 ANDL R11, CX
832 XORL AX, DX
833 MOVL R10, AX
834 NOTL AX
835 ADDL DX, R13
836 ANDL R12, AX
837 XORL CX, AX
838 ADDL R13, AX
839 MOVL R14, DI
840 MOVL R8, BX
841 RORL $0x02, DI
842 MOVL R14, DX
843 ANDL R15, BX
844 RORL $0x0d, DX
845 MOVL R14, CX
846 ANDL R8, CX
847 XORL DX, DI
848 XORL CX, BX
849 MOVL R14, DX
850 MOVL R15, CX
851 RORL $0x16, DX
852 ANDL R14, CX
853 XORL CX, BX
854 XORL DX, DI
855 ADDL DI, BX
856 MOVL BX, R13
857 ADDL AX, R9
858 ADDL AX, R13
859 MOVL 68(BP), AX
860 MOVL AX, CX
861 RORL $0x11, AX
862 MOVL CX, DX
863 RORL $0x13, CX
864 SHRL $0x0a, DX
865 MOVL 16(BP), BX
866 XORL CX, AX
867 MOVL BX, CX
868 XORL DX, AX
869 RORL $0x07, BX
870 MOVL CX, DX
871 SHRL $0x03, DX
872 RORL $0x12, CX
873 ADDL 48(BP), AX
874 XORL CX, BX
875 XORL DX, BX
876 ADDL 12(BP), BX
877 ADDL BX, AX
878 MOVL AX, 76(BP)
879 ADDL AX, R12
880 MOVL R9, AX
881 ADDL $0x240ca1cc, R12
882 MOVL R9, CX
883 RORL $0x06, AX
884 MOVL R9, DX
885 RORL $0x0b, CX
886 XORL CX, AX
887 MOVL R9, CX
888 RORL $0x19, DX
889 ANDL R10, CX
890 XORL AX, DX
891 MOVL R9, AX
892 NOTL AX
893 ADDL DX, R12
894 ANDL R11, AX
895 XORL CX, AX
896 ADDL R12, AX
897 MOVL R13, DI
898 MOVL R15, BX
899 RORL $0x02, DI
900 MOVL R13, DX
901 ANDL R14, BX
902 RORL $0x0d, DX
903 MOVL R13, CX
904 ANDL R15, CX
905 XORL DX, DI
906 XORL CX, BX
907 MOVL R13, DX
908 MOVL R14, CX
909 RORL $0x16, DX
910 ANDL R13, CX
911 XORL CX, BX
912 XORL DX, DI
913 ADDL DI, BX
914 MOVL BX, R12
915 ADDL AX, R8
916 ADDL AX, R12
917 MOVL 72(BP), AX
918 MOVL AX, CX
919 RORL $0x11, AX
920 MOVL CX, DX
921 RORL $0x13, CX
922 SHRL $0x0a, DX
923 MOVL 20(BP), BX
924 XORL CX, AX
925 MOVL BX, CX
926 XORL DX, AX
927 RORL $0x07, BX
928 MOVL CX, DX
929 SHRL $0x03, DX
930 RORL $0x12, CX
931 ADDL 52(BP), AX
932 XORL CX, BX
933 XORL DX, BX
934 ADDL 16(BP), BX
935 ADDL BX, AX
936 MOVL AX, 80(BP)
937 ADDL AX, R11
938 MOVL R8, AX
939 ADDL $0x2de92c6f, R11
940 MOVL R8, CX
941 RORL $0x06, AX
942 MOVL R8, DX
943 RORL $0x0b, CX
944 XORL CX, AX
945 MOVL R8, CX
946 RORL $0x19, DX
947 ANDL R9, CX
948 XORL AX, DX
949 MOVL R8, AX
950 NOTL AX
951 ADDL DX, R11
952 ANDL R10, AX
953 XORL CX, AX
954 ADDL R11, AX
955 MOVL R12, DI
956 MOVL R14, BX
957 RORL $0x02, DI
958 MOVL R12, DX
959 ANDL R13, BX
960 RORL $0x0d, DX
961 MOVL R12, CX
962 ANDL R14, CX
963 XORL DX, DI
964 XORL CX, BX
965 MOVL R12, DX
966 MOVL R13, CX
967 RORL $0x16, DX
968 ANDL R12, CX
969 XORL CX, BX
970 XORL DX, DI
971 ADDL DI, BX
972 MOVL BX, R11
973 ADDL AX, R15
974 ADDL AX, R11
975 MOVL 76(BP), AX
976 MOVL AX, CX
977 RORL $0x11, AX
978 MOVL CX, DX
979 RORL $0x13, CX
980 SHRL $0x0a, DX
981 MOVL 24(BP), BX
982 XORL CX, AX
983 MOVL BX, CX
984 XORL DX, AX
985 RORL $0x07, BX
986 MOVL CX, DX
987 SHRL $0x03, DX
988 RORL $0x12, CX
989 ADDL 56(BP), AX
990 XORL CX, BX
991 XORL DX, BX
992 ADDL 20(BP), BX
993 ADDL BX, AX
994 MOVL AX, 84(BP)
995 ADDL AX, R10
996 MOVL R15, AX
997 ADDL $0x4a7484aa, R10
998 MOVL R15, CX
999 RORL $0x06, AX
1000 MOVL R15, DX
1001 RORL $0x0b, CX
1002 XORL CX, AX
1003 MOVL R15, CX
1004 RORL $0x19, DX
1005 ANDL R8, CX
1006 XORL AX, DX
1007 MOVL R15, AX
1008 NOTL AX
1009 ADDL DX, R10
1010 ANDL R9, AX
1011 XORL CX, AX
1012 ADDL R10, AX
1013 MOVL R11, DI
1014 MOVL R13, BX
1015 RORL $0x02, DI
1016 MOVL R11, DX
1017 ANDL R12, BX
1018 RORL $0x0d, DX
1019 MOVL R11, CX
1020 ANDL R13, CX
1021 XORL DX, DI
1022 XORL CX, BX
1023 MOVL R11, DX
1024 MOVL R12, CX
1025 RORL $0x16, DX
1026 ANDL R11, CX
1027 XORL CX, BX
1028 XORL DX, DI
1029 ADDL DI, BX
1030 MOVL BX, R10
1031 ADDL AX, R14
1032 ADDL AX, R10
1033 MOVL 80(BP), AX
1034 MOVL AX, CX
1035 RORL $0x11, AX
1036 MOVL CX, DX
1037 RORL $0x13, CX
1038 SHRL $0x0a, DX
1039 MOVL 28(BP), BX
1040 XORL CX, AX
1041 MOVL BX, CX
1042 XORL DX, AX
1043 RORL $0x07, BX
1044 MOVL CX, DX
1045 SHRL $0x03, DX
1046 RORL $0x12, CX
1047 ADDL 60(BP), AX
1048 XORL CX, BX
1049 XORL DX, BX
1050 ADDL 24(BP), BX
1051 ADDL BX, AX
1052 MOVL AX, 88(BP)
1053 ADDL AX, R9
1054 MOVL R14, AX
1055 ADDL $0x5cb0a9dc, R9
1056 MOVL R14, CX
1057 RORL $0x06, AX
1058 MOVL R14, DX
1059 RORL $0x0b, CX
1060 XORL CX, AX
1061 MOVL R14, CX
1062 RORL $0x19, DX
1063 ANDL R15, CX
1064 XORL AX, DX
1065 MOVL R14, AX
1066 NOTL AX
1067 ADDL DX, R9
1068 ANDL R8, AX
1069 XORL CX, AX
1070 ADDL R9, AX
1071 MOVL R10, DI
1072 MOVL R12, BX
1073 RORL $0x02, DI
1074 MOVL R10, DX
1075 ANDL R11, BX
1076 RORL $0x0d, DX
1077 MOVL R10, CX
1078 ANDL R12, CX
1079 XORL DX, DI
1080 XORL CX, BX
1081 MOVL R10, DX
1082 MOVL R11, CX
1083 RORL $0x16, DX
1084 ANDL R10, CX
1085 XORL CX, BX
1086 XORL DX, DI
1087 ADDL DI, BX
1088 MOVL BX, R9
1089 ADDL AX, R13
1090 ADDL AX, R9
1091 MOVL 84(BP), AX
1092 MOVL AX, CX
1093 RORL $0x11, AX
1094 MOVL CX, DX
1095 RORL $0x13, CX
1096 SHRL $0x0a, DX
1097 MOVL 32(BP), BX
1098 XORL CX, AX
1099 MOVL BX, CX
1100 XORL DX, AX
1101 RORL $0x07, BX
1102 MOVL CX, DX
1103 SHRL $0x03, DX
1104 RORL $0x12, CX
1105 ADDL 64(BP), AX
1106 XORL CX, BX
1107 XORL DX, BX
1108 ADDL 28(BP), BX
1109 ADDL BX, AX
1110 MOVL AX, 92(BP)
1111 ADDL AX, R8
1112 MOVL R13, AX
1113 ADDL $0x76f988da, R8
1114 MOVL R13, CX
1115 RORL $0x06, AX
1116 MOVL R13, DX
1117 RORL $0x0b, CX
1118 XORL CX, AX
1119 MOVL R13, CX
1120 RORL $0x19, DX
1121 ANDL R14, CX
1122 XORL AX, DX
1123 MOVL R13, AX
1124 NOTL AX
1125 ADDL DX, R8
1126 ANDL R15, AX
1127 XORL CX, AX
1128 ADDL R8, AX
1129 MOVL R9, DI
1130 MOVL R11, BX
1131 RORL $0x02, DI
1132 MOVL R9, DX
1133 ANDL R10, BX
1134 RORL $0x0d, DX
1135 MOVL R9, CX
1136 ANDL R11, CX
1137 XORL DX, DI
1138 XORL CX, BX
1139 MOVL R9, DX
1140 MOVL R10, CX
1141 RORL $0x16, DX
1142 ANDL R9, CX
1143 XORL CX, BX
1144 XORL DX, DI
1145 ADDL DI, BX
1146 MOVL BX, R8
1147 ADDL AX, R12
1148 ADDL AX, R8
1149 MOVL 88(BP), AX
1150 MOVL AX, CX
1151 RORL $0x11, AX
1152 MOVL CX, DX
1153 RORL $0x13, CX
1154 SHRL $0x0a, DX
1155 MOVL 36(BP), BX
1156 XORL CX, AX
1157 MOVL BX, CX
1158 XORL DX, AX
1159 RORL $0x07, BX
1160 MOVL CX, DX
1161 SHRL $0x03, DX
1162 RORL $0x12, CX
1163 ADDL 68(BP), AX
1164 XORL CX, BX
1165 XORL DX, BX
1166 ADDL 32(BP), BX
1167 ADDL BX, AX
1168 MOVL AX, 96(BP)
1169 ADDL AX, R15
1170 MOVL R12, AX
1171 ADDL $0x983e5152, R15
1172 MOVL R12, CX
1173 RORL $0x06, AX
1174 MOVL R12, DX
1175 RORL $0x0b, CX
1176 XORL CX, AX
1177 MOVL R12, CX
1178 RORL $0x19, DX
1179 ANDL R13, CX
1180 XORL AX, DX
1181 MOVL R12, AX
1182 NOTL AX
1183 ADDL DX, R15
1184 ANDL R14, AX
1185 XORL CX, AX
1186 ADDL R15, AX
1187 MOVL R8, DI
1188 MOVL R10, BX
1189 RORL $0x02, DI
1190 MOVL R8, DX
1191 ANDL R9, BX
1192 RORL $0x0d, DX
1193 MOVL R8, CX
1194 ANDL R10, CX
1195 XORL DX, DI
1196 XORL CX, BX
1197 MOVL R8, DX
1198 MOVL R9, CX
1199 RORL $0x16, DX
1200 ANDL R8, CX
1201 XORL CX, BX
1202 XORL DX, DI
1203 ADDL DI, BX
1204 MOVL BX, R15
1205 ADDL AX, R11
1206 ADDL AX, R15
1207 MOVL 92(BP), AX
1208 MOVL AX, CX
1209 RORL $0x11, AX
1210 MOVL CX, DX
1211 RORL $0x13, CX
1212 SHRL $0x0a, DX
1213 MOVL 40(BP), BX
1214 XORL CX, AX
1215 MOVL BX, CX
1216 XORL DX, AX
1217 RORL $0x07, BX
1218 MOVL CX, DX
1219 SHRL $0x03, DX
1220 RORL $0x12, CX
1221 ADDL 72(BP), AX
1222 XORL CX, BX
1223 XORL DX, BX
1224 ADDL 36(BP), BX
1225 ADDL BX, AX
1226 MOVL AX, 100(BP)
1227 ADDL AX, R14
1228 MOVL R11, AX
1229 ADDL $0xa831c66d, R14
1230 MOVL R11, CX
1231 RORL $0x06, AX
1232 MOVL R11, DX
1233 RORL $0x0b, CX
1234 XORL CX, AX
1235 MOVL R11, CX
1236 RORL $0x19, DX
1237 ANDL R12, CX
1238 XORL AX, DX
1239 MOVL R11, AX
1240 NOTL AX
1241 ADDL DX, R14
1242 ANDL R13, AX
1243 XORL CX, AX
1244 ADDL R14, AX
1245 MOVL R15, DI
1246 MOVL R9, BX
1247 RORL $0x02, DI
1248 MOVL R15, DX
1249 ANDL R8, BX
1250 RORL $0x0d, DX
1251 MOVL R15, CX
1252 ANDL R9, CX
1253 XORL DX, DI
1254 XORL CX, BX
1255 MOVL R15, DX
1256 MOVL R8, CX
1257 RORL $0x16, DX
1258 ANDL R15, CX
1259 XORL CX, BX
1260 XORL DX, DI
1261 ADDL DI, BX
1262 MOVL BX, R14
1263 ADDL AX, R10
1264 ADDL AX, R14
1265 MOVL 96(BP), AX
1266 MOVL AX, CX
1267 RORL $0x11, AX
1268 MOVL CX, DX
1269 RORL $0x13, CX
1270 SHRL $0x0a, DX
1271 MOVL 44(BP), BX
1272 XORL CX, AX
1273 MOVL BX, CX
1274 XORL DX, AX
1275 RORL $0x07, BX
1276 MOVL CX, DX
1277 SHRL $0x03, DX
1278 RORL $0x12, CX
1279 ADDL 76(BP), AX
1280 XORL CX, BX
1281 XORL DX, BX
1282 ADDL 40(BP), BX
1283 ADDL BX, AX
1284 MOVL AX, 104(BP)
1285 ADDL AX, R13
1286 MOVL R10, AX
1287 ADDL $0xb00327c8, R13
1288 MOVL R10, CX
1289 RORL $0x06, AX
1290 MOVL R10, DX
1291 RORL $0x0b, CX
1292 XORL CX, AX
1293 MOVL R10, CX
1294 RORL $0x19, DX
1295 ANDL R11, CX
1296 XORL AX, DX
1297 MOVL R10, AX
1298 NOTL AX
1299 ADDL DX, R13
1300 ANDL R12, AX
1301 XORL CX, AX
1302 ADDL R13, AX
1303 MOVL R14, DI
1304 MOVL R8, BX
1305 RORL $0x02, DI
1306 MOVL R14, DX
1307 ANDL R15, BX
1308 RORL $0x0d, DX
1309 MOVL R14, CX
1310 ANDL R8, CX
1311 XORL DX, DI
1312 XORL CX, BX
1313 MOVL R14, DX
1314 MOVL R15, CX
1315 RORL $0x16, DX
1316 ANDL R14, CX
1317 XORL CX, BX
1318 XORL DX, DI
1319 ADDL DI, BX
1320 MOVL BX, R13
1321 ADDL AX, R9
1322 ADDL AX, R13
1323 MOVL 100(BP), AX
1324 MOVL AX, CX
1325 RORL $0x11, AX
1326 MOVL CX, DX
1327 RORL $0x13, CX
1328 SHRL $0x0a, DX
1329 MOVL 48(BP), BX
1330 XORL CX, AX
1331 MOVL BX, CX
1332 XORL DX, AX
1333 RORL $0x07, BX
1334 MOVL CX, DX
1335 SHRL $0x03, DX
1336 RORL $0x12, CX
1337 ADDL 80(BP), AX
1338 XORL CX, BX
1339 XORL DX, BX
1340 ADDL 44(BP), BX
1341 ADDL BX, AX
1342 MOVL AX, 108(BP)
1343 ADDL AX, R12
1344 MOVL R9, AX
1345 ADDL $0xbf597fc7, R12
1346 MOVL R9, CX
1347 RORL $0x06, AX
1348 MOVL R9, DX
1349 RORL $0x0b, CX
1350 XORL CX, AX
1351 MOVL R9, CX
1352 RORL $0x19, DX
1353 ANDL R10, CX
1354 XORL AX, DX
1355 MOVL R9, AX
1356 NOTL AX
1357 ADDL DX, R12
1358 ANDL R11, AX
1359 XORL CX, AX
1360 ADDL R12, AX
1361 MOVL R13, DI
1362 MOVL R15, BX
1363 RORL $0x02, DI
1364 MOVL R13, DX
1365 ANDL R14, BX
1366 RORL $0x0d, DX
1367 MOVL R13, CX
1368 ANDL R15, CX
1369 XORL DX, DI
1370 XORL CX, BX
1371 MOVL R13, DX
1372 MOVL R14, CX
1373 RORL $0x16, DX
1374 ANDL R13, CX
1375 XORL CX, BX
1376 XORL DX, DI
1377 ADDL DI, BX
1378 MOVL BX, R12
1379 ADDL AX, R8
1380 ADDL AX, R12
1381 MOVL 104(BP), AX
1382 MOVL AX, CX
1383 RORL $0x11, AX
1384 MOVL CX, DX
1385 RORL $0x13, CX
1386 SHRL $0x0a, DX
1387 MOVL 52(BP), BX
1388 XORL CX, AX
1389 MOVL BX, CX
1390 XORL DX, AX
1391 RORL $0x07, BX
1392 MOVL CX, DX
1393 SHRL $0x03, DX
1394 RORL $0x12, CX
1395 ADDL 84(BP), AX
1396 XORL CX, BX
1397 XORL DX, BX
1398 ADDL 48(BP), BX
1399 ADDL BX, AX
1400 MOVL AX, 112(BP)
1401 ADDL AX, R11
1402 MOVL R8, AX
1403 ADDL $0xc6e00bf3, R11
1404 MOVL R8, CX
1405 RORL $0x06, AX
1406 MOVL R8, DX
1407 RORL $0x0b, CX
1408 XORL CX, AX
1409 MOVL R8, CX
1410 RORL $0x19, DX
1411 ANDL R9, CX
1412 XORL AX, DX
1413 MOVL R8, AX
1414 NOTL AX
1415 ADDL DX, R11
1416 ANDL R10, AX
1417 XORL CX, AX
1418 ADDL R11, AX
1419 MOVL R12, DI
1420 MOVL R14, BX
1421 RORL $0x02, DI
1422 MOVL R12, DX
1423 ANDL R13, BX
1424 RORL $0x0d, DX
1425 MOVL R12, CX
1426 ANDL R14, CX
1427 XORL DX, DI
1428 XORL CX, BX
1429 MOVL R12, DX
1430 MOVL R13, CX
1431 RORL $0x16, DX
1432 ANDL R12, CX
1433 XORL CX, BX
1434 XORL DX, DI
1435 ADDL DI, BX
1436 MOVL BX, R11
1437 ADDL AX, R15
1438 ADDL AX, R11
1439 MOVL 108(BP), AX
1440 MOVL AX, CX
1441 RORL $0x11, AX
1442 MOVL CX, DX
1443 RORL $0x13, CX
1444 SHRL $0x0a, DX
1445 MOVL 56(BP), BX
1446 XORL CX, AX
1447 MOVL BX, CX
1448 XORL DX, AX
1449 RORL $0x07, BX
1450 MOVL CX, DX
1451 SHRL $0x03, DX
1452 RORL $0x12, CX
1453 ADDL 88(BP), AX
1454 XORL CX, BX
1455 XORL DX, BX
1456 ADDL 52(BP), BX
1457 ADDL BX, AX
1458 MOVL AX, 116(BP)
1459 ADDL AX, R10
1460 MOVL R15, AX
1461 ADDL $0xd5a79147, R10
1462 MOVL R15, CX
1463 RORL $0x06, AX
1464 MOVL R15, DX
1465 RORL $0x0b, CX
1466 XORL CX, AX
1467 MOVL R15, CX
1468 RORL $0x19, DX
1469 ANDL R8, CX
1470 XORL AX, DX
1471 MOVL R15, AX
1472 NOTL AX
1473 ADDL DX, R10
1474 ANDL R9, AX
1475 XORL CX, AX
1476 ADDL R10, AX
1477 MOVL R11, DI
1478 MOVL R13, BX
1479 RORL $0x02, DI
1480 MOVL R11, DX
1481 ANDL R12, BX
1482 RORL $0x0d, DX
1483 MOVL R11, CX
1484 ANDL R13, CX
1485 XORL DX, DI
1486 XORL CX, BX
1487 MOVL R11, DX
1488 MOVL R12, CX
1489 RORL $0x16, DX
1490 ANDL R11, CX
1491 XORL CX, BX
1492 XORL DX, DI
1493 ADDL DI, BX
1494 MOVL BX, R10
1495 ADDL AX, R14
1496 ADDL AX, R10
1497 MOVL 112(BP), AX
1498 MOVL AX, CX
1499 RORL $0x11, AX
1500 MOVL CX, DX
1501 RORL $0x13, CX
1502 SHRL $0x0a, DX
1503 MOVL 60(BP), BX
1504 XORL CX, AX
1505 MOVL BX, CX
1506 XORL DX, AX
1507 RORL $0x07, BX
1508 MOVL CX, DX
1509 SHRL $0x03, DX
1510 RORL $0x12, CX
1511 ADDL 92(BP), AX
1512 XORL CX, BX
1513 XORL DX, BX
1514 ADDL 56(BP), BX
1515 ADDL BX, AX
1516 MOVL AX, 120(BP)
1517 ADDL AX, R9
1518 MOVL R14, AX
1519 ADDL $0x06ca6351, R9
1520 MOVL R14, CX
1521 RORL $0x06, AX
1522 MOVL R14, DX
1523 RORL $0x0b, CX
1524 XORL CX, AX
1525 MOVL R14, CX
1526 RORL $0x19, DX
1527 ANDL R15, CX
1528 XORL AX, DX
1529 MOVL R14, AX
1530 NOTL AX
1531 ADDL DX, R9
1532 ANDL R8, AX
1533 XORL CX, AX
1534 ADDL R9, AX
1535 MOVL R10, DI
1536 MOVL R12, BX
1537 RORL $0x02, DI
1538 MOVL R10, DX
1539 ANDL R11, BX
1540 RORL $0x0d, DX
1541 MOVL R10, CX
1542 ANDL R12, CX
1543 XORL DX, DI
1544 XORL CX, BX
1545 MOVL R10, DX
1546 MOVL R11, CX
1547 RORL $0x16, DX
1548 ANDL R10, CX
1549 XORL CX, BX
1550 XORL DX, DI
1551 ADDL DI, BX
1552 MOVL BX, R9
1553 ADDL AX, R13
1554 ADDL AX, R9
1555 MOVL 116(BP), AX
1556 MOVL AX, CX
1557 RORL $0x11, AX
1558 MOVL CX, DX
1559 RORL $0x13, CX
1560 SHRL $0x0a, DX
1561 MOVL 64(BP), BX
1562 XORL CX, AX
1563 MOVL BX, CX
1564 XORL DX, AX
1565 RORL $0x07, BX
1566 MOVL CX, DX
1567 SHRL $0x03, DX
1568 RORL $0x12, CX
1569 ADDL 96(BP), AX
1570 XORL CX, BX
1571 XORL DX, BX
1572 ADDL 60(BP), BX
1573 ADDL BX, AX
1574 MOVL AX, 124(BP)
1575 ADDL AX, R8
1576 MOVL R13, AX
1577 ADDL $0x14292967, R8
1578 MOVL R13, CX
1579 RORL $0x06, AX
1580 MOVL R13, DX
1581 RORL $0x0b, CX
1582 XORL CX, AX
1583 MOVL R13, CX
1584 RORL $0x19, DX
1585 ANDL R14, CX
1586 XORL AX, DX
1587 MOVL R13, AX
1588 NOTL AX
1589 ADDL DX, R8
1590 ANDL R15, AX
1591 XORL CX, AX
1592 ADDL R8, AX
1593 MOVL R9, DI
1594 MOVL R11, BX
1595 RORL $0x02, DI
1596 MOVL R9, DX
1597 ANDL R10, BX
1598 RORL $0x0d, DX
1599 MOVL R9, CX
1600 ANDL R11, CX
1601 XORL DX, DI
1602 XORL CX, BX
1603 MOVL R9, DX
1604 MOVL R10, CX
1605 RORL $0x16, DX
1606 ANDL R9, CX
1607 XORL CX, BX
1608 XORL DX, DI
1609 ADDL DI, BX
1610 MOVL BX, R8
1611 ADDL AX, R12
1612 ADDL AX, R8
1613 MOVL 120(BP), AX
1614 MOVL AX, CX
1615 RORL $0x11, AX
1616 MOVL CX, DX
1617 RORL $0x13, CX
1618 SHRL $0x0a, DX
1619 MOVL 68(BP), BX
1620 XORL CX, AX
1621 MOVL BX, CX
1622 XORL DX, AX
1623 RORL $0x07, BX
1624 MOVL CX, DX
1625 SHRL $0x03, DX
1626 RORL $0x12, CX
1627 ADDL 100(BP), AX
1628 XORL CX, BX
1629 XORL DX, BX
1630 ADDL 64(BP), BX
1631 ADDL BX, AX
1632 MOVL AX, 128(BP)
1633 ADDL AX, R15
1634 MOVL R12, AX
1635 ADDL $0x27b70a85, R15
1636 MOVL R12, CX
1637 RORL $0x06, AX
1638 MOVL R12, DX
1639 RORL $0x0b, CX
1640 XORL CX, AX
1641 MOVL R12, CX
1642 RORL $0x19, DX
1643 ANDL R13, CX
1644 XORL AX, DX
1645 MOVL R12, AX
1646 NOTL AX
1647 ADDL DX, R15
1648 ANDL R14, AX
1649 XORL CX, AX
1650 ADDL R15, AX
1651 MOVL R8, DI
1652 MOVL R10, BX
1653 RORL $0x02, DI
1654 MOVL R8, DX
1655 ANDL R9, BX
1656 RORL $0x0d, DX
1657 MOVL R8, CX
1658 ANDL R10, CX
1659 XORL DX, DI
1660 XORL CX, BX
1661 MOVL R8, DX
1662 MOVL R9, CX
1663 RORL $0x16, DX
1664 ANDL R8, CX
1665 XORL CX, BX
1666 XORL DX, DI
1667 ADDL DI, BX
1668 MOVL BX, R15
1669 ADDL AX, R11
1670 ADDL AX, R15
1671 MOVL 124(BP), AX
1672 MOVL AX, CX
1673 RORL $0x11, AX
1674 MOVL CX, DX
1675 RORL $0x13, CX
1676 SHRL $0x0a, DX
1677 MOVL 72(BP), BX
1678 XORL CX, AX
1679 MOVL BX, CX
1680 XORL DX, AX
1681 RORL $0x07, BX
1682 MOVL CX, DX
1683 SHRL $0x03, DX
1684 RORL $0x12, CX
1685 ADDL 104(BP), AX
1686 XORL CX, BX
1687 XORL DX, BX
1688 ADDL 68(BP), BX
1689 ADDL BX, AX
1690 MOVL AX, 132(BP)
1691 ADDL AX, R14
1692 MOVL R11, AX
1693 ADDL $0x2e1b2138, R14
1694 MOVL R11, CX
1695 RORL $0x06, AX
1696 MOVL R11, DX
1697 RORL $0x0b, CX
1698 XORL CX, AX
1699 MOVL R11, CX
1700 RORL $0x19, DX
1701 ANDL R12, CX
1702 XORL AX, DX
1703 MOVL R11, AX
1704 NOTL AX
1705 ADDL DX, R14
1706 ANDL R13, AX
1707 XORL CX, AX
1708 ADDL R14, AX
1709 MOVL R15, DI
1710 MOVL R9, BX
1711 RORL $0x02, DI
1712 MOVL R15, DX
1713 ANDL R8, BX
1714 RORL $0x0d, DX
1715 MOVL R15, CX
1716 ANDL R9, CX
1717 XORL DX, DI
1718 XORL CX, BX
1719 MOVL R15, DX
1720 MOVL R8, CX
1721 RORL $0x16, DX
1722 ANDL R15, CX
1723 XORL CX, BX
1724 XORL DX, DI
1725 ADDL DI, BX
1726 MOVL BX, R14
1727 ADDL AX, R10
1728 ADDL AX, R14
1729 MOVL 128(BP), AX
1730 MOVL AX, CX
1731 RORL $0x11, AX
1732 MOVL CX, DX
1733 RORL $0x13, CX
1734 SHRL $0x0a, DX
1735 MOVL 76(BP), BX
1736 XORL CX, AX
1737 MOVL BX, CX
1738 XORL DX, AX
1739 RORL $0x07, BX
1740 MOVL CX, DX
1741 SHRL $0x03, DX
1742 RORL $0x12, CX
1743 ADDL 108(BP), AX
1744 XORL CX, BX
1745 XORL DX, BX
1746 ADDL 72(BP), BX
1747 ADDL BX, AX
1748 MOVL AX, 136(BP)
1749 ADDL AX, R13
1750 MOVL R10, AX
1751 ADDL $0x4d2c6dfc, R13
1752 MOVL R10, CX
1753 RORL $0x06, AX
1754 MOVL R10, DX
1755 RORL $0x0b, CX
1756 XORL CX, AX
1757 MOVL R10, CX
1758 RORL $0x19, DX
1759 ANDL R11, CX
1760 XORL AX, DX
1761 MOVL R10, AX
1762 NOTL AX
1763 ADDL DX, R13
1764 ANDL R12, AX
1765 XORL CX, AX
1766 ADDL R13, AX
1767 MOVL R14, DI
1768 MOVL R8, BX
1769 RORL $0x02, DI
1770 MOVL R14, DX
1771 ANDL R15, BX
1772 RORL $0x0d, DX
1773 MOVL R14, CX
1774 ANDL R8, CX
1775 XORL DX, DI
1776 XORL CX, BX
1777 MOVL R14, DX
1778 MOVL R15, CX
1779 RORL $0x16, DX
1780 ANDL R14, CX
1781 XORL CX, BX
1782 XORL DX, DI
1783 ADDL DI, BX
1784 MOVL BX, R13
1785 ADDL AX, R9
1786 ADDL AX, R13
1787 MOVL 132(BP), AX
1788 MOVL AX, CX
1789 RORL $0x11, AX
1790 MOVL CX, DX
1791 RORL $0x13, CX
1792 SHRL $0x0a, DX
1793 MOVL 80(BP), BX
1794 XORL CX, AX
1795 MOVL BX, CX
1796 XORL DX, AX
1797 RORL $0x07, BX
1798 MOVL CX, DX
1799 SHRL $0x03, DX
1800 RORL $0x12, CX
1801 ADDL 112(BP), AX
1802 XORL CX, BX
1803 XORL DX, BX
1804 ADDL 76(BP), BX
1805 ADDL BX, AX
1806 MOVL AX, 140(BP)
1807 ADDL AX, R12
1808 MOVL R9, AX
1809 ADDL $0x53380d13, R12
1810 MOVL R9, CX
1811 RORL $0x06, AX
1812 MOVL R9, DX
1813 RORL $0x0b, CX
1814 XORL CX, AX
1815 MOVL R9, CX
1816 RORL $0x19, DX
1817 ANDL R10, CX
1818 XORL AX, DX
1819 MOVL R9, AX
1820 NOTL AX
1821 ADDL DX, R12
1822 ANDL R11, AX
1823 XORL CX, AX
1824 ADDL R12, AX
1825 MOVL R13, DI
1826 MOVL R15, BX
1827 RORL $0x02, DI
1828 MOVL R13, DX
1829 ANDL R14, BX
1830 RORL $0x0d, DX
1831 MOVL R13, CX
1832 ANDL R15, CX
1833 XORL DX, DI
1834 XORL CX, BX
1835 MOVL R13, DX
1836 MOVL R14, CX
1837 RORL $0x16, DX
1838 ANDL R13, CX
1839 XORL CX, BX
1840 XORL DX, DI
1841 ADDL DI, BX
1842 MOVL BX, R12
1843 ADDL AX, R8
1844 ADDL AX, R12
1845 MOVL 136(BP), AX
1846 MOVL AX, CX
1847 RORL $0x11, AX
1848 MOVL CX, DX
1849 RORL $0x13, CX
1850 SHRL $0x0a, DX
1851 MOVL 84(BP), BX
1852 XORL CX, AX
1853 MOVL BX, CX
1854 XORL DX, AX
1855 RORL $0x07, BX
1856 MOVL CX, DX
1857 SHRL $0x03, DX
1858 RORL $0x12, CX
1859 ADDL 116(BP), AX
1860 XORL CX, BX
1861 XORL DX, BX
1862 ADDL 80(BP), BX
1863 ADDL BX, AX
1864 MOVL AX, 144(BP)
1865 ADDL AX, R11
1866 MOVL R8, AX
1867 ADDL $0x650a7354, R11
1868 MOVL R8, CX
1869 RORL $0x06, AX
1870 MOVL R8, DX
1871 RORL $0x0b, CX
1872 XORL CX, AX
1873 MOVL R8, CX
1874 RORL $0x19, DX
1875 ANDL R9, CX
1876 XORL AX, DX
1877 MOVL R8, AX
1878 NOTL AX
1879 ADDL DX, R11
1880 ANDL R10, AX
1881 XORL CX, AX
1882 ADDL R11, AX
1883 MOVL R12, DI
1884 MOVL R14, BX
1885 RORL $0x02, DI
1886 MOVL R12, DX
1887 ANDL R13, BX
1888 RORL $0x0d, DX
1889 MOVL R12, CX
1890 ANDL R14, CX
1891 XORL DX, DI
1892 XORL CX, BX
1893 MOVL R12, DX
1894 MOVL R13, CX
1895 RORL $0x16, DX
1896 ANDL R12, CX
1897 XORL CX, BX
1898 XORL DX, DI
1899 ADDL DI, BX
1900 MOVL BX, R11
1901 ADDL AX, R15
1902 ADDL AX, R11
1903 MOVL 140(BP), AX
1904 MOVL AX, CX
1905 RORL $0x11, AX
1906 MOVL CX, DX
1907 RORL $0x13, CX
1908 SHRL $0x0a, DX
1909 MOVL 88(BP), BX
1910 XORL CX, AX
1911 MOVL BX, CX
1912 XORL DX, AX
1913 RORL $0x07, BX
1914 MOVL CX, DX
1915 SHRL $0x03, DX
1916 RORL $0x12, CX
1917 ADDL 120(BP), AX
1918 XORL CX, BX
1919 XORL DX, BX
1920 ADDL 84(BP), BX
1921 ADDL BX, AX
1922 MOVL AX, 148(BP)
1923 ADDL AX, R10
1924 MOVL R15, AX
1925 ADDL $0x766a0abb, R10
1926 MOVL R15, CX
1927 RORL $0x06, AX
1928 MOVL R15, DX
1929 RORL $0x0b, CX
1930 XORL CX, AX
1931 MOVL R15, CX
1932 RORL $0x19, DX
1933 ANDL R8, CX
1934 XORL AX, DX
1935 MOVL R15, AX
1936 NOTL AX
1937 ADDL DX, R10
1938 ANDL R9, AX
1939 XORL CX, AX
1940 ADDL R10, AX
1941 MOVL R11, DI
1942 MOVL R13, BX
1943 RORL $0x02, DI
1944 MOVL R11, DX
1945 ANDL R12, BX
1946 RORL $0x0d, DX
1947 MOVL R11, CX
1948 ANDL R13, CX
1949 XORL DX, DI
1950 XORL CX, BX
1951 MOVL R11, DX
1952 MOVL R12, CX
1953 RORL $0x16, DX
1954 ANDL R11, CX
1955 XORL CX, BX
1956 XORL DX, DI
1957 ADDL DI, BX
1958 MOVL BX, R10
1959 ADDL AX, R14
1960 ADDL AX, R10
1961 MOVL 144(BP), AX
1962 MOVL AX, CX
1963 RORL $0x11, AX
1964 MOVL CX, DX
1965 RORL $0x13, CX
1966 SHRL $0x0a, DX
1967 MOVL 92(BP), BX
1968 XORL CX, AX
1969 MOVL BX, CX
1970 XORL DX, AX
1971 RORL $0x07, BX
1972 MOVL CX, DX
1973 SHRL $0x03, DX
1974 RORL $0x12, CX
1975 ADDL 124(BP), AX
1976 XORL CX, BX
1977 XORL DX, BX
1978 ADDL 88(BP), BX
1979 ADDL BX, AX
1980 MOVL AX, 152(BP)
1981 ADDL AX, R9
1982 MOVL R14, AX
1983 ADDL $0x81c2c92e, R9
1984 MOVL R14, CX
1985 RORL $0x06, AX
1986 MOVL R14, DX
1987 RORL $0x0b, CX
1988 XORL CX, AX
1989 MOVL R14, CX
1990 RORL $0x19, DX
1991 ANDL R15, CX
1992 XORL AX, DX
1993 MOVL R14, AX
1994 NOTL AX
1995 ADDL DX, R9
1996 ANDL R8, AX
1997 XORL CX, AX
1998 ADDL R9, AX
1999 MOVL R10, DI
2000 MOVL R12, BX
2001 RORL $0x02, DI
2002 MOVL R10, DX
2003 ANDL R11, BX
2004 RORL $0x0d, DX
2005 MOVL R10, CX
2006 ANDL R12, CX
2007 XORL DX, DI
2008 XORL CX, BX
2009 MOVL R10, DX
2010 MOVL R11, CX
2011 RORL $0x16, DX
2012 ANDL R10, CX
2013 XORL CX, BX
2014 XORL DX, DI
2015 ADDL DI, BX
2016 MOVL BX, R9
2017 ADDL AX, R13
2018 ADDL AX, R9
2019 MOVL 148(BP), AX
2020 MOVL AX, CX
2021 RORL $0x11, AX
2022 MOVL CX, DX
2023 RORL $0x13, CX
2024 SHRL $0x0a, DX
2025 MOVL 96(BP), BX
2026 XORL CX, AX
2027 MOVL BX, CX
2028 XORL DX, AX
2029 RORL $0x07, BX
2030 MOVL CX, DX
2031 SHRL $0x03, DX
2032 RORL $0x12, CX
2033 ADDL 128(BP), AX
2034 XORL CX, BX
2035 XORL DX, BX
2036 ADDL 92(BP), BX
2037 ADDL BX, AX
2038 MOVL AX, 156(BP)
2039 ADDL AX, R8
2040 MOVL R13, AX
2041 ADDL $0x92722c85, R8
2042 MOVL R13, CX
2043 RORL $0x06, AX
2044 MOVL R13, DX
2045 RORL $0x0b, CX
2046 XORL CX, AX
2047 MOVL R13, CX
2048 RORL $0x19, DX
2049 ANDL R14, CX
2050 XORL AX, DX
2051 MOVL R13, AX
2052 NOTL AX
2053 ADDL DX, R8
2054 ANDL R15, AX
2055 XORL CX, AX
2056 ADDL R8, AX
2057 MOVL R9, DI
2058 MOVL R11, BX
2059 RORL $0x02, DI
2060 MOVL R9, DX
2061 ANDL R10, BX
2062 RORL $0x0d, DX
2063 MOVL R9, CX
2064 ANDL R11, CX
2065 XORL DX, DI
2066 XORL CX, BX
2067 MOVL R9, DX
2068 MOVL R10, CX
2069 RORL $0x16, DX
2070 ANDL R9, CX
2071 XORL CX, BX
2072 XORL DX, DI
2073 ADDL DI, BX
2074 MOVL BX, R8
2075 ADDL AX, R12
2076 ADDL AX, R8
2077 MOVL 152(BP), AX
2078 MOVL AX, CX
2079 RORL $0x11, AX
2080 MOVL CX, DX
2081 RORL $0x13, CX
2082 SHRL $0x0a, DX
2083 MOVL 100(BP), BX
2084 XORL CX, AX
2085 MOVL BX, CX
2086 XORL DX, AX
2087 RORL $0x07, BX
2088 MOVL CX, DX
2089 SHRL $0x03, DX
2090 RORL $0x12, CX
2091 ADDL 132(BP), AX
2092 XORL CX, BX
2093 XORL DX, BX
2094 ADDL 96(BP), BX
2095 ADDL BX, AX
2096 MOVL AX, 160(BP)
2097 ADDL AX, R15
2098 MOVL R12, AX
2099 ADDL $0xa2bfe8a1, R15
2100 MOVL R12, CX
2101 RORL $0x06, AX
2102 MOVL R12, DX
2103 RORL $0x0b, CX
2104 XORL CX, AX
2105 MOVL R12, CX
2106 RORL $0x19, DX
2107 ANDL R13, CX
2108 XORL AX, DX
2109 MOVL R12, AX
2110 NOTL AX
2111 ADDL DX, R15
2112 ANDL R14, AX
2113 XORL CX, AX
2114 ADDL R15, AX
2115 MOVL R8, DI
2116 MOVL R10, BX
2117 RORL $0x02, DI
2118 MOVL R8, DX
2119 ANDL R9, BX
2120 RORL $0x0d, DX
2121 MOVL R8, CX
2122 ANDL R10, CX
2123 XORL DX, DI
2124 XORL CX, BX
2125 MOVL R8, DX
2126 MOVL R9, CX
2127 RORL $0x16, DX
2128 ANDL R8, CX
2129 XORL CX, BX
2130 XORL DX, DI
2131 ADDL DI, BX
2132 MOVL BX, R15
2133 ADDL AX, R11
2134 ADDL AX, R15
2135 MOVL 156(BP), AX
2136 MOVL AX, CX
2137 RORL $0x11, AX
2138 MOVL CX, DX
2139 RORL $0x13, CX
2140 SHRL $0x0a, DX
2141 MOVL 104(BP), BX
2142 XORL CX, AX
2143 MOVL BX, CX
2144 XORL DX, AX
2145 RORL $0x07, BX
2146 MOVL CX, DX
2147 SHRL $0x03, DX
2148 RORL $0x12, CX
2149 ADDL 136(BP), AX
2150 XORL CX, BX
2151 XORL DX, BX
2152 ADDL 100(BP), BX
2153 ADDL BX, AX
2154 MOVL AX, 164(BP)
2155 ADDL AX, R14
2156 MOVL R11, AX
2157 ADDL $0xa81a664b, R14
2158 MOVL R11, CX
2159 RORL $0x06, AX
2160 MOVL R11, DX
2161 RORL $0x0b, CX
2162 XORL CX, AX
2163 MOVL R11, CX
2164 RORL $0x19, DX
2165 ANDL R12, CX
2166 XORL AX, DX
2167 MOVL R11, AX
2168 NOTL AX
2169 ADDL DX, R14
2170 ANDL R13, AX
2171 XORL CX, AX
2172 ADDL R14, AX
2173 MOVL R15, DI
2174 MOVL R9, BX
2175 RORL $0x02, DI
2176 MOVL R15, DX
2177 ANDL R8, BX
2178 RORL $0x0d, DX
2179 MOVL R15, CX
2180 ANDL R9, CX
2181 XORL DX, DI
2182 XORL CX, BX
2183 MOVL R15, DX
2184 MOVL R8, CX
2185 RORL $0x16, DX
2186 ANDL R15, CX
2187 XORL CX, BX
2188 XORL DX, DI
2189 ADDL DI, BX
2190 MOVL BX, R14
2191 ADDL AX, R10
2192 ADDL AX, R14
2193 MOVL 160(BP), AX
2194 MOVL AX, CX
2195 RORL $0x11, AX
2196 MOVL CX, DX
2197 RORL $0x13, CX
2198 SHRL $0x0a, DX
2199 MOVL 108(BP), BX
2200 XORL CX, AX
2201 MOVL BX, CX
2202 XORL DX, AX
2203 RORL $0x07, BX
2204 MOVL CX, DX
2205 SHRL $0x03, DX
2206 RORL $0x12, CX
2207 ADDL 140(BP), AX
2208 XORL CX, BX
2209 XORL DX, BX
2210 ADDL 104(BP), BX
2211 ADDL BX, AX
2212 MOVL AX, 168(BP)
2213 ADDL AX, R13
2214 MOVL R10, AX
2215 ADDL $0xc24b8b70, R13
2216 MOVL R10, CX
2217 RORL $0x06, AX
2218 MOVL R10, DX
2219 RORL $0x0b, CX
2220 XORL CX, AX
2221 MOVL R10, CX
2222 RORL $0x19, DX
2223 ANDL R11, CX
2224 XORL AX, DX
2225 MOVL R10, AX
2226 NOTL AX
2227 ADDL DX, R13
2228 ANDL R12, AX
2229 XORL CX, AX
2230 ADDL R13, AX
2231 MOVL R14, DI
2232 MOVL R8, BX
2233 RORL $0x02, DI
2234 MOVL R14, DX
2235 ANDL R15, BX
2236 RORL $0x0d, DX
2237 MOVL R14, CX
2238 ANDL R8, CX
2239 XORL DX, DI
2240 XORL CX, BX
2241 MOVL R14, DX
2242 MOVL R15, CX
2243 RORL $0x16, DX
2244 ANDL R14, CX
2245 XORL CX, BX
2246 XORL DX, DI
2247 ADDL DI, BX
2248 MOVL BX, R13
2249 ADDL AX, R9
2250 ADDL AX, R13
2251 MOVL 164(BP), AX
2252 MOVL AX, CX
2253 RORL $0x11, AX
2254 MOVL CX, DX
2255 RORL $0x13, CX
2256 SHRL $0x0a, DX
2257 MOVL 112(BP), BX
2258 XORL CX, AX
2259 MOVL BX, CX
2260 XORL DX, AX
2261 RORL $0x07, BX
2262 MOVL CX, DX
2263 SHRL $0x03, DX
2264 RORL $0x12, CX
2265 ADDL 144(BP), AX
2266 XORL CX, BX
2267 XORL DX, BX
2268 ADDL 108(BP), BX
2269 ADDL BX, AX
2270 MOVL AX, 172(BP)
2271 ADDL AX, R12
2272 MOVL R9, AX
2273 ADDL $0xc76c51a3, R12
2274 MOVL R9, CX
2275 RORL $0x06, AX
2276 MOVL R9, DX
2277 RORL $0x0b, CX
2278 XORL CX, AX
2279 MOVL R9, CX
2280 RORL $0x19, DX
2281 ANDL R10, CX
2282 XORL AX, DX
2283 MOVL R9, AX
2284 NOTL AX
2285 ADDL DX, R12
2286 ANDL R11, AX
2287 XORL CX, AX
2288 ADDL R12, AX
2289 MOVL R13, DI
2290 MOVL R15, BX
2291 RORL $0x02, DI
2292 MOVL R13, DX
2293 ANDL R14, BX
2294 RORL $0x0d, DX
2295 MOVL R13, CX
2296 ANDL R15, CX
2297 XORL DX, DI
2298 XORL CX, BX
2299 MOVL R13, DX
2300 MOVL R14, CX
2301 RORL $0x16, DX
2302 ANDL R13, CX
2303 XORL CX, BX
2304 XORL DX, DI
2305 ADDL DI, BX
2306 MOVL BX, R12
2307 ADDL AX, R8
2308 ADDL AX, R12
2309 MOVL 168(BP), AX
2310 MOVL AX, CX
2311 RORL $0x11, AX
2312 MOVL CX, DX
2313 RORL $0x13, CX
2314 SHRL $0x0a, DX
2315 MOVL 116(BP), BX
2316 XORL CX, AX
2317 MOVL BX, CX
2318 XORL DX, AX
2319 RORL $0x07, BX
2320 MOVL CX, DX
2321 SHRL $0x03, DX
2322 RORL $0x12, CX
2323 ADDL 148(BP), AX
2324 XORL CX, BX
2325 XORL DX, BX
2326 ADDL 112(BP), BX
2327 ADDL BX, AX
2328 MOVL AX, 176(BP)
2329 ADDL AX, R11
2330 MOVL R8, AX
2331 ADDL $0xd192e819, R11
2332 MOVL R8, CX
2333 RORL $0x06, AX
2334 MOVL R8, DX
2335 RORL $0x0b, CX
2336 XORL CX, AX
2337 MOVL R8, CX
2338 RORL $0x19, DX
2339 ANDL R9, CX
2340 XORL AX, DX
2341 MOVL R8, AX
2342 NOTL AX
2343 ADDL DX, R11
2344 ANDL R10, AX
2345 XORL CX, AX
2346 ADDL R11, AX
2347 MOVL R12, DI
2348 MOVL R14, BX
2349 RORL $0x02, DI
2350 MOVL R12, DX
2351 ANDL R13, BX
2352 RORL $0x0d, DX
2353 MOVL R12, CX
2354 ANDL R14, CX
2355 XORL DX, DI
2356 XORL CX, BX
2357 MOVL R12, DX
2358 MOVL R13, CX
2359 RORL $0x16, DX
2360 ANDL R12, CX
2361 XORL CX, BX
2362 XORL DX, DI
2363 ADDL DI, BX
2364 MOVL BX, R11
2365 ADDL AX, R15
2366 ADDL AX, R11
2367 MOVL 172(BP), AX
2368 MOVL AX, CX
2369 RORL $0x11, AX
2370 MOVL CX, DX
2371 RORL $0x13, CX
2372 SHRL $0x0a, DX
2373 MOVL 120(BP), BX
2374 XORL CX, AX
2375 MOVL BX, CX
2376 XORL DX, AX
2377 RORL $0x07, BX
2378 MOVL CX, DX
2379 SHRL $0x03, DX
2380 RORL $0x12, CX
2381 ADDL 152(BP), AX
2382 XORL CX, BX
2383 XORL DX, BX
2384 ADDL 116(BP), BX
2385 ADDL BX, AX
2386 MOVL AX, 180(BP)
2387 ADDL AX, R10
2388 MOVL R15, AX
2389 ADDL $0xd6990624, R10
2390 MOVL R15, CX
2391 RORL $0x06, AX
2392 MOVL R15, DX
2393 RORL $0x0b, CX
2394 XORL CX, AX
2395 MOVL R15, CX
2396 RORL $0x19, DX
2397 ANDL R8, CX
2398 XORL AX, DX
2399 MOVL R15, AX
2400 NOTL AX
2401 ADDL DX, R10
2402 ANDL R9, AX
2403 XORL CX, AX
2404 ADDL R10, AX
2405 MOVL R11, DI
2406 MOVL R13, BX
2407 RORL $0x02, DI
2408 MOVL R11, DX
2409 ANDL R12, BX
2410 RORL $0x0d, DX
2411 MOVL R11, CX
2412 ANDL R13, CX
2413 XORL DX, DI
2414 XORL CX, BX
2415 MOVL R11, DX
2416 MOVL R12, CX
2417 RORL $0x16, DX
2418 ANDL R11, CX
2419 XORL CX, BX
2420 XORL DX, DI
2421 ADDL DI, BX
2422 MOVL BX, R10
2423 ADDL AX, R14
2424 ADDL AX, R10
2425 MOVL 176(BP), AX
2426 MOVL AX, CX
2427 RORL $0x11, AX
2428 MOVL CX, DX
2429 RORL $0x13, CX
2430 SHRL $0x0a, DX
2431 MOVL 124(BP), BX
2432 XORL CX, AX
2433 MOVL BX, CX
2434 XORL DX, AX
2435 RORL $0x07, BX
2436 MOVL CX, DX
2437 SHRL $0x03, DX
2438 RORL $0x12, CX
2439 ADDL 156(BP), AX
2440 XORL CX, BX
2441 XORL DX, BX
2442 ADDL 120(BP), BX
2443 ADDL BX, AX
2444 MOVL AX, 184(BP)
2445 ADDL AX, R9
2446 MOVL R14, AX
2447 ADDL $0xf40e3585, R9
2448 MOVL R14, CX
2449 RORL $0x06, AX
2450 MOVL R14, DX
2451 RORL $0x0b, CX
2452 XORL CX, AX
2453 MOVL R14, CX
2454 RORL $0x19, DX
2455 ANDL R15, CX
2456 XORL AX, DX
2457 MOVL R14, AX
2458 NOTL AX
2459 ADDL DX, R9
2460 ANDL R8, AX
2461 XORL CX, AX
2462 ADDL R9, AX
2463 MOVL R10, DI
2464 MOVL R12, BX
2465 RORL $0x02, DI
2466 MOVL R10, DX
2467 ANDL R11, BX
2468 RORL $0x0d, DX
2469 MOVL R10, CX
2470 ANDL R12, CX
2471 XORL DX, DI
2472 XORL CX, BX
2473 MOVL R10, DX
2474 MOVL R11, CX
2475 RORL $0x16, DX
2476 ANDL R10, CX
2477 XORL CX, BX
2478 XORL DX, DI
2479 ADDL DI, BX
2480 MOVL BX, R9
2481 ADDL AX, R13
2482 ADDL AX, R9
2483 MOVL 180(BP), AX
2484 MOVL AX, CX
2485 RORL $0x11, AX
2486 MOVL CX, DX
2487 RORL $0x13, CX
2488 SHRL $0x0a, DX
2489 MOVL 128(BP), BX
2490 XORL CX, AX
2491 MOVL BX, CX
2492 XORL DX, AX
2493 RORL $0x07, BX
2494 MOVL CX, DX
2495 SHRL $0x03, DX
2496 RORL $0x12, CX
2497 ADDL 160(BP), AX
2498 XORL CX, BX
2499 XORL DX, BX
2500 ADDL 124(BP), BX
2501 ADDL BX, AX
2502 MOVL AX, 188(BP)
2503 ADDL AX, R8
2504 MOVL R13, AX
2505 ADDL $0x106aa070, R8
2506 MOVL R13, CX
2507 RORL $0x06, AX
2508 MOVL R13, DX
2509 RORL $0x0b, CX
2510 XORL CX, AX
2511 MOVL R13, CX
2512 RORL $0x19, DX
2513 ANDL R14, CX
2514 XORL AX, DX
2515 MOVL R13, AX
2516 NOTL AX
2517 ADDL DX, R8
2518 ANDL R15, AX
2519 XORL CX, AX
2520 ADDL R8, AX
2521 MOVL R9, DI
2522 MOVL R11, BX
2523 RORL $0x02, DI
2524 MOVL R9, DX
2525 ANDL R10, BX
2526 RORL $0x0d, DX
2527 MOVL R9, CX
2528 ANDL R11, CX
2529 XORL DX, DI
2530 XORL CX, BX
2531 MOVL R9, DX
2532 MOVL R10, CX
2533 RORL $0x16, DX
2534 ANDL R9, CX
2535 XORL CX, BX
2536 XORL DX, DI
2537 ADDL DI, BX
2538 MOVL BX, R8
2539 ADDL AX, R12
2540 ADDL AX, R8
2541 MOVL 184(BP), AX
2542 MOVL AX, CX
2543 RORL $0x11, AX
2544 MOVL CX, DX
2545 RORL $0x13, CX
2546 SHRL $0x0a, DX
2547 MOVL 132(BP), BX
2548 XORL CX, AX
2549 MOVL BX, CX
2550 XORL DX, AX
2551 RORL $0x07, BX
2552 MOVL CX, DX
2553 SHRL $0x03, DX
2554 RORL $0x12, CX
2555 ADDL 164(BP), AX
2556 XORL CX, BX
2557 XORL DX, BX
2558 ADDL 128(BP), BX
2559 ADDL BX, AX
2560 MOVL AX, 192(BP)
2561 ADDL AX, R15
2562 MOVL R12, AX
2563 ADDL $0x19a4c116, R15
2564 MOVL R12, CX
2565 RORL $0x06, AX
2566 MOVL R12, DX
2567 RORL $0x0b, CX
2568 XORL CX, AX
2569 MOVL R12, CX
2570 RORL $0x19, DX
2571 ANDL R13, CX
2572 XORL AX, DX
2573 MOVL R12, AX
2574 NOTL AX
2575 ADDL DX, R15
2576 ANDL R14, AX
2577 XORL CX, AX
2578 ADDL R15, AX
2579 MOVL R8, DI
2580 MOVL R10, BX
2581 RORL $0x02, DI
2582 MOVL R8, DX
2583 ANDL R9, BX
2584 RORL $0x0d, DX
2585 MOVL R8, CX
2586 ANDL R10, CX
2587 XORL DX, DI
2588 XORL CX, BX
2589 MOVL R8, DX
2590 MOVL R9, CX
2591 RORL $0x16, DX
2592 ANDL R8, CX
2593 XORL CX, BX
2594 XORL DX, DI
2595 ADDL DI, BX
2596 MOVL BX, R15
2597 ADDL AX, R11
2598 ADDL AX, R15
2599 MOVL 188(BP), AX
2600 MOVL AX, CX
2601 RORL $0x11, AX
2602 MOVL CX, DX
2603 RORL $0x13, CX
2604 SHRL $0x0a, DX
2605 MOVL 136(BP), BX
2606 XORL CX, AX
2607 MOVL BX, CX
2608 XORL DX, AX
2609 RORL $0x07, BX
2610 MOVL CX, DX
2611 SHRL $0x03, DX
2612 RORL $0x12, CX
2613 ADDL 168(BP), AX
2614 XORL CX, BX
2615 XORL DX, BX
2616 ADDL 132(BP), BX
2617 ADDL BX, AX
2618 MOVL AX, 196(BP)
2619 ADDL AX, R14
2620 MOVL R11, AX
2621 ADDL $0x1e376c08, R14
2622 MOVL R11, CX
2623 RORL $0x06, AX
2624 MOVL R11, DX
2625 RORL $0x0b, CX
2626 XORL CX, AX
2627 MOVL R11, CX
2628 RORL $0x19, DX
2629 ANDL R12, CX
2630 XORL AX, DX
2631 MOVL R11, AX
2632 NOTL AX
2633 ADDL DX, R14
2634 ANDL R13, AX
2635 XORL CX, AX
2636 ADDL R14, AX
2637 MOVL R15, DI
2638 MOVL R9, BX
2639 RORL $0x02, DI
2640 MOVL R15, DX
2641 ANDL R8, BX
2642 RORL $0x0d, DX
2643 MOVL R15, CX
2644 ANDL R9, CX
2645 XORL DX, DI
2646 XORL CX, BX
2647 MOVL R15, DX
2648 MOVL R8, CX
2649 RORL $0x16, DX
2650 ANDL R15, CX
2651 XORL CX, BX
2652 XORL DX, DI
2653 ADDL DI, BX
2654 MOVL BX, R14
2655 ADDL AX, R10
2656 ADDL AX, R14
2657 MOVL 192(BP), AX
2658 MOVL AX, CX
2659 RORL $0x11, AX
2660 MOVL CX, DX
2661 RORL $0x13, CX
2662 SHRL $0x0a, DX
2663 MOVL 140(BP), BX
2664 XORL CX, AX
2665 MOVL BX, CX
2666 XORL DX, AX
2667 RORL $0x07, BX
2668 MOVL CX, DX
2669 SHRL $0x03, DX
2670 RORL $0x12, CX
2671 ADDL 172(BP), AX
2672 XORL CX, BX
2673 XORL DX, BX
2674 ADDL 136(BP), BX
2675 ADDL BX, AX
2676 MOVL AX, 200(BP)
2677 ADDL AX, R13
2678 MOVL R10, AX
2679 ADDL $0x2748774c, R13
2680 MOVL R10, CX
2681 RORL $0x06, AX
2682 MOVL R10, DX
2683 RORL $0x0b, CX
2684 XORL CX, AX
2685 MOVL R10, CX
2686 RORL $0x19, DX
2687 ANDL R11, CX
2688 XORL AX, DX
2689 MOVL R10, AX
2690 NOTL AX
2691 ADDL DX, R13
2692 ANDL R12, AX
2693 XORL CX, AX
2694 ADDL R13, AX
2695 MOVL R14, DI
2696 MOVL R8, BX
2697 RORL $0x02, DI
2698 MOVL R14, DX
2699 ANDL R15, BX
2700 RORL $0x0d, DX
2701 MOVL R14, CX
2702 ANDL R8, CX
2703 XORL DX, DI
2704 XORL CX, BX
2705 MOVL R14, DX
2706 MOVL R15, CX
2707 RORL $0x16, DX
2708 ANDL R14, CX
2709 XORL CX, BX
2710 XORL DX, DI
2711 ADDL DI, BX
2712 MOVL BX, R13
2713 ADDL AX, R9
2714 ADDL AX, R13
2715 MOVL 196(BP), AX
2716 MOVL AX, CX
2717 RORL $0x11, AX
2718 MOVL CX, DX
2719 RORL $0x13, CX
2720 SHRL $0x0a, DX
2721 MOVL 144(BP), BX
2722 XORL CX, AX
2723 MOVL BX, CX
2724 XORL DX, AX
2725 RORL $0x07, BX
2726 MOVL CX, DX
2727 SHRL $0x03, DX
2728 RORL $0x12, CX
2729 ADDL 176(BP), AX
2730 XORL CX, BX
2731 XORL DX, BX
2732 ADDL 140(BP), BX
2733 ADDL BX, AX
2734 MOVL AX, 204(BP)
2735 ADDL AX, R12
2736 MOVL R9, AX
2737 ADDL $0x34b0bcb5, R12
2738 MOVL R9, CX
2739 RORL $0x06, AX
2740 MOVL R9, DX
2741 RORL $0x0b, CX
2742 XORL CX, AX
2743 MOVL R9, CX
2744 RORL $0x19, DX
2745 ANDL R10, CX
2746 XORL AX, DX
2747 MOVL R9, AX
2748 NOTL AX
2749 ADDL DX, R12
2750 ANDL R11, AX
2751 XORL CX, AX
2752 ADDL R12, AX
2753 MOVL R13, DI
2754 MOVL R15, BX
2755 RORL $0x02, DI
2756 MOVL R13, DX
2757 ANDL R14, BX
2758 RORL $0x0d, DX
2759 MOVL R13, CX
2760 ANDL R15, CX
2761 XORL DX, DI
2762 XORL CX, BX
2763 MOVL R13, DX
2764 MOVL R14, CX
2765 RORL $0x16, DX
2766 ANDL R13, CX
2767 XORL CX, BX
2768 XORL DX, DI
2769 ADDL DI, BX
2770 MOVL BX, R12
2771 ADDL AX, R8
2772 ADDL AX, R12
2773 MOVL 200(BP), AX
2774 MOVL AX, CX
2775 RORL $0x11, AX
2776 MOVL CX, DX
2777 RORL $0x13, CX
2778 SHRL $0x0a, DX
2779 MOVL 148(BP), BX
2780 XORL CX, AX
2781 MOVL BX, CX
2782 XORL DX, AX
2783 RORL $0x07, BX
2784 MOVL CX, DX
2785 SHRL $0x03, DX
2786 RORL $0x12, CX
2787 ADDL 180(BP), AX
2788 XORL CX, BX
2789 XORL DX, BX
2790 ADDL 144(BP), BX
2791 ADDL BX, AX
2792 MOVL AX, 208(BP)
2793 ADDL AX, R11
2794 MOVL R8, AX
2795 ADDL $0x391c0cb3, R11
2796 MOVL R8, CX
2797 RORL $0x06, AX
2798 MOVL R8, DX
2799 RORL $0x0b, CX
2800 XORL CX, AX
2801 MOVL R8, CX
2802 RORL $0x19, DX
2803 ANDL R9, CX
2804 XORL AX, DX
2805 MOVL R8, AX
2806 NOTL AX
2807 ADDL DX, R11
2808 ANDL R10, AX
2809 XORL CX, AX
2810 ADDL R11, AX
2811 MOVL R12, DI
2812 MOVL R14, BX
2813 RORL $0x02, DI
2814 MOVL R12, DX
2815 ANDL R13, BX
2816 RORL $0x0d, DX
2817 MOVL R12, CX
2818 ANDL R14, CX
2819 XORL DX, DI
2820 XORL CX, BX
2821 MOVL R12, DX
2822 MOVL R13, CX
2823 RORL $0x16, DX
2824 ANDL R12, CX
2825 XORL CX, BX
2826 XORL DX, DI
2827 ADDL DI, BX
2828 MOVL BX, R11
2829 ADDL AX, R15
2830 ADDL AX, R11
2831 MOVL 204(BP), AX
2832 MOVL AX, CX
2833 RORL $0x11, AX
2834 MOVL CX, DX
2835 RORL $0x13, CX
2836 SHRL $0x0a, DX
2837 MOVL 152(BP), BX
2838 XORL CX, AX
2839 MOVL BX, CX
2840 XORL DX, AX
2841 RORL $0x07, BX
2842 MOVL CX, DX
2843 SHRL $0x03, DX
2844 RORL $0x12, CX
2845 ADDL 184(BP), AX
2846 XORL CX, BX
2847 XORL DX, BX
2848 ADDL 148(BP), BX
2849 ADDL BX, AX
2850 MOVL AX, 212(BP)
2851 ADDL AX, R10
2852 MOVL R15, AX
2853 ADDL $0x4ed8aa4a, R10
2854 MOVL R15, CX
2855 RORL $0x06, AX
2856 MOVL R15, DX
2857 RORL $0x0b, CX
2858 XORL CX, AX
2859 MOVL R15, CX
2860 RORL $0x19, DX
2861 ANDL R8, CX
2862 XORL AX, DX
2863 MOVL R15, AX
2864 NOTL AX
2865 ADDL DX, R10
2866 ANDL R9, AX
2867 XORL CX, AX
2868 ADDL R10, AX
2869 MOVL R11, DI
2870 MOVL R13, BX
2871 RORL $0x02, DI
2872 MOVL R11, DX
2873 ANDL R12, BX
2874 RORL $0x0d, DX
2875 MOVL R11, CX
2876 ANDL R13, CX
2877 XORL DX, DI
2878 XORL CX, BX
2879 MOVL R11, DX
2880 MOVL R12, CX
2881 RORL $0x16, DX
2882 ANDL R11, CX
2883 XORL CX, BX
2884 XORL DX, DI
2885 ADDL DI, BX
2886 MOVL BX, R10
2887 ADDL AX, R14
2888 ADDL AX, R10
2889 MOVL 208(BP), AX
2890 MOVL AX, CX
2891 RORL $0x11, AX
2892 MOVL CX, DX
2893 RORL $0x13, CX
2894 SHRL $0x0a, DX
2895 MOVL 156(BP), BX
2896 XORL CX, AX
2897 MOVL BX, CX
2898 XORL DX, AX
2899 RORL $0x07, BX
2900 MOVL CX, DX
2901 SHRL $0x03, DX
2902 RORL $0x12, CX
2903 ADDL 188(BP), AX
2904 XORL CX, BX
2905 XORL DX, BX
2906 ADDL 152(BP), BX
2907 ADDL BX, AX
2908 MOVL AX, 216(BP)
2909 ADDL AX, R9
2910 MOVL R14, AX
2911 ADDL $0x5b9cca4f, R9
2912 MOVL R14, CX
2913 RORL $0x06, AX
2914 MOVL R14, DX
2915 RORL $0x0b, CX
2916 XORL CX, AX
2917 MOVL R14, CX
2918 RORL $0x19, DX
2919 ANDL R15, CX
2920 XORL AX, DX
2921 MOVL R14, AX
2922 NOTL AX
2923 ADDL DX, R9
2924 ANDL R8, AX
2925 XORL CX, AX
2926 ADDL R9, AX
2927 MOVL R10, DI
2928 MOVL R12, BX
2929 RORL $0x02, DI
2930 MOVL R10, DX
2931 ANDL R11, BX
2932 RORL $0x0d, DX
2933 MOVL R10, CX
2934 ANDL R12, CX
2935 XORL DX, DI
2936 XORL CX, BX
2937 MOVL R10, DX
2938 MOVL R11, CX
2939 RORL $0x16, DX
2940 ANDL R10, CX
2941 XORL CX, BX
2942 XORL DX, DI
2943 ADDL DI, BX
2944 MOVL BX, R9
2945 ADDL AX, R13
2946 ADDL AX, R9
2947 MOVL 212(BP), AX
2948 MOVL AX, CX
2949 RORL $0x11, AX
2950 MOVL CX, DX
2951 RORL $0x13, CX
2952 SHRL $0x0a, DX
2953 MOVL 160(BP), BX
2954 XORL CX, AX
2955 MOVL BX, CX
2956 XORL DX, AX
2957 RORL $0x07, BX
2958 MOVL CX, DX
2959 SHRL $0x03, DX
2960 RORL $0x12, CX
2961 ADDL 192(BP), AX
2962 XORL CX, BX
2963 XORL DX, BX
2964 ADDL 156(BP), BX
2965 ADDL BX, AX
2966 MOVL AX, 220(BP)
2967 ADDL AX, R8
2968 MOVL R13, AX
2969 ADDL $0x682e6ff3, R8
2970 MOVL R13, CX
2971 RORL $0x06, AX
2972 MOVL R13, DX
2973 RORL $0x0b, CX
2974 XORL CX, AX
2975 MOVL R13, CX
2976 RORL $0x19, DX
2977 ANDL R14, CX
2978 XORL AX, DX
2979 MOVL R13, AX
2980 NOTL AX
2981 ADDL DX, R8
2982 ANDL R15, AX
2983 XORL CX, AX
2984 ADDL R8, AX
2985 MOVL R9, DI
2986 MOVL R11, BX
2987 RORL $0x02, DI
2988 MOVL R9, DX
2989 ANDL R10, BX
2990 RORL $0x0d, DX
2991 MOVL R9, CX
2992 ANDL R11, CX
2993 XORL DX, DI
2994 XORL CX, BX
2995 MOVL R9, DX
2996 MOVL R10, CX
2997 RORL $0x16, DX
2998 ANDL R9, CX
2999 XORL CX, BX
3000 XORL DX, DI
3001 ADDL DI, BX
3002 MOVL BX, R8
3003 ADDL AX, R12
3004 ADDL AX, R8
3005 MOVL 216(BP), AX
3006 MOVL AX, CX
3007 RORL $0x11, AX
3008 MOVL CX, DX
3009 RORL $0x13, CX
3010 SHRL $0x0a, DX
3011 MOVL 164(BP), BX
3012 XORL CX, AX
3013 MOVL BX, CX
3014 XORL DX, AX
3015 RORL $0x07, BX
3016 MOVL CX, DX
3017 SHRL $0x03, DX
3018 RORL $0x12, CX
3019 ADDL 196(BP), AX
3020 XORL CX, BX
3021 XORL DX, BX
3022 ADDL 160(BP), BX
3023 ADDL BX, AX
3024 MOVL AX, 224(BP)
3025 ADDL AX, R15
3026 MOVL R12, AX
3027 ADDL $0x748f82ee, R15
3028 MOVL R12, CX
3029 RORL $0x06, AX
3030 MOVL R12, DX
3031 RORL $0x0b, CX
3032 XORL CX, AX
3033 MOVL R12, CX
3034 RORL $0x19, DX
3035 ANDL R13, CX
3036 XORL AX, DX
3037 MOVL R12, AX
3038 NOTL AX
3039 ADDL DX, R15
3040 ANDL R14, AX
3041 XORL CX, AX
3042 ADDL R15, AX
3043 MOVL R8, DI
3044 MOVL R10, BX
3045 RORL $0x02, DI
3046 MOVL R8, DX
3047 ANDL R9, BX
3048 RORL $0x0d, DX
3049 MOVL R8, CX
3050 ANDL R10, CX
3051 XORL DX, DI
3052 XORL CX, BX
3053 MOVL R8, DX
3054 MOVL R9, CX
3055 RORL $0x16, DX
3056 ANDL R8, CX
3057 XORL CX, BX
3058 XORL DX, DI
3059 ADDL DI, BX
3060 MOVL BX, R15
3061 ADDL AX, R11
3062 ADDL AX, R15
3063 MOVL 220(BP), AX
3064 MOVL AX, CX
3065 RORL $0x11, AX
3066 MOVL CX, DX
3067 RORL $0x13, CX
3068 SHRL $0x0a, DX
3069 MOVL 168(BP), BX
3070 XORL CX, AX
3071 MOVL BX, CX
3072 XORL DX, AX
3073 RORL $0x07, BX
3074 MOVL CX, DX
3075 SHRL $0x03, DX
3076 RORL $0x12, CX
3077 ADDL 200(BP), AX
3078 XORL CX, BX
3079 XORL DX, BX
3080 ADDL 164(BP), BX
3081 ADDL BX, AX
3082 MOVL AX, 228(BP)
3083 ADDL AX, R14
3084 MOVL R11, AX
3085 ADDL $0x78a5636f, R14
3086 MOVL R11, CX
3087 RORL $0x06, AX
3088 MOVL R11, DX
3089 RORL $0x0b, CX
3090 XORL CX, AX
3091 MOVL R11, CX
3092 RORL $0x19, DX
3093 ANDL R12, CX
3094 XORL AX, DX
3095 MOVL R11, AX
3096 NOTL AX
3097 ADDL DX, R14
3098 ANDL R13, AX
3099 XORL CX, AX
3100 ADDL R14, AX
3101 MOVL R15, DI
3102 MOVL R9, BX
3103 RORL $0x02, DI
3104 MOVL R15, DX
3105 ANDL R8, BX
3106 RORL $0x0d, DX
3107 MOVL R15, CX
3108 ANDL R9, CX
3109 XORL DX, DI
3110 XORL CX, BX
3111 MOVL R15, DX
3112 MOVL R8, CX
3113 RORL $0x16, DX
3114 ANDL R15, CX
3115 XORL CX, BX
3116 XORL DX, DI
3117 ADDL DI, BX
3118 MOVL BX, R14
3119 ADDL AX, R10
3120 ADDL AX, R14
3121 MOVL 224(BP), AX
3122 MOVL AX, CX
3123 RORL $0x11, AX
3124 MOVL CX, DX
3125 RORL $0x13, CX
3126 SHRL $0x0a, DX
3127 MOVL 172(BP), BX
3128 XORL CX, AX
3129 MOVL BX, CX
3130 XORL DX, AX
3131 RORL $0x07, BX
3132 MOVL CX, DX
3133 SHRL $0x03, DX
3134 RORL $0x12, CX
3135 ADDL 204(BP), AX
3136 XORL CX, BX
3137 XORL DX, BX
3138 ADDL 168(BP), BX
3139 ADDL BX, AX
3140 MOVL AX, 232(BP)
3141 ADDL AX, R13
3142 MOVL R10, AX
3143 ADDL $0x84c87814, R13
3144 MOVL R10, CX
3145 RORL $0x06, AX
3146 MOVL R10, DX
3147 RORL $0x0b, CX
3148 XORL CX, AX
3149 MOVL R10, CX
3150 RORL $0x19, DX
3151 ANDL R11, CX
3152 XORL AX, DX
3153 MOVL R10, AX
3154 NOTL AX
3155 ADDL DX, R13
3156 ANDL R12, AX
3157 XORL CX, AX
3158 ADDL R13, AX
3159 MOVL R14, DI
3160 MOVL R8, BX
3161 RORL $0x02, DI
3162 MOVL R14, DX
3163 ANDL R15, BX
3164 RORL $0x0d, DX
3165 MOVL R14, CX
3166 ANDL R8, CX
3167 XORL DX, DI
3168 XORL CX, BX
3169 MOVL R14, DX
3170 MOVL R15, CX
3171 RORL $0x16, DX
3172 ANDL R14, CX
3173 XORL CX, BX
3174 XORL DX, DI
3175 ADDL DI, BX
3176 MOVL BX, R13
3177 ADDL AX, R9
3178 ADDL AX, R13
3179 MOVL 228(BP), AX
3180 MOVL AX, CX
3181 RORL $0x11, AX
3182 MOVL CX, DX
3183 RORL $0x13, CX
3184 SHRL $0x0a, DX
3185 MOVL 176(BP), BX
3186 XORL CX, AX
3187 MOVL BX, CX
3188 XORL DX, AX
3189 RORL $0x07, BX
3190 MOVL CX, DX
3191 SHRL $0x03, DX
3192 RORL $0x12, CX
3193 ADDL 208(BP), AX
3194 XORL CX, BX
3195 XORL DX, BX
3196 ADDL 172(BP), BX
3197 ADDL BX, AX
3198 MOVL AX, 236(BP)
3199 ADDL AX, R12
3200 MOVL R9, AX
3201 ADDL $0x8cc70208, R12
3202 MOVL R9, CX
3203 RORL $0x06, AX
3204 MOVL R9, DX
3205 RORL $0x0b, CX
3206 XORL CX, AX
3207 MOVL R9, CX
3208 RORL $0x19, DX
3209 ANDL R10, CX
3210 XORL AX, DX
3211 MOVL R9, AX
3212 NOTL AX
3213 ADDL DX, R12
3214 ANDL R11, AX
3215 XORL CX, AX
3216 ADDL R12, AX
3217 MOVL R13, DI
3218 MOVL R15, BX
3219 RORL $0x02, DI
3220 MOVL R13, DX
3221 ANDL R14, BX
3222 RORL $0x0d, DX
3223 MOVL R13, CX
3224 ANDL R15, CX
3225 XORL DX, DI
3226 XORL CX, BX
3227 MOVL R13, DX
3228 MOVL R14, CX
3229 RORL $0x16, DX
3230 ANDL R13, CX
3231 XORL CX, BX
3232 XORL DX, DI
3233 ADDL DI, BX
3234 MOVL BX, R12
3235 ADDL AX, R8
3236 ADDL AX, R12
3237 MOVL 232(BP), AX
3238 MOVL AX, CX
3239 RORL $0x11, AX
3240 MOVL CX, DX
3241 RORL $0x13, CX
3242 SHRL $0x0a, DX
3243 MOVL 180(BP), BX
3244 XORL CX, AX
3245 MOVL BX, CX
3246 XORL DX, AX
3247 RORL $0x07, BX
3248 MOVL CX, DX
3249 SHRL $0x03, DX
3250 RORL $0x12, CX
3251 ADDL 212(BP), AX
3252 XORL CX, BX
3253 XORL DX, BX
3254 ADDL 176(BP), BX
3255 ADDL BX, AX
3256 MOVL AX, 240(BP)
3257 ADDL AX, R11
3258 MOVL R8, AX
3259 ADDL $0x90befffa, R11
3260 MOVL R8, CX
3261 RORL $0x06, AX
3262 MOVL R8, DX
3263 RORL $0x0b, CX
3264 XORL CX, AX
3265 MOVL R8, CX
3266 RORL $0x19, DX
3267 ANDL R9, CX
3268 XORL AX, DX
3269 MOVL R8, AX
3270 NOTL AX
3271 ADDL DX, R11
3272 ANDL R10, AX
3273 XORL CX, AX
3274 ADDL R11, AX
3275 MOVL R12, DI
3276 MOVL R14, BX
3277 RORL $0x02, DI
3278 MOVL R12, DX
3279 ANDL R13, BX
3280 RORL $0x0d, DX
3281 MOVL R12, CX
3282 ANDL R14, CX
3283 XORL DX, DI
3284 XORL CX, BX
3285 MOVL R12, DX
3286 MOVL R13, CX
3287 RORL $0x16, DX
3288 ANDL R12, CX
3289 XORL CX, BX
3290 XORL DX, DI
3291 ADDL DI, BX
3292 MOVL BX, R11
3293 ADDL AX, R15
3294 ADDL AX, R11
3295 MOVL 236(BP), AX
3296 MOVL AX, CX
3297 RORL $0x11, AX
3298 MOVL CX, DX
3299 RORL $0x13, CX
3300 SHRL $0x0a, DX
3301 MOVL 184(BP), BX
3302 XORL CX, AX
3303 MOVL BX, CX
3304 XORL DX, AX
3305 RORL $0x07, BX
3306 MOVL CX, DX
3307 SHRL $0x03, DX
3308 RORL $0x12, CX
3309 ADDL 216(BP), AX
3310 XORL CX, BX
3311 XORL DX, BX
3312 ADDL 180(BP), BX
3313 ADDL BX, AX
3314 MOVL AX, 244(BP)
3315 ADDL AX, R10
3316 MOVL R15, AX
3317 ADDL $0xa4506ceb, R10
3318 MOVL R15, CX
3319 RORL $0x06, AX
3320 MOVL R15, DX
3321 RORL $0x0b, CX
3322 XORL CX, AX
3323 MOVL R15, CX
3324 RORL $0x19, DX
3325 ANDL R8, CX
3326 XORL AX, DX
3327 MOVL R15, AX
3328 NOTL AX
3329 ADDL DX, R10
3330 ANDL R9, AX
3331 XORL CX, AX
3332 ADDL R10, AX
3333 MOVL R11, DI
3334 MOVL R13, BX
3335 RORL $0x02, DI
3336 MOVL R11, DX
3337 ANDL R12, BX
3338 RORL $0x0d, DX
3339 MOVL R11, CX
3340 ANDL R13, CX
3341 XORL DX, DI
3342 XORL CX, BX
3343 MOVL R11, DX
3344 MOVL R12, CX
3345 RORL $0x16, DX
3346 ANDL R11, CX
3347 XORL CX, BX
3348 XORL DX, DI
3349 ADDL DI, BX
3350 MOVL BX, R10
3351 ADDL AX, R14
3352 ADDL AX, R10
3353 MOVL 240(BP), AX
3354 MOVL AX, CX
3355 RORL $0x11, AX
3356 MOVL CX, DX
3357 RORL $0x13, CX
3358 SHRL $0x0a, DX
3359 MOVL 188(BP), BX
3360 XORL CX, AX
3361 MOVL BX, CX
3362 XORL DX, AX
3363 RORL $0x07, BX
3364 MOVL CX, DX
3365 SHRL $0x03, DX
3366 RORL $0x12, CX
3367 ADDL 220(BP), AX
3368 XORL CX, BX
3369 XORL DX, BX
3370 ADDL 184(BP), BX
3371 ADDL BX, AX
3372 MOVL AX, 248(BP)
3373 ADDL AX, R9
3374 MOVL R14, AX
3375 ADDL $0xbef9a3f7, R9
3376 MOVL R14, CX
3377 RORL $0x06, AX
3378 MOVL R14, DX
3379 RORL $0x0b, CX
3380 XORL CX, AX
3381 MOVL R14, CX
3382 RORL $0x19, DX
3383 ANDL R15, CX
3384 XORL AX, DX
3385 MOVL R14, AX
3386 NOTL AX
3387 ADDL DX, R9
3388 ANDL R8, AX
3389 XORL CX, AX
3390 ADDL R9, AX
3391 MOVL R10, DI
3392 MOVL R12, BX
3393 RORL $0x02, DI
3394 MOVL R10, DX
3395 ANDL R11, BX
3396 RORL $0x0d, DX
3397 MOVL R10, CX
3398 ANDL R12, CX
3399 XORL DX, DI
3400 XORL CX, BX
3401 MOVL R10, DX
3402 MOVL R11, CX
3403 RORL $0x16, DX
3404 ANDL R10, CX
3405 XORL CX, BX
3406 XORL DX, DI
3407 ADDL DI, BX
3408 MOVL BX, R9
3409 ADDL AX, R13
3410 ADDL AX, R9
3411 MOVL 244(BP), AX
3412 MOVL AX, CX
3413 RORL $0x11, AX
3414 MOVL CX, DX
3415 RORL $0x13, CX
3416 SHRL $0x0a, DX
3417 MOVL 192(BP), BX
3418 XORL CX, AX
3419 MOVL BX, CX
3420 XORL DX, AX
3421 RORL $0x07, BX
3422 MOVL CX, DX
3423 SHRL $0x03, DX
3424 RORL $0x12, CX
3425 ADDL 224(BP), AX
3426 XORL CX, BX
3427 XORL DX, BX
3428 ADDL 188(BP), BX
3429 ADDL BX, AX
3430 MOVL AX, 252(BP)
3431 ADDL AX, R8
3432 MOVL R13, AX
3433 ADDL $0xc67178f2, R8
3434 MOVL R13, CX
3435 RORL $0x06, AX
3436 MOVL R13, DX
3437 RORL $0x0b, CX
3438 XORL CX, AX
3439 MOVL R13, CX
3440 RORL $0x19, DX
3441 ANDL R14, CX
3442 XORL AX, DX
3443 MOVL R13, AX
3444 NOTL AX
3445 ADDL DX, R8
3446 ANDL R15, AX
3447 XORL CX, AX
3448 ADDL R8, AX
3449 MOVL R9, DI
3450 MOVL R11, BX
3451 RORL $0x02, DI
3452 MOVL R9, DX
3453 ANDL R10, BX
3454 RORL $0x0d, DX
3455 MOVL R9, CX
3456 ANDL R11, CX
3457 XORL DX, DI
3458 XORL CX, BX
3459 MOVL R9, DX
3460 MOVL R10, CX
3461 RORL $0x16, DX
3462 ANDL R9, CX
3463 XORL CX, BX
3464 XORL DX, DI
3465 ADDL DI, BX
3466 MOVL BX, R8
3467 ADDL AX, R12
3468 ADDL AX, R8
3469 MOVQ dig+0(FP), BP
3470 ADDL (BP), R8
3471 MOVL R8, (BP)
3472 ADDL 4(BP), R9
3473 MOVL R9, 4(BP)
3474 ADDL 8(BP), R10
3475 MOVL R10, 8(BP)
3476 ADDL 12(BP), R11
3477 MOVL R11, 12(BP)
3478 ADDL 16(BP), R12
3479 MOVL R12, 16(BP)
3480 ADDL 20(BP), R13
3481 MOVL R13, 20(BP)
3482 ADDL 24(BP), R14
3483 MOVL R14, 24(BP)
3484 ADDL 28(BP), R15
3485 MOVL R15, 28(BP)
3486 ADDQ $0x40, SI
3487 CMPQ SI, 256(SP)
3488 JB loop
3489
3490 end:
3491 RET
3492
3493 // func blockAVX2(dig *Digest, p []byte)
3494 // Requires: AVX, AVX2, BMI2
3495 TEXT ·blockAVX2(SB), $536-32
3496 MOVQ dig+0(FP), SI
3497 MOVQ p_base+8(FP), DI
3498 MOVQ p_len+16(FP), DX
3499 LEAQ -64(DI)(DX*1), DX
3500 MOVQ DX, 512(SP)
3501 CMPQ DX, DI
3502 JE avx2_only_one_block
3503
3504 // Load initial digest
3505 MOVL (SI), AX
3506 MOVL 4(SI), BX
3507 MOVL 8(SI), CX
3508 MOVL 12(SI), R8
3509 MOVL 16(SI), DX
3510 MOVL 20(SI), R9
3511 MOVL 24(SI), R10
3512 MOVL 28(SI), R11
3513
3514 avx2_loop0:
3515 // at each iteration works with one block (512 bit)
3516 VMOVDQU (DI), Y0
3517 VMOVDQU 32(DI), Y1
3518 VMOVDQU 64(DI), Y2
3519 VMOVDQU 96(DI), Y3
3520 VMOVDQU flip_mask<>+0(SB), Y13
3521
3522 // Apply Byte Flip Mask: LE -> BE
3523 VPSHUFB Y13, Y0, Y0
3524 VPSHUFB Y13, Y1, Y1
3525 VPSHUFB Y13, Y2, Y2
3526 VPSHUFB Y13, Y3, Y3
3527
3528 // Transpose data into high/low parts
3529 VPERM2I128 $0x20, Y2, Y0, Y4
3530 VPERM2I128 $0x31, Y2, Y0, Y5
3531 VPERM2I128 $0x20, Y3, Y1, Y6
3532 VPERM2I128 $0x31, Y3, Y1, Y7
3533 LEAQ K256<>+0(SB), BP
3534
3535 avx2_last_block_enter:
3536 ADDQ $0x40, DI
3537 MOVQ DI, 520(SP)
3538 XORQ SI, SI
3539
3540 avx2_loop1:
3541 // Do 4 rounds and scheduling
3542 VPADDD (BP)(SI*1), Y4, Y9
3543 VMOVDQU Y9, (SP)(SI*1)
3544 MOVL AX, DI
3545 RORXL $0x19, DX, R13
3546 RORXL $0x0b, DX, R14
3547 ADDL (SP)(SI*1), R11
3548 ORL CX, DI
3549 VPALIGNR $0x04, Y6, Y7, Y0
3550 MOVL R9, R15
3551 RORXL $0x0d, AX, R12
3552 XORL R14, R13
3553 XORL R10, R15
3554 VPADDD Y4, Y0, Y0
3555 RORXL $0x06, DX, R14
3556 ANDL DX, R15
3557 XORL R14, R13
3558 RORXL $0x16, AX, R14
3559 ADDL R11, R8
3560 ANDL BX, DI
3561 VPALIGNR $0x04, Y4, Y5, Y1
3562 XORL R12, R14
3563 RORXL $0x02, AX, R12
3564 XORL R10, R15
3565 VPSRLD $0x07, Y1, Y2
3566 XORL R12, R14
3567 MOVL AX, R12
3568 ANDL CX, R12
3569 ADDL R13, R15
3570 VPSLLD $0x19, Y1, Y3
3571 ORL R12, DI
3572 ADDL R14, R11
3573 ADDL R15, R8
3574 VPOR Y2, Y3, Y3
3575 VPSRLD $0x12, Y1, Y2
3576 ADDL R15, R11
3577 ADDL DI, R11
3578 MOVL R11, DI
3579 RORXL $0x19, R8, R13
3580 RORXL $0x0b, R8, R14
3581 ADDL 4(SP)(SI*1), R10
3582 ORL BX, DI
3583 VPSRLD $0x03, Y1, Y8
3584 MOVL DX, R15
3585 RORXL $0x0d, R11, R12
3586 XORL R14, R13
3587 XORL R9, R15
3588 RORXL $0x06, R8, R14
3589 XORL R14, R13
3590 RORXL $0x16, R11, R14
3591 ANDL R8, R15
3592 ADDL R10, CX
3593 VPSLLD $0x0e, Y1, Y1
3594 ANDL AX, DI
3595 XORL R12, R14
3596 VPXOR Y1, Y3, Y3
3597 RORXL $0x02, R11, R12
3598 XORL R9, R15
3599 VPXOR Y2, Y3, Y3
3600 XORL R12, R14
3601 MOVL R11, R12
3602 ANDL BX, R12
3603 ADDL R13, R15
3604 VPXOR Y8, Y3, Y1
3605 VPSHUFD $0xfa, Y7, Y2
3606 ORL R12, DI
3607 ADDL R14, R10
3608 VPADDD Y1, Y0, Y0
3609 ADDL R15, CX
3610 ADDL R15, R10
3611 ADDL DI, R10
3612 VPSRLD $0x0a, Y2, Y8
3613 MOVL R10, DI
3614 RORXL $0x19, CX, R13
3615 ADDL 8(SP)(SI*1), R9
3616 VPSRLQ $0x13, Y2, Y3
3617 RORXL $0x0b, CX, R14
3618 ORL AX, DI
3619 MOVL R8, R15
3620 XORL DX, R15
3621 RORXL $0x0d, R10, R12
3622 XORL R14, R13
3623 VPSRLQ $0x11, Y2, Y2
3624 ANDL CX, R15
3625 RORXL $0x06, CX, R14
3626 VPXOR Y3, Y2, Y2
3627 ADDL R9, BX
3628 ANDL R11, DI
3629 XORL R14, R13
3630 RORXL $0x16, R10, R14
3631 VPXOR Y2, Y8, Y8
3632 XORL DX, R15
3633 VPSHUFB shuff_00BA<>+0(SB), Y8, Y8
3634 XORL R12, R14
3635 RORXL $0x02, R10, R12
3636 VPADDD Y8, Y0, Y0
3637 XORL R12, R14
3638 MOVL R10, R12
3639 ANDL AX, R12
3640 ADDL R13, R15
3641 VPSHUFD $0x50, Y0, Y2
3642 ORL R12, DI
3643 ADDL R14, R9
3644 ADDL R15, BX
3645 ADDL R15, R9
3646 ADDL DI, R9
3647 MOVL R9, DI
3648 RORXL $0x19, BX, R13
3649 RORXL $0x0b, BX, R14
3650 ADDL 12(SP)(SI*1), DX
3651 ORL R11, DI
3652 VPSRLD $0x0a, Y2, Y11
3653 MOVL CX, R15
3654 RORXL $0x0d, R9, R12
3655 XORL R14, R13
3656 XORL R8, R15
3657 VPSRLQ $0x13, Y2, Y3
3658 RORXL $0x06, BX, R14
3659 ANDL BX, R15
3660 ADDL DX, AX
3661 ANDL R10, DI
3662 VPSRLQ $0x11, Y2, Y2
3663 XORL R14, R13
3664 XORL R8, R15
3665 VPXOR Y3, Y2, Y2
3666 RORXL $0x16, R9, R14
3667 ADDL R13, R15
3668 VPXOR Y2, Y11, Y11
3669 XORL R12, R14
3670 ADDL R15, AX
3671 RORXL $0x02, R9, R12
3672 VPSHUFB shuff_DC00<>+0(SB), Y11, Y11
3673 VPADDD Y0, Y11, Y4
3674 XORL R12, R14
3675 MOVL R9, R12
3676 ANDL R11, R12
3677 ORL R12, DI
3678 ADDL R14, DX
3679 ADDL R15, DX
3680 ADDL DI, DX
3681
3682 // Do 4 rounds and scheduling
3683 VPADDD 32(BP)(SI*1), Y5, Y9
3684 VMOVDQU Y9, 32(SP)(SI*1)
3685 MOVL DX, DI
3686 RORXL $0x19, AX, R13
3687 RORXL $0x0b, AX, R14
3688 ADDL 32(SP)(SI*1), R8
3689 ORL R10, DI
3690 VPALIGNR $0x04, Y7, Y4, Y0
3691 MOVL BX, R15
3692 RORXL $0x0d, DX, R12
3693 XORL R14, R13
3694 XORL CX, R15
3695 VPADDD Y5, Y0, Y0
3696 RORXL $0x06, AX, R14
3697 ANDL AX, R15
3698 XORL R14, R13
3699 RORXL $0x16, DX, R14
3700 ADDL R8, R11
3701 ANDL R9, DI
3702 VPALIGNR $0x04, Y5, Y6, Y1
3703 XORL R12, R14
3704 RORXL $0x02, DX, R12
3705 XORL CX, R15
3706 VPSRLD $0x07, Y1, Y2
3707 XORL R12, R14
3708 MOVL DX, R12
3709 ANDL R10, R12
3710 ADDL R13, R15
3711 VPSLLD $0x19, Y1, Y3
3712 ORL R12, DI
3713 ADDL R14, R8
3714 ADDL R15, R11
3715 VPOR Y2, Y3, Y3
3716 VPSRLD $0x12, Y1, Y2
3717 ADDL R15, R8
3718 ADDL DI, R8
3719 MOVL R8, DI
3720 RORXL $0x19, R11, R13
3721 RORXL $0x0b, R11, R14
3722 ADDL 36(SP)(SI*1), CX
3723 ORL R9, DI
3724 VPSRLD $0x03, Y1, Y8
3725 MOVL AX, R15
3726 RORXL $0x0d, R8, R12
3727 XORL R14, R13
3728 XORL BX, R15
3729 RORXL $0x06, R11, R14
3730 XORL R14, R13
3731 RORXL $0x16, R8, R14
3732 ANDL R11, R15
3733 ADDL CX, R10
3734 VPSLLD $0x0e, Y1, Y1
3735 ANDL DX, DI
3736 XORL R12, R14
3737 VPXOR Y1, Y3, Y3
3738 RORXL $0x02, R8, R12
3739 XORL BX, R15
3740 VPXOR Y2, Y3, Y3
3741 XORL R12, R14
3742 MOVL R8, R12
3743 ANDL R9, R12
3744 ADDL R13, R15
3745 VPXOR Y8, Y3, Y1
3746 VPSHUFD $0xfa, Y4, Y2
3747 ORL R12, DI
3748 ADDL R14, CX
3749 VPADDD Y1, Y0, Y0
3750 ADDL R15, R10
3751 ADDL R15, CX
3752 ADDL DI, CX
3753 VPSRLD $0x0a, Y2, Y8
3754 MOVL CX, DI
3755 RORXL $0x19, R10, R13
3756 ADDL 40(SP)(SI*1), BX
3757 VPSRLQ $0x13, Y2, Y3
3758 RORXL $0x0b, R10, R14
3759 ORL DX, DI
3760 MOVL R11, R15
3761 XORL AX, R15
3762 RORXL $0x0d, CX, R12
3763 XORL R14, R13
3764 VPSRLQ $0x11, Y2, Y2
3765 ANDL R10, R15
3766 RORXL $0x06, R10, R14
3767 VPXOR Y3, Y2, Y2
3768 ADDL BX, R9
3769 ANDL R8, DI
3770 XORL R14, R13
3771 RORXL $0x16, CX, R14
3772 VPXOR Y2, Y8, Y8
3773 XORL AX, R15
3774 VPSHUFB shuff_00BA<>+0(SB), Y8, Y8
3775 XORL R12, R14
3776 RORXL $0x02, CX, R12
3777 VPADDD Y8, Y0, Y0
3778 XORL R12, R14
3779 MOVL CX, R12
3780 ANDL DX, R12
3781 ADDL R13, R15
3782 VPSHUFD $0x50, Y0, Y2
3783 ORL R12, DI
3784 ADDL R14, BX
3785 ADDL R15, R9
3786 ADDL R15, BX
3787 ADDL DI, BX
3788 MOVL BX, DI
3789 RORXL $0x19, R9, R13
3790 RORXL $0x0b, R9, R14
3791 ADDL 44(SP)(SI*1), AX
3792 ORL R8, DI
3793 VPSRLD $0x0a, Y2, Y11
3794 MOVL R10, R15
3795 RORXL $0x0d, BX, R12
3796 XORL R14, R13
3797 XORL R11, R15
3798 VPSRLQ $0x13, Y2, Y3
3799 RORXL $0x06, R9, R14
3800 ANDL R9, R15
3801 ADDL AX, DX
3802 ANDL CX, DI
3803 VPSRLQ $0x11, Y2, Y2
3804 XORL R14, R13
3805 XORL R11, R15
3806 VPXOR Y3, Y2, Y2
3807 RORXL $0x16, BX, R14
3808 ADDL R13, R15
3809 VPXOR Y2, Y11, Y11
3810 XORL R12, R14
3811 ADDL R15, DX
3812 RORXL $0x02, BX, R12
3813 VPSHUFB shuff_DC00<>+0(SB), Y11, Y11
3814 VPADDD Y0, Y11, Y5
3815 XORL R12, R14
3816 MOVL BX, R12
3817 ANDL R8, R12
3818 ORL R12, DI
3819 ADDL R14, AX
3820 ADDL R15, AX
3821 ADDL DI, AX
3822
3823 // Do 4 rounds and scheduling
3824 VPADDD 64(BP)(SI*1), Y6, Y9
3825 VMOVDQU Y9, 64(SP)(SI*1)
3826 MOVL AX, DI
3827 RORXL $0x19, DX, R13
3828 RORXL $0x0b, DX, R14
3829 ADDL 64(SP)(SI*1), R11
3830 ORL CX, DI
3831 VPALIGNR $0x04, Y4, Y5, Y0
3832 MOVL R9, R15
3833 RORXL $0x0d, AX, R12
3834 XORL R14, R13
3835 XORL R10, R15
3836 VPADDD Y6, Y0, Y0
3837 RORXL $0x06, DX, R14
3838 ANDL DX, R15
3839 XORL R14, R13
3840 RORXL $0x16, AX, R14
3841 ADDL R11, R8
3842 ANDL BX, DI
3843 VPALIGNR $0x04, Y6, Y7, Y1
3844 XORL R12, R14
3845 RORXL $0x02, AX, R12
3846 XORL R10, R15
3847 VPSRLD $0x07, Y1, Y2
3848 XORL R12, R14
3849 MOVL AX, R12
3850 ANDL CX, R12
3851 ADDL R13, R15
3852 VPSLLD $0x19, Y1, Y3
3853 ORL R12, DI
3854 ADDL R14, R11
3855 ADDL R15, R8
3856 VPOR Y2, Y3, Y3
3857 VPSRLD $0x12, Y1, Y2
3858 ADDL R15, R11
3859 ADDL DI, R11
3860 MOVL R11, DI
3861 RORXL $0x19, R8, R13
3862 RORXL $0x0b, R8, R14
3863 ADDL 68(SP)(SI*1), R10
3864 ORL BX, DI
3865 VPSRLD $0x03, Y1, Y8
3866 MOVL DX, R15
3867 RORXL $0x0d, R11, R12
3868 XORL R14, R13
3869 XORL R9, R15
3870 RORXL $0x06, R8, R14
3871 XORL R14, R13
3872 RORXL $0x16, R11, R14
3873 ANDL R8, R15
3874 ADDL R10, CX
3875 VPSLLD $0x0e, Y1, Y1
3876 ANDL AX, DI
3877 XORL R12, R14
3878 VPXOR Y1, Y3, Y3
3879 RORXL $0x02, R11, R12
3880 XORL R9, R15
3881 VPXOR Y2, Y3, Y3
3882 XORL R12, R14
3883 MOVL R11, R12
3884 ANDL BX, R12
3885 ADDL R13, R15
3886 VPXOR Y8, Y3, Y1
3887 VPSHUFD $0xfa, Y5, Y2
3888 ORL R12, DI
3889 ADDL R14, R10
3890 VPADDD Y1, Y0, Y0
3891 ADDL R15, CX
3892 ADDL R15, R10
3893 ADDL DI, R10
3894 VPSRLD $0x0a, Y2, Y8
3895 MOVL R10, DI
3896 RORXL $0x19, CX, R13
3897 ADDL 72(SP)(SI*1), R9
3898 VPSRLQ $0x13, Y2, Y3
3899 RORXL $0x0b, CX, R14
3900 ORL AX, DI
3901 MOVL R8, R15
3902 XORL DX, R15
3903 RORXL $0x0d, R10, R12
3904 XORL R14, R13
3905 VPSRLQ $0x11, Y2, Y2
3906 ANDL CX, R15
3907 RORXL $0x06, CX, R14
3908 VPXOR Y3, Y2, Y2
3909 ADDL R9, BX
3910 ANDL R11, DI
3911 XORL R14, R13
3912 RORXL $0x16, R10, R14
3913 VPXOR Y2, Y8, Y8
3914 XORL DX, R15
3915 VPSHUFB shuff_00BA<>+0(SB), Y8, Y8
3916 XORL R12, R14
3917 RORXL $0x02, R10, R12
3918 VPADDD Y8, Y0, Y0
3919 XORL R12, R14
3920 MOVL R10, R12
3921 ANDL AX, R12
3922 ADDL R13, R15
3923 VPSHUFD $0x50, Y0, Y2
3924 ORL R12, DI
3925 ADDL R14, R9
3926 ADDL R15, BX
3927 ADDL R15, R9
3928 ADDL DI, R9
3929 MOVL R9, DI
3930 RORXL $0x19, BX, R13
3931 RORXL $0x0b, BX, R14
3932 ADDL 76(SP)(SI*1), DX
3933 ORL R11, DI
3934 VPSRLD $0x0a, Y2, Y11
3935 MOVL CX, R15
3936 RORXL $0x0d, R9, R12
3937 XORL R14, R13
3938 XORL R8, R15
3939 VPSRLQ $0x13, Y2, Y3
3940 RORXL $0x06, BX, R14
3941 ANDL BX, R15
3942 ADDL DX, AX
3943 ANDL R10, DI
3944 VPSRLQ $0x11, Y2, Y2
3945 XORL R14, R13
3946 XORL R8, R15
3947 VPXOR Y3, Y2, Y2
3948 RORXL $0x16, R9, R14
3949 ADDL R13, R15
3950 VPXOR Y2, Y11, Y11
3951 XORL R12, R14
3952 ADDL R15, AX
3953 RORXL $0x02, R9, R12
3954 VPSHUFB shuff_DC00<>+0(SB), Y11, Y11
3955 VPADDD Y0, Y11, Y6
3956 XORL R12, R14
3957 MOVL R9, R12
3958 ANDL R11, R12
3959 ORL R12, DI
3960 ADDL R14, DX
3961 ADDL R15, DX
3962 ADDL DI, DX
3963
3964 // Do 4 rounds and scheduling
3965 VPADDD 96(BP)(SI*1), Y7, Y9
3966 VMOVDQU Y9, 96(SP)(SI*1)
3967 MOVL DX, DI
3968 RORXL $0x19, AX, R13
3969 RORXL $0x0b, AX, R14
3970 ADDL 96(SP)(SI*1), R8
3971 ORL R10, DI
3972 VPALIGNR $0x04, Y5, Y6, Y0
3973 MOVL BX, R15
3974 RORXL $0x0d, DX, R12
3975 XORL R14, R13
3976 XORL CX, R15
3977 VPADDD Y7, Y0, Y0
3978 RORXL $0x06, AX, R14
3979 ANDL AX, R15
3980 XORL R14, R13
3981 RORXL $0x16, DX, R14
3982 ADDL R8, R11
3983 ANDL R9, DI
3984 VPALIGNR $0x04, Y7, Y4, Y1
3985 XORL R12, R14
3986 RORXL $0x02, DX, R12
3987 XORL CX, R15
3988 VPSRLD $0x07, Y1, Y2
3989 XORL R12, R14
3990 MOVL DX, R12
3991 ANDL R10, R12
3992 ADDL R13, R15
3993 VPSLLD $0x19, Y1, Y3
3994 ORL R12, DI
3995 ADDL R14, R8
3996 ADDL R15, R11
3997 VPOR Y2, Y3, Y3
3998 VPSRLD $0x12, Y1, Y2
3999 ADDL R15, R8
4000 ADDL DI, R8
4001 MOVL R8, DI
4002 RORXL $0x19, R11, R13
4003 RORXL $0x0b, R11, R14
4004 ADDL 100(SP)(SI*1), CX
4005 ORL R9, DI
4006 VPSRLD $0x03, Y1, Y8
4007 MOVL AX, R15
4008 RORXL $0x0d, R8, R12
4009 XORL R14, R13
4010 XORL BX, R15
4011 RORXL $0x06, R11, R14
4012 XORL R14, R13
4013 RORXL $0x16, R8, R14
4014 ANDL R11, R15
4015 ADDL CX, R10
4016 VPSLLD $0x0e, Y1, Y1
4017 ANDL DX, DI
4018 XORL R12, R14
4019 VPXOR Y1, Y3, Y3
4020 RORXL $0x02, R8, R12
4021 XORL BX, R15
4022 VPXOR Y2, Y3, Y3
4023 XORL R12, R14
4024 MOVL R8, R12
4025 ANDL R9, R12
4026 ADDL R13, R15
4027 VPXOR Y8, Y3, Y1
4028 VPSHUFD $0xfa, Y6, Y2
4029 ORL R12, DI
4030 ADDL R14, CX
4031 VPADDD Y1, Y0, Y0
4032 ADDL R15, R10
4033 ADDL R15, CX
4034 ADDL DI, CX
4035 VPSRLD $0x0a, Y2, Y8
4036 MOVL CX, DI
4037 RORXL $0x19, R10, R13
4038 ADDL 104(SP)(SI*1), BX
4039 VPSRLQ $0x13, Y2, Y3
4040 RORXL $0x0b, R10, R14
4041 ORL DX, DI
4042 MOVL R11, R15
4043 XORL AX, R15
4044 RORXL $0x0d, CX, R12
4045 XORL R14, R13
4046 VPSRLQ $0x11, Y2, Y2
4047 ANDL R10, R15
4048 RORXL $0x06, R10, R14
4049 VPXOR Y3, Y2, Y2
4050 ADDL BX, R9
4051 ANDL R8, DI
4052 XORL R14, R13
4053 RORXL $0x16, CX, R14
4054 VPXOR Y2, Y8, Y8
4055 XORL AX, R15
4056 VPSHUFB shuff_00BA<>+0(SB), Y8, Y8
4057 XORL R12, R14
4058 RORXL $0x02, CX, R12
4059 VPADDD Y8, Y0, Y0
4060 XORL R12, R14
4061 MOVL CX, R12
4062 ANDL DX, R12
4063 ADDL R13, R15
4064 VPSHUFD $0x50, Y0, Y2
4065 ORL R12, DI
4066 ADDL R14, BX
4067 ADDL R15, R9
4068 ADDL R15, BX
4069 ADDL DI, BX
4070 MOVL BX, DI
4071 RORXL $0x19, R9, R13
4072 RORXL $0x0b, R9, R14
4073 ADDL 108(SP)(SI*1), AX
4074 ORL R8, DI
4075 VPSRLD $0x0a, Y2, Y11
4076 MOVL R10, R15
4077 RORXL $0x0d, BX, R12
4078 XORL R14, R13
4079 XORL R11, R15
4080 VPSRLQ $0x13, Y2, Y3
4081 RORXL $0x06, R9, R14
4082 ANDL R9, R15
4083 ADDL AX, DX
4084 ANDL CX, DI
4085 VPSRLQ $0x11, Y2, Y2
4086 XORL R14, R13
4087 XORL R11, R15
4088 VPXOR Y3, Y2, Y2
4089 RORXL $0x16, BX, R14
4090 ADDL R13, R15
4091 VPXOR Y2, Y11, Y11
4092 XORL R12, R14
4093 ADDL R15, DX
4094 RORXL $0x02, BX, R12
4095 VPSHUFB shuff_DC00<>+0(SB), Y11, Y11
4096 VPADDD Y0, Y11, Y7
4097 XORL R12, R14
4098 MOVL BX, R12
4099 ANDL R8, R12
4100 ORL R12, DI
4101 ADDL R14, AX
4102 ADDL R15, AX
4103 ADDL DI, AX
4104 ADDQ $0x80, SI
4105 CMPQ SI, $0x00000180
4106 JB avx2_loop1
4107
4108 avx2_loop2:
4109 VPADDD (BP)(SI*1), Y4, Y9
4110 VMOVDQU Y9, (SP)(SI*1)
4111 MOVL R9, R15
4112 RORXL $0x19, DX, R13
4113 RORXL $0x0b, DX, R14
4114 XORL R10, R15
4115 XORL R14, R13
4116 RORXL $0x06, DX, R14
4117 ANDL DX, R15
4118 XORL R14, R13
4119 RORXL $0x0d, AX, R12
4120 XORL R10, R15
4121 RORXL $0x16, AX, R14
4122 MOVL AX, DI
4123 XORL R12, R14
4124 RORXL $0x02, AX, R12
4125 ADDL (SP)(SI*1), R11
4126 ORL CX, DI
4127 XORL R12, R14
4128 MOVL AX, R12
4129 ANDL BX, DI
4130 ANDL CX, R12
4131 ADDL R13, R15
4132 ADDL R11, R8
4133 ORL R12, DI
4134 ADDL R14, R11
4135 ADDL R15, R8
4136 ADDL R15, R11
4137 MOVL DX, R15
4138 RORXL $0x19, R8, R13
4139 RORXL $0x0b, R8, R14
4140 XORL R9, R15
4141 XORL R14, R13
4142 RORXL $0x06, R8, R14
4143 ANDL R8, R15
4144 ADDL DI, R11
4145 XORL R14, R13
4146 RORXL $0x0d, R11, R12
4147 XORL R9, R15
4148 RORXL $0x16, R11, R14
4149 MOVL R11, DI
4150 XORL R12, R14
4151 RORXL $0x02, R11, R12
4152 ADDL 4(SP)(SI*1), R10
4153 ORL BX, DI
4154 XORL R12, R14
4155 MOVL R11, R12
4156 ANDL AX, DI
4157 ANDL BX, R12
4158 ADDL R13, R15
4159 ADDL R10, CX
4160 ORL R12, DI
4161 ADDL R14, R10
4162 ADDL R15, CX
4163 ADDL R15, R10
4164 MOVL R8, R15
4165 RORXL $0x19, CX, R13
4166 RORXL $0x0b, CX, R14
4167 XORL DX, R15
4168 XORL R14, R13
4169 RORXL $0x06, CX, R14
4170 ANDL CX, R15
4171 ADDL DI, R10
4172 XORL R14, R13
4173 RORXL $0x0d, R10, R12
4174 XORL DX, R15
4175 RORXL $0x16, R10, R14
4176 MOVL R10, DI
4177 XORL R12, R14
4178 RORXL $0x02, R10, R12
4179 ADDL 8(SP)(SI*1), R9
4180 ORL AX, DI
4181 XORL R12, R14
4182 MOVL R10, R12
4183 ANDL R11, DI
4184 ANDL AX, R12
4185 ADDL R13, R15
4186 ADDL R9, BX
4187 ORL R12, DI
4188 ADDL R14, R9
4189 ADDL R15, BX
4190 ADDL R15, R9
4191 MOVL CX, R15
4192 RORXL $0x19, BX, R13
4193 RORXL $0x0b, BX, R14
4194 XORL R8, R15
4195 XORL R14, R13
4196 RORXL $0x06, BX, R14
4197 ANDL BX, R15
4198 ADDL DI, R9
4199 XORL R14, R13
4200 RORXL $0x0d, R9, R12
4201 XORL R8, R15
4202 RORXL $0x16, R9, R14
4203 MOVL R9, DI
4204 XORL R12, R14
4205 RORXL $0x02, R9, R12
4206 ADDL 12(SP)(SI*1), DX
4207 ORL R11, DI
4208 XORL R12, R14
4209 MOVL R9, R12
4210 ANDL R10, DI
4211 ANDL R11, R12
4212 ADDL R13, R15
4213 ADDL DX, AX
4214 ORL R12, DI
4215 ADDL R14, DX
4216 ADDL R15, AX
4217 ADDL R15, DX
4218 ADDL DI, DX
4219 VPADDD 32(BP)(SI*1), Y5, Y9
4220 VMOVDQU Y9, 32(SP)(SI*1)
4221 MOVL BX, R15
4222 RORXL $0x19, AX, R13
4223 RORXL $0x0b, AX, R14
4224 XORL CX, R15
4225 XORL R14, R13
4226 RORXL $0x06, AX, R14
4227 ANDL AX, R15
4228 XORL R14, R13
4229 RORXL $0x0d, DX, R12
4230 XORL CX, R15
4231 RORXL $0x16, DX, R14
4232 MOVL DX, DI
4233 XORL R12, R14
4234 RORXL $0x02, DX, R12
4235 ADDL 32(SP)(SI*1), R8
4236 ORL R10, DI
4237 XORL R12, R14
4238 MOVL DX, R12
4239 ANDL R9, DI
4240 ANDL R10, R12
4241 ADDL R13, R15
4242 ADDL R8, R11
4243 ORL R12, DI
4244 ADDL R14, R8
4245 ADDL R15, R11
4246 ADDL R15, R8
4247 MOVL AX, R15
4248 RORXL $0x19, R11, R13
4249 RORXL $0x0b, R11, R14
4250 XORL BX, R15
4251 XORL R14, R13
4252 RORXL $0x06, R11, R14
4253 ANDL R11, R15
4254 ADDL DI, R8
4255 XORL R14, R13
4256 RORXL $0x0d, R8, R12
4257 XORL BX, R15
4258 RORXL $0x16, R8, R14
4259 MOVL R8, DI
4260 XORL R12, R14
4261 RORXL $0x02, R8, R12
4262 ADDL 36(SP)(SI*1), CX
4263 ORL R9, DI
4264 XORL R12, R14
4265 MOVL R8, R12
4266 ANDL DX, DI
4267 ANDL R9, R12
4268 ADDL R13, R15
4269 ADDL CX, R10
4270 ORL R12, DI
4271 ADDL R14, CX
4272 ADDL R15, R10
4273 ADDL R15, CX
4274 MOVL R11, R15
4275 RORXL $0x19, R10, R13
4276 RORXL $0x0b, R10, R14
4277 XORL AX, R15
4278 XORL R14, R13
4279 RORXL $0x06, R10, R14
4280 ANDL R10, R15
4281 ADDL DI, CX
4282 XORL R14, R13
4283 RORXL $0x0d, CX, R12
4284 XORL AX, R15
4285 RORXL $0x16, CX, R14
4286 MOVL CX, DI
4287 XORL R12, R14
4288 RORXL $0x02, CX, R12
4289 ADDL 40(SP)(SI*1), BX
4290 ORL DX, DI
4291 XORL R12, R14
4292 MOVL CX, R12
4293 ANDL R8, DI
4294 ANDL DX, R12
4295 ADDL R13, R15
4296 ADDL BX, R9
4297 ORL R12, DI
4298 ADDL R14, BX
4299 ADDL R15, R9
4300 ADDL R15, BX
4301 MOVL R10, R15
4302 RORXL $0x19, R9, R13
4303 RORXL $0x0b, R9, R14
4304 XORL R11, R15
4305 XORL R14, R13
4306 RORXL $0x06, R9, R14
4307 ANDL R9, R15
4308 ADDL DI, BX
4309 XORL R14, R13
4310 RORXL $0x0d, BX, R12
4311 XORL R11, R15
4312 RORXL $0x16, BX, R14
4313 MOVL BX, DI
4314 XORL R12, R14
4315 RORXL $0x02, BX, R12
4316 ADDL 44(SP)(SI*1), AX
4317 ORL R8, DI
4318 XORL R12, R14
4319 MOVL BX, R12
4320 ANDL CX, DI
4321 ANDL R8, R12
4322 ADDL R13, R15
4323 ADDL AX, DX
4324 ORL R12, DI
4325 ADDL R14, AX
4326 ADDL R15, DX
4327 ADDL R15, AX
4328 ADDL DI, AX
4329 ADDQ $0x40, SI
4330 VMOVDQU Y6, Y4
4331 VMOVDQU Y7, Y5
4332 CMPQ SI, $0x00000200
4333 JB avx2_loop2
4334 MOVQ dig+0(FP), SI
4335 MOVQ 520(SP), DI
4336 ADDL AX, (SI)
4337 MOVL (SI), AX
4338 ADDL BX, 4(SI)
4339 MOVL 4(SI), BX
4340 ADDL CX, 8(SI)
4341 MOVL 8(SI), CX
4342 ADDL R8, 12(SI)
4343 MOVL 12(SI), R8
4344 ADDL DX, 16(SI)
4345 MOVL 16(SI), DX
4346 ADDL R9, 20(SI)
4347 MOVL 20(SI), R9
4348 ADDL R10, 24(SI)
4349 MOVL 24(SI), R10
4350 ADDL R11, 28(SI)
4351 MOVL 28(SI), R11
4352 CMPQ 512(SP), DI
4353 JB done_hash
4354 XORQ SI, SI
4355
4356 avx2_loop3:
4357 MOVL R9, R15
4358 RORXL $0x19, DX, R13
4359 RORXL $0x0b, DX, R14
4360 XORL R10, R15
4361 XORL R14, R13
4362 RORXL $0x06, DX, R14
4363 ANDL DX, R15
4364 XORL R14, R13
4365 RORXL $0x0d, AX, R12
4366 XORL R10, R15
4367 RORXL $0x16, AX, R14
4368 MOVL AX, DI
4369 XORL R12, R14
4370 RORXL $0x02, AX, R12
4371 ADDL 16(SP)(SI*1), R11
4372 ORL CX, DI
4373 XORL R12, R14
4374 MOVL AX, R12
4375 ANDL BX, DI
4376 ANDL CX, R12
4377 ADDL R13, R15
4378 ADDL R11, R8
4379 ORL R12, DI
4380 ADDL R14, R11
4381 ADDL R15, R8
4382 ADDL R15, R11
4383 MOVL DX, R15
4384 RORXL $0x19, R8, R13
4385 RORXL $0x0b, R8, R14
4386 XORL R9, R15
4387 XORL R14, R13
4388 RORXL $0x06, R8, R14
4389 ANDL R8, R15
4390 ADDL DI, R11
4391 XORL R14, R13
4392 RORXL $0x0d, R11, R12
4393 XORL R9, R15
4394 RORXL $0x16, R11, R14
4395 MOVL R11, DI
4396 XORL R12, R14
4397 RORXL $0x02, R11, R12
4398 ADDL 20(SP)(SI*1), R10
4399 ORL BX, DI
4400 XORL R12, R14
4401 MOVL R11, R12
4402 ANDL AX, DI
4403 ANDL BX, R12
4404 ADDL R13, R15
4405 ADDL R10, CX
4406 ORL R12, DI
4407 ADDL R14, R10
4408 ADDL R15, CX
4409 ADDL R15, R10
4410 MOVL R8, R15
4411 RORXL $0x19, CX, R13
4412 RORXL $0x0b, CX, R14
4413 XORL DX, R15
4414 XORL R14, R13
4415 RORXL $0x06, CX, R14
4416 ANDL CX, R15
4417 ADDL DI, R10
4418 XORL R14, R13
4419 RORXL $0x0d, R10, R12
4420 XORL DX, R15
4421 RORXL $0x16, R10, R14
4422 MOVL R10, DI
4423 XORL R12, R14
4424 RORXL $0x02, R10, R12
4425 ADDL 24(SP)(SI*1), R9
4426 ORL AX, DI
4427 XORL R12, R14
4428 MOVL R10, R12
4429 ANDL R11, DI
4430 ANDL AX, R12
4431 ADDL R13, R15
4432 ADDL R9, BX
4433 ORL R12, DI
4434 ADDL R14, R9
4435 ADDL R15, BX
4436 ADDL R15, R9
4437 MOVL CX, R15
4438 RORXL $0x19, BX, R13
4439 RORXL $0x0b, BX, R14
4440 XORL R8, R15
4441 XORL R14, R13
4442 RORXL $0x06, BX, R14
4443 ANDL BX, R15
4444 ADDL DI, R9
4445 XORL R14, R13
4446 RORXL $0x0d, R9, R12
4447 XORL R8, R15
4448 RORXL $0x16, R9, R14
4449 MOVL R9, DI
4450 XORL R12, R14
4451 RORXL $0x02, R9, R12
4452 ADDL 28(SP)(SI*1), DX
4453 ORL R11, DI
4454 XORL R12, R14
4455 MOVL R9, R12
4456 ANDL R10, DI
4457 ANDL R11, R12
4458 ADDL R13, R15
4459 ADDL DX, AX
4460 ORL R12, DI
4461 ADDL R14, DX
4462 ADDL R15, AX
4463 ADDL R15, DX
4464 ADDL DI, DX
4465 MOVL BX, R15
4466 RORXL $0x19, AX, R13
4467 RORXL $0x0b, AX, R14
4468 XORL CX, R15
4469 XORL R14, R13
4470 RORXL $0x06, AX, R14
4471 ANDL AX, R15
4472 XORL R14, R13
4473 RORXL $0x0d, DX, R12
4474 XORL CX, R15
4475 RORXL $0x16, DX, R14
4476 MOVL DX, DI
4477 XORL R12, R14
4478 RORXL $0x02, DX, R12
4479 ADDL 48(SP)(SI*1), R8
4480 ORL R10, DI
4481 XORL R12, R14
4482 MOVL DX, R12
4483 ANDL R9, DI
4484 ANDL R10, R12
4485 ADDL R13, R15
4486 ADDL R8, R11
4487 ORL R12, DI
4488 ADDL R14, R8
4489 ADDL R15, R11
4490 ADDL R15, R8
4491 MOVL AX, R15
4492 RORXL $0x19, R11, R13
4493 RORXL $0x0b, R11, R14
4494 XORL BX, R15
4495 XORL R14, R13
4496 RORXL $0x06, R11, R14
4497 ANDL R11, R15
4498 ADDL DI, R8
4499 XORL R14, R13
4500 RORXL $0x0d, R8, R12
4501 XORL BX, R15
4502 RORXL $0x16, R8, R14
4503 MOVL R8, DI
4504 XORL R12, R14
4505 RORXL $0x02, R8, R12
4506 ADDL 52(SP)(SI*1), CX
4507 ORL R9, DI
4508 XORL R12, R14
4509 MOVL R8, R12
4510 ANDL DX, DI
4511 ANDL R9, R12
4512 ADDL R13, R15
4513 ADDL CX, R10
4514 ORL R12, DI
4515 ADDL R14, CX
4516 ADDL R15, R10
4517 ADDL R15, CX
4518 MOVL R11, R15
4519 RORXL $0x19, R10, R13
4520 RORXL $0x0b, R10, R14
4521 XORL AX, R15
4522 XORL R14, R13
4523 RORXL $0x06, R10, R14
4524 ANDL R10, R15
4525 ADDL DI, CX
4526 XORL R14, R13
4527 RORXL $0x0d, CX, R12
4528 XORL AX, R15
4529 RORXL $0x16, CX, R14
4530 MOVL CX, DI
4531 XORL R12, R14
4532 RORXL $0x02, CX, R12
4533 ADDL 56(SP)(SI*1), BX
4534 ORL DX, DI
4535 XORL R12, R14
4536 MOVL CX, R12
4537 ANDL R8, DI
4538 ANDL DX, R12
4539 ADDL R13, R15
4540 ADDL BX, R9
4541 ORL R12, DI
4542 ADDL R14, BX
4543 ADDL R15, R9
4544 ADDL R15, BX
4545 MOVL R10, R15
4546 RORXL $0x19, R9, R13
4547 RORXL $0x0b, R9, R14
4548 XORL R11, R15
4549 XORL R14, R13
4550 RORXL $0x06, R9, R14
4551 ANDL R9, R15
4552 ADDL DI, BX
4553 XORL R14, R13
4554 RORXL $0x0d, BX, R12
4555 XORL R11, R15
4556 RORXL $0x16, BX, R14
4557 MOVL BX, DI
4558 XORL R12, R14
4559 RORXL $0x02, BX, R12
4560 ADDL 60(SP)(SI*1), AX
4561 ORL R8, DI
4562 XORL R12, R14
4563 MOVL BX, R12
4564 ANDL CX, DI
4565 ANDL R8, R12
4566 ADDL R13, R15
4567 ADDL AX, DX
4568 ORL R12, DI
4569 ADDL R14, AX
4570 ADDL R15, DX
4571 ADDL R15, AX
4572 ADDL DI, AX
4573 ADDQ $0x40, SI
4574 CMPQ SI, $0x00000200
4575 JB avx2_loop3
4576 MOVQ dig+0(FP), SI
4577 MOVQ 520(SP), DI
4578 ADDQ $0x40, DI
4579 ADDL AX, (SI)
4580 MOVL (SI), AX
4581 ADDL BX, 4(SI)
4582 MOVL 4(SI), BX
4583 ADDL CX, 8(SI)
4584 MOVL 8(SI), CX
4585 ADDL R8, 12(SI)
4586 MOVL 12(SI), R8
4587 ADDL DX, 16(SI)
4588 MOVL 16(SI), DX
4589 ADDL R9, 20(SI)
4590 MOVL 20(SI), R9
4591 ADDL R10, 24(SI)
4592 MOVL 24(SI), R10
4593 ADDL R11, 28(SI)
4594 MOVL 28(SI), R11
4595 CMPQ 512(SP), DI
4596 JA avx2_loop0
4597 JB done_hash
4598
4599 avx2_do_last_block:
4600 VMOVDQU (DI), X4
4601 VMOVDQU 16(DI), X5
4602 VMOVDQU 32(DI), X6
4603 VMOVDQU 48(DI), X7
4604 VMOVDQU flip_mask<>+0(SB), Y13
4605 VPSHUFB X13, X4, X4
4606 VPSHUFB X13, X5, X5
4607 VPSHUFB X13, X6, X6
4608 VPSHUFB X13, X7, X7
4609 LEAQ K256<>+0(SB), BP
4610 JMP avx2_last_block_enter
4611
4612 avx2_only_one_block:
4613 MOVL (SI), AX
4614 MOVL 4(SI), BX
4615 MOVL 8(SI), CX
4616 MOVL 12(SI), R8
4617 MOVL 16(SI), DX
4618 MOVL 20(SI), R9
4619 MOVL 24(SI), R10
4620 MOVL 28(SI), R11
4621 JMP avx2_do_last_block
4622
4623 done_hash:
4624 VZEROUPPER
4625 RET
4626
4627 DATA flip_mask<>+0(SB)/8, $0x0405060700010203
4628 DATA flip_mask<>+8(SB)/8, $0x0c0d0e0f08090a0b
4629 DATA flip_mask<>+16(SB)/8, $0x0405060700010203
4630 DATA flip_mask<>+24(SB)/8, $0x0c0d0e0f08090a0b
4631 GLOBL flip_mask<>(SB), RODATA, $32
4632
4633 DATA K256<>+0(SB)/4, $0x428a2f98
4634 DATA K256<>+4(SB)/4, $0x71374491
4635 DATA K256<>+8(SB)/4, $0xb5c0fbcf
4636 DATA K256<>+12(SB)/4, $0xe9b5dba5
4637 DATA K256<>+16(SB)/4, $0x428a2f98
4638 DATA K256<>+20(SB)/4, $0x71374491
4639 DATA K256<>+24(SB)/4, $0xb5c0fbcf
4640 DATA K256<>+28(SB)/4, $0xe9b5dba5
4641 DATA K256<>+32(SB)/4, $0x3956c25b
4642 DATA K256<>+36(SB)/4, $0x59f111f1
4643 DATA K256<>+40(SB)/4, $0x923f82a4
4644 DATA K256<>+44(SB)/4, $0xab1c5ed5
4645 DATA K256<>+48(SB)/4, $0x3956c25b
4646 DATA K256<>+52(SB)/4, $0x59f111f1
4647 DATA K256<>+56(SB)/4, $0x923f82a4
4648 DATA K256<>+60(SB)/4, $0xab1c5ed5
4649 DATA K256<>+64(SB)/4, $0xd807aa98
4650 DATA K256<>+68(SB)/4, $0x12835b01
4651 DATA K256<>+72(SB)/4, $0x243185be
4652 DATA K256<>+76(SB)/4, $0x550c7dc3
4653 DATA K256<>+80(SB)/4, $0xd807aa98
4654 DATA K256<>+84(SB)/4, $0x12835b01
4655 DATA K256<>+88(SB)/4, $0x243185be
4656 DATA K256<>+92(SB)/4, $0x550c7dc3
4657 DATA K256<>+96(SB)/4, $0x72be5d74
4658 DATA K256<>+100(SB)/4, $0x80deb1fe
4659 DATA K256<>+104(SB)/4, $0x9bdc06a7
4660 DATA K256<>+108(SB)/4, $0xc19bf174
4661 DATA K256<>+112(SB)/4, $0x72be5d74
4662 DATA K256<>+116(SB)/4, $0x80deb1fe
4663 DATA K256<>+120(SB)/4, $0x9bdc06a7
4664 DATA K256<>+124(SB)/4, $0xc19bf174
4665 DATA K256<>+128(SB)/4, $0xe49b69c1
4666 DATA K256<>+132(SB)/4, $0xefbe4786
4667 DATA K256<>+136(SB)/4, $0x0fc19dc6
4668 DATA K256<>+140(SB)/4, $0x240ca1cc
4669 DATA K256<>+144(SB)/4, $0xe49b69c1
4670 DATA K256<>+148(SB)/4, $0xefbe4786
4671 DATA K256<>+152(SB)/4, $0x0fc19dc6
4672 DATA K256<>+156(SB)/4, $0x240ca1cc
4673 DATA K256<>+160(SB)/4, $0x2de92c6f
4674 DATA K256<>+164(SB)/4, $0x4a7484aa
4675 DATA K256<>+168(SB)/4, $0x5cb0a9dc
4676 DATA K256<>+172(SB)/4, $0x76f988da
4677 DATA K256<>+176(SB)/4, $0x2de92c6f
4678 DATA K256<>+180(SB)/4, $0x4a7484aa
4679 DATA K256<>+184(SB)/4, $0x5cb0a9dc
4680 DATA K256<>+188(SB)/4, $0x76f988da
4681 DATA K256<>+192(SB)/4, $0x983e5152
4682 DATA K256<>+196(SB)/4, $0xa831c66d
4683 DATA K256<>+200(SB)/4, $0xb00327c8
4684 DATA K256<>+204(SB)/4, $0xbf597fc7
4685 DATA K256<>+208(SB)/4, $0x983e5152
4686 DATA K256<>+212(SB)/4, $0xa831c66d
4687 DATA K256<>+216(SB)/4, $0xb00327c8
4688 DATA K256<>+220(SB)/4, $0xbf597fc7
4689 DATA K256<>+224(SB)/4, $0xc6e00bf3
4690 DATA K256<>+228(SB)/4, $0xd5a79147
4691 DATA K256<>+232(SB)/4, $0x06ca6351
4692 DATA K256<>+236(SB)/4, $0x14292967
4693 DATA K256<>+240(SB)/4, $0xc6e00bf3
4694 DATA K256<>+244(SB)/4, $0xd5a79147
4695 DATA K256<>+248(SB)/4, $0x06ca6351
4696 DATA K256<>+252(SB)/4, $0x14292967
4697 DATA K256<>+256(SB)/4, $0x27b70a85
4698 DATA K256<>+260(SB)/4, $0x2e1b2138
4699 DATA K256<>+264(SB)/4, $0x4d2c6dfc
4700 DATA K256<>+268(SB)/4, $0x53380d13
4701 DATA K256<>+272(SB)/4, $0x27b70a85
4702 DATA K256<>+276(SB)/4, $0x2e1b2138
4703 DATA K256<>+280(SB)/4, $0x4d2c6dfc
4704 DATA K256<>+284(SB)/4, $0x53380d13
4705 DATA K256<>+288(SB)/4, $0x650a7354
4706 DATA K256<>+292(SB)/4, $0x766a0abb
4707 DATA K256<>+296(SB)/4, $0x81c2c92e
4708 DATA K256<>+300(SB)/4, $0x92722c85
4709 DATA K256<>+304(SB)/4, $0x650a7354
4710 DATA K256<>+308(SB)/4, $0x766a0abb
4711 DATA K256<>+312(SB)/4, $0x81c2c92e
4712 DATA K256<>+316(SB)/4, $0x92722c85
4713 DATA K256<>+320(SB)/4, $0xa2bfe8a1
4714 DATA K256<>+324(SB)/4, $0xa81a664b
4715 DATA K256<>+328(SB)/4, $0xc24b8b70
4716 DATA K256<>+332(SB)/4, $0xc76c51a3
4717 DATA K256<>+336(SB)/4, $0xa2bfe8a1
4718 DATA K256<>+340(SB)/4, $0xa81a664b
4719 DATA K256<>+344(SB)/4, $0xc24b8b70
4720 DATA K256<>+348(SB)/4, $0xc76c51a3
4721 DATA K256<>+352(SB)/4, $0xd192e819
4722 DATA K256<>+356(SB)/4, $0xd6990624
4723 DATA K256<>+360(SB)/4, $0xf40e3585
4724 DATA K256<>+364(SB)/4, $0x106aa070
4725 DATA K256<>+368(SB)/4, $0xd192e819
4726 DATA K256<>+372(SB)/4, $0xd6990624
4727 DATA K256<>+376(SB)/4, $0xf40e3585
4728 DATA K256<>+380(SB)/4, $0x106aa070
4729 DATA K256<>+384(SB)/4, $0x19a4c116
4730 DATA K256<>+388(SB)/4, $0x1e376c08
4731 DATA K256<>+392(SB)/4, $0x2748774c
4732 DATA K256<>+396(SB)/4, $0x34b0bcb5
4733 DATA K256<>+400(SB)/4, $0x19a4c116
4734 DATA K256<>+404(SB)/4, $0x1e376c08
4735 DATA K256<>+408(SB)/4, $0x2748774c
4736 DATA K256<>+412(SB)/4, $0x34b0bcb5
4737 DATA K256<>+416(SB)/4, $0x391c0cb3
4738 DATA K256<>+420(SB)/4, $0x4ed8aa4a
4739 DATA K256<>+424(SB)/4, $0x5b9cca4f
4740 DATA K256<>+428(SB)/4, $0x682e6ff3
4741 DATA K256<>+432(SB)/4, $0x391c0cb3
4742 DATA K256<>+436(SB)/4, $0x4ed8aa4a
4743 DATA K256<>+440(SB)/4, $0x5b9cca4f
4744 DATA K256<>+444(SB)/4, $0x682e6ff3
4745 DATA K256<>+448(SB)/4, $0x748f82ee
4746 DATA K256<>+452(SB)/4, $0x78a5636f
4747 DATA K256<>+456(SB)/4, $0x84c87814
4748 DATA K256<>+460(SB)/4, $0x8cc70208
4749 DATA K256<>+464(SB)/4, $0x748f82ee
4750 DATA K256<>+468(SB)/4, $0x78a5636f
4751 DATA K256<>+472(SB)/4, $0x84c87814
4752 DATA K256<>+476(SB)/4, $0x8cc70208
4753 DATA K256<>+480(SB)/4, $0x90befffa
4754 DATA K256<>+484(SB)/4, $0xa4506ceb
4755 DATA K256<>+488(SB)/4, $0xbef9a3f7
4756 DATA K256<>+492(SB)/4, $0xc67178f2
4757 DATA K256<>+496(SB)/4, $0x90befffa
4758 DATA K256<>+500(SB)/4, $0xa4506ceb
4759 DATA K256<>+504(SB)/4, $0xbef9a3f7
4760 DATA K256<>+508(SB)/4, $0xc67178f2
4761 GLOBL K256<>(SB), RODATA|NOPTR, $512
4762
4763 DATA shuff_00BA<>+0(SB)/8, $0x0b0a090803020100
4764 DATA shuff_00BA<>+8(SB)/8, $0xffffffffffffffff
4765 DATA shuff_00BA<>+16(SB)/8, $0x0b0a090803020100
4766 DATA shuff_00BA<>+24(SB)/8, $0xffffffffffffffff
4767 GLOBL shuff_00BA<>(SB), RODATA, $32
4768
4769 DATA shuff_DC00<>+0(SB)/8, $0xffffffffffffffff
4770 DATA shuff_DC00<>+8(SB)/8, $0x0b0a090803020100
4771 DATA shuff_DC00<>+16(SB)/8, $0xffffffffffffffff
4772 DATA shuff_DC00<>+24(SB)/8, $0x0b0a090803020100
4773 GLOBL shuff_DC00<>(SB), RODATA, $32
4774
4775 // func blockSHANI(dig *Digest, p []byte)
4776 // Requires: AVX, SHA, SSE2, SSE4.1, SSSE3
4777 TEXT ·blockSHANI(SB), $0-32
4778 MOVQ dig+0(FP), DI
4779 MOVQ p_base+8(FP), SI
4780 MOVQ p_len+16(FP), DX
4781 SHRQ $0x06, DX
4782 SHLQ $0x06, DX
4783 CMPQ DX, $0x00
4784 JEQ done
4785 ADDQ SI, DX
4786 VMOVDQU (DI), X1
4787 VMOVDQU 16(DI), X2
4788 PSHUFD $0xb1, X1, X1
4789 PSHUFD $0x1b, X2, X2
4790 VMOVDQA X1, X7
4791 PALIGNR $0x08, X2, X1
4792 PBLENDW $0xf0, X7, X2
4793 VMOVDQA flip_mask<>+0(SB), X8
4794 LEAQ K256<>+0(SB), AX
4795
4796 roundLoop:
4797 // save hash values for addition after rounds
4798 VMOVDQA X1, X9
4799 VMOVDQA X2, X10
4800
4801 // do rounds 0-59
4802 VMOVDQU (SI), X0
4803 PSHUFB X8, X0
4804 VMOVDQA X0, X3
4805 PADDD (AX), X0
4806 SHA256RNDS2 X0, X1, X2
4807 PSHUFD $0x0e, X0, X0
4808 SHA256RNDS2 X0, X2, X1
4809 VMOVDQU 16(SI), X0
4810 PSHUFB X8, X0
4811 VMOVDQA X0, X4
4812 PADDD 32(AX), X0
4813 SHA256RNDS2 X0, X1, X2
4814 PSHUFD $0x0e, X0, X0
4815 SHA256RNDS2 X0, X2, X1
4816 SHA256MSG1 X4, X3
4817 VMOVDQU 32(SI), X0
4818 PSHUFB X8, X0
4819 VMOVDQA X0, X5
4820 PADDD 64(AX), X0
4821 SHA256RNDS2 X0, X1, X2
4822 PSHUFD $0x0e, X0, X0
4823 SHA256RNDS2 X0, X2, X1
4824 SHA256MSG1 X5, X4
4825 VMOVDQU 48(SI), X0
4826 PSHUFB X8, X0
4827 VMOVDQA X0, X6
4828 PADDD 96(AX), X0
4829 SHA256RNDS2 X0, X1, X2
4830 VMOVDQA X6, X7
4831 PALIGNR $0x04, X5, X7
4832 PADDD X7, X3
4833 SHA256MSG2 X6, X3
4834 PSHUFD $0x0e, X0, X0
4835 SHA256RNDS2 X0, X2, X1
4836 SHA256MSG1 X6, X5
4837 VMOVDQA X3, X0
4838 PADDD 128(AX), X0
4839 SHA256RNDS2 X0, X1, X2
4840 VMOVDQA X3, X7
4841 PALIGNR $0x04, X6, X7
4842 PADDD X7, X4
4843 SHA256MSG2 X3, X4
4844 PSHUFD $0x0e, X0, X0
4845 SHA256RNDS2 X0, X2, X1
4846 SHA256MSG1 X3, X6
4847 VMOVDQA X4, X0
4848 PADDD 160(AX), X0
4849 SHA256RNDS2 X0, X1, X2
4850 VMOVDQA X4, X7
4851 PALIGNR $0x04, X3, X7
4852 PADDD X7, X5
4853 SHA256MSG2 X4, X5
4854 PSHUFD $0x0e, X0, X0
4855 SHA256RNDS2 X0, X2, X1
4856 SHA256MSG1 X4, X3
4857 VMOVDQA X5, X0
4858 PADDD 192(AX), X0
4859 SHA256RNDS2 X0, X1, X2
4860 VMOVDQA X5, X7
4861 PALIGNR $0x04, X4, X7
4862 PADDD X7, X6
4863 SHA256MSG2 X5, X6
4864 PSHUFD $0x0e, X0, X0
4865 SHA256RNDS2 X0, X2, X1
4866 SHA256MSG1 X5, X4
4867 VMOVDQA X6, X0
4868 PADDD 224(AX), X0
4869 SHA256RNDS2 X0, X1, X2
4870 VMOVDQA X6, X7
4871 PALIGNR $0x04, X5, X7
4872 PADDD X7, X3
4873 SHA256MSG2 X6, X3
4874 PSHUFD $0x0e, X0, X0
4875 SHA256RNDS2 X0, X2, X1
4876 SHA256MSG1 X6, X5
4877 VMOVDQA X3, X0
4878 PADDD 256(AX), X0
4879 SHA256RNDS2 X0, X1, X2
4880 VMOVDQA X3, X7
4881 PALIGNR $0x04, X6, X7
4882 PADDD X7, X4
4883 SHA256MSG2 X3, X4
4884 PSHUFD $0x0e, X0, X0
4885 SHA256RNDS2 X0, X2, X1
4886 SHA256MSG1 X3, X6
4887 VMOVDQA X4, X0
4888 PADDD 288(AX), X0
4889 SHA256RNDS2 X0, X1, X2
4890 VMOVDQA X4, X7
4891 PALIGNR $0x04, X3, X7
4892 PADDD X7, X5
4893 SHA256MSG2 X4, X5
4894 PSHUFD $0x0e, X0, X0
4895 SHA256RNDS2 X0, X2, X1
4896 SHA256MSG1 X4, X3
4897 VMOVDQA X5, X0
4898 PADDD 320(AX), X0
4899 SHA256RNDS2 X0, X1, X2
4900 VMOVDQA X5, X7
4901 PALIGNR $0x04, X4, X7
4902 PADDD X7, X6
4903 SHA256MSG2 X5, X6
4904 PSHUFD $0x0e, X0, X0
4905 SHA256RNDS2 X0, X2, X1
4906 SHA256MSG1 X5, X4
4907 VMOVDQA X6, X0
4908 PADDD 352(AX), X0
4909 SHA256RNDS2 X0, X1, X2
4910 VMOVDQA X6, X7
4911 PALIGNR $0x04, X5, X7
4912 PADDD X7, X3
4913 SHA256MSG2 X6, X3
4914 PSHUFD $0x0e, X0, X0
4915 SHA256RNDS2 X0, X2, X1
4916 SHA256MSG1 X6, X5
4917 VMOVDQA X3, X0
4918 PADDD 384(AX), X0
4919 SHA256RNDS2 X0, X1, X2
4920 VMOVDQA X3, X7
4921 PALIGNR $0x04, X6, X7
4922 PADDD X7, X4
4923 SHA256MSG2 X3, X4
4924 PSHUFD $0x0e, X0, X0
4925 SHA256RNDS2 X0, X2, X1
4926 SHA256MSG1 X3, X6
4927 VMOVDQA X4, X0
4928 PADDD 416(AX), X0
4929 SHA256RNDS2 X0, X1, X2
4930 VMOVDQA X4, X7
4931 PALIGNR $0x04, X3, X7
4932 PADDD X7, X5
4933 SHA256MSG2 X4, X5
4934 PSHUFD $0x0e, X0, X0
4935 SHA256RNDS2 X0, X2, X1
4936 VMOVDQA X5, X0
4937 PADDD 448(AX), X0
4938 SHA256RNDS2 X0, X1, X2
4939 VMOVDQA X5, X7
4940 PALIGNR $0x04, X4, X7
4941 PADDD X7, X6
4942 SHA256MSG2 X5, X6
4943 PSHUFD $0x0e, X0, X0
4944 SHA256RNDS2 X0, X2, X1
4945
4946 // do rounds 60-63
4947 VMOVDQA X6, X0
4948 PADDD 480(AX), X0
4949 SHA256RNDS2 X0, X1, X2
4950 PSHUFD $0x0e, X0, X0
4951 SHA256RNDS2 X0, X2, X1
4952
4953 // add current hash values with previously saved
4954 PADDD X9, X1
4955 PADDD X10, X2
4956
4957 // advance data pointer; loop until buffer empty
4958 ADDQ $0x40, SI
4959 CMPQ DX, SI
4960 JNE roundLoop
4961
4962 // write hash values back in the correct order
4963 PSHUFD $0x1b, X1, X1
4964 PSHUFD $0xb1, X2, X2
4965 VMOVDQA X1, X7
4966 PBLENDW $0xf0, X2, X1
4967 PALIGNR $0x08, X7, X2
4968 VMOVDQU X1, (DI)
4969 VMOVDQU X2, 16(DI)
4970
4971 done:
4972 RET
4973
View as plain text