1 # Copyright (c) 2011-2012, Andy Polyakov <appro@openssl.org>
4 # Redistribution and use in source and binary forms, with or without
5 # modification, are permitted provided that the following conditions
8 # * Redistributions of source code must retain copyright notices,
9 # this list of conditions and the following disclaimer.
11 # * Redistributions in binary form must reproduce the above
12 # copyright notice, this list of conditions and the following
13 # disclaimer in the documentation and/or other materials
14 # provided with the distribution.
16 # * Neither the name of the Andy Polyakov nor the names of its
17 # copyright holder and contributors may be used to endorse or
18 # promote products derived from this software without specific
19 # prior written permission.
21 # ALTERNATIVELY, provided that this notice is retained in full, this
22 # product may be distributed under the terms of the GNU General Public
23 # License (GPL), in which case the provisions of the GPL apply INSTEAD OF
26 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS
27 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
28 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
29 # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
30 # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
31 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
32 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
33 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
34 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
35 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
36 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
38 # *** This file is auto-generated ***
42 .def aesni_encrypt; .scl 2; .type 32; .endef
52 .byte 102,15,56,220,209
57 .byte 102,15,56,221,209
63 .def aesni_decrypt; .scl 2; .type 32; .endef
73 .byte 102,15,56,222,209
78 .byte 102,15,56,223,209
82 .def _aesni_encrypt3; .scl 3; .type 32; .endef
95 .byte 102,15,56,220,209
96 .byte 102,15,56,220,217
98 .byte 102,15,56,220,225
100 .byte 102,15,56,220,208
101 .byte 102,15,56,220,216
103 .byte 102,15,56,220,224
107 .byte 102,15,56,220,209
108 .byte 102,15,56,220,217
109 .byte 102,15,56,220,225
110 .byte 102,15,56,221,208
111 .byte 102,15,56,221,216
112 .byte 102,15,56,221,224
115 .def _aesni_decrypt3; .scl 3; .type 32; .endef
120 movups 16(%rcx),%xmm1
128 .byte 102,15,56,222,209
129 .byte 102,15,56,222,217
131 .byte 102,15,56,222,225
132 movups 16(%rcx),%xmm1
133 .byte 102,15,56,222,208
134 .byte 102,15,56,222,216
136 .byte 102,15,56,222,224
140 .byte 102,15,56,222,209
141 .byte 102,15,56,222,217
142 .byte 102,15,56,222,225
143 .byte 102,15,56,223,208
144 .byte 102,15,56,223,216
145 .byte 102,15,56,223,224
148 .def _aesni_encrypt4; .scl 3; .type 32; .endef
153 movups 16(%rcx),%xmm1
162 .byte 102,15,56,220,209
163 .byte 102,15,56,220,217
165 .byte 102,15,56,220,225
166 .byte 102,15,56,220,233
167 movups 16(%rcx),%xmm1
168 .byte 102,15,56,220,208
169 .byte 102,15,56,220,216
171 .byte 102,15,56,220,224
172 .byte 102,15,56,220,232
176 .byte 102,15,56,220,209
177 .byte 102,15,56,220,217
178 .byte 102,15,56,220,225
179 .byte 102,15,56,220,233
180 .byte 102,15,56,221,208
181 .byte 102,15,56,221,216
182 .byte 102,15,56,221,224
183 .byte 102,15,56,221,232
186 .def _aesni_decrypt4; .scl 3; .type 32; .endef
191 movups 16(%rcx),%xmm1
200 .byte 102,15,56,222,209
201 .byte 102,15,56,222,217
203 .byte 102,15,56,222,225
204 .byte 102,15,56,222,233
205 movups 16(%rcx),%xmm1
206 .byte 102,15,56,222,208
207 .byte 102,15,56,222,216
209 .byte 102,15,56,222,224
210 .byte 102,15,56,222,232
214 .byte 102,15,56,222,209
215 .byte 102,15,56,222,217
216 .byte 102,15,56,222,225
217 .byte 102,15,56,222,233
218 .byte 102,15,56,223,208
219 .byte 102,15,56,223,216
220 .byte 102,15,56,223,224
221 .byte 102,15,56,223,232
224 .def _aesni_encrypt6; .scl 3; .type 32; .endef
229 movups 16(%rcx),%xmm1
233 .byte 102,15,56,220,209
235 .byte 102,15,56,220,217
237 .byte 102,15,56,220,225
239 .byte 102,15,56,220,233
242 .byte 102,15,56,220,241
244 .byte 102,15,56,220,249
245 jmp .Lenc_loop6_enter
248 .byte 102,15,56,220,209
249 .byte 102,15,56,220,217
251 .byte 102,15,56,220,225
252 .byte 102,15,56,220,233
253 .byte 102,15,56,220,241
254 .byte 102,15,56,220,249
256 movups 16(%rcx),%xmm1
257 .byte 102,15,56,220,208
258 .byte 102,15,56,220,216
260 .byte 102,15,56,220,224
261 .byte 102,15,56,220,232
262 .byte 102,15,56,220,240
263 .byte 102,15,56,220,248
267 .byte 102,15,56,220,209
268 .byte 102,15,56,220,217
269 .byte 102,15,56,220,225
270 .byte 102,15,56,220,233
271 .byte 102,15,56,220,241
272 .byte 102,15,56,220,249
273 .byte 102,15,56,221,208
274 .byte 102,15,56,221,216
275 .byte 102,15,56,221,224
276 .byte 102,15,56,221,232
277 .byte 102,15,56,221,240
278 .byte 102,15,56,221,248
281 .def _aesni_decrypt6; .scl 3; .type 32; .endef
286 movups 16(%rcx),%xmm1
290 .byte 102,15,56,222,209
292 .byte 102,15,56,222,217
294 .byte 102,15,56,222,225
296 .byte 102,15,56,222,233
299 .byte 102,15,56,222,241
301 .byte 102,15,56,222,249
302 jmp .Ldec_loop6_enter
305 .byte 102,15,56,222,209
306 .byte 102,15,56,222,217
308 .byte 102,15,56,222,225
309 .byte 102,15,56,222,233
310 .byte 102,15,56,222,241
311 .byte 102,15,56,222,249
313 movups 16(%rcx),%xmm1
314 .byte 102,15,56,222,208
315 .byte 102,15,56,222,216
317 .byte 102,15,56,222,224
318 .byte 102,15,56,222,232
319 .byte 102,15,56,222,240
320 .byte 102,15,56,222,248
324 .byte 102,15,56,222,209
325 .byte 102,15,56,222,217
326 .byte 102,15,56,222,225
327 .byte 102,15,56,222,233
328 .byte 102,15,56,222,241
329 .byte 102,15,56,222,249
330 .byte 102,15,56,223,208
331 .byte 102,15,56,223,216
332 .byte 102,15,56,223,224
333 .byte 102,15,56,223,232
334 .byte 102,15,56,223,240
335 .byte 102,15,56,223,248
338 .def _aesni_encrypt8; .scl 3; .type 32; .endef
343 movups 16(%rcx),%xmm1
347 .byte 102,15,56,220,209
349 .byte 102,15,56,220,217
351 .byte 102,15,56,220,225
353 .byte 102,15,56,220,233
356 .byte 102,15,56,220,241
358 .byte 102,15,56,220,249
361 .byte 102,68,15,56,220,193
362 .byte 102,68,15,56,220,201
363 movups 16(%rcx),%xmm1
364 jmp .Lenc_loop8_enter
367 .byte 102,15,56,220,209
368 .byte 102,15,56,220,217
370 .byte 102,15,56,220,225
371 .byte 102,15,56,220,233
372 .byte 102,15,56,220,241
373 .byte 102,15,56,220,249
374 .byte 102,68,15,56,220,193
375 .byte 102,68,15,56,220,201
376 movups 16(%rcx),%xmm1
378 .byte 102,15,56,220,208
379 .byte 102,15,56,220,216
381 .byte 102,15,56,220,224
382 .byte 102,15,56,220,232
383 .byte 102,15,56,220,240
384 .byte 102,15,56,220,248
385 .byte 102,68,15,56,220,192
386 .byte 102,68,15,56,220,200
390 .byte 102,15,56,220,209
391 .byte 102,15,56,220,217
392 .byte 102,15,56,220,225
393 .byte 102,15,56,220,233
394 .byte 102,15,56,220,241
395 .byte 102,15,56,220,249
396 .byte 102,68,15,56,220,193
397 .byte 102,68,15,56,220,201
398 .byte 102,15,56,221,208
399 .byte 102,15,56,221,216
400 .byte 102,15,56,221,224
401 .byte 102,15,56,221,232
402 .byte 102,15,56,221,240
403 .byte 102,15,56,221,248
404 .byte 102,68,15,56,221,192
405 .byte 102,68,15,56,221,200
408 .def _aesni_decrypt8; .scl 3; .type 32; .endef
413 movups 16(%rcx),%xmm1
417 .byte 102,15,56,222,209
419 .byte 102,15,56,222,217
421 .byte 102,15,56,222,225
423 .byte 102,15,56,222,233
426 .byte 102,15,56,222,241
428 .byte 102,15,56,222,249
431 .byte 102,68,15,56,222,193
432 .byte 102,68,15,56,222,201
433 movups 16(%rcx),%xmm1
434 jmp .Ldec_loop8_enter
437 .byte 102,15,56,222,209
438 .byte 102,15,56,222,217
440 .byte 102,15,56,222,225
441 .byte 102,15,56,222,233
442 .byte 102,15,56,222,241
443 .byte 102,15,56,222,249
444 .byte 102,68,15,56,222,193
445 .byte 102,68,15,56,222,201
446 movups 16(%rcx),%xmm1
448 .byte 102,15,56,222,208
449 .byte 102,15,56,222,216
451 .byte 102,15,56,222,224
452 .byte 102,15,56,222,232
453 .byte 102,15,56,222,240
454 .byte 102,15,56,222,248
455 .byte 102,68,15,56,222,192
456 .byte 102,68,15,56,222,200
460 .byte 102,15,56,222,209
461 .byte 102,15,56,222,217
462 .byte 102,15,56,222,225
463 .byte 102,15,56,222,233
464 .byte 102,15,56,222,241
465 .byte 102,15,56,222,249
466 .byte 102,68,15,56,222,193
467 .byte 102,68,15,56,222,201
468 .byte 102,15,56,223,208
469 .byte 102,15,56,223,216
470 .byte 102,15,56,223,224
471 .byte 102,15,56,223,232
472 .byte 102,15,56,223,240
473 .byte 102,15,56,223,248
474 .byte 102,68,15,56,223,192
475 .byte 102,68,15,56,223,200
478 .globl aesni_ecb_encrypt
479 .def aesni_ecb_encrypt; .scl 2; .type 32; .endef
485 .LSEH_begin_aesni_ecb_encrypt:
506 movdqu 16(%rdi),%xmm3
507 movdqu 32(%rdi),%xmm4
508 movdqu 48(%rdi),%xmm5
509 movdqu 64(%rdi),%xmm6
510 movdqu 80(%rdi),%xmm7
511 movdqu 96(%rdi),%xmm8
512 movdqu 112(%rdi),%xmm9
515 jmp .Lecb_enc_loop8_enter
522 movups %xmm3,16(%rsi)
523 movdqu 16(%rdi),%xmm3
524 movups %xmm4,32(%rsi)
525 movdqu 32(%rdi),%xmm4
526 movups %xmm5,48(%rsi)
527 movdqu 48(%rdi),%xmm5
528 movups %xmm6,64(%rsi)
529 movdqu 64(%rdi),%xmm6
530 movups %xmm7,80(%rsi)
531 movdqu 80(%rdi),%xmm7
532 movups %xmm8,96(%rsi)
533 movdqu 96(%rdi),%xmm8
534 movups %xmm9,112(%rsi)
536 movdqu 112(%rdi),%xmm9
538 .Lecb_enc_loop8_enter:
547 movups %xmm3,16(%rsi)
549 movups %xmm4,32(%rsi)
550 movups %xmm5,48(%rsi)
551 movups %xmm6,64(%rsi)
552 movups %xmm7,80(%rsi)
553 movups %xmm8,96(%rsi)
554 movups %xmm9,112(%rsi)
563 movups 16(%rdi),%xmm3
565 movups 32(%rdi),%xmm4
568 movups 48(%rdi),%xmm5
570 movups 64(%rdi),%xmm6
573 movups 80(%rdi),%xmm7
575 movdqu 96(%rdi),%xmm8
578 movups %xmm3,16(%rsi)
579 movups %xmm4,32(%rsi)
580 movups %xmm5,48(%rsi)
581 movups %xmm6,64(%rsi)
582 movups %xmm7,80(%rsi)
583 movups %xmm8,96(%rsi)
588 movups 16(%rcx),%xmm1
592 .byte 102,15,56,220,209
597 .byte 102,15,56,221,209
605 movups %xmm3,16(%rsi)
611 movups %xmm3,16(%rsi)
612 movups %xmm4,32(%rsi)
618 movups %xmm3,16(%rsi)
619 movups %xmm4,32(%rsi)
620 movups %xmm5,48(%rsi)
627 movups %xmm3,16(%rsi)
628 movups %xmm4,32(%rsi)
629 movups %xmm5,48(%rsi)
630 movups %xmm6,64(%rsi)
636 movups %xmm3,16(%rsi)
637 movups %xmm4,32(%rsi)
638 movups %xmm5,48(%rsi)
639 movups %xmm6,64(%rsi)
640 movups %xmm7,80(%rsi)
649 movdqu 16(%rdi),%xmm3
650 movdqu 32(%rdi),%xmm4
651 movdqu 48(%rdi),%xmm5
652 movdqu 64(%rdi),%xmm6
653 movdqu 80(%rdi),%xmm7
654 movdqu 96(%rdi),%xmm8
655 movdqu 112(%rdi),%xmm9
658 jmp .Lecb_dec_loop8_enter
665 movups %xmm3,16(%rsi)
666 movdqu 16(%rdi),%xmm3
667 movups %xmm4,32(%rsi)
668 movdqu 32(%rdi),%xmm4
669 movups %xmm5,48(%rsi)
670 movdqu 48(%rdi),%xmm5
671 movups %xmm6,64(%rsi)
672 movdqu 64(%rdi),%xmm6
673 movups %xmm7,80(%rsi)
674 movdqu 80(%rdi),%xmm7
675 movups %xmm8,96(%rsi)
676 movdqu 96(%rdi),%xmm8
677 movups %xmm9,112(%rsi)
679 movdqu 112(%rdi),%xmm9
681 .Lecb_dec_loop8_enter:
691 movups %xmm3,16(%rsi)
693 movups %xmm4,32(%rsi)
694 movups %xmm5,48(%rsi)
695 movups %xmm6,64(%rsi)
696 movups %xmm7,80(%rsi)
697 movups %xmm8,96(%rsi)
698 movups %xmm9,112(%rsi)
707 movups 16(%rdi),%xmm3
709 movups 32(%rdi),%xmm4
712 movups 48(%rdi),%xmm5
714 movups 64(%rdi),%xmm6
717 movups 80(%rdi),%xmm7
719 movups 96(%rdi),%xmm8
723 movups %xmm3,16(%rsi)
724 movups %xmm4,32(%rsi)
725 movups %xmm5,48(%rsi)
726 movups %xmm6,64(%rsi)
727 movups %xmm7,80(%rsi)
728 movups %xmm8,96(%rsi)
733 movups 16(%rcx),%xmm1
737 .byte 102,15,56,222,209
742 .byte 102,15,56,223,209
750 movups %xmm3,16(%rsi)
756 movups %xmm3,16(%rsi)
757 movups %xmm4,32(%rsi)
763 movups %xmm3,16(%rsi)
764 movups %xmm4,32(%rsi)
765 movups %xmm5,48(%rsi)
772 movups %xmm3,16(%rsi)
773 movups %xmm4,32(%rsi)
774 movups %xmm5,48(%rsi)
775 movups %xmm6,64(%rsi)
781 movups %xmm3,16(%rsi)
782 movups %xmm4,32(%rsi)
783 movups %xmm5,48(%rsi)
784 movups %xmm6,64(%rsi)
785 movups %xmm7,80(%rsi)
791 .LSEH_end_aesni_ecb_encrypt:
792 .globl aesni_ccm64_encrypt_blocks
793 .def aesni_ccm64_encrypt_blocks; .scl 2; .type 32; .endef
795 aesni_ccm64_encrypt_blocks:
799 .LSEH_begin_aesni_ccm64_encrypt_blocks:
809 movaps %xmm7,16(%rsp)
810 movaps %xmm8,32(%rsp)
811 movaps %xmm9,48(%rsp)
815 movdqa .Lincrement64(%rip),%xmm6
816 movdqa .Lbswap_mask(%rip),%xmm7
823 .byte 102,68,15,56,0,207
824 jmp .Lccm64_enc_outer
832 movups 16(%r11),%xmm1
839 .byte 102,15,56,220,209
841 .byte 102,15,56,220,217
842 movups 16(%rcx),%xmm1
843 .byte 102,15,56,220,208
845 .byte 102,15,56,220,216
847 jnz .Lccm64_enc2_loop
848 .byte 102,15,56,220,209
849 .byte 102,15,56,220,217
851 .byte 102,15,56,221,208
852 .byte 102,15,56,221,216
860 .byte 102,15,56,0,215
861 jnz .Lccm64_enc_outer
865 movaps 16(%rsp),%xmm7
866 movaps 32(%rsp),%xmm8
867 movaps 48(%rsp),%xmm9
873 .LSEH_end_aesni_ccm64_encrypt_blocks:
874 .globl aesni_ccm64_decrypt_blocks
875 .def aesni_ccm64_decrypt_blocks; .scl 2; .type 32; .endef
877 aesni_ccm64_decrypt_blocks:
881 .LSEH_begin_aesni_ccm64_decrypt_blocks:
891 movaps %xmm7,16(%rsp)
892 movaps %xmm8,32(%rsp)
893 movaps %xmm9,48(%rsp)
898 movdqa .Lincrement64(%rip),%xmm6
899 movdqa .Lbswap_mask(%rip),%xmm7
904 .byte 102,68,15,56,0,207
906 movups 16(%rcx),%xmm1
910 .byte 102,15,56,220,209
915 .byte 102,15,56,221,209
919 jmp .Lccm64_dec_outer
927 .byte 102,15,56,0,215
934 movups 16(%r11),%xmm1
942 .byte 102,15,56,220,209
944 .byte 102,15,56,220,217
945 movups 16(%rcx),%xmm1
946 .byte 102,15,56,220,208
948 .byte 102,15,56,220,216
950 jnz .Lccm64_dec2_loop
953 .byte 102,15,56,220,209
954 .byte 102,15,56,220,217
956 .byte 102,15,56,221,208
957 .byte 102,15,56,221,216
958 jmp .Lccm64_dec_outer
964 movups 16(%r11),%xmm1
969 .byte 102,15,56,220,217
974 .byte 102,15,56,221,217
977 movaps 16(%rsp),%xmm7
978 movaps 32(%rsp),%xmm8
979 movaps 48(%rsp),%xmm9
985 .LSEH_end_aesni_ccm64_decrypt_blocks:
986 .globl aesni_ctr32_encrypt_blocks
987 .def aesni_ctr32_encrypt_blocks; .scl 2; .type 32; .endef
989 aesni_ctr32_encrypt_blocks:
993 .LSEH_begin_aesni_ctr32_encrypt_blocks:
1004 movaps %xmm6,-168(%rax)
1005 movaps %xmm7,-152(%rax)
1006 movaps %xmm8,-136(%rax)
1007 movaps %xmm9,-120(%rax)
1008 movaps %xmm10,-104(%rax)
1009 movaps %xmm11,-88(%rax)
1010 movaps %xmm12,-72(%rax)
1011 movaps %xmm13,-56(%rax)
1012 movaps %xmm14,-40(%rax)
1013 movaps %xmm15,-24(%rax)
1018 je .Lctr32_one_shortcut
1025 movdqa %xmm2,0(%rsp)
1030 movdqa %xmm2,64(%rsp)
1031 movdqa %xmm2,80(%rsp)
1032 movdqa %xmm2,96(%rsp)
1033 movdqa %xmm2,112(%rsp)
1043 .byte 102,65,15,58,34,217,3
1045 movdqa %xmm3,16(%rsp)
1046 .byte 102,65,15,58,34,226,3
1049 movdqa %xmm4,32(%rsp)
1052 .byte 102,65,15,58,34,233,3
1054 movdqa %xmm5,48(%rsp)
1056 movl %r10d,64+12(%rsp)
1061 movl %r9d,80+12(%rsp)
1064 movl %r10d,96+12(%rsp)
1067 movl %r9d,112+12(%rsp)
1069 movups 16(%rcx),%xmm1
1071 movdqa 64(%rsp),%xmm6
1072 movdqa 80(%rsp),%xmm7
1084 movdqa 96(%rsp),%xmm8
1085 .byte 102,15,56,220,209
1087 movdqa 112(%rsp),%xmm9
1088 .byte 102,15,56,220,217
1090 movups 32-128(%rcx),%xmm0
1091 .byte 102,15,56,220,225
1093 .byte 102,15,56,220,233
1094 movl %r9d,0+12(%rsp)
1096 .byte 102,15,56,220,241
1097 .byte 102,15,56,220,249
1098 .byte 102,68,15,56,220,193
1099 .byte 102,68,15,56,220,201
1100 movups 48-128(%rcx),%xmm1
1101 .byte 102,15,56,220,208
1102 .byte 102,15,56,220,216
1104 .byte 102,15,56,220,224
1106 .byte 102,15,56,220,232
1107 movl %r9d,16+12(%rsp)
1109 .byte 102,15,56,220,240
1110 .byte 102,15,56,220,248
1111 .byte 102,68,15,56,220,192
1112 .byte 102,68,15,56,220,200
1113 movups 64-128(%rcx),%xmm0
1114 .byte 102,15,56,220,209
1115 .byte 102,15,56,220,217
1117 .byte 102,15,56,220,225
1119 .byte 102,15,56,220,233
1120 movl %r9d,32+12(%rsp)
1122 .byte 102,15,56,220,241
1123 .byte 102,15,56,220,249
1124 .byte 102,68,15,56,220,193
1125 .byte 102,68,15,56,220,201
1126 movups 80-128(%rcx),%xmm1
1127 .byte 102,15,56,220,208
1128 .byte 102,15,56,220,216
1130 .byte 102,15,56,220,224
1132 .byte 102,15,56,220,232
1133 movl %r9d,48+12(%rsp)
1135 .byte 102,15,56,220,240
1136 .byte 102,15,56,220,248
1137 .byte 102,68,15,56,220,192
1138 .byte 102,68,15,56,220,200
1139 movups 96-128(%rcx),%xmm0
1140 .byte 102,15,56,220,209
1141 .byte 102,15,56,220,217
1143 .byte 102,15,56,220,225
1145 .byte 102,15,56,220,233
1146 movl %r9d,64+12(%rsp)
1148 .byte 102,15,56,220,241
1149 .byte 102,15,56,220,249
1150 .byte 102,68,15,56,220,193
1151 .byte 102,68,15,56,220,201
1152 movups 112-128(%rcx),%xmm1
1153 .byte 102,15,56,220,208
1154 .byte 102,15,56,220,216
1156 .byte 102,15,56,220,224
1158 .byte 102,15,56,220,232
1159 movl %r9d,80+12(%rsp)
1161 .byte 102,15,56,220,240
1162 .byte 102,15,56,220,248
1163 .byte 102,68,15,56,220,192
1164 .byte 102,68,15,56,220,200
1165 movups 128-128(%rcx),%xmm0
1166 .byte 102,15,56,220,209
1167 .byte 102,15,56,220,217
1169 .byte 102,15,56,220,225
1171 .byte 102,15,56,220,233
1172 movl %r9d,96+12(%rsp)
1174 .byte 102,15,56,220,241
1175 .byte 102,15,56,220,249
1176 .byte 102,68,15,56,220,193
1177 .byte 102,68,15,56,220,201
1178 movups 144-128(%rcx),%xmm1
1179 .byte 102,15,56,220,208
1180 .byte 102,15,56,220,216
1182 .byte 102,15,56,220,224
1184 .byte 102,15,56,220,232
1185 movl %r9d,112+12(%rsp)
1186 .byte 102,15,56,220,240
1187 .byte 102,15,56,220,248
1188 .byte 102,68,15,56,220,192
1189 movdqu 0(%rdi),%xmm10
1190 .byte 102,68,15,56,220,200
1191 movups 160-128(%rcx),%xmm0
1196 .byte 102,15,56,220,209
1197 .byte 102,15,56,220,217
1198 .byte 102,15,56,220,225
1199 .byte 102,15,56,220,233
1200 .byte 102,15,56,220,241
1201 .byte 102,15,56,220,249
1202 .byte 102,68,15,56,220,193
1203 .byte 102,68,15,56,220,201
1204 movups 176-128(%rcx),%xmm1
1206 .byte 102,15,56,220,208
1207 .byte 102,15,56,220,216
1208 .byte 102,15,56,220,224
1209 .byte 102,15,56,220,232
1210 .byte 102,15,56,220,240
1211 .byte 102,15,56,220,248
1212 .byte 102,68,15,56,220,192
1213 .byte 102,68,15,56,220,200
1214 movups 192-128(%rcx),%xmm0
1217 .byte 102,15,56,220,209
1218 .byte 102,15,56,220,217
1219 .byte 102,15,56,220,225
1220 .byte 102,15,56,220,233
1221 .byte 102,15,56,220,241
1222 .byte 102,15,56,220,249
1223 .byte 102,68,15,56,220,193
1224 .byte 102,68,15,56,220,201
1225 movups 208-128(%rcx),%xmm1
1227 .byte 102,15,56,220,208
1228 .byte 102,15,56,220,216
1229 .byte 102,15,56,220,224
1230 .byte 102,15,56,220,232
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 224-128(%rcx),%xmm0
1238 movdqu 16(%rdi),%xmm11
1240 movdqu 32(%rdi),%xmm12
1242 movdqu 48(%rdi),%xmm13
1244 movdqu 64(%rdi),%xmm14
1246 movdqu 80(%rdi),%xmm15
1248 .byte 102,15,56,220,209
1250 .byte 102,15,56,220,217
1251 .byte 102,15,56,220,225
1252 .byte 102,15,56,220,233
1253 .byte 102,15,56,220,241
1254 .byte 102,15,56,220,249
1255 .byte 102,68,15,56,220,193
1256 .byte 102,68,15,56,220,201
1257 movdqu 96(%rdi),%xmm1
1259 .byte 102,65,15,56,221,210
1261 movdqu 112(%rdi),%xmm10
1263 .byte 102,65,15,56,221,219
1265 movdqa 0(%rsp),%xmm11
1266 .byte 102,65,15,56,221,228
1267 movdqa 16(%rsp),%xmm12
1268 .byte 102,65,15,56,221,237
1269 movdqa 32(%rsp),%xmm13
1270 .byte 102,65,15,56,221,246
1271 movdqa 48(%rsp),%xmm14
1272 .byte 102,65,15,56,221,255
1273 movdqa 64(%rsp),%xmm15
1274 .byte 102,68,15,56,221,193
1275 movdqa 80(%rsp),%xmm0
1276 .byte 102,69,15,56,221,202
1277 movups 16-128(%rcx),%xmm1
1281 movups %xmm3,16(%rsi)
1283 movups %xmm4,32(%rsi)
1285 movups %xmm5,48(%rsi)
1287 movups %xmm6,64(%rsi)
1289 movups %xmm7,80(%rsi)
1291 movups %xmm8,96(%rsi)
1292 movups %xmm9,112(%rsi)
1300 leaq -128(%rcx),%rcx
1308 movdqa 96(%rsp),%xmm8
1311 movups 16(%rcx),%xmm0
1312 .byte 102,15,56,220,209
1314 .byte 102,15,56,220,217
1316 .byte 102,15,56,220,225
1318 .byte 102,15,56,220,233
1319 movups (%rdi),%xmm10
1320 .byte 102,15,56,220,241
1321 movups 16(%rdi),%xmm11
1322 .byte 102,15,56,220,249
1323 movups 32(%rdi),%xmm12
1324 .byte 102,68,15,56,220,193
1325 movups 16(%rcx),%xmm1
1327 call .Lenc_loop8_enter
1329 movdqu 48(%rdi),%xmm13
1331 movdqu 64(%rdi),%xmm10
1335 movdqu %xmm3,16(%rsi)
1337 movdqu %xmm4,32(%rsi)
1339 movdqu %xmm5,48(%rsi)
1340 movdqu %xmm6,64(%rsi)
1344 movups 80(%rdi),%xmm11
1346 movups %xmm7,80(%rsi)
1349 movups 96(%rdi),%xmm12
1351 movups %xmm8,96(%rsi)
1356 .byte 102,15,56,220,209
1358 .byte 102,15,56,220,217
1359 .byte 102,15,56,220,225
1360 .byte 102,15,56,220,233
1364 .byte 102,15,56,221,209
1365 movups (%rdi),%xmm10
1366 .byte 102,15,56,221,217
1367 movups 16(%rdi),%xmm11
1368 .byte 102,15,56,221,225
1369 movups 32(%rdi),%xmm12
1370 .byte 102,15,56,221,233
1371 movups 48(%rdi),%xmm13
1376 movups %xmm3,16(%rsi)
1378 movdqu %xmm4,32(%rsi)
1380 movdqu %xmm5,48(%rsi)
1385 .byte 102,15,56,220,209
1387 .byte 102,15,56,220,217
1388 .byte 102,15,56,220,225
1392 .byte 102,15,56,221,209
1393 .byte 102,15,56,221,217
1394 .byte 102,15,56,221,225
1396 movups (%rdi),%xmm10
1402 movups 16(%rdi),%xmm11
1404 movups %xmm3,16(%rsi)
1407 movups 32(%rdi),%xmm12
1409 movups %xmm4,32(%rsi)
1413 .Lctr32_one_shortcut:
1415 movups (%rdi),%xmm10
1418 movups 16(%rcx),%xmm1
1422 .byte 102,15,56,220,209
1427 .byte 102,15,56,221,209
1434 movaps -160(%rbp),%xmm6
1435 movaps -144(%rbp),%xmm7
1436 movaps -128(%rbp),%xmm8
1437 movaps -112(%rbp),%xmm9
1438 movaps -96(%rbp),%xmm10
1439 movaps -80(%rbp),%xmm11
1440 movaps -64(%rbp),%xmm12
1441 movaps -48(%rbp),%xmm13
1442 movaps -32(%rbp),%xmm14
1443 movaps -16(%rbp),%xmm15
1450 .LSEH_end_aesni_ctr32_encrypt_blocks:
1451 .globl aesni_xts_encrypt
1452 .def aesni_xts_encrypt; .scl 2; .type 32; .endef
1458 .LSEH_begin_aesni_xts_encrypt:
1470 movaps %xmm6,-168(%rax)
1471 movaps %xmm7,-152(%rax)
1472 movaps %xmm8,-136(%rax)
1473 movaps %xmm9,-120(%rax)
1474 movaps %xmm10,-104(%rax)
1475 movaps %xmm11,-88(%rax)
1476 movaps %xmm12,-72(%rax)
1477 movaps %xmm13,-56(%rax)
1478 movaps %xmm14,-40(%rax)
1479 movaps %xmm15,-24(%rax)
1484 movl 240(%rcx),%r10d
1486 movups 16(%r8),%xmm1
1490 .byte 102,68,15,56,220,249
1495 .byte 102,68,15,56,221,249
1503 movups 16(%rcx,%r10,1),%xmm1
1506 movdqa .Lxts_magic(%rip),%xmm8
1507 pshufd $95,%xmm15,%xmm9
1511 movdqa %xmm15,%xmm10
1519 movdqa %xmm15,%xmm11
1527 movdqa %xmm15,%xmm12
1535 movdqa %xmm15,%xmm13
1541 movdqa %xmm15,%xmm14
1547 movaps %xmm1,96(%rsp)
1554 movups 16(%r11),%xmm1
1556 leaq .Lxts_magic(%rip),%r8
1557 jmp .Lxts_enc_grandloop
1560 .Lxts_enc_grandloop:
1561 movdqu 0(%rdi),%xmm2
1563 movdqu 16(%rdi),%xmm3
1565 movdqu 32(%rdi),%xmm4
1567 .byte 102,15,56,220,209
1568 movdqu 48(%rdi),%xmm5
1570 .byte 102,15,56,220,217
1571 movdqu 64(%rdi),%xmm6
1573 .byte 102,15,56,220,225
1574 movdqu 80(%rdi),%xmm7
1576 movdqa 96(%rsp),%xmm9
1578 .byte 102,15,56,220,233
1579 movups 32(%r11),%xmm0
1584 .byte 102,15,56,220,241
1586 movdqa %xmm10,0(%rsp)
1587 .byte 102,15,56,220,249
1588 movups 48(%r11),%xmm1
1590 .byte 102,15,56,220,208
1592 movdqa %xmm11,16(%rsp)
1593 .byte 102,15,56,220,216
1595 movdqa %xmm12,32(%rsp)
1596 .byte 102,15,56,220,224
1598 .byte 102,15,56,220,232
1600 movdqa %xmm14,64(%rsp)
1601 .byte 102,15,56,220,240
1602 movdqa %xmm8,80(%rsp)
1603 .byte 102,15,56,220,248
1604 movups 64(%r11),%xmm0
1606 pshufd $95,%xmm15,%xmm9
1610 .byte 102,15,56,220,209
1611 .byte 102,15,56,220,217
1612 .byte 102,15,56,220,225
1613 .byte 102,15,56,220,233
1614 .byte 102,15,56,220,241
1615 .byte 102,15,56,220,249
1616 movups 16(%rcx),%xmm1
1619 .byte 102,15,56,220,208
1620 .byte 102,15,56,220,216
1621 .byte 102,15,56,220,224
1622 .byte 102,15,56,220,232
1623 .byte 102,15,56,220,240
1624 .byte 102,15,56,220,248
1632 .byte 102,15,56,220,209
1635 .byte 102,15,56,220,217
1637 movups (%r11),%xmm10
1638 .byte 102,15,56,220,225
1639 .byte 102,15,56,220,233
1641 .byte 102,15,56,220,241
1642 movaps %xmm10,%xmm11
1643 .byte 102,15,56,220,249
1644 movups 16(%rcx),%xmm1
1648 .byte 102,15,56,220,208
1651 .byte 102,15,56,220,216
1654 .byte 102,15,56,220,224
1655 .byte 102,15,56,220,232
1657 .byte 102,15,56,220,240
1658 movaps %xmm11,%xmm12
1659 .byte 102,15,56,220,248
1660 movups 32(%rcx),%xmm0
1664 .byte 102,15,56,220,209
1667 .byte 102,15,56,220,217
1670 .byte 102,15,56,220,225
1671 movdqa %xmm13,48(%rsp)
1672 .byte 102,15,56,220,233
1674 .byte 102,15,56,220,241
1675 movaps %xmm12,%xmm13
1676 .byte 102,15,56,220,249
1677 movups 48(%rcx),%xmm1
1681 .byte 102,15,56,220,208
1684 .byte 102,15,56,220,216
1687 .byte 102,15,56,220,224
1688 .byte 102,15,56,220,232
1690 .byte 102,15,56,220,240
1691 movaps %xmm13,%xmm14
1692 .byte 102,15,56,220,248
1696 .byte 102,15,56,220,209
1699 .byte 102,15,56,220,217
1702 .byte 102,15,56,220,225
1703 .byte 102,15,56,220,233
1706 .byte 102,15,56,220,241
1707 .byte 102,15,56,220,249
1708 movups 16(%r11),%xmm1
1712 .byte 102,15,56,221,84,36,0
1715 .byte 102,15,56,221,92,36,16
1716 .byte 102,15,56,221,100,36,32
1718 .byte 102,15,56,221,108,36,48
1719 .byte 102,15,56,221,116,36,64
1720 .byte 102,15,56,221,124,36,80
1724 movups %xmm2,-96(%rsi)
1725 movups %xmm3,-80(%rsi)
1726 movups %xmm4,-64(%rsi)
1727 movups %xmm5,-48(%rsi)
1728 movups %xmm6,-32(%rsi)
1729 movups %xmm7,-16(%rsi)
1731 jnc .Lxts_enc_grandloop
1733 leal 7(%rax,%rax,1),%eax
1755 movdqu 16(%rdi),%xmm3
1756 movdqu 32(%rdi),%xmm4
1758 movdqu 48(%rdi),%xmm5
1760 movdqu 64(%rdi),%xmm6
1766 call _aesni_encrypt6
1769 movdqa %xmm15,%xmm10
1774 movdqu %xmm3,16(%rsi)
1776 movdqu %xmm4,32(%rsi)
1777 movdqu %xmm5,48(%rsi)
1778 movdqu %xmm6,64(%rsi)
1788 movups 16(%rcx),%xmm1
1792 .byte 102,15,56,220,209
1797 .byte 102,15,56,221,209
1799 movdqa %xmm11,%xmm10
1807 movups 16(%rdi),%xmm3
1812 call _aesni_encrypt3
1815 movdqa %xmm12,%xmm10
1818 movups %xmm3,16(%rsi)
1825 movups 16(%rdi),%xmm3
1826 movups 32(%rdi),%xmm4
1832 call _aesni_encrypt3
1835 movdqa %xmm13,%xmm10
1839 movups %xmm3,16(%rsi)
1840 movups %xmm4,32(%rsi)
1847 movups 16(%rdi),%xmm3
1848 movups 32(%rdi),%xmm4
1850 movups 48(%rdi),%xmm5
1856 call _aesni_encrypt4
1859 movdqa %xmm14,%xmm10
1864 movdqu %xmm3,16(%rsi)
1865 movdqu %xmm4,32(%rsi)
1866 movdqu %xmm5,48(%rsi)
1878 movzbl -16(%rsi),%ecx
1890 movups -16(%rsi),%xmm2
1893 movups 16(%rcx),%xmm1
1897 .byte 102,15,56,220,209
1902 .byte 102,15,56,221,209
1904 movups %xmm2,-16(%rsi)
1907 movaps -160(%rbp),%xmm6
1908 movaps -144(%rbp),%xmm7
1909 movaps -128(%rbp),%xmm8
1910 movaps -112(%rbp),%xmm9
1911 movaps -96(%rbp),%xmm10
1912 movaps -80(%rbp),%xmm11
1913 movaps -64(%rbp),%xmm12
1914 movaps -48(%rbp),%xmm13
1915 movaps -32(%rbp),%xmm14
1916 movaps -16(%rbp),%xmm15
1923 .LSEH_end_aesni_xts_encrypt:
1924 .globl aesni_xts_decrypt
1925 .def aesni_xts_decrypt; .scl 2; .type 32; .endef
1931 .LSEH_begin_aesni_xts_decrypt:
1943 movaps %xmm6,-168(%rax)
1944 movaps %xmm7,-152(%rax)
1945 movaps %xmm8,-136(%rax)
1946 movaps %xmm9,-120(%rax)
1947 movaps %xmm10,-104(%rax)
1948 movaps %xmm11,-88(%rax)
1949 movaps %xmm12,-72(%rax)
1950 movaps %xmm13,-56(%rax)
1951 movaps %xmm14,-40(%rax)
1952 movaps %xmm15,-24(%rax)
1957 movl 240(%rcx),%r10d
1959 movups 16(%r8),%xmm1
1963 .byte 102,68,15,56,220,249
1968 .byte 102,68,15,56,221,249
1982 movups 16(%rcx,%r10,1),%xmm1
1985 movdqa .Lxts_magic(%rip),%xmm8
1986 pshufd $95,%xmm15,%xmm9
1990 movdqa %xmm15,%xmm10
1998 movdqa %xmm15,%xmm11
2006 movdqa %xmm15,%xmm12
2014 movdqa %xmm15,%xmm13
2020 movdqa %xmm15,%xmm14
2026 movaps %xmm1,96(%rsp)
2033 movups 16(%r11),%xmm1
2035 leaq .Lxts_magic(%rip),%r8
2036 jmp .Lxts_dec_grandloop
2039 .Lxts_dec_grandloop:
2040 movdqu 0(%rdi),%xmm2
2042 movdqu 16(%rdi),%xmm3
2044 movdqu 32(%rdi),%xmm4
2046 .byte 102,15,56,222,209
2047 movdqu 48(%rdi),%xmm5
2049 .byte 102,15,56,222,217
2050 movdqu 64(%rdi),%xmm6
2052 .byte 102,15,56,222,225
2053 movdqu 80(%rdi),%xmm7
2055 movdqa 96(%rsp),%xmm9
2057 .byte 102,15,56,222,233
2058 movups 32(%r11),%xmm0
2063 .byte 102,15,56,222,241
2065 movdqa %xmm10,0(%rsp)
2066 .byte 102,15,56,222,249
2067 movups 48(%r11),%xmm1
2069 .byte 102,15,56,222,208
2071 movdqa %xmm11,16(%rsp)
2072 .byte 102,15,56,222,216
2074 movdqa %xmm12,32(%rsp)
2075 .byte 102,15,56,222,224
2077 .byte 102,15,56,222,232
2079 movdqa %xmm14,64(%rsp)
2080 .byte 102,15,56,222,240
2081 movdqa %xmm8,80(%rsp)
2082 .byte 102,15,56,222,248
2083 movups 64(%r11),%xmm0
2085 pshufd $95,%xmm15,%xmm9
2089 .byte 102,15,56,222,209
2090 .byte 102,15,56,222,217
2091 .byte 102,15,56,222,225
2092 .byte 102,15,56,222,233
2093 .byte 102,15,56,222,241
2094 .byte 102,15,56,222,249
2095 movups 16(%rcx),%xmm1
2098 .byte 102,15,56,222,208
2099 .byte 102,15,56,222,216
2100 .byte 102,15,56,222,224
2101 .byte 102,15,56,222,232
2102 .byte 102,15,56,222,240
2103 .byte 102,15,56,222,248
2111 .byte 102,15,56,222,209
2114 .byte 102,15,56,222,217
2116 movups (%r11),%xmm10
2117 .byte 102,15,56,222,225
2118 .byte 102,15,56,222,233
2120 .byte 102,15,56,222,241
2121 movaps %xmm10,%xmm11
2122 .byte 102,15,56,222,249
2123 movups 16(%rcx),%xmm1
2127 .byte 102,15,56,222,208
2130 .byte 102,15,56,222,216
2133 .byte 102,15,56,222,224
2134 .byte 102,15,56,222,232
2136 .byte 102,15,56,222,240
2137 movaps %xmm11,%xmm12
2138 .byte 102,15,56,222,248
2139 movups 32(%rcx),%xmm0
2143 .byte 102,15,56,222,209
2146 .byte 102,15,56,222,217
2149 .byte 102,15,56,222,225
2150 movdqa %xmm13,48(%rsp)
2151 .byte 102,15,56,222,233
2153 .byte 102,15,56,222,241
2154 movaps %xmm12,%xmm13
2155 .byte 102,15,56,222,249
2156 movups 48(%rcx),%xmm1
2160 .byte 102,15,56,222,208
2163 .byte 102,15,56,222,216
2166 .byte 102,15,56,222,224
2167 .byte 102,15,56,222,232
2169 .byte 102,15,56,222,240
2170 movaps %xmm13,%xmm14
2171 .byte 102,15,56,222,248
2175 .byte 102,15,56,222,209
2178 .byte 102,15,56,222,217
2181 .byte 102,15,56,222,225
2182 .byte 102,15,56,222,233
2185 .byte 102,15,56,222,241
2186 .byte 102,15,56,222,249
2187 movups 16(%r11),%xmm1
2191 .byte 102,15,56,223,84,36,0
2194 .byte 102,15,56,223,92,36,16
2195 .byte 102,15,56,223,100,36,32
2197 .byte 102,15,56,223,108,36,48
2198 .byte 102,15,56,223,116,36,64
2199 .byte 102,15,56,223,124,36,80
2203 movups %xmm2,-96(%rsi)
2204 movups %xmm3,-80(%rsi)
2205 movups %xmm4,-64(%rsi)
2206 movups %xmm5,-48(%rsi)
2207 movups %xmm6,-32(%rsi)
2208 movups %xmm7,-16(%rsi)
2210 jnc .Lxts_dec_grandloop
2212 leal 7(%rax,%rax,1),%eax
2234 movdqu 16(%rdi),%xmm3
2235 movdqu 32(%rdi),%xmm4
2237 movdqu 48(%rdi),%xmm5
2239 movdqu 64(%rdi),%xmm6
2245 call _aesni_decrypt6
2252 movdqu %xmm3,16(%rsi)
2254 movdqu %xmm4,32(%rsi)
2256 movdqu %xmm5,48(%rsi)
2257 pcmpgtd %xmm15,%xmm14
2258 movdqu %xmm6,64(%rsi)
2260 pshufd $19,%xmm14,%xmm11
2264 movdqa %xmm15,%xmm10
2276 movups 16(%rcx),%xmm1
2280 .byte 102,15,56,222,209
2285 .byte 102,15,56,223,209
2287 movdqa %xmm11,%xmm10
2289 movdqa %xmm12,%xmm11
2296 movups 16(%rdi),%xmm3
2301 call _aesni_decrypt3
2304 movdqa %xmm12,%xmm10
2306 movdqa %xmm13,%xmm11
2308 movups %xmm3,16(%rsi)
2315 movups 16(%rdi),%xmm3
2316 movups 32(%rdi),%xmm4
2322 call _aesni_decrypt3
2325 movdqa %xmm13,%xmm10
2327 movdqa %xmm14,%xmm11
2330 movups %xmm3,16(%rsi)
2331 movups %xmm4,32(%rsi)
2338 movups 16(%rdi),%xmm3
2339 movups 32(%rdi),%xmm4
2341 movups 48(%rdi),%xmm5
2347 call _aesni_decrypt4
2350 movdqa %xmm14,%xmm10
2352 movdqa %xmm15,%xmm11
2356 movdqu %xmm3,16(%rsi)
2357 movdqu %xmm4,32(%rsi)
2358 movdqu %xmm5,48(%rsi)
2374 movups 16(%rcx),%xmm1
2378 .byte 102,15,56,222,209
2383 .byte 102,15,56,223,209
2388 movzbl 16(%rdi),%eax
2404 movups 16(%rcx),%xmm1
2408 .byte 102,15,56,222,209
2413 .byte 102,15,56,223,209
2418 movaps -160(%rbp),%xmm6
2419 movaps -144(%rbp),%xmm7
2420 movaps -128(%rbp),%xmm8
2421 movaps -112(%rbp),%xmm9
2422 movaps -96(%rbp),%xmm10
2423 movaps -80(%rbp),%xmm11
2424 movaps -64(%rbp),%xmm12
2425 movaps -48(%rbp),%xmm13
2426 movaps -32(%rbp),%xmm14
2427 movaps -16(%rbp),%xmm15
2434 .LSEH_end_aesni_xts_decrypt:
2435 .globl aesni_cbc_encrypt
2436 .def aesni_cbc_encrypt; .scl 2; .type 32; .endef
2442 .LSEH_begin_aesni_cbc_encrypt:
2453 movl 240(%rcx),%r10d
2470 movups 16(%rcx),%xmm1
2475 .byte 102,15,56,220,209
2480 .byte 102,15,56,221,209
2483 movups %xmm2,0(%rsi)
2513 movaps %xmm6,16(%rsp)
2514 movaps %xmm7,32(%rsp)
2515 movaps %xmm8,48(%rsp)
2516 movaps %xmm9,64(%rsp)
2517 movaps %xmm10,80(%rsp)
2518 movaps %xmm11,96(%rsp)
2519 movaps %xmm12,112(%rsp)
2520 movaps %xmm13,128(%rsp)
2521 movaps %xmm14,144(%rsp)
2522 movaps %xmm15,160(%rsp)
2531 movdqu 0(%rdi),%xmm2
2532 movdqu 16(%rdi),%xmm3
2534 movdqu 32(%rdi),%xmm4
2536 movdqu 48(%rdi),%xmm5
2538 movdqu 64(%rdi),%xmm6
2540 movdqu 80(%rdi),%xmm7
2543 jbe .Lcbc_dec_six_or_seven
2547 jmp .Lcbc_dec_loop8_enter
2552 .Lcbc_dec_loop8_enter:
2553 movdqu 96(%rdi),%xmm8
2555 movdqu 112(%rdi),%xmm9
2557 movups 16-112(%rcx),%xmm1
2566 .byte 102,15,56,222,209
2568 movups 32-112(%rcx),%xmm0
2569 .byte 102,15,56,222,217
2570 .byte 102,15,56,222,225
2571 .byte 102,15,56,222,233
2572 .byte 102,15,56,222,241
2573 .byte 102,15,56,222,249
2575 .byte 102,68,15,56,222,193
2577 .byte 102,68,15,56,222,201
2579 movups 48-112(%rcx),%xmm1
2580 .byte 102,15,56,222,208
2581 .byte 102,15,56,222,216
2582 .byte 102,15,56,222,224
2583 .byte 102,15,56,222,232
2584 .byte 102,15,56,222,240
2585 .byte 102,15,56,222,248
2586 .byte 102,68,15,56,222,192
2587 .byte 102,68,15,56,222,200
2588 movups 64-112(%rcx),%xmm0
2589 .byte 102,15,56,222,209
2590 .byte 102,15,56,222,217
2591 .byte 102,15,56,222,225
2592 .byte 102,15,56,222,233
2593 .byte 102,15,56,222,241
2594 .byte 102,15,56,222,249
2595 .byte 102,68,15,56,222,193
2596 .byte 102,68,15,56,222,201
2597 movups 80-112(%rcx),%xmm1
2598 .byte 102,15,56,222,208
2599 .byte 102,15,56,222,216
2600 .byte 102,15,56,222,224
2601 .byte 102,15,56,222,232
2602 .byte 102,15,56,222,240
2603 .byte 102,15,56,222,248
2604 .byte 102,68,15,56,222,192
2605 .byte 102,68,15,56,222,200
2606 movups 96-112(%rcx),%xmm0
2607 .byte 102,15,56,222,209
2608 .byte 102,15,56,222,217
2609 .byte 102,15,56,222,225
2610 .byte 102,15,56,222,233
2611 .byte 102,15,56,222,241
2612 .byte 102,15,56,222,249
2613 .byte 102,68,15,56,222,193
2614 .byte 102,68,15,56,222,201
2615 movups 112-112(%rcx),%xmm1
2616 .byte 102,15,56,222,208
2617 .byte 102,15,56,222,216
2618 .byte 102,15,56,222,224
2619 .byte 102,15,56,222,232
2620 .byte 102,15,56,222,240
2621 .byte 102,15,56,222,248
2622 .byte 102,68,15,56,222,192
2623 .byte 102,68,15,56,222,200
2624 movups 128-112(%rcx),%xmm0
2625 .byte 102,15,56,222,209
2626 .byte 102,15,56,222,217
2627 .byte 102,15,56,222,225
2628 .byte 102,15,56,222,233
2629 .byte 102,15,56,222,241
2630 .byte 102,15,56,222,249
2631 .byte 102,68,15,56,222,193
2632 .byte 102,68,15,56,222,201
2633 movups 144-112(%rcx),%xmm1
2634 .byte 102,15,56,222,208
2635 .byte 102,15,56,222,216
2636 .byte 102,15,56,222,224
2637 .byte 102,15,56,222,232
2638 .byte 102,15,56,222,240
2639 .byte 102,15,56,222,248
2640 .byte 102,68,15,56,222,192
2641 .byte 102,68,15,56,222,200
2642 movups 160-112(%rcx),%xmm0
2645 .byte 102,15,56,222,209
2646 .byte 102,15,56,222,217
2647 .byte 102,15,56,222,225
2648 .byte 102,15,56,222,233
2649 .byte 102,15,56,222,241
2650 .byte 102,15,56,222,249
2651 .byte 102,68,15,56,222,193
2652 .byte 102,68,15,56,222,201
2653 movups 176-112(%rcx),%xmm1
2654 .byte 102,15,56,222,208
2655 .byte 102,15,56,222,216
2656 .byte 102,15,56,222,224
2657 .byte 102,15,56,222,232
2658 .byte 102,15,56,222,240
2659 .byte 102,15,56,222,248
2660 .byte 102,68,15,56,222,192
2661 .byte 102,68,15,56,222,200
2662 movups 192-112(%rcx),%xmm0
2664 .byte 102,15,56,222,209
2665 .byte 102,15,56,222,217
2666 .byte 102,15,56,222,225
2667 .byte 102,15,56,222,233
2668 .byte 102,15,56,222,241
2669 .byte 102,15,56,222,249
2670 .byte 102,68,15,56,222,193
2671 .byte 102,68,15,56,222,201
2672 movups 208-112(%rcx),%xmm1
2673 .byte 102,15,56,222,208
2674 .byte 102,15,56,222,216
2675 .byte 102,15,56,222,224
2676 .byte 102,15,56,222,232
2677 .byte 102,15,56,222,240
2678 .byte 102,15,56,222,248
2679 .byte 102,68,15,56,222,192
2680 .byte 102,68,15,56,222,200
2681 movups 224-112(%rcx),%xmm0
2683 .byte 102,15,56,222,209
2685 .byte 102,15,56,222,217
2687 .byte 102,15,56,222,225
2689 .byte 102,15,56,222,233
2691 .byte 102,15,56,222,241
2693 .byte 102,15,56,222,249
2695 .byte 102,68,15,56,222,193
2696 .byte 102,68,15,56,222,201
2697 movdqu 80(%rdi),%xmm1
2699 .byte 102,65,15,56,223,210
2700 movdqu 96(%rdi),%xmm10
2702 .byte 102,65,15,56,223,219
2704 movdqu 112(%rdi),%xmm0
2706 .byte 102,65,15,56,223,228
2707 movdqu 0(%r11),%xmm11
2708 .byte 102,65,15,56,223,237
2709 movdqu 16(%r11),%xmm12
2710 .byte 102,65,15,56,223,246
2711 movdqu 32(%r11),%xmm13
2712 .byte 102,65,15,56,223,255
2713 movdqu 48(%r11),%xmm14
2714 .byte 102,68,15,56,223,193
2715 movdqu 64(%r11),%xmm15
2716 .byte 102,69,15,56,223,202
2718 movdqu 80(%r11),%xmm1
2719 movups -112(%rcx),%xmm0
2723 movups %xmm3,16(%rsi)
2725 movups %xmm4,32(%rsi)
2727 movups %xmm5,48(%rsi)
2729 movups %xmm6,64(%rsi)
2731 movups %xmm7,80(%rsi)
2733 movups %xmm8,96(%rsi)
2740 leaq -112(%rcx),%rcx
2742 jle .Lcbc_dec_tail_collected
2749 .Lcbc_dec_six_or_seven:
2754 call _aesni_decrypt6
2760 movdqu %xmm3,16(%rsi)
2762 movdqu %xmm4,32(%rsi)
2764 movdqu %xmm5,48(%rsi)
2766 movdqu %xmm6,64(%rsi)
2769 jmp .Lcbc_dec_tail_collected
2773 movups 96(%rdi),%xmm8
2775 call _aesni_decrypt8
2776 movups 80(%rdi),%xmm9
2778 movups 96(%rdi),%xmm10
2782 movdqu %xmm3,16(%rsi)
2784 movdqu %xmm4,32(%rsi)
2786 movdqu %xmm5,48(%rsi)
2788 movdqu %xmm6,64(%rsi)
2790 movdqu %xmm7,80(%rsi)
2793 jmp .Lcbc_dec_tail_collected
2800 movups 16(%rdi),%xmm3
2805 movups 32(%rdi),%xmm4
2810 movups 48(%rdi),%xmm5
2815 movups 64(%rdi),%xmm6
2819 call _aesni_decrypt6
2821 movaps %xmm15,%xmm10
2825 movdqu %xmm3,16(%rsi)
2827 movdqu %xmm4,32(%rsi)
2829 movdqu %xmm5,48(%rsi)
2833 jmp .Lcbc_dec_tail_collected
2839 movups 16(%rcx),%xmm1
2843 .byte 102,15,56,222,209
2848 .byte 102,15,56,223,209
2850 movaps %xmm11,%xmm10
2851 jmp .Lcbc_dec_tail_collected
2856 call _aesni_decrypt3
2858 movaps %xmm12,%xmm10
2863 jmp .Lcbc_dec_tail_collected
2867 call _aesni_decrypt3
2869 movaps %xmm13,%xmm10
2873 movdqu %xmm3,16(%rsi)
2876 jmp .Lcbc_dec_tail_collected
2880 call _aesni_decrypt4
2882 movaps %xmm14,%xmm10
2886 movdqu %xmm3,16(%rsi)
2888 movdqu %xmm4,32(%rsi)
2891 jmp .Lcbc_dec_tail_collected
2894 .Lcbc_dec_tail_collected:
2897 jnz .Lcbc_dec_tail_partial