3 .type aesni_encrypt,@function
13 .byte 102,15,56,220,209
18 .byte 102,15,56,221,209
21 .size aesni_encrypt,.-aesni_encrypt
24 .type aesni_decrypt,@function
34 .byte 102,15,56,222,209
39 .byte 102,15,56,223,209
42 .size aesni_decrypt, .-aesni_decrypt
43 .type _aesni_encrypt3,@function
56 .byte 102,15,56,220,209
57 .byte 102,15,56,220,217
59 .byte 102,15,56,220,225
61 .byte 102,15,56,220,208
62 .byte 102,15,56,220,216
64 .byte 102,15,56,220,224
68 .byte 102,15,56,220,209
69 .byte 102,15,56,220,217
70 .byte 102,15,56,220,225
71 .byte 102,15,56,221,208
72 .byte 102,15,56,221,216
73 .byte 102,15,56,221,224
75 .size _aesni_encrypt3,.-_aesni_encrypt3
76 .type _aesni_decrypt3,@function
89 .byte 102,15,56,222,209
90 .byte 102,15,56,222,217
92 .byte 102,15,56,222,225
94 .byte 102,15,56,222,208
95 .byte 102,15,56,222,216
97 .byte 102,15,56,222,224
101 .byte 102,15,56,222,209
102 .byte 102,15,56,222,217
103 .byte 102,15,56,222,225
104 .byte 102,15,56,223,208
105 .byte 102,15,56,223,216
106 .byte 102,15,56,223,224
108 .size _aesni_decrypt3,.-_aesni_decrypt3
109 .type _aesni_encrypt4,@function
114 movups 16(%rcx),%xmm1
123 .byte 102,15,56,220,209
124 .byte 102,15,56,220,217
126 .byte 102,15,56,220,225
127 .byte 102,15,56,220,233
128 movups 16(%rcx),%xmm1
129 .byte 102,15,56,220,208
130 .byte 102,15,56,220,216
132 .byte 102,15,56,220,224
133 .byte 102,15,56,220,232
137 .byte 102,15,56,220,209
138 .byte 102,15,56,220,217
139 .byte 102,15,56,220,225
140 .byte 102,15,56,220,233
141 .byte 102,15,56,221,208
142 .byte 102,15,56,221,216
143 .byte 102,15,56,221,224
144 .byte 102,15,56,221,232
146 .size _aesni_encrypt4,.-_aesni_encrypt4
147 .type _aesni_decrypt4,@function
152 movups 16(%rcx),%xmm1
161 .byte 102,15,56,222,209
162 .byte 102,15,56,222,217
164 .byte 102,15,56,222,225
165 .byte 102,15,56,222,233
166 movups 16(%rcx),%xmm1
167 .byte 102,15,56,222,208
168 .byte 102,15,56,222,216
170 .byte 102,15,56,222,224
171 .byte 102,15,56,222,232
175 .byte 102,15,56,222,209
176 .byte 102,15,56,222,217
177 .byte 102,15,56,222,225
178 .byte 102,15,56,222,233
179 .byte 102,15,56,223,208
180 .byte 102,15,56,223,216
181 .byte 102,15,56,223,224
182 .byte 102,15,56,223,232
184 .size _aesni_decrypt4,.-_aesni_decrypt4
185 .type _aesni_encrypt6,@function
190 movups 16(%rcx),%xmm1
194 .byte 102,15,56,220,209
196 .byte 102,15,56,220,217
198 .byte 102,15,56,220,225
200 .byte 102,15,56,220,233
203 .byte 102,15,56,220,241
205 .byte 102,15,56,220,249
206 jmp .Lenc_loop6_enter
209 .byte 102,15,56,220,209
210 .byte 102,15,56,220,217
212 .byte 102,15,56,220,225
213 .byte 102,15,56,220,233
214 .byte 102,15,56,220,241
215 .byte 102,15,56,220,249
217 movups 16(%rcx),%xmm1
218 .byte 102,15,56,220,208
219 .byte 102,15,56,220,216
221 .byte 102,15,56,220,224
222 .byte 102,15,56,220,232
223 .byte 102,15,56,220,240
224 .byte 102,15,56,220,248
228 .byte 102,15,56,220,209
229 .byte 102,15,56,220,217
230 .byte 102,15,56,220,225
231 .byte 102,15,56,220,233
232 .byte 102,15,56,220,241
233 .byte 102,15,56,220,249
234 .byte 102,15,56,221,208
235 .byte 102,15,56,221,216
236 .byte 102,15,56,221,224
237 .byte 102,15,56,221,232
238 .byte 102,15,56,221,240
239 .byte 102,15,56,221,248
241 .size _aesni_encrypt6,.-_aesni_encrypt6
242 .type _aesni_decrypt6,@function
247 movups 16(%rcx),%xmm1
251 .byte 102,15,56,222,209
253 .byte 102,15,56,222,217
255 .byte 102,15,56,222,225
257 .byte 102,15,56,222,233
260 .byte 102,15,56,222,241
262 .byte 102,15,56,222,249
263 jmp .Ldec_loop6_enter
266 .byte 102,15,56,222,209
267 .byte 102,15,56,222,217
269 .byte 102,15,56,222,225
270 .byte 102,15,56,222,233
271 .byte 102,15,56,222,241
272 .byte 102,15,56,222,249
274 movups 16(%rcx),%xmm1
275 .byte 102,15,56,222,208
276 .byte 102,15,56,222,216
278 .byte 102,15,56,222,224
279 .byte 102,15,56,222,232
280 .byte 102,15,56,222,240
281 .byte 102,15,56,222,248
285 .byte 102,15,56,222,209
286 .byte 102,15,56,222,217
287 .byte 102,15,56,222,225
288 .byte 102,15,56,222,233
289 .byte 102,15,56,222,241
290 .byte 102,15,56,222,249
291 .byte 102,15,56,223,208
292 .byte 102,15,56,223,216
293 .byte 102,15,56,223,224
294 .byte 102,15,56,223,232
295 .byte 102,15,56,223,240
296 .byte 102,15,56,223,248
298 .size _aesni_decrypt6,.-_aesni_decrypt6
299 .type _aesni_encrypt8,@function
304 movups 16(%rcx),%xmm1
308 .byte 102,15,56,220,209
310 .byte 102,15,56,220,217
312 .byte 102,15,56,220,225
314 .byte 102,15,56,220,233
317 .byte 102,15,56,220,241
319 .byte 102,15,56,220,249
322 .byte 102,68,15,56,220,193
323 .byte 102,68,15,56,220,201
324 movups 16(%rcx),%xmm1
325 jmp .Lenc_loop8_enter
328 .byte 102,15,56,220,209
329 .byte 102,15,56,220,217
331 .byte 102,15,56,220,225
332 .byte 102,15,56,220,233
333 .byte 102,15,56,220,241
334 .byte 102,15,56,220,249
335 .byte 102,68,15,56,220,193
336 .byte 102,68,15,56,220,201
337 movups 16(%rcx),%xmm1
339 .byte 102,15,56,220,208
340 .byte 102,15,56,220,216
342 .byte 102,15,56,220,224
343 .byte 102,15,56,220,232
344 .byte 102,15,56,220,240
345 .byte 102,15,56,220,248
346 .byte 102,68,15,56,220,192
347 .byte 102,68,15,56,220,200
351 .byte 102,15,56,220,209
352 .byte 102,15,56,220,217
353 .byte 102,15,56,220,225
354 .byte 102,15,56,220,233
355 .byte 102,15,56,220,241
356 .byte 102,15,56,220,249
357 .byte 102,68,15,56,220,193
358 .byte 102,68,15,56,220,201
359 .byte 102,15,56,221,208
360 .byte 102,15,56,221,216
361 .byte 102,15,56,221,224
362 .byte 102,15,56,221,232
363 .byte 102,15,56,221,240
364 .byte 102,15,56,221,248
365 .byte 102,68,15,56,221,192
366 .byte 102,68,15,56,221,200
368 .size _aesni_encrypt8,.-_aesni_encrypt8
369 .type _aesni_decrypt8,@function
374 movups 16(%rcx),%xmm1
378 .byte 102,15,56,222,209
380 .byte 102,15,56,222,217
382 .byte 102,15,56,222,225
384 .byte 102,15,56,222,233
387 .byte 102,15,56,222,241
389 .byte 102,15,56,222,249
392 .byte 102,68,15,56,222,193
393 .byte 102,68,15,56,222,201
394 movups 16(%rcx),%xmm1
395 jmp .Ldec_loop8_enter
398 .byte 102,15,56,222,209
399 .byte 102,15,56,222,217
401 .byte 102,15,56,222,225
402 .byte 102,15,56,222,233
403 .byte 102,15,56,222,241
404 .byte 102,15,56,222,249
405 .byte 102,68,15,56,222,193
406 .byte 102,68,15,56,222,201
407 movups 16(%rcx),%xmm1
409 .byte 102,15,56,222,208
410 .byte 102,15,56,222,216
412 .byte 102,15,56,222,224
413 .byte 102,15,56,222,232
414 .byte 102,15,56,222,240
415 .byte 102,15,56,222,248
416 .byte 102,68,15,56,222,192
417 .byte 102,68,15,56,222,200
421 .byte 102,15,56,222,209
422 .byte 102,15,56,222,217
423 .byte 102,15,56,222,225
424 .byte 102,15,56,222,233
425 .byte 102,15,56,222,241
426 .byte 102,15,56,222,249
427 .byte 102,68,15,56,222,193
428 .byte 102,68,15,56,222,201
429 .byte 102,15,56,223,208
430 .byte 102,15,56,223,216
431 .byte 102,15,56,223,224
432 .byte 102,15,56,223,232
433 .byte 102,15,56,223,240
434 .byte 102,15,56,223,248
435 .byte 102,68,15,56,223,192
436 .byte 102,68,15,56,223,200
438 .size _aesni_decrypt8,.-_aesni_decrypt8
439 .globl aesni_ecb_encrypt
440 .type aesni_ecb_encrypt,@function
457 movdqu 16(%rdi),%xmm3
458 movdqu 32(%rdi),%xmm4
459 movdqu 48(%rdi),%xmm5
460 movdqu 64(%rdi),%xmm6
461 movdqu 80(%rdi),%xmm7
462 movdqu 96(%rdi),%xmm8
463 movdqu 112(%rdi),%xmm9
466 jmp .Lecb_enc_loop8_enter
473 movups %xmm3,16(%rsi)
474 movdqu 16(%rdi),%xmm3
475 movups %xmm4,32(%rsi)
476 movdqu 32(%rdi),%xmm4
477 movups %xmm5,48(%rsi)
478 movdqu 48(%rdi),%xmm5
479 movups %xmm6,64(%rsi)
480 movdqu 64(%rdi),%xmm6
481 movups %xmm7,80(%rsi)
482 movdqu 80(%rdi),%xmm7
483 movups %xmm8,96(%rsi)
484 movdqu 96(%rdi),%xmm8
485 movups %xmm9,112(%rsi)
487 movdqu 112(%rdi),%xmm9
489 .Lecb_enc_loop8_enter:
498 movups %xmm3,16(%rsi)
500 movups %xmm4,32(%rsi)
501 movups %xmm5,48(%rsi)
502 movups %xmm6,64(%rsi)
503 movups %xmm7,80(%rsi)
504 movups %xmm8,96(%rsi)
505 movups %xmm9,112(%rsi)
514 movups 16(%rdi),%xmm3
516 movups 32(%rdi),%xmm4
519 movups 48(%rdi),%xmm5
521 movups 64(%rdi),%xmm6
524 movups 80(%rdi),%xmm7
526 movdqu 96(%rdi),%xmm8
529 movups %xmm3,16(%rsi)
530 movups %xmm4,32(%rsi)
531 movups %xmm5,48(%rsi)
532 movups %xmm6,64(%rsi)
533 movups %xmm7,80(%rsi)
534 movups %xmm8,96(%rsi)
539 movups 16(%rcx),%xmm1
543 .byte 102,15,56,220,209
548 .byte 102,15,56,221,209
556 movups %xmm3,16(%rsi)
562 movups %xmm3,16(%rsi)
563 movups %xmm4,32(%rsi)
569 movups %xmm3,16(%rsi)
570 movups %xmm4,32(%rsi)
571 movups %xmm5,48(%rsi)
578 movups %xmm3,16(%rsi)
579 movups %xmm4,32(%rsi)
580 movups %xmm5,48(%rsi)
581 movups %xmm6,64(%rsi)
587 movups %xmm3,16(%rsi)
588 movups %xmm4,32(%rsi)
589 movups %xmm5,48(%rsi)
590 movups %xmm6,64(%rsi)
591 movups %xmm7,80(%rsi)
600 movdqu 16(%rdi),%xmm3
601 movdqu 32(%rdi),%xmm4
602 movdqu 48(%rdi),%xmm5
603 movdqu 64(%rdi),%xmm6
604 movdqu 80(%rdi),%xmm7
605 movdqu 96(%rdi),%xmm8
606 movdqu 112(%rdi),%xmm9
609 jmp .Lecb_dec_loop8_enter
616 movups %xmm3,16(%rsi)
617 movdqu 16(%rdi),%xmm3
618 movups %xmm4,32(%rsi)
619 movdqu 32(%rdi),%xmm4
620 movups %xmm5,48(%rsi)
621 movdqu 48(%rdi),%xmm5
622 movups %xmm6,64(%rsi)
623 movdqu 64(%rdi),%xmm6
624 movups %xmm7,80(%rsi)
625 movdqu 80(%rdi),%xmm7
626 movups %xmm8,96(%rsi)
627 movdqu 96(%rdi),%xmm8
628 movups %xmm9,112(%rsi)
630 movdqu 112(%rdi),%xmm9
632 .Lecb_dec_loop8_enter:
642 movups %xmm3,16(%rsi)
644 movups %xmm4,32(%rsi)
645 movups %xmm5,48(%rsi)
646 movups %xmm6,64(%rsi)
647 movups %xmm7,80(%rsi)
648 movups %xmm8,96(%rsi)
649 movups %xmm9,112(%rsi)
658 movups 16(%rdi),%xmm3
660 movups 32(%rdi),%xmm4
663 movups 48(%rdi),%xmm5
665 movups 64(%rdi),%xmm6
668 movups 80(%rdi),%xmm7
670 movups 96(%rdi),%xmm8
674 movups %xmm3,16(%rsi)
675 movups %xmm4,32(%rsi)
676 movups %xmm5,48(%rsi)
677 movups %xmm6,64(%rsi)
678 movups %xmm7,80(%rsi)
679 movups %xmm8,96(%rsi)
684 movups 16(%rcx),%xmm1
688 .byte 102,15,56,222,209
693 .byte 102,15,56,223,209
701 movups %xmm3,16(%rsi)
707 movups %xmm3,16(%rsi)
708 movups %xmm4,32(%rsi)
714 movups %xmm3,16(%rsi)
715 movups %xmm4,32(%rsi)
716 movups %xmm5,48(%rsi)
723 movups %xmm3,16(%rsi)
724 movups %xmm4,32(%rsi)
725 movups %xmm5,48(%rsi)
726 movups %xmm6,64(%rsi)
732 movups %xmm3,16(%rsi)
733 movups %xmm4,32(%rsi)
734 movups %xmm5,48(%rsi)
735 movups %xmm6,64(%rsi)
736 movups %xmm7,80(%rsi)
740 .size aesni_ecb_encrypt,.-aesni_ecb_encrypt
741 .globl aesni_ccm64_encrypt_blocks
742 .type aesni_ccm64_encrypt_blocks,@function
744 aesni_ccm64_encrypt_blocks:
747 movdqa .Lincrement64(%rip),%xmm6
748 movdqa .Lbswap_mask(%rip),%xmm7
755 .byte 102,68,15,56,0,207
756 jmp .Lccm64_enc_outer
764 movups 16(%r11),%xmm1
771 .byte 102,15,56,220,209
773 .byte 102,15,56,220,217
774 movups 16(%rcx),%xmm1
775 .byte 102,15,56,220,208
777 .byte 102,15,56,220,216
779 jnz .Lccm64_enc2_loop
780 .byte 102,15,56,220,209
781 .byte 102,15,56,220,217
783 .byte 102,15,56,221,208
784 .byte 102,15,56,221,216
792 .byte 102,15,56,0,215
793 jnz .Lccm64_enc_outer
797 .size aesni_ccm64_encrypt_blocks,.-aesni_ccm64_encrypt_blocks
798 .globl aesni_ccm64_decrypt_blocks
799 .type aesni_ccm64_decrypt_blocks,@function
801 aesni_ccm64_decrypt_blocks:
805 movdqa .Lincrement64(%rip),%xmm6
806 movdqa .Lbswap_mask(%rip),%xmm7
811 .byte 102,68,15,56,0,207
813 movups 16(%rcx),%xmm1
817 .byte 102,15,56,220,209
822 .byte 102,15,56,221,209
826 jmp .Lccm64_dec_outer
834 .byte 102,15,56,0,215
841 movups 16(%r11),%xmm1
849 .byte 102,15,56,220,209
851 .byte 102,15,56,220,217
852 movups 16(%rcx),%xmm1
853 .byte 102,15,56,220,208
855 .byte 102,15,56,220,216
857 jnz .Lccm64_dec2_loop
860 .byte 102,15,56,220,209
861 .byte 102,15,56,220,217
863 .byte 102,15,56,221,208
864 .byte 102,15,56,221,216
865 jmp .Lccm64_dec_outer
871 movups 16(%r11),%xmm1
876 .byte 102,15,56,220,217
881 .byte 102,15,56,221,217
884 .size aesni_ccm64_decrypt_blocks,.-aesni_ccm64_decrypt_blocks
885 .globl aesni_ctr32_encrypt_blocks
886 .type aesni_ctr32_encrypt_blocks,@function
888 aesni_ctr32_encrypt_blocks:
890 je .Lctr32_one_shortcut
893 movdqa .Lbswap_mask(%rip),%xmm15
895 .byte 102,69,15,58,22,242,3
896 .byte 102,68,15,58,34,240,3
902 .byte 102,69,15,58,34,226,0
904 .byte 102,69,15,58,34,235,0
906 .byte 102,69,15,58,34,226,1
908 .byte 102,69,15,58,34,235,1
910 .byte 102,69,15,58,34,226,2
912 .byte 102,69,15,58,34,235,2
913 movdqa %xmm12,-40(%rsp)
914 .byte 102,69,15,56,0,231
915 movdqa %xmm13,-24(%rsp)
916 .byte 102,69,15,56,0,239
918 pshufd $192,%xmm12,%xmm2
919 pshufd $128,%xmm12,%xmm3
920 pshufd $64,%xmm12,%xmm4
931 pshufd $192,%xmm13,%xmm5
934 pshufd $128,%xmm13,%xmm6
936 movups 16(%r11),%xmm1
937 pshufd $64,%xmm13,%xmm7
948 .byte 102,15,56,220,209
951 .byte 102,15,56,220,217
952 movdqa .Lincrement32(%rip),%xmm13
954 .byte 102,15,56,220,225
955 movdqa -40(%rsp),%xmm12
957 .byte 102,15,56,220,233
961 .byte 102,15,56,220,241
962 .byte 102,15,56,220,249
963 jmp .Lctr32_enc_loop6_enter
966 .byte 102,15,56,220,209
967 .byte 102,15,56,220,217
969 .byte 102,15,56,220,225
970 .byte 102,15,56,220,233
971 .byte 102,15,56,220,241
972 .byte 102,15,56,220,249
973 .Lctr32_enc_loop6_enter:
974 movups 16(%rcx),%xmm1
975 .byte 102,15,56,220,208
976 .byte 102,15,56,220,216
978 .byte 102,15,56,220,224
979 .byte 102,15,56,220,232
980 .byte 102,15,56,220,240
981 .byte 102,15,56,220,248
983 jnz .Lctr32_enc_loop6
985 .byte 102,15,56,220,209
987 .byte 102,15,56,220,217
988 paddd -24(%rsp),%xmm13
989 .byte 102,15,56,220,225
990 movdqa %xmm12,-40(%rsp)
991 .byte 102,15,56,220,233
992 movdqa %xmm13,-24(%rsp)
993 .byte 102,15,56,220,241
994 .byte 102,69,15,56,0,231
995 .byte 102,15,56,220,249
996 .byte 102,69,15,56,0,239
998 .byte 102,15,56,221,208
1000 .byte 102,15,56,221,216
1001 movups 16(%rdi),%xmm9
1002 .byte 102,15,56,221,224
1003 movups 32(%rdi),%xmm10
1004 .byte 102,15,56,221,232
1005 movups 48(%rdi),%xmm11
1006 .byte 102,15,56,221,240
1007 movups 64(%rdi),%xmm1
1008 .byte 102,15,56,221,248
1009 movups 80(%rdi),%xmm0
1013 pshufd $192,%xmm12,%xmm2
1015 pshufd $128,%xmm12,%xmm3
1018 pshufd $64,%xmm12,%xmm4
1019 movups %xmm9,16(%rsi)
1021 movups %xmm10,32(%rsi)
1023 movups %xmm11,48(%rsi)
1025 movups %xmm1,64(%rsi)
1026 movups %xmm0,80(%rsi)
1035 leal 1(%rax,%rax,1),%eax
1044 movups 16(%rdi),%xmm9
1047 pshufd $192,%xmm13,%xmm5
1049 movups 32(%rdi),%xmm10
1053 pshufd $128,%xmm13,%xmm6
1055 movups 48(%rdi),%xmm11
1061 call _aesni_encrypt6
1063 movups 64(%rdi),%xmm1
1068 movups %xmm9,16(%rsi)
1070 movups %xmm10,32(%rsi)
1072 movups %xmm11,48(%rsi)
1073 movups %xmm1,64(%rsi)
1077 .Lctr32_one_shortcut:
1083 movups 16(%rcx),%xmm1
1087 .byte 102,15,56,220,209
1092 .byte 102,15,56,221,209
1100 call _aesni_encrypt3
1104 movups %xmm9,16(%rsi)
1109 call _aesni_encrypt3
1114 movups %xmm9,16(%rsi)
1115 movups %xmm10,32(%rsi)
1120 call _aesni_encrypt4
1125 movups %xmm9,16(%rsi)
1127 movups %xmm10,32(%rsi)
1128 movups %xmm11,48(%rsi)
1132 .size aesni_ctr32_encrypt_blocks,.-aesni_ctr32_encrypt_blocks
1133 .globl aesni_xts_encrypt
1134 .type aesni_xts_encrypt,@function
1137 leaq -104(%rsp),%rsp
1140 movl 240(%rcx),%r10d
1142 movups 16(%r8),%xmm1
1146 .byte 102,68,15,56,220,249
1151 .byte 102,68,15,56,221,249
1157 movdqa .Lxts_magic(%rip),%xmm8
1159 pcmpgtd %xmm15,%xmm14
1160 pshufd $19,%xmm14,%xmm9
1162 movdqa %xmm15,%xmm10
1165 pcmpgtd %xmm15,%xmm14
1167 pshufd $19,%xmm14,%xmm9
1169 movdqa %xmm15,%xmm11
1172 pcmpgtd %xmm15,%xmm14
1174 pshufd $19,%xmm14,%xmm9
1176 movdqa %xmm15,%xmm12
1179 pcmpgtd %xmm15,%xmm14
1181 pshufd $19,%xmm14,%xmm9
1183 movdqa %xmm15,%xmm13
1186 pcmpgtd %xmm15,%xmm14
1194 jmp .Lxts_enc_grandloop
1197 .Lxts_enc_grandloop:
1198 pshufd $19,%xmm14,%xmm9
1199 movdqa %xmm15,%xmm14
1201 movdqu 0(%rdi),%xmm2
1203 movdqu 16(%rdi),%xmm3
1206 movdqu 32(%rdi),%xmm4
1208 movdqu 48(%rdi),%xmm5
1210 movdqu 64(%rdi),%xmm6
1212 movdqu 80(%rdi),%xmm7
1221 movups 16(%r11),%xmm1
1224 movdqa %xmm10,0(%rsp)
1225 .byte 102,15,56,220,209
1228 movdqa %xmm11,16(%rsp)
1229 .byte 102,15,56,220,217
1231 movdqa %xmm12,32(%rsp)
1232 .byte 102,15,56,220,225
1234 movdqa %xmm13,48(%rsp)
1235 .byte 102,15,56,220,233
1239 movdqa %xmm14,64(%rsp)
1240 .byte 102,15,56,220,241
1241 movdqa %xmm15,80(%rsp)
1242 .byte 102,15,56,220,249
1244 pcmpgtd %xmm15,%xmm14
1245 jmp .Lxts_enc_loop6_enter
1249 .byte 102,15,56,220,209
1250 .byte 102,15,56,220,217
1252 .byte 102,15,56,220,225
1253 .byte 102,15,56,220,233
1254 .byte 102,15,56,220,241
1255 .byte 102,15,56,220,249
1256 .Lxts_enc_loop6_enter:
1257 movups 16(%rcx),%xmm1
1258 .byte 102,15,56,220,208
1259 .byte 102,15,56,220,216
1261 .byte 102,15,56,220,224
1262 .byte 102,15,56,220,232
1263 .byte 102,15,56,220,240
1264 .byte 102,15,56,220,248
1268 pshufd $19,%xmm14,%xmm9
1271 .byte 102,15,56,220,209
1273 .byte 102,15,56,220,217
1274 pcmpgtd %xmm15,%xmm14
1275 .byte 102,15,56,220,225
1277 .byte 102,15,56,220,233
1278 .byte 102,15,56,220,241
1279 .byte 102,15,56,220,249
1280 movups 16(%rcx),%xmm1
1282 pshufd $19,%xmm14,%xmm9
1284 movdqa %xmm15,%xmm10
1286 .byte 102,15,56,220,208
1288 .byte 102,15,56,220,216
1289 pcmpgtd %xmm15,%xmm14
1290 .byte 102,15,56,220,224
1292 .byte 102,15,56,220,232
1293 .byte 102,15,56,220,240
1294 .byte 102,15,56,220,248
1295 movups 32(%rcx),%xmm0
1297 pshufd $19,%xmm14,%xmm9
1299 movdqa %xmm15,%xmm11
1301 .byte 102,15,56,220,209
1303 .byte 102,15,56,220,217
1304 pcmpgtd %xmm15,%xmm14
1305 .byte 102,15,56,220,225
1307 .byte 102,15,56,220,233
1308 .byte 102,15,56,220,241
1309 .byte 102,15,56,220,249
1311 pshufd $19,%xmm14,%xmm9
1313 movdqa %xmm15,%xmm12
1315 .byte 102,15,56,221,208
1317 .byte 102,15,56,221,216
1318 pcmpgtd %xmm15,%xmm14
1319 .byte 102,15,56,221,224
1321 .byte 102,15,56,221,232
1322 .byte 102,15,56,221,240
1323 .byte 102,15,56,221,248
1325 pshufd $19,%xmm14,%xmm9
1327 movdqa %xmm15,%xmm13
1331 xorps 16(%rsp),%xmm3
1332 pcmpgtd %xmm15,%xmm14
1335 xorps 32(%rsp),%xmm4
1336 movups %xmm2,0(%rsi)
1337 xorps 48(%rsp),%xmm5
1338 movups %xmm3,16(%rsi)
1339 xorps 64(%rsp),%xmm6
1340 movups %xmm4,32(%rsi)
1341 xorps 80(%rsp),%xmm7
1342 movups %xmm5,48(%rsi)
1344 movups %xmm6,64(%rsi)
1345 movups %xmm7,80(%rsi)
1348 jnc .Lxts_enc_grandloop
1350 leal 3(%rax,%rax,1),%eax
1366 pshufd $19,%xmm14,%xmm9
1367 movdqa %xmm15,%xmm14
1371 movdqu 16(%rdi),%xmm3
1374 movdqu 32(%rdi),%xmm4
1376 movdqu 48(%rdi),%xmm5
1378 movdqu 64(%rdi),%xmm6
1384 call _aesni_encrypt6
1387 movdqa %xmm15,%xmm10
1392 movdqu %xmm3,16(%rsi)
1394 movdqu %xmm4,32(%rsi)
1395 movdqu %xmm5,48(%rsi)
1396 movdqu %xmm6,64(%rsi)
1406 movups 16(%rcx),%xmm1
1410 .byte 102,15,56,220,209
1415 .byte 102,15,56,221,209
1417 movdqa %xmm11,%xmm10
1425 movups 16(%rdi),%xmm3
1430 call _aesni_encrypt3
1433 movdqa %xmm12,%xmm10
1436 movups %xmm3,16(%rsi)
1443 movups 16(%rdi),%xmm3
1444 movups 32(%rdi),%xmm4
1450 call _aesni_encrypt3
1453 movdqa %xmm13,%xmm10
1457 movups %xmm3,16(%rsi)
1458 movups %xmm4,32(%rsi)
1465 movups 16(%rdi),%xmm3
1466 movups 32(%rdi),%xmm4
1468 movups 48(%rdi),%xmm5
1474 call _aesni_encrypt4
1477 movdqa %xmm15,%xmm10
1482 movups %xmm3,16(%rsi)
1483 movups %xmm4,32(%rsi)
1484 movups %xmm5,48(%rsi)
1496 movzbl -16(%rsi),%ecx
1508 movups -16(%rsi),%xmm2
1511 movups 16(%rcx),%xmm1
1515 .byte 102,15,56,220,209
1520 .byte 102,15,56,221,209
1522 movups %xmm2,-16(%rsi)
1528 .size aesni_xts_encrypt,.-aesni_xts_encrypt
1529 .globl aesni_xts_decrypt
1530 .type aesni_xts_decrypt,@function
1533 leaq -104(%rsp),%rsp
1536 movl 240(%rcx),%r10d
1538 movups 16(%r8),%xmm1
1542 .byte 102,68,15,56,220,249
1547 .byte 102,68,15,56,221,249
1559 movdqa .Lxts_magic(%rip),%xmm8
1561 pcmpgtd %xmm15,%xmm14
1562 pshufd $19,%xmm14,%xmm9
1564 movdqa %xmm15,%xmm10
1567 pcmpgtd %xmm15,%xmm14
1569 pshufd $19,%xmm14,%xmm9
1571 movdqa %xmm15,%xmm11
1574 pcmpgtd %xmm15,%xmm14
1576 pshufd $19,%xmm14,%xmm9
1578 movdqa %xmm15,%xmm12
1581 pcmpgtd %xmm15,%xmm14
1583 pshufd $19,%xmm14,%xmm9
1585 movdqa %xmm15,%xmm13
1588 pcmpgtd %xmm15,%xmm14
1596 jmp .Lxts_dec_grandloop
1599 .Lxts_dec_grandloop:
1600 pshufd $19,%xmm14,%xmm9
1601 movdqa %xmm15,%xmm14
1603 movdqu 0(%rdi),%xmm2
1605 movdqu 16(%rdi),%xmm3
1608 movdqu 32(%rdi),%xmm4
1610 movdqu 48(%rdi),%xmm5
1612 movdqu 64(%rdi),%xmm6
1614 movdqu 80(%rdi),%xmm7
1623 movups 16(%r11),%xmm1
1626 movdqa %xmm10,0(%rsp)
1627 .byte 102,15,56,222,209
1630 movdqa %xmm11,16(%rsp)
1631 .byte 102,15,56,222,217
1633 movdqa %xmm12,32(%rsp)
1634 .byte 102,15,56,222,225
1636 movdqa %xmm13,48(%rsp)
1637 .byte 102,15,56,222,233
1641 movdqa %xmm14,64(%rsp)
1642 .byte 102,15,56,222,241
1643 movdqa %xmm15,80(%rsp)
1644 .byte 102,15,56,222,249
1646 pcmpgtd %xmm15,%xmm14
1647 jmp .Lxts_dec_loop6_enter
1651 .byte 102,15,56,222,209
1652 .byte 102,15,56,222,217
1654 .byte 102,15,56,222,225
1655 .byte 102,15,56,222,233
1656 .byte 102,15,56,222,241
1657 .byte 102,15,56,222,249
1658 .Lxts_dec_loop6_enter:
1659 movups 16(%rcx),%xmm1
1660 .byte 102,15,56,222,208
1661 .byte 102,15,56,222,216
1663 .byte 102,15,56,222,224
1664 .byte 102,15,56,222,232
1665 .byte 102,15,56,222,240
1666 .byte 102,15,56,222,248
1670 pshufd $19,%xmm14,%xmm9
1673 .byte 102,15,56,222,209
1675 .byte 102,15,56,222,217
1676 pcmpgtd %xmm15,%xmm14
1677 .byte 102,15,56,222,225
1679 .byte 102,15,56,222,233
1680 .byte 102,15,56,222,241
1681 .byte 102,15,56,222,249
1682 movups 16(%rcx),%xmm1
1684 pshufd $19,%xmm14,%xmm9
1686 movdqa %xmm15,%xmm10
1688 .byte 102,15,56,222,208
1690 .byte 102,15,56,222,216
1691 pcmpgtd %xmm15,%xmm14
1692 .byte 102,15,56,222,224
1694 .byte 102,15,56,222,232
1695 .byte 102,15,56,222,240
1696 .byte 102,15,56,222,248
1697 movups 32(%rcx),%xmm0
1699 pshufd $19,%xmm14,%xmm9
1701 movdqa %xmm15,%xmm11
1703 .byte 102,15,56,222,209
1705 .byte 102,15,56,222,217
1706 pcmpgtd %xmm15,%xmm14
1707 .byte 102,15,56,222,225
1709 .byte 102,15,56,222,233
1710 .byte 102,15,56,222,241
1711 .byte 102,15,56,222,249
1713 pshufd $19,%xmm14,%xmm9
1715 movdqa %xmm15,%xmm12
1717 .byte 102,15,56,223,208
1719 .byte 102,15,56,223,216
1720 pcmpgtd %xmm15,%xmm14
1721 .byte 102,15,56,223,224
1723 .byte 102,15,56,223,232
1724 .byte 102,15,56,223,240
1725 .byte 102,15,56,223,248
1727 pshufd $19,%xmm14,%xmm9
1729 movdqa %xmm15,%xmm13
1733 xorps 16(%rsp),%xmm3
1734 pcmpgtd %xmm15,%xmm14
1737 xorps 32(%rsp),%xmm4
1738 movups %xmm2,0(%rsi)
1739 xorps 48(%rsp),%xmm5
1740 movups %xmm3,16(%rsi)
1741 xorps 64(%rsp),%xmm6
1742 movups %xmm4,32(%rsi)
1743 xorps 80(%rsp),%xmm7
1744 movups %xmm5,48(%rsi)
1746 movups %xmm6,64(%rsi)
1747 movups %xmm7,80(%rsi)
1750 jnc .Lxts_dec_grandloop
1752 leal 3(%rax,%rax,1),%eax
1768 pshufd $19,%xmm14,%xmm9
1769 movdqa %xmm15,%xmm14
1773 movdqu 16(%rdi),%xmm3
1776 movdqu 32(%rdi),%xmm4
1778 movdqu 48(%rdi),%xmm5
1780 movdqu 64(%rdi),%xmm6
1786 call _aesni_decrypt6
1793 movdqu %xmm3,16(%rsi)
1795 movdqu %xmm4,32(%rsi)
1797 movdqu %xmm5,48(%rsi)
1798 pcmpgtd %xmm15,%xmm14
1799 movdqu %xmm6,64(%rsi)
1801 pshufd $19,%xmm14,%xmm11
1805 movdqa %xmm15,%xmm10
1817 movups 16(%rcx),%xmm1
1821 .byte 102,15,56,222,209
1826 .byte 102,15,56,223,209
1828 movdqa %xmm11,%xmm10
1830 movdqa %xmm12,%xmm11
1837 movups 16(%rdi),%xmm3
1842 call _aesni_decrypt3
1845 movdqa %xmm12,%xmm10
1847 movdqa %xmm13,%xmm11
1849 movups %xmm3,16(%rsi)
1856 movups 16(%rdi),%xmm3
1857 movups 32(%rdi),%xmm4
1863 call _aesni_decrypt3
1866 movdqa %xmm13,%xmm10
1868 movdqa %xmm15,%xmm11
1871 movups %xmm3,16(%rsi)
1872 movups %xmm4,32(%rsi)
1878 pshufd $19,%xmm14,%xmm9
1879 movdqa %xmm15,%xmm14
1883 movups 16(%rdi),%xmm3
1886 movups 32(%rdi),%xmm4
1888 movups 48(%rdi),%xmm5
1894 call _aesni_decrypt4
1897 movdqa %xmm14,%xmm10
1899 movdqa %xmm15,%xmm11
1903 movups %xmm3,16(%rsi)
1904 movups %xmm4,32(%rsi)
1905 movups %xmm5,48(%rsi)
1921 movups 16(%rcx),%xmm1
1925 .byte 102,15,56,222,209
1930 .byte 102,15,56,223,209
1935 movzbl 16(%rdi),%eax
1951 movups 16(%rcx),%xmm1
1955 .byte 102,15,56,222,209
1960 .byte 102,15,56,223,209
1968 .size aesni_xts_decrypt,.-aesni_xts_decrypt
1969 .globl aesni_cbc_encrypt
1970 .type aesni_cbc_encrypt,@function
1976 movl 240(%rcx),%r10d
1993 movups 16(%rcx),%xmm1
1998 .byte 102,15,56,220,209
2003 .byte 102,15,56,221,209
2006 movups %xmm2,0(%rsi)
2039 movaps %xmm9,-24(%rsp)
2040 jmp .Lcbc_dec_loop8_enter
2043 movaps %xmm0,-24(%rsp)
2046 .Lcbc_dec_loop8_enter:
2049 movups 16(%rdi),%xmm3
2050 movups 16(%rcx),%xmm1
2053 movdqu 32(%rdi),%xmm4
2055 movdqu 48(%rdi),%xmm5
2057 movdqu 64(%rdi),%xmm6
2058 .byte 102,15,56,222,209
2060 movdqu 80(%rdi),%xmm7
2061 .byte 102,15,56,222,217
2063 movdqu 96(%rdi),%xmm8
2064 .byte 102,15,56,222,225
2066 movdqu 112(%rdi),%xmm9
2067 .byte 102,15,56,222,233
2070 .byte 102,15,56,222,241
2072 .byte 102,15,56,222,249
2075 .byte 102,68,15,56,222,193
2076 .byte 102,68,15,56,222,201
2077 movups 16(%rcx),%xmm1
2079 call .Ldec_loop8_enter
2082 movups 16(%rdi),%xmm0
2083 xorps -24(%rsp),%xmm2
2085 movups 32(%rdi),%xmm1
2087 movups 48(%rdi),%xmm0
2089 movups 64(%rdi),%xmm1
2091 movups 80(%rdi),%xmm0
2093 movups 96(%rdi),%xmm1
2095 movups 112(%rdi),%xmm0
2098 movups %xmm3,16(%rsi)
2099 movups %xmm4,32(%rsi)
2100 movups %xmm5,48(%rsi)
2102 movups %xmm6,64(%rsi)
2104 movups %xmm7,80(%rsi)
2106 movups %xmm8,96(%rsi)
2114 jle .Lcbc_dec_tail_collected
2116 leal 1(%r10,%r10,1),%eax
2124 movups 16(%rdi),%xmm3
2129 movups 32(%rdi),%xmm4
2134 movups 48(%rdi),%xmm5
2138 movups 64(%rdi),%xmm6
2142 movups 80(%rdi),%xmm7
2146 movups 96(%rdi),%xmm8
2147 movaps %xmm9,-24(%rsp)
2148 call _aesni_decrypt8
2150 movups 16(%rdi),%xmm0
2151 xorps -24(%rsp),%xmm2
2153 movups 32(%rdi),%xmm1
2155 movups 48(%rdi),%xmm0
2157 movups 64(%rdi),%xmm1
2159 movups 80(%rdi),%xmm0
2161 movups 96(%rdi),%xmm9
2164 movups %xmm3,16(%rsi)
2165 movups %xmm4,32(%rsi)
2166 movups %xmm5,48(%rsi)
2167 movups %xmm6,64(%rsi)
2168 movups %xmm7,80(%rsi)
2172 jmp .Lcbc_dec_tail_collected
2176 movups 16(%rcx),%xmm1
2180 .byte 102,15,56,222,209
2185 .byte 102,15,56,223,209
2189 jmp .Lcbc_dec_tail_collected
2193 call _aesni_decrypt3
2201 jmp .Lcbc_dec_tail_collected
2204 call _aesni_decrypt3
2209 movups %xmm3,16(%rsi)
2214 jmp .Lcbc_dec_tail_collected
2217 call _aesni_decrypt4
2219 movups 48(%rdi),%xmm9
2223 movups %xmm3,16(%rsi)
2225 movups %xmm4,32(%rsi)
2229 jmp .Lcbc_dec_tail_collected
2233 call _aesni_decrypt6
2234 movups 16(%rdi),%xmm1
2235 movups 32(%rdi),%xmm0
2239 movups 48(%rdi),%xmm1
2241 movups 64(%rdi),%xmm9
2244 movups %xmm3,16(%rsi)
2245 movups %xmm4,32(%rsi)
2246 movups %xmm5,48(%rsi)
2250 jmp .Lcbc_dec_tail_collected
2253 call _aesni_decrypt6
2254 movups 16(%rdi),%xmm1
2255 movups 32(%rdi),%xmm0
2259 movups 48(%rdi),%xmm1
2261 movups 64(%rdi),%xmm0
2263 movups 80(%rdi),%xmm9
2266 movups %xmm3,16(%rsi)
2267 movups %xmm4,32(%rsi)
2268 movups %xmm5,48(%rsi)
2269 movups %xmm6,64(%rsi)
2273 jmp .Lcbc_dec_tail_collected
2275 .Lcbc_dec_tail_collected:
2278 jnz .Lcbc_dec_tail_partial
2282 .Lcbc_dec_tail_partial:
2283 movaps %xmm2,-24(%rsp)
2293 .size aesni_cbc_encrypt,.-aesni_cbc_encrypt
2294 .globl aesni_set_decrypt_key
2295 .type aesni_set_decrypt_key,@function
2297 aesni_set_decrypt_key:
2298 .byte 0x48,0x83,0xEC,0x08
2299 call __aesni_set_encrypt_key
2303 leaq 16(%rdx,%rsi,1),%rdi
2315 .byte 102,15,56,219,192
2316 .byte 102,15,56,219,201
2319 movups %xmm0,16(%rdi)
2320 movups %xmm1,-16(%rdx)
2322 ja .Ldec_key_inverse
2325 .byte 102,15,56,219,192
2330 .LSEH_end_set_decrypt_key:
2331 .size aesni_set_decrypt_key,.-aesni_set_decrypt_key
2332 .globl aesni_set_encrypt_key
2333 .type aesni_set_encrypt_key,@function
2335 aesni_set_encrypt_key:
2336 __aesni_set_encrypt_key:
2337 .byte 0x48,0x83,0xEC,0x08
2357 .byte 102,15,58,223,200,1
2358 call .Lkey_expansion_128_cold
2359 .byte 102,15,58,223,200,2
2360 call .Lkey_expansion_128
2361 .byte 102,15,58,223,200,4
2362 call .Lkey_expansion_128
2363 .byte 102,15,58,223,200,8
2364 call .Lkey_expansion_128
2365 .byte 102,15,58,223,200,16
2366 call .Lkey_expansion_128
2367 .byte 102,15,58,223,200,32
2368 call .Lkey_expansion_128
2369 .byte 102,15,58,223,200,64
2370 call .Lkey_expansion_128
2371 .byte 102,15,58,223,200,128
2372 call .Lkey_expansion_128
2373 .byte 102,15,58,223,200,27
2374 call .Lkey_expansion_128
2375 .byte 102,15,58,223,200,54
2376 call .Lkey_expansion_128
2387 .byte 102,15,58,223,202,1
2388 call .Lkey_expansion_192a_cold
2389 .byte 102,15,58,223,202,2
2390 call .Lkey_expansion_192b
2391 .byte 102,15,58,223,202,4
2392 call .Lkey_expansion_192a
2393 .byte 102,15,58,223,202,8
2394 call .Lkey_expansion_192b
2395 .byte 102,15,58,223,202,16
2396 call .Lkey_expansion_192a
2397 .byte 102,15,58,223,202,32
2398 call .Lkey_expansion_192b
2399 .byte 102,15,58,223,202,64
2400 call .Lkey_expansion_192a
2401 .byte 102,15,58,223,202,128
2402 call .Lkey_expansion_192b
2410 movups 16(%rdi),%xmm2
2414 movups %xmm2,16(%rdx)
2415 .byte 102,15,58,223,202,1
2416 call .Lkey_expansion_256a_cold
2417 .byte 102,15,58,223,200,1
2418 call .Lkey_expansion_256b
2419 .byte 102,15,58,223,202,2
2420 call .Lkey_expansion_256a
2421 .byte 102,15,58,223,200,2
2422 call .Lkey_expansion_256b
2423 .byte 102,15,58,223,202,4
2424 call .Lkey_expansion_256a
2425 .byte 102,15,58,223,200,4
2426 call .Lkey_expansion_256b
2427 .byte 102,15,58,223,202,8
2428 call .Lkey_expansion_256a
2429 .byte 102,15,58,223,200,8
2430 call .Lkey_expansion_256b
2431 .byte 102,15,58,223,202,16
2432 call .Lkey_expansion_256a
2433 .byte 102,15,58,223,200,16
2434 call .Lkey_expansion_256b
2435 .byte 102,15,58,223,202,32
2436 call .Lkey_expansion_256a
2437 .byte 102,15,58,223,200,32
2438 call .Lkey_expansion_256b
2439 .byte 102,15,58,223,202,64
2440 call .Lkey_expansion_256a
2452 .LSEH_end_set_encrypt_key:
2455 .Lkey_expansion_128:
2458 .Lkey_expansion_128_cold:
2459 shufps $16,%xmm0,%xmm4
2461 shufps $140,%xmm0,%xmm4
2463 shufps $255,%xmm1,%xmm1
2468 .Lkey_expansion_192a:
2471 .Lkey_expansion_192a_cold:
2473 .Lkey_expansion_192b_warm:
2474 shufps $16,%xmm0,%xmm4
2477 shufps $140,%xmm0,%xmm4
2480 pshufd $85,%xmm1,%xmm1
2483 pshufd $255,%xmm0,%xmm3
2488 .Lkey_expansion_192b:
2490 shufps $68,%xmm0,%xmm5
2492 shufps $78,%xmm2,%xmm3
2493 movups %xmm3,16(%rax)
2495 jmp .Lkey_expansion_192b_warm
2498 .Lkey_expansion_256a:
2501 .Lkey_expansion_256a_cold:
2502 shufps $16,%xmm0,%xmm4
2504 shufps $140,%xmm0,%xmm4
2506 shufps $255,%xmm1,%xmm1
2511 .Lkey_expansion_256b:
2515 shufps $16,%xmm2,%xmm4
2517 shufps $140,%xmm2,%xmm4
2519 shufps $170,%xmm1,%xmm1
2522 .size aesni_set_encrypt_key,.-aesni_set_encrypt_key
2523 .size __aesni_set_encrypt_key,.-__aesni_set_encrypt_key
2526 .byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
2534 .byte 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69,83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0