5 section .text code
align=64
7 EXTERN OPENSSL_ia32cap_P
12 movups xmm2
,XMMWORD
[rcx
]
14 movups xmm0
,XMMWORD
[r8
]
15 movups xmm1
,XMMWORD
[16+r8
]
21 movups xmm1
,XMMWORD
[r8
]
23 jnz NEAR $L$oop_enc1_1
27 movups XMMWORD
[rdx
],xmm2
36 movups xmm2
,XMMWORD
[rcx
]
38 movups xmm0
,XMMWORD
[r8
]
39 movups xmm1
,XMMWORD
[16+r8
]
45 movups xmm1
,XMMWORD
[r8
]
47 jnz NEAR $L$oop_dec1_2
51 movups XMMWORD
[rdx
],xmm2
58 movups xmm0
,XMMWORD
[rcx
]
60 movups xmm1
,XMMWORD
[16+rcx
]
63 movups xmm0
,XMMWORD
[32+rcx
]
64 lea rcx
,[32+rax
*1+rcx
]
71 movups xmm1
,XMMWORD
[rax
*1+rcx
]
75 movups xmm0
,XMMWORD
[((-16))+rax
*1+rcx
]
87 movups xmm0
,XMMWORD
[rcx
]
89 movups xmm1
,XMMWORD
[16+rcx
]
92 movups xmm0
,XMMWORD
[32+rcx
]
93 lea rcx
,[32+rax
*1+rcx
]
100 movups xmm1
,XMMWORD
[rax
*1+rcx
]
104 movups xmm0
,XMMWORD
[((-16))+rax
*1+rcx
]
105 jnz NEAR $L
$dec_loop
2
116 movups xmm0
,XMMWORD
[rcx
]
118 movups xmm1
,XMMWORD
[16+rcx
]
122 movups xmm0
,XMMWORD
[32+rcx
]
123 lea rcx
,[32+rax
*1+rcx
]
131 movups xmm1
,XMMWORD
[rax
*1+rcx
]
136 movups xmm0
,XMMWORD
[((-16))+rax
*1+rcx
]
137 jnz NEAR $L
$enc_loop
3
150 movups xmm0
,XMMWORD
[rcx
]
152 movups xmm1
,XMMWORD
[16+rcx
]
156 movups xmm0
,XMMWORD
[32+rcx
]
157 lea rcx
,[32+rax
*1+rcx
]
165 movups xmm1
,XMMWORD
[rax
*1+rcx
]
170 movups xmm0
,XMMWORD
[((-16))+rax
*1+rcx
]
171 jnz NEAR $L
$dec_loop
3
184 movups xmm0
,XMMWORD
[rcx
]
186 movups xmm1
,XMMWORD
[16+rcx
]
191 movups xmm0
,XMMWORD
[32+rcx
]
192 lea rcx
,[32+rax
*1+rcx
]
202 movups xmm1
,XMMWORD
[rax
*1+rcx
]
208 movups xmm0
,XMMWORD
[((-16))+rax
*1+rcx
]
209 jnz NEAR $L
$enc_loop
4
224 movups xmm0
,XMMWORD
[rcx
]
226 movups xmm1
,XMMWORD
[16+rcx
]
231 movups xmm0
,XMMWORD
[32+rcx
]
232 lea rcx
,[32+rax
*1+rcx
]
242 movups xmm1
,XMMWORD
[rax
*1+rcx
]
248 movups xmm0
,XMMWORD
[((-16))+rax
*1+rcx
]
249 jnz NEAR $L
$dec_loop
4
264 movups xmm0
,XMMWORD
[rcx
]
266 movups xmm1
,XMMWORD
[16+rcx
]
271 lea rcx
,[32+rax
*1+rcx
]
278 movups xmm0
,XMMWORD
[rax
*1+rcx
]
280 jmp NEAR $L
$enc_loop
6_enter
290 movups xmm1
,XMMWORD
[rax
*1+rcx
]
298 movups xmm0
,XMMWORD
[((-16))+rax
*1+rcx
]
299 jnz NEAR $L
$enc_loop
6
318 movups xmm0
,XMMWORD
[rcx
]
320 movups xmm1
,XMMWORD
[16+rcx
]
325 lea rcx
,[32+rax
*1+rcx
]
332 movups xmm0
,XMMWORD
[rax
*1+rcx
]
334 jmp NEAR $L
$dec_loop
6_enter
344 movups xmm1
,XMMWORD
[rax
*1+rcx
]
352 movups xmm0
,XMMWORD
[((-16))+rax
*1+rcx
]
353 jnz NEAR $L
$dec_loop
6
372 movups xmm0
,XMMWORD
[rcx
]
374 movups xmm1
,XMMWORD
[16+rcx
]
380 lea rcx
,[32+rax
*1+rcx
]
387 movups xmm0
,XMMWORD
[rax
*1+rcx
]
389 jmp NEAR $L
$enc_loop
8_inner
399 DB 102,68,15,56,220,193
400 DB 102,68,15,56,220,201
402 movups xmm1
,XMMWORD
[rax
*1+rcx
]
410 DB 102,68,15,56,220,192
411 DB 102,68,15,56,220,200
412 movups xmm0
,XMMWORD
[((-16))+rax
*1+rcx
]
413 jnz NEAR $L
$enc_loop
8
421 DB 102,68,15,56,220,193
422 DB 102,68,15,56,220,201
429 DB 102,68,15,56,221,192
430 DB 102,68,15,56,221,200
436 movups xmm0
,XMMWORD
[rcx
]
438 movups xmm1
,XMMWORD
[16+rcx
]
444 lea rcx
,[32+rax
*1+rcx
]
451 movups xmm0
,XMMWORD
[rax
*1+rcx
]
453 jmp NEAR $L
$dec_loop
8_inner
463 DB 102,68,15,56,222,193
464 DB 102,68,15,56,222,201
466 movups xmm1
,XMMWORD
[rax
*1+rcx
]
474 DB 102,68,15,56,222,192
475 DB 102,68,15,56,222,200
476 movups xmm0
,XMMWORD
[((-16))+rax
*1+rcx
]
477 jnz NEAR $L
$dec_loop
8
485 DB 102,68,15,56,222,193
486 DB 102,68,15,56,222,201
493 DB 102,68,15,56,223,192
494 DB 102,68,15,56,223,200
497 global aesni_ecb_encrypt
501 mov QWORD[8+rsp
],rdi
;WIN64 prologue
502 mov QWORD[16+rsp
],rsi
504 $L$
SEH_begin_aesni_ecb_encrypt:
512 lea rsp
,[((-88))+rsp
]
513 movaps XMMWORD
[rsp
],xmm6
514 movaps XMMWORD
[16+rsp
],xmm7
515 movaps XMMWORD
[32+rsp
],xmm8
516 movaps XMMWORD
[48+rsp
],xmm9
521 mov eax,DWORD[240+rcx
]
522 movups xmm0
,XMMWORD
[rcx
]
526 jz NEAR $L
$ecb_decrypt
529 jb NEAR $L
$ecb_enc_tail
531 movdqu xmm2
,XMMWORD
[rdi
]
532 movdqu xmm3
,XMMWORD
[16+rdi
]
533 movdqu xmm4
,XMMWORD
[32+rdi
]
534 movdqu xmm5
,XMMWORD
[48+rdi
]
535 movdqu xmm6
,XMMWORD
[64+rdi
]
536 movdqu xmm7
,XMMWORD
[80+rdi
]
537 movdqu xmm8
,XMMWORD
[96+rdi
]
538 movdqu xmm9
,XMMWORD
[112+rdi
]
541 jmp NEAR $L
$ecb_enc_loop
8_enter
544 movups XMMWORD
[rsi
],xmm2
546 movdqu xmm2
,XMMWORD
[rdi
]
548 movups XMMWORD
[16+rsi
],xmm3
549 movdqu xmm3
,XMMWORD
[16+rdi
]
550 movups XMMWORD
[32+rsi
],xmm4
551 movdqu xmm4
,XMMWORD
[32+rdi
]
552 movups XMMWORD
[48+rsi
],xmm5
553 movdqu xmm5
,XMMWORD
[48+rdi
]
554 movups XMMWORD
[64+rsi
],xmm6
555 movdqu xmm6
,XMMWORD
[64+rdi
]
556 movups XMMWORD
[80+rsi
],xmm7
557 movdqu xmm7
,XMMWORD
[80+rdi
]
558 movups XMMWORD
[96+rsi
],xmm8
559 movdqu xmm8
,XMMWORD
[96+rdi
]
560 movups XMMWORD
[112+rsi
],xmm9
562 movdqu xmm9
,XMMWORD
[112+rdi
]
564 $L
$ecb_enc_loop
8_enter
:
569 jnc NEAR $L
$ecb_enc_loop
8
571 movups XMMWORD
[rsi
],xmm2
573 movups XMMWORD
[16+rsi
],xmm3
575 movups XMMWORD
[32+rsi
],xmm4
576 movups XMMWORD
[48+rsi
],xmm5
577 movups XMMWORD
[64+rsi
],xmm6
578 movups XMMWORD
[80+rsi
],xmm7
579 movups XMMWORD
[96+rsi
],xmm8
580 movups XMMWORD
[112+rsi
],xmm9
586 movups xmm2
,XMMWORD
[rdi
]
588 jb NEAR $L
$ecb_enc_one
589 movups xmm3
,XMMWORD
[16+rdi
]
590 je NEAR $L
$ecb_enc_two
591 movups xmm4
,XMMWORD
[32+rdi
]
593 jb NEAR $L
$ecb_enc_three
594 movups xmm5
,XMMWORD
[48+rdi
]
595 je NEAR $L
$ecb_enc_four
596 movups xmm6
,XMMWORD
[64+rdi
]
598 jb NEAR $L
$ecb_enc_five
599 movups xmm7
,XMMWORD
[80+rdi
]
600 je NEAR $L
$ecb_enc_six
601 movdqu xmm8
,XMMWORD
[96+rdi
]
604 movups XMMWORD
[rsi
],xmm2
605 movups XMMWORD
[16+rsi
],xmm3
606 movups XMMWORD
[32+rsi
],xmm4
607 movups XMMWORD
[48+rsi
],xmm5
608 movups XMMWORD
[64+rsi
],xmm6
609 movups XMMWORD
[80+rsi
],xmm7
610 movups XMMWORD
[96+rsi
],xmm8
614 movups xmm0
,XMMWORD
[rcx
]
615 movups xmm1
,XMMWORD
[16+rcx
]
621 movups xmm1
,XMMWORD
[rcx
]
623 jnz NEAR $L$oop_enc1_3
625 movups XMMWORD
[rsi
],xmm2
630 movups XMMWORD
[rsi
],xmm2
631 movups XMMWORD
[16+rsi
],xmm3
636 movups XMMWORD
[rsi
],xmm2
637 movups XMMWORD
[16+rsi
],xmm3
638 movups XMMWORD
[32+rsi
],xmm4
643 movups XMMWORD
[rsi
],xmm2
644 movups XMMWORD
[16+rsi
],xmm3
645 movups XMMWORD
[32+rsi
],xmm4
646 movups XMMWORD
[48+rsi
],xmm5
652 movups XMMWORD
[rsi
],xmm2
653 movups XMMWORD
[16+rsi
],xmm3
654 movups XMMWORD
[32+rsi
],xmm4
655 movups XMMWORD
[48+rsi
],xmm5
656 movups XMMWORD
[64+rsi
],xmm6
661 movups XMMWORD
[rsi
],xmm2
662 movups XMMWORD
[16+rsi
],xmm3
663 movups XMMWORD
[32+rsi
],xmm4
664 movups XMMWORD
[48+rsi
],xmm5
665 movups XMMWORD
[64+rsi
],xmm6
666 movups XMMWORD
[80+rsi
],xmm7
672 jb NEAR $L
$ecb_dec_tail
674 movdqu xmm2
,XMMWORD
[rdi
]
675 movdqu xmm3
,XMMWORD
[16+rdi
]
676 movdqu xmm4
,XMMWORD
[32+rdi
]
677 movdqu xmm5
,XMMWORD
[48+rdi
]
678 movdqu xmm6
,XMMWORD
[64+rdi
]
679 movdqu xmm7
,XMMWORD
[80+rdi
]
680 movdqu xmm8
,XMMWORD
[96+rdi
]
681 movdqu xmm9
,XMMWORD
[112+rdi
]
684 jmp NEAR $L
$ecb_dec_loop
8_enter
687 movups XMMWORD
[rsi
],xmm2
689 movdqu xmm2
,XMMWORD
[rdi
]
691 movups XMMWORD
[16+rsi
],xmm3
692 movdqu xmm3
,XMMWORD
[16+rdi
]
693 movups XMMWORD
[32+rsi
],xmm4
694 movdqu xmm4
,XMMWORD
[32+rdi
]
695 movups XMMWORD
[48+rsi
],xmm5
696 movdqu xmm5
,XMMWORD
[48+rdi
]
697 movups XMMWORD
[64+rsi
],xmm6
698 movdqu xmm6
,XMMWORD
[64+rdi
]
699 movups XMMWORD
[80+rsi
],xmm7
700 movdqu xmm7
,XMMWORD
[80+rdi
]
701 movups XMMWORD
[96+rsi
],xmm8
702 movdqu xmm8
,XMMWORD
[96+rdi
]
703 movups XMMWORD
[112+rsi
],xmm9
705 movdqu xmm9
,XMMWORD
[112+rdi
]
707 $L
$ecb_dec_loop
8_enter
:
711 movups xmm0
,XMMWORD
[r11
]
713 jnc NEAR $L
$ecb_dec_loop
8
715 movups XMMWORD
[rsi
],xmm2
718 movups XMMWORD
[16+rsi
],xmm3
721 movups XMMWORD
[32+rsi
],xmm4
723 movups XMMWORD
[48+rsi
],xmm5
725 movups XMMWORD
[64+rsi
],xmm6
727 movups XMMWORD
[80+rsi
],xmm7
729 movups XMMWORD
[96+rsi
],xmm8
731 movups XMMWORD
[112+rsi
],xmm9
738 movups xmm2
,XMMWORD
[rdi
]
740 jb NEAR $L
$ecb_dec_one
741 movups xmm3
,XMMWORD
[16+rdi
]
742 je NEAR $L
$ecb_dec_two
743 movups xmm4
,XMMWORD
[32+rdi
]
745 jb NEAR $L
$ecb_dec_three
746 movups xmm5
,XMMWORD
[48+rdi
]
747 je NEAR $L
$ecb_dec_four
748 movups xmm6
,XMMWORD
[64+rdi
]
750 jb NEAR $L
$ecb_dec_five
751 movups xmm7
,XMMWORD
[80+rdi
]
752 je NEAR $L
$ecb_dec_six
753 movups xmm8
,XMMWORD
[96+rdi
]
754 movups xmm0
,XMMWORD
[rcx
]
757 movups XMMWORD
[rsi
],xmm2
759 movups XMMWORD
[16+rsi
],xmm3
761 movups XMMWORD
[32+rsi
],xmm4
763 movups XMMWORD
[48+rsi
],xmm5
765 movups XMMWORD
[64+rsi
],xmm6
767 movups XMMWORD
[80+rsi
],xmm7
769 movups XMMWORD
[96+rsi
],xmm8
775 movups xmm0
,XMMWORD
[rcx
]
776 movups xmm1
,XMMWORD
[16+rcx
]
782 movups xmm1
,XMMWORD
[rcx
]
784 jnz NEAR $L$oop_dec1_4
786 movups XMMWORD
[rsi
],xmm2
792 movups XMMWORD
[rsi
],xmm2
794 movups XMMWORD
[16+rsi
],xmm3
800 movups XMMWORD
[rsi
],xmm2
802 movups XMMWORD
[16+rsi
],xmm3
804 movups XMMWORD
[32+rsi
],xmm4
810 movups XMMWORD
[rsi
],xmm2
812 movups XMMWORD
[16+rsi
],xmm3
814 movups XMMWORD
[32+rsi
],xmm4
816 movups XMMWORD
[48+rsi
],xmm5
823 movups XMMWORD
[rsi
],xmm2
825 movups XMMWORD
[16+rsi
],xmm3
827 movups XMMWORD
[32+rsi
],xmm4
829 movups XMMWORD
[48+rsi
],xmm5
831 movups XMMWORD
[64+rsi
],xmm6
838 movups XMMWORD
[rsi
],xmm2
840 movups XMMWORD
[16+rsi
],xmm3
842 movups XMMWORD
[32+rsi
],xmm4
844 movups XMMWORD
[48+rsi
],xmm5
846 movups XMMWORD
[64+rsi
],xmm6
848 movups XMMWORD
[80+rsi
],xmm7
854 movaps xmm6
,XMMWORD
[rsp
]
855 movaps XMMWORD
[rsp
],xmm0
856 movaps xmm7
,XMMWORD
[16+rsp
]
857 movaps XMMWORD
[16+rsp
],xmm0
858 movaps xmm8
,XMMWORD
[32+rsp
]
859 movaps XMMWORD
[32+rsp
],xmm0
860 movaps xmm9
,XMMWORD
[48+rsp
]
861 movaps XMMWORD
[48+rsp
],xmm0
864 mov rdi
,QWORD[8+rsp
] ;WIN64 epilogue
865 mov rsi
,QWORD[16+rsp
]
867 $L$
SEH_end_aesni_ecb_encrypt:
868 global aesni_ccm64_encrypt_blocks
871 aesni_ccm64_encrypt_blocks:
872 mov QWORD[8+rsp
],rdi
;WIN64 prologue
873 mov QWORD[16+rsp
],rsi
875 $L$
SEH_begin_aesni_ccm64_encrypt_blocks:
884 lea rsp
,[((-88))+rsp
]
885 movaps XMMWORD
[rsp
],xmm6
886 movaps XMMWORD
[16+rsp
],xmm7
887 movaps XMMWORD
[32+rsp
],xmm8
888 movaps XMMWORD
[48+rsp
],xmm9
890 mov eax,DWORD[240+rcx
]
891 movdqu xmm6
,XMMWORD
[r8
]
892 movdqa xmm9
,XMMWORD
[$L$increment64
]
893 movdqa xmm7
,XMMWORD
[$L
$bswap_mask
]
898 movdqu xmm3
,XMMWORD
[r9
]
900 lea rcx
,[32+rax
*1+rcx
]
903 jmp NEAR $L
$ccm
64_enc_outer
906 movups xmm0
,XMMWORD
[r11
]
908 movups xmm8
,XMMWORD
[rdi
]
911 movups xmm1
,XMMWORD
[16+r11
]
914 movups xmm0
,XMMWORD
[32+r11
]
919 movups xmm1
,XMMWORD
[rax
*1+rcx
]
923 movups xmm0
,XMMWORD
[((-16))+rax
*1+rcx
]
924 jnz NEAR $L
$ccm
64_enc
2_loop
935 movups XMMWORD
[rsi
],xmm8
938 jnz NEAR $L
$ccm
64_enc_outer
943 movups XMMWORD
[r9
],xmm3
947 movaps xmm6
,XMMWORD
[rsp
]
948 movaps XMMWORD
[rsp
],xmm0
949 movaps xmm7
,XMMWORD
[16+rsp
]
950 movaps XMMWORD
[16+rsp
],xmm0
951 movaps xmm8
,XMMWORD
[32+rsp
]
952 movaps XMMWORD
[32+rsp
],xmm0
953 movaps xmm9
,XMMWORD
[48+rsp
]
954 movaps XMMWORD
[48+rsp
],xmm0
957 mov rdi
,QWORD[8+rsp
] ;WIN64 epilogue
958 mov rsi
,QWORD[16+rsp
]
960 $L$
SEH_end_aesni_ccm64_encrypt_blocks:
961 global aesni_ccm64_decrypt_blocks
964 aesni_ccm64_decrypt_blocks:
965 mov QWORD[8+rsp
],rdi
;WIN64 prologue
966 mov QWORD[16+rsp
],rsi
968 $L$
SEH_begin_aesni_ccm64_decrypt_blocks:
977 lea rsp
,[((-88))+rsp
]
978 movaps XMMWORD
[rsp
],xmm6
979 movaps XMMWORD
[16+rsp
],xmm7
980 movaps XMMWORD
[32+rsp
],xmm8
981 movaps XMMWORD
[48+rsp
],xmm9
983 mov eax,DWORD[240+rcx
]
984 movups xmm6
,XMMWORD
[r8
]
985 movdqu xmm3
,XMMWORD
[r9
]
986 movdqa xmm9
,XMMWORD
[$L$increment64
]
987 movdqa xmm7
,XMMWORD
[$L
$bswap_mask
]
993 movups xmm0
,XMMWORD
[rcx
]
994 movups xmm1
,XMMWORD
[16+rcx
]
1000 movups xmm1
,XMMWORD
[rcx
]
1002 jnz NEAR $L$oop_enc1_5
1003 DB 102,15,56,221,209
1006 movups xmm8
,XMMWORD
[rdi
]
1010 lea rcx
,[32+r10
*1+r11
]
1012 jmp NEAR $L
$ccm
64_dec_outer
1017 movups XMMWORD
[rsi
],xmm8
1022 jz NEAR $L
$ccm
64_dec_break
1024 movups xmm0
,XMMWORD
[r11
]
1026 movups xmm1
,XMMWORD
[16+r11
]
1030 movups xmm0
,XMMWORD
[32+r11
]
1031 jmp NEAR $L
$ccm
64_dec
2_loop
1034 DB 102,15,56,220,209
1035 DB 102,15,56,220,217
1036 movups xmm1
,XMMWORD
[rax
*1+rcx
]
1038 DB 102,15,56,220,208
1039 DB 102,15,56,220,216
1040 movups xmm0
,XMMWORD
[((-16))+rax
*1+rcx
]
1041 jnz NEAR $L
$ccm
64_dec
2_loop
1042 movups xmm8
,XMMWORD
[rdi
]
1044 DB 102,15,56,220,209
1045 DB 102,15,56,220,217
1046 DB 102,15,56,221,208
1047 DB 102,15,56,221,216
1049 jmp NEAR $L
$ccm
64_dec_outer
1054 mov eax,DWORD[240+r11
]
1055 movups xmm0
,XMMWORD
[r11
]
1056 movups xmm1
,XMMWORD
[16+r11
]
1061 DB 102,15,56,220,217
1063 movups xmm1
,XMMWORD
[r11
]
1065 jnz NEAR $L$oop_enc1_6
1066 DB 102,15,56,221,217
1070 movups XMMWORD
[r9
],xmm3
1074 movaps xmm6
,XMMWORD
[rsp
]
1075 movaps XMMWORD
[rsp
],xmm0
1076 movaps xmm7
,XMMWORD
[16+rsp
]
1077 movaps XMMWORD
[16+rsp
],xmm0
1078 movaps xmm8
,XMMWORD
[32+rsp
]
1079 movaps XMMWORD
[32+rsp
],xmm0
1080 movaps xmm9
,XMMWORD
[48+rsp
]
1081 movaps XMMWORD
[48+rsp
],xmm0
1084 mov rdi
,QWORD[8+rsp
] ;WIN64 epilogue
1085 mov rsi
,QWORD[16+rsp
]
1086 DB 0F3h
,0C3h
;repret
1087 $L$
SEH_end_aesni_ccm64_decrypt_blocks:
1088 global aesni_ctr32_encrypt_blocks
1091 aesni_ctr32_encrypt_blocks:
1092 mov QWORD[8+rsp
],rdi
;WIN64 prologue
1093 mov QWORD[16+rsp
],rsi
1095 $L$
SEH_begin_aesni_ctr32_encrypt_blocks:
1100 mov r8
,QWORD[40+rsp
]
1104 jne NEAR $L
$ctr
32_bulk
1108 movups xmm2
,XMMWORD
[r8
]
1109 movups xmm3
,XMMWORD
[rdi
]
1110 mov edx,DWORD[240+rcx
]
1111 movups xmm0
,XMMWORD
[rcx
]
1112 movups xmm1
,XMMWORD
[16+rcx
]
1116 DB 102,15,56,220,209
1118 movups xmm1
,XMMWORD
[rcx
]
1120 jnz NEAR $L$oop_enc1_7
1121 DB 102,15,56,221,209
1126 movups XMMWORD
[rsi
],xmm2
1128 jmp NEAR $L
$ctr
32_epilogue
1136 movaps XMMWORD
[(-168)+rax
],xmm6
1137 movaps XMMWORD
[(-152)+rax
],xmm7
1138 movaps XMMWORD
[(-136)+rax
],xmm8
1139 movaps XMMWORD
[(-120)+rax
],xmm9
1140 movaps XMMWORD
[(-104)+rax
],xmm10
1141 movaps XMMWORD
[(-88)+rax
],xmm11
1142 movaps XMMWORD
[(-72)+rax
],xmm12
1143 movaps XMMWORD
[(-56)+rax
],xmm13
1144 movaps XMMWORD
[(-40)+rax
],xmm14
1145 movaps XMMWORD
[(-24)+rax
],xmm15
1147 lea rbp
,[((-8))+rax
]
1152 movdqu xmm2
,XMMWORD
[r8
]
1153 movdqu xmm0
,XMMWORD
[rcx
]
1154 mov r8d
,DWORD[12+r8
]
1156 mov r11d
,DWORD[12+rcx
]
1157 movdqa XMMWORD
[rsp
],xmm2
1162 movdqa XMMWORD
[64+rsp
],xmm2
1163 movdqa XMMWORD
[80+rsp
],xmm2
1164 movdqa XMMWORD
[96+rsp
],xmm2
1166 movdqa XMMWORD
[112+rsp
],xmm2
1174 DB 102,15,58,34,216,3
1176 movdqa XMMWORD
[16+rsp
],xmm3
1177 DB 102,15,58,34,226,3
1181 movdqa XMMWORD
[32+rsp
],xmm4
1184 DB 102,15,58,34,232,3
1186 movdqa XMMWORD
[48+rsp
],xmm5
1188 mov DWORD[((64+12))+rsp
],r10d
1191 mov eax,DWORD[240+rcx
]
1194 mov DWORD[((80+12))+rsp
],r9d
1197 mov DWORD[((96+12))+rsp
],r10d
1199 mov r10d
,DWORD[((OPENSSL_ia32cap_P
+4))]
1202 mov DWORD[((112+12))+rsp
],r9d
1204 movups xmm1
,XMMWORD
[16+rcx
]
1206 movdqa xmm6
,XMMWORD
[64+rsp
]
1207 movdqa xmm7
,XMMWORD
[80+rsp
]
1210 jb NEAR $L
$ctr
32_tail
1218 jmp NEAR $L
$ctr
32_loop
8
1225 lea rcx
,[32+rax
*1+rcx
]
1227 jmp NEAR $L
$ctr
32_loop
6
1232 movups xmm0
,XMMWORD
[((-48))+r10
*1+rcx
]
1233 DB 102,15,56,220,209
1236 DB 102,15,56,220,217
1237 DB 0x0f,0x38,0xf1,0x44,0x24,12
1239 DB 102,15,56,220,225
1241 DB 0x0f,0x38,0xf1,0x44,0x24,28
1242 DB 102,15,56,220,233
1245 DB 102,15,56,220,241
1246 DB 0x0f,0x38,0xf1,0x44,0x24,44
1248 DB 102,15,56,220,249
1249 movups xmm1
,XMMWORD
[((-32))+r10
*1+rcx
]
1252 DB 102,15,56,220,208
1253 DB 0x0f,0x38,0xf1,0x44,0x24,60
1255 DB 102,15,56,220,216
1257 DB 0x0f,0x38,0xf1,0x44,0x24,76
1258 DB 102,15,56,220,224
1261 DB 102,15,56,220,232
1262 DB 0x0f,0x38,0xf1,0x44,0x24,92
1264 DB 102,15,56,220,240
1265 DB 102,15,56,220,248
1266 movups xmm0
,XMMWORD
[((-16))+r10
*1+rcx
]
1270 movdqu xmm8
,XMMWORD
[rdi
]
1271 movdqu xmm9
,XMMWORD
[16+rdi
]
1272 movdqu xmm10
,XMMWORD
[32+rdi
]
1273 movdqu xmm11
,XMMWORD
[48+rdi
]
1274 movdqu xmm12
,XMMWORD
[64+rdi
]
1275 movdqu xmm13
,XMMWORD
[80+rdi
]
1277 movups xmm1
,XMMWORD
[((-64))+r10
*1+rcx
]
1279 movaps xmm2
,XMMWORD
[rsp
]
1281 movaps xmm3
,XMMWORD
[16+rsp
]
1283 movaps xmm4
,XMMWORD
[32+rsp
]
1285 movaps xmm5
,XMMWORD
[48+rsp
]
1287 movaps xmm6
,XMMWORD
[64+rsp
]
1289 movaps xmm7
,XMMWORD
[80+rsp
]
1290 movdqu XMMWORD
[rsi
],xmm8
1291 movdqu XMMWORD
[16+rsi
],xmm9
1292 movdqu XMMWORD
[32+rsi
],xmm10
1293 movdqu XMMWORD
[48+rsi
],xmm11
1294 movdqu XMMWORD
[64+rsi
],xmm12
1295 movdqu XMMWORD
[80+rsi
],xmm13
1299 jnc NEAR $L
$ctr
32_loop
6
1302 jz NEAR $L
$ctr
32_done
1304 lea eax,[((-48))+r10
]
1305 lea rcx
,[((-80))+r10
*1+rcx
]
1308 jmp NEAR $L
$ctr
32_tail
1313 movdqa xmm8
,XMMWORD
[96+rsp
]
1314 DB 102,15,56,220,209
1316 movdqa xmm9
,XMMWORD
[112+rsp
]
1317 DB 102,15,56,220,217
1319 movups xmm0
,XMMWORD
[((32-128))+rcx
]
1320 DB 102,15,56,220,225
1323 DB 102,15,56,220,233
1324 mov DWORD[((0+12))+rsp
],r9d
1326 DB 102,15,56,220,241
1327 DB 102,15,56,220,249
1328 DB 102,68,15,56,220,193
1329 DB 102,68,15,56,220,201
1330 movups xmm1
,XMMWORD
[((48-128))+rcx
]
1332 DB 102,15,56,220,208
1333 DB 102,15,56,220,216
1336 DB 102,15,56,220,224
1337 DB 102,15,56,220,232
1338 mov DWORD[((16+12))+rsp
],r9d
1340 DB 102,15,56,220,240
1341 DB 102,15,56,220,248
1342 DB 102,68,15,56,220,192
1343 DB 102,68,15,56,220,200
1344 movups xmm0
,XMMWORD
[((64-128))+rcx
]
1346 DB 102,15,56,220,209
1347 DB 102,15,56,220,217
1350 DB 102,15,56,220,225
1351 DB 102,15,56,220,233
1352 mov DWORD[((32+12))+rsp
],r9d
1354 DB 102,15,56,220,241
1355 DB 102,15,56,220,249
1356 DB 102,68,15,56,220,193
1357 DB 102,68,15,56,220,201
1358 movups xmm1
,XMMWORD
[((80-128))+rcx
]
1360 DB 102,15,56,220,208
1361 DB 102,15,56,220,216
1364 DB 102,15,56,220,224
1365 DB 102,15,56,220,232
1366 mov DWORD[((48+12))+rsp
],r9d
1368 DB 102,15,56,220,240
1369 DB 102,15,56,220,248
1370 DB 102,68,15,56,220,192
1371 DB 102,68,15,56,220,200
1372 movups xmm0
,XMMWORD
[((96-128))+rcx
]
1374 DB 102,15,56,220,209
1375 DB 102,15,56,220,217
1378 DB 102,15,56,220,225
1379 DB 102,15,56,220,233
1380 mov DWORD[((64+12))+rsp
],r9d
1382 DB 102,15,56,220,241
1383 DB 102,15,56,220,249
1384 DB 102,68,15,56,220,193
1385 DB 102,68,15,56,220,201
1386 movups xmm1
,XMMWORD
[((112-128))+rcx
]
1388 DB 102,15,56,220,208
1389 DB 102,15,56,220,216
1392 DB 102,15,56,220,224
1393 DB 102,15,56,220,232
1394 mov DWORD[((80+12))+rsp
],r9d
1396 DB 102,15,56,220,240
1397 DB 102,15,56,220,248
1398 DB 102,68,15,56,220,192
1399 DB 102,68,15,56,220,200
1400 movups xmm0
,XMMWORD
[((128-128))+rcx
]
1402 DB 102,15,56,220,209
1403 DB 102,15,56,220,217
1406 DB 102,15,56,220,225
1407 DB 102,15,56,220,233
1408 mov DWORD[((96+12))+rsp
],r9d
1410 DB 102,15,56,220,241
1411 DB 102,15,56,220,249
1412 DB 102,68,15,56,220,193
1413 DB 102,68,15,56,220,201
1414 movups xmm1
,XMMWORD
[((144-128))+rcx
]
1416 DB 102,15,56,220,208
1417 DB 102,15,56,220,216
1418 DB 102,15,56,220,224
1420 movdqu xmm10
,XMMWORD
[rdi
]
1421 DB 102,15,56,220,232
1422 mov DWORD[((112+12))+rsp
],r9d
1424 DB 102,15,56,220,240
1425 DB 102,15,56,220,248
1426 DB 102,68,15,56,220,192
1427 DB 102,68,15,56,220,200
1428 movups xmm0
,XMMWORD
[((160-128))+rcx
]
1430 jb NEAR $L
$ctr
32_enc_done
1432 DB 102,15,56,220,209
1433 DB 102,15,56,220,217
1434 DB 102,15,56,220,225
1435 DB 102,15,56,220,233
1436 DB 102,15,56,220,241
1437 DB 102,15,56,220,249
1438 DB 102,68,15,56,220,193
1439 DB 102,68,15,56,220,201
1440 movups xmm1
,XMMWORD
[((176-128))+rcx
]
1442 DB 102,15,56,220,208
1443 DB 102,15,56,220,216
1444 DB 102,15,56,220,224
1445 DB 102,15,56,220,232
1446 DB 102,15,56,220,240
1447 DB 102,15,56,220,248
1448 DB 102,68,15,56,220,192
1449 DB 102,68,15,56,220,200
1450 movups xmm0
,XMMWORD
[((192-128))+rcx
]
1451 je NEAR $L
$ctr
32_enc_done
1453 DB 102,15,56,220,209
1454 DB 102,15,56,220,217
1455 DB 102,15,56,220,225
1456 DB 102,15,56,220,233
1457 DB 102,15,56,220,241
1458 DB 102,15,56,220,249
1459 DB 102,68,15,56,220,193
1460 DB 102,68,15,56,220,201
1461 movups xmm1
,XMMWORD
[((208-128))+rcx
]
1463 DB 102,15,56,220,208
1464 DB 102,15,56,220,216
1465 DB 102,15,56,220,224
1466 DB 102,15,56,220,232
1467 DB 102,15,56,220,240
1468 DB 102,15,56,220,248
1469 DB 102,68,15,56,220,192
1470 DB 102,68,15,56,220,200
1471 movups xmm0
,XMMWORD
[((224-128))+rcx
]
1472 jmp NEAR $L
$ctr
32_enc_done
1476 movdqu xmm11
,XMMWORD
[16+rdi
]
1478 movdqu xmm12
,XMMWORD
[32+rdi
]
1480 movdqu xmm13
,XMMWORD
[48+rdi
]
1482 movdqu xmm14
,XMMWORD
[64+rdi
]
1484 movdqu xmm15
,XMMWORD
[80+rdi
]
1487 DB 102,15,56,220,209
1488 DB 102,15,56,220,217
1489 DB 102,15,56,220,225
1490 DB 102,15,56,220,233
1491 DB 102,15,56,220,241
1492 DB 102,15,56,220,249
1493 DB 102,68,15,56,220,193
1494 DB 102,68,15,56,220,201
1495 movdqu xmm1
,XMMWORD
[96+rdi
]
1498 DB 102,65,15,56,221,210
1500 movdqu xmm10
,XMMWORD
[((112-128))+rdi
]
1501 DB 102,65,15,56,221,219
1503 movdqa xmm11
,XMMWORD
[rsp
]
1504 DB 102,65,15,56,221,228
1505 DB 102,65,15,56,221,237
1506 movdqa xmm12
,XMMWORD
[16+rsp
]
1507 movdqa xmm13
,XMMWORD
[32+rsp
]
1508 DB 102,65,15,56,221,246
1509 DB 102,65,15,56,221,255
1510 movdqa xmm14
,XMMWORD
[48+rsp
]
1511 movdqa xmm15
,XMMWORD
[64+rsp
]
1512 DB 102,68,15,56,221,193
1513 movdqa xmm0
,XMMWORD
[80+rsp
]
1514 movups xmm1
,XMMWORD
[((16-128))+rcx
]
1515 DB 102,69,15,56,221,202
1517 movups XMMWORD
[rsi
],xmm2
1519 movups XMMWORD
[16+rsi
],xmm3
1521 movups XMMWORD
[32+rsi
],xmm4
1523 movups XMMWORD
[48+rsi
],xmm5
1525 movups XMMWORD
[64+rsi
],xmm6
1527 movups XMMWORD
[80+rsi
],xmm7
1529 movups XMMWORD
[96+rsi
],xmm8
1530 movups XMMWORD
[112+rsi
],xmm9
1534 jnc NEAR $L
$ctr
32_loop
8
1537 jz NEAR $L
$ctr
32_done
1538 lea rcx
,[((-128))+rcx
]
1545 jb NEAR $L
$ctr
32_loop
3
1546 je NEAR $L
$ctr
32_loop
4
1550 movdqa xmm8
,XMMWORD
[96+rsp
]
1553 movups xmm0
,XMMWORD
[16+rcx
]
1554 DB 102,15,56,220,209
1555 DB 102,15,56,220,217
1556 lea rcx
,[((32-16))+rax
*1+rcx
]
1558 DB 102,15,56,220,225
1560 movups xmm10
,XMMWORD
[rdi
]
1561 DB 102,15,56,220,233
1562 DB 102,15,56,220,241
1563 movups xmm11
,XMMWORD
[16+rdi
]
1564 movups xmm12
,XMMWORD
[32+rdi
]
1565 DB 102,15,56,220,249
1566 DB 102,68,15,56,220,193
1568 call $L
$enc_loop
8_enter
1570 movdqu xmm13
,XMMWORD
[48+rdi
]
1572 movdqu xmm10
,XMMWORD
[64+rdi
]
1574 movdqu XMMWORD
[rsi
],xmm2
1576 movdqu XMMWORD
[16+rsi
],xmm3
1578 movdqu XMMWORD
[32+rsi
],xmm4
1580 movdqu XMMWORD
[48+rsi
],xmm5
1581 movdqu XMMWORD
[64+rsi
],xmm6
1583 jb NEAR $L
$ctr
32_done
1585 movups xmm11
,XMMWORD
[80+rdi
]
1587 movups XMMWORD
[80+rsi
],xmm7
1588 je NEAR $L
$ctr
32_done
1590 movups xmm12
,XMMWORD
[96+rdi
]
1592 movups XMMWORD
[96+rsi
],xmm8
1593 jmp NEAR $L
$ctr
32_done
1597 DB 102,15,56,220,209
1600 DB 102,15,56,220,217
1601 DB 102,15,56,220,225
1602 DB 102,15,56,220,233
1603 movups xmm1
,XMMWORD
[rcx
]
1604 jnz NEAR $L
$ctr
32_loop
4
1605 DB 102,15,56,221,209
1606 DB 102,15,56,221,217
1607 movups xmm10
,XMMWORD
[rdi
]
1608 movups xmm11
,XMMWORD
[16+rdi
]
1609 DB 102,15,56,221,225
1610 DB 102,15,56,221,233
1611 movups xmm12
,XMMWORD
[32+rdi
]
1612 movups xmm13
,XMMWORD
[48+rdi
]
1615 movups XMMWORD
[rsi
],xmm2
1617 movups XMMWORD
[16+rsi
],xmm3
1619 movdqu XMMWORD
[32+rsi
],xmm4
1621 movdqu XMMWORD
[48+rsi
],xmm5
1622 jmp NEAR $L
$ctr
32_done
1626 DB 102,15,56,220,209
1629 DB 102,15,56,220,217
1630 DB 102,15,56,220,225
1631 movups xmm1
,XMMWORD
[rcx
]
1632 jnz NEAR $L
$ctr
32_loop
3
1633 DB 102,15,56,221,209
1634 DB 102,15,56,221,217
1635 DB 102,15,56,221,225
1637 movups xmm10
,XMMWORD
[rdi
]
1639 movups XMMWORD
[rsi
],xmm2
1641 jb NEAR $L
$ctr
32_done
1643 movups xmm11
,XMMWORD
[16+rdi
]
1645 movups XMMWORD
[16+rsi
],xmm3
1646 je NEAR $L
$ctr
32_done
1648 movups xmm12
,XMMWORD
[32+rdi
]
1650 movups XMMWORD
[32+rsi
],xmm4
1660 movaps xmm6
,XMMWORD
[((-160))+rbp
]
1661 movaps XMMWORD
[(-160)+rbp
],xmm0
1662 movaps xmm7
,XMMWORD
[((-144))+rbp
]
1663 movaps XMMWORD
[(-144)+rbp
],xmm0
1664 movaps xmm8
,XMMWORD
[((-128))+rbp
]
1665 movaps XMMWORD
[(-128)+rbp
],xmm0
1666 movaps xmm9
,XMMWORD
[((-112))+rbp
]
1667 movaps XMMWORD
[(-112)+rbp
],xmm0
1668 movaps xmm10
,XMMWORD
[((-96))+rbp
]
1669 movaps XMMWORD
[(-96)+rbp
],xmm0
1670 movaps xmm11
,XMMWORD
[((-80))+rbp
]
1671 movaps XMMWORD
[(-80)+rbp
],xmm0
1672 movaps xmm12
,XMMWORD
[((-64))+rbp
]
1673 movaps XMMWORD
[(-64)+rbp
],xmm0
1674 movaps xmm13
,XMMWORD
[((-48))+rbp
]
1675 movaps XMMWORD
[(-48)+rbp
],xmm0
1676 movaps xmm14
,XMMWORD
[((-32))+rbp
]
1677 movaps XMMWORD
[(-32)+rbp
],xmm0
1678 movaps xmm15
,XMMWORD
[((-16))+rbp
]
1679 movaps XMMWORD
[(-16)+rbp
],xmm0
1680 movaps XMMWORD
[rsp
],xmm0
1681 movaps XMMWORD
[16+rsp
],xmm0
1682 movaps XMMWORD
[32+rsp
],xmm0
1683 movaps XMMWORD
[48+rsp
],xmm0
1684 movaps XMMWORD
[64+rsp
],xmm0
1685 movaps XMMWORD
[80+rsp
],xmm0
1686 movaps XMMWORD
[96+rsp
],xmm0
1687 movaps XMMWORD
[112+rsp
],xmm0
1691 mov rdi
,QWORD[8+rsp
] ;WIN64 epilogue
1692 mov rsi
,QWORD[16+rsp
]
1693 DB 0F3h
,0C3h
;repret
1694 $L$
SEH_end_aesni_ctr32_encrypt_blocks:
1695 global aesni_xts_encrypt
1699 mov QWORD[8+rsp
],rdi
;WIN64 prologue
1700 mov QWORD[16+rsp
],rsi
1702 $L$
SEH_begin_aesni_xts_encrypt:
1707 mov r8
,QWORD[40+rsp
]
1708 mov r9
,QWORD[48+rsp
]
1715 movaps XMMWORD
[(-168)+rax
],xmm6
1716 movaps XMMWORD
[(-152)+rax
],xmm7
1717 movaps XMMWORD
[(-136)+rax
],xmm8
1718 movaps XMMWORD
[(-120)+rax
],xmm9
1719 movaps XMMWORD
[(-104)+rax
],xmm10
1720 movaps XMMWORD
[(-88)+rax
],xmm11
1721 movaps XMMWORD
[(-72)+rax
],xmm12
1722 movaps XMMWORD
[(-56)+rax
],xmm13
1723 movaps XMMWORD
[(-40)+rax
],xmm14
1724 movaps XMMWORD
[(-24)+rax
],xmm15
1726 lea rbp
,[((-8))+rax
]
1727 movups xmm2
,XMMWORD
[r9
]
1728 mov eax,DWORD[240+r8
]
1729 mov r10d
,DWORD[240+rcx
]
1730 movups xmm0
,XMMWORD
[r8
]
1731 movups xmm1
,XMMWORD
[16+r8
]
1735 DB 102,15,56,220,209
1737 movups xmm1
,XMMWORD
[r8
]
1739 jnz NEAR $L$oop_enc1_8
1740 DB 102,15,56,221,209
1741 movups xmm0
,XMMWORD
[rcx
]
1748 movups xmm1
,XMMWORD
[16+r10
*1+rcx
]
1750 movdqa xmm8
,XMMWORD
[$L$xts_magic
]
1752 pshufd xmm9
,xmm2
,0x5f
1792 movaps XMMWORD
[96+rsp
],xmm1
1795 jc NEAR $L$xts_enc_short
1798 lea rcx
,[32+r10
*1+r11
]
1800 movups xmm1
,XMMWORD
[16+r11
]
1802 lea r8
,[$L$xts_magic
]
1803 jmp NEAR $L$xts_enc_grandloop
1806 $L$
xts_enc_grandloop:
1807 movdqu xmm2
,XMMWORD
[rdi
]
1809 movdqu xmm3
,XMMWORD
[16+rdi
]
1811 movdqu xmm4
,XMMWORD
[32+rdi
]
1813 DB 102,15,56,220,209
1814 movdqu xmm5
,XMMWORD
[48+rdi
]
1816 DB 102,15,56,220,217
1817 movdqu xmm6
,XMMWORD
[64+rdi
]
1819 DB 102,15,56,220,225
1820 movdqu xmm7
,XMMWORD
[80+rdi
]
1822 movdqa xmm9
,XMMWORD
[96+rsp
]
1824 DB 102,15,56,220,233
1825 movups xmm0
,XMMWORD
[32+r11
]
1830 DB 102,15,56,220,241
1832 movdqa XMMWORD
[rsp
],xmm10
1833 DB 102,15,56,220,249
1834 movups xmm1
,XMMWORD
[48+r11
]
1837 DB 102,15,56,220,208
1839 movdqa XMMWORD
[16+rsp
],xmm11
1840 DB 102,15,56,220,216
1842 movdqa XMMWORD
[32+rsp
],xmm12
1843 DB 102,15,56,220,224
1844 DB 102,15,56,220,232
1846 movdqa XMMWORD
[64+rsp
],xmm14
1847 DB 102,15,56,220,240
1848 DB 102,15,56,220,248
1849 movups xmm0
,XMMWORD
[64+r11
]
1850 movdqa XMMWORD
[80+rsp
],xmm8
1851 pshufd xmm9
,xmm15
,0x5f
1852 jmp NEAR $L$xts_enc_loop6
1855 DB 102,15,56,220,209
1856 DB 102,15,56,220,217
1857 DB 102,15,56,220,225
1858 DB 102,15,56,220,233
1859 DB 102,15,56,220,241
1860 DB 102,15,56,220,249
1861 movups xmm1
,XMMWORD
[((-64))+rax
*1+rcx
]
1864 DB 102,15,56,220,208
1865 DB 102,15,56,220,216
1866 DB 102,15,56,220,224
1867 DB 102,15,56,220,232
1868 DB 102,15,56,220,240
1869 DB 102,15,56,220,248
1870 movups xmm0
,XMMWORD
[((-80))+rax
*1+rcx
]
1871 jnz NEAR $L$xts_enc_loop6
1873 movdqa xmm8
,XMMWORD
[r8
]
1876 DB 102,15,56,220,209
1879 DB 102,15,56,220,217
1881 movups xmm10
,XMMWORD
[r11
]
1882 DB 102,15,56,220,225
1883 DB 102,15,56,220,233
1884 DB 102,15,56,220,241
1887 DB 102,15,56,220,249
1888 movups xmm1
,XMMWORD
[((-64))+rcx
]
1891 DB 102,15,56,220,208
1894 DB 102,15,56,220,216
1897 DB 102,15,56,220,224
1898 DB 102,15,56,220,232
1901 DB 102,15,56,220,240
1904 DB 102,15,56,220,248
1905 movups xmm0
,XMMWORD
[((-48))+rcx
]
1908 DB 102,15,56,220,209
1911 DB 102,15,56,220,217
1914 DB 102,15,56,220,225
1915 DB 102,15,56,220,233
1916 movdqa XMMWORD
[48+rsp
],xmm13
1918 DB 102,15,56,220,241
1921 DB 102,15,56,220,249
1922 movups xmm1
,XMMWORD
[((-32))+rcx
]
1925 DB 102,15,56,220,208
1928 DB 102,15,56,220,216
1931 DB 102,15,56,220,224
1932 DB 102,15,56,220,232
1933 DB 102,15,56,220,240
1936 DB 102,15,56,220,248
1940 DB 102,15,56,220,209
1943 DB 102,15,56,220,217
1946 DB 102,15,56,220,225
1947 DB 102,15,56,220,233
1949 movups xmm0
,XMMWORD
[r11
]
1950 DB 102,15,56,220,241
1951 DB 102,15,56,220,249
1952 movups xmm1
,XMMWORD
[16+r11
]
1955 DB 102,15,56,221,84,36,0
1958 DB 102,15,56,221,92,36,16
1959 DB 102,15,56,221,100,36,32
1962 DB 102,15,56,221,108,36,48
1963 DB 102,15,56,221,116,36,64
1964 DB 102,15,56,221,124,36,80
1968 movups XMMWORD
[(-96)+rsi
],xmm2
1969 movups XMMWORD
[(-80)+rsi
],xmm3
1970 movups XMMWORD
[(-64)+rsi
],xmm4
1971 movups XMMWORD
[(-48)+rsi
],xmm5
1972 movups XMMWORD
[(-32)+rsi
],xmm6
1973 movups XMMWORD
[(-16)+rsi
],xmm7
1975 jnc NEAR $L$xts_enc_grandloop
1987 jz NEAR $L$xts_enc_done
1991 jb NEAR $L$xts_enc_one
1993 je NEAR $L$xts_enc_two
1997 jb NEAR $L$xts_enc_three
1999 je NEAR $L$xts_enc_four
2001 movdqu xmm2
,XMMWORD
[rdi
]
2002 movdqu xmm3
,XMMWORD
[16+rdi
]
2003 movdqu xmm4
,XMMWORD
[32+rdi
]
2005 movdqu xmm5
,XMMWORD
[48+rdi
]
2007 movdqu xmm6
,XMMWORD
[64+rdi
]
2014 call _aesni_encrypt6
2020 movdqu XMMWORD
[rsi
],xmm2
2022 movdqu XMMWORD
[16+rsi
],xmm3
2024 movdqu XMMWORD
[32+rsi
],xmm4
2025 movdqu XMMWORD
[48+rsi
],xmm5
2026 movdqu XMMWORD
[64+rsi
],xmm6
2028 jmp NEAR $L$xts_enc_done
2032 movups xmm2
,XMMWORD
[rdi
]
2035 movups xmm0
,XMMWORD
[rcx
]
2036 movups xmm1
,XMMWORD
[16+rcx
]
2040 DB 102,15,56,220,209
2042 movups xmm1
,XMMWORD
[rcx
]
2044 jnz NEAR $L$oop_enc1_9
2045 DB 102,15,56,221,209
2048 movups XMMWORD
[rsi
],xmm2
2050 jmp NEAR $L$xts_enc_done
2054 movups xmm2
,XMMWORD
[rdi
]
2055 movups xmm3
,XMMWORD
[16+rdi
]
2060 call _aesni_encrypt2
2065 movups XMMWORD
[rsi
],xmm2
2066 movups XMMWORD
[16+rsi
],xmm3
2068 jmp NEAR $L$xts_enc_done
2072 movups xmm2
,XMMWORD
[rdi
]
2073 movups xmm3
,XMMWORD
[16+rdi
]
2074 movups xmm4
,XMMWORD
[32+rdi
]
2080 call _aesni_encrypt3
2086 movups XMMWORD
[rsi
],xmm2
2087 movups XMMWORD
[16+rsi
],xmm3
2088 movups XMMWORD
[32+rsi
],xmm4
2090 jmp NEAR $L$xts_enc_done
2094 movups xmm2
,XMMWORD
[rdi
]
2095 movups xmm3
,XMMWORD
[16+rdi
]
2096 movups xmm4
,XMMWORD
[32+rdi
]
2098 movups xmm5
,XMMWORD
[48+rdi
]
2104 call _aesni_encrypt4
2110 movdqu XMMWORD
[rsi
],xmm2
2112 movdqu XMMWORD
[16+rsi
],xmm3
2113 movdqu XMMWORD
[32+rsi
],xmm4
2114 movdqu XMMWORD
[48+rsi
],xmm5
2116 jmp NEAR $L$xts_enc_done
2121 jz NEAR $L$xts_enc_ret
2126 movzx ecx,BYTE[((-16))+rsi
]
2128 mov BYTE[((-16))+rsi
],al
2132 jnz NEAR $L$xts_enc_steal
2138 movups xmm2
,XMMWORD
[((-16))+rsi
]
2140 movups xmm0
,XMMWORD
[rcx
]
2141 movups xmm1
,XMMWORD
[16+rcx
]
2145 DB 102,15,56,220,209
2147 movups xmm1
,XMMWORD
[rcx
]
2149 jnz NEAR $L$oop_enc1_10
2150 DB 102,15,56,221,209
2152 movups XMMWORD
[(-16)+rsi
],xmm2
2161 movaps xmm6
,XMMWORD
[((-160))+rbp
]
2162 movaps XMMWORD
[(-160)+rbp
],xmm0
2163 movaps xmm7
,XMMWORD
[((-144))+rbp
]
2164 movaps XMMWORD
[(-144)+rbp
],xmm0
2165 movaps xmm8
,XMMWORD
[((-128))+rbp
]
2166 movaps XMMWORD
[(-128)+rbp
],xmm0
2167 movaps xmm9
,XMMWORD
[((-112))+rbp
]
2168 movaps XMMWORD
[(-112)+rbp
],xmm0
2169 movaps xmm10
,XMMWORD
[((-96))+rbp
]
2170 movaps XMMWORD
[(-96)+rbp
],xmm0
2171 movaps xmm11
,XMMWORD
[((-80))+rbp
]
2172 movaps XMMWORD
[(-80)+rbp
],xmm0
2173 movaps xmm12
,XMMWORD
[((-64))+rbp
]
2174 movaps XMMWORD
[(-64)+rbp
],xmm0
2175 movaps xmm13
,XMMWORD
[((-48))+rbp
]
2176 movaps XMMWORD
[(-48)+rbp
],xmm0
2177 movaps xmm14
,XMMWORD
[((-32))+rbp
]
2178 movaps XMMWORD
[(-32)+rbp
],xmm0
2179 movaps xmm15
,XMMWORD
[((-16))+rbp
]
2180 movaps XMMWORD
[(-16)+rbp
],xmm0
2181 movaps XMMWORD
[rsp
],xmm0
2182 movaps XMMWORD
[16+rsp
],xmm0
2183 movaps XMMWORD
[32+rsp
],xmm0
2184 movaps XMMWORD
[48+rsp
],xmm0
2185 movaps XMMWORD
[64+rsp
],xmm0
2186 movaps XMMWORD
[80+rsp
],xmm0
2187 movaps XMMWORD
[96+rsp
],xmm0
2190 $L$
xts_enc_epilogue:
2191 mov rdi
,QWORD[8+rsp
] ;WIN64 epilogue
2192 mov rsi
,QWORD[16+rsp
]
2193 DB 0F3h
,0C3h
;repret
2194 $L$
SEH_end_aesni_xts_encrypt:
2195 global aesni_xts_decrypt
2199 mov QWORD[8+rsp
],rdi
;WIN64 prologue
2200 mov QWORD[16+rsp
],rsi
2202 $L$
SEH_begin_aesni_xts_decrypt:
2207 mov r8
,QWORD[40+rsp
]
2208 mov r9
,QWORD[48+rsp
]
2215 movaps XMMWORD
[(-168)+rax
],xmm6
2216 movaps XMMWORD
[(-152)+rax
],xmm7
2217 movaps XMMWORD
[(-136)+rax
],xmm8
2218 movaps XMMWORD
[(-120)+rax
],xmm9
2219 movaps XMMWORD
[(-104)+rax
],xmm10
2220 movaps XMMWORD
[(-88)+rax
],xmm11
2221 movaps XMMWORD
[(-72)+rax
],xmm12
2222 movaps XMMWORD
[(-56)+rax
],xmm13
2223 movaps XMMWORD
[(-40)+rax
],xmm14
2224 movaps XMMWORD
[(-24)+rax
],xmm15
2226 lea rbp
,[((-8))+rax
]
2227 movups xmm2
,XMMWORD
[r9
]
2228 mov eax,DWORD[240+r8
]
2229 mov r10d
,DWORD[240+rcx
]
2230 movups xmm0
,XMMWORD
[r8
]
2231 movups xmm1
,XMMWORD
[16+r8
]
2235 DB 102,15,56,220,209
2237 movups xmm1
,XMMWORD
[r8
]
2239 jnz NEAR $L$oop_enc1_11
2240 DB 102,15,56,221,209
2247 movups xmm0
,XMMWORD
[rcx
]
2254 movups xmm1
,XMMWORD
[16+r10
*1+rcx
]
2256 movdqa xmm8
,XMMWORD
[$L$xts_magic
]
2258 pshufd xmm9
,xmm2
,0x5f
2298 movaps XMMWORD
[96+rsp
],xmm1
2301 jc NEAR $L$xts_dec_short
2304 lea rcx
,[32+r10
*1+r11
]
2306 movups xmm1
,XMMWORD
[16+r11
]
2308 lea r8
,[$L$xts_magic
]
2309 jmp NEAR $L$xts_dec_grandloop
2312 $L$
xts_dec_grandloop:
2313 movdqu xmm2
,XMMWORD
[rdi
]
2315 movdqu xmm3
,XMMWORD
[16+rdi
]
2317 movdqu xmm4
,XMMWORD
[32+rdi
]
2319 DB 102,15,56,222,209
2320 movdqu xmm5
,XMMWORD
[48+rdi
]
2322 DB 102,15,56,222,217
2323 movdqu xmm6
,XMMWORD
[64+rdi
]
2325 DB 102,15,56,222,225
2326 movdqu xmm7
,XMMWORD
[80+rdi
]
2328 movdqa xmm9
,XMMWORD
[96+rsp
]
2330 DB 102,15,56,222,233
2331 movups xmm0
,XMMWORD
[32+r11
]
2336 DB 102,15,56,222,241
2338 movdqa XMMWORD
[rsp
],xmm10
2339 DB 102,15,56,222,249
2340 movups xmm1
,XMMWORD
[48+r11
]
2343 DB 102,15,56,222,208
2345 movdqa XMMWORD
[16+rsp
],xmm11
2346 DB 102,15,56,222,216
2348 movdqa XMMWORD
[32+rsp
],xmm12
2349 DB 102,15,56,222,224
2350 DB 102,15,56,222,232
2352 movdqa XMMWORD
[64+rsp
],xmm14
2353 DB 102,15,56,222,240
2354 DB 102,15,56,222,248
2355 movups xmm0
,XMMWORD
[64+r11
]
2356 movdqa XMMWORD
[80+rsp
],xmm8
2357 pshufd xmm9
,xmm15
,0x5f
2358 jmp NEAR $L$xts_dec_loop6
2361 DB 102,15,56,222,209
2362 DB 102,15,56,222,217
2363 DB 102,15,56,222,225
2364 DB 102,15,56,222,233
2365 DB 102,15,56,222,241
2366 DB 102,15,56,222,249
2367 movups xmm1
,XMMWORD
[((-64))+rax
*1+rcx
]
2370 DB 102,15,56,222,208
2371 DB 102,15,56,222,216
2372 DB 102,15,56,222,224
2373 DB 102,15,56,222,232
2374 DB 102,15,56,222,240
2375 DB 102,15,56,222,248
2376 movups xmm0
,XMMWORD
[((-80))+rax
*1+rcx
]
2377 jnz NEAR $L$xts_dec_loop6
2379 movdqa xmm8
,XMMWORD
[r8
]
2382 DB 102,15,56,222,209
2385 DB 102,15,56,222,217
2387 movups xmm10
,XMMWORD
[r11
]
2388 DB 102,15,56,222,225
2389 DB 102,15,56,222,233
2390 DB 102,15,56,222,241
2393 DB 102,15,56,222,249
2394 movups xmm1
,XMMWORD
[((-64))+rcx
]
2397 DB 102,15,56,222,208
2400 DB 102,15,56,222,216
2403 DB 102,15,56,222,224
2404 DB 102,15,56,222,232
2407 DB 102,15,56,222,240
2410 DB 102,15,56,222,248
2411 movups xmm0
,XMMWORD
[((-48))+rcx
]
2414 DB 102,15,56,222,209
2417 DB 102,15,56,222,217
2420 DB 102,15,56,222,225
2421 DB 102,15,56,222,233
2422 movdqa XMMWORD
[48+rsp
],xmm13
2424 DB 102,15,56,222,241
2427 DB 102,15,56,222,249
2428 movups xmm1
,XMMWORD
[((-32))+rcx
]
2431 DB 102,15,56,222,208
2434 DB 102,15,56,222,216
2437 DB 102,15,56,222,224
2438 DB 102,15,56,222,232
2439 DB 102,15,56,222,240
2442 DB 102,15,56,222,248
2446 DB 102,15,56,222,209
2449 DB 102,15,56,222,217
2452 DB 102,15,56,222,225
2453 DB 102,15,56,222,233
2455 movups xmm0
,XMMWORD
[r11
]
2456 DB 102,15,56,222,241
2457 DB 102,15,56,222,249
2458 movups xmm1
,XMMWORD
[16+r11
]
2461 DB 102,15,56,223,84,36,0
2464 DB 102,15,56,223,92,36,16
2465 DB 102,15,56,223,100,36,32
2468 DB 102,15,56,223,108,36,48
2469 DB 102,15,56,223,116,36,64
2470 DB 102,15,56,223,124,36,80
2474 movups XMMWORD
[(-96)+rsi
],xmm2
2475 movups XMMWORD
[(-80)+rsi
],xmm3
2476 movups XMMWORD
[(-64)+rsi
],xmm4
2477 movups XMMWORD
[(-48)+rsi
],xmm5
2478 movups XMMWORD
[(-32)+rsi
],xmm6
2479 movups XMMWORD
[(-16)+rsi
],xmm7
2481 jnc NEAR $L$xts_dec_grandloop
2494 jz NEAR $L$xts_dec_done
2498 jb NEAR $L$xts_dec_one
2500 je NEAR $L$xts_dec_two
2504 jb NEAR $L$xts_dec_three
2505 je NEAR $L$xts_dec_four
2507 movdqu xmm2
,XMMWORD
[rdi
]
2508 movdqu xmm3
,XMMWORD
[16+rdi
]
2509 movdqu xmm4
,XMMWORD
[32+rdi
]
2511 movdqu xmm5
,XMMWORD
[48+rdi
]
2513 movdqu xmm6
,XMMWORD
[64+rdi
]
2519 call _aesni_decrypt6
2524 movdqu XMMWORD
[rsi
],xmm2
2526 movdqu XMMWORD
[16+rsi
],xmm3
2528 movdqu XMMWORD
[32+rsi
],xmm4
2530 movdqu XMMWORD
[48+rsi
],xmm5
2532 movdqu XMMWORD
[64+rsi
],xmm6
2534 pshufd xmm11
,xmm14
,0x13
2536 jz NEAR $L$xts_dec_ret
2542 jmp NEAR $L$xts_dec_done2
2546 movups xmm2
,XMMWORD
[rdi
]
2549 movups xmm0
,XMMWORD
[rcx
]
2550 movups xmm1
,XMMWORD
[16+rcx
]
2554 DB 102,15,56,222,209
2556 movups xmm1
,XMMWORD
[rcx
]
2558 jnz NEAR $L$oop_dec1_12
2559 DB 102,15,56,223,209
2562 movups XMMWORD
[rsi
],xmm2
2565 jmp NEAR $L$xts_dec_done
2569 movups xmm2
,XMMWORD
[rdi
]
2570 movups xmm3
,XMMWORD
[16+rdi
]
2575 call _aesni_decrypt2
2581 movups XMMWORD
[rsi
],xmm2
2582 movups XMMWORD
[16+rsi
],xmm3
2584 jmp NEAR $L$xts_dec_done
2588 movups xmm2
,XMMWORD
[rdi
]
2589 movups xmm3
,XMMWORD
[16+rdi
]
2590 movups xmm4
,XMMWORD
[32+rdi
]
2596 call _aesni_decrypt3
2603 movups XMMWORD
[rsi
],xmm2
2604 movups XMMWORD
[16+rsi
],xmm3
2605 movups XMMWORD
[32+rsi
],xmm4
2607 jmp NEAR $L$xts_dec_done
2611 movups xmm2
,XMMWORD
[rdi
]
2612 movups xmm3
,XMMWORD
[16+rdi
]
2613 movups xmm4
,XMMWORD
[32+rdi
]
2615 movups xmm5
,XMMWORD
[48+rdi
]
2621 call _aesni_decrypt4
2628 movdqu XMMWORD
[rsi
],xmm2
2630 movdqu XMMWORD
[16+rsi
],xmm3
2631 movdqu XMMWORD
[32+rsi
],xmm4
2632 movdqu XMMWORD
[48+rsi
],xmm5
2634 jmp NEAR $L$xts_dec_done
2639 jz NEAR $L$xts_dec_ret
2645 movups xmm2
,XMMWORD
[rdi
]
2647 movups xmm0
,XMMWORD
[rcx
]
2648 movups xmm1
,XMMWORD
[16+rcx
]
2652 DB 102,15,56,222,209
2654 movups xmm1
,XMMWORD
[rcx
]
2656 jnz NEAR $L$oop_dec1_13
2657 DB 102,15,56,223,209
2659 movups XMMWORD
[rsi
],xmm2
2662 movzx eax,BYTE[16+rdi
]
2669 jnz NEAR $L$xts_dec_steal
2675 movups xmm2
,XMMWORD
[rsi
]
2677 movups xmm0
,XMMWORD
[rcx
]
2678 movups xmm1
,XMMWORD
[16+rcx
]
2682 DB 102,15,56,222,209
2684 movups xmm1
,XMMWORD
[rcx
]
2686 jnz NEAR $L$oop_dec1_14
2687 DB 102,15,56,223,209
2689 movups XMMWORD
[rsi
],xmm2
2698 movaps xmm6
,XMMWORD
[((-160))+rbp
]
2699 movaps XMMWORD
[(-160)+rbp
],xmm0
2700 movaps xmm7
,XMMWORD
[((-144))+rbp
]
2701 movaps XMMWORD
[(-144)+rbp
],xmm0
2702 movaps xmm8
,XMMWORD
[((-128))+rbp
]
2703 movaps XMMWORD
[(-128)+rbp
],xmm0
2704 movaps xmm9
,XMMWORD
[((-112))+rbp
]
2705 movaps XMMWORD
[(-112)+rbp
],xmm0
2706 movaps xmm10
,XMMWORD
[((-96))+rbp
]
2707 movaps XMMWORD
[(-96)+rbp
],xmm0
2708 movaps xmm11
,XMMWORD
[((-80))+rbp
]
2709 movaps XMMWORD
[(-80)+rbp
],xmm0
2710 movaps xmm12
,XMMWORD
[((-64))+rbp
]
2711 movaps XMMWORD
[(-64)+rbp
],xmm0
2712 movaps xmm13
,XMMWORD
[((-48))+rbp
]
2713 movaps XMMWORD
[(-48)+rbp
],xmm0
2714 movaps xmm14
,XMMWORD
[((-32))+rbp
]
2715 movaps XMMWORD
[(-32)+rbp
],xmm0
2716 movaps xmm15
,XMMWORD
[((-16))+rbp
]
2717 movaps XMMWORD
[(-16)+rbp
],xmm0
2718 movaps XMMWORD
[rsp
],xmm0
2719 movaps XMMWORD
[16+rsp
],xmm0
2720 movaps XMMWORD
[32+rsp
],xmm0
2721 movaps XMMWORD
[48+rsp
],xmm0
2722 movaps XMMWORD
[64+rsp
],xmm0
2723 movaps XMMWORD
[80+rsp
],xmm0
2724 movaps XMMWORD
[96+rsp
],xmm0
2727 $L$
xts_dec_epilogue:
2728 mov rdi
,QWORD[8+rsp
] ;WIN64 epilogue
2729 mov rsi
,QWORD[16+rsp
]
2730 DB 0F3h
,0C3h
;repret
2731 $L$
SEH_end_aesni_xts_decrypt:
2732 global aesni_cbc_encrypt
2736 mov QWORD[8+rsp
],rdi
;WIN64 prologue
2737 mov QWORD[16+rsp
],rsi
2739 $L$
SEH_begin_aesni_cbc_encrypt:
2744 mov r8
,QWORD[40+rsp
]
2745 mov r9
,QWORD[48+rsp
]
2751 mov r10d
,DWORD[240+rcx
]
2754 jz NEAR $L
$cbc_decrypt
2756 movups xmm2
,XMMWORD
[r8
]
2759 jb NEAR $L
$cbc_enc_tail
2761 jmp NEAR $L
$cbc_enc_loop
2764 movups xmm3
,XMMWORD
[rdi
]
2767 movups xmm0
,XMMWORD
[rcx
]
2768 movups xmm1
,XMMWORD
[16+rcx
]
2773 DB 102,15,56,220,209
2775 movups xmm1
,XMMWORD
[rcx
]
2777 jnz NEAR $L$oop_enc1_15
2778 DB 102,15,56,221,209
2781 movups XMMWORD
[rsi
],xmm2
2784 jnc NEAR $L
$cbc_enc_loop
2786 jnz NEAR $L
$cbc_enc_tail
2789 movups XMMWORD
[r8
],xmm2
2802 lea rdi
,[((-16))+rdi
]
2807 jmp NEAR $L
$cbc_enc_loop
2812 jne NEAR $L
$cbc_decrypt_bulk
2816 movdqu xmm2
,XMMWORD
[rdi
]
2817 movdqu xmm3
,XMMWORD
[r8
]
2819 movups xmm0
,XMMWORD
[rcx
]
2820 movups xmm1
,XMMWORD
[16+rcx
]
2824 DB 102,15,56,222,209
2826 movups xmm1
,XMMWORD
[rcx
]
2828 jnz NEAR $L$oop_dec1_16
2829 DB 102,15,56,223,209
2832 movdqu XMMWORD
[r8
],xmm4
2835 movups XMMWORD
[rsi
],xmm2
2839 $L
$cbc_decrypt_bulk
:
2844 movaps XMMWORD
[16+rsp
],xmm6
2845 movaps XMMWORD
[32+rsp
],xmm7
2846 movaps XMMWORD
[48+rsp
],xmm8
2847 movaps XMMWORD
[64+rsp
],xmm9
2848 movaps XMMWORD
[80+rsp
],xmm10
2849 movaps XMMWORD
[96+rsp
],xmm11
2850 movaps XMMWORD
[112+rsp
],xmm12
2851 movaps XMMWORD
[128+rsp
],xmm13
2852 movaps XMMWORD
[144+rsp
],xmm14
2853 movaps XMMWORD
[160+rsp
],xmm15
2854 $L
$cbc_decrypt_body
:
2855 lea rbp
,[((-8))+rax
]
2856 movups xmm10
,XMMWORD
[r8
]
2859 jbe NEAR $L
$cbc_dec_tail
2861 movups xmm0
,XMMWORD
[rcx
]
2862 movdqu xmm2
,XMMWORD
[rdi
]
2863 movdqu xmm3
,XMMWORD
[16+rdi
]
2865 movdqu xmm4
,XMMWORD
[32+rdi
]
2867 movdqu xmm5
,XMMWORD
[48+rdi
]
2869 movdqu xmm6
,XMMWORD
[64+rdi
]
2871 movdqu xmm7
,XMMWORD
[80+rdi
]
2873 mov r9d
,DWORD[((OPENSSL_ia32cap_P
+4))]
2875 jbe NEAR $L
$cbc_dec_six_or_seven
2880 je NEAR $L
$cbc_dec_loop
6_enter
2883 jmp NEAR $L
$cbc_dec_loop
8_enter
2886 movups XMMWORD
[rsi
],xmm9
2888 $L
$cbc_dec_loop
8_enter
:
2889 movdqu xmm8
,XMMWORD
[96+rdi
]
2891 movdqu xmm9
,XMMWORD
[112+rdi
]
2893 movups xmm1
,XMMWORD
[((16-112))+rcx
]
2902 DB 102,15,56,222,209
2904 movups xmm0
,XMMWORD
[((32-112))+rcx
]
2905 DB 102,15,56,222,217
2906 DB 102,15,56,222,225
2907 DB 102,15,56,222,233
2908 DB 102,15,56,222,241
2909 DB 102,15,56,222,249
2910 DB 102,68,15,56,222,193
2913 DB 102,68,15,56,222,201
2915 movups xmm1
,XMMWORD
[((48-112))+rcx
]
2916 DB 102,15,56,222,208
2917 DB 102,15,56,222,216
2918 DB 102,15,56,222,224
2919 DB 102,15,56,222,232
2920 DB 102,15,56,222,240
2921 DB 102,15,56,222,248
2922 DB 102,68,15,56,222,192
2923 DB 102,68,15,56,222,200
2924 movups xmm0
,XMMWORD
[((64-112))+rcx
]
2926 DB 102,15,56,222,209
2927 DB 102,15,56,222,217
2928 DB 102,15,56,222,225
2929 DB 102,15,56,222,233
2930 DB 102,15,56,222,241
2931 DB 102,15,56,222,249
2932 DB 102,68,15,56,222,193
2933 DB 102,68,15,56,222,201
2934 movups xmm1
,XMMWORD
[((80-112))+rcx
]
2936 DB 102,15,56,222,208
2937 DB 102,15,56,222,216
2938 DB 102,15,56,222,224
2939 DB 102,15,56,222,232
2940 DB 102,15,56,222,240
2941 DB 102,15,56,222,248
2942 DB 102,68,15,56,222,192
2943 DB 102,68,15,56,222,200
2944 movups xmm0
,XMMWORD
[((96-112))+rcx
]
2946 DB 102,15,56,222,209
2947 DB 102,15,56,222,217
2948 DB 102,15,56,222,225
2949 DB 102,15,56,222,233
2950 DB 102,15,56,222,241
2951 DB 102,15,56,222,249
2952 DB 102,68,15,56,222,193
2953 DB 102,68,15,56,222,201
2954 movups xmm1
,XMMWORD
[((112-112))+rcx
]
2956 DB 102,15,56,222,208
2957 DB 102,15,56,222,216
2958 DB 102,15,56,222,224
2959 DB 102,15,56,222,232
2960 DB 102,15,56,222,240
2961 DB 102,15,56,222,248
2962 DB 102,68,15,56,222,192
2963 DB 102,68,15,56,222,200
2964 movups xmm0
,XMMWORD
[((128-112))+rcx
]
2966 DB 102,15,56,222,209
2967 DB 102,15,56,222,217
2968 DB 102,15,56,222,225
2969 DB 102,15,56,222,233
2970 DB 102,15,56,222,241
2971 DB 102,15,56,222,249
2972 DB 102,68,15,56,222,193
2973 DB 102,68,15,56,222,201
2974 movups xmm1
,XMMWORD
[((144-112))+rcx
]
2976 DB 102,15,56,222,208
2977 DB 102,15,56,222,216
2978 DB 102,15,56,222,224
2979 DB 102,15,56,222,232
2980 DB 102,15,56,222,240
2981 DB 102,15,56,222,248
2982 DB 102,68,15,56,222,192
2983 DB 102,68,15,56,222,200
2984 movups xmm0
,XMMWORD
[((160-112))+rcx
]
2985 jb NEAR $L
$cbc_dec_done
2986 DB 102,15,56,222,209
2987 DB 102,15,56,222,217
2988 DB 102,15,56,222,225
2989 DB 102,15,56,222,233
2990 DB 102,15,56,222,241
2991 DB 102,15,56,222,249
2992 DB 102,68,15,56,222,193
2993 DB 102,68,15,56,222,201
2994 movups xmm1
,XMMWORD
[((176-112))+rcx
]
2996 DB 102,15,56,222,208
2997 DB 102,15,56,222,216
2998 DB 102,15,56,222,224
2999 DB 102,15,56,222,232
3000 DB 102,15,56,222,240
3001 DB 102,15,56,222,248
3002 DB 102,68,15,56,222,192
3003 DB 102,68,15,56,222,200
3004 movups xmm0
,XMMWORD
[((192-112))+rcx
]
3005 je NEAR $L
$cbc_dec_done
3006 DB 102,15,56,222,209
3007 DB 102,15,56,222,217
3008 DB 102,15,56,222,225
3009 DB 102,15,56,222,233
3010 DB 102,15,56,222,241
3011 DB 102,15,56,222,249
3012 DB 102,68,15,56,222,193
3013 DB 102,68,15,56,222,201
3014 movups xmm1
,XMMWORD
[((208-112))+rcx
]
3016 DB 102,15,56,222,208
3017 DB 102,15,56,222,216
3018 DB 102,15,56,222,224
3019 DB 102,15,56,222,232
3020 DB 102,15,56,222,240
3021 DB 102,15,56,222,248
3022 DB 102,68,15,56,222,192
3023 DB 102,68,15,56,222,200
3024 movups xmm0
,XMMWORD
[((224-112))+rcx
]
3025 jmp NEAR $L
$cbc_dec_done
3028 DB 102,15,56,222,209
3029 DB 102,15,56,222,217
3032 DB 102,15,56,222,225
3033 DB 102,15,56,222,233
3036 DB 102,15,56,222,241
3037 DB 102,15,56,222,249
3040 DB 102,68,15,56,222,193
3041 DB 102,68,15,56,222,201
3042 movdqu xmm1
,XMMWORD
[80+rdi
]
3044 DB 102,65,15,56,223,210
3045 movdqu xmm10
,XMMWORD
[96+rdi
]
3047 DB 102,65,15,56,223,219
3049 movdqu xmm0
,XMMWORD
[112+rdi
]
3050 DB 102,65,15,56,223,228
3052 movdqu xmm11
,XMMWORD
[r11
]
3053 DB 102,65,15,56,223,237
3054 DB 102,65,15,56,223,246
3055 movdqu xmm12
,XMMWORD
[16+r11
]
3056 movdqu xmm13
,XMMWORD
[32+r11
]
3057 DB 102,65,15,56,223,255
3058 DB 102,68,15,56,223,193
3059 movdqu xmm14
,XMMWORD
[48+r11
]
3060 movdqu xmm15
,XMMWORD
[64+r11
]
3061 DB 102,69,15,56,223,202
3063 movdqu xmm1
,XMMWORD
[80+r11
]
3064 movups xmm0
,XMMWORD
[((-112))+rcx
]
3066 movups XMMWORD
[rsi
],xmm2
3068 movups XMMWORD
[16+rsi
],xmm3
3070 movups XMMWORD
[32+rsi
],xmm4
3072 movups XMMWORD
[48+rsi
],xmm5
3074 movups XMMWORD
[64+rsi
],xmm6
3076 movups XMMWORD
[80+rsi
],xmm7
3078 movups XMMWORD
[96+rsi
],xmm8
3082 ja NEAR $L
$cbc_dec_loop
8
3085 lea rcx
,[((-112))+rcx
]
3087 jle NEAR $L
$cbc_dec_clear_tail_collected
3088 movups XMMWORD
[rsi
],xmm9
3091 jbe NEAR $L
$cbc_dec_tail
3094 $L
$cbc_dec_six_or_seven
:
3096 ja NEAR $L
$cbc_dec_seven
3099 call _aesni_decrypt6
3103 movdqu XMMWORD
[rsi
],xmm2
3105 movdqu XMMWORD
[16+rsi
],xmm3
3108 movdqu XMMWORD
[32+rsi
],xmm4
3111 movdqu XMMWORD
[48+rsi
],xmm5
3114 movdqu XMMWORD
[64+rsi
],xmm6
3119 jmp NEAR $L
$cbc_dec_tail_collected
3123 movups xmm8
,XMMWORD
[96+rdi
]
3125 call _aesni_decrypt8
3126 movups xmm9
,XMMWORD
[80+rdi
]
3128 movups xmm10
,XMMWORD
[96+rdi
]
3130 movdqu XMMWORD
[rsi
],xmm2
3132 movdqu XMMWORD
[16+rsi
],xmm3
3135 movdqu XMMWORD
[32+rsi
],xmm4
3138 movdqu XMMWORD
[48+rsi
],xmm5
3141 movdqu XMMWORD
[64+rsi
],xmm6
3144 movdqu XMMWORD
[80+rsi
],xmm7
3150 jmp NEAR $L
$cbc_dec_tail_collected
3154 movups XMMWORD
[rsi
],xmm7
3156 movdqu xmm2
,XMMWORD
[rdi
]
3157 movdqu xmm3
,XMMWORD
[16+rdi
]
3159 movdqu xmm4
,XMMWORD
[32+rdi
]
3161 movdqu xmm5
,XMMWORD
[48+rdi
]
3163 movdqu xmm6
,XMMWORD
[64+rdi
]
3165 movdqu xmm7
,XMMWORD
[80+rdi
]
3167 $L
$cbc_dec_loop
6_enter
:
3171 call _aesni_decrypt6
3176 movdqu XMMWORD
[rsi
],xmm2
3178 movdqu XMMWORD
[16+rsi
],xmm3
3180 movdqu XMMWORD
[32+rsi
],xmm4
3183 movdqu XMMWORD
[48+rsi
],xmm5
3186 movdqu XMMWORD
[64+rsi
],xmm6
3189 ja NEAR $L
$cbc_dec_loop
6
3193 jle NEAR $L
$cbc_dec_clear_tail_collected
3194 movups XMMWORD
[rsi
],xmm7
3198 movups xmm2
,XMMWORD
[rdi
]
3200 jbe NEAR $L
$cbc_dec_one
3202 movups xmm3
,XMMWORD
[16+rdi
]
3205 jbe NEAR $L
$cbc_dec_two
3207 movups xmm4
,XMMWORD
[32+rdi
]
3210 jbe NEAR $L
$cbc_dec_three
3212 movups xmm5
,XMMWORD
[48+rdi
]
3215 jbe NEAR $L
$cbc_dec_four
3217 movups xmm6
,XMMWORD
[64+rdi
]
3221 call _aesni_decrypt6
3225 movdqu XMMWORD
[rsi
],xmm2
3227 movdqu XMMWORD
[16+rsi
],xmm3
3230 movdqu XMMWORD
[32+rsi
],xmm4
3233 movdqu XMMWORD
[48+rsi
],xmm5
3240 jmp NEAR $L
$cbc_dec_tail_collected
3245 movups xmm0
,XMMWORD
[rcx
]
3246 movups xmm1
,XMMWORD
[16+rcx
]
3250 DB 102,15,56,222,209
3252 movups xmm1
,XMMWORD
[rcx
]
3254 jnz NEAR $L$oop_dec1_17
3255 DB 102,15,56,223,209
3258 jmp NEAR $L
$cbc_dec_tail_collected
3262 call _aesni_decrypt2
3266 movdqu XMMWORD
[rsi
],xmm2
3270 jmp NEAR $L
$cbc_dec_tail_collected
3274 call _aesni_decrypt3
3278 movdqu XMMWORD
[rsi
],xmm2
3280 movdqu XMMWORD
[16+rsi
],xmm3
3285 jmp NEAR $L
$cbc_dec_tail_collected
3289 call _aesni_decrypt4
3293 movdqu XMMWORD
[rsi
],xmm2
3295 movdqu XMMWORD
[16+rsi
],xmm3
3298 movdqu XMMWORD
[32+rsi
],xmm4
3303 jmp NEAR $L
$cbc_dec_tail_collected
3306 $L
$cbc_dec_clear_tail_collected
:
3310 $L
$cbc_dec_tail_collected
:
3311 movups XMMWORD
[r8
],xmm10
3313 jnz NEAR $L
$cbc_dec_tail_partial
3314 movups XMMWORD
[rsi
],xmm2
3316 jmp NEAR $L
$cbc_dec_ret
3318 $L
$cbc_dec_tail_partial
:
3319 movaps XMMWORD
[rsp
],xmm2
3326 movdqa XMMWORD
[rsp
],xmm2
3331 movaps xmm6
,XMMWORD
[16+rsp
]
3332 movaps XMMWORD
[16+rsp
],xmm0
3333 movaps xmm7
,XMMWORD
[32+rsp
]
3334 movaps XMMWORD
[32+rsp
],xmm0
3335 movaps xmm8
,XMMWORD
[48+rsp
]
3336 movaps XMMWORD
[48+rsp
],xmm0
3337 movaps xmm9
,XMMWORD
[64+rsp
]
3338 movaps XMMWORD
[64+rsp
],xmm0
3339 movaps xmm10
,XMMWORD
[80+rsp
]
3340 movaps XMMWORD
[80+rsp
],xmm0
3341 movaps xmm11
,XMMWORD
[96+rsp
]
3342 movaps XMMWORD
[96+rsp
],xmm0
3343 movaps xmm12
,XMMWORD
[112+rsp
]
3344 movaps XMMWORD
[112+rsp
],xmm0
3345 movaps xmm13
,XMMWORD
[128+rsp
]
3346 movaps XMMWORD
[128+rsp
],xmm0
3347 movaps xmm14
,XMMWORD
[144+rsp
]
3348 movaps XMMWORD
[144+rsp
],xmm0
3349 movaps xmm15
,XMMWORD
[160+rsp
]
3350 movaps XMMWORD
[160+rsp
],xmm0
3354 mov rdi
,QWORD[8+rsp
] ;WIN64 epilogue
3355 mov rsi
,QWORD[16+rsp
]
3356 DB 0F3h
,0C3h
;repret
3357 $L$
SEH_end_aesni_cbc_encrypt:
3358 global aesni_set_decrypt_key
3361 aesni_set_decrypt_key:
3362 DB 0x48,0x83,0xEC,0x08
3363 call __aesni_set_encrypt_key
3366 jnz NEAR $L
$dec_key_ret
3367 lea rcx
,[16+rdx
*1+r8
]
3369 movups xmm0
,XMMWORD
[r8
]
3370 movups xmm1
,XMMWORD
[rcx
]
3371 movups XMMWORD
[rcx
],xmm0
3372 movups XMMWORD
[r8
],xmm1
3374 lea rcx
,[((-16))+rcx
]
3377 movups xmm0
,XMMWORD
[r8
]
3378 movups xmm1
,XMMWORD
[rcx
]
3379 DB 102,15,56,219,192
3380 DB 102,15,56,219,201
3382 lea rcx
,[((-16))+rcx
]
3383 movups XMMWORD
[16+rcx
],xmm0
3384 movups XMMWORD
[(-16)+r8
],xmm1
3386 ja NEAR $L
$dec_key_inverse
3388 movups xmm0
,XMMWORD
[r8
]
3389 DB 102,15,56,219,192
3391 movups XMMWORD
[rcx
],xmm0
3395 DB 0F3h
,0C3h
;repret
3396 $L$
SEH_end_set_decrypt_key:
3398 global aesni_set_encrypt_key
3401 aesni_set_encrypt_key:
3402 __aesni_set_encrypt_key:
3403 DB 0x48,0x83,0xEC,0x08
3406 jz NEAR $L
$enc_key_ret
3408 jz NEAR $L
$enc_key_ret
3411 movups xmm0
,XMMWORD
[rcx
]
3413 and r10d
,DWORD[((OPENSSL_ia32cap_P
+4))]
3420 jne NEAR $L
$bad_keybits
3425 je NEAR $L
$10rounds_alt
3427 movups XMMWORD
[r8
],xmm0
3428 DB 102,15,58,223,200,1
3429 call $L$key_expansion_128_cold
3430 DB 102,15,58,223,200,2
3431 call $L$key_expansion_128
3432 DB 102,15,58,223,200,4
3433 call $L$key_expansion_128
3434 DB 102,15,58,223,200,8
3435 call $L$key_expansion_128
3436 DB 102,15,58,223,200,16
3437 call $L$key_expansion_128
3438 DB 102,15,58,223,200,32
3439 call $L$key_expansion_128
3440 DB 102,15,58,223,200,64
3441 call $L$key_expansion_128
3442 DB 102,15,58,223,200,128
3443 call $L$key_expansion_128
3444 DB 102,15,58,223,200,27
3445 call $L$key_expansion_128
3446 DB 102,15,58,223,200,54
3447 call $L$key_expansion_128
3448 movups XMMWORD
[rax
],xmm0
3449 mov DWORD[80+rax
],edx
3451 jmp NEAR $L
$enc_key_ret
3455 movdqa xmm5
,XMMWORD
[$L$key_rotate
]
3457 movdqa xmm4
,XMMWORD
[$L$key_rcon1
]
3459 movdqu XMMWORD
[r8
],xmm0
3460 jmp NEAR $L$oop_key128
3465 DB 102,15,56,221,196
3478 movdqu XMMWORD
[(-16)+rax
],xmm0
3482 jnz NEAR $L$oop_key128
3484 movdqa xmm4
,XMMWORD
[$L$key_rcon1b
]
3487 DB 102,15,56,221,196
3499 movdqu XMMWORD
[rax
],xmm0
3503 DB 102,15,56,221,196
3514 movdqu XMMWORD
[16+rax
],xmm0
3516 mov DWORD[96+rax
],edx
3518 jmp NEAR $L
$enc_key_ret
3522 movq xmm2
,QWORD[16+rcx
]
3525 je NEAR $L
$12rounds_alt
3527 movups XMMWORD
[r8
],xmm0
3528 DB 102,15,58,223,202,1
3529 call $L$key_expansion_192a_cold
3530 DB 102,15,58,223,202,2
3531 call $L$key_expansion_192b
3532 DB 102,15,58,223,202,4
3533 call $L$key_expansion_192a
3534 DB 102,15,58,223,202,8
3535 call $L$key_expansion_192b
3536 DB 102,15,58,223,202,16
3537 call $L$key_expansion_192a
3538 DB 102,15,58,223,202,32
3539 call $L$key_expansion_192b
3540 DB 102,15,58,223,202,64
3541 call $L$key_expansion_192a
3542 DB 102,15,58,223,202,128
3543 call $L$key_expansion_192b
3544 movups XMMWORD
[rax
],xmm0
3545 mov DWORD[48+rax
],edx
3547 jmp NEAR $L
$enc_key_ret
3551 movdqa xmm5
,XMMWORD
[$L$key_rotate192
]
3552 movdqa xmm4
,XMMWORD
[$L$key_rcon1
]
3554 movdqu XMMWORD
[r8
],xmm0
3555 jmp NEAR $L$oop_key192
3559 movq
QWORD[rax
],xmm2
3562 DB 102,15,56,221,212
3574 pshufd xmm3
,xmm0
,0xff
3581 movdqu XMMWORD
[(-16)+rax
],xmm0
3584 jnz NEAR $L$oop_key192
3586 mov DWORD[32+rax
],edx
3588 jmp NEAR $L
$enc_key_ret
3592 movups xmm2
,XMMWORD
[16+rcx
]
3596 je NEAR $L
$14rounds_alt
3598 movups XMMWORD
[r8
],xmm0
3599 movups XMMWORD
[16+r8
],xmm2
3600 DB 102,15,58,223,202,1
3601 call $L$key_expansion_256a_cold
3602 DB 102,15,58,223,200,1
3603 call $L$key_expansion_256b
3604 DB 102,15,58,223,202,2
3605 call $L$key_expansion_256a
3606 DB 102,15,58,223,200,2
3607 call $L$key_expansion_256b
3608 DB 102,15,58,223,202,4
3609 call $L$key_expansion_256a
3610 DB 102,15,58,223,200,4
3611 call $L$key_expansion_256b
3612 DB 102,15,58,223,202,8
3613 call $L$key_expansion_256a
3614 DB 102,15,58,223,200,8
3615 call $L$key_expansion_256b
3616 DB 102,15,58,223,202,16
3617 call $L$key_expansion_256a
3618 DB 102,15,58,223,200,16
3619 call $L$key_expansion_256b
3620 DB 102,15,58,223,202,32
3621 call $L$key_expansion_256a
3622 DB 102,15,58,223,200,32
3623 call $L$key_expansion_256b
3624 DB 102,15,58,223,202,64
3625 call $L$key_expansion_256a
3626 movups XMMWORD
[rax
],xmm0
3627 mov DWORD[16+rax
],edx
3629 jmp NEAR $L
$enc_key_ret
3633 movdqa xmm5
,XMMWORD
[$L$key_rotate
]
3634 movdqa xmm4
,XMMWORD
[$L$key_rcon1
]
3636 movdqu XMMWORD
[r8
],xmm0
3638 movdqu XMMWORD
[16+r8
],xmm2
3639 jmp NEAR $L$oop_key256
3644 DB 102,15,56,221,212
3656 movdqu XMMWORD
[rax
],xmm0
3659 jz NEAR $L
$done_key
256
3661 pshufd xmm2
,xmm0
,0xff
3663 DB 102,15,56,221,211
3674 movdqu XMMWORD
[16+rax
],xmm2
3678 jmp NEAR $L$oop_key256
3681 mov DWORD[16+rax
],edx
3683 jmp NEAR $L
$enc_key_ret
3696 DB 0F3h
,0C3h
;repret
3697 $L$
SEH_end_set_encrypt_key:
3700 $L$
key_expansion_128:
3701 movups XMMWORD
[rax
],xmm0
3703 $L$
key_expansion_128_cold:
3706 shufps xmm4
,xmm0
,140
3708 shufps xmm1
,xmm1
,255
3710 DB 0F3h
,0C3h
;repret
3713 $L$
key_expansion_192a:
3714 movups XMMWORD
[rax
],xmm0
3716 $L$
key_expansion_192a_cold:
3718 $L$
key_expansion_192b_warm:
3722 shufps xmm4
,xmm0
,140
3728 pshufd xmm3
,xmm0
,255
3730 DB 0F3h
,0C3h
;repret
3733 $L$
key_expansion_192b:
3736 movups XMMWORD
[rax
],xmm5
3738 movups XMMWORD
[16+rax
],xmm3
3740 jmp NEAR $L$key_expansion_192b_warm
3743 $L$
key_expansion_256a:
3744 movups XMMWORD
[rax
],xmm2
3746 $L$
key_expansion_256a_cold:
3749 shufps xmm4
,xmm0
,140
3751 shufps xmm1
,xmm1
,255
3753 DB 0F3h
,0C3h
;repret
3756 $L$
key_expansion_256b:
3757 movups XMMWORD
[rax
],xmm0
3762 shufps xmm4
,xmm2
,140
3764 shufps xmm1
,xmm1
,170
3766 DB 0F3h
,0C3h
;repret
3771 DB 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
3779 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
3781 DD 0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d
3783 DD 0x04070605,0x04070605,0x04070605,0x04070605
3787 DD 0x1b,0x1b,0x1b,0x1b
3789 DB 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69
3790 DB 83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83
3791 DB 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115
3792 DB 115,108,46,111,114,103,62,0
3794 EXTERN __imp_RtlVirtualUnwind
3797 ecb_ccm64_se_handler:
3809 mov rax
,QWORD[120+r8
]
3810 mov rbx
,QWORD[248+r8
]
3813 mov r11
,QWORD[56+r9
]
3818 jb NEAR $L
$common_seh_tail
3820 mov rax
,QWORD[152+r8
]
3822 mov r10d
,DWORD[4+r11
]
3825 jae NEAR $L
$common_seh_tail
3833 jmp NEAR $L
$common_seh_tail
3850 mov rax
,QWORD[120+r8
]
3851 mov rbx
,QWORD[248+r8
]
3854 mov r11
,QWORD[56+r9
]
3859 jb NEAR $L
$common_seh_tail
3861 mov rax
,QWORD[152+r8
]
3863 mov r10d
,DWORD[4+r11
]
3866 jae NEAR $L
$common_seh_tail
3868 mov rax
,QWORD[160+r8
]
3869 lea rsi
,[((-160))+rax
]
3874 jmp NEAR $L
$common_rbp_tail
3890 mov rax
,QWORD[152+r8
]
3891 mov rbx
,QWORD[248+r8
]
3893 lea r10
,[$L
$cbc_decrypt_bulk
]
3895 jb NEAR $L
$common_seh_tail
3897 lea r10
,[$L
$cbc_decrypt_body
]
3899 jb NEAR $L$restore_cbc_rax
3901 lea r10
,[$L
$cbc_ret
]
3903 jae NEAR $L
$common_seh_tail
3911 mov rax
,QWORD[160+r8
]
3914 mov QWORD[160+r8
],rbp
3915 jmp NEAR $L
$common_seh_tail
3918 mov rax
,QWORD[120+r8
]
3921 mov rdi
,QWORD[8+rax
]
3922 mov rsi
,QWORD[16+rax
]
3923 mov QWORD[152+r8
],rax
3924 mov QWORD[168+r8
],rsi
3925 mov QWORD[176+r8
],rdi
3927 mov rdi
,QWORD[40+r9
]
3934 mov rdx
,QWORD[8+rsi
]
3936 mov r9
,QWORD[16+rsi
]
3937 mov r10
,QWORD[40+rsi
]
3940 mov QWORD[32+rsp
],r10
3941 mov QWORD[40+rsp
],r11
3942 mov QWORD[48+rsp
],r12
3943 mov QWORD[56+rsp
],rcx
3944 call QWORD[__imp_RtlVirtualUnwind
]
3957 DB 0F3h
,0C3h
;repret
3960 section .pdata rdata
align=4
3962 DD $L$SEH_begin_aesni_ecb_encrypt wrt ..imagebase
3963 DD $L$SEH_end_aesni_ecb_encrypt wrt ..imagebase
3964 DD $L$SEH_info_ecb wrt ..imagebase
3966 DD $L$SEH_begin_aesni_ccm64_encrypt_blocks wrt ..imagebase
3967 DD $L$SEH_end_aesni_ccm64_encrypt_blocks wrt ..imagebase
3968 DD $L$SEH_info_ccm64_enc wrt ..imagebase
3970 DD $L$SEH_begin_aesni_ccm64_decrypt_blocks wrt ..imagebase
3971 DD $L$SEH_end_aesni_ccm64_decrypt_blocks wrt ..imagebase
3972 DD $L$SEH_info_ccm64_dec wrt ..imagebase
3974 DD $L$SEH_begin_aesni_ctr32_encrypt_blocks wrt ..imagebase
3975 DD $L$SEH_end_aesni_ctr32_encrypt_blocks wrt ..imagebase
3976 DD $L$SEH_info_ctr32 wrt ..imagebase
3978 DD $L$SEH_begin_aesni_xts_encrypt wrt ..imagebase
3979 DD $L$SEH_end_aesni_xts_encrypt wrt ..imagebase
3980 DD $L$SEH_info_xts_enc wrt ..imagebase
3982 DD $L$SEH_begin_aesni_xts_decrypt wrt ..imagebase
3983 DD $L$SEH_end_aesni_xts_decrypt wrt ..imagebase
3984 DD $L$SEH_info_xts_dec wrt ..imagebase
3985 DD $L$SEH_begin_aesni_cbc_encrypt wrt ..imagebase
3986 DD $L$SEH_end_aesni_cbc_encrypt wrt ..imagebase
3987 DD $L$SEH_info_cbc wrt ..imagebase
3989 DD aesni_set_decrypt_key wrt ..imagebase
3990 DD $L$SEH_end_set_decrypt_key wrt ..imagebase
3991 DD $L$SEH_info_key wrt ..imagebase
3993 DD aesni_set_encrypt_key wrt ..imagebase
3994 DD $L$SEH_end_set_encrypt_key wrt ..imagebase
3995 DD $L$SEH_info_key wrt ..imagebase
3996 section .xdata rdata
align=8
4000 DD ecb_ccm64_se_handler wrt ..imagebase
4001 DD $L
$ecb_enc_body wrt ..imagebase
,$L
$ecb_enc_ret wrt ..imagebase
4002 $L$
SEH_info_ccm64_enc:
4004 DD ecb_ccm64_se_handler wrt ..imagebase
4005 DD $L
$ccm
64_enc_body wrt ..imagebase
,$L
$ccm
64_enc_ret wrt ..imagebase
4006 $L$
SEH_info_ccm64_dec:
4008 DD ecb_ccm64_se_handler wrt ..imagebase
4009 DD $L
$ccm
64_dec_body wrt ..imagebase
,$L
$ccm
64_dec_ret wrt ..imagebase
4012 DD ctr_xts_se_handler wrt ..imagebase
4013 DD $L
$ctr
32_body wrt ..imagebase
,$L
$ctr
32_epilogue wrt ..imagebase
4014 $L$
SEH_info_xts_enc:
4016 DD ctr_xts_se_handler wrt ..imagebase
4017 DD $L$xts_enc_body wrt ..imagebase
,$L$xts_enc_epilogue wrt ..imagebase
4018 $L$
SEH_info_xts_dec:
4020 DD ctr_xts_se_handler wrt ..imagebase
4021 DD $L$xts_dec_body wrt ..imagebase
,$L$xts_dec_epilogue wrt ..imagebase
4024 DD cbc_se_handler wrt ..imagebase
4026 DB 0x01,0x04,0x01,0x00
4027 DB 0x04,0x02,0x00,0x00