2 .file "src/crypto/aes/asm/aesni-x86.S"
6 .type aesni_encrypt,@function
9 .L_aesni_encrypt_begin:
20 .byte 102,15,56,220,209
25 .byte 102,15,56,221,209
31 .size aesni_encrypt,.-.L_aesni_encrypt_begin
34 .type aesni_decrypt,@function
37 .L_aesni_decrypt_begin:
48 .byte 102,15,56,222,209
53 .byte 102,15,56,223,209
59 .size aesni_decrypt,.-.L_aesni_decrypt_begin
60 .hidden _aesni_encrypt2
61 .type _aesni_encrypt2,@function
70 leal 32(%edx,%ecx,1),%edx
74 .byte 102,15,56,220,209
75 .byte 102,15,56,220,217
76 movups (%edx,%ecx,1),%xmm1
78 .byte 102,15,56,220,208
79 .byte 102,15,56,220,216
80 movups -16(%edx,%ecx,1),%xmm0
82 .byte 102,15,56,220,209
83 .byte 102,15,56,220,217
84 .byte 102,15,56,221,208
85 .byte 102,15,56,221,216
87 .size _aesni_encrypt2,.-_aesni_encrypt2
88 .hidden _aesni_decrypt2
89 .type _aesni_decrypt2,@function
98 leal 32(%edx,%ecx,1),%edx
102 .byte 102,15,56,222,209
103 .byte 102,15,56,222,217
104 movups (%edx,%ecx,1),%xmm1
106 .byte 102,15,56,222,208
107 .byte 102,15,56,222,216
108 movups -16(%edx,%ecx,1),%xmm0
110 .byte 102,15,56,222,209
111 .byte 102,15,56,222,217
112 .byte 102,15,56,223,208
113 .byte 102,15,56,223,216
115 .size _aesni_decrypt2,.-_aesni_decrypt2
116 .hidden _aesni_encrypt3
117 .type _aesni_encrypt3,@function
122 movups 16(%edx),%xmm1
126 movups 32(%edx),%xmm0
127 leal 32(%edx,%ecx,1),%edx
131 .byte 102,15,56,220,209
132 .byte 102,15,56,220,217
133 .byte 102,15,56,220,225
134 movups (%edx,%ecx,1),%xmm1
136 .byte 102,15,56,220,208
137 .byte 102,15,56,220,216
138 .byte 102,15,56,220,224
139 movups -16(%edx,%ecx,1),%xmm0
141 .byte 102,15,56,220,209
142 .byte 102,15,56,220,217
143 .byte 102,15,56,220,225
144 .byte 102,15,56,221,208
145 .byte 102,15,56,221,216
146 .byte 102,15,56,221,224
148 .size _aesni_encrypt3,.-_aesni_encrypt3
149 .hidden _aesni_decrypt3
150 .type _aesni_decrypt3,@function
155 movups 16(%edx),%xmm1
159 movups 32(%edx),%xmm0
160 leal 32(%edx,%ecx,1),%edx
164 .byte 102,15,56,222,209
165 .byte 102,15,56,222,217
166 .byte 102,15,56,222,225
167 movups (%edx,%ecx,1),%xmm1
169 .byte 102,15,56,222,208
170 .byte 102,15,56,222,216
171 .byte 102,15,56,222,224
172 movups -16(%edx,%ecx,1),%xmm0
174 .byte 102,15,56,222,209
175 .byte 102,15,56,222,217
176 .byte 102,15,56,222,225
177 .byte 102,15,56,223,208
178 .byte 102,15,56,223,216
179 .byte 102,15,56,223,224
181 .size _aesni_decrypt3,.-_aesni_decrypt3
182 .hidden _aesni_encrypt4
183 .type _aesni_encrypt4,@function
187 movups 16(%edx),%xmm1
193 movups 32(%edx),%xmm0
194 leal 32(%edx,%ecx,1),%edx
199 .byte 102,15,56,220,209
200 .byte 102,15,56,220,217
201 .byte 102,15,56,220,225
202 .byte 102,15,56,220,233
203 movups (%edx,%ecx,1),%xmm1
205 .byte 102,15,56,220,208
206 .byte 102,15,56,220,216
207 .byte 102,15,56,220,224
208 .byte 102,15,56,220,232
209 movups -16(%edx,%ecx,1),%xmm0
211 .byte 102,15,56,220,209
212 .byte 102,15,56,220,217
213 .byte 102,15,56,220,225
214 .byte 102,15,56,220,233
215 .byte 102,15,56,221,208
216 .byte 102,15,56,221,216
217 .byte 102,15,56,221,224
218 .byte 102,15,56,221,232
220 .size _aesni_encrypt4,.-_aesni_encrypt4
221 .hidden _aesni_decrypt4
222 .type _aesni_decrypt4,@function
226 movups 16(%edx),%xmm1
232 movups 32(%edx),%xmm0
233 leal 32(%edx,%ecx,1),%edx
238 .byte 102,15,56,222,209
239 .byte 102,15,56,222,217
240 .byte 102,15,56,222,225
241 .byte 102,15,56,222,233
242 movups (%edx,%ecx,1),%xmm1
244 .byte 102,15,56,222,208
245 .byte 102,15,56,222,216
246 .byte 102,15,56,222,224
247 .byte 102,15,56,222,232
248 movups -16(%edx,%ecx,1),%xmm0
250 .byte 102,15,56,222,209
251 .byte 102,15,56,222,217
252 .byte 102,15,56,222,225
253 .byte 102,15,56,222,233
254 .byte 102,15,56,223,208
255 .byte 102,15,56,223,216
256 .byte 102,15,56,223,224
257 .byte 102,15,56,223,232
259 .size _aesni_decrypt4,.-_aesni_decrypt4
260 .hidden _aesni_encrypt6
261 .type _aesni_encrypt6,@function
266 movups 16(%edx),%xmm1
270 .byte 102,15,56,220,209
273 .byte 102,15,56,220,217
274 leal 32(%edx,%ecx,1),%edx
276 .byte 102,15,56,220,225
278 movups (%edx,%ecx,1),%xmm0
280 jmp .L008_aesni_encrypt6_inner
283 .byte 102,15,56,220,209
284 .byte 102,15,56,220,217
285 .byte 102,15,56,220,225
286 .L008_aesni_encrypt6_inner:
287 .byte 102,15,56,220,233
288 .byte 102,15,56,220,241
289 .byte 102,15,56,220,249
290 .L_aesni_encrypt6_enter:
291 movups (%edx,%ecx,1),%xmm1
293 .byte 102,15,56,220,208
294 .byte 102,15,56,220,216
295 .byte 102,15,56,220,224
296 .byte 102,15,56,220,232
297 .byte 102,15,56,220,240
298 .byte 102,15,56,220,248
299 movups -16(%edx,%ecx,1),%xmm0
301 .byte 102,15,56,220,209
302 .byte 102,15,56,220,217
303 .byte 102,15,56,220,225
304 .byte 102,15,56,220,233
305 .byte 102,15,56,220,241
306 .byte 102,15,56,220,249
307 .byte 102,15,56,221,208
308 .byte 102,15,56,221,216
309 .byte 102,15,56,221,224
310 .byte 102,15,56,221,232
311 .byte 102,15,56,221,240
312 .byte 102,15,56,221,248
314 .size _aesni_encrypt6,.-_aesni_encrypt6
315 .hidden _aesni_decrypt6
316 .type _aesni_decrypt6,@function
321 movups 16(%edx),%xmm1
325 .byte 102,15,56,222,209
328 .byte 102,15,56,222,217
329 leal 32(%edx,%ecx,1),%edx
331 .byte 102,15,56,222,225
333 movups (%edx,%ecx,1),%xmm0
335 jmp .L010_aesni_decrypt6_inner
338 .byte 102,15,56,222,209
339 .byte 102,15,56,222,217
340 .byte 102,15,56,222,225
341 .L010_aesni_decrypt6_inner:
342 .byte 102,15,56,222,233
343 .byte 102,15,56,222,241
344 .byte 102,15,56,222,249
345 .L_aesni_decrypt6_enter:
346 movups (%edx,%ecx,1),%xmm1
348 .byte 102,15,56,222,208
349 .byte 102,15,56,222,216
350 .byte 102,15,56,222,224
351 .byte 102,15,56,222,232
352 .byte 102,15,56,222,240
353 .byte 102,15,56,222,248
354 movups -16(%edx,%ecx,1),%xmm0
356 .byte 102,15,56,222,209
357 .byte 102,15,56,222,217
358 .byte 102,15,56,222,225
359 .byte 102,15,56,222,233
360 .byte 102,15,56,222,241
361 .byte 102,15,56,222,249
362 .byte 102,15,56,223,208
363 .byte 102,15,56,223,216
364 .byte 102,15,56,223,224
365 .byte 102,15,56,223,232
366 .byte 102,15,56,223,240
367 .byte 102,15,56,223,248
369 .size _aesni_decrypt6,.-_aesni_decrypt6
370 .globl aesni_ecb_encrypt
371 .hidden aesni_ecb_encrypt
372 .type aesni_ecb_encrypt,@function
375 .L_aesni_ecb_encrypt_begin:
395 movdqu 16(%esi),%xmm3
396 movdqu 32(%esi),%xmm4
397 movdqu 48(%esi),%xmm5
398 movdqu 64(%esi),%xmm6
399 movdqu 80(%esi),%xmm7
402 jmp .L015ecb_enc_loop6_enter
407 movups %xmm3,16(%edi)
408 movdqu 16(%esi),%xmm3
409 movups %xmm4,32(%edi)
410 movdqu 32(%esi),%xmm4
411 movups %xmm5,48(%edi)
412 movdqu 48(%esi),%xmm5
413 movups %xmm6,64(%edi)
414 movdqu 64(%esi),%xmm6
415 movups %xmm7,80(%edi)
417 movdqu 80(%esi),%xmm7
419 .L015ecb_enc_loop6_enter:
424 jnc .L016ecb_enc_loop6
426 movups %xmm3,16(%edi)
427 movups %xmm4,32(%edi)
428 movups %xmm5,48(%edi)
429 movups %xmm6,64(%edi)
430 movups %xmm7,80(%edi)
438 movups 16(%esi),%xmm3
440 movups 32(%esi),%xmm4
442 jb .L019ecb_enc_three
443 movups 48(%esi),%xmm5
445 movups 64(%esi),%xmm6
449 movups %xmm3,16(%edi)
450 movups %xmm4,32(%edi)
451 movups %xmm5,48(%edi)
452 movups %xmm6,64(%edi)
457 movups 16(%edx),%xmm1
461 .byte 102,15,56,220,209
466 .byte 102,15,56,221,209
473 movups %xmm3,16(%edi)
479 movups %xmm3,16(%edi)
480 movups %xmm4,32(%edi)
486 movups %xmm3,16(%edi)
487 movups %xmm4,32(%edi)
488 movups %xmm5,48(%edi)
497 movdqu 16(%esi),%xmm3
498 movdqu 32(%esi),%xmm4
499 movdqu 48(%esi),%xmm5
500 movdqu 64(%esi),%xmm6
501 movdqu 80(%esi),%xmm7
504 jmp .L023ecb_dec_loop6_enter
509 movups %xmm3,16(%edi)
510 movdqu 16(%esi),%xmm3
511 movups %xmm4,32(%edi)
512 movdqu 32(%esi),%xmm4
513 movups %xmm5,48(%edi)
514 movdqu 48(%esi),%xmm5
515 movups %xmm6,64(%edi)
516 movdqu 64(%esi),%xmm6
517 movups %xmm7,80(%edi)
519 movdqu 80(%esi),%xmm7
521 .L023ecb_dec_loop6_enter:
526 jnc .L024ecb_dec_loop6
528 movups %xmm3,16(%edi)
529 movups %xmm4,32(%edi)
530 movups %xmm5,48(%edi)
531 movups %xmm6,64(%edi)
532 movups %xmm7,80(%edi)
540 movups 16(%esi),%xmm3
542 movups 32(%esi),%xmm4
544 jb .L027ecb_dec_three
545 movups 48(%esi),%xmm5
547 movups 64(%esi),%xmm6
551 movups %xmm3,16(%edi)
552 movups %xmm4,32(%edi)
553 movups %xmm5,48(%edi)
554 movups %xmm6,64(%edi)
559 movups 16(%edx),%xmm1
563 .byte 102,15,56,222,209
568 .byte 102,15,56,223,209
575 movups %xmm3,16(%edi)
581 movups %xmm3,16(%edi)
582 movups %xmm4,32(%edi)
588 movups %xmm3,16(%edi)
589 movups %xmm4,32(%edi)
590 movups %xmm5,48(%edi)
605 .size aesni_ecb_encrypt,.-.L_aesni_ecb_encrypt_begin
606 .globl aesni_ccm64_encrypt_blocks
607 .hidden aesni_ccm64_encrypt_blocks
608 .type aesni_ccm64_encrypt_blocks,@function
610 aesni_ccm64_encrypt_blocks:
611 .L_aesni_ccm64_encrypt_blocks_begin:
629 movl $202182159,(%esp)
630 movl $134810123,4(%esp)
631 movl $67438087,8(%esp)
644 leal 32(%edx,%ecx,1),%edx
646 .byte 102,15,56,0,253
647 .L030ccm64_enc_outer:
652 movups 16(%ebp),%xmm1
655 movups 32(%ebp),%xmm0
656 .L031ccm64_enc2_loop:
657 .byte 102,15,56,220,209
658 .byte 102,15,56,220,217
659 movups (%edx,%ecx,1),%xmm1
661 .byte 102,15,56,220,208
662 .byte 102,15,56,220,216
663 movups -16(%edx,%ecx,1),%xmm0
664 jnz .L031ccm64_enc2_loop
665 .byte 102,15,56,220,209
666 .byte 102,15,56,220,217
669 .byte 102,15,56,221,208
670 .byte 102,15,56,221,216
675 .byte 102,15,56,0,213
677 jnz .L030ccm64_enc_outer
694 .size aesni_ccm64_encrypt_blocks,.-.L_aesni_ccm64_encrypt_blocks_begin
695 .globl aesni_ccm64_decrypt_blocks
696 .hidden aesni_ccm64_decrypt_blocks
697 .type aesni_ccm64_decrypt_blocks,@function
699 aesni_ccm64_decrypt_blocks:
700 .L_aesni_ccm64_decrypt_blocks_begin:
718 movl $202182159,(%esp)
719 movl $134810123,4(%esp)
720 movl $67438087,8(%esp)
732 .byte 102,15,56,0,253
734 movups 16(%edx),%xmm1
738 .byte 102,15,56,220,209
743 .byte 102,15,56,221,209
750 leal 32(%ebp,%ebx,1),%edx
752 jmp .L033ccm64_dec_outer
754 .L033ccm64_dec_outer:
759 .byte 102,15,56,0,213
761 jz .L034ccm64_dec_break
764 movups 16(%ebp),%xmm1
768 movups 32(%ebp),%xmm0
769 .L035ccm64_dec2_loop:
770 .byte 102,15,56,220,209
771 .byte 102,15,56,220,217
772 movups (%edx,%ecx,1),%xmm1
774 .byte 102,15,56,220,208
775 .byte 102,15,56,220,216
776 movups -16(%edx,%ecx,1),%xmm0
777 jnz .L035ccm64_dec2_loop
780 .byte 102,15,56,220,209
781 .byte 102,15,56,220,217
782 .byte 102,15,56,221,208
783 .byte 102,15,56,221,216
785 jmp .L033ccm64_dec_outer
787 .L034ccm64_dec_break:
791 movups 16(%edx),%xmm1
796 .byte 102,15,56,220,217
801 .byte 102,15,56,221,217
818 .size aesni_ccm64_decrypt_blocks,.-.L_aesni_ccm64_decrypt_blocks_begin
819 .globl aesni_ctr32_encrypt_blocks
820 .hidden aesni_ctr32_encrypt_blocks
821 .type aesni_ctr32_encrypt_blocks,@function
823 aesni_ctr32_encrypt_blocks:
824 .L_aesni_ctr32_encrypt_blocks_begin:
839 je .L037ctr32_one_shortcut
841 movl $202182159,(%esp)
842 movl $134810123,4(%esp)
843 movl $67438087,8(%esp)
851 .byte 102,15,58,22,251,3
852 .byte 102,15,58,34,253,3
858 .byte 102,15,58,34,195,0
860 .byte 102,15,58,34,205,0
862 .byte 102,15,58,34,195,1
864 .byte 102,15,58,34,205,1
866 .byte 102,15,58,34,195,2
868 .byte 102,15,58,34,205,2
869 movdqa %xmm0,48(%esp)
870 .byte 102,15,56,0,194
872 movdqa %xmm1,64(%esp)
873 .byte 102,15,56,0,202
874 pshufd $192,%xmm0,%xmm2
875 pshufd $128,%xmm0,%xmm3
881 movdqa %xmm7,32(%esp)
884 leal 32(%edx,%ecx,1),%edx
889 pshufd $64,%xmm0,%xmm4
890 movdqa 32(%esp),%xmm0
891 pshufd $192,%xmm1,%xmm5
893 pshufd $128,%xmm1,%xmm6
895 pshufd $64,%xmm1,%xmm7
896 movups 16(%ebp),%xmm1
899 .byte 102,15,56,220,209
902 .byte 102,15,56,220,217
903 movups 32(%ebp),%xmm0
905 .byte 102,15,56,220,225
906 .byte 102,15,56,220,233
907 .byte 102,15,56,220,241
908 .byte 102,15,56,220,249
909 call .L_aesni_encrypt6_enter
911 movups 16(%esi),%xmm0
913 movups 32(%esi),%xmm1
916 movdqa 16(%esp),%xmm0
918 movdqa 64(%esp),%xmm1
919 movups %xmm3,16(%edi)
920 movups %xmm4,32(%edi)
924 movups 48(%esi),%xmm3
925 movups 64(%esi),%xmm4
927 movups 80(%esi),%xmm3
929 movdqa %xmm0,48(%esp)
930 .byte 102,15,56,0,194
932 movups %xmm5,48(%edi)
934 movdqa %xmm1,64(%esp)
935 .byte 102,15,56,0,202
936 movups %xmm6,64(%edi)
937 pshufd $192,%xmm0,%xmm2
938 movups %xmm7,80(%edi)
940 pshufd $128,%xmm0,%xmm3
953 pshufd $64,%xmm0,%xmm4
956 pshufd $192,%xmm1,%xmm5
960 pshufd $128,%xmm1,%xmm6
966 movups 16(%esi),%xmm0
968 movups 32(%esi),%xmm1
970 movups 48(%esi),%xmm0
972 movups 64(%esi),%xmm1
976 movups %xmm3,16(%edi)
977 movups %xmm4,32(%edi)
978 movups %xmm5,48(%edi)
979 movups %xmm6,64(%edi)
982 .L037ctr32_one_shortcut:
987 movups 16(%edx),%xmm1
991 .byte 102,15,56,220,209
996 .byte 102,15,56,221,209
1003 call _aesni_encrypt2
1005 movups 16(%esi),%xmm6
1009 movups %xmm3,16(%edi)
1013 call _aesni_encrypt3
1015 movups 16(%esi),%xmm6
1017 movups 32(%esi),%xmm7
1021 movups %xmm3,16(%edi)
1022 movups %xmm4,32(%edi)
1026 call _aesni_encrypt4
1028 movups 16(%esi),%xmm7
1029 movups 32(%esi),%xmm1
1031 movups 48(%esi),%xmm0
1035 movups %xmm3,16(%edi)
1037 movups %xmm4,32(%edi)
1038 movups %xmm5,48(%edi)
1045 movdqa %xmm0,32(%esp)
1047 movdqa %xmm0,48(%esp)
1049 movdqa %xmm0,64(%esp)
1057 .size aesni_ctr32_encrypt_blocks,.-.L_aesni_ctr32_encrypt_blocks_begin
1058 .globl aesni_xts_encrypt
1059 .hidden aesni_xts_encrypt
1060 .type aesni_xts_encrypt,@function
1063 .L_aesni_xts_encrypt_begin:
1073 movups 16(%edx),%xmm1
1077 .byte 102,15,56,220,209
1081 jnz .L046enc1_loop_8
1082 .byte 102,15,56,221,209
1099 movdqa 96(%esp),%xmm3
1105 jc .L047xts_enc_short
1109 leal 32(%edx,%ecx,1),%edx
1110 jmp .L048xts_enc_loop6
1113 pshufd $19,%xmm0,%xmm2
1120 pshufd $19,%xmm0,%xmm2
1122 movdqa %xmm1,16(%esp)
1127 pshufd $19,%xmm0,%xmm2
1129 movdqa %xmm1,32(%esp)
1134 pshufd $19,%xmm0,%xmm2
1136 movdqa %xmm1,48(%esp)
1141 pshufd $19,%xmm0,%xmm7
1142 movdqa %xmm1,64(%esp)
1149 movdqu 16(%esi),%xmm3
1151 movdqu 32(%esi),%xmm4
1153 movdqu 48(%esi),%xmm5
1155 movdqu 64(%esi),%xmm6
1157 movdqu 80(%esi),%xmm1
1161 movdqa %xmm7,80(%esp)
1163 movups 16(%ebp),%xmm1
1166 .byte 102,15,56,220,209
1169 .byte 102,15,56,220,217
1171 movups 32(%ebp),%xmm0
1172 .byte 102,15,56,220,225
1173 .byte 102,15,56,220,233
1174 .byte 102,15,56,220,241
1175 .byte 102,15,56,220,249
1176 call .L_aesni_encrypt6_enter
1177 movdqa 80(%esp),%xmm1
1181 xorps 16(%esp),%xmm3
1183 xorps 32(%esp),%xmm4
1184 movups %xmm3,16(%edi)
1185 xorps 48(%esp),%xmm5
1186 movups %xmm4,32(%edi)
1187 xorps 64(%esp),%xmm6
1188 movups %xmm5,48(%edi)
1190 movups %xmm6,64(%edi)
1191 pshufd $19,%xmm0,%xmm2
1192 movups %xmm7,80(%edi)
1194 movdqa 96(%esp),%xmm3
1201 jnc .L048xts_enc_loop6
1207 jz .L049xts_enc_done6x
1211 pshufd $19,%xmm0,%xmm2
1218 pshufd $19,%xmm0,%xmm2
1226 jb .L052xts_enc_three
1227 pshufd $19,%xmm0,%xmm2
1235 movdqa %xmm6,16(%esp)
1236 je .L053xts_enc_four
1237 movdqa %xmm7,32(%esp)
1238 pshufd $19,%xmm0,%xmm7
1239 movdqa %xmm1,48(%esp)
1244 movdqu 16(%esi),%xmm3
1245 movdqu 32(%esi),%xmm4
1247 movdqu 48(%esi),%xmm5
1249 movdqu 64(%esi),%xmm6
1253 movdqa %xmm7,64(%esp)
1255 call _aesni_encrypt6
1256 movaps 64(%esp),%xmm1
1258 xorps 16(%esp),%xmm3
1259 xorps 32(%esp),%xmm4
1261 xorps 48(%esp),%xmm5
1262 movups %xmm3,16(%edi)
1264 movups %xmm4,32(%edi)
1265 movups %xmm5,48(%edi)
1266 movups %xmm6,64(%edi)
1268 jmp .L054xts_enc_done
1275 movups 16(%edx),%xmm1
1279 .byte 102,15,56,220,209
1283 jnz .L055enc1_loop_9
1284 .byte 102,15,56,221,209
1289 jmp .L054xts_enc_done
1294 movups 16(%esi),%xmm3
1298 call _aesni_encrypt2
1302 movups %xmm3,16(%edi)
1305 jmp .L054xts_enc_done
1310 movups 16(%esi),%xmm3
1311 movups 32(%esi),%xmm4
1316 call _aesni_encrypt3
1321 movups %xmm3,16(%edi)
1322 movups %xmm4,32(%edi)
1325 jmp .L054xts_enc_done
1330 movups 16(%esi),%xmm3
1331 movups 32(%esi),%xmm4
1333 movups 48(%esi),%xmm5
1335 xorps 16(%esp),%xmm3
1338 call _aesni_encrypt4
1340 xorps 16(%esp),%xmm3
1344 movups %xmm3,16(%edi)
1345 movups %xmm4,32(%edi)
1346 movups %xmm5,48(%edi)
1349 jmp .L054xts_enc_done
1351 .L049xts_enc_done6x:
1357 jmp .L057xts_enc_steal
1366 pshufd $19,%xmm0,%xmm5
1372 movzbl -16(%edi),%edx
1378 jnz .L057xts_enc_steal
1382 movups -16(%edi),%xmm2
1385 movups 16(%edx),%xmm1
1389 .byte 102,15,56,220,209
1393 jnz .L058enc1_loop_10
1394 .byte 102,15,56,221,209
1396 movups %xmm2,-16(%edi)
1403 movdqa %xmm0,16(%esp)
1405 movdqa %xmm0,32(%esp)
1407 movdqa %xmm0,48(%esp)
1409 movdqa %xmm0,64(%esp)
1411 movdqa %xmm0,80(%esp)
1418 .size aesni_xts_encrypt,.-.L_aesni_xts_encrypt_begin
1419 .globl aesni_xts_decrypt
1420 .hidden aesni_xts_decrypt
1421 .type aesni_xts_decrypt,@function
1424 .L_aesni_xts_decrypt_begin:
1434 movups 16(%edx),%xmm1
1438 .byte 102,15,56,220,209
1442 jnz .L059enc1_loop_11
1443 .byte 102,15,56,221,209
1467 movdqa 96(%esp),%xmm3
1471 jc .L060xts_dec_short
1475 leal 32(%edx,%ecx,1),%edx
1476 jmp .L061xts_dec_loop6
1479 pshufd $19,%xmm0,%xmm2
1486 pshufd $19,%xmm0,%xmm2
1488 movdqa %xmm1,16(%esp)
1493 pshufd $19,%xmm0,%xmm2
1495 movdqa %xmm1,32(%esp)
1500 pshufd $19,%xmm0,%xmm2
1502 movdqa %xmm1,48(%esp)
1507 pshufd $19,%xmm0,%xmm7
1508 movdqa %xmm1,64(%esp)
1515 movdqu 16(%esi),%xmm3
1517 movdqu 32(%esi),%xmm4
1519 movdqu 48(%esi),%xmm5
1521 movdqu 64(%esi),%xmm6
1523 movdqu 80(%esi),%xmm1
1527 movdqa %xmm7,80(%esp)
1529 movups 16(%ebp),%xmm1
1532 .byte 102,15,56,222,209
1535 .byte 102,15,56,222,217
1537 movups 32(%ebp),%xmm0
1538 .byte 102,15,56,222,225
1539 .byte 102,15,56,222,233
1540 .byte 102,15,56,222,241
1541 .byte 102,15,56,222,249
1542 call .L_aesni_decrypt6_enter
1543 movdqa 80(%esp),%xmm1
1547 xorps 16(%esp),%xmm3
1549 xorps 32(%esp),%xmm4
1550 movups %xmm3,16(%edi)
1551 xorps 48(%esp),%xmm5
1552 movups %xmm4,32(%edi)
1553 xorps 64(%esp),%xmm6
1554 movups %xmm5,48(%edi)
1556 movups %xmm6,64(%edi)
1557 pshufd $19,%xmm0,%xmm2
1558 movups %xmm7,80(%edi)
1560 movdqa 96(%esp),%xmm3
1567 jnc .L061xts_dec_loop6
1573 jz .L062xts_dec_done6x
1577 pshufd $19,%xmm0,%xmm2
1584 pshufd $19,%xmm0,%xmm2
1592 jb .L065xts_dec_three
1593 pshufd $19,%xmm0,%xmm2
1601 movdqa %xmm6,16(%esp)
1602 je .L066xts_dec_four
1603 movdqa %xmm7,32(%esp)
1604 pshufd $19,%xmm0,%xmm7
1605 movdqa %xmm1,48(%esp)
1610 movdqu 16(%esi),%xmm3
1611 movdqu 32(%esi),%xmm4
1613 movdqu 48(%esi),%xmm5
1615 movdqu 64(%esi),%xmm6
1619 movdqa %xmm7,64(%esp)
1621 call _aesni_decrypt6
1622 movaps 64(%esp),%xmm1
1624 xorps 16(%esp),%xmm3
1625 xorps 32(%esp),%xmm4
1627 xorps 48(%esp),%xmm5
1628 movups %xmm3,16(%edi)
1630 movups %xmm4,32(%edi)
1631 movups %xmm5,48(%edi)
1632 movups %xmm6,64(%edi)
1634 jmp .L067xts_dec_done
1641 movups 16(%edx),%xmm1
1645 .byte 102,15,56,222,209
1649 jnz .L068dec1_loop_12
1650 .byte 102,15,56,223,209
1655 jmp .L067xts_dec_done
1660 movups 16(%esi),%xmm3
1664 call _aesni_decrypt2
1668 movups %xmm3,16(%edi)
1671 jmp .L067xts_dec_done
1676 movups 16(%esi),%xmm3
1677 movups 32(%esi),%xmm4
1682 call _aesni_decrypt3
1687 movups %xmm3,16(%edi)
1688 movups %xmm4,32(%edi)
1691 jmp .L067xts_dec_done
1696 movups 16(%esi),%xmm3
1697 movups 32(%esi),%xmm4
1699 movups 48(%esi),%xmm5
1701 xorps 16(%esp),%xmm3
1704 call _aesni_decrypt4
1706 xorps 16(%esp),%xmm3
1710 movups %xmm3,16(%edi)
1711 movups %xmm4,32(%edi)
1712 movups %xmm5,48(%edi)
1715 jmp .L067xts_dec_done
1717 .L062xts_dec_done6x:
1722 jmp .L070xts_dec_only_one_more
1731 pshufd $19,%xmm0,%xmm2
1733 movdqa 96(%esp),%xmm3
1738 .L070xts_dec_only_one_more:
1739 pshufd $19,%xmm0,%xmm5
1749 movups 16(%edx),%xmm1
1753 .byte 102,15,56,222,209
1757 jnz .L071dec1_loop_13
1758 .byte 102,15,56,223,209
1762 movzbl 16(%esi),%ecx
1769 jnz .L072xts_dec_steal
1776 movups 16(%edx),%xmm1
1780 .byte 102,15,56,222,209
1784 jnz .L073dec1_loop_14
1785 .byte 102,15,56,223,209
1794 movdqa %xmm0,16(%esp)
1796 movdqa %xmm0,32(%esp)
1798 movdqa %xmm0,48(%esp)
1800 movdqa %xmm0,64(%esp)
1802 movdqa %xmm0,80(%esp)
1809 .size aesni_xts_decrypt,.-.L_aesni_xts_decrypt_begin
1810 .globl aesni_cbc_encrypt
1811 .hidden aesni_cbc_encrypt
1812 .type aesni_cbc_encrypt,@function
1815 .L_aesni_cbc_encrypt_begin:
1840 jb .L076cbc_enc_tail
1842 jmp .L077cbc_enc_loop
1848 movups 16(%edx),%xmm1
1853 .byte 102,15,56,220,209
1857 jnz .L078enc1_loop_15
1858 .byte 102,15,56,221,209
1864 jnc .L077cbc_enc_loop
1866 jnz .L076cbc_enc_tail
1881 jmp .L077cbc_enc_loop
1885 jbe .L080cbc_dec_tail
1888 jmp .L081cbc_dec_loop6_enter
1894 .L081cbc_dec_loop6_enter:
1896 movdqu 16(%esi),%xmm3
1897 movdqu 32(%esi),%xmm4
1898 movdqu 48(%esi),%xmm5
1899 movdqu 64(%esi),%xmm6
1900 movdqu 80(%esi),%xmm7
1901 call _aesni_decrypt6
1903 movups 16(%esi),%xmm0
1906 movups 32(%esi),%xmm1
1908 movups 48(%esi),%xmm0
1910 movups 64(%esi),%xmm1
1912 movups 80(%esi),%xmm0
1915 movups %xmm3,16(%edi)
1917 movups %xmm4,32(%edi)
1919 movups %xmm5,48(%edi)
1921 movups %xmm6,64(%edi)
1924 ja .L082cbc_dec_loop6
1928 jle .L083cbc_dec_clear_tail_collected
1935 jbe .L084cbc_dec_one
1936 movups 16(%esi),%xmm3
1939 jbe .L085cbc_dec_two
1940 movups 32(%esi),%xmm4
1942 jbe .L086cbc_dec_three
1943 movups 48(%esi),%xmm5
1945 jbe .L087cbc_dec_four
1946 movups 64(%esi),%xmm6
1950 call _aesni_decrypt6
1952 movups 16(%esi),%xmm0
1955 movups 32(%esi),%xmm1
1957 movups 48(%esi),%xmm0
1959 movups 64(%esi),%xmm7
1962 movups %xmm3,16(%edi)
1964 movups %xmm4,32(%edi)
1966 movups %xmm5,48(%edi)
1972 jmp .L088cbc_dec_tail_collected
1976 movups 16(%edx),%xmm1
1980 .byte 102,15,56,222,209
1984 jnz .L089dec1_loop_16
1985 .byte 102,15,56,223,209
1989 jmp .L088cbc_dec_tail_collected
1992 call _aesni_decrypt2
2001 jmp .L088cbc_dec_tail_collected
2004 call _aesni_decrypt3
2011 movups %xmm3,16(%edi)
2014 movups 32(%esi),%xmm7
2016 jmp .L088cbc_dec_tail_collected
2019 call _aesni_decrypt4
2020 movups 16(%esi),%xmm1
2021 movups 32(%esi),%xmm0
2023 movups 48(%esi),%xmm7
2027 movups %xmm3,16(%edi)
2030 movups %xmm4,32(%edi)
2036 jmp .L088cbc_dec_tail_collected
2038 .L083cbc_dec_clear_tail_collected:
2043 .L088cbc_dec_tail_collected:
2045 jnz .L090cbc_dec_tail_partial
2050 .L090cbc_dec_tail_partial:
2071 .size aesni_cbc_encrypt,.-.L_aesni_cbc_encrypt_begin
2072 .hidden _aesni_set_encrypt_key
2073 .type _aesni_set_encrypt_key,@function
2075 _aesni_set_encrypt_key:
2085 leal .Lkey_const-.L092pic(%ebx),%ebx
2086 leal OPENSSL_ia32cap_P-.Lkey_const(%ebx),%ebp
2091 andl $268437504,%ebp
2097 jne .L095bad_keybits
2100 cmpl $268435456,%ebp
2101 je .L09710rounds_alt
2103 movups %xmm0,-16(%edx)
2104 .byte 102,15,58,223,200,1
2105 call .L098key_128_cold
2106 .byte 102,15,58,223,200,2
2108 .byte 102,15,58,223,200,4
2110 .byte 102,15,58,223,200,8
2112 .byte 102,15,58,223,200,16
2114 .byte 102,15,58,223,200,32
2116 .byte 102,15,58,223,200,64
2118 .byte 102,15,58,223,200,128
2120 .byte 102,15,58,223,200,27
2122 .byte 102,15,58,223,200,54
2132 shufps $16,%xmm0,%xmm4
2134 shufps $140,%xmm0,%xmm4
2136 shufps $255,%xmm1,%xmm1
2143 movdqa 32(%ebx),%xmm4
2145 movdqu %xmm0,-16(%edx)
2147 .byte 102,15,56,0,197
2148 .byte 102,15,56,221,196
2159 movdqu %xmm0,-16(%edx)
2162 jnz .L101loop_key128
2163 movdqa 48(%ebx),%xmm4
2164 .byte 102,15,56,0,197
2165 .byte 102,15,56,221,196
2177 .byte 102,15,56,0,197
2178 .byte 102,15,56,221,196
2187 movdqu %xmm0,16(%edx)
2194 cmpl $268435456,%ebp
2195 je .L10212rounds_alt
2197 movups %xmm0,-16(%edx)
2198 .byte 102,15,58,223,202,1
2199 call .L103key_192a_cold
2200 .byte 102,15,58,223,202,2
2202 .byte 102,15,58,223,202,4
2204 .byte 102,15,58,223,202,8
2206 .byte 102,15,58,223,202,16
2208 .byte 102,15,58,223,202,32
2210 .byte 102,15,58,223,202,64
2212 .byte 102,15,58,223,202,128
2225 shufps $16,%xmm0,%xmm4
2228 shufps $140,%xmm0,%xmm4
2231 pshufd $85,%xmm1,%xmm1
2234 pshufd $255,%xmm0,%xmm3
2240 shufps $68,%xmm0,%xmm5
2242 shufps $78,%xmm2,%xmm3
2243 movups %xmm3,16(%edx)
2245 jmp .L106key_192b_warm
2248 movdqa 16(%ebx),%xmm5
2249 movdqa 32(%ebx),%xmm4
2251 movdqu %xmm0,-16(%edx)
2255 .byte 102,15,56,0,213
2256 .byte 102,15,56,221,212
2266 pshufd $255,%xmm0,%xmm3
2272 movdqu %xmm0,-16(%edx)
2274 jnz .L107loop_key192
2280 movups 16(%eax),%xmm2
2282 cmpl $268435456,%ebp
2283 je .L10814rounds_alt
2285 movups %xmm0,-32(%edx)
2286 movups %xmm2,-16(%edx)
2287 .byte 102,15,58,223,202,1
2288 call .L109key_256a_cold
2289 .byte 102,15,58,223,200,1
2291 .byte 102,15,58,223,202,2
2293 .byte 102,15,58,223,200,2
2295 .byte 102,15,58,223,202,4
2297 .byte 102,15,58,223,200,4
2299 .byte 102,15,58,223,202,8
2301 .byte 102,15,58,223,200,8
2303 .byte 102,15,58,223,202,16
2305 .byte 102,15,58,223,200,16
2307 .byte 102,15,58,223,202,32
2309 .byte 102,15,58,223,200,32
2311 .byte 102,15,58,223,202,64
2322 shufps $16,%xmm0,%xmm4
2324 shufps $140,%xmm0,%xmm4
2326 shufps $255,%xmm1,%xmm1
2333 shufps $16,%xmm2,%xmm4
2335 shufps $140,%xmm2,%xmm4
2337 shufps $170,%xmm1,%xmm1
2343 movdqa 32(%ebx),%xmm4
2345 movdqu %xmm0,-32(%edx)
2347 movdqu %xmm2,-16(%edx)
2349 .byte 102,15,56,0,213
2350 .byte 102,15,56,221,212
2363 pshufd $255,%xmm0,%xmm2
2365 .byte 102,15,56,221,211
2374 movdqu %xmm2,16(%edx)
2377 jmp .L112loop_key256
2405 .size _aesni_set_encrypt_key,.-_aesni_set_encrypt_key
2406 .globl aesni_set_encrypt_key
2407 .hidden aesni_set_encrypt_key
2408 .type aesni_set_encrypt_key,@function
2410 aesni_set_encrypt_key:
2411 .L_aesni_set_encrypt_key_begin:
2415 call _aesni_set_encrypt_key
2417 .size aesni_set_encrypt_key,.-.L_aesni_set_encrypt_key_begin
2418 .globl aesni_set_decrypt_key
2419 .hidden aesni_set_decrypt_key
2420 .type aesni_set_decrypt_key,@function
2422 aesni_set_decrypt_key:
2423 .L_aesni_set_decrypt_key_begin:
2427 call _aesni_set_encrypt_key
2431 jnz .L114dec_key_ret
2432 leal 16(%edx,%ecx,1),%eax
2439 .L115dec_key_inverse:
2442 .byte 102,15,56,219,192
2443 .byte 102,15,56,219,201
2446 movups %xmm0,16(%eax)
2447 movups %xmm1,-16(%edx)
2449 ja .L115dec_key_inverse
2451 .byte 102,15,56,219,192
2458 .size aesni_set_decrypt_key,.-.L_aesni_set_decrypt_key_begin
2461 .long 202313229,202313229,202313229,202313229
2462 .long 67569157,67569157,67569157,67569157
2465 .byte 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69
2466 .byte 83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83
2467 .byte 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115
2468 .byte 115,108,46,111,114,103,62,0