OLD | NEW |
1 default rel | 1 default rel |
2 %define XMMWORD | 2 %define XMMWORD |
3 %define YMMWORD | 3 %define YMMWORD |
4 %define ZMMWORD | 4 %define ZMMWORD |
5 section .text code align=64 | 5 section .text code align=64 |
6 | 6 |
7 | 7 |
8 EXTERN OPENSSL_ia32cap_P | 8 EXTERN OPENSSL_ia32cap_P |
9 | 9 |
10 global bn_mul_mont | 10 global bn_mul_mont |
11 | 11 |
12 ALIGN 16 | 12 ALIGN 16 |
13 bn_mul_mont: | 13 bn_mul_mont: |
14 mov QWORD[8+rsp],rdi ;WIN64 prologue | 14 mov QWORD[8+rsp],rdi ;WIN64 prologue |
15 mov QWORD[16+rsp],rsi | 15 mov QWORD[16+rsp],rsi |
16 mov rax,rsp | 16 mov rax,rsp |
17 $L$SEH_begin_bn_mul_mont: | 17 $L$SEH_begin_bn_mul_mont: |
18 mov rdi,rcx | 18 mov rdi,rcx |
19 mov rsi,rdx | 19 mov rsi,rdx |
20 mov rdx,r8 | 20 mov rdx,r8 |
21 mov rcx,r9 | 21 mov rcx,r9 |
22 mov r8,QWORD[40+rsp] | 22 mov r8,QWORD[40+rsp] |
23 mov r9,QWORD[48+rsp] | 23 mov r9,QWORD[48+rsp] |
24 | 24 |
25 | 25 |
| 26 mov r9d,r9d |
| 27 mov rax,rsp |
26 test r9d,3 | 28 test r9d,3 |
27 jnz NEAR $L$mul_enter | 29 jnz NEAR $L$mul_enter |
28 cmp r9d,8 | 30 cmp r9d,8 |
29 jb NEAR $L$mul_enter | 31 jb NEAR $L$mul_enter |
30 cmp rdx,rsi | 32 cmp rdx,rsi |
31 jne NEAR $L$mul4x_enter | 33 jne NEAR $L$mul4x_enter |
32 test r9d,7 | 34 test r9d,7 |
33 jz NEAR $L$sqr8x_enter | 35 jz NEAR $L$sqr8x_enter |
34 jmp NEAR $L$mul4x_enter | 36 jmp NEAR $L$mul4x_enter |
35 | 37 |
36 ALIGN 16 | 38 ALIGN 16 |
37 $L$mul_enter: | 39 $L$mul_enter: |
38 push rbx | 40 push rbx |
39 push rbp | 41 push rbp |
40 push r12 | 42 push r12 |
41 push r13 | 43 push r13 |
42 push r14 | 44 push r14 |
43 push r15 | 45 push r15 |
44 | 46 |
45 » mov» r9d,r9d | 47 » neg» r9 |
46 » lea» r10,[2+r9] | |
47 mov r11,rsp | 48 mov r11,rsp |
48 » neg» r10 | 49 » lea» r10,[((-16))+r9*8+rsp] |
49 » lea» rsp,[r10*8+rsp] | 50 » neg» r9 |
50 » and» rsp,-1024 | 51 » and» r10,-1024 |
51 | 52 |
52 » mov» QWORD[8+r9*8+rsp],r11 | 53 |
| 54 |
| 55 |
| 56 |
| 57 |
| 58 |
| 59 |
| 60 |
| 61 » sub» r11,r10 |
| 62 » and» r11,-4096 |
| 63 » lea» rsp,[r11*1+r10] |
| 64 » mov» r11,QWORD[rsp] |
| 65 » cmp» rsp,r10 |
| 66 » ja» NEAR $L$mul_page_walk |
| 67 » jmp» NEAR $L$mul_page_walk_done |
| 68 |
| 69 ALIGN» 16 |
| 70 $L$mul_page_walk: |
| 71 » lea» rsp,[((-4096))+rsp] |
| 72 » mov» r11,QWORD[rsp] |
| 73 » cmp» rsp,r10 |
| 74 » ja» NEAR $L$mul_page_walk |
| 75 $L$mul_page_walk_done: |
| 76 |
| 77 » mov» QWORD[8+r9*8+rsp],rax |
53 $L$mul_body: | 78 $L$mul_body: |
54 mov r12,rdx | 79 mov r12,rdx |
55 mov r8,QWORD[r8] | 80 mov r8,QWORD[r8] |
56 mov rbx,QWORD[r12] | 81 mov rbx,QWORD[r12] |
57 mov rax,QWORD[rsi] | 82 mov rax,QWORD[rsi] |
58 | 83 |
59 xor r14,r14 | 84 xor r14,r14 |
60 xor r15,r15 | 85 xor r15,r15 |
61 | 86 |
62 mov rbp,r8 | 87 mov rbp,r8 |
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
194 ALIGN 16 | 219 ALIGN 16 |
195 $L$sub: sbb rax,QWORD[r14*8+rcx] | 220 $L$sub: sbb rax,QWORD[r14*8+rcx] |
196 mov QWORD[r14*8+rdi],rax | 221 mov QWORD[r14*8+rdi],rax |
197 mov rax,QWORD[8+r14*8+rsi] | 222 mov rax,QWORD[8+r14*8+rsi] |
198 lea r14,[1+r14] | 223 lea r14,[1+r14] |
199 dec r15 | 224 dec r15 |
200 jnz NEAR $L$sub | 225 jnz NEAR $L$sub |
201 | 226 |
202 sbb rax,0 | 227 sbb rax,0 |
203 xor r14,r14 | 228 xor r14,r14 |
| 229 and rsi,rax |
| 230 not rax |
| 231 mov rcx,rdi |
| 232 and rcx,rax |
204 mov r15,r9 | 233 mov r15,r9 |
| 234 or rsi,rcx |
205 ALIGN 16 | 235 ALIGN 16 |
206 $L$copy: | 236 $L$copy: |
207 » mov» rsi,QWORD[r14*8+rsp] | 237 » mov» rax,QWORD[r14*8+rsi] |
208 » mov» rcx,QWORD[r14*8+rdi] | |
209 » xor» rsi,rcx | |
210 » and» rsi,rax | |
211 » xor» rsi,rcx | |
212 mov QWORD[r14*8+rsp],r14 | 238 mov QWORD[r14*8+rsp],r14 |
213 » mov» QWORD[r14*8+rdi],rsi | 239 » mov» QWORD[r14*8+rdi],rax |
214 lea r14,[1+r14] | 240 lea r14,[1+r14] |
215 sub r15,1 | 241 sub r15,1 |
216 jnz NEAR $L$copy | 242 jnz NEAR $L$copy |
217 | 243 |
218 mov rsi,QWORD[8+r9*8+rsp] | 244 mov rsi,QWORD[8+r9*8+rsp] |
219 mov rax,1 | 245 mov rax,1 |
220 » mov» r15,QWORD[rsi] | 246 » mov» r15,QWORD[((-48))+rsi] |
221 » mov» r14,QWORD[8+rsi] | 247 » mov» r14,QWORD[((-40))+rsi] |
222 » mov» r13,QWORD[16+rsi] | 248 » mov» r13,QWORD[((-32))+rsi] |
223 » mov» r12,QWORD[24+rsi] | 249 » mov» r12,QWORD[((-24))+rsi] |
224 » mov» rbp,QWORD[32+rsi] | 250 » mov» rbp,QWORD[((-16))+rsi] |
225 » mov» rbx,QWORD[40+rsi] | 251 » mov» rbx,QWORD[((-8))+rsi] |
226 » lea» rsp,[48+rsi] | 252 » lea» rsp,[rsi] |
227 $L$mul_epilogue: | 253 $L$mul_epilogue: |
228 mov rdi,QWORD[8+rsp] ;WIN64 epilogue | 254 mov rdi,QWORD[8+rsp] ;WIN64 epilogue |
229 mov rsi,QWORD[16+rsp] | 255 mov rsi,QWORD[16+rsp] |
230 DB 0F3h,0C3h ;repret | 256 DB 0F3h,0C3h ;repret |
231 $L$SEH_end_bn_mul_mont: | 257 $L$SEH_end_bn_mul_mont: |
232 | 258 |
233 ALIGN 16 | 259 ALIGN 16 |
234 bn_mul4x_mont: | 260 bn_mul4x_mont: |
235 mov QWORD[8+rsp],rdi ;WIN64 prologue | 261 mov QWORD[8+rsp],rdi ;WIN64 prologue |
236 mov QWORD[16+rsp],rsi | 262 mov QWORD[16+rsp],rsi |
237 mov rax,rsp | 263 mov rax,rsp |
238 $L$SEH_begin_bn_mul4x_mont: | 264 $L$SEH_begin_bn_mul4x_mont: |
239 mov rdi,rcx | 265 mov rdi,rcx |
240 mov rsi,rdx | 266 mov rsi,rdx |
241 mov rdx,r8 | 267 mov rdx,r8 |
242 mov rcx,r9 | 268 mov rcx,r9 |
243 mov r8,QWORD[40+rsp] | 269 mov r8,QWORD[40+rsp] |
244 mov r9,QWORD[48+rsp] | 270 mov r9,QWORD[48+rsp] |
245 | 271 |
246 | 272 |
| 273 mov r9d,r9d |
| 274 mov rax,rsp |
247 $L$mul4x_enter: | 275 $L$mul4x_enter: |
248 push rbx | 276 push rbx |
249 push rbp | 277 push rbp |
250 push r12 | 278 push r12 |
251 push r13 | 279 push r13 |
252 push r14 | 280 push r14 |
253 push r15 | 281 push r15 |
254 | 282 |
255 » mov» r9d,r9d | 283 » neg» r9 |
256 » lea» r10,[4+r9] | |
257 mov r11,rsp | 284 mov r11,rsp |
258 » neg» r10 | 285 » lea» r10,[((-32))+r9*8+rsp] |
259 » lea» rsp,[r10*8+rsp] | 286 » neg» r9 |
260 » and» rsp,-1024 | 287 » and» r10,-1024 |
261 | 288 |
262 » mov» QWORD[8+r9*8+rsp],r11 | 289 » sub» r11,r10 |
| 290 » and» r11,-4096 |
| 291 » lea» rsp,[r11*1+r10] |
| 292 » mov» r11,QWORD[rsp] |
| 293 » cmp» rsp,r10 |
| 294 » ja» NEAR $L$mul4x_page_walk |
| 295 » jmp» NEAR $L$mul4x_page_walk_done |
| 296 |
| 297 $L$mul4x_page_walk: |
| 298 » lea» rsp,[((-4096))+rsp] |
| 299 » mov» r11,QWORD[rsp] |
| 300 » cmp» rsp,r10 |
| 301 » ja» NEAR $L$mul4x_page_walk |
| 302 $L$mul4x_page_walk_done: |
| 303 |
| 304 » mov» QWORD[8+r9*8+rsp],rax |
263 $L$mul4x_body: | 305 $L$mul4x_body: |
264 mov QWORD[16+r9*8+rsp],rdi | 306 mov QWORD[16+r9*8+rsp],rdi |
265 mov r12,rdx | 307 mov r12,rdx |
266 mov r8,QWORD[r8] | 308 mov r8,QWORD[r8] |
267 mov rbx,QWORD[r12] | 309 mov rbx,QWORD[r12] |
268 mov rax,QWORD[rsi] | 310 mov rax,QWORD[rsi] |
269 | 311 |
270 xor r14,r14 | 312 xor r14,r14 |
271 xor r15,r15 | 313 xor r15,r15 |
272 | 314 |
(...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
553 adc rdi,0 | 595 adc rdi,0 |
554 add r13,QWORD[r9*8+rsp] | 596 add r13,QWORD[r9*8+rsp] |
555 adc rdi,0 | 597 adc rdi,0 |
556 mov QWORD[((-8))+r15*8+rsp],r13 | 598 mov QWORD[((-8))+r15*8+rsp],r13 |
557 mov QWORD[r15*8+rsp],rdi | 599 mov QWORD[r15*8+rsp],rdi |
558 | 600 |
559 cmp r14,r9 | 601 cmp r14,r9 |
560 jb NEAR $L$outer4x | 602 jb NEAR $L$outer4x |
561 mov rdi,QWORD[16+r9*8+rsp] | 603 mov rdi,QWORD[16+r9*8+rsp] |
562 mov rax,QWORD[rsp] | 604 mov rax,QWORD[rsp] |
| 605 pxor xmm0,xmm0 |
563 mov rdx,QWORD[8+rsp] | 606 mov rdx,QWORD[8+rsp] |
564 shr r9,2 | 607 shr r9,2 |
565 lea rsi,[rsp] | 608 lea rsi,[rsp] |
566 xor r14,r14 | 609 xor r14,r14 |
567 | 610 |
568 sub rax,QWORD[rcx] | 611 sub rax,QWORD[rcx] |
569 mov rbx,QWORD[16+rsi] | 612 mov rbx,QWORD[16+rsi] |
570 mov rbp,QWORD[24+rsi] | 613 mov rbp,QWORD[24+rsi] |
571 sbb rdx,QWORD[8+rcx] | 614 sbb rdx,QWORD[8+rcx] |
572 lea r15,[((-1))+r9] | 615 lea r15,[((-1))+r9] |
(...skipping 17 matching lines...) Expand all Loading... |
590 jnz NEAR $L$sub4x | 633 jnz NEAR $L$sub4x |
591 | 634 |
592 mov QWORD[r14*8+rdi],rax | 635 mov QWORD[r14*8+rdi],rax |
593 mov rax,QWORD[32+r14*8+rsi] | 636 mov rax,QWORD[32+r14*8+rsi] |
594 sbb rbx,QWORD[16+r14*8+rcx] | 637 sbb rbx,QWORD[16+r14*8+rcx] |
595 mov QWORD[8+r14*8+rdi],rdx | 638 mov QWORD[8+r14*8+rdi],rdx |
596 sbb rbp,QWORD[24+r14*8+rcx] | 639 sbb rbp,QWORD[24+r14*8+rcx] |
597 mov QWORD[16+r14*8+rdi],rbx | 640 mov QWORD[16+r14*8+rdi],rbx |
598 | 641 |
599 sbb rax,0 | 642 sbb rax,0 |
600 DB 66h, 48h, 0fh, 6eh, 0c0h | |
601 punpcklqdq xmm0,xmm0 | |
602 mov QWORD[24+r14*8+rdi],rbp | 643 mov QWORD[24+r14*8+rdi],rbp |
603 xor r14,r14 | 644 xor r14,r14 |
| 645 and rsi,rax |
| 646 not rax |
| 647 mov rcx,rdi |
| 648 and rcx,rax |
| 649 lea r15,[((-1))+r9] |
| 650 or rsi,rcx |
604 | 651 |
605 » mov» r15,r9 | 652 » movdqu» xmm1,XMMWORD[rsi] |
606 » pxor» xmm5,xmm5 | 653 » movdqa» XMMWORD[rsp],xmm0 |
| 654 » movdqu» XMMWORD[rdi],xmm1 |
607 jmp NEAR $L$copy4x | 655 jmp NEAR $L$copy4x |
608 ALIGN 16 | 656 ALIGN 16 |
609 $L$copy4x: | 657 $L$copy4x: |
610 » movdqu» xmm2,XMMWORD[r14*1+rsp] | 658 » movdqu» xmm2,XMMWORD[16+r14*1+rsi] |
611 » movdqu» xmm4,XMMWORD[16+r14*1+rsp] | 659 » movdqu» xmm1,XMMWORD[32+r14*1+rsi] |
612 » movdqu» xmm1,XMMWORD[r14*1+rdi] | 660 » movdqa» XMMWORD[16+r14*1+rsp],xmm0 |
613 » movdqu» xmm3,XMMWORD[16+r14*1+rdi] | 661 » movdqu» XMMWORD[16+r14*1+rdi],xmm2 |
614 » pxor» xmm2,xmm1 | 662 » movdqa» XMMWORD[32+r14*1+rsp],xmm0 |
615 » pxor» xmm4,xmm3 | 663 » movdqu» XMMWORD[32+r14*1+rdi],xmm1 |
616 » pand» xmm2,xmm0 | |
617 » pand» xmm4,xmm0 | |
618 » pxor» xmm2,xmm1 | |
619 » pxor» xmm4,xmm3 | |
620 » movdqu» XMMWORD[r14*1+rdi],xmm2 | |
621 » movdqu» XMMWORD[16+r14*1+rdi],xmm4 | |
622 » movdqa» XMMWORD[r14*1+rsp],xmm5 | |
623 » movdqa» XMMWORD[16+r14*1+rsp],xmm5 | |
624 | |
625 lea r14,[32+r14] | 664 lea r14,[32+r14] |
626 dec r15 | 665 dec r15 |
627 jnz NEAR $L$copy4x | 666 jnz NEAR $L$copy4x |
628 | 667 |
629 shl r9,2 | 668 shl r9,2 |
| 669 movdqu xmm2,XMMWORD[16+r14*1+rsi] |
| 670 movdqa XMMWORD[16+r14*1+rsp],xmm0 |
| 671 movdqu XMMWORD[16+r14*1+rdi],xmm2 |
630 mov rsi,QWORD[8+r9*8+rsp] | 672 mov rsi,QWORD[8+r9*8+rsp] |
631 mov rax,1 | 673 mov rax,1 |
632 » mov» r15,QWORD[rsi] | 674 » mov» r15,QWORD[((-48))+rsi] |
633 » mov» r14,QWORD[8+rsi] | 675 » mov» r14,QWORD[((-40))+rsi] |
634 » mov» r13,QWORD[16+rsi] | 676 » mov» r13,QWORD[((-32))+rsi] |
635 » mov» r12,QWORD[24+rsi] | 677 » mov» r12,QWORD[((-24))+rsi] |
636 » mov» rbp,QWORD[32+rsi] | 678 » mov» rbp,QWORD[((-16))+rsi] |
637 » mov» rbx,QWORD[40+rsi] | 679 » mov» rbx,QWORD[((-8))+rsi] |
638 » lea» rsp,[48+rsi] | 680 » lea» rsp,[rsi] |
639 $L$mul4x_epilogue: | 681 $L$mul4x_epilogue: |
640 mov rdi,QWORD[8+rsp] ;WIN64 epilogue | 682 mov rdi,QWORD[8+rsp] ;WIN64 epilogue |
641 mov rsi,QWORD[16+rsp] | 683 mov rsi,QWORD[16+rsp] |
642 DB 0F3h,0C3h ;repret | 684 DB 0F3h,0C3h ;repret |
643 $L$SEH_end_bn_mul4x_mont: | 685 $L$SEH_end_bn_mul4x_mont: |
644 EXTERN bn_sqr8x_internal | 686 EXTERN bn_sqr8x_internal |
645 | 687 |
646 | 688 |
647 ALIGN 32 | 689 ALIGN 32 |
648 bn_sqr8x_mont: | 690 bn_sqr8x_mont: |
649 mov QWORD[8+rsp],rdi ;WIN64 prologue | 691 mov QWORD[8+rsp],rdi ;WIN64 prologue |
650 mov QWORD[16+rsp],rsi | 692 mov QWORD[16+rsp],rsi |
651 mov rax,rsp | 693 mov rax,rsp |
652 $L$SEH_begin_bn_sqr8x_mont: | 694 $L$SEH_begin_bn_sqr8x_mont: |
653 mov rdi,rcx | 695 mov rdi,rcx |
654 mov rsi,rdx | 696 mov rsi,rdx |
655 mov rdx,r8 | 697 mov rdx,r8 |
656 mov rcx,r9 | 698 mov rcx,r9 |
657 mov r8,QWORD[40+rsp] | 699 mov r8,QWORD[40+rsp] |
658 mov r9,QWORD[48+rsp] | 700 mov r9,QWORD[48+rsp] |
659 | 701 |
660 | 702 |
| 703 mov rax,rsp |
661 $L$sqr8x_enter: | 704 $L$sqr8x_enter: |
662 mov rax,rsp | |
663 push rbx | 705 push rbx |
664 push rbp | 706 push rbp |
665 push r12 | 707 push r12 |
666 push r13 | 708 push r13 |
667 push r14 | 709 push r14 |
668 push r15 | 710 push r15 |
| 711 $L$sqr8x_prologue: |
669 | 712 |
670 mov r10d,r9d | 713 mov r10d,r9d |
671 shl r9d,3 | 714 shl r9d,3 |
672 shl r10,3+2 | 715 shl r10,3+2 |
673 neg r9 | 716 neg r9 |
674 | 717 |
675 | 718 |
676 | 719 |
677 | 720 |
678 | 721 |
679 | 722 |
680 lea r11,[((-64))+r9*2+rsp] | 723 lea r11,[((-64))+r9*2+rsp] |
| 724 mov rbp,rsp |
681 mov r8,QWORD[r8] | 725 mov r8,QWORD[r8] |
682 sub r11,rsi | 726 sub r11,rsi |
683 and r11,4095 | 727 and r11,4095 |
684 cmp r10,r11 | 728 cmp r10,r11 |
685 jb NEAR $L$sqr8x_sp_alt | 729 jb NEAR $L$sqr8x_sp_alt |
686 » sub» rsp,r11 | 730 » sub» rbp,r11 |
687 » lea» rsp,[((-64))+r9*2+rsp] | 731 » lea» rbp,[((-64))+r9*2+rbp] |
688 jmp NEAR $L$sqr8x_sp_done | 732 jmp NEAR $L$sqr8x_sp_done |
689 | 733 |
690 ALIGN 32 | 734 ALIGN 32 |
691 $L$sqr8x_sp_alt: | 735 $L$sqr8x_sp_alt: |
692 lea r10,[((4096-64))+r9*2] | 736 lea r10,[((4096-64))+r9*2] |
693 » lea» rsp,[((-64))+r9*2+rsp] | 737 » lea» rbp,[((-64))+r9*2+rbp] |
694 sub r11,r10 | 738 sub r11,r10 |
695 mov r10,0 | 739 mov r10,0 |
696 cmovc r11,r10 | 740 cmovc r11,r10 |
697 » sub» rsp,r11 | 741 » sub» rbp,r11 |
698 $L$sqr8x_sp_done: | 742 $L$sqr8x_sp_done: |
699 » and» rsp,-64 | 743 » and» rbp,-64 |
| 744 » mov» r11,rsp |
| 745 » sub» r11,rbp |
| 746 » and» r11,-4096 |
| 747 » lea» rsp,[rbp*1+r11] |
| 748 » mov» r10,QWORD[rsp] |
| 749 » cmp» rsp,rbp |
| 750 » ja» NEAR $L$sqr8x_page_walk |
| 751 » jmp» NEAR $L$sqr8x_page_walk_done |
| 752 |
| 753 ALIGN» 16 |
| 754 $L$sqr8x_page_walk: |
| 755 » lea» rsp,[((-4096))+rsp] |
| 756 » mov» r10,QWORD[rsp] |
| 757 » cmp» rsp,rbp |
| 758 » ja» NEAR $L$sqr8x_page_walk |
| 759 $L$sqr8x_page_walk_done: |
| 760 |
700 mov r10,r9 | 761 mov r10,r9 |
701 neg r9 | 762 neg r9 |
702 | 763 |
703 mov QWORD[32+rsp],r8 | 764 mov QWORD[32+rsp],r8 |
704 mov QWORD[40+rsp],rax | 765 mov QWORD[40+rsp],rax |
705 $L$sqr8x_body: | 766 $L$sqr8x_body: |
706 | 767 |
707 DB 102,72,15,110,209 | 768 DB 102,72,15,110,209 |
708 pxor xmm0,xmm0 | 769 pxor xmm0,xmm0 |
709 DB 102,72,15,110,207 | 770 DB 102,72,15,110,207 |
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
822 | 883 |
823 mov rax,QWORD[152+r8] | 884 mov rax,QWORD[152+r8] |
824 | 885 |
825 mov r10d,DWORD[4+r11] | 886 mov r10d,DWORD[4+r11] |
826 lea r10,[r10*1+rsi] | 887 lea r10,[r10*1+rsi] |
827 cmp rbx,r10 | 888 cmp rbx,r10 |
828 jae NEAR $L$common_seh_tail | 889 jae NEAR $L$common_seh_tail |
829 | 890 |
830 mov r10,QWORD[192+r8] | 891 mov r10,QWORD[192+r8] |
831 mov rax,QWORD[8+r10*8+rax] | 892 mov rax,QWORD[8+r10*8+rax] |
832 lea rax,[48+rax] | |
833 | 893 |
834 » mov» rbx,QWORD[((-8))+rax] | 894 » jmp» NEAR $L$common_pop_regs |
835 » mov» rbp,QWORD[((-16))+rax] | |
836 » mov» r12,QWORD[((-24))+rax] | |
837 » mov» r13,QWORD[((-32))+rax] | |
838 » mov» r14,QWORD[((-40))+rax] | |
839 » mov» r15,QWORD[((-48))+rax] | |
840 » mov» QWORD[144+r8],rbx | |
841 » mov» QWORD[160+r8],rbp | |
842 » mov» QWORD[216+r8],r12 | |
843 » mov» QWORD[224+r8],r13 | |
844 » mov» QWORD[232+r8],r14 | |
845 » mov» QWORD[240+r8],r15 | |
846 | |
847 » jmp» NEAR $L$common_seh_tail | |
848 | 895 |
849 | 896 |
850 | 897 |
851 ALIGN 16 | 898 ALIGN 16 |
852 sqr_handler: | 899 sqr_handler: |
853 push rsi | 900 push rsi |
854 push rdi | 901 push rdi |
855 push rbx | 902 push rbx |
856 push rbp | 903 push rbp |
857 push r12 | 904 push r12 |
858 push r13 | 905 push r13 |
859 push r14 | 906 push r14 |
860 push r15 | 907 push r15 |
861 pushfq | 908 pushfq |
862 sub rsp,64 | 909 sub rsp,64 |
863 | 910 |
864 mov rax,QWORD[120+r8] | 911 mov rax,QWORD[120+r8] |
865 mov rbx,QWORD[248+r8] | 912 mov rbx,QWORD[248+r8] |
866 | 913 |
867 mov rsi,QWORD[8+r9] | 914 mov rsi,QWORD[8+r9] |
868 mov r11,QWORD[56+r9] | 915 mov r11,QWORD[56+r9] |
869 | 916 |
870 mov r10d,DWORD[r11] | 917 mov r10d,DWORD[r11] |
871 lea r10,[r10*1+rsi] | 918 lea r10,[r10*1+rsi] |
872 cmp rbx,r10 | 919 cmp rbx,r10 |
873 jb NEAR $L$common_seh_tail | 920 jb NEAR $L$common_seh_tail |
874 | 921 |
| 922 mov r10d,DWORD[4+r11] |
| 923 lea r10,[r10*1+rsi] |
| 924 cmp rbx,r10 |
| 925 jb NEAR $L$common_pop_regs |
| 926 |
875 mov rax,QWORD[152+r8] | 927 mov rax,QWORD[152+r8] |
876 | 928 |
877 » mov» r10d,DWORD[4+r11] | 929 » mov» r10d,DWORD[8+r11] |
878 lea r10,[r10*1+rsi] | 930 lea r10,[r10*1+rsi] |
879 cmp rbx,r10 | 931 cmp rbx,r10 |
880 jae NEAR $L$common_seh_tail | 932 jae NEAR $L$common_seh_tail |
881 | 933 |
882 mov rax,QWORD[40+rax] | 934 mov rax,QWORD[40+rax] |
883 | 935 |
| 936 $L$common_pop_regs: |
884 mov rbx,QWORD[((-8))+rax] | 937 mov rbx,QWORD[((-8))+rax] |
885 mov rbp,QWORD[((-16))+rax] | 938 mov rbp,QWORD[((-16))+rax] |
886 mov r12,QWORD[((-24))+rax] | 939 mov r12,QWORD[((-24))+rax] |
887 mov r13,QWORD[((-32))+rax] | 940 mov r13,QWORD[((-32))+rax] |
888 mov r14,QWORD[((-40))+rax] | 941 mov r14,QWORD[((-40))+rax] |
889 mov r15,QWORD[((-48))+rax] | 942 mov r15,QWORD[((-48))+rax] |
890 mov QWORD[144+r8],rbx | 943 mov QWORD[144+r8],rbx |
891 mov QWORD[160+r8],rbp | 944 mov QWORD[160+r8],rbp |
892 mov QWORD[216+r8],r12 | 945 mov QWORD[216+r8],r12 |
893 mov QWORD[224+r8],r13 | 946 mov QWORD[224+r8],r13 |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
953 DB 9,0,0,0 | 1006 DB 9,0,0,0 |
954 DD mul_handler wrt ..imagebase | 1007 DD mul_handler wrt ..imagebase |
955 DD $L$mul_body wrt ..imagebase,$L$mul_epilogue wrt ..imagebase | 1008 DD $L$mul_body wrt ..imagebase,$L$mul_epilogue wrt ..imagebase |
956 $L$SEH_info_bn_mul4x_mont: | 1009 $L$SEH_info_bn_mul4x_mont: |
957 DB 9,0,0,0 | 1010 DB 9,0,0,0 |
958 DD mul_handler wrt ..imagebase | 1011 DD mul_handler wrt ..imagebase |
959 DD $L$mul4x_body wrt ..imagebase,$L$mul4x_epilogue wrt ..imagebase | 1012 DD $L$mul4x_body wrt ..imagebase,$L$mul4x_epilogue wrt ..imagebase |
960 $L$SEH_info_bn_sqr8x_mont: | 1013 $L$SEH_info_bn_sqr8x_mont: |
961 DB 9,0,0,0 | 1014 DB 9,0,0,0 |
962 DD sqr_handler wrt ..imagebase | 1015 DD sqr_handler wrt ..imagebase |
963 » DD» $L$sqr8x_body wrt ..imagebase,$L$sqr8x_epilogue wrt ..imagebase | 1016 » DD» $L$sqr8x_prologue wrt ..imagebase,$L$sqr8x_body wrt ..imagebase,
$L$sqr8x_epilogue wrt ..imagebase |
| 1017 ALIGN» 8 |
OLD | NEW |