1 #if defined(__x86_64__)
3 .extern OPENSSL_ia32cap_P
4 .hidden OPENSSL_ia32cap_P
7 .type aesni_encrypt,@function
17 .byte 102,15,56,220,209
22 .byte 102,15,56,221,209
28 .size aesni_encrypt,.-aesni_encrypt
32 .type aesni_decrypt,@function
42 .byte 102,15,56,222,209
47 .byte 102,15,56,223,209
53 .size aesni_decrypt, .-aesni_decrypt
54 .type _aesni_encrypt2,@function
63 leaq 32(%rcx,%rax,1),%rcx
68 .byte 102,15,56,220,209
69 .byte 102,15,56,220,217
70 movups (%rcx,%rax,1),%xmm1
72 .byte 102,15,56,220,208
73 .byte 102,15,56,220,216
74 movups -16(%rcx,%rax,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 .size _aesni_encrypt2,.-_aesni_encrypt2
83 .type _aesni_decrypt2,@function
92 leaq 32(%rcx,%rax,1),%rcx
97 .byte 102,15,56,222,209
98 .byte 102,15,56,222,217
99 movups (%rcx,%rax,1),%xmm1
101 .byte 102,15,56,222,208
102 .byte 102,15,56,222,216
103 movups -16(%rcx,%rax,1),%xmm0
106 .byte 102,15,56,222,209
107 .byte 102,15,56,222,217
108 .byte 102,15,56,223,208
109 .byte 102,15,56,223,216
111 .size _aesni_decrypt2,.-_aesni_decrypt2
112 .type _aesni_encrypt3,@function
117 movups 16(%rcx),%xmm1
121 movups 32(%rcx),%xmm0
122 leaq 32(%rcx,%rax,1),%rcx
127 .byte 102,15,56,220,209
128 .byte 102,15,56,220,217
129 .byte 102,15,56,220,225
130 movups (%rcx,%rax,1),%xmm1
132 .byte 102,15,56,220,208
133 .byte 102,15,56,220,216
134 .byte 102,15,56,220,224
135 movups -16(%rcx,%rax,1),%xmm0
138 .byte 102,15,56,220,209
139 .byte 102,15,56,220,217
140 .byte 102,15,56,220,225
141 .byte 102,15,56,221,208
142 .byte 102,15,56,221,216
143 .byte 102,15,56,221,224
145 .size _aesni_encrypt3,.-_aesni_encrypt3
146 .type _aesni_decrypt3,@function
151 movups 16(%rcx),%xmm1
155 movups 32(%rcx),%xmm0
156 leaq 32(%rcx,%rax,1),%rcx
161 .byte 102,15,56,222,209
162 .byte 102,15,56,222,217
163 .byte 102,15,56,222,225
164 movups (%rcx,%rax,1),%xmm1
166 .byte 102,15,56,222,208
167 .byte 102,15,56,222,216
168 .byte 102,15,56,222,224
169 movups -16(%rcx,%rax,1),%xmm0
172 .byte 102,15,56,222,209
173 .byte 102,15,56,222,217
174 .byte 102,15,56,222,225
175 .byte 102,15,56,223,208
176 .byte 102,15,56,223,216
177 .byte 102,15,56,223,224
179 .size _aesni_decrypt3,.-_aesni_decrypt3
180 .type _aesni_encrypt4,@function
185 movups 16(%rcx),%xmm1
190 movups 32(%rcx),%xmm0
191 leaq 32(%rcx,%rax,1),%rcx
197 .byte 102,15,56,220,209
198 .byte 102,15,56,220,217
199 .byte 102,15,56,220,225
200 .byte 102,15,56,220,233
201 movups (%rcx,%rax,1),%xmm1
203 .byte 102,15,56,220,208
204 .byte 102,15,56,220,216
205 .byte 102,15,56,220,224
206 .byte 102,15,56,220,232
207 movups -16(%rcx,%rax,1),%xmm0
210 .byte 102,15,56,220,209
211 .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,221,208
215 .byte 102,15,56,221,216
216 .byte 102,15,56,221,224
217 .byte 102,15,56,221,232
219 .size _aesni_encrypt4,.-_aesni_encrypt4
220 .type _aesni_decrypt4,@function
225 movups 16(%rcx),%xmm1
230 movups 32(%rcx),%xmm0
231 leaq 32(%rcx,%rax,1),%rcx
237 .byte 102,15,56,222,209
238 .byte 102,15,56,222,217
239 .byte 102,15,56,222,225
240 .byte 102,15,56,222,233
241 movups (%rcx,%rax,1),%xmm1
243 .byte 102,15,56,222,208
244 .byte 102,15,56,222,216
245 .byte 102,15,56,222,224
246 .byte 102,15,56,222,232
247 movups -16(%rcx,%rax,1),%xmm0
250 .byte 102,15,56,222,209
251 .byte 102,15,56,222,217
252 .byte 102,15,56,222,225
253 .byte 102,15,56,222,233
254 .byte 102,15,56,223,208
255 .byte 102,15,56,223,216
256 .byte 102,15,56,223,224
257 .byte 102,15,56,223,232
259 .size _aesni_decrypt4,.-_aesni_decrypt4
260 .type _aesni_encrypt6,@function
265 movups 16(%rcx),%xmm1
269 .byte 102,15,56,220,209
270 leaq 32(%rcx,%rax,1),%rcx
272 .byte 102,15,56,220,217
275 .byte 102,15,56,220,225
277 movups (%rcx,%rax,1),%xmm0
279 jmp .Lenc_loop6_enter
282 .byte 102,15,56,220,209
283 .byte 102,15,56,220,217
284 .byte 102,15,56,220,225
286 .byte 102,15,56,220,233
287 .byte 102,15,56,220,241
288 .byte 102,15,56,220,249
289 movups (%rcx,%rax,1),%xmm1
291 .byte 102,15,56,220,208
292 .byte 102,15,56,220,216
293 .byte 102,15,56,220,224
294 .byte 102,15,56,220,232
295 .byte 102,15,56,220,240
296 .byte 102,15,56,220,248
297 movups -16(%rcx,%rax,1),%xmm0
300 .byte 102,15,56,220,209
301 .byte 102,15,56,220,217
302 .byte 102,15,56,220,225
303 .byte 102,15,56,220,233
304 .byte 102,15,56,220,241
305 .byte 102,15,56,220,249
306 .byte 102,15,56,221,208
307 .byte 102,15,56,221,216
308 .byte 102,15,56,221,224
309 .byte 102,15,56,221,232
310 .byte 102,15,56,221,240
311 .byte 102,15,56,221,248
313 .size _aesni_encrypt6,.-_aesni_encrypt6
314 .type _aesni_decrypt6,@function
319 movups 16(%rcx),%xmm1
323 .byte 102,15,56,222,209
324 leaq 32(%rcx,%rax,1),%rcx
326 .byte 102,15,56,222,217
329 .byte 102,15,56,222,225
331 movups (%rcx,%rax,1),%xmm0
333 jmp .Ldec_loop6_enter
336 .byte 102,15,56,222,209
337 .byte 102,15,56,222,217
338 .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 movups (%rcx,%rax,1),%xmm1
345 .byte 102,15,56,222,208
346 .byte 102,15,56,222,216
347 .byte 102,15,56,222,224
348 .byte 102,15,56,222,232
349 .byte 102,15,56,222,240
350 .byte 102,15,56,222,248
351 movups -16(%rcx,%rax,1),%xmm0
354 .byte 102,15,56,222,209
355 .byte 102,15,56,222,217
356 .byte 102,15,56,222,225
357 .byte 102,15,56,222,233
358 .byte 102,15,56,222,241
359 .byte 102,15,56,222,249
360 .byte 102,15,56,223,208
361 .byte 102,15,56,223,216
362 .byte 102,15,56,223,224
363 .byte 102,15,56,223,232
364 .byte 102,15,56,223,240
365 .byte 102,15,56,223,248
367 .size _aesni_decrypt6,.-_aesni_decrypt6
368 .type _aesni_encrypt8,@function
373 movups 16(%rcx),%xmm1
379 leaq 32(%rcx,%rax,1),%rcx
381 .byte 102,15,56,220,209
384 .byte 102,15,56,220,217
386 movups (%rcx,%rax,1),%xmm0
388 jmp .Lenc_loop8_inner
391 .byte 102,15,56,220,209
392 .byte 102,15,56,220,217
394 .byte 102,15,56,220,225
395 .byte 102,15,56,220,233
396 .byte 102,15,56,220,241
397 .byte 102,15,56,220,249
398 .byte 102,68,15,56,220,193
399 .byte 102,68,15,56,220,201
401 movups (%rcx,%rax,1),%xmm1
403 .byte 102,15,56,220,208
404 .byte 102,15,56,220,216
405 .byte 102,15,56,220,224
406 .byte 102,15,56,220,232
407 .byte 102,15,56,220,240
408 .byte 102,15,56,220,248
409 .byte 102,68,15,56,220,192
410 .byte 102,68,15,56,220,200
411 movups -16(%rcx,%rax,1),%xmm0
414 .byte 102,15,56,220,209
415 .byte 102,15,56,220,217
416 .byte 102,15,56,220,225
417 .byte 102,15,56,220,233
418 .byte 102,15,56,220,241
419 .byte 102,15,56,220,249
420 .byte 102,68,15,56,220,193
421 .byte 102,68,15,56,220,201
422 .byte 102,15,56,221,208
423 .byte 102,15,56,221,216
424 .byte 102,15,56,221,224
425 .byte 102,15,56,221,232
426 .byte 102,15,56,221,240
427 .byte 102,15,56,221,248
428 .byte 102,68,15,56,221,192
429 .byte 102,68,15,56,221,200
431 .size _aesni_encrypt8,.-_aesni_encrypt8
432 .type _aesni_decrypt8,@function
437 movups 16(%rcx),%xmm1
443 leaq 32(%rcx,%rax,1),%rcx
445 .byte 102,15,56,222,209
448 .byte 102,15,56,222,217
450 movups (%rcx,%rax,1),%xmm0
452 jmp .Ldec_loop8_inner
455 .byte 102,15,56,222,209
456 .byte 102,15,56,222,217
458 .byte 102,15,56,222,225
459 .byte 102,15,56,222,233
460 .byte 102,15,56,222,241
461 .byte 102,15,56,222,249
462 .byte 102,68,15,56,222,193
463 .byte 102,68,15,56,222,201
465 movups (%rcx,%rax,1),%xmm1
467 .byte 102,15,56,222,208
468 .byte 102,15,56,222,216
469 .byte 102,15,56,222,224
470 .byte 102,15,56,222,232
471 .byte 102,15,56,222,240
472 .byte 102,15,56,222,248
473 .byte 102,68,15,56,222,192
474 .byte 102,68,15,56,222,200
475 movups -16(%rcx,%rax,1),%xmm0
478 .byte 102,15,56,222,209
479 .byte 102,15,56,222,217
480 .byte 102,15,56,222,225
481 .byte 102,15,56,222,233
482 .byte 102,15,56,222,241
483 .byte 102,15,56,222,249
484 .byte 102,68,15,56,222,193
485 .byte 102,68,15,56,222,201
486 .byte 102,15,56,223,208
487 .byte 102,15,56,223,216
488 .byte 102,15,56,223,224
489 .byte 102,15,56,223,232
490 .byte 102,15,56,223,240
491 .byte 102,15,56,223,248
492 .byte 102,68,15,56,223,192
493 .byte 102,68,15,56,223,200
495 .size _aesni_decrypt8,.-_aesni_decrypt8
496 .globl aesni_ecb_encrypt
497 .hidden aesni_ecb_encrypt
498 .type aesni_ecb_encrypt,@function
515 movdqu 16(%rdi),%xmm3
516 movdqu 32(%rdi),%xmm4
517 movdqu 48(%rdi),%xmm5
518 movdqu 64(%rdi),%xmm6
519 movdqu 80(%rdi),%xmm7
520 movdqu 96(%rdi),%xmm8
521 movdqu 112(%rdi),%xmm9
524 jmp .Lecb_enc_loop8_enter
531 movups %xmm3,16(%rsi)
532 movdqu 16(%rdi),%xmm3
533 movups %xmm4,32(%rsi)
534 movdqu 32(%rdi),%xmm4
535 movups %xmm5,48(%rsi)
536 movdqu 48(%rdi),%xmm5
537 movups %xmm6,64(%rsi)
538 movdqu 64(%rdi),%xmm6
539 movups %xmm7,80(%rsi)
540 movdqu 80(%rdi),%xmm7
541 movups %xmm8,96(%rsi)
542 movdqu 96(%rdi),%xmm8
543 movups %xmm9,112(%rsi)
545 movdqu 112(%rdi),%xmm9
547 .Lecb_enc_loop8_enter:
556 movups %xmm3,16(%rsi)
558 movups %xmm4,32(%rsi)
559 movups %xmm5,48(%rsi)
560 movups %xmm6,64(%rsi)
561 movups %xmm7,80(%rsi)
562 movups %xmm8,96(%rsi)
563 movups %xmm9,112(%rsi)
572 movups 16(%rdi),%xmm3
574 movups 32(%rdi),%xmm4
577 movups 48(%rdi),%xmm5
579 movups 64(%rdi),%xmm6
582 movups 80(%rdi),%xmm7
584 movdqu 96(%rdi),%xmm8
588 movups %xmm3,16(%rsi)
589 movups %xmm4,32(%rsi)
590 movups %xmm5,48(%rsi)
591 movups %xmm6,64(%rsi)
592 movups %xmm7,80(%rsi)
593 movups %xmm8,96(%rsi)
598 movups 16(%rcx),%xmm1
602 .byte 102,15,56,220,209
607 .byte 102,15,56,221,209
614 movups %xmm3,16(%rsi)
620 movups %xmm3,16(%rsi)
621 movups %xmm4,32(%rsi)
627 movups %xmm3,16(%rsi)
628 movups %xmm4,32(%rsi)
629 movups %xmm5,48(%rsi)
636 movups %xmm3,16(%rsi)
637 movups %xmm4,32(%rsi)
638 movups %xmm5,48(%rsi)
639 movups %xmm6,64(%rsi)
645 movups %xmm3,16(%rsi)
646 movups %xmm4,32(%rsi)
647 movups %xmm5,48(%rsi)
648 movups %xmm6,64(%rsi)
649 movups %xmm7,80(%rsi)
658 movdqu 16(%rdi),%xmm3
659 movdqu 32(%rdi),%xmm4
660 movdqu 48(%rdi),%xmm5
661 movdqu 64(%rdi),%xmm6
662 movdqu 80(%rdi),%xmm7
663 movdqu 96(%rdi),%xmm8
664 movdqu 112(%rdi),%xmm9
667 jmp .Lecb_dec_loop8_enter
674 movups %xmm3,16(%rsi)
675 movdqu 16(%rdi),%xmm3
676 movups %xmm4,32(%rsi)
677 movdqu 32(%rdi),%xmm4
678 movups %xmm5,48(%rsi)
679 movdqu 48(%rdi),%xmm5
680 movups %xmm6,64(%rsi)
681 movdqu 64(%rdi),%xmm6
682 movups %xmm7,80(%rsi)
683 movdqu 80(%rdi),%xmm7
684 movups %xmm8,96(%rsi)
685 movdqu 96(%rdi),%xmm8
686 movups %xmm9,112(%rsi)
688 movdqu 112(%rdi),%xmm9
690 .Lecb_dec_loop8_enter:
701 movups %xmm3,16(%rsi)
704 movups %xmm4,32(%rsi)
706 movups %xmm5,48(%rsi)
708 movups %xmm6,64(%rsi)
710 movups %xmm7,80(%rsi)
712 movups %xmm8,96(%rsi)
714 movups %xmm9,112(%rsi)
724 movups 16(%rdi),%xmm3
726 movups 32(%rdi),%xmm4
729 movups 48(%rdi),%xmm5
731 movups 64(%rdi),%xmm6
734 movups 80(%rdi),%xmm7
736 movups 96(%rdi),%xmm8
742 movups %xmm3,16(%rsi)
744 movups %xmm4,32(%rsi)
746 movups %xmm5,48(%rsi)
748 movups %xmm6,64(%rsi)
750 movups %xmm7,80(%rsi)
752 movups %xmm8,96(%rsi)
759 movups 16(%rcx),%xmm1
763 .byte 102,15,56,222,209
768 .byte 102,15,56,223,209
777 movups %xmm3,16(%rsi)
785 movups %xmm3,16(%rsi)
787 movups %xmm4,32(%rsi)
795 movups %xmm3,16(%rsi)
797 movups %xmm4,32(%rsi)
799 movups %xmm5,48(%rsi)
808 movups %xmm3,16(%rsi)
810 movups %xmm4,32(%rsi)
812 movups %xmm5,48(%rsi)
814 movups %xmm6,64(%rsi)
823 movups %xmm3,16(%rsi)
825 movups %xmm4,32(%rsi)
827 movups %xmm5,48(%rsi)
829 movups %xmm6,64(%rsi)
831 movups %xmm7,80(%rsi)
838 .size aesni_ecb_encrypt,.-aesni_ecb_encrypt
839 .globl aesni_ccm64_encrypt_blocks
840 .hidden aesni_ccm64_encrypt_blocks
841 .type aesni_ccm64_encrypt_blocks,@function
843 aesni_ccm64_encrypt_blocks:
846 movdqa .Lincrement64(%rip),%xmm9
847 movdqa .Lbswap_mask(%rip),%xmm7
854 leaq 32(%rcx,%rax,1),%rcx
855 .byte 102,15,56,0,247
857 jmp .Lccm64_enc_outer
865 movups 16(%r11),%xmm1
868 movups 32(%r11),%xmm0
871 .byte 102,15,56,220,209
872 .byte 102,15,56,220,217
873 movups (%rcx,%rax,1),%xmm1
875 .byte 102,15,56,220,208
876 .byte 102,15,56,220,216
877 movups -16(%rcx,%rax,1),%xmm0
878 jnz .Lccm64_enc2_loop
879 .byte 102,15,56,220,209
880 .byte 102,15,56,220,217
883 .byte 102,15,56,221,208
884 .byte 102,15,56,221,216
890 .byte 102,15,56,0,215
892 jnz .Lccm64_enc_outer
902 .size aesni_ccm64_encrypt_blocks,.-aesni_ccm64_encrypt_blocks
903 .globl aesni_ccm64_decrypt_blocks
904 .hidden aesni_ccm64_decrypt_blocks
905 .type aesni_ccm64_decrypt_blocks,@function
907 aesni_ccm64_decrypt_blocks:
911 movdqa .Lincrement64(%rip),%xmm9
912 movdqa .Lbswap_mask(%rip),%xmm7
917 .byte 102,15,56,0,247
919 movups 16(%rcx),%xmm1
923 .byte 102,15,56,220,209
928 .byte 102,15,56,221,209
935 leaq 32(%r11,%r10,1),%rcx
937 jmp .Lccm64_dec_outer
944 .byte 102,15,56,0,215
951 movups 16(%r11),%xmm1
955 movups 32(%r11),%xmm0
956 jmp .Lccm64_dec2_loop
959 .byte 102,15,56,220,209
960 .byte 102,15,56,220,217
961 movups (%rcx,%rax,1),%xmm1
963 .byte 102,15,56,220,208
964 .byte 102,15,56,220,216
965 movups -16(%rcx,%rax,1),%xmm0
966 jnz .Lccm64_dec2_loop
969 .byte 102,15,56,220,209
970 .byte 102,15,56,220,217
971 .byte 102,15,56,221,208
972 .byte 102,15,56,221,216
974 jmp .Lccm64_dec_outer
981 movups 16(%r11),%xmm1
986 .byte 102,15,56,220,217
991 .byte 102,15,56,221,217
1000 .size aesni_ccm64_decrypt_blocks,.-aesni_ccm64_decrypt_blocks
1001 .globl aesni_ctr32_encrypt_blocks
1002 .hidden aesni_ctr32_encrypt_blocks
1003 .type aesni_ctr32_encrypt_blocks,@function
1005 aesni_ctr32_encrypt_blocks:
1015 movups 16(%rcx),%xmm1
1019 .byte 102,15,56,220,209
1024 .byte 102,15,56,221,209
1031 jmp .Lctr32_epilogue
1049 movdqa %xmm2,0(%rsp)
1054 movdqa %xmm2,64(%rsp)
1055 movdqa %xmm2,80(%rsp)
1056 movdqa %xmm2,96(%rsp)
1058 movdqa %xmm2,112(%rsp)
1066 .byte 102,15,58,34,216,3
1068 movdqa %xmm3,16(%rsp)
1069 .byte 102,15,58,34,226,3
1073 movdqa %xmm4,32(%rsp)
1076 .byte 102,15,58,34,232,3
1078 movdqa %xmm5,48(%rsp)
1080 movl %r10d,64+12(%rsp)
1086 movl %r9d,80+12(%rsp)
1089 movl %r10d,96+12(%rsp)
1091 movl OPENSSL_ia32cap_P+4(%rip),%r10d
1093 andl $71303168,%r10d
1094 movl %r9d,112+12(%rsp)
1096 movups 16(%rcx),%xmm1
1098 movdqa 64(%rsp),%xmm6
1099 movdqa 80(%rsp),%xmm7
1117 leaq 32(%rcx,%rax,1),%rcx
1124 movups -48(%rcx,%r10,1),%xmm0
1125 .byte 102,15,56,220,209
1128 .byte 102,15,56,220,217
1129 .byte 0x0f,0x38,0xf1,0x44,0x24,12
1131 .byte 102,15,56,220,225
1133 .byte 0x0f,0x38,0xf1,0x44,0x24,28
1134 .byte 102,15,56,220,233
1137 .byte 102,15,56,220,241
1138 .byte 0x0f,0x38,0xf1,0x44,0x24,44
1140 .byte 102,15,56,220,249
1141 movups -32(%rcx,%r10,1),%xmm1
1144 .byte 102,15,56,220,208
1145 .byte 0x0f,0x38,0xf1,0x44,0x24,60
1147 .byte 102,15,56,220,216
1149 .byte 0x0f,0x38,0xf1,0x44,0x24,76
1150 .byte 102,15,56,220,224
1153 .byte 102,15,56,220,232
1154 .byte 0x0f,0x38,0xf1,0x44,0x24,92
1156 .byte 102,15,56,220,240
1157 .byte 102,15,56,220,248
1158 movups -16(%rcx,%r10,1),%xmm0
1163 movdqu 16(%rdi),%xmm9
1164 movdqu 32(%rdi),%xmm10
1165 movdqu 48(%rdi),%xmm11
1166 movdqu 64(%rdi),%xmm12
1167 movdqu 80(%rdi),%xmm13
1169 movups -64(%rcx,%r10,1),%xmm1
1171 movaps 0(%rsp),%xmm2
1173 movaps 16(%rsp),%xmm3
1175 movaps 32(%rsp),%xmm4
1177 movaps 48(%rsp),%xmm5
1179 movaps 64(%rsp),%xmm6
1181 movaps 80(%rsp),%xmm7
1183 movdqu %xmm9,16(%rsi)
1184 movdqu %xmm10,32(%rsi)
1185 movdqu %xmm11,48(%rsi)
1186 movdqu %xmm12,64(%rsi)
1187 movdqu %xmm13,80(%rsi)
1197 leaq -80(%rcx,%r10,1),%rcx
1205 movdqa 96(%rsp),%xmm8
1206 .byte 102,15,56,220,209
1208 movdqa 112(%rsp),%xmm9
1209 .byte 102,15,56,220,217
1211 movups 32-128(%rcx),%xmm0
1212 .byte 102,15,56,220,225
1215 .byte 102,15,56,220,233
1216 movl %r9d,0+12(%rsp)
1218 .byte 102,15,56,220,241
1219 .byte 102,15,56,220,249
1220 .byte 102,68,15,56,220,193
1221 .byte 102,68,15,56,220,201
1222 movups 48-128(%rcx),%xmm1
1224 .byte 102,15,56,220,208
1225 .byte 102,15,56,220,216
1228 .byte 102,15,56,220,224
1229 .byte 102,15,56,220,232
1230 movl %r9d,16+12(%rsp)
1232 .byte 102,15,56,220,240
1233 .byte 102,15,56,220,248
1234 .byte 102,68,15,56,220,192
1235 .byte 102,68,15,56,220,200
1236 movups 64-128(%rcx),%xmm0
1238 .byte 102,15,56,220,209
1239 .byte 102,15,56,220,217
1242 .byte 102,15,56,220,225
1243 .byte 102,15,56,220,233
1244 movl %r9d,32+12(%rsp)
1246 .byte 102,15,56,220,241
1247 .byte 102,15,56,220,249
1248 .byte 102,68,15,56,220,193
1249 .byte 102,68,15,56,220,201
1250 movups 80-128(%rcx),%xmm1
1252 .byte 102,15,56,220,208
1253 .byte 102,15,56,220,216
1256 .byte 102,15,56,220,224
1257 .byte 102,15,56,220,232
1258 movl %r9d,48+12(%rsp)
1260 .byte 102,15,56,220,240
1261 .byte 102,15,56,220,248
1262 .byte 102,68,15,56,220,192
1263 .byte 102,68,15,56,220,200
1264 movups 96-128(%rcx),%xmm0
1266 .byte 102,15,56,220,209
1267 .byte 102,15,56,220,217
1270 .byte 102,15,56,220,225
1271 .byte 102,15,56,220,233
1272 movl %r9d,64+12(%rsp)
1274 .byte 102,15,56,220,241
1275 .byte 102,15,56,220,249
1276 .byte 102,68,15,56,220,193
1277 .byte 102,68,15,56,220,201
1278 movups 112-128(%rcx),%xmm1
1280 .byte 102,15,56,220,208
1281 .byte 102,15,56,220,216
1284 .byte 102,15,56,220,224
1285 .byte 102,15,56,220,232
1286 movl %r9d,80+12(%rsp)
1288 .byte 102,15,56,220,240
1289 .byte 102,15,56,220,248
1290 .byte 102,68,15,56,220,192
1291 .byte 102,68,15,56,220,200
1292 movups 128-128(%rcx),%xmm0
1294 .byte 102,15,56,220,209
1295 .byte 102,15,56,220,217
1298 .byte 102,15,56,220,225
1299 .byte 102,15,56,220,233
1300 movl %r9d,96+12(%rsp)
1302 .byte 102,15,56,220,241
1303 .byte 102,15,56,220,249
1304 .byte 102,68,15,56,220,193
1305 .byte 102,68,15,56,220,201
1306 movups 144-128(%rcx),%xmm1
1308 .byte 102,15,56,220,208
1309 .byte 102,15,56,220,216
1310 .byte 102,15,56,220,224
1312 movdqu 0(%rdi),%xmm10
1313 .byte 102,15,56,220,232
1314 movl %r9d,112+12(%rsp)
1316 .byte 102,15,56,220,240
1317 .byte 102,15,56,220,248
1318 .byte 102,68,15,56,220,192
1319 .byte 102,68,15,56,220,200
1320 movups 160-128(%rcx),%xmm0
1324 .byte 102,15,56,220,209
1325 .byte 102,15,56,220,217
1326 .byte 102,15,56,220,225
1327 .byte 102,15,56,220,233
1328 .byte 102,15,56,220,241
1329 .byte 102,15,56,220,249
1330 .byte 102,68,15,56,220,193
1331 .byte 102,68,15,56,220,201
1332 movups 176-128(%rcx),%xmm1
1334 .byte 102,15,56,220,208
1335 .byte 102,15,56,220,216
1336 .byte 102,15,56,220,224
1337 .byte 102,15,56,220,232
1338 .byte 102,15,56,220,240
1339 .byte 102,15,56,220,248
1340 .byte 102,68,15,56,220,192
1341 .byte 102,68,15,56,220,200
1342 movups 192-128(%rcx),%xmm0
1345 .byte 102,15,56,220,209
1346 .byte 102,15,56,220,217
1347 .byte 102,15,56,220,225
1348 .byte 102,15,56,220,233
1349 .byte 102,15,56,220,241
1350 .byte 102,15,56,220,249
1351 .byte 102,68,15,56,220,193
1352 .byte 102,68,15,56,220,201
1353 movups 208-128(%rcx),%xmm1
1355 .byte 102,15,56,220,208
1356 .byte 102,15,56,220,216
1357 .byte 102,15,56,220,224
1358 .byte 102,15,56,220,232
1359 .byte 102,15,56,220,240
1360 .byte 102,15,56,220,248
1361 .byte 102,68,15,56,220,192
1362 .byte 102,68,15,56,220,200
1363 movups 224-128(%rcx),%xmm0
1364 jmp .Lctr32_enc_done
1368 movdqu 16(%rdi),%xmm11
1370 movdqu 32(%rdi),%xmm12
1372 movdqu 48(%rdi),%xmm13
1374 movdqu 64(%rdi),%xmm14
1376 movdqu 80(%rdi),%xmm15
1379 .byte 102,15,56,220,209
1380 .byte 102,15,56,220,217
1381 .byte 102,15,56,220,225
1382 .byte 102,15,56,220,233
1383 .byte 102,15,56,220,241
1384 .byte 102,15,56,220,249
1385 .byte 102,68,15,56,220,193
1386 .byte 102,68,15,56,220,201
1387 movdqu 96(%rdi),%xmm1
1390 .byte 102,65,15,56,221,210
1392 movdqu 112-128(%rdi),%xmm10
1393 .byte 102,65,15,56,221,219
1395 movdqa 0(%rsp),%xmm11
1396 .byte 102,65,15,56,221,228
1397 .byte 102,65,15,56,221,237
1398 movdqa 16(%rsp),%xmm12
1399 movdqa 32(%rsp),%xmm13
1400 .byte 102,65,15,56,221,246
1401 .byte 102,65,15,56,221,255
1402 movdqa 48(%rsp),%xmm14
1403 movdqa 64(%rsp),%xmm15
1404 .byte 102,68,15,56,221,193
1405 movdqa 80(%rsp),%xmm0
1406 movups 16-128(%rcx),%xmm1
1407 .byte 102,69,15,56,221,202
1411 movups %xmm3,16(%rsi)
1413 movups %xmm4,32(%rsi)
1415 movups %xmm5,48(%rsi)
1417 movups %xmm6,64(%rsi)
1419 movups %xmm7,80(%rsi)
1421 movups %xmm8,96(%rsi)
1422 movups %xmm9,112(%rsi)
1430 leaq -128(%rcx),%rcx
1442 movdqa 96(%rsp),%xmm8
1445 movups 16(%rcx),%xmm0
1446 .byte 102,15,56,220,209
1447 .byte 102,15,56,220,217
1448 leaq 32-16(%rcx,%rax,1),%rcx
1450 .byte 102,15,56,220,225
1452 movups (%rdi),%xmm10
1453 .byte 102,15,56,220,233
1454 .byte 102,15,56,220,241
1455 movups 16(%rdi),%xmm11
1456 movups 32(%rdi),%xmm12
1457 .byte 102,15,56,220,249
1458 .byte 102,68,15,56,220,193
1460 call .Lenc_loop8_enter
1462 movdqu 48(%rdi),%xmm13
1464 movdqu 64(%rdi),%xmm10
1468 movdqu %xmm3,16(%rsi)
1470 movdqu %xmm4,32(%rsi)
1472 movdqu %xmm5,48(%rsi)
1473 movdqu %xmm6,64(%rsi)
1477 movups 80(%rdi),%xmm11
1479 movups %xmm7,80(%rsi)
1482 movups 96(%rdi),%xmm12
1484 movups %xmm8,96(%rsi)
1489 .byte 102,15,56,220,209
1492 .byte 102,15,56,220,217
1493 .byte 102,15,56,220,225
1494 .byte 102,15,56,220,233
1497 .byte 102,15,56,221,209
1498 .byte 102,15,56,221,217
1499 movups (%rdi),%xmm10
1500 movups 16(%rdi),%xmm11
1501 .byte 102,15,56,221,225
1502 .byte 102,15,56,221,233
1503 movups 32(%rdi),%xmm12
1504 movups 48(%rdi),%xmm13
1509 movups %xmm3,16(%rsi)
1511 movdqu %xmm4,32(%rsi)
1513 movdqu %xmm5,48(%rsi)
1518 .byte 102,15,56,220,209
1521 .byte 102,15,56,220,217
1522 .byte 102,15,56,220,225
1525 .byte 102,15,56,221,209
1526 .byte 102,15,56,221,217
1527 .byte 102,15,56,221,225
1529 movups (%rdi),%xmm10
1535 movups 16(%rdi),%xmm11
1537 movups %xmm3,16(%rsi)
1540 movups 32(%rdi),%xmm12
1542 movups %xmm4,32(%rsi)
1554 movaps %xmm0,0(%rsp)
1556 movaps %xmm0,16(%rsp)
1558 movaps %xmm0,32(%rsp)
1560 movaps %xmm0,48(%rsp)
1562 movaps %xmm0,64(%rsp)
1564 movaps %xmm0,80(%rsp)
1566 movaps %xmm0,96(%rsp)
1568 movaps %xmm0,112(%rsp)
1574 .size aesni_ctr32_encrypt_blocks,.-aesni_ctr32_encrypt_blocks
1575 .globl aesni_xts_encrypt
1576 .hidden aesni_xts_encrypt
1577 .type aesni_xts_encrypt,@function
1587 movl 240(%rcx),%r10d
1589 movups 16(%r8),%xmm1
1593 .byte 102,15,56,220,209
1598 .byte 102,15,56,221,209
1606 movups 16(%rcx,%r10,1),%xmm1
1608 movdqa .Lxts_magic(%rip),%xmm8
1610 pshufd $95,%xmm2,%xmm9
1614 movdqa %xmm15,%xmm10
1622 movdqa %xmm15,%xmm11
1630 movdqa %xmm15,%xmm12
1638 movdqa %xmm15,%xmm13
1644 movdqa %xmm15,%xmm14
1650 movaps %xmm1,96(%rsp)
1656 leaq 32(%r11,%r10,1),%rcx
1658 movups 16(%r11),%xmm1
1660 leaq .Lxts_magic(%rip),%r8
1661 jmp .Lxts_enc_grandloop
1664 .Lxts_enc_grandloop:
1665 movdqu 0(%rdi),%xmm2
1667 movdqu 16(%rdi),%xmm3
1669 movdqu 32(%rdi),%xmm4
1671 .byte 102,15,56,220,209
1672 movdqu 48(%rdi),%xmm5
1674 .byte 102,15,56,220,217
1675 movdqu 64(%rdi),%xmm6
1677 .byte 102,15,56,220,225
1678 movdqu 80(%rdi),%xmm7
1680 movdqa 96(%rsp),%xmm9
1682 .byte 102,15,56,220,233
1683 movups 32(%r11),%xmm0
1688 .byte 102,15,56,220,241
1690 movdqa %xmm10,0(%rsp)
1691 .byte 102,15,56,220,249
1692 movups 48(%r11),%xmm1
1695 .byte 102,15,56,220,208
1697 movdqa %xmm11,16(%rsp)
1698 .byte 102,15,56,220,216
1700 movdqa %xmm12,32(%rsp)
1701 .byte 102,15,56,220,224
1702 .byte 102,15,56,220,232
1704 movdqa %xmm14,64(%rsp)
1705 .byte 102,15,56,220,240
1706 .byte 102,15,56,220,248
1707 movups 64(%r11),%xmm0
1708 movdqa %xmm8,80(%rsp)
1709 pshufd $95,%xmm15,%xmm9
1713 .byte 102,15,56,220,209
1714 .byte 102,15,56,220,217
1715 .byte 102,15,56,220,225
1716 .byte 102,15,56,220,233
1717 .byte 102,15,56,220,241
1718 .byte 102,15,56,220,249
1719 movups -64(%rcx,%rax,1),%xmm1
1722 .byte 102,15,56,220,208
1723 .byte 102,15,56,220,216
1724 .byte 102,15,56,220,224
1725 .byte 102,15,56,220,232
1726 .byte 102,15,56,220,240
1727 .byte 102,15,56,220,248
1728 movups -80(%rcx,%rax,1),%xmm0
1734 .byte 102,15,56,220,209
1737 .byte 102,15,56,220,217
1739 movups (%r11),%xmm10
1740 .byte 102,15,56,220,225
1741 .byte 102,15,56,220,233
1742 .byte 102,15,56,220,241
1744 movaps %xmm10,%xmm11
1745 .byte 102,15,56,220,249
1746 movups -64(%rcx),%xmm1
1749 .byte 102,15,56,220,208
1752 .byte 102,15,56,220,216
1755 .byte 102,15,56,220,224
1756 .byte 102,15,56,220,232
1758 movaps %xmm11,%xmm12
1759 .byte 102,15,56,220,240
1762 .byte 102,15,56,220,248
1763 movups -48(%rcx),%xmm0
1766 .byte 102,15,56,220,209
1769 .byte 102,15,56,220,217
1772 .byte 102,15,56,220,225
1773 .byte 102,15,56,220,233
1774 movdqa %xmm13,48(%rsp)
1776 .byte 102,15,56,220,241
1777 movaps %xmm12,%xmm13
1779 .byte 102,15,56,220,249
1780 movups -32(%rcx),%xmm1
1783 .byte 102,15,56,220,208
1786 .byte 102,15,56,220,216
1789 .byte 102,15,56,220,224
1790 .byte 102,15,56,220,232
1791 .byte 102,15,56,220,240
1793 movaps %xmm13,%xmm14
1794 .byte 102,15,56,220,248
1798 .byte 102,15,56,220,209
1801 .byte 102,15,56,220,217
1804 .byte 102,15,56,220,225
1805 .byte 102,15,56,220,233
1808 .byte 102,15,56,220,241
1809 .byte 102,15,56,220,249
1810 movups 16(%r11),%xmm1
1813 .byte 102,15,56,221,84,36,0
1816 .byte 102,15,56,221,92,36,16
1817 .byte 102,15,56,221,100,36,32
1820 .byte 102,15,56,221,108,36,48
1821 .byte 102,15,56,221,116,36,64
1822 .byte 102,15,56,221,124,36,80
1826 movups %xmm2,-96(%rsi)
1827 movups %xmm3,-80(%rsi)
1828 movups %xmm4,-64(%rsi)
1829 movups %xmm5,-48(%rsi)
1830 movups %xmm6,-32(%rsi)
1831 movups %xmm7,-16(%rsi)
1833 jnc .Lxts_enc_grandloop
1860 movdqu 16(%rdi),%xmm3
1861 movdqu 32(%rdi),%xmm4
1863 movdqu 48(%rdi),%xmm5
1865 movdqu 64(%rdi),%xmm6
1872 call _aesni_encrypt6
1875 movdqa %xmm15,%xmm10
1880 movdqu %xmm3,16(%rsi)
1882 movdqu %xmm4,32(%rsi)
1883 movdqu %xmm5,48(%rsi)
1884 movdqu %xmm6,64(%rsi)
1894 movups 16(%rcx),%xmm1
1898 .byte 102,15,56,220,209
1903 .byte 102,15,56,221,209
1905 movdqa %xmm11,%xmm10
1913 movups 16(%rdi),%xmm3
1918 call _aesni_encrypt2
1921 movdqa %xmm12,%xmm10
1924 movups %xmm3,16(%rsi)
1931 movups 16(%rdi),%xmm3
1932 movups 32(%rdi),%xmm4
1938 call _aesni_encrypt3
1941 movdqa %xmm13,%xmm10
1945 movups %xmm3,16(%rsi)
1946 movups %xmm4,32(%rsi)
1953 movups 16(%rdi),%xmm3
1954 movups 32(%rdi),%xmm4
1956 movups 48(%rdi),%xmm5
1962 call _aesni_encrypt4
1965 movdqa %xmm14,%xmm10
1970 movdqu %xmm3,16(%rsi)
1971 movdqu %xmm4,32(%rsi)
1972 movdqu %xmm5,48(%rsi)
1984 movzbl -16(%rsi),%ecx
1996 movups -16(%rsi),%xmm2
1999 movups 16(%rcx),%xmm1
2003 .byte 102,15,56,220,209
2008 .byte 102,15,56,221,209
2010 movups %xmm2,-16(%rsi)
2021 movaps %xmm0,0(%rsp)
2023 movaps %xmm0,16(%rsp)
2025 movaps %xmm0,32(%rsp)
2027 movaps %xmm0,48(%rsp)
2029 movaps %xmm0,64(%rsp)
2031 movaps %xmm0,80(%rsp)
2033 movaps %xmm0,96(%rsp)
2040 .size aesni_xts_encrypt,.-aesni_xts_encrypt
2041 .globl aesni_xts_decrypt
2042 .hidden aesni_xts_decrypt
2043 .type aesni_xts_decrypt,@function
2053 movl 240(%rcx),%r10d
2055 movups 16(%r8),%xmm1
2059 .byte 102,15,56,220,209
2064 .byte 102,15,56,221,209
2078 movups 16(%rcx,%r10,1),%xmm1
2080 movdqa .Lxts_magic(%rip),%xmm8
2082 pshufd $95,%xmm2,%xmm9
2086 movdqa %xmm15,%xmm10
2094 movdqa %xmm15,%xmm11
2102 movdqa %xmm15,%xmm12
2110 movdqa %xmm15,%xmm13
2116 movdqa %xmm15,%xmm14
2122 movaps %xmm1,96(%rsp)
2128 leaq 32(%r11,%r10,1),%rcx
2130 movups 16(%r11),%xmm1
2132 leaq .Lxts_magic(%rip),%r8
2133 jmp .Lxts_dec_grandloop
2136 .Lxts_dec_grandloop:
2137 movdqu 0(%rdi),%xmm2
2139 movdqu 16(%rdi),%xmm3
2141 movdqu 32(%rdi),%xmm4
2143 .byte 102,15,56,222,209
2144 movdqu 48(%rdi),%xmm5
2146 .byte 102,15,56,222,217
2147 movdqu 64(%rdi),%xmm6
2149 .byte 102,15,56,222,225
2150 movdqu 80(%rdi),%xmm7
2152 movdqa 96(%rsp),%xmm9
2154 .byte 102,15,56,222,233
2155 movups 32(%r11),%xmm0
2160 .byte 102,15,56,222,241
2162 movdqa %xmm10,0(%rsp)
2163 .byte 102,15,56,222,249
2164 movups 48(%r11),%xmm1
2167 .byte 102,15,56,222,208
2169 movdqa %xmm11,16(%rsp)
2170 .byte 102,15,56,222,216
2172 movdqa %xmm12,32(%rsp)
2173 .byte 102,15,56,222,224
2174 .byte 102,15,56,222,232
2176 movdqa %xmm14,64(%rsp)
2177 .byte 102,15,56,222,240
2178 .byte 102,15,56,222,248
2179 movups 64(%r11),%xmm0
2180 movdqa %xmm8,80(%rsp)
2181 pshufd $95,%xmm15,%xmm9
2185 .byte 102,15,56,222,209
2186 .byte 102,15,56,222,217
2187 .byte 102,15,56,222,225
2188 .byte 102,15,56,222,233
2189 .byte 102,15,56,222,241
2190 .byte 102,15,56,222,249
2191 movups -64(%rcx,%rax,1),%xmm1
2194 .byte 102,15,56,222,208
2195 .byte 102,15,56,222,216
2196 .byte 102,15,56,222,224
2197 .byte 102,15,56,222,232
2198 .byte 102,15,56,222,240
2199 .byte 102,15,56,222,248
2200 movups -80(%rcx,%rax,1),%xmm0
2206 .byte 102,15,56,222,209
2209 .byte 102,15,56,222,217
2211 movups (%r11),%xmm10
2212 .byte 102,15,56,222,225
2213 .byte 102,15,56,222,233
2214 .byte 102,15,56,222,241
2216 movaps %xmm10,%xmm11
2217 .byte 102,15,56,222,249
2218 movups -64(%rcx),%xmm1
2221 .byte 102,15,56,222,208
2224 .byte 102,15,56,222,216
2227 .byte 102,15,56,222,224
2228 .byte 102,15,56,222,232
2230 movaps %xmm11,%xmm12
2231 .byte 102,15,56,222,240
2234 .byte 102,15,56,222,248
2235 movups -48(%rcx),%xmm0
2238 .byte 102,15,56,222,209
2241 .byte 102,15,56,222,217
2244 .byte 102,15,56,222,225
2245 .byte 102,15,56,222,233
2246 movdqa %xmm13,48(%rsp)
2248 .byte 102,15,56,222,241
2249 movaps %xmm12,%xmm13
2251 .byte 102,15,56,222,249
2252 movups -32(%rcx),%xmm1
2255 .byte 102,15,56,222,208
2258 .byte 102,15,56,222,216
2261 .byte 102,15,56,222,224
2262 .byte 102,15,56,222,232
2263 .byte 102,15,56,222,240
2265 movaps %xmm13,%xmm14
2266 .byte 102,15,56,222,248
2270 .byte 102,15,56,222,209
2273 .byte 102,15,56,222,217
2276 .byte 102,15,56,222,225
2277 .byte 102,15,56,222,233
2280 .byte 102,15,56,222,241
2281 .byte 102,15,56,222,249
2282 movups 16(%r11),%xmm1
2285 .byte 102,15,56,223,84,36,0
2288 .byte 102,15,56,223,92,36,16
2289 .byte 102,15,56,223,100,36,32
2292 .byte 102,15,56,223,108,36,48
2293 .byte 102,15,56,223,116,36,64
2294 .byte 102,15,56,223,124,36,80
2298 movups %xmm2,-96(%rsi)
2299 movups %xmm3,-80(%rsi)
2300 movups %xmm4,-64(%rsi)
2301 movups %xmm5,-48(%rsi)
2302 movups %xmm6,-32(%rsi)
2303 movups %xmm7,-16(%rsi)
2305 jnc .Lxts_dec_grandloop
2332 movdqu 16(%rdi),%xmm3
2333 movdqu 32(%rdi),%xmm4
2335 movdqu 48(%rdi),%xmm5
2337 movdqu 64(%rdi),%xmm6
2343 call _aesni_decrypt6
2350 movdqu %xmm3,16(%rsi)
2352 movdqu %xmm4,32(%rsi)
2354 movdqu %xmm5,48(%rsi)
2355 pcmpgtd %xmm15,%xmm14
2356 movdqu %xmm6,64(%rsi)
2358 pshufd $19,%xmm14,%xmm11
2362 movdqa %xmm15,%xmm10
2374 movups 16(%rcx),%xmm1
2378 .byte 102,15,56,222,209
2383 .byte 102,15,56,223,209
2385 movdqa %xmm11,%xmm10
2387 movdqa %xmm12,%xmm11
2394 movups 16(%rdi),%xmm3
2399 call _aesni_decrypt2
2402 movdqa %xmm12,%xmm10
2404 movdqa %xmm13,%xmm11
2406 movups %xmm3,16(%rsi)
2413 movups 16(%rdi),%xmm3
2414 movups 32(%rdi),%xmm4
2420 call _aesni_decrypt3
2423 movdqa %xmm13,%xmm10
2425 movdqa %xmm14,%xmm11
2428 movups %xmm3,16(%rsi)
2429 movups %xmm4,32(%rsi)
2436 movups 16(%rdi),%xmm3
2437 movups 32(%rdi),%xmm4
2439 movups 48(%rdi),%xmm5
2445 call _aesni_decrypt4
2448 movdqa %xmm14,%xmm10
2450 movdqa %xmm15,%xmm11
2454 movdqu %xmm3,16(%rsi)
2455 movdqu %xmm4,32(%rsi)
2456 movdqu %xmm5,48(%rsi)
2472 movups 16(%rcx),%xmm1
2476 .byte 102,15,56,222,209
2481 .byte 102,15,56,223,209
2486 movzbl 16(%rdi),%eax
2502 movups 16(%rcx),%xmm1
2506 .byte 102,15,56,222,209
2511 .byte 102,15,56,223,209
2524 movaps %xmm0,0(%rsp)
2526 movaps %xmm0,16(%rsp)
2528 movaps %xmm0,32(%rsp)
2530 movaps %xmm0,48(%rsp)
2532 movaps %xmm0,64(%rsp)
2534 movaps %xmm0,80(%rsp)
2536 movaps %xmm0,96(%rsp)
2543 .size aesni_xts_decrypt,.-aesni_xts_decrypt
2544 .globl aesni_cbc_encrypt
2545 .hidden aesni_cbc_encrypt
2546 .type aesni_cbc_encrypt,@function
2552 movl 240(%rcx),%r10d
2569 movups 16(%rcx),%xmm1
2574 .byte 102,15,56,220,209
2579 .byte 102,15,56,221,209
2582 movups %xmm2,0(%rsi)
2613 jne .Lcbc_decrypt_bulk
2621 movups 16(%rcx),%xmm1
2625 .byte 102,15,56,222,209
2630 .byte 102,15,56,223,209
2652 movdqu 0(%rdi),%xmm2
2653 movdqu 16(%rdi),%xmm3
2655 movdqu 32(%rdi),%xmm4
2657 movdqu 48(%rdi),%xmm5
2659 movdqu 64(%rdi),%xmm6
2661 movdqu 80(%rdi),%xmm7
2663 movl OPENSSL_ia32cap_P+4(%rip),%r9d
2665 jbe .Lcbc_dec_six_or_seven
2670 je .Lcbc_dec_loop6_enter
2673 jmp .Lcbc_dec_loop8_enter
2678 .Lcbc_dec_loop8_enter:
2679 movdqu 96(%rdi),%xmm8
2681 movdqu 112(%rdi),%xmm9
2683 movups 16-112(%rcx),%xmm1
2692 .byte 102,15,56,222,209
2694 movups 32-112(%rcx),%xmm0
2695 .byte 102,15,56,222,217
2696 .byte 102,15,56,222,225
2697 .byte 102,15,56,222,233
2698 .byte 102,15,56,222,241
2699 .byte 102,15,56,222,249
2700 .byte 102,68,15,56,222,193
2703 .byte 102,68,15,56,222,201
2705 movups 48-112(%rcx),%xmm1
2706 .byte 102,15,56,222,208
2707 .byte 102,15,56,222,216
2708 .byte 102,15,56,222,224
2709 .byte 102,15,56,222,232
2710 .byte 102,15,56,222,240
2711 .byte 102,15,56,222,248
2712 .byte 102,68,15,56,222,192
2713 .byte 102,68,15,56,222,200
2714 movups 64-112(%rcx),%xmm0
2716 .byte 102,15,56,222,209
2717 .byte 102,15,56,222,217
2718 .byte 102,15,56,222,225
2719 .byte 102,15,56,222,233
2720 .byte 102,15,56,222,241
2721 .byte 102,15,56,222,249
2722 .byte 102,68,15,56,222,193
2723 .byte 102,68,15,56,222,201
2724 movups 80-112(%rcx),%xmm1
2726 .byte 102,15,56,222,208
2727 .byte 102,15,56,222,216
2728 .byte 102,15,56,222,224
2729 .byte 102,15,56,222,232
2730 .byte 102,15,56,222,240
2731 .byte 102,15,56,222,248
2732 .byte 102,68,15,56,222,192
2733 .byte 102,68,15,56,222,200
2734 movups 96-112(%rcx),%xmm0
2736 .byte 102,15,56,222,209
2737 .byte 102,15,56,222,217
2738 .byte 102,15,56,222,225
2739 .byte 102,15,56,222,233
2740 .byte 102,15,56,222,241
2741 .byte 102,15,56,222,249
2742 .byte 102,68,15,56,222,193
2743 .byte 102,68,15,56,222,201
2744 movups 112-112(%rcx),%xmm1
2746 .byte 102,15,56,222,208
2747 .byte 102,15,56,222,216
2748 .byte 102,15,56,222,224
2749 .byte 102,15,56,222,232
2750 .byte 102,15,56,222,240
2751 .byte 102,15,56,222,248
2752 .byte 102,68,15,56,222,192
2753 .byte 102,68,15,56,222,200
2754 movups 128-112(%rcx),%xmm0
2756 .byte 102,15,56,222,209
2757 .byte 102,15,56,222,217
2758 .byte 102,15,56,222,225
2759 .byte 102,15,56,222,233
2760 .byte 102,15,56,222,241
2761 .byte 102,15,56,222,249
2762 .byte 102,68,15,56,222,193
2763 .byte 102,68,15,56,222,201
2764 movups 144-112(%rcx),%xmm1
2766 .byte 102,15,56,222,208
2767 .byte 102,15,56,222,216
2768 .byte 102,15,56,222,224
2769 .byte 102,15,56,222,232
2770 .byte 102,15,56,222,240
2771 .byte 102,15,56,222,248
2772 .byte 102,68,15,56,222,192
2773 .byte 102,68,15,56,222,200
2774 movups 160-112(%rcx),%xmm0
2776 .byte 102,15,56,222,209
2777 .byte 102,15,56,222,217
2778 .byte 102,15,56,222,225
2779 .byte 102,15,56,222,233
2780 .byte 102,15,56,222,241
2781 .byte 102,15,56,222,249
2782 .byte 102,68,15,56,222,193
2783 .byte 102,68,15,56,222,201
2784 movups 176-112(%rcx),%xmm1
2786 .byte 102,15,56,222,208
2787 .byte 102,15,56,222,216
2788 .byte 102,15,56,222,224
2789 .byte 102,15,56,222,232
2790 .byte 102,15,56,222,240
2791 .byte 102,15,56,222,248
2792 .byte 102,68,15,56,222,192
2793 .byte 102,68,15,56,222,200
2794 movups 192-112(%rcx),%xmm0
2796 .byte 102,15,56,222,209
2797 .byte 102,15,56,222,217
2798 .byte 102,15,56,222,225
2799 .byte 102,15,56,222,233
2800 .byte 102,15,56,222,241
2801 .byte 102,15,56,222,249
2802 .byte 102,68,15,56,222,193
2803 .byte 102,68,15,56,222,201
2804 movups 208-112(%rcx),%xmm1
2806 .byte 102,15,56,222,208
2807 .byte 102,15,56,222,216
2808 .byte 102,15,56,222,224
2809 .byte 102,15,56,222,232
2810 .byte 102,15,56,222,240
2811 .byte 102,15,56,222,248
2812 .byte 102,68,15,56,222,192
2813 .byte 102,68,15,56,222,200
2814 movups 224-112(%rcx),%xmm0
2818 .byte 102,15,56,222,209
2819 .byte 102,15,56,222,217
2822 .byte 102,15,56,222,225
2823 .byte 102,15,56,222,233
2826 .byte 102,15,56,222,241
2827 .byte 102,15,56,222,249
2830 .byte 102,68,15,56,222,193
2831 .byte 102,68,15,56,222,201
2832 movdqu 80(%rdi),%xmm1
2834 .byte 102,65,15,56,223,210
2835 movdqu 96(%rdi),%xmm10
2837 .byte 102,65,15,56,223,219
2839 movdqu 112(%rdi),%xmm0
2840 .byte 102,65,15,56,223,228
2842 movdqu 0(%r11),%xmm11
2843 .byte 102,65,15,56,223,237
2844 .byte 102,65,15,56,223,246
2845 movdqu 16(%r11),%xmm12
2846 movdqu 32(%r11),%xmm13
2847 .byte 102,65,15,56,223,255
2848 .byte 102,68,15,56,223,193
2849 movdqu 48(%r11),%xmm14
2850 movdqu 64(%r11),%xmm15
2851 .byte 102,69,15,56,223,202
2853 movdqu 80(%r11),%xmm1
2854 movups -112(%rcx),%xmm0
2858 movups %xmm3,16(%rsi)
2860 movups %xmm4,32(%rsi)
2862 movups %xmm5,48(%rsi)
2864 movups %xmm6,64(%rsi)
2866 movups %xmm7,80(%rsi)
2868 movups %xmm8,96(%rsi)
2875 leaq -112(%rcx),%rcx
2877 jle .Lcbc_dec_clear_tail_collected
2884 .Lcbc_dec_six_or_seven:
2889 call _aesni_decrypt6
2895 movdqu %xmm3,16(%rsi)
2898 movdqu %xmm4,32(%rsi)
2901 movdqu %xmm5,48(%rsi)
2904 movdqu %xmm6,64(%rsi)
2909 jmp .Lcbc_dec_tail_collected
2913 movups 96(%rdi),%xmm8
2915 call _aesni_decrypt8
2916 movups 80(%rdi),%xmm9
2918 movups 96(%rdi),%xmm10
2922 movdqu %xmm3,16(%rsi)
2925 movdqu %xmm4,32(%rsi)
2928 movdqu %xmm5,48(%rsi)
2931 movdqu %xmm6,64(%rsi)
2934 movdqu %xmm7,80(%rsi)
2940 jmp .Lcbc_dec_tail_collected
2946 movdqu 0(%rdi),%xmm2
2947 movdqu 16(%rdi),%xmm3
2949 movdqu 32(%rdi),%xmm4
2951 movdqu 48(%rdi),%xmm5
2953 movdqu 64(%rdi),%xmm6
2955 movdqu 80(%rdi),%xmm7
2957 .Lcbc_dec_loop6_enter:
2961 call _aesni_decrypt6
2968 movdqu %xmm3,16(%rsi)
2970 movdqu %xmm4,32(%rsi)
2973 movdqu %xmm5,48(%rsi)
2976 movdqu %xmm6,64(%rsi)
2983 jle .Lcbc_dec_clear_tail_collected
2992 movups 16(%rdi),%xmm3
2997 movups 32(%rdi),%xmm4
3002 movups 48(%rdi),%xmm5
3007 movups 64(%rdi),%xmm6
3011 call _aesni_decrypt6
3013 movaps %xmm15,%xmm10
3017 movdqu %xmm3,16(%rsi)
3020 movdqu %xmm4,32(%rsi)
3023 movdqu %xmm5,48(%rsi)
3030 jmp .Lcbc_dec_tail_collected
3036 movups 16(%rcx),%xmm1
3040 .byte 102,15,56,222,209
3045 .byte 102,15,56,223,209
3047 movaps %xmm11,%xmm10
3048 jmp .Lcbc_dec_tail_collected
3052 call _aesni_decrypt2
3054 movaps %xmm12,%xmm10
3060 jmp .Lcbc_dec_tail_collected
3064 call _aesni_decrypt3
3066 movaps %xmm13,%xmm10
3070 movdqu %xmm3,16(%rsi)
3075 jmp .Lcbc_dec_tail_collected
3079 call _aesni_decrypt4
3081 movaps %xmm14,%xmm10
3085 movdqu %xmm3,16(%rsi)
3088 movdqu %xmm4,32(%rsi)
3093 jmp .Lcbc_dec_tail_collected
3096 .Lcbc_dec_clear_tail_collected:
3104 .Lcbc_dec_tail_collected:
3107 jnz .Lcbc_dec_tail_partial
3112 .Lcbc_dec_tail_partial:
3129 .size aesni_cbc_encrypt,.-aesni_cbc_encrypt
3130 .globl aesni_set_decrypt_key
3131 .hidden aesni_set_decrypt_key
3132 .type aesni_set_decrypt_key,@function
3134 aesni_set_decrypt_key:
3135 .byte 0x48,0x83,0xEC,0x08
3136 call __aesni_set_encrypt_key
3140 leaq 16(%rdx,%rsi,1),%rdi
3152 .byte 102,15,56,219,192
3153 .byte 102,15,56,219,201
3156 movups %xmm0,16(%rdi)
3157 movups %xmm1,-16(%rdx)
3159 ja .Ldec_key_inverse
3162 .byte 102,15,56,219,192
3169 .LSEH_end_set_decrypt_key:
3170 .size aesni_set_decrypt_key,.-aesni_set_decrypt_key
3171 .globl aesni_set_encrypt_key
3172 .hidden aesni_set_encrypt_key
3173 .type aesni_set_encrypt_key,@function
3175 aesni_set_encrypt_key:
3176 __aesni_set_encrypt_key:
3177 .byte 0x48,0x83,0xEC,0x08
3184 movl $268437504,%r10d
3187 andl OPENSSL_ia32cap_P+4(%rip),%r10d
3198 cmpl $268435456,%r10d
3202 .byte 102,15,58,223,200,1
3203 call .Lkey_expansion_128_cold
3204 .byte 102,15,58,223,200,2
3205 call .Lkey_expansion_128
3206 .byte 102,15,58,223,200,4
3207 call .Lkey_expansion_128
3208 .byte 102,15,58,223,200,8
3209 call .Lkey_expansion_128
3210 .byte 102,15,58,223,200,16
3211 call .Lkey_expansion_128
3212 .byte 102,15,58,223,200,32
3213 call .Lkey_expansion_128
3214 .byte 102,15,58,223,200,64
3215 call .Lkey_expansion_128
3216 .byte 102,15,58,223,200,128
3217 call .Lkey_expansion_128
3218 .byte 102,15,58,223,200,27
3219 call .Lkey_expansion_128
3220 .byte 102,15,58,223,200,54
3221 call .Lkey_expansion_128
3229 movdqa .Lkey_rotate(%rip),%xmm5
3231 movdqa .Lkey_rcon1(%rip),%xmm4
3238 .byte 102,15,56,0,197
3239 .byte 102,15,56,221,196
3252 movdqu %xmm0,-16(%rax)
3258 movdqa .Lkey_rcon1b(%rip),%xmm4
3260 .byte 102,15,56,0,197
3261 .byte 102,15,56,221,196
3276 .byte 102,15,56,0,197
3277 .byte 102,15,56,221,196
3288 movdqu %xmm0,16(%rax)
3298 cmpl $268435456,%r10d
3302 .byte 102,15,58,223,202,1
3303 call .Lkey_expansion_192a_cold
3304 .byte 102,15,58,223,202,2
3305 call .Lkey_expansion_192b
3306 .byte 102,15,58,223,202,4
3307 call .Lkey_expansion_192a
3308 .byte 102,15,58,223,202,8
3309 call .Lkey_expansion_192b
3310 .byte 102,15,58,223,202,16
3311 call .Lkey_expansion_192a
3312 .byte 102,15,58,223,202,32
3313 call .Lkey_expansion_192b
3314 .byte 102,15,58,223,202,64
3315 call .Lkey_expansion_192a
3316 .byte 102,15,58,223,202,128
3317 call .Lkey_expansion_192b
3325 movdqa .Lkey_rotate192(%rip),%xmm5
3326 movdqa .Lkey_rcon1(%rip),%xmm4
3335 .byte 102,15,56,0,213
3336 .byte 102,15,56,221,212
3348 pshufd $255,%xmm0,%xmm3
3355 movdqu %xmm0,-16(%rax)
3366 movups 16(%rdi),%xmm2
3369 cmpl $268435456,%r10d
3373 movups %xmm2,16(%rdx)
3374 .byte 102,15,58,223,202,1
3375 call .Lkey_expansion_256a_cold
3376 .byte 102,15,58,223,200,1
3377 call .Lkey_expansion_256b
3378 .byte 102,15,58,223,202,2
3379 call .Lkey_expansion_256a
3380 .byte 102,15,58,223,200,2
3381 call .Lkey_expansion_256b
3382 .byte 102,15,58,223,202,4
3383 call .Lkey_expansion_256a
3384 .byte 102,15,58,223,200,4
3385 call .Lkey_expansion_256b
3386 .byte 102,15,58,223,202,8
3387 call .Lkey_expansion_256a
3388 .byte 102,15,58,223,200,8
3389 call .Lkey_expansion_256b
3390 .byte 102,15,58,223,202,16
3391 call .Lkey_expansion_256a
3392 .byte 102,15,58,223,200,16
3393 call .Lkey_expansion_256b
3394 .byte 102,15,58,223,202,32
3395 call .Lkey_expansion_256a
3396 .byte 102,15,58,223,200,32
3397 call .Lkey_expansion_256b
3398 .byte 102,15,58,223,202,64
3399 call .Lkey_expansion_256a
3407 movdqa .Lkey_rotate(%rip),%xmm5
3408 movdqa .Lkey_rcon1(%rip),%xmm4
3410 movdqu %xmm0,0(%rdx)
3412 movdqu %xmm2,16(%rdx)
3417 .byte 102,15,56,0,213
3418 .byte 102,15,56,221,212
3435 pshufd $255,%xmm0,%xmm2
3437 .byte 102,15,56,221,211
3448 movdqu %xmm2,16(%rax)
3471 .LSEH_end_set_encrypt_key:
3474 .Lkey_expansion_128:
3477 .Lkey_expansion_128_cold:
3478 shufps $16,%xmm0,%xmm4
3480 shufps $140,%xmm0,%xmm4
3482 shufps $255,%xmm1,%xmm1
3487 .Lkey_expansion_192a:
3490 .Lkey_expansion_192a_cold:
3492 .Lkey_expansion_192b_warm:
3493 shufps $16,%xmm0,%xmm4
3496 shufps $140,%xmm0,%xmm4
3499 pshufd $85,%xmm1,%xmm1
3502 pshufd $255,%xmm0,%xmm3
3507 .Lkey_expansion_192b:
3509 shufps $68,%xmm0,%xmm5
3511 shufps $78,%xmm2,%xmm3
3512 movups %xmm3,16(%rax)
3514 jmp .Lkey_expansion_192b_warm
3517 .Lkey_expansion_256a:
3520 .Lkey_expansion_256a_cold:
3521 shufps $16,%xmm0,%xmm4
3523 shufps $140,%xmm0,%xmm4
3525 shufps $255,%xmm1,%xmm1
3530 .Lkey_expansion_256b:
3534 shufps $16,%xmm2,%xmm4
3536 shufps $140,%xmm2,%xmm4
3538 shufps $170,%xmm1,%xmm1
3541 .size aesni_set_encrypt_key,.-aesni_set_encrypt_key
3542 .size __aesni_set_encrypt_key,.-__aesni_set_encrypt_key
3545 .byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
3553 .byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
3555 .long 0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d
3557 .long 0x04070605,0x04070605,0x04070605,0x04070605
3561 .long 0x1b,0x1b,0x1b,0x1b
3563 .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