2 .file "src/crypto/aes/asm/aesni-x86.S"
5 .private_extern _aesni_encrypt
19 .byte 102,15,56,220,209
24 .byte 102,15,56,221,209
31 .private_extern _aesni_decrypt
34 L_aesni_decrypt_begin:
45 .byte 102,15,56,222,209
50 .byte 102,15,56,223,209
56 .private_extern __aesni_encrypt2
65 leal 32(%edx,%ecx,1),%edx
69 .byte 102,15,56,220,209
70 .byte 102,15,56,220,217
71 movups (%edx,%ecx,1),%xmm1
73 .byte 102,15,56,220,208
74 .byte 102,15,56,220,216
75 movups -16(%edx,%ecx,1),%xmm0
77 .byte 102,15,56,220,209
78 .byte 102,15,56,220,217
79 .byte 102,15,56,221,208
80 .byte 102,15,56,221,216
82 .private_extern __aesni_decrypt2
91 leal 32(%edx,%ecx,1),%edx
95 .byte 102,15,56,222,209
96 .byte 102,15,56,222,217
97 movups (%edx,%ecx,1),%xmm1
99 .byte 102,15,56,222,208
100 .byte 102,15,56,222,216
101 movups -16(%edx,%ecx,1),%xmm0
103 .byte 102,15,56,222,209
104 .byte 102,15,56,222,217
105 .byte 102,15,56,223,208
106 .byte 102,15,56,223,216
108 .private_extern __aesni_encrypt3
113 movups 16(%edx),%xmm1
117 movups 32(%edx),%xmm0
118 leal 32(%edx,%ecx,1),%edx
122 .byte 102,15,56,220,209
123 .byte 102,15,56,220,217
124 .byte 102,15,56,220,225
125 movups (%edx,%ecx,1),%xmm1
127 .byte 102,15,56,220,208
128 .byte 102,15,56,220,216
129 .byte 102,15,56,220,224
130 movups -16(%edx,%ecx,1),%xmm0
132 .byte 102,15,56,220,209
133 .byte 102,15,56,220,217
134 .byte 102,15,56,220,225
135 .byte 102,15,56,221,208
136 .byte 102,15,56,221,216
137 .byte 102,15,56,221,224
139 .private_extern __aesni_decrypt3
144 movups 16(%edx),%xmm1
148 movups 32(%edx),%xmm0
149 leal 32(%edx,%ecx,1),%edx
153 .byte 102,15,56,222,209
154 .byte 102,15,56,222,217
155 .byte 102,15,56,222,225
156 movups (%edx,%ecx,1),%xmm1
158 .byte 102,15,56,222,208
159 .byte 102,15,56,222,216
160 .byte 102,15,56,222,224
161 movups -16(%edx,%ecx,1),%xmm0
163 .byte 102,15,56,222,209
164 .byte 102,15,56,222,217
165 .byte 102,15,56,222,225
166 .byte 102,15,56,223,208
167 .byte 102,15,56,223,216
168 .byte 102,15,56,223,224
170 .private_extern __aesni_encrypt4
174 movups 16(%edx),%xmm1
180 movups 32(%edx),%xmm0
181 leal 32(%edx,%ecx,1),%edx
186 .byte 102,15,56,220,209
187 .byte 102,15,56,220,217
188 .byte 102,15,56,220,225
189 .byte 102,15,56,220,233
190 movups (%edx,%ecx,1),%xmm1
192 .byte 102,15,56,220,208
193 .byte 102,15,56,220,216
194 .byte 102,15,56,220,224
195 .byte 102,15,56,220,232
196 movups -16(%edx,%ecx,1),%xmm0
198 .byte 102,15,56,220,209
199 .byte 102,15,56,220,217
200 .byte 102,15,56,220,225
201 .byte 102,15,56,220,233
202 .byte 102,15,56,221,208
203 .byte 102,15,56,221,216
204 .byte 102,15,56,221,224
205 .byte 102,15,56,221,232
207 .private_extern __aesni_decrypt4
211 movups 16(%edx),%xmm1
217 movups 32(%edx),%xmm0
218 leal 32(%edx,%ecx,1),%edx
223 .byte 102,15,56,222,209
224 .byte 102,15,56,222,217
225 .byte 102,15,56,222,225
226 .byte 102,15,56,222,233
227 movups (%edx,%ecx,1),%xmm1
229 .byte 102,15,56,222,208
230 .byte 102,15,56,222,216
231 .byte 102,15,56,222,224
232 .byte 102,15,56,222,232
233 movups -16(%edx,%ecx,1),%xmm0
235 .byte 102,15,56,222,209
236 .byte 102,15,56,222,217
237 .byte 102,15,56,222,225
238 .byte 102,15,56,222,233
239 .byte 102,15,56,223,208
240 .byte 102,15,56,223,216
241 .byte 102,15,56,223,224
242 .byte 102,15,56,223,232
244 .private_extern __aesni_encrypt6
249 movups 16(%edx),%xmm1
253 .byte 102,15,56,220,209
256 .byte 102,15,56,220,217
257 leal 32(%edx,%ecx,1),%edx
259 .byte 102,15,56,220,225
261 movups (%edx,%ecx,1),%xmm0
263 jmp L008_aesni_encrypt6_inner
266 .byte 102,15,56,220,209
267 .byte 102,15,56,220,217
268 .byte 102,15,56,220,225
269 L008_aesni_encrypt6_inner:
270 .byte 102,15,56,220,233
271 .byte 102,15,56,220,241
272 .byte 102,15,56,220,249
273 L_aesni_encrypt6_enter:
274 movups (%edx,%ecx,1),%xmm1
276 .byte 102,15,56,220,208
277 .byte 102,15,56,220,216
278 .byte 102,15,56,220,224
279 .byte 102,15,56,220,232
280 .byte 102,15,56,220,240
281 .byte 102,15,56,220,248
282 movups -16(%edx,%ecx,1),%xmm0
284 .byte 102,15,56,220,209
285 .byte 102,15,56,220,217
286 .byte 102,15,56,220,225
287 .byte 102,15,56,220,233
288 .byte 102,15,56,220,241
289 .byte 102,15,56,220,249
290 .byte 102,15,56,221,208
291 .byte 102,15,56,221,216
292 .byte 102,15,56,221,224
293 .byte 102,15,56,221,232
294 .byte 102,15,56,221,240
295 .byte 102,15,56,221,248
297 .private_extern __aesni_decrypt6
302 movups 16(%edx),%xmm1
306 .byte 102,15,56,222,209
309 .byte 102,15,56,222,217
310 leal 32(%edx,%ecx,1),%edx
312 .byte 102,15,56,222,225
314 movups (%edx,%ecx,1),%xmm0
316 jmp L010_aesni_decrypt6_inner
319 .byte 102,15,56,222,209
320 .byte 102,15,56,222,217
321 .byte 102,15,56,222,225
322 L010_aesni_decrypt6_inner:
323 .byte 102,15,56,222,233
324 .byte 102,15,56,222,241
325 .byte 102,15,56,222,249
326 L_aesni_decrypt6_enter:
327 movups (%edx,%ecx,1),%xmm1
329 .byte 102,15,56,222,208
330 .byte 102,15,56,222,216
331 .byte 102,15,56,222,224
332 .byte 102,15,56,222,232
333 .byte 102,15,56,222,240
334 .byte 102,15,56,222,248
335 movups -16(%edx,%ecx,1),%xmm0
337 .byte 102,15,56,222,209
338 .byte 102,15,56,222,217
339 .byte 102,15,56,222,225
340 .byte 102,15,56,222,233
341 .byte 102,15,56,222,241
342 .byte 102,15,56,222,249
343 .byte 102,15,56,223,208
344 .byte 102,15,56,223,216
345 .byte 102,15,56,223,224
346 .byte 102,15,56,223,232
347 .byte 102,15,56,223,240
348 .byte 102,15,56,223,248
350 .globl _aesni_ecb_encrypt
351 .private_extern _aesni_ecb_encrypt
354 L_aesni_ecb_encrypt_begin:
374 movdqu 16(%esi),%xmm3
375 movdqu 32(%esi),%xmm4
376 movdqu 48(%esi),%xmm5
377 movdqu 64(%esi),%xmm6
378 movdqu 80(%esi),%xmm7
381 jmp L015ecb_enc_loop6_enter
386 movups %xmm3,16(%edi)
387 movdqu 16(%esi),%xmm3
388 movups %xmm4,32(%edi)
389 movdqu 32(%esi),%xmm4
390 movups %xmm5,48(%edi)
391 movdqu 48(%esi),%xmm5
392 movups %xmm6,64(%edi)
393 movdqu 64(%esi),%xmm6
394 movups %xmm7,80(%edi)
396 movdqu 80(%esi),%xmm7
398 L015ecb_enc_loop6_enter:
399 call __aesni_encrypt6
403 jnc L016ecb_enc_loop6
405 movups %xmm3,16(%edi)
406 movups %xmm4,32(%edi)
407 movups %xmm5,48(%edi)
408 movups %xmm6,64(%edi)
409 movups %xmm7,80(%edi)
417 movups 16(%esi),%xmm3
419 movups 32(%esi),%xmm4
422 movups 48(%esi),%xmm5
424 movups 64(%esi),%xmm6
426 call __aesni_encrypt6
428 movups %xmm3,16(%edi)
429 movups %xmm4,32(%edi)
430 movups %xmm5,48(%edi)
431 movups %xmm6,64(%edi)
436 movups 16(%edx),%xmm1
440 .byte 102,15,56,220,209
445 .byte 102,15,56,221,209
450 call __aesni_encrypt2
452 movups %xmm3,16(%edi)
456 call __aesni_encrypt3
458 movups %xmm3,16(%edi)
459 movups %xmm4,32(%edi)
463 call __aesni_encrypt4
465 movups %xmm3,16(%edi)
466 movups %xmm4,32(%edi)
467 movups %xmm5,48(%edi)
476 movdqu 16(%esi),%xmm3
477 movdqu 32(%esi),%xmm4
478 movdqu 48(%esi),%xmm5
479 movdqu 64(%esi),%xmm6
480 movdqu 80(%esi),%xmm7
483 jmp L023ecb_dec_loop6_enter
488 movups %xmm3,16(%edi)
489 movdqu 16(%esi),%xmm3
490 movups %xmm4,32(%edi)
491 movdqu 32(%esi),%xmm4
492 movups %xmm5,48(%edi)
493 movdqu 48(%esi),%xmm5
494 movups %xmm6,64(%edi)
495 movdqu 64(%esi),%xmm6
496 movups %xmm7,80(%edi)
498 movdqu 80(%esi),%xmm7
500 L023ecb_dec_loop6_enter:
501 call __aesni_decrypt6
505 jnc L024ecb_dec_loop6
507 movups %xmm3,16(%edi)
508 movups %xmm4,32(%edi)
509 movups %xmm5,48(%edi)
510 movups %xmm6,64(%edi)
511 movups %xmm7,80(%edi)
519 movups 16(%esi),%xmm3
521 movups 32(%esi),%xmm4
524 movups 48(%esi),%xmm5
526 movups 64(%esi),%xmm6
528 call __aesni_decrypt6
530 movups %xmm3,16(%edi)
531 movups %xmm4,32(%edi)
532 movups %xmm5,48(%edi)
533 movups %xmm6,64(%edi)
538 movups 16(%edx),%xmm1
542 .byte 102,15,56,222,209
547 .byte 102,15,56,223,209
552 call __aesni_decrypt2
554 movups %xmm3,16(%edi)
558 call __aesni_decrypt3
560 movups %xmm3,16(%edi)
561 movups %xmm4,32(%edi)
565 call __aesni_decrypt4
567 movups %xmm3,16(%edi)
568 movups %xmm4,32(%edi)
569 movups %xmm5,48(%edi)
584 .globl _aesni_ccm64_encrypt_blocks
585 .private_extern _aesni_ccm64_encrypt_blocks
587 _aesni_ccm64_encrypt_blocks:
588 L_aesni_ccm64_encrypt_blocks_begin:
606 movl $202182159,(%esp)
607 movl $134810123,4(%esp)
608 movl $67438087,8(%esp)
621 leal 32(%edx,%ecx,1),%edx
623 .byte 102,15,56,0,253
629 movups 16(%ebp),%xmm1
632 movups 32(%ebp),%xmm0
634 .byte 102,15,56,220,209
635 .byte 102,15,56,220,217
636 movups (%edx,%ecx,1),%xmm1
638 .byte 102,15,56,220,208
639 .byte 102,15,56,220,216
640 movups -16(%edx,%ecx,1),%xmm0
641 jnz L031ccm64_enc2_loop
642 .byte 102,15,56,220,209
643 .byte 102,15,56,220,217
646 .byte 102,15,56,221,208
647 .byte 102,15,56,221,216
652 .byte 102,15,56,0,213
654 jnz L030ccm64_enc_outer
671 .globl _aesni_ccm64_decrypt_blocks
672 .private_extern _aesni_ccm64_decrypt_blocks
674 _aesni_ccm64_decrypt_blocks:
675 L_aesni_ccm64_decrypt_blocks_begin:
693 movl $202182159,(%esp)
694 movl $134810123,4(%esp)
695 movl $67438087,8(%esp)
707 .byte 102,15,56,0,253
709 movups 16(%edx),%xmm1
713 .byte 102,15,56,220,209
718 .byte 102,15,56,221,209
725 leal 32(%ebp,%ebx,1),%edx
727 jmp L033ccm64_dec_outer
734 .byte 102,15,56,0,213
736 jz L034ccm64_dec_break
739 movups 16(%ebp),%xmm1
743 movups 32(%ebp),%xmm0
745 .byte 102,15,56,220,209
746 .byte 102,15,56,220,217
747 movups (%edx,%ecx,1),%xmm1
749 .byte 102,15,56,220,208
750 .byte 102,15,56,220,216
751 movups -16(%edx,%ecx,1),%xmm0
752 jnz L035ccm64_dec2_loop
755 .byte 102,15,56,220,209
756 .byte 102,15,56,220,217
757 .byte 102,15,56,221,208
758 .byte 102,15,56,221,216
760 jmp L033ccm64_dec_outer
766 movups 16(%edx),%xmm1
771 .byte 102,15,56,220,217
776 .byte 102,15,56,221,217
793 .globl _aesni_ctr32_encrypt_blocks
794 .private_extern _aesni_ctr32_encrypt_blocks
796 _aesni_ctr32_encrypt_blocks:
797 L_aesni_ctr32_encrypt_blocks_begin:
812 je L037ctr32_one_shortcut
814 movl $202182159,(%esp)
815 movl $134810123,4(%esp)
816 movl $67438087,8(%esp)
824 .byte 102,15,58,22,251,3
825 .byte 102,15,58,34,253,3
831 .byte 102,15,58,34,195,0
833 .byte 102,15,58,34,205,0
835 .byte 102,15,58,34,195,1
837 .byte 102,15,58,34,205,1
839 .byte 102,15,58,34,195,2
841 .byte 102,15,58,34,205,2
842 movdqa %xmm0,48(%esp)
843 .byte 102,15,56,0,194
845 movdqa %xmm1,64(%esp)
846 .byte 102,15,56,0,202
847 pshufd $192,%xmm0,%xmm2
848 pshufd $128,%xmm0,%xmm3
854 movdqa %xmm7,32(%esp)
857 leal 32(%edx,%ecx,1),%edx
862 pshufd $64,%xmm0,%xmm4
863 movdqa 32(%esp),%xmm0
864 pshufd $192,%xmm1,%xmm5
866 pshufd $128,%xmm1,%xmm6
868 pshufd $64,%xmm1,%xmm7
869 movups 16(%ebp),%xmm1
872 .byte 102,15,56,220,209
875 .byte 102,15,56,220,217
876 movups 32(%ebp),%xmm0
878 .byte 102,15,56,220,225
879 .byte 102,15,56,220,233
880 .byte 102,15,56,220,241
881 .byte 102,15,56,220,249
882 call L_aesni_encrypt6_enter
884 movups 16(%esi),%xmm0
886 movups 32(%esi),%xmm1
889 movdqa 16(%esp),%xmm0
891 movdqa 64(%esp),%xmm1
892 movups %xmm3,16(%edi)
893 movups %xmm4,32(%edi)
897 movups 48(%esi),%xmm3
898 movups 64(%esi),%xmm4
900 movups 80(%esi),%xmm3
902 movdqa %xmm0,48(%esp)
903 .byte 102,15,56,0,194
905 movups %xmm5,48(%edi)
907 movdqa %xmm1,64(%esp)
908 .byte 102,15,56,0,202
909 movups %xmm6,64(%edi)
910 pshufd $192,%xmm0,%xmm2
911 movups %xmm7,80(%edi)
913 pshufd $128,%xmm0,%xmm3
926 pshufd $64,%xmm0,%xmm4
929 pshufd $192,%xmm1,%xmm5
933 pshufd $128,%xmm1,%xmm6
937 call __aesni_encrypt6
939 movups 16(%esi),%xmm0
941 movups 32(%esi),%xmm1
943 movups 48(%esi),%xmm0
945 movups 64(%esi),%xmm1
949 movups %xmm3,16(%edi)
950 movups %xmm4,32(%edi)
951 movups %xmm5,48(%edi)
952 movups %xmm6,64(%edi)
955 L037ctr32_one_shortcut:
960 movups 16(%edx),%xmm1
964 .byte 102,15,56,220,209
969 .byte 102,15,56,221,209
976 call __aesni_encrypt2
978 movups 16(%esi),%xmm6
982 movups %xmm3,16(%edi)
986 call __aesni_encrypt3
988 movups 16(%esi),%xmm6
990 movups 32(%esi),%xmm7
994 movups %xmm3,16(%edi)
995 movups %xmm4,32(%edi)
999 call __aesni_encrypt4
1001 movups 16(%esi),%xmm7
1002 movups 32(%esi),%xmm1
1004 movups 48(%esi),%xmm0
1008 movups %xmm3,16(%edi)
1010 movups %xmm4,32(%edi)
1011 movups %xmm5,48(%edi)
1018 movdqa %xmm0,32(%esp)
1020 movdqa %xmm0,48(%esp)
1022 movdqa %xmm0,64(%esp)
1030 .globl _aesni_xts_encrypt
1031 .private_extern _aesni_xts_encrypt
1034 L_aesni_xts_encrypt_begin:
1044 movups 16(%edx),%xmm1
1048 .byte 102,15,56,220,209
1053 .byte 102,15,56,221,209
1070 movdqa 96(%esp),%xmm3
1076 jc L047xts_enc_short
1080 leal 32(%edx,%ecx,1),%edx
1081 jmp L048xts_enc_loop6
1084 pshufd $19,%xmm0,%xmm2
1091 pshufd $19,%xmm0,%xmm2
1093 movdqa %xmm1,16(%esp)
1098 pshufd $19,%xmm0,%xmm2
1100 movdqa %xmm1,32(%esp)
1105 pshufd $19,%xmm0,%xmm2
1107 movdqa %xmm1,48(%esp)
1112 pshufd $19,%xmm0,%xmm7
1113 movdqa %xmm1,64(%esp)
1120 movdqu 16(%esi),%xmm3
1122 movdqu 32(%esi),%xmm4
1124 movdqu 48(%esi),%xmm5
1126 movdqu 64(%esi),%xmm6
1128 movdqu 80(%esi),%xmm1
1132 movdqa %xmm7,80(%esp)
1134 movups 16(%ebp),%xmm1
1137 .byte 102,15,56,220,209
1140 .byte 102,15,56,220,217
1142 movups 32(%ebp),%xmm0
1143 .byte 102,15,56,220,225
1144 .byte 102,15,56,220,233
1145 .byte 102,15,56,220,241
1146 .byte 102,15,56,220,249
1147 call L_aesni_encrypt6_enter
1148 movdqa 80(%esp),%xmm1
1152 xorps 16(%esp),%xmm3
1154 xorps 32(%esp),%xmm4
1155 movups %xmm3,16(%edi)
1156 xorps 48(%esp),%xmm5
1157 movups %xmm4,32(%edi)
1158 xorps 64(%esp),%xmm6
1159 movups %xmm5,48(%edi)
1161 movups %xmm6,64(%edi)
1162 pshufd $19,%xmm0,%xmm2
1163 movups %xmm7,80(%edi)
1165 movdqa 96(%esp),%xmm3
1172 jnc L048xts_enc_loop6
1178 jz L049xts_enc_done6x
1182 pshufd $19,%xmm0,%xmm2
1189 pshufd $19,%xmm0,%xmm2
1197 jb L052xts_enc_three
1198 pshufd $19,%xmm0,%xmm2
1206 movdqa %xmm6,16(%esp)
1208 movdqa %xmm7,32(%esp)
1209 pshufd $19,%xmm0,%xmm7
1210 movdqa %xmm1,48(%esp)
1215 movdqu 16(%esi),%xmm3
1216 movdqu 32(%esi),%xmm4
1218 movdqu 48(%esi),%xmm5
1220 movdqu 64(%esi),%xmm6
1224 movdqa %xmm7,64(%esp)
1226 call __aesni_encrypt6
1227 movaps 64(%esp),%xmm1
1229 xorps 16(%esp),%xmm3
1230 xorps 32(%esp),%xmm4
1232 xorps 48(%esp),%xmm5
1233 movups %xmm3,16(%edi)
1235 movups %xmm4,32(%edi)
1236 movups %xmm5,48(%edi)
1237 movups %xmm6,64(%edi)
1239 jmp L054xts_enc_done
1246 movups 16(%edx),%xmm1
1250 .byte 102,15,56,220,209
1255 .byte 102,15,56,221,209
1260 jmp L054xts_enc_done
1265 movups 16(%esi),%xmm3
1269 call __aesni_encrypt2
1273 movups %xmm3,16(%edi)
1276 jmp L054xts_enc_done
1281 movups 16(%esi),%xmm3
1282 movups 32(%esi),%xmm4
1287 call __aesni_encrypt3
1292 movups %xmm3,16(%edi)
1293 movups %xmm4,32(%edi)
1296 jmp L054xts_enc_done
1301 movups 16(%esi),%xmm3
1302 movups 32(%esi),%xmm4
1304 movups 48(%esi),%xmm5
1306 xorps 16(%esp),%xmm3
1309 call __aesni_encrypt4
1311 xorps 16(%esp),%xmm3
1315 movups %xmm3,16(%edi)
1316 movups %xmm4,32(%edi)
1317 movups %xmm5,48(%edi)
1320 jmp L054xts_enc_done
1328 jmp L057xts_enc_steal
1337 pshufd $19,%xmm0,%xmm5
1343 movzbl -16(%edi),%edx
1349 jnz L057xts_enc_steal
1353 movups -16(%edi),%xmm2
1356 movups 16(%edx),%xmm1
1360 .byte 102,15,56,220,209
1364 jnz L058enc1_loop_10
1365 .byte 102,15,56,221,209
1367 movups %xmm2,-16(%edi)
1374 movdqa %xmm0,16(%esp)
1376 movdqa %xmm0,32(%esp)
1378 movdqa %xmm0,48(%esp)
1380 movdqa %xmm0,64(%esp)
1382 movdqa %xmm0,80(%esp)
1389 .globl _aesni_xts_decrypt
1390 .private_extern _aesni_xts_decrypt
1393 L_aesni_xts_decrypt_begin:
1403 movups 16(%edx),%xmm1
1407 .byte 102,15,56,220,209
1411 jnz L059enc1_loop_11
1412 .byte 102,15,56,221,209
1436 movdqa 96(%esp),%xmm3
1440 jc L060xts_dec_short
1444 leal 32(%edx,%ecx,1),%edx
1445 jmp L061xts_dec_loop6
1448 pshufd $19,%xmm0,%xmm2
1455 pshufd $19,%xmm0,%xmm2
1457 movdqa %xmm1,16(%esp)
1462 pshufd $19,%xmm0,%xmm2
1464 movdqa %xmm1,32(%esp)
1469 pshufd $19,%xmm0,%xmm2
1471 movdqa %xmm1,48(%esp)
1476 pshufd $19,%xmm0,%xmm7
1477 movdqa %xmm1,64(%esp)
1484 movdqu 16(%esi),%xmm3
1486 movdqu 32(%esi),%xmm4
1488 movdqu 48(%esi),%xmm5
1490 movdqu 64(%esi),%xmm6
1492 movdqu 80(%esi),%xmm1
1496 movdqa %xmm7,80(%esp)
1498 movups 16(%ebp),%xmm1
1501 .byte 102,15,56,222,209
1504 .byte 102,15,56,222,217
1506 movups 32(%ebp),%xmm0
1507 .byte 102,15,56,222,225
1508 .byte 102,15,56,222,233
1509 .byte 102,15,56,222,241
1510 .byte 102,15,56,222,249
1511 call L_aesni_decrypt6_enter
1512 movdqa 80(%esp),%xmm1
1516 xorps 16(%esp),%xmm3
1518 xorps 32(%esp),%xmm4
1519 movups %xmm3,16(%edi)
1520 xorps 48(%esp),%xmm5
1521 movups %xmm4,32(%edi)
1522 xorps 64(%esp),%xmm6
1523 movups %xmm5,48(%edi)
1525 movups %xmm6,64(%edi)
1526 pshufd $19,%xmm0,%xmm2
1527 movups %xmm7,80(%edi)
1529 movdqa 96(%esp),%xmm3
1536 jnc L061xts_dec_loop6
1542 jz L062xts_dec_done6x
1546 pshufd $19,%xmm0,%xmm2
1553 pshufd $19,%xmm0,%xmm2
1561 jb L065xts_dec_three
1562 pshufd $19,%xmm0,%xmm2
1570 movdqa %xmm6,16(%esp)
1572 movdqa %xmm7,32(%esp)
1573 pshufd $19,%xmm0,%xmm7
1574 movdqa %xmm1,48(%esp)
1579 movdqu 16(%esi),%xmm3
1580 movdqu 32(%esi),%xmm4
1582 movdqu 48(%esi),%xmm5
1584 movdqu 64(%esi),%xmm6
1588 movdqa %xmm7,64(%esp)
1590 call __aesni_decrypt6
1591 movaps 64(%esp),%xmm1
1593 xorps 16(%esp),%xmm3
1594 xorps 32(%esp),%xmm4
1596 xorps 48(%esp),%xmm5
1597 movups %xmm3,16(%edi)
1599 movups %xmm4,32(%edi)
1600 movups %xmm5,48(%edi)
1601 movups %xmm6,64(%edi)
1603 jmp L067xts_dec_done
1610 movups 16(%edx),%xmm1
1614 .byte 102,15,56,222,209
1618 jnz L068dec1_loop_12
1619 .byte 102,15,56,223,209
1624 jmp L067xts_dec_done
1629 movups 16(%esi),%xmm3
1633 call __aesni_decrypt2
1637 movups %xmm3,16(%edi)
1640 jmp L067xts_dec_done
1645 movups 16(%esi),%xmm3
1646 movups 32(%esi),%xmm4
1651 call __aesni_decrypt3
1656 movups %xmm3,16(%edi)
1657 movups %xmm4,32(%edi)
1660 jmp L067xts_dec_done
1665 movups 16(%esi),%xmm3
1666 movups 32(%esi),%xmm4
1668 movups 48(%esi),%xmm5
1670 xorps 16(%esp),%xmm3
1673 call __aesni_decrypt4
1675 xorps 16(%esp),%xmm3
1679 movups %xmm3,16(%edi)
1680 movups %xmm4,32(%edi)
1681 movups %xmm5,48(%edi)
1684 jmp L067xts_dec_done
1691 jmp L070xts_dec_only_one_more
1700 pshufd $19,%xmm0,%xmm2
1702 movdqa 96(%esp),%xmm3
1707 L070xts_dec_only_one_more:
1708 pshufd $19,%xmm0,%xmm5
1718 movups 16(%edx),%xmm1
1722 .byte 102,15,56,222,209
1726 jnz L071dec1_loop_13
1727 .byte 102,15,56,223,209
1731 movzbl 16(%esi),%ecx
1738 jnz L072xts_dec_steal
1745 movups 16(%edx),%xmm1
1749 .byte 102,15,56,222,209
1753 jnz L073dec1_loop_14
1754 .byte 102,15,56,223,209
1763 movdqa %xmm0,16(%esp)
1765 movdqa %xmm0,32(%esp)
1767 movdqa %xmm0,48(%esp)
1769 movdqa %xmm0,64(%esp)
1771 movdqa %xmm0,80(%esp)
1778 .globl _aesni_cbc_encrypt
1779 .private_extern _aesni_cbc_encrypt
1782 L_aesni_cbc_encrypt_begin:
1809 jmp L077cbc_enc_loop
1815 movups 16(%edx),%xmm1
1820 .byte 102,15,56,220,209
1824 jnz L078enc1_loop_15
1825 .byte 102,15,56,221,209
1831 jnc L077cbc_enc_loop
1833 jnz L076cbc_enc_tail
1848 jmp L077cbc_enc_loop
1852 jbe L080cbc_dec_tail
1855 jmp L081cbc_dec_loop6_enter
1861 L081cbc_dec_loop6_enter:
1863 movdqu 16(%esi),%xmm3
1864 movdqu 32(%esi),%xmm4
1865 movdqu 48(%esi),%xmm5
1866 movdqu 64(%esi),%xmm6
1867 movdqu 80(%esi),%xmm7
1868 call __aesni_decrypt6
1870 movups 16(%esi),%xmm0
1873 movups 32(%esi),%xmm1
1875 movups 48(%esi),%xmm0
1877 movups 64(%esi),%xmm1
1879 movups 80(%esi),%xmm0
1882 movups %xmm3,16(%edi)
1884 movups %xmm4,32(%edi)
1886 movups %xmm5,48(%edi)
1888 movups %xmm6,64(%edi)
1891 ja L082cbc_dec_loop6
1895 jle L083cbc_dec_clear_tail_collected
1903 movups 16(%esi),%xmm3
1907 movups 32(%esi),%xmm4
1909 jbe L086cbc_dec_three
1910 movups 48(%esi),%xmm5
1912 jbe L087cbc_dec_four
1913 movups 64(%esi),%xmm6
1917 call __aesni_decrypt6
1919 movups 16(%esi),%xmm0
1922 movups 32(%esi),%xmm1
1924 movups 48(%esi),%xmm0
1926 movups 64(%esi),%xmm7
1929 movups %xmm3,16(%edi)
1931 movups %xmm4,32(%edi)
1933 movups %xmm5,48(%edi)
1939 jmp L088cbc_dec_tail_collected
1943 movups 16(%edx),%xmm1
1947 .byte 102,15,56,222,209
1951 jnz L089dec1_loop_16
1952 .byte 102,15,56,223,209
1956 jmp L088cbc_dec_tail_collected
1959 call __aesni_decrypt2
1968 jmp L088cbc_dec_tail_collected
1971 call __aesni_decrypt3
1978 movups %xmm3,16(%edi)
1981 movups 32(%esi),%xmm7
1983 jmp L088cbc_dec_tail_collected
1986 call __aesni_decrypt4
1987 movups 16(%esi),%xmm1
1988 movups 32(%esi),%xmm0
1990 movups 48(%esi),%xmm7
1994 movups %xmm3,16(%edi)
1997 movups %xmm4,32(%edi)
2003 jmp L088cbc_dec_tail_collected
2005 L083cbc_dec_clear_tail_collected:
2010 L088cbc_dec_tail_collected:
2012 jnz L090cbc_dec_tail_partial
2017 L090cbc_dec_tail_partial:
2038 .private_extern __aesni_set_encrypt_key
2040 __aesni_set_encrypt_key:
2050 leal Lkey_const-L092pic(%ebx),%ebx
2051 movl L_OPENSSL_ia32cap_P$non_lazy_ptr-Lkey_const(%ebx),%ebp
2056 andl $268437504,%ebp
2065 cmpl $268435456,%ebp
2068 movups %xmm0,-16(%edx)
2069 .byte 102,15,58,223,200,1
2070 call L098key_128_cold
2071 .byte 102,15,58,223,200,2
2073 .byte 102,15,58,223,200,4
2075 .byte 102,15,58,223,200,8
2077 .byte 102,15,58,223,200,16
2079 .byte 102,15,58,223,200,32
2081 .byte 102,15,58,223,200,64
2083 .byte 102,15,58,223,200,128
2085 .byte 102,15,58,223,200,27
2087 .byte 102,15,58,223,200,54
2097 shufps $16,%xmm0,%xmm4
2099 shufps $140,%xmm0,%xmm4
2101 shufps $255,%xmm1,%xmm1
2108 movdqa 32(%ebx),%xmm4
2110 movdqu %xmm0,-16(%edx)
2112 .byte 102,15,56,0,197
2113 .byte 102,15,56,221,196
2124 movdqu %xmm0,-16(%edx)
2128 movdqa 48(%ebx),%xmm4
2129 .byte 102,15,56,0,197
2130 .byte 102,15,56,221,196
2142 .byte 102,15,56,0,197
2143 .byte 102,15,56,221,196
2152 movdqu %xmm0,16(%edx)
2159 cmpl $268435456,%ebp
2162 movups %xmm0,-16(%edx)
2163 .byte 102,15,58,223,202,1
2164 call L103key_192a_cold
2165 .byte 102,15,58,223,202,2
2167 .byte 102,15,58,223,202,4
2169 .byte 102,15,58,223,202,8
2171 .byte 102,15,58,223,202,16
2173 .byte 102,15,58,223,202,32
2175 .byte 102,15,58,223,202,64
2177 .byte 102,15,58,223,202,128
2190 shufps $16,%xmm0,%xmm4
2193 shufps $140,%xmm0,%xmm4
2196 pshufd $85,%xmm1,%xmm1
2199 pshufd $255,%xmm0,%xmm3
2205 shufps $68,%xmm0,%xmm5
2207 shufps $78,%xmm2,%xmm3
2208 movups %xmm3,16(%edx)
2210 jmp L106key_192b_warm
2213 movdqa 16(%ebx),%xmm5
2214 movdqa 32(%ebx),%xmm4
2216 movdqu %xmm0,-16(%edx)
2220 .byte 102,15,56,0,213
2221 .byte 102,15,56,221,212
2231 pshufd $255,%xmm0,%xmm3
2237 movdqu %xmm0,-16(%edx)
2245 movups 16(%eax),%xmm2
2247 cmpl $268435456,%ebp
2250 movups %xmm0,-32(%edx)
2251 movups %xmm2,-16(%edx)
2252 .byte 102,15,58,223,202,1
2253 call L109key_256a_cold
2254 .byte 102,15,58,223,200,1
2256 .byte 102,15,58,223,202,2
2258 .byte 102,15,58,223,200,2
2260 .byte 102,15,58,223,202,4
2262 .byte 102,15,58,223,200,4
2264 .byte 102,15,58,223,202,8
2266 .byte 102,15,58,223,200,8
2268 .byte 102,15,58,223,202,16
2270 .byte 102,15,58,223,200,16
2272 .byte 102,15,58,223,202,32
2274 .byte 102,15,58,223,200,32
2276 .byte 102,15,58,223,202,64
2287 shufps $16,%xmm0,%xmm4
2289 shufps $140,%xmm0,%xmm4
2291 shufps $255,%xmm1,%xmm1
2298 shufps $16,%xmm2,%xmm4
2300 shufps $140,%xmm2,%xmm4
2302 shufps $170,%xmm1,%xmm1
2308 movdqa 32(%ebx),%xmm4
2310 movdqu %xmm0,-32(%edx)
2312 movdqu %xmm2,-16(%edx)
2314 .byte 102,15,56,0,213
2315 .byte 102,15,56,221,212
2328 pshufd $255,%xmm0,%xmm2
2330 .byte 102,15,56,221,211
2339 movdqu %xmm2,16(%edx)
2370 .globl _aesni_set_encrypt_key
2371 .private_extern _aesni_set_encrypt_key
2373 _aesni_set_encrypt_key:
2374 L_aesni_set_encrypt_key_begin:
2378 call __aesni_set_encrypt_key
2380 .globl _aesni_set_decrypt_key
2381 .private_extern _aesni_set_decrypt_key
2383 _aesni_set_decrypt_key:
2384 L_aesni_set_decrypt_key_begin:
2388 call __aesni_set_encrypt_key
2393 leal 16(%edx,%ecx,1),%eax
2400 L115dec_key_inverse:
2403 .byte 102,15,56,219,192
2404 .byte 102,15,56,219,201
2407 movups %xmm0,16(%eax)
2408 movups %xmm1,-16(%edx)
2410 ja L115dec_key_inverse
2412 .byte 102,15,56,219,192
2421 .long 202313229,202313229,202313229,202313229
2422 .long 67569157,67569157,67569157,67569157
2425 .byte 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69
2426 .byte 83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83
2427 .byte 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115
2428 .byte 115,108,46,111,114,103,62,0
2429 .section __IMPORT,__pointers,non_lazy_symbol_pointers
2430 L_OPENSSL_ia32cap_P$non_lazy_ptr:
2431 .indirect_symbol _OPENSSL_ia32cap_P