Changeset 95221 in vbox for trunk/src/libs/openssl-3.0.3/crypto/genasm-nasm/aesni-mb-x86_64.S
- Timestamp:
- Jun 8, 2022 8:35:57 AM (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/libs/openssl-3.0.3/crypto/genasm-nasm/aesni-mb-x86_64.S
r94083 r95221 22 22 23 23 24 cmp edx,225 jb NEAR $L$enc_non_avx26 mov ecx,DWORD[((OPENSSL_ia32cap_P+4))]27 test ecx,26843545628 jnz NEAR _avx_cbc_enc_shortcut29 jmp NEAR $L$enc_non_avx30 ALIGN 1631 $L$enc_non_avx:32 24 mov rax,rsp 33 25 … … 345 337 346 338 347 cmp edx,2348 jb NEAR $L$dec_non_avx349 mov ecx,DWORD[((OPENSSL_ia32cap_P+4))]350 test ecx,268435456351 jnz NEAR _avx_cbc_dec_shortcut352 jmp NEAR $L$dec_non_avx353 ALIGN 16354 $L$dec_non_avx:355 339 mov rax,rsp 356 340 … … 643 627 644 628 $L$SEH_end_aesni_multi_cbc_decrypt: 645 646 ALIGN 32647 aesni_multi_cbc_encrypt_avx:648 mov QWORD[8+rsp],rdi ;WIN64 prologue649 mov QWORD[16+rsp],rsi650 mov rax,rsp651 $L$SEH_begin_aesni_multi_cbc_encrypt_avx:652 mov rdi,rcx653 mov rsi,rdx654 mov rdx,r8655 656 657 658 _avx_cbc_enc_shortcut:659 mov rax,rsp660 661 push rbx662 663 push rbp664 665 push r12666 667 push r13668 669 push r14670 671 push r15672 673 lea rsp,[((-168))+rsp]674 movaps XMMWORD[rsp],xmm6675 movaps XMMWORD[16+rsp],xmm7676 movaps XMMWORD[32+rsp],xmm8677 movaps XMMWORD[48+rsp],xmm9678 movaps XMMWORD[64+rsp],xmm10679 movaps XMMWORD[80+rsp],xmm11680 movaps XMMWORD[(-120)+rax],xmm12681 movaps XMMWORD[(-104)+rax],xmm13682 movaps XMMWORD[(-88)+rax],xmm14683 movaps XMMWORD[(-72)+rax],xmm15684 685 686 687 688 689 690 691 692 sub rsp,192693 and rsp,-128694 mov QWORD[16+rsp],rax695 696 697 $L$enc8x_body:698 vzeroupper699 vmovdqu xmm15,XMMWORD[rsi]700 lea rsi,[120+rsi]701 lea rdi,[160+rdi]702 shr edx,1703 704 $L$enc8x_loop_grande:705 706 xor edx,edx707 708 mov ecx,DWORD[((-144))+rdi]709 710 mov r8,QWORD[((-160))+rdi]711 cmp ecx,edx712 713 mov rbx,QWORD[((-152))+rdi]714 cmovg edx,ecx715 test ecx,ecx716 717 vmovdqu xmm2,XMMWORD[((-136))+rdi]718 mov DWORD[32+rsp],ecx719 cmovle r8,rsp720 sub rbx,r8721 mov QWORD[64+rsp],rbx722 723 mov ecx,DWORD[((-104))+rdi]724 725 mov r9,QWORD[((-120))+rdi]726 cmp ecx,edx727 728 mov rbp,QWORD[((-112))+rdi]729 cmovg edx,ecx730 test ecx,ecx731 732 vmovdqu xmm3,XMMWORD[((-96))+rdi]733 mov DWORD[36+rsp],ecx734 cmovle r9,rsp735 sub rbp,r9736 mov QWORD[72+rsp],rbp737 738 mov ecx,DWORD[((-64))+rdi]739 740 mov r10,QWORD[((-80))+rdi]741 cmp ecx,edx742 743 mov rbp,QWORD[((-72))+rdi]744 cmovg edx,ecx745 test ecx,ecx746 747 vmovdqu xmm4,XMMWORD[((-56))+rdi]748 mov DWORD[40+rsp],ecx749 cmovle r10,rsp750 sub rbp,r10751 mov QWORD[80+rsp],rbp752 753 mov ecx,DWORD[((-24))+rdi]754 755 mov r11,QWORD[((-40))+rdi]756 cmp ecx,edx757 758 mov rbp,QWORD[((-32))+rdi]759 cmovg edx,ecx760 test ecx,ecx761 762 vmovdqu xmm5,XMMWORD[((-16))+rdi]763 mov DWORD[44+rsp],ecx764 cmovle r11,rsp765 sub rbp,r11766 mov QWORD[88+rsp],rbp767 768 mov ecx,DWORD[16+rdi]769 770 mov r12,QWORD[rdi]771 cmp ecx,edx772 773 mov rbp,QWORD[8+rdi]774 cmovg edx,ecx775 test ecx,ecx776 777 vmovdqu xmm6,XMMWORD[24+rdi]778 mov DWORD[48+rsp],ecx779 cmovle r12,rsp780 sub rbp,r12781 mov QWORD[96+rsp],rbp782 783 mov ecx,DWORD[56+rdi]784 785 mov r13,QWORD[40+rdi]786 cmp ecx,edx787 788 mov rbp,QWORD[48+rdi]789 cmovg edx,ecx790 test ecx,ecx791 792 vmovdqu xmm7,XMMWORD[64+rdi]793 mov DWORD[52+rsp],ecx794 cmovle r13,rsp795 sub rbp,r13796 mov QWORD[104+rsp],rbp797 798 mov ecx,DWORD[96+rdi]799 800 mov r14,QWORD[80+rdi]801 cmp ecx,edx802 803 mov rbp,QWORD[88+rdi]804 cmovg edx,ecx805 test ecx,ecx806 807 vmovdqu xmm8,XMMWORD[104+rdi]808 mov DWORD[56+rsp],ecx809 cmovle r14,rsp810 sub rbp,r14811 mov QWORD[112+rsp],rbp812 813 mov ecx,DWORD[136+rdi]814 815 mov r15,QWORD[120+rdi]816 cmp ecx,edx817 818 mov rbp,QWORD[128+rdi]819 cmovg edx,ecx820 test ecx,ecx821 822 vmovdqu xmm9,XMMWORD[144+rdi]823 mov DWORD[60+rsp],ecx824 cmovle r15,rsp825 sub rbp,r15826 mov QWORD[120+rsp],rbp827 test edx,edx828 jz NEAR $L$enc8x_done829 830 vmovups xmm1,XMMWORD[((16-120))+rsi]831 vmovups xmm0,XMMWORD[((32-120))+rsi]832 mov eax,DWORD[((240-120))+rsi]833 834 vpxor xmm10,xmm15,XMMWORD[r8]835 lea rbp,[128+rsp]836 vpxor xmm11,xmm15,XMMWORD[r9]837 vpxor xmm12,xmm15,XMMWORD[r10]838 vpxor xmm13,xmm15,XMMWORD[r11]839 vpxor xmm2,xmm2,xmm10840 vpxor xmm10,xmm15,XMMWORD[r12]841 vpxor xmm3,xmm3,xmm11842 vpxor xmm11,xmm15,XMMWORD[r13]843 vpxor xmm4,xmm4,xmm12844 vpxor xmm12,xmm15,XMMWORD[r14]845 vpxor xmm5,xmm5,xmm13846 vpxor xmm13,xmm15,XMMWORD[r15]847 vpxor xmm6,xmm6,xmm10848 mov ecx,1849 vpxor xmm7,xmm7,xmm11850 vpxor xmm8,xmm8,xmm12851 vpxor xmm9,xmm9,xmm13852 jmp NEAR $L$oop_enc8x853 854 ALIGN 32855 $L$oop_enc8x:856 vaesenc xmm2,xmm2,xmm1857 cmp ecx,DWORD[((32+0))+rsp]858 vaesenc xmm3,xmm3,xmm1859 prefetcht0 [31+r8]860 vaesenc xmm4,xmm4,xmm1861 vaesenc xmm5,xmm5,xmm1862 lea rbx,[rbx*1+r8]863 cmovge r8,rsp864 vaesenc xmm6,xmm6,xmm1865 cmovg rbx,rsp866 vaesenc xmm7,xmm7,xmm1867 sub rbx,r8868 vaesenc xmm8,xmm8,xmm1869 vpxor xmm10,xmm15,XMMWORD[16+r8]870 mov QWORD[((64+0))+rsp],rbx871 vaesenc xmm9,xmm9,xmm1872 vmovups xmm1,XMMWORD[((-72))+rsi]873 lea r8,[16+rbx*1+r8]874 vmovdqu XMMWORD[rbp],xmm10875 vaesenc xmm2,xmm2,xmm0876 cmp ecx,DWORD[((32+4))+rsp]877 mov rbx,QWORD[((64+8))+rsp]878 vaesenc xmm3,xmm3,xmm0879 prefetcht0 [31+r9]880 vaesenc xmm4,xmm4,xmm0881 vaesenc xmm5,xmm5,xmm0882 lea rbx,[rbx*1+r9]883 cmovge r9,rsp884 vaesenc xmm6,xmm6,xmm0885 cmovg rbx,rsp886 vaesenc xmm7,xmm7,xmm0887 sub rbx,r9888 vaesenc xmm8,xmm8,xmm0889 vpxor xmm11,xmm15,XMMWORD[16+r9]890 mov QWORD[((64+8))+rsp],rbx891 vaesenc xmm9,xmm9,xmm0892 vmovups xmm0,XMMWORD[((-56))+rsi]893 lea r9,[16+rbx*1+r9]894 vmovdqu XMMWORD[16+rbp],xmm11895 vaesenc xmm2,xmm2,xmm1896 cmp ecx,DWORD[((32+8))+rsp]897 mov rbx,QWORD[((64+16))+rsp]898 vaesenc xmm3,xmm3,xmm1899 prefetcht0 [31+r10]900 vaesenc xmm4,xmm4,xmm1901 prefetcht0 [15+r8]902 vaesenc xmm5,xmm5,xmm1903 lea rbx,[rbx*1+r10]904 cmovge r10,rsp905 vaesenc xmm6,xmm6,xmm1906 cmovg rbx,rsp907 vaesenc xmm7,xmm7,xmm1908 sub rbx,r10909 vaesenc xmm8,xmm8,xmm1910 vpxor xmm12,xmm15,XMMWORD[16+r10]911 mov QWORD[((64+16))+rsp],rbx912 vaesenc xmm9,xmm9,xmm1913 vmovups xmm1,XMMWORD[((-40))+rsi]914 lea r10,[16+rbx*1+r10]915 vmovdqu XMMWORD[32+rbp],xmm12916 vaesenc xmm2,xmm2,xmm0917 cmp ecx,DWORD[((32+12))+rsp]918 mov rbx,QWORD[((64+24))+rsp]919 vaesenc xmm3,xmm3,xmm0920 prefetcht0 [31+r11]921 vaesenc xmm4,xmm4,xmm0922 prefetcht0 [15+r9]923 vaesenc xmm5,xmm5,xmm0924 lea rbx,[rbx*1+r11]925 cmovge r11,rsp926 vaesenc xmm6,xmm6,xmm0927 cmovg rbx,rsp928 vaesenc xmm7,xmm7,xmm0929 sub rbx,r11930 vaesenc xmm8,xmm8,xmm0931 vpxor xmm13,xmm15,XMMWORD[16+r11]932 mov QWORD[((64+24))+rsp],rbx933 vaesenc xmm9,xmm9,xmm0934 vmovups xmm0,XMMWORD[((-24))+rsi]935 lea r11,[16+rbx*1+r11]936 vmovdqu XMMWORD[48+rbp],xmm13937 vaesenc xmm2,xmm2,xmm1938 cmp ecx,DWORD[((32+16))+rsp]939 mov rbx,QWORD[((64+32))+rsp]940 vaesenc xmm3,xmm3,xmm1941 prefetcht0 [31+r12]942 vaesenc xmm4,xmm4,xmm1943 prefetcht0 [15+r10]944 vaesenc xmm5,xmm5,xmm1945 lea rbx,[rbx*1+r12]946 cmovge r12,rsp947 vaesenc xmm6,xmm6,xmm1948 cmovg rbx,rsp949 vaesenc xmm7,xmm7,xmm1950 sub rbx,r12951 vaesenc xmm8,xmm8,xmm1952 vpxor xmm10,xmm15,XMMWORD[16+r12]953 mov QWORD[((64+32))+rsp],rbx954 vaesenc xmm9,xmm9,xmm1955 vmovups xmm1,XMMWORD[((-8))+rsi]956 lea r12,[16+rbx*1+r12]957 vaesenc xmm2,xmm2,xmm0958 cmp ecx,DWORD[((32+20))+rsp]959 mov rbx,QWORD[((64+40))+rsp]960 vaesenc xmm3,xmm3,xmm0961 prefetcht0 [31+r13]962 vaesenc xmm4,xmm4,xmm0963 prefetcht0 [15+r11]964 vaesenc xmm5,xmm5,xmm0965 lea rbx,[r13*1+rbx]966 cmovge r13,rsp967 vaesenc xmm6,xmm6,xmm0968 cmovg rbx,rsp969 vaesenc xmm7,xmm7,xmm0970 sub rbx,r13971 vaesenc xmm8,xmm8,xmm0972 vpxor xmm11,xmm15,XMMWORD[16+r13]973 mov QWORD[((64+40))+rsp],rbx974 vaesenc xmm9,xmm9,xmm0975 vmovups xmm0,XMMWORD[8+rsi]976 lea r13,[16+rbx*1+r13]977 vaesenc xmm2,xmm2,xmm1978 cmp ecx,DWORD[((32+24))+rsp]979 mov rbx,QWORD[((64+48))+rsp]980 vaesenc xmm3,xmm3,xmm1981 prefetcht0 [31+r14]982 vaesenc xmm4,xmm4,xmm1983 prefetcht0 [15+r12]984 vaesenc xmm5,xmm5,xmm1985 lea rbx,[rbx*1+r14]986 cmovge r14,rsp987 vaesenc xmm6,xmm6,xmm1988 cmovg rbx,rsp989 vaesenc xmm7,xmm7,xmm1990 sub rbx,r14991 vaesenc xmm8,xmm8,xmm1992 vpxor xmm12,xmm15,XMMWORD[16+r14]993 mov QWORD[((64+48))+rsp],rbx994 vaesenc xmm9,xmm9,xmm1995 vmovups xmm1,XMMWORD[24+rsi]996 lea r14,[16+rbx*1+r14]997 vaesenc xmm2,xmm2,xmm0998 cmp ecx,DWORD[((32+28))+rsp]999 mov rbx,QWORD[((64+56))+rsp]1000 vaesenc xmm3,xmm3,xmm01001 prefetcht0 [31+r15]1002 vaesenc xmm4,xmm4,xmm01003 prefetcht0 [15+r13]1004 vaesenc xmm5,xmm5,xmm01005 lea rbx,[rbx*1+r15]1006 cmovge r15,rsp1007 vaesenc xmm6,xmm6,xmm01008 cmovg rbx,rsp1009 vaesenc xmm7,xmm7,xmm01010 sub rbx,r151011 vaesenc xmm8,xmm8,xmm01012 vpxor xmm13,xmm15,XMMWORD[16+r15]1013 mov QWORD[((64+56))+rsp],rbx1014 vaesenc xmm9,xmm9,xmm01015 vmovups xmm0,XMMWORD[40+rsi]1016 lea r15,[16+rbx*1+r15]1017 vmovdqu xmm14,XMMWORD[32+rsp]1018 prefetcht0 [15+r14]1019 prefetcht0 [15+r15]1020 cmp eax,111021 jb NEAR $L$enc8x_tail1022 1023 vaesenc xmm2,xmm2,xmm11024 vaesenc xmm3,xmm3,xmm11025 vaesenc xmm4,xmm4,xmm11026 vaesenc xmm5,xmm5,xmm11027 vaesenc xmm6,xmm6,xmm11028 vaesenc xmm7,xmm7,xmm11029 vaesenc xmm8,xmm8,xmm11030 vaesenc xmm9,xmm9,xmm11031 vmovups xmm1,XMMWORD[((176-120))+rsi]1032 1033 vaesenc xmm2,xmm2,xmm01034 vaesenc xmm3,xmm3,xmm01035 vaesenc xmm4,xmm4,xmm01036 vaesenc xmm5,xmm5,xmm01037 vaesenc xmm6,xmm6,xmm01038 vaesenc xmm7,xmm7,xmm01039 vaesenc xmm8,xmm8,xmm01040 vaesenc xmm9,xmm9,xmm01041 vmovups xmm0,XMMWORD[((192-120))+rsi]1042 je NEAR $L$enc8x_tail1043 1044 vaesenc xmm2,xmm2,xmm11045 vaesenc xmm3,xmm3,xmm11046 vaesenc xmm4,xmm4,xmm11047 vaesenc xmm5,xmm5,xmm11048 vaesenc xmm6,xmm6,xmm11049 vaesenc xmm7,xmm7,xmm11050 vaesenc xmm8,xmm8,xmm11051 vaesenc xmm9,xmm9,xmm11052 vmovups xmm1,XMMWORD[((208-120))+rsi]1053 1054 vaesenc xmm2,xmm2,xmm01055 vaesenc xmm3,xmm3,xmm01056 vaesenc xmm4,xmm4,xmm01057 vaesenc xmm5,xmm5,xmm01058 vaesenc xmm6,xmm6,xmm01059 vaesenc xmm7,xmm7,xmm01060 vaesenc xmm8,xmm8,xmm01061 vaesenc xmm9,xmm9,xmm01062 vmovups xmm0,XMMWORD[((224-120))+rsi]1063 1064 $L$enc8x_tail:1065 vaesenc xmm2,xmm2,xmm11066 vpxor xmm15,xmm15,xmm151067 vaesenc xmm3,xmm3,xmm11068 vaesenc xmm4,xmm4,xmm11069 vpcmpgtd xmm15,xmm14,xmm151070 vaesenc xmm5,xmm5,xmm11071 vaesenc xmm6,xmm6,xmm11072 vpaddd xmm15,xmm15,xmm141073 vmovdqu xmm14,XMMWORD[48+rsp]1074 vaesenc xmm7,xmm7,xmm11075 mov rbx,QWORD[64+rsp]1076 vaesenc xmm8,xmm8,xmm11077 vaesenc xmm9,xmm9,xmm11078 vmovups xmm1,XMMWORD[((16-120))+rsi]1079 1080 vaesenclast xmm2,xmm2,xmm01081 vmovdqa XMMWORD[32+rsp],xmm151082 vpxor xmm15,xmm15,xmm151083 vaesenclast xmm3,xmm3,xmm01084 vaesenclast xmm4,xmm4,xmm01085 vpcmpgtd xmm15,xmm14,xmm151086 vaesenclast xmm5,xmm5,xmm01087 vaesenclast xmm6,xmm6,xmm01088 vpaddd xmm14,xmm14,xmm151089 vmovdqu xmm15,XMMWORD[((-120))+rsi]1090 vaesenclast xmm7,xmm7,xmm01091 vaesenclast xmm8,xmm8,xmm01092 vmovdqa XMMWORD[48+rsp],xmm141093 vaesenclast xmm9,xmm9,xmm01094 vmovups xmm0,XMMWORD[((32-120))+rsi]1095 1096 vmovups XMMWORD[(-16)+r8],xmm21097 sub r8,rbx1098 vpxor xmm2,xmm2,XMMWORD[rbp]1099 vmovups XMMWORD[(-16)+r9],xmm31100 sub r9,QWORD[72+rsp]1101 vpxor xmm3,xmm3,XMMWORD[16+rbp]1102 vmovups XMMWORD[(-16)+r10],xmm41103 sub r10,QWORD[80+rsp]1104 vpxor xmm4,xmm4,XMMWORD[32+rbp]1105 vmovups XMMWORD[(-16)+r11],xmm51106 sub r11,QWORD[88+rsp]1107 vpxor xmm5,xmm5,XMMWORD[48+rbp]1108 vmovups XMMWORD[(-16)+r12],xmm61109 sub r12,QWORD[96+rsp]1110 vpxor xmm6,xmm6,xmm101111 vmovups XMMWORD[(-16)+r13],xmm71112 sub r13,QWORD[104+rsp]1113 vpxor xmm7,xmm7,xmm111114 vmovups XMMWORD[(-16)+r14],xmm81115 sub r14,QWORD[112+rsp]1116 vpxor xmm8,xmm8,xmm121117 vmovups XMMWORD[(-16)+r15],xmm91118 sub r15,QWORD[120+rsp]1119 vpxor xmm9,xmm9,xmm131120 1121 dec edx1122 jnz NEAR $L$oop_enc8x1123 1124 mov rax,QWORD[16+rsp]1125 1126 1127 1128 1129 1130 1131 $L$enc8x_done:1132 vzeroupper1133 movaps xmm6,XMMWORD[((-216))+rax]1134 movaps xmm7,XMMWORD[((-200))+rax]1135 movaps xmm8,XMMWORD[((-184))+rax]1136 movaps xmm9,XMMWORD[((-168))+rax]1137 movaps xmm10,XMMWORD[((-152))+rax]1138 movaps xmm11,XMMWORD[((-136))+rax]1139 movaps xmm12,XMMWORD[((-120))+rax]1140 movaps xmm13,XMMWORD[((-104))+rax]1141 movaps xmm14,XMMWORD[((-88))+rax]1142 movaps xmm15,XMMWORD[((-72))+rax]1143 mov r15,QWORD[((-48))+rax]1144 1145 mov r14,QWORD[((-40))+rax]1146 1147 mov r13,QWORD[((-32))+rax]1148 1149 mov r12,QWORD[((-24))+rax]1150 1151 mov rbp,QWORD[((-16))+rax]1152 1153 mov rbx,QWORD[((-8))+rax]1154 1155 lea rsp,[rax]1156 1157 $L$enc8x_epilogue:1158 mov rdi,QWORD[8+rsp] ;WIN64 epilogue1159 mov rsi,QWORD[16+rsp]1160 DB 0F3h,0C3h ;repret1161 1162 $L$SEH_end_aesni_multi_cbc_encrypt_avx:1163 1164 1165 ALIGN 321166 aesni_multi_cbc_decrypt_avx:1167 mov QWORD[8+rsp],rdi ;WIN64 prologue1168 mov QWORD[16+rsp],rsi1169 mov rax,rsp1170 $L$SEH_begin_aesni_multi_cbc_decrypt_avx:1171 mov rdi,rcx1172 mov rsi,rdx1173 mov rdx,r81174 1175 1176 1177 _avx_cbc_dec_shortcut:1178 mov rax,rsp1179 1180 push rbx1181 1182 push rbp1183 1184 push r121185 1186 push r131187 1188 push r141189 1190 push r151191 1192 lea rsp,[((-168))+rsp]1193 movaps XMMWORD[rsp],xmm61194 movaps XMMWORD[16+rsp],xmm71195 movaps XMMWORD[32+rsp],xmm81196 movaps XMMWORD[48+rsp],xmm91197 movaps XMMWORD[64+rsp],xmm101198 movaps XMMWORD[80+rsp],xmm111199 movaps XMMWORD[(-120)+rax],xmm121200 movaps XMMWORD[(-104)+rax],xmm131201 movaps XMMWORD[(-88)+rax],xmm141202 movaps XMMWORD[(-72)+rax],xmm151203 1204 1205 1206 1207 1208 1209 1210 1211 1212 sub rsp,2561213 and rsp,-2561214 sub rsp,1921215 mov QWORD[16+rsp],rax1216 1217 1218 $L$dec8x_body:1219 vzeroupper1220 vmovdqu xmm15,XMMWORD[rsi]1221 lea rsi,[120+rsi]1222 lea rdi,[160+rdi]1223 shr edx,11224 1225 $L$dec8x_loop_grande:1226 1227 xor edx,edx1228 1229 mov ecx,DWORD[((-144))+rdi]1230 1231 mov r8,QWORD[((-160))+rdi]1232 cmp ecx,edx1233 1234 mov rbx,QWORD[((-152))+rdi]1235 cmovg edx,ecx1236 test ecx,ecx1237 1238 vmovdqu xmm2,XMMWORD[((-136))+rdi]1239 mov DWORD[32+rsp],ecx1240 cmovle r8,rsp1241 sub rbx,r81242 mov QWORD[64+rsp],rbx1243 vmovdqu XMMWORD[192+rsp],xmm21244 1245 mov ecx,DWORD[((-104))+rdi]1246 1247 mov r9,QWORD[((-120))+rdi]1248 cmp ecx,edx1249 1250 mov rbp,QWORD[((-112))+rdi]1251 cmovg edx,ecx1252 test ecx,ecx1253 1254 vmovdqu xmm3,XMMWORD[((-96))+rdi]1255 mov DWORD[36+rsp],ecx1256 cmovle r9,rsp1257 sub rbp,r91258 mov QWORD[72+rsp],rbp1259 vmovdqu XMMWORD[208+rsp],xmm31260 1261 mov ecx,DWORD[((-64))+rdi]1262 1263 mov r10,QWORD[((-80))+rdi]1264 cmp ecx,edx1265 1266 mov rbp,QWORD[((-72))+rdi]1267 cmovg edx,ecx1268 test ecx,ecx1269 1270 vmovdqu xmm4,XMMWORD[((-56))+rdi]1271 mov DWORD[40+rsp],ecx1272 cmovle r10,rsp1273 sub rbp,r101274 mov QWORD[80+rsp],rbp1275 vmovdqu XMMWORD[224+rsp],xmm41276 1277 mov ecx,DWORD[((-24))+rdi]1278 1279 mov r11,QWORD[((-40))+rdi]1280 cmp ecx,edx1281 1282 mov rbp,QWORD[((-32))+rdi]1283 cmovg edx,ecx1284 test ecx,ecx1285 1286 vmovdqu xmm5,XMMWORD[((-16))+rdi]1287 mov DWORD[44+rsp],ecx1288 cmovle r11,rsp1289 sub rbp,r111290 mov QWORD[88+rsp],rbp1291 vmovdqu XMMWORD[240+rsp],xmm51292 1293 mov ecx,DWORD[16+rdi]1294 1295 mov r12,QWORD[rdi]1296 cmp ecx,edx1297 1298 mov rbp,QWORD[8+rdi]1299 cmovg edx,ecx1300 test ecx,ecx1301 1302 vmovdqu xmm6,XMMWORD[24+rdi]1303 mov DWORD[48+rsp],ecx1304 cmovle r12,rsp1305 sub rbp,r121306 mov QWORD[96+rsp],rbp1307 vmovdqu XMMWORD[256+rsp],xmm61308 1309 mov ecx,DWORD[56+rdi]1310 1311 mov r13,QWORD[40+rdi]1312 cmp ecx,edx1313 1314 mov rbp,QWORD[48+rdi]1315 cmovg edx,ecx1316 test ecx,ecx1317 1318 vmovdqu xmm7,XMMWORD[64+rdi]1319 mov DWORD[52+rsp],ecx1320 cmovle r13,rsp1321 sub rbp,r131322 mov QWORD[104+rsp],rbp1323 vmovdqu XMMWORD[272+rsp],xmm71324 1325 mov ecx,DWORD[96+rdi]1326 1327 mov r14,QWORD[80+rdi]1328 cmp ecx,edx1329 1330 mov rbp,QWORD[88+rdi]1331 cmovg edx,ecx1332 test ecx,ecx1333 1334 vmovdqu xmm8,XMMWORD[104+rdi]1335 mov DWORD[56+rsp],ecx1336 cmovle r14,rsp1337 sub rbp,r141338 mov QWORD[112+rsp],rbp1339 vmovdqu XMMWORD[288+rsp],xmm81340 1341 mov ecx,DWORD[136+rdi]1342 1343 mov r15,QWORD[120+rdi]1344 cmp ecx,edx1345 1346 mov rbp,QWORD[128+rdi]1347 cmovg edx,ecx1348 test ecx,ecx1349 1350 vmovdqu xmm9,XMMWORD[144+rdi]1351 mov DWORD[60+rsp],ecx1352 cmovle r15,rsp1353 sub rbp,r151354 mov QWORD[120+rsp],rbp1355 vmovdqu XMMWORD[304+rsp],xmm91356 test edx,edx1357 jz NEAR $L$dec8x_done1358 1359 vmovups xmm1,XMMWORD[((16-120))+rsi]1360 vmovups xmm0,XMMWORD[((32-120))+rsi]1361 mov eax,DWORD[((240-120))+rsi]1362 lea rbp,[((192+128))+rsp]1363 1364 vmovdqu xmm2,XMMWORD[r8]1365 vmovdqu xmm3,XMMWORD[r9]1366 vmovdqu xmm4,XMMWORD[r10]1367 vmovdqu xmm5,XMMWORD[r11]1368 vmovdqu xmm6,XMMWORD[r12]1369 vmovdqu xmm7,XMMWORD[r13]1370 vmovdqu xmm8,XMMWORD[r14]1371 vmovdqu xmm9,XMMWORD[r15]1372 vmovdqu XMMWORD[rbp],xmm21373 vpxor xmm2,xmm2,xmm151374 vmovdqu XMMWORD[16+rbp],xmm31375 vpxor xmm3,xmm3,xmm151376 vmovdqu XMMWORD[32+rbp],xmm41377 vpxor xmm4,xmm4,xmm151378 vmovdqu XMMWORD[48+rbp],xmm51379 vpxor xmm5,xmm5,xmm151380 vmovdqu XMMWORD[64+rbp],xmm61381 vpxor xmm6,xmm6,xmm151382 vmovdqu XMMWORD[80+rbp],xmm71383 vpxor xmm7,xmm7,xmm151384 vmovdqu XMMWORD[96+rbp],xmm81385 vpxor xmm8,xmm8,xmm151386 vmovdqu XMMWORD[112+rbp],xmm91387 vpxor xmm9,xmm9,xmm151388 xor rbp,0x801389 mov ecx,11390 jmp NEAR $L$oop_dec8x1391 1392 ALIGN 321393 $L$oop_dec8x:1394 vaesdec xmm2,xmm2,xmm11395 cmp ecx,DWORD[((32+0))+rsp]1396 vaesdec xmm3,xmm3,xmm11397 prefetcht0 [31+r8]1398 vaesdec xmm4,xmm4,xmm11399 vaesdec xmm5,xmm5,xmm11400 lea rbx,[rbx*1+r8]1401 cmovge r8,rsp1402 vaesdec xmm6,xmm6,xmm11403 cmovg rbx,rsp1404 vaesdec xmm7,xmm7,xmm11405 sub rbx,r81406 vaesdec xmm8,xmm8,xmm11407 vmovdqu xmm10,XMMWORD[16+r8]1408 mov QWORD[((64+0))+rsp],rbx1409 vaesdec xmm9,xmm9,xmm11410 vmovups xmm1,XMMWORD[((-72))+rsi]1411 lea r8,[16+rbx*1+r8]1412 vmovdqu XMMWORD[128+rsp],xmm101413 vaesdec xmm2,xmm2,xmm01414 cmp ecx,DWORD[((32+4))+rsp]1415 mov rbx,QWORD[((64+8))+rsp]1416 vaesdec xmm3,xmm3,xmm01417 prefetcht0 [31+r9]1418 vaesdec xmm4,xmm4,xmm01419 vaesdec xmm5,xmm5,xmm01420 lea rbx,[rbx*1+r9]1421 cmovge r9,rsp1422 vaesdec xmm6,xmm6,xmm01423 cmovg rbx,rsp1424 vaesdec xmm7,xmm7,xmm01425 sub rbx,r91426 vaesdec xmm8,xmm8,xmm01427 vmovdqu xmm11,XMMWORD[16+r9]1428 mov QWORD[((64+8))+rsp],rbx1429 vaesdec xmm9,xmm9,xmm01430 vmovups xmm0,XMMWORD[((-56))+rsi]1431 lea r9,[16+rbx*1+r9]1432 vmovdqu XMMWORD[144+rsp],xmm111433 vaesdec xmm2,xmm2,xmm11434 cmp ecx,DWORD[((32+8))+rsp]1435 mov rbx,QWORD[((64+16))+rsp]1436 vaesdec xmm3,xmm3,xmm11437 prefetcht0 [31+r10]1438 vaesdec xmm4,xmm4,xmm11439 prefetcht0 [15+r8]1440 vaesdec xmm5,xmm5,xmm11441 lea rbx,[rbx*1+r10]1442 cmovge r10,rsp1443 vaesdec xmm6,xmm6,xmm11444 cmovg rbx,rsp1445 vaesdec xmm7,xmm7,xmm11446 sub rbx,r101447 vaesdec xmm8,xmm8,xmm11448 vmovdqu xmm12,XMMWORD[16+r10]1449 mov QWORD[((64+16))+rsp],rbx1450 vaesdec xmm9,xmm9,xmm11451 vmovups xmm1,XMMWORD[((-40))+rsi]1452 lea r10,[16+rbx*1+r10]1453 vmovdqu XMMWORD[160+rsp],xmm121454 vaesdec xmm2,xmm2,xmm01455 cmp ecx,DWORD[((32+12))+rsp]1456 mov rbx,QWORD[((64+24))+rsp]1457 vaesdec xmm3,xmm3,xmm01458 prefetcht0 [31+r11]1459 vaesdec xmm4,xmm4,xmm01460 prefetcht0 [15+r9]1461 vaesdec xmm5,xmm5,xmm01462 lea rbx,[rbx*1+r11]1463 cmovge r11,rsp1464 vaesdec xmm6,xmm6,xmm01465 cmovg rbx,rsp1466 vaesdec xmm7,xmm7,xmm01467 sub rbx,r111468 vaesdec xmm8,xmm8,xmm01469 vmovdqu xmm13,XMMWORD[16+r11]1470 mov QWORD[((64+24))+rsp],rbx1471 vaesdec xmm9,xmm9,xmm01472 vmovups xmm0,XMMWORD[((-24))+rsi]1473 lea r11,[16+rbx*1+r11]1474 vmovdqu XMMWORD[176+rsp],xmm131475 vaesdec xmm2,xmm2,xmm11476 cmp ecx,DWORD[((32+16))+rsp]1477 mov rbx,QWORD[((64+32))+rsp]1478 vaesdec xmm3,xmm3,xmm11479 prefetcht0 [31+r12]1480 vaesdec xmm4,xmm4,xmm11481 prefetcht0 [15+r10]1482 vaesdec xmm5,xmm5,xmm11483 lea rbx,[rbx*1+r12]1484 cmovge r12,rsp1485 vaesdec xmm6,xmm6,xmm11486 cmovg rbx,rsp1487 vaesdec xmm7,xmm7,xmm11488 sub rbx,r121489 vaesdec xmm8,xmm8,xmm11490 vmovdqu xmm10,XMMWORD[16+r12]1491 mov QWORD[((64+32))+rsp],rbx1492 vaesdec xmm9,xmm9,xmm11493 vmovups xmm1,XMMWORD[((-8))+rsi]1494 lea r12,[16+rbx*1+r12]1495 vaesdec xmm2,xmm2,xmm01496 cmp ecx,DWORD[((32+20))+rsp]1497 mov rbx,QWORD[((64+40))+rsp]1498 vaesdec xmm3,xmm3,xmm01499 prefetcht0 [31+r13]1500 vaesdec xmm4,xmm4,xmm01501 prefetcht0 [15+r11]1502 vaesdec xmm5,xmm5,xmm01503 lea rbx,[r13*1+rbx]1504 cmovge r13,rsp1505 vaesdec xmm6,xmm6,xmm01506 cmovg rbx,rsp1507 vaesdec xmm7,xmm7,xmm01508 sub rbx,r131509 vaesdec xmm8,xmm8,xmm01510 vmovdqu xmm11,XMMWORD[16+r13]1511 mov QWORD[((64+40))+rsp],rbx1512 vaesdec xmm9,xmm9,xmm01513 vmovups xmm0,XMMWORD[8+rsi]1514 lea r13,[16+rbx*1+r13]1515 vaesdec xmm2,xmm2,xmm11516 cmp ecx,DWORD[((32+24))+rsp]1517 mov rbx,QWORD[((64+48))+rsp]1518 vaesdec xmm3,xmm3,xmm11519 prefetcht0 [31+r14]1520 vaesdec xmm4,xmm4,xmm11521 prefetcht0 [15+r12]1522 vaesdec xmm5,xmm5,xmm11523 lea rbx,[rbx*1+r14]1524 cmovge r14,rsp1525 vaesdec xmm6,xmm6,xmm11526 cmovg rbx,rsp1527 vaesdec xmm7,xmm7,xmm11528 sub rbx,r141529 vaesdec xmm8,xmm8,xmm11530 vmovdqu xmm12,XMMWORD[16+r14]1531 mov QWORD[((64+48))+rsp],rbx1532 vaesdec xmm9,xmm9,xmm11533 vmovups xmm1,XMMWORD[24+rsi]1534 lea r14,[16+rbx*1+r14]1535 vaesdec xmm2,xmm2,xmm01536 cmp ecx,DWORD[((32+28))+rsp]1537 mov rbx,QWORD[((64+56))+rsp]1538 vaesdec xmm3,xmm3,xmm01539 prefetcht0 [31+r15]1540 vaesdec xmm4,xmm4,xmm01541 prefetcht0 [15+r13]1542 vaesdec xmm5,xmm5,xmm01543 lea rbx,[rbx*1+r15]1544 cmovge r15,rsp1545 vaesdec xmm6,xmm6,xmm01546 cmovg rbx,rsp1547 vaesdec xmm7,xmm7,xmm01548 sub rbx,r151549 vaesdec xmm8,xmm8,xmm01550 vmovdqu xmm13,XMMWORD[16+r15]1551 mov QWORD[((64+56))+rsp],rbx1552 vaesdec xmm9,xmm9,xmm01553 vmovups xmm0,XMMWORD[40+rsi]1554 lea r15,[16+rbx*1+r15]1555 vmovdqu xmm14,XMMWORD[32+rsp]1556 prefetcht0 [15+r14]1557 prefetcht0 [15+r15]1558 cmp eax,111559 jb NEAR $L$dec8x_tail1560 1561 vaesdec xmm2,xmm2,xmm11562 vaesdec xmm3,xmm3,xmm11563 vaesdec xmm4,xmm4,xmm11564 vaesdec xmm5,xmm5,xmm11565 vaesdec xmm6,xmm6,xmm11566 vaesdec xmm7,xmm7,xmm11567 vaesdec xmm8,xmm8,xmm11568 vaesdec xmm9,xmm9,xmm11569 vmovups xmm1,XMMWORD[((176-120))+rsi]1570 1571 vaesdec xmm2,xmm2,xmm01572 vaesdec xmm3,xmm3,xmm01573 vaesdec xmm4,xmm4,xmm01574 vaesdec xmm5,xmm5,xmm01575 vaesdec xmm6,xmm6,xmm01576 vaesdec xmm7,xmm7,xmm01577 vaesdec xmm8,xmm8,xmm01578 vaesdec xmm9,xmm9,xmm01579 vmovups xmm0,XMMWORD[((192-120))+rsi]1580 je NEAR $L$dec8x_tail1581 1582 vaesdec xmm2,xmm2,xmm11583 vaesdec xmm3,xmm3,xmm11584 vaesdec xmm4,xmm4,xmm11585 vaesdec xmm5,xmm5,xmm11586 vaesdec xmm6,xmm6,xmm11587 vaesdec xmm7,xmm7,xmm11588 vaesdec xmm8,xmm8,xmm11589 vaesdec xmm9,xmm9,xmm11590 vmovups xmm1,XMMWORD[((208-120))+rsi]1591 1592 vaesdec xmm2,xmm2,xmm01593 vaesdec xmm3,xmm3,xmm01594 vaesdec xmm4,xmm4,xmm01595 vaesdec xmm5,xmm5,xmm01596 vaesdec xmm6,xmm6,xmm01597 vaesdec xmm7,xmm7,xmm01598 vaesdec xmm8,xmm8,xmm01599 vaesdec xmm9,xmm9,xmm01600 vmovups xmm0,XMMWORD[((224-120))+rsi]1601 1602 $L$dec8x_tail:1603 vaesdec xmm2,xmm2,xmm11604 vpxor xmm15,xmm15,xmm151605 vaesdec xmm3,xmm3,xmm11606 vaesdec xmm4,xmm4,xmm11607 vpcmpgtd xmm15,xmm14,xmm151608 vaesdec xmm5,xmm5,xmm11609 vaesdec xmm6,xmm6,xmm11610 vpaddd xmm15,xmm15,xmm141611 vmovdqu xmm14,XMMWORD[48+rsp]1612 vaesdec xmm7,xmm7,xmm11613 mov rbx,QWORD[64+rsp]1614 vaesdec xmm8,xmm8,xmm11615 vaesdec xmm9,xmm9,xmm11616 vmovups xmm1,XMMWORD[((16-120))+rsi]1617 1618 vaesdeclast xmm2,xmm2,xmm01619 vmovdqa XMMWORD[32+rsp],xmm151620 vpxor xmm15,xmm15,xmm151621 vaesdeclast xmm3,xmm3,xmm01622 vpxor xmm2,xmm2,XMMWORD[rbp]1623 vaesdeclast xmm4,xmm4,xmm01624 vpxor xmm3,xmm3,XMMWORD[16+rbp]1625 vpcmpgtd xmm15,xmm14,xmm151626 vaesdeclast xmm5,xmm5,xmm01627 vpxor xmm4,xmm4,XMMWORD[32+rbp]1628 vaesdeclast xmm6,xmm6,xmm01629 vpxor xmm5,xmm5,XMMWORD[48+rbp]1630 vpaddd xmm14,xmm14,xmm151631 vmovdqu xmm15,XMMWORD[((-120))+rsi]1632 vaesdeclast xmm7,xmm7,xmm01633 vpxor xmm6,xmm6,XMMWORD[64+rbp]1634 vaesdeclast xmm8,xmm8,xmm01635 vpxor xmm7,xmm7,XMMWORD[80+rbp]1636 vmovdqa XMMWORD[48+rsp],xmm141637 vaesdeclast xmm9,xmm9,xmm01638 vpxor xmm8,xmm8,XMMWORD[96+rbp]1639 vmovups xmm0,XMMWORD[((32-120))+rsi]1640 1641 vmovups XMMWORD[(-16)+r8],xmm21642 sub r8,rbx1643 vmovdqu xmm2,XMMWORD[((128+0))+rsp]1644 vpxor xmm9,xmm9,XMMWORD[112+rbp]1645 vmovups XMMWORD[(-16)+r9],xmm31646 sub r9,QWORD[72+rsp]1647 vmovdqu XMMWORD[rbp],xmm21648 vpxor xmm2,xmm2,xmm151649 vmovdqu xmm3,XMMWORD[((128+16))+rsp]1650 vmovups XMMWORD[(-16)+r10],xmm41651 sub r10,QWORD[80+rsp]1652 vmovdqu XMMWORD[16+rbp],xmm31653 vpxor xmm3,xmm3,xmm151654 vmovdqu xmm4,XMMWORD[((128+32))+rsp]1655 vmovups XMMWORD[(-16)+r11],xmm51656 sub r11,QWORD[88+rsp]1657 vmovdqu XMMWORD[32+rbp],xmm41658 vpxor xmm4,xmm4,xmm151659 vmovdqu xmm5,XMMWORD[((128+48))+rsp]1660 vmovups XMMWORD[(-16)+r12],xmm61661 sub r12,QWORD[96+rsp]1662 vmovdqu XMMWORD[48+rbp],xmm51663 vpxor xmm5,xmm5,xmm151664 vmovdqu XMMWORD[64+rbp],xmm101665 vpxor xmm6,xmm15,xmm101666 vmovups XMMWORD[(-16)+r13],xmm71667 sub r13,QWORD[104+rsp]1668 vmovdqu XMMWORD[80+rbp],xmm111669 vpxor xmm7,xmm15,xmm111670 vmovups XMMWORD[(-16)+r14],xmm81671 sub r14,QWORD[112+rsp]1672 vmovdqu XMMWORD[96+rbp],xmm121673 vpxor xmm8,xmm15,xmm121674 vmovups XMMWORD[(-16)+r15],xmm91675 sub r15,QWORD[120+rsp]1676 vmovdqu XMMWORD[112+rbp],xmm131677 vpxor xmm9,xmm15,xmm131678 1679 xor rbp,1281680 dec edx1681 jnz NEAR $L$oop_dec8x1682 1683 mov rax,QWORD[16+rsp]1684 1685 1686 1687 1688 1689 1690 $L$dec8x_done:1691 vzeroupper1692 movaps xmm6,XMMWORD[((-216))+rax]1693 movaps xmm7,XMMWORD[((-200))+rax]1694 movaps xmm8,XMMWORD[((-184))+rax]1695 movaps xmm9,XMMWORD[((-168))+rax]1696 movaps xmm10,XMMWORD[((-152))+rax]1697 movaps xmm11,XMMWORD[((-136))+rax]1698 movaps xmm12,XMMWORD[((-120))+rax]1699 movaps xmm13,XMMWORD[((-104))+rax]1700 movaps xmm14,XMMWORD[((-88))+rax]1701 movaps xmm15,XMMWORD[((-72))+rax]1702 mov r15,QWORD[((-48))+rax]1703 1704 mov r14,QWORD[((-40))+rax]1705 1706 mov r13,QWORD[((-32))+rax]1707 1708 mov r12,QWORD[((-24))+rax]1709 1710 mov rbp,QWORD[((-16))+rax]1711 1712 mov rbx,QWORD[((-8))+rax]1713 1714 lea rsp,[rax]1715 1716 $L$dec8x_epilogue:1717 mov rdi,QWORD[8+rsp] ;WIN64 epilogue1718 mov rsi,QWORD[16+rsp]1719 DB 0F3h,0C3h ;repret1720 1721 $L$SEH_end_aesni_multi_cbc_decrypt_avx:1722 629 EXTERN __imp_RtlVirtualUnwind 1723 630 … … 1821 728 DD $L$SEH_end_aesni_multi_cbc_decrypt wrt ..imagebase 1822 729 DD $L$SEH_info_aesni_multi_cbc_decrypt wrt ..imagebase 1823 DD $L$SEH_begin_aesni_multi_cbc_encrypt_avx wrt ..imagebase1824 DD $L$SEH_end_aesni_multi_cbc_encrypt_avx wrt ..imagebase1825 DD $L$SEH_info_aesni_multi_cbc_encrypt_avx wrt ..imagebase1826 DD $L$SEH_begin_aesni_multi_cbc_decrypt_avx wrt ..imagebase1827 DD $L$SEH_end_aesni_multi_cbc_decrypt_avx wrt ..imagebase1828 DD $L$SEH_info_aesni_multi_cbc_decrypt_avx wrt ..imagebase1829 730 section .xdata rdata align=8 1830 731 ALIGN 8 … … 1837 738 DD se_handler wrt ..imagebase 1838 739 DD $L$dec4x_body wrt ..imagebase,$L$dec4x_epilogue wrt ..imagebase 1839 $L$SEH_info_aesni_multi_cbc_encrypt_avx:1840 DB 9,0,0,01841 DD se_handler wrt ..imagebase1842 DD $L$enc8x_body wrt ..imagebase,$L$enc8x_epilogue wrt ..imagebase1843 $L$SEH_info_aesni_multi_cbc_decrypt_avx:1844 DB 9,0,0,01845 DD se_handler wrt ..imagebase1846 DD $L$dec8x_body wrt ..imagebase,$L$dec8x_epilogue wrt ..imagebase
Note:
See TracChangeset
for help on using the changeset viewer.