1 #if defined(__x86_64__)
5 .private_extern _aesni_encrypt
16 .byte 102,15,56,220,209
21 .byte 102,15,56,221,209
30 .private_extern _aesni_decrypt
41 .byte 102,15,56,222,209
46 .byte 102,15,56,223,209
62 leaq 32(%rcx,%rax,1),%rcx
67 .byte 102,15,56,220,209
68 .byte 102,15,56,220,217
69 movups (%rcx,%rax,1),%xmm1
71 .byte 102,15,56,220,208
72 .byte 102,15,56,220,216
73 movups -16(%rcx,%rax,1),%xmm0
76 .byte 102,15,56,220,209
77 .byte 102,15,56,220,217
78 .byte 102,15,56,221,208
79 .byte 102,15,56,221,216
91 leaq 32(%rcx,%rax,1),%rcx
96 .byte 102,15,56,222,209
97 .byte 102,15,56,222,217
98 movups (%rcx,%rax,1),%xmm1
100 .byte 102,15,56,222,208
101 .byte 102,15,56,222,216
102 movups -16(%rcx,%rax,1),%xmm0
105 .byte 102,15,56,222,209
106 .byte 102,15,56,222,217
107 .byte 102,15,56,223,208
108 .byte 102,15,56,223,216
116 movups 16(%rcx),%xmm1
120 movups 32(%rcx),%xmm0
121 leaq 32(%rcx,%rax,1),%rcx
126 .byte 102,15,56,220,209
127 .byte 102,15,56,220,217
128 .byte 102,15,56,220,225
129 movups (%rcx,%rax,1),%xmm1
131 .byte 102,15,56,220,208
132 .byte 102,15,56,220,216
133 .byte 102,15,56,220,224
134 movups -16(%rcx,%rax,1),%xmm0
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,221,208
141 .byte 102,15,56,221,216
142 .byte 102,15,56,221,224
150 movups 16(%rcx),%xmm1
154 movups 32(%rcx),%xmm0
155 leaq 32(%rcx,%rax,1),%rcx
160 .byte 102,15,56,222,209
161 .byte 102,15,56,222,217
162 .byte 102,15,56,222,225
163 movups (%rcx,%rax,1),%xmm1
165 .byte 102,15,56,222,208
166 .byte 102,15,56,222,216
167 .byte 102,15,56,222,224
168 movups -16(%rcx,%rax,1),%xmm0
171 .byte 102,15,56,222,209
172 .byte 102,15,56,222,217
173 .byte 102,15,56,222,225
174 .byte 102,15,56,223,208
175 .byte 102,15,56,223,216
176 .byte 102,15,56,223,224
184 movups 16(%rcx),%xmm1
189 movups 32(%rcx),%xmm0
190 leaq 32(%rcx,%rax,1),%rcx
196 .byte 102,15,56,220,209
197 .byte 102,15,56,220,217
198 .byte 102,15,56,220,225
199 .byte 102,15,56,220,233
200 movups (%rcx,%rax,1),%xmm1
202 .byte 102,15,56,220,208
203 .byte 102,15,56,220,216
204 .byte 102,15,56,220,224
205 .byte 102,15,56,220,232
206 movups -16(%rcx,%rax,1),%xmm0
209 .byte 102,15,56,220,209
210 .byte 102,15,56,220,217
211 .byte 102,15,56,220,225
212 .byte 102,15,56,220,233
213 .byte 102,15,56,221,208
214 .byte 102,15,56,221,216
215 .byte 102,15,56,221,224
216 .byte 102,15,56,221,232
224 movups 16(%rcx),%xmm1
229 movups 32(%rcx),%xmm0
230 leaq 32(%rcx,%rax,1),%rcx
236 .byte 102,15,56,222,209
237 .byte 102,15,56,222,217
238 .byte 102,15,56,222,225
239 .byte 102,15,56,222,233
240 movups (%rcx,%rax,1),%xmm1
242 .byte 102,15,56,222,208
243 .byte 102,15,56,222,216
244 .byte 102,15,56,222,224
245 .byte 102,15,56,222,232
246 movups -16(%rcx,%rax,1),%xmm0
249 .byte 102,15,56,222,209
250 .byte 102,15,56,222,217
251 .byte 102,15,56,222,225
252 .byte 102,15,56,222,233
253 .byte 102,15,56,223,208
254 .byte 102,15,56,223,216
255 .byte 102,15,56,223,224
256 .byte 102,15,56,223,232
264 movups 16(%rcx),%xmm1
268 .byte 102,15,56,220,209
269 leaq 32(%rcx,%rax,1),%rcx
271 .byte 102,15,56,220,217
274 .byte 102,15,56,220,225
276 movups (%rcx,%rax,1),%xmm0
278 jmp L$enc_loop6_enter
281 .byte 102,15,56,220,209
282 .byte 102,15,56,220,217
283 .byte 102,15,56,220,225
285 .byte 102,15,56,220,233
286 .byte 102,15,56,220,241
287 .byte 102,15,56,220,249
288 movups (%rcx,%rax,1),%xmm1
290 .byte 102,15,56,220,208
291 .byte 102,15,56,220,216
292 .byte 102,15,56,220,224
293 .byte 102,15,56,220,232
294 .byte 102,15,56,220,240
295 .byte 102,15,56,220,248
296 movups -16(%rcx,%rax,1),%xmm0
299 .byte 102,15,56,220,209
300 .byte 102,15,56,220,217
301 .byte 102,15,56,220,225
302 .byte 102,15,56,220,233
303 .byte 102,15,56,220,241
304 .byte 102,15,56,220,249
305 .byte 102,15,56,221,208
306 .byte 102,15,56,221,216
307 .byte 102,15,56,221,224
308 .byte 102,15,56,221,232
309 .byte 102,15,56,221,240
310 .byte 102,15,56,221,248
318 movups 16(%rcx),%xmm1
322 .byte 102,15,56,222,209
323 leaq 32(%rcx,%rax,1),%rcx
325 .byte 102,15,56,222,217
328 .byte 102,15,56,222,225
330 movups (%rcx,%rax,1),%xmm0
332 jmp L$dec_loop6_enter
335 .byte 102,15,56,222,209
336 .byte 102,15,56,222,217
337 .byte 102,15,56,222,225
339 .byte 102,15,56,222,233
340 .byte 102,15,56,222,241
341 .byte 102,15,56,222,249
342 movups (%rcx,%rax,1),%xmm1
344 .byte 102,15,56,222,208
345 .byte 102,15,56,222,216
346 .byte 102,15,56,222,224
347 .byte 102,15,56,222,232
348 .byte 102,15,56,222,240
349 .byte 102,15,56,222,248
350 movups -16(%rcx,%rax,1),%xmm0
353 .byte 102,15,56,222,209
354 .byte 102,15,56,222,217
355 .byte 102,15,56,222,225
356 .byte 102,15,56,222,233
357 .byte 102,15,56,222,241
358 .byte 102,15,56,222,249
359 .byte 102,15,56,223,208
360 .byte 102,15,56,223,216
361 .byte 102,15,56,223,224
362 .byte 102,15,56,223,232
363 .byte 102,15,56,223,240
364 .byte 102,15,56,223,248
372 movups 16(%rcx),%xmm1
378 leaq 32(%rcx,%rax,1),%rcx
380 .byte 102,15,56,220,209
383 .byte 102,15,56,220,217
385 movups (%rcx,%rax,1),%xmm0
387 jmp L$enc_loop8_inner
390 .byte 102,15,56,220,209
391 .byte 102,15,56,220,217
393 .byte 102,15,56,220,225
394 .byte 102,15,56,220,233
395 .byte 102,15,56,220,241
396 .byte 102,15,56,220,249
397 .byte 102,68,15,56,220,193
398 .byte 102,68,15,56,220,201
400 movups (%rcx,%rax,1),%xmm1
402 .byte 102,15,56,220,208
403 .byte 102,15,56,220,216
404 .byte 102,15,56,220,224
405 .byte 102,15,56,220,232
406 .byte 102,15,56,220,240
407 .byte 102,15,56,220,248
408 .byte 102,68,15,56,220,192
409 .byte 102,68,15,56,220,200
410 movups -16(%rcx,%rax,1),%xmm0
413 .byte 102,15,56,220,209
414 .byte 102,15,56,220,217
415 .byte 102,15,56,220,225
416 .byte 102,15,56,220,233
417 .byte 102,15,56,220,241
418 .byte 102,15,56,220,249
419 .byte 102,68,15,56,220,193
420 .byte 102,68,15,56,220,201
421 .byte 102,15,56,221,208
422 .byte 102,15,56,221,216
423 .byte 102,15,56,221,224
424 .byte 102,15,56,221,232
425 .byte 102,15,56,221,240
426 .byte 102,15,56,221,248
427 .byte 102,68,15,56,221,192
428 .byte 102,68,15,56,221,200
436 movups 16(%rcx),%xmm1
442 leaq 32(%rcx,%rax,1),%rcx
444 .byte 102,15,56,222,209
447 .byte 102,15,56,222,217
449 movups (%rcx,%rax,1),%xmm0
451 jmp L$dec_loop8_inner
454 .byte 102,15,56,222,209
455 .byte 102,15,56,222,217
457 .byte 102,15,56,222,225
458 .byte 102,15,56,222,233
459 .byte 102,15,56,222,241
460 .byte 102,15,56,222,249
461 .byte 102,68,15,56,222,193
462 .byte 102,68,15,56,222,201
464 movups (%rcx,%rax,1),%xmm1
466 .byte 102,15,56,222,208
467 .byte 102,15,56,222,216
468 .byte 102,15,56,222,224
469 .byte 102,15,56,222,232
470 .byte 102,15,56,222,240
471 .byte 102,15,56,222,248
472 .byte 102,68,15,56,222,192
473 .byte 102,68,15,56,222,200
474 movups -16(%rcx,%rax,1),%xmm0
477 .byte 102,15,56,222,209
478 .byte 102,15,56,222,217
479 .byte 102,15,56,222,225
480 .byte 102,15,56,222,233
481 .byte 102,15,56,222,241
482 .byte 102,15,56,222,249
483 .byte 102,68,15,56,222,193
484 .byte 102,68,15,56,222,201
485 .byte 102,15,56,223,208
486 .byte 102,15,56,223,216
487 .byte 102,15,56,223,224
488 .byte 102,15,56,223,232
489 .byte 102,15,56,223,240
490 .byte 102,15,56,223,248
491 .byte 102,68,15,56,223,192
492 .byte 102,68,15,56,223,200
495 .globl _aesni_ecb_encrypt
496 .private_extern _aesni_ecb_encrypt
514 movdqu 16(%rdi),%xmm3
515 movdqu 32(%rdi),%xmm4
516 movdqu 48(%rdi),%xmm5
517 movdqu 64(%rdi),%xmm6
518 movdqu 80(%rdi),%xmm7
519 movdqu 96(%rdi),%xmm8
520 movdqu 112(%rdi),%xmm9
523 jmp L$ecb_enc_loop8_enter
530 movups %xmm3,16(%rsi)
531 movdqu 16(%rdi),%xmm3
532 movups %xmm4,32(%rsi)
533 movdqu 32(%rdi),%xmm4
534 movups %xmm5,48(%rsi)
535 movdqu 48(%rdi),%xmm5
536 movups %xmm6,64(%rsi)
537 movdqu 64(%rdi),%xmm6
538 movups %xmm7,80(%rsi)
539 movdqu 80(%rdi),%xmm7
540 movups %xmm8,96(%rsi)
541 movdqu 96(%rdi),%xmm8
542 movups %xmm9,112(%rsi)
544 movdqu 112(%rdi),%xmm9
546 L$ecb_enc_loop8_enter:
555 movups %xmm3,16(%rsi)
557 movups %xmm4,32(%rsi)
558 movups %xmm5,48(%rsi)
559 movups %xmm6,64(%rsi)
560 movups %xmm7,80(%rsi)
561 movups %xmm8,96(%rsi)
562 movups %xmm9,112(%rsi)
571 movups 16(%rdi),%xmm3
573 movups 32(%rdi),%xmm4
576 movups 48(%rdi),%xmm5
578 movups 64(%rdi),%xmm6
581 movups 80(%rdi),%xmm7
583 movdqu 96(%rdi),%xmm8
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)
592 movups %xmm8,96(%rsi)
597 movups 16(%rcx),%xmm1
601 .byte 102,15,56,220,209
606 .byte 102,15,56,221,209
613 movups %xmm3,16(%rsi)
619 movups %xmm3,16(%rsi)
620 movups %xmm4,32(%rsi)
626 movups %xmm3,16(%rsi)
627 movups %xmm4,32(%rsi)
628 movups %xmm5,48(%rsi)
635 movups %xmm3,16(%rsi)
636 movups %xmm4,32(%rsi)
637 movups %xmm5,48(%rsi)
638 movups %xmm6,64(%rsi)
644 movups %xmm3,16(%rsi)
645 movups %xmm4,32(%rsi)
646 movups %xmm5,48(%rsi)
647 movups %xmm6,64(%rsi)
648 movups %xmm7,80(%rsi)
657 movdqu 16(%rdi),%xmm3
658 movdqu 32(%rdi),%xmm4
659 movdqu 48(%rdi),%xmm5
660 movdqu 64(%rdi),%xmm6
661 movdqu 80(%rdi),%xmm7
662 movdqu 96(%rdi),%xmm8
663 movdqu 112(%rdi),%xmm9
666 jmp L$ecb_dec_loop8_enter
673 movups %xmm3,16(%rsi)
674 movdqu 16(%rdi),%xmm3
675 movups %xmm4,32(%rsi)
676 movdqu 32(%rdi),%xmm4
677 movups %xmm5,48(%rsi)
678 movdqu 48(%rdi),%xmm5
679 movups %xmm6,64(%rsi)
680 movdqu 64(%rdi),%xmm6
681 movups %xmm7,80(%rsi)
682 movdqu 80(%rdi),%xmm7
683 movups %xmm8,96(%rsi)
684 movdqu 96(%rdi),%xmm8
685 movups %xmm9,112(%rsi)
687 movdqu 112(%rdi),%xmm9
689 L$ecb_dec_loop8_enter:
700 movups %xmm3,16(%rsi)
703 movups %xmm4,32(%rsi)
705 movups %xmm5,48(%rsi)
707 movups %xmm6,64(%rsi)
709 movups %xmm7,80(%rsi)
711 movups %xmm8,96(%rsi)
713 movups %xmm9,112(%rsi)
723 movups 16(%rdi),%xmm3
725 movups 32(%rdi),%xmm4
728 movups 48(%rdi),%xmm5
730 movups 64(%rdi),%xmm6
733 movups 80(%rdi),%xmm7
735 movups 96(%rdi),%xmm8
741 movups %xmm3,16(%rsi)
743 movups %xmm4,32(%rsi)
745 movups %xmm5,48(%rsi)
747 movups %xmm6,64(%rsi)
749 movups %xmm7,80(%rsi)
751 movups %xmm8,96(%rsi)
758 movups 16(%rcx),%xmm1
762 .byte 102,15,56,222,209
767 .byte 102,15,56,223,209
776 movups %xmm3,16(%rsi)
784 movups %xmm3,16(%rsi)
786 movups %xmm4,32(%rsi)
794 movups %xmm3,16(%rsi)
796 movups %xmm4,32(%rsi)
798 movups %xmm5,48(%rsi)
807 movups %xmm3,16(%rsi)
809 movups %xmm4,32(%rsi)
811 movups %xmm5,48(%rsi)
813 movups %xmm6,64(%rsi)
822 movups %xmm3,16(%rsi)
824 movups %xmm4,32(%rsi)
826 movups %xmm5,48(%rsi)
828 movups %xmm6,64(%rsi)
830 movups %xmm7,80(%rsi)
838 .globl _aesni_ccm64_encrypt_blocks
839 .private_extern _aesni_ccm64_encrypt_blocks
842 _aesni_ccm64_encrypt_blocks:
845 movdqa L$increment64(%rip),%xmm9
846 movdqa L$bswap_mask(%rip),%xmm7
853 leaq 32(%rcx,%rax,1),%rcx
854 .byte 102,15,56,0,247
856 jmp L$ccm64_enc_outer
864 movups 16(%r11),%xmm1
867 movups 32(%r11),%xmm0
870 .byte 102,15,56,220,209
871 .byte 102,15,56,220,217
872 movups (%rcx,%rax,1),%xmm1
874 .byte 102,15,56,220,208
875 .byte 102,15,56,220,216
876 movups -16(%rcx,%rax,1),%xmm0
877 jnz L$ccm64_enc2_loop
878 .byte 102,15,56,220,209
879 .byte 102,15,56,220,217
882 .byte 102,15,56,221,208
883 .byte 102,15,56,221,216
889 .byte 102,15,56,0,215
891 jnz L$ccm64_enc_outer
902 .globl _aesni_ccm64_decrypt_blocks
903 .private_extern _aesni_ccm64_decrypt_blocks
906 _aesni_ccm64_decrypt_blocks:
910 movdqa L$increment64(%rip),%xmm9
911 movdqa L$bswap_mask(%rip),%xmm7
916 .byte 102,15,56,0,247
918 movups 16(%rcx),%xmm1
922 .byte 102,15,56,220,209
927 .byte 102,15,56,221,209
934 leaq 32(%r11,%r10,1),%rcx
936 jmp L$ccm64_dec_outer
943 .byte 102,15,56,0,215
950 movups 16(%r11),%xmm1
954 movups 32(%r11),%xmm0
955 jmp L$ccm64_dec2_loop
958 .byte 102,15,56,220,209
959 .byte 102,15,56,220,217
960 movups (%rcx,%rax,1),%xmm1
962 .byte 102,15,56,220,208
963 .byte 102,15,56,220,216
964 movups -16(%rcx,%rax,1),%xmm0
965 jnz L$ccm64_dec2_loop
968 .byte 102,15,56,220,209
969 .byte 102,15,56,220,217
970 .byte 102,15,56,221,208
971 .byte 102,15,56,221,216
973 jmp L$ccm64_dec_outer
980 movups 16(%r11),%xmm1
985 .byte 102,15,56,220,217
990 .byte 102,15,56,221,217
1000 .globl _aesni_ctr32_encrypt_blocks
1001 .private_extern _aesni_ctr32_encrypt_blocks
1004 _aesni_ctr32_encrypt_blocks:
1014 movups 16(%rcx),%xmm1
1018 .byte 102,15,56,220,209
1023 .byte 102,15,56,221,209
1030 jmp L$ctr32_epilogue
1048 movdqa %xmm2,0(%rsp)
1053 movdqa %xmm2,64(%rsp)
1054 movdqa %xmm2,80(%rsp)
1055 movdqa %xmm2,96(%rsp)
1057 movdqa %xmm2,112(%rsp)
1065 .byte 102,15,58,34,216,3
1067 movdqa %xmm3,16(%rsp)
1068 .byte 102,15,58,34,226,3
1072 movdqa %xmm4,32(%rsp)
1075 .byte 102,15,58,34,232,3
1077 movdqa %xmm5,48(%rsp)
1079 movl %r10d,64+12(%rsp)
1085 movl %r9d,80+12(%rsp)
1088 movl %r10d,96+12(%rsp)
1090 movl _OPENSSL_ia32cap_P+4(%rip),%r10d
1092 andl $71303168,%r10d
1093 movl %r9d,112+12(%rsp)
1095 movups 16(%rcx),%xmm1
1097 movdqa 64(%rsp),%xmm6
1098 movdqa 80(%rsp),%xmm7
1116 leaq 32(%rcx,%rax,1),%rcx
1123 movups -48(%rcx,%r10,1),%xmm0
1124 .byte 102,15,56,220,209
1127 .byte 102,15,56,220,217
1128 .byte 0x0f,0x38,0xf1,0x44,0x24,12
1130 .byte 102,15,56,220,225
1132 .byte 0x0f,0x38,0xf1,0x44,0x24,28
1133 .byte 102,15,56,220,233
1136 .byte 102,15,56,220,241
1137 .byte 0x0f,0x38,0xf1,0x44,0x24,44
1139 .byte 102,15,56,220,249
1140 movups -32(%rcx,%r10,1),%xmm1
1143 .byte 102,15,56,220,208
1144 .byte 0x0f,0x38,0xf1,0x44,0x24,60
1146 .byte 102,15,56,220,216
1148 .byte 0x0f,0x38,0xf1,0x44,0x24,76
1149 .byte 102,15,56,220,224
1152 .byte 102,15,56,220,232
1153 .byte 0x0f,0x38,0xf1,0x44,0x24,92
1155 .byte 102,15,56,220,240
1156 .byte 102,15,56,220,248
1157 movups -16(%rcx,%r10,1),%xmm0
1162 movdqu 16(%rdi),%xmm9
1163 movdqu 32(%rdi),%xmm10
1164 movdqu 48(%rdi),%xmm11
1165 movdqu 64(%rdi),%xmm12
1166 movdqu 80(%rdi),%xmm13
1168 movups -64(%rcx,%r10,1),%xmm1
1170 movaps 0(%rsp),%xmm2
1172 movaps 16(%rsp),%xmm3
1174 movaps 32(%rsp),%xmm4
1176 movaps 48(%rsp),%xmm5
1178 movaps 64(%rsp),%xmm6
1180 movaps 80(%rsp),%xmm7
1182 movdqu %xmm9,16(%rsi)
1183 movdqu %xmm10,32(%rsi)
1184 movdqu %xmm11,48(%rsi)
1185 movdqu %xmm12,64(%rsi)
1186 movdqu %xmm13,80(%rsi)
1196 leaq -80(%rcx,%r10,1),%rcx
1204 movdqa 96(%rsp),%xmm8
1205 .byte 102,15,56,220,209
1207 movdqa 112(%rsp),%xmm9
1208 .byte 102,15,56,220,217
1210 movups 32-128(%rcx),%xmm0
1211 .byte 102,15,56,220,225
1214 .byte 102,15,56,220,233
1215 movl %r9d,0+12(%rsp)
1217 .byte 102,15,56,220,241
1218 .byte 102,15,56,220,249
1219 .byte 102,68,15,56,220,193
1220 .byte 102,68,15,56,220,201
1221 movups 48-128(%rcx),%xmm1
1223 .byte 102,15,56,220,208
1224 .byte 102,15,56,220,216
1227 .byte 102,15,56,220,224
1228 .byte 102,15,56,220,232
1229 movl %r9d,16+12(%rsp)
1231 .byte 102,15,56,220,240
1232 .byte 102,15,56,220,248
1233 .byte 102,68,15,56,220,192
1234 .byte 102,68,15,56,220,200
1235 movups 64-128(%rcx),%xmm0
1237 .byte 102,15,56,220,209
1238 .byte 102,15,56,220,217
1241 .byte 102,15,56,220,225
1242 .byte 102,15,56,220,233
1243 movl %r9d,32+12(%rsp)
1245 .byte 102,15,56,220,241
1246 .byte 102,15,56,220,249
1247 .byte 102,68,15,56,220,193
1248 .byte 102,68,15,56,220,201
1249 movups 80-128(%rcx),%xmm1
1251 .byte 102,15,56,220,208
1252 .byte 102,15,56,220,216
1255 .byte 102,15,56,220,224
1256 .byte 102,15,56,220,232
1257 movl %r9d,48+12(%rsp)
1259 .byte 102,15,56,220,240
1260 .byte 102,15,56,220,248
1261 .byte 102,68,15,56,220,192
1262 .byte 102,68,15,56,220,200
1263 movups 96-128(%rcx),%xmm0
1265 .byte 102,15,56,220,209
1266 .byte 102,15,56,220,217
1269 .byte 102,15,56,220,225
1270 .byte 102,15,56,220,233
1271 movl %r9d,64+12(%rsp)
1273 .byte 102,15,56,220,241
1274 .byte 102,15,56,220,249
1275 .byte 102,68,15,56,220,193
1276 .byte 102,68,15,56,220,201
1277 movups 112-128(%rcx),%xmm1
1279 .byte 102,15,56,220,208
1280 .byte 102,15,56,220,216
1283 .byte 102,15,56,220,224
1284 .byte 102,15,56,220,232
1285 movl %r9d,80+12(%rsp)
1287 .byte 102,15,56,220,240
1288 .byte 102,15,56,220,248
1289 .byte 102,68,15,56,220,192
1290 .byte 102,68,15,56,220,200
1291 movups 128-128(%rcx),%xmm0
1293 .byte 102,15,56,220,209
1294 .byte 102,15,56,220,217
1297 .byte 102,15,56,220,225
1298 .byte 102,15,56,220,233
1299 movl %r9d,96+12(%rsp)
1301 .byte 102,15,56,220,241
1302 .byte 102,15,56,220,249
1303 .byte 102,68,15,56,220,193
1304 .byte 102,68,15,56,220,201
1305 movups 144-128(%rcx),%xmm1
1307 .byte 102,15,56,220,208
1308 .byte 102,15,56,220,216
1309 .byte 102,15,56,220,224
1311 movdqu 0(%rdi),%xmm10
1312 .byte 102,15,56,220,232
1313 movl %r9d,112+12(%rsp)
1315 .byte 102,15,56,220,240
1316 .byte 102,15,56,220,248
1317 .byte 102,68,15,56,220,192
1318 .byte 102,68,15,56,220,200
1319 movups 160-128(%rcx),%xmm0
1323 .byte 102,15,56,220,209
1324 .byte 102,15,56,220,217
1325 .byte 102,15,56,220,225
1326 .byte 102,15,56,220,233
1327 .byte 102,15,56,220,241
1328 .byte 102,15,56,220,249
1329 .byte 102,68,15,56,220,193
1330 .byte 102,68,15,56,220,201
1331 movups 176-128(%rcx),%xmm1
1333 .byte 102,15,56,220,208
1334 .byte 102,15,56,220,216
1335 .byte 102,15,56,220,224
1336 .byte 102,15,56,220,232
1337 .byte 102,15,56,220,240
1338 .byte 102,15,56,220,248
1339 .byte 102,68,15,56,220,192
1340 .byte 102,68,15,56,220,200
1341 movups 192-128(%rcx),%xmm0
1344 .byte 102,15,56,220,209
1345 .byte 102,15,56,220,217
1346 .byte 102,15,56,220,225
1347 .byte 102,15,56,220,233
1348 .byte 102,15,56,220,241
1349 .byte 102,15,56,220,249
1350 .byte 102,68,15,56,220,193
1351 .byte 102,68,15,56,220,201
1352 movups 208-128(%rcx),%xmm1
1354 .byte 102,15,56,220,208
1355 .byte 102,15,56,220,216
1356 .byte 102,15,56,220,224
1357 .byte 102,15,56,220,232
1358 .byte 102,15,56,220,240
1359 .byte 102,15,56,220,248
1360 .byte 102,68,15,56,220,192
1361 .byte 102,68,15,56,220,200
1362 movups 224-128(%rcx),%xmm0
1363 jmp L$ctr32_enc_done
1367 movdqu 16(%rdi),%xmm11
1369 movdqu 32(%rdi),%xmm12
1371 movdqu 48(%rdi),%xmm13
1373 movdqu 64(%rdi),%xmm14
1375 movdqu 80(%rdi),%xmm15
1378 .byte 102,15,56,220,209
1379 .byte 102,15,56,220,217
1380 .byte 102,15,56,220,225
1381 .byte 102,15,56,220,233
1382 .byte 102,15,56,220,241
1383 .byte 102,15,56,220,249
1384 .byte 102,68,15,56,220,193
1385 .byte 102,68,15,56,220,201
1386 movdqu 96(%rdi),%xmm1
1389 .byte 102,65,15,56,221,210
1391 movdqu 112-128(%rdi),%xmm10
1392 .byte 102,65,15,56,221,219
1394 movdqa 0(%rsp),%xmm11
1395 .byte 102,65,15,56,221,228
1396 .byte 102,65,15,56,221,237
1397 movdqa 16(%rsp),%xmm12
1398 movdqa 32(%rsp),%xmm13
1399 .byte 102,65,15,56,221,246
1400 .byte 102,65,15,56,221,255
1401 movdqa 48(%rsp),%xmm14
1402 movdqa 64(%rsp),%xmm15
1403 .byte 102,68,15,56,221,193
1404 movdqa 80(%rsp),%xmm0
1405 movups 16-128(%rcx),%xmm1
1406 .byte 102,69,15,56,221,202
1410 movups %xmm3,16(%rsi)
1412 movups %xmm4,32(%rsi)
1414 movups %xmm5,48(%rsi)
1416 movups %xmm6,64(%rsi)
1418 movups %xmm7,80(%rsi)
1420 movups %xmm8,96(%rsi)
1421 movups %xmm9,112(%rsi)
1429 leaq -128(%rcx),%rcx
1441 movdqa 96(%rsp),%xmm8
1444 movups 16(%rcx),%xmm0
1445 .byte 102,15,56,220,209
1446 .byte 102,15,56,220,217
1447 leaq 32-16(%rcx,%rax,1),%rcx
1449 .byte 102,15,56,220,225
1451 movups (%rdi),%xmm10
1452 .byte 102,15,56,220,233
1453 .byte 102,15,56,220,241
1454 movups 16(%rdi),%xmm11
1455 movups 32(%rdi),%xmm12
1456 .byte 102,15,56,220,249
1457 .byte 102,68,15,56,220,193
1459 call L$enc_loop8_enter
1461 movdqu 48(%rdi),%xmm13
1463 movdqu 64(%rdi),%xmm10
1467 movdqu %xmm3,16(%rsi)
1469 movdqu %xmm4,32(%rsi)
1471 movdqu %xmm5,48(%rsi)
1472 movdqu %xmm6,64(%rsi)
1476 movups 80(%rdi),%xmm11
1478 movups %xmm7,80(%rsi)
1481 movups 96(%rdi),%xmm12
1483 movups %xmm8,96(%rsi)
1488 .byte 102,15,56,220,209
1491 .byte 102,15,56,220,217
1492 .byte 102,15,56,220,225
1493 .byte 102,15,56,220,233
1496 .byte 102,15,56,221,209
1497 .byte 102,15,56,221,217
1498 movups (%rdi),%xmm10
1499 movups 16(%rdi),%xmm11
1500 .byte 102,15,56,221,225
1501 .byte 102,15,56,221,233
1502 movups 32(%rdi),%xmm12
1503 movups 48(%rdi),%xmm13
1508 movups %xmm3,16(%rsi)
1510 movdqu %xmm4,32(%rsi)
1512 movdqu %xmm5,48(%rsi)
1517 .byte 102,15,56,220,209
1520 .byte 102,15,56,220,217
1521 .byte 102,15,56,220,225
1524 .byte 102,15,56,221,209
1525 .byte 102,15,56,221,217
1526 .byte 102,15,56,221,225
1528 movups (%rdi),%xmm10
1534 movups 16(%rdi),%xmm11
1536 movups %xmm3,16(%rsi)
1539 movups 32(%rdi),%xmm12
1541 movups %xmm4,32(%rsi)
1553 movaps %xmm0,0(%rsp)
1555 movaps %xmm0,16(%rsp)
1557 movaps %xmm0,32(%rsp)
1559 movaps %xmm0,48(%rsp)
1561 movaps %xmm0,64(%rsp)
1563 movaps %xmm0,80(%rsp)
1565 movaps %xmm0,96(%rsp)
1567 movaps %xmm0,112(%rsp)
1574 .globl _aesni_xts_encrypt
1575 .private_extern _aesni_xts_encrypt
1586 movl 240(%rcx),%r10d
1588 movups 16(%r8),%xmm1
1592 .byte 102,15,56,220,209
1597 .byte 102,15,56,221,209
1605 movups 16(%rcx,%r10,1),%xmm1
1607 movdqa L$xts_magic(%rip),%xmm8
1609 pshufd $95,%xmm2,%xmm9
1613 movdqa %xmm15,%xmm10
1621 movdqa %xmm15,%xmm11
1629 movdqa %xmm15,%xmm12
1637 movdqa %xmm15,%xmm13
1643 movdqa %xmm15,%xmm14
1649 movaps %xmm1,96(%rsp)
1655 leaq 32(%r11,%r10,1),%rcx
1657 movups 16(%r11),%xmm1
1659 leaq L$xts_magic(%rip),%r8
1660 jmp L$xts_enc_grandloop
1663 L$xts_enc_grandloop:
1664 movdqu 0(%rdi),%xmm2
1666 movdqu 16(%rdi),%xmm3
1668 movdqu 32(%rdi),%xmm4
1670 .byte 102,15,56,220,209
1671 movdqu 48(%rdi),%xmm5
1673 .byte 102,15,56,220,217
1674 movdqu 64(%rdi),%xmm6
1676 .byte 102,15,56,220,225
1677 movdqu 80(%rdi),%xmm7
1679 movdqa 96(%rsp),%xmm9
1681 .byte 102,15,56,220,233
1682 movups 32(%r11),%xmm0
1687 .byte 102,15,56,220,241
1689 movdqa %xmm10,0(%rsp)
1690 .byte 102,15,56,220,249
1691 movups 48(%r11),%xmm1
1694 .byte 102,15,56,220,208
1696 movdqa %xmm11,16(%rsp)
1697 .byte 102,15,56,220,216
1699 movdqa %xmm12,32(%rsp)
1700 .byte 102,15,56,220,224
1701 .byte 102,15,56,220,232
1703 movdqa %xmm14,64(%rsp)
1704 .byte 102,15,56,220,240
1705 .byte 102,15,56,220,248
1706 movups 64(%r11),%xmm0
1707 movdqa %xmm8,80(%rsp)
1708 pshufd $95,%xmm15,%xmm9
1712 .byte 102,15,56,220,209
1713 .byte 102,15,56,220,217
1714 .byte 102,15,56,220,225
1715 .byte 102,15,56,220,233
1716 .byte 102,15,56,220,241
1717 .byte 102,15,56,220,249
1718 movups -64(%rcx,%rax,1),%xmm1
1721 .byte 102,15,56,220,208
1722 .byte 102,15,56,220,216
1723 .byte 102,15,56,220,224
1724 .byte 102,15,56,220,232
1725 .byte 102,15,56,220,240
1726 .byte 102,15,56,220,248
1727 movups -80(%rcx,%rax,1),%xmm0
1733 .byte 102,15,56,220,209
1736 .byte 102,15,56,220,217
1738 movups (%r11),%xmm10
1739 .byte 102,15,56,220,225
1740 .byte 102,15,56,220,233
1741 .byte 102,15,56,220,241
1743 movaps %xmm10,%xmm11
1744 .byte 102,15,56,220,249
1745 movups -64(%rcx),%xmm1
1748 .byte 102,15,56,220,208
1751 .byte 102,15,56,220,216
1754 .byte 102,15,56,220,224
1755 .byte 102,15,56,220,232
1757 movaps %xmm11,%xmm12
1758 .byte 102,15,56,220,240
1761 .byte 102,15,56,220,248
1762 movups -48(%rcx),%xmm0
1765 .byte 102,15,56,220,209
1768 .byte 102,15,56,220,217
1771 .byte 102,15,56,220,225
1772 .byte 102,15,56,220,233
1773 movdqa %xmm13,48(%rsp)
1775 .byte 102,15,56,220,241
1776 movaps %xmm12,%xmm13
1778 .byte 102,15,56,220,249
1779 movups -32(%rcx),%xmm1
1782 .byte 102,15,56,220,208
1785 .byte 102,15,56,220,216
1788 .byte 102,15,56,220,224
1789 .byte 102,15,56,220,232
1790 .byte 102,15,56,220,240
1792 movaps %xmm13,%xmm14
1793 .byte 102,15,56,220,248
1797 .byte 102,15,56,220,209
1800 .byte 102,15,56,220,217
1803 .byte 102,15,56,220,225
1804 .byte 102,15,56,220,233
1807 .byte 102,15,56,220,241
1808 .byte 102,15,56,220,249
1809 movups 16(%r11),%xmm1
1812 .byte 102,15,56,221,84,36,0
1815 .byte 102,15,56,221,92,36,16
1816 .byte 102,15,56,221,100,36,32
1819 .byte 102,15,56,221,108,36,48
1820 .byte 102,15,56,221,116,36,64
1821 .byte 102,15,56,221,124,36,80
1825 movups %xmm2,-96(%rsi)
1826 movups %xmm3,-80(%rsi)
1827 movups %xmm4,-64(%rsi)
1828 movups %xmm5,-48(%rsi)
1829 movups %xmm6,-32(%rsi)
1830 movups %xmm7,-16(%rsi)
1832 jnc L$xts_enc_grandloop
1859 movdqu 16(%rdi),%xmm3
1860 movdqu 32(%rdi),%xmm4
1862 movdqu 48(%rdi),%xmm5
1864 movdqu 64(%rdi),%xmm6
1871 call _aesni_encrypt6
1874 movdqa %xmm15,%xmm10
1879 movdqu %xmm3,16(%rsi)
1881 movdqu %xmm4,32(%rsi)
1882 movdqu %xmm5,48(%rsi)
1883 movdqu %xmm6,64(%rsi)
1893 movups 16(%rcx),%xmm1
1897 .byte 102,15,56,220,209
1902 .byte 102,15,56,221,209
1904 movdqa %xmm11,%xmm10
1912 movups 16(%rdi),%xmm3
1917 call _aesni_encrypt2
1920 movdqa %xmm12,%xmm10
1923 movups %xmm3,16(%rsi)
1930 movups 16(%rdi),%xmm3
1931 movups 32(%rdi),%xmm4
1937 call _aesni_encrypt3
1940 movdqa %xmm13,%xmm10
1944 movups %xmm3,16(%rsi)
1945 movups %xmm4,32(%rsi)
1952 movups 16(%rdi),%xmm3
1953 movups 32(%rdi),%xmm4
1955 movups 48(%rdi),%xmm5
1961 call _aesni_encrypt4
1964 movdqa %xmm14,%xmm10
1969 movdqu %xmm3,16(%rsi)
1970 movdqu %xmm4,32(%rsi)
1971 movdqu %xmm5,48(%rsi)
1983 movzbl -16(%rsi),%ecx
1995 movups -16(%rsi),%xmm2
1998 movups 16(%rcx),%xmm1
2002 .byte 102,15,56,220,209
2007 .byte 102,15,56,221,209
2009 movups %xmm2,-16(%rsi)
2020 movaps %xmm0,0(%rsp)
2022 movaps %xmm0,16(%rsp)
2024 movaps %xmm0,32(%rsp)
2026 movaps %xmm0,48(%rsp)
2028 movaps %xmm0,64(%rsp)
2030 movaps %xmm0,80(%rsp)
2032 movaps %xmm0,96(%rsp)
2040 .globl _aesni_xts_decrypt
2041 .private_extern _aesni_xts_decrypt
2052 movl 240(%rcx),%r10d
2054 movups 16(%r8),%xmm1
2058 .byte 102,15,56,220,209
2063 .byte 102,15,56,221,209
2077 movups 16(%rcx,%r10,1),%xmm1
2079 movdqa L$xts_magic(%rip),%xmm8
2081 pshufd $95,%xmm2,%xmm9
2085 movdqa %xmm15,%xmm10
2093 movdqa %xmm15,%xmm11
2101 movdqa %xmm15,%xmm12
2109 movdqa %xmm15,%xmm13
2115 movdqa %xmm15,%xmm14
2121 movaps %xmm1,96(%rsp)
2127 leaq 32(%r11,%r10,1),%rcx
2129 movups 16(%r11),%xmm1
2131 leaq L$xts_magic(%rip),%r8
2132 jmp L$xts_dec_grandloop
2135 L$xts_dec_grandloop:
2136 movdqu 0(%rdi),%xmm2
2138 movdqu 16(%rdi),%xmm3
2140 movdqu 32(%rdi),%xmm4
2142 .byte 102,15,56,222,209
2143 movdqu 48(%rdi),%xmm5
2145 .byte 102,15,56,222,217
2146 movdqu 64(%rdi),%xmm6
2148 .byte 102,15,56,222,225
2149 movdqu 80(%rdi),%xmm7
2151 movdqa 96(%rsp),%xmm9
2153 .byte 102,15,56,222,233
2154 movups 32(%r11),%xmm0
2159 .byte 102,15,56,222,241
2161 movdqa %xmm10,0(%rsp)
2162 .byte 102,15,56,222,249
2163 movups 48(%r11),%xmm1
2166 .byte 102,15,56,222,208
2168 movdqa %xmm11,16(%rsp)
2169 .byte 102,15,56,222,216
2171 movdqa %xmm12,32(%rsp)
2172 .byte 102,15,56,222,224
2173 .byte 102,15,56,222,232
2175 movdqa %xmm14,64(%rsp)
2176 .byte 102,15,56,222,240
2177 .byte 102,15,56,222,248
2178 movups 64(%r11),%xmm0
2179 movdqa %xmm8,80(%rsp)
2180 pshufd $95,%xmm15,%xmm9
2184 .byte 102,15,56,222,209
2185 .byte 102,15,56,222,217
2186 .byte 102,15,56,222,225
2187 .byte 102,15,56,222,233
2188 .byte 102,15,56,222,241
2189 .byte 102,15,56,222,249
2190 movups -64(%rcx,%rax,1),%xmm1
2193 .byte 102,15,56,222,208
2194 .byte 102,15,56,222,216
2195 .byte 102,15,56,222,224
2196 .byte 102,15,56,222,232
2197 .byte 102,15,56,222,240
2198 .byte 102,15,56,222,248
2199 movups -80(%rcx,%rax,1),%xmm0
2205 .byte 102,15,56,222,209
2208 .byte 102,15,56,222,217
2210 movups (%r11),%xmm10
2211 .byte 102,15,56,222,225
2212 .byte 102,15,56,222,233
2213 .byte 102,15,56,222,241
2215 movaps %xmm10,%xmm11
2216 .byte 102,15,56,222,249
2217 movups -64(%rcx),%xmm1
2220 .byte 102,15,56,222,208
2223 .byte 102,15,56,222,216
2226 .byte 102,15,56,222,224
2227 .byte 102,15,56,222,232
2229 movaps %xmm11,%xmm12
2230 .byte 102,15,56,222,240
2233 .byte 102,15,56,222,248
2234 movups -48(%rcx),%xmm0
2237 .byte 102,15,56,222,209
2240 .byte 102,15,56,222,217
2243 .byte 102,15,56,222,225
2244 .byte 102,15,56,222,233
2245 movdqa %xmm13,48(%rsp)
2247 .byte 102,15,56,222,241
2248 movaps %xmm12,%xmm13
2250 .byte 102,15,56,222,249
2251 movups -32(%rcx),%xmm1
2254 .byte 102,15,56,222,208
2257 .byte 102,15,56,222,216
2260 .byte 102,15,56,222,224
2261 .byte 102,15,56,222,232
2262 .byte 102,15,56,222,240
2264 movaps %xmm13,%xmm14
2265 .byte 102,15,56,222,248
2269 .byte 102,15,56,222,209
2272 .byte 102,15,56,222,217
2275 .byte 102,15,56,222,225
2276 .byte 102,15,56,222,233
2279 .byte 102,15,56,222,241
2280 .byte 102,15,56,222,249
2281 movups 16(%r11),%xmm1
2284 .byte 102,15,56,223,84,36,0
2287 .byte 102,15,56,223,92,36,16
2288 .byte 102,15,56,223,100,36,32
2291 .byte 102,15,56,223,108,36,48
2292 .byte 102,15,56,223,116,36,64
2293 .byte 102,15,56,223,124,36,80
2297 movups %xmm2,-96(%rsi)
2298 movups %xmm3,-80(%rsi)
2299 movups %xmm4,-64(%rsi)
2300 movups %xmm5,-48(%rsi)
2301 movups %xmm6,-32(%rsi)
2302 movups %xmm7,-16(%rsi)
2304 jnc L$xts_dec_grandloop
2331 movdqu 16(%rdi),%xmm3
2332 movdqu 32(%rdi),%xmm4
2334 movdqu 48(%rdi),%xmm5
2336 movdqu 64(%rdi),%xmm6
2342 call _aesni_decrypt6
2349 movdqu %xmm3,16(%rsi)
2351 movdqu %xmm4,32(%rsi)
2353 movdqu %xmm5,48(%rsi)
2354 pcmpgtd %xmm15,%xmm14
2355 movdqu %xmm6,64(%rsi)
2357 pshufd $19,%xmm14,%xmm11
2361 movdqa %xmm15,%xmm10
2373 movups 16(%rcx),%xmm1
2377 .byte 102,15,56,222,209
2382 .byte 102,15,56,223,209
2384 movdqa %xmm11,%xmm10
2386 movdqa %xmm12,%xmm11
2393 movups 16(%rdi),%xmm3
2398 call _aesni_decrypt2
2401 movdqa %xmm12,%xmm10
2403 movdqa %xmm13,%xmm11
2405 movups %xmm3,16(%rsi)
2412 movups 16(%rdi),%xmm3
2413 movups 32(%rdi),%xmm4
2419 call _aesni_decrypt3
2422 movdqa %xmm13,%xmm10
2424 movdqa %xmm14,%xmm11
2427 movups %xmm3,16(%rsi)
2428 movups %xmm4,32(%rsi)
2435 movups 16(%rdi),%xmm3
2436 movups 32(%rdi),%xmm4
2438 movups 48(%rdi),%xmm5
2444 call _aesni_decrypt4
2447 movdqa %xmm14,%xmm10
2449 movdqa %xmm15,%xmm11
2453 movdqu %xmm3,16(%rsi)
2454 movdqu %xmm4,32(%rsi)
2455 movdqu %xmm5,48(%rsi)
2471 movups 16(%rcx),%xmm1
2475 .byte 102,15,56,222,209
2480 .byte 102,15,56,223,209
2485 movzbl 16(%rdi),%eax
2501 movups 16(%rcx),%xmm1
2505 .byte 102,15,56,222,209
2510 .byte 102,15,56,223,209
2523 movaps %xmm0,0(%rsp)
2525 movaps %xmm0,16(%rsp)
2527 movaps %xmm0,32(%rsp)
2529 movaps %xmm0,48(%rsp)
2531 movaps %xmm0,64(%rsp)
2533 movaps %xmm0,80(%rsp)
2535 movaps %xmm0,96(%rsp)
2543 .globl _aesni_cbc_encrypt
2544 .private_extern _aesni_cbc_encrypt
2551 movl 240(%rcx),%r10d
2568 movups 16(%rcx),%xmm1
2573 .byte 102,15,56,220,209
2578 .byte 102,15,56,221,209
2581 movups %xmm2,0(%rsi)
2612 jne L$cbc_decrypt_bulk
2620 movups 16(%rcx),%xmm1
2624 .byte 102,15,56,222,209
2629 .byte 102,15,56,223,209
2651 movdqu 0(%rdi),%xmm2
2652 movdqu 16(%rdi),%xmm3
2654 movdqu 32(%rdi),%xmm4
2656 movdqu 48(%rdi),%xmm5
2658 movdqu 64(%rdi),%xmm6
2660 movdqu 80(%rdi),%xmm7
2662 movl _OPENSSL_ia32cap_P+4(%rip),%r9d
2664 jbe L$cbc_dec_six_or_seven
2669 je L$cbc_dec_loop6_enter
2672 jmp L$cbc_dec_loop8_enter
2677 L$cbc_dec_loop8_enter:
2678 movdqu 96(%rdi),%xmm8
2680 movdqu 112(%rdi),%xmm9
2682 movups 16-112(%rcx),%xmm1
2691 .byte 102,15,56,222,209
2693 movups 32-112(%rcx),%xmm0
2694 .byte 102,15,56,222,217
2695 .byte 102,15,56,222,225
2696 .byte 102,15,56,222,233
2697 .byte 102,15,56,222,241
2698 .byte 102,15,56,222,249
2699 .byte 102,68,15,56,222,193
2702 .byte 102,68,15,56,222,201
2704 movups 48-112(%rcx),%xmm1
2705 .byte 102,15,56,222,208
2706 .byte 102,15,56,222,216
2707 .byte 102,15,56,222,224
2708 .byte 102,15,56,222,232
2709 .byte 102,15,56,222,240
2710 .byte 102,15,56,222,248
2711 .byte 102,68,15,56,222,192
2712 .byte 102,68,15,56,222,200
2713 movups 64-112(%rcx),%xmm0
2715 .byte 102,15,56,222,209
2716 .byte 102,15,56,222,217
2717 .byte 102,15,56,222,225
2718 .byte 102,15,56,222,233
2719 .byte 102,15,56,222,241
2720 .byte 102,15,56,222,249
2721 .byte 102,68,15,56,222,193
2722 .byte 102,68,15,56,222,201
2723 movups 80-112(%rcx),%xmm1
2725 .byte 102,15,56,222,208
2726 .byte 102,15,56,222,216
2727 .byte 102,15,56,222,224
2728 .byte 102,15,56,222,232
2729 .byte 102,15,56,222,240
2730 .byte 102,15,56,222,248
2731 .byte 102,68,15,56,222,192
2732 .byte 102,68,15,56,222,200
2733 movups 96-112(%rcx),%xmm0
2735 .byte 102,15,56,222,209
2736 .byte 102,15,56,222,217
2737 .byte 102,15,56,222,225
2738 .byte 102,15,56,222,233
2739 .byte 102,15,56,222,241
2740 .byte 102,15,56,222,249
2741 .byte 102,68,15,56,222,193
2742 .byte 102,68,15,56,222,201
2743 movups 112-112(%rcx),%xmm1
2745 .byte 102,15,56,222,208
2746 .byte 102,15,56,222,216
2747 .byte 102,15,56,222,224
2748 .byte 102,15,56,222,232
2749 .byte 102,15,56,222,240
2750 .byte 102,15,56,222,248
2751 .byte 102,68,15,56,222,192
2752 .byte 102,68,15,56,222,200
2753 movups 128-112(%rcx),%xmm0
2755 .byte 102,15,56,222,209
2756 .byte 102,15,56,222,217
2757 .byte 102,15,56,222,225
2758 .byte 102,15,56,222,233
2759 .byte 102,15,56,222,241
2760 .byte 102,15,56,222,249
2761 .byte 102,68,15,56,222,193
2762 .byte 102,68,15,56,222,201
2763 movups 144-112(%rcx),%xmm1
2765 .byte 102,15,56,222,208
2766 .byte 102,15,56,222,216
2767 .byte 102,15,56,222,224
2768 .byte 102,15,56,222,232
2769 .byte 102,15,56,222,240
2770 .byte 102,15,56,222,248
2771 .byte 102,68,15,56,222,192
2772 .byte 102,68,15,56,222,200
2773 movups 160-112(%rcx),%xmm0
2775 .byte 102,15,56,222,209
2776 .byte 102,15,56,222,217
2777 .byte 102,15,56,222,225
2778 .byte 102,15,56,222,233
2779 .byte 102,15,56,222,241
2780 .byte 102,15,56,222,249
2781 .byte 102,68,15,56,222,193
2782 .byte 102,68,15,56,222,201
2783 movups 176-112(%rcx),%xmm1
2785 .byte 102,15,56,222,208
2786 .byte 102,15,56,222,216
2787 .byte 102,15,56,222,224
2788 .byte 102,15,56,222,232
2789 .byte 102,15,56,222,240
2790 .byte 102,15,56,222,248
2791 .byte 102,68,15,56,222,192
2792 .byte 102,68,15,56,222,200
2793 movups 192-112(%rcx),%xmm0
2795 .byte 102,15,56,222,209
2796 .byte 102,15,56,222,217
2797 .byte 102,15,56,222,225
2798 .byte 102,15,56,222,233
2799 .byte 102,15,56,222,241
2800 .byte 102,15,56,222,249
2801 .byte 102,68,15,56,222,193
2802 .byte 102,68,15,56,222,201
2803 movups 208-112(%rcx),%xmm1
2805 .byte 102,15,56,222,208
2806 .byte 102,15,56,222,216
2807 .byte 102,15,56,222,224
2808 .byte 102,15,56,222,232
2809 .byte 102,15,56,222,240
2810 .byte 102,15,56,222,248
2811 .byte 102,68,15,56,222,192
2812 .byte 102,68,15,56,222,200
2813 movups 224-112(%rcx),%xmm0
2817 .byte 102,15,56,222,209
2818 .byte 102,15,56,222,217
2821 .byte 102,15,56,222,225
2822 .byte 102,15,56,222,233
2825 .byte 102,15,56,222,241
2826 .byte 102,15,56,222,249
2829 .byte 102,68,15,56,222,193
2830 .byte 102,68,15,56,222,201
2831 movdqu 80(%rdi),%xmm1
2833 .byte 102,65,15,56,223,210
2834 movdqu 96(%rdi),%xmm10
2836 .byte 102,65,15,56,223,219
2838 movdqu 112(%rdi),%xmm0
2839 .byte 102,65,15,56,223,228
2841 movdqu 0(%r11),%xmm11
2842 .byte 102,65,15,56,223,237
2843 .byte 102,65,15,56,223,246
2844 movdqu 16(%r11),%xmm12
2845 movdqu 32(%r11),%xmm13
2846 .byte 102,65,15,56,223,255
2847 .byte 102,68,15,56,223,193
2848 movdqu 48(%r11),%xmm14
2849 movdqu 64(%r11),%xmm15
2850 .byte 102,69,15,56,223,202
2852 movdqu 80(%r11),%xmm1
2853 movups -112(%rcx),%xmm0
2857 movups %xmm3,16(%rsi)
2859 movups %xmm4,32(%rsi)
2861 movups %xmm5,48(%rsi)
2863 movups %xmm6,64(%rsi)
2865 movups %xmm7,80(%rsi)
2867 movups %xmm8,96(%rsi)
2874 leaq -112(%rcx),%rcx
2876 jle L$cbc_dec_clear_tail_collected
2883 L$cbc_dec_six_or_seven:
2888 call _aesni_decrypt6
2894 movdqu %xmm3,16(%rsi)
2897 movdqu %xmm4,32(%rsi)
2900 movdqu %xmm5,48(%rsi)
2903 movdqu %xmm6,64(%rsi)
2908 jmp L$cbc_dec_tail_collected
2912 movups 96(%rdi),%xmm8
2914 call _aesni_decrypt8
2915 movups 80(%rdi),%xmm9
2917 movups 96(%rdi),%xmm10
2921 movdqu %xmm3,16(%rsi)
2924 movdqu %xmm4,32(%rsi)
2927 movdqu %xmm5,48(%rsi)
2930 movdqu %xmm6,64(%rsi)
2933 movdqu %xmm7,80(%rsi)
2939 jmp L$cbc_dec_tail_collected
2945 movdqu 0(%rdi),%xmm2
2946 movdqu 16(%rdi),%xmm3
2948 movdqu 32(%rdi),%xmm4
2950 movdqu 48(%rdi),%xmm5
2952 movdqu 64(%rdi),%xmm6
2954 movdqu 80(%rdi),%xmm7
2956 L$cbc_dec_loop6_enter:
2960 call _aesni_decrypt6
2967 movdqu %xmm3,16(%rsi)
2969 movdqu %xmm4,32(%rsi)
2972 movdqu %xmm5,48(%rsi)
2975 movdqu %xmm6,64(%rsi)
2982 jle L$cbc_dec_clear_tail_collected
2991 movups 16(%rdi),%xmm3
2996 movups 32(%rdi),%xmm4
3001 movups 48(%rdi),%xmm5
3006 movups 64(%rdi),%xmm6
3010 call _aesni_decrypt6
3012 movaps %xmm15,%xmm10
3016 movdqu %xmm3,16(%rsi)
3019 movdqu %xmm4,32(%rsi)
3022 movdqu %xmm5,48(%rsi)
3029 jmp L$cbc_dec_tail_collected
3035 movups 16(%rcx),%xmm1
3039 .byte 102,15,56,222,209
3044 .byte 102,15,56,223,209
3046 movaps %xmm11,%xmm10
3047 jmp L$cbc_dec_tail_collected
3051 call _aesni_decrypt2
3053 movaps %xmm12,%xmm10
3059 jmp L$cbc_dec_tail_collected
3063 call _aesni_decrypt3
3065 movaps %xmm13,%xmm10
3069 movdqu %xmm3,16(%rsi)
3074 jmp L$cbc_dec_tail_collected
3078 call _aesni_decrypt4
3080 movaps %xmm14,%xmm10
3084 movdqu %xmm3,16(%rsi)
3087 movdqu %xmm4,32(%rsi)
3092 jmp L$cbc_dec_tail_collected
3095 L$cbc_dec_clear_tail_collected:
3103 L$cbc_dec_tail_collected:
3106 jnz L$cbc_dec_tail_partial
3111 L$cbc_dec_tail_partial:
3129 .globl _aesni_set_decrypt_key
3130 .private_extern _aesni_set_decrypt_key
3133 _aesni_set_decrypt_key:
3134 .byte 0x48,0x83,0xEC,0x08
3135 call __aesni_set_encrypt_key
3139 leaq 16(%rdx,%rsi,1),%rdi
3151 .byte 102,15,56,219,192
3152 .byte 102,15,56,219,201
3155 movups %xmm0,16(%rdi)
3156 movups %xmm1,-16(%rdx)
3158 ja L$dec_key_inverse
3161 .byte 102,15,56,219,192
3168 L$SEH_end_set_decrypt_key:
3170 .globl _aesni_set_encrypt_key
3171 .private_extern _aesni_set_encrypt_key
3174 _aesni_set_encrypt_key:
3175 __aesni_set_encrypt_key:
3176 .byte 0x48,0x83,0xEC,0x08
3183 movl $268437504,%r10d
3186 andl _OPENSSL_ia32cap_P+4(%rip),%r10d
3197 cmpl $268435456,%r10d
3201 .byte 102,15,58,223,200,1
3202 call L$key_expansion_128_cold
3203 .byte 102,15,58,223,200,2
3204 call L$key_expansion_128
3205 .byte 102,15,58,223,200,4
3206 call L$key_expansion_128
3207 .byte 102,15,58,223,200,8
3208 call L$key_expansion_128
3209 .byte 102,15,58,223,200,16
3210 call L$key_expansion_128
3211 .byte 102,15,58,223,200,32
3212 call L$key_expansion_128
3213 .byte 102,15,58,223,200,64
3214 call L$key_expansion_128
3215 .byte 102,15,58,223,200,128
3216 call L$key_expansion_128
3217 .byte 102,15,58,223,200,27
3218 call L$key_expansion_128
3219 .byte 102,15,58,223,200,54
3220 call L$key_expansion_128
3228 movdqa L$key_rotate(%rip),%xmm5
3230 movdqa L$key_rcon1(%rip),%xmm4
3237 .byte 102,15,56,0,197
3238 .byte 102,15,56,221,196
3251 movdqu %xmm0,-16(%rax)
3257 movdqa L$key_rcon1b(%rip),%xmm4
3259 .byte 102,15,56,0,197
3260 .byte 102,15,56,221,196
3275 .byte 102,15,56,0,197
3276 .byte 102,15,56,221,196
3287 movdqu %xmm0,16(%rax)
3297 cmpl $268435456,%r10d
3301 .byte 102,15,58,223,202,1
3302 call L$key_expansion_192a_cold
3303 .byte 102,15,58,223,202,2
3304 call L$key_expansion_192b
3305 .byte 102,15,58,223,202,4
3306 call L$key_expansion_192a
3307 .byte 102,15,58,223,202,8
3308 call L$key_expansion_192b
3309 .byte 102,15,58,223,202,16
3310 call L$key_expansion_192a
3311 .byte 102,15,58,223,202,32
3312 call L$key_expansion_192b
3313 .byte 102,15,58,223,202,64
3314 call L$key_expansion_192a
3315 .byte 102,15,58,223,202,128
3316 call L$key_expansion_192b
3324 movdqa L$key_rotate192(%rip),%xmm5
3325 movdqa L$key_rcon1(%rip),%xmm4
3334 .byte 102,15,56,0,213
3335 .byte 102,15,56,221,212
3347 pshufd $255,%xmm0,%xmm3
3354 movdqu %xmm0,-16(%rax)
3365 movups 16(%rdi),%xmm2
3368 cmpl $268435456,%r10d
3372 movups %xmm2,16(%rdx)
3373 .byte 102,15,58,223,202,1
3374 call L$key_expansion_256a_cold
3375 .byte 102,15,58,223,200,1
3376 call L$key_expansion_256b
3377 .byte 102,15,58,223,202,2
3378 call L$key_expansion_256a
3379 .byte 102,15,58,223,200,2
3380 call L$key_expansion_256b
3381 .byte 102,15,58,223,202,4
3382 call L$key_expansion_256a
3383 .byte 102,15,58,223,200,4
3384 call L$key_expansion_256b
3385 .byte 102,15,58,223,202,8
3386 call L$key_expansion_256a
3387 .byte 102,15,58,223,200,8
3388 call L$key_expansion_256b
3389 .byte 102,15,58,223,202,16
3390 call L$key_expansion_256a
3391 .byte 102,15,58,223,200,16
3392 call L$key_expansion_256b
3393 .byte 102,15,58,223,202,32
3394 call L$key_expansion_256a
3395 .byte 102,15,58,223,200,32
3396 call L$key_expansion_256b
3397 .byte 102,15,58,223,202,64
3398 call L$key_expansion_256a
3406 movdqa L$key_rotate(%rip),%xmm5
3407 movdqa L$key_rcon1(%rip),%xmm4
3409 movdqu %xmm0,0(%rdx)
3411 movdqu %xmm2,16(%rdx)
3416 .byte 102,15,56,0,213
3417 .byte 102,15,56,221,212
3434 pshufd $255,%xmm0,%xmm2
3436 .byte 102,15,56,221,211
3447 movdqu %xmm2,16(%rax)
3470 L$SEH_end_set_encrypt_key:
3473 L$key_expansion_128:
3476 L$key_expansion_128_cold:
3477 shufps $16,%xmm0,%xmm4
3479 shufps $140,%xmm0,%xmm4
3481 shufps $255,%xmm1,%xmm1
3486 L$key_expansion_192a:
3489 L$key_expansion_192a_cold:
3491 L$key_expansion_192b_warm:
3492 shufps $16,%xmm0,%xmm4
3495 shufps $140,%xmm0,%xmm4
3498 pshufd $85,%xmm1,%xmm1
3501 pshufd $255,%xmm0,%xmm3
3506 L$key_expansion_192b:
3508 shufps $68,%xmm0,%xmm5
3510 shufps $78,%xmm2,%xmm3
3511 movups %xmm3,16(%rax)
3513 jmp L$key_expansion_192b_warm
3516 L$key_expansion_256a:
3519 L$key_expansion_256a_cold:
3520 shufps $16,%xmm0,%xmm4
3522 shufps $140,%xmm0,%xmm4
3524 shufps $255,%xmm1,%xmm1
3529 L$key_expansion_256b:
3533 shufps $16,%xmm2,%xmm4
3535 shufps $140,%xmm2,%xmm4
3537 shufps $170,%xmm1,%xmm1
3544 .byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
3552 .byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
3554 .long 0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d
3556 .long 0x04070605,0x04070605,0x04070605,0x04070605
3560 .long 0x1b,0x1b,0x1b,0x1b
3562 .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