Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(485)

Unified Diff: third_party/boringssl/win-x86/crypto/aes/aesni-x86.asm

Issue 2354623003: Pull boringssl generated source from boringssl_gen (Closed)
Patch Set: . Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/boringssl/win-x86/crypto/aes/aesni-x86.asm
diff --git a/third_party/boringssl/win-x86/crypto/aes/aesni-x86.asm b/third_party/boringssl/win-x86/crypto/aes/aesni-x86.asm
deleted file mode 100644
index a9a595653f08275d9b7788885031c2960d123e67..0000000000000000000000000000000000000000
--- a/third_party/boringssl/win-x86/crypto/aes/aesni-x86.asm
+++ /dev/null
@@ -1,2424 +0,0 @@
-%ifidn __OUTPUT_FORMAT__,obj
-section code use32 class=code align=64
-%elifidn __OUTPUT_FORMAT__,win32
-%ifdef __YASM_VERSION_ID__
-%if __YASM_VERSION_ID__ < 01010000h
-%error yasm version 1.1.0 or later needed.
-%endif
-; Yasm automatically includes .00 and complains about redefining it.
-; https://www.tortall.net/projects/yasm/manual/html/objfmt-win32-safeseh.html
-%else
-$@feat.00 equ 1
-%endif
-section .text code align=64
-%else
-section .text code
-%endif
-;extern _OPENSSL_ia32cap_P
-global _aesni_encrypt
-align 16
-_aesni_encrypt:
-L$_aesni_encrypt_begin:
- mov eax,DWORD [4+esp]
- mov edx,DWORD [12+esp]
- movups xmm2,[eax]
- mov ecx,DWORD [240+edx]
- mov eax,DWORD [8+esp]
- movups xmm0,[edx]
- movups xmm1,[16+edx]
- lea edx,[32+edx]
- xorps xmm2,xmm0
-L$000enc1_loop_1:
-db 102,15,56,220,209
- dec ecx
- movups xmm1,[edx]
- lea edx,[16+edx]
- jnz NEAR L$000enc1_loop_1
-db 102,15,56,221,209
- pxor xmm0,xmm0
- pxor xmm1,xmm1
- movups [eax],xmm2
- pxor xmm2,xmm2
- ret
-global _aesni_decrypt
-align 16
-_aesni_decrypt:
-L$_aesni_decrypt_begin:
- mov eax,DWORD [4+esp]
- mov edx,DWORD [12+esp]
- movups xmm2,[eax]
- mov ecx,DWORD [240+edx]
- mov eax,DWORD [8+esp]
- movups xmm0,[edx]
- movups xmm1,[16+edx]
- lea edx,[32+edx]
- xorps xmm2,xmm0
-L$001dec1_loop_2:
-db 102,15,56,222,209
- dec ecx
- movups xmm1,[edx]
- lea edx,[16+edx]
- jnz NEAR L$001dec1_loop_2
-db 102,15,56,223,209
- pxor xmm0,xmm0
- pxor xmm1,xmm1
- movups [eax],xmm2
- pxor xmm2,xmm2
- ret
-align 16
-__aesni_encrypt2:
- movups xmm0,[edx]
- shl ecx,4
- movups xmm1,[16+edx]
- xorps xmm2,xmm0
- pxor xmm3,xmm0
- movups xmm0,[32+edx]
- lea edx,[32+ecx*1+edx]
- neg ecx
- add ecx,16
-L$002enc2_loop:
-db 102,15,56,220,209
-db 102,15,56,220,217
- movups xmm1,[ecx*1+edx]
- add ecx,32
-db 102,15,56,220,208
-db 102,15,56,220,216
- movups xmm0,[ecx*1+edx-16]
- jnz NEAR L$002enc2_loop
-db 102,15,56,220,209
-db 102,15,56,220,217
-db 102,15,56,221,208
-db 102,15,56,221,216
- ret
-align 16
-__aesni_decrypt2:
- movups xmm0,[edx]
- shl ecx,4
- movups xmm1,[16+edx]
- xorps xmm2,xmm0
- pxor xmm3,xmm0
- movups xmm0,[32+edx]
- lea edx,[32+ecx*1+edx]
- neg ecx
- add ecx,16
-L$003dec2_loop:
-db 102,15,56,222,209
-db 102,15,56,222,217
- movups xmm1,[ecx*1+edx]
- add ecx,32
-db 102,15,56,222,208
-db 102,15,56,222,216
- movups xmm0,[ecx*1+edx-16]
- jnz NEAR L$003dec2_loop
-db 102,15,56,222,209
-db 102,15,56,222,217
-db 102,15,56,223,208
-db 102,15,56,223,216
- ret
-align 16
-__aesni_encrypt3:
- movups xmm0,[edx]
- shl ecx,4
- movups xmm1,[16+edx]
- xorps xmm2,xmm0
- pxor xmm3,xmm0
- pxor xmm4,xmm0
- movups xmm0,[32+edx]
- lea edx,[32+ecx*1+edx]
- neg ecx
- add ecx,16
-L$004enc3_loop:
-db 102,15,56,220,209
-db 102,15,56,220,217
-db 102,15,56,220,225
- movups xmm1,[ecx*1+edx]
- add ecx,32
-db 102,15,56,220,208
-db 102,15,56,220,216
-db 102,15,56,220,224
- movups xmm0,[ecx*1+edx-16]
- jnz NEAR L$004enc3_loop
-db 102,15,56,220,209
-db 102,15,56,220,217
-db 102,15,56,220,225
-db 102,15,56,221,208
-db 102,15,56,221,216
-db 102,15,56,221,224
- ret
-align 16
-__aesni_decrypt3:
- movups xmm0,[edx]
- shl ecx,4
- movups xmm1,[16+edx]
- xorps xmm2,xmm0
- pxor xmm3,xmm0
- pxor xmm4,xmm0
- movups xmm0,[32+edx]
- lea edx,[32+ecx*1+edx]
- neg ecx
- add ecx,16
-L$005dec3_loop:
-db 102,15,56,222,209
-db 102,15,56,222,217
-db 102,15,56,222,225
- movups xmm1,[ecx*1+edx]
- add ecx,32
-db 102,15,56,222,208
-db 102,15,56,222,216
-db 102,15,56,222,224
- movups xmm0,[ecx*1+edx-16]
- jnz NEAR L$005dec3_loop
-db 102,15,56,222,209
-db 102,15,56,222,217
-db 102,15,56,222,225
-db 102,15,56,223,208
-db 102,15,56,223,216
-db 102,15,56,223,224
- ret
-align 16
-__aesni_encrypt4:
- movups xmm0,[edx]
- movups xmm1,[16+edx]
- shl ecx,4
- xorps xmm2,xmm0
- pxor xmm3,xmm0
- pxor xmm4,xmm0
- pxor xmm5,xmm0
- movups xmm0,[32+edx]
- lea edx,[32+ecx*1+edx]
- neg ecx
-db 15,31,64,0
- add ecx,16
-L$006enc4_loop:
-db 102,15,56,220,209
-db 102,15,56,220,217
-db 102,15,56,220,225
-db 102,15,56,220,233
- movups xmm1,[ecx*1+edx]
- add ecx,32
-db 102,15,56,220,208
-db 102,15,56,220,216
-db 102,15,56,220,224
-db 102,15,56,220,232
- movups xmm0,[ecx*1+edx-16]
- jnz NEAR L$006enc4_loop
-db 102,15,56,220,209
-db 102,15,56,220,217
-db 102,15,56,220,225
-db 102,15,56,220,233
-db 102,15,56,221,208
-db 102,15,56,221,216
-db 102,15,56,221,224
-db 102,15,56,221,232
- ret
-align 16
-__aesni_decrypt4:
- movups xmm0,[edx]
- movups xmm1,[16+edx]
- shl ecx,4
- xorps xmm2,xmm0
- pxor xmm3,xmm0
- pxor xmm4,xmm0
- pxor xmm5,xmm0
- movups xmm0,[32+edx]
- lea edx,[32+ecx*1+edx]
- neg ecx
-db 15,31,64,0
- add ecx,16
-L$007dec4_loop:
-db 102,15,56,222,209
-db 102,15,56,222,217
-db 102,15,56,222,225
-db 102,15,56,222,233
- movups xmm1,[ecx*1+edx]
- add ecx,32
-db 102,15,56,222,208
-db 102,15,56,222,216
-db 102,15,56,222,224
-db 102,15,56,222,232
- movups xmm0,[ecx*1+edx-16]
- jnz NEAR L$007dec4_loop
-db 102,15,56,222,209
-db 102,15,56,222,217
-db 102,15,56,222,225
-db 102,15,56,222,233
-db 102,15,56,223,208
-db 102,15,56,223,216
-db 102,15,56,223,224
-db 102,15,56,223,232
- ret
-align 16
-__aesni_encrypt6:
- movups xmm0,[edx]
- shl ecx,4
- movups xmm1,[16+edx]
- xorps xmm2,xmm0
- pxor xmm3,xmm0
- pxor xmm4,xmm0
-db 102,15,56,220,209
- pxor xmm5,xmm0
- pxor xmm6,xmm0
-db 102,15,56,220,217
- lea edx,[32+ecx*1+edx]
- neg ecx
-db 102,15,56,220,225
- pxor xmm7,xmm0
- movups xmm0,[ecx*1+edx]
- add ecx,16
- jmp NEAR L$008_aesni_encrypt6_inner
-align 16
-L$009enc6_loop:
-db 102,15,56,220,209
-db 102,15,56,220,217
-db 102,15,56,220,225
-L$008_aesni_encrypt6_inner:
-db 102,15,56,220,233
-db 102,15,56,220,241
-db 102,15,56,220,249
-L$_aesni_encrypt6_enter:
- movups xmm1,[ecx*1+edx]
- add ecx,32
-db 102,15,56,220,208
-db 102,15,56,220,216
-db 102,15,56,220,224
-db 102,15,56,220,232
-db 102,15,56,220,240
-db 102,15,56,220,248
- movups xmm0,[ecx*1+edx-16]
- jnz NEAR L$009enc6_loop
-db 102,15,56,220,209
-db 102,15,56,220,217
-db 102,15,56,220,225
-db 102,15,56,220,233
-db 102,15,56,220,241
-db 102,15,56,220,249
-db 102,15,56,221,208
-db 102,15,56,221,216
-db 102,15,56,221,224
-db 102,15,56,221,232
-db 102,15,56,221,240
-db 102,15,56,221,248
- ret
-align 16
-__aesni_decrypt6:
- movups xmm0,[edx]
- shl ecx,4
- movups xmm1,[16+edx]
- xorps xmm2,xmm0
- pxor xmm3,xmm0
- pxor xmm4,xmm0
-db 102,15,56,222,209
- pxor xmm5,xmm0
- pxor xmm6,xmm0
-db 102,15,56,222,217
- lea edx,[32+ecx*1+edx]
- neg ecx
-db 102,15,56,222,225
- pxor xmm7,xmm0
- movups xmm0,[ecx*1+edx]
- add ecx,16
- jmp NEAR L$010_aesni_decrypt6_inner
-align 16
-L$011dec6_loop:
-db 102,15,56,222,209
-db 102,15,56,222,217
-db 102,15,56,222,225
-L$010_aesni_decrypt6_inner:
-db 102,15,56,222,233
-db 102,15,56,222,241
-db 102,15,56,222,249
-L$_aesni_decrypt6_enter:
- movups xmm1,[ecx*1+edx]
- add ecx,32
-db 102,15,56,222,208
-db 102,15,56,222,216
-db 102,15,56,222,224
-db 102,15,56,222,232
-db 102,15,56,222,240
-db 102,15,56,222,248
- movups xmm0,[ecx*1+edx-16]
- jnz NEAR L$011dec6_loop
-db 102,15,56,222,209
-db 102,15,56,222,217
-db 102,15,56,222,225
-db 102,15,56,222,233
-db 102,15,56,222,241
-db 102,15,56,222,249
-db 102,15,56,223,208
-db 102,15,56,223,216
-db 102,15,56,223,224
-db 102,15,56,223,232
-db 102,15,56,223,240
-db 102,15,56,223,248
- ret
-global _aesni_ecb_encrypt
-align 16
-_aesni_ecb_encrypt:
-L$_aesni_ecb_encrypt_begin:
- push ebp
- push ebx
- push esi
- push edi
- mov esi,DWORD [20+esp]
- mov edi,DWORD [24+esp]
- mov eax,DWORD [28+esp]
- mov edx,DWORD [32+esp]
- mov ebx,DWORD [36+esp]
- and eax,-16
- jz NEAR L$012ecb_ret
- mov ecx,DWORD [240+edx]
- test ebx,ebx
- jz NEAR L$013ecb_decrypt
- mov ebp,edx
- mov ebx,ecx
- cmp eax,96
- jb NEAR L$014ecb_enc_tail
- movdqu xmm2,[esi]
- movdqu xmm3,[16+esi]
- movdqu xmm4,[32+esi]
- movdqu xmm5,[48+esi]
- movdqu xmm6,[64+esi]
- movdqu xmm7,[80+esi]
- lea esi,[96+esi]
- sub eax,96
- jmp NEAR L$015ecb_enc_loop6_enter
-align 16
-L$016ecb_enc_loop6:
- movups [edi],xmm2
- movdqu xmm2,[esi]
- movups [16+edi],xmm3
- movdqu xmm3,[16+esi]
- movups [32+edi],xmm4
- movdqu xmm4,[32+esi]
- movups [48+edi],xmm5
- movdqu xmm5,[48+esi]
- movups [64+edi],xmm6
- movdqu xmm6,[64+esi]
- movups [80+edi],xmm7
- lea edi,[96+edi]
- movdqu xmm7,[80+esi]
- lea esi,[96+esi]
-L$015ecb_enc_loop6_enter:
- call __aesni_encrypt6
- mov edx,ebp
- mov ecx,ebx
- sub eax,96
- jnc NEAR L$016ecb_enc_loop6
- movups [edi],xmm2
- movups [16+edi],xmm3
- movups [32+edi],xmm4
- movups [48+edi],xmm5
- movups [64+edi],xmm6
- movups [80+edi],xmm7
- lea edi,[96+edi]
- add eax,96
- jz NEAR L$012ecb_ret
-L$014ecb_enc_tail:
- movups xmm2,[esi]
- cmp eax,32
- jb NEAR L$017ecb_enc_one
- movups xmm3,[16+esi]
- je NEAR L$018ecb_enc_two
- movups xmm4,[32+esi]
- cmp eax,64
- jb NEAR L$019ecb_enc_three
- movups xmm5,[48+esi]
- je NEAR L$020ecb_enc_four
- movups xmm6,[64+esi]
- xorps xmm7,xmm7
- call __aesni_encrypt6
- movups [edi],xmm2
- movups [16+edi],xmm3
- movups [32+edi],xmm4
- movups [48+edi],xmm5
- movups [64+edi],xmm6
- jmp NEAR L$012ecb_ret
-align 16
-L$017ecb_enc_one:
- movups xmm0,[edx]
- movups xmm1,[16+edx]
- lea edx,[32+edx]
- xorps xmm2,xmm0
-L$021enc1_loop_3:
-db 102,15,56,220,209
- dec ecx
- movups xmm1,[edx]
- lea edx,[16+edx]
- jnz NEAR L$021enc1_loop_3
-db 102,15,56,221,209
- movups [edi],xmm2
- jmp NEAR L$012ecb_ret
-align 16
-L$018ecb_enc_two:
- call __aesni_encrypt2
- movups [edi],xmm2
- movups [16+edi],xmm3
- jmp NEAR L$012ecb_ret
-align 16
-L$019ecb_enc_three:
- call __aesni_encrypt3
- movups [edi],xmm2
- movups [16+edi],xmm3
- movups [32+edi],xmm4
- jmp NEAR L$012ecb_ret
-align 16
-L$020ecb_enc_four:
- call __aesni_encrypt4
- movups [edi],xmm2
- movups [16+edi],xmm3
- movups [32+edi],xmm4
- movups [48+edi],xmm5
- jmp NEAR L$012ecb_ret
-align 16
-L$013ecb_decrypt:
- mov ebp,edx
- mov ebx,ecx
- cmp eax,96
- jb NEAR L$022ecb_dec_tail
- movdqu xmm2,[esi]
- movdqu xmm3,[16+esi]
- movdqu xmm4,[32+esi]
- movdqu xmm5,[48+esi]
- movdqu xmm6,[64+esi]
- movdqu xmm7,[80+esi]
- lea esi,[96+esi]
- sub eax,96
- jmp NEAR L$023ecb_dec_loop6_enter
-align 16
-L$024ecb_dec_loop6:
- movups [edi],xmm2
- movdqu xmm2,[esi]
- movups [16+edi],xmm3
- movdqu xmm3,[16+esi]
- movups [32+edi],xmm4
- movdqu xmm4,[32+esi]
- movups [48+edi],xmm5
- movdqu xmm5,[48+esi]
- movups [64+edi],xmm6
- movdqu xmm6,[64+esi]
- movups [80+edi],xmm7
- lea edi,[96+edi]
- movdqu xmm7,[80+esi]
- lea esi,[96+esi]
-L$023ecb_dec_loop6_enter:
- call __aesni_decrypt6
- mov edx,ebp
- mov ecx,ebx
- sub eax,96
- jnc NEAR L$024ecb_dec_loop6
- movups [edi],xmm2
- movups [16+edi],xmm3
- movups [32+edi],xmm4
- movups [48+edi],xmm5
- movups [64+edi],xmm6
- movups [80+edi],xmm7
- lea edi,[96+edi]
- add eax,96
- jz NEAR L$012ecb_ret
-L$022ecb_dec_tail:
- movups xmm2,[esi]
- cmp eax,32
- jb NEAR L$025ecb_dec_one
- movups xmm3,[16+esi]
- je NEAR L$026ecb_dec_two
- movups xmm4,[32+esi]
- cmp eax,64
- jb NEAR L$027ecb_dec_three
- movups xmm5,[48+esi]
- je NEAR L$028ecb_dec_four
- movups xmm6,[64+esi]
- xorps xmm7,xmm7
- call __aesni_decrypt6
- movups [edi],xmm2
- movups [16+edi],xmm3
- movups [32+edi],xmm4
- movups [48+edi],xmm5
- movups [64+edi],xmm6
- jmp NEAR L$012ecb_ret
-align 16
-L$025ecb_dec_one:
- movups xmm0,[edx]
- movups xmm1,[16+edx]
- lea edx,[32+edx]
- xorps xmm2,xmm0
-L$029dec1_loop_4:
-db 102,15,56,222,209
- dec ecx
- movups xmm1,[edx]
- lea edx,[16+edx]
- jnz NEAR L$029dec1_loop_4
-db 102,15,56,223,209
- movups [edi],xmm2
- jmp NEAR L$012ecb_ret
-align 16
-L$026ecb_dec_two:
- call __aesni_decrypt2
- movups [edi],xmm2
- movups [16+edi],xmm3
- jmp NEAR L$012ecb_ret
-align 16
-L$027ecb_dec_three:
- call __aesni_decrypt3
- movups [edi],xmm2
- movups [16+edi],xmm3
- movups [32+edi],xmm4
- jmp NEAR L$012ecb_ret
-align 16
-L$028ecb_dec_four:
- call __aesni_decrypt4
- movups [edi],xmm2
- movups [16+edi],xmm3
- movups [32+edi],xmm4
- movups [48+edi],xmm5
-L$012ecb_ret:
- pxor xmm0,xmm0
- pxor xmm1,xmm1
- pxor xmm2,xmm2
- pxor xmm3,xmm3
- pxor xmm4,xmm4
- pxor xmm5,xmm5
- pxor xmm6,xmm6
- pxor xmm7,xmm7
- pop edi
- pop esi
- pop ebx
- pop ebp
- ret
-global _aesni_ccm64_encrypt_blocks
-align 16
-_aesni_ccm64_encrypt_blocks:
-L$_aesni_ccm64_encrypt_blocks_begin:
- push ebp
- push ebx
- push esi
- push edi
- mov esi,DWORD [20+esp]
- mov edi,DWORD [24+esp]
- mov eax,DWORD [28+esp]
- mov edx,DWORD [32+esp]
- mov ebx,DWORD [36+esp]
- mov ecx,DWORD [40+esp]
- mov ebp,esp
- sub esp,60
- and esp,-16
- mov DWORD [48+esp],ebp
- movdqu xmm7,[ebx]
- movdqu xmm3,[ecx]
- mov ecx,DWORD [240+edx]
- mov DWORD [esp],202182159
- mov DWORD [4+esp],134810123
- mov DWORD [8+esp],67438087
- mov DWORD [12+esp],66051
- mov ebx,1
- xor ebp,ebp
- mov DWORD [16+esp],ebx
- mov DWORD [20+esp],ebp
- mov DWORD [24+esp],ebp
- mov DWORD [28+esp],ebp
- shl ecx,4
- mov ebx,16
- lea ebp,[edx]
- movdqa xmm5,[esp]
- movdqa xmm2,xmm7
- lea edx,[32+ecx*1+edx]
- sub ebx,ecx
-db 102,15,56,0,253
-L$030ccm64_enc_outer:
- movups xmm0,[ebp]
- mov ecx,ebx
- movups xmm6,[esi]
- xorps xmm2,xmm0
- movups xmm1,[16+ebp]
- xorps xmm0,xmm6
- xorps xmm3,xmm0
- movups xmm0,[32+ebp]
-L$031ccm64_enc2_loop:
-db 102,15,56,220,209
-db 102,15,56,220,217
- movups xmm1,[ecx*1+edx]
- add ecx,32
-db 102,15,56,220,208
-db 102,15,56,220,216
- movups xmm0,[ecx*1+edx-16]
- jnz NEAR L$031ccm64_enc2_loop
-db 102,15,56,220,209
-db 102,15,56,220,217
- paddq xmm7,[16+esp]
- dec eax
-db 102,15,56,221,208
-db 102,15,56,221,216
- lea esi,[16+esi]
- xorps xmm6,xmm2
- movdqa xmm2,xmm7
- movups [edi],xmm6
-db 102,15,56,0,213
- lea edi,[16+edi]
- jnz NEAR L$030ccm64_enc_outer
- mov esp,DWORD [48+esp]
- mov edi,DWORD [40+esp]
- movups [edi],xmm3
- pxor xmm0,xmm0
- pxor xmm1,xmm1
- pxor xmm2,xmm2
- pxor xmm3,xmm3
- pxor xmm4,xmm4
- pxor xmm5,xmm5
- pxor xmm6,xmm6
- pxor xmm7,xmm7
- pop edi
- pop esi
- pop ebx
- pop ebp
- ret
-global _aesni_ccm64_decrypt_blocks
-align 16
-_aesni_ccm64_decrypt_blocks:
-L$_aesni_ccm64_decrypt_blocks_begin:
- push ebp
- push ebx
- push esi
- push edi
- mov esi,DWORD [20+esp]
- mov edi,DWORD [24+esp]
- mov eax,DWORD [28+esp]
- mov edx,DWORD [32+esp]
- mov ebx,DWORD [36+esp]
- mov ecx,DWORD [40+esp]
- mov ebp,esp
- sub esp,60
- and esp,-16
- mov DWORD [48+esp],ebp
- movdqu xmm7,[ebx]
- movdqu xmm3,[ecx]
- mov ecx,DWORD [240+edx]
- mov DWORD [esp],202182159
- mov DWORD [4+esp],134810123
- mov DWORD [8+esp],67438087
- mov DWORD [12+esp],66051
- mov ebx,1
- xor ebp,ebp
- mov DWORD [16+esp],ebx
- mov DWORD [20+esp],ebp
- mov DWORD [24+esp],ebp
- mov DWORD [28+esp],ebp
- movdqa xmm5,[esp]
- movdqa xmm2,xmm7
- mov ebp,edx
- mov ebx,ecx
-db 102,15,56,0,253
- movups xmm0,[edx]
- movups xmm1,[16+edx]
- lea edx,[32+edx]
- xorps xmm2,xmm0
-L$032enc1_loop_5:
-db 102,15,56,220,209
- dec ecx
- movups xmm1,[edx]
- lea edx,[16+edx]
- jnz NEAR L$032enc1_loop_5
-db 102,15,56,221,209
- shl ebx,4
- mov ecx,16
- movups xmm6,[esi]
- paddq xmm7,[16+esp]
- lea esi,[16+esi]
- sub ecx,ebx
- lea edx,[32+ebx*1+ebp]
- mov ebx,ecx
- jmp NEAR L$033ccm64_dec_outer
-align 16
-L$033ccm64_dec_outer:
- xorps xmm6,xmm2
- movdqa xmm2,xmm7
- movups [edi],xmm6
- lea edi,[16+edi]
-db 102,15,56,0,213
- sub eax,1
- jz NEAR L$034ccm64_dec_break
- movups xmm0,[ebp]
- mov ecx,ebx
- movups xmm1,[16+ebp]
- xorps xmm6,xmm0
- xorps xmm2,xmm0
- xorps xmm3,xmm6
- movups xmm0,[32+ebp]
-L$035ccm64_dec2_loop:
-db 102,15,56,220,209
-db 102,15,56,220,217
- movups xmm1,[ecx*1+edx]
- add ecx,32
-db 102,15,56,220,208
-db 102,15,56,220,216
- movups xmm0,[ecx*1+edx-16]
- jnz NEAR L$035ccm64_dec2_loop
- movups xmm6,[esi]
- paddq xmm7,[16+esp]
-db 102,15,56,220,209
-db 102,15,56,220,217
-db 102,15,56,221,208
-db 102,15,56,221,216
- lea esi,[16+esi]
- jmp NEAR L$033ccm64_dec_outer
-align 16
-L$034ccm64_dec_break:
- mov ecx,DWORD [240+ebp]
- mov edx,ebp
- movups xmm0,[edx]
- movups xmm1,[16+edx]
- xorps xmm6,xmm0
- lea edx,[32+edx]
- xorps xmm3,xmm6
-L$036enc1_loop_6:
-db 102,15,56,220,217
- dec ecx
- movups xmm1,[edx]
- lea edx,[16+edx]
- jnz NEAR L$036enc1_loop_6
-db 102,15,56,221,217
- mov esp,DWORD [48+esp]
- mov edi,DWORD [40+esp]
- movups [edi],xmm3
- pxor xmm0,xmm0
- pxor xmm1,xmm1
- pxor xmm2,xmm2
- pxor xmm3,xmm3
- pxor xmm4,xmm4
- pxor xmm5,xmm5
- pxor xmm6,xmm6
- pxor xmm7,xmm7
- pop edi
- pop esi
- pop ebx
- pop ebp
- ret
-global _aesni_ctr32_encrypt_blocks
-align 16
-_aesni_ctr32_encrypt_blocks:
-L$_aesni_ctr32_encrypt_blocks_begin:
- push ebp
- push ebx
- push esi
- push edi
- mov esi,DWORD [20+esp]
- mov edi,DWORD [24+esp]
- mov eax,DWORD [28+esp]
- mov edx,DWORD [32+esp]
- mov ebx,DWORD [36+esp]
- mov ebp,esp
- sub esp,88
- and esp,-16
- mov DWORD [80+esp],ebp
- cmp eax,1
- je NEAR L$037ctr32_one_shortcut
- movdqu xmm7,[ebx]
- mov DWORD [esp],202182159
- mov DWORD [4+esp],134810123
- mov DWORD [8+esp],67438087
- mov DWORD [12+esp],66051
- mov ecx,6
- xor ebp,ebp
- mov DWORD [16+esp],ecx
- mov DWORD [20+esp],ecx
- mov DWORD [24+esp],ecx
- mov DWORD [28+esp],ebp
-db 102,15,58,22,251,3
-db 102,15,58,34,253,3
- mov ecx,DWORD [240+edx]
- bswap ebx
- pxor xmm0,xmm0
- pxor xmm1,xmm1
- movdqa xmm2,[esp]
-db 102,15,58,34,195,0
- lea ebp,[3+ebx]
-db 102,15,58,34,205,0
- inc ebx
-db 102,15,58,34,195,1
- inc ebp
-db 102,15,58,34,205,1
- inc ebx
-db 102,15,58,34,195,2
- inc ebp
-db 102,15,58,34,205,2
- movdqa [48+esp],xmm0
-db 102,15,56,0,194
- movdqu xmm6,[edx]
- movdqa [64+esp],xmm1
-db 102,15,56,0,202
- pshufd xmm2,xmm0,192
- pshufd xmm3,xmm0,128
- cmp eax,6
- jb NEAR L$038ctr32_tail
- pxor xmm7,xmm6
- shl ecx,4
- mov ebx,16
- movdqa [32+esp],xmm7
- mov ebp,edx
- sub ebx,ecx
- lea edx,[32+ecx*1+edx]
- sub eax,6
- jmp NEAR L$039ctr32_loop6
-align 16
-L$039ctr32_loop6:
- pshufd xmm4,xmm0,64
- movdqa xmm0,[32+esp]
- pshufd xmm5,xmm1,192
- pxor xmm2,xmm0
- pshufd xmm6,xmm1,128
- pxor xmm3,xmm0
- pshufd xmm7,xmm1,64
- movups xmm1,[16+ebp]
- pxor xmm4,xmm0
- pxor xmm5,xmm0
-db 102,15,56,220,209
- pxor xmm6,xmm0
- pxor xmm7,xmm0
-db 102,15,56,220,217
- movups xmm0,[32+ebp]
- mov ecx,ebx
-db 102,15,56,220,225
-db 102,15,56,220,233
-db 102,15,56,220,241
-db 102,15,56,220,249
- call L$_aesni_encrypt6_enter
- movups xmm1,[esi]
- movups xmm0,[16+esi]
- xorps xmm2,xmm1
- movups xmm1,[32+esi]
- xorps xmm3,xmm0
- movups [edi],xmm2
- movdqa xmm0,[16+esp]
- xorps xmm4,xmm1
- movdqa xmm1,[64+esp]
- movups [16+edi],xmm3
- movups [32+edi],xmm4
- paddd xmm1,xmm0
- paddd xmm0,[48+esp]
- movdqa xmm2,[esp]
- movups xmm3,[48+esi]
- movups xmm4,[64+esi]
- xorps xmm5,xmm3
- movups xmm3,[80+esi]
- lea esi,[96+esi]
- movdqa [48+esp],xmm0
-db 102,15,56,0,194
- xorps xmm6,xmm4
- movups [48+edi],xmm5
- xorps xmm7,xmm3
- movdqa [64+esp],xmm1
-db 102,15,56,0,202
- movups [64+edi],xmm6
- pshufd xmm2,xmm0,192
- movups [80+edi],xmm7
- lea edi,[96+edi]
- pshufd xmm3,xmm0,128
- sub eax,6
- jnc NEAR L$039ctr32_loop6
- add eax,6
- jz NEAR L$040ctr32_ret
- movdqu xmm7,[ebp]
- mov edx,ebp
- pxor xmm7,[32+esp]
- mov ecx,DWORD [240+ebp]
-L$038ctr32_tail:
- por xmm2,xmm7
- cmp eax,2
- jb NEAR L$041ctr32_one
- pshufd xmm4,xmm0,64
- por xmm3,xmm7
- je NEAR L$042ctr32_two
- pshufd xmm5,xmm1,192
- por xmm4,xmm7
- cmp eax,4
- jb NEAR L$043ctr32_three
- pshufd xmm6,xmm1,128
- por xmm5,xmm7
- je NEAR L$044ctr32_four
- por xmm6,xmm7
- call __aesni_encrypt6
- movups xmm1,[esi]
- movups xmm0,[16+esi]
- xorps xmm2,xmm1
- movups xmm1,[32+esi]
- xorps xmm3,xmm0
- movups xmm0,[48+esi]
- xorps xmm4,xmm1
- movups xmm1,[64+esi]
- xorps xmm5,xmm0
- movups [edi],xmm2
- xorps xmm6,xmm1
- movups [16+edi],xmm3
- movups [32+edi],xmm4
- movups [48+edi],xmm5
- movups [64+edi],xmm6
- jmp NEAR L$040ctr32_ret
-align 16
-L$037ctr32_one_shortcut:
- movups xmm2,[ebx]
- mov ecx,DWORD [240+edx]
-L$041ctr32_one:
- movups xmm0,[edx]
- movups xmm1,[16+edx]
- lea edx,[32+edx]
- xorps xmm2,xmm0
-L$045enc1_loop_7:
-db 102,15,56,220,209
- dec ecx
- movups xmm1,[edx]
- lea edx,[16+edx]
- jnz NEAR L$045enc1_loop_7
-db 102,15,56,221,209
- movups xmm6,[esi]
- xorps xmm6,xmm2
- movups [edi],xmm6
- jmp NEAR L$040ctr32_ret
-align 16
-L$042ctr32_two:
- call __aesni_encrypt2
- movups xmm5,[esi]
- movups xmm6,[16+esi]
- xorps xmm2,xmm5
- xorps xmm3,xmm6
- movups [edi],xmm2
- movups [16+edi],xmm3
- jmp NEAR L$040ctr32_ret
-align 16
-L$043ctr32_three:
- call __aesni_encrypt3
- movups xmm5,[esi]
- movups xmm6,[16+esi]
- xorps xmm2,xmm5
- movups xmm7,[32+esi]
- xorps xmm3,xmm6
- movups [edi],xmm2
- xorps xmm4,xmm7
- movups [16+edi],xmm3
- movups [32+edi],xmm4
- jmp NEAR L$040ctr32_ret
-align 16
-L$044ctr32_four:
- call __aesni_encrypt4
- movups xmm6,[esi]
- movups xmm7,[16+esi]
- movups xmm1,[32+esi]
- xorps xmm2,xmm6
- movups xmm0,[48+esi]
- xorps xmm3,xmm7
- movups [edi],xmm2
- xorps xmm4,xmm1
- movups [16+edi],xmm3
- xorps xmm5,xmm0
- movups [32+edi],xmm4
- movups [48+edi],xmm5
-L$040ctr32_ret:
- pxor xmm0,xmm0
- pxor xmm1,xmm1
- pxor xmm2,xmm2
- pxor xmm3,xmm3
- pxor xmm4,xmm4
- movdqa [32+esp],xmm0
- pxor xmm5,xmm5
- movdqa [48+esp],xmm0
- pxor xmm6,xmm6
- movdqa [64+esp],xmm0
- pxor xmm7,xmm7
- mov esp,DWORD [80+esp]
- pop edi
- pop esi
- pop ebx
- pop ebp
- ret
-global _aesni_xts_encrypt
-align 16
-_aesni_xts_encrypt:
-L$_aesni_xts_encrypt_begin:
- push ebp
- push ebx
- push esi
- push edi
- mov edx,DWORD [36+esp]
- mov esi,DWORD [40+esp]
- mov ecx,DWORD [240+edx]
- movups xmm2,[esi]
- movups xmm0,[edx]
- movups xmm1,[16+edx]
- lea edx,[32+edx]
- xorps xmm2,xmm0
-L$046enc1_loop_8:
-db 102,15,56,220,209
- dec ecx
- movups xmm1,[edx]
- lea edx,[16+edx]
- jnz NEAR L$046enc1_loop_8
-db 102,15,56,221,209
- mov esi,DWORD [20+esp]
- mov edi,DWORD [24+esp]
- mov eax,DWORD [28+esp]
- mov edx,DWORD [32+esp]
- mov ebp,esp
- sub esp,120
- mov ecx,DWORD [240+edx]
- and esp,-16
- mov DWORD [96+esp],135
- mov DWORD [100+esp],0
- mov DWORD [104+esp],1
- mov DWORD [108+esp],0
- mov DWORD [112+esp],eax
- mov DWORD [116+esp],ebp
- movdqa xmm1,xmm2
- pxor xmm0,xmm0
- movdqa xmm3,[96+esp]
- pcmpgtd xmm0,xmm1
- and eax,-16
- mov ebp,edx
- mov ebx,ecx
- sub eax,96
- jc NEAR L$047xts_enc_short
- shl ecx,4
- mov ebx,16
- sub ebx,ecx
- lea edx,[32+ecx*1+edx]
- jmp NEAR L$048xts_enc_loop6
-align 16
-L$048xts_enc_loop6:
- pshufd xmm2,xmm0,19
- pxor xmm0,xmm0
- movdqa [esp],xmm1
- paddq xmm1,xmm1
- pand xmm2,xmm3
- pcmpgtd xmm0,xmm1
- pxor xmm1,xmm2
- pshufd xmm2,xmm0,19
- pxor xmm0,xmm0
- movdqa [16+esp],xmm1
- paddq xmm1,xmm1
- pand xmm2,xmm3
- pcmpgtd xmm0,xmm1
- pxor xmm1,xmm2
- pshufd xmm2,xmm0,19
- pxor xmm0,xmm0
- movdqa [32+esp],xmm1
- paddq xmm1,xmm1
- pand xmm2,xmm3
- pcmpgtd xmm0,xmm1
- pxor xmm1,xmm2
- pshufd xmm2,xmm0,19
- pxor xmm0,xmm0
- movdqa [48+esp],xmm1
- paddq xmm1,xmm1
- pand xmm2,xmm3
- pcmpgtd xmm0,xmm1
- pxor xmm1,xmm2
- pshufd xmm7,xmm0,19
- movdqa [64+esp],xmm1
- paddq xmm1,xmm1
- movups xmm0,[ebp]
- pand xmm7,xmm3
- movups xmm2,[esi]
- pxor xmm7,xmm1
- mov ecx,ebx
- movdqu xmm3,[16+esi]
- xorps xmm2,xmm0
- movdqu xmm4,[32+esi]
- pxor xmm3,xmm0
- movdqu xmm5,[48+esi]
- pxor xmm4,xmm0
- movdqu xmm6,[64+esi]
- pxor xmm5,xmm0
- movdqu xmm1,[80+esi]
- pxor xmm6,xmm0
- lea esi,[96+esi]
- pxor xmm2,[esp]
- movdqa [80+esp],xmm7
- pxor xmm7,xmm1
- movups xmm1,[16+ebp]
- pxor xmm3,[16+esp]
- pxor xmm4,[32+esp]
-db 102,15,56,220,209
- pxor xmm5,[48+esp]
- pxor xmm6,[64+esp]
-db 102,15,56,220,217
- pxor xmm7,xmm0
- movups xmm0,[32+ebp]
-db 102,15,56,220,225
-db 102,15,56,220,233
-db 102,15,56,220,241
-db 102,15,56,220,249
- call L$_aesni_encrypt6_enter
- movdqa xmm1,[80+esp]
- pxor xmm0,xmm0
- xorps xmm2,[esp]
- pcmpgtd xmm0,xmm1
- xorps xmm3,[16+esp]
- movups [edi],xmm2
- xorps xmm4,[32+esp]
- movups [16+edi],xmm3
- xorps xmm5,[48+esp]
- movups [32+edi],xmm4
- xorps xmm6,[64+esp]
- movups [48+edi],xmm5
- xorps xmm7,xmm1
- movups [64+edi],xmm6
- pshufd xmm2,xmm0,19
- movups [80+edi],xmm7
- lea edi,[96+edi]
- movdqa xmm3,[96+esp]
- pxor xmm0,xmm0
- paddq xmm1,xmm1
- pand xmm2,xmm3
- pcmpgtd xmm0,xmm1
- pxor xmm1,xmm2
- sub eax,96
- jnc NEAR L$048xts_enc_loop6
- mov ecx,DWORD [240+ebp]
- mov edx,ebp
- mov ebx,ecx
-L$047xts_enc_short:
- add eax,96
- jz NEAR L$049xts_enc_done6x
- movdqa xmm5,xmm1
- cmp eax,32
- jb NEAR L$050xts_enc_one
- pshufd xmm2,xmm0,19
- pxor xmm0,xmm0
- paddq xmm1,xmm1
- pand xmm2,xmm3
- pcmpgtd xmm0,xmm1
- pxor xmm1,xmm2
- je NEAR L$051xts_enc_two
- pshufd xmm2,xmm0,19
- pxor xmm0,xmm0
- movdqa xmm6,xmm1
- paddq xmm1,xmm1
- pand xmm2,xmm3
- pcmpgtd xmm0,xmm1
- pxor xmm1,xmm2
- cmp eax,64
- jb NEAR L$052xts_enc_three
- pshufd xmm2,xmm0,19
- pxor xmm0,xmm0
- movdqa xmm7,xmm1
- paddq xmm1,xmm1
- pand xmm2,xmm3
- pcmpgtd xmm0,xmm1
- pxor xmm1,xmm2
- movdqa [esp],xmm5
- movdqa [16+esp],xmm6
- je NEAR L$053xts_enc_four
- movdqa [32+esp],xmm7
- pshufd xmm7,xmm0,19
- movdqa [48+esp],xmm1
- paddq xmm1,xmm1
- pand xmm7,xmm3
- pxor xmm7,xmm1
- movdqu xmm2,[esi]
- movdqu xmm3,[16+esi]
- movdqu xmm4,[32+esi]
- pxor xmm2,[esp]
- movdqu xmm5,[48+esi]
- pxor xmm3,[16+esp]
- movdqu xmm6,[64+esi]
- pxor xmm4,[32+esp]
- lea esi,[80+esi]
- pxor xmm5,[48+esp]
- movdqa [64+esp],xmm7
- pxor xmm6,xmm7
- call __aesni_encrypt6
- movaps xmm1,[64+esp]
- xorps xmm2,[esp]
- xorps xmm3,[16+esp]
- xorps xmm4,[32+esp]
- movups [edi],xmm2
- xorps xmm5,[48+esp]
- movups [16+edi],xmm3
- xorps xmm6,xmm1
- movups [32+edi],xmm4
- movups [48+edi],xmm5
- movups [64+edi],xmm6
- lea edi,[80+edi]
- jmp NEAR L$054xts_enc_done
-align 16
-L$050xts_enc_one:
- movups xmm2,[esi]
- lea esi,[16+esi]
- xorps xmm2,xmm5
- movups xmm0,[edx]
- movups xmm1,[16+edx]
- lea edx,[32+edx]
- xorps xmm2,xmm0
-L$055enc1_loop_9:
-db 102,15,56,220,209
- dec ecx
- movups xmm1,[edx]
- lea edx,[16+edx]
- jnz NEAR L$055enc1_loop_9
-db 102,15,56,221,209
- xorps xmm2,xmm5
- movups [edi],xmm2
- lea edi,[16+edi]
- movdqa xmm1,xmm5
- jmp NEAR L$054xts_enc_done
-align 16
-L$051xts_enc_two:
- movaps xmm6,xmm1
- movups xmm2,[esi]
- movups xmm3,[16+esi]
- lea esi,[32+esi]
- xorps xmm2,xmm5
- xorps xmm3,xmm6
- call __aesni_encrypt2
- xorps xmm2,xmm5
- xorps xmm3,xmm6
- movups [edi],xmm2
- movups [16+edi],xmm3
- lea edi,[32+edi]
- movdqa xmm1,xmm6
- jmp NEAR L$054xts_enc_done
-align 16
-L$052xts_enc_three:
- movaps xmm7,xmm1
- movups xmm2,[esi]
- movups xmm3,[16+esi]
- movups xmm4,[32+esi]
- lea esi,[48+esi]
- xorps xmm2,xmm5
- xorps xmm3,xmm6
- xorps xmm4,xmm7
- call __aesni_encrypt3
- xorps xmm2,xmm5
- xorps xmm3,xmm6
- xorps xmm4,xmm7
- movups [edi],xmm2
- movups [16+edi],xmm3
- movups [32+edi],xmm4
- lea edi,[48+edi]
- movdqa xmm1,xmm7
- jmp NEAR L$054xts_enc_done
-align 16
-L$053xts_enc_four:
- movaps xmm6,xmm1
- movups xmm2,[esi]
- movups xmm3,[16+esi]
- movups xmm4,[32+esi]
- xorps xmm2,[esp]
- movups xmm5,[48+esi]
- lea esi,[64+esi]
- xorps xmm3,[16+esp]
- xorps xmm4,xmm7
- xorps xmm5,xmm6
- call __aesni_encrypt4
- xorps xmm2,[esp]
- xorps xmm3,[16+esp]
- xorps xmm4,xmm7
- movups [edi],xmm2
- xorps xmm5,xmm6
- movups [16+edi],xmm3
- movups [32+edi],xmm4
- movups [48+edi],xmm5
- lea edi,[64+edi]
- movdqa xmm1,xmm6
- jmp NEAR L$054xts_enc_done
-align 16
-L$049xts_enc_done6x:
- mov eax,DWORD [112+esp]
- and eax,15
- jz NEAR L$056xts_enc_ret
- movdqa xmm5,xmm1
- mov DWORD [112+esp],eax
- jmp NEAR L$057xts_enc_steal
-align 16
-L$054xts_enc_done:
- mov eax,DWORD [112+esp]
- pxor xmm0,xmm0
- and eax,15
- jz NEAR L$056xts_enc_ret
- pcmpgtd xmm0,xmm1
- mov DWORD [112+esp],eax
- pshufd xmm5,xmm0,19
- paddq xmm1,xmm1
- pand xmm5,[96+esp]
- pxor xmm5,xmm1
-L$057xts_enc_steal:
- movzx ecx,BYTE [esi]
- movzx edx,BYTE [edi-16]
- lea esi,[1+esi]
- mov BYTE [edi-16],cl
- mov BYTE [edi],dl
- lea edi,[1+edi]
- sub eax,1
- jnz NEAR L$057xts_enc_steal
- sub edi,DWORD [112+esp]
- mov edx,ebp
- mov ecx,ebx
- movups xmm2,[edi-16]
- xorps xmm2,xmm5
- movups xmm0,[edx]
- movups xmm1,[16+edx]
- lea edx,[32+edx]
- xorps xmm2,xmm0
-L$058enc1_loop_10:
-db 102,15,56,220,209
- dec ecx
- movups xmm1,[edx]
- lea edx,[16+edx]
- jnz NEAR L$058enc1_loop_10
-db 102,15,56,221,209
- xorps xmm2,xmm5
- movups [edi-16],xmm2
-L$056xts_enc_ret:
- pxor xmm0,xmm0
- pxor xmm1,xmm1
- pxor xmm2,xmm2
- movdqa [esp],xmm0
- pxor xmm3,xmm3
- movdqa [16+esp],xmm0
- pxor xmm4,xmm4
- movdqa [32+esp],xmm0
- pxor xmm5,xmm5
- movdqa [48+esp],xmm0
- pxor xmm6,xmm6
- movdqa [64+esp],xmm0
- pxor xmm7,xmm7
- movdqa [80+esp],xmm0
- mov esp,DWORD [116+esp]
- pop edi
- pop esi
- pop ebx
- pop ebp
- ret
-global _aesni_xts_decrypt
-align 16
-_aesni_xts_decrypt:
-L$_aesni_xts_decrypt_begin:
- push ebp
- push ebx
- push esi
- push edi
- mov edx,DWORD [36+esp]
- mov esi,DWORD [40+esp]
- mov ecx,DWORD [240+edx]
- movups xmm2,[esi]
- movups xmm0,[edx]
- movups xmm1,[16+edx]
- lea edx,[32+edx]
- xorps xmm2,xmm0
-L$059enc1_loop_11:
-db 102,15,56,220,209
- dec ecx
- movups xmm1,[edx]
- lea edx,[16+edx]
- jnz NEAR L$059enc1_loop_11
-db 102,15,56,221,209
- mov esi,DWORD [20+esp]
- mov edi,DWORD [24+esp]
- mov eax,DWORD [28+esp]
- mov edx,DWORD [32+esp]
- mov ebp,esp
- sub esp,120
- and esp,-16
- xor ebx,ebx
- test eax,15
- setnz bl
- shl ebx,4
- sub eax,ebx
- mov DWORD [96+esp],135
- mov DWORD [100+esp],0
- mov DWORD [104+esp],1
- mov DWORD [108+esp],0
- mov DWORD [112+esp],eax
- mov DWORD [116+esp],ebp
- mov ecx,DWORD [240+edx]
- mov ebp,edx
- mov ebx,ecx
- movdqa xmm1,xmm2
- pxor xmm0,xmm0
- movdqa xmm3,[96+esp]
- pcmpgtd xmm0,xmm1
- and eax,-16
- sub eax,96
- jc NEAR L$060xts_dec_short
- shl ecx,4
- mov ebx,16
- sub ebx,ecx
- lea edx,[32+ecx*1+edx]
- jmp NEAR L$061xts_dec_loop6
-align 16
-L$061xts_dec_loop6:
- pshufd xmm2,xmm0,19
- pxor xmm0,xmm0
- movdqa [esp],xmm1
- paddq xmm1,xmm1
- pand xmm2,xmm3
- pcmpgtd xmm0,xmm1
- pxor xmm1,xmm2
- pshufd xmm2,xmm0,19
- pxor xmm0,xmm0
- movdqa [16+esp],xmm1
- paddq xmm1,xmm1
- pand xmm2,xmm3
- pcmpgtd xmm0,xmm1
- pxor xmm1,xmm2
- pshufd xmm2,xmm0,19
- pxor xmm0,xmm0
- movdqa [32+esp],xmm1
- paddq xmm1,xmm1
- pand xmm2,xmm3
- pcmpgtd xmm0,xmm1
- pxor xmm1,xmm2
- pshufd xmm2,xmm0,19
- pxor xmm0,xmm0
- movdqa [48+esp],xmm1
- paddq xmm1,xmm1
- pand xmm2,xmm3
- pcmpgtd xmm0,xmm1
- pxor xmm1,xmm2
- pshufd xmm7,xmm0,19
- movdqa [64+esp],xmm1
- paddq xmm1,xmm1
- movups xmm0,[ebp]
- pand xmm7,xmm3
- movups xmm2,[esi]
- pxor xmm7,xmm1
- mov ecx,ebx
- movdqu xmm3,[16+esi]
- xorps xmm2,xmm0
- movdqu xmm4,[32+esi]
- pxor xmm3,xmm0
- movdqu xmm5,[48+esi]
- pxor xmm4,xmm0
- movdqu xmm6,[64+esi]
- pxor xmm5,xmm0
- movdqu xmm1,[80+esi]
- pxor xmm6,xmm0
- lea esi,[96+esi]
- pxor xmm2,[esp]
- movdqa [80+esp],xmm7
- pxor xmm7,xmm1
- movups xmm1,[16+ebp]
- pxor xmm3,[16+esp]
- pxor xmm4,[32+esp]
-db 102,15,56,222,209
- pxor xmm5,[48+esp]
- pxor xmm6,[64+esp]
-db 102,15,56,222,217
- pxor xmm7,xmm0
- movups xmm0,[32+ebp]
-db 102,15,56,222,225
-db 102,15,56,222,233
-db 102,15,56,222,241
-db 102,15,56,222,249
- call L$_aesni_decrypt6_enter
- movdqa xmm1,[80+esp]
- pxor xmm0,xmm0
- xorps xmm2,[esp]
- pcmpgtd xmm0,xmm1
- xorps xmm3,[16+esp]
- movups [edi],xmm2
- xorps xmm4,[32+esp]
- movups [16+edi],xmm3
- xorps xmm5,[48+esp]
- movups [32+edi],xmm4
- xorps xmm6,[64+esp]
- movups [48+edi],xmm5
- xorps xmm7,xmm1
- movups [64+edi],xmm6
- pshufd xmm2,xmm0,19
- movups [80+edi],xmm7
- lea edi,[96+edi]
- movdqa xmm3,[96+esp]
- pxor xmm0,xmm0
- paddq xmm1,xmm1
- pand xmm2,xmm3
- pcmpgtd xmm0,xmm1
- pxor xmm1,xmm2
- sub eax,96
- jnc NEAR L$061xts_dec_loop6
- mov ecx,DWORD [240+ebp]
- mov edx,ebp
- mov ebx,ecx
-L$060xts_dec_short:
- add eax,96
- jz NEAR L$062xts_dec_done6x
- movdqa xmm5,xmm1
- cmp eax,32
- jb NEAR L$063xts_dec_one
- pshufd xmm2,xmm0,19
- pxor xmm0,xmm0
- paddq xmm1,xmm1
- pand xmm2,xmm3
- pcmpgtd xmm0,xmm1
- pxor xmm1,xmm2
- je NEAR L$064xts_dec_two
- pshufd xmm2,xmm0,19
- pxor xmm0,xmm0
- movdqa xmm6,xmm1
- paddq xmm1,xmm1
- pand xmm2,xmm3
- pcmpgtd xmm0,xmm1
- pxor xmm1,xmm2
- cmp eax,64
- jb NEAR L$065xts_dec_three
- pshufd xmm2,xmm0,19
- pxor xmm0,xmm0
- movdqa xmm7,xmm1
- paddq xmm1,xmm1
- pand xmm2,xmm3
- pcmpgtd xmm0,xmm1
- pxor xmm1,xmm2
- movdqa [esp],xmm5
- movdqa [16+esp],xmm6
- je NEAR L$066xts_dec_four
- movdqa [32+esp],xmm7
- pshufd xmm7,xmm0,19
- movdqa [48+esp],xmm1
- paddq xmm1,xmm1
- pand xmm7,xmm3
- pxor xmm7,xmm1
- movdqu xmm2,[esi]
- movdqu xmm3,[16+esi]
- movdqu xmm4,[32+esi]
- pxor xmm2,[esp]
- movdqu xmm5,[48+esi]
- pxor xmm3,[16+esp]
- movdqu xmm6,[64+esi]
- pxor xmm4,[32+esp]
- lea esi,[80+esi]
- pxor xmm5,[48+esp]
- movdqa [64+esp],xmm7
- pxor xmm6,xmm7
- call __aesni_decrypt6
- movaps xmm1,[64+esp]
- xorps xmm2,[esp]
- xorps xmm3,[16+esp]
- xorps xmm4,[32+esp]
- movups [edi],xmm2
- xorps xmm5,[48+esp]
- movups [16+edi],xmm3
- xorps xmm6,xmm1
- movups [32+edi],xmm4
- movups [48+edi],xmm5
- movups [64+edi],xmm6
- lea edi,[80+edi]
- jmp NEAR L$067xts_dec_done
-align 16
-L$063xts_dec_one:
- movups xmm2,[esi]
- lea esi,[16+esi]
- xorps xmm2,xmm5
- movups xmm0,[edx]
- movups xmm1,[16+edx]
- lea edx,[32+edx]
- xorps xmm2,xmm0
-L$068dec1_loop_12:
-db 102,15,56,222,209
- dec ecx
- movups xmm1,[edx]
- lea edx,[16+edx]
- jnz NEAR L$068dec1_loop_12
-db 102,15,56,223,209
- xorps xmm2,xmm5
- movups [edi],xmm2
- lea edi,[16+edi]
- movdqa xmm1,xmm5
- jmp NEAR L$067xts_dec_done
-align 16
-L$064xts_dec_two:
- movaps xmm6,xmm1
- movups xmm2,[esi]
- movups xmm3,[16+esi]
- lea esi,[32+esi]
- xorps xmm2,xmm5
- xorps xmm3,xmm6
- call __aesni_decrypt2
- xorps xmm2,xmm5
- xorps xmm3,xmm6
- movups [edi],xmm2
- movups [16+edi],xmm3
- lea edi,[32+edi]
- movdqa xmm1,xmm6
- jmp NEAR L$067xts_dec_done
-align 16
-L$065xts_dec_three:
- movaps xmm7,xmm1
- movups xmm2,[esi]
- movups xmm3,[16+esi]
- movups xmm4,[32+esi]
- lea esi,[48+esi]
- xorps xmm2,xmm5
- xorps xmm3,xmm6
- xorps xmm4,xmm7
- call __aesni_decrypt3
- xorps xmm2,xmm5
- xorps xmm3,xmm6
- xorps xmm4,xmm7
- movups [edi],xmm2
- movups [16+edi],xmm3
- movups [32+edi],xmm4
- lea edi,[48+edi]
- movdqa xmm1,xmm7
- jmp NEAR L$067xts_dec_done
-align 16
-L$066xts_dec_four:
- movaps xmm6,xmm1
- movups xmm2,[esi]
- movups xmm3,[16+esi]
- movups xmm4,[32+esi]
- xorps xmm2,[esp]
- movups xmm5,[48+esi]
- lea esi,[64+esi]
- xorps xmm3,[16+esp]
- xorps xmm4,xmm7
- xorps xmm5,xmm6
- call __aesni_decrypt4
- xorps xmm2,[esp]
- xorps xmm3,[16+esp]
- xorps xmm4,xmm7
- movups [edi],xmm2
- xorps xmm5,xmm6
- movups [16+edi],xmm3
- movups [32+edi],xmm4
- movups [48+edi],xmm5
- lea edi,[64+edi]
- movdqa xmm1,xmm6
- jmp NEAR L$067xts_dec_done
-align 16
-L$062xts_dec_done6x:
- mov eax,DWORD [112+esp]
- and eax,15
- jz NEAR L$069xts_dec_ret
- mov DWORD [112+esp],eax
- jmp NEAR L$070xts_dec_only_one_more
-align 16
-L$067xts_dec_done:
- mov eax,DWORD [112+esp]
- pxor xmm0,xmm0
- and eax,15
- jz NEAR L$069xts_dec_ret
- pcmpgtd xmm0,xmm1
- mov DWORD [112+esp],eax
- pshufd xmm2,xmm0,19
- pxor xmm0,xmm0
- movdqa xmm3,[96+esp]
- paddq xmm1,xmm1
- pand xmm2,xmm3
- pcmpgtd xmm0,xmm1
- pxor xmm1,xmm2
-L$070xts_dec_only_one_more:
- pshufd xmm5,xmm0,19
- movdqa xmm6,xmm1
- paddq xmm1,xmm1
- pand xmm5,xmm3
- pxor xmm5,xmm1
- mov edx,ebp
- mov ecx,ebx
- movups xmm2,[esi]
- xorps xmm2,xmm5
- movups xmm0,[edx]
- movups xmm1,[16+edx]
- lea edx,[32+edx]
- xorps xmm2,xmm0
-L$071dec1_loop_13:
-db 102,15,56,222,209
- dec ecx
- movups xmm1,[edx]
- lea edx,[16+edx]
- jnz NEAR L$071dec1_loop_13
-db 102,15,56,223,209
- xorps xmm2,xmm5
- movups [edi],xmm2
-L$072xts_dec_steal:
- movzx ecx,BYTE [16+esi]
- movzx edx,BYTE [edi]
- lea esi,[1+esi]
- mov BYTE [edi],cl
- mov BYTE [16+edi],dl
- lea edi,[1+edi]
- sub eax,1
- jnz NEAR L$072xts_dec_steal
- sub edi,DWORD [112+esp]
- mov edx,ebp
- mov ecx,ebx
- movups xmm2,[edi]
- xorps xmm2,xmm6
- movups xmm0,[edx]
- movups xmm1,[16+edx]
- lea edx,[32+edx]
- xorps xmm2,xmm0
-L$073dec1_loop_14:
-db 102,15,56,222,209
- dec ecx
- movups xmm1,[edx]
- lea edx,[16+edx]
- jnz NEAR L$073dec1_loop_14
-db 102,15,56,223,209
- xorps xmm2,xmm6
- movups [edi],xmm2
-L$069xts_dec_ret:
- pxor xmm0,xmm0
- pxor xmm1,xmm1
- pxor xmm2,xmm2
- movdqa [esp],xmm0
- pxor xmm3,xmm3
- movdqa [16+esp],xmm0
- pxor xmm4,xmm4
- movdqa [32+esp],xmm0
- pxor xmm5,xmm5
- movdqa [48+esp],xmm0
- pxor xmm6,xmm6
- movdqa [64+esp],xmm0
- pxor xmm7,xmm7
- movdqa [80+esp],xmm0
- mov esp,DWORD [116+esp]
- pop edi
- pop esi
- pop ebx
- pop ebp
- ret
-global _aesni_cbc_encrypt
-align 16
-_aesni_cbc_encrypt:
-L$_aesni_cbc_encrypt_begin:
- push ebp
- push ebx
- push esi
- push edi
- mov esi,DWORD [20+esp]
- mov ebx,esp
- mov edi,DWORD [24+esp]
- sub ebx,24
- mov eax,DWORD [28+esp]
- and ebx,-16
- mov edx,DWORD [32+esp]
- mov ebp,DWORD [36+esp]
- test eax,eax
- jz NEAR L$074cbc_abort
- cmp DWORD [40+esp],0
- xchg ebx,esp
- movups xmm7,[ebp]
- mov ecx,DWORD [240+edx]
- mov ebp,edx
- mov DWORD [16+esp],ebx
- mov ebx,ecx
- je NEAR L$075cbc_decrypt
- movaps xmm2,xmm7
- cmp eax,16
- jb NEAR L$076cbc_enc_tail
- sub eax,16
- jmp NEAR L$077cbc_enc_loop
-align 16
-L$077cbc_enc_loop:
- movups xmm7,[esi]
- lea esi,[16+esi]
- movups xmm0,[edx]
- movups xmm1,[16+edx]
- xorps xmm7,xmm0
- lea edx,[32+edx]
- xorps xmm2,xmm7
-L$078enc1_loop_15:
-db 102,15,56,220,209
- dec ecx
- movups xmm1,[edx]
- lea edx,[16+edx]
- jnz NEAR L$078enc1_loop_15
-db 102,15,56,221,209
- mov ecx,ebx
- mov edx,ebp
- movups [edi],xmm2
- lea edi,[16+edi]
- sub eax,16
- jnc NEAR L$077cbc_enc_loop
- add eax,16
- jnz NEAR L$076cbc_enc_tail
- movaps xmm7,xmm2
- pxor xmm2,xmm2
- jmp NEAR L$079cbc_ret
-L$076cbc_enc_tail:
- mov ecx,eax
-dd 2767451785
- mov ecx,16
- sub ecx,eax
- xor eax,eax
-dd 2868115081
- lea edi,[edi-16]
- mov ecx,ebx
- mov esi,edi
- mov edx,ebp
- jmp NEAR L$077cbc_enc_loop
-align 16
-L$075cbc_decrypt:
- cmp eax,80
- jbe NEAR L$080cbc_dec_tail
- movaps [esp],xmm7
- sub eax,80
- jmp NEAR L$081cbc_dec_loop6_enter
-align 16
-L$082cbc_dec_loop6:
- movaps [esp],xmm0
- movups [edi],xmm7
- lea edi,[16+edi]
-L$081cbc_dec_loop6_enter:
- movdqu xmm2,[esi]
- movdqu xmm3,[16+esi]
- movdqu xmm4,[32+esi]
- movdqu xmm5,[48+esi]
- movdqu xmm6,[64+esi]
- movdqu xmm7,[80+esi]
- call __aesni_decrypt6
- movups xmm1,[esi]
- movups xmm0,[16+esi]
- xorps xmm2,[esp]
- xorps xmm3,xmm1
- movups xmm1,[32+esi]
- xorps xmm4,xmm0
- movups xmm0,[48+esi]
- xorps xmm5,xmm1
- movups xmm1,[64+esi]
- xorps xmm6,xmm0
- movups xmm0,[80+esi]
- xorps xmm7,xmm1
- movups [edi],xmm2
- movups [16+edi],xmm3
- lea esi,[96+esi]
- movups [32+edi],xmm4
- mov ecx,ebx
- movups [48+edi],xmm5
- mov edx,ebp
- movups [64+edi],xmm6
- lea edi,[80+edi]
- sub eax,96
- ja NEAR L$082cbc_dec_loop6
- movaps xmm2,xmm7
- movaps xmm7,xmm0
- add eax,80
- jle NEAR L$083cbc_dec_clear_tail_collected
- movups [edi],xmm2
- lea edi,[16+edi]
-L$080cbc_dec_tail:
- movups xmm2,[esi]
- movaps xmm6,xmm2
- cmp eax,16
- jbe NEAR L$084cbc_dec_one
- movups xmm3,[16+esi]
- movaps xmm5,xmm3
- cmp eax,32
- jbe NEAR L$085cbc_dec_two
- movups xmm4,[32+esi]
- cmp eax,48
- jbe NEAR L$086cbc_dec_three
- movups xmm5,[48+esi]
- cmp eax,64
- jbe NEAR L$087cbc_dec_four
- movups xmm6,[64+esi]
- movaps [esp],xmm7
- movups xmm2,[esi]
- xorps xmm7,xmm7
- call __aesni_decrypt6
- movups xmm1,[esi]
- movups xmm0,[16+esi]
- xorps xmm2,[esp]
- xorps xmm3,xmm1
- movups xmm1,[32+esi]
- xorps xmm4,xmm0
- movups xmm0,[48+esi]
- xorps xmm5,xmm1
- movups xmm7,[64+esi]
- xorps xmm6,xmm0
- movups [edi],xmm2
- movups [16+edi],xmm3
- pxor xmm3,xmm3
- movups [32+edi],xmm4
- pxor xmm4,xmm4
- movups [48+edi],xmm5
- pxor xmm5,xmm5
- lea edi,[64+edi]
- movaps xmm2,xmm6
- pxor xmm6,xmm6
- sub eax,80
- jmp NEAR L$088cbc_dec_tail_collected
-align 16
-L$084cbc_dec_one:
- movups xmm0,[edx]
- movups xmm1,[16+edx]
- lea edx,[32+edx]
- xorps xmm2,xmm0
-L$089dec1_loop_16:
-db 102,15,56,222,209
- dec ecx
- movups xmm1,[edx]
- lea edx,[16+edx]
- jnz NEAR L$089dec1_loop_16
-db 102,15,56,223,209
- xorps xmm2,xmm7
- movaps xmm7,xmm6
- sub eax,16
- jmp NEAR L$088cbc_dec_tail_collected
-align 16
-L$085cbc_dec_two:
- call __aesni_decrypt2
- xorps xmm2,xmm7
- xorps xmm3,xmm6
- movups [edi],xmm2
- movaps xmm2,xmm3
- pxor xmm3,xmm3
- lea edi,[16+edi]
- movaps xmm7,xmm5
- sub eax,32
- jmp NEAR L$088cbc_dec_tail_collected
-align 16
-L$086cbc_dec_three:
- call __aesni_decrypt3
- xorps xmm2,xmm7
- xorps xmm3,xmm6
- xorps xmm4,xmm5
- movups [edi],xmm2
- movaps xmm2,xmm4
- pxor xmm4,xmm4
- movups [16+edi],xmm3
- pxor xmm3,xmm3
- lea edi,[32+edi]
- movups xmm7,[32+esi]
- sub eax,48
- jmp NEAR L$088cbc_dec_tail_collected
-align 16
-L$087cbc_dec_four:
- call __aesni_decrypt4
- movups xmm1,[16+esi]
- movups xmm0,[32+esi]
- xorps xmm2,xmm7
- movups xmm7,[48+esi]
- xorps xmm3,xmm6
- movups [edi],xmm2
- xorps xmm4,xmm1
- movups [16+edi],xmm3
- pxor xmm3,xmm3
- xorps xmm5,xmm0
- movups [32+edi],xmm4
- pxor xmm4,xmm4
- lea edi,[48+edi]
- movaps xmm2,xmm5
- pxor xmm5,xmm5
- sub eax,64
- jmp NEAR L$088cbc_dec_tail_collected
-align 16
-L$083cbc_dec_clear_tail_collected:
- pxor xmm3,xmm3
- pxor xmm4,xmm4
- pxor xmm5,xmm5
- pxor xmm6,xmm6
-L$088cbc_dec_tail_collected:
- and eax,15
- jnz NEAR L$090cbc_dec_tail_partial
- movups [edi],xmm2
- pxor xmm0,xmm0
- jmp NEAR L$079cbc_ret
-align 16
-L$090cbc_dec_tail_partial:
- movaps [esp],xmm2
- pxor xmm0,xmm0
- mov ecx,16
- mov esi,esp
- sub ecx,eax
-dd 2767451785
- movdqa [esp],xmm2
-L$079cbc_ret:
- mov esp,DWORD [16+esp]
- mov ebp,DWORD [36+esp]
- pxor xmm2,xmm2
- pxor xmm1,xmm1
- movups [ebp],xmm7
- pxor xmm7,xmm7
-L$074cbc_abort:
- pop edi
- pop esi
- pop ebx
- pop ebp
- ret
-align 16
-__aesni_set_encrypt_key:
- push ebp
- push ebx
- test eax,eax
- jz NEAR L$091bad_pointer
- test edx,edx
- jz NEAR L$091bad_pointer
- call L$092pic
-L$092pic:
- pop ebx
- lea ebx,[(L$key_const-L$092pic)+ebx]
- lea ebp,[_OPENSSL_ia32cap_P]
- movups xmm0,[eax]
- xorps xmm4,xmm4
- mov ebp,DWORD [4+ebp]
- lea edx,[16+edx]
- and ebp,268437504
- cmp ecx,256
- je NEAR L$09314rounds
- cmp ecx,192
- je NEAR L$09412rounds
- cmp ecx,128
- jne NEAR L$095bad_keybits
-align 16
-L$09610rounds:
- cmp ebp,268435456
- je NEAR L$09710rounds_alt
- mov ecx,9
- movups [edx-16],xmm0
-db 102,15,58,223,200,1
- call L$098key_128_cold
-db 102,15,58,223,200,2
- call L$099key_128
-db 102,15,58,223,200,4
- call L$099key_128
-db 102,15,58,223,200,8
- call L$099key_128
-db 102,15,58,223,200,16
- call L$099key_128
-db 102,15,58,223,200,32
- call L$099key_128
-db 102,15,58,223,200,64
- call L$099key_128
-db 102,15,58,223,200,128
- call L$099key_128
-db 102,15,58,223,200,27
- call L$099key_128
-db 102,15,58,223,200,54
- call L$099key_128
- movups [edx],xmm0
- mov DWORD [80+edx],ecx
- jmp NEAR L$100good_key
-align 16
-L$099key_128:
- movups [edx],xmm0
- lea edx,[16+edx]
-L$098key_128_cold:
- shufps xmm4,xmm0,16
- xorps xmm0,xmm4
- shufps xmm4,xmm0,140
- xorps xmm0,xmm4
- shufps xmm1,xmm1,255
- xorps xmm0,xmm1
- ret
-align 16
-L$09710rounds_alt:
- movdqa xmm5,[ebx]
- mov ecx,8
- movdqa xmm4,[32+ebx]
- movdqa xmm2,xmm0
- movdqu [edx-16],xmm0
-L$101loop_key128:
-db 102,15,56,0,197
-db 102,15,56,221,196
- pslld xmm4,1
- lea edx,[16+edx]
- movdqa xmm3,xmm2
- pslldq xmm2,4
- pxor xmm3,xmm2
- pslldq xmm2,4
- pxor xmm3,xmm2
- pslldq xmm2,4
- pxor xmm2,xmm3
- pxor xmm0,xmm2
- movdqu [edx-16],xmm0
- movdqa xmm2,xmm0
- dec ecx
- jnz NEAR L$101loop_key128
- movdqa xmm4,[48+ebx]
-db 102,15,56,0,197
-db 102,15,56,221,196
- pslld xmm4,1
- movdqa xmm3,xmm2
- pslldq xmm2,4
- pxor xmm3,xmm2
- pslldq xmm2,4
- pxor xmm3,xmm2
- pslldq xmm2,4
- pxor xmm2,xmm3
- pxor xmm0,xmm2
- movdqu [edx],xmm0
- movdqa xmm2,xmm0
-db 102,15,56,0,197
-db 102,15,56,221,196
- movdqa xmm3,xmm2
- pslldq xmm2,4
- pxor xmm3,xmm2
- pslldq xmm2,4
- pxor xmm3,xmm2
- pslldq xmm2,4
- pxor xmm2,xmm3
- pxor xmm0,xmm2
- movdqu [16+edx],xmm0
- mov ecx,9
- mov DWORD [96+edx],ecx
- jmp NEAR L$100good_key
-align 16
-L$09412rounds:
- movq xmm2,[16+eax]
- cmp ebp,268435456
- je NEAR L$10212rounds_alt
- mov ecx,11
- movups [edx-16],xmm0
-db 102,15,58,223,202,1
- call L$103key_192a_cold
-db 102,15,58,223,202,2
- call L$104key_192b
-db 102,15,58,223,202,4
- call L$105key_192a
-db 102,15,58,223,202,8
- call L$104key_192b
-db 102,15,58,223,202,16
- call L$105key_192a
-db 102,15,58,223,202,32
- call L$104key_192b
-db 102,15,58,223,202,64
- call L$105key_192a
-db 102,15,58,223,202,128
- call L$104key_192b
- movups [edx],xmm0
- mov DWORD [48+edx],ecx
- jmp NEAR L$100good_key
-align 16
-L$105key_192a:
- movups [edx],xmm0
- lea edx,[16+edx]
-align 16
-L$103key_192a_cold:
- movaps xmm5,xmm2
-L$106key_192b_warm:
- shufps xmm4,xmm0,16
- movdqa xmm3,xmm2
- xorps xmm0,xmm4
- shufps xmm4,xmm0,140
- pslldq xmm3,4
- xorps xmm0,xmm4
- pshufd xmm1,xmm1,85
- pxor xmm2,xmm3
- pxor xmm0,xmm1
- pshufd xmm3,xmm0,255
- pxor xmm2,xmm3
- ret
-align 16
-L$104key_192b:
- movaps xmm3,xmm0
- shufps xmm5,xmm0,68
- movups [edx],xmm5
- shufps xmm3,xmm2,78
- movups [16+edx],xmm3
- lea edx,[32+edx]
- jmp NEAR L$106key_192b_warm
-align 16
-L$10212rounds_alt:
- movdqa xmm5,[16+ebx]
- movdqa xmm4,[32+ebx]
- mov ecx,8
- movdqu [edx-16],xmm0
-L$107loop_key192:
- movq [edx],xmm2
- movdqa xmm1,xmm2
-db 102,15,56,0,213
-db 102,15,56,221,212
- pslld xmm4,1
- lea edx,[24+edx]
- movdqa xmm3,xmm0
- pslldq xmm0,4
- pxor xmm3,xmm0
- pslldq xmm0,4
- pxor xmm3,xmm0
- pslldq xmm0,4
- pxor xmm0,xmm3
- pshufd xmm3,xmm0,255
- pxor xmm3,xmm1
- pslldq xmm1,4
- pxor xmm3,xmm1
- pxor xmm0,xmm2
- pxor xmm2,xmm3
- movdqu [edx-16],xmm0
- dec ecx
- jnz NEAR L$107loop_key192
- mov ecx,11
- mov DWORD [32+edx],ecx
- jmp NEAR L$100good_key
-align 16
-L$09314rounds:
- movups xmm2,[16+eax]
- lea edx,[16+edx]
- cmp ebp,268435456
- je NEAR L$10814rounds_alt
- mov ecx,13
- movups [edx-32],xmm0
- movups [edx-16],xmm2
-db 102,15,58,223,202,1
- call L$109key_256a_cold
-db 102,15,58,223,200,1
- call L$110key_256b
-db 102,15,58,223,202,2
- call L$111key_256a
-db 102,15,58,223,200,2
- call L$110key_256b
-db 102,15,58,223,202,4
- call L$111key_256a
-db 102,15,58,223,200,4
- call L$110key_256b
-db 102,15,58,223,202,8
- call L$111key_256a
-db 102,15,58,223,200,8
- call L$110key_256b
-db 102,15,58,223,202,16
- call L$111key_256a
-db 102,15,58,223,200,16
- call L$110key_256b
-db 102,15,58,223,202,32
- call L$111key_256a
-db 102,15,58,223,200,32
- call L$110key_256b
-db 102,15,58,223,202,64
- call L$111key_256a
- movups [edx],xmm0
- mov DWORD [16+edx],ecx
- xor eax,eax
- jmp NEAR L$100good_key
-align 16
-L$111key_256a:
- movups [edx],xmm2
- lea edx,[16+edx]
-L$109key_256a_cold:
- shufps xmm4,xmm0,16
- xorps xmm0,xmm4
- shufps xmm4,xmm0,140
- xorps xmm0,xmm4
- shufps xmm1,xmm1,255
- xorps xmm0,xmm1
- ret
-align 16
-L$110key_256b:
- movups [edx],xmm0
- lea edx,[16+edx]
- shufps xmm4,xmm2,16
- xorps xmm2,xmm4
- shufps xmm4,xmm2,140
- xorps xmm2,xmm4
- shufps xmm1,xmm1,170
- xorps xmm2,xmm1
- ret
-align 16
-L$10814rounds_alt:
- movdqa xmm5,[ebx]
- movdqa xmm4,[32+ebx]
- mov ecx,7
- movdqu [edx-32],xmm0
- movdqa xmm1,xmm2
- movdqu [edx-16],xmm2
-L$112loop_key256:
-db 102,15,56,0,213
-db 102,15,56,221,212
- movdqa xmm3,xmm0
- pslldq xmm0,4
- pxor xmm3,xmm0
- pslldq xmm0,4
- pxor xmm3,xmm0
- pslldq xmm0,4
- pxor xmm0,xmm3
- pslld xmm4,1
- pxor xmm0,xmm2
- movdqu [edx],xmm0
- dec ecx
- jz NEAR L$113done_key256
- pshufd xmm2,xmm0,255
- pxor xmm3,xmm3
-db 102,15,56,221,211
- movdqa xmm3,xmm1
- pslldq xmm1,4
- pxor xmm3,xmm1
- pslldq xmm1,4
- pxor xmm3,xmm1
- pslldq xmm1,4
- pxor xmm1,xmm3
- pxor xmm2,xmm1
- movdqu [16+edx],xmm2
- lea edx,[32+edx]
- movdqa xmm1,xmm2
- jmp NEAR L$112loop_key256
-L$113done_key256:
- mov ecx,13
- mov DWORD [16+edx],ecx
-L$100good_key:
- pxor xmm0,xmm0
- pxor xmm1,xmm1
- pxor xmm2,xmm2
- pxor xmm3,xmm3
- pxor xmm4,xmm4
- pxor xmm5,xmm5
- xor eax,eax
- pop ebx
- pop ebp
- ret
-align 4
-L$091bad_pointer:
- mov eax,-1
- pop ebx
- pop ebp
- ret
-align 4
-L$095bad_keybits:
- pxor xmm0,xmm0
- mov eax,-2
- pop ebx
- pop ebp
- ret
-global _aesni_set_encrypt_key
-align 16
-_aesni_set_encrypt_key:
-L$_aesni_set_encrypt_key_begin:
- mov eax,DWORD [4+esp]
- mov ecx,DWORD [8+esp]
- mov edx,DWORD [12+esp]
- call __aesni_set_encrypt_key
- ret
-global _aesni_set_decrypt_key
-align 16
-_aesni_set_decrypt_key:
-L$_aesni_set_decrypt_key_begin:
- mov eax,DWORD [4+esp]
- mov ecx,DWORD [8+esp]
- mov edx,DWORD [12+esp]
- call __aesni_set_encrypt_key
- mov edx,DWORD [12+esp]
- shl ecx,4
- test eax,eax
- jnz NEAR L$114dec_key_ret
- lea eax,[16+ecx*1+edx]
- movups xmm0,[edx]
- movups xmm1,[eax]
- movups [eax],xmm0
- movups [edx],xmm1
- lea edx,[16+edx]
- lea eax,[eax-16]
-L$115dec_key_inverse:
- movups xmm0,[edx]
- movups xmm1,[eax]
-db 102,15,56,219,192
-db 102,15,56,219,201
- lea edx,[16+edx]
- lea eax,[eax-16]
- movups [16+eax],xmm0
- movups [edx-16],xmm1
- cmp eax,edx
- ja NEAR L$115dec_key_inverse
- movups xmm0,[edx]
-db 102,15,56,219,192
- movups [edx],xmm0
- pxor xmm0,xmm0
- pxor xmm1,xmm1
- xor eax,eax
-L$114dec_key_ret:
- ret
-align 64
-L$key_const:
-dd 202313229,202313229,202313229,202313229
-dd 67569157,67569157,67569157,67569157
-dd 1,1,1,1
-dd 27,27,27,27
-db 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69
-db 83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83
-db 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115
-db 115,108,46,111,114,103,62,0
-segment .bss
-common _OPENSSL_ia32cap_P 16
« no previous file with comments | « third_party/boringssl/win-x86/crypto/aes/aes-586.asm ('k') | third_party/boringssl/win-x86/crypto/aes/vpaes-x86.asm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698