Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(51)

Side by Side Diff: third_party/boringssl/win-x86_64/crypto/sha/sha256-x86_64.asm

Issue 377783004: Add BoringSSL GYP files. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Final Python fix. Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 OPTION DOTNAME
2 .text$ SEGMENT ALIGN(64) 'CODE'
3
4 EXTERN OPENSSL_ia32cap_P:NEAR
5 PUBLIC sha256_block_data_order
6
7 ALIGN 16
8 sha256_block_data_order PROC PUBLIC
9 mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
10 mov QWORD PTR[16+rsp],rsi
11 mov rax,rsp
12 $L$SEH_begin_sha256_block_data_order::
13 mov rdi,rcx
14 mov rsi,rdx
15 mov rdx,r8
16
17
18 lea r11,QWORD PTR[OPENSSL_ia32cap_P]
19 mov r9d,DWORD PTR[r11]
20 mov r10d,DWORD PTR[4+r11]
21 mov r11d,DWORD PTR[8+r11]
22 test r10d,512
23 jnz $L$ssse3_shortcut
24 push rbx
25 push rbp
26 push r12
27 push r13
28 push r14
29 push r15
30 mov r11,rsp
31 shl rdx,4
32 sub rsp,16*4+4*8
33 lea rdx,QWORD PTR[rdx*4+rsi]
34 and rsp,-64
35 mov QWORD PTR[((64+0))+rsp],rdi
36 mov QWORD PTR[((64+8))+rsp],rsi
37 mov QWORD PTR[((64+16))+rsp],rdx
38 mov QWORD PTR[((64+24))+rsp],r11
39 $L$prologue::
40
41 mov eax,DWORD PTR[rdi]
42 mov ebx,DWORD PTR[4+rdi]
43 mov ecx,DWORD PTR[8+rdi]
44 mov edx,DWORD PTR[12+rdi]
45 mov r8d,DWORD PTR[16+rdi]
46 mov r9d,DWORD PTR[20+rdi]
47 mov r10d,DWORD PTR[24+rdi]
48 mov r11d,DWORD PTR[28+rdi]
49 jmp $L$loop
50
51 ALIGN 16
52 $L$loop::
53 mov edi,ebx
54 lea rbp,QWORD PTR[K256]
55 xor edi,ecx
56 mov r12d,DWORD PTR[rsi]
57 mov r13d,r8d
58 mov r14d,eax
59 bswap r12d
60 ror r13d,14
61 mov r15d,r9d
62
63 xor r13d,r8d
64 ror r14d,9
65 xor r15d,r10d
66
67 mov DWORD PTR[rsp],r12d
68 xor r14d,eax
69 and r15d,r8d
70
71 ror r13d,5
72 add r12d,r11d
73 xor r15d,r10d
74
75 ror r14d,11
76 xor r13d,r8d
77 add r12d,r15d
78
79 mov r15d,eax
80 add r12d,DWORD PTR[rbp]
81 xor r14d,eax
82
83 xor r15d,ebx
84 ror r13d,6
85 mov r11d,ebx
86
87 and edi,r15d
88 ror r14d,2
89 add r12d,r13d
90
91 xor r11d,edi
92 add edx,r12d
93 add r11d,r12d
94
95 lea rbp,QWORD PTR[4+rbp]
96 add r11d,r14d
97 mov r12d,DWORD PTR[4+rsi]
98 mov r13d,edx
99 mov r14d,r11d
100 bswap r12d
101 ror r13d,14
102 mov edi,r8d
103
104 xor r13d,edx
105 ror r14d,9
106 xor edi,r9d
107
108 mov DWORD PTR[4+rsp],r12d
109 xor r14d,r11d
110 and edi,edx
111
112 ror r13d,5
113 add r12d,r10d
114 xor edi,r9d
115
116 ror r14d,11
117 xor r13d,edx
118 add r12d,edi
119
120 mov edi,r11d
121 add r12d,DWORD PTR[rbp]
122 xor r14d,r11d
123
124 xor edi,eax
125 ror r13d,6
126 mov r10d,eax
127
128 and r15d,edi
129 ror r14d,2
130 add r12d,r13d
131
132 xor r10d,r15d
133 add ecx,r12d
134 add r10d,r12d
135
136 lea rbp,QWORD PTR[4+rbp]
137 add r10d,r14d
138 mov r12d,DWORD PTR[8+rsi]
139 mov r13d,ecx
140 mov r14d,r10d
141 bswap r12d
142 ror r13d,14
143 mov r15d,edx
144
145 xor r13d,ecx
146 ror r14d,9
147 xor r15d,r8d
148
149 mov DWORD PTR[8+rsp],r12d
150 xor r14d,r10d
151 and r15d,ecx
152
153 ror r13d,5
154 add r12d,r9d
155 xor r15d,r8d
156
157 ror r14d,11
158 xor r13d,ecx
159 add r12d,r15d
160
161 mov r15d,r10d
162 add r12d,DWORD PTR[rbp]
163 xor r14d,r10d
164
165 xor r15d,r11d
166 ror r13d,6
167 mov r9d,r11d
168
169 and edi,r15d
170 ror r14d,2
171 add r12d,r13d
172
173 xor r9d,edi
174 add ebx,r12d
175 add r9d,r12d
176
177 lea rbp,QWORD PTR[4+rbp]
178 add r9d,r14d
179 mov r12d,DWORD PTR[12+rsi]
180 mov r13d,ebx
181 mov r14d,r9d
182 bswap r12d
183 ror r13d,14
184 mov edi,ecx
185
186 xor r13d,ebx
187 ror r14d,9
188 xor edi,edx
189
190 mov DWORD PTR[12+rsp],r12d
191 xor r14d,r9d
192 and edi,ebx
193
194 ror r13d,5
195 add r12d,r8d
196 xor edi,edx
197
198 ror r14d,11
199 xor r13d,ebx
200 add r12d,edi
201
202 mov edi,r9d
203 add r12d,DWORD PTR[rbp]
204 xor r14d,r9d
205
206 xor edi,r10d
207 ror r13d,6
208 mov r8d,r10d
209
210 and r15d,edi
211 ror r14d,2
212 add r12d,r13d
213
214 xor r8d,r15d
215 add eax,r12d
216 add r8d,r12d
217
218 lea rbp,QWORD PTR[20+rbp]
219 add r8d,r14d
220 mov r12d,DWORD PTR[16+rsi]
221 mov r13d,eax
222 mov r14d,r8d
223 bswap r12d
224 ror r13d,14
225 mov r15d,ebx
226
227 xor r13d,eax
228 ror r14d,9
229 xor r15d,ecx
230
231 mov DWORD PTR[16+rsp],r12d
232 xor r14d,r8d
233 and r15d,eax
234
235 ror r13d,5
236 add r12d,edx
237 xor r15d,ecx
238
239 ror r14d,11
240 xor r13d,eax
241 add r12d,r15d
242
243 mov r15d,r8d
244 add r12d,DWORD PTR[rbp]
245 xor r14d,r8d
246
247 xor r15d,r9d
248 ror r13d,6
249 mov edx,r9d
250
251 and edi,r15d
252 ror r14d,2
253 add r12d,r13d
254
255 xor edx,edi
256 add r11d,r12d
257 add edx,r12d
258
259 lea rbp,QWORD PTR[4+rbp]
260 add edx,r14d
261 mov r12d,DWORD PTR[20+rsi]
262 mov r13d,r11d
263 mov r14d,edx
264 bswap r12d
265 ror r13d,14
266 mov edi,eax
267
268 xor r13d,r11d
269 ror r14d,9
270 xor edi,ebx
271
272 mov DWORD PTR[20+rsp],r12d
273 xor r14d,edx
274 and edi,r11d
275
276 ror r13d,5
277 add r12d,ecx
278 xor edi,ebx
279
280 ror r14d,11
281 xor r13d,r11d
282 add r12d,edi
283
284 mov edi,edx
285 add r12d,DWORD PTR[rbp]
286 xor r14d,edx
287
288 xor edi,r8d
289 ror r13d,6
290 mov ecx,r8d
291
292 and r15d,edi
293 ror r14d,2
294 add r12d,r13d
295
296 xor ecx,r15d
297 add r10d,r12d
298 add ecx,r12d
299
300 lea rbp,QWORD PTR[4+rbp]
301 add ecx,r14d
302 mov r12d,DWORD PTR[24+rsi]
303 mov r13d,r10d
304 mov r14d,ecx
305 bswap r12d
306 ror r13d,14
307 mov r15d,r11d
308
309 xor r13d,r10d
310 ror r14d,9
311 xor r15d,eax
312
313 mov DWORD PTR[24+rsp],r12d
314 xor r14d,ecx
315 and r15d,r10d
316
317 ror r13d,5
318 add r12d,ebx
319 xor r15d,eax
320
321 ror r14d,11
322 xor r13d,r10d
323 add r12d,r15d
324
325 mov r15d,ecx
326 add r12d,DWORD PTR[rbp]
327 xor r14d,ecx
328
329 xor r15d,edx
330 ror r13d,6
331 mov ebx,edx
332
333 and edi,r15d
334 ror r14d,2
335 add r12d,r13d
336
337 xor ebx,edi
338 add r9d,r12d
339 add ebx,r12d
340
341 lea rbp,QWORD PTR[4+rbp]
342 add ebx,r14d
343 mov r12d,DWORD PTR[28+rsi]
344 mov r13d,r9d
345 mov r14d,ebx
346 bswap r12d
347 ror r13d,14
348 mov edi,r10d
349
350 xor r13d,r9d
351 ror r14d,9
352 xor edi,r11d
353
354 mov DWORD PTR[28+rsp],r12d
355 xor r14d,ebx
356 and edi,r9d
357
358 ror r13d,5
359 add r12d,eax
360 xor edi,r11d
361
362 ror r14d,11
363 xor r13d,r9d
364 add r12d,edi
365
366 mov edi,ebx
367 add r12d,DWORD PTR[rbp]
368 xor r14d,ebx
369
370 xor edi,ecx
371 ror r13d,6
372 mov eax,ecx
373
374 and r15d,edi
375 ror r14d,2
376 add r12d,r13d
377
378 xor eax,r15d
379 add r8d,r12d
380 add eax,r12d
381
382 lea rbp,QWORD PTR[20+rbp]
383 add eax,r14d
384 mov r12d,DWORD PTR[32+rsi]
385 mov r13d,r8d
386 mov r14d,eax
387 bswap r12d
388 ror r13d,14
389 mov r15d,r9d
390
391 xor r13d,r8d
392 ror r14d,9
393 xor r15d,r10d
394
395 mov DWORD PTR[32+rsp],r12d
396 xor r14d,eax
397 and r15d,r8d
398
399 ror r13d,5
400 add r12d,r11d
401 xor r15d,r10d
402
403 ror r14d,11
404 xor r13d,r8d
405 add r12d,r15d
406
407 mov r15d,eax
408 add r12d,DWORD PTR[rbp]
409 xor r14d,eax
410
411 xor r15d,ebx
412 ror r13d,6
413 mov r11d,ebx
414
415 and edi,r15d
416 ror r14d,2
417 add r12d,r13d
418
419 xor r11d,edi
420 add edx,r12d
421 add r11d,r12d
422
423 lea rbp,QWORD PTR[4+rbp]
424 add r11d,r14d
425 mov r12d,DWORD PTR[36+rsi]
426 mov r13d,edx
427 mov r14d,r11d
428 bswap r12d
429 ror r13d,14
430 mov edi,r8d
431
432 xor r13d,edx
433 ror r14d,9
434 xor edi,r9d
435
436 mov DWORD PTR[36+rsp],r12d
437 xor r14d,r11d
438 and edi,edx
439
440 ror r13d,5
441 add r12d,r10d
442 xor edi,r9d
443
444 ror r14d,11
445 xor r13d,edx
446 add r12d,edi
447
448 mov edi,r11d
449 add r12d,DWORD PTR[rbp]
450 xor r14d,r11d
451
452 xor edi,eax
453 ror r13d,6
454 mov r10d,eax
455
456 and r15d,edi
457 ror r14d,2
458 add r12d,r13d
459
460 xor r10d,r15d
461 add ecx,r12d
462 add r10d,r12d
463
464 lea rbp,QWORD PTR[4+rbp]
465 add r10d,r14d
466 mov r12d,DWORD PTR[40+rsi]
467 mov r13d,ecx
468 mov r14d,r10d
469 bswap r12d
470 ror r13d,14
471 mov r15d,edx
472
473 xor r13d,ecx
474 ror r14d,9
475 xor r15d,r8d
476
477 mov DWORD PTR[40+rsp],r12d
478 xor r14d,r10d
479 and r15d,ecx
480
481 ror r13d,5
482 add r12d,r9d
483 xor r15d,r8d
484
485 ror r14d,11
486 xor r13d,ecx
487 add r12d,r15d
488
489 mov r15d,r10d
490 add r12d,DWORD PTR[rbp]
491 xor r14d,r10d
492
493 xor r15d,r11d
494 ror r13d,6
495 mov r9d,r11d
496
497 and edi,r15d
498 ror r14d,2
499 add r12d,r13d
500
501 xor r9d,edi
502 add ebx,r12d
503 add r9d,r12d
504
505 lea rbp,QWORD PTR[4+rbp]
506 add r9d,r14d
507 mov r12d,DWORD PTR[44+rsi]
508 mov r13d,ebx
509 mov r14d,r9d
510 bswap r12d
511 ror r13d,14
512 mov edi,ecx
513
514 xor r13d,ebx
515 ror r14d,9
516 xor edi,edx
517
518 mov DWORD PTR[44+rsp],r12d
519 xor r14d,r9d
520 and edi,ebx
521
522 ror r13d,5
523 add r12d,r8d
524 xor edi,edx
525
526 ror r14d,11
527 xor r13d,ebx
528 add r12d,edi
529
530 mov edi,r9d
531 add r12d,DWORD PTR[rbp]
532 xor r14d,r9d
533
534 xor edi,r10d
535 ror r13d,6
536 mov r8d,r10d
537
538 and r15d,edi
539 ror r14d,2
540 add r12d,r13d
541
542 xor r8d,r15d
543 add eax,r12d
544 add r8d,r12d
545
546 lea rbp,QWORD PTR[20+rbp]
547 add r8d,r14d
548 mov r12d,DWORD PTR[48+rsi]
549 mov r13d,eax
550 mov r14d,r8d
551 bswap r12d
552 ror r13d,14
553 mov r15d,ebx
554
555 xor r13d,eax
556 ror r14d,9
557 xor r15d,ecx
558
559 mov DWORD PTR[48+rsp],r12d
560 xor r14d,r8d
561 and r15d,eax
562
563 ror r13d,5
564 add r12d,edx
565 xor r15d,ecx
566
567 ror r14d,11
568 xor r13d,eax
569 add r12d,r15d
570
571 mov r15d,r8d
572 add r12d,DWORD PTR[rbp]
573 xor r14d,r8d
574
575 xor r15d,r9d
576 ror r13d,6
577 mov edx,r9d
578
579 and edi,r15d
580 ror r14d,2
581 add r12d,r13d
582
583 xor edx,edi
584 add r11d,r12d
585 add edx,r12d
586
587 lea rbp,QWORD PTR[4+rbp]
588 add edx,r14d
589 mov r12d,DWORD PTR[52+rsi]
590 mov r13d,r11d
591 mov r14d,edx
592 bswap r12d
593 ror r13d,14
594 mov edi,eax
595
596 xor r13d,r11d
597 ror r14d,9
598 xor edi,ebx
599
600 mov DWORD PTR[52+rsp],r12d
601 xor r14d,edx
602 and edi,r11d
603
604 ror r13d,5
605 add r12d,ecx
606 xor edi,ebx
607
608 ror r14d,11
609 xor r13d,r11d
610 add r12d,edi
611
612 mov edi,edx
613 add r12d,DWORD PTR[rbp]
614 xor r14d,edx
615
616 xor edi,r8d
617 ror r13d,6
618 mov ecx,r8d
619
620 and r15d,edi
621 ror r14d,2
622 add r12d,r13d
623
624 xor ecx,r15d
625 add r10d,r12d
626 add ecx,r12d
627
628 lea rbp,QWORD PTR[4+rbp]
629 add ecx,r14d
630 mov r12d,DWORD PTR[56+rsi]
631 mov r13d,r10d
632 mov r14d,ecx
633 bswap r12d
634 ror r13d,14
635 mov r15d,r11d
636
637 xor r13d,r10d
638 ror r14d,9
639 xor r15d,eax
640
641 mov DWORD PTR[56+rsp],r12d
642 xor r14d,ecx
643 and r15d,r10d
644
645 ror r13d,5
646 add r12d,ebx
647 xor r15d,eax
648
649 ror r14d,11
650 xor r13d,r10d
651 add r12d,r15d
652
653 mov r15d,ecx
654 add r12d,DWORD PTR[rbp]
655 xor r14d,ecx
656
657 xor r15d,edx
658 ror r13d,6
659 mov ebx,edx
660
661 and edi,r15d
662 ror r14d,2
663 add r12d,r13d
664
665 xor ebx,edi
666 add r9d,r12d
667 add ebx,r12d
668
669 lea rbp,QWORD PTR[4+rbp]
670 add ebx,r14d
671 mov r12d,DWORD PTR[60+rsi]
672 mov r13d,r9d
673 mov r14d,ebx
674 bswap r12d
675 ror r13d,14
676 mov edi,r10d
677
678 xor r13d,r9d
679 ror r14d,9
680 xor edi,r11d
681
682 mov DWORD PTR[60+rsp],r12d
683 xor r14d,ebx
684 and edi,r9d
685
686 ror r13d,5
687 add r12d,eax
688 xor edi,r11d
689
690 ror r14d,11
691 xor r13d,r9d
692 add r12d,edi
693
694 mov edi,ebx
695 add r12d,DWORD PTR[rbp]
696 xor r14d,ebx
697
698 xor edi,ecx
699 ror r13d,6
700 mov eax,ecx
701
702 and r15d,edi
703 ror r14d,2
704 add r12d,r13d
705
706 xor eax,r15d
707 add r8d,r12d
708 add eax,r12d
709
710 lea rbp,QWORD PTR[20+rbp]
711 jmp $L$rounds_16_xx
712 ALIGN 16
713 $L$rounds_16_xx::
714 mov r13d,DWORD PTR[4+rsp]
715 mov r15d,DWORD PTR[56+rsp]
716
717 mov r12d,r13d
718 ror r13d,11
719 add eax,r14d
720 mov r14d,r15d
721 ror r15d,2
722
723 xor r13d,r12d
724 shr r12d,3
725 ror r13d,7
726 xor r15d,r14d
727 shr r14d,10
728
729 ror r15d,17
730 xor r12d,r13d
731 xor r15d,r14d
732 add r12d,DWORD PTR[36+rsp]
733
734 add r12d,DWORD PTR[rsp]
735 mov r13d,r8d
736 add r12d,r15d
737 mov r14d,eax
738 ror r13d,14
739 mov r15d,r9d
740
741 xor r13d,r8d
742 ror r14d,9
743 xor r15d,r10d
744
745 mov DWORD PTR[rsp],r12d
746 xor r14d,eax
747 and r15d,r8d
748
749 ror r13d,5
750 add r12d,r11d
751 xor r15d,r10d
752
753 ror r14d,11
754 xor r13d,r8d
755 add r12d,r15d
756
757 mov r15d,eax
758 add r12d,DWORD PTR[rbp]
759 xor r14d,eax
760
761 xor r15d,ebx
762 ror r13d,6
763 mov r11d,ebx
764
765 and edi,r15d
766 ror r14d,2
767 add r12d,r13d
768
769 xor r11d,edi
770 add edx,r12d
771 add r11d,r12d
772
773 lea rbp,QWORD PTR[4+rbp]
774 mov r13d,DWORD PTR[8+rsp]
775 mov edi,DWORD PTR[60+rsp]
776
777 mov r12d,r13d
778 ror r13d,11
779 add r11d,r14d
780 mov r14d,edi
781 ror edi,2
782
783 xor r13d,r12d
784 shr r12d,3
785 ror r13d,7
786 xor edi,r14d
787 shr r14d,10
788
789 ror edi,17
790 xor r12d,r13d
791 xor edi,r14d
792 add r12d,DWORD PTR[40+rsp]
793
794 add r12d,DWORD PTR[4+rsp]
795 mov r13d,edx
796 add r12d,edi
797 mov r14d,r11d
798 ror r13d,14
799 mov edi,r8d
800
801 xor r13d,edx
802 ror r14d,9
803 xor edi,r9d
804
805 mov DWORD PTR[4+rsp],r12d
806 xor r14d,r11d
807 and edi,edx
808
809 ror r13d,5
810 add r12d,r10d
811 xor edi,r9d
812
813 ror r14d,11
814 xor r13d,edx
815 add r12d,edi
816
817 mov edi,r11d
818 add r12d,DWORD PTR[rbp]
819 xor r14d,r11d
820
821 xor edi,eax
822 ror r13d,6
823 mov r10d,eax
824
825 and r15d,edi
826 ror r14d,2
827 add r12d,r13d
828
829 xor r10d,r15d
830 add ecx,r12d
831 add r10d,r12d
832
833 lea rbp,QWORD PTR[4+rbp]
834 mov r13d,DWORD PTR[12+rsp]
835 mov r15d,DWORD PTR[rsp]
836
837 mov r12d,r13d
838 ror r13d,11
839 add r10d,r14d
840 mov r14d,r15d
841 ror r15d,2
842
843 xor r13d,r12d
844 shr r12d,3
845 ror r13d,7
846 xor r15d,r14d
847 shr r14d,10
848
849 ror r15d,17
850 xor r12d,r13d
851 xor r15d,r14d
852 add r12d,DWORD PTR[44+rsp]
853
854 add r12d,DWORD PTR[8+rsp]
855 mov r13d,ecx
856 add r12d,r15d
857 mov r14d,r10d
858 ror r13d,14
859 mov r15d,edx
860
861 xor r13d,ecx
862 ror r14d,9
863 xor r15d,r8d
864
865 mov DWORD PTR[8+rsp],r12d
866 xor r14d,r10d
867 and r15d,ecx
868
869 ror r13d,5
870 add r12d,r9d
871 xor r15d,r8d
872
873 ror r14d,11
874 xor r13d,ecx
875 add r12d,r15d
876
877 mov r15d,r10d
878 add r12d,DWORD PTR[rbp]
879 xor r14d,r10d
880
881 xor r15d,r11d
882 ror r13d,6
883 mov r9d,r11d
884
885 and edi,r15d
886 ror r14d,2
887 add r12d,r13d
888
889 xor r9d,edi
890 add ebx,r12d
891 add r9d,r12d
892
893 lea rbp,QWORD PTR[4+rbp]
894 mov r13d,DWORD PTR[16+rsp]
895 mov edi,DWORD PTR[4+rsp]
896
897 mov r12d,r13d
898 ror r13d,11
899 add r9d,r14d
900 mov r14d,edi
901 ror edi,2
902
903 xor r13d,r12d
904 shr r12d,3
905 ror r13d,7
906 xor edi,r14d
907 shr r14d,10
908
909 ror edi,17
910 xor r12d,r13d
911 xor edi,r14d
912 add r12d,DWORD PTR[48+rsp]
913
914 add r12d,DWORD PTR[12+rsp]
915 mov r13d,ebx
916 add r12d,edi
917 mov r14d,r9d
918 ror r13d,14
919 mov edi,ecx
920
921 xor r13d,ebx
922 ror r14d,9
923 xor edi,edx
924
925 mov DWORD PTR[12+rsp],r12d
926 xor r14d,r9d
927 and edi,ebx
928
929 ror r13d,5
930 add r12d,r8d
931 xor edi,edx
932
933 ror r14d,11
934 xor r13d,ebx
935 add r12d,edi
936
937 mov edi,r9d
938 add r12d,DWORD PTR[rbp]
939 xor r14d,r9d
940
941 xor edi,r10d
942 ror r13d,6
943 mov r8d,r10d
944
945 and r15d,edi
946 ror r14d,2
947 add r12d,r13d
948
949 xor r8d,r15d
950 add eax,r12d
951 add r8d,r12d
952
953 lea rbp,QWORD PTR[20+rbp]
954 mov r13d,DWORD PTR[20+rsp]
955 mov r15d,DWORD PTR[8+rsp]
956
957 mov r12d,r13d
958 ror r13d,11
959 add r8d,r14d
960 mov r14d,r15d
961 ror r15d,2
962
963 xor r13d,r12d
964 shr r12d,3
965 ror r13d,7
966 xor r15d,r14d
967 shr r14d,10
968
969 ror r15d,17
970 xor r12d,r13d
971 xor r15d,r14d
972 add r12d,DWORD PTR[52+rsp]
973
974 add r12d,DWORD PTR[16+rsp]
975 mov r13d,eax
976 add r12d,r15d
977 mov r14d,r8d
978 ror r13d,14
979 mov r15d,ebx
980
981 xor r13d,eax
982 ror r14d,9
983 xor r15d,ecx
984
985 mov DWORD PTR[16+rsp],r12d
986 xor r14d,r8d
987 and r15d,eax
988
989 ror r13d,5
990 add r12d,edx
991 xor r15d,ecx
992
993 ror r14d,11
994 xor r13d,eax
995 add r12d,r15d
996
997 mov r15d,r8d
998 add r12d,DWORD PTR[rbp]
999 xor r14d,r8d
1000
1001 xor r15d,r9d
1002 ror r13d,6
1003 mov edx,r9d
1004
1005 and edi,r15d
1006 ror r14d,2
1007 add r12d,r13d
1008
1009 xor edx,edi
1010 add r11d,r12d
1011 add edx,r12d
1012
1013 lea rbp,QWORD PTR[4+rbp]
1014 mov r13d,DWORD PTR[24+rsp]
1015 mov edi,DWORD PTR[12+rsp]
1016
1017 mov r12d,r13d
1018 ror r13d,11
1019 add edx,r14d
1020 mov r14d,edi
1021 ror edi,2
1022
1023 xor r13d,r12d
1024 shr r12d,3
1025 ror r13d,7
1026 xor edi,r14d
1027 shr r14d,10
1028
1029 ror edi,17
1030 xor r12d,r13d
1031 xor edi,r14d
1032 add r12d,DWORD PTR[56+rsp]
1033
1034 add r12d,DWORD PTR[20+rsp]
1035 mov r13d,r11d
1036 add r12d,edi
1037 mov r14d,edx
1038 ror r13d,14
1039 mov edi,eax
1040
1041 xor r13d,r11d
1042 ror r14d,9
1043 xor edi,ebx
1044
1045 mov DWORD PTR[20+rsp],r12d
1046 xor r14d,edx
1047 and edi,r11d
1048
1049 ror r13d,5
1050 add r12d,ecx
1051 xor edi,ebx
1052
1053 ror r14d,11
1054 xor r13d,r11d
1055 add r12d,edi
1056
1057 mov edi,edx
1058 add r12d,DWORD PTR[rbp]
1059 xor r14d,edx
1060
1061 xor edi,r8d
1062 ror r13d,6
1063 mov ecx,r8d
1064
1065 and r15d,edi
1066 ror r14d,2
1067 add r12d,r13d
1068
1069 xor ecx,r15d
1070 add r10d,r12d
1071 add ecx,r12d
1072
1073 lea rbp,QWORD PTR[4+rbp]
1074 mov r13d,DWORD PTR[28+rsp]
1075 mov r15d,DWORD PTR[16+rsp]
1076
1077 mov r12d,r13d
1078 ror r13d,11
1079 add ecx,r14d
1080 mov r14d,r15d
1081 ror r15d,2
1082
1083 xor r13d,r12d
1084 shr r12d,3
1085 ror r13d,7
1086 xor r15d,r14d
1087 shr r14d,10
1088
1089 ror r15d,17
1090 xor r12d,r13d
1091 xor r15d,r14d
1092 add r12d,DWORD PTR[60+rsp]
1093
1094 add r12d,DWORD PTR[24+rsp]
1095 mov r13d,r10d
1096 add r12d,r15d
1097 mov r14d,ecx
1098 ror r13d,14
1099 mov r15d,r11d
1100
1101 xor r13d,r10d
1102 ror r14d,9
1103 xor r15d,eax
1104
1105 mov DWORD PTR[24+rsp],r12d
1106 xor r14d,ecx
1107 and r15d,r10d
1108
1109 ror r13d,5
1110 add r12d,ebx
1111 xor r15d,eax
1112
1113 ror r14d,11
1114 xor r13d,r10d
1115 add r12d,r15d
1116
1117 mov r15d,ecx
1118 add r12d,DWORD PTR[rbp]
1119 xor r14d,ecx
1120
1121 xor r15d,edx
1122 ror r13d,6
1123 mov ebx,edx
1124
1125 and edi,r15d
1126 ror r14d,2
1127 add r12d,r13d
1128
1129 xor ebx,edi
1130 add r9d,r12d
1131 add ebx,r12d
1132
1133 lea rbp,QWORD PTR[4+rbp]
1134 mov r13d,DWORD PTR[32+rsp]
1135 mov edi,DWORD PTR[20+rsp]
1136
1137 mov r12d,r13d
1138 ror r13d,11
1139 add ebx,r14d
1140 mov r14d,edi
1141 ror edi,2
1142
1143 xor r13d,r12d
1144 shr r12d,3
1145 ror r13d,7
1146 xor edi,r14d
1147 shr r14d,10
1148
1149 ror edi,17
1150 xor r12d,r13d
1151 xor edi,r14d
1152 add r12d,DWORD PTR[rsp]
1153
1154 add r12d,DWORD PTR[28+rsp]
1155 mov r13d,r9d
1156 add r12d,edi
1157 mov r14d,ebx
1158 ror r13d,14
1159 mov edi,r10d
1160
1161 xor r13d,r9d
1162 ror r14d,9
1163 xor edi,r11d
1164
1165 mov DWORD PTR[28+rsp],r12d
1166 xor r14d,ebx
1167 and edi,r9d
1168
1169 ror r13d,5
1170 add r12d,eax
1171 xor edi,r11d
1172
1173 ror r14d,11
1174 xor r13d,r9d
1175 add r12d,edi
1176
1177 mov edi,ebx
1178 add r12d,DWORD PTR[rbp]
1179 xor r14d,ebx
1180
1181 xor edi,ecx
1182 ror r13d,6
1183 mov eax,ecx
1184
1185 and r15d,edi
1186 ror r14d,2
1187 add r12d,r13d
1188
1189 xor eax,r15d
1190 add r8d,r12d
1191 add eax,r12d
1192
1193 lea rbp,QWORD PTR[20+rbp]
1194 mov r13d,DWORD PTR[36+rsp]
1195 mov r15d,DWORD PTR[24+rsp]
1196
1197 mov r12d,r13d
1198 ror r13d,11
1199 add eax,r14d
1200 mov r14d,r15d
1201 ror r15d,2
1202
1203 xor r13d,r12d
1204 shr r12d,3
1205 ror r13d,7
1206 xor r15d,r14d
1207 shr r14d,10
1208
1209 ror r15d,17
1210 xor r12d,r13d
1211 xor r15d,r14d
1212 add r12d,DWORD PTR[4+rsp]
1213
1214 add r12d,DWORD PTR[32+rsp]
1215 mov r13d,r8d
1216 add r12d,r15d
1217 mov r14d,eax
1218 ror r13d,14
1219 mov r15d,r9d
1220
1221 xor r13d,r8d
1222 ror r14d,9
1223 xor r15d,r10d
1224
1225 mov DWORD PTR[32+rsp],r12d
1226 xor r14d,eax
1227 and r15d,r8d
1228
1229 ror r13d,5
1230 add r12d,r11d
1231 xor r15d,r10d
1232
1233 ror r14d,11
1234 xor r13d,r8d
1235 add r12d,r15d
1236
1237 mov r15d,eax
1238 add r12d,DWORD PTR[rbp]
1239 xor r14d,eax
1240
1241 xor r15d,ebx
1242 ror r13d,6
1243 mov r11d,ebx
1244
1245 and edi,r15d
1246 ror r14d,2
1247 add r12d,r13d
1248
1249 xor r11d,edi
1250 add edx,r12d
1251 add r11d,r12d
1252
1253 lea rbp,QWORD PTR[4+rbp]
1254 mov r13d,DWORD PTR[40+rsp]
1255 mov edi,DWORD PTR[28+rsp]
1256
1257 mov r12d,r13d
1258 ror r13d,11
1259 add r11d,r14d
1260 mov r14d,edi
1261 ror edi,2
1262
1263 xor r13d,r12d
1264 shr r12d,3
1265 ror r13d,7
1266 xor edi,r14d
1267 shr r14d,10
1268
1269 ror edi,17
1270 xor r12d,r13d
1271 xor edi,r14d
1272 add r12d,DWORD PTR[8+rsp]
1273
1274 add r12d,DWORD PTR[36+rsp]
1275 mov r13d,edx
1276 add r12d,edi
1277 mov r14d,r11d
1278 ror r13d,14
1279 mov edi,r8d
1280
1281 xor r13d,edx
1282 ror r14d,9
1283 xor edi,r9d
1284
1285 mov DWORD PTR[36+rsp],r12d
1286 xor r14d,r11d
1287 and edi,edx
1288
1289 ror r13d,5
1290 add r12d,r10d
1291 xor edi,r9d
1292
1293 ror r14d,11
1294 xor r13d,edx
1295 add r12d,edi
1296
1297 mov edi,r11d
1298 add r12d,DWORD PTR[rbp]
1299 xor r14d,r11d
1300
1301 xor edi,eax
1302 ror r13d,6
1303 mov r10d,eax
1304
1305 and r15d,edi
1306 ror r14d,2
1307 add r12d,r13d
1308
1309 xor r10d,r15d
1310 add ecx,r12d
1311 add r10d,r12d
1312
1313 lea rbp,QWORD PTR[4+rbp]
1314 mov r13d,DWORD PTR[44+rsp]
1315 mov r15d,DWORD PTR[32+rsp]
1316
1317 mov r12d,r13d
1318 ror r13d,11
1319 add r10d,r14d
1320 mov r14d,r15d
1321 ror r15d,2
1322
1323 xor r13d,r12d
1324 shr r12d,3
1325 ror r13d,7
1326 xor r15d,r14d
1327 shr r14d,10
1328
1329 ror r15d,17
1330 xor r12d,r13d
1331 xor r15d,r14d
1332 add r12d,DWORD PTR[12+rsp]
1333
1334 add r12d,DWORD PTR[40+rsp]
1335 mov r13d,ecx
1336 add r12d,r15d
1337 mov r14d,r10d
1338 ror r13d,14
1339 mov r15d,edx
1340
1341 xor r13d,ecx
1342 ror r14d,9
1343 xor r15d,r8d
1344
1345 mov DWORD PTR[40+rsp],r12d
1346 xor r14d,r10d
1347 and r15d,ecx
1348
1349 ror r13d,5
1350 add r12d,r9d
1351 xor r15d,r8d
1352
1353 ror r14d,11
1354 xor r13d,ecx
1355 add r12d,r15d
1356
1357 mov r15d,r10d
1358 add r12d,DWORD PTR[rbp]
1359 xor r14d,r10d
1360
1361 xor r15d,r11d
1362 ror r13d,6
1363 mov r9d,r11d
1364
1365 and edi,r15d
1366 ror r14d,2
1367 add r12d,r13d
1368
1369 xor r9d,edi
1370 add ebx,r12d
1371 add r9d,r12d
1372
1373 lea rbp,QWORD PTR[4+rbp]
1374 mov r13d,DWORD PTR[48+rsp]
1375 mov edi,DWORD PTR[36+rsp]
1376
1377 mov r12d,r13d
1378 ror r13d,11
1379 add r9d,r14d
1380 mov r14d,edi
1381 ror edi,2
1382
1383 xor r13d,r12d
1384 shr r12d,3
1385 ror r13d,7
1386 xor edi,r14d
1387 shr r14d,10
1388
1389 ror edi,17
1390 xor r12d,r13d
1391 xor edi,r14d
1392 add r12d,DWORD PTR[16+rsp]
1393
1394 add r12d,DWORD PTR[44+rsp]
1395 mov r13d,ebx
1396 add r12d,edi
1397 mov r14d,r9d
1398 ror r13d,14
1399 mov edi,ecx
1400
1401 xor r13d,ebx
1402 ror r14d,9
1403 xor edi,edx
1404
1405 mov DWORD PTR[44+rsp],r12d
1406 xor r14d,r9d
1407 and edi,ebx
1408
1409 ror r13d,5
1410 add r12d,r8d
1411 xor edi,edx
1412
1413 ror r14d,11
1414 xor r13d,ebx
1415 add r12d,edi
1416
1417 mov edi,r9d
1418 add r12d,DWORD PTR[rbp]
1419 xor r14d,r9d
1420
1421 xor edi,r10d
1422 ror r13d,6
1423 mov r8d,r10d
1424
1425 and r15d,edi
1426 ror r14d,2
1427 add r12d,r13d
1428
1429 xor r8d,r15d
1430 add eax,r12d
1431 add r8d,r12d
1432
1433 lea rbp,QWORD PTR[20+rbp]
1434 mov r13d,DWORD PTR[52+rsp]
1435 mov r15d,DWORD PTR[40+rsp]
1436
1437 mov r12d,r13d
1438 ror r13d,11
1439 add r8d,r14d
1440 mov r14d,r15d
1441 ror r15d,2
1442
1443 xor r13d,r12d
1444 shr r12d,3
1445 ror r13d,7
1446 xor r15d,r14d
1447 shr r14d,10
1448
1449 ror r15d,17
1450 xor r12d,r13d
1451 xor r15d,r14d
1452 add r12d,DWORD PTR[20+rsp]
1453
1454 add r12d,DWORD PTR[48+rsp]
1455 mov r13d,eax
1456 add r12d,r15d
1457 mov r14d,r8d
1458 ror r13d,14
1459 mov r15d,ebx
1460
1461 xor r13d,eax
1462 ror r14d,9
1463 xor r15d,ecx
1464
1465 mov DWORD PTR[48+rsp],r12d
1466 xor r14d,r8d
1467 and r15d,eax
1468
1469 ror r13d,5
1470 add r12d,edx
1471 xor r15d,ecx
1472
1473 ror r14d,11
1474 xor r13d,eax
1475 add r12d,r15d
1476
1477 mov r15d,r8d
1478 add r12d,DWORD PTR[rbp]
1479 xor r14d,r8d
1480
1481 xor r15d,r9d
1482 ror r13d,6
1483 mov edx,r9d
1484
1485 and edi,r15d
1486 ror r14d,2
1487 add r12d,r13d
1488
1489 xor edx,edi
1490 add r11d,r12d
1491 add edx,r12d
1492
1493 lea rbp,QWORD PTR[4+rbp]
1494 mov r13d,DWORD PTR[56+rsp]
1495 mov edi,DWORD PTR[44+rsp]
1496
1497 mov r12d,r13d
1498 ror r13d,11
1499 add edx,r14d
1500 mov r14d,edi
1501 ror edi,2
1502
1503 xor r13d,r12d
1504 shr r12d,3
1505 ror r13d,7
1506 xor edi,r14d
1507 shr r14d,10
1508
1509 ror edi,17
1510 xor r12d,r13d
1511 xor edi,r14d
1512 add r12d,DWORD PTR[24+rsp]
1513
1514 add r12d,DWORD PTR[52+rsp]
1515 mov r13d,r11d
1516 add r12d,edi
1517 mov r14d,edx
1518 ror r13d,14
1519 mov edi,eax
1520
1521 xor r13d,r11d
1522 ror r14d,9
1523 xor edi,ebx
1524
1525 mov DWORD PTR[52+rsp],r12d
1526 xor r14d,edx
1527 and edi,r11d
1528
1529 ror r13d,5
1530 add r12d,ecx
1531 xor edi,ebx
1532
1533 ror r14d,11
1534 xor r13d,r11d
1535 add r12d,edi
1536
1537 mov edi,edx
1538 add r12d,DWORD PTR[rbp]
1539 xor r14d,edx
1540
1541 xor edi,r8d
1542 ror r13d,6
1543 mov ecx,r8d
1544
1545 and r15d,edi
1546 ror r14d,2
1547 add r12d,r13d
1548
1549 xor ecx,r15d
1550 add r10d,r12d
1551 add ecx,r12d
1552
1553 lea rbp,QWORD PTR[4+rbp]
1554 mov r13d,DWORD PTR[60+rsp]
1555 mov r15d,DWORD PTR[48+rsp]
1556
1557 mov r12d,r13d
1558 ror r13d,11
1559 add ecx,r14d
1560 mov r14d,r15d
1561 ror r15d,2
1562
1563 xor r13d,r12d
1564 shr r12d,3
1565 ror r13d,7
1566 xor r15d,r14d
1567 shr r14d,10
1568
1569 ror r15d,17
1570 xor r12d,r13d
1571 xor r15d,r14d
1572 add r12d,DWORD PTR[28+rsp]
1573
1574 add r12d,DWORD PTR[56+rsp]
1575 mov r13d,r10d
1576 add r12d,r15d
1577 mov r14d,ecx
1578 ror r13d,14
1579 mov r15d,r11d
1580
1581 xor r13d,r10d
1582 ror r14d,9
1583 xor r15d,eax
1584
1585 mov DWORD PTR[56+rsp],r12d
1586 xor r14d,ecx
1587 and r15d,r10d
1588
1589 ror r13d,5
1590 add r12d,ebx
1591 xor r15d,eax
1592
1593 ror r14d,11
1594 xor r13d,r10d
1595 add r12d,r15d
1596
1597 mov r15d,ecx
1598 add r12d,DWORD PTR[rbp]
1599 xor r14d,ecx
1600
1601 xor r15d,edx
1602 ror r13d,6
1603 mov ebx,edx
1604
1605 and edi,r15d
1606 ror r14d,2
1607 add r12d,r13d
1608
1609 xor ebx,edi
1610 add r9d,r12d
1611 add ebx,r12d
1612
1613 lea rbp,QWORD PTR[4+rbp]
1614 mov r13d,DWORD PTR[rsp]
1615 mov edi,DWORD PTR[52+rsp]
1616
1617 mov r12d,r13d
1618 ror r13d,11
1619 add ebx,r14d
1620 mov r14d,edi
1621 ror edi,2
1622
1623 xor r13d,r12d
1624 shr r12d,3
1625 ror r13d,7
1626 xor edi,r14d
1627 shr r14d,10
1628
1629 ror edi,17
1630 xor r12d,r13d
1631 xor edi,r14d
1632 add r12d,DWORD PTR[32+rsp]
1633
1634 add r12d,DWORD PTR[60+rsp]
1635 mov r13d,r9d
1636 add r12d,edi
1637 mov r14d,ebx
1638 ror r13d,14
1639 mov edi,r10d
1640
1641 xor r13d,r9d
1642 ror r14d,9
1643 xor edi,r11d
1644
1645 mov DWORD PTR[60+rsp],r12d
1646 xor r14d,ebx
1647 and edi,r9d
1648
1649 ror r13d,5
1650 add r12d,eax
1651 xor edi,r11d
1652
1653 ror r14d,11
1654 xor r13d,r9d
1655 add r12d,edi
1656
1657 mov edi,ebx
1658 add r12d,DWORD PTR[rbp]
1659 xor r14d,ebx
1660
1661 xor edi,ecx
1662 ror r13d,6
1663 mov eax,ecx
1664
1665 and r15d,edi
1666 ror r14d,2
1667 add r12d,r13d
1668
1669 xor eax,r15d
1670 add r8d,r12d
1671 add eax,r12d
1672
1673 lea rbp,QWORD PTR[20+rbp]
1674 cmp BYTE PTR[3+rbp],0
1675 jnz $L$rounds_16_xx
1676
1677 mov rdi,QWORD PTR[((64+0))+rsp]
1678 add eax,r14d
1679 lea rsi,QWORD PTR[64+rsi]
1680
1681 add eax,DWORD PTR[rdi]
1682 add ebx,DWORD PTR[4+rdi]
1683 add ecx,DWORD PTR[8+rdi]
1684 add edx,DWORD PTR[12+rdi]
1685 add r8d,DWORD PTR[16+rdi]
1686 add r9d,DWORD PTR[20+rdi]
1687 add r10d,DWORD PTR[24+rdi]
1688 add r11d,DWORD PTR[28+rdi]
1689
1690 cmp rsi,QWORD PTR[((64+16))+rsp]
1691
1692 mov DWORD PTR[rdi],eax
1693 mov DWORD PTR[4+rdi],ebx
1694 mov DWORD PTR[8+rdi],ecx
1695 mov DWORD PTR[12+rdi],edx
1696 mov DWORD PTR[16+rdi],r8d
1697 mov DWORD PTR[20+rdi],r9d
1698 mov DWORD PTR[24+rdi],r10d
1699 mov DWORD PTR[28+rdi],r11d
1700 jb $L$loop
1701
1702 mov rsi,QWORD PTR[((64+24))+rsp]
1703 mov r15,QWORD PTR[rsi]
1704 mov r14,QWORD PTR[8+rsi]
1705 mov r13,QWORD PTR[16+rsi]
1706 mov r12,QWORD PTR[24+rsi]
1707 mov rbp,QWORD PTR[32+rsi]
1708 mov rbx,QWORD PTR[40+rsi]
1709 lea rsp,QWORD PTR[48+rsi]
1710 $L$epilogue::
1711 mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
1712 mov rsi,QWORD PTR[16+rsp]
1713 DB 0F3h,0C3h ;repret
1714 $L$SEH_end_sha256_block_data_order::
1715 sha256_block_data_order ENDP
1716 ALIGN 64
1717
1718 K256::
1719 DD 0428a2f98h,071374491h,0b5c0fbcfh,0e9b5dba5h
1720 DD 0428a2f98h,071374491h,0b5c0fbcfh,0e9b5dba5h
1721 DD 03956c25bh,059f111f1h,0923f82a4h,0ab1c5ed5h
1722 DD 03956c25bh,059f111f1h,0923f82a4h,0ab1c5ed5h
1723 DD 0d807aa98h,012835b01h,0243185beh,0550c7dc3h
1724 DD 0d807aa98h,012835b01h,0243185beh,0550c7dc3h
1725 DD 072be5d74h,080deb1feh,09bdc06a7h,0c19bf174h
1726 DD 072be5d74h,080deb1feh,09bdc06a7h,0c19bf174h
1727 DD 0e49b69c1h,0efbe4786h,00fc19dc6h,0240ca1cch
1728 DD 0e49b69c1h,0efbe4786h,00fc19dc6h,0240ca1cch
1729 DD 02de92c6fh,04a7484aah,05cb0a9dch,076f988dah
1730 DD 02de92c6fh,04a7484aah,05cb0a9dch,076f988dah
1731 DD 0983e5152h,0a831c66dh,0b00327c8h,0bf597fc7h
1732 DD 0983e5152h,0a831c66dh,0b00327c8h,0bf597fc7h
1733 DD 0c6e00bf3h,0d5a79147h,006ca6351h,014292967h
1734 DD 0c6e00bf3h,0d5a79147h,006ca6351h,014292967h
1735 DD 027b70a85h,02e1b2138h,04d2c6dfch,053380d13h
1736 DD 027b70a85h,02e1b2138h,04d2c6dfch,053380d13h
1737 DD 0650a7354h,0766a0abbh,081c2c92eh,092722c85h
1738 DD 0650a7354h,0766a0abbh,081c2c92eh,092722c85h
1739 DD 0a2bfe8a1h,0a81a664bh,0c24b8b70h,0c76c51a3h
1740 DD 0a2bfe8a1h,0a81a664bh,0c24b8b70h,0c76c51a3h
1741 DD 0d192e819h,0d6990624h,0f40e3585h,0106aa070h
1742 DD 0d192e819h,0d6990624h,0f40e3585h,0106aa070h
1743 DD 019a4c116h,01e376c08h,02748774ch,034b0bcb5h
1744 DD 019a4c116h,01e376c08h,02748774ch,034b0bcb5h
1745 DD 0391c0cb3h,04ed8aa4ah,05b9cca4fh,0682e6ff3h
1746 DD 0391c0cb3h,04ed8aa4ah,05b9cca4fh,0682e6ff3h
1747 DD 0748f82eeh,078a5636fh,084c87814h,08cc70208h
1748 DD 0748f82eeh,078a5636fh,084c87814h,08cc70208h
1749 DD 090befffah,0a4506cebh,0bef9a3f7h,0c67178f2h
1750 DD 090befffah,0a4506cebh,0bef9a3f7h,0c67178f2h
1751
1752 DD 000010203h,004050607h,008090a0bh,00c0d0e0fh
1753 DD 000010203h,004050607h,008090a0bh,00c0d0e0fh
1754 DD 003020100h,00b0a0908h,0ffffffffh,0ffffffffh
1755 DD 003020100h,00b0a0908h,0ffffffffh,0ffffffffh
1756 DD 0ffffffffh,0ffffffffh,003020100h,00b0a0908h
1757 DD 0ffffffffh,0ffffffffh,003020100h,00b0a0908h
1758 DB 83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97
1759 DB 110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54
1760 DB 52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121
1761 DB 32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46
1762 DB 111,114,103,62,0
1763
1764 ALIGN 64
1765 sha256_block_data_order_ssse3 PROC PRIVATE
1766 mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
1767 mov QWORD PTR[16+rsp],rsi
1768 mov rax,rsp
1769 $L$SEH_begin_sha256_block_data_order_ssse3::
1770 mov rdi,rcx
1771 mov rsi,rdx
1772 mov rdx,r8
1773
1774
1775 $L$ssse3_shortcut::
1776 push rbx
1777 push rbp
1778 push r12
1779 push r13
1780 push r14
1781 push r15
1782 mov r11,rsp
1783 shl rdx,4
1784 sub rsp,160
1785 lea rdx,QWORD PTR[rdx*4+rsi]
1786 and rsp,-64
1787 mov QWORD PTR[((64+0))+rsp],rdi
1788 mov QWORD PTR[((64+8))+rsp],rsi
1789 mov QWORD PTR[((64+16))+rsp],rdx
1790 mov QWORD PTR[((64+24))+rsp],r11
1791 movaps XMMWORD PTR[(64+32)+rsp],xmm6
1792 movaps XMMWORD PTR[(64+48)+rsp],xmm7
1793 movaps XMMWORD PTR[(64+64)+rsp],xmm8
1794 movaps XMMWORD PTR[(64+80)+rsp],xmm9
1795 $L$prologue_ssse3::
1796
1797 mov eax,DWORD PTR[rdi]
1798 mov ebx,DWORD PTR[4+rdi]
1799 mov ecx,DWORD PTR[8+rdi]
1800 mov edx,DWORD PTR[12+rdi]
1801 mov r8d,DWORD PTR[16+rdi]
1802 mov r9d,DWORD PTR[20+rdi]
1803 mov r10d,DWORD PTR[24+rdi]
1804 mov r11d,DWORD PTR[28+rdi]
1805
1806
1807 jmp $L$loop_ssse3
1808 ALIGN 16
1809 $L$loop_ssse3::
1810 movdqa xmm7,XMMWORD PTR[((K256+512))]
1811 movdqu xmm0,XMMWORD PTR[rsi]
1812 movdqu xmm1,XMMWORD PTR[16+rsi]
1813 movdqu xmm2,XMMWORD PTR[32+rsi]
1814 DB 102,15,56,0,199
1815 movdqu xmm3,XMMWORD PTR[48+rsi]
1816 lea rbp,QWORD PTR[K256]
1817 DB 102,15,56,0,207
1818 movdqa xmm4,XMMWORD PTR[rbp]
1819 movdqa xmm5,XMMWORD PTR[32+rbp]
1820 DB 102,15,56,0,215
1821 paddd xmm4,xmm0
1822 movdqa xmm6,XMMWORD PTR[64+rbp]
1823 DB 102,15,56,0,223
1824 movdqa xmm7,XMMWORD PTR[96+rbp]
1825 paddd xmm5,xmm1
1826 paddd xmm6,xmm2
1827 paddd xmm7,xmm3
1828 movdqa XMMWORD PTR[rsp],xmm4
1829 mov r14d,eax
1830 movdqa XMMWORD PTR[16+rsp],xmm5
1831 mov edi,ebx
1832 movdqa XMMWORD PTR[32+rsp],xmm6
1833 xor edi,ecx
1834 movdqa XMMWORD PTR[48+rsp],xmm7
1835 mov r13d,r8d
1836 jmp $L$ssse3_00_47
1837
1838 ALIGN 16
1839 $L$ssse3_00_47::
1840 sub rbp,-128
1841 ror r13d,14
1842 movdqa xmm4,xmm1
1843 mov eax,r14d
1844 mov r12d,r9d
1845 movdqa xmm7,xmm3
1846 ror r14d,9
1847 xor r13d,r8d
1848 xor r12d,r10d
1849 ror r13d,5
1850 xor r14d,eax
1851 DB 102,15,58,15,224,4
1852 and r12d,r8d
1853 xor r13d,r8d
1854 DB 102,15,58,15,250,4
1855 add r11d,DWORD PTR[rsp]
1856 mov r15d,eax
1857 xor r12d,r10d
1858 ror r14d,11
1859 movdqa xmm5,xmm4
1860 xor r15d,ebx
1861 add r11d,r12d
1862 movdqa xmm6,xmm4
1863 ror r13d,6
1864 and edi,r15d
1865 psrld xmm4,3
1866 xor r14d,eax
1867 add r11d,r13d
1868 xor edi,ebx
1869 paddd xmm0,xmm7
1870 ror r14d,2
1871 add edx,r11d
1872 psrld xmm6,7
1873 add r11d,edi
1874 mov r13d,edx
1875 pshufd xmm7,xmm3,250
1876 add r14d,r11d
1877 ror r13d,14
1878 pslld xmm5,14
1879 mov r11d,r14d
1880 mov r12d,r8d
1881 pxor xmm4,xmm6
1882 ror r14d,9
1883 xor r13d,edx
1884 xor r12d,r9d
1885 ror r13d,5
1886 psrld xmm6,11
1887 xor r14d,r11d
1888 pxor xmm4,xmm5
1889 and r12d,edx
1890 xor r13d,edx
1891 pslld xmm5,11
1892 add r10d,DWORD PTR[4+rsp]
1893 mov edi,r11d
1894 pxor xmm4,xmm6
1895 xor r12d,r9d
1896 ror r14d,11
1897 movdqa xmm6,xmm7
1898 xor edi,eax
1899 add r10d,r12d
1900 pxor xmm4,xmm5
1901 ror r13d,6
1902 and r15d,edi
1903 xor r14d,r11d
1904 psrld xmm7,10
1905 add r10d,r13d
1906 xor r15d,eax
1907 paddd xmm0,xmm4
1908 ror r14d,2
1909 add ecx,r10d
1910 psrlq xmm6,17
1911 add r10d,r15d
1912 mov r13d,ecx
1913 add r14d,r10d
1914 pxor xmm7,xmm6
1915 ror r13d,14
1916 mov r10d,r14d
1917 mov r12d,edx
1918 ror r14d,9
1919 psrlq xmm6,2
1920 xor r13d,ecx
1921 xor r12d,r8d
1922 pxor xmm7,xmm6
1923 ror r13d,5
1924 xor r14d,r10d
1925 and r12d,ecx
1926 pshufd xmm7,xmm7,128
1927 xor r13d,ecx
1928 add r9d,DWORD PTR[8+rsp]
1929 mov r15d,r10d
1930 psrldq xmm7,8
1931 xor r12d,r8d
1932 ror r14d,11
1933 xor r15d,r11d
1934 add r9d,r12d
1935 ror r13d,6
1936 paddd xmm0,xmm7
1937 and edi,r15d
1938 xor r14d,r10d
1939 add r9d,r13d
1940 pshufd xmm7,xmm0,80
1941 xor edi,r11d
1942 ror r14d,2
1943 add ebx,r9d
1944 movdqa xmm6,xmm7
1945 add r9d,edi
1946 mov r13d,ebx
1947 psrld xmm7,10
1948 add r14d,r9d
1949 ror r13d,14
1950 psrlq xmm6,17
1951 mov r9d,r14d
1952 mov r12d,ecx
1953 pxor xmm7,xmm6
1954 ror r14d,9
1955 xor r13d,ebx
1956 xor r12d,edx
1957 ror r13d,5
1958 xor r14d,r9d
1959 psrlq xmm6,2
1960 and r12d,ebx
1961 xor r13d,ebx
1962 add r8d,DWORD PTR[12+rsp]
1963 pxor xmm7,xmm6
1964 mov edi,r9d
1965 xor r12d,edx
1966 ror r14d,11
1967 pshufd xmm7,xmm7,8
1968 xor edi,r10d
1969 add r8d,r12d
1970 movdqa xmm6,XMMWORD PTR[rbp]
1971 ror r13d,6
1972 and r15d,edi
1973 pslldq xmm7,8
1974 xor r14d,r9d
1975 add r8d,r13d
1976 xor r15d,r10d
1977 paddd xmm0,xmm7
1978 ror r14d,2
1979 add eax,r8d
1980 add r8d,r15d
1981 paddd xmm6,xmm0
1982 mov r13d,eax
1983 add r14d,r8d
1984 movdqa XMMWORD PTR[rsp],xmm6
1985 ror r13d,14
1986 movdqa xmm4,xmm2
1987 mov r8d,r14d
1988 mov r12d,ebx
1989 movdqa xmm7,xmm0
1990 ror r14d,9
1991 xor r13d,eax
1992 xor r12d,ecx
1993 ror r13d,5
1994 xor r14d,r8d
1995 DB 102,15,58,15,225,4
1996 and r12d,eax
1997 xor r13d,eax
1998 DB 102,15,58,15,251,4
1999 add edx,DWORD PTR[16+rsp]
2000 mov r15d,r8d
2001 xor r12d,ecx
2002 ror r14d,11
2003 movdqa xmm5,xmm4
2004 xor r15d,r9d
2005 add edx,r12d
2006 movdqa xmm6,xmm4
2007 ror r13d,6
2008 and edi,r15d
2009 psrld xmm4,3
2010 xor r14d,r8d
2011 add edx,r13d
2012 xor edi,r9d
2013 paddd xmm1,xmm7
2014 ror r14d,2
2015 add r11d,edx
2016 psrld xmm6,7
2017 add edx,edi
2018 mov r13d,r11d
2019 pshufd xmm7,xmm0,250
2020 add r14d,edx
2021 ror r13d,14
2022 pslld xmm5,14
2023 mov edx,r14d
2024 mov r12d,eax
2025 pxor xmm4,xmm6
2026 ror r14d,9
2027 xor r13d,r11d
2028 xor r12d,ebx
2029 ror r13d,5
2030 psrld xmm6,11
2031 xor r14d,edx
2032 pxor xmm4,xmm5
2033 and r12d,r11d
2034 xor r13d,r11d
2035 pslld xmm5,11
2036 add ecx,DWORD PTR[20+rsp]
2037 mov edi,edx
2038 pxor xmm4,xmm6
2039 xor r12d,ebx
2040 ror r14d,11
2041 movdqa xmm6,xmm7
2042 xor edi,r8d
2043 add ecx,r12d
2044 pxor xmm4,xmm5
2045 ror r13d,6
2046 and r15d,edi
2047 xor r14d,edx
2048 psrld xmm7,10
2049 add ecx,r13d
2050 xor r15d,r8d
2051 paddd xmm1,xmm4
2052 ror r14d,2
2053 add r10d,ecx
2054 psrlq xmm6,17
2055 add ecx,r15d
2056 mov r13d,r10d
2057 add r14d,ecx
2058 pxor xmm7,xmm6
2059 ror r13d,14
2060 mov ecx,r14d
2061 mov r12d,r11d
2062 ror r14d,9
2063 psrlq xmm6,2
2064 xor r13d,r10d
2065 xor r12d,eax
2066 pxor xmm7,xmm6
2067 ror r13d,5
2068 xor r14d,ecx
2069 and r12d,r10d
2070 pshufd xmm7,xmm7,128
2071 xor r13d,r10d
2072 add ebx,DWORD PTR[24+rsp]
2073 mov r15d,ecx
2074 psrldq xmm7,8
2075 xor r12d,eax
2076 ror r14d,11
2077 xor r15d,edx
2078 add ebx,r12d
2079 ror r13d,6
2080 paddd xmm1,xmm7
2081 and edi,r15d
2082 xor r14d,ecx
2083 add ebx,r13d
2084 pshufd xmm7,xmm1,80
2085 xor edi,edx
2086 ror r14d,2
2087 add r9d,ebx
2088 movdqa xmm6,xmm7
2089 add ebx,edi
2090 mov r13d,r9d
2091 psrld xmm7,10
2092 add r14d,ebx
2093 ror r13d,14
2094 psrlq xmm6,17
2095 mov ebx,r14d
2096 mov r12d,r10d
2097 pxor xmm7,xmm6
2098 ror r14d,9
2099 xor r13d,r9d
2100 xor r12d,r11d
2101 ror r13d,5
2102 xor r14d,ebx
2103 psrlq xmm6,2
2104 and r12d,r9d
2105 xor r13d,r9d
2106 add eax,DWORD PTR[28+rsp]
2107 pxor xmm7,xmm6
2108 mov edi,ebx
2109 xor r12d,r11d
2110 ror r14d,11
2111 pshufd xmm7,xmm7,8
2112 xor edi,ecx
2113 add eax,r12d
2114 movdqa xmm6,XMMWORD PTR[32+rbp]
2115 ror r13d,6
2116 and r15d,edi
2117 pslldq xmm7,8
2118 xor r14d,ebx
2119 add eax,r13d
2120 xor r15d,ecx
2121 paddd xmm1,xmm7
2122 ror r14d,2
2123 add r8d,eax
2124 add eax,r15d
2125 paddd xmm6,xmm1
2126 mov r13d,r8d
2127 add r14d,eax
2128 movdqa XMMWORD PTR[16+rsp],xmm6
2129 ror r13d,14
2130 movdqa xmm4,xmm3
2131 mov eax,r14d
2132 mov r12d,r9d
2133 movdqa xmm7,xmm1
2134 ror r14d,9
2135 xor r13d,r8d
2136 xor r12d,r10d
2137 ror r13d,5
2138 xor r14d,eax
2139 DB 102,15,58,15,226,4
2140 and r12d,r8d
2141 xor r13d,r8d
2142 DB 102,15,58,15,248,4
2143 add r11d,DWORD PTR[32+rsp]
2144 mov r15d,eax
2145 xor r12d,r10d
2146 ror r14d,11
2147 movdqa xmm5,xmm4
2148 xor r15d,ebx
2149 add r11d,r12d
2150 movdqa xmm6,xmm4
2151 ror r13d,6
2152 and edi,r15d
2153 psrld xmm4,3
2154 xor r14d,eax
2155 add r11d,r13d
2156 xor edi,ebx
2157 paddd xmm2,xmm7
2158 ror r14d,2
2159 add edx,r11d
2160 psrld xmm6,7
2161 add r11d,edi
2162 mov r13d,edx
2163 pshufd xmm7,xmm1,250
2164 add r14d,r11d
2165 ror r13d,14
2166 pslld xmm5,14
2167 mov r11d,r14d
2168 mov r12d,r8d
2169 pxor xmm4,xmm6
2170 ror r14d,9
2171 xor r13d,edx
2172 xor r12d,r9d
2173 ror r13d,5
2174 psrld xmm6,11
2175 xor r14d,r11d
2176 pxor xmm4,xmm5
2177 and r12d,edx
2178 xor r13d,edx
2179 pslld xmm5,11
2180 add r10d,DWORD PTR[36+rsp]
2181 mov edi,r11d
2182 pxor xmm4,xmm6
2183 xor r12d,r9d
2184 ror r14d,11
2185 movdqa xmm6,xmm7
2186 xor edi,eax
2187 add r10d,r12d
2188 pxor xmm4,xmm5
2189 ror r13d,6
2190 and r15d,edi
2191 xor r14d,r11d
2192 psrld xmm7,10
2193 add r10d,r13d
2194 xor r15d,eax
2195 paddd xmm2,xmm4
2196 ror r14d,2
2197 add ecx,r10d
2198 psrlq xmm6,17
2199 add r10d,r15d
2200 mov r13d,ecx
2201 add r14d,r10d
2202 pxor xmm7,xmm6
2203 ror r13d,14
2204 mov r10d,r14d
2205 mov r12d,edx
2206 ror r14d,9
2207 psrlq xmm6,2
2208 xor r13d,ecx
2209 xor r12d,r8d
2210 pxor xmm7,xmm6
2211 ror r13d,5
2212 xor r14d,r10d
2213 and r12d,ecx
2214 pshufd xmm7,xmm7,128
2215 xor r13d,ecx
2216 add r9d,DWORD PTR[40+rsp]
2217 mov r15d,r10d
2218 psrldq xmm7,8
2219 xor r12d,r8d
2220 ror r14d,11
2221 xor r15d,r11d
2222 add r9d,r12d
2223 ror r13d,6
2224 paddd xmm2,xmm7
2225 and edi,r15d
2226 xor r14d,r10d
2227 add r9d,r13d
2228 pshufd xmm7,xmm2,80
2229 xor edi,r11d
2230 ror r14d,2
2231 add ebx,r9d
2232 movdqa xmm6,xmm7
2233 add r9d,edi
2234 mov r13d,ebx
2235 psrld xmm7,10
2236 add r14d,r9d
2237 ror r13d,14
2238 psrlq xmm6,17
2239 mov r9d,r14d
2240 mov r12d,ecx
2241 pxor xmm7,xmm6
2242 ror r14d,9
2243 xor r13d,ebx
2244 xor r12d,edx
2245 ror r13d,5
2246 xor r14d,r9d
2247 psrlq xmm6,2
2248 and r12d,ebx
2249 xor r13d,ebx
2250 add r8d,DWORD PTR[44+rsp]
2251 pxor xmm7,xmm6
2252 mov edi,r9d
2253 xor r12d,edx
2254 ror r14d,11
2255 pshufd xmm7,xmm7,8
2256 xor edi,r10d
2257 add r8d,r12d
2258 movdqa xmm6,XMMWORD PTR[64+rbp]
2259 ror r13d,6
2260 and r15d,edi
2261 pslldq xmm7,8
2262 xor r14d,r9d
2263 add r8d,r13d
2264 xor r15d,r10d
2265 paddd xmm2,xmm7
2266 ror r14d,2
2267 add eax,r8d
2268 add r8d,r15d
2269 paddd xmm6,xmm2
2270 mov r13d,eax
2271 add r14d,r8d
2272 movdqa XMMWORD PTR[32+rsp],xmm6
2273 ror r13d,14
2274 movdqa xmm4,xmm0
2275 mov r8d,r14d
2276 mov r12d,ebx
2277 movdqa xmm7,xmm2
2278 ror r14d,9
2279 xor r13d,eax
2280 xor r12d,ecx
2281 ror r13d,5
2282 xor r14d,r8d
2283 DB 102,15,58,15,227,4
2284 and r12d,eax
2285 xor r13d,eax
2286 DB 102,15,58,15,249,4
2287 add edx,DWORD PTR[48+rsp]
2288 mov r15d,r8d
2289 xor r12d,ecx
2290 ror r14d,11
2291 movdqa xmm5,xmm4
2292 xor r15d,r9d
2293 add edx,r12d
2294 movdqa xmm6,xmm4
2295 ror r13d,6
2296 and edi,r15d
2297 psrld xmm4,3
2298 xor r14d,r8d
2299 add edx,r13d
2300 xor edi,r9d
2301 paddd xmm3,xmm7
2302 ror r14d,2
2303 add r11d,edx
2304 psrld xmm6,7
2305 add edx,edi
2306 mov r13d,r11d
2307 pshufd xmm7,xmm2,250
2308 add r14d,edx
2309 ror r13d,14
2310 pslld xmm5,14
2311 mov edx,r14d
2312 mov r12d,eax
2313 pxor xmm4,xmm6
2314 ror r14d,9
2315 xor r13d,r11d
2316 xor r12d,ebx
2317 ror r13d,5
2318 psrld xmm6,11
2319 xor r14d,edx
2320 pxor xmm4,xmm5
2321 and r12d,r11d
2322 xor r13d,r11d
2323 pslld xmm5,11
2324 add ecx,DWORD PTR[52+rsp]
2325 mov edi,edx
2326 pxor xmm4,xmm6
2327 xor r12d,ebx
2328 ror r14d,11
2329 movdqa xmm6,xmm7
2330 xor edi,r8d
2331 add ecx,r12d
2332 pxor xmm4,xmm5
2333 ror r13d,6
2334 and r15d,edi
2335 xor r14d,edx
2336 psrld xmm7,10
2337 add ecx,r13d
2338 xor r15d,r8d
2339 paddd xmm3,xmm4
2340 ror r14d,2
2341 add r10d,ecx
2342 psrlq xmm6,17
2343 add ecx,r15d
2344 mov r13d,r10d
2345 add r14d,ecx
2346 pxor xmm7,xmm6
2347 ror r13d,14
2348 mov ecx,r14d
2349 mov r12d,r11d
2350 ror r14d,9
2351 psrlq xmm6,2
2352 xor r13d,r10d
2353 xor r12d,eax
2354 pxor xmm7,xmm6
2355 ror r13d,5
2356 xor r14d,ecx
2357 and r12d,r10d
2358 pshufd xmm7,xmm7,128
2359 xor r13d,r10d
2360 add ebx,DWORD PTR[56+rsp]
2361 mov r15d,ecx
2362 psrldq xmm7,8
2363 xor r12d,eax
2364 ror r14d,11
2365 xor r15d,edx
2366 add ebx,r12d
2367 ror r13d,6
2368 paddd xmm3,xmm7
2369 and edi,r15d
2370 xor r14d,ecx
2371 add ebx,r13d
2372 pshufd xmm7,xmm3,80
2373 xor edi,edx
2374 ror r14d,2
2375 add r9d,ebx
2376 movdqa xmm6,xmm7
2377 add ebx,edi
2378 mov r13d,r9d
2379 psrld xmm7,10
2380 add r14d,ebx
2381 ror r13d,14
2382 psrlq xmm6,17
2383 mov ebx,r14d
2384 mov r12d,r10d
2385 pxor xmm7,xmm6
2386 ror r14d,9
2387 xor r13d,r9d
2388 xor r12d,r11d
2389 ror r13d,5
2390 xor r14d,ebx
2391 psrlq xmm6,2
2392 and r12d,r9d
2393 xor r13d,r9d
2394 add eax,DWORD PTR[60+rsp]
2395 pxor xmm7,xmm6
2396 mov edi,ebx
2397 xor r12d,r11d
2398 ror r14d,11
2399 pshufd xmm7,xmm7,8
2400 xor edi,ecx
2401 add eax,r12d
2402 movdqa xmm6,XMMWORD PTR[96+rbp]
2403 ror r13d,6
2404 and r15d,edi
2405 pslldq xmm7,8
2406 xor r14d,ebx
2407 add eax,r13d
2408 xor r15d,ecx
2409 paddd xmm3,xmm7
2410 ror r14d,2
2411 add r8d,eax
2412 add eax,r15d
2413 paddd xmm6,xmm3
2414 mov r13d,r8d
2415 add r14d,eax
2416 movdqa XMMWORD PTR[48+rsp],xmm6
2417 cmp BYTE PTR[131+rbp],0
2418 jne $L$ssse3_00_47
2419 ror r13d,14
2420 mov eax,r14d
2421 mov r12d,r9d
2422 ror r14d,9
2423 xor r13d,r8d
2424 xor r12d,r10d
2425 ror r13d,5
2426 xor r14d,eax
2427 and r12d,r8d
2428 xor r13d,r8d
2429 add r11d,DWORD PTR[rsp]
2430 mov r15d,eax
2431 xor r12d,r10d
2432 ror r14d,11
2433 xor r15d,ebx
2434 add r11d,r12d
2435 ror r13d,6
2436 and edi,r15d
2437 xor r14d,eax
2438 add r11d,r13d
2439 xor edi,ebx
2440 ror r14d,2
2441 add edx,r11d
2442 add r11d,edi
2443 mov r13d,edx
2444 add r14d,r11d
2445 ror r13d,14
2446 mov r11d,r14d
2447 mov r12d,r8d
2448 ror r14d,9
2449 xor r13d,edx
2450 xor r12d,r9d
2451 ror r13d,5
2452 xor r14d,r11d
2453 and r12d,edx
2454 xor r13d,edx
2455 add r10d,DWORD PTR[4+rsp]
2456 mov edi,r11d
2457 xor r12d,r9d
2458 ror r14d,11
2459 xor edi,eax
2460 add r10d,r12d
2461 ror r13d,6
2462 and r15d,edi
2463 xor r14d,r11d
2464 add r10d,r13d
2465 xor r15d,eax
2466 ror r14d,2
2467 add ecx,r10d
2468 add r10d,r15d
2469 mov r13d,ecx
2470 add r14d,r10d
2471 ror r13d,14
2472 mov r10d,r14d
2473 mov r12d,edx
2474 ror r14d,9
2475 xor r13d,ecx
2476 xor r12d,r8d
2477 ror r13d,5
2478 xor r14d,r10d
2479 and r12d,ecx
2480 xor r13d,ecx
2481 add r9d,DWORD PTR[8+rsp]
2482 mov r15d,r10d
2483 xor r12d,r8d
2484 ror r14d,11
2485 xor r15d,r11d
2486 add r9d,r12d
2487 ror r13d,6
2488 and edi,r15d
2489 xor r14d,r10d
2490 add r9d,r13d
2491 xor edi,r11d
2492 ror r14d,2
2493 add ebx,r9d
2494 add r9d,edi
2495 mov r13d,ebx
2496 add r14d,r9d
2497 ror r13d,14
2498 mov r9d,r14d
2499 mov r12d,ecx
2500 ror r14d,9
2501 xor r13d,ebx
2502 xor r12d,edx
2503 ror r13d,5
2504 xor r14d,r9d
2505 and r12d,ebx
2506 xor r13d,ebx
2507 add r8d,DWORD PTR[12+rsp]
2508 mov edi,r9d
2509 xor r12d,edx
2510 ror r14d,11
2511 xor edi,r10d
2512 add r8d,r12d
2513 ror r13d,6
2514 and r15d,edi
2515 xor r14d,r9d
2516 add r8d,r13d
2517 xor r15d,r10d
2518 ror r14d,2
2519 add eax,r8d
2520 add r8d,r15d
2521 mov r13d,eax
2522 add r14d,r8d
2523 ror r13d,14
2524 mov r8d,r14d
2525 mov r12d,ebx
2526 ror r14d,9
2527 xor r13d,eax
2528 xor r12d,ecx
2529 ror r13d,5
2530 xor r14d,r8d
2531 and r12d,eax
2532 xor r13d,eax
2533 add edx,DWORD PTR[16+rsp]
2534 mov r15d,r8d
2535 xor r12d,ecx
2536 ror r14d,11
2537 xor r15d,r9d
2538 add edx,r12d
2539 ror r13d,6
2540 and edi,r15d
2541 xor r14d,r8d
2542 add edx,r13d
2543 xor edi,r9d
2544 ror r14d,2
2545 add r11d,edx
2546 add edx,edi
2547 mov r13d,r11d
2548 add r14d,edx
2549 ror r13d,14
2550 mov edx,r14d
2551 mov r12d,eax
2552 ror r14d,9
2553 xor r13d,r11d
2554 xor r12d,ebx
2555 ror r13d,5
2556 xor r14d,edx
2557 and r12d,r11d
2558 xor r13d,r11d
2559 add ecx,DWORD PTR[20+rsp]
2560 mov edi,edx
2561 xor r12d,ebx
2562 ror r14d,11
2563 xor edi,r8d
2564 add ecx,r12d
2565 ror r13d,6
2566 and r15d,edi
2567 xor r14d,edx
2568 add ecx,r13d
2569 xor r15d,r8d
2570 ror r14d,2
2571 add r10d,ecx
2572 add ecx,r15d
2573 mov r13d,r10d
2574 add r14d,ecx
2575 ror r13d,14
2576 mov ecx,r14d
2577 mov r12d,r11d
2578 ror r14d,9
2579 xor r13d,r10d
2580 xor r12d,eax
2581 ror r13d,5
2582 xor r14d,ecx
2583 and r12d,r10d
2584 xor r13d,r10d
2585 add ebx,DWORD PTR[24+rsp]
2586 mov r15d,ecx
2587 xor r12d,eax
2588 ror r14d,11
2589 xor r15d,edx
2590 add ebx,r12d
2591 ror r13d,6
2592 and edi,r15d
2593 xor r14d,ecx
2594 add ebx,r13d
2595 xor edi,edx
2596 ror r14d,2
2597 add r9d,ebx
2598 add ebx,edi
2599 mov r13d,r9d
2600 add r14d,ebx
2601 ror r13d,14
2602 mov ebx,r14d
2603 mov r12d,r10d
2604 ror r14d,9
2605 xor r13d,r9d
2606 xor r12d,r11d
2607 ror r13d,5
2608 xor r14d,ebx
2609 and r12d,r9d
2610 xor r13d,r9d
2611 add eax,DWORD PTR[28+rsp]
2612 mov edi,ebx
2613 xor r12d,r11d
2614 ror r14d,11
2615 xor edi,ecx
2616 add eax,r12d
2617 ror r13d,6
2618 and r15d,edi
2619 xor r14d,ebx
2620 add eax,r13d
2621 xor r15d,ecx
2622 ror r14d,2
2623 add r8d,eax
2624 add eax,r15d
2625 mov r13d,r8d
2626 add r14d,eax
2627 ror r13d,14
2628 mov eax,r14d
2629 mov r12d,r9d
2630 ror r14d,9
2631 xor r13d,r8d
2632 xor r12d,r10d
2633 ror r13d,5
2634 xor r14d,eax
2635 and r12d,r8d
2636 xor r13d,r8d
2637 add r11d,DWORD PTR[32+rsp]
2638 mov r15d,eax
2639 xor r12d,r10d
2640 ror r14d,11
2641 xor r15d,ebx
2642 add r11d,r12d
2643 ror r13d,6
2644 and edi,r15d
2645 xor r14d,eax
2646 add r11d,r13d
2647 xor edi,ebx
2648 ror r14d,2
2649 add edx,r11d
2650 add r11d,edi
2651 mov r13d,edx
2652 add r14d,r11d
2653 ror r13d,14
2654 mov r11d,r14d
2655 mov r12d,r8d
2656 ror r14d,9
2657 xor r13d,edx
2658 xor r12d,r9d
2659 ror r13d,5
2660 xor r14d,r11d
2661 and r12d,edx
2662 xor r13d,edx
2663 add r10d,DWORD PTR[36+rsp]
2664 mov edi,r11d
2665 xor r12d,r9d
2666 ror r14d,11
2667 xor edi,eax
2668 add r10d,r12d
2669 ror r13d,6
2670 and r15d,edi
2671 xor r14d,r11d
2672 add r10d,r13d
2673 xor r15d,eax
2674 ror r14d,2
2675 add ecx,r10d
2676 add r10d,r15d
2677 mov r13d,ecx
2678 add r14d,r10d
2679 ror r13d,14
2680 mov r10d,r14d
2681 mov r12d,edx
2682 ror r14d,9
2683 xor r13d,ecx
2684 xor r12d,r8d
2685 ror r13d,5
2686 xor r14d,r10d
2687 and r12d,ecx
2688 xor r13d,ecx
2689 add r9d,DWORD PTR[40+rsp]
2690 mov r15d,r10d
2691 xor r12d,r8d
2692 ror r14d,11
2693 xor r15d,r11d
2694 add r9d,r12d
2695 ror r13d,6
2696 and edi,r15d
2697 xor r14d,r10d
2698 add r9d,r13d
2699 xor edi,r11d
2700 ror r14d,2
2701 add ebx,r9d
2702 add r9d,edi
2703 mov r13d,ebx
2704 add r14d,r9d
2705 ror r13d,14
2706 mov r9d,r14d
2707 mov r12d,ecx
2708 ror r14d,9
2709 xor r13d,ebx
2710 xor r12d,edx
2711 ror r13d,5
2712 xor r14d,r9d
2713 and r12d,ebx
2714 xor r13d,ebx
2715 add r8d,DWORD PTR[44+rsp]
2716 mov edi,r9d
2717 xor r12d,edx
2718 ror r14d,11
2719 xor edi,r10d
2720 add r8d,r12d
2721 ror r13d,6
2722 and r15d,edi
2723 xor r14d,r9d
2724 add r8d,r13d
2725 xor r15d,r10d
2726 ror r14d,2
2727 add eax,r8d
2728 add r8d,r15d
2729 mov r13d,eax
2730 add r14d,r8d
2731 ror r13d,14
2732 mov r8d,r14d
2733 mov r12d,ebx
2734 ror r14d,9
2735 xor r13d,eax
2736 xor r12d,ecx
2737 ror r13d,5
2738 xor r14d,r8d
2739 and r12d,eax
2740 xor r13d,eax
2741 add edx,DWORD PTR[48+rsp]
2742 mov r15d,r8d
2743 xor r12d,ecx
2744 ror r14d,11
2745 xor r15d,r9d
2746 add edx,r12d
2747 ror r13d,6
2748 and edi,r15d
2749 xor r14d,r8d
2750 add edx,r13d
2751 xor edi,r9d
2752 ror r14d,2
2753 add r11d,edx
2754 add edx,edi
2755 mov r13d,r11d
2756 add r14d,edx
2757 ror r13d,14
2758 mov edx,r14d
2759 mov r12d,eax
2760 ror r14d,9
2761 xor r13d,r11d
2762 xor r12d,ebx
2763 ror r13d,5
2764 xor r14d,edx
2765 and r12d,r11d
2766 xor r13d,r11d
2767 add ecx,DWORD PTR[52+rsp]
2768 mov edi,edx
2769 xor r12d,ebx
2770 ror r14d,11
2771 xor edi,r8d
2772 add ecx,r12d
2773 ror r13d,6
2774 and r15d,edi
2775 xor r14d,edx
2776 add ecx,r13d
2777 xor r15d,r8d
2778 ror r14d,2
2779 add r10d,ecx
2780 add ecx,r15d
2781 mov r13d,r10d
2782 add r14d,ecx
2783 ror r13d,14
2784 mov ecx,r14d
2785 mov r12d,r11d
2786 ror r14d,9
2787 xor r13d,r10d
2788 xor r12d,eax
2789 ror r13d,5
2790 xor r14d,ecx
2791 and r12d,r10d
2792 xor r13d,r10d
2793 add ebx,DWORD PTR[56+rsp]
2794 mov r15d,ecx
2795 xor r12d,eax
2796 ror r14d,11
2797 xor r15d,edx
2798 add ebx,r12d
2799 ror r13d,6
2800 and edi,r15d
2801 xor r14d,ecx
2802 add ebx,r13d
2803 xor edi,edx
2804 ror r14d,2
2805 add r9d,ebx
2806 add ebx,edi
2807 mov r13d,r9d
2808 add r14d,ebx
2809 ror r13d,14
2810 mov ebx,r14d
2811 mov r12d,r10d
2812 ror r14d,9
2813 xor r13d,r9d
2814 xor r12d,r11d
2815 ror r13d,5
2816 xor r14d,ebx
2817 and r12d,r9d
2818 xor r13d,r9d
2819 add eax,DWORD PTR[60+rsp]
2820 mov edi,ebx
2821 xor r12d,r11d
2822 ror r14d,11
2823 xor edi,ecx
2824 add eax,r12d
2825 ror r13d,6
2826 and r15d,edi
2827 xor r14d,ebx
2828 add eax,r13d
2829 xor r15d,ecx
2830 ror r14d,2
2831 add r8d,eax
2832 add eax,r15d
2833 mov r13d,r8d
2834 add r14d,eax
2835 mov rdi,QWORD PTR[((64+0))+rsp]
2836 mov eax,r14d
2837
2838 add eax,DWORD PTR[rdi]
2839 lea rsi,QWORD PTR[64+rsi]
2840 add ebx,DWORD PTR[4+rdi]
2841 add ecx,DWORD PTR[8+rdi]
2842 add edx,DWORD PTR[12+rdi]
2843 add r8d,DWORD PTR[16+rdi]
2844 add r9d,DWORD PTR[20+rdi]
2845 add r10d,DWORD PTR[24+rdi]
2846 add r11d,DWORD PTR[28+rdi]
2847
2848 cmp rsi,QWORD PTR[((64+16))+rsp]
2849
2850 mov DWORD PTR[rdi],eax
2851 mov DWORD PTR[4+rdi],ebx
2852 mov DWORD PTR[8+rdi],ecx
2853 mov DWORD PTR[12+rdi],edx
2854 mov DWORD PTR[16+rdi],r8d
2855 mov DWORD PTR[20+rdi],r9d
2856 mov DWORD PTR[24+rdi],r10d
2857 mov DWORD PTR[28+rdi],r11d
2858 jb $L$loop_ssse3
2859
2860 mov rsi,QWORD PTR[((64+24))+rsp]
2861 movaps xmm6,XMMWORD PTR[((64+32))+rsp]
2862 movaps xmm7,XMMWORD PTR[((64+48))+rsp]
2863 movaps xmm8,XMMWORD PTR[((64+64))+rsp]
2864 movaps xmm9,XMMWORD PTR[((64+80))+rsp]
2865 mov r15,QWORD PTR[rsi]
2866 mov r14,QWORD PTR[8+rsi]
2867 mov r13,QWORD PTR[16+rsi]
2868 mov r12,QWORD PTR[24+rsi]
2869 mov rbp,QWORD PTR[32+rsi]
2870 mov rbx,QWORD PTR[40+rsi]
2871 lea rsp,QWORD PTR[48+rsi]
2872 $L$epilogue_ssse3::
2873 mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
2874 mov rsi,QWORD PTR[16+rsp]
2875 DB 0F3h,0C3h ;repret
2876 $L$SEH_end_sha256_block_data_order_ssse3::
2877 sha256_block_data_order_ssse3 ENDP
2878 EXTERN __imp_RtlVirtualUnwind:NEAR
2879
2880 ALIGN 16
2881 se_handler PROC PRIVATE
2882 push rsi
2883 push rdi
2884 push rbx
2885 push rbp
2886 push r12
2887 push r13
2888 push r14
2889 push r15
2890 pushfq
2891 sub rsp,64
2892
2893 mov rax,QWORD PTR[120+r8]
2894 mov rbx,QWORD PTR[248+r8]
2895
2896 mov rsi,QWORD PTR[8+r9]
2897 mov r11,QWORD PTR[56+r9]
2898
2899 mov r10d,DWORD PTR[r11]
2900 lea r10,QWORD PTR[r10*1+rsi]
2901 cmp rbx,r10
2902 jb $L$in_prologue
2903
2904 mov rax,QWORD PTR[152+r8]
2905
2906 mov r10d,DWORD PTR[4+r11]
2907 lea r10,QWORD PTR[r10*1+rsi]
2908 cmp rbx,r10
2909 jae $L$in_prologue
2910 mov rsi,rax
2911 mov rax,QWORD PTR[((64+24))+rax]
2912 lea rax,QWORD PTR[48+rax]
2913
2914 mov rbx,QWORD PTR[((-8))+rax]
2915 mov rbp,QWORD PTR[((-16))+rax]
2916 mov r12,QWORD PTR[((-24))+rax]
2917 mov r13,QWORD PTR[((-32))+rax]
2918 mov r14,QWORD PTR[((-40))+rax]
2919 mov r15,QWORD PTR[((-48))+rax]
2920 mov QWORD PTR[144+r8],rbx
2921 mov QWORD PTR[160+r8],rbp
2922 mov QWORD PTR[216+r8],r12
2923 mov QWORD PTR[224+r8],r13
2924 mov QWORD PTR[232+r8],r14
2925 mov QWORD PTR[240+r8],r15
2926
2927 lea r10,QWORD PTR[$L$epilogue]
2928 cmp rbx,r10
2929 jb $L$in_prologue
2930
2931 lea rsi,QWORD PTR[((64+32))+rsi]
2932 lea rdi,QWORD PTR[512+r8]
2933 mov ecx,8
2934 DD 0a548f3fch
2935
2936 $L$in_prologue::
2937 mov rdi,QWORD PTR[8+rax]
2938 mov rsi,QWORD PTR[16+rax]
2939 mov QWORD PTR[152+r8],rax
2940 mov QWORD PTR[168+r8],rsi
2941 mov QWORD PTR[176+r8],rdi
2942
2943 mov rdi,QWORD PTR[40+r9]
2944 mov rsi,r8
2945 mov ecx,154
2946 DD 0a548f3fch
2947
2948 mov rsi,r9
2949 xor rcx,rcx
2950 mov rdx,QWORD PTR[8+rsi]
2951 mov r8,QWORD PTR[rsi]
2952 mov r9,QWORD PTR[16+rsi]
2953 mov r10,QWORD PTR[40+rsi]
2954 lea r11,QWORD PTR[56+rsi]
2955 lea r12,QWORD PTR[24+rsi]
2956 mov QWORD PTR[32+rsp],r10
2957 mov QWORD PTR[40+rsp],r11
2958 mov QWORD PTR[48+rsp],r12
2959 mov QWORD PTR[56+rsp],rcx
2960 call QWORD PTR[__imp_RtlVirtualUnwind]
2961
2962 mov eax,1
2963 add rsp,64
2964 popfq
2965 pop r15
2966 pop r14
2967 pop r13
2968 pop r12
2969 pop rbp
2970 pop rbx
2971 pop rdi
2972 pop rsi
2973 DB 0F3h,0C3h ;repret
2974 se_handler ENDP
2975 .text$ ENDS
2976 .pdata SEGMENT READONLY ALIGN(4)
2977 ALIGN 4
2978 DD imagerel $L$SEH_begin_sha256_block_data_order
2979 DD imagerel $L$SEH_end_sha256_block_data_order
2980 DD imagerel $L$SEH_info_sha256_block_data_order
2981 DD imagerel $L$SEH_begin_sha256_block_data_order_ssse3
2982 DD imagerel $L$SEH_end_sha256_block_data_order_ssse3
2983 DD imagerel $L$SEH_info_sha256_block_data_order_ssse3
2984 .pdata ENDS
2985 .xdata SEGMENT READONLY ALIGN(8)
2986 ALIGN 8
2987 $L$SEH_info_sha256_block_data_order::
2988 DB 9,0,0,0
2989 DD imagerel se_handler
2990 DD imagerel $L$prologue,imagerel $L$epilogue
2991 $L$SEH_info_sha256_block_data_order_ssse3::
2992 DB 9,0,0,0
2993 DD imagerel se_handler
2994 DD imagerel $L$prologue_ssse3,imagerel $L$epilogue_ssse3
2995
2996 .xdata ENDS
2997 END
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698