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 ***
40 .file "devel/perlasm/aesni-x86.s"
43 .def _aesni_encrypt; .scl 2; .type 32; .endef
46 .L_aesni_encrypt_begin:
57 .byte 102,15,56,220,209
62 .byte 102,15,56,221,209
66 .def _aesni_decrypt; .scl 2; .type 32; .endef
69 .L_aesni_decrypt_begin:
80 .byte 102,15,56,222,209
85 .byte 102,15,56,223,209
88 .def __aesni_encrypt3; .scl 3; .type 32; .endef
100 .byte 102,15,56,220,209
101 .byte 102,15,56,220,217
103 .byte 102,15,56,220,225
104 movups 16(%edx),%xmm1
105 .byte 102,15,56,220,208
106 .byte 102,15,56,220,216
108 .byte 102,15,56,220,224
111 .byte 102,15,56,220,209
112 .byte 102,15,56,220,217
113 .byte 102,15,56,220,225
114 .byte 102,15,56,221,208
115 .byte 102,15,56,221,216
116 .byte 102,15,56,221,224
118 .def __aesni_decrypt3; .scl 3; .type 32; .endef
123 movups 16(%edx),%xmm1
130 .byte 102,15,56,222,209
131 .byte 102,15,56,222,217
133 .byte 102,15,56,222,225
134 movups 16(%edx),%xmm1
135 .byte 102,15,56,222,208
136 .byte 102,15,56,222,216
138 .byte 102,15,56,222,224
141 .byte 102,15,56,222,209
142 .byte 102,15,56,222,217
143 .byte 102,15,56,222,225
144 .byte 102,15,56,223,208
145 .byte 102,15,56,223,216
146 .byte 102,15,56,223,224
148 .def __aesni_encrypt4; .scl 3; .type 32; .endef
152 movups 16(%edx),%xmm1
161 .byte 102,15,56,220,209
162 .byte 102,15,56,220,217
164 .byte 102,15,56,220,225
165 .byte 102,15,56,220,233
166 movups 16(%edx),%xmm1
167 .byte 102,15,56,220,208
168 .byte 102,15,56,220,216
170 .byte 102,15,56,220,224
171 .byte 102,15,56,220,232
174 .byte 102,15,56,220,209
175 .byte 102,15,56,220,217
176 .byte 102,15,56,220,225
177 .byte 102,15,56,220,233
178 .byte 102,15,56,221,208
179 .byte 102,15,56,221,216
180 .byte 102,15,56,221,224
181 .byte 102,15,56,221,232
183 .def __aesni_decrypt4; .scl 3; .type 32; .endef
187 movups 16(%edx),%xmm1
196 .byte 102,15,56,222,209
197 .byte 102,15,56,222,217
199 .byte 102,15,56,222,225
200 .byte 102,15,56,222,233
201 movups 16(%edx),%xmm1
202 .byte 102,15,56,222,208
203 .byte 102,15,56,222,216
205 .byte 102,15,56,222,224
206 .byte 102,15,56,222,232
209 .byte 102,15,56,222,209
210 .byte 102,15,56,222,217
211 .byte 102,15,56,222,225
212 .byte 102,15,56,222,233
213 .byte 102,15,56,223,208
214 .byte 102,15,56,223,216
215 .byte 102,15,56,223,224
216 .byte 102,15,56,223,232
218 .def __aesni_encrypt6; .scl 3; .type 32; .endef
223 movups 16(%edx),%xmm1
227 .byte 102,15,56,220,209
229 .byte 102,15,56,220,217
232 .byte 102,15,56,220,225
234 .byte 102,15,56,220,233
236 .byte 102,15,56,220,241
238 .byte 102,15,56,220,249
239 jmp .L_aesni_encrypt6_enter
242 .byte 102,15,56,220,209
243 .byte 102,15,56,220,217
245 .byte 102,15,56,220,225
246 .byte 102,15,56,220,233
247 .byte 102,15,56,220,241
248 .byte 102,15,56,220,249
250 .L_aesni_encrypt6_enter:
251 movups 16(%edx),%xmm1
252 .byte 102,15,56,220,208
253 .byte 102,15,56,220,216
255 .byte 102,15,56,220,224
256 .byte 102,15,56,220,232
257 .byte 102,15,56,220,240
258 .byte 102,15,56,220,248
261 .byte 102,15,56,220,209
262 .byte 102,15,56,220,217
263 .byte 102,15,56,220,225
264 .byte 102,15,56,220,233
265 .byte 102,15,56,220,241
266 .byte 102,15,56,220,249
267 .byte 102,15,56,221,208
268 .byte 102,15,56,221,216
269 .byte 102,15,56,221,224
270 .byte 102,15,56,221,232
271 .byte 102,15,56,221,240
272 .byte 102,15,56,221,248
274 .def __aesni_decrypt6; .scl 3; .type 32; .endef
279 movups 16(%edx),%xmm1
283 .byte 102,15,56,222,209
285 .byte 102,15,56,222,217
288 .byte 102,15,56,222,225
290 .byte 102,15,56,222,233
292 .byte 102,15,56,222,241
294 .byte 102,15,56,222,249
295 jmp .L_aesni_decrypt6_enter
298 .byte 102,15,56,222,209
299 .byte 102,15,56,222,217
301 .byte 102,15,56,222,225
302 .byte 102,15,56,222,233
303 .byte 102,15,56,222,241
304 .byte 102,15,56,222,249
306 .L_aesni_decrypt6_enter:
307 movups 16(%edx),%xmm1
308 .byte 102,15,56,222,208
309 .byte 102,15,56,222,216
311 .byte 102,15,56,222,224
312 .byte 102,15,56,222,232
313 .byte 102,15,56,222,240
314 .byte 102,15,56,222,248
317 .byte 102,15,56,222,209
318 .byte 102,15,56,222,217
319 .byte 102,15,56,222,225
320 .byte 102,15,56,222,233
321 .byte 102,15,56,222,241
322 .byte 102,15,56,222,249
323 .byte 102,15,56,223,208
324 .byte 102,15,56,223,216
325 .byte 102,15,56,223,224
326 .byte 102,15,56,223,232
327 .byte 102,15,56,223,240
328 .byte 102,15,56,223,248
330 .globl _aesni_ecb_encrypt
331 .def _aesni_ecb_encrypt; .scl 2; .type 32; .endef
334 .L_aesni_ecb_encrypt_begin:
354 movdqu 16(%esi),%xmm3
355 movdqu 32(%esi),%xmm4
356 movdqu 48(%esi),%xmm5
357 movdqu 64(%esi),%xmm6
358 movdqu 80(%esi),%xmm7
361 jmp .L011ecb_enc_loop6_enter
366 movups %xmm3,16(%edi)
367 movdqu 16(%esi),%xmm3
368 movups %xmm4,32(%edi)
369 movdqu 32(%esi),%xmm4
370 movups %xmm5,48(%edi)
371 movdqu 48(%esi),%xmm5
372 movups %xmm6,64(%edi)
373 movdqu 64(%esi),%xmm6
374 movups %xmm7,80(%edi)
376 movdqu 80(%esi),%xmm7
378 .L011ecb_enc_loop6_enter:
379 call __aesni_encrypt6
383 jnc .L012ecb_enc_loop6
385 movups %xmm3,16(%edi)
386 movups %xmm4,32(%edi)
387 movups %xmm5,48(%edi)
388 movups %xmm6,64(%edi)
389 movups %xmm7,80(%edi)
397 movups 16(%esi),%xmm3
399 movups 32(%esi),%xmm4
401 jb .L015ecb_enc_three
402 movups 48(%esi),%xmm5
404 movups 64(%esi),%xmm6
406 call __aesni_encrypt6
408 movups %xmm3,16(%edi)
409 movups %xmm4,32(%edi)
410 movups %xmm5,48(%edi)
411 movups %xmm6,64(%edi)
416 movups 16(%edx),%xmm1
420 .byte 102,15,56,220,209
425 .byte 102,15,56,221,209
431 call __aesni_encrypt3
433 movups %xmm3,16(%edi)
437 call __aesni_encrypt3
439 movups %xmm3,16(%edi)
440 movups %xmm4,32(%edi)
444 call __aesni_encrypt4
446 movups %xmm3,16(%edi)
447 movups %xmm4,32(%edi)
448 movups %xmm5,48(%edi)
457 movdqu 16(%esi),%xmm3
458 movdqu 32(%esi),%xmm4
459 movdqu 48(%esi),%xmm5
460 movdqu 64(%esi),%xmm6
461 movdqu 80(%esi),%xmm7
464 jmp .L019ecb_dec_loop6_enter
469 movups %xmm3,16(%edi)
470 movdqu 16(%esi),%xmm3
471 movups %xmm4,32(%edi)
472 movdqu 32(%esi),%xmm4
473 movups %xmm5,48(%edi)
474 movdqu 48(%esi),%xmm5
475 movups %xmm6,64(%edi)
476 movdqu 64(%esi),%xmm6
477 movups %xmm7,80(%edi)
479 movdqu 80(%esi),%xmm7
481 .L019ecb_dec_loop6_enter:
482 call __aesni_decrypt6
486 jnc .L020ecb_dec_loop6
488 movups %xmm3,16(%edi)
489 movups %xmm4,32(%edi)
490 movups %xmm5,48(%edi)
491 movups %xmm6,64(%edi)
492 movups %xmm7,80(%edi)
500 movups 16(%esi),%xmm3
502 movups 32(%esi),%xmm4
504 jb .L023ecb_dec_three
505 movups 48(%esi),%xmm5
507 movups 64(%esi),%xmm6
509 call __aesni_decrypt6
511 movups %xmm3,16(%edi)
512 movups %xmm4,32(%edi)
513 movups %xmm5,48(%edi)
514 movups %xmm6,64(%edi)
519 movups 16(%edx),%xmm1
523 .byte 102,15,56,222,209
528 .byte 102,15,56,223,209
534 call __aesni_decrypt3
536 movups %xmm3,16(%edi)
540 call __aesni_decrypt3
542 movups %xmm3,16(%edi)
543 movups %xmm4,32(%edi)
547 call __aesni_decrypt4
549 movups %xmm3,16(%edi)
550 movups %xmm4,32(%edi)
551 movups %xmm5,48(%edi)
558 .globl _aesni_ccm64_encrypt_blocks
559 .def _aesni_ccm64_encrypt_blocks; .scl 2; .type 32; .endef
561 _aesni_ccm64_encrypt_blocks:
562 .L_aesni_ccm64_encrypt_blocks_begin:
580 movl $202182159,(%esp)
581 movl $134810123,4(%esp)
582 movl $67438087,8(%esp)
595 .byte 102,15,56,0,253
596 .L026ccm64_enc_outer:
601 movups 16(%ebp),%xmm1
606 .L027ccm64_enc2_loop:
607 .byte 102,15,56,220,209
609 .byte 102,15,56,220,217
610 movups 16(%edx),%xmm1
611 .byte 102,15,56,220,208
613 .byte 102,15,56,220,216
615 jnz .L027ccm64_enc2_loop
616 .byte 102,15,56,220,209
617 .byte 102,15,56,220,217
619 .byte 102,15,56,221,208
620 .byte 102,15,56,221,216
627 .byte 102,15,56,0,213
628 jnz .L026ccm64_enc_outer
637 .globl _aesni_ccm64_decrypt_blocks
638 .def _aesni_ccm64_decrypt_blocks; .scl 2; .type 32; .endef
640 _aesni_ccm64_decrypt_blocks:
641 .L_aesni_ccm64_decrypt_blocks_begin:
659 movl $202182159,(%esp)
660 movl $134810123,4(%esp)
661 movl $67438087,8(%esp)
673 .byte 102,15,56,0,253
675 movups 16(%edx),%xmm1
679 .byte 102,15,56,220,209
684 .byte 102,15,56,221,209
688 jmp .L029ccm64_dec_outer
690 .L029ccm64_dec_outer:
696 .byte 102,15,56,0,213
698 jz .L030ccm64_dec_break
701 movups 16(%ebp),%xmm1
707 .L031ccm64_dec2_loop:
708 .byte 102,15,56,220,209
710 .byte 102,15,56,220,217
711 movups 16(%edx),%xmm1
712 .byte 102,15,56,220,208
714 .byte 102,15,56,220,216
716 jnz .L031ccm64_dec2_loop
719 .byte 102,15,56,220,209
720 .byte 102,15,56,220,217
722 .byte 102,15,56,221,208
723 .byte 102,15,56,221,216
724 jmp .L029ccm64_dec_outer
726 .L030ccm64_dec_break:
729 movups 16(%edx),%xmm1
734 .byte 102,15,56,220,217
739 .byte 102,15,56,221,217
748 .globl _aesni_ctr32_encrypt_blocks
749 .def _aesni_ctr32_encrypt_blocks; .scl 2; .type 32; .endef
751 _aesni_ctr32_encrypt_blocks:
752 .L_aesni_ctr32_encrypt_blocks_begin:
767 je .L033ctr32_one_shortcut
769 movl $202182159,(%esp)
770 movl $134810123,4(%esp)
771 movl $67438087,8(%esp)
779 .byte 102,15,58,22,251,3
780 .byte 102,15,58,34,253,3
786 .byte 102,15,58,34,203,0
788 .byte 102,15,58,34,197,0
790 .byte 102,15,58,34,203,1
792 .byte 102,15,58,34,197,1
794 .byte 102,15,58,34,203,2
796 .byte 102,15,58,34,197,2
797 movdqa %xmm1,48(%esp)
798 .byte 102,15,56,0,202
799 movdqa %xmm0,64(%esp)
800 .byte 102,15,56,0,194
801 pshufd $192,%xmm1,%xmm2
802 pshufd $128,%xmm1,%xmm3
805 movdqa %xmm7,32(%esp)
813 pshufd $64,%xmm1,%xmm4
814 movdqa 32(%esp),%xmm1
815 pshufd $192,%xmm0,%xmm5
817 pshufd $128,%xmm0,%xmm6
819 pshufd $64,%xmm0,%xmm7
825 movups 16(%ebp),%xmm1
830 .byte 102,15,56,220,209
832 .byte 102,15,56,220,217
834 .byte 102,15,56,220,225
836 .byte 102,15,56,220,233
838 .byte 102,15,56,220,241
840 .byte 102,15,56,220,249
841 call .L_aesni_encrypt6_enter
843 movups 16(%esi),%xmm0
845 movups 32(%esi),%xmm1
848 movdqa 16(%esp),%xmm0
850 movdqa 48(%esp),%xmm1
851 movups %xmm3,16(%edi)
852 movups %xmm4,32(%edi)
856 movups 48(%esi),%xmm3
857 movups 64(%esi),%xmm4
859 movups 80(%esi),%xmm3
861 movdqa %xmm1,48(%esp)
862 .byte 102,15,56,0,202
864 movups %xmm5,48(%edi)
866 movdqa %xmm0,64(%esp)
867 .byte 102,15,56,0,194
868 movups %xmm6,64(%edi)
869 pshufd $192,%xmm1,%xmm2
870 movups %xmm7,80(%edi)
873 pshufd $128,%xmm1,%xmm3
880 movdqa 32(%esp),%xmm7
885 pshufd $64,%xmm1,%xmm4
888 pshufd $192,%xmm0,%xmm5
892 pshufd $128,%xmm0,%xmm6
896 call __aesni_encrypt6
898 movups 16(%esi),%xmm0
900 movups 32(%esi),%xmm1
902 movups 48(%esi),%xmm0
904 movups 64(%esi),%xmm1
908 movups %xmm3,16(%edi)
909 movups %xmm4,32(%edi)
910 movups %xmm5,48(%edi)
911 movups %xmm6,64(%edi)
914 .L033ctr32_one_shortcut:
919 movups 16(%edx),%xmm1
923 .byte 102,15,56,220,209
928 .byte 102,15,56,221,209
935 call __aesni_encrypt3
937 movups 16(%esi),%xmm6
941 movups %xmm3,16(%edi)
945 call __aesni_encrypt3
947 movups 16(%esi),%xmm6
949 movups 32(%esi),%xmm7
953 movups %xmm3,16(%edi)
954 movups %xmm4,32(%edi)
958 call __aesni_encrypt4
960 movups 16(%esi),%xmm7
961 movups 32(%esi),%xmm1
963 movups 48(%esi),%xmm0
967 movups %xmm3,16(%edi)
969 movups %xmm4,32(%edi)
970 movups %xmm5,48(%edi)
978 .globl _aesni_xts_encrypt
979 .def _aesni_xts_encrypt; .scl 2; .type 32; .endef
982 .L_aesni_xts_encrypt_begin:
992 movups 16(%edx),%xmm1
996 .byte 102,15,56,220,209
1000 jnz .L042enc1_loop_8
1001 .byte 102,15,56,221,209
1018 movdqa 96(%esp),%xmm3
1024 jc .L043xts_enc_short
1027 jmp .L044xts_enc_loop6
1030 pshufd $19,%xmm0,%xmm2
1037 pshufd $19,%xmm0,%xmm2
1039 movdqa %xmm1,16(%esp)
1044 pshufd $19,%xmm0,%xmm2
1046 movdqa %xmm1,32(%esp)
1051 pshufd $19,%xmm0,%xmm2
1053 movdqa %xmm1,48(%esp)
1058 pshufd $19,%xmm0,%xmm7
1059 movdqa %xmm1,64(%esp)
1065 movdqu 16(%esi),%xmm3
1067 movdqu 32(%esi),%xmm4
1069 movdqu 48(%esi),%xmm5
1071 movdqu 64(%esi),%xmm6
1073 movdqu 80(%esi),%xmm1
1077 movdqa %xmm7,80(%esp)
1079 movups 16(%ebp),%xmm1
1082 .byte 102,15,56,220,209
1084 .byte 102,15,56,220,217
1087 .byte 102,15,56,220,225
1089 .byte 102,15,56,220,233
1091 .byte 102,15,56,220,241
1093 .byte 102,15,56,220,249
1094 call .L_aesni_encrypt6_enter
1095 movdqa 80(%esp),%xmm1
1099 xorps 16(%esp),%xmm3
1101 xorps 32(%esp),%xmm4
1102 movups %xmm3,16(%edi)
1103 xorps 48(%esp),%xmm5
1104 movups %xmm4,32(%edi)
1105 xorps 64(%esp),%xmm6
1106 movups %xmm5,48(%edi)
1108 movups %xmm6,64(%edi)
1109 pshufd $19,%xmm0,%xmm2
1110 movups %xmm7,80(%edi)
1112 movdqa 96(%esp),%xmm3
1120 jnc .L044xts_enc_loop6
1121 leal 1(,%ecx,2),%ecx
1126 jz .L045xts_enc_done6x
1130 pshufd $19,%xmm0,%xmm2
1137 pshufd $19,%xmm0,%xmm2
1145 jb .L048xts_enc_three
1146 pshufd $19,%xmm0,%xmm2
1154 movdqa %xmm6,16(%esp)
1155 je .L049xts_enc_four
1156 movdqa %xmm7,32(%esp)
1157 pshufd $19,%xmm0,%xmm7
1158 movdqa %xmm1,48(%esp)
1163 movdqu 16(%esi),%xmm3
1164 movdqu 32(%esi),%xmm4
1166 movdqu 48(%esi),%xmm5
1168 movdqu 64(%esi),%xmm6
1172 movdqa %xmm7,64(%esp)
1174 call __aesni_encrypt6
1175 movaps 64(%esp),%xmm1
1177 xorps 16(%esp),%xmm3
1178 xorps 32(%esp),%xmm4
1180 xorps 48(%esp),%xmm5
1181 movups %xmm3,16(%edi)
1183 movups %xmm4,32(%edi)
1184 movups %xmm5,48(%edi)
1185 movups %xmm6,64(%edi)
1187 jmp .L050xts_enc_done
1194 movups 16(%edx),%xmm1
1198 .byte 102,15,56,220,209
1202 jnz .L051enc1_loop_9
1203 .byte 102,15,56,221,209
1208 jmp .L050xts_enc_done
1213 movups 16(%esi),%xmm3
1218 call __aesni_encrypt3
1222 movups %xmm3,16(%edi)
1225 jmp .L050xts_enc_done
1230 movups 16(%esi),%xmm3
1231 movups 32(%esi),%xmm4
1236 call __aesni_encrypt3
1241 movups %xmm3,16(%edi)
1242 movups %xmm4,32(%edi)
1245 jmp .L050xts_enc_done
1250 movups 16(%esi),%xmm3
1251 movups 32(%esi),%xmm4
1253 movups 48(%esi),%xmm5
1255 xorps 16(%esp),%xmm3
1258 call __aesni_encrypt4
1260 xorps 16(%esp),%xmm3
1264 movups %xmm3,16(%edi)
1265 movups %xmm4,32(%edi)
1266 movups %xmm5,48(%edi)
1269 jmp .L050xts_enc_done
1271 .L045xts_enc_done6x:
1277 jmp .L053xts_enc_steal
1286 pshufd $19,%xmm0,%xmm5
1292 movzbl -16(%edi),%edx
1298 jnz .L053xts_enc_steal
1302 movups -16(%edi),%xmm2
1305 movups 16(%edx),%xmm1
1309 .byte 102,15,56,220,209
1313 jnz .L054enc1_loop_10
1314 .byte 102,15,56,221,209
1316 movups %xmm2,-16(%edi)
1324 .globl _aesni_xts_decrypt
1325 .def _aesni_xts_decrypt; .scl 2; .type 32; .endef
1328 .L_aesni_xts_decrypt_begin:
1338 movups 16(%edx),%xmm1
1342 .byte 102,15,56,220,209
1346 jnz .L055enc1_loop_11
1347 .byte 102,15,56,221,209
1371 movdqa 96(%esp),%xmm3
1375 jc .L056xts_dec_short
1378 jmp .L057xts_dec_loop6
1381 pshufd $19,%xmm0,%xmm2
1388 pshufd $19,%xmm0,%xmm2
1390 movdqa %xmm1,16(%esp)
1395 pshufd $19,%xmm0,%xmm2
1397 movdqa %xmm1,32(%esp)
1402 pshufd $19,%xmm0,%xmm2
1404 movdqa %xmm1,48(%esp)
1409 pshufd $19,%xmm0,%xmm7
1410 movdqa %xmm1,64(%esp)
1416 movdqu 16(%esi),%xmm3
1418 movdqu 32(%esi),%xmm4
1420 movdqu 48(%esi),%xmm5
1422 movdqu 64(%esi),%xmm6
1424 movdqu 80(%esi),%xmm1
1428 movdqa %xmm7,80(%esp)
1430 movups 16(%ebp),%xmm1
1433 .byte 102,15,56,222,209
1435 .byte 102,15,56,222,217
1438 .byte 102,15,56,222,225
1440 .byte 102,15,56,222,233
1442 .byte 102,15,56,222,241
1444 .byte 102,15,56,222,249
1445 call .L_aesni_decrypt6_enter
1446 movdqa 80(%esp),%xmm1
1450 xorps 16(%esp),%xmm3
1452 xorps 32(%esp),%xmm4
1453 movups %xmm3,16(%edi)
1454 xorps 48(%esp),%xmm5
1455 movups %xmm4,32(%edi)
1456 xorps 64(%esp),%xmm6
1457 movups %xmm5,48(%edi)
1459 movups %xmm6,64(%edi)
1460 pshufd $19,%xmm0,%xmm2
1461 movups %xmm7,80(%edi)
1463 movdqa 96(%esp),%xmm3
1471 jnc .L057xts_dec_loop6
1472 leal 1(,%ecx,2),%ecx
1477 jz .L058xts_dec_done6x
1481 pshufd $19,%xmm0,%xmm2
1488 pshufd $19,%xmm0,%xmm2
1496 jb .L061xts_dec_three
1497 pshufd $19,%xmm0,%xmm2
1505 movdqa %xmm6,16(%esp)
1506 je .L062xts_dec_four
1507 movdqa %xmm7,32(%esp)
1508 pshufd $19,%xmm0,%xmm7
1509 movdqa %xmm1,48(%esp)
1514 movdqu 16(%esi),%xmm3
1515 movdqu 32(%esi),%xmm4
1517 movdqu 48(%esi),%xmm5
1519 movdqu 64(%esi),%xmm6
1523 movdqa %xmm7,64(%esp)
1525 call __aesni_decrypt6
1526 movaps 64(%esp),%xmm1
1528 xorps 16(%esp),%xmm3
1529 xorps 32(%esp),%xmm4
1531 xorps 48(%esp),%xmm5
1532 movups %xmm3,16(%edi)
1534 movups %xmm4,32(%edi)
1535 movups %xmm5,48(%edi)
1536 movups %xmm6,64(%edi)
1538 jmp .L063xts_dec_done
1545 movups 16(%edx),%xmm1
1549 .byte 102,15,56,222,209
1553 jnz .L064dec1_loop_12
1554 .byte 102,15,56,223,209
1559 jmp .L063xts_dec_done
1564 movups 16(%esi),%xmm3
1568 call __aesni_decrypt3
1572 movups %xmm3,16(%edi)
1575 jmp .L063xts_dec_done
1580 movups 16(%esi),%xmm3
1581 movups 32(%esi),%xmm4
1586 call __aesni_decrypt3
1591 movups %xmm3,16(%edi)
1592 movups %xmm4,32(%edi)
1595 jmp .L063xts_dec_done
1600 movups 16(%esi),%xmm3
1601 movups 32(%esi),%xmm4
1603 movups 48(%esi),%xmm5
1605 xorps 16(%esp),%xmm3
1608 call __aesni_decrypt4
1610 xorps 16(%esp),%xmm3
1614 movups %xmm3,16(%edi)
1615 movups %xmm4,32(%edi)
1616 movups %xmm5,48(%edi)
1619 jmp .L063xts_dec_done
1621 .L058xts_dec_done6x:
1626 jmp .L066xts_dec_only_one_more
1635 pshufd $19,%xmm0,%xmm2
1637 movdqa 96(%esp),%xmm3
1642 .L066xts_dec_only_one_more:
1643 pshufd $19,%xmm0,%xmm5
1653 movups 16(%edx),%xmm1
1657 .byte 102,15,56,222,209
1661 jnz .L067dec1_loop_13
1662 .byte 102,15,56,223,209
1666 movzbl 16(%esi),%ecx
1673 jnz .L068xts_dec_steal
1680 movups 16(%edx),%xmm1
1684 .byte 102,15,56,222,209
1688 jnz .L069dec1_loop_14
1689 .byte 102,15,56,223,209
1699 .globl _aesni_cbc_encrypt
1700 .def _aesni_cbc_encrypt; .scl 2; .type 32; .endef
1703 .L_aesni_cbc_encrypt_begin:
1728 jb .L072cbc_enc_tail
1730 jmp .L073cbc_enc_loop
1736 movups 16(%edx),%xmm1
1741 .byte 102,15,56,220,209
1745 jnz .L074enc1_loop_15
1746 .byte 102,15,56,221,209
1752 jnc .L073cbc_enc_loop
1754 jnz .L072cbc_enc_tail
1768 jmp .L073cbc_enc_loop
1772 jbe .L076cbc_dec_tail
1775 jmp .L077cbc_dec_loop6_enter
1781 .L077cbc_dec_loop6_enter:
1783 movdqu 16(%esi),%xmm3
1784 movdqu 32(%esi),%xmm4
1785 movdqu 48(%esi),%xmm5
1786 movdqu 64(%esi),%xmm6
1787 movdqu 80(%esi),%xmm7
1788 call __aesni_decrypt6
1790 movups 16(%esi),%xmm0
1793 movups 32(%esi),%xmm1
1795 movups 48(%esi),%xmm0
1797 movups 64(%esi),%xmm1
1799 movups 80(%esi),%xmm0
1802 movups %xmm3,16(%edi)
1804 movups %xmm4,32(%edi)
1806 movups %xmm5,48(%edi)
1808 movups %xmm6,64(%edi)
1811 ja .L078cbc_dec_loop6
1815 jle .L079cbc_dec_tail_collected
1822 jbe .L080cbc_dec_one
1823 movups 16(%esi),%xmm3
1826 jbe .L081cbc_dec_two
1827 movups 32(%esi),%xmm4
1829 jbe .L082cbc_dec_three
1830 movups 48(%esi),%xmm5
1832 jbe .L083cbc_dec_four
1833 movups 64(%esi),%xmm6
1837 call __aesni_decrypt6
1839 movups 16(%esi),%xmm0
1842 movups 32(%esi),%xmm1
1844 movups 48(%esi),%xmm0
1846 movups 64(%esi),%xmm7
1849 movups %xmm3,16(%edi)
1850 movups %xmm4,32(%edi)
1851 movups %xmm5,48(%edi)
1855 jmp .L079cbc_dec_tail_collected
1859 movups 16(%edx),%xmm1
1863 .byte 102,15,56,222,209
1867 jnz .L084dec1_loop_16
1868 .byte 102,15,56,223,209
1872 jmp .L079cbc_dec_tail_collected
1876 call __aesni_decrypt3
1884 jmp .L079cbc_dec_tail_collected
1887 call __aesni_decrypt3
1893 movups %xmm3,16(%edi)
1895 movups 32(%esi),%xmm7
1897 jmp .L079cbc_dec_tail_collected
1900 call __aesni_decrypt4
1901 movups 16(%esi),%xmm1
1902 movups 32(%esi),%xmm0
1904 movups 48(%esi),%xmm7
1908 movups %xmm3,16(%edi)
1910 movups %xmm4,32(%edi)
1914 .L079cbc_dec_tail_collected:
1916 jnz .L085cbc_dec_tail_partial
1920 .L085cbc_dec_tail_partial:
1936 .def __aesni_set_encrypt_key; .scl 3; .type 32; .endef
1938 __aesni_set_encrypt_key:
1951 jne .L089bad_keybits
1955 movups %xmm0,-16(%edx)
1956 .byte 102,15,58,223,200,1
1957 call .L091key_128_cold
1958 .byte 102,15,58,223,200,2
1960 .byte 102,15,58,223,200,4
1962 .byte 102,15,58,223,200,8
1964 .byte 102,15,58,223,200,16
1966 .byte 102,15,58,223,200,32
1968 .byte 102,15,58,223,200,64
1970 .byte 102,15,58,223,200,128
1972 .byte 102,15,58,223,200,27
1974 .byte 102,15,58,223,200,54
1985 shufps $16,%xmm0,%xmm4
1987 shufps $140,%xmm0,%xmm4
1989 shufps $255,%xmm1,%xmm1
1996 movups %xmm0,-16(%edx)
1997 .byte 102,15,58,223,202,1
1998 call .L093key_192a_cold
1999 .byte 102,15,58,223,202,2
2001 .byte 102,15,58,223,202,4
2003 .byte 102,15,58,223,202,8
2005 .byte 102,15,58,223,202,16
2007 .byte 102,15,58,223,202,32
2009 .byte 102,15,58,223,202,64
2011 .byte 102,15,58,223,202,128
2025 shufps $16,%xmm0,%xmm4
2028 shufps $140,%xmm0,%xmm4
2031 pshufd $85,%xmm1,%xmm1
2034 pshufd $255,%xmm0,%xmm3
2040 shufps $68,%xmm0,%xmm5
2042 shufps $78,%xmm2,%xmm3
2043 movups %xmm3,16(%edx)
2045 jmp .L096key_192b_warm
2048 movups 16(%eax),%xmm2
2051 movups %xmm0,-32(%edx)
2052 movups %xmm2,-16(%edx)
2053 .byte 102,15,58,223,202,1
2054 call .L097key_256a_cold
2055 .byte 102,15,58,223,200,1
2057 .byte 102,15,58,223,202,2
2059 .byte 102,15,58,223,200,2
2061 .byte 102,15,58,223,202,4
2063 .byte 102,15,58,223,200,4
2065 .byte 102,15,58,223,202,8
2067 .byte 102,15,58,223,200,8
2069 .byte 102,15,58,223,202,16
2071 .byte 102,15,58,223,200,16
2073 .byte 102,15,58,223,202,32
2075 .byte 102,15,58,223,200,32
2077 .byte 102,15,58,223,202,64
2088 shufps $16,%xmm0,%xmm4
2090 shufps $140,%xmm0,%xmm4
2092 shufps $255,%xmm1,%xmm1
2099 shufps $16,%xmm2,%xmm4
2101 shufps $140,%xmm2,%xmm4
2103 shufps $170,%xmm1,%xmm1
2114 .globl _aesni_set_encrypt_key
2115 .def _aesni_set_encrypt_key; .scl 2; .type 32; .endef
2117 _aesni_set_encrypt_key:
2118 .L_aesni_set_encrypt_key_begin:
2122 call __aesni_set_encrypt_key
2124 .globl _aesni_set_decrypt_key
2125 .def _aesni_set_decrypt_key; .scl 2; .type 32; .endef
2127 _aesni_set_decrypt_key:
2128 .L_aesni_set_decrypt_key_begin:
2132 call __aesni_set_encrypt_key
2136 jnz .L100dec_key_ret
2137 leal 16(%edx,%ecx,1),%eax
2144 .L101dec_key_inverse:
2147 .byte 102,15,56,219,192
2148 .byte 102,15,56,219,201
2151 movups %xmm0,16(%eax)
2152 movups %xmm1,-16(%edx)
2154 ja .L101dec_key_inverse
2156 .byte 102,15,56,219,192
2161 .byte 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69
2162 .byte 83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83
2163 .byte 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115
2164 .byte 115,108,46,111,114,103,62,0