OLD | NEW |
| (Empty) |
1 default rel | |
2 %define XMMWORD | |
3 %define YMMWORD | |
4 %define ZMMWORD | |
5 section .text code align=64 | |
6 | |
7 | |
8 EXTERN OPENSSL_ia32cap_P | |
9 global sha512_block_data_order | |
10 | |
11 ALIGN 16 | |
12 sha512_block_data_order: | |
13 mov QWORD[8+rsp],rdi ;WIN64 prologue | |
14 mov QWORD[16+rsp],rsi | |
15 mov rax,rsp | |
16 $L$SEH_begin_sha512_block_data_order: | |
17 mov rdi,rcx | |
18 mov rsi,rdx | |
19 mov rdx,r8 | |
20 | |
21 | |
22 lea r11,[OPENSSL_ia32cap_P] | |
23 mov r9d,DWORD[r11] | |
24 mov r10d,DWORD[4+r11] | |
25 mov r11d,DWORD[8+r11] | |
26 test r10d,2048 | |
27 jnz NEAR $L$xop_shortcut | |
28 and r9d,1073741824 | |
29 and r10d,268435968 | |
30 or r10d,r9d | |
31 cmp r10d,1342177792 | |
32 je NEAR $L$avx_shortcut | |
33 push rbx | |
34 push rbp | |
35 push r12 | |
36 push r13 | |
37 push r14 | |
38 push r15 | |
39 mov r11,rsp | |
40 shl rdx,4 | |
41 sub rsp,16*8+4*8 | |
42 lea rdx,[rdx*8+rsi] | |
43 and rsp,-64 | |
44 mov QWORD[((128+0))+rsp],rdi | |
45 mov QWORD[((128+8))+rsp],rsi | |
46 mov QWORD[((128+16))+rsp],rdx | |
47 mov QWORD[((128+24))+rsp],r11 | |
48 $L$prologue: | |
49 | |
50 mov rax,QWORD[rdi] | |
51 mov rbx,QWORD[8+rdi] | |
52 mov rcx,QWORD[16+rdi] | |
53 mov rdx,QWORD[24+rdi] | |
54 mov r8,QWORD[32+rdi] | |
55 mov r9,QWORD[40+rdi] | |
56 mov r10,QWORD[48+rdi] | |
57 mov r11,QWORD[56+rdi] | |
58 jmp NEAR $L$loop | |
59 | |
60 ALIGN 16 | |
61 $L$loop: | |
62 mov rdi,rbx | |
63 lea rbp,[K512] | |
64 xor rdi,rcx | |
65 mov r12,QWORD[rsi] | |
66 mov r13,r8 | |
67 mov r14,rax | |
68 bswap r12 | |
69 ror r13,23 | |
70 mov r15,r9 | |
71 | |
72 xor r13,r8 | |
73 ror r14,5 | |
74 xor r15,r10 | |
75 | |
76 mov QWORD[rsp],r12 | |
77 xor r14,rax | |
78 and r15,r8 | |
79 | |
80 ror r13,4 | |
81 add r12,r11 | |
82 xor r15,r10 | |
83 | |
84 ror r14,6 | |
85 xor r13,r8 | |
86 add r12,r15 | |
87 | |
88 mov r15,rax | |
89 add r12,QWORD[rbp] | |
90 xor r14,rax | |
91 | |
92 xor r15,rbx | |
93 ror r13,14 | |
94 mov r11,rbx | |
95 | |
96 and rdi,r15 | |
97 ror r14,28 | |
98 add r12,r13 | |
99 | |
100 xor r11,rdi | |
101 add rdx,r12 | |
102 add r11,r12 | |
103 | |
104 lea rbp,[8+rbp] | |
105 add r11,r14 | |
106 mov r12,QWORD[8+rsi] | |
107 mov r13,rdx | |
108 mov r14,r11 | |
109 bswap r12 | |
110 ror r13,23 | |
111 mov rdi,r8 | |
112 | |
113 xor r13,rdx | |
114 ror r14,5 | |
115 xor rdi,r9 | |
116 | |
117 mov QWORD[8+rsp],r12 | |
118 xor r14,r11 | |
119 and rdi,rdx | |
120 | |
121 ror r13,4 | |
122 add r12,r10 | |
123 xor rdi,r9 | |
124 | |
125 ror r14,6 | |
126 xor r13,rdx | |
127 add r12,rdi | |
128 | |
129 mov rdi,r11 | |
130 add r12,QWORD[rbp] | |
131 xor r14,r11 | |
132 | |
133 xor rdi,rax | |
134 ror r13,14 | |
135 mov r10,rax | |
136 | |
137 and r15,rdi | |
138 ror r14,28 | |
139 add r12,r13 | |
140 | |
141 xor r10,r15 | |
142 add rcx,r12 | |
143 add r10,r12 | |
144 | |
145 lea rbp,[24+rbp] | |
146 add r10,r14 | |
147 mov r12,QWORD[16+rsi] | |
148 mov r13,rcx | |
149 mov r14,r10 | |
150 bswap r12 | |
151 ror r13,23 | |
152 mov r15,rdx | |
153 | |
154 xor r13,rcx | |
155 ror r14,5 | |
156 xor r15,r8 | |
157 | |
158 mov QWORD[16+rsp],r12 | |
159 xor r14,r10 | |
160 and r15,rcx | |
161 | |
162 ror r13,4 | |
163 add r12,r9 | |
164 xor r15,r8 | |
165 | |
166 ror r14,6 | |
167 xor r13,rcx | |
168 add r12,r15 | |
169 | |
170 mov r15,r10 | |
171 add r12,QWORD[rbp] | |
172 xor r14,r10 | |
173 | |
174 xor r15,r11 | |
175 ror r13,14 | |
176 mov r9,r11 | |
177 | |
178 and rdi,r15 | |
179 ror r14,28 | |
180 add r12,r13 | |
181 | |
182 xor r9,rdi | |
183 add rbx,r12 | |
184 add r9,r12 | |
185 | |
186 lea rbp,[8+rbp] | |
187 add r9,r14 | |
188 mov r12,QWORD[24+rsi] | |
189 mov r13,rbx | |
190 mov r14,r9 | |
191 bswap r12 | |
192 ror r13,23 | |
193 mov rdi,rcx | |
194 | |
195 xor r13,rbx | |
196 ror r14,5 | |
197 xor rdi,rdx | |
198 | |
199 mov QWORD[24+rsp],r12 | |
200 xor r14,r9 | |
201 and rdi,rbx | |
202 | |
203 ror r13,4 | |
204 add r12,r8 | |
205 xor rdi,rdx | |
206 | |
207 ror r14,6 | |
208 xor r13,rbx | |
209 add r12,rdi | |
210 | |
211 mov rdi,r9 | |
212 add r12,QWORD[rbp] | |
213 xor r14,r9 | |
214 | |
215 xor rdi,r10 | |
216 ror r13,14 | |
217 mov r8,r10 | |
218 | |
219 and r15,rdi | |
220 ror r14,28 | |
221 add r12,r13 | |
222 | |
223 xor r8,r15 | |
224 add rax,r12 | |
225 add r8,r12 | |
226 | |
227 lea rbp,[24+rbp] | |
228 add r8,r14 | |
229 mov r12,QWORD[32+rsi] | |
230 mov r13,rax | |
231 mov r14,r8 | |
232 bswap r12 | |
233 ror r13,23 | |
234 mov r15,rbx | |
235 | |
236 xor r13,rax | |
237 ror r14,5 | |
238 xor r15,rcx | |
239 | |
240 mov QWORD[32+rsp],r12 | |
241 xor r14,r8 | |
242 and r15,rax | |
243 | |
244 ror r13,4 | |
245 add r12,rdx | |
246 xor r15,rcx | |
247 | |
248 ror r14,6 | |
249 xor r13,rax | |
250 add r12,r15 | |
251 | |
252 mov r15,r8 | |
253 add r12,QWORD[rbp] | |
254 xor r14,r8 | |
255 | |
256 xor r15,r9 | |
257 ror r13,14 | |
258 mov rdx,r9 | |
259 | |
260 and rdi,r15 | |
261 ror r14,28 | |
262 add r12,r13 | |
263 | |
264 xor rdx,rdi | |
265 add r11,r12 | |
266 add rdx,r12 | |
267 | |
268 lea rbp,[8+rbp] | |
269 add rdx,r14 | |
270 mov r12,QWORD[40+rsi] | |
271 mov r13,r11 | |
272 mov r14,rdx | |
273 bswap r12 | |
274 ror r13,23 | |
275 mov rdi,rax | |
276 | |
277 xor r13,r11 | |
278 ror r14,5 | |
279 xor rdi,rbx | |
280 | |
281 mov QWORD[40+rsp],r12 | |
282 xor r14,rdx | |
283 and rdi,r11 | |
284 | |
285 ror r13,4 | |
286 add r12,rcx | |
287 xor rdi,rbx | |
288 | |
289 ror r14,6 | |
290 xor r13,r11 | |
291 add r12,rdi | |
292 | |
293 mov rdi,rdx | |
294 add r12,QWORD[rbp] | |
295 xor r14,rdx | |
296 | |
297 xor rdi,r8 | |
298 ror r13,14 | |
299 mov rcx,r8 | |
300 | |
301 and r15,rdi | |
302 ror r14,28 | |
303 add r12,r13 | |
304 | |
305 xor rcx,r15 | |
306 add r10,r12 | |
307 add rcx,r12 | |
308 | |
309 lea rbp,[24+rbp] | |
310 add rcx,r14 | |
311 mov r12,QWORD[48+rsi] | |
312 mov r13,r10 | |
313 mov r14,rcx | |
314 bswap r12 | |
315 ror r13,23 | |
316 mov r15,r11 | |
317 | |
318 xor r13,r10 | |
319 ror r14,5 | |
320 xor r15,rax | |
321 | |
322 mov QWORD[48+rsp],r12 | |
323 xor r14,rcx | |
324 and r15,r10 | |
325 | |
326 ror r13,4 | |
327 add r12,rbx | |
328 xor r15,rax | |
329 | |
330 ror r14,6 | |
331 xor r13,r10 | |
332 add r12,r15 | |
333 | |
334 mov r15,rcx | |
335 add r12,QWORD[rbp] | |
336 xor r14,rcx | |
337 | |
338 xor r15,rdx | |
339 ror r13,14 | |
340 mov rbx,rdx | |
341 | |
342 and rdi,r15 | |
343 ror r14,28 | |
344 add r12,r13 | |
345 | |
346 xor rbx,rdi | |
347 add r9,r12 | |
348 add rbx,r12 | |
349 | |
350 lea rbp,[8+rbp] | |
351 add rbx,r14 | |
352 mov r12,QWORD[56+rsi] | |
353 mov r13,r9 | |
354 mov r14,rbx | |
355 bswap r12 | |
356 ror r13,23 | |
357 mov rdi,r10 | |
358 | |
359 xor r13,r9 | |
360 ror r14,5 | |
361 xor rdi,r11 | |
362 | |
363 mov QWORD[56+rsp],r12 | |
364 xor r14,rbx | |
365 and rdi,r9 | |
366 | |
367 ror r13,4 | |
368 add r12,rax | |
369 xor rdi,r11 | |
370 | |
371 ror r14,6 | |
372 xor r13,r9 | |
373 add r12,rdi | |
374 | |
375 mov rdi,rbx | |
376 add r12,QWORD[rbp] | |
377 xor r14,rbx | |
378 | |
379 xor rdi,rcx | |
380 ror r13,14 | |
381 mov rax,rcx | |
382 | |
383 and r15,rdi | |
384 ror r14,28 | |
385 add r12,r13 | |
386 | |
387 xor rax,r15 | |
388 add r8,r12 | |
389 add rax,r12 | |
390 | |
391 lea rbp,[24+rbp] | |
392 add rax,r14 | |
393 mov r12,QWORD[64+rsi] | |
394 mov r13,r8 | |
395 mov r14,rax | |
396 bswap r12 | |
397 ror r13,23 | |
398 mov r15,r9 | |
399 | |
400 xor r13,r8 | |
401 ror r14,5 | |
402 xor r15,r10 | |
403 | |
404 mov QWORD[64+rsp],r12 | |
405 xor r14,rax | |
406 and r15,r8 | |
407 | |
408 ror r13,4 | |
409 add r12,r11 | |
410 xor r15,r10 | |
411 | |
412 ror r14,6 | |
413 xor r13,r8 | |
414 add r12,r15 | |
415 | |
416 mov r15,rax | |
417 add r12,QWORD[rbp] | |
418 xor r14,rax | |
419 | |
420 xor r15,rbx | |
421 ror r13,14 | |
422 mov r11,rbx | |
423 | |
424 and rdi,r15 | |
425 ror r14,28 | |
426 add r12,r13 | |
427 | |
428 xor r11,rdi | |
429 add rdx,r12 | |
430 add r11,r12 | |
431 | |
432 lea rbp,[8+rbp] | |
433 add r11,r14 | |
434 mov r12,QWORD[72+rsi] | |
435 mov r13,rdx | |
436 mov r14,r11 | |
437 bswap r12 | |
438 ror r13,23 | |
439 mov rdi,r8 | |
440 | |
441 xor r13,rdx | |
442 ror r14,5 | |
443 xor rdi,r9 | |
444 | |
445 mov QWORD[72+rsp],r12 | |
446 xor r14,r11 | |
447 and rdi,rdx | |
448 | |
449 ror r13,4 | |
450 add r12,r10 | |
451 xor rdi,r9 | |
452 | |
453 ror r14,6 | |
454 xor r13,rdx | |
455 add r12,rdi | |
456 | |
457 mov rdi,r11 | |
458 add r12,QWORD[rbp] | |
459 xor r14,r11 | |
460 | |
461 xor rdi,rax | |
462 ror r13,14 | |
463 mov r10,rax | |
464 | |
465 and r15,rdi | |
466 ror r14,28 | |
467 add r12,r13 | |
468 | |
469 xor r10,r15 | |
470 add rcx,r12 | |
471 add r10,r12 | |
472 | |
473 lea rbp,[24+rbp] | |
474 add r10,r14 | |
475 mov r12,QWORD[80+rsi] | |
476 mov r13,rcx | |
477 mov r14,r10 | |
478 bswap r12 | |
479 ror r13,23 | |
480 mov r15,rdx | |
481 | |
482 xor r13,rcx | |
483 ror r14,5 | |
484 xor r15,r8 | |
485 | |
486 mov QWORD[80+rsp],r12 | |
487 xor r14,r10 | |
488 and r15,rcx | |
489 | |
490 ror r13,4 | |
491 add r12,r9 | |
492 xor r15,r8 | |
493 | |
494 ror r14,6 | |
495 xor r13,rcx | |
496 add r12,r15 | |
497 | |
498 mov r15,r10 | |
499 add r12,QWORD[rbp] | |
500 xor r14,r10 | |
501 | |
502 xor r15,r11 | |
503 ror r13,14 | |
504 mov r9,r11 | |
505 | |
506 and rdi,r15 | |
507 ror r14,28 | |
508 add r12,r13 | |
509 | |
510 xor r9,rdi | |
511 add rbx,r12 | |
512 add r9,r12 | |
513 | |
514 lea rbp,[8+rbp] | |
515 add r9,r14 | |
516 mov r12,QWORD[88+rsi] | |
517 mov r13,rbx | |
518 mov r14,r9 | |
519 bswap r12 | |
520 ror r13,23 | |
521 mov rdi,rcx | |
522 | |
523 xor r13,rbx | |
524 ror r14,5 | |
525 xor rdi,rdx | |
526 | |
527 mov QWORD[88+rsp],r12 | |
528 xor r14,r9 | |
529 and rdi,rbx | |
530 | |
531 ror r13,4 | |
532 add r12,r8 | |
533 xor rdi,rdx | |
534 | |
535 ror r14,6 | |
536 xor r13,rbx | |
537 add r12,rdi | |
538 | |
539 mov rdi,r9 | |
540 add r12,QWORD[rbp] | |
541 xor r14,r9 | |
542 | |
543 xor rdi,r10 | |
544 ror r13,14 | |
545 mov r8,r10 | |
546 | |
547 and r15,rdi | |
548 ror r14,28 | |
549 add r12,r13 | |
550 | |
551 xor r8,r15 | |
552 add rax,r12 | |
553 add r8,r12 | |
554 | |
555 lea rbp,[24+rbp] | |
556 add r8,r14 | |
557 mov r12,QWORD[96+rsi] | |
558 mov r13,rax | |
559 mov r14,r8 | |
560 bswap r12 | |
561 ror r13,23 | |
562 mov r15,rbx | |
563 | |
564 xor r13,rax | |
565 ror r14,5 | |
566 xor r15,rcx | |
567 | |
568 mov QWORD[96+rsp],r12 | |
569 xor r14,r8 | |
570 and r15,rax | |
571 | |
572 ror r13,4 | |
573 add r12,rdx | |
574 xor r15,rcx | |
575 | |
576 ror r14,6 | |
577 xor r13,rax | |
578 add r12,r15 | |
579 | |
580 mov r15,r8 | |
581 add r12,QWORD[rbp] | |
582 xor r14,r8 | |
583 | |
584 xor r15,r9 | |
585 ror r13,14 | |
586 mov rdx,r9 | |
587 | |
588 and rdi,r15 | |
589 ror r14,28 | |
590 add r12,r13 | |
591 | |
592 xor rdx,rdi | |
593 add r11,r12 | |
594 add rdx,r12 | |
595 | |
596 lea rbp,[8+rbp] | |
597 add rdx,r14 | |
598 mov r12,QWORD[104+rsi] | |
599 mov r13,r11 | |
600 mov r14,rdx | |
601 bswap r12 | |
602 ror r13,23 | |
603 mov rdi,rax | |
604 | |
605 xor r13,r11 | |
606 ror r14,5 | |
607 xor rdi,rbx | |
608 | |
609 mov QWORD[104+rsp],r12 | |
610 xor r14,rdx | |
611 and rdi,r11 | |
612 | |
613 ror r13,4 | |
614 add r12,rcx | |
615 xor rdi,rbx | |
616 | |
617 ror r14,6 | |
618 xor r13,r11 | |
619 add r12,rdi | |
620 | |
621 mov rdi,rdx | |
622 add r12,QWORD[rbp] | |
623 xor r14,rdx | |
624 | |
625 xor rdi,r8 | |
626 ror r13,14 | |
627 mov rcx,r8 | |
628 | |
629 and r15,rdi | |
630 ror r14,28 | |
631 add r12,r13 | |
632 | |
633 xor rcx,r15 | |
634 add r10,r12 | |
635 add rcx,r12 | |
636 | |
637 lea rbp,[24+rbp] | |
638 add rcx,r14 | |
639 mov r12,QWORD[112+rsi] | |
640 mov r13,r10 | |
641 mov r14,rcx | |
642 bswap r12 | |
643 ror r13,23 | |
644 mov r15,r11 | |
645 | |
646 xor r13,r10 | |
647 ror r14,5 | |
648 xor r15,rax | |
649 | |
650 mov QWORD[112+rsp],r12 | |
651 xor r14,rcx | |
652 and r15,r10 | |
653 | |
654 ror r13,4 | |
655 add r12,rbx | |
656 xor r15,rax | |
657 | |
658 ror r14,6 | |
659 xor r13,r10 | |
660 add r12,r15 | |
661 | |
662 mov r15,rcx | |
663 add r12,QWORD[rbp] | |
664 xor r14,rcx | |
665 | |
666 xor r15,rdx | |
667 ror r13,14 | |
668 mov rbx,rdx | |
669 | |
670 and rdi,r15 | |
671 ror r14,28 | |
672 add r12,r13 | |
673 | |
674 xor rbx,rdi | |
675 add r9,r12 | |
676 add rbx,r12 | |
677 | |
678 lea rbp,[8+rbp] | |
679 add rbx,r14 | |
680 mov r12,QWORD[120+rsi] | |
681 mov r13,r9 | |
682 mov r14,rbx | |
683 bswap r12 | |
684 ror r13,23 | |
685 mov rdi,r10 | |
686 | |
687 xor r13,r9 | |
688 ror r14,5 | |
689 xor rdi,r11 | |
690 | |
691 mov QWORD[120+rsp],r12 | |
692 xor r14,rbx | |
693 and rdi,r9 | |
694 | |
695 ror r13,4 | |
696 add r12,rax | |
697 xor rdi,r11 | |
698 | |
699 ror r14,6 | |
700 xor r13,r9 | |
701 add r12,rdi | |
702 | |
703 mov rdi,rbx | |
704 add r12,QWORD[rbp] | |
705 xor r14,rbx | |
706 | |
707 xor rdi,rcx | |
708 ror r13,14 | |
709 mov rax,rcx | |
710 | |
711 and r15,rdi | |
712 ror r14,28 | |
713 add r12,r13 | |
714 | |
715 xor rax,r15 | |
716 add r8,r12 | |
717 add rax,r12 | |
718 | |
719 lea rbp,[24+rbp] | |
720 jmp NEAR $L$rounds_16_xx | |
721 ALIGN 16 | |
722 $L$rounds_16_xx: | |
723 mov r13,QWORD[8+rsp] | |
724 mov r15,QWORD[112+rsp] | |
725 | |
726 mov r12,r13 | |
727 ror r13,7 | |
728 add rax,r14 | |
729 mov r14,r15 | |
730 ror r15,42 | |
731 | |
732 xor r13,r12 | |
733 shr r12,7 | |
734 ror r13,1 | |
735 xor r15,r14 | |
736 shr r14,6 | |
737 | |
738 ror r15,19 | |
739 xor r12,r13 | |
740 xor r15,r14 | |
741 add r12,QWORD[72+rsp] | |
742 | |
743 add r12,QWORD[rsp] | |
744 mov r13,r8 | |
745 add r12,r15 | |
746 mov r14,rax | |
747 ror r13,23 | |
748 mov r15,r9 | |
749 | |
750 xor r13,r8 | |
751 ror r14,5 | |
752 xor r15,r10 | |
753 | |
754 mov QWORD[rsp],r12 | |
755 xor r14,rax | |
756 and r15,r8 | |
757 | |
758 ror r13,4 | |
759 add r12,r11 | |
760 xor r15,r10 | |
761 | |
762 ror r14,6 | |
763 xor r13,r8 | |
764 add r12,r15 | |
765 | |
766 mov r15,rax | |
767 add r12,QWORD[rbp] | |
768 xor r14,rax | |
769 | |
770 xor r15,rbx | |
771 ror r13,14 | |
772 mov r11,rbx | |
773 | |
774 and rdi,r15 | |
775 ror r14,28 | |
776 add r12,r13 | |
777 | |
778 xor r11,rdi | |
779 add rdx,r12 | |
780 add r11,r12 | |
781 | |
782 lea rbp,[8+rbp] | |
783 mov r13,QWORD[16+rsp] | |
784 mov rdi,QWORD[120+rsp] | |
785 | |
786 mov r12,r13 | |
787 ror r13,7 | |
788 add r11,r14 | |
789 mov r14,rdi | |
790 ror rdi,42 | |
791 | |
792 xor r13,r12 | |
793 shr r12,7 | |
794 ror r13,1 | |
795 xor rdi,r14 | |
796 shr r14,6 | |
797 | |
798 ror rdi,19 | |
799 xor r12,r13 | |
800 xor rdi,r14 | |
801 add r12,QWORD[80+rsp] | |
802 | |
803 add r12,QWORD[8+rsp] | |
804 mov r13,rdx | |
805 add r12,rdi | |
806 mov r14,r11 | |
807 ror r13,23 | |
808 mov rdi,r8 | |
809 | |
810 xor r13,rdx | |
811 ror r14,5 | |
812 xor rdi,r9 | |
813 | |
814 mov QWORD[8+rsp],r12 | |
815 xor r14,r11 | |
816 and rdi,rdx | |
817 | |
818 ror r13,4 | |
819 add r12,r10 | |
820 xor rdi,r9 | |
821 | |
822 ror r14,6 | |
823 xor r13,rdx | |
824 add r12,rdi | |
825 | |
826 mov rdi,r11 | |
827 add r12,QWORD[rbp] | |
828 xor r14,r11 | |
829 | |
830 xor rdi,rax | |
831 ror r13,14 | |
832 mov r10,rax | |
833 | |
834 and r15,rdi | |
835 ror r14,28 | |
836 add r12,r13 | |
837 | |
838 xor r10,r15 | |
839 add rcx,r12 | |
840 add r10,r12 | |
841 | |
842 lea rbp,[24+rbp] | |
843 mov r13,QWORD[24+rsp] | |
844 mov r15,QWORD[rsp] | |
845 | |
846 mov r12,r13 | |
847 ror r13,7 | |
848 add r10,r14 | |
849 mov r14,r15 | |
850 ror r15,42 | |
851 | |
852 xor r13,r12 | |
853 shr r12,7 | |
854 ror r13,1 | |
855 xor r15,r14 | |
856 shr r14,6 | |
857 | |
858 ror r15,19 | |
859 xor r12,r13 | |
860 xor r15,r14 | |
861 add r12,QWORD[88+rsp] | |
862 | |
863 add r12,QWORD[16+rsp] | |
864 mov r13,rcx | |
865 add r12,r15 | |
866 mov r14,r10 | |
867 ror r13,23 | |
868 mov r15,rdx | |
869 | |
870 xor r13,rcx | |
871 ror r14,5 | |
872 xor r15,r8 | |
873 | |
874 mov QWORD[16+rsp],r12 | |
875 xor r14,r10 | |
876 and r15,rcx | |
877 | |
878 ror r13,4 | |
879 add r12,r9 | |
880 xor r15,r8 | |
881 | |
882 ror r14,6 | |
883 xor r13,rcx | |
884 add r12,r15 | |
885 | |
886 mov r15,r10 | |
887 add r12,QWORD[rbp] | |
888 xor r14,r10 | |
889 | |
890 xor r15,r11 | |
891 ror r13,14 | |
892 mov r9,r11 | |
893 | |
894 and rdi,r15 | |
895 ror r14,28 | |
896 add r12,r13 | |
897 | |
898 xor r9,rdi | |
899 add rbx,r12 | |
900 add r9,r12 | |
901 | |
902 lea rbp,[8+rbp] | |
903 mov r13,QWORD[32+rsp] | |
904 mov rdi,QWORD[8+rsp] | |
905 | |
906 mov r12,r13 | |
907 ror r13,7 | |
908 add r9,r14 | |
909 mov r14,rdi | |
910 ror rdi,42 | |
911 | |
912 xor r13,r12 | |
913 shr r12,7 | |
914 ror r13,1 | |
915 xor rdi,r14 | |
916 shr r14,6 | |
917 | |
918 ror rdi,19 | |
919 xor r12,r13 | |
920 xor rdi,r14 | |
921 add r12,QWORD[96+rsp] | |
922 | |
923 add r12,QWORD[24+rsp] | |
924 mov r13,rbx | |
925 add r12,rdi | |
926 mov r14,r9 | |
927 ror r13,23 | |
928 mov rdi,rcx | |
929 | |
930 xor r13,rbx | |
931 ror r14,5 | |
932 xor rdi,rdx | |
933 | |
934 mov QWORD[24+rsp],r12 | |
935 xor r14,r9 | |
936 and rdi,rbx | |
937 | |
938 ror r13,4 | |
939 add r12,r8 | |
940 xor rdi,rdx | |
941 | |
942 ror r14,6 | |
943 xor r13,rbx | |
944 add r12,rdi | |
945 | |
946 mov rdi,r9 | |
947 add r12,QWORD[rbp] | |
948 xor r14,r9 | |
949 | |
950 xor rdi,r10 | |
951 ror r13,14 | |
952 mov r8,r10 | |
953 | |
954 and r15,rdi | |
955 ror r14,28 | |
956 add r12,r13 | |
957 | |
958 xor r8,r15 | |
959 add rax,r12 | |
960 add r8,r12 | |
961 | |
962 lea rbp,[24+rbp] | |
963 mov r13,QWORD[40+rsp] | |
964 mov r15,QWORD[16+rsp] | |
965 | |
966 mov r12,r13 | |
967 ror r13,7 | |
968 add r8,r14 | |
969 mov r14,r15 | |
970 ror r15,42 | |
971 | |
972 xor r13,r12 | |
973 shr r12,7 | |
974 ror r13,1 | |
975 xor r15,r14 | |
976 shr r14,6 | |
977 | |
978 ror r15,19 | |
979 xor r12,r13 | |
980 xor r15,r14 | |
981 add r12,QWORD[104+rsp] | |
982 | |
983 add r12,QWORD[32+rsp] | |
984 mov r13,rax | |
985 add r12,r15 | |
986 mov r14,r8 | |
987 ror r13,23 | |
988 mov r15,rbx | |
989 | |
990 xor r13,rax | |
991 ror r14,5 | |
992 xor r15,rcx | |
993 | |
994 mov QWORD[32+rsp],r12 | |
995 xor r14,r8 | |
996 and r15,rax | |
997 | |
998 ror r13,4 | |
999 add r12,rdx | |
1000 xor r15,rcx | |
1001 | |
1002 ror r14,6 | |
1003 xor r13,rax | |
1004 add r12,r15 | |
1005 | |
1006 mov r15,r8 | |
1007 add r12,QWORD[rbp] | |
1008 xor r14,r8 | |
1009 | |
1010 xor r15,r9 | |
1011 ror r13,14 | |
1012 mov rdx,r9 | |
1013 | |
1014 and rdi,r15 | |
1015 ror r14,28 | |
1016 add r12,r13 | |
1017 | |
1018 xor rdx,rdi | |
1019 add r11,r12 | |
1020 add rdx,r12 | |
1021 | |
1022 lea rbp,[8+rbp] | |
1023 mov r13,QWORD[48+rsp] | |
1024 mov rdi,QWORD[24+rsp] | |
1025 | |
1026 mov r12,r13 | |
1027 ror r13,7 | |
1028 add rdx,r14 | |
1029 mov r14,rdi | |
1030 ror rdi,42 | |
1031 | |
1032 xor r13,r12 | |
1033 shr r12,7 | |
1034 ror r13,1 | |
1035 xor rdi,r14 | |
1036 shr r14,6 | |
1037 | |
1038 ror rdi,19 | |
1039 xor r12,r13 | |
1040 xor rdi,r14 | |
1041 add r12,QWORD[112+rsp] | |
1042 | |
1043 add r12,QWORD[40+rsp] | |
1044 mov r13,r11 | |
1045 add r12,rdi | |
1046 mov r14,rdx | |
1047 ror r13,23 | |
1048 mov rdi,rax | |
1049 | |
1050 xor r13,r11 | |
1051 ror r14,5 | |
1052 xor rdi,rbx | |
1053 | |
1054 mov QWORD[40+rsp],r12 | |
1055 xor r14,rdx | |
1056 and rdi,r11 | |
1057 | |
1058 ror r13,4 | |
1059 add r12,rcx | |
1060 xor rdi,rbx | |
1061 | |
1062 ror r14,6 | |
1063 xor r13,r11 | |
1064 add r12,rdi | |
1065 | |
1066 mov rdi,rdx | |
1067 add r12,QWORD[rbp] | |
1068 xor r14,rdx | |
1069 | |
1070 xor rdi,r8 | |
1071 ror r13,14 | |
1072 mov rcx,r8 | |
1073 | |
1074 and r15,rdi | |
1075 ror r14,28 | |
1076 add r12,r13 | |
1077 | |
1078 xor rcx,r15 | |
1079 add r10,r12 | |
1080 add rcx,r12 | |
1081 | |
1082 lea rbp,[24+rbp] | |
1083 mov r13,QWORD[56+rsp] | |
1084 mov r15,QWORD[32+rsp] | |
1085 | |
1086 mov r12,r13 | |
1087 ror r13,7 | |
1088 add rcx,r14 | |
1089 mov r14,r15 | |
1090 ror r15,42 | |
1091 | |
1092 xor r13,r12 | |
1093 shr r12,7 | |
1094 ror r13,1 | |
1095 xor r15,r14 | |
1096 shr r14,6 | |
1097 | |
1098 ror r15,19 | |
1099 xor r12,r13 | |
1100 xor r15,r14 | |
1101 add r12,QWORD[120+rsp] | |
1102 | |
1103 add r12,QWORD[48+rsp] | |
1104 mov r13,r10 | |
1105 add r12,r15 | |
1106 mov r14,rcx | |
1107 ror r13,23 | |
1108 mov r15,r11 | |
1109 | |
1110 xor r13,r10 | |
1111 ror r14,5 | |
1112 xor r15,rax | |
1113 | |
1114 mov QWORD[48+rsp],r12 | |
1115 xor r14,rcx | |
1116 and r15,r10 | |
1117 | |
1118 ror r13,4 | |
1119 add r12,rbx | |
1120 xor r15,rax | |
1121 | |
1122 ror r14,6 | |
1123 xor r13,r10 | |
1124 add r12,r15 | |
1125 | |
1126 mov r15,rcx | |
1127 add r12,QWORD[rbp] | |
1128 xor r14,rcx | |
1129 | |
1130 xor r15,rdx | |
1131 ror r13,14 | |
1132 mov rbx,rdx | |
1133 | |
1134 and rdi,r15 | |
1135 ror r14,28 | |
1136 add r12,r13 | |
1137 | |
1138 xor rbx,rdi | |
1139 add r9,r12 | |
1140 add rbx,r12 | |
1141 | |
1142 lea rbp,[8+rbp] | |
1143 mov r13,QWORD[64+rsp] | |
1144 mov rdi,QWORD[40+rsp] | |
1145 | |
1146 mov r12,r13 | |
1147 ror r13,7 | |
1148 add rbx,r14 | |
1149 mov r14,rdi | |
1150 ror rdi,42 | |
1151 | |
1152 xor r13,r12 | |
1153 shr r12,7 | |
1154 ror r13,1 | |
1155 xor rdi,r14 | |
1156 shr r14,6 | |
1157 | |
1158 ror rdi,19 | |
1159 xor r12,r13 | |
1160 xor rdi,r14 | |
1161 add r12,QWORD[rsp] | |
1162 | |
1163 add r12,QWORD[56+rsp] | |
1164 mov r13,r9 | |
1165 add r12,rdi | |
1166 mov r14,rbx | |
1167 ror r13,23 | |
1168 mov rdi,r10 | |
1169 | |
1170 xor r13,r9 | |
1171 ror r14,5 | |
1172 xor rdi,r11 | |
1173 | |
1174 mov QWORD[56+rsp],r12 | |
1175 xor r14,rbx | |
1176 and rdi,r9 | |
1177 | |
1178 ror r13,4 | |
1179 add r12,rax | |
1180 xor rdi,r11 | |
1181 | |
1182 ror r14,6 | |
1183 xor r13,r9 | |
1184 add r12,rdi | |
1185 | |
1186 mov rdi,rbx | |
1187 add r12,QWORD[rbp] | |
1188 xor r14,rbx | |
1189 | |
1190 xor rdi,rcx | |
1191 ror r13,14 | |
1192 mov rax,rcx | |
1193 | |
1194 and r15,rdi | |
1195 ror r14,28 | |
1196 add r12,r13 | |
1197 | |
1198 xor rax,r15 | |
1199 add r8,r12 | |
1200 add rax,r12 | |
1201 | |
1202 lea rbp,[24+rbp] | |
1203 mov r13,QWORD[72+rsp] | |
1204 mov r15,QWORD[48+rsp] | |
1205 | |
1206 mov r12,r13 | |
1207 ror r13,7 | |
1208 add rax,r14 | |
1209 mov r14,r15 | |
1210 ror r15,42 | |
1211 | |
1212 xor r13,r12 | |
1213 shr r12,7 | |
1214 ror r13,1 | |
1215 xor r15,r14 | |
1216 shr r14,6 | |
1217 | |
1218 ror r15,19 | |
1219 xor r12,r13 | |
1220 xor r15,r14 | |
1221 add r12,QWORD[8+rsp] | |
1222 | |
1223 add r12,QWORD[64+rsp] | |
1224 mov r13,r8 | |
1225 add r12,r15 | |
1226 mov r14,rax | |
1227 ror r13,23 | |
1228 mov r15,r9 | |
1229 | |
1230 xor r13,r8 | |
1231 ror r14,5 | |
1232 xor r15,r10 | |
1233 | |
1234 mov QWORD[64+rsp],r12 | |
1235 xor r14,rax | |
1236 and r15,r8 | |
1237 | |
1238 ror r13,4 | |
1239 add r12,r11 | |
1240 xor r15,r10 | |
1241 | |
1242 ror r14,6 | |
1243 xor r13,r8 | |
1244 add r12,r15 | |
1245 | |
1246 mov r15,rax | |
1247 add r12,QWORD[rbp] | |
1248 xor r14,rax | |
1249 | |
1250 xor r15,rbx | |
1251 ror r13,14 | |
1252 mov r11,rbx | |
1253 | |
1254 and rdi,r15 | |
1255 ror r14,28 | |
1256 add r12,r13 | |
1257 | |
1258 xor r11,rdi | |
1259 add rdx,r12 | |
1260 add r11,r12 | |
1261 | |
1262 lea rbp,[8+rbp] | |
1263 mov r13,QWORD[80+rsp] | |
1264 mov rdi,QWORD[56+rsp] | |
1265 | |
1266 mov r12,r13 | |
1267 ror r13,7 | |
1268 add r11,r14 | |
1269 mov r14,rdi | |
1270 ror rdi,42 | |
1271 | |
1272 xor r13,r12 | |
1273 shr r12,7 | |
1274 ror r13,1 | |
1275 xor rdi,r14 | |
1276 shr r14,6 | |
1277 | |
1278 ror rdi,19 | |
1279 xor r12,r13 | |
1280 xor rdi,r14 | |
1281 add r12,QWORD[16+rsp] | |
1282 | |
1283 add r12,QWORD[72+rsp] | |
1284 mov r13,rdx | |
1285 add r12,rdi | |
1286 mov r14,r11 | |
1287 ror r13,23 | |
1288 mov rdi,r8 | |
1289 | |
1290 xor r13,rdx | |
1291 ror r14,5 | |
1292 xor rdi,r9 | |
1293 | |
1294 mov QWORD[72+rsp],r12 | |
1295 xor r14,r11 | |
1296 and rdi,rdx | |
1297 | |
1298 ror r13,4 | |
1299 add r12,r10 | |
1300 xor rdi,r9 | |
1301 | |
1302 ror r14,6 | |
1303 xor r13,rdx | |
1304 add r12,rdi | |
1305 | |
1306 mov rdi,r11 | |
1307 add r12,QWORD[rbp] | |
1308 xor r14,r11 | |
1309 | |
1310 xor rdi,rax | |
1311 ror r13,14 | |
1312 mov r10,rax | |
1313 | |
1314 and r15,rdi | |
1315 ror r14,28 | |
1316 add r12,r13 | |
1317 | |
1318 xor r10,r15 | |
1319 add rcx,r12 | |
1320 add r10,r12 | |
1321 | |
1322 lea rbp,[24+rbp] | |
1323 mov r13,QWORD[88+rsp] | |
1324 mov r15,QWORD[64+rsp] | |
1325 | |
1326 mov r12,r13 | |
1327 ror r13,7 | |
1328 add r10,r14 | |
1329 mov r14,r15 | |
1330 ror r15,42 | |
1331 | |
1332 xor r13,r12 | |
1333 shr r12,7 | |
1334 ror r13,1 | |
1335 xor r15,r14 | |
1336 shr r14,6 | |
1337 | |
1338 ror r15,19 | |
1339 xor r12,r13 | |
1340 xor r15,r14 | |
1341 add r12,QWORD[24+rsp] | |
1342 | |
1343 add r12,QWORD[80+rsp] | |
1344 mov r13,rcx | |
1345 add r12,r15 | |
1346 mov r14,r10 | |
1347 ror r13,23 | |
1348 mov r15,rdx | |
1349 | |
1350 xor r13,rcx | |
1351 ror r14,5 | |
1352 xor r15,r8 | |
1353 | |
1354 mov QWORD[80+rsp],r12 | |
1355 xor r14,r10 | |
1356 and r15,rcx | |
1357 | |
1358 ror r13,4 | |
1359 add r12,r9 | |
1360 xor r15,r8 | |
1361 | |
1362 ror r14,6 | |
1363 xor r13,rcx | |
1364 add r12,r15 | |
1365 | |
1366 mov r15,r10 | |
1367 add r12,QWORD[rbp] | |
1368 xor r14,r10 | |
1369 | |
1370 xor r15,r11 | |
1371 ror r13,14 | |
1372 mov r9,r11 | |
1373 | |
1374 and rdi,r15 | |
1375 ror r14,28 | |
1376 add r12,r13 | |
1377 | |
1378 xor r9,rdi | |
1379 add rbx,r12 | |
1380 add r9,r12 | |
1381 | |
1382 lea rbp,[8+rbp] | |
1383 mov r13,QWORD[96+rsp] | |
1384 mov rdi,QWORD[72+rsp] | |
1385 | |
1386 mov r12,r13 | |
1387 ror r13,7 | |
1388 add r9,r14 | |
1389 mov r14,rdi | |
1390 ror rdi,42 | |
1391 | |
1392 xor r13,r12 | |
1393 shr r12,7 | |
1394 ror r13,1 | |
1395 xor rdi,r14 | |
1396 shr r14,6 | |
1397 | |
1398 ror rdi,19 | |
1399 xor r12,r13 | |
1400 xor rdi,r14 | |
1401 add r12,QWORD[32+rsp] | |
1402 | |
1403 add r12,QWORD[88+rsp] | |
1404 mov r13,rbx | |
1405 add r12,rdi | |
1406 mov r14,r9 | |
1407 ror r13,23 | |
1408 mov rdi,rcx | |
1409 | |
1410 xor r13,rbx | |
1411 ror r14,5 | |
1412 xor rdi,rdx | |
1413 | |
1414 mov QWORD[88+rsp],r12 | |
1415 xor r14,r9 | |
1416 and rdi,rbx | |
1417 | |
1418 ror r13,4 | |
1419 add r12,r8 | |
1420 xor rdi,rdx | |
1421 | |
1422 ror r14,6 | |
1423 xor r13,rbx | |
1424 add r12,rdi | |
1425 | |
1426 mov rdi,r9 | |
1427 add r12,QWORD[rbp] | |
1428 xor r14,r9 | |
1429 | |
1430 xor rdi,r10 | |
1431 ror r13,14 | |
1432 mov r8,r10 | |
1433 | |
1434 and r15,rdi | |
1435 ror r14,28 | |
1436 add r12,r13 | |
1437 | |
1438 xor r8,r15 | |
1439 add rax,r12 | |
1440 add r8,r12 | |
1441 | |
1442 lea rbp,[24+rbp] | |
1443 mov r13,QWORD[104+rsp] | |
1444 mov r15,QWORD[80+rsp] | |
1445 | |
1446 mov r12,r13 | |
1447 ror r13,7 | |
1448 add r8,r14 | |
1449 mov r14,r15 | |
1450 ror r15,42 | |
1451 | |
1452 xor r13,r12 | |
1453 shr r12,7 | |
1454 ror r13,1 | |
1455 xor r15,r14 | |
1456 shr r14,6 | |
1457 | |
1458 ror r15,19 | |
1459 xor r12,r13 | |
1460 xor r15,r14 | |
1461 add r12,QWORD[40+rsp] | |
1462 | |
1463 add r12,QWORD[96+rsp] | |
1464 mov r13,rax | |
1465 add r12,r15 | |
1466 mov r14,r8 | |
1467 ror r13,23 | |
1468 mov r15,rbx | |
1469 | |
1470 xor r13,rax | |
1471 ror r14,5 | |
1472 xor r15,rcx | |
1473 | |
1474 mov QWORD[96+rsp],r12 | |
1475 xor r14,r8 | |
1476 and r15,rax | |
1477 | |
1478 ror r13,4 | |
1479 add r12,rdx | |
1480 xor r15,rcx | |
1481 | |
1482 ror r14,6 | |
1483 xor r13,rax | |
1484 add r12,r15 | |
1485 | |
1486 mov r15,r8 | |
1487 add r12,QWORD[rbp] | |
1488 xor r14,r8 | |
1489 | |
1490 xor r15,r9 | |
1491 ror r13,14 | |
1492 mov rdx,r9 | |
1493 | |
1494 and rdi,r15 | |
1495 ror r14,28 | |
1496 add r12,r13 | |
1497 | |
1498 xor rdx,rdi | |
1499 add r11,r12 | |
1500 add rdx,r12 | |
1501 | |
1502 lea rbp,[8+rbp] | |
1503 mov r13,QWORD[112+rsp] | |
1504 mov rdi,QWORD[88+rsp] | |
1505 | |
1506 mov r12,r13 | |
1507 ror r13,7 | |
1508 add rdx,r14 | |
1509 mov r14,rdi | |
1510 ror rdi,42 | |
1511 | |
1512 xor r13,r12 | |
1513 shr r12,7 | |
1514 ror r13,1 | |
1515 xor rdi,r14 | |
1516 shr r14,6 | |
1517 | |
1518 ror rdi,19 | |
1519 xor r12,r13 | |
1520 xor rdi,r14 | |
1521 add r12,QWORD[48+rsp] | |
1522 | |
1523 add r12,QWORD[104+rsp] | |
1524 mov r13,r11 | |
1525 add r12,rdi | |
1526 mov r14,rdx | |
1527 ror r13,23 | |
1528 mov rdi,rax | |
1529 | |
1530 xor r13,r11 | |
1531 ror r14,5 | |
1532 xor rdi,rbx | |
1533 | |
1534 mov QWORD[104+rsp],r12 | |
1535 xor r14,rdx | |
1536 and rdi,r11 | |
1537 | |
1538 ror r13,4 | |
1539 add r12,rcx | |
1540 xor rdi,rbx | |
1541 | |
1542 ror r14,6 | |
1543 xor r13,r11 | |
1544 add r12,rdi | |
1545 | |
1546 mov rdi,rdx | |
1547 add r12,QWORD[rbp] | |
1548 xor r14,rdx | |
1549 | |
1550 xor rdi,r8 | |
1551 ror r13,14 | |
1552 mov rcx,r8 | |
1553 | |
1554 and r15,rdi | |
1555 ror r14,28 | |
1556 add r12,r13 | |
1557 | |
1558 xor rcx,r15 | |
1559 add r10,r12 | |
1560 add rcx,r12 | |
1561 | |
1562 lea rbp,[24+rbp] | |
1563 mov r13,QWORD[120+rsp] | |
1564 mov r15,QWORD[96+rsp] | |
1565 | |
1566 mov r12,r13 | |
1567 ror r13,7 | |
1568 add rcx,r14 | |
1569 mov r14,r15 | |
1570 ror r15,42 | |
1571 | |
1572 xor r13,r12 | |
1573 shr r12,7 | |
1574 ror r13,1 | |
1575 xor r15,r14 | |
1576 shr r14,6 | |
1577 | |
1578 ror r15,19 | |
1579 xor r12,r13 | |
1580 xor r15,r14 | |
1581 add r12,QWORD[56+rsp] | |
1582 | |
1583 add r12,QWORD[112+rsp] | |
1584 mov r13,r10 | |
1585 add r12,r15 | |
1586 mov r14,rcx | |
1587 ror r13,23 | |
1588 mov r15,r11 | |
1589 | |
1590 xor r13,r10 | |
1591 ror r14,5 | |
1592 xor r15,rax | |
1593 | |
1594 mov QWORD[112+rsp],r12 | |
1595 xor r14,rcx | |
1596 and r15,r10 | |
1597 | |
1598 ror r13,4 | |
1599 add r12,rbx | |
1600 xor r15,rax | |
1601 | |
1602 ror r14,6 | |
1603 xor r13,r10 | |
1604 add r12,r15 | |
1605 | |
1606 mov r15,rcx | |
1607 add r12,QWORD[rbp] | |
1608 xor r14,rcx | |
1609 | |
1610 xor r15,rdx | |
1611 ror r13,14 | |
1612 mov rbx,rdx | |
1613 | |
1614 and rdi,r15 | |
1615 ror r14,28 | |
1616 add r12,r13 | |
1617 | |
1618 xor rbx,rdi | |
1619 add r9,r12 | |
1620 add rbx,r12 | |
1621 | |
1622 lea rbp,[8+rbp] | |
1623 mov r13,QWORD[rsp] | |
1624 mov rdi,QWORD[104+rsp] | |
1625 | |
1626 mov r12,r13 | |
1627 ror r13,7 | |
1628 add rbx,r14 | |
1629 mov r14,rdi | |
1630 ror rdi,42 | |
1631 | |
1632 xor r13,r12 | |
1633 shr r12,7 | |
1634 ror r13,1 | |
1635 xor rdi,r14 | |
1636 shr r14,6 | |
1637 | |
1638 ror rdi,19 | |
1639 xor r12,r13 | |
1640 xor rdi,r14 | |
1641 add r12,QWORD[64+rsp] | |
1642 | |
1643 add r12,QWORD[120+rsp] | |
1644 mov r13,r9 | |
1645 add r12,rdi | |
1646 mov r14,rbx | |
1647 ror r13,23 | |
1648 mov rdi,r10 | |
1649 | |
1650 xor r13,r9 | |
1651 ror r14,5 | |
1652 xor rdi,r11 | |
1653 | |
1654 mov QWORD[120+rsp],r12 | |
1655 xor r14,rbx | |
1656 and rdi,r9 | |
1657 | |
1658 ror r13,4 | |
1659 add r12,rax | |
1660 xor rdi,r11 | |
1661 | |
1662 ror r14,6 | |
1663 xor r13,r9 | |
1664 add r12,rdi | |
1665 | |
1666 mov rdi,rbx | |
1667 add r12,QWORD[rbp] | |
1668 xor r14,rbx | |
1669 | |
1670 xor rdi,rcx | |
1671 ror r13,14 | |
1672 mov rax,rcx | |
1673 | |
1674 and r15,rdi | |
1675 ror r14,28 | |
1676 add r12,r13 | |
1677 | |
1678 xor rax,r15 | |
1679 add r8,r12 | |
1680 add rax,r12 | |
1681 | |
1682 lea rbp,[24+rbp] | |
1683 cmp BYTE[7+rbp],0 | |
1684 jnz NEAR $L$rounds_16_xx | |
1685 | |
1686 mov rdi,QWORD[((128+0))+rsp] | |
1687 add rax,r14 | |
1688 lea rsi,[128+rsi] | |
1689 | |
1690 add rax,QWORD[rdi] | |
1691 add rbx,QWORD[8+rdi] | |
1692 add rcx,QWORD[16+rdi] | |
1693 add rdx,QWORD[24+rdi] | |
1694 add r8,QWORD[32+rdi] | |
1695 add r9,QWORD[40+rdi] | |
1696 add r10,QWORD[48+rdi] | |
1697 add r11,QWORD[56+rdi] | |
1698 | |
1699 cmp rsi,QWORD[((128+16))+rsp] | |
1700 | |
1701 mov QWORD[rdi],rax | |
1702 mov QWORD[8+rdi],rbx | |
1703 mov QWORD[16+rdi],rcx | |
1704 mov QWORD[24+rdi],rdx | |
1705 mov QWORD[32+rdi],r8 | |
1706 mov QWORD[40+rdi],r9 | |
1707 mov QWORD[48+rdi],r10 | |
1708 mov QWORD[56+rdi],r11 | |
1709 jb NEAR $L$loop | |
1710 | |
1711 mov rsi,QWORD[((128+24))+rsp] | |
1712 mov r15,QWORD[rsi] | |
1713 mov r14,QWORD[8+rsi] | |
1714 mov r13,QWORD[16+rsi] | |
1715 mov r12,QWORD[24+rsi] | |
1716 mov rbp,QWORD[32+rsi] | |
1717 mov rbx,QWORD[40+rsi] | |
1718 lea rsp,[48+rsi] | |
1719 $L$epilogue: | |
1720 mov rdi,QWORD[8+rsp] ;WIN64 epilogue | |
1721 mov rsi,QWORD[16+rsp] | |
1722 DB 0F3h,0C3h ;repret | |
1723 $L$SEH_end_sha512_block_data_order: | |
1724 ALIGN 64 | |
1725 | |
1726 K512: | |
1727 DQ 0x428a2f98d728ae22,0x7137449123ef65cd | |
1728 DQ 0x428a2f98d728ae22,0x7137449123ef65cd | |
1729 DQ 0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc | |
1730 DQ 0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc | |
1731 DQ 0x3956c25bf348b538,0x59f111f1b605d019 | |
1732 DQ 0x3956c25bf348b538,0x59f111f1b605d019 | |
1733 DQ 0x923f82a4af194f9b,0xab1c5ed5da6d8118 | |
1734 DQ 0x923f82a4af194f9b,0xab1c5ed5da6d8118 | |
1735 DQ 0xd807aa98a3030242,0x12835b0145706fbe | |
1736 DQ 0xd807aa98a3030242,0x12835b0145706fbe | |
1737 DQ 0x243185be4ee4b28c,0x550c7dc3d5ffb4e2 | |
1738 DQ 0x243185be4ee4b28c,0x550c7dc3d5ffb4e2 | |
1739 DQ 0x72be5d74f27b896f,0x80deb1fe3b1696b1 | |
1740 DQ 0x72be5d74f27b896f,0x80deb1fe3b1696b1 | |
1741 DQ 0x9bdc06a725c71235,0xc19bf174cf692694 | |
1742 DQ 0x9bdc06a725c71235,0xc19bf174cf692694 | |
1743 DQ 0xe49b69c19ef14ad2,0xefbe4786384f25e3 | |
1744 DQ 0xe49b69c19ef14ad2,0xefbe4786384f25e3 | |
1745 DQ 0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65 | |
1746 DQ 0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65 | |
1747 DQ 0x2de92c6f592b0275,0x4a7484aa6ea6e483 | |
1748 DQ 0x2de92c6f592b0275,0x4a7484aa6ea6e483 | |
1749 DQ 0x5cb0a9dcbd41fbd4,0x76f988da831153b5 | |
1750 DQ 0x5cb0a9dcbd41fbd4,0x76f988da831153b5 | |
1751 DQ 0x983e5152ee66dfab,0xa831c66d2db43210 | |
1752 DQ 0x983e5152ee66dfab,0xa831c66d2db43210 | |
1753 DQ 0xb00327c898fb213f,0xbf597fc7beef0ee4 | |
1754 DQ 0xb00327c898fb213f,0xbf597fc7beef0ee4 | |
1755 DQ 0xc6e00bf33da88fc2,0xd5a79147930aa725 | |
1756 DQ 0xc6e00bf33da88fc2,0xd5a79147930aa725 | |
1757 DQ 0x06ca6351e003826f,0x142929670a0e6e70 | |
1758 DQ 0x06ca6351e003826f,0x142929670a0e6e70 | |
1759 DQ 0x27b70a8546d22ffc,0x2e1b21385c26c926 | |
1760 DQ 0x27b70a8546d22ffc,0x2e1b21385c26c926 | |
1761 DQ 0x4d2c6dfc5ac42aed,0x53380d139d95b3df | |
1762 DQ 0x4d2c6dfc5ac42aed,0x53380d139d95b3df | |
1763 DQ 0x650a73548baf63de,0x766a0abb3c77b2a8 | |
1764 DQ 0x650a73548baf63de,0x766a0abb3c77b2a8 | |
1765 DQ 0x81c2c92e47edaee6,0x92722c851482353b | |
1766 DQ 0x81c2c92e47edaee6,0x92722c851482353b | |
1767 DQ 0xa2bfe8a14cf10364,0xa81a664bbc423001 | |
1768 DQ 0xa2bfe8a14cf10364,0xa81a664bbc423001 | |
1769 DQ 0xc24b8b70d0f89791,0xc76c51a30654be30 | |
1770 DQ 0xc24b8b70d0f89791,0xc76c51a30654be30 | |
1771 DQ 0xd192e819d6ef5218,0xd69906245565a910 | |
1772 DQ 0xd192e819d6ef5218,0xd69906245565a910 | |
1773 DQ 0xf40e35855771202a,0x106aa07032bbd1b8 | |
1774 DQ 0xf40e35855771202a,0x106aa07032bbd1b8 | |
1775 DQ 0x19a4c116b8d2d0c8,0x1e376c085141ab53 | |
1776 DQ 0x19a4c116b8d2d0c8,0x1e376c085141ab53 | |
1777 DQ 0x2748774cdf8eeb99,0x34b0bcb5e19b48a8 | |
1778 DQ 0x2748774cdf8eeb99,0x34b0bcb5e19b48a8 | |
1779 DQ 0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb | |
1780 DQ 0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb | |
1781 DQ 0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3 | |
1782 DQ 0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3 | |
1783 DQ 0x748f82ee5defb2fc,0x78a5636f43172f60 | |
1784 DQ 0x748f82ee5defb2fc,0x78a5636f43172f60 | |
1785 DQ 0x84c87814a1f0ab72,0x8cc702081a6439ec | |
1786 DQ 0x84c87814a1f0ab72,0x8cc702081a6439ec | |
1787 DQ 0x90befffa23631e28,0xa4506cebde82bde9 | |
1788 DQ 0x90befffa23631e28,0xa4506cebde82bde9 | |
1789 DQ 0xbef9a3f7b2c67915,0xc67178f2e372532b | |
1790 DQ 0xbef9a3f7b2c67915,0xc67178f2e372532b | |
1791 DQ 0xca273eceea26619c,0xd186b8c721c0c207 | |
1792 DQ 0xca273eceea26619c,0xd186b8c721c0c207 | |
1793 DQ 0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178 | |
1794 DQ 0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178 | |
1795 DQ 0x06f067aa72176fba,0x0a637dc5a2c898a6 | |
1796 DQ 0x06f067aa72176fba,0x0a637dc5a2c898a6 | |
1797 DQ 0x113f9804bef90dae,0x1b710b35131c471b | |
1798 DQ 0x113f9804bef90dae,0x1b710b35131c471b | |
1799 DQ 0x28db77f523047d84,0x32caab7b40c72493 | |
1800 DQ 0x28db77f523047d84,0x32caab7b40c72493 | |
1801 DQ 0x3c9ebe0a15c9bebc,0x431d67c49c100d4c | |
1802 DQ 0x3c9ebe0a15c9bebc,0x431d67c49c100d4c | |
1803 DQ 0x4cc5d4becb3e42b6,0x597f299cfc657e2a | |
1804 DQ 0x4cc5d4becb3e42b6,0x597f299cfc657e2a | |
1805 DQ 0x5fcb6fab3ad6faec,0x6c44198c4a475817 | |
1806 DQ 0x5fcb6fab3ad6faec,0x6c44198c4a475817 | |
1807 | |
1808 DQ 0x0001020304050607,0x08090a0b0c0d0e0f | |
1809 DQ 0x0001020304050607,0x08090a0b0c0d0e0f | |
1810 DB 83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97 | |
1811 DB 110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54 | |
1812 DB 52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121 | |
1813 DB 32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46 | |
1814 DB 111,114,103,62,0 | |
1815 | |
1816 ALIGN 64 | |
1817 sha512_block_data_order_xop: | |
1818 mov QWORD[8+rsp],rdi ;WIN64 prologue | |
1819 mov QWORD[16+rsp],rsi | |
1820 mov rax,rsp | |
1821 $L$SEH_begin_sha512_block_data_order_xop: | |
1822 mov rdi,rcx | |
1823 mov rsi,rdx | |
1824 mov rdx,r8 | |
1825 | |
1826 | |
1827 $L$xop_shortcut: | |
1828 push rbx | |
1829 push rbp | |
1830 push r12 | |
1831 push r13 | |
1832 push r14 | |
1833 push r15 | |
1834 mov r11,rsp | |
1835 shl rdx,4 | |
1836 sub rsp,256 | |
1837 lea rdx,[rdx*8+rsi] | |
1838 and rsp,-64 | |
1839 mov QWORD[((128+0))+rsp],rdi | |
1840 mov QWORD[((128+8))+rsp],rsi | |
1841 mov QWORD[((128+16))+rsp],rdx | |
1842 mov QWORD[((128+24))+rsp],r11 | |
1843 movaps XMMWORD[(128+32)+rsp],xmm6 | |
1844 movaps XMMWORD[(128+48)+rsp],xmm7 | |
1845 movaps XMMWORD[(128+64)+rsp],xmm8 | |
1846 movaps XMMWORD[(128+80)+rsp],xmm9 | |
1847 movaps XMMWORD[(128+96)+rsp],xmm10 | |
1848 movaps XMMWORD[(128+112)+rsp],xmm11 | |
1849 $L$prologue_xop: | |
1850 | |
1851 vzeroupper | |
1852 mov rax,QWORD[rdi] | |
1853 mov rbx,QWORD[8+rdi] | |
1854 mov rcx,QWORD[16+rdi] | |
1855 mov rdx,QWORD[24+rdi] | |
1856 mov r8,QWORD[32+rdi] | |
1857 mov r9,QWORD[40+rdi] | |
1858 mov r10,QWORD[48+rdi] | |
1859 mov r11,QWORD[56+rdi] | |
1860 jmp NEAR $L$loop_xop | |
1861 ALIGN 16 | |
1862 $L$loop_xop: | |
1863 vmovdqa xmm11,XMMWORD[((K512+1280))] | |
1864 vmovdqu xmm0,XMMWORD[rsi] | |
1865 lea rbp,[((K512+128))] | |
1866 vmovdqu xmm1,XMMWORD[16+rsi] | |
1867 vmovdqu xmm2,XMMWORD[32+rsi] | |
1868 vpshufb xmm0,xmm0,xmm11 | |
1869 vmovdqu xmm3,XMMWORD[48+rsi] | |
1870 vpshufb xmm1,xmm1,xmm11 | |
1871 vmovdqu xmm4,XMMWORD[64+rsi] | |
1872 vpshufb xmm2,xmm2,xmm11 | |
1873 vmovdqu xmm5,XMMWORD[80+rsi] | |
1874 vpshufb xmm3,xmm3,xmm11 | |
1875 vmovdqu xmm6,XMMWORD[96+rsi] | |
1876 vpshufb xmm4,xmm4,xmm11 | |
1877 vmovdqu xmm7,XMMWORD[112+rsi] | |
1878 vpshufb xmm5,xmm5,xmm11 | |
1879 vpaddq xmm8,xmm0,XMMWORD[((-128))+rbp] | |
1880 vpshufb xmm6,xmm6,xmm11 | |
1881 vpaddq xmm9,xmm1,XMMWORD[((-96))+rbp] | |
1882 vpshufb xmm7,xmm7,xmm11 | |
1883 vpaddq xmm10,xmm2,XMMWORD[((-64))+rbp] | |
1884 vpaddq xmm11,xmm3,XMMWORD[((-32))+rbp] | |
1885 vmovdqa XMMWORD[rsp],xmm8 | |
1886 vpaddq xmm8,xmm4,XMMWORD[rbp] | |
1887 vmovdqa XMMWORD[16+rsp],xmm9 | |
1888 vpaddq xmm9,xmm5,XMMWORD[32+rbp] | |
1889 vmovdqa XMMWORD[32+rsp],xmm10 | |
1890 vpaddq xmm10,xmm6,XMMWORD[64+rbp] | |
1891 vmovdqa XMMWORD[48+rsp],xmm11 | |
1892 vpaddq xmm11,xmm7,XMMWORD[96+rbp] | |
1893 vmovdqa XMMWORD[64+rsp],xmm8 | |
1894 mov r14,rax | |
1895 vmovdqa XMMWORD[80+rsp],xmm9 | |
1896 mov rdi,rbx | |
1897 vmovdqa XMMWORD[96+rsp],xmm10 | |
1898 xor rdi,rcx | |
1899 vmovdqa XMMWORD[112+rsp],xmm11 | |
1900 mov r13,r8 | |
1901 jmp NEAR $L$xop_00_47 | |
1902 | |
1903 ALIGN 16 | |
1904 $L$xop_00_47: | |
1905 add rbp,256 | |
1906 vpalignr xmm8,xmm1,xmm0,8 | |
1907 ror r13,23 | |
1908 mov rax,r14 | |
1909 vpalignr xmm11,xmm5,xmm4,8 | |
1910 mov r12,r9 | |
1911 ror r14,5 | |
1912 DB 143,72,120,195,200,56 | |
1913 xor r13,r8 | |
1914 xor r12,r10 | |
1915 vpsrlq xmm8,xmm8,7 | |
1916 ror r13,4 | |
1917 xor r14,rax | |
1918 vpaddq xmm0,xmm0,xmm11 | |
1919 and r12,r8 | |
1920 xor r13,r8 | |
1921 add r11,QWORD[rsp] | |
1922 mov r15,rax | |
1923 DB 143,72,120,195,209,7 | |
1924 xor r12,r10 | |
1925 ror r14,6 | |
1926 vpxor xmm8,xmm8,xmm9 | |
1927 xor r15,rbx | |
1928 add r11,r12 | |
1929 ror r13,14 | |
1930 and rdi,r15 | |
1931 DB 143,104,120,195,223,3 | |
1932 xor r14,rax | |
1933 add r11,r13 | |
1934 vpxor xmm8,xmm8,xmm10 | |
1935 xor rdi,rbx | |
1936 ror r14,28 | |
1937 vpsrlq xmm10,xmm7,6 | |
1938 add rdx,r11 | |
1939 add r11,rdi | |
1940 vpaddq xmm0,xmm0,xmm8 | |
1941 mov r13,rdx | |
1942 add r14,r11 | |
1943 DB 143,72,120,195,203,42 | |
1944 ror r13,23 | |
1945 mov r11,r14 | |
1946 vpxor xmm11,xmm11,xmm10 | |
1947 mov r12,r8 | |
1948 ror r14,5 | |
1949 xor r13,rdx | |
1950 xor r12,r9 | |
1951 vpxor xmm11,xmm11,xmm9 | |
1952 ror r13,4 | |
1953 xor r14,r11 | |
1954 and r12,rdx | |
1955 xor r13,rdx | |
1956 vpaddq xmm0,xmm0,xmm11 | |
1957 add r10,QWORD[8+rsp] | |
1958 mov rdi,r11 | |
1959 xor r12,r9 | |
1960 ror r14,6 | |
1961 vpaddq xmm10,xmm0,XMMWORD[((-128))+rbp] | |
1962 xor rdi,rax | |
1963 add r10,r12 | |
1964 ror r13,14 | |
1965 and r15,rdi | |
1966 xor r14,r11 | |
1967 add r10,r13 | |
1968 xor r15,rax | |
1969 ror r14,28 | |
1970 add rcx,r10 | |
1971 add r10,r15 | |
1972 mov r13,rcx | |
1973 add r14,r10 | |
1974 vmovdqa XMMWORD[rsp],xmm10 | |
1975 vpalignr xmm8,xmm2,xmm1,8 | |
1976 ror r13,23 | |
1977 mov r10,r14 | |
1978 vpalignr xmm11,xmm6,xmm5,8 | |
1979 mov r12,rdx | |
1980 ror r14,5 | |
1981 DB 143,72,120,195,200,56 | |
1982 xor r13,rcx | |
1983 xor r12,r8 | |
1984 vpsrlq xmm8,xmm8,7 | |
1985 ror r13,4 | |
1986 xor r14,r10 | |
1987 vpaddq xmm1,xmm1,xmm11 | |
1988 and r12,rcx | |
1989 xor r13,rcx | |
1990 add r9,QWORD[16+rsp] | |
1991 mov r15,r10 | |
1992 DB 143,72,120,195,209,7 | |
1993 xor r12,r8 | |
1994 ror r14,6 | |
1995 vpxor xmm8,xmm8,xmm9 | |
1996 xor r15,r11 | |
1997 add r9,r12 | |
1998 ror r13,14 | |
1999 and rdi,r15 | |
2000 DB 143,104,120,195,216,3 | |
2001 xor r14,r10 | |
2002 add r9,r13 | |
2003 vpxor xmm8,xmm8,xmm10 | |
2004 xor rdi,r11 | |
2005 ror r14,28 | |
2006 vpsrlq xmm10,xmm0,6 | |
2007 add rbx,r9 | |
2008 add r9,rdi | |
2009 vpaddq xmm1,xmm1,xmm8 | |
2010 mov r13,rbx | |
2011 add r14,r9 | |
2012 DB 143,72,120,195,203,42 | |
2013 ror r13,23 | |
2014 mov r9,r14 | |
2015 vpxor xmm11,xmm11,xmm10 | |
2016 mov r12,rcx | |
2017 ror r14,5 | |
2018 xor r13,rbx | |
2019 xor r12,rdx | |
2020 vpxor xmm11,xmm11,xmm9 | |
2021 ror r13,4 | |
2022 xor r14,r9 | |
2023 and r12,rbx | |
2024 xor r13,rbx | |
2025 vpaddq xmm1,xmm1,xmm11 | |
2026 add r8,QWORD[24+rsp] | |
2027 mov rdi,r9 | |
2028 xor r12,rdx | |
2029 ror r14,6 | |
2030 vpaddq xmm10,xmm1,XMMWORD[((-96))+rbp] | |
2031 xor rdi,r10 | |
2032 add r8,r12 | |
2033 ror r13,14 | |
2034 and r15,rdi | |
2035 xor r14,r9 | |
2036 add r8,r13 | |
2037 xor r15,r10 | |
2038 ror r14,28 | |
2039 add rax,r8 | |
2040 add r8,r15 | |
2041 mov r13,rax | |
2042 add r14,r8 | |
2043 vmovdqa XMMWORD[16+rsp],xmm10 | |
2044 vpalignr xmm8,xmm3,xmm2,8 | |
2045 ror r13,23 | |
2046 mov r8,r14 | |
2047 vpalignr xmm11,xmm7,xmm6,8 | |
2048 mov r12,rbx | |
2049 ror r14,5 | |
2050 DB 143,72,120,195,200,56 | |
2051 xor r13,rax | |
2052 xor r12,rcx | |
2053 vpsrlq xmm8,xmm8,7 | |
2054 ror r13,4 | |
2055 xor r14,r8 | |
2056 vpaddq xmm2,xmm2,xmm11 | |
2057 and r12,rax | |
2058 xor r13,rax | |
2059 add rdx,QWORD[32+rsp] | |
2060 mov r15,r8 | |
2061 DB 143,72,120,195,209,7 | |
2062 xor r12,rcx | |
2063 ror r14,6 | |
2064 vpxor xmm8,xmm8,xmm9 | |
2065 xor r15,r9 | |
2066 add rdx,r12 | |
2067 ror r13,14 | |
2068 and rdi,r15 | |
2069 DB 143,104,120,195,217,3 | |
2070 xor r14,r8 | |
2071 add rdx,r13 | |
2072 vpxor xmm8,xmm8,xmm10 | |
2073 xor rdi,r9 | |
2074 ror r14,28 | |
2075 vpsrlq xmm10,xmm1,6 | |
2076 add r11,rdx | |
2077 add rdx,rdi | |
2078 vpaddq xmm2,xmm2,xmm8 | |
2079 mov r13,r11 | |
2080 add r14,rdx | |
2081 DB 143,72,120,195,203,42 | |
2082 ror r13,23 | |
2083 mov rdx,r14 | |
2084 vpxor xmm11,xmm11,xmm10 | |
2085 mov r12,rax | |
2086 ror r14,5 | |
2087 xor r13,r11 | |
2088 xor r12,rbx | |
2089 vpxor xmm11,xmm11,xmm9 | |
2090 ror r13,4 | |
2091 xor r14,rdx | |
2092 and r12,r11 | |
2093 xor r13,r11 | |
2094 vpaddq xmm2,xmm2,xmm11 | |
2095 add rcx,QWORD[40+rsp] | |
2096 mov rdi,rdx | |
2097 xor r12,rbx | |
2098 ror r14,6 | |
2099 vpaddq xmm10,xmm2,XMMWORD[((-64))+rbp] | |
2100 xor rdi,r8 | |
2101 add rcx,r12 | |
2102 ror r13,14 | |
2103 and r15,rdi | |
2104 xor r14,rdx | |
2105 add rcx,r13 | |
2106 xor r15,r8 | |
2107 ror r14,28 | |
2108 add r10,rcx | |
2109 add rcx,r15 | |
2110 mov r13,r10 | |
2111 add r14,rcx | |
2112 vmovdqa XMMWORD[32+rsp],xmm10 | |
2113 vpalignr xmm8,xmm4,xmm3,8 | |
2114 ror r13,23 | |
2115 mov rcx,r14 | |
2116 vpalignr xmm11,xmm0,xmm7,8 | |
2117 mov r12,r11 | |
2118 ror r14,5 | |
2119 DB 143,72,120,195,200,56 | |
2120 xor r13,r10 | |
2121 xor r12,rax | |
2122 vpsrlq xmm8,xmm8,7 | |
2123 ror r13,4 | |
2124 xor r14,rcx | |
2125 vpaddq xmm3,xmm3,xmm11 | |
2126 and r12,r10 | |
2127 xor r13,r10 | |
2128 add rbx,QWORD[48+rsp] | |
2129 mov r15,rcx | |
2130 DB 143,72,120,195,209,7 | |
2131 xor r12,rax | |
2132 ror r14,6 | |
2133 vpxor xmm8,xmm8,xmm9 | |
2134 xor r15,rdx | |
2135 add rbx,r12 | |
2136 ror r13,14 | |
2137 and rdi,r15 | |
2138 DB 143,104,120,195,218,3 | |
2139 xor r14,rcx | |
2140 add rbx,r13 | |
2141 vpxor xmm8,xmm8,xmm10 | |
2142 xor rdi,rdx | |
2143 ror r14,28 | |
2144 vpsrlq xmm10,xmm2,6 | |
2145 add r9,rbx | |
2146 add rbx,rdi | |
2147 vpaddq xmm3,xmm3,xmm8 | |
2148 mov r13,r9 | |
2149 add r14,rbx | |
2150 DB 143,72,120,195,203,42 | |
2151 ror r13,23 | |
2152 mov rbx,r14 | |
2153 vpxor xmm11,xmm11,xmm10 | |
2154 mov r12,r10 | |
2155 ror r14,5 | |
2156 xor r13,r9 | |
2157 xor r12,r11 | |
2158 vpxor xmm11,xmm11,xmm9 | |
2159 ror r13,4 | |
2160 xor r14,rbx | |
2161 and r12,r9 | |
2162 xor r13,r9 | |
2163 vpaddq xmm3,xmm3,xmm11 | |
2164 add rax,QWORD[56+rsp] | |
2165 mov rdi,rbx | |
2166 xor r12,r11 | |
2167 ror r14,6 | |
2168 vpaddq xmm10,xmm3,XMMWORD[((-32))+rbp] | |
2169 xor rdi,rcx | |
2170 add rax,r12 | |
2171 ror r13,14 | |
2172 and r15,rdi | |
2173 xor r14,rbx | |
2174 add rax,r13 | |
2175 xor r15,rcx | |
2176 ror r14,28 | |
2177 add r8,rax | |
2178 add rax,r15 | |
2179 mov r13,r8 | |
2180 add r14,rax | |
2181 vmovdqa XMMWORD[48+rsp],xmm10 | |
2182 vpalignr xmm8,xmm5,xmm4,8 | |
2183 ror r13,23 | |
2184 mov rax,r14 | |
2185 vpalignr xmm11,xmm1,xmm0,8 | |
2186 mov r12,r9 | |
2187 ror r14,5 | |
2188 DB 143,72,120,195,200,56 | |
2189 xor r13,r8 | |
2190 xor r12,r10 | |
2191 vpsrlq xmm8,xmm8,7 | |
2192 ror r13,4 | |
2193 xor r14,rax | |
2194 vpaddq xmm4,xmm4,xmm11 | |
2195 and r12,r8 | |
2196 xor r13,r8 | |
2197 add r11,QWORD[64+rsp] | |
2198 mov r15,rax | |
2199 DB 143,72,120,195,209,7 | |
2200 xor r12,r10 | |
2201 ror r14,6 | |
2202 vpxor xmm8,xmm8,xmm9 | |
2203 xor r15,rbx | |
2204 add r11,r12 | |
2205 ror r13,14 | |
2206 and rdi,r15 | |
2207 DB 143,104,120,195,219,3 | |
2208 xor r14,rax | |
2209 add r11,r13 | |
2210 vpxor xmm8,xmm8,xmm10 | |
2211 xor rdi,rbx | |
2212 ror r14,28 | |
2213 vpsrlq xmm10,xmm3,6 | |
2214 add rdx,r11 | |
2215 add r11,rdi | |
2216 vpaddq xmm4,xmm4,xmm8 | |
2217 mov r13,rdx | |
2218 add r14,r11 | |
2219 DB 143,72,120,195,203,42 | |
2220 ror r13,23 | |
2221 mov r11,r14 | |
2222 vpxor xmm11,xmm11,xmm10 | |
2223 mov r12,r8 | |
2224 ror r14,5 | |
2225 xor r13,rdx | |
2226 xor r12,r9 | |
2227 vpxor xmm11,xmm11,xmm9 | |
2228 ror r13,4 | |
2229 xor r14,r11 | |
2230 and r12,rdx | |
2231 xor r13,rdx | |
2232 vpaddq xmm4,xmm4,xmm11 | |
2233 add r10,QWORD[72+rsp] | |
2234 mov rdi,r11 | |
2235 xor r12,r9 | |
2236 ror r14,6 | |
2237 vpaddq xmm10,xmm4,XMMWORD[rbp] | |
2238 xor rdi,rax | |
2239 add r10,r12 | |
2240 ror r13,14 | |
2241 and r15,rdi | |
2242 xor r14,r11 | |
2243 add r10,r13 | |
2244 xor r15,rax | |
2245 ror r14,28 | |
2246 add rcx,r10 | |
2247 add r10,r15 | |
2248 mov r13,rcx | |
2249 add r14,r10 | |
2250 vmovdqa XMMWORD[64+rsp],xmm10 | |
2251 vpalignr xmm8,xmm6,xmm5,8 | |
2252 ror r13,23 | |
2253 mov r10,r14 | |
2254 vpalignr xmm11,xmm2,xmm1,8 | |
2255 mov r12,rdx | |
2256 ror r14,5 | |
2257 DB 143,72,120,195,200,56 | |
2258 xor r13,rcx | |
2259 xor r12,r8 | |
2260 vpsrlq xmm8,xmm8,7 | |
2261 ror r13,4 | |
2262 xor r14,r10 | |
2263 vpaddq xmm5,xmm5,xmm11 | |
2264 and r12,rcx | |
2265 xor r13,rcx | |
2266 add r9,QWORD[80+rsp] | |
2267 mov r15,r10 | |
2268 DB 143,72,120,195,209,7 | |
2269 xor r12,r8 | |
2270 ror r14,6 | |
2271 vpxor xmm8,xmm8,xmm9 | |
2272 xor r15,r11 | |
2273 add r9,r12 | |
2274 ror r13,14 | |
2275 and rdi,r15 | |
2276 DB 143,104,120,195,220,3 | |
2277 xor r14,r10 | |
2278 add r9,r13 | |
2279 vpxor xmm8,xmm8,xmm10 | |
2280 xor rdi,r11 | |
2281 ror r14,28 | |
2282 vpsrlq xmm10,xmm4,6 | |
2283 add rbx,r9 | |
2284 add r9,rdi | |
2285 vpaddq xmm5,xmm5,xmm8 | |
2286 mov r13,rbx | |
2287 add r14,r9 | |
2288 DB 143,72,120,195,203,42 | |
2289 ror r13,23 | |
2290 mov r9,r14 | |
2291 vpxor xmm11,xmm11,xmm10 | |
2292 mov r12,rcx | |
2293 ror r14,5 | |
2294 xor r13,rbx | |
2295 xor r12,rdx | |
2296 vpxor xmm11,xmm11,xmm9 | |
2297 ror r13,4 | |
2298 xor r14,r9 | |
2299 and r12,rbx | |
2300 xor r13,rbx | |
2301 vpaddq xmm5,xmm5,xmm11 | |
2302 add r8,QWORD[88+rsp] | |
2303 mov rdi,r9 | |
2304 xor r12,rdx | |
2305 ror r14,6 | |
2306 vpaddq xmm10,xmm5,XMMWORD[32+rbp] | |
2307 xor rdi,r10 | |
2308 add r8,r12 | |
2309 ror r13,14 | |
2310 and r15,rdi | |
2311 xor r14,r9 | |
2312 add r8,r13 | |
2313 xor r15,r10 | |
2314 ror r14,28 | |
2315 add rax,r8 | |
2316 add r8,r15 | |
2317 mov r13,rax | |
2318 add r14,r8 | |
2319 vmovdqa XMMWORD[80+rsp],xmm10 | |
2320 vpalignr xmm8,xmm7,xmm6,8 | |
2321 ror r13,23 | |
2322 mov r8,r14 | |
2323 vpalignr xmm11,xmm3,xmm2,8 | |
2324 mov r12,rbx | |
2325 ror r14,5 | |
2326 DB 143,72,120,195,200,56 | |
2327 xor r13,rax | |
2328 xor r12,rcx | |
2329 vpsrlq xmm8,xmm8,7 | |
2330 ror r13,4 | |
2331 xor r14,r8 | |
2332 vpaddq xmm6,xmm6,xmm11 | |
2333 and r12,rax | |
2334 xor r13,rax | |
2335 add rdx,QWORD[96+rsp] | |
2336 mov r15,r8 | |
2337 DB 143,72,120,195,209,7 | |
2338 xor r12,rcx | |
2339 ror r14,6 | |
2340 vpxor xmm8,xmm8,xmm9 | |
2341 xor r15,r9 | |
2342 add rdx,r12 | |
2343 ror r13,14 | |
2344 and rdi,r15 | |
2345 DB 143,104,120,195,221,3 | |
2346 xor r14,r8 | |
2347 add rdx,r13 | |
2348 vpxor xmm8,xmm8,xmm10 | |
2349 xor rdi,r9 | |
2350 ror r14,28 | |
2351 vpsrlq xmm10,xmm5,6 | |
2352 add r11,rdx | |
2353 add rdx,rdi | |
2354 vpaddq xmm6,xmm6,xmm8 | |
2355 mov r13,r11 | |
2356 add r14,rdx | |
2357 DB 143,72,120,195,203,42 | |
2358 ror r13,23 | |
2359 mov rdx,r14 | |
2360 vpxor xmm11,xmm11,xmm10 | |
2361 mov r12,rax | |
2362 ror r14,5 | |
2363 xor r13,r11 | |
2364 xor r12,rbx | |
2365 vpxor xmm11,xmm11,xmm9 | |
2366 ror r13,4 | |
2367 xor r14,rdx | |
2368 and r12,r11 | |
2369 xor r13,r11 | |
2370 vpaddq xmm6,xmm6,xmm11 | |
2371 add rcx,QWORD[104+rsp] | |
2372 mov rdi,rdx | |
2373 xor r12,rbx | |
2374 ror r14,6 | |
2375 vpaddq xmm10,xmm6,XMMWORD[64+rbp] | |
2376 xor rdi,r8 | |
2377 add rcx,r12 | |
2378 ror r13,14 | |
2379 and r15,rdi | |
2380 xor r14,rdx | |
2381 add rcx,r13 | |
2382 xor r15,r8 | |
2383 ror r14,28 | |
2384 add r10,rcx | |
2385 add rcx,r15 | |
2386 mov r13,r10 | |
2387 add r14,rcx | |
2388 vmovdqa XMMWORD[96+rsp],xmm10 | |
2389 vpalignr xmm8,xmm0,xmm7,8 | |
2390 ror r13,23 | |
2391 mov rcx,r14 | |
2392 vpalignr xmm11,xmm4,xmm3,8 | |
2393 mov r12,r11 | |
2394 ror r14,5 | |
2395 DB 143,72,120,195,200,56 | |
2396 xor r13,r10 | |
2397 xor r12,rax | |
2398 vpsrlq xmm8,xmm8,7 | |
2399 ror r13,4 | |
2400 xor r14,rcx | |
2401 vpaddq xmm7,xmm7,xmm11 | |
2402 and r12,r10 | |
2403 xor r13,r10 | |
2404 add rbx,QWORD[112+rsp] | |
2405 mov r15,rcx | |
2406 DB 143,72,120,195,209,7 | |
2407 xor r12,rax | |
2408 ror r14,6 | |
2409 vpxor xmm8,xmm8,xmm9 | |
2410 xor r15,rdx | |
2411 add rbx,r12 | |
2412 ror r13,14 | |
2413 and rdi,r15 | |
2414 DB 143,104,120,195,222,3 | |
2415 xor r14,rcx | |
2416 add rbx,r13 | |
2417 vpxor xmm8,xmm8,xmm10 | |
2418 xor rdi,rdx | |
2419 ror r14,28 | |
2420 vpsrlq xmm10,xmm6,6 | |
2421 add r9,rbx | |
2422 add rbx,rdi | |
2423 vpaddq xmm7,xmm7,xmm8 | |
2424 mov r13,r9 | |
2425 add r14,rbx | |
2426 DB 143,72,120,195,203,42 | |
2427 ror r13,23 | |
2428 mov rbx,r14 | |
2429 vpxor xmm11,xmm11,xmm10 | |
2430 mov r12,r10 | |
2431 ror r14,5 | |
2432 xor r13,r9 | |
2433 xor r12,r11 | |
2434 vpxor xmm11,xmm11,xmm9 | |
2435 ror r13,4 | |
2436 xor r14,rbx | |
2437 and r12,r9 | |
2438 xor r13,r9 | |
2439 vpaddq xmm7,xmm7,xmm11 | |
2440 add rax,QWORD[120+rsp] | |
2441 mov rdi,rbx | |
2442 xor r12,r11 | |
2443 ror r14,6 | |
2444 vpaddq xmm10,xmm7,XMMWORD[96+rbp] | |
2445 xor rdi,rcx | |
2446 add rax,r12 | |
2447 ror r13,14 | |
2448 and r15,rdi | |
2449 xor r14,rbx | |
2450 add rax,r13 | |
2451 xor r15,rcx | |
2452 ror r14,28 | |
2453 add r8,rax | |
2454 add rax,r15 | |
2455 mov r13,r8 | |
2456 add r14,rax | |
2457 vmovdqa XMMWORD[112+rsp],xmm10 | |
2458 cmp BYTE[135+rbp],0 | |
2459 jne NEAR $L$xop_00_47 | |
2460 ror r13,23 | |
2461 mov rax,r14 | |
2462 mov r12,r9 | |
2463 ror r14,5 | |
2464 xor r13,r8 | |
2465 xor r12,r10 | |
2466 ror r13,4 | |
2467 xor r14,rax | |
2468 and r12,r8 | |
2469 xor r13,r8 | |
2470 add r11,QWORD[rsp] | |
2471 mov r15,rax | |
2472 xor r12,r10 | |
2473 ror r14,6 | |
2474 xor r15,rbx | |
2475 add r11,r12 | |
2476 ror r13,14 | |
2477 and rdi,r15 | |
2478 xor r14,rax | |
2479 add r11,r13 | |
2480 xor rdi,rbx | |
2481 ror r14,28 | |
2482 add rdx,r11 | |
2483 add r11,rdi | |
2484 mov r13,rdx | |
2485 add r14,r11 | |
2486 ror r13,23 | |
2487 mov r11,r14 | |
2488 mov r12,r8 | |
2489 ror r14,5 | |
2490 xor r13,rdx | |
2491 xor r12,r9 | |
2492 ror r13,4 | |
2493 xor r14,r11 | |
2494 and r12,rdx | |
2495 xor r13,rdx | |
2496 add r10,QWORD[8+rsp] | |
2497 mov rdi,r11 | |
2498 xor r12,r9 | |
2499 ror r14,6 | |
2500 xor rdi,rax | |
2501 add r10,r12 | |
2502 ror r13,14 | |
2503 and r15,rdi | |
2504 xor r14,r11 | |
2505 add r10,r13 | |
2506 xor r15,rax | |
2507 ror r14,28 | |
2508 add rcx,r10 | |
2509 add r10,r15 | |
2510 mov r13,rcx | |
2511 add r14,r10 | |
2512 ror r13,23 | |
2513 mov r10,r14 | |
2514 mov r12,rdx | |
2515 ror r14,5 | |
2516 xor r13,rcx | |
2517 xor r12,r8 | |
2518 ror r13,4 | |
2519 xor r14,r10 | |
2520 and r12,rcx | |
2521 xor r13,rcx | |
2522 add r9,QWORD[16+rsp] | |
2523 mov r15,r10 | |
2524 xor r12,r8 | |
2525 ror r14,6 | |
2526 xor r15,r11 | |
2527 add r9,r12 | |
2528 ror r13,14 | |
2529 and rdi,r15 | |
2530 xor r14,r10 | |
2531 add r9,r13 | |
2532 xor rdi,r11 | |
2533 ror r14,28 | |
2534 add rbx,r9 | |
2535 add r9,rdi | |
2536 mov r13,rbx | |
2537 add r14,r9 | |
2538 ror r13,23 | |
2539 mov r9,r14 | |
2540 mov r12,rcx | |
2541 ror r14,5 | |
2542 xor r13,rbx | |
2543 xor r12,rdx | |
2544 ror r13,4 | |
2545 xor r14,r9 | |
2546 and r12,rbx | |
2547 xor r13,rbx | |
2548 add r8,QWORD[24+rsp] | |
2549 mov rdi,r9 | |
2550 xor r12,rdx | |
2551 ror r14,6 | |
2552 xor rdi,r10 | |
2553 add r8,r12 | |
2554 ror r13,14 | |
2555 and r15,rdi | |
2556 xor r14,r9 | |
2557 add r8,r13 | |
2558 xor r15,r10 | |
2559 ror r14,28 | |
2560 add rax,r8 | |
2561 add r8,r15 | |
2562 mov r13,rax | |
2563 add r14,r8 | |
2564 ror r13,23 | |
2565 mov r8,r14 | |
2566 mov r12,rbx | |
2567 ror r14,5 | |
2568 xor r13,rax | |
2569 xor r12,rcx | |
2570 ror r13,4 | |
2571 xor r14,r8 | |
2572 and r12,rax | |
2573 xor r13,rax | |
2574 add rdx,QWORD[32+rsp] | |
2575 mov r15,r8 | |
2576 xor r12,rcx | |
2577 ror r14,6 | |
2578 xor r15,r9 | |
2579 add rdx,r12 | |
2580 ror r13,14 | |
2581 and rdi,r15 | |
2582 xor r14,r8 | |
2583 add rdx,r13 | |
2584 xor rdi,r9 | |
2585 ror r14,28 | |
2586 add r11,rdx | |
2587 add rdx,rdi | |
2588 mov r13,r11 | |
2589 add r14,rdx | |
2590 ror r13,23 | |
2591 mov rdx,r14 | |
2592 mov r12,rax | |
2593 ror r14,5 | |
2594 xor r13,r11 | |
2595 xor r12,rbx | |
2596 ror r13,4 | |
2597 xor r14,rdx | |
2598 and r12,r11 | |
2599 xor r13,r11 | |
2600 add rcx,QWORD[40+rsp] | |
2601 mov rdi,rdx | |
2602 xor r12,rbx | |
2603 ror r14,6 | |
2604 xor rdi,r8 | |
2605 add rcx,r12 | |
2606 ror r13,14 | |
2607 and r15,rdi | |
2608 xor r14,rdx | |
2609 add rcx,r13 | |
2610 xor r15,r8 | |
2611 ror r14,28 | |
2612 add r10,rcx | |
2613 add rcx,r15 | |
2614 mov r13,r10 | |
2615 add r14,rcx | |
2616 ror r13,23 | |
2617 mov rcx,r14 | |
2618 mov r12,r11 | |
2619 ror r14,5 | |
2620 xor r13,r10 | |
2621 xor r12,rax | |
2622 ror r13,4 | |
2623 xor r14,rcx | |
2624 and r12,r10 | |
2625 xor r13,r10 | |
2626 add rbx,QWORD[48+rsp] | |
2627 mov r15,rcx | |
2628 xor r12,rax | |
2629 ror r14,6 | |
2630 xor r15,rdx | |
2631 add rbx,r12 | |
2632 ror r13,14 | |
2633 and rdi,r15 | |
2634 xor r14,rcx | |
2635 add rbx,r13 | |
2636 xor rdi,rdx | |
2637 ror r14,28 | |
2638 add r9,rbx | |
2639 add rbx,rdi | |
2640 mov r13,r9 | |
2641 add r14,rbx | |
2642 ror r13,23 | |
2643 mov rbx,r14 | |
2644 mov r12,r10 | |
2645 ror r14,5 | |
2646 xor r13,r9 | |
2647 xor r12,r11 | |
2648 ror r13,4 | |
2649 xor r14,rbx | |
2650 and r12,r9 | |
2651 xor r13,r9 | |
2652 add rax,QWORD[56+rsp] | |
2653 mov rdi,rbx | |
2654 xor r12,r11 | |
2655 ror r14,6 | |
2656 xor rdi,rcx | |
2657 add rax,r12 | |
2658 ror r13,14 | |
2659 and r15,rdi | |
2660 xor r14,rbx | |
2661 add rax,r13 | |
2662 xor r15,rcx | |
2663 ror r14,28 | |
2664 add r8,rax | |
2665 add rax,r15 | |
2666 mov r13,r8 | |
2667 add r14,rax | |
2668 ror r13,23 | |
2669 mov rax,r14 | |
2670 mov r12,r9 | |
2671 ror r14,5 | |
2672 xor r13,r8 | |
2673 xor r12,r10 | |
2674 ror r13,4 | |
2675 xor r14,rax | |
2676 and r12,r8 | |
2677 xor r13,r8 | |
2678 add r11,QWORD[64+rsp] | |
2679 mov r15,rax | |
2680 xor r12,r10 | |
2681 ror r14,6 | |
2682 xor r15,rbx | |
2683 add r11,r12 | |
2684 ror r13,14 | |
2685 and rdi,r15 | |
2686 xor r14,rax | |
2687 add r11,r13 | |
2688 xor rdi,rbx | |
2689 ror r14,28 | |
2690 add rdx,r11 | |
2691 add r11,rdi | |
2692 mov r13,rdx | |
2693 add r14,r11 | |
2694 ror r13,23 | |
2695 mov r11,r14 | |
2696 mov r12,r8 | |
2697 ror r14,5 | |
2698 xor r13,rdx | |
2699 xor r12,r9 | |
2700 ror r13,4 | |
2701 xor r14,r11 | |
2702 and r12,rdx | |
2703 xor r13,rdx | |
2704 add r10,QWORD[72+rsp] | |
2705 mov rdi,r11 | |
2706 xor r12,r9 | |
2707 ror r14,6 | |
2708 xor rdi,rax | |
2709 add r10,r12 | |
2710 ror r13,14 | |
2711 and r15,rdi | |
2712 xor r14,r11 | |
2713 add r10,r13 | |
2714 xor r15,rax | |
2715 ror r14,28 | |
2716 add rcx,r10 | |
2717 add r10,r15 | |
2718 mov r13,rcx | |
2719 add r14,r10 | |
2720 ror r13,23 | |
2721 mov r10,r14 | |
2722 mov r12,rdx | |
2723 ror r14,5 | |
2724 xor r13,rcx | |
2725 xor r12,r8 | |
2726 ror r13,4 | |
2727 xor r14,r10 | |
2728 and r12,rcx | |
2729 xor r13,rcx | |
2730 add r9,QWORD[80+rsp] | |
2731 mov r15,r10 | |
2732 xor r12,r8 | |
2733 ror r14,6 | |
2734 xor r15,r11 | |
2735 add r9,r12 | |
2736 ror r13,14 | |
2737 and rdi,r15 | |
2738 xor r14,r10 | |
2739 add r9,r13 | |
2740 xor rdi,r11 | |
2741 ror r14,28 | |
2742 add rbx,r9 | |
2743 add r9,rdi | |
2744 mov r13,rbx | |
2745 add r14,r9 | |
2746 ror r13,23 | |
2747 mov r9,r14 | |
2748 mov r12,rcx | |
2749 ror r14,5 | |
2750 xor r13,rbx | |
2751 xor r12,rdx | |
2752 ror r13,4 | |
2753 xor r14,r9 | |
2754 and r12,rbx | |
2755 xor r13,rbx | |
2756 add r8,QWORD[88+rsp] | |
2757 mov rdi,r9 | |
2758 xor r12,rdx | |
2759 ror r14,6 | |
2760 xor rdi,r10 | |
2761 add r8,r12 | |
2762 ror r13,14 | |
2763 and r15,rdi | |
2764 xor r14,r9 | |
2765 add r8,r13 | |
2766 xor r15,r10 | |
2767 ror r14,28 | |
2768 add rax,r8 | |
2769 add r8,r15 | |
2770 mov r13,rax | |
2771 add r14,r8 | |
2772 ror r13,23 | |
2773 mov r8,r14 | |
2774 mov r12,rbx | |
2775 ror r14,5 | |
2776 xor r13,rax | |
2777 xor r12,rcx | |
2778 ror r13,4 | |
2779 xor r14,r8 | |
2780 and r12,rax | |
2781 xor r13,rax | |
2782 add rdx,QWORD[96+rsp] | |
2783 mov r15,r8 | |
2784 xor r12,rcx | |
2785 ror r14,6 | |
2786 xor r15,r9 | |
2787 add rdx,r12 | |
2788 ror r13,14 | |
2789 and rdi,r15 | |
2790 xor r14,r8 | |
2791 add rdx,r13 | |
2792 xor rdi,r9 | |
2793 ror r14,28 | |
2794 add r11,rdx | |
2795 add rdx,rdi | |
2796 mov r13,r11 | |
2797 add r14,rdx | |
2798 ror r13,23 | |
2799 mov rdx,r14 | |
2800 mov r12,rax | |
2801 ror r14,5 | |
2802 xor r13,r11 | |
2803 xor r12,rbx | |
2804 ror r13,4 | |
2805 xor r14,rdx | |
2806 and r12,r11 | |
2807 xor r13,r11 | |
2808 add rcx,QWORD[104+rsp] | |
2809 mov rdi,rdx | |
2810 xor r12,rbx | |
2811 ror r14,6 | |
2812 xor rdi,r8 | |
2813 add rcx,r12 | |
2814 ror r13,14 | |
2815 and r15,rdi | |
2816 xor r14,rdx | |
2817 add rcx,r13 | |
2818 xor r15,r8 | |
2819 ror r14,28 | |
2820 add r10,rcx | |
2821 add rcx,r15 | |
2822 mov r13,r10 | |
2823 add r14,rcx | |
2824 ror r13,23 | |
2825 mov rcx,r14 | |
2826 mov r12,r11 | |
2827 ror r14,5 | |
2828 xor r13,r10 | |
2829 xor r12,rax | |
2830 ror r13,4 | |
2831 xor r14,rcx | |
2832 and r12,r10 | |
2833 xor r13,r10 | |
2834 add rbx,QWORD[112+rsp] | |
2835 mov r15,rcx | |
2836 xor r12,rax | |
2837 ror r14,6 | |
2838 xor r15,rdx | |
2839 add rbx,r12 | |
2840 ror r13,14 | |
2841 and rdi,r15 | |
2842 xor r14,rcx | |
2843 add rbx,r13 | |
2844 xor rdi,rdx | |
2845 ror r14,28 | |
2846 add r9,rbx | |
2847 add rbx,rdi | |
2848 mov r13,r9 | |
2849 add r14,rbx | |
2850 ror r13,23 | |
2851 mov rbx,r14 | |
2852 mov r12,r10 | |
2853 ror r14,5 | |
2854 xor r13,r9 | |
2855 xor r12,r11 | |
2856 ror r13,4 | |
2857 xor r14,rbx | |
2858 and r12,r9 | |
2859 xor r13,r9 | |
2860 add rax,QWORD[120+rsp] | |
2861 mov rdi,rbx | |
2862 xor r12,r11 | |
2863 ror r14,6 | |
2864 xor rdi,rcx | |
2865 add rax,r12 | |
2866 ror r13,14 | |
2867 and r15,rdi | |
2868 xor r14,rbx | |
2869 add rax,r13 | |
2870 xor r15,rcx | |
2871 ror r14,28 | |
2872 add r8,rax | |
2873 add rax,r15 | |
2874 mov r13,r8 | |
2875 add r14,rax | |
2876 mov rdi,QWORD[((128+0))+rsp] | |
2877 mov rax,r14 | |
2878 | |
2879 add rax,QWORD[rdi] | |
2880 lea rsi,[128+rsi] | |
2881 add rbx,QWORD[8+rdi] | |
2882 add rcx,QWORD[16+rdi] | |
2883 add rdx,QWORD[24+rdi] | |
2884 add r8,QWORD[32+rdi] | |
2885 add r9,QWORD[40+rdi] | |
2886 add r10,QWORD[48+rdi] | |
2887 add r11,QWORD[56+rdi] | |
2888 | |
2889 cmp rsi,QWORD[((128+16))+rsp] | |
2890 | |
2891 mov QWORD[rdi],rax | |
2892 mov QWORD[8+rdi],rbx | |
2893 mov QWORD[16+rdi],rcx | |
2894 mov QWORD[24+rdi],rdx | |
2895 mov QWORD[32+rdi],r8 | |
2896 mov QWORD[40+rdi],r9 | |
2897 mov QWORD[48+rdi],r10 | |
2898 mov QWORD[56+rdi],r11 | |
2899 jb NEAR $L$loop_xop | |
2900 | |
2901 mov rsi,QWORD[((128+24))+rsp] | |
2902 vzeroupper | |
2903 movaps xmm6,XMMWORD[((128+32))+rsp] | |
2904 movaps xmm7,XMMWORD[((128+48))+rsp] | |
2905 movaps xmm8,XMMWORD[((128+64))+rsp] | |
2906 movaps xmm9,XMMWORD[((128+80))+rsp] | |
2907 movaps xmm10,XMMWORD[((128+96))+rsp] | |
2908 movaps xmm11,XMMWORD[((128+112))+rsp] | |
2909 mov r15,QWORD[rsi] | |
2910 mov r14,QWORD[8+rsi] | |
2911 mov r13,QWORD[16+rsi] | |
2912 mov r12,QWORD[24+rsi] | |
2913 mov rbp,QWORD[32+rsi] | |
2914 mov rbx,QWORD[40+rsi] | |
2915 lea rsp,[48+rsi] | |
2916 $L$epilogue_xop: | |
2917 mov rdi,QWORD[8+rsp] ;WIN64 epilogue | |
2918 mov rsi,QWORD[16+rsp] | |
2919 DB 0F3h,0C3h ;repret | |
2920 $L$SEH_end_sha512_block_data_order_xop: | |
2921 | |
2922 ALIGN 64 | |
2923 sha512_block_data_order_avx: | |
2924 mov QWORD[8+rsp],rdi ;WIN64 prologue | |
2925 mov QWORD[16+rsp],rsi | |
2926 mov rax,rsp | |
2927 $L$SEH_begin_sha512_block_data_order_avx: | |
2928 mov rdi,rcx | |
2929 mov rsi,rdx | |
2930 mov rdx,r8 | |
2931 | |
2932 | |
2933 $L$avx_shortcut: | |
2934 push rbx | |
2935 push rbp | |
2936 push r12 | |
2937 push r13 | |
2938 push r14 | |
2939 push r15 | |
2940 mov r11,rsp | |
2941 shl rdx,4 | |
2942 sub rsp,256 | |
2943 lea rdx,[rdx*8+rsi] | |
2944 and rsp,-64 | |
2945 mov QWORD[((128+0))+rsp],rdi | |
2946 mov QWORD[((128+8))+rsp],rsi | |
2947 mov QWORD[((128+16))+rsp],rdx | |
2948 mov QWORD[((128+24))+rsp],r11 | |
2949 movaps XMMWORD[(128+32)+rsp],xmm6 | |
2950 movaps XMMWORD[(128+48)+rsp],xmm7 | |
2951 movaps XMMWORD[(128+64)+rsp],xmm8 | |
2952 movaps XMMWORD[(128+80)+rsp],xmm9 | |
2953 movaps XMMWORD[(128+96)+rsp],xmm10 | |
2954 movaps XMMWORD[(128+112)+rsp],xmm11 | |
2955 $L$prologue_avx: | |
2956 | |
2957 vzeroupper | |
2958 mov rax,QWORD[rdi] | |
2959 mov rbx,QWORD[8+rdi] | |
2960 mov rcx,QWORD[16+rdi] | |
2961 mov rdx,QWORD[24+rdi] | |
2962 mov r8,QWORD[32+rdi] | |
2963 mov r9,QWORD[40+rdi] | |
2964 mov r10,QWORD[48+rdi] | |
2965 mov r11,QWORD[56+rdi] | |
2966 jmp NEAR $L$loop_avx | |
2967 ALIGN 16 | |
2968 $L$loop_avx: | |
2969 vmovdqa xmm11,XMMWORD[((K512+1280))] | |
2970 vmovdqu xmm0,XMMWORD[rsi] | |
2971 lea rbp,[((K512+128))] | |
2972 vmovdqu xmm1,XMMWORD[16+rsi] | |
2973 vmovdqu xmm2,XMMWORD[32+rsi] | |
2974 vpshufb xmm0,xmm0,xmm11 | |
2975 vmovdqu xmm3,XMMWORD[48+rsi] | |
2976 vpshufb xmm1,xmm1,xmm11 | |
2977 vmovdqu xmm4,XMMWORD[64+rsi] | |
2978 vpshufb xmm2,xmm2,xmm11 | |
2979 vmovdqu xmm5,XMMWORD[80+rsi] | |
2980 vpshufb xmm3,xmm3,xmm11 | |
2981 vmovdqu xmm6,XMMWORD[96+rsi] | |
2982 vpshufb xmm4,xmm4,xmm11 | |
2983 vmovdqu xmm7,XMMWORD[112+rsi] | |
2984 vpshufb xmm5,xmm5,xmm11 | |
2985 vpaddq xmm8,xmm0,XMMWORD[((-128))+rbp] | |
2986 vpshufb xmm6,xmm6,xmm11 | |
2987 vpaddq xmm9,xmm1,XMMWORD[((-96))+rbp] | |
2988 vpshufb xmm7,xmm7,xmm11 | |
2989 vpaddq xmm10,xmm2,XMMWORD[((-64))+rbp] | |
2990 vpaddq xmm11,xmm3,XMMWORD[((-32))+rbp] | |
2991 vmovdqa XMMWORD[rsp],xmm8 | |
2992 vpaddq xmm8,xmm4,XMMWORD[rbp] | |
2993 vmovdqa XMMWORD[16+rsp],xmm9 | |
2994 vpaddq xmm9,xmm5,XMMWORD[32+rbp] | |
2995 vmovdqa XMMWORD[32+rsp],xmm10 | |
2996 vpaddq xmm10,xmm6,XMMWORD[64+rbp] | |
2997 vmovdqa XMMWORD[48+rsp],xmm11 | |
2998 vpaddq xmm11,xmm7,XMMWORD[96+rbp] | |
2999 vmovdqa XMMWORD[64+rsp],xmm8 | |
3000 mov r14,rax | |
3001 vmovdqa XMMWORD[80+rsp],xmm9 | |
3002 mov rdi,rbx | |
3003 vmovdqa XMMWORD[96+rsp],xmm10 | |
3004 xor rdi,rcx | |
3005 vmovdqa XMMWORD[112+rsp],xmm11 | |
3006 mov r13,r8 | |
3007 jmp NEAR $L$avx_00_47 | |
3008 | |
3009 ALIGN 16 | |
3010 $L$avx_00_47: | |
3011 add rbp,256 | |
3012 vpalignr xmm8,xmm1,xmm0,8 | |
3013 shrd r13,r13,23 | |
3014 mov rax,r14 | |
3015 vpalignr xmm11,xmm5,xmm4,8 | |
3016 mov r12,r9 | |
3017 shrd r14,r14,5 | |
3018 vpsrlq xmm10,xmm8,1 | |
3019 xor r13,r8 | |
3020 xor r12,r10 | |
3021 vpaddq xmm0,xmm0,xmm11 | |
3022 shrd r13,r13,4 | |
3023 xor r14,rax | |
3024 vpsrlq xmm11,xmm8,7 | |
3025 and r12,r8 | |
3026 xor r13,r8 | |
3027 vpsllq xmm9,xmm8,56 | |
3028 add r11,QWORD[rsp] | |
3029 mov r15,rax | |
3030 vpxor xmm8,xmm11,xmm10 | |
3031 xor r12,r10 | |
3032 shrd r14,r14,6 | |
3033 vpsrlq xmm10,xmm10,7 | |
3034 xor r15,rbx | |
3035 add r11,r12 | |
3036 vpxor xmm8,xmm8,xmm9 | |
3037 shrd r13,r13,14 | |
3038 and rdi,r15 | |
3039 vpsllq xmm9,xmm9,7 | |
3040 xor r14,rax | |
3041 add r11,r13 | |
3042 vpxor xmm8,xmm8,xmm10 | |
3043 xor rdi,rbx | |
3044 shrd r14,r14,28 | |
3045 vpsrlq xmm11,xmm7,6 | |
3046 add rdx,r11 | |
3047 add r11,rdi | |
3048 vpxor xmm8,xmm8,xmm9 | |
3049 mov r13,rdx | |
3050 add r14,r11 | |
3051 vpsllq xmm10,xmm7,3 | |
3052 shrd r13,r13,23 | |
3053 mov r11,r14 | |
3054 vpaddq xmm0,xmm0,xmm8 | |
3055 mov r12,r8 | |
3056 shrd r14,r14,5 | |
3057 vpsrlq xmm9,xmm7,19 | |
3058 xor r13,rdx | |
3059 xor r12,r9 | |
3060 vpxor xmm11,xmm11,xmm10 | |
3061 shrd r13,r13,4 | |
3062 xor r14,r11 | |
3063 vpsllq xmm10,xmm10,42 | |
3064 and r12,rdx | |
3065 xor r13,rdx | |
3066 vpxor xmm11,xmm11,xmm9 | |
3067 add r10,QWORD[8+rsp] | |
3068 mov rdi,r11 | |
3069 vpsrlq xmm9,xmm9,42 | |
3070 xor r12,r9 | |
3071 shrd r14,r14,6 | |
3072 vpxor xmm11,xmm11,xmm10 | |
3073 xor rdi,rax | |
3074 add r10,r12 | |
3075 vpxor xmm11,xmm11,xmm9 | |
3076 shrd r13,r13,14 | |
3077 and r15,rdi | |
3078 vpaddq xmm0,xmm0,xmm11 | |
3079 xor r14,r11 | |
3080 add r10,r13 | |
3081 vpaddq xmm10,xmm0,XMMWORD[((-128))+rbp] | |
3082 xor r15,rax | |
3083 shrd r14,r14,28 | |
3084 add rcx,r10 | |
3085 add r10,r15 | |
3086 mov r13,rcx | |
3087 add r14,r10 | |
3088 vmovdqa XMMWORD[rsp],xmm10 | |
3089 vpalignr xmm8,xmm2,xmm1,8 | |
3090 shrd r13,r13,23 | |
3091 mov r10,r14 | |
3092 vpalignr xmm11,xmm6,xmm5,8 | |
3093 mov r12,rdx | |
3094 shrd r14,r14,5 | |
3095 vpsrlq xmm10,xmm8,1 | |
3096 xor r13,rcx | |
3097 xor r12,r8 | |
3098 vpaddq xmm1,xmm1,xmm11 | |
3099 shrd r13,r13,4 | |
3100 xor r14,r10 | |
3101 vpsrlq xmm11,xmm8,7 | |
3102 and r12,rcx | |
3103 xor r13,rcx | |
3104 vpsllq xmm9,xmm8,56 | |
3105 add r9,QWORD[16+rsp] | |
3106 mov r15,r10 | |
3107 vpxor xmm8,xmm11,xmm10 | |
3108 xor r12,r8 | |
3109 shrd r14,r14,6 | |
3110 vpsrlq xmm10,xmm10,7 | |
3111 xor r15,r11 | |
3112 add r9,r12 | |
3113 vpxor xmm8,xmm8,xmm9 | |
3114 shrd r13,r13,14 | |
3115 and rdi,r15 | |
3116 vpsllq xmm9,xmm9,7 | |
3117 xor r14,r10 | |
3118 add r9,r13 | |
3119 vpxor xmm8,xmm8,xmm10 | |
3120 xor rdi,r11 | |
3121 shrd r14,r14,28 | |
3122 vpsrlq xmm11,xmm0,6 | |
3123 add rbx,r9 | |
3124 add r9,rdi | |
3125 vpxor xmm8,xmm8,xmm9 | |
3126 mov r13,rbx | |
3127 add r14,r9 | |
3128 vpsllq xmm10,xmm0,3 | |
3129 shrd r13,r13,23 | |
3130 mov r9,r14 | |
3131 vpaddq xmm1,xmm1,xmm8 | |
3132 mov r12,rcx | |
3133 shrd r14,r14,5 | |
3134 vpsrlq xmm9,xmm0,19 | |
3135 xor r13,rbx | |
3136 xor r12,rdx | |
3137 vpxor xmm11,xmm11,xmm10 | |
3138 shrd r13,r13,4 | |
3139 xor r14,r9 | |
3140 vpsllq xmm10,xmm10,42 | |
3141 and r12,rbx | |
3142 xor r13,rbx | |
3143 vpxor xmm11,xmm11,xmm9 | |
3144 add r8,QWORD[24+rsp] | |
3145 mov rdi,r9 | |
3146 vpsrlq xmm9,xmm9,42 | |
3147 xor r12,rdx | |
3148 shrd r14,r14,6 | |
3149 vpxor xmm11,xmm11,xmm10 | |
3150 xor rdi,r10 | |
3151 add r8,r12 | |
3152 vpxor xmm11,xmm11,xmm9 | |
3153 shrd r13,r13,14 | |
3154 and r15,rdi | |
3155 vpaddq xmm1,xmm1,xmm11 | |
3156 xor r14,r9 | |
3157 add r8,r13 | |
3158 vpaddq xmm10,xmm1,XMMWORD[((-96))+rbp] | |
3159 xor r15,r10 | |
3160 shrd r14,r14,28 | |
3161 add rax,r8 | |
3162 add r8,r15 | |
3163 mov r13,rax | |
3164 add r14,r8 | |
3165 vmovdqa XMMWORD[16+rsp],xmm10 | |
3166 vpalignr xmm8,xmm3,xmm2,8 | |
3167 shrd r13,r13,23 | |
3168 mov r8,r14 | |
3169 vpalignr xmm11,xmm7,xmm6,8 | |
3170 mov r12,rbx | |
3171 shrd r14,r14,5 | |
3172 vpsrlq xmm10,xmm8,1 | |
3173 xor r13,rax | |
3174 xor r12,rcx | |
3175 vpaddq xmm2,xmm2,xmm11 | |
3176 shrd r13,r13,4 | |
3177 xor r14,r8 | |
3178 vpsrlq xmm11,xmm8,7 | |
3179 and r12,rax | |
3180 xor r13,rax | |
3181 vpsllq xmm9,xmm8,56 | |
3182 add rdx,QWORD[32+rsp] | |
3183 mov r15,r8 | |
3184 vpxor xmm8,xmm11,xmm10 | |
3185 xor r12,rcx | |
3186 shrd r14,r14,6 | |
3187 vpsrlq xmm10,xmm10,7 | |
3188 xor r15,r9 | |
3189 add rdx,r12 | |
3190 vpxor xmm8,xmm8,xmm9 | |
3191 shrd r13,r13,14 | |
3192 and rdi,r15 | |
3193 vpsllq xmm9,xmm9,7 | |
3194 xor r14,r8 | |
3195 add rdx,r13 | |
3196 vpxor xmm8,xmm8,xmm10 | |
3197 xor rdi,r9 | |
3198 shrd r14,r14,28 | |
3199 vpsrlq xmm11,xmm1,6 | |
3200 add r11,rdx | |
3201 add rdx,rdi | |
3202 vpxor xmm8,xmm8,xmm9 | |
3203 mov r13,r11 | |
3204 add r14,rdx | |
3205 vpsllq xmm10,xmm1,3 | |
3206 shrd r13,r13,23 | |
3207 mov rdx,r14 | |
3208 vpaddq xmm2,xmm2,xmm8 | |
3209 mov r12,rax | |
3210 shrd r14,r14,5 | |
3211 vpsrlq xmm9,xmm1,19 | |
3212 xor r13,r11 | |
3213 xor r12,rbx | |
3214 vpxor xmm11,xmm11,xmm10 | |
3215 shrd r13,r13,4 | |
3216 xor r14,rdx | |
3217 vpsllq xmm10,xmm10,42 | |
3218 and r12,r11 | |
3219 xor r13,r11 | |
3220 vpxor xmm11,xmm11,xmm9 | |
3221 add rcx,QWORD[40+rsp] | |
3222 mov rdi,rdx | |
3223 vpsrlq xmm9,xmm9,42 | |
3224 xor r12,rbx | |
3225 shrd r14,r14,6 | |
3226 vpxor xmm11,xmm11,xmm10 | |
3227 xor rdi,r8 | |
3228 add rcx,r12 | |
3229 vpxor xmm11,xmm11,xmm9 | |
3230 shrd r13,r13,14 | |
3231 and r15,rdi | |
3232 vpaddq xmm2,xmm2,xmm11 | |
3233 xor r14,rdx | |
3234 add rcx,r13 | |
3235 vpaddq xmm10,xmm2,XMMWORD[((-64))+rbp] | |
3236 xor r15,r8 | |
3237 shrd r14,r14,28 | |
3238 add r10,rcx | |
3239 add rcx,r15 | |
3240 mov r13,r10 | |
3241 add r14,rcx | |
3242 vmovdqa XMMWORD[32+rsp],xmm10 | |
3243 vpalignr xmm8,xmm4,xmm3,8 | |
3244 shrd r13,r13,23 | |
3245 mov rcx,r14 | |
3246 vpalignr xmm11,xmm0,xmm7,8 | |
3247 mov r12,r11 | |
3248 shrd r14,r14,5 | |
3249 vpsrlq xmm10,xmm8,1 | |
3250 xor r13,r10 | |
3251 xor r12,rax | |
3252 vpaddq xmm3,xmm3,xmm11 | |
3253 shrd r13,r13,4 | |
3254 xor r14,rcx | |
3255 vpsrlq xmm11,xmm8,7 | |
3256 and r12,r10 | |
3257 xor r13,r10 | |
3258 vpsllq xmm9,xmm8,56 | |
3259 add rbx,QWORD[48+rsp] | |
3260 mov r15,rcx | |
3261 vpxor xmm8,xmm11,xmm10 | |
3262 xor r12,rax | |
3263 shrd r14,r14,6 | |
3264 vpsrlq xmm10,xmm10,7 | |
3265 xor r15,rdx | |
3266 add rbx,r12 | |
3267 vpxor xmm8,xmm8,xmm9 | |
3268 shrd r13,r13,14 | |
3269 and rdi,r15 | |
3270 vpsllq xmm9,xmm9,7 | |
3271 xor r14,rcx | |
3272 add rbx,r13 | |
3273 vpxor xmm8,xmm8,xmm10 | |
3274 xor rdi,rdx | |
3275 shrd r14,r14,28 | |
3276 vpsrlq xmm11,xmm2,6 | |
3277 add r9,rbx | |
3278 add rbx,rdi | |
3279 vpxor xmm8,xmm8,xmm9 | |
3280 mov r13,r9 | |
3281 add r14,rbx | |
3282 vpsllq xmm10,xmm2,3 | |
3283 shrd r13,r13,23 | |
3284 mov rbx,r14 | |
3285 vpaddq xmm3,xmm3,xmm8 | |
3286 mov r12,r10 | |
3287 shrd r14,r14,5 | |
3288 vpsrlq xmm9,xmm2,19 | |
3289 xor r13,r9 | |
3290 xor r12,r11 | |
3291 vpxor xmm11,xmm11,xmm10 | |
3292 shrd r13,r13,4 | |
3293 xor r14,rbx | |
3294 vpsllq xmm10,xmm10,42 | |
3295 and r12,r9 | |
3296 xor r13,r9 | |
3297 vpxor xmm11,xmm11,xmm9 | |
3298 add rax,QWORD[56+rsp] | |
3299 mov rdi,rbx | |
3300 vpsrlq xmm9,xmm9,42 | |
3301 xor r12,r11 | |
3302 shrd r14,r14,6 | |
3303 vpxor xmm11,xmm11,xmm10 | |
3304 xor rdi,rcx | |
3305 add rax,r12 | |
3306 vpxor xmm11,xmm11,xmm9 | |
3307 shrd r13,r13,14 | |
3308 and r15,rdi | |
3309 vpaddq xmm3,xmm3,xmm11 | |
3310 xor r14,rbx | |
3311 add rax,r13 | |
3312 vpaddq xmm10,xmm3,XMMWORD[((-32))+rbp] | |
3313 xor r15,rcx | |
3314 shrd r14,r14,28 | |
3315 add r8,rax | |
3316 add rax,r15 | |
3317 mov r13,r8 | |
3318 add r14,rax | |
3319 vmovdqa XMMWORD[48+rsp],xmm10 | |
3320 vpalignr xmm8,xmm5,xmm4,8 | |
3321 shrd r13,r13,23 | |
3322 mov rax,r14 | |
3323 vpalignr xmm11,xmm1,xmm0,8 | |
3324 mov r12,r9 | |
3325 shrd r14,r14,5 | |
3326 vpsrlq xmm10,xmm8,1 | |
3327 xor r13,r8 | |
3328 xor r12,r10 | |
3329 vpaddq xmm4,xmm4,xmm11 | |
3330 shrd r13,r13,4 | |
3331 xor r14,rax | |
3332 vpsrlq xmm11,xmm8,7 | |
3333 and r12,r8 | |
3334 xor r13,r8 | |
3335 vpsllq xmm9,xmm8,56 | |
3336 add r11,QWORD[64+rsp] | |
3337 mov r15,rax | |
3338 vpxor xmm8,xmm11,xmm10 | |
3339 xor r12,r10 | |
3340 shrd r14,r14,6 | |
3341 vpsrlq xmm10,xmm10,7 | |
3342 xor r15,rbx | |
3343 add r11,r12 | |
3344 vpxor xmm8,xmm8,xmm9 | |
3345 shrd r13,r13,14 | |
3346 and rdi,r15 | |
3347 vpsllq xmm9,xmm9,7 | |
3348 xor r14,rax | |
3349 add r11,r13 | |
3350 vpxor xmm8,xmm8,xmm10 | |
3351 xor rdi,rbx | |
3352 shrd r14,r14,28 | |
3353 vpsrlq xmm11,xmm3,6 | |
3354 add rdx,r11 | |
3355 add r11,rdi | |
3356 vpxor xmm8,xmm8,xmm9 | |
3357 mov r13,rdx | |
3358 add r14,r11 | |
3359 vpsllq xmm10,xmm3,3 | |
3360 shrd r13,r13,23 | |
3361 mov r11,r14 | |
3362 vpaddq xmm4,xmm4,xmm8 | |
3363 mov r12,r8 | |
3364 shrd r14,r14,5 | |
3365 vpsrlq xmm9,xmm3,19 | |
3366 xor r13,rdx | |
3367 xor r12,r9 | |
3368 vpxor xmm11,xmm11,xmm10 | |
3369 shrd r13,r13,4 | |
3370 xor r14,r11 | |
3371 vpsllq xmm10,xmm10,42 | |
3372 and r12,rdx | |
3373 xor r13,rdx | |
3374 vpxor xmm11,xmm11,xmm9 | |
3375 add r10,QWORD[72+rsp] | |
3376 mov rdi,r11 | |
3377 vpsrlq xmm9,xmm9,42 | |
3378 xor r12,r9 | |
3379 shrd r14,r14,6 | |
3380 vpxor xmm11,xmm11,xmm10 | |
3381 xor rdi,rax | |
3382 add r10,r12 | |
3383 vpxor xmm11,xmm11,xmm9 | |
3384 shrd r13,r13,14 | |
3385 and r15,rdi | |
3386 vpaddq xmm4,xmm4,xmm11 | |
3387 xor r14,r11 | |
3388 add r10,r13 | |
3389 vpaddq xmm10,xmm4,XMMWORD[rbp] | |
3390 xor r15,rax | |
3391 shrd r14,r14,28 | |
3392 add rcx,r10 | |
3393 add r10,r15 | |
3394 mov r13,rcx | |
3395 add r14,r10 | |
3396 vmovdqa XMMWORD[64+rsp],xmm10 | |
3397 vpalignr xmm8,xmm6,xmm5,8 | |
3398 shrd r13,r13,23 | |
3399 mov r10,r14 | |
3400 vpalignr xmm11,xmm2,xmm1,8 | |
3401 mov r12,rdx | |
3402 shrd r14,r14,5 | |
3403 vpsrlq xmm10,xmm8,1 | |
3404 xor r13,rcx | |
3405 xor r12,r8 | |
3406 vpaddq xmm5,xmm5,xmm11 | |
3407 shrd r13,r13,4 | |
3408 xor r14,r10 | |
3409 vpsrlq xmm11,xmm8,7 | |
3410 and r12,rcx | |
3411 xor r13,rcx | |
3412 vpsllq xmm9,xmm8,56 | |
3413 add r9,QWORD[80+rsp] | |
3414 mov r15,r10 | |
3415 vpxor xmm8,xmm11,xmm10 | |
3416 xor r12,r8 | |
3417 shrd r14,r14,6 | |
3418 vpsrlq xmm10,xmm10,7 | |
3419 xor r15,r11 | |
3420 add r9,r12 | |
3421 vpxor xmm8,xmm8,xmm9 | |
3422 shrd r13,r13,14 | |
3423 and rdi,r15 | |
3424 vpsllq xmm9,xmm9,7 | |
3425 xor r14,r10 | |
3426 add r9,r13 | |
3427 vpxor xmm8,xmm8,xmm10 | |
3428 xor rdi,r11 | |
3429 shrd r14,r14,28 | |
3430 vpsrlq xmm11,xmm4,6 | |
3431 add rbx,r9 | |
3432 add r9,rdi | |
3433 vpxor xmm8,xmm8,xmm9 | |
3434 mov r13,rbx | |
3435 add r14,r9 | |
3436 vpsllq xmm10,xmm4,3 | |
3437 shrd r13,r13,23 | |
3438 mov r9,r14 | |
3439 vpaddq xmm5,xmm5,xmm8 | |
3440 mov r12,rcx | |
3441 shrd r14,r14,5 | |
3442 vpsrlq xmm9,xmm4,19 | |
3443 xor r13,rbx | |
3444 xor r12,rdx | |
3445 vpxor xmm11,xmm11,xmm10 | |
3446 shrd r13,r13,4 | |
3447 xor r14,r9 | |
3448 vpsllq xmm10,xmm10,42 | |
3449 and r12,rbx | |
3450 xor r13,rbx | |
3451 vpxor xmm11,xmm11,xmm9 | |
3452 add r8,QWORD[88+rsp] | |
3453 mov rdi,r9 | |
3454 vpsrlq xmm9,xmm9,42 | |
3455 xor r12,rdx | |
3456 shrd r14,r14,6 | |
3457 vpxor xmm11,xmm11,xmm10 | |
3458 xor rdi,r10 | |
3459 add r8,r12 | |
3460 vpxor xmm11,xmm11,xmm9 | |
3461 shrd r13,r13,14 | |
3462 and r15,rdi | |
3463 vpaddq xmm5,xmm5,xmm11 | |
3464 xor r14,r9 | |
3465 add r8,r13 | |
3466 vpaddq xmm10,xmm5,XMMWORD[32+rbp] | |
3467 xor r15,r10 | |
3468 shrd r14,r14,28 | |
3469 add rax,r8 | |
3470 add r8,r15 | |
3471 mov r13,rax | |
3472 add r14,r8 | |
3473 vmovdqa XMMWORD[80+rsp],xmm10 | |
3474 vpalignr xmm8,xmm7,xmm6,8 | |
3475 shrd r13,r13,23 | |
3476 mov r8,r14 | |
3477 vpalignr xmm11,xmm3,xmm2,8 | |
3478 mov r12,rbx | |
3479 shrd r14,r14,5 | |
3480 vpsrlq xmm10,xmm8,1 | |
3481 xor r13,rax | |
3482 xor r12,rcx | |
3483 vpaddq xmm6,xmm6,xmm11 | |
3484 shrd r13,r13,4 | |
3485 xor r14,r8 | |
3486 vpsrlq xmm11,xmm8,7 | |
3487 and r12,rax | |
3488 xor r13,rax | |
3489 vpsllq xmm9,xmm8,56 | |
3490 add rdx,QWORD[96+rsp] | |
3491 mov r15,r8 | |
3492 vpxor xmm8,xmm11,xmm10 | |
3493 xor r12,rcx | |
3494 shrd r14,r14,6 | |
3495 vpsrlq xmm10,xmm10,7 | |
3496 xor r15,r9 | |
3497 add rdx,r12 | |
3498 vpxor xmm8,xmm8,xmm9 | |
3499 shrd r13,r13,14 | |
3500 and rdi,r15 | |
3501 vpsllq xmm9,xmm9,7 | |
3502 xor r14,r8 | |
3503 add rdx,r13 | |
3504 vpxor xmm8,xmm8,xmm10 | |
3505 xor rdi,r9 | |
3506 shrd r14,r14,28 | |
3507 vpsrlq xmm11,xmm5,6 | |
3508 add r11,rdx | |
3509 add rdx,rdi | |
3510 vpxor xmm8,xmm8,xmm9 | |
3511 mov r13,r11 | |
3512 add r14,rdx | |
3513 vpsllq xmm10,xmm5,3 | |
3514 shrd r13,r13,23 | |
3515 mov rdx,r14 | |
3516 vpaddq xmm6,xmm6,xmm8 | |
3517 mov r12,rax | |
3518 shrd r14,r14,5 | |
3519 vpsrlq xmm9,xmm5,19 | |
3520 xor r13,r11 | |
3521 xor r12,rbx | |
3522 vpxor xmm11,xmm11,xmm10 | |
3523 shrd r13,r13,4 | |
3524 xor r14,rdx | |
3525 vpsllq xmm10,xmm10,42 | |
3526 and r12,r11 | |
3527 xor r13,r11 | |
3528 vpxor xmm11,xmm11,xmm9 | |
3529 add rcx,QWORD[104+rsp] | |
3530 mov rdi,rdx | |
3531 vpsrlq xmm9,xmm9,42 | |
3532 xor r12,rbx | |
3533 shrd r14,r14,6 | |
3534 vpxor xmm11,xmm11,xmm10 | |
3535 xor rdi,r8 | |
3536 add rcx,r12 | |
3537 vpxor xmm11,xmm11,xmm9 | |
3538 shrd r13,r13,14 | |
3539 and r15,rdi | |
3540 vpaddq xmm6,xmm6,xmm11 | |
3541 xor r14,rdx | |
3542 add rcx,r13 | |
3543 vpaddq xmm10,xmm6,XMMWORD[64+rbp] | |
3544 xor r15,r8 | |
3545 shrd r14,r14,28 | |
3546 add r10,rcx | |
3547 add rcx,r15 | |
3548 mov r13,r10 | |
3549 add r14,rcx | |
3550 vmovdqa XMMWORD[96+rsp],xmm10 | |
3551 vpalignr xmm8,xmm0,xmm7,8 | |
3552 shrd r13,r13,23 | |
3553 mov rcx,r14 | |
3554 vpalignr xmm11,xmm4,xmm3,8 | |
3555 mov r12,r11 | |
3556 shrd r14,r14,5 | |
3557 vpsrlq xmm10,xmm8,1 | |
3558 xor r13,r10 | |
3559 xor r12,rax | |
3560 vpaddq xmm7,xmm7,xmm11 | |
3561 shrd r13,r13,4 | |
3562 xor r14,rcx | |
3563 vpsrlq xmm11,xmm8,7 | |
3564 and r12,r10 | |
3565 xor r13,r10 | |
3566 vpsllq xmm9,xmm8,56 | |
3567 add rbx,QWORD[112+rsp] | |
3568 mov r15,rcx | |
3569 vpxor xmm8,xmm11,xmm10 | |
3570 xor r12,rax | |
3571 shrd r14,r14,6 | |
3572 vpsrlq xmm10,xmm10,7 | |
3573 xor r15,rdx | |
3574 add rbx,r12 | |
3575 vpxor xmm8,xmm8,xmm9 | |
3576 shrd r13,r13,14 | |
3577 and rdi,r15 | |
3578 vpsllq xmm9,xmm9,7 | |
3579 xor r14,rcx | |
3580 add rbx,r13 | |
3581 vpxor xmm8,xmm8,xmm10 | |
3582 xor rdi,rdx | |
3583 shrd r14,r14,28 | |
3584 vpsrlq xmm11,xmm6,6 | |
3585 add r9,rbx | |
3586 add rbx,rdi | |
3587 vpxor xmm8,xmm8,xmm9 | |
3588 mov r13,r9 | |
3589 add r14,rbx | |
3590 vpsllq xmm10,xmm6,3 | |
3591 shrd r13,r13,23 | |
3592 mov rbx,r14 | |
3593 vpaddq xmm7,xmm7,xmm8 | |
3594 mov r12,r10 | |
3595 shrd r14,r14,5 | |
3596 vpsrlq xmm9,xmm6,19 | |
3597 xor r13,r9 | |
3598 xor r12,r11 | |
3599 vpxor xmm11,xmm11,xmm10 | |
3600 shrd r13,r13,4 | |
3601 xor r14,rbx | |
3602 vpsllq xmm10,xmm10,42 | |
3603 and r12,r9 | |
3604 xor r13,r9 | |
3605 vpxor xmm11,xmm11,xmm9 | |
3606 add rax,QWORD[120+rsp] | |
3607 mov rdi,rbx | |
3608 vpsrlq xmm9,xmm9,42 | |
3609 xor r12,r11 | |
3610 shrd r14,r14,6 | |
3611 vpxor xmm11,xmm11,xmm10 | |
3612 xor rdi,rcx | |
3613 add rax,r12 | |
3614 vpxor xmm11,xmm11,xmm9 | |
3615 shrd r13,r13,14 | |
3616 and r15,rdi | |
3617 vpaddq xmm7,xmm7,xmm11 | |
3618 xor r14,rbx | |
3619 add rax,r13 | |
3620 vpaddq xmm10,xmm7,XMMWORD[96+rbp] | |
3621 xor r15,rcx | |
3622 shrd r14,r14,28 | |
3623 add r8,rax | |
3624 add rax,r15 | |
3625 mov r13,r8 | |
3626 add r14,rax | |
3627 vmovdqa XMMWORD[112+rsp],xmm10 | |
3628 cmp BYTE[135+rbp],0 | |
3629 jne NEAR $L$avx_00_47 | |
3630 shrd r13,r13,23 | |
3631 mov rax,r14 | |
3632 mov r12,r9 | |
3633 shrd r14,r14,5 | |
3634 xor r13,r8 | |
3635 xor r12,r10 | |
3636 shrd r13,r13,4 | |
3637 xor r14,rax | |
3638 and r12,r8 | |
3639 xor r13,r8 | |
3640 add r11,QWORD[rsp] | |
3641 mov r15,rax | |
3642 xor r12,r10 | |
3643 shrd r14,r14,6 | |
3644 xor r15,rbx | |
3645 add r11,r12 | |
3646 shrd r13,r13,14 | |
3647 and rdi,r15 | |
3648 xor r14,rax | |
3649 add r11,r13 | |
3650 xor rdi,rbx | |
3651 shrd r14,r14,28 | |
3652 add rdx,r11 | |
3653 add r11,rdi | |
3654 mov r13,rdx | |
3655 add r14,r11 | |
3656 shrd r13,r13,23 | |
3657 mov r11,r14 | |
3658 mov r12,r8 | |
3659 shrd r14,r14,5 | |
3660 xor r13,rdx | |
3661 xor r12,r9 | |
3662 shrd r13,r13,4 | |
3663 xor r14,r11 | |
3664 and r12,rdx | |
3665 xor r13,rdx | |
3666 add r10,QWORD[8+rsp] | |
3667 mov rdi,r11 | |
3668 xor r12,r9 | |
3669 shrd r14,r14,6 | |
3670 xor rdi,rax | |
3671 add r10,r12 | |
3672 shrd r13,r13,14 | |
3673 and r15,rdi | |
3674 xor r14,r11 | |
3675 add r10,r13 | |
3676 xor r15,rax | |
3677 shrd r14,r14,28 | |
3678 add rcx,r10 | |
3679 add r10,r15 | |
3680 mov r13,rcx | |
3681 add r14,r10 | |
3682 shrd r13,r13,23 | |
3683 mov r10,r14 | |
3684 mov r12,rdx | |
3685 shrd r14,r14,5 | |
3686 xor r13,rcx | |
3687 xor r12,r8 | |
3688 shrd r13,r13,4 | |
3689 xor r14,r10 | |
3690 and r12,rcx | |
3691 xor r13,rcx | |
3692 add r9,QWORD[16+rsp] | |
3693 mov r15,r10 | |
3694 xor r12,r8 | |
3695 shrd r14,r14,6 | |
3696 xor r15,r11 | |
3697 add r9,r12 | |
3698 shrd r13,r13,14 | |
3699 and rdi,r15 | |
3700 xor r14,r10 | |
3701 add r9,r13 | |
3702 xor rdi,r11 | |
3703 shrd r14,r14,28 | |
3704 add rbx,r9 | |
3705 add r9,rdi | |
3706 mov r13,rbx | |
3707 add r14,r9 | |
3708 shrd r13,r13,23 | |
3709 mov r9,r14 | |
3710 mov r12,rcx | |
3711 shrd r14,r14,5 | |
3712 xor r13,rbx | |
3713 xor r12,rdx | |
3714 shrd r13,r13,4 | |
3715 xor r14,r9 | |
3716 and r12,rbx | |
3717 xor r13,rbx | |
3718 add r8,QWORD[24+rsp] | |
3719 mov rdi,r9 | |
3720 xor r12,rdx | |
3721 shrd r14,r14,6 | |
3722 xor rdi,r10 | |
3723 add r8,r12 | |
3724 shrd r13,r13,14 | |
3725 and r15,rdi | |
3726 xor r14,r9 | |
3727 add r8,r13 | |
3728 xor r15,r10 | |
3729 shrd r14,r14,28 | |
3730 add rax,r8 | |
3731 add r8,r15 | |
3732 mov r13,rax | |
3733 add r14,r8 | |
3734 shrd r13,r13,23 | |
3735 mov r8,r14 | |
3736 mov r12,rbx | |
3737 shrd r14,r14,5 | |
3738 xor r13,rax | |
3739 xor r12,rcx | |
3740 shrd r13,r13,4 | |
3741 xor r14,r8 | |
3742 and r12,rax | |
3743 xor r13,rax | |
3744 add rdx,QWORD[32+rsp] | |
3745 mov r15,r8 | |
3746 xor r12,rcx | |
3747 shrd r14,r14,6 | |
3748 xor r15,r9 | |
3749 add rdx,r12 | |
3750 shrd r13,r13,14 | |
3751 and rdi,r15 | |
3752 xor r14,r8 | |
3753 add rdx,r13 | |
3754 xor rdi,r9 | |
3755 shrd r14,r14,28 | |
3756 add r11,rdx | |
3757 add rdx,rdi | |
3758 mov r13,r11 | |
3759 add r14,rdx | |
3760 shrd r13,r13,23 | |
3761 mov rdx,r14 | |
3762 mov r12,rax | |
3763 shrd r14,r14,5 | |
3764 xor r13,r11 | |
3765 xor r12,rbx | |
3766 shrd r13,r13,4 | |
3767 xor r14,rdx | |
3768 and r12,r11 | |
3769 xor r13,r11 | |
3770 add rcx,QWORD[40+rsp] | |
3771 mov rdi,rdx | |
3772 xor r12,rbx | |
3773 shrd r14,r14,6 | |
3774 xor rdi,r8 | |
3775 add rcx,r12 | |
3776 shrd r13,r13,14 | |
3777 and r15,rdi | |
3778 xor r14,rdx | |
3779 add rcx,r13 | |
3780 xor r15,r8 | |
3781 shrd r14,r14,28 | |
3782 add r10,rcx | |
3783 add rcx,r15 | |
3784 mov r13,r10 | |
3785 add r14,rcx | |
3786 shrd r13,r13,23 | |
3787 mov rcx,r14 | |
3788 mov r12,r11 | |
3789 shrd r14,r14,5 | |
3790 xor r13,r10 | |
3791 xor r12,rax | |
3792 shrd r13,r13,4 | |
3793 xor r14,rcx | |
3794 and r12,r10 | |
3795 xor r13,r10 | |
3796 add rbx,QWORD[48+rsp] | |
3797 mov r15,rcx | |
3798 xor r12,rax | |
3799 shrd r14,r14,6 | |
3800 xor r15,rdx | |
3801 add rbx,r12 | |
3802 shrd r13,r13,14 | |
3803 and rdi,r15 | |
3804 xor r14,rcx | |
3805 add rbx,r13 | |
3806 xor rdi,rdx | |
3807 shrd r14,r14,28 | |
3808 add r9,rbx | |
3809 add rbx,rdi | |
3810 mov r13,r9 | |
3811 add r14,rbx | |
3812 shrd r13,r13,23 | |
3813 mov rbx,r14 | |
3814 mov r12,r10 | |
3815 shrd r14,r14,5 | |
3816 xor r13,r9 | |
3817 xor r12,r11 | |
3818 shrd r13,r13,4 | |
3819 xor r14,rbx | |
3820 and r12,r9 | |
3821 xor r13,r9 | |
3822 add rax,QWORD[56+rsp] | |
3823 mov rdi,rbx | |
3824 xor r12,r11 | |
3825 shrd r14,r14,6 | |
3826 xor rdi,rcx | |
3827 add rax,r12 | |
3828 shrd r13,r13,14 | |
3829 and r15,rdi | |
3830 xor r14,rbx | |
3831 add rax,r13 | |
3832 xor r15,rcx | |
3833 shrd r14,r14,28 | |
3834 add r8,rax | |
3835 add rax,r15 | |
3836 mov r13,r8 | |
3837 add r14,rax | |
3838 shrd r13,r13,23 | |
3839 mov rax,r14 | |
3840 mov r12,r9 | |
3841 shrd r14,r14,5 | |
3842 xor r13,r8 | |
3843 xor r12,r10 | |
3844 shrd r13,r13,4 | |
3845 xor r14,rax | |
3846 and r12,r8 | |
3847 xor r13,r8 | |
3848 add r11,QWORD[64+rsp] | |
3849 mov r15,rax | |
3850 xor r12,r10 | |
3851 shrd r14,r14,6 | |
3852 xor r15,rbx | |
3853 add r11,r12 | |
3854 shrd r13,r13,14 | |
3855 and rdi,r15 | |
3856 xor r14,rax | |
3857 add r11,r13 | |
3858 xor rdi,rbx | |
3859 shrd r14,r14,28 | |
3860 add rdx,r11 | |
3861 add r11,rdi | |
3862 mov r13,rdx | |
3863 add r14,r11 | |
3864 shrd r13,r13,23 | |
3865 mov r11,r14 | |
3866 mov r12,r8 | |
3867 shrd r14,r14,5 | |
3868 xor r13,rdx | |
3869 xor r12,r9 | |
3870 shrd r13,r13,4 | |
3871 xor r14,r11 | |
3872 and r12,rdx | |
3873 xor r13,rdx | |
3874 add r10,QWORD[72+rsp] | |
3875 mov rdi,r11 | |
3876 xor r12,r9 | |
3877 shrd r14,r14,6 | |
3878 xor rdi,rax | |
3879 add r10,r12 | |
3880 shrd r13,r13,14 | |
3881 and r15,rdi | |
3882 xor r14,r11 | |
3883 add r10,r13 | |
3884 xor r15,rax | |
3885 shrd r14,r14,28 | |
3886 add rcx,r10 | |
3887 add r10,r15 | |
3888 mov r13,rcx | |
3889 add r14,r10 | |
3890 shrd r13,r13,23 | |
3891 mov r10,r14 | |
3892 mov r12,rdx | |
3893 shrd r14,r14,5 | |
3894 xor r13,rcx | |
3895 xor r12,r8 | |
3896 shrd r13,r13,4 | |
3897 xor r14,r10 | |
3898 and r12,rcx | |
3899 xor r13,rcx | |
3900 add r9,QWORD[80+rsp] | |
3901 mov r15,r10 | |
3902 xor r12,r8 | |
3903 shrd r14,r14,6 | |
3904 xor r15,r11 | |
3905 add r9,r12 | |
3906 shrd r13,r13,14 | |
3907 and rdi,r15 | |
3908 xor r14,r10 | |
3909 add r9,r13 | |
3910 xor rdi,r11 | |
3911 shrd r14,r14,28 | |
3912 add rbx,r9 | |
3913 add r9,rdi | |
3914 mov r13,rbx | |
3915 add r14,r9 | |
3916 shrd r13,r13,23 | |
3917 mov r9,r14 | |
3918 mov r12,rcx | |
3919 shrd r14,r14,5 | |
3920 xor r13,rbx | |
3921 xor r12,rdx | |
3922 shrd r13,r13,4 | |
3923 xor r14,r9 | |
3924 and r12,rbx | |
3925 xor r13,rbx | |
3926 add r8,QWORD[88+rsp] | |
3927 mov rdi,r9 | |
3928 xor r12,rdx | |
3929 shrd r14,r14,6 | |
3930 xor rdi,r10 | |
3931 add r8,r12 | |
3932 shrd r13,r13,14 | |
3933 and r15,rdi | |
3934 xor r14,r9 | |
3935 add r8,r13 | |
3936 xor r15,r10 | |
3937 shrd r14,r14,28 | |
3938 add rax,r8 | |
3939 add r8,r15 | |
3940 mov r13,rax | |
3941 add r14,r8 | |
3942 shrd r13,r13,23 | |
3943 mov r8,r14 | |
3944 mov r12,rbx | |
3945 shrd r14,r14,5 | |
3946 xor r13,rax | |
3947 xor r12,rcx | |
3948 shrd r13,r13,4 | |
3949 xor r14,r8 | |
3950 and r12,rax | |
3951 xor r13,rax | |
3952 add rdx,QWORD[96+rsp] | |
3953 mov r15,r8 | |
3954 xor r12,rcx | |
3955 shrd r14,r14,6 | |
3956 xor r15,r9 | |
3957 add rdx,r12 | |
3958 shrd r13,r13,14 | |
3959 and rdi,r15 | |
3960 xor r14,r8 | |
3961 add rdx,r13 | |
3962 xor rdi,r9 | |
3963 shrd r14,r14,28 | |
3964 add r11,rdx | |
3965 add rdx,rdi | |
3966 mov r13,r11 | |
3967 add r14,rdx | |
3968 shrd r13,r13,23 | |
3969 mov rdx,r14 | |
3970 mov r12,rax | |
3971 shrd r14,r14,5 | |
3972 xor r13,r11 | |
3973 xor r12,rbx | |
3974 shrd r13,r13,4 | |
3975 xor r14,rdx | |
3976 and r12,r11 | |
3977 xor r13,r11 | |
3978 add rcx,QWORD[104+rsp] | |
3979 mov rdi,rdx | |
3980 xor r12,rbx | |
3981 shrd r14,r14,6 | |
3982 xor rdi,r8 | |
3983 add rcx,r12 | |
3984 shrd r13,r13,14 | |
3985 and r15,rdi | |
3986 xor r14,rdx | |
3987 add rcx,r13 | |
3988 xor r15,r8 | |
3989 shrd r14,r14,28 | |
3990 add r10,rcx | |
3991 add rcx,r15 | |
3992 mov r13,r10 | |
3993 add r14,rcx | |
3994 shrd r13,r13,23 | |
3995 mov rcx,r14 | |
3996 mov r12,r11 | |
3997 shrd r14,r14,5 | |
3998 xor r13,r10 | |
3999 xor r12,rax | |
4000 shrd r13,r13,4 | |
4001 xor r14,rcx | |
4002 and r12,r10 | |
4003 xor r13,r10 | |
4004 add rbx,QWORD[112+rsp] | |
4005 mov r15,rcx | |
4006 xor r12,rax | |
4007 shrd r14,r14,6 | |
4008 xor r15,rdx | |
4009 add rbx,r12 | |
4010 shrd r13,r13,14 | |
4011 and rdi,r15 | |
4012 xor r14,rcx | |
4013 add rbx,r13 | |
4014 xor rdi,rdx | |
4015 shrd r14,r14,28 | |
4016 add r9,rbx | |
4017 add rbx,rdi | |
4018 mov r13,r9 | |
4019 add r14,rbx | |
4020 shrd r13,r13,23 | |
4021 mov rbx,r14 | |
4022 mov r12,r10 | |
4023 shrd r14,r14,5 | |
4024 xor r13,r9 | |
4025 xor r12,r11 | |
4026 shrd r13,r13,4 | |
4027 xor r14,rbx | |
4028 and r12,r9 | |
4029 xor r13,r9 | |
4030 add rax,QWORD[120+rsp] | |
4031 mov rdi,rbx | |
4032 xor r12,r11 | |
4033 shrd r14,r14,6 | |
4034 xor rdi,rcx | |
4035 add rax,r12 | |
4036 shrd r13,r13,14 | |
4037 and r15,rdi | |
4038 xor r14,rbx | |
4039 add rax,r13 | |
4040 xor r15,rcx | |
4041 shrd r14,r14,28 | |
4042 add r8,rax | |
4043 add rax,r15 | |
4044 mov r13,r8 | |
4045 add r14,rax | |
4046 mov rdi,QWORD[((128+0))+rsp] | |
4047 mov rax,r14 | |
4048 | |
4049 add rax,QWORD[rdi] | |
4050 lea rsi,[128+rsi] | |
4051 add rbx,QWORD[8+rdi] | |
4052 add rcx,QWORD[16+rdi] | |
4053 add rdx,QWORD[24+rdi] | |
4054 add r8,QWORD[32+rdi] | |
4055 add r9,QWORD[40+rdi] | |
4056 add r10,QWORD[48+rdi] | |
4057 add r11,QWORD[56+rdi] | |
4058 | |
4059 cmp rsi,QWORD[((128+16))+rsp] | |
4060 | |
4061 mov QWORD[rdi],rax | |
4062 mov QWORD[8+rdi],rbx | |
4063 mov QWORD[16+rdi],rcx | |
4064 mov QWORD[24+rdi],rdx | |
4065 mov QWORD[32+rdi],r8 | |
4066 mov QWORD[40+rdi],r9 | |
4067 mov QWORD[48+rdi],r10 | |
4068 mov QWORD[56+rdi],r11 | |
4069 jb NEAR $L$loop_avx | |
4070 | |
4071 mov rsi,QWORD[((128+24))+rsp] | |
4072 vzeroupper | |
4073 movaps xmm6,XMMWORD[((128+32))+rsp] | |
4074 movaps xmm7,XMMWORD[((128+48))+rsp] | |
4075 movaps xmm8,XMMWORD[((128+64))+rsp] | |
4076 movaps xmm9,XMMWORD[((128+80))+rsp] | |
4077 movaps xmm10,XMMWORD[((128+96))+rsp] | |
4078 movaps xmm11,XMMWORD[((128+112))+rsp] | |
4079 mov r15,QWORD[rsi] | |
4080 mov r14,QWORD[8+rsi] | |
4081 mov r13,QWORD[16+rsi] | |
4082 mov r12,QWORD[24+rsi] | |
4083 mov rbp,QWORD[32+rsi] | |
4084 mov rbx,QWORD[40+rsi] | |
4085 lea rsp,[48+rsi] | |
4086 $L$epilogue_avx: | |
4087 mov rdi,QWORD[8+rsp] ;WIN64 epilogue | |
4088 mov rsi,QWORD[16+rsp] | |
4089 DB 0F3h,0C3h ;repret | |
4090 $L$SEH_end_sha512_block_data_order_avx: | |
4091 EXTERN __imp_RtlVirtualUnwind | |
4092 | |
4093 ALIGN 16 | |
4094 se_handler: | |
4095 push rsi | |
4096 push rdi | |
4097 push rbx | |
4098 push rbp | |
4099 push r12 | |
4100 push r13 | |
4101 push r14 | |
4102 push r15 | |
4103 pushfq | |
4104 sub rsp,64 | |
4105 | |
4106 mov rax,QWORD[120+r8] | |
4107 mov rbx,QWORD[248+r8] | |
4108 | |
4109 mov rsi,QWORD[8+r9] | |
4110 mov r11,QWORD[56+r9] | |
4111 | |
4112 mov r10d,DWORD[r11] | |
4113 lea r10,[r10*1+rsi] | |
4114 cmp rbx,r10 | |
4115 jb NEAR $L$in_prologue | |
4116 | |
4117 mov rax,QWORD[152+r8] | |
4118 | |
4119 mov r10d,DWORD[4+r11] | |
4120 lea r10,[r10*1+rsi] | |
4121 cmp rbx,r10 | |
4122 jae NEAR $L$in_prologue | |
4123 mov rsi,rax | |
4124 mov rax,QWORD[((128+24))+rax] | |
4125 lea rax,[48+rax] | |
4126 | |
4127 mov rbx,QWORD[((-8))+rax] | |
4128 mov rbp,QWORD[((-16))+rax] | |
4129 mov r12,QWORD[((-24))+rax] | |
4130 mov r13,QWORD[((-32))+rax] | |
4131 mov r14,QWORD[((-40))+rax] | |
4132 mov r15,QWORD[((-48))+rax] | |
4133 mov QWORD[144+r8],rbx | |
4134 mov QWORD[160+r8],rbp | |
4135 mov QWORD[216+r8],r12 | |
4136 mov QWORD[224+r8],r13 | |
4137 mov QWORD[232+r8],r14 | |
4138 mov QWORD[240+r8],r15 | |
4139 | |
4140 lea r10,[$L$epilogue] | |
4141 cmp rbx,r10 | |
4142 jb NEAR $L$in_prologue | |
4143 | |
4144 lea rsi,[((128+32))+rsi] | |
4145 lea rdi,[512+r8] | |
4146 mov ecx,12 | |
4147 DD 0xa548f3fc | |
4148 | |
4149 $L$in_prologue: | |
4150 mov rdi,QWORD[8+rax] | |
4151 mov rsi,QWORD[16+rax] | |
4152 mov QWORD[152+r8],rax | |
4153 mov QWORD[168+r8],rsi | |
4154 mov QWORD[176+r8],rdi | |
4155 | |
4156 mov rdi,QWORD[40+r9] | |
4157 mov rsi,r8 | |
4158 mov ecx,154 | |
4159 DD 0xa548f3fc | |
4160 | |
4161 mov rsi,r9 | |
4162 xor rcx,rcx | |
4163 mov rdx,QWORD[8+rsi] | |
4164 mov r8,QWORD[rsi] | |
4165 mov r9,QWORD[16+rsi] | |
4166 mov r10,QWORD[40+rsi] | |
4167 lea r11,[56+rsi] | |
4168 lea r12,[24+rsi] | |
4169 mov QWORD[32+rsp],r10 | |
4170 mov QWORD[40+rsp],r11 | |
4171 mov QWORD[48+rsp],r12 | |
4172 mov QWORD[56+rsp],rcx | |
4173 call QWORD[__imp_RtlVirtualUnwind] | |
4174 | |
4175 mov eax,1 | |
4176 add rsp,64 | |
4177 popfq | |
4178 pop r15 | |
4179 pop r14 | |
4180 pop r13 | |
4181 pop r12 | |
4182 pop rbp | |
4183 pop rbx | |
4184 pop rdi | |
4185 pop rsi | |
4186 DB 0F3h,0C3h ;repret | |
4187 | |
4188 section .pdata rdata align=4 | |
4189 ALIGN 4 | |
4190 DD $L$SEH_begin_sha512_block_data_order wrt ..imagebase | |
4191 DD $L$SEH_end_sha512_block_data_order wrt ..imagebase | |
4192 DD $L$SEH_info_sha512_block_data_order wrt ..imagebase | |
4193 DD $L$SEH_begin_sha512_block_data_order_xop wrt ..imagebase | |
4194 DD $L$SEH_end_sha512_block_data_order_xop wrt ..imagebase | |
4195 DD $L$SEH_info_sha512_block_data_order_xop wrt ..imagebase | |
4196 DD $L$SEH_begin_sha512_block_data_order_avx wrt ..imagebase | |
4197 DD $L$SEH_end_sha512_block_data_order_avx wrt ..imagebase | |
4198 DD $L$SEH_info_sha512_block_data_order_avx wrt ..imagebase | |
4199 section .xdata rdata align=8 | |
4200 ALIGN 8 | |
4201 $L$SEH_info_sha512_block_data_order: | |
4202 DB 9,0,0,0 | |
4203 DD se_handler wrt ..imagebase | |
4204 DD $L$prologue wrt ..imagebase,$L$epilogue wrt ..imagebase | |
4205 $L$SEH_info_sha512_block_data_order_xop: | |
4206 DB 9,0,0,0 | |
4207 DD se_handler wrt ..imagebase | |
4208 DD $L$prologue_xop wrt ..imagebase,$L$epilogue_xop wrt ..imagebase | |
4209 $L$SEH_info_sha512_block_data_order_avx: | |
4210 DB 9,0,0,0 | |
4211 DD se_handler wrt ..imagebase | |
4212 DD $L$prologue_avx wrt ..imagebase,$L$epilogue_avx wrt ..imagebase | |
OLD | NEW |