--- /dev/null
+; WARNING: do not edit!\r
+; Generated from openssl/crypto/aes/asm/aesni-x86.pl\r
+;\r
+; Copyright 2009-2020 The OpenSSL Project Authors. All Rights Reserved.\r
+;\r
+; Licensed under the OpenSSL license (the "License"). You may not use\r
+; this file except in compliance with the License. You can obtain a copy\r
+; in the file LICENSE in the source distribution or at\r
+; https://www.openssl.org/source/license.html\r
+\r
+%ifidn __OUTPUT_FORMAT__,obj\r
+section code use32 class=code align=64\r
+%elifidn __OUTPUT_FORMAT__,win32\r
+$@feat.00 equ 1\r
+section .text code align=64\r
+%else\r
+section .text code\r
+%endif\r
+;extern _OPENSSL_ia32cap_P\r
+global _aesni_encrypt\r
+align 16\r
+_aesni_encrypt:\r
+L$_aesni_encrypt_begin:\r
+ mov eax,DWORD [4+esp]\r
+ mov edx,DWORD [12+esp]\r
+ movups xmm2,[eax]\r
+ mov ecx,DWORD [240+edx]\r
+ mov eax,DWORD [8+esp]\r
+ movups xmm0,[edx]\r
+ movups xmm1,[16+edx]\r
+ lea edx,[32+edx]\r
+ xorps xmm2,xmm0\r
+L$000enc1_loop_1:\r
+db 102,15,56,220,209\r
+ dec ecx\r
+ movups xmm1,[edx]\r
+ lea edx,[16+edx]\r
+ jnz NEAR L$000enc1_loop_1\r
+db 102,15,56,221,209\r
+ pxor xmm0,xmm0\r
+ pxor xmm1,xmm1\r
+ movups [eax],xmm2\r
+ pxor xmm2,xmm2\r
+ ret\r
+global _aesni_decrypt\r
+align 16\r
+_aesni_decrypt:\r
+L$_aesni_decrypt_begin:\r
+ mov eax,DWORD [4+esp]\r
+ mov edx,DWORD [12+esp]\r
+ movups xmm2,[eax]\r
+ mov ecx,DWORD [240+edx]\r
+ mov eax,DWORD [8+esp]\r
+ movups xmm0,[edx]\r
+ movups xmm1,[16+edx]\r
+ lea edx,[32+edx]\r
+ xorps xmm2,xmm0\r
+L$001dec1_loop_2:\r
+db 102,15,56,222,209\r
+ dec ecx\r
+ movups xmm1,[edx]\r
+ lea edx,[16+edx]\r
+ jnz NEAR L$001dec1_loop_2\r
+db 102,15,56,223,209\r
+ pxor xmm0,xmm0\r
+ pxor xmm1,xmm1\r
+ movups [eax],xmm2\r
+ pxor xmm2,xmm2\r
+ ret\r
+align 16\r
+__aesni_encrypt2:\r
+ movups xmm0,[edx]\r
+ shl ecx,4\r
+ movups xmm1,[16+edx]\r
+ xorps xmm2,xmm0\r
+ pxor xmm3,xmm0\r
+ movups xmm0,[32+edx]\r
+ lea edx,[32+ecx*1+edx]\r
+ neg ecx\r
+ add ecx,16\r
+L$002enc2_loop:\r
+db 102,15,56,220,209\r
+db 102,15,56,220,217\r
+ movups xmm1,[ecx*1+edx]\r
+ add ecx,32\r
+db 102,15,56,220,208\r
+db 102,15,56,220,216\r
+ movups xmm0,[ecx*1+edx-16]\r
+ jnz NEAR L$002enc2_loop\r
+db 102,15,56,220,209\r
+db 102,15,56,220,217\r
+db 102,15,56,221,208\r
+db 102,15,56,221,216\r
+ ret\r
+align 16\r
+__aesni_decrypt2:\r
+ movups xmm0,[edx]\r
+ shl ecx,4\r
+ movups xmm1,[16+edx]\r
+ xorps xmm2,xmm0\r
+ pxor xmm3,xmm0\r
+ movups xmm0,[32+edx]\r
+ lea edx,[32+ecx*1+edx]\r
+ neg ecx\r
+ add ecx,16\r
+L$003dec2_loop:\r
+db 102,15,56,222,209\r
+db 102,15,56,222,217\r
+ movups xmm1,[ecx*1+edx]\r
+ add ecx,32\r
+db 102,15,56,222,208\r
+db 102,15,56,222,216\r
+ movups xmm0,[ecx*1+edx-16]\r
+ jnz NEAR L$003dec2_loop\r
+db 102,15,56,222,209\r
+db 102,15,56,222,217\r
+db 102,15,56,223,208\r
+db 102,15,56,223,216\r
+ ret\r
+align 16\r
+__aesni_encrypt3:\r
+ movups xmm0,[edx]\r
+ shl ecx,4\r
+ movups xmm1,[16+edx]\r
+ xorps xmm2,xmm0\r
+ pxor xmm3,xmm0\r
+ pxor xmm4,xmm0\r
+ movups xmm0,[32+edx]\r
+ lea edx,[32+ecx*1+edx]\r
+ neg ecx\r
+ add ecx,16\r
+L$004enc3_loop:\r
+db 102,15,56,220,209\r
+db 102,15,56,220,217\r
+db 102,15,56,220,225\r
+ movups xmm1,[ecx*1+edx]\r
+ add ecx,32\r
+db 102,15,56,220,208\r
+db 102,15,56,220,216\r
+db 102,15,56,220,224\r
+ movups xmm0,[ecx*1+edx-16]\r
+ jnz NEAR L$004enc3_loop\r
+db 102,15,56,220,209\r
+db 102,15,56,220,217\r
+db 102,15,56,220,225\r
+db 102,15,56,221,208\r
+db 102,15,56,221,216\r
+db 102,15,56,221,224\r
+ ret\r
+align 16\r
+__aesni_decrypt3:\r
+ movups xmm0,[edx]\r
+ shl ecx,4\r
+ movups xmm1,[16+edx]\r
+ xorps xmm2,xmm0\r
+ pxor xmm3,xmm0\r
+ pxor xmm4,xmm0\r
+ movups xmm0,[32+edx]\r
+ lea edx,[32+ecx*1+edx]\r
+ neg ecx\r
+ add ecx,16\r
+L$005dec3_loop:\r
+db 102,15,56,222,209\r
+db 102,15,56,222,217\r
+db 102,15,56,222,225\r
+ movups xmm1,[ecx*1+edx]\r
+ add ecx,32\r
+db 102,15,56,222,208\r
+db 102,15,56,222,216\r
+db 102,15,56,222,224\r
+ movups xmm0,[ecx*1+edx-16]\r
+ jnz NEAR L$005dec3_loop\r
+db 102,15,56,222,209\r
+db 102,15,56,222,217\r
+db 102,15,56,222,225\r
+db 102,15,56,223,208\r
+db 102,15,56,223,216\r
+db 102,15,56,223,224\r
+ ret\r
+align 16\r
+__aesni_encrypt4:\r
+ movups xmm0,[edx]\r
+ movups xmm1,[16+edx]\r
+ shl ecx,4\r
+ xorps xmm2,xmm0\r
+ pxor xmm3,xmm0\r
+ pxor xmm4,xmm0\r
+ pxor xmm5,xmm0\r
+ movups xmm0,[32+edx]\r
+ lea edx,[32+ecx*1+edx]\r
+ neg ecx\r
+db 15,31,64,0\r
+ add ecx,16\r
+L$006enc4_loop:\r
+db 102,15,56,220,209\r
+db 102,15,56,220,217\r
+db 102,15,56,220,225\r
+db 102,15,56,220,233\r
+ movups xmm1,[ecx*1+edx]\r
+ add ecx,32\r
+db 102,15,56,220,208\r
+db 102,15,56,220,216\r
+db 102,15,56,220,224\r
+db 102,15,56,220,232\r
+ movups xmm0,[ecx*1+edx-16]\r
+ jnz NEAR L$006enc4_loop\r
+db 102,15,56,220,209\r
+db 102,15,56,220,217\r
+db 102,15,56,220,225\r
+db 102,15,56,220,233\r
+db 102,15,56,221,208\r
+db 102,15,56,221,216\r
+db 102,15,56,221,224\r
+db 102,15,56,221,232\r
+ ret\r
+align 16\r
+__aesni_decrypt4:\r
+ movups xmm0,[edx]\r
+ movups xmm1,[16+edx]\r
+ shl ecx,4\r
+ xorps xmm2,xmm0\r
+ pxor xmm3,xmm0\r
+ pxor xmm4,xmm0\r
+ pxor xmm5,xmm0\r
+ movups xmm0,[32+edx]\r
+ lea edx,[32+ecx*1+edx]\r
+ neg ecx\r
+db 15,31,64,0\r
+ add ecx,16\r
+L$007dec4_loop:\r
+db 102,15,56,222,209\r
+db 102,15,56,222,217\r
+db 102,15,56,222,225\r
+db 102,15,56,222,233\r
+ movups xmm1,[ecx*1+edx]\r
+ add ecx,32\r
+db 102,15,56,222,208\r
+db 102,15,56,222,216\r
+db 102,15,56,222,224\r
+db 102,15,56,222,232\r
+ movups xmm0,[ecx*1+edx-16]\r
+ jnz NEAR L$007dec4_loop\r
+db 102,15,56,222,209\r
+db 102,15,56,222,217\r
+db 102,15,56,222,225\r
+db 102,15,56,222,233\r
+db 102,15,56,223,208\r
+db 102,15,56,223,216\r
+db 102,15,56,223,224\r
+db 102,15,56,223,232\r
+ ret\r
+align 16\r
+__aesni_encrypt6:\r
+ movups xmm0,[edx]\r
+ shl ecx,4\r
+ movups xmm1,[16+edx]\r
+ xorps xmm2,xmm0\r
+ pxor xmm3,xmm0\r
+ pxor xmm4,xmm0\r
+db 102,15,56,220,209\r
+ pxor xmm5,xmm0\r
+ pxor xmm6,xmm0\r
+db 102,15,56,220,217\r
+ lea edx,[32+ecx*1+edx]\r
+ neg ecx\r
+db 102,15,56,220,225\r
+ pxor xmm7,xmm0\r
+ movups xmm0,[ecx*1+edx]\r
+ add ecx,16\r
+ jmp NEAR L$008_aesni_encrypt6_inner\r
+align 16\r
+L$009enc6_loop:\r
+db 102,15,56,220,209\r
+db 102,15,56,220,217\r
+db 102,15,56,220,225\r
+L$008_aesni_encrypt6_inner:\r
+db 102,15,56,220,233\r
+db 102,15,56,220,241\r
+db 102,15,56,220,249\r
+L$_aesni_encrypt6_enter:\r
+ movups xmm1,[ecx*1+edx]\r
+ add ecx,32\r
+db 102,15,56,220,208\r
+db 102,15,56,220,216\r
+db 102,15,56,220,224\r
+db 102,15,56,220,232\r
+db 102,15,56,220,240\r
+db 102,15,56,220,248\r
+ movups xmm0,[ecx*1+edx-16]\r
+ jnz NEAR L$009enc6_loop\r
+db 102,15,56,220,209\r
+db 102,15,56,220,217\r
+db 102,15,56,220,225\r
+db 102,15,56,220,233\r
+db 102,15,56,220,241\r
+db 102,15,56,220,249\r
+db 102,15,56,221,208\r
+db 102,15,56,221,216\r
+db 102,15,56,221,224\r
+db 102,15,56,221,232\r
+db 102,15,56,221,240\r
+db 102,15,56,221,248\r
+ ret\r
+align 16\r
+__aesni_decrypt6:\r
+ movups xmm0,[edx]\r
+ shl ecx,4\r
+ movups xmm1,[16+edx]\r
+ xorps xmm2,xmm0\r
+ pxor xmm3,xmm0\r
+ pxor xmm4,xmm0\r
+db 102,15,56,222,209\r
+ pxor xmm5,xmm0\r
+ pxor xmm6,xmm0\r
+db 102,15,56,222,217\r
+ lea edx,[32+ecx*1+edx]\r
+ neg ecx\r
+db 102,15,56,222,225\r
+ pxor xmm7,xmm0\r
+ movups xmm0,[ecx*1+edx]\r
+ add ecx,16\r
+ jmp NEAR L$010_aesni_decrypt6_inner\r
+align 16\r
+L$011dec6_loop:\r
+db 102,15,56,222,209\r
+db 102,15,56,222,217\r
+db 102,15,56,222,225\r
+L$010_aesni_decrypt6_inner:\r
+db 102,15,56,222,233\r
+db 102,15,56,222,241\r
+db 102,15,56,222,249\r
+L$_aesni_decrypt6_enter:\r
+ movups xmm1,[ecx*1+edx]\r
+ add ecx,32\r
+db 102,15,56,222,208\r
+db 102,15,56,222,216\r
+db 102,15,56,222,224\r
+db 102,15,56,222,232\r
+db 102,15,56,222,240\r
+db 102,15,56,222,248\r
+ movups xmm0,[ecx*1+edx-16]\r
+ jnz NEAR L$011dec6_loop\r
+db 102,15,56,222,209\r
+db 102,15,56,222,217\r
+db 102,15,56,222,225\r
+db 102,15,56,222,233\r
+db 102,15,56,222,241\r
+db 102,15,56,222,249\r
+db 102,15,56,223,208\r
+db 102,15,56,223,216\r
+db 102,15,56,223,224\r
+db 102,15,56,223,232\r
+db 102,15,56,223,240\r
+db 102,15,56,223,248\r
+ ret\r
+global _aesni_ecb_encrypt\r
+align 16\r
+_aesni_ecb_encrypt:\r
+L$_aesni_ecb_encrypt_begin:\r
+ push ebp\r
+ push ebx\r
+ push esi\r
+ push edi\r
+ mov esi,DWORD [20+esp]\r
+ mov edi,DWORD [24+esp]\r
+ mov eax,DWORD [28+esp]\r
+ mov edx,DWORD [32+esp]\r
+ mov ebx,DWORD [36+esp]\r
+ and eax,-16\r
+ jz NEAR L$012ecb_ret\r
+ mov ecx,DWORD [240+edx]\r
+ test ebx,ebx\r
+ jz NEAR L$013ecb_decrypt\r
+ mov ebp,edx\r
+ mov ebx,ecx\r
+ cmp eax,96\r
+ jb NEAR L$014ecb_enc_tail\r
+ movdqu xmm2,[esi]\r
+ movdqu xmm3,[16+esi]\r
+ movdqu xmm4,[32+esi]\r
+ movdqu xmm5,[48+esi]\r
+ movdqu xmm6,[64+esi]\r
+ movdqu xmm7,[80+esi]\r
+ lea esi,[96+esi]\r
+ sub eax,96\r
+ jmp NEAR L$015ecb_enc_loop6_enter\r
+align 16\r
+L$016ecb_enc_loop6:\r
+ movups [edi],xmm2\r
+ movdqu xmm2,[esi]\r
+ movups [16+edi],xmm3\r
+ movdqu xmm3,[16+esi]\r
+ movups [32+edi],xmm4\r
+ movdqu xmm4,[32+esi]\r
+ movups [48+edi],xmm5\r
+ movdqu xmm5,[48+esi]\r
+ movups [64+edi],xmm6\r
+ movdqu xmm6,[64+esi]\r
+ movups [80+edi],xmm7\r
+ lea edi,[96+edi]\r
+ movdqu xmm7,[80+esi]\r
+ lea esi,[96+esi]\r
+L$015ecb_enc_loop6_enter:\r
+ call __aesni_encrypt6\r
+ mov edx,ebp\r
+ mov ecx,ebx\r
+ sub eax,96\r
+ jnc NEAR L$016ecb_enc_loop6\r
+ movups [edi],xmm2\r
+ movups [16+edi],xmm3\r
+ movups [32+edi],xmm4\r
+ movups [48+edi],xmm5\r
+ movups [64+edi],xmm6\r
+ movups [80+edi],xmm7\r
+ lea edi,[96+edi]\r
+ add eax,96\r
+ jz NEAR L$012ecb_ret\r
+L$014ecb_enc_tail:\r
+ movups xmm2,[esi]\r
+ cmp eax,32\r
+ jb NEAR L$017ecb_enc_one\r
+ movups xmm3,[16+esi]\r
+ je NEAR L$018ecb_enc_two\r
+ movups xmm4,[32+esi]\r
+ cmp eax,64\r
+ jb NEAR L$019ecb_enc_three\r
+ movups xmm5,[48+esi]\r
+ je NEAR L$020ecb_enc_four\r
+ movups xmm6,[64+esi]\r
+ xorps xmm7,xmm7\r
+ call __aesni_encrypt6\r
+ movups [edi],xmm2\r
+ movups [16+edi],xmm3\r
+ movups [32+edi],xmm4\r
+ movups [48+edi],xmm5\r
+ movups [64+edi],xmm6\r
+ jmp NEAR L$012ecb_ret\r
+align 16\r
+L$017ecb_enc_one:\r
+ movups xmm0,[edx]\r
+ movups xmm1,[16+edx]\r
+ lea edx,[32+edx]\r
+ xorps xmm2,xmm0\r
+L$021enc1_loop_3:\r
+db 102,15,56,220,209\r
+ dec ecx\r
+ movups xmm1,[edx]\r
+ lea edx,[16+edx]\r
+ jnz NEAR L$021enc1_loop_3\r
+db 102,15,56,221,209\r
+ movups [edi],xmm2\r
+ jmp NEAR L$012ecb_ret\r
+align 16\r
+L$018ecb_enc_two:\r
+ call __aesni_encrypt2\r
+ movups [edi],xmm2\r
+ movups [16+edi],xmm3\r
+ jmp NEAR L$012ecb_ret\r
+align 16\r
+L$019ecb_enc_three:\r
+ call __aesni_encrypt3\r
+ movups [edi],xmm2\r
+ movups [16+edi],xmm3\r
+ movups [32+edi],xmm4\r
+ jmp NEAR L$012ecb_ret\r
+align 16\r
+L$020ecb_enc_four:\r
+ call __aesni_encrypt4\r
+ movups [edi],xmm2\r
+ movups [16+edi],xmm3\r
+ movups [32+edi],xmm4\r
+ movups [48+edi],xmm5\r
+ jmp NEAR L$012ecb_ret\r
+align 16\r
+L$013ecb_decrypt:\r
+ mov ebp,edx\r
+ mov ebx,ecx\r
+ cmp eax,96\r
+ jb NEAR L$022ecb_dec_tail\r
+ movdqu xmm2,[esi]\r
+ movdqu xmm3,[16+esi]\r
+ movdqu xmm4,[32+esi]\r
+ movdqu xmm5,[48+esi]\r
+ movdqu xmm6,[64+esi]\r
+ movdqu xmm7,[80+esi]\r
+ lea esi,[96+esi]\r
+ sub eax,96\r
+ jmp NEAR L$023ecb_dec_loop6_enter\r
+align 16\r
+L$024ecb_dec_loop6:\r
+ movups [edi],xmm2\r
+ movdqu xmm2,[esi]\r
+ movups [16+edi],xmm3\r
+ movdqu xmm3,[16+esi]\r
+ movups [32+edi],xmm4\r
+ movdqu xmm4,[32+esi]\r
+ movups [48+edi],xmm5\r
+ movdqu xmm5,[48+esi]\r
+ movups [64+edi],xmm6\r
+ movdqu xmm6,[64+esi]\r
+ movups [80+edi],xmm7\r
+ lea edi,[96+edi]\r
+ movdqu xmm7,[80+esi]\r
+ lea esi,[96+esi]\r
+L$023ecb_dec_loop6_enter:\r
+ call __aesni_decrypt6\r
+ mov edx,ebp\r
+ mov ecx,ebx\r
+ sub eax,96\r
+ jnc NEAR L$024ecb_dec_loop6\r
+ movups [edi],xmm2\r
+ movups [16+edi],xmm3\r
+ movups [32+edi],xmm4\r
+ movups [48+edi],xmm5\r
+ movups [64+edi],xmm6\r
+ movups [80+edi],xmm7\r
+ lea edi,[96+edi]\r
+ add eax,96\r
+ jz NEAR L$012ecb_ret\r
+L$022ecb_dec_tail:\r
+ movups xmm2,[esi]\r
+ cmp eax,32\r
+ jb NEAR L$025ecb_dec_one\r
+ movups xmm3,[16+esi]\r
+ je NEAR L$026ecb_dec_two\r
+ movups xmm4,[32+esi]\r
+ cmp eax,64\r
+ jb NEAR L$027ecb_dec_three\r
+ movups xmm5,[48+esi]\r
+ je NEAR L$028ecb_dec_four\r
+ movups xmm6,[64+esi]\r
+ xorps xmm7,xmm7\r
+ call __aesni_decrypt6\r
+ movups [edi],xmm2\r
+ movups [16+edi],xmm3\r
+ movups [32+edi],xmm4\r
+ movups [48+edi],xmm5\r
+ movups [64+edi],xmm6\r
+ jmp NEAR L$012ecb_ret\r
+align 16\r
+L$025ecb_dec_one:\r
+ movups xmm0,[edx]\r
+ movups xmm1,[16+edx]\r
+ lea edx,[32+edx]\r
+ xorps xmm2,xmm0\r
+L$029dec1_loop_4:\r
+db 102,15,56,222,209\r
+ dec ecx\r
+ movups xmm1,[edx]\r
+ lea edx,[16+edx]\r
+ jnz NEAR L$029dec1_loop_4\r
+db 102,15,56,223,209\r
+ movups [edi],xmm2\r
+ jmp NEAR L$012ecb_ret\r
+align 16\r
+L$026ecb_dec_two:\r
+ call __aesni_decrypt2\r
+ movups [edi],xmm2\r
+ movups [16+edi],xmm3\r
+ jmp NEAR L$012ecb_ret\r
+align 16\r
+L$027ecb_dec_three:\r
+ call __aesni_decrypt3\r
+ movups [edi],xmm2\r
+ movups [16+edi],xmm3\r
+ movups [32+edi],xmm4\r
+ jmp NEAR L$012ecb_ret\r
+align 16\r
+L$028ecb_dec_four:\r
+ call __aesni_decrypt4\r
+ movups [edi],xmm2\r
+ movups [16+edi],xmm3\r
+ movups [32+edi],xmm4\r
+ movups [48+edi],xmm5\r
+L$012ecb_ret:\r
+ pxor xmm0,xmm0\r
+ pxor xmm1,xmm1\r
+ pxor xmm2,xmm2\r
+ pxor xmm3,xmm3\r
+ pxor xmm4,xmm4\r
+ pxor xmm5,xmm5\r
+ pxor xmm6,xmm6\r
+ pxor xmm7,xmm7\r
+ pop edi\r
+ pop esi\r
+ pop ebx\r
+ pop ebp\r
+ ret\r
+global _aesni_ccm64_encrypt_blocks\r
+align 16\r
+_aesni_ccm64_encrypt_blocks:\r
+L$_aesni_ccm64_encrypt_blocks_begin:\r
+ push ebp\r
+ push ebx\r
+ push esi\r
+ push edi\r
+ mov esi,DWORD [20+esp]\r
+ mov edi,DWORD [24+esp]\r
+ mov eax,DWORD [28+esp]\r
+ mov edx,DWORD [32+esp]\r
+ mov ebx,DWORD [36+esp]\r
+ mov ecx,DWORD [40+esp]\r
+ mov ebp,esp\r
+ sub esp,60\r
+ and esp,-16\r
+ mov DWORD [48+esp],ebp\r
+ movdqu xmm7,[ebx]\r
+ movdqu xmm3,[ecx]\r
+ mov ecx,DWORD [240+edx]\r
+ mov DWORD [esp],202182159\r
+ mov DWORD [4+esp],134810123\r
+ mov DWORD [8+esp],67438087\r
+ mov DWORD [12+esp],66051\r
+ mov ebx,1\r
+ xor ebp,ebp\r
+ mov DWORD [16+esp],ebx\r
+ mov DWORD [20+esp],ebp\r
+ mov DWORD [24+esp],ebp\r
+ mov DWORD [28+esp],ebp\r
+ shl ecx,4\r
+ mov ebx,16\r
+ lea ebp,[edx]\r
+ movdqa xmm5,[esp]\r
+ movdqa xmm2,xmm7\r
+ lea edx,[32+ecx*1+edx]\r
+ sub ebx,ecx\r
+db 102,15,56,0,253\r
+L$030ccm64_enc_outer:\r
+ movups xmm0,[ebp]\r
+ mov ecx,ebx\r
+ movups xmm6,[esi]\r
+ xorps xmm2,xmm0\r
+ movups xmm1,[16+ebp]\r
+ xorps xmm0,xmm6\r
+ xorps xmm3,xmm0\r
+ movups xmm0,[32+ebp]\r
+L$031ccm64_enc2_loop:\r
+db 102,15,56,220,209\r
+db 102,15,56,220,217\r
+ movups xmm1,[ecx*1+edx]\r
+ add ecx,32\r
+db 102,15,56,220,208\r
+db 102,15,56,220,216\r
+ movups xmm0,[ecx*1+edx-16]\r
+ jnz NEAR L$031ccm64_enc2_loop\r
+db 102,15,56,220,209\r
+db 102,15,56,220,217\r
+ paddq xmm7,[16+esp]\r
+ dec eax\r
+db 102,15,56,221,208\r
+db 102,15,56,221,216\r
+ lea esi,[16+esi]\r
+ xorps xmm6,xmm2\r
+ movdqa xmm2,xmm7\r
+ movups [edi],xmm6\r
+db 102,15,56,0,213\r
+ lea edi,[16+edi]\r
+ jnz NEAR L$030ccm64_enc_outer\r
+ mov esp,DWORD [48+esp]\r
+ mov edi,DWORD [40+esp]\r
+ movups [edi],xmm3\r
+ pxor xmm0,xmm0\r
+ pxor xmm1,xmm1\r
+ pxor xmm2,xmm2\r
+ pxor xmm3,xmm3\r
+ pxor xmm4,xmm4\r
+ pxor xmm5,xmm5\r
+ pxor xmm6,xmm6\r
+ pxor xmm7,xmm7\r
+ pop edi\r
+ pop esi\r
+ pop ebx\r
+ pop ebp\r
+ ret\r
+global _aesni_ccm64_decrypt_blocks\r
+align 16\r
+_aesni_ccm64_decrypt_blocks:\r
+L$_aesni_ccm64_decrypt_blocks_begin:\r
+ push ebp\r
+ push ebx\r
+ push esi\r
+ push edi\r
+ mov esi,DWORD [20+esp]\r
+ mov edi,DWORD [24+esp]\r
+ mov eax,DWORD [28+esp]\r
+ mov edx,DWORD [32+esp]\r
+ mov ebx,DWORD [36+esp]\r
+ mov ecx,DWORD [40+esp]\r
+ mov ebp,esp\r
+ sub esp,60\r
+ and esp,-16\r
+ mov DWORD [48+esp],ebp\r
+ movdqu xmm7,[ebx]\r
+ movdqu xmm3,[ecx]\r
+ mov ecx,DWORD [240+edx]\r
+ mov DWORD [esp],202182159\r
+ mov DWORD [4+esp],134810123\r
+ mov DWORD [8+esp],67438087\r
+ mov DWORD [12+esp],66051\r
+ mov ebx,1\r
+ xor ebp,ebp\r
+ mov DWORD [16+esp],ebx\r
+ mov DWORD [20+esp],ebp\r
+ mov DWORD [24+esp],ebp\r
+ mov DWORD [28+esp],ebp\r
+ movdqa xmm5,[esp]\r
+ movdqa xmm2,xmm7\r
+ mov ebp,edx\r
+ mov ebx,ecx\r
+db 102,15,56,0,253\r
+ movups xmm0,[edx]\r
+ movups xmm1,[16+edx]\r
+ lea edx,[32+edx]\r
+ xorps xmm2,xmm0\r
+L$032enc1_loop_5:\r
+db 102,15,56,220,209\r
+ dec ecx\r
+ movups xmm1,[edx]\r
+ lea edx,[16+edx]\r
+ jnz NEAR L$032enc1_loop_5\r
+db 102,15,56,221,209\r
+ shl ebx,4\r
+ mov ecx,16\r
+ movups xmm6,[esi]\r
+ paddq xmm7,[16+esp]\r
+ lea esi,[16+esi]\r
+ sub ecx,ebx\r
+ lea edx,[32+ebx*1+ebp]\r
+ mov ebx,ecx\r
+ jmp NEAR L$033ccm64_dec_outer\r
+align 16\r
+L$033ccm64_dec_outer:\r
+ xorps xmm6,xmm2\r
+ movdqa xmm2,xmm7\r
+ movups [edi],xmm6\r
+ lea edi,[16+edi]\r
+db 102,15,56,0,213\r
+ sub eax,1\r
+ jz NEAR L$034ccm64_dec_break\r
+ movups xmm0,[ebp]\r
+ mov ecx,ebx\r
+ movups xmm1,[16+ebp]\r
+ xorps xmm6,xmm0\r
+ xorps xmm2,xmm0\r
+ xorps xmm3,xmm6\r
+ movups xmm0,[32+ebp]\r
+L$035ccm64_dec2_loop:\r
+db 102,15,56,220,209\r
+db 102,15,56,220,217\r
+ movups xmm1,[ecx*1+edx]\r
+ add ecx,32\r
+db 102,15,56,220,208\r
+db 102,15,56,220,216\r
+ movups xmm0,[ecx*1+edx-16]\r
+ jnz NEAR L$035ccm64_dec2_loop\r
+ movups xmm6,[esi]\r
+ paddq xmm7,[16+esp]\r
+db 102,15,56,220,209\r
+db 102,15,56,220,217\r
+db 102,15,56,221,208\r
+db 102,15,56,221,216\r
+ lea esi,[16+esi]\r
+ jmp NEAR L$033ccm64_dec_outer\r
+align 16\r
+L$034ccm64_dec_break:\r
+ mov ecx,DWORD [240+ebp]\r
+ mov edx,ebp\r
+ movups xmm0,[edx]\r
+ movups xmm1,[16+edx]\r
+ xorps xmm6,xmm0\r
+ lea edx,[32+edx]\r
+ xorps xmm3,xmm6\r
+L$036enc1_loop_6:\r
+db 102,15,56,220,217\r
+ dec ecx\r
+ movups xmm1,[edx]\r
+ lea edx,[16+edx]\r
+ jnz NEAR L$036enc1_loop_6\r
+db 102,15,56,221,217\r
+ mov esp,DWORD [48+esp]\r
+ mov edi,DWORD [40+esp]\r
+ movups [edi],xmm3\r
+ pxor xmm0,xmm0\r
+ pxor xmm1,xmm1\r
+ pxor xmm2,xmm2\r
+ pxor xmm3,xmm3\r
+ pxor xmm4,xmm4\r
+ pxor xmm5,xmm5\r
+ pxor xmm6,xmm6\r
+ pxor xmm7,xmm7\r
+ pop edi\r
+ pop esi\r
+ pop ebx\r
+ pop ebp\r
+ ret\r
+global _aesni_ctr32_encrypt_blocks\r
+align 16\r
+_aesni_ctr32_encrypt_blocks:\r
+L$_aesni_ctr32_encrypt_blocks_begin:\r
+ push ebp\r
+ push ebx\r
+ push esi\r
+ push edi\r
+ mov esi,DWORD [20+esp]\r
+ mov edi,DWORD [24+esp]\r
+ mov eax,DWORD [28+esp]\r
+ mov edx,DWORD [32+esp]\r
+ mov ebx,DWORD [36+esp]\r
+ mov ebp,esp\r
+ sub esp,88\r
+ and esp,-16\r
+ mov DWORD [80+esp],ebp\r
+ cmp eax,1\r
+ je NEAR L$037ctr32_one_shortcut\r
+ movdqu xmm7,[ebx]\r
+ mov DWORD [esp],202182159\r
+ mov DWORD [4+esp],134810123\r
+ mov DWORD [8+esp],67438087\r
+ mov DWORD [12+esp],66051\r
+ mov ecx,6\r
+ xor ebp,ebp\r
+ mov DWORD [16+esp],ecx\r
+ mov DWORD [20+esp],ecx\r
+ mov DWORD [24+esp],ecx\r
+ mov DWORD [28+esp],ebp\r
+db 102,15,58,22,251,3\r
+db 102,15,58,34,253,3\r
+ mov ecx,DWORD [240+edx]\r
+ bswap ebx\r
+ pxor xmm0,xmm0\r
+ pxor xmm1,xmm1\r
+ movdqa xmm2,[esp]\r
+db 102,15,58,34,195,0\r
+ lea ebp,[3+ebx]\r
+db 102,15,58,34,205,0\r
+ inc ebx\r
+db 102,15,58,34,195,1\r
+ inc ebp\r
+db 102,15,58,34,205,1\r
+ inc ebx\r
+db 102,15,58,34,195,2\r
+ inc ebp\r
+db 102,15,58,34,205,2\r
+ movdqa [48+esp],xmm0\r
+db 102,15,56,0,194\r
+ movdqu xmm6,[edx]\r
+ movdqa [64+esp],xmm1\r
+db 102,15,56,0,202\r
+ pshufd xmm2,xmm0,192\r
+ pshufd xmm3,xmm0,128\r
+ cmp eax,6\r
+ jb NEAR L$038ctr32_tail\r
+ pxor xmm7,xmm6\r
+ shl ecx,4\r
+ mov ebx,16\r
+ movdqa [32+esp],xmm7\r
+ mov ebp,edx\r
+ sub ebx,ecx\r
+ lea edx,[32+ecx*1+edx]\r
+ sub eax,6\r
+ jmp NEAR L$039ctr32_loop6\r
+align 16\r
+L$039ctr32_loop6:\r
+ pshufd xmm4,xmm0,64\r
+ movdqa xmm0,[32+esp]\r
+ pshufd xmm5,xmm1,192\r
+ pxor xmm2,xmm0\r
+ pshufd xmm6,xmm1,128\r
+ pxor xmm3,xmm0\r
+ pshufd xmm7,xmm1,64\r
+ movups xmm1,[16+ebp]\r
+ pxor xmm4,xmm0\r
+ pxor xmm5,xmm0\r
+db 102,15,56,220,209\r
+ pxor xmm6,xmm0\r
+ pxor xmm7,xmm0\r
+db 102,15,56,220,217\r
+ movups xmm0,[32+ebp]\r
+ mov ecx,ebx\r
+db 102,15,56,220,225\r
+db 102,15,56,220,233\r
+db 102,15,56,220,241\r
+db 102,15,56,220,249\r
+ call L$_aesni_encrypt6_enter\r
+ movups xmm1,[esi]\r
+ movups xmm0,[16+esi]\r
+ xorps xmm2,xmm1\r
+ movups xmm1,[32+esi]\r
+ xorps xmm3,xmm0\r
+ movups [edi],xmm2\r
+ movdqa xmm0,[16+esp]\r
+ xorps xmm4,xmm1\r
+ movdqa xmm1,[64+esp]\r
+ movups [16+edi],xmm3\r
+ movups [32+edi],xmm4\r
+ paddd xmm1,xmm0\r
+ paddd xmm0,[48+esp]\r
+ movdqa xmm2,[esp]\r
+ movups xmm3,[48+esi]\r
+ movups xmm4,[64+esi]\r
+ xorps xmm5,xmm3\r
+ movups xmm3,[80+esi]\r
+ lea esi,[96+esi]\r
+ movdqa [48+esp],xmm0\r
+db 102,15,56,0,194\r
+ xorps xmm6,xmm4\r
+ movups [48+edi],xmm5\r
+ xorps xmm7,xmm3\r
+ movdqa [64+esp],xmm1\r
+db 102,15,56,0,202\r
+ movups [64+edi],xmm6\r
+ pshufd xmm2,xmm0,192\r
+ movups [80+edi],xmm7\r
+ lea edi,[96+edi]\r
+ pshufd xmm3,xmm0,128\r
+ sub eax,6\r
+ jnc NEAR L$039ctr32_loop6\r
+ add eax,6\r
+ jz NEAR L$040ctr32_ret\r
+ movdqu xmm7,[ebp]\r
+ mov edx,ebp\r
+ pxor xmm7,[32+esp]\r
+ mov ecx,DWORD [240+ebp]\r
+L$038ctr32_tail:\r
+ por xmm2,xmm7\r
+ cmp eax,2\r
+ jb NEAR L$041ctr32_one\r
+ pshufd xmm4,xmm0,64\r
+ por xmm3,xmm7\r
+ je NEAR L$042ctr32_two\r
+ pshufd xmm5,xmm1,192\r
+ por xmm4,xmm7\r
+ cmp eax,4\r
+ jb NEAR L$043ctr32_three\r
+ pshufd xmm6,xmm1,128\r
+ por xmm5,xmm7\r
+ je NEAR L$044ctr32_four\r
+ por xmm6,xmm7\r
+ call __aesni_encrypt6\r
+ movups xmm1,[esi]\r
+ movups xmm0,[16+esi]\r
+ xorps xmm2,xmm1\r
+ movups xmm1,[32+esi]\r
+ xorps xmm3,xmm0\r
+ movups xmm0,[48+esi]\r
+ xorps xmm4,xmm1\r
+ movups xmm1,[64+esi]\r
+ xorps xmm5,xmm0\r
+ movups [edi],xmm2\r
+ xorps xmm6,xmm1\r
+ movups [16+edi],xmm3\r
+ movups [32+edi],xmm4\r
+ movups [48+edi],xmm5\r
+ movups [64+edi],xmm6\r
+ jmp NEAR L$040ctr32_ret\r
+align 16\r
+L$037ctr32_one_shortcut:\r
+ movups xmm2,[ebx]\r
+ mov ecx,DWORD [240+edx]\r
+L$041ctr32_one:\r
+ movups xmm0,[edx]\r
+ movups xmm1,[16+edx]\r
+ lea edx,[32+edx]\r
+ xorps xmm2,xmm0\r
+L$045enc1_loop_7:\r
+db 102,15,56,220,209\r
+ dec ecx\r
+ movups xmm1,[edx]\r
+ lea edx,[16+edx]\r
+ jnz NEAR L$045enc1_loop_7\r
+db 102,15,56,221,209\r
+ movups xmm6,[esi]\r
+ xorps xmm6,xmm2\r
+ movups [edi],xmm6\r
+ jmp NEAR L$040ctr32_ret\r
+align 16\r
+L$042ctr32_two:\r
+ call __aesni_encrypt2\r
+ movups xmm5,[esi]\r
+ movups xmm6,[16+esi]\r
+ xorps xmm2,xmm5\r
+ xorps xmm3,xmm6\r
+ movups [edi],xmm2\r
+ movups [16+edi],xmm3\r
+ jmp NEAR L$040ctr32_ret\r
+align 16\r
+L$043ctr32_three:\r
+ call __aesni_encrypt3\r
+ movups xmm5,[esi]\r
+ movups xmm6,[16+esi]\r
+ xorps xmm2,xmm5\r
+ movups xmm7,[32+esi]\r
+ xorps xmm3,xmm6\r
+ movups [edi],xmm2\r
+ xorps xmm4,xmm7\r
+ movups [16+edi],xmm3\r
+ movups [32+edi],xmm4\r
+ jmp NEAR L$040ctr32_ret\r
+align 16\r
+L$044ctr32_four:\r
+ call __aesni_encrypt4\r
+ movups xmm6,[esi]\r
+ movups xmm7,[16+esi]\r
+ movups xmm1,[32+esi]\r
+ xorps xmm2,xmm6\r
+ movups xmm0,[48+esi]\r
+ xorps xmm3,xmm7\r
+ movups [edi],xmm2\r
+ xorps xmm4,xmm1\r
+ movups [16+edi],xmm3\r
+ xorps xmm5,xmm0\r
+ movups [32+edi],xmm4\r
+ movups [48+edi],xmm5\r
+L$040ctr32_ret:\r
+ pxor xmm0,xmm0\r
+ pxor xmm1,xmm1\r
+ pxor xmm2,xmm2\r
+ pxor xmm3,xmm3\r
+ pxor xmm4,xmm4\r
+ movdqa [32+esp],xmm0\r
+ pxor xmm5,xmm5\r
+ movdqa [48+esp],xmm0\r
+ pxor xmm6,xmm6\r
+ movdqa [64+esp],xmm0\r
+ pxor xmm7,xmm7\r
+ mov esp,DWORD [80+esp]\r
+ pop edi\r
+ pop esi\r
+ pop ebx\r
+ pop ebp\r
+ ret\r
+global _aesni_xts_encrypt\r
+align 16\r
+_aesni_xts_encrypt:\r
+L$_aesni_xts_encrypt_begin:\r
+ push ebp\r
+ push ebx\r
+ push esi\r
+ push edi\r
+ mov edx,DWORD [36+esp]\r
+ mov esi,DWORD [40+esp]\r
+ mov ecx,DWORD [240+edx]\r
+ movups xmm2,[esi]\r
+ movups xmm0,[edx]\r
+ movups xmm1,[16+edx]\r
+ lea edx,[32+edx]\r
+ xorps xmm2,xmm0\r
+L$046enc1_loop_8:\r
+db 102,15,56,220,209\r
+ dec ecx\r
+ movups xmm1,[edx]\r
+ lea edx,[16+edx]\r
+ jnz NEAR L$046enc1_loop_8\r
+db 102,15,56,221,209\r
+ mov esi,DWORD [20+esp]\r
+ mov edi,DWORD [24+esp]\r
+ mov eax,DWORD [28+esp]\r
+ mov edx,DWORD [32+esp]\r
+ mov ebp,esp\r
+ sub esp,120\r
+ mov ecx,DWORD [240+edx]\r
+ and esp,-16\r
+ mov DWORD [96+esp],135\r
+ mov DWORD [100+esp],0\r
+ mov DWORD [104+esp],1\r
+ mov DWORD [108+esp],0\r
+ mov DWORD [112+esp],eax\r
+ mov DWORD [116+esp],ebp\r
+ movdqa xmm1,xmm2\r
+ pxor xmm0,xmm0\r
+ movdqa xmm3,[96+esp]\r
+ pcmpgtd xmm0,xmm1\r
+ and eax,-16\r
+ mov ebp,edx\r
+ mov ebx,ecx\r
+ sub eax,96\r
+ jc NEAR L$047xts_enc_short\r
+ shl ecx,4\r
+ mov ebx,16\r
+ sub ebx,ecx\r
+ lea edx,[32+ecx*1+edx]\r
+ jmp NEAR L$048xts_enc_loop6\r
+align 16\r
+L$048xts_enc_loop6:\r
+ pshufd xmm2,xmm0,19\r
+ pxor xmm0,xmm0\r
+ movdqa [esp],xmm1\r
+ paddq xmm1,xmm1\r
+ pand xmm2,xmm3\r
+ pcmpgtd xmm0,xmm1\r
+ pxor xmm1,xmm2\r
+ pshufd xmm2,xmm0,19\r
+ pxor xmm0,xmm0\r
+ movdqa [16+esp],xmm1\r
+ paddq xmm1,xmm1\r
+ pand xmm2,xmm3\r
+ pcmpgtd xmm0,xmm1\r
+ pxor xmm1,xmm2\r
+ pshufd xmm2,xmm0,19\r
+ pxor xmm0,xmm0\r
+ movdqa [32+esp],xmm1\r
+ paddq xmm1,xmm1\r
+ pand xmm2,xmm3\r
+ pcmpgtd xmm0,xmm1\r
+ pxor xmm1,xmm2\r
+ pshufd xmm2,xmm0,19\r
+ pxor xmm0,xmm0\r
+ movdqa [48+esp],xmm1\r
+ paddq xmm1,xmm1\r
+ pand xmm2,xmm3\r
+ pcmpgtd xmm0,xmm1\r
+ pxor xmm1,xmm2\r
+ pshufd xmm7,xmm0,19\r
+ movdqa [64+esp],xmm1\r
+ paddq xmm1,xmm1\r
+ movups xmm0,[ebp]\r
+ pand xmm7,xmm3\r
+ movups xmm2,[esi]\r
+ pxor xmm7,xmm1\r
+ mov ecx,ebx\r
+ movdqu xmm3,[16+esi]\r
+ xorps xmm2,xmm0\r
+ movdqu xmm4,[32+esi]\r
+ pxor xmm3,xmm0\r
+ movdqu xmm5,[48+esi]\r
+ pxor xmm4,xmm0\r
+ movdqu xmm6,[64+esi]\r
+ pxor xmm5,xmm0\r
+ movdqu xmm1,[80+esi]\r
+ pxor xmm6,xmm0\r
+ lea esi,[96+esi]\r
+ pxor xmm2,[esp]\r
+ movdqa [80+esp],xmm7\r
+ pxor xmm7,xmm1\r
+ movups xmm1,[16+ebp]\r
+ pxor xmm3,[16+esp]\r
+ pxor xmm4,[32+esp]\r
+db 102,15,56,220,209\r
+ pxor xmm5,[48+esp]\r
+ pxor xmm6,[64+esp]\r
+db 102,15,56,220,217\r
+ pxor xmm7,xmm0\r
+ movups xmm0,[32+ebp]\r
+db 102,15,56,220,225\r
+db 102,15,56,220,233\r
+db 102,15,56,220,241\r
+db 102,15,56,220,249\r
+ call L$_aesni_encrypt6_enter\r
+ movdqa xmm1,[80+esp]\r
+ pxor xmm0,xmm0\r
+ xorps xmm2,[esp]\r
+ pcmpgtd xmm0,xmm1\r
+ xorps xmm3,[16+esp]\r
+ movups [edi],xmm2\r
+ xorps xmm4,[32+esp]\r
+ movups [16+edi],xmm3\r
+ xorps xmm5,[48+esp]\r
+ movups [32+edi],xmm4\r
+ xorps xmm6,[64+esp]\r
+ movups [48+edi],xmm5\r
+ xorps xmm7,xmm1\r
+ movups [64+edi],xmm6\r
+ pshufd xmm2,xmm0,19\r
+ movups [80+edi],xmm7\r
+ lea edi,[96+edi]\r
+ movdqa xmm3,[96+esp]\r
+ pxor xmm0,xmm0\r
+ paddq xmm1,xmm1\r
+ pand xmm2,xmm3\r
+ pcmpgtd xmm0,xmm1\r
+ pxor xmm1,xmm2\r
+ sub eax,96\r
+ jnc NEAR L$048xts_enc_loop6\r
+ mov ecx,DWORD [240+ebp]\r
+ mov edx,ebp\r
+ mov ebx,ecx\r
+L$047xts_enc_short:\r
+ add eax,96\r
+ jz NEAR L$049xts_enc_done6x\r
+ movdqa xmm5,xmm1\r
+ cmp eax,32\r
+ jb NEAR L$050xts_enc_one\r
+ pshufd xmm2,xmm0,19\r
+ pxor xmm0,xmm0\r
+ paddq xmm1,xmm1\r
+ pand xmm2,xmm3\r
+ pcmpgtd xmm0,xmm1\r
+ pxor xmm1,xmm2\r
+ je NEAR L$051xts_enc_two\r
+ pshufd xmm2,xmm0,19\r
+ pxor xmm0,xmm0\r
+ movdqa xmm6,xmm1\r
+ paddq xmm1,xmm1\r
+ pand xmm2,xmm3\r
+ pcmpgtd xmm0,xmm1\r
+ pxor xmm1,xmm2\r
+ cmp eax,64\r
+ jb NEAR L$052xts_enc_three\r
+ pshufd xmm2,xmm0,19\r
+ pxor xmm0,xmm0\r
+ movdqa xmm7,xmm1\r
+ paddq xmm1,xmm1\r
+ pand xmm2,xmm3\r
+ pcmpgtd xmm0,xmm1\r
+ pxor xmm1,xmm2\r
+ movdqa [esp],xmm5\r
+ movdqa [16+esp],xmm6\r
+ je NEAR L$053xts_enc_four\r
+ movdqa [32+esp],xmm7\r
+ pshufd xmm7,xmm0,19\r
+ movdqa [48+esp],xmm1\r
+ paddq xmm1,xmm1\r
+ pand xmm7,xmm3\r
+ pxor xmm7,xmm1\r
+ movdqu xmm2,[esi]\r
+ movdqu xmm3,[16+esi]\r
+ movdqu xmm4,[32+esi]\r
+ pxor xmm2,[esp]\r
+ movdqu xmm5,[48+esi]\r
+ pxor xmm3,[16+esp]\r
+ movdqu xmm6,[64+esi]\r
+ pxor xmm4,[32+esp]\r
+ lea esi,[80+esi]\r
+ pxor xmm5,[48+esp]\r
+ movdqa [64+esp],xmm7\r
+ pxor xmm6,xmm7\r
+ call __aesni_encrypt6\r
+ movaps xmm1,[64+esp]\r
+ xorps xmm2,[esp]\r
+ xorps xmm3,[16+esp]\r
+ xorps xmm4,[32+esp]\r
+ movups [edi],xmm2\r
+ xorps xmm5,[48+esp]\r
+ movups [16+edi],xmm3\r
+ xorps xmm6,xmm1\r
+ movups [32+edi],xmm4\r
+ movups [48+edi],xmm5\r
+ movups [64+edi],xmm6\r
+ lea edi,[80+edi]\r
+ jmp NEAR L$054xts_enc_done\r
+align 16\r
+L$050xts_enc_one:\r
+ movups xmm2,[esi]\r
+ lea esi,[16+esi]\r
+ xorps xmm2,xmm5\r
+ movups xmm0,[edx]\r
+ movups xmm1,[16+edx]\r
+ lea edx,[32+edx]\r
+ xorps xmm2,xmm0\r
+L$055enc1_loop_9:\r
+db 102,15,56,220,209\r
+ dec ecx\r
+ movups xmm1,[edx]\r
+ lea edx,[16+edx]\r
+ jnz NEAR L$055enc1_loop_9\r
+db 102,15,56,221,209\r
+ xorps xmm2,xmm5\r
+ movups [edi],xmm2\r
+ lea edi,[16+edi]\r
+ movdqa xmm1,xmm5\r
+ jmp NEAR L$054xts_enc_done\r
+align 16\r
+L$051xts_enc_two:\r
+ movaps xmm6,xmm1\r
+ movups xmm2,[esi]\r
+ movups xmm3,[16+esi]\r
+ lea esi,[32+esi]\r
+ xorps xmm2,xmm5\r
+ xorps xmm3,xmm6\r
+ call __aesni_encrypt2\r
+ xorps xmm2,xmm5\r
+ xorps xmm3,xmm6\r
+ movups [edi],xmm2\r
+ movups [16+edi],xmm3\r
+ lea edi,[32+edi]\r
+ movdqa xmm1,xmm6\r
+ jmp NEAR L$054xts_enc_done\r
+align 16\r
+L$052xts_enc_three:\r
+ movaps xmm7,xmm1\r
+ movups xmm2,[esi]\r
+ movups xmm3,[16+esi]\r
+ movups xmm4,[32+esi]\r
+ lea esi,[48+esi]\r
+ xorps xmm2,xmm5\r
+ xorps xmm3,xmm6\r
+ xorps xmm4,xmm7\r
+ call __aesni_encrypt3\r
+ xorps xmm2,xmm5\r
+ xorps xmm3,xmm6\r
+ xorps xmm4,xmm7\r
+ movups [edi],xmm2\r
+ movups [16+edi],xmm3\r
+ movups [32+edi],xmm4\r
+ lea edi,[48+edi]\r
+ movdqa xmm1,xmm7\r
+ jmp NEAR L$054xts_enc_done\r
+align 16\r
+L$053xts_enc_four:\r
+ movaps xmm6,xmm1\r
+ movups xmm2,[esi]\r
+ movups xmm3,[16+esi]\r
+ movups xmm4,[32+esi]\r
+ xorps xmm2,[esp]\r
+ movups xmm5,[48+esi]\r
+ lea esi,[64+esi]\r
+ xorps xmm3,[16+esp]\r
+ xorps xmm4,xmm7\r
+ xorps xmm5,xmm6\r
+ call __aesni_encrypt4\r
+ xorps xmm2,[esp]\r
+ xorps xmm3,[16+esp]\r
+ xorps xmm4,xmm7\r
+ movups [edi],xmm2\r
+ xorps xmm5,xmm6\r
+ movups [16+edi],xmm3\r
+ movups [32+edi],xmm4\r
+ movups [48+edi],xmm5\r
+ lea edi,[64+edi]\r
+ movdqa xmm1,xmm6\r
+ jmp NEAR L$054xts_enc_done\r
+align 16\r
+L$049xts_enc_done6x:\r
+ mov eax,DWORD [112+esp]\r
+ and eax,15\r
+ jz NEAR L$056xts_enc_ret\r
+ movdqa xmm5,xmm1\r
+ mov DWORD [112+esp],eax\r
+ jmp NEAR L$057xts_enc_steal\r
+align 16\r
+L$054xts_enc_done:\r
+ mov eax,DWORD [112+esp]\r
+ pxor xmm0,xmm0\r
+ and eax,15\r
+ jz NEAR L$056xts_enc_ret\r
+ pcmpgtd xmm0,xmm1\r
+ mov DWORD [112+esp],eax\r
+ pshufd xmm5,xmm0,19\r
+ paddq xmm1,xmm1\r
+ pand xmm5,[96+esp]\r
+ pxor xmm5,xmm1\r
+L$057xts_enc_steal:\r
+ movzx ecx,BYTE [esi]\r
+ movzx edx,BYTE [edi-16]\r
+ lea esi,[1+esi]\r
+ mov BYTE [edi-16],cl\r
+ mov BYTE [edi],dl\r
+ lea edi,[1+edi]\r
+ sub eax,1\r
+ jnz NEAR L$057xts_enc_steal\r
+ sub edi,DWORD [112+esp]\r
+ mov edx,ebp\r
+ mov ecx,ebx\r
+ movups xmm2,[edi-16]\r
+ xorps xmm2,xmm5\r
+ movups xmm0,[edx]\r
+ movups xmm1,[16+edx]\r
+ lea edx,[32+edx]\r
+ xorps xmm2,xmm0\r
+L$058enc1_loop_10:\r
+db 102,15,56,220,209\r
+ dec ecx\r
+ movups xmm1,[edx]\r
+ lea edx,[16+edx]\r
+ jnz NEAR L$058enc1_loop_10\r
+db 102,15,56,221,209\r
+ xorps xmm2,xmm5\r
+ movups [edi-16],xmm2\r
+L$056xts_enc_ret:\r
+ pxor xmm0,xmm0\r
+ pxor xmm1,xmm1\r
+ pxor xmm2,xmm2\r
+ movdqa [esp],xmm0\r
+ pxor xmm3,xmm3\r
+ movdqa [16+esp],xmm0\r
+ pxor xmm4,xmm4\r
+ movdqa [32+esp],xmm0\r
+ pxor xmm5,xmm5\r
+ movdqa [48+esp],xmm0\r
+ pxor xmm6,xmm6\r
+ movdqa [64+esp],xmm0\r
+ pxor xmm7,xmm7\r
+ movdqa [80+esp],xmm0\r
+ mov esp,DWORD [116+esp]\r
+ pop edi\r
+ pop esi\r
+ pop ebx\r
+ pop ebp\r
+ ret\r
+global _aesni_xts_decrypt\r
+align 16\r
+_aesni_xts_decrypt:\r
+L$_aesni_xts_decrypt_begin:\r
+ push ebp\r
+ push ebx\r
+ push esi\r
+ push edi\r
+ mov edx,DWORD [36+esp]\r
+ mov esi,DWORD [40+esp]\r
+ mov ecx,DWORD [240+edx]\r
+ movups xmm2,[esi]\r
+ movups xmm0,[edx]\r
+ movups xmm1,[16+edx]\r
+ lea edx,[32+edx]\r
+ xorps xmm2,xmm0\r
+L$059enc1_loop_11:\r
+db 102,15,56,220,209\r
+ dec ecx\r
+ movups xmm1,[edx]\r
+ lea edx,[16+edx]\r
+ jnz NEAR L$059enc1_loop_11\r
+db 102,15,56,221,209\r
+ mov esi,DWORD [20+esp]\r
+ mov edi,DWORD [24+esp]\r
+ mov eax,DWORD [28+esp]\r
+ mov edx,DWORD [32+esp]\r
+ mov ebp,esp\r
+ sub esp,120\r
+ and esp,-16\r
+ xor ebx,ebx\r
+ test eax,15\r
+ setnz bl\r
+ shl ebx,4\r
+ sub eax,ebx\r
+ mov DWORD [96+esp],135\r
+ mov DWORD [100+esp],0\r
+ mov DWORD [104+esp],1\r
+ mov DWORD [108+esp],0\r
+ mov DWORD [112+esp],eax\r
+ mov DWORD [116+esp],ebp\r
+ mov ecx,DWORD [240+edx]\r
+ mov ebp,edx\r
+ mov ebx,ecx\r
+ movdqa xmm1,xmm2\r
+ pxor xmm0,xmm0\r
+ movdqa xmm3,[96+esp]\r
+ pcmpgtd xmm0,xmm1\r
+ and eax,-16\r
+ sub eax,96\r
+ jc NEAR L$060xts_dec_short\r
+ shl ecx,4\r
+ mov ebx,16\r
+ sub ebx,ecx\r
+ lea edx,[32+ecx*1+edx]\r
+ jmp NEAR L$061xts_dec_loop6\r
+align 16\r
+L$061xts_dec_loop6:\r
+ pshufd xmm2,xmm0,19\r
+ pxor xmm0,xmm0\r
+ movdqa [esp],xmm1\r
+ paddq xmm1,xmm1\r
+ pand xmm2,xmm3\r
+ pcmpgtd xmm0,xmm1\r
+ pxor xmm1,xmm2\r
+ pshufd xmm2,xmm0,19\r
+ pxor xmm0,xmm0\r
+ movdqa [16+esp],xmm1\r
+ paddq xmm1,xmm1\r
+ pand xmm2,xmm3\r
+ pcmpgtd xmm0,xmm1\r
+ pxor xmm1,xmm2\r
+ pshufd xmm2,xmm0,19\r
+ pxor xmm0,xmm0\r
+ movdqa [32+esp],xmm1\r
+ paddq xmm1,xmm1\r
+ pand xmm2,xmm3\r
+ pcmpgtd xmm0,xmm1\r
+ pxor xmm1,xmm2\r
+ pshufd xmm2,xmm0,19\r
+ pxor xmm0,xmm0\r
+ movdqa [48+esp],xmm1\r
+ paddq xmm1,xmm1\r
+ pand xmm2,xmm3\r
+ pcmpgtd xmm0,xmm1\r
+ pxor xmm1,xmm2\r
+ pshufd xmm7,xmm0,19\r
+ movdqa [64+esp],xmm1\r
+ paddq xmm1,xmm1\r
+ movups xmm0,[ebp]\r
+ pand xmm7,xmm3\r
+ movups xmm2,[esi]\r
+ pxor xmm7,xmm1\r
+ mov ecx,ebx\r
+ movdqu xmm3,[16+esi]\r
+ xorps xmm2,xmm0\r
+ movdqu xmm4,[32+esi]\r
+ pxor xmm3,xmm0\r
+ movdqu xmm5,[48+esi]\r
+ pxor xmm4,xmm0\r
+ movdqu xmm6,[64+esi]\r
+ pxor xmm5,xmm0\r
+ movdqu xmm1,[80+esi]\r
+ pxor xmm6,xmm0\r
+ lea esi,[96+esi]\r
+ pxor xmm2,[esp]\r
+ movdqa [80+esp],xmm7\r
+ pxor xmm7,xmm1\r
+ movups xmm1,[16+ebp]\r
+ pxor xmm3,[16+esp]\r
+ pxor xmm4,[32+esp]\r
+db 102,15,56,222,209\r
+ pxor xmm5,[48+esp]\r
+ pxor xmm6,[64+esp]\r
+db 102,15,56,222,217\r
+ pxor xmm7,xmm0\r
+ movups xmm0,[32+ebp]\r
+db 102,15,56,222,225\r
+db 102,15,56,222,233\r
+db 102,15,56,222,241\r
+db 102,15,56,222,249\r
+ call L$_aesni_decrypt6_enter\r
+ movdqa xmm1,[80+esp]\r
+ pxor xmm0,xmm0\r
+ xorps xmm2,[esp]\r
+ pcmpgtd xmm0,xmm1\r
+ xorps xmm3,[16+esp]\r
+ movups [edi],xmm2\r
+ xorps xmm4,[32+esp]\r
+ movups [16+edi],xmm3\r
+ xorps xmm5,[48+esp]\r
+ movups [32+edi],xmm4\r
+ xorps xmm6,[64+esp]\r
+ movups [48+edi],xmm5\r
+ xorps xmm7,xmm1\r
+ movups [64+edi],xmm6\r
+ pshufd xmm2,xmm0,19\r
+ movups [80+edi],xmm7\r
+ lea edi,[96+edi]\r
+ movdqa xmm3,[96+esp]\r
+ pxor xmm0,xmm0\r
+ paddq xmm1,xmm1\r
+ pand xmm2,xmm3\r
+ pcmpgtd xmm0,xmm1\r
+ pxor xmm1,xmm2\r
+ sub eax,96\r
+ jnc NEAR L$061xts_dec_loop6\r
+ mov ecx,DWORD [240+ebp]\r
+ mov edx,ebp\r
+ mov ebx,ecx\r
+L$060xts_dec_short:\r
+ add eax,96\r
+ jz NEAR L$062xts_dec_done6x\r
+ movdqa xmm5,xmm1\r
+ cmp eax,32\r
+ jb NEAR L$063xts_dec_one\r
+ pshufd xmm2,xmm0,19\r
+ pxor xmm0,xmm0\r
+ paddq xmm1,xmm1\r
+ pand xmm2,xmm3\r
+ pcmpgtd xmm0,xmm1\r
+ pxor xmm1,xmm2\r
+ je NEAR L$064xts_dec_two\r
+ pshufd xmm2,xmm0,19\r
+ pxor xmm0,xmm0\r
+ movdqa xmm6,xmm1\r
+ paddq xmm1,xmm1\r
+ pand xmm2,xmm3\r
+ pcmpgtd xmm0,xmm1\r
+ pxor xmm1,xmm2\r
+ cmp eax,64\r
+ jb NEAR L$065xts_dec_three\r
+ pshufd xmm2,xmm0,19\r
+ pxor xmm0,xmm0\r
+ movdqa xmm7,xmm1\r
+ paddq xmm1,xmm1\r
+ pand xmm2,xmm3\r
+ pcmpgtd xmm0,xmm1\r
+ pxor xmm1,xmm2\r
+ movdqa [esp],xmm5\r
+ movdqa [16+esp],xmm6\r
+ je NEAR L$066xts_dec_four\r
+ movdqa [32+esp],xmm7\r
+ pshufd xmm7,xmm0,19\r
+ movdqa [48+esp],xmm1\r
+ paddq xmm1,xmm1\r
+ pand xmm7,xmm3\r
+ pxor xmm7,xmm1\r
+ movdqu xmm2,[esi]\r
+ movdqu xmm3,[16+esi]\r
+ movdqu xmm4,[32+esi]\r
+ pxor xmm2,[esp]\r
+ movdqu xmm5,[48+esi]\r
+ pxor xmm3,[16+esp]\r
+ movdqu xmm6,[64+esi]\r
+ pxor xmm4,[32+esp]\r
+ lea esi,[80+esi]\r
+ pxor xmm5,[48+esp]\r
+ movdqa [64+esp],xmm7\r
+ pxor xmm6,xmm7\r
+ call __aesni_decrypt6\r
+ movaps xmm1,[64+esp]\r
+ xorps xmm2,[esp]\r
+ xorps xmm3,[16+esp]\r
+ xorps xmm4,[32+esp]\r
+ movups [edi],xmm2\r
+ xorps xmm5,[48+esp]\r
+ movups [16+edi],xmm3\r
+ xorps xmm6,xmm1\r
+ movups [32+edi],xmm4\r
+ movups [48+edi],xmm5\r
+ movups [64+edi],xmm6\r
+ lea edi,[80+edi]\r
+ jmp NEAR L$067xts_dec_done\r
+align 16\r
+L$063xts_dec_one:\r
+ movups xmm2,[esi]\r
+ lea esi,[16+esi]\r
+ xorps xmm2,xmm5\r
+ movups xmm0,[edx]\r
+ movups xmm1,[16+edx]\r
+ lea edx,[32+edx]\r
+ xorps xmm2,xmm0\r
+L$068dec1_loop_12:\r
+db 102,15,56,222,209\r
+ dec ecx\r
+ movups xmm1,[edx]\r
+ lea edx,[16+edx]\r
+ jnz NEAR L$068dec1_loop_12\r
+db 102,15,56,223,209\r
+ xorps xmm2,xmm5\r
+ movups [edi],xmm2\r
+ lea edi,[16+edi]\r
+ movdqa xmm1,xmm5\r
+ jmp NEAR L$067xts_dec_done\r
+align 16\r
+L$064xts_dec_two:\r
+ movaps xmm6,xmm1\r
+ movups xmm2,[esi]\r
+ movups xmm3,[16+esi]\r
+ lea esi,[32+esi]\r
+ xorps xmm2,xmm5\r
+ xorps xmm3,xmm6\r
+ call __aesni_decrypt2\r
+ xorps xmm2,xmm5\r
+ xorps xmm3,xmm6\r
+ movups [edi],xmm2\r
+ movups [16+edi],xmm3\r
+ lea edi,[32+edi]\r
+ movdqa xmm1,xmm6\r
+ jmp NEAR L$067xts_dec_done\r
+align 16\r
+L$065xts_dec_three:\r
+ movaps xmm7,xmm1\r
+ movups xmm2,[esi]\r
+ movups xmm3,[16+esi]\r
+ movups xmm4,[32+esi]\r
+ lea esi,[48+esi]\r
+ xorps xmm2,xmm5\r
+ xorps xmm3,xmm6\r
+ xorps xmm4,xmm7\r
+ call __aesni_decrypt3\r
+ xorps xmm2,xmm5\r
+ xorps xmm3,xmm6\r
+ xorps xmm4,xmm7\r
+ movups [edi],xmm2\r
+ movups [16+edi],xmm3\r
+ movups [32+edi],xmm4\r
+ lea edi,[48+edi]\r
+ movdqa xmm1,xmm7\r
+ jmp NEAR L$067xts_dec_done\r
+align 16\r
+L$066xts_dec_four:\r
+ movaps xmm6,xmm1\r
+ movups xmm2,[esi]\r
+ movups xmm3,[16+esi]\r
+ movups xmm4,[32+esi]\r
+ xorps xmm2,[esp]\r
+ movups xmm5,[48+esi]\r
+ lea esi,[64+esi]\r
+ xorps xmm3,[16+esp]\r
+ xorps xmm4,xmm7\r
+ xorps xmm5,xmm6\r
+ call __aesni_decrypt4\r
+ xorps xmm2,[esp]\r
+ xorps xmm3,[16+esp]\r
+ xorps xmm4,xmm7\r
+ movups [edi],xmm2\r
+ xorps xmm5,xmm6\r
+ movups [16+edi],xmm3\r
+ movups [32+edi],xmm4\r
+ movups [48+edi],xmm5\r
+ lea edi,[64+edi]\r
+ movdqa xmm1,xmm6\r
+ jmp NEAR L$067xts_dec_done\r
+align 16\r
+L$062xts_dec_done6x:\r
+ mov eax,DWORD [112+esp]\r
+ and eax,15\r
+ jz NEAR L$069xts_dec_ret\r
+ mov DWORD [112+esp],eax\r
+ jmp NEAR L$070xts_dec_only_one_more\r
+align 16\r
+L$067xts_dec_done:\r
+ mov eax,DWORD [112+esp]\r
+ pxor xmm0,xmm0\r
+ and eax,15\r
+ jz NEAR L$069xts_dec_ret\r
+ pcmpgtd xmm0,xmm1\r
+ mov DWORD [112+esp],eax\r
+ pshufd xmm2,xmm0,19\r
+ pxor xmm0,xmm0\r
+ movdqa xmm3,[96+esp]\r
+ paddq xmm1,xmm1\r
+ pand xmm2,xmm3\r
+ pcmpgtd xmm0,xmm1\r
+ pxor xmm1,xmm2\r
+L$070xts_dec_only_one_more:\r
+ pshufd xmm5,xmm0,19\r
+ movdqa xmm6,xmm1\r
+ paddq xmm1,xmm1\r
+ pand xmm5,xmm3\r
+ pxor xmm5,xmm1\r
+ mov edx,ebp\r
+ mov ecx,ebx\r
+ movups xmm2,[esi]\r
+ xorps xmm2,xmm5\r
+ movups xmm0,[edx]\r
+ movups xmm1,[16+edx]\r
+ lea edx,[32+edx]\r
+ xorps xmm2,xmm0\r
+L$071dec1_loop_13:\r
+db 102,15,56,222,209\r
+ dec ecx\r
+ movups xmm1,[edx]\r
+ lea edx,[16+edx]\r
+ jnz NEAR L$071dec1_loop_13\r
+db 102,15,56,223,209\r
+ xorps xmm2,xmm5\r
+ movups [edi],xmm2\r
+L$072xts_dec_steal:\r
+ movzx ecx,BYTE [16+esi]\r
+ movzx edx,BYTE [edi]\r
+ lea esi,[1+esi]\r
+ mov BYTE [edi],cl\r
+ mov BYTE [16+edi],dl\r
+ lea edi,[1+edi]\r
+ sub eax,1\r
+ jnz NEAR L$072xts_dec_steal\r
+ sub edi,DWORD [112+esp]\r
+ mov edx,ebp\r
+ mov ecx,ebx\r
+ movups xmm2,[edi]\r
+ xorps xmm2,xmm6\r
+ movups xmm0,[edx]\r
+ movups xmm1,[16+edx]\r
+ lea edx,[32+edx]\r
+ xorps xmm2,xmm0\r
+L$073dec1_loop_14:\r
+db 102,15,56,222,209\r
+ dec ecx\r
+ movups xmm1,[edx]\r
+ lea edx,[16+edx]\r
+ jnz NEAR L$073dec1_loop_14\r
+db 102,15,56,223,209\r
+ xorps xmm2,xmm6\r
+ movups [edi],xmm2\r
+L$069xts_dec_ret:\r
+ pxor xmm0,xmm0\r
+ pxor xmm1,xmm1\r
+ pxor xmm2,xmm2\r
+ movdqa [esp],xmm0\r
+ pxor xmm3,xmm3\r
+ movdqa [16+esp],xmm0\r
+ pxor xmm4,xmm4\r
+ movdqa [32+esp],xmm0\r
+ pxor xmm5,xmm5\r
+ movdqa [48+esp],xmm0\r
+ pxor xmm6,xmm6\r
+ movdqa [64+esp],xmm0\r
+ pxor xmm7,xmm7\r
+ movdqa [80+esp],xmm0\r
+ mov esp,DWORD [116+esp]\r
+ pop edi\r
+ pop esi\r
+ pop ebx\r
+ pop ebp\r
+ ret\r
+global _aesni_ocb_encrypt\r
+align 16\r
+_aesni_ocb_encrypt:\r
+L$_aesni_ocb_encrypt_begin:\r
+ push ebp\r
+ push ebx\r
+ push esi\r
+ push edi\r
+ mov ecx,DWORD [40+esp]\r
+ mov ebx,DWORD [48+esp]\r
+ mov esi,DWORD [20+esp]\r
+ mov edi,DWORD [24+esp]\r
+ mov eax,DWORD [28+esp]\r
+ mov edx,DWORD [32+esp]\r
+ movdqu xmm0,[ecx]\r
+ mov ebp,DWORD [36+esp]\r
+ movdqu xmm1,[ebx]\r
+ mov ebx,DWORD [44+esp]\r
+ mov ecx,esp\r
+ sub esp,132\r
+ and esp,-16\r
+ sub edi,esi\r
+ shl eax,4\r
+ lea eax,[eax*1+esi-96]\r
+ mov DWORD [120+esp],edi\r
+ mov DWORD [124+esp],eax\r
+ mov DWORD [128+esp],ecx\r
+ mov ecx,DWORD [240+edx]\r
+ test ebp,1\r
+ jnz NEAR L$074odd\r
+ bsf eax,ebp\r
+ add ebp,1\r
+ shl eax,4\r
+ movdqu xmm7,[eax*1+ebx]\r
+ mov eax,edx\r
+ movdqu xmm2,[esi]\r
+ lea esi,[16+esi]\r
+ pxor xmm7,xmm0\r
+ pxor xmm1,xmm2\r
+ pxor xmm2,xmm7\r
+ movdqa xmm6,xmm1\r
+ movups xmm0,[edx]\r
+ movups xmm1,[16+edx]\r
+ lea edx,[32+edx]\r
+ xorps xmm2,xmm0\r
+L$075enc1_loop_15:\r
+db 102,15,56,220,209\r
+ dec ecx\r
+ movups xmm1,[edx]\r
+ lea edx,[16+edx]\r
+ jnz NEAR L$075enc1_loop_15\r
+db 102,15,56,221,209\r
+ xorps xmm2,xmm7\r
+ movdqa xmm0,xmm7\r
+ movdqa xmm1,xmm6\r
+ movups [esi*1+edi-16],xmm2\r
+ mov ecx,DWORD [240+eax]\r
+ mov edx,eax\r
+ mov eax,DWORD [124+esp]\r
+L$074odd:\r
+ shl ecx,4\r
+ mov edi,16\r
+ sub edi,ecx\r
+ mov DWORD [112+esp],edx\r
+ lea edx,[32+ecx*1+edx]\r
+ mov DWORD [116+esp],edi\r
+ cmp esi,eax\r
+ ja NEAR L$076short\r
+ jmp NEAR L$077grandloop\r
+align 32\r
+L$077grandloop:\r
+ lea ecx,[1+ebp]\r
+ lea eax,[3+ebp]\r
+ lea edi,[5+ebp]\r
+ add ebp,6\r
+ bsf ecx,ecx\r
+ bsf eax,eax\r
+ bsf edi,edi\r
+ shl ecx,4\r
+ shl eax,4\r
+ shl edi,4\r
+ movdqu xmm2,[ebx]\r
+ movdqu xmm3,[ecx*1+ebx]\r
+ mov ecx,DWORD [116+esp]\r
+ movdqa xmm4,xmm2\r
+ movdqu xmm5,[eax*1+ebx]\r
+ movdqa xmm6,xmm2\r
+ movdqu xmm7,[edi*1+ebx]\r
+ pxor xmm2,xmm0\r
+ pxor xmm3,xmm2\r
+ movdqa [esp],xmm2\r
+ pxor xmm4,xmm3\r
+ movdqa [16+esp],xmm3\r
+ pxor xmm5,xmm4\r
+ movdqa [32+esp],xmm4\r
+ pxor xmm6,xmm5\r
+ movdqa [48+esp],xmm5\r
+ pxor xmm7,xmm6\r
+ movdqa [64+esp],xmm6\r
+ movdqa [80+esp],xmm7\r
+ movups xmm0,[ecx*1+edx-48]\r
+ movdqu xmm2,[esi]\r
+ movdqu xmm3,[16+esi]\r
+ movdqu xmm4,[32+esi]\r
+ movdqu xmm5,[48+esi]\r
+ movdqu xmm6,[64+esi]\r
+ movdqu xmm7,[80+esi]\r
+ lea esi,[96+esi]\r
+ pxor xmm1,xmm2\r
+ pxor xmm2,xmm0\r
+ pxor xmm1,xmm3\r
+ pxor xmm3,xmm0\r
+ pxor xmm1,xmm4\r
+ pxor xmm4,xmm0\r
+ pxor xmm1,xmm5\r
+ pxor xmm5,xmm0\r
+ pxor xmm1,xmm6\r
+ pxor xmm6,xmm0\r
+ pxor xmm1,xmm7\r
+ pxor xmm7,xmm0\r
+ movdqa [96+esp],xmm1\r
+ movups xmm1,[ecx*1+edx-32]\r
+ pxor xmm2,[esp]\r
+ pxor xmm3,[16+esp]\r
+ pxor xmm4,[32+esp]\r
+ pxor xmm5,[48+esp]\r
+ pxor xmm6,[64+esp]\r
+ pxor xmm7,[80+esp]\r
+ movups xmm0,[ecx*1+edx-16]\r
+db 102,15,56,220,209\r
+db 102,15,56,220,217\r
+db 102,15,56,220,225\r
+db 102,15,56,220,233\r
+db 102,15,56,220,241\r
+db 102,15,56,220,249\r
+ mov edi,DWORD [120+esp]\r
+ mov eax,DWORD [124+esp]\r
+ call L$_aesni_encrypt6_enter\r
+ movdqa xmm0,[80+esp]\r
+ pxor xmm2,[esp]\r
+ pxor xmm3,[16+esp]\r
+ pxor xmm4,[32+esp]\r
+ pxor xmm5,[48+esp]\r
+ pxor xmm6,[64+esp]\r
+ pxor xmm7,xmm0\r
+ movdqa xmm1,[96+esp]\r
+ movdqu [esi*1+edi-96],xmm2\r
+ movdqu [esi*1+edi-80],xmm3\r
+ movdqu [esi*1+edi-64],xmm4\r
+ movdqu [esi*1+edi-48],xmm5\r
+ movdqu [esi*1+edi-32],xmm6\r
+ movdqu [esi*1+edi-16],xmm7\r
+ cmp esi,eax\r
+ jb NEAR L$077grandloop\r
+L$076short:\r
+ add eax,96\r
+ sub eax,esi\r
+ jz NEAR L$078done\r
+ cmp eax,32\r
+ jb NEAR L$079one\r
+ je NEAR L$080two\r
+ cmp eax,64\r
+ jb NEAR L$081three\r
+ je NEAR L$082four\r
+ lea ecx,[1+ebp]\r
+ lea eax,[3+ebp]\r
+ bsf ecx,ecx\r
+ bsf eax,eax\r
+ shl ecx,4\r
+ shl eax,4\r
+ movdqu xmm2,[ebx]\r
+ movdqu xmm3,[ecx*1+ebx]\r
+ mov ecx,DWORD [116+esp]\r
+ movdqa xmm4,xmm2\r
+ movdqu xmm5,[eax*1+ebx]\r
+ movdqa xmm6,xmm2\r
+ pxor xmm2,xmm0\r
+ pxor xmm3,xmm2\r
+ movdqa [esp],xmm2\r
+ pxor xmm4,xmm3\r
+ movdqa [16+esp],xmm3\r
+ pxor xmm5,xmm4\r
+ movdqa [32+esp],xmm4\r
+ pxor xmm6,xmm5\r
+ movdqa [48+esp],xmm5\r
+ pxor xmm7,xmm6\r
+ movdqa [64+esp],xmm6\r
+ movups xmm0,[ecx*1+edx-48]\r
+ movdqu xmm2,[esi]\r
+ movdqu xmm3,[16+esi]\r
+ movdqu xmm4,[32+esi]\r
+ movdqu xmm5,[48+esi]\r
+ movdqu xmm6,[64+esi]\r
+ pxor xmm7,xmm7\r
+ pxor xmm1,xmm2\r
+ pxor xmm2,xmm0\r
+ pxor xmm1,xmm3\r
+ pxor xmm3,xmm0\r
+ pxor xmm1,xmm4\r
+ pxor xmm4,xmm0\r
+ pxor xmm1,xmm5\r
+ pxor xmm5,xmm0\r
+ pxor xmm1,xmm6\r
+ pxor xmm6,xmm0\r
+ movdqa [96+esp],xmm1\r
+ movups xmm1,[ecx*1+edx-32]\r
+ pxor xmm2,[esp]\r
+ pxor xmm3,[16+esp]\r
+ pxor xmm4,[32+esp]\r
+ pxor xmm5,[48+esp]\r
+ pxor xmm6,[64+esp]\r
+ movups xmm0,[ecx*1+edx-16]\r
+db 102,15,56,220,209\r
+db 102,15,56,220,217\r
+db 102,15,56,220,225\r
+db 102,15,56,220,233\r
+db 102,15,56,220,241\r
+db 102,15,56,220,249\r
+ mov edi,DWORD [120+esp]\r
+ call L$_aesni_encrypt6_enter\r
+ movdqa xmm0,[64+esp]\r
+ pxor xmm2,[esp]\r
+ pxor xmm3,[16+esp]\r
+ pxor xmm4,[32+esp]\r
+ pxor xmm5,[48+esp]\r
+ pxor xmm6,xmm0\r
+ movdqa xmm1,[96+esp]\r
+ movdqu [esi*1+edi],xmm2\r
+ movdqu [16+esi*1+edi],xmm3\r
+ movdqu [32+esi*1+edi],xmm4\r
+ movdqu [48+esi*1+edi],xmm5\r
+ movdqu [64+esi*1+edi],xmm6\r
+ jmp NEAR L$078done\r
+align 16\r
+L$079one:\r
+ movdqu xmm7,[ebx]\r
+ mov edx,DWORD [112+esp]\r
+ movdqu xmm2,[esi]\r
+ mov ecx,DWORD [240+edx]\r
+ pxor xmm7,xmm0\r
+ pxor xmm1,xmm2\r
+ pxor xmm2,xmm7\r
+ movdqa xmm6,xmm1\r
+ mov edi,DWORD [120+esp]\r
+ movups xmm0,[edx]\r
+ movups xmm1,[16+edx]\r
+ lea edx,[32+edx]\r
+ xorps xmm2,xmm0\r
+L$083enc1_loop_16:\r
+db 102,15,56,220,209\r
+ dec ecx\r
+ movups xmm1,[edx]\r
+ lea edx,[16+edx]\r
+ jnz NEAR L$083enc1_loop_16\r
+db 102,15,56,221,209\r
+ xorps xmm2,xmm7\r
+ movdqa xmm0,xmm7\r
+ movdqa xmm1,xmm6\r
+ movups [esi*1+edi],xmm2\r
+ jmp NEAR L$078done\r
+align 16\r
+L$080two:\r
+ lea ecx,[1+ebp]\r
+ mov edx,DWORD [112+esp]\r
+ bsf ecx,ecx\r
+ shl ecx,4\r
+ movdqu xmm6,[ebx]\r
+ movdqu xmm7,[ecx*1+ebx]\r
+ movdqu xmm2,[esi]\r
+ movdqu xmm3,[16+esi]\r
+ mov ecx,DWORD [240+edx]\r
+ pxor xmm6,xmm0\r
+ pxor xmm7,xmm6\r
+ pxor xmm1,xmm2\r
+ pxor xmm2,xmm6\r
+ pxor xmm1,xmm3\r
+ pxor xmm3,xmm7\r
+ movdqa xmm5,xmm1\r
+ mov edi,DWORD [120+esp]\r
+ call __aesni_encrypt2\r
+ xorps xmm2,xmm6\r
+ xorps xmm3,xmm7\r
+ movdqa xmm0,xmm7\r
+ movdqa xmm1,xmm5\r
+ movups [esi*1+edi],xmm2\r
+ movups [16+esi*1+edi],xmm3\r
+ jmp NEAR L$078done\r
+align 16\r
+L$081three:\r
+ lea ecx,[1+ebp]\r
+ mov edx,DWORD [112+esp]\r
+ bsf ecx,ecx\r
+ shl ecx,4\r
+ movdqu xmm5,[ebx]\r
+ movdqu xmm6,[ecx*1+ebx]\r
+ movdqa xmm7,xmm5\r
+ movdqu xmm2,[esi]\r
+ movdqu xmm3,[16+esi]\r
+ movdqu xmm4,[32+esi]\r
+ mov ecx,DWORD [240+edx]\r
+ pxor xmm5,xmm0\r
+ pxor xmm6,xmm5\r
+ pxor xmm7,xmm6\r
+ pxor xmm1,xmm2\r
+ pxor xmm2,xmm5\r
+ pxor xmm1,xmm3\r
+ pxor xmm3,xmm6\r
+ pxor xmm1,xmm4\r
+ pxor xmm4,xmm7\r
+ movdqa [96+esp],xmm1\r
+ mov edi,DWORD [120+esp]\r
+ call __aesni_encrypt3\r
+ xorps xmm2,xmm5\r
+ xorps xmm3,xmm6\r
+ xorps xmm4,xmm7\r
+ movdqa xmm0,xmm7\r
+ movdqa xmm1,[96+esp]\r
+ movups [esi*1+edi],xmm2\r
+ movups [16+esi*1+edi],xmm3\r
+ movups [32+esi*1+edi],xmm4\r
+ jmp NEAR L$078done\r
+align 16\r
+L$082four:\r
+ lea ecx,[1+ebp]\r
+ lea eax,[3+ebp]\r
+ bsf ecx,ecx\r
+ bsf eax,eax\r
+ mov edx,DWORD [112+esp]\r
+ shl ecx,4\r
+ shl eax,4\r
+ movdqu xmm4,[ebx]\r
+ movdqu xmm5,[ecx*1+ebx]\r
+ movdqa xmm6,xmm4\r
+ movdqu xmm7,[eax*1+ebx]\r
+ pxor xmm4,xmm0\r
+ movdqu xmm2,[esi]\r
+ pxor xmm5,xmm4\r
+ movdqu xmm3,[16+esi]\r
+ pxor xmm6,xmm5\r
+ movdqa [esp],xmm4\r
+ pxor xmm7,xmm6\r
+ movdqa [16+esp],xmm5\r
+ movdqu xmm4,[32+esi]\r
+ movdqu xmm5,[48+esi]\r
+ mov ecx,DWORD [240+edx]\r
+ pxor xmm1,xmm2\r
+ pxor xmm2,[esp]\r
+ pxor xmm1,xmm3\r
+ pxor xmm3,[16+esp]\r
+ pxor xmm1,xmm4\r
+ pxor xmm4,xmm6\r
+ pxor xmm1,xmm5\r
+ pxor xmm5,xmm7\r
+ movdqa [96+esp],xmm1\r
+ mov edi,DWORD [120+esp]\r
+ call __aesni_encrypt4\r
+ xorps xmm2,[esp]\r
+ xorps xmm3,[16+esp]\r
+ xorps xmm4,xmm6\r
+ movups [esi*1+edi],xmm2\r
+ xorps xmm5,xmm7\r
+ movups [16+esi*1+edi],xmm3\r
+ movdqa xmm0,xmm7\r
+ movups [32+esi*1+edi],xmm4\r
+ movdqa xmm1,[96+esp]\r
+ movups [48+esi*1+edi],xmm5\r
+L$078done:\r
+ mov edx,DWORD [128+esp]\r
+ pxor xmm2,xmm2\r
+ pxor xmm3,xmm3\r
+ movdqa [esp],xmm2\r
+ pxor xmm4,xmm4\r
+ movdqa [16+esp],xmm2\r
+ pxor xmm5,xmm5\r
+ movdqa [32+esp],xmm2\r
+ pxor xmm6,xmm6\r
+ movdqa [48+esp],xmm2\r
+ pxor xmm7,xmm7\r
+ movdqa [64+esp],xmm2\r
+ movdqa [80+esp],xmm2\r
+ movdqa [96+esp],xmm2\r
+ lea esp,[edx]\r
+ mov ecx,DWORD [40+esp]\r
+ mov ebx,DWORD [48+esp]\r
+ movdqu [ecx],xmm0\r
+ pxor xmm0,xmm0\r
+ movdqu [ebx],xmm1\r
+ pxor xmm1,xmm1\r
+ pop edi\r
+ pop esi\r
+ pop ebx\r
+ pop ebp\r
+ ret\r
+global _aesni_ocb_decrypt\r
+align 16\r
+_aesni_ocb_decrypt:\r
+L$_aesni_ocb_decrypt_begin:\r
+ push ebp\r
+ push ebx\r
+ push esi\r
+ push edi\r
+ mov ecx,DWORD [40+esp]\r
+ mov ebx,DWORD [48+esp]\r
+ mov esi,DWORD [20+esp]\r
+ mov edi,DWORD [24+esp]\r
+ mov eax,DWORD [28+esp]\r
+ mov edx,DWORD [32+esp]\r
+ movdqu xmm0,[ecx]\r
+ mov ebp,DWORD [36+esp]\r
+ movdqu xmm1,[ebx]\r
+ mov ebx,DWORD [44+esp]\r
+ mov ecx,esp\r
+ sub esp,132\r
+ and esp,-16\r
+ sub edi,esi\r
+ shl eax,4\r
+ lea eax,[eax*1+esi-96]\r
+ mov DWORD [120+esp],edi\r
+ mov DWORD [124+esp],eax\r
+ mov DWORD [128+esp],ecx\r
+ mov ecx,DWORD [240+edx]\r
+ test ebp,1\r
+ jnz NEAR L$084odd\r
+ bsf eax,ebp\r
+ add ebp,1\r
+ shl eax,4\r
+ movdqu xmm7,[eax*1+ebx]\r
+ mov eax,edx\r
+ movdqu xmm2,[esi]\r
+ lea esi,[16+esi]\r
+ pxor xmm7,xmm0\r
+ pxor xmm2,xmm7\r
+ movdqa xmm6,xmm1\r
+ movups xmm0,[edx]\r
+ movups xmm1,[16+edx]\r
+ lea edx,[32+edx]\r
+ xorps xmm2,xmm0\r
+L$085dec1_loop_17:\r
+db 102,15,56,222,209\r
+ dec ecx\r
+ movups xmm1,[edx]\r
+ lea edx,[16+edx]\r
+ jnz NEAR L$085dec1_loop_17\r
+db 102,15,56,223,209\r
+ xorps xmm2,xmm7\r
+ movaps xmm1,xmm6\r
+ movdqa xmm0,xmm7\r
+ xorps xmm1,xmm2\r
+ movups [esi*1+edi-16],xmm2\r
+ mov ecx,DWORD [240+eax]\r
+ mov edx,eax\r
+ mov eax,DWORD [124+esp]\r
+L$084odd:\r
+ shl ecx,4\r
+ mov edi,16\r
+ sub edi,ecx\r
+ mov DWORD [112+esp],edx\r
+ lea edx,[32+ecx*1+edx]\r
+ mov DWORD [116+esp],edi\r
+ cmp esi,eax\r
+ ja NEAR L$086short\r
+ jmp NEAR L$087grandloop\r
+align 32\r
+L$087grandloop:\r
+ lea ecx,[1+ebp]\r
+ lea eax,[3+ebp]\r
+ lea edi,[5+ebp]\r
+ add ebp,6\r
+ bsf ecx,ecx\r
+ bsf eax,eax\r
+ bsf edi,edi\r
+ shl ecx,4\r
+ shl eax,4\r
+ shl edi,4\r
+ movdqu xmm2,[ebx]\r
+ movdqu xmm3,[ecx*1+ebx]\r
+ mov ecx,DWORD [116+esp]\r
+ movdqa xmm4,xmm2\r
+ movdqu xmm5,[eax*1+ebx]\r
+ movdqa xmm6,xmm2\r
+ movdqu xmm7,[edi*1+ebx]\r
+ pxor xmm2,xmm0\r
+ pxor xmm3,xmm2\r
+ movdqa [esp],xmm2\r
+ pxor xmm4,xmm3\r
+ movdqa [16+esp],xmm3\r
+ pxor xmm5,xmm4\r
+ movdqa [32+esp],xmm4\r
+ pxor xmm6,xmm5\r
+ movdqa [48+esp],xmm5\r
+ pxor xmm7,xmm6\r
+ movdqa [64+esp],xmm6\r
+ movdqa [80+esp],xmm7\r
+ movups xmm0,[ecx*1+edx-48]\r
+ movdqu xmm2,[esi]\r
+ movdqu xmm3,[16+esi]\r
+ movdqu xmm4,[32+esi]\r
+ movdqu xmm5,[48+esi]\r
+ movdqu xmm6,[64+esi]\r
+ movdqu xmm7,[80+esi]\r
+ lea esi,[96+esi]\r
+ movdqa [96+esp],xmm1\r
+ pxor xmm2,xmm0\r
+ pxor xmm3,xmm0\r
+ pxor xmm4,xmm0\r
+ pxor xmm5,xmm0\r
+ pxor xmm6,xmm0\r
+ pxor xmm7,xmm0\r
+ movups xmm1,[ecx*1+edx-32]\r
+ pxor xmm2,[esp]\r
+ pxor xmm3,[16+esp]\r
+ pxor xmm4,[32+esp]\r
+ pxor xmm5,[48+esp]\r
+ pxor xmm6,[64+esp]\r
+ pxor xmm7,[80+esp]\r
+ movups xmm0,[ecx*1+edx-16]\r
+db 102,15,56,222,209\r
+db 102,15,56,222,217\r
+db 102,15,56,222,225\r
+db 102,15,56,222,233\r
+db 102,15,56,222,241\r
+db 102,15,56,222,249\r
+ mov edi,DWORD [120+esp]\r
+ mov eax,DWORD [124+esp]\r
+ call L$_aesni_decrypt6_enter\r
+ movdqa xmm0,[80+esp]\r
+ pxor xmm2,[esp]\r
+ movdqa xmm1,[96+esp]\r
+ pxor xmm3,[16+esp]\r
+ pxor xmm4,[32+esp]\r
+ pxor xmm5,[48+esp]\r
+ pxor xmm6,[64+esp]\r
+ pxor xmm7,xmm0\r
+ pxor xmm1,xmm2\r
+ movdqu [esi*1+edi-96],xmm2\r
+ pxor xmm1,xmm3\r
+ movdqu [esi*1+edi-80],xmm3\r
+ pxor xmm1,xmm4\r
+ movdqu [esi*1+edi-64],xmm4\r
+ pxor xmm1,xmm5\r
+ movdqu [esi*1+edi-48],xmm5\r
+ pxor xmm1,xmm6\r
+ movdqu [esi*1+edi-32],xmm6\r
+ pxor xmm1,xmm7\r
+ movdqu [esi*1+edi-16],xmm7\r
+ cmp esi,eax\r
+ jb NEAR L$087grandloop\r
+L$086short:\r
+ add eax,96\r
+ sub eax,esi\r
+ jz NEAR L$088done\r
+ cmp eax,32\r
+ jb NEAR L$089one\r
+ je NEAR L$090two\r
+ cmp eax,64\r
+ jb NEAR L$091three\r
+ je NEAR L$092four\r
+ lea ecx,[1+ebp]\r
+ lea eax,[3+ebp]\r
+ bsf ecx,ecx\r
+ bsf eax,eax\r
+ shl ecx,4\r
+ shl eax,4\r
+ movdqu xmm2,[ebx]\r
+ movdqu xmm3,[ecx*1+ebx]\r
+ mov ecx,DWORD [116+esp]\r
+ movdqa xmm4,xmm2\r
+ movdqu xmm5,[eax*1+ebx]\r
+ movdqa xmm6,xmm2\r
+ pxor xmm2,xmm0\r
+ pxor xmm3,xmm2\r
+ movdqa [esp],xmm2\r
+ pxor xmm4,xmm3\r
+ movdqa [16+esp],xmm3\r
+ pxor xmm5,xmm4\r
+ movdqa [32+esp],xmm4\r
+ pxor xmm6,xmm5\r
+ movdqa [48+esp],xmm5\r
+ pxor xmm7,xmm6\r
+ movdqa [64+esp],xmm6\r
+ movups xmm0,[ecx*1+edx-48]\r
+ movdqu xmm2,[esi]\r
+ movdqu xmm3,[16+esi]\r
+ movdqu xmm4,[32+esi]\r
+ movdqu xmm5,[48+esi]\r
+ movdqu xmm6,[64+esi]\r
+ pxor xmm7,xmm7\r
+ movdqa [96+esp],xmm1\r
+ pxor xmm2,xmm0\r
+ pxor xmm3,xmm0\r
+ pxor xmm4,xmm0\r
+ pxor xmm5,xmm0\r
+ pxor xmm6,xmm0\r
+ movups xmm1,[ecx*1+edx-32]\r
+ pxor xmm2,[esp]\r
+ pxor xmm3,[16+esp]\r
+ pxor xmm4,[32+esp]\r
+ pxor xmm5,[48+esp]\r
+ pxor xmm6,[64+esp]\r
+ movups xmm0,[ecx*1+edx-16]\r
+db 102,15,56,222,209\r
+db 102,15,56,222,217\r
+db 102,15,56,222,225\r
+db 102,15,56,222,233\r
+db 102,15,56,222,241\r
+db 102,15,56,222,249\r
+ mov edi,DWORD [120+esp]\r
+ call L$_aesni_decrypt6_enter\r
+ movdqa xmm0,[64+esp]\r
+ pxor xmm2,[esp]\r
+ movdqa xmm1,[96+esp]\r
+ pxor xmm3,[16+esp]\r
+ pxor xmm4,[32+esp]\r
+ pxor xmm5,[48+esp]\r
+ pxor xmm6,xmm0\r
+ pxor xmm1,xmm2\r
+ movdqu [esi*1+edi],xmm2\r
+ pxor xmm1,xmm3\r
+ movdqu [16+esi*1+edi],xmm3\r
+ pxor xmm1,xmm4\r
+ movdqu [32+esi*1+edi],xmm4\r
+ pxor xmm1,xmm5\r
+ movdqu [48+esi*1+edi],xmm5\r
+ pxor xmm1,xmm6\r
+ movdqu [64+esi*1+edi],xmm6\r
+ jmp NEAR L$088done\r
+align 16\r
+L$089one:\r
+ movdqu xmm7,[ebx]\r
+ mov edx,DWORD [112+esp]\r
+ movdqu xmm2,[esi]\r
+ mov ecx,DWORD [240+edx]\r
+ pxor xmm7,xmm0\r
+ pxor xmm2,xmm7\r
+ movdqa xmm6,xmm1\r
+ mov edi,DWORD [120+esp]\r
+ movups xmm0,[edx]\r
+ movups xmm1,[16+edx]\r
+ lea edx,[32+edx]\r
+ xorps xmm2,xmm0\r
+L$093dec1_loop_18:\r
+db 102,15,56,222,209\r
+ dec ecx\r
+ movups xmm1,[edx]\r
+ lea edx,[16+edx]\r
+ jnz NEAR L$093dec1_loop_18\r
+db 102,15,56,223,209\r
+ xorps xmm2,xmm7\r
+ movaps xmm1,xmm6\r
+ movdqa xmm0,xmm7\r
+ xorps xmm1,xmm2\r
+ movups [esi*1+edi],xmm2\r
+ jmp NEAR L$088done\r
+align 16\r
+L$090two:\r
+ lea ecx,[1+ebp]\r
+ mov edx,DWORD [112+esp]\r
+ bsf ecx,ecx\r
+ shl ecx,4\r
+ movdqu xmm6,[ebx]\r
+ movdqu xmm7,[ecx*1+ebx]\r
+ movdqu xmm2,[esi]\r
+ movdqu xmm3,[16+esi]\r
+ mov ecx,DWORD [240+edx]\r
+ movdqa xmm5,xmm1\r
+ pxor xmm6,xmm0\r
+ pxor xmm7,xmm6\r
+ pxor xmm2,xmm6\r
+ pxor xmm3,xmm7\r
+ mov edi,DWORD [120+esp]\r
+ call __aesni_decrypt2\r
+ xorps xmm2,xmm6\r
+ xorps xmm3,xmm7\r
+ movdqa xmm0,xmm7\r
+ xorps xmm5,xmm2\r
+ movups [esi*1+edi],xmm2\r
+ xorps xmm5,xmm3\r
+ movups [16+esi*1+edi],xmm3\r
+ movaps xmm1,xmm5\r
+ jmp NEAR L$088done\r
+align 16\r
+L$091three:\r
+ lea ecx,[1+ebp]\r
+ mov edx,DWORD [112+esp]\r
+ bsf ecx,ecx\r
+ shl ecx,4\r
+ movdqu xmm5,[ebx]\r
+ movdqu xmm6,[ecx*1+ebx]\r
+ movdqa xmm7,xmm5\r
+ movdqu xmm2,[esi]\r
+ movdqu xmm3,[16+esi]\r
+ movdqu xmm4,[32+esi]\r
+ mov ecx,DWORD [240+edx]\r
+ movdqa [96+esp],xmm1\r
+ pxor xmm5,xmm0\r
+ pxor xmm6,xmm5\r
+ pxor xmm7,xmm6\r
+ pxor xmm2,xmm5\r
+ pxor xmm3,xmm6\r
+ pxor xmm4,xmm7\r
+ mov edi,DWORD [120+esp]\r
+ call __aesni_decrypt3\r
+ movdqa xmm1,[96+esp]\r
+ xorps xmm2,xmm5\r
+ xorps xmm3,xmm6\r
+ xorps xmm4,xmm7\r
+ movups [esi*1+edi],xmm2\r
+ pxor xmm1,xmm2\r
+ movdqa xmm0,xmm7\r
+ movups [16+esi*1+edi],xmm3\r
+ pxor xmm1,xmm3\r
+ movups [32+esi*1+edi],xmm4\r
+ pxor xmm1,xmm4\r
+ jmp NEAR L$088done\r
+align 16\r
+L$092four:\r
+ lea ecx,[1+ebp]\r
+ lea eax,[3+ebp]\r
+ bsf ecx,ecx\r
+ bsf eax,eax\r
+ mov edx,DWORD [112+esp]\r
+ shl ecx,4\r
+ shl eax,4\r
+ movdqu xmm4,[ebx]\r
+ movdqu xmm5,[ecx*1+ebx]\r
+ movdqa xmm6,xmm4\r
+ movdqu xmm7,[eax*1+ebx]\r
+ pxor xmm4,xmm0\r
+ movdqu xmm2,[esi]\r
+ pxor xmm5,xmm4\r
+ movdqu xmm3,[16+esi]\r
+ pxor xmm6,xmm5\r
+ movdqa [esp],xmm4\r
+ pxor xmm7,xmm6\r
+ movdqa [16+esp],xmm5\r
+ movdqu xmm4,[32+esi]\r
+ movdqu xmm5,[48+esi]\r
+ mov ecx,DWORD [240+edx]\r
+ movdqa [96+esp],xmm1\r
+ pxor xmm2,[esp]\r
+ pxor xmm3,[16+esp]\r
+ pxor xmm4,xmm6\r
+ pxor xmm5,xmm7\r
+ mov edi,DWORD [120+esp]\r
+ call __aesni_decrypt4\r
+ movdqa xmm1,[96+esp]\r
+ xorps xmm2,[esp]\r
+ xorps xmm3,[16+esp]\r
+ xorps xmm4,xmm6\r
+ movups [esi*1+edi],xmm2\r
+ pxor xmm1,xmm2\r
+ xorps xmm5,xmm7\r
+ movups [16+esi*1+edi],xmm3\r
+ pxor xmm1,xmm3\r
+ movdqa xmm0,xmm7\r
+ movups [32+esi*1+edi],xmm4\r
+ pxor xmm1,xmm4\r
+ movups [48+esi*1+edi],xmm5\r
+ pxor xmm1,xmm5\r
+L$088done:\r
+ mov edx,DWORD [128+esp]\r
+ pxor xmm2,xmm2\r
+ pxor xmm3,xmm3\r
+ movdqa [esp],xmm2\r
+ pxor xmm4,xmm4\r
+ movdqa [16+esp],xmm2\r
+ pxor xmm5,xmm5\r
+ movdqa [32+esp],xmm2\r
+ pxor xmm6,xmm6\r
+ movdqa [48+esp],xmm2\r
+ pxor xmm7,xmm7\r
+ movdqa [64+esp],xmm2\r
+ movdqa [80+esp],xmm2\r
+ movdqa [96+esp],xmm2\r
+ lea esp,[edx]\r
+ mov ecx,DWORD [40+esp]\r
+ mov ebx,DWORD [48+esp]\r
+ movdqu [ecx],xmm0\r
+ pxor xmm0,xmm0\r
+ movdqu [ebx],xmm1\r
+ pxor xmm1,xmm1\r
+ pop edi\r
+ pop esi\r
+ pop ebx\r
+ pop ebp\r
+ ret\r
+global _aesni_cbc_encrypt\r
+align 16\r
+_aesni_cbc_encrypt:\r
+L$_aesni_cbc_encrypt_begin:\r
+ push ebp\r
+ push ebx\r
+ push esi\r
+ push edi\r
+ mov esi,DWORD [20+esp]\r
+ mov ebx,esp\r
+ mov edi,DWORD [24+esp]\r
+ sub ebx,24\r
+ mov eax,DWORD [28+esp]\r
+ and ebx,-16\r
+ mov edx,DWORD [32+esp]\r
+ mov ebp,DWORD [36+esp]\r
+ test eax,eax\r
+ jz NEAR L$094cbc_abort\r
+ cmp DWORD [40+esp],0\r
+ xchg ebx,esp\r
+ movups xmm7,[ebp]\r
+ mov ecx,DWORD [240+edx]\r
+ mov ebp,edx\r
+ mov DWORD [16+esp],ebx\r
+ mov ebx,ecx\r
+ je NEAR L$095cbc_decrypt\r
+ movaps xmm2,xmm7\r
+ cmp eax,16\r
+ jb NEAR L$096cbc_enc_tail\r
+ sub eax,16\r
+ jmp NEAR L$097cbc_enc_loop\r
+align 16\r
+L$097cbc_enc_loop:\r
+ movups xmm7,[esi]\r
+ lea esi,[16+esi]\r
+ movups xmm0,[edx]\r
+ movups xmm1,[16+edx]\r
+ xorps xmm7,xmm0\r
+ lea edx,[32+edx]\r
+ xorps xmm2,xmm7\r
+L$098enc1_loop_19:\r
+db 102,15,56,220,209\r
+ dec ecx\r
+ movups xmm1,[edx]\r
+ lea edx,[16+edx]\r
+ jnz NEAR L$098enc1_loop_19\r
+db 102,15,56,221,209\r
+ mov ecx,ebx\r
+ mov edx,ebp\r
+ movups [edi],xmm2\r
+ lea edi,[16+edi]\r
+ sub eax,16\r
+ jnc NEAR L$097cbc_enc_loop\r
+ add eax,16\r
+ jnz NEAR L$096cbc_enc_tail\r
+ movaps xmm7,xmm2\r
+ pxor xmm2,xmm2\r
+ jmp NEAR L$099cbc_ret\r
+L$096cbc_enc_tail:\r
+ mov ecx,eax\r
+dd 2767451785\r
+ mov ecx,16\r
+ sub ecx,eax\r
+ xor eax,eax\r
+dd 2868115081\r
+ lea edi,[edi-16]\r
+ mov ecx,ebx\r
+ mov esi,edi\r
+ mov edx,ebp\r
+ jmp NEAR L$097cbc_enc_loop\r
+align 16\r
+L$095cbc_decrypt:\r
+ cmp eax,80\r
+ jbe NEAR L$100cbc_dec_tail\r
+ movaps [esp],xmm7\r
+ sub eax,80\r
+ jmp NEAR L$101cbc_dec_loop6_enter\r
+align 16\r
+L$102cbc_dec_loop6:\r
+ movaps [esp],xmm0\r
+ movups [edi],xmm7\r
+ lea edi,[16+edi]\r
+L$101cbc_dec_loop6_enter:\r
+ movdqu xmm2,[esi]\r
+ movdqu xmm3,[16+esi]\r
+ movdqu xmm4,[32+esi]\r
+ movdqu xmm5,[48+esi]\r
+ movdqu xmm6,[64+esi]\r
+ movdqu xmm7,[80+esi]\r
+ call __aesni_decrypt6\r
+ movups xmm1,[esi]\r
+ movups xmm0,[16+esi]\r
+ xorps xmm2,[esp]\r
+ xorps xmm3,xmm1\r
+ movups xmm1,[32+esi]\r
+ xorps xmm4,xmm0\r
+ movups xmm0,[48+esi]\r
+ xorps xmm5,xmm1\r
+ movups xmm1,[64+esi]\r
+ xorps xmm6,xmm0\r
+ movups xmm0,[80+esi]\r
+ xorps xmm7,xmm1\r
+ movups [edi],xmm2\r
+ movups [16+edi],xmm3\r
+ lea esi,[96+esi]\r
+ movups [32+edi],xmm4\r
+ mov ecx,ebx\r
+ movups [48+edi],xmm5\r
+ mov edx,ebp\r
+ movups [64+edi],xmm6\r
+ lea edi,[80+edi]\r
+ sub eax,96\r
+ ja NEAR L$102cbc_dec_loop6\r
+ movaps xmm2,xmm7\r
+ movaps xmm7,xmm0\r
+ add eax,80\r
+ jle NEAR L$103cbc_dec_clear_tail_collected\r
+ movups [edi],xmm2\r
+ lea edi,[16+edi]\r
+L$100cbc_dec_tail:\r
+ movups xmm2,[esi]\r
+ movaps xmm6,xmm2\r
+ cmp eax,16\r
+ jbe NEAR L$104cbc_dec_one\r
+ movups xmm3,[16+esi]\r
+ movaps xmm5,xmm3\r
+ cmp eax,32\r
+ jbe NEAR L$105cbc_dec_two\r
+ movups xmm4,[32+esi]\r
+ cmp eax,48\r
+ jbe NEAR L$106cbc_dec_three\r
+ movups xmm5,[48+esi]\r
+ cmp eax,64\r
+ jbe NEAR L$107cbc_dec_four\r
+ movups xmm6,[64+esi]\r
+ movaps [esp],xmm7\r
+ movups xmm2,[esi]\r
+ xorps xmm7,xmm7\r
+ call __aesni_decrypt6\r
+ movups xmm1,[esi]\r
+ movups xmm0,[16+esi]\r
+ xorps xmm2,[esp]\r
+ xorps xmm3,xmm1\r
+ movups xmm1,[32+esi]\r
+ xorps xmm4,xmm0\r
+ movups xmm0,[48+esi]\r
+ xorps xmm5,xmm1\r
+ movups xmm7,[64+esi]\r
+ xorps xmm6,xmm0\r
+ movups [edi],xmm2\r
+ movups [16+edi],xmm3\r
+ pxor xmm3,xmm3\r
+ movups [32+edi],xmm4\r
+ pxor xmm4,xmm4\r
+ movups [48+edi],xmm5\r
+ pxor xmm5,xmm5\r
+ lea edi,[64+edi]\r
+ movaps xmm2,xmm6\r
+ pxor xmm6,xmm6\r
+ sub eax,80\r
+ jmp NEAR L$108cbc_dec_tail_collected\r
+align 16\r
+L$104cbc_dec_one:\r
+ movups xmm0,[edx]\r
+ movups xmm1,[16+edx]\r
+ lea edx,[32+edx]\r
+ xorps xmm2,xmm0\r
+L$109dec1_loop_20:\r
+db 102,15,56,222,209\r
+ dec ecx\r
+ movups xmm1,[edx]\r
+ lea edx,[16+edx]\r
+ jnz NEAR L$109dec1_loop_20\r
+db 102,15,56,223,209\r
+ xorps xmm2,xmm7\r
+ movaps xmm7,xmm6\r
+ sub eax,16\r
+ jmp NEAR L$108cbc_dec_tail_collected\r
+align 16\r
+L$105cbc_dec_two:\r
+ call __aesni_decrypt2\r
+ xorps xmm2,xmm7\r
+ xorps xmm3,xmm6\r
+ movups [edi],xmm2\r
+ movaps xmm2,xmm3\r
+ pxor xmm3,xmm3\r
+ lea edi,[16+edi]\r
+ movaps xmm7,xmm5\r
+ sub eax,32\r
+ jmp NEAR L$108cbc_dec_tail_collected\r
+align 16\r
+L$106cbc_dec_three:\r
+ call __aesni_decrypt3\r
+ xorps xmm2,xmm7\r
+ xorps xmm3,xmm6\r
+ xorps xmm4,xmm5\r
+ movups [edi],xmm2\r
+ movaps xmm2,xmm4\r
+ pxor xmm4,xmm4\r
+ movups [16+edi],xmm3\r
+ pxor xmm3,xmm3\r
+ lea edi,[32+edi]\r
+ movups xmm7,[32+esi]\r
+ sub eax,48\r
+ jmp NEAR L$108cbc_dec_tail_collected\r
+align 16\r
+L$107cbc_dec_four:\r
+ call __aesni_decrypt4\r
+ movups xmm1,[16+esi]\r
+ movups xmm0,[32+esi]\r
+ xorps xmm2,xmm7\r
+ movups xmm7,[48+esi]\r
+ xorps xmm3,xmm6\r
+ movups [edi],xmm2\r
+ xorps xmm4,xmm1\r
+ movups [16+edi],xmm3\r
+ pxor xmm3,xmm3\r
+ xorps xmm5,xmm0\r
+ movups [32+edi],xmm4\r
+ pxor xmm4,xmm4\r
+ lea edi,[48+edi]\r
+ movaps xmm2,xmm5\r
+ pxor xmm5,xmm5\r
+ sub eax,64\r
+ jmp NEAR L$108cbc_dec_tail_collected\r
+align 16\r
+L$103cbc_dec_clear_tail_collected:\r
+ pxor xmm3,xmm3\r
+ pxor xmm4,xmm4\r
+ pxor xmm5,xmm5\r
+ pxor xmm6,xmm6\r
+L$108cbc_dec_tail_collected:\r
+ and eax,15\r
+ jnz NEAR L$110cbc_dec_tail_partial\r
+ movups [edi],xmm2\r
+ pxor xmm0,xmm0\r
+ jmp NEAR L$099cbc_ret\r
+align 16\r
+L$110cbc_dec_tail_partial:\r
+ movaps [esp],xmm2\r
+ pxor xmm0,xmm0\r
+ mov ecx,16\r
+ mov esi,esp\r
+ sub ecx,eax\r
+dd 2767451785\r
+ movdqa [esp],xmm2\r
+L$099cbc_ret:\r
+ mov esp,DWORD [16+esp]\r
+ mov ebp,DWORD [36+esp]\r
+ pxor xmm2,xmm2\r
+ pxor xmm1,xmm1\r
+ movups [ebp],xmm7\r
+ pxor xmm7,xmm7\r
+L$094cbc_abort:\r
+ pop edi\r
+ pop esi\r
+ pop ebx\r
+ pop ebp\r
+ ret\r
+align 16\r
+__aesni_set_encrypt_key:\r
+ push ebp\r
+ push ebx\r
+ test eax,eax\r
+ jz NEAR L$111bad_pointer\r
+ test edx,edx\r
+ jz NEAR L$111bad_pointer\r
+ call L$112pic\r
+L$112pic:\r
+ pop ebx\r
+ lea ebx,[(L$key_const-L$112pic)+ebx]\r
+ lea ebp,[_OPENSSL_ia32cap_P]\r
+ movups xmm0,[eax]\r
+ xorps xmm4,xmm4\r
+ mov ebp,DWORD [4+ebp]\r
+ lea edx,[16+edx]\r
+ and ebp,268437504\r
+ cmp ecx,256\r
+ je NEAR L$11314rounds\r
+ cmp ecx,192\r
+ je NEAR L$11412rounds\r
+ cmp ecx,128\r
+ jne NEAR L$115bad_keybits\r
+align 16\r
+L$11610rounds:\r
+ cmp ebp,268435456\r
+ je NEAR L$11710rounds_alt\r
+ mov ecx,9\r
+ movups [edx-16],xmm0\r
+db 102,15,58,223,200,1\r
+ call L$118key_128_cold\r
+db 102,15,58,223,200,2\r
+ call L$119key_128\r
+db 102,15,58,223,200,4\r
+ call L$119key_128\r
+db 102,15,58,223,200,8\r
+ call L$119key_128\r
+db 102,15,58,223,200,16\r
+ call L$119key_128\r
+db 102,15,58,223,200,32\r
+ call L$119key_128\r
+db 102,15,58,223,200,64\r
+ call L$119key_128\r
+db 102,15,58,223,200,128\r
+ call L$119key_128\r
+db 102,15,58,223,200,27\r
+ call L$119key_128\r
+db 102,15,58,223,200,54\r
+ call L$119key_128\r
+ movups [edx],xmm0\r
+ mov DWORD [80+edx],ecx\r
+ jmp NEAR L$120good_key\r
+align 16\r
+L$119key_128:\r
+ movups [edx],xmm0\r
+ lea edx,[16+edx]\r
+L$118key_128_cold:\r
+ shufps xmm4,xmm0,16\r
+ xorps xmm0,xmm4\r
+ shufps xmm4,xmm0,140\r
+ xorps xmm0,xmm4\r
+ shufps xmm1,xmm1,255\r
+ xorps xmm0,xmm1\r
+ ret\r
+align 16\r
+L$11710rounds_alt:\r
+ movdqa xmm5,[ebx]\r
+ mov ecx,8\r
+ movdqa xmm4,[32+ebx]\r
+ movdqa xmm2,xmm0\r
+ movdqu [edx-16],xmm0\r
+L$121loop_key128:\r
+db 102,15,56,0,197\r
+db 102,15,56,221,196\r
+ pslld xmm4,1\r
+ lea edx,[16+edx]\r
+ movdqa xmm3,xmm2\r
+ pslldq xmm2,4\r
+ pxor xmm3,xmm2\r
+ pslldq xmm2,4\r
+ pxor xmm3,xmm2\r
+ pslldq xmm2,4\r
+ pxor xmm2,xmm3\r
+ pxor xmm0,xmm2\r
+ movdqu [edx-16],xmm0\r
+ movdqa xmm2,xmm0\r
+ dec ecx\r
+ jnz NEAR L$121loop_key128\r
+ movdqa xmm4,[48+ebx]\r
+db 102,15,56,0,197\r
+db 102,15,56,221,196\r
+ pslld xmm4,1\r
+ movdqa xmm3,xmm2\r
+ pslldq xmm2,4\r
+ pxor xmm3,xmm2\r
+ pslldq xmm2,4\r
+ pxor xmm3,xmm2\r
+ pslldq xmm2,4\r
+ pxor xmm2,xmm3\r
+ pxor xmm0,xmm2\r
+ movdqu [edx],xmm0\r
+ movdqa xmm2,xmm0\r
+db 102,15,56,0,197\r
+db 102,15,56,221,196\r
+ movdqa xmm3,xmm2\r
+ pslldq xmm2,4\r
+ pxor xmm3,xmm2\r
+ pslldq xmm2,4\r
+ pxor xmm3,xmm2\r
+ pslldq xmm2,4\r
+ pxor xmm2,xmm3\r
+ pxor xmm0,xmm2\r
+ movdqu [16+edx],xmm0\r
+ mov ecx,9\r
+ mov DWORD [96+edx],ecx\r
+ jmp NEAR L$120good_key\r
+align 16\r
+L$11412rounds:\r
+ movq xmm2,[16+eax]\r
+ cmp ebp,268435456\r
+ je NEAR L$12212rounds_alt\r
+ mov ecx,11\r
+ movups [edx-16],xmm0\r
+db 102,15,58,223,202,1\r
+ call L$123key_192a_cold\r
+db 102,15,58,223,202,2\r
+ call L$124key_192b\r
+db 102,15,58,223,202,4\r
+ call L$125key_192a\r
+db 102,15,58,223,202,8\r
+ call L$124key_192b\r
+db 102,15,58,223,202,16\r
+ call L$125key_192a\r
+db 102,15,58,223,202,32\r
+ call L$124key_192b\r
+db 102,15,58,223,202,64\r
+ call L$125key_192a\r
+db 102,15,58,223,202,128\r
+ call L$124key_192b\r
+ movups [edx],xmm0\r
+ mov DWORD [48+edx],ecx\r
+ jmp NEAR L$120good_key\r
+align 16\r
+L$125key_192a:\r
+ movups [edx],xmm0\r
+ lea edx,[16+edx]\r
+align 16\r
+L$123key_192a_cold:\r
+ movaps xmm5,xmm2\r
+L$126key_192b_warm:\r
+ shufps xmm4,xmm0,16\r
+ movdqa xmm3,xmm2\r
+ xorps xmm0,xmm4\r
+ shufps xmm4,xmm0,140\r
+ pslldq xmm3,4\r
+ xorps xmm0,xmm4\r
+ pshufd xmm1,xmm1,85\r
+ pxor xmm2,xmm3\r
+ pxor xmm0,xmm1\r
+ pshufd xmm3,xmm0,255\r
+ pxor xmm2,xmm3\r
+ ret\r
+align 16\r
+L$124key_192b:\r
+ movaps xmm3,xmm0\r
+ shufps xmm5,xmm0,68\r
+ movups [edx],xmm5\r
+ shufps xmm3,xmm2,78\r
+ movups [16+edx],xmm3\r
+ lea edx,[32+edx]\r
+ jmp NEAR L$126key_192b_warm\r
+align 16\r
+L$12212rounds_alt:\r
+ movdqa xmm5,[16+ebx]\r
+ movdqa xmm4,[32+ebx]\r
+ mov ecx,8\r
+ movdqu [edx-16],xmm0\r
+L$127loop_key192:\r
+ movq [edx],xmm2\r
+ movdqa xmm1,xmm2\r
+db 102,15,56,0,213\r
+db 102,15,56,221,212\r
+ pslld xmm4,1\r
+ lea edx,[24+edx]\r
+ movdqa xmm3,xmm0\r
+ pslldq xmm0,4\r
+ pxor xmm3,xmm0\r
+ pslldq xmm0,4\r
+ pxor xmm3,xmm0\r
+ pslldq xmm0,4\r
+ pxor xmm0,xmm3\r
+ pshufd xmm3,xmm0,255\r
+ pxor xmm3,xmm1\r
+ pslldq xmm1,4\r
+ pxor xmm3,xmm1\r
+ pxor xmm0,xmm2\r
+ pxor xmm2,xmm3\r
+ movdqu [edx-16],xmm0\r
+ dec ecx\r
+ jnz NEAR L$127loop_key192\r
+ mov ecx,11\r
+ mov DWORD [32+edx],ecx\r
+ jmp NEAR L$120good_key\r
+align 16\r
+L$11314rounds:\r
+ movups xmm2,[16+eax]\r
+ lea edx,[16+edx]\r
+ cmp ebp,268435456\r
+ je NEAR L$12814rounds_alt\r
+ mov ecx,13\r
+ movups [edx-32],xmm0\r
+ movups [edx-16],xmm2\r
+db 102,15,58,223,202,1\r
+ call L$129key_256a_cold\r
+db 102,15,58,223,200,1\r
+ call L$130key_256b\r
+db 102,15,58,223,202,2\r
+ call L$131key_256a\r
+db 102,15,58,223,200,2\r
+ call L$130key_256b\r
+db 102,15,58,223,202,4\r
+ call L$131key_256a\r
+db 102,15,58,223,200,4\r
+ call L$130key_256b\r
+db 102,15,58,223,202,8\r
+ call L$131key_256a\r
+db 102,15,58,223,200,8\r
+ call L$130key_256b\r
+db 102,15,58,223,202,16\r
+ call L$131key_256a\r
+db 102,15,58,223,200,16\r
+ call L$130key_256b\r
+db 102,15,58,223,202,32\r
+ call L$131key_256a\r
+db 102,15,58,223,200,32\r
+ call L$130key_256b\r
+db 102,15,58,223,202,64\r
+ call L$131key_256a\r
+ movups [edx],xmm0\r
+ mov DWORD [16+edx],ecx\r
+ xor eax,eax\r
+ jmp NEAR L$120good_key\r
+align 16\r
+L$131key_256a:\r
+ movups [edx],xmm2\r
+ lea edx,[16+edx]\r
+L$129key_256a_cold:\r
+ shufps xmm4,xmm0,16\r
+ xorps xmm0,xmm4\r
+ shufps xmm4,xmm0,140\r
+ xorps xmm0,xmm4\r
+ shufps xmm1,xmm1,255\r
+ xorps xmm0,xmm1\r
+ ret\r
+align 16\r
+L$130key_256b:\r
+ movups [edx],xmm0\r
+ lea edx,[16+edx]\r
+ shufps xmm4,xmm2,16\r
+ xorps xmm2,xmm4\r
+ shufps xmm4,xmm2,140\r
+ xorps xmm2,xmm4\r
+ shufps xmm1,xmm1,170\r
+ xorps xmm2,xmm1\r
+ ret\r
+align 16\r
+L$12814rounds_alt:\r
+ movdqa xmm5,[ebx]\r
+ movdqa xmm4,[32+ebx]\r
+ mov ecx,7\r
+ movdqu [edx-32],xmm0\r
+ movdqa xmm1,xmm2\r
+ movdqu [edx-16],xmm2\r
+L$132loop_key256:\r
+db 102,15,56,0,213\r
+db 102,15,56,221,212\r
+ movdqa xmm3,xmm0\r
+ pslldq xmm0,4\r
+ pxor xmm3,xmm0\r
+ pslldq xmm0,4\r
+ pxor xmm3,xmm0\r
+ pslldq xmm0,4\r
+ pxor xmm0,xmm3\r
+ pslld xmm4,1\r
+ pxor xmm0,xmm2\r
+ movdqu [edx],xmm0\r
+ dec ecx\r
+ jz NEAR L$133done_key256\r
+ pshufd xmm2,xmm0,255\r
+ pxor xmm3,xmm3\r
+db 102,15,56,221,211\r
+ movdqa xmm3,xmm1\r
+ pslldq xmm1,4\r
+ pxor xmm3,xmm1\r
+ pslldq xmm1,4\r
+ pxor xmm3,xmm1\r
+ pslldq xmm1,4\r
+ pxor xmm1,xmm3\r
+ pxor xmm2,xmm1\r
+ movdqu [16+edx],xmm2\r
+ lea edx,[32+edx]\r
+ movdqa xmm1,xmm2\r
+ jmp NEAR L$132loop_key256\r
+L$133done_key256:\r
+ mov ecx,13\r
+ mov DWORD [16+edx],ecx\r
+L$120good_key:\r
+ pxor xmm0,xmm0\r
+ pxor xmm1,xmm1\r
+ pxor xmm2,xmm2\r
+ pxor xmm3,xmm3\r
+ pxor xmm4,xmm4\r
+ pxor xmm5,xmm5\r
+ xor eax,eax\r
+ pop ebx\r
+ pop ebp\r
+ ret\r
+align 4\r
+L$111bad_pointer:\r
+ mov eax,-1\r
+ pop ebx\r
+ pop ebp\r
+ ret\r
+align 4\r
+L$115bad_keybits:\r
+ pxor xmm0,xmm0\r
+ mov eax,-2\r
+ pop ebx\r
+ pop ebp\r
+ ret\r
+global _aesni_set_encrypt_key\r
+align 16\r
+_aesni_set_encrypt_key:\r
+L$_aesni_set_encrypt_key_begin:\r
+ mov eax,DWORD [4+esp]\r
+ mov ecx,DWORD [8+esp]\r
+ mov edx,DWORD [12+esp]\r
+ call __aesni_set_encrypt_key\r
+ ret\r
+global _aesni_set_decrypt_key\r
+align 16\r
+_aesni_set_decrypt_key:\r
+L$_aesni_set_decrypt_key_begin:\r
+ mov eax,DWORD [4+esp]\r
+ mov ecx,DWORD [8+esp]\r
+ mov edx,DWORD [12+esp]\r
+ call __aesni_set_encrypt_key\r
+ mov edx,DWORD [12+esp]\r
+ shl ecx,4\r
+ test eax,eax\r
+ jnz NEAR L$134dec_key_ret\r
+ lea eax,[16+ecx*1+edx]\r
+ movups xmm0,[edx]\r
+ movups xmm1,[eax]\r
+ movups [eax],xmm0\r
+ movups [edx],xmm1\r
+ lea edx,[16+edx]\r
+ lea eax,[eax-16]\r
+L$135dec_key_inverse:\r
+ movups xmm0,[edx]\r
+ movups xmm1,[eax]\r
+db 102,15,56,219,192\r
+db 102,15,56,219,201\r
+ lea edx,[16+edx]\r
+ lea eax,[eax-16]\r
+ movups [16+eax],xmm0\r
+ movups [edx-16],xmm1\r
+ cmp eax,edx\r
+ ja NEAR L$135dec_key_inverse\r
+ movups xmm0,[edx]\r
+db 102,15,56,219,192\r
+ movups [edx],xmm0\r
+ pxor xmm0,xmm0\r
+ pxor xmm1,xmm1\r
+ xor eax,eax\r
+L$134dec_key_ret:\r
+ ret\r
+align 64\r
+L$key_const:\r
+dd 202313229,202313229,202313229,202313229\r
+dd 67569157,67569157,67569157,67569157\r
+dd 1,1,1,1\r
+dd 27,27,27,27\r
+db 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69\r
+db 83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83\r
+db 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115\r
+db 115,108,46,111,114,103,62,0\r
+segment .bss\r
+common _OPENSSL_ia32cap_P 16\r
--- /dev/null
+; WARNING: do not edit!\r
+; Generated from openssl/crypto/aes/asm/vpaes-x86.pl\r
+;\r
+; Copyright 2011-2020 The OpenSSL Project Authors. All Rights Reserved.\r
+;\r
+; Licensed under the OpenSSL license (the "License"). You may not use\r
+; this file except in compliance with the License. You can obtain a copy\r
+; in the file LICENSE in the source distribution or at\r
+; https://www.openssl.org/source/license.html\r
+\r
+%ifidn __OUTPUT_FORMAT__,obj\r
+section code use32 class=code align=64\r
+%elifidn __OUTPUT_FORMAT__,win32\r
+$@feat.00 equ 1\r
+section .text code align=64\r
+%else\r
+section .text code\r
+%endif\r
+align 64\r
+L$_vpaes_consts:\r
+dd 218628480,235210255,168496130,67568393\r
+dd 252381056,17041926,33884169,51187212\r
+dd 252645135,252645135,252645135,252645135\r
+dd 1512730624,3266504856,1377990664,3401244816\r
+dd 830229760,1275146365,2969422977,3447763452\r
+dd 3411033600,2979783055,338359620,2782886510\r
+dd 4209124096,907596821,221174255,1006095553\r
+dd 191964160,3799684038,3164090317,1589111125\r
+dd 182528256,1777043520,2877432650,3265356744\r
+dd 1874708224,3503451415,3305285752,363511674\r
+dd 1606117888,3487855781,1093350906,2384367825\r
+dd 197121,67569157,134941193,202313229\r
+dd 67569157,134941193,202313229,197121\r
+dd 134941193,202313229,197121,67569157\r
+dd 202313229,197121,67569157,134941193\r
+dd 33619971,100992007,168364043,235736079\r
+dd 235736079,33619971,100992007,168364043\r
+dd 168364043,235736079,33619971,100992007\r
+dd 100992007,168364043,235736079,33619971\r
+dd 50462976,117835012,185207048,252579084\r
+dd 252314880,51251460,117574920,184942860\r
+dd 184682752,252054788,50987272,118359308\r
+dd 118099200,185467140,251790600,50727180\r
+dd 2946363062,528716217,1300004225,1881839624\r
+dd 1532713819,1532713819,1532713819,1532713819\r
+dd 3602276352,4288629033,3737020424,4153884961\r
+dd 1354558464,32357713,2958822624,3775749553\r
+dd 1201988352,132424512,1572796698,503232858\r
+dd 2213177600,1597421020,4103937655,675398315\r
+dd 2749646592,4273543773,1511898873,121693092\r
+dd 3040248576,1103263732,2871565598,1608280554\r
+dd 2236667136,2588920351,482954393,64377734\r
+dd 3069987328,291237287,2117370568,3650299247\r
+dd 533321216,3573750986,2572112006,1401264716\r
+dd 1339849704,2721158661,548607111,3445553514\r
+dd 2128193280,3054596040,2183486460,1257083700\r
+dd 655635200,1165381986,3923443150,2344132524\r
+dd 190078720,256924420,290342170,357187870\r
+dd 1610966272,2263057382,4103205268,309794674\r
+dd 2592527872,2233205587,1335446729,3402964816\r
+dd 3973531904,3225098121,3002836325,1918774430\r
+dd 3870401024,2102906079,2284471353,4117666579\r
+dd 617007872,1021508343,366931923,691083277\r
+dd 2528395776,3491914898,2968704004,1613121270\r
+dd 3445188352,3247741094,844474987,4093578302\r
+dd 651481088,1190302358,1689581232,574775300\r
+dd 4289380608,206939853,2555985458,2489840491\r
+dd 2130264064,327674451,3566485037,3349835193\r
+dd 2470714624,316102159,3636825756,3393945945\r
+db 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105\r
+db 111,110,32,65,69,83,32,102,111,114,32,120,56,54,47,83\r
+db 83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117\r
+db 114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105\r
+db 118,101,114,115,105,116,121,41,0\r
+align 64\r
+align 16\r
+__vpaes_preheat:\r
+ add ebp,DWORD [esp]\r
+ movdqa xmm7,[ebp-48]\r
+ movdqa xmm6,[ebp-16]\r
+ ret\r
+align 16\r
+__vpaes_encrypt_core:\r
+ mov ecx,16\r
+ mov eax,DWORD [240+edx]\r
+ movdqa xmm1,xmm6\r
+ movdqa xmm2,[ebp]\r
+ pandn xmm1,xmm0\r
+ pand xmm0,xmm6\r
+ movdqu xmm5,[edx]\r
+db 102,15,56,0,208\r
+ movdqa xmm0,[16+ebp]\r
+ pxor xmm2,xmm5\r
+ psrld xmm1,4\r
+ add edx,16\r
+db 102,15,56,0,193\r
+ lea ebx,[192+ebp]\r
+ pxor xmm0,xmm2\r
+ jmp NEAR L$000enc_entry\r
+align 16\r
+L$001enc_loop:\r
+ movdqa xmm4,[32+ebp]\r
+ movdqa xmm0,[48+ebp]\r
+db 102,15,56,0,226\r
+db 102,15,56,0,195\r
+ pxor xmm4,xmm5\r
+ movdqa xmm5,[64+ebp]\r
+ pxor xmm0,xmm4\r
+ movdqa xmm1,[ecx*1+ebx-64]\r
+db 102,15,56,0,234\r
+ movdqa xmm2,[80+ebp]\r
+ movdqa xmm4,[ecx*1+ebx]\r
+db 102,15,56,0,211\r
+ movdqa xmm3,xmm0\r
+ pxor xmm2,xmm5\r
+db 102,15,56,0,193\r
+ add edx,16\r
+ pxor xmm0,xmm2\r
+db 102,15,56,0,220\r
+ add ecx,16\r
+ pxor xmm3,xmm0\r
+db 102,15,56,0,193\r
+ and ecx,48\r
+ sub eax,1\r
+ pxor xmm0,xmm3\r
+L$000enc_entry:\r
+ movdqa xmm1,xmm6\r
+ movdqa xmm5,[ebp-32]\r
+ pandn xmm1,xmm0\r
+ psrld xmm1,4\r
+ pand xmm0,xmm6\r
+db 102,15,56,0,232\r
+ movdqa xmm3,xmm7\r
+ pxor xmm0,xmm1\r
+db 102,15,56,0,217\r
+ movdqa xmm4,xmm7\r
+ pxor xmm3,xmm5\r
+db 102,15,56,0,224\r
+ movdqa xmm2,xmm7\r
+ pxor xmm4,xmm5\r
+db 102,15,56,0,211\r
+ movdqa xmm3,xmm7\r
+ pxor xmm2,xmm0\r
+db 102,15,56,0,220\r
+ movdqu xmm5,[edx]\r
+ pxor xmm3,xmm1\r
+ jnz NEAR L$001enc_loop\r
+ movdqa xmm4,[96+ebp]\r
+ movdqa xmm0,[112+ebp]\r
+db 102,15,56,0,226\r
+ pxor xmm4,xmm5\r
+db 102,15,56,0,195\r
+ movdqa xmm1,[64+ecx*1+ebx]\r
+ pxor xmm0,xmm4\r
+db 102,15,56,0,193\r
+ ret\r
+align 16\r
+__vpaes_decrypt_core:\r
+ lea ebx,[608+ebp]\r
+ mov eax,DWORD [240+edx]\r
+ movdqa xmm1,xmm6\r
+ movdqa xmm2,[ebx-64]\r
+ pandn xmm1,xmm0\r
+ mov ecx,eax\r
+ psrld xmm1,4\r
+ movdqu xmm5,[edx]\r
+ shl ecx,4\r
+ pand xmm0,xmm6\r
+db 102,15,56,0,208\r
+ movdqa xmm0,[ebx-48]\r
+ xor ecx,48\r
+db 102,15,56,0,193\r
+ and ecx,48\r
+ pxor xmm2,xmm5\r
+ movdqa xmm5,[176+ebp]\r
+ pxor xmm0,xmm2\r
+ add edx,16\r
+ lea ecx,[ecx*1+ebx-352]\r
+ jmp NEAR L$002dec_entry\r
+align 16\r
+L$003dec_loop:\r
+ movdqa xmm4,[ebx-32]\r
+ movdqa xmm1,[ebx-16]\r
+db 102,15,56,0,226\r
+db 102,15,56,0,203\r
+ pxor xmm0,xmm4\r
+ movdqa xmm4,[ebx]\r
+ pxor xmm0,xmm1\r
+ movdqa xmm1,[16+ebx]\r
+db 102,15,56,0,226\r
+db 102,15,56,0,197\r
+db 102,15,56,0,203\r
+ pxor xmm0,xmm4\r
+ movdqa xmm4,[32+ebx]\r
+ pxor xmm0,xmm1\r
+ movdqa xmm1,[48+ebx]\r
+db 102,15,56,0,226\r
+db 102,15,56,0,197\r
+db 102,15,56,0,203\r
+ pxor xmm0,xmm4\r
+ movdqa xmm4,[64+ebx]\r
+ pxor xmm0,xmm1\r
+ movdqa xmm1,[80+ebx]\r
+db 102,15,56,0,226\r
+db 102,15,56,0,197\r
+db 102,15,56,0,203\r
+ pxor xmm0,xmm4\r
+ add edx,16\r
+db 102,15,58,15,237,12\r
+ pxor xmm0,xmm1\r
+ sub eax,1\r
+L$002dec_entry:\r
+ movdqa xmm1,xmm6\r
+ movdqa xmm2,[ebp-32]\r
+ pandn xmm1,xmm0\r
+ pand xmm0,xmm6\r
+ psrld xmm1,4\r
+db 102,15,56,0,208\r
+ movdqa xmm3,xmm7\r
+ pxor xmm0,xmm1\r
+db 102,15,56,0,217\r
+ movdqa xmm4,xmm7\r
+ pxor xmm3,xmm2\r
+db 102,15,56,0,224\r
+ pxor xmm4,xmm2\r
+ movdqa xmm2,xmm7\r
+db 102,15,56,0,211\r
+ movdqa xmm3,xmm7\r
+ pxor xmm2,xmm0\r
+db 102,15,56,0,220\r
+ movdqu xmm0,[edx]\r
+ pxor xmm3,xmm1\r
+ jnz NEAR L$003dec_loop\r
+ movdqa xmm4,[96+ebx]\r
+db 102,15,56,0,226\r
+ pxor xmm4,xmm0\r
+ movdqa xmm0,[112+ebx]\r
+ movdqa xmm2,[ecx]\r
+db 102,15,56,0,195\r
+ pxor xmm0,xmm4\r
+db 102,15,56,0,194\r
+ ret\r
+align 16\r
+__vpaes_schedule_core:\r
+ add ebp,DWORD [esp]\r
+ movdqu xmm0,[esi]\r
+ movdqa xmm2,[320+ebp]\r
+ movdqa xmm3,xmm0\r
+ lea ebx,[ebp]\r
+ movdqa [4+esp],xmm2\r
+ call __vpaes_schedule_transform\r
+ movdqa xmm7,xmm0\r
+ test edi,edi\r
+ jnz NEAR L$004schedule_am_decrypting\r
+ movdqu [edx],xmm0\r
+ jmp NEAR L$005schedule_go\r
+L$004schedule_am_decrypting:\r
+ movdqa xmm1,[256+ecx*1+ebp]\r
+db 102,15,56,0,217\r
+ movdqu [edx],xmm3\r
+ xor ecx,48\r
+L$005schedule_go:\r
+ cmp eax,192\r
+ ja NEAR L$006schedule_256\r
+ je NEAR L$007schedule_192\r
+L$008schedule_128:\r
+ mov eax,10\r
+L$009loop_schedule_128:\r
+ call __vpaes_schedule_round\r
+ dec eax\r
+ jz NEAR L$010schedule_mangle_last\r
+ call __vpaes_schedule_mangle\r
+ jmp NEAR L$009loop_schedule_128\r
+align 16\r
+L$007schedule_192:\r
+ movdqu xmm0,[8+esi]\r
+ call __vpaes_schedule_transform\r
+ movdqa xmm6,xmm0\r
+ pxor xmm4,xmm4\r
+ movhlps xmm6,xmm4\r
+ mov eax,4\r
+L$011loop_schedule_192:\r
+ call __vpaes_schedule_round\r
+db 102,15,58,15,198,8\r
+ call __vpaes_schedule_mangle\r
+ call __vpaes_schedule_192_smear\r
+ call __vpaes_schedule_mangle\r
+ call __vpaes_schedule_round\r
+ dec eax\r
+ jz NEAR L$010schedule_mangle_last\r
+ call __vpaes_schedule_mangle\r
+ call __vpaes_schedule_192_smear\r
+ jmp NEAR L$011loop_schedule_192\r
+align 16\r
+L$006schedule_256:\r
+ movdqu xmm0,[16+esi]\r
+ call __vpaes_schedule_transform\r
+ mov eax,7\r
+L$012loop_schedule_256:\r
+ call __vpaes_schedule_mangle\r
+ movdqa xmm6,xmm0\r
+ call __vpaes_schedule_round\r
+ dec eax\r
+ jz NEAR L$010schedule_mangle_last\r
+ call __vpaes_schedule_mangle\r
+ pshufd xmm0,xmm0,255\r
+ movdqa [20+esp],xmm7\r
+ movdqa xmm7,xmm6\r
+ call L$_vpaes_schedule_low_round\r
+ movdqa xmm7,[20+esp]\r
+ jmp NEAR L$012loop_schedule_256\r
+align 16\r
+L$010schedule_mangle_last:\r
+ lea ebx,[384+ebp]\r
+ test edi,edi\r
+ jnz NEAR L$013schedule_mangle_last_dec\r
+ movdqa xmm1,[256+ecx*1+ebp]\r
+db 102,15,56,0,193\r
+ lea ebx,[352+ebp]\r
+ add edx,32\r
+L$013schedule_mangle_last_dec:\r
+ add edx,-16\r
+ pxor xmm0,[336+ebp]\r
+ call __vpaes_schedule_transform\r
+ movdqu [edx],xmm0\r
+ pxor xmm0,xmm0\r
+ pxor xmm1,xmm1\r
+ pxor xmm2,xmm2\r
+ pxor xmm3,xmm3\r
+ pxor xmm4,xmm4\r
+ pxor xmm5,xmm5\r
+ pxor xmm6,xmm6\r
+ pxor xmm7,xmm7\r
+ ret\r
+align 16\r
+__vpaes_schedule_192_smear:\r
+ pshufd xmm1,xmm6,128\r
+ pshufd xmm0,xmm7,254\r
+ pxor xmm6,xmm1\r
+ pxor xmm1,xmm1\r
+ pxor xmm6,xmm0\r
+ movdqa xmm0,xmm6\r
+ movhlps xmm6,xmm1\r
+ ret\r
+align 16\r
+__vpaes_schedule_round:\r
+ movdqa xmm2,[8+esp]\r
+ pxor xmm1,xmm1\r
+db 102,15,58,15,202,15\r
+db 102,15,58,15,210,15\r
+ pxor xmm7,xmm1\r
+ pshufd xmm0,xmm0,255\r
+db 102,15,58,15,192,1\r
+ movdqa [8+esp],xmm2\r
+L$_vpaes_schedule_low_round:\r
+ movdqa xmm1,xmm7\r
+ pslldq xmm7,4\r
+ pxor xmm7,xmm1\r
+ movdqa xmm1,xmm7\r
+ pslldq xmm7,8\r
+ pxor xmm7,xmm1\r
+ pxor xmm7,[336+ebp]\r
+ movdqa xmm4,[ebp-16]\r
+ movdqa xmm5,[ebp-48]\r
+ movdqa xmm1,xmm4\r
+ pandn xmm1,xmm0\r
+ psrld xmm1,4\r
+ pand xmm0,xmm4\r
+ movdqa xmm2,[ebp-32]\r
+db 102,15,56,0,208\r
+ pxor xmm0,xmm1\r
+ movdqa xmm3,xmm5\r
+db 102,15,56,0,217\r
+ pxor xmm3,xmm2\r
+ movdqa xmm4,xmm5\r
+db 102,15,56,0,224\r
+ pxor xmm4,xmm2\r
+ movdqa xmm2,xmm5\r
+db 102,15,56,0,211\r
+ pxor xmm2,xmm0\r
+ movdqa xmm3,xmm5\r
+db 102,15,56,0,220\r
+ pxor xmm3,xmm1\r
+ movdqa xmm4,[32+ebp]\r
+db 102,15,56,0,226\r
+ movdqa xmm0,[48+ebp]\r
+db 102,15,56,0,195\r
+ pxor xmm0,xmm4\r
+ pxor xmm0,xmm7\r
+ movdqa xmm7,xmm0\r
+ ret\r
+align 16\r
+__vpaes_schedule_transform:\r
+ movdqa xmm2,[ebp-16]\r
+ movdqa xmm1,xmm2\r
+ pandn xmm1,xmm0\r
+ psrld xmm1,4\r
+ pand xmm0,xmm2\r
+ movdqa xmm2,[ebx]\r
+db 102,15,56,0,208\r
+ movdqa xmm0,[16+ebx]\r
+db 102,15,56,0,193\r
+ pxor xmm0,xmm2\r
+ ret\r
+align 16\r
+__vpaes_schedule_mangle:\r
+ movdqa xmm4,xmm0\r
+ movdqa xmm5,[128+ebp]\r
+ test edi,edi\r
+ jnz NEAR L$014schedule_mangle_dec\r
+ add edx,16\r
+ pxor xmm4,[336+ebp]\r
+db 102,15,56,0,229\r
+ movdqa xmm3,xmm4\r
+db 102,15,56,0,229\r
+ pxor xmm3,xmm4\r
+db 102,15,56,0,229\r
+ pxor xmm3,xmm4\r
+ jmp NEAR L$015schedule_mangle_both\r
+align 16\r
+L$014schedule_mangle_dec:\r
+ movdqa xmm2,[ebp-16]\r
+ lea esi,[416+ebp]\r
+ movdqa xmm1,xmm2\r
+ pandn xmm1,xmm4\r
+ psrld xmm1,4\r
+ pand xmm4,xmm2\r
+ movdqa xmm2,[esi]\r
+db 102,15,56,0,212\r
+ movdqa xmm3,[16+esi]\r
+db 102,15,56,0,217\r
+ pxor xmm3,xmm2\r
+db 102,15,56,0,221\r
+ movdqa xmm2,[32+esi]\r
+db 102,15,56,0,212\r
+ pxor xmm2,xmm3\r
+ movdqa xmm3,[48+esi]\r
+db 102,15,56,0,217\r
+ pxor xmm3,xmm2\r
+db 102,15,56,0,221\r
+ movdqa xmm2,[64+esi]\r
+db 102,15,56,0,212\r
+ pxor xmm2,xmm3\r
+ movdqa xmm3,[80+esi]\r
+db 102,15,56,0,217\r
+ pxor xmm3,xmm2\r
+db 102,15,56,0,221\r
+ movdqa xmm2,[96+esi]\r
+db 102,15,56,0,212\r
+ pxor xmm2,xmm3\r
+ movdqa xmm3,[112+esi]\r
+db 102,15,56,0,217\r
+ pxor xmm3,xmm2\r
+ add edx,-16\r
+L$015schedule_mangle_both:\r
+ movdqa xmm1,[256+ecx*1+ebp]\r
+db 102,15,56,0,217\r
+ add ecx,-16\r
+ and ecx,48\r
+ movdqu [edx],xmm3\r
+ ret\r
+global _vpaes_set_encrypt_key\r
+align 16\r
+_vpaes_set_encrypt_key:\r
+L$_vpaes_set_encrypt_key_begin:\r
+ push ebp\r
+ push ebx\r
+ push esi\r
+ push edi\r
+ mov esi,DWORD [20+esp]\r
+ lea ebx,[esp-56]\r
+ mov eax,DWORD [24+esp]\r
+ and ebx,-16\r
+ mov edx,DWORD [28+esp]\r
+ xchg ebx,esp\r
+ mov DWORD [48+esp],ebx\r
+ mov ebx,eax\r
+ shr ebx,5\r
+ add ebx,5\r
+ mov DWORD [240+edx],ebx\r
+ mov ecx,48\r
+ mov edi,0\r
+ lea ebp,[(L$_vpaes_consts+0x30-L$016pic_point)]\r
+ call __vpaes_schedule_core\r
+L$016pic_point:\r
+ mov esp,DWORD [48+esp]\r
+ xor eax,eax\r
+ pop edi\r
+ pop esi\r
+ pop ebx\r
+ pop ebp\r
+ ret\r
+global _vpaes_set_decrypt_key\r
+align 16\r
+_vpaes_set_decrypt_key:\r
+L$_vpaes_set_decrypt_key_begin:\r
+ push ebp\r
+ push ebx\r
+ push esi\r
+ push edi\r
+ mov esi,DWORD [20+esp]\r
+ lea ebx,[esp-56]\r
+ mov eax,DWORD [24+esp]\r
+ and ebx,-16\r
+ mov edx,DWORD [28+esp]\r
+ xchg ebx,esp\r
+ mov DWORD [48+esp],ebx\r
+ mov ebx,eax\r
+ shr ebx,5\r
+ add ebx,5\r
+ mov DWORD [240+edx],ebx\r
+ shl ebx,4\r
+ lea edx,[16+ebx*1+edx]\r
+ mov edi,1\r
+ mov ecx,eax\r
+ shr ecx,1\r
+ and ecx,32\r
+ xor ecx,32\r
+ lea ebp,[(L$_vpaes_consts+0x30-L$017pic_point)]\r
+ call __vpaes_schedule_core\r
+L$017pic_point:\r
+ mov esp,DWORD [48+esp]\r
+ xor eax,eax\r
+ pop edi\r
+ pop esi\r
+ pop ebx\r
+ pop ebp\r
+ ret\r
+global _vpaes_encrypt\r
+align 16\r
+_vpaes_encrypt:\r
+L$_vpaes_encrypt_begin:\r
+ push ebp\r
+ push ebx\r
+ push esi\r
+ push edi\r
+ lea ebp,[(L$_vpaes_consts+0x30-L$018pic_point)]\r
+ call __vpaes_preheat\r
+L$018pic_point:\r
+ mov esi,DWORD [20+esp]\r
+ lea ebx,[esp-56]\r
+ mov edi,DWORD [24+esp]\r
+ and ebx,-16\r
+ mov edx,DWORD [28+esp]\r
+ xchg ebx,esp\r
+ mov DWORD [48+esp],ebx\r
+ movdqu xmm0,[esi]\r
+ call __vpaes_encrypt_core\r
+ movdqu [edi],xmm0\r
+ mov esp,DWORD [48+esp]\r
+ pop edi\r
+ pop esi\r
+ pop ebx\r
+ pop ebp\r
+ ret\r
+global _vpaes_decrypt\r
+align 16\r
+_vpaes_decrypt:\r
+L$_vpaes_decrypt_begin:\r
+ push ebp\r
+ push ebx\r
+ push esi\r
+ push edi\r
+ lea ebp,[(L$_vpaes_consts+0x30-L$019pic_point)]\r
+ call __vpaes_preheat\r
+L$019pic_point:\r
+ mov esi,DWORD [20+esp]\r
+ lea ebx,[esp-56]\r
+ mov edi,DWORD [24+esp]\r
+ and ebx,-16\r
+ mov edx,DWORD [28+esp]\r
+ xchg ebx,esp\r
+ mov DWORD [48+esp],ebx\r
+ movdqu xmm0,[esi]\r
+ call __vpaes_decrypt_core\r
+ movdqu [edi],xmm0\r
+ mov esp,DWORD [48+esp]\r
+ pop edi\r
+ pop esi\r
+ pop ebx\r
+ pop ebp\r
+ ret\r
+global _vpaes_cbc_encrypt\r
+align 16\r
+_vpaes_cbc_encrypt:\r
+L$_vpaes_cbc_encrypt_begin:\r
+ push ebp\r
+ push ebx\r
+ push esi\r
+ push edi\r
+ mov esi,DWORD [20+esp]\r
+ mov edi,DWORD [24+esp]\r
+ mov eax,DWORD [28+esp]\r
+ mov edx,DWORD [32+esp]\r
+ sub eax,16\r
+ jc NEAR L$020cbc_abort\r
+ lea ebx,[esp-56]\r
+ mov ebp,DWORD [36+esp]\r
+ and ebx,-16\r
+ mov ecx,DWORD [40+esp]\r
+ xchg ebx,esp\r
+ movdqu xmm1,[ebp]\r
+ sub edi,esi\r
+ mov DWORD [48+esp],ebx\r
+ mov DWORD [esp],edi\r
+ mov DWORD [4+esp],edx\r
+ mov DWORD [8+esp],ebp\r
+ mov edi,eax\r
+ lea ebp,[(L$_vpaes_consts+0x30-L$021pic_point)]\r
+ call __vpaes_preheat\r
+L$021pic_point:\r
+ cmp ecx,0\r
+ je NEAR L$022cbc_dec_loop\r
+ jmp NEAR L$023cbc_enc_loop\r
+align 16\r
+L$023cbc_enc_loop:\r
+ movdqu xmm0,[esi]\r
+ pxor xmm0,xmm1\r
+ call __vpaes_encrypt_core\r
+ mov ebx,DWORD [esp]\r
+ mov edx,DWORD [4+esp]\r
+ movdqa xmm1,xmm0\r
+ movdqu [esi*1+ebx],xmm0\r
+ lea esi,[16+esi]\r
+ sub edi,16\r
+ jnc NEAR L$023cbc_enc_loop\r
+ jmp NEAR L$024cbc_done\r
+align 16\r
+L$022cbc_dec_loop:\r
+ movdqu xmm0,[esi]\r
+ movdqa [16+esp],xmm1\r
+ movdqa [32+esp],xmm0\r
+ call __vpaes_decrypt_core\r
+ mov ebx,DWORD [esp]\r
+ mov edx,DWORD [4+esp]\r
+ pxor xmm0,[16+esp]\r
+ movdqa xmm1,[32+esp]\r
+ movdqu [esi*1+ebx],xmm0\r
+ lea esi,[16+esi]\r
+ sub edi,16\r
+ jnc NEAR L$022cbc_dec_loop\r
+L$024cbc_done:\r
+ mov ebx,DWORD [8+esp]\r
+ mov esp,DWORD [48+esp]\r
+ movdqu [ebx],xmm1\r
+L$020cbc_abort:\r
+ pop edi\r
+ pop esi\r
+ pop ebx\r
+ pop ebp\r
+ ret\r
--- /dev/null
+; WARNING: do not edit!\r
+; Generated from openssl/crypto/modes/asm/ghash-x86.pl\r
+;\r
+; Copyright 2010-2020 The OpenSSL Project Authors. All Rights Reserved.\r
+;\r
+; Licensed under the OpenSSL license (the "License"). You may not use\r
+; this file except in compliance with the License. You can obtain a copy\r
+; in the file LICENSE in the source distribution or at\r
+; https://www.openssl.org/source/license.html\r
+\r
+%ifidn __OUTPUT_FORMAT__,obj\r
+section code use32 class=code align=64\r
+%elifidn __OUTPUT_FORMAT__,win32\r
+$@feat.00 equ 1\r
+section .text code align=64\r
+%else\r
+section .text code\r
+%endif\r
+global _gcm_gmult_4bit_x86\r
+align 16\r
+_gcm_gmult_4bit_x86:\r
+L$_gcm_gmult_4bit_x86_begin:\r
+ push ebp\r
+ push ebx\r
+ push esi\r
+ push edi\r
+ sub esp,84\r
+ mov edi,DWORD [104+esp]\r
+ mov esi,DWORD [108+esp]\r
+ mov ebp,DWORD [edi]\r
+ mov edx,DWORD [4+edi]\r
+ mov ecx,DWORD [8+edi]\r
+ mov ebx,DWORD [12+edi]\r
+ mov DWORD [16+esp],0\r
+ mov DWORD [20+esp],471859200\r
+ mov DWORD [24+esp],943718400\r
+ mov DWORD [28+esp],610271232\r
+ mov DWORD [32+esp],1887436800\r
+ mov DWORD [36+esp],1822425088\r
+ mov DWORD [40+esp],1220542464\r
+ mov DWORD [44+esp],1423966208\r
+ mov DWORD [48+esp],3774873600\r
+ mov DWORD [52+esp],4246732800\r
+ mov DWORD [56+esp],3644850176\r
+ mov DWORD [60+esp],3311403008\r
+ mov DWORD [64+esp],2441084928\r
+ mov DWORD [68+esp],2376073216\r
+ mov DWORD [72+esp],2847932416\r
+ mov DWORD [76+esp],3051356160\r
+ mov DWORD [esp],ebp\r
+ mov DWORD [4+esp],edx\r
+ mov DWORD [8+esp],ecx\r
+ mov DWORD [12+esp],ebx\r
+ shr ebx,20\r
+ and ebx,240\r
+ mov ebp,DWORD [4+ebx*1+esi]\r
+ mov edx,DWORD [ebx*1+esi]\r
+ mov ecx,DWORD [12+ebx*1+esi]\r
+ mov ebx,DWORD [8+ebx*1+esi]\r
+ xor eax,eax\r
+ mov edi,15\r
+ jmp NEAR L$000x86_loop\r
+align 16\r
+L$000x86_loop:\r
+ mov al,bl\r
+ shrd ebx,ecx,4\r
+ and al,15\r
+ shrd ecx,edx,4\r
+ shrd edx,ebp,4\r
+ shr ebp,4\r
+ xor ebp,DWORD [16+eax*4+esp]\r
+ mov al,BYTE [edi*1+esp]\r
+ and al,240\r
+ xor ebx,DWORD [8+eax*1+esi]\r
+ xor ecx,DWORD [12+eax*1+esi]\r
+ xor edx,DWORD [eax*1+esi]\r
+ xor ebp,DWORD [4+eax*1+esi]\r
+ dec edi\r
+ js NEAR L$001x86_break\r
+ mov al,bl\r
+ shrd ebx,ecx,4\r
+ and al,15\r
+ shrd ecx,edx,4\r
+ shrd edx,ebp,4\r
+ shr ebp,4\r
+ xor ebp,DWORD [16+eax*4+esp]\r
+ mov al,BYTE [edi*1+esp]\r
+ shl al,4\r
+ xor ebx,DWORD [8+eax*1+esi]\r
+ xor ecx,DWORD [12+eax*1+esi]\r
+ xor edx,DWORD [eax*1+esi]\r
+ xor ebp,DWORD [4+eax*1+esi]\r
+ jmp NEAR L$000x86_loop\r
+align 16\r
+L$001x86_break:\r
+ bswap ebx\r
+ bswap ecx\r
+ bswap edx\r
+ bswap ebp\r
+ mov edi,DWORD [104+esp]\r
+ mov DWORD [12+edi],ebx\r
+ mov DWORD [8+edi],ecx\r
+ mov DWORD [4+edi],edx\r
+ mov DWORD [edi],ebp\r
+ add esp,84\r
+ pop edi\r
+ pop esi\r
+ pop ebx\r
+ pop ebp\r
+ ret\r
+global _gcm_ghash_4bit_x86\r
+align 16\r
+_gcm_ghash_4bit_x86:\r
+L$_gcm_ghash_4bit_x86_begin:\r
+ push ebp\r
+ push ebx\r
+ push esi\r
+ push edi\r
+ sub esp,84\r
+ mov ebx,DWORD [104+esp]\r
+ mov esi,DWORD [108+esp]\r
+ mov edi,DWORD [112+esp]\r
+ mov ecx,DWORD [116+esp]\r
+ add ecx,edi\r
+ mov DWORD [116+esp],ecx\r
+ mov ebp,DWORD [ebx]\r
+ mov edx,DWORD [4+ebx]\r
+ mov ecx,DWORD [8+ebx]\r
+ mov ebx,DWORD [12+ebx]\r
+ mov DWORD [16+esp],0\r
+ mov DWORD [20+esp],471859200\r
+ mov DWORD [24+esp],943718400\r
+ mov DWORD [28+esp],610271232\r
+ mov DWORD [32+esp],1887436800\r
+ mov DWORD [36+esp],1822425088\r
+ mov DWORD [40+esp],1220542464\r
+ mov DWORD [44+esp],1423966208\r
+ mov DWORD [48+esp],3774873600\r
+ mov DWORD [52+esp],4246732800\r
+ mov DWORD [56+esp],3644850176\r
+ mov DWORD [60+esp],3311403008\r
+ mov DWORD [64+esp],2441084928\r
+ mov DWORD [68+esp],2376073216\r
+ mov DWORD [72+esp],2847932416\r
+ mov DWORD [76+esp],3051356160\r
+align 16\r
+L$002x86_outer_loop:\r
+ xor ebx,DWORD [12+edi]\r
+ xor ecx,DWORD [8+edi]\r
+ xor edx,DWORD [4+edi]\r
+ xor ebp,DWORD [edi]\r
+ mov DWORD [12+esp],ebx\r
+ mov DWORD [8+esp],ecx\r
+ mov DWORD [4+esp],edx\r
+ mov DWORD [esp],ebp\r
+ shr ebx,20\r
+ and ebx,240\r
+ mov ebp,DWORD [4+ebx*1+esi]\r
+ mov edx,DWORD [ebx*1+esi]\r
+ mov ecx,DWORD [12+ebx*1+esi]\r
+ mov ebx,DWORD [8+ebx*1+esi]\r
+ xor eax,eax\r
+ mov edi,15\r
+ jmp NEAR L$003x86_loop\r
+align 16\r
+L$003x86_loop:\r
+ mov al,bl\r
+ shrd ebx,ecx,4\r
+ and al,15\r
+ shrd ecx,edx,4\r
+ shrd edx,ebp,4\r
+ shr ebp,4\r
+ xor ebp,DWORD [16+eax*4+esp]\r
+ mov al,BYTE [edi*1+esp]\r
+ and al,240\r
+ xor ebx,DWORD [8+eax*1+esi]\r
+ xor ecx,DWORD [12+eax*1+esi]\r
+ xor edx,DWORD [eax*1+esi]\r
+ xor ebp,DWORD [4+eax*1+esi]\r
+ dec edi\r
+ js NEAR L$004x86_break\r
+ mov al,bl\r
+ shrd ebx,ecx,4\r
+ and al,15\r
+ shrd ecx,edx,4\r
+ shrd edx,ebp,4\r
+ shr ebp,4\r
+ xor ebp,DWORD [16+eax*4+esp]\r
+ mov al,BYTE [edi*1+esp]\r
+ shl al,4\r
+ xor ebx,DWORD [8+eax*1+esi]\r
+ xor ecx,DWORD [12+eax*1+esi]\r
+ xor edx,DWORD [eax*1+esi]\r
+ xor ebp,DWORD [4+eax*1+esi]\r
+ jmp NEAR L$003x86_loop\r
+align 16\r
+L$004x86_break:\r
+ bswap ebx\r
+ bswap ecx\r
+ bswap edx\r
+ bswap ebp\r
+ mov edi,DWORD [112+esp]\r
+ lea edi,[16+edi]\r
+ cmp edi,DWORD [116+esp]\r
+ mov DWORD [112+esp],edi\r
+ jb NEAR L$002x86_outer_loop\r
+ mov edi,DWORD [104+esp]\r
+ mov DWORD [12+edi],ebx\r
+ mov DWORD [8+edi],ecx\r
+ mov DWORD [4+edi],edx\r
+ mov DWORD [edi],ebp\r
+ add esp,84\r
+ pop edi\r
+ pop esi\r
+ pop ebx\r
+ pop ebp\r
+ ret\r
+align 16\r
+__mmx_gmult_4bit_inner:\r
+ xor ecx,ecx\r
+ mov edx,ebx\r
+ mov cl,dl\r
+ shl cl,4\r
+ and edx,240\r
+ movq mm0,[8+ecx*1+esi]\r
+ movq mm1,[ecx*1+esi]\r
+ movd ebp,mm0\r
+ psrlq mm0,4\r
+ movq mm2,mm1\r
+ psrlq mm1,4\r
+ pxor mm0,[8+edx*1+esi]\r
+ mov cl,BYTE [14+edi]\r
+ psllq mm2,60\r
+ and ebp,15\r
+ pxor mm1,[edx*1+esi]\r
+ mov edx,ecx\r
+ movd ebx,mm0\r
+ pxor mm0,mm2\r
+ shl cl,4\r
+ psrlq mm0,4\r
+ movq mm2,mm1\r
+ psrlq mm1,4\r
+ pxor mm0,[8+ecx*1+esi]\r
+ psllq mm2,60\r
+ and edx,240\r
+ pxor mm1,[ebp*8+eax]\r
+ and ebx,15\r
+ pxor mm1,[ecx*1+esi]\r
+ movd ebp,mm0\r
+ pxor mm0,mm2\r
+ psrlq mm0,4\r
+ movq mm2,mm1\r
+ psrlq mm1,4\r
+ pxor mm0,[8+edx*1+esi]\r
+ mov cl,BYTE [13+edi]\r
+ psllq mm2,60\r
+ pxor mm1,[ebx*8+eax]\r
+ and ebp,15\r
+ pxor mm1,[edx*1+esi]\r
+ mov edx,ecx\r
+ movd ebx,mm0\r
+ pxor mm0,mm2\r
+ shl cl,4\r
+ psrlq mm0,4\r
+ movq mm2,mm1\r
+ psrlq mm1,4\r
+ pxor mm0,[8+ecx*1+esi]\r
+ psllq mm2,60\r
+ and edx,240\r
+ pxor mm1,[ebp*8+eax]\r
+ and ebx,15\r
+ pxor mm1,[ecx*1+esi]\r
+ movd ebp,mm0\r
+ pxor mm0,mm2\r
+ psrlq mm0,4\r
+ movq mm2,mm1\r
+ psrlq mm1,4\r
+ pxor mm0,[8+edx*1+esi]\r
+ mov cl,BYTE [12+edi]\r
+ psllq mm2,60\r
+ pxor mm1,[ebx*8+eax]\r
+ and ebp,15\r
+ pxor mm1,[edx*1+esi]\r
+ mov edx,ecx\r
+ movd ebx,mm0\r
+ pxor mm0,mm2\r
+ shl cl,4\r
+ psrlq mm0,4\r
+ movq mm2,mm1\r
+ psrlq mm1,4\r
+ pxor mm0,[8+ecx*1+esi]\r
+ psllq mm2,60\r
+ and edx,240\r
+ pxor mm1,[ebp*8+eax]\r
+ and ebx,15\r
+ pxor mm1,[ecx*1+esi]\r
+ movd ebp,mm0\r
+ pxor mm0,mm2\r
+ psrlq mm0,4\r
+ movq mm2,mm1\r
+ psrlq mm1,4\r
+ pxor mm0,[8+edx*1+esi]\r
+ mov cl,BYTE [11+edi]\r
+ psllq mm2,60\r
+ pxor mm1,[ebx*8+eax]\r
+ and ebp,15\r
+ pxor mm1,[edx*1+esi]\r
+ mov edx,ecx\r
+ movd ebx,mm0\r
+ pxor mm0,mm2\r
+ shl cl,4\r
+ psrlq mm0,4\r
+ movq mm2,mm1\r
+ psrlq mm1,4\r
+ pxor mm0,[8+ecx*1+esi]\r
+ psllq mm2,60\r
+ and edx,240\r
+ pxor mm1,[ebp*8+eax]\r
+ and ebx,15\r
+ pxor mm1,[ecx*1+esi]\r
+ movd ebp,mm0\r
+ pxor mm0,mm2\r
+ psrlq mm0,4\r
+ movq mm2,mm1\r
+ psrlq mm1,4\r
+ pxor mm0,[8+edx*1+esi]\r
+ mov cl,BYTE [10+edi]\r
+ psllq mm2,60\r
+ pxor mm1,[ebx*8+eax]\r
+ and ebp,15\r
+ pxor mm1,[edx*1+esi]\r
+ mov edx,ecx\r
+ movd ebx,mm0\r
+ pxor mm0,mm2\r
+ shl cl,4\r
+ psrlq mm0,4\r
+ movq mm2,mm1\r
+ psrlq mm1,4\r
+ pxor mm0,[8+ecx*1+esi]\r
+ psllq mm2,60\r
+ and edx,240\r
+ pxor mm1,[ebp*8+eax]\r
+ and ebx,15\r
+ pxor mm1,[ecx*1+esi]\r
+ movd ebp,mm0\r
+ pxor mm0,mm2\r
+ psrlq mm0,4\r
+ movq mm2,mm1\r
+ psrlq mm1,4\r
+ pxor mm0,[8+edx*1+esi]\r
+ mov cl,BYTE [9+edi]\r
+ psllq mm2,60\r
+ pxor mm1,[ebx*8+eax]\r
+ and ebp,15\r
+ pxor mm1,[edx*1+esi]\r
+ mov edx,ecx\r
+ movd ebx,mm0\r
+ pxor mm0,mm2\r
+ shl cl,4\r
+ psrlq mm0,4\r
+ movq mm2,mm1\r
+ psrlq mm1,4\r
+ pxor mm0,[8+ecx*1+esi]\r
+ psllq mm2,60\r
+ and edx,240\r
+ pxor mm1,[ebp*8+eax]\r
+ and ebx,15\r
+ pxor mm1,[ecx*1+esi]\r
+ movd ebp,mm0\r
+ pxor mm0,mm2\r
+ psrlq mm0,4\r
+ movq mm2,mm1\r
+ psrlq mm1,4\r
+ pxor mm0,[8+edx*1+esi]\r
+ mov cl,BYTE [8+edi]\r
+ psllq mm2,60\r
+ pxor mm1,[ebx*8+eax]\r
+ and ebp,15\r
+ pxor mm1,[edx*1+esi]\r
+ mov edx,ecx\r
+ movd ebx,mm0\r
+ pxor mm0,mm2\r
+ shl cl,4\r
+ psrlq mm0,4\r
+ movq mm2,mm1\r
+ psrlq mm1,4\r
+ pxor mm0,[8+ecx*1+esi]\r
+ psllq mm2,60\r
+ and edx,240\r
+ pxor mm1,[ebp*8+eax]\r
+ and ebx,15\r
+ pxor mm1,[ecx*1+esi]\r
+ movd ebp,mm0\r
+ pxor mm0,mm2\r
+ psrlq mm0,4\r
+ movq mm2,mm1\r
+ psrlq mm1,4\r
+ pxor mm0,[8+edx*1+esi]\r
+ mov cl,BYTE [7+edi]\r
+ psllq mm2,60\r
+ pxor mm1,[ebx*8+eax]\r
+ and ebp,15\r
+ pxor mm1,[edx*1+esi]\r
+ mov edx,ecx\r
+ movd ebx,mm0\r
+ pxor mm0,mm2\r
+ shl cl,4\r
+ psrlq mm0,4\r
+ movq mm2,mm1\r
+ psrlq mm1,4\r
+ pxor mm0,[8+ecx*1+esi]\r
+ psllq mm2,60\r
+ and edx,240\r
+ pxor mm1,[ebp*8+eax]\r
+ and ebx,15\r
+ pxor mm1,[ecx*1+esi]\r
+ movd ebp,mm0\r
+ pxor mm0,mm2\r
+ psrlq mm0,4\r
+ movq mm2,mm1\r
+ psrlq mm1,4\r
+ pxor mm0,[8+edx*1+esi]\r
+ mov cl,BYTE [6+edi]\r
+ psllq mm2,60\r
+ pxor mm1,[ebx*8+eax]\r
+ and ebp,15\r
+ pxor mm1,[edx*1+esi]\r
+ mov edx,ecx\r
+ movd ebx,mm0\r
+ pxor mm0,mm2\r
+ shl cl,4\r
+ psrlq mm0,4\r
+ movq mm2,mm1\r
+ psrlq mm1,4\r
+ pxor mm0,[8+ecx*1+esi]\r
+ psllq mm2,60\r
+ and edx,240\r
+ pxor mm1,[ebp*8+eax]\r
+ and ebx,15\r
+ pxor mm1,[ecx*1+esi]\r
+ movd ebp,mm0\r
+ pxor mm0,mm2\r
+ psrlq mm0,4\r
+ movq mm2,mm1\r
+ psrlq mm1,4\r
+ pxor mm0,[8+edx*1+esi]\r
+ mov cl,BYTE [5+edi]\r
+ psllq mm2,60\r
+ pxor mm1,[ebx*8+eax]\r
+ and ebp,15\r
+ pxor mm1,[edx*1+esi]\r
+ mov edx,ecx\r
+ movd ebx,mm0\r
+ pxor mm0,mm2\r
+ shl cl,4\r
+ psrlq mm0,4\r
+ movq mm2,mm1\r
+ psrlq mm1,4\r
+ pxor mm0,[8+ecx*1+esi]\r
+ psllq mm2,60\r
+ and edx,240\r
+ pxor mm1,[ebp*8+eax]\r
+ and ebx,15\r
+ pxor mm1,[ecx*1+esi]\r
+ movd ebp,mm0\r
+ pxor mm0,mm2\r
+ psrlq mm0,4\r
+ movq mm2,mm1\r
+ psrlq mm1,4\r
+ pxor mm0,[8+edx*1+esi]\r
+ mov cl,BYTE [4+edi]\r
+ psllq mm2,60\r
+ pxor mm1,[ebx*8+eax]\r
+ and ebp,15\r
+ pxor mm1,[edx*1+esi]\r
+ mov edx,ecx\r
+ movd ebx,mm0\r
+ pxor mm0,mm2\r
+ shl cl,4\r
+ psrlq mm0,4\r
+ movq mm2,mm1\r
+ psrlq mm1,4\r
+ pxor mm0,[8+ecx*1+esi]\r
+ psllq mm2,60\r
+ and edx,240\r
+ pxor mm1,[ebp*8+eax]\r
+ and ebx,15\r
+ pxor mm1,[ecx*1+esi]\r
+ movd ebp,mm0\r
+ pxor mm0,mm2\r
+ psrlq mm0,4\r
+ movq mm2,mm1\r
+ psrlq mm1,4\r
+ pxor mm0,[8+edx*1+esi]\r
+ mov cl,BYTE [3+edi]\r
+ psllq mm2,60\r
+ pxor mm1,[ebx*8+eax]\r
+ and ebp,15\r
+ pxor mm1,[edx*1+esi]\r
+ mov edx,ecx\r
+ movd ebx,mm0\r
+ pxor mm0,mm2\r
+ shl cl,4\r
+ psrlq mm0,4\r
+ movq mm2,mm1\r
+ psrlq mm1,4\r
+ pxor mm0,[8+ecx*1+esi]\r
+ psllq mm2,60\r
+ and edx,240\r
+ pxor mm1,[ebp*8+eax]\r
+ and ebx,15\r
+ pxor mm1,[ecx*1+esi]\r
+ movd ebp,mm0\r
+ pxor mm0,mm2\r
+ psrlq mm0,4\r
+ movq mm2,mm1\r
+ psrlq mm1,4\r
+ pxor mm0,[8+edx*1+esi]\r
+ mov cl,BYTE [2+edi]\r
+ psllq mm2,60\r
+ pxor mm1,[ebx*8+eax]\r
+ and ebp,15\r
+ pxor mm1,[edx*1+esi]\r
+ mov edx,ecx\r
+ movd ebx,mm0\r
+ pxor mm0,mm2\r
+ shl cl,4\r
+ psrlq mm0,4\r
+ movq mm2,mm1\r
+ psrlq mm1,4\r
+ pxor mm0,[8+ecx*1+esi]\r
+ psllq mm2,60\r
+ and edx,240\r
+ pxor mm1,[ebp*8+eax]\r
+ and ebx,15\r
+ pxor mm1,[ecx*1+esi]\r
+ movd ebp,mm0\r
+ pxor mm0,mm2\r
+ psrlq mm0,4\r
+ movq mm2,mm1\r
+ psrlq mm1,4\r
+ pxor mm0,[8+edx*1+esi]\r
+ mov cl,BYTE [1+edi]\r
+ psllq mm2,60\r
+ pxor mm1,[ebx*8+eax]\r
+ and ebp,15\r
+ pxor mm1,[edx*1+esi]\r
+ mov edx,ecx\r
+ movd ebx,mm0\r
+ pxor mm0,mm2\r
+ shl cl,4\r
+ psrlq mm0,4\r
+ movq mm2,mm1\r
+ psrlq mm1,4\r
+ pxor mm0,[8+ecx*1+esi]\r
+ psllq mm2,60\r
+ and edx,240\r
+ pxor mm1,[ebp*8+eax]\r
+ and ebx,15\r
+ pxor mm1,[ecx*1+esi]\r
+ movd ebp,mm0\r
+ pxor mm0,mm2\r
+ psrlq mm0,4\r
+ movq mm2,mm1\r
+ psrlq mm1,4\r
+ pxor mm0,[8+edx*1+esi]\r
+ mov cl,BYTE [edi]\r
+ psllq mm2,60\r
+ pxor mm1,[ebx*8+eax]\r
+ and ebp,15\r
+ pxor mm1,[edx*1+esi]\r
+ mov edx,ecx\r
+ movd ebx,mm0\r
+ pxor mm0,mm2\r
+ shl cl,4\r
+ psrlq mm0,4\r
+ movq mm2,mm1\r
+ psrlq mm1,4\r
+ pxor mm0,[8+ecx*1+esi]\r
+ psllq mm2,60\r
+ and edx,240\r
+ pxor mm1,[ebp*8+eax]\r
+ and ebx,15\r
+ pxor mm1,[ecx*1+esi]\r
+ movd ebp,mm0\r
+ pxor mm0,mm2\r
+ psrlq mm0,4\r
+ movq mm2,mm1\r
+ psrlq mm1,4\r
+ pxor mm0,[8+edx*1+esi]\r
+ psllq mm2,60\r
+ pxor mm1,[ebx*8+eax]\r
+ and ebp,15\r
+ pxor mm1,[edx*1+esi]\r
+ movd ebx,mm0\r
+ pxor mm0,mm2\r
+ mov edi,DWORD [4+ebp*8+eax]\r
+ psrlq mm0,32\r
+ movd edx,mm1\r
+ psrlq mm1,32\r
+ movd ecx,mm0\r
+ movd ebp,mm1\r
+ shl edi,4\r
+ bswap ebx\r
+ bswap edx\r
+ bswap ecx\r
+ xor ebp,edi\r
+ bswap ebp\r
+ ret\r
+global _gcm_gmult_4bit_mmx\r
+align 16\r
+_gcm_gmult_4bit_mmx:\r
+L$_gcm_gmult_4bit_mmx_begin:\r
+ push ebp\r
+ push ebx\r
+ push esi\r
+ push edi\r
+ mov edi,DWORD [20+esp]\r
+ mov esi,DWORD [24+esp]\r
+ call L$005pic_point\r
+L$005pic_point:\r
+ pop eax\r
+ lea eax,[(L$rem_4bit-L$005pic_point)+eax]\r
+ movzx ebx,BYTE [15+edi]\r
+ call __mmx_gmult_4bit_inner\r
+ mov edi,DWORD [20+esp]\r
+ emms\r
+ mov DWORD [12+edi],ebx\r
+ mov DWORD [4+edi],edx\r
+ mov DWORD [8+edi],ecx\r
+ mov DWORD [edi],ebp\r
+ pop edi\r
+ pop esi\r
+ pop ebx\r
+ pop ebp\r
+ ret\r
+global _gcm_ghash_4bit_mmx\r
+align 16\r
+_gcm_ghash_4bit_mmx:\r
+L$_gcm_ghash_4bit_mmx_begin:\r
+ push ebp\r
+ push ebx\r
+ push esi\r
+ push edi\r
+ mov ebp,DWORD [20+esp]\r
+ mov esi,DWORD [24+esp]\r
+ mov edi,DWORD [28+esp]\r
+ mov ecx,DWORD [32+esp]\r
+ call L$006pic_point\r
+L$006pic_point:\r
+ pop eax\r
+ lea eax,[(L$rem_4bit-L$006pic_point)+eax]\r
+ add ecx,edi\r
+ mov DWORD [32+esp],ecx\r
+ sub esp,20\r
+ mov ebx,DWORD [12+ebp]\r
+ mov edx,DWORD [4+ebp]\r
+ mov ecx,DWORD [8+ebp]\r
+ mov ebp,DWORD [ebp]\r
+ jmp NEAR L$007mmx_outer_loop\r
+align 16\r
+L$007mmx_outer_loop:\r
+ xor ebx,DWORD [12+edi]\r
+ xor edx,DWORD [4+edi]\r
+ xor ecx,DWORD [8+edi]\r
+ xor ebp,DWORD [edi]\r
+ mov DWORD [48+esp],edi\r
+ mov DWORD [12+esp],ebx\r
+ mov DWORD [4+esp],edx\r
+ mov DWORD [8+esp],ecx\r
+ mov DWORD [esp],ebp\r
+ mov edi,esp\r
+ shr ebx,24\r
+ call __mmx_gmult_4bit_inner\r
+ mov edi,DWORD [48+esp]\r
+ lea edi,[16+edi]\r
+ cmp edi,DWORD [52+esp]\r
+ jb NEAR L$007mmx_outer_loop\r
+ mov edi,DWORD [40+esp]\r
+ emms\r
+ mov DWORD [12+edi],ebx\r
+ mov DWORD [4+edi],edx\r
+ mov DWORD [8+edi],ecx\r
+ mov DWORD [edi],ebp\r
+ add esp,20\r
+ pop edi\r
+ pop esi\r
+ pop ebx\r
+ pop ebp\r
+ ret\r
+align 64\r
+L$rem_4bit:\r
+dd 0,0,0,29491200,0,58982400,0,38141952\r
+dd 0,117964800,0,113901568,0,76283904,0,88997888\r
+dd 0,235929600,0,265420800,0,227803136,0,206962688\r
+dd 0,152567808,0,148504576,0,177995776,0,190709760\r
+db 71,72,65,83,72,32,102,111,114,32,120,56,54,44,32,67\r
+db 82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112\r
+db 112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62\r
+db 0\r
--- /dev/null
+; WARNING: do not edit!\r
+; Generated from openssl/crypto/sha/asm/sha1-586.pl\r
+;\r
+; Copyright 1998-2020 The OpenSSL Project Authors. All Rights Reserved.\r
+;\r
+; Licensed under the OpenSSL license (the "License"). You may not use\r
+; this file except in compliance with the License. You can obtain a copy\r
+; in the file LICENSE in the source distribution or at\r
+; https://www.openssl.org/source/license.html\r
+\r
+%ifidn __OUTPUT_FORMAT__,obj\r
+section code use32 class=code align=64\r
+%elifidn __OUTPUT_FORMAT__,win32\r
+$@feat.00 equ 1\r
+section .text code align=64\r
+%else\r
+section .text code\r
+%endif\r
+global _sha1_block_data_order\r
+align 16\r
+_sha1_block_data_order:\r
+L$_sha1_block_data_order_begin:\r
+ push ebp\r
+ push ebx\r
+ push esi\r
+ push edi\r
+ mov ebp,DWORD [20+esp]\r
+ mov esi,DWORD [24+esp]\r
+ mov eax,DWORD [28+esp]\r
+ sub esp,76\r
+ shl eax,6\r
+ add eax,esi\r
+ mov DWORD [104+esp],eax\r
+ mov edi,DWORD [16+ebp]\r
+ jmp NEAR L$000loop\r
+align 16\r
+L$000loop:\r
+ mov eax,DWORD [esi]\r
+ mov ebx,DWORD [4+esi]\r
+ mov ecx,DWORD [8+esi]\r
+ mov edx,DWORD [12+esi]\r
+ bswap eax\r
+ bswap ebx\r
+ bswap ecx\r
+ bswap edx\r
+ mov DWORD [esp],eax\r
+ mov DWORD [4+esp],ebx\r
+ mov DWORD [8+esp],ecx\r
+ mov DWORD [12+esp],edx\r
+ mov eax,DWORD [16+esi]\r
+ mov ebx,DWORD [20+esi]\r
+ mov ecx,DWORD [24+esi]\r
+ mov edx,DWORD [28+esi]\r
+ bswap eax\r
+ bswap ebx\r
+ bswap ecx\r
+ bswap edx\r
+ mov DWORD [16+esp],eax\r
+ mov DWORD [20+esp],ebx\r
+ mov DWORD [24+esp],ecx\r
+ mov DWORD [28+esp],edx\r
+ mov eax,DWORD [32+esi]\r
+ mov ebx,DWORD [36+esi]\r
+ mov ecx,DWORD [40+esi]\r
+ mov edx,DWORD [44+esi]\r
+ bswap eax\r
+ bswap ebx\r
+ bswap ecx\r
+ bswap edx\r
+ mov DWORD [32+esp],eax\r
+ mov DWORD [36+esp],ebx\r
+ mov DWORD [40+esp],ecx\r
+ mov DWORD [44+esp],edx\r
+ mov eax,DWORD [48+esi]\r
+ mov ebx,DWORD [52+esi]\r
+ mov ecx,DWORD [56+esi]\r
+ mov edx,DWORD [60+esi]\r
+ bswap eax\r
+ bswap ebx\r
+ bswap ecx\r
+ bswap edx\r
+ mov DWORD [48+esp],eax\r
+ mov DWORD [52+esp],ebx\r
+ mov DWORD [56+esp],ecx\r
+ mov DWORD [60+esp],edx\r
+ mov DWORD [100+esp],esi\r
+ mov eax,DWORD [ebp]\r
+ mov ebx,DWORD [4+ebp]\r
+ mov ecx,DWORD [8+ebp]\r
+ mov edx,DWORD [12+ebp]\r
+ ; 00_15 0\r
+ mov esi,ecx\r
+ mov ebp,eax\r
+ rol ebp,5\r
+ xor esi,edx\r
+ add ebp,edi\r
+ mov edi,DWORD [esp]\r
+ and esi,ebx\r
+ ror ebx,2\r
+ xor esi,edx\r
+ lea ebp,[1518500249+edi*1+ebp]\r
+ add ebp,esi\r
+ ; 00_15 1\r
+ mov edi,ebx\r
+ mov esi,ebp\r
+ rol ebp,5\r
+ xor edi,ecx\r
+ add ebp,edx\r
+ mov edx,DWORD [4+esp]\r
+ and edi,eax\r
+ ror eax,2\r
+ xor edi,ecx\r
+ lea ebp,[1518500249+edx*1+ebp]\r
+ add ebp,edi\r
+ ; 00_15 2\r
+ mov edx,eax\r
+ mov edi,ebp\r
+ rol ebp,5\r
+ xor edx,ebx\r
+ add ebp,ecx\r
+ mov ecx,DWORD [8+esp]\r
+ and edx,esi\r
+ ror esi,2\r
+ xor edx,ebx\r
+ lea ebp,[1518500249+ecx*1+ebp]\r
+ add ebp,edx\r
+ ; 00_15 3\r
+ mov ecx,esi\r
+ mov edx,ebp\r
+ rol ebp,5\r
+ xor ecx,eax\r
+ add ebp,ebx\r
+ mov ebx,DWORD [12+esp]\r
+ and ecx,edi\r
+ ror edi,2\r
+ xor ecx,eax\r
+ lea ebp,[1518500249+ebx*1+ebp]\r
+ add ebp,ecx\r
+ ; 00_15 4\r
+ mov ebx,edi\r
+ mov ecx,ebp\r
+ rol ebp,5\r
+ xor ebx,esi\r
+ add ebp,eax\r
+ mov eax,DWORD [16+esp]\r
+ and ebx,edx\r
+ ror edx,2\r
+ xor ebx,esi\r
+ lea ebp,[1518500249+eax*1+ebp]\r
+ add ebp,ebx\r
+ ; 00_15 5\r
+ mov eax,edx\r
+ mov ebx,ebp\r
+ rol ebp,5\r
+ xor eax,edi\r
+ add ebp,esi\r
+ mov esi,DWORD [20+esp]\r
+ and eax,ecx\r
+ ror ecx,2\r
+ xor eax,edi\r
+ lea ebp,[1518500249+esi*1+ebp]\r
+ add ebp,eax\r
+ ; 00_15 6\r
+ mov esi,ecx\r
+ mov eax,ebp\r
+ rol ebp,5\r
+ xor esi,edx\r
+ add ebp,edi\r
+ mov edi,DWORD [24+esp]\r
+ and esi,ebx\r
+ ror ebx,2\r
+ xor esi,edx\r
+ lea ebp,[1518500249+edi*1+ebp]\r
+ add ebp,esi\r
+ ; 00_15 7\r
+ mov edi,ebx\r
+ mov esi,ebp\r
+ rol ebp,5\r
+ xor edi,ecx\r
+ add ebp,edx\r
+ mov edx,DWORD [28+esp]\r
+ and edi,eax\r
+ ror eax,2\r
+ xor edi,ecx\r
+ lea ebp,[1518500249+edx*1+ebp]\r
+ add ebp,edi\r
+ ; 00_15 8\r
+ mov edx,eax\r
+ mov edi,ebp\r
+ rol ebp,5\r
+ xor edx,ebx\r
+ add ebp,ecx\r
+ mov ecx,DWORD [32+esp]\r
+ and edx,esi\r
+ ror esi,2\r
+ xor edx,ebx\r
+ lea ebp,[1518500249+ecx*1+ebp]\r
+ add ebp,edx\r
+ ; 00_15 9\r
+ mov ecx,esi\r
+ mov edx,ebp\r
+ rol ebp,5\r
+ xor ecx,eax\r
+ add ebp,ebx\r
+ mov ebx,DWORD [36+esp]\r
+ and ecx,edi\r
+ ror edi,2\r
+ xor ecx,eax\r
+ lea ebp,[1518500249+ebx*1+ebp]\r
+ add ebp,ecx\r
+ ; 00_15 10\r
+ mov ebx,edi\r
+ mov ecx,ebp\r
+ rol ebp,5\r
+ xor ebx,esi\r
+ add ebp,eax\r
+ mov eax,DWORD [40+esp]\r
+ and ebx,edx\r
+ ror edx,2\r
+ xor ebx,esi\r
+ lea ebp,[1518500249+eax*1+ebp]\r
+ add ebp,ebx\r
+ ; 00_15 11\r
+ mov eax,edx\r
+ mov ebx,ebp\r
+ rol ebp,5\r
+ xor eax,edi\r
+ add ebp,esi\r
+ mov esi,DWORD [44+esp]\r
+ and eax,ecx\r
+ ror ecx,2\r
+ xor eax,edi\r
+ lea ebp,[1518500249+esi*1+ebp]\r
+ add ebp,eax\r
+ ; 00_15 12\r
+ mov esi,ecx\r
+ mov eax,ebp\r
+ rol ebp,5\r
+ xor esi,edx\r
+ add ebp,edi\r
+ mov edi,DWORD [48+esp]\r
+ and esi,ebx\r
+ ror ebx,2\r
+ xor esi,edx\r
+ lea ebp,[1518500249+edi*1+ebp]\r
+ add ebp,esi\r
+ ; 00_15 13\r
+ mov edi,ebx\r
+ mov esi,ebp\r
+ rol ebp,5\r
+ xor edi,ecx\r
+ add ebp,edx\r
+ mov edx,DWORD [52+esp]\r
+ and edi,eax\r
+ ror eax,2\r
+ xor edi,ecx\r
+ lea ebp,[1518500249+edx*1+ebp]\r
+ add ebp,edi\r
+ ; 00_15 14\r
+ mov edx,eax\r
+ mov edi,ebp\r
+ rol ebp,5\r
+ xor edx,ebx\r
+ add ebp,ecx\r
+ mov ecx,DWORD [56+esp]\r
+ and edx,esi\r
+ ror esi,2\r
+ xor edx,ebx\r
+ lea ebp,[1518500249+ecx*1+ebp]\r
+ add ebp,edx\r
+ ; 00_15 15\r
+ mov ecx,esi\r
+ mov edx,ebp\r
+ rol ebp,5\r
+ xor ecx,eax\r
+ add ebp,ebx\r
+ mov ebx,DWORD [60+esp]\r
+ and ecx,edi\r
+ ror edi,2\r
+ xor ecx,eax\r
+ lea ebp,[1518500249+ebx*1+ebp]\r
+ mov ebx,DWORD [esp]\r
+ add ecx,ebp\r
+ ; 16_19 16\r
+ mov ebp,edi\r
+ xor ebx,DWORD [8+esp]\r
+ xor ebp,esi\r
+ xor ebx,DWORD [32+esp]\r
+ and ebp,edx\r
+ xor ebx,DWORD [52+esp]\r
+ rol ebx,1\r
+ xor ebp,esi\r
+ add eax,ebp\r
+ mov ebp,ecx\r
+ ror edx,2\r
+ mov DWORD [esp],ebx\r
+ rol ebp,5\r
+ lea ebx,[1518500249+eax*1+ebx]\r
+ mov eax,DWORD [4+esp]\r
+ add ebx,ebp\r
+ ; 16_19 17\r
+ mov ebp,edx\r
+ xor eax,DWORD [12+esp]\r
+ xor ebp,edi\r
+ xor eax,DWORD [36+esp]\r
+ and ebp,ecx\r
+ xor eax,DWORD [56+esp]\r
+ rol eax,1\r
+ xor ebp,edi\r
+ add esi,ebp\r
+ mov ebp,ebx\r
+ ror ecx,2\r
+ mov DWORD [4+esp],eax\r
+ rol ebp,5\r
+ lea eax,[1518500249+esi*1+eax]\r
+ mov esi,DWORD [8+esp]\r
+ add eax,ebp\r
+ ; 16_19 18\r
+ mov ebp,ecx\r
+ xor esi,DWORD [16+esp]\r
+ xor ebp,edx\r
+ xor esi,DWORD [40+esp]\r
+ and ebp,ebx\r
+ xor esi,DWORD [60+esp]\r
+ rol esi,1\r
+ xor ebp,edx\r
+ add edi,ebp\r
+ mov ebp,eax\r
+ ror ebx,2\r
+ mov DWORD [8+esp],esi\r
+ rol ebp,5\r
+ lea esi,[1518500249+edi*1+esi]\r
+ mov edi,DWORD [12+esp]\r
+ add esi,ebp\r
+ ; 16_19 19\r
+ mov ebp,ebx\r
+ xor edi,DWORD [20+esp]\r
+ xor ebp,ecx\r
+ xor edi,DWORD [44+esp]\r
+ and ebp,eax\r
+ xor edi,DWORD [esp]\r
+ rol edi,1\r
+ xor ebp,ecx\r
+ add edx,ebp\r
+ mov ebp,esi\r
+ ror eax,2\r
+ mov DWORD [12+esp],edi\r
+ rol ebp,5\r
+ lea edi,[1518500249+edx*1+edi]\r
+ mov edx,DWORD [16+esp]\r
+ add edi,ebp\r
+ ; 20_39 20\r
+ mov ebp,esi\r
+ xor edx,DWORD [24+esp]\r
+ xor ebp,eax\r
+ xor edx,DWORD [48+esp]\r
+ xor ebp,ebx\r
+ xor edx,DWORD [4+esp]\r
+ rol edx,1\r
+ add ecx,ebp\r
+ ror esi,2\r
+ mov ebp,edi\r
+ rol ebp,5\r
+ mov DWORD [16+esp],edx\r
+ lea edx,[1859775393+ecx*1+edx]\r
+ mov ecx,DWORD [20+esp]\r
+ add edx,ebp\r
+ ; 20_39 21\r
+ mov ebp,edi\r
+ xor ecx,DWORD [28+esp]\r
+ xor ebp,esi\r
+ xor ecx,DWORD [52+esp]\r
+ xor ebp,eax\r
+ xor ecx,DWORD [8+esp]\r
+ rol ecx,1\r
+ add ebx,ebp\r
+ ror edi,2\r
+ mov ebp,edx\r
+ rol ebp,5\r
+ mov DWORD [20+esp],ecx\r
+ lea ecx,[1859775393+ebx*1+ecx]\r
+ mov ebx,DWORD [24+esp]\r
+ add ecx,ebp\r
+ ; 20_39 22\r
+ mov ebp,edx\r
+ xor ebx,DWORD [32+esp]\r
+ xor ebp,edi\r
+ xor ebx,DWORD [56+esp]\r
+ xor ebp,esi\r
+ xor ebx,DWORD [12+esp]\r
+ rol ebx,1\r
+ add eax,ebp\r
+ ror edx,2\r
+ mov ebp,ecx\r
+ rol ebp,5\r
+ mov DWORD [24+esp],ebx\r
+ lea ebx,[1859775393+eax*1+ebx]\r
+ mov eax,DWORD [28+esp]\r
+ add ebx,ebp\r
+ ; 20_39 23\r
+ mov ebp,ecx\r
+ xor eax,DWORD [36+esp]\r
+ xor ebp,edx\r
+ xor eax,DWORD [60+esp]\r
+ xor ebp,edi\r
+ xor eax,DWORD [16+esp]\r
+ rol eax,1\r
+ add esi,ebp\r
+ ror ecx,2\r
+ mov ebp,ebx\r
+ rol ebp,5\r
+ mov DWORD [28+esp],eax\r
+ lea eax,[1859775393+esi*1+eax]\r
+ mov esi,DWORD [32+esp]\r
+ add eax,ebp\r
+ ; 20_39 24\r
+ mov ebp,ebx\r
+ xor esi,DWORD [40+esp]\r
+ xor ebp,ecx\r
+ xor esi,DWORD [esp]\r
+ xor ebp,edx\r
+ xor esi,DWORD [20+esp]\r
+ rol esi,1\r
+ add edi,ebp\r
+ ror ebx,2\r
+ mov ebp,eax\r
+ rol ebp,5\r
+ mov DWORD [32+esp],esi\r
+ lea esi,[1859775393+edi*1+esi]\r
+ mov edi,DWORD [36+esp]\r
+ add esi,ebp\r
+ ; 20_39 25\r
+ mov ebp,eax\r
+ xor edi,DWORD [44+esp]\r
+ xor ebp,ebx\r
+ xor edi,DWORD [4+esp]\r
+ xor ebp,ecx\r
+ xor edi,DWORD [24+esp]\r
+ rol edi,1\r
+ add edx,ebp\r
+ ror eax,2\r
+ mov ebp,esi\r
+ rol ebp,5\r
+ mov DWORD [36+esp],edi\r
+ lea edi,[1859775393+edx*1+edi]\r
+ mov edx,DWORD [40+esp]\r
+ add edi,ebp\r
+ ; 20_39 26\r
+ mov ebp,esi\r
+ xor edx,DWORD [48+esp]\r
+ xor ebp,eax\r
+ xor edx,DWORD [8+esp]\r
+ xor ebp,ebx\r
+ xor edx,DWORD [28+esp]\r
+ rol edx,1\r
+ add ecx,ebp\r
+ ror esi,2\r
+ mov ebp,edi\r
+ rol ebp,5\r
+ mov DWORD [40+esp],edx\r
+ lea edx,[1859775393+ecx*1+edx]\r
+ mov ecx,DWORD [44+esp]\r
+ add edx,ebp\r
+ ; 20_39 27\r
+ mov ebp,edi\r
+ xor ecx,DWORD [52+esp]\r
+ xor ebp,esi\r
+ xor ecx,DWORD [12+esp]\r
+ xor ebp,eax\r
+ xor ecx,DWORD [32+esp]\r
+ rol ecx,1\r
+ add ebx,ebp\r
+ ror edi,2\r
+ mov ebp,edx\r
+ rol ebp,5\r
+ mov DWORD [44+esp],ecx\r
+ lea ecx,[1859775393+ebx*1+ecx]\r
+ mov ebx,DWORD [48+esp]\r
+ add ecx,ebp\r
+ ; 20_39 28\r
+ mov ebp,edx\r
+ xor ebx,DWORD [56+esp]\r
+ xor ebp,edi\r
+ xor ebx,DWORD [16+esp]\r
+ xor ebp,esi\r
+ xor ebx,DWORD [36+esp]\r
+ rol ebx,1\r
+ add eax,ebp\r
+ ror edx,2\r
+ mov ebp,ecx\r
+ rol ebp,5\r
+ mov DWORD [48+esp],ebx\r
+ lea ebx,[1859775393+eax*1+ebx]\r
+ mov eax,DWORD [52+esp]\r
+ add ebx,ebp\r
+ ; 20_39 29\r
+ mov ebp,ecx\r
+ xor eax,DWORD [60+esp]\r
+ xor ebp,edx\r
+ xor eax,DWORD [20+esp]\r
+ xor ebp,edi\r
+ xor eax,DWORD [40+esp]\r
+ rol eax,1\r
+ add esi,ebp\r
+ ror ecx,2\r
+ mov ebp,ebx\r
+ rol ebp,5\r
+ mov DWORD [52+esp],eax\r
+ lea eax,[1859775393+esi*1+eax]\r
+ mov esi,DWORD [56+esp]\r
+ add eax,ebp\r
+ ; 20_39 30\r
+ mov ebp,ebx\r
+ xor esi,DWORD [esp]\r
+ xor ebp,ecx\r
+ xor esi,DWORD [24+esp]\r
+ xor ebp,edx\r
+ xor esi,DWORD [44+esp]\r
+ rol esi,1\r
+ add edi,ebp\r
+ ror ebx,2\r
+ mov ebp,eax\r
+ rol ebp,5\r
+ mov DWORD [56+esp],esi\r
+ lea esi,[1859775393+edi*1+esi]\r
+ mov edi,DWORD [60+esp]\r
+ add esi,ebp\r
+ ; 20_39 31\r
+ mov ebp,eax\r
+ xor edi,DWORD [4+esp]\r
+ xor ebp,ebx\r
+ xor edi,DWORD [28+esp]\r
+ xor ebp,ecx\r
+ xor edi,DWORD [48+esp]\r
+ rol edi,1\r
+ add edx,ebp\r
+ ror eax,2\r
+ mov ebp,esi\r
+ rol ebp,5\r
+ mov DWORD [60+esp],edi\r
+ lea edi,[1859775393+edx*1+edi]\r
+ mov edx,DWORD [esp]\r
+ add edi,ebp\r
+ ; 20_39 32\r
+ mov ebp,esi\r
+ xor edx,DWORD [8+esp]\r
+ xor ebp,eax\r
+ xor edx,DWORD [32+esp]\r
+ xor ebp,ebx\r
+ xor edx,DWORD [52+esp]\r
+ rol edx,1\r
+ add ecx,ebp\r
+ ror esi,2\r
+ mov ebp,edi\r
+ rol ebp,5\r
+ mov DWORD [esp],edx\r
+ lea edx,[1859775393+ecx*1+edx]\r
+ mov ecx,DWORD [4+esp]\r
+ add edx,ebp\r
+ ; 20_39 33\r
+ mov ebp,edi\r
+ xor ecx,DWORD [12+esp]\r
+ xor ebp,esi\r
+ xor ecx,DWORD [36+esp]\r
+ xor ebp,eax\r
+ xor ecx,DWORD [56+esp]\r
+ rol ecx,1\r
+ add ebx,ebp\r
+ ror edi,2\r
+ mov ebp,edx\r
+ rol ebp,5\r
+ mov DWORD [4+esp],ecx\r
+ lea ecx,[1859775393+ebx*1+ecx]\r
+ mov ebx,DWORD [8+esp]\r
+ add ecx,ebp\r
+ ; 20_39 34\r
+ mov ebp,edx\r
+ xor ebx,DWORD [16+esp]\r
+ xor ebp,edi\r
+ xor ebx,DWORD [40+esp]\r
+ xor ebp,esi\r
+ xor ebx,DWORD [60+esp]\r
+ rol ebx,1\r
+ add eax,ebp\r
+ ror edx,2\r
+ mov ebp,ecx\r
+ rol ebp,5\r
+ mov DWORD [8+esp],ebx\r
+ lea ebx,[1859775393+eax*1+ebx]\r
+ mov eax,DWORD [12+esp]\r
+ add ebx,ebp\r
+ ; 20_39 35\r
+ mov ebp,ecx\r
+ xor eax,DWORD [20+esp]\r
+ xor ebp,edx\r
+ xor eax,DWORD [44+esp]\r
+ xor ebp,edi\r
+ xor eax,DWORD [esp]\r
+ rol eax,1\r
+ add esi,ebp\r
+ ror ecx,2\r
+ mov ebp,ebx\r
+ rol ebp,5\r
+ mov DWORD [12+esp],eax\r
+ lea eax,[1859775393+esi*1+eax]\r
+ mov esi,DWORD [16+esp]\r
+ add eax,ebp\r
+ ; 20_39 36\r
+ mov ebp,ebx\r
+ xor esi,DWORD [24+esp]\r
+ xor ebp,ecx\r
+ xor esi,DWORD [48+esp]\r
+ xor ebp,edx\r
+ xor esi,DWORD [4+esp]\r
+ rol esi,1\r
+ add edi,ebp\r
+ ror ebx,2\r
+ mov ebp,eax\r
+ rol ebp,5\r
+ mov DWORD [16+esp],esi\r
+ lea esi,[1859775393+edi*1+esi]\r
+ mov edi,DWORD [20+esp]\r
+ add esi,ebp\r
+ ; 20_39 37\r
+ mov ebp,eax\r
+ xor edi,DWORD [28+esp]\r
+ xor ebp,ebx\r
+ xor edi,DWORD [52+esp]\r
+ xor ebp,ecx\r
+ xor edi,DWORD [8+esp]\r
+ rol edi,1\r
+ add edx,ebp\r
+ ror eax,2\r
+ mov ebp,esi\r
+ rol ebp,5\r
+ mov DWORD [20+esp],edi\r
+ lea edi,[1859775393+edx*1+edi]\r
+ mov edx,DWORD [24+esp]\r
+ add edi,ebp\r
+ ; 20_39 38\r
+ mov ebp,esi\r
+ xor edx,DWORD [32+esp]\r
+ xor ebp,eax\r
+ xor edx,DWORD [56+esp]\r
+ xor ebp,ebx\r
+ xor edx,DWORD [12+esp]\r
+ rol edx,1\r
+ add ecx,ebp\r
+ ror esi,2\r
+ mov ebp,edi\r
+ rol ebp,5\r
+ mov DWORD [24+esp],edx\r
+ lea edx,[1859775393+ecx*1+edx]\r
+ mov ecx,DWORD [28+esp]\r
+ add edx,ebp\r
+ ; 20_39 39\r
+ mov ebp,edi\r
+ xor ecx,DWORD [36+esp]\r
+ xor ebp,esi\r
+ xor ecx,DWORD [60+esp]\r
+ xor ebp,eax\r
+ xor ecx,DWORD [16+esp]\r
+ rol ecx,1\r
+ add ebx,ebp\r
+ ror edi,2\r
+ mov ebp,edx\r
+ rol ebp,5\r
+ mov DWORD [28+esp],ecx\r
+ lea ecx,[1859775393+ebx*1+ecx]\r
+ mov ebx,DWORD [32+esp]\r
+ add ecx,ebp\r
+ ; 40_59 40\r
+ mov ebp,edi\r
+ xor ebx,DWORD [40+esp]\r
+ xor ebp,esi\r
+ xor ebx,DWORD [esp]\r
+ and ebp,edx\r
+ xor ebx,DWORD [20+esp]\r
+ rol ebx,1\r
+ add ebp,eax\r
+ ror edx,2\r
+ mov eax,ecx\r
+ rol eax,5\r
+ mov DWORD [32+esp],ebx\r
+ lea ebx,[2400959708+ebp*1+ebx]\r
+ mov ebp,edi\r
+ add ebx,eax\r
+ and ebp,esi\r
+ mov eax,DWORD [36+esp]\r
+ add ebx,ebp\r
+ ; 40_59 41\r
+ mov ebp,edx\r
+ xor eax,DWORD [44+esp]\r
+ xor ebp,edi\r
+ xor eax,DWORD [4+esp]\r
+ and ebp,ecx\r
+ xor eax,DWORD [24+esp]\r
+ rol eax,1\r
+ add ebp,esi\r
+ ror ecx,2\r
+ mov esi,ebx\r
+ rol esi,5\r
+ mov DWORD [36+esp],eax\r
+ lea eax,[2400959708+ebp*1+eax]\r
+ mov ebp,edx\r
+ add eax,esi\r
+ and ebp,edi\r
+ mov esi,DWORD [40+esp]\r
+ add eax,ebp\r
+ ; 40_59 42\r
+ mov ebp,ecx\r
+ xor esi,DWORD [48+esp]\r
+ xor ebp,edx\r
+ xor esi,DWORD [8+esp]\r
+ and ebp,ebx\r
+ xor esi,DWORD [28+esp]\r
+ rol esi,1\r
+ add ebp,edi\r
+ ror ebx,2\r
+ mov edi,eax\r
+ rol edi,5\r
+ mov DWORD [40+esp],esi\r
+ lea esi,[2400959708+ebp*1+esi]\r
+ mov ebp,ecx\r
+ add esi,edi\r
+ and ebp,edx\r
+ mov edi,DWORD [44+esp]\r
+ add esi,ebp\r
+ ; 40_59 43\r
+ mov ebp,ebx\r
+ xor edi,DWORD [52+esp]\r
+ xor ebp,ecx\r
+ xor edi,DWORD [12+esp]\r
+ and ebp,eax\r
+ xor edi,DWORD [32+esp]\r
+ rol edi,1\r
+ add ebp,edx\r
+ ror eax,2\r
+ mov edx,esi\r
+ rol edx,5\r
+ mov DWORD [44+esp],edi\r
+ lea edi,[2400959708+ebp*1+edi]\r
+ mov ebp,ebx\r
+ add edi,edx\r
+ and ebp,ecx\r
+ mov edx,DWORD [48+esp]\r
+ add edi,ebp\r
+ ; 40_59 44\r
+ mov ebp,eax\r
+ xor edx,DWORD [56+esp]\r
+ xor ebp,ebx\r
+ xor edx,DWORD [16+esp]\r
+ and ebp,esi\r
+ xor edx,DWORD [36+esp]\r
+ rol edx,1\r
+ add ebp,ecx\r
+ ror esi,2\r
+ mov ecx,edi\r
+ rol ecx,5\r
+ mov DWORD [48+esp],edx\r
+ lea edx,[2400959708+ebp*1+edx]\r
+ mov ebp,eax\r
+ add edx,ecx\r
+ and ebp,ebx\r
+ mov ecx,DWORD [52+esp]\r
+ add edx,ebp\r
+ ; 40_59 45\r
+ mov ebp,esi\r
+ xor ecx,DWORD [60+esp]\r
+ xor ebp,eax\r
+ xor ecx,DWORD [20+esp]\r
+ and ebp,edi\r
+ xor ecx,DWORD [40+esp]\r
+ rol ecx,1\r
+ add ebp,ebx\r
+ ror edi,2\r
+ mov ebx,edx\r
+ rol ebx,5\r
+ mov DWORD [52+esp],ecx\r
+ lea ecx,[2400959708+ebp*1+ecx]\r
+ mov ebp,esi\r
+ add ecx,ebx\r
+ and ebp,eax\r
+ mov ebx,DWORD [56+esp]\r
+ add ecx,ebp\r
+ ; 40_59 46\r
+ mov ebp,edi\r
+ xor ebx,DWORD [esp]\r
+ xor ebp,esi\r
+ xor ebx,DWORD [24+esp]\r
+ and ebp,edx\r
+ xor ebx,DWORD [44+esp]\r
+ rol ebx,1\r
+ add ebp,eax\r
+ ror edx,2\r
+ mov eax,ecx\r
+ rol eax,5\r
+ mov DWORD [56+esp],ebx\r
+ lea ebx,[2400959708+ebp*1+ebx]\r
+ mov ebp,edi\r
+ add ebx,eax\r
+ and ebp,esi\r
+ mov eax,DWORD [60+esp]\r
+ add ebx,ebp\r
+ ; 40_59 47\r
+ mov ebp,edx\r
+ xor eax,DWORD [4+esp]\r
+ xor ebp,edi\r
+ xor eax,DWORD [28+esp]\r
+ and ebp,ecx\r
+ xor eax,DWORD [48+esp]\r
+ rol eax,1\r
+ add ebp,esi\r
+ ror ecx,2\r
+ mov esi,ebx\r
+ rol esi,5\r
+ mov DWORD [60+esp],eax\r
+ lea eax,[2400959708+ebp*1+eax]\r
+ mov ebp,edx\r
+ add eax,esi\r
+ and ebp,edi\r
+ mov esi,DWORD [esp]\r
+ add eax,ebp\r
+ ; 40_59 48\r
+ mov ebp,ecx\r
+ xor esi,DWORD [8+esp]\r
+ xor ebp,edx\r
+ xor esi,DWORD [32+esp]\r
+ and ebp,ebx\r
+ xor esi,DWORD [52+esp]\r
+ rol esi,1\r
+ add ebp,edi\r
+ ror ebx,2\r
+ mov edi,eax\r
+ rol edi,5\r
+ mov DWORD [esp],esi\r
+ lea esi,[2400959708+ebp*1+esi]\r
+ mov ebp,ecx\r
+ add esi,edi\r
+ and ebp,edx\r
+ mov edi,DWORD [4+esp]\r
+ add esi,ebp\r
+ ; 40_59 49\r
+ mov ebp,ebx\r
+ xor edi,DWORD [12+esp]\r
+ xor ebp,ecx\r
+ xor edi,DWORD [36+esp]\r
+ and ebp,eax\r
+ xor edi,DWORD [56+esp]\r
+ rol edi,1\r
+ add ebp,edx\r
+ ror eax,2\r
+ mov edx,esi\r
+ rol edx,5\r
+ mov DWORD [4+esp],edi\r
+ lea edi,[2400959708+ebp*1+edi]\r
+ mov ebp,ebx\r
+ add edi,edx\r
+ and ebp,ecx\r
+ mov edx,DWORD [8+esp]\r
+ add edi,ebp\r
+ ; 40_59 50\r
+ mov ebp,eax\r
+ xor edx,DWORD [16+esp]\r
+ xor ebp,ebx\r
+ xor edx,DWORD [40+esp]\r
+ and ebp,esi\r
+ xor edx,DWORD [60+esp]\r
+ rol edx,1\r
+ add ebp,ecx\r
+ ror esi,2\r
+ mov ecx,edi\r
+ rol ecx,5\r
+ mov DWORD [8+esp],edx\r
+ lea edx,[2400959708+ebp*1+edx]\r
+ mov ebp,eax\r
+ add edx,ecx\r
+ and ebp,ebx\r
+ mov ecx,DWORD [12+esp]\r
+ add edx,ebp\r
+ ; 40_59 51\r
+ mov ebp,esi\r
+ xor ecx,DWORD [20+esp]\r
+ xor ebp,eax\r
+ xor ecx,DWORD [44+esp]\r
+ and ebp,edi\r
+ xor ecx,DWORD [esp]\r
+ rol ecx,1\r
+ add ebp,ebx\r
+ ror edi,2\r
+ mov ebx,edx\r
+ rol ebx,5\r
+ mov DWORD [12+esp],ecx\r
+ lea ecx,[2400959708+ebp*1+ecx]\r
+ mov ebp,esi\r
+ add ecx,ebx\r
+ and ebp,eax\r
+ mov ebx,DWORD [16+esp]\r
+ add ecx,ebp\r
+ ; 40_59 52\r
+ mov ebp,edi\r
+ xor ebx,DWORD [24+esp]\r
+ xor ebp,esi\r
+ xor ebx,DWORD [48+esp]\r
+ and ebp,edx\r
+ xor ebx,DWORD [4+esp]\r
+ rol ebx,1\r
+ add ebp,eax\r
+ ror edx,2\r
+ mov eax,ecx\r
+ rol eax,5\r
+ mov DWORD [16+esp],ebx\r
+ lea ebx,[2400959708+ebp*1+ebx]\r
+ mov ebp,edi\r
+ add ebx,eax\r
+ and ebp,esi\r
+ mov eax,DWORD [20+esp]\r
+ add ebx,ebp\r
+ ; 40_59 53\r
+ mov ebp,edx\r
+ xor eax,DWORD [28+esp]\r
+ xor ebp,edi\r
+ xor eax,DWORD [52+esp]\r
+ and ebp,ecx\r
+ xor eax,DWORD [8+esp]\r
+ rol eax,1\r
+ add ebp,esi\r
+ ror ecx,2\r
+ mov esi,ebx\r
+ rol esi,5\r
+ mov DWORD [20+esp],eax\r
+ lea eax,[2400959708+ebp*1+eax]\r
+ mov ebp,edx\r
+ add eax,esi\r
+ and ebp,edi\r
+ mov esi,DWORD [24+esp]\r
+ add eax,ebp\r
+ ; 40_59 54\r
+ mov ebp,ecx\r
+ xor esi,DWORD [32+esp]\r
+ xor ebp,edx\r
+ xor esi,DWORD [56+esp]\r
+ and ebp,ebx\r
+ xor esi,DWORD [12+esp]\r
+ rol esi,1\r
+ add ebp,edi\r
+ ror ebx,2\r
+ mov edi,eax\r
+ rol edi,5\r
+ mov DWORD [24+esp],esi\r
+ lea esi,[2400959708+ebp*1+esi]\r
+ mov ebp,ecx\r
+ add esi,edi\r
+ and ebp,edx\r
+ mov edi,DWORD [28+esp]\r
+ add esi,ebp\r
+ ; 40_59 55\r
+ mov ebp,ebx\r
+ xor edi,DWORD [36+esp]\r
+ xor ebp,ecx\r
+ xor edi,DWORD [60+esp]\r
+ and ebp,eax\r
+ xor edi,DWORD [16+esp]\r
+ rol edi,1\r
+ add ebp,edx\r
+ ror eax,2\r
+ mov edx,esi\r
+ rol edx,5\r
+ mov DWORD [28+esp],edi\r
+ lea edi,[2400959708+ebp*1+edi]\r
+ mov ebp,ebx\r
+ add edi,edx\r
+ and ebp,ecx\r
+ mov edx,DWORD [32+esp]\r
+ add edi,ebp\r
+ ; 40_59 56\r
+ mov ebp,eax\r
+ xor edx,DWORD [40+esp]\r
+ xor ebp,ebx\r
+ xor edx,DWORD [esp]\r
+ and ebp,esi\r
+ xor edx,DWORD [20+esp]\r
+ rol edx,1\r
+ add ebp,ecx\r
+ ror esi,2\r
+ mov ecx,edi\r
+ rol ecx,5\r
+ mov DWORD [32+esp],edx\r
+ lea edx,[2400959708+ebp*1+edx]\r
+ mov ebp,eax\r
+ add edx,ecx\r
+ and ebp,ebx\r
+ mov ecx,DWORD [36+esp]\r
+ add edx,ebp\r
+ ; 40_59 57\r
+ mov ebp,esi\r
+ xor ecx,DWORD [44+esp]\r
+ xor ebp,eax\r
+ xor ecx,DWORD [4+esp]\r
+ and ebp,edi\r
+ xor ecx,DWORD [24+esp]\r
+ rol ecx,1\r
+ add ebp,ebx\r
+ ror edi,2\r
+ mov ebx,edx\r
+ rol ebx,5\r
+ mov DWORD [36+esp],ecx\r
+ lea ecx,[2400959708+ebp*1+ecx]\r
+ mov ebp,esi\r
+ add ecx,ebx\r
+ and ebp,eax\r
+ mov ebx,DWORD [40+esp]\r
+ add ecx,ebp\r
+ ; 40_59 58\r
+ mov ebp,edi\r
+ xor ebx,DWORD [48+esp]\r
+ xor ebp,esi\r
+ xor ebx,DWORD [8+esp]\r
+ and ebp,edx\r
+ xor ebx,DWORD [28+esp]\r
+ rol ebx,1\r
+ add ebp,eax\r
+ ror edx,2\r
+ mov eax,ecx\r
+ rol eax,5\r
+ mov DWORD [40+esp],ebx\r
+ lea ebx,[2400959708+ebp*1+ebx]\r
+ mov ebp,edi\r
+ add ebx,eax\r
+ and ebp,esi\r
+ mov eax,DWORD [44+esp]\r
+ add ebx,ebp\r
+ ; 40_59 59\r
+ mov ebp,edx\r
+ xor eax,DWORD [52+esp]\r
+ xor ebp,edi\r
+ xor eax,DWORD [12+esp]\r
+ and ebp,ecx\r
+ xor eax,DWORD [32+esp]\r
+ rol eax,1\r
+ add ebp,esi\r
+ ror ecx,2\r
+ mov esi,ebx\r
+ rol esi,5\r
+ mov DWORD [44+esp],eax\r
+ lea eax,[2400959708+ebp*1+eax]\r
+ mov ebp,edx\r
+ add eax,esi\r
+ and ebp,edi\r
+ mov esi,DWORD [48+esp]\r
+ add eax,ebp\r
+ ; 20_39 60\r
+ mov ebp,ebx\r
+ xor esi,DWORD [56+esp]\r
+ xor ebp,ecx\r
+ xor esi,DWORD [16+esp]\r
+ xor ebp,edx\r
+ xor esi,DWORD [36+esp]\r
+ rol esi,1\r
+ add edi,ebp\r
+ ror ebx,2\r
+ mov ebp,eax\r
+ rol ebp,5\r
+ mov DWORD [48+esp],esi\r
+ lea esi,[3395469782+edi*1+esi]\r
+ mov edi,DWORD [52+esp]\r
+ add esi,ebp\r
+ ; 20_39 61\r
+ mov ebp,eax\r
+ xor edi,DWORD [60+esp]\r
+ xor ebp,ebx\r
+ xor edi,DWORD [20+esp]\r
+ xor ebp,ecx\r
+ xor edi,DWORD [40+esp]\r
+ rol edi,1\r
+ add edx,ebp\r
+ ror eax,2\r
+ mov ebp,esi\r
+ rol ebp,5\r
+ mov DWORD [52+esp],edi\r
+ lea edi,[3395469782+edx*1+edi]\r
+ mov edx,DWORD [56+esp]\r
+ add edi,ebp\r
+ ; 20_39 62\r
+ mov ebp,esi\r
+ xor edx,DWORD [esp]\r
+ xor ebp,eax\r
+ xor edx,DWORD [24+esp]\r
+ xor ebp,ebx\r
+ xor edx,DWORD [44+esp]\r
+ rol edx,1\r
+ add ecx,ebp\r
+ ror esi,2\r
+ mov ebp,edi\r
+ rol ebp,5\r
+ mov DWORD [56+esp],edx\r
+ lea edx,[3395469782+ecx*1+edx]\r
+ mov ecx,DWORD [60+esp]\r
+ add edx,ebp\r
+ ; 20_39 63\r
+ mov ebp,edi\r
+ xor ecx,DWORD [4+esp]\r
+ xor ebp,esi\r
+ xor ecx,DWORD [28+esp]\r
+ xor ebp,eax\r
+ xor ecx,DWORD [48+esp]\r
+ rol ecx,1\r
+ add ebx,ebp\r
+ ror edi,2\r
+ mov ebp,edx\r
+ rol ebp,5\r
+ mov DWORD [60+esp],ecx\r
+ lea ecx,[3395469782+ebx*1+ecx]\r
+ mov ebx,DWORD [esp]\r
+ add ecx,ebp\r
+ ; 20_39 64\r
+ mov ebp,edx\r
+ xor ebx,DWORD [8+esp]\r
+ xor ebp,edi\r
+ xor ebx,DWORD [32+esp]\r
+ xor ebp,esi\r
+ xor ebx,DWORD [52+esp]\r
+ rol ebx,1\r
+ add eax,ebp\r
+ ror edx,2\r
+ mov ebp,ecx\r
+ rol ebp,5\r
+ mov DWORD [esp],ebx\r
+ lea ebx,[3395469782+eax*1+ebx]\r
+ mov eax,DWORD [4+esp]\r
+ add ebx,ebp\r
+ ; 20_39 65\r
+ mov ebp,ecx\r
+ xor eax,DWORD [12+esp]\r
+ xor ebp,edx\r
+ xor eax,DWORD [36+esp]\r
+ xor ebp,edi\r
+ xor eax,DWORD [56+esp]\r
+ rol eax,1\r
+ add esi,ebp\r
+ ror ecx,2\r
+ mov ebp,ebx\r
+ rol ebp,5\r
+ mov DWORD [4+esp],eax\r
+ lea eax,[3395469782+esi*1+eax]\r
+ mov esi,DWORD [8+esp]\r
+ add eax,ebp\r
+ ; 20_39 66\r
+ mov ebp,ebx\r
+ xor esi,DWORD [16+esp]\r
+ xor ebp,ecx\r
+ xor esi,DWORD [40+esp]\r
+ xor ebp,edx\r
+ xor esi,DWORD [60+esp]\r
+ rol esi,1\r
+ add edi,ebp\r
+ ror ebx,2\r
+ mov ebp,eax\r
+ rol ebp,5\r
+ mov DWORD [8+esp],esi\r
+ lea esi,[3395469782+edi*1+esi]\r
+ mov edi,DWORD [12+esp]\r
+ add esi,ebp\r
+ ; 20_39 67\r
+ mov ebp,eax\r
+ xor edi,DWORD [20+esp]\r
+ xor ebp,ebx\r
+ xor edi,DWORD [44+esp]\r
+ xor ebp,ecx\r
+ xor edi,DWORD [esp]\r
+ rol edi,1\r
+ add edx,ebp\r
+ ror eax,2\r
+ mov ebp,esi\r
+ rol ebp,5\r
+ mov DWORD [12+esp],edi\r
+ lea edi,[3395469782+edx*1+edi]\r
+ mov edx,DWORD [16+esp]\r
+ add edi,ebp\r
+ ; 20_39 68\r
+ mov ebp,esi\r
+ xor edx,DWORD [24+esp]\r
+ xor ebp,eax\r
+ xor edx,DWORD [48+esp]\r
+ xor ebp,ebx\r
+ xor edx,DWORD [4+esp]\r
+ rol edx,1\r
+ add ecx,ebp\r
+ ror esi,2\r
+ mov ebp,edi\r
+ rol ebp,5\r
+ mov DWORD [16+esp],edx\r
+ lea edx,[3395469782+ecx*1+edx]\r
+ mov ecx,DWORD [20+esp]\r
+ add edx,ebp\r
+ ; 20_39 69\r
+ mov ebp,edi\r
+ xor ecx,DWORD [28+esp]\r
+ xor ebp,esi\r
+ xor ecx,DWORD [52+esp]\r
+ xor ebp,eax\r
+ xor ecx,DWORD [8+esp]\r
+ rol ecx,1\r
+ add ebx,ebp\r
+ ror edi,2\r
+ mov ebp,edx\r
+ rol ebp,5\r
+ mov DWORD [20+esp],ecx\r
+ lea ecx,[3395469782+ebx*1+ecx]\r
+ mov ebx,DWORD [24+esp]\r
+ add ecx,ebp\r
+ ; 20_39 70\r
+ mov ebp,edx\r
+ xor ebx,DWORD [32+esp]\r
+ xor ebp,edi\r
+ xor ebx,DWORD [56+esp]\r
+ xor ebp,esi\r
+ xor ebx,DWORD [12+esp]\r
+ rol ebx,1\r
+ add eax,ebp\r
+ ror edx,2\r
+ mov ebp,ecx\r
+ rol ebp,5\r
+ mov DWORD [24+esp],ebx\r
+ lea ebx,[3395469782+eax*1+ebx]\r
+ mov eax,DWORD [28+esp]\r
+ add ebx,ebp\r
+ ; 20_39 71\r
+ mov ebp,ecx\r
+ xor eax,DWORD [36+esp]\r
+ xor ebp,edx\r
+ xor eax,DWORD [60+esp]\r
+ xor ebp,edi\r
+ xor eax,DWORD [16+esp]\r
+ rol eax,1\r
+ add esi,ebp\r
+ ror ecx,2\r
+ mov ebp,ebx\r
+ rol ebp,5\r
+ mov DWORD [28+esp],eax\r
+ lea eax,[3395469782+esi*1+eax]\r
+ mov esi,DWORD [32+esp]\r
+ add eax,ebp\r
+ ; 20_39 72\r
+ mov ebp,ebx\r
+ xor esi,DWORD [40+esp]\r
+ xor ebp,ecx\r
+ xor esi,DWORD [esp]\r
+ xor ebp,edx\r
+ xor esi,DWORD [20+esp]\r
+ rol esi,1\r
+ add edi,ebp\r
+ ror ebx,2\r
+ mov ebp,eax\r
+ rol ebp,5\r
+ mov DWORD [32+esp],esi\r
+ lea esi,[3395469782+edi*1+esi]\r
+ mov edi,DWORD [36+esp]\r
+ add esi,ebp\r
+ ; 20_39 73\r
+ mov ebp,eax\r
+ xor edi,DWORD [44+esp]\r
+ xor ebp,ebx\r
+ xor edi,DWORD [4+esp]\r
+ xor ebp,ecx\r
+ xor edi,DWORD [24+esp]\r
+ rol edi,1\r
+ add edx,ebp\r
+ ror eax,2\r
+ mov ebp,esi\r
+ rol ebp,5\r
+ mov DWORD [36+esp],edi\r
+ lea edi,[3395469782+edx*1+edi]\r
+ mov edx,DWORD [40+esp]\r
+ add edi,ebp\r
+ ; 20_39 74\r
+ mov ebp,esi\r
+ xor edx,DWORD [48+esp]\r
+ xor ebp,eax\r
+ xor edx,DWORD [8+esp]\r
+ xor ebp,ebx\r
+ xor edx,DWORD [28+esp]\r
+ rol edx,1\r
+ add ecx,ebp\r
+ ror esi,2\r
+ mov ebp,edi\r
+ rol ebp,5\r
+ mov DWORD [40+esp],edx\r
+ lea edx,[3395469782+ecx*1+edx]\r
+ mov ecx,DWORD [44+esp]\r
+ add edx,ebp\r
+ ; 20_39 75\r
+ mov ebp,edi\r
+ xor ecx,DWORD [52+esp]\r
+ xor ebp,esi\r
+ xor ecx,DWORD [12+esp]\r
+ xor ebp,eax\r
+ xor ecx,DWORD [32+esp]\r
+ rol ecx,1\r
+ add ebx,ebp\r
+ ror edi,2\r
+ mov ebp,edx\r
+ rol ebp,5\r
+ mov DWORD [44+esp],ecx\r
+ lea ecx,[3395469782+ebx*1+ecx]\r
+ mov ebx,DWORD [48+esp]\r
+ add ecx,ebp\r
+ ; 20_39 76\r
+ mov ebp,edx\r
+ xor ebx,DWORD [56+esp]\r
+ xor ebp,edi\r
+ xor ebx,DWORD [16+esp]\r
+ xor ebp,esi\r
+ xor ebx,DWORD [36+esp]\r
+ rol ebx,1\r
+ add eax,ebp\r
+ ror edx,2\r
+ mov ebp,ecx\r
+ rol ebp,5\r
+ mov DWORD [48+esp],ebx\r
+ lea ebx,[3395469782+eax*1+ebx]\r
+ mov eax,DWORD [52+esp]\r
+ add ebx,ebp\r
+ ; 20_39 77\r
+ mov ebp,ecx\r
+ xor eax,DWORD [60+esp]\r
+ xor ebp,edx\r
+ xor eax,DWORD [20+esp]\r
+ xor ebp,edi\r
+ xor eax,DWORD [40+esp]\r
+ rol eax,1\r
+ add esi,ebp\r
+ ror ecx,2\r
+ mov ebp,ebx\r
+ rol ebp,5\r
+ lea eax,[3395469782+esi*1+eax]\r
+ mov esi,DWORD [56+esp]\r
+ add eax,ebp\r
+ ; 20_39 78\r
+ mov ebp,ebx\r
+ xor esi,DWORD [esp]\r
+ xor ebp,ecx\r
+ xor esi,DWORD [24+esp]\r
+ xor ebp,edx\r
+ xor esi,DWORD [44+esp]\r
+ rol esi,1\r
+ add edi,ebp\r
+ ror ebx,2\r
+ mov ebp,eax\r
+ rol ebp,5\r
+ lea esi,[3395469782+edi*1+esi]\r
+ mov edi,DWORD [60+esp]\r
+ add esi,ebp\r
+ ; 20_39 79\r
+ mov ebp,eax\r
+ xor edi,DWORD [4+esp]\r
+ xor ebp,ebx\r
+ xor edi,DWORD [28+esp]\r
+ xor ebp,ecx\r
+ xor edi,DWORD [48+esp]\r
+ rol edi,1\r
+ add edx,ebp\r
+ ror eax,2\r
+ mov ebp,esi\r
+ rol ebp,5\r
+ lea edi,[3395469782+edx*1+edi]\r
+ add edi,ebp\r
+ mov ebp,DWORD [96+esp]\r
+ mov edx,DWORD [100+esp]\r
+ add edi,DWORD [ebp]\r
+ add esi,DWORD [4+ebp]\r
+ add eax,DWORD [8+ebp]\r
+ add ebx,DWORD [12+ebp]\r
+ add ecx,DWORD [16+ebp]\r
+ mov DWORD [ebp],edi\r
+ add edx,64\r
+ mov DWORD [4+ebp],esi\r
+ cmp edx,DWORD [104+esp]\r
+ mov DWORD [8+ebp],eax\r
+ mov edi,ecx\r
+ mov DWORD [12+ebp],ebx\r
+ mov esi,edx\r
+ mov DWORD [16+ebp],ecx\r
+ jb NEAR L$000loop\r
+ add esp,76\r
+ pop edi\r
+ pop esi\r
+ pop ebx\r
+ pop ebp\r
+ ret\r
+db 83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115\r
+db 102,111,114,109,32,102,111,114,32,120,56,54,44,32,67,82\r
+db 89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112\r
+db 114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0\r
--- /dev/null
+; WARNING: do not edit!\r
+; Generated from openssl/crypto/sha/asm/sha256-586.pl\r
+;\r
+; Copyright 2007-2020 The OpenSSL Project Authors. All Rights Reserved.\r
+;\r
+; Licensed under the OpenSSL license (the "License"). You may not use\r
+; this file except in compliance with the License. You can obtain a copy\r
+; in the file LICENSE in the source distribution or at\r
+; https://www.openssl.org/source/license.html\r
+\r
+%ifidn __OUTPUT_FORMAT__,obj\r
+section code use32 class=code align=64\r
+%elifidn __OUTPUT_FORMAT__,win32\r
+$@feat.00 equ 1\r
+section .text code align=64\r
+%else\r
+section .text code\r
+%endif\r
+;extern _OPENSSL_ia32cap_P\r
+global _sha256_block_data_order\r
+align 16\r
+_sha256_block_data_order:\r
+L$_sha256_block_data_order_begin:\r
+ push ebp\r
+ push ebx\r
+ push esi\r
+ push edi\r
+ mov esi,DWORD [20+esp]\r
+ mov edi,DWORD [24+esp]\r
+ mov eax,DWORD [28+esp]\r
+ mov ebx,esp\r
+ call L$000pic_point\r
+L$000pic_point:\r
+ pop ebp\r
+ lea ebp,[(L$001K256-L$000pic_point)+ebp]\r
+ sub esp,16\r
+ and esp,-64\r
+ shl eax,6\r
+ add eax,edi\r
+ mov DWORD [esp],esi\r
+ mov DWORD [4+esp],edi\r
+ mov DWORD [8+esp],eax\r
+ mov DWORD [12+esp],ebx\r
+ jmp NEAR L$002loop\r
+align 16\r
+L$002loop:\r
+ mov eax,DWORD [edi]\r
+ mov ebx,DWORD [4+edi]\r
+ mov ecx,DWORD [8+edi]\r
+ bswap eax\r
+ mov edx,DWORD [12+edi]\r
+ bswap ebx\r
+ push eax\r
+ bswap ecx\r
+ push ebx\r
+ bswap edx\r
+ push ecx\r
+ push edx\r
+ mov eax,DWORD [16+edi]\r
+ mov ebx,DWORD [20+edi]\r
+ mov ecx,DWORD [24+edi]\r
+ bswap eax\r
+ mov edx,DWORD [28+edi]\r
+ bswap ebx\r
+ push eax\r
+ bswap ecx\r
+ push ebx\r
+ bswap edx\r
+ push ecx\r
+ push edx\r
+ mov eax,DWORD [32+edi]\r
+ mov ebx,DWORD [36+edi]\r
+ mov ecx,DWORD [40+edi]\r
+ bswap eax\r
+ mov edx,DWORD [44+edi]\r
+ bswap ebx\r
+ push eax\r
+ bswap ecx\r
+ push ebx\r
+ bswap edx\r
+ push ecx\r
+ push edx\r
+ mov eax,DWORD [48+edi]\r
+ mov ebx,DWORD [52+edi]\r
+ mov ecx,DWORD [56+edi]\r
+ bswap eax\r
+ mov edx,DWORD [60+edi]\r
+ bswap ebx\r
+ push eax\r
+ bswap ecx\r
+ push ebx\r
+ bswap edx\r
+ push ecx\r
+ push edx\r
+ add edi,64\r
+ lea esp,[esp-36]\r
+ mov DWORD [104+esp],edi\r
+ mov eax,DWORD [esi]\r
+ mov ebx,DWORD [4+esi]\r
+ mov ecx,DWORD [8+esi]\r
+ mov edi,DWORD [12+esi]\r
+ mov DWORD [8+esp],ebx\r
+ xor ebx,ecx\r
+ mov DWORD [12+esp],ecx\r
+ mov DWORD [16+esp],edi\r
+ mov DWORD [esp],ebx\r
+ mov edx,DWORD [16+esi]\r
+ mov ebx,DWORD [20+esi]\r
+ mov ecx,DWORD [24+esi]\r
+ mov edi,DWORD [28+esi]\r
+ mov DWORD [24+esp],ebx\r
+ mov DWORD [28+esp],ecx\r
+ mov DWORD [32+esp],edi\r
+align 16\r
+L$00300_15:\r
+ mov ecx,edx\r
+ mov esi,DWORD [24+esp]\r
+ ror ecx,14\r
+ mov edi,DWORD [28+esp]\r
+ xor ecx,edx\r
+ xor esi,edi\r
+ mov ebx,DWORD [96+esp]\r
+ ror ecx,5\r
+ and esi,edx\r
+ mov DWORD [20+esp],edx\r
+ xor edx,ecx\r
+ add ebx,DWORD [32+esp]\r
+ xor esi,edi\r
+ ror edx,6\r
+ mov ecx,eax\r
+ add ebx,esi\r
+ ror ecx,9\r
+ add ebx,edx\r
+ mov edi,DWORD [8+esp]\r
+ xor ecx,eax\r
+ mov DWORD [4+esp],eax\r
+ lea esp,[esp-4]\r
+ ror ecx,11\r
+ mov esi,DWORD [ebp]\r
+ xor ecx,eax\r
+ mov edx,DWORD [20+esp]\r
+ xor eax,edi\r
+ ror ecx,2\r
+ add ebx,esi\r
+ mov DWORD [esp],eax\r
+ add edx,ebx\r
+ and eax,DWORD [4+esp]\r
+ add ebx,ecx\r
+ xor eax,edi\r
+ add ebp,4\r
+ add eax,ebx\r
+ cmp esi,3248222580\r
+ jne NEAR L$00300_15\r
+ mov ecx,DWORD [156+esp]\r
+ jmp NEAR L$00416_63\r
+align 16\r
+L$00416_63:\r
+ mov ebx,ecx\r
+ mov esi,DWORD [104+esp]\r
+ ror ecx,11\r
+ mov edi,esi\r
+ ror esi,2\r
+ xor ecx,ebx\r
+ shr ebx,3\r
+ ror ecx,7\r
+ xor esi,edi\r
+ xor ebx,ecx\r
+ ror esi,17\r
+ add ebx,DWORD [160+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [124+esp]\r
+ mov ecx,edx\r
+ xor edi,esi\r
+ mov esi,DWORD [24+esp]\r
+ ror ecx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [28+esp]\r
+ xor ecx,edx\r
+ xor esi,edi\r
+ mov DWORD [96+esp],ebx\r
+ ror ecx,5\r
+ and esi,edx\r
+ mov DWORD [20+esp],edx\r
+ xor edx,ecx\r
+ add ebx,DWORD [32+esp]\r
+ xor esi,edi\r
+ ror edx,6\r
+ mov ecx,eax\r
+ add ebx,esi\r
+ ror ecx,9\r
+ add ebx,edx\r
+ mov edi,DWORD [8+esp]\r
+ xor ecx,eax\r
+ mov DWORD [4+esp],eax\r
+ lea esp,[esp-4]\r
+ ror ecx,11\r
+ mov esi,DWORD [ebp]\r
+ xor ecx,eax\r
+ mov edx,DWORD [20+esp]\r
+ xor eax,edi\r
+ ror ecx,2\r
+ add ebx,esi\r
+ mov DWORD [esp],eax\r
+ add edx,ebx\r
+ and eax,DWORD [4+esp]\r
+ add ebx,ecx\r
+ xor eax,edi\r
+ mov ecx,DWORD [156+esp]\r
+ add ebp,4\r
+ add eax,ebx\r
+ cmp esi,3329325298\r
+ jne NEAR L$00416_63\r
+ mov esi,DWORD [356+esp]\r
+ mov ebx,DWORD [8+esp]\r
+ mov ecx,DWORD [16+esp]\r
+ add eax,DWORD [esi]\r
+ add ebx,DWORD [4+esi]\r
+ add edi,DWORD [8+esi]\r
+ add ecx,DWORD [12+esi]\r
+ mov DWORD [esi],eax\r
+ mov DWORD [4+esi],ebx\r
+ mov DWORD [8+esi],edi\r
+ mov DWORD [12+esi],ecx\r
+ mov eax,DWORD [24+esp]\r
+ mov ebx,DWORD [28+esp]\r
+ mov ecx,DWORD [32+esp]\r
+ mov edi,DWORD [360+esp]\r
+ add edx,DWORD [16+esi]\r
+ add eax,DWORD [20+esi]\r
+ add ebx,DWORD [24+esi]\r
+ add ecx,DWORD [28+esi]\r
+ mov DWORD [16+esi],edx\r
+ mov DWORD [20+esi],eax\r
+ mov DWORD [24+esi],ebx\r
+ mov DWORD [28+esi],ecx\r
+ lea esp,[356+esp]\r
+ sub ebp,256\r
+ cmp edi,DWORD [8+esp]\r
+ jb NEAR L$002loop\r
+ mov esp,DWORD [12+esp]\r
+ pop edi\r
+ pop esi\r
+ pop ebx\r
+ pop ebp\r
+ ret\r
+align 32\r
+L$005loop_shrd:\r
+ mov eax,DWORD [edi]\r
+ mov ebx,DWORD [4+edi]\r
+ mov ecx,DWORD [8+edi]\r
+ bswap eax\r
+ mov edx,DWORD [12+edi]\r
+ bswap ebx\r
+ push eax\r
+ bswap ecx\r
+ push ebx\r
+ bswap edx\r
+ push ecx\r
+ push edx\r
+ mov eax,DWORD [16+edi]\r
+ mov ebx,DWORD [20+edi]\r
+ mov ecx,DWORD [24+edi]\r
+ bswap eax\r
+ mov edx,DWORD [28+edi]\r
+ bswap ebx\r
+ push eax\r
+ bswap ecx\r
+ push ebx\r
+ bswap edx\r
+ push ecx\r
+ push edx\r
+ mov eax,DWORD [32+edi]\r
+ mov ebx,DWORD [36+edi]\r
+ mov ecx,DWORD [40+edi]\r
+ bswap eax\r
+ mov edx,DWORD [44+edi]\r
+ bswap ebx\r
+ push eax\r
+ bswap ecx\r
+ push ebx\r
+ bswap edx\r
+ push ecx\r
+ push edx\r
+ mov eax,DWORD [48+edi]\r
+ mov ebx,DWORD [52+edi]\r
+ mov ecx,DWORD [56+edi]\r
+ bswap eax\r
+ mov edx,DWORD [60+edi]\r
+ bswap ebx\r
+ push eax\r
+ bswap ecx\r
+ push ebx\r
+ bswap edx\r
+ push ecx\r
+ push edx\r
+ add edi,64\r
+ lea esp,[esp-36]\r
+ mov DWORD [104+esp],edi\r
+ mov eax,DWORD [esi]\r
+ mov ebx,DWORD [4+esi]\r
+ mov ecx,DWORD [8+esi]\r
+ mov edi,DWORD [12+esi]\r
+ mov DWORD [8+esp],ebx\r
+ xor ebx,ecx\r
+ mov DWORD [12+esp],ecx\r
+ mov DWORD [16+esp],edi\r
+ mov DWORD [esp],ebx\r
+ mov edx,DWORD [16+esi]\r
+ mov ebx,DWORD [20+esi]\r
+ mov ecx,DWORD [24+esi]\r
+ mov edi,DWORD [28+esi]\r
+ mov DWORD [24+esp],ebx\r
+ mov DWORD [28+esp],ecx\r
+ mov DWORD [32+esp],edi\r
+align 16\r
+L$00600_15_shrd:\r
+ mov ecx,edx\r
+ mov esi,DWORD [24+esp]\r
+ shrd ecx,ecx,14\r
+ mov edi,DWORD [28+esp]\r
+ xor ecx,edx\r
+ xor esi,edi\r
+ mov ebx,DWORD [96+esp]\r
+ shrd ecx,ecx,5\r
+ and esi,edx\r
+ mov DWORD [20+esp],edx\r
+ xor edx,ecx\r
+ add ebx,DWORD [32+esp]\r
+ xor esi,edi\r
+ shrd edx,edx,6\r
+ mov ecx,eax\r
+ add ebx,esi\r
+ shrd ecx,ecx,9\r
+ add ebx,edx\r
+ mov edi,DWORD [8+esp]\r
+ xor ecx,eax\r
+ mov DWORD [4+esp],eax\r
+ lea esp,[esp-4]\r
+ shrd ecx,ecx,11\r
+ mov esi,DWORD [ebp]\r
+ xor ecx,eax\r
+ mov edx,DWORD [20+esp]\r
+ xor eax,edi\r
+ shrd ecx,ecx,2\r
+ add ebx,esi\r
+ mov DWORD [esp],eax\r
+ add edx,ebx\r
+ and eax,DWORD [4+esp]\r
+ add ebx,ecx\r
+ xor eax,edi\r
+ add ebp,4\r
+ add eax,ebx\r
+ cmp esi,3248222580\r
+ jne NEAR L$00600_15_shrd\r
+ mov ecx,DWORD [156+esp]\r
+ jmp NEAR L$00716_63_shrd\r
+align 16\r
+L$00716_63_shrd:\r
+ mov ebx,ecx\r
+ mov esi,DWORD [104+esp]\r
+ shrd ecx,ecx,11\r
+ mov edi,esi\r
+ shrd esi,esi,2\r
+ xor ecx,ebx\r
+ shr ebx,3\r
+ shrd ecx,ecx,7\r
+ xor esi,edi\r
+ xor ebx,ecx\r
+ shrd esi,esi,17\r
+ add ebx,DWORD [160+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [124+esp]\r
+ mov ecx,edx\r
+ xor edi,esi\r
+ mov esi,DWORD [24+esp]\r
+ shrd ecx,ecx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [28+esp]\r
+ xor ecx,edx\r
+ xor esi,edi\r
+ mov DWORD [96+esp],ebx\r
+ shrd ecx,ecx,5\r
+ and esi,edx\r
+ mov DWORD [20+esp],edx\r
+ xor edx,ecx\r
+ add ebx,DWORD [32+esp]\r
+ xor esi,edi\r
+ shrd edx,edx,6\r
+ mov ecx,eax\r
+ add ebx,esi\r
+ shrd ecx,ecx,9\r
+ add ebx,edx\r
+ mov edi,DWORD [8+esp]\r
+ xor ecx,eax\r
+ mov DWORD [4+esp],eax\r
+ lea esp,[esp-4]\r
+ shrd ecx,ecx,11\r
+ mov esi,DWORD [ebp]\r
+ xor ecx,eax\r
+ mov edx,DWORD [20+esp]\r
+ xor eax,edi\r
+ shrd ecx,ecx,2\r
+ add ebx,esi\r
+ mov DWORD [esp],eax\r
+ add edx,ebx\r
+ and eax,DWORD [4+esp]\r
+ add ebx,ecx\r
+ xor eax,edi\r
+ mov ecx,DWORD [156+esp]\r
+ add ebp,4\r
+ add eax,ebx\r
+ cmp esi,3329325298\r
+ jne NEAR L$00716_63_shrd\r
+ mov esi,DWORD [356+esp]\r
+ mov ebx,DWORD [8+esp]\r
+ mov ecx,DWORD [16+esp]\r
+ add eax,DWORD [esi]\r
+ add ebx,DWORD [4+esi]\r
+ add edi,DWORD [8+esi]\r
+ add ecx,DWORD [12+esi]\r
+ mov DWORD [esi],eax\r
+ mov DWORD [4+esi],ebx\r
+ mov DWORD [8+esi],edi\r
+ mov DWORD [12+esi],ecx\r
+ mov eax,DWORD [24+esp]\r
+ mov ebx,DWORD [28+esp]\r
+ mov ecx,DWORD [32+esp]\r
+ mov edi,DWORD [360+esp]\r
+ add edx,DWORD [16+esi]\r
+ add eax,DWORD [20+esi]\r
+ add ebx,DWORD [24+esi]\r
+ add ecx,DWORD [28+esi]\r
+ mov DWORD [16+esi],edx\r
+ mov DWORD [20+esi],eax\r
+ mov DWORD [24+esi],ebx\r
+ mov DWORD [28+esi],ecx\r
+ lea esp,[356+esp]\r
+ sub ebp,256\r
+ cmp edi,DWORD [8+esp]\r
+ jb NEAR L$005loop_shrd\r
+ mov esp,DWORD [12+esp]\r
+ pop edi\r
+ pop esi\r
+ pop ebx\r
+ pop ebp\r
+ ret\r
+align 64\r
+L$001K256:\r
+dd 1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298\r
+dd 66051,67438087,134810123,202182159\r
+db 83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97\r
+db 110,115,102,111,114,109,32,102,111,114,32,120,56,54,44,32\r
+db 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97\r
+db 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103\r
+db 62,0\r
+align 16\r
+L$008unrolled:\r
+ lea esp,[esp-96]\r
+ mov eax,DWORD [esi]\r
+ mov ebp,DWORD [4+esi]\r
+ mov ecx,DWORD [8+esi]\r
+ mov ebx,DWORD [12+esi]\r
+ mov DWORD [4+esp],ebp\r
+ xor ebp,ecx\r
+ mov DWORD [8+esp],ecx\r
+ mov DWORD [12+esp],ebx\r
+ mov edx,DWORD [16+esi]\r
+ mov ebx,DWORD [20+esi]\r
+ mov ecx,DWORD [24+esi]\r
+ mov esi,DWORD [28+esi]\r
+ mov DWORD [20+esp],ebx\r
+ mov DWORD [24+esp],ecx\r
+ mov DWORD [28+esp],esi\r
+ jmp NEAR L$009grand_loop\r
+align 16\r
+L$009grand_loop:\r
+ mov ebx,DWORD [edi]\r
+ mov ecx,DWORD [4+edi]\r
+ bswap ebx\r
+ mov esi,DWORD [8+edi]\r
+ bswap ecx\r
+ mov DWORD [32+esp],ebx\r
+ bswap esi\r
+ mov DWORD [36+esp],ecx\r
+ mov DWORD [40+esp],esi\r
+ mov ebx,DWORD [12+edi]\r
+ mov ecx,DWORD [16+edi]\r
+ bswap ebx\r
+ mov esi,DWORD [20+edi]\r
+ bswap ecx\r
+ mov DWORD [44+esp],ebx\r
+ bswap esi\r
+ mov DWORD [48+esp],ecx\r
+ mov DWORD [52+esp],esi\r
+ mov ebx,DWORD [24+edi]\r
+ mov ecx,DWORD [28+edi]\r
+ bswap ebx\r
+ mov esi,DWORD [32+edi]\r
+ bswap ecx\r
+ mov DWORD [56+esp],ebx\r
+ bswap esi\r
+ mov DWORD [60+esp],ecx\r
+ mov DWORD [64+esp],esi\r
+ mov ebx,DWORD [36+edi]\r
+ mov ecx,DWORD [40+edi]\r
+ bswap ebx\r
+ mov esi,DWORD [44+edi]\r
+ bswap ecx\r
+ mov DWORD [68+esp],ebx\r
+ bswap esi\r
+ mov DWORD [72+esp],ecx\r
+ mov DWORD [76+esp],esi\r
+ mov ebx,DWORD [48+edi]\r
+ mov ecx,DWORD [52+edi]\r
+ bswap ebx\r
+ mov esi,DWORD [56+edi]\r
+ bswap ecx\r
+ mov DWORD [80+esp],ebx\r
+ bswap esi\r
+ mov DWORD [84+esp],ecx\r
+ mov DWORD [88+esp],esi\r
+ mov ebx,DWORD [60+edi]\r
+ add edi,64\r
+ bswap ebx\r
+ mov DWORD [100+esp],edi\r
+ mov DWORD [92+esp],ebx\r
+ mov ecx,edx\r
+ mov esi,DWORD [20+esp]\r
+ ror edx,14\r
+ mov edi,DWORD [24+esp]\r
+ xor edx,ecx\r
+ mov ebx,DWORD [32+esp]\r
+ xor esi,edi\r
+ ror edx,5\r
+ and esi,ecx\r
+ mov DWORD [16+esp],ecx\r
+ xor edx,ecx\r
+ add ebx,DWORD [28+esp]\r
+ xor edi,esi\r
+ ror edx,6\r
+ mov ecx,eax\r
+ add ebx,edi\r
+ ror ecx,9\r
+ mov esi,eax\r
+ mov edi,DWORD [4+esp]\r
+ xor ecx,eax\r
+ mov DWORD [esp],eax\r
+ xor eax,edi\r
+ ror ecx,11\r
+ and ebp,eax\r
+ lea edx,[1116352408+edx*1+ebx]\r
+ xor ecx,esi\r
+ xor ebp,edi\r
+ ror ecx,2\r
+ add ebp,edx\r
+ add edx,DWORD [12+esp]\r
+ add ebp,ecx\r
+ mov esi,edx\r
+ mov ecx,DWORD [16+esp]\r
+ ror edx,14\r
+ mov edi,DWORD [20+esp]\r
+ xor edx,esi\r
+ mov ebx,DWORD [36+esp]\r
+ xor ecx,edi\r
+ ror edx,5\r
+ and ecx,esi\r
+ mov DWORD [12+esp],esi\r
+ xor edx,esi\r
+ add ebx,DWORD [24+esp]\r
+ xor edi,ecx\r
+ ror edx,6\r
+ mov esi,ebp\r
+ add ebx,edi\r
+ ror esi,9\r
+ mov ecx,ebp\r
+ mov edi,DWORD [esp]\r
+ xor esi,ebp\r
+ mov DWORD [28+esp],ebp\r
+ xor ebp,edi\r
+ ror esi,11\r
+ and eax,ebp\r
+ lea edx,[1899447441+edx*1+ebx]\r
+ xor esi,ecx\r
+ xor eax,edi\r
+ ror esi,2\r
+ add eax,edx\r
+ add edx,DWORD [8+esp]\r
+ add eax,esi\r
+ mov ecx,edx\r
+ mov esi,DWORD [12+esp]\r
+ ror edx,14\r
+ mov edi,DWORD [16+esp]\r
+ xor edx,ecx\r
+ mov ebx,DWORD [40+esp]\r
+ xor esi,edi\r
+ ror edx,5\r
+ and esi,ecx\r
+ mov DWORD [8+esp],ecx\r
+ xor edx,ecx\r
+ add ebx,DWORD [20+esp]\r
+ xor edi,esi\r
+ ror edx,6\r
+ mov ecx,eax\r
+ add ebx,edi\r
+ ror ecx,9\r
+ mov esi,eax\r
+ mov edi,DWORD [28+esp]\r
+ xor ecx,eax\r
+ mov DWORD [24+esp],eax\r
+ xor eax,edi\r
+ ror ecx,11\r
+ and ebp,eax\r
+ lea edx,[3049323471+edx*1+ebx]\r
+ xor ecx,esi\r
+ xor ebp,edi\r
+ ror ecx,2\r
+ add ebp,edx\r
+ add edx,DWORD [4+esp]\r
+ add ebp,ecx\r
+ mov esi,edx\r
+ mov ecx,DWORD [8+esp]\r
+ ror edx,14\r
+ mov edi,DWORD [12+esp]\r
+ xor edx,esi\r
+ mov ebx,DWORD [44+esp]\r
+ xor ecx,edi\r
+ ror edx,5\r
+ and ecx,esi\r
+ mov DWORD [4+esp],esi\r
+ xor edx,esi\r
+ add ebx,DWORD [16+esp]\r
+ xor edi,ecx\r
+ ror edx,6\r
+ mov esi,ebp\r
+ add ebx,edi\r
+ ror esi,9\r
+ mov ecx,ebp\r
+ mov edi,DWORD [24+esp]\r
+ xor esi,ebp\r
+ mov DWORD [20+esp],ebp\r
+ xor ebp,edi\r
+ ror esi,11\r
+ and eax,ebp\r
+ lea edx,[3921009573+edx*1+ebx]\r
+ xor esi,ecx\r
+ xor eax,edi\r
+ ror esi,2\r
+ add eax,edx\r
+ add edx,DWORD [esp]\r
+ add eax,esi\r
+ mov ecx,edx\r
+ mov esi,DWORD [4+esp]\r
+ ror edx,14\r
+ mov edi,DWORD [8+esp]\r
+ xor edx,ecx\r
+ mov ebx,DWORD [48+esp]\r
+ xor esi,edi\r
+ ror edx,5\r
+ and esi,ecx\r
+ mov DWORD [esp],ecx\r
+ xor edx,ecx\r
+ add ebx,DWORD [12+esp]\r
+ xor edi,esi\r
+ ror edx,6\r
+ mov ecx,eax\r
+ add ebx,edi\r
+ ror ecx,9\r
+ mov esi,eax\r
+ mov edi,DWORD [20+esp]\r
+ xor ecx,eax\r
+ mov DWORD [16+esp],eax\r
+ xor eax,edi\r
+ ror ecx,11\r
+ and ebp,eax\r
+ lea edx,[961987163+edx*1+ebx]\r
+ xor ecx,esi\r
+ xor ebp,edi\r
+ ror ecx,2\r
+ add ebp,edx\r
+ add edx,DWORD [28+esp]\r
+ add ebp,ecx\r
+ mov esi,edx\r
+ mov ecx,DWORD [esp]\r
+ ror edx,14\r
+ mov edi,DWORD [4+esp]\r
+ xor edx,esi\r
+ mov ebx,DWORD [52+esp]\r
+ xor ecx,edi\r
+ ror edx,5\r
+ and ecx,esi\r
+ mov DWORD [28+esp],esi\r
+ xor edx,esi\r
+ add ebx,DWORD [8+esp]\r
+ xor edi,ecx\r
+ ror edx,6\r
+ mov esi,ebp\r
+ add ebx,edi\r
+ ror esi,9\r
+ mov ecx,ebp\r
+ mov edi,DWORD [16+esp]\r
+ xor esi,ebp\r
+ mov DWORD [12+esp],ebp\r
+ xor ebp,edi\r
+ ror esi,11\r
+ and eax,ebp\r
+ lea edx,[1508970993+edx*1+ebx]\r
+ xor esi,ecx\r
+ xor eax,edi\r
+ ror esi,2\r
+ add eax,edx\r
+ add edx,DWORD [24+esp]\r
+ add eax,esi\r
+ mov ecx,edx\r
+ mov esi,DWORD [28+esp]\r
+ ror edx,14\r
+ mov edi,DWORD [esp]\r
+ xor edx,ecx\r
+ mov ebx,DWORD [56+esp]\r
+ xor esi,edi\r
+ ror edx,5\r
+ and esi,ecx\r
+ mov DWORD [24+esp],ecx\r
+ xor edx,ecx\r
+ add ebx,DWORD [4+esp]\r
+ xor edi,esi\r
+ ror edx,6\r
+ mov ecx,eax\r
+ add ebx,edi\r
+ ror ecx,9\r
+ mov esi,eax\r
+ mov edi,DWORD [12+esp]\r
+ xor ecx,eax\r
+ mov DWORD [8+esp],eax\r
+ xor eax,edi\r
+ ror ecx,11\r
+ and ebp,eax\r
+ lea edx,[2453635748+edx*1+ebx]\r
+ xor ecx,esi\r
+ xor ebp,edi\r
+ ror ecx,2\r
+ add ebp,edx\r
+ add edx,DWORD [20+esp]\r
+ add ebp,ecx\r
+ mov esi,edx\r
+ mov ecx,DWORD [24+esp]\r
+ ror edx,14\r
+ mov edi,DWORD [28+esp]\r
+ xor edx,esi\r
+ mov ebx,DWORD [60+esp]\r
+ xor ecx,edi\r
+ ror edx,5\r
+ and ecx,esi\r
+ mov DWORD [20+esp],esi\r
+ xor edx,esi\r
+ add ebx,DWORD [esp]\r
+ xor edi,ecx\r
+ ror edx,6\r
+ mov esi,ebp\r
+ add ebx,edi\r
+ ror esi,9\r
+ mov ecx,ebp\r
+ mov edi,DWORD [8+esp]\r
+ xor esi,ebp\r
+ mov DWORD [4+esp],ebp\r
+ xor ebp,edi\r
+ ror esi,11\r
+ and eax,ebp\r
+ lea edx,[2870763221+edx*1+ebx]\r
+ xor esi,ecx\r
+ xor eax,edi\r
+ ror esi,2\r
+ add eax,edx\r
+ add edx,DWORD [16+esp]\r
+ add eax,esi\r
+ mov ecx,edx\r
+ mov esi,DWORD [20+esp]\r
+ ror edx,14\r
+ mov edi,DWORD [24+esp]\r
+ xor edx,ecx\r
+ mov ebx,DWORD [64+esp]\r
+ xor esi,edi\r
+ ror edx,5\r
+ and esi,ecx\r
+ mov DWORD [16+esp],ecx\r
+ xor edx,ecx\r
+ add ebx,DWORD [28+esp]\r
+ xor edi,esi\r
+ ror edx,6\r
+ mov ecx,eax\r
+ add ebx,edi\r
+ ror ecx,9\r
+ mov esi,eax\r
+ mov edi,DWORD [4+esp]\r
+ xor ecx,eax\r
+ mov DWORD [esp],eax\r
+ xor eax,edi\r
+ ror ecx,11\r
+ and ebp,eax\r
+ lea edx,[3624381080+edx*1+ebx]\r
+ xor ecx,esi\r
+ xor ebp,edi\r
+ ror ecx,2\r
+ add ebp,edx\r
+ add edx,DWORD [12+esp]\r
+ add ebp,ecx\r
+ mov esi,edx\r
+ mov ecx,DWORD [16+esp]\r
+ ror edx,14\r
+ mov edi,DWORD [20+esp]\r
+ xor edx,esi\r
+ mov ebx,DWORD [68+esp]\r
+ xor ecx,edi\r
+ ror edx,5\r
+ and ecx,esi\r
+ mov DWORD [12+esp],esi\r
+ xor edx,esi\r
+ add ebx,DWORD [24+esp]\r
+ xor edi,ecx\r
+ ror edx,6\r
+ mov esi,ebp\r
+ add ebx,edi\r
+ ror esi,9\r
+ mov ecx,ebp\r
+ mov edi,DWORD [esp]\r
+ xor esi,ebp\r
+ mov DWORD [28+esp],ebp\r
+ xor ebp,edi\r
+ ror esi,11\r
+ and eax,ebp\r
+ lea edx,[310598401+edx*1+ebx]\r
+ xor esi,ecx\r
+ xor eax,edi\r
+ ror esi,2\r
+ add eax,edx\r
+ add edx,DWORD [8+esp]\r
+ add eax,esi\r
+ mov ecx,edx\r
+ mov esi,DWORD [12+esp]\r
+ ror edx,14\r
+ mov edi,DWORD [16+esp]\r
+ xor edx,ecx\r
+ mov ebx,DWORD [72+esp]\r
+ xor esi,edi\r
+ ror edx,5\r
+ and esi,ecx\r
+ mov DWORD [8+esp],ecx\r
+ xor edx,ecx\r
+ add ebx,DWORD [20+esp]\r
+ xor edi,esi\r
+ ror edx,6\r
+ mov ecx,eax\r
+ add ebx,edi\r
+ ror ecx,9\r
+ mov esi,eax\r
+ mov edi,DWORD [28+esp]\r
+ xor ecx,eax\r
+ mov DWORD [24+esp],eax\r
+ xor eax,edi\r
+ ror ecx,11\r
+ and ebp,eax\r
+ lea edx,[607225278+edx*1+ebx]\r
+ xor ecx,esi\r
+ xor ebp,edi\r
+ ror ecx,2\r
+ add ebp,edx\r
+ add edx,DWORD [4+esp]\r
+ add ebp,ecx\r
+ mov esi,edx\r
+ mov ecx,DWORD [8+esp]\r
+ ror edx,14\r
+ mov edi,DWORD [12+esp]\r
+ xor edx,esi\r
+ mov ebx,DWORD [76+esp]\r
+ xor ecx,edi\r
+ ror edx,5\r
+ and ecx,esi\r
+ mov DWORD [4+esp],esi\r
+ xor edx,esi\r
+ add ebx,DWORD [16+esp]\r
+ xor edi,ecx\r
+ ror edx,6\r
+ mov esi,ebp\r
+ add ebx,edi\r
+ ror esi,9\r
+ mov ecx,ebp\r
+ mov edi,DWORD [24+esp]\r
+ xor esi,ebp\r
+ mov DWORD [20+esp],ebp\r
+ xor ebp,edi\r
+ ror esi,11\r
+ and eax,ebp\r
+ lea edx,[1426881987+edx*1+ebx]\r
+ xor esi,ecx\r
+ xor eax,edi\r
+ ror esi,2\r
+ add eax,edx\r
+ add edx,DWORD [esp]\r
+ add eax,esi\r
+ mov ecx,edx\r
+ mov esi,DWORD [4+esp]\r
+ ror edx,14\r
+ mov edi,DWORD [8+esp]\r
+ xor edx,ecx\r
+ mov ebx,DWORD [80+esp]\r
+ xor esi,edi\r
+ ror edx,5\r
+ and esi,ecx\r
+ mov DWORD [esp],ecx\r
+ xor edx,ecx\r
+ add ebx,DWORD [12+esp]\r
+ xor edi,esi\r
+ ror edx,6\r
+ mov ecx,eax\r
+ add ebx,edi\r
+ ror ecx,9\r
+ mov esi,eax\r
+ mov edi,DWORD [20+esp]\r
+ xor ecx,eax\r
+ mov DWORD [16+esp],eax\r
+ xor eax,edi\r
+ ror ecx,11\r
+ and ebp,eax\r
+ lea edx,[1925078388+edx*1+ebx]\r
+ xor ecx,esi\r
+ xor ebp,edi\r
+ ror ecx,2\r
+ add ebp,edx\r
+ add edx,DWORD [28+esp]\r
+ add ebp,ecx\r
+ mov esi,edx\r
+ mov ecx,DWORD [esp]\r
+ ror edx,14\r
+ mov edi,DWORD [4+esp]\r
+ xor edx,esi\r
+ mov ebx,DWORD [84+esp]\r
+ xor ecx,edi\r
+ ror edx,5\r
+ and ecx,esi\r
+ mov DWORD [28+esp],esi\r
+ xor edx,esi\r
+ add ebx,DWORD [8+esp]\r
+ xor edi,ecx\r
+ ror edx,6\r
+ mov esi,ebp\r
+ add ebx,edi\r
+ ror esi,9\r
+ mov ecx,ebp\r
+ mov edi,DWORD [16+esp]\r
+ xor esi,ebp\r
+ mov DWORD [12+esp],ebp\r
+ xor ebp,edi\r
+ ror esi,11\r
+ and eax,ebp\r
+ lea edx,[2162078206+edx*1+ebx]\r
+ xor esi,ecx\r
+ xor eax,edi\r
+ ror esi,2\r
+ add eax,edx\r
+ add edx,DWORD [24+esp]\r
+ add eax,esi\r
+ mov ecx,edx\r
+ mov esi,DWORD [28+esp]\r
+ ror edx,14\r
+ mov edi,DWORD [esp]\r
+ xor edx,ecx\r
+ mov ebx,DWORD [88+esp]\r
+ xor esi,edi\r
+ ror edx,5\r
+ and esi,ecx\r
+ mov DWORD [24+esp],ecx\r
+ xor edx,ecx\r
+ add ebx,DWORD [4+esp]\r
+ xor edi,esi\r
+ ror edx,6\r
+ mov ecx,eax\r
+ add ebx,edi\r
+ ror ecx,9\r
+ mov esi,eax\r
+ mov edi,DWORD [12+esp]\r
+ xor ecx,eax\r
+ mov DWORD [8+esp],eax\r
+ xor eax,edi\r
+ ror ecx,11\r
+ and ebp,eax\r
+ lea edx,[2614888103+edx*1+ebx]\r
+ xor ecx,esi\r
+ xor ebp,edi\r
+ ror ecx,2\r
+ add ebp,edx\r
+ add edx,DWORD [20+esp]\r
+ add ebp,ecx\r
+ mov esi,edx\r
+ mov ecx,DWORD [24+esp]\r
+ ror edx,14\r
+ mov edi,DWORD [28+esp]\r
+ xor edx,esi\r
+ mov ebx,DWORD [92+esp]\r
+ xor ecx,edi\r
+ ror edx,5\r
+ and ecx,esi\r
+ mov DWORD [20+esp],esi\r
+ xor edx,esi\r
+ add ebx,DWORD [esp]\r
+ xor edi,ecx\r
+ ror edx,6\r
+ mov esi,ebp\r
+ add ebx,edi\r
+ ror esi,9\r
+ mov ecx,ebp\r
+ mov edi,DWORD [8+esp]\r
+ xor esi,ebp\r
+ mov DWORD [4+esp],ebp\r
+ xor ebp,edi\r
+ ror esi,11\r
+ and eax,ebp\r
+ lea edx,[3248222580+edx*1+ebx]\r
+ xor esi,ecx\r
+ xor eax,edi\r
+ mov ecx,DWORD [36+esp]\r
+ ror esi,2\r
+ add eax,edx\r
+ add edx,DWORD [16+esp]\r
+ add eax,esi\r
+ mov esi,DWORD [88+esp]\r
+ mov ebx,ecx\r
+ ror ecx,11\r
+ mov edi,esi\r
+ ror esi,2\r
+ xor ecx,ebx\r
+ shr ebx,3\r
+ ror ecx,7\r
+ xor esi,edi\r
+ xor ebx,ecx\r
+ ror esi,17\r
+ add ebx,DWORD [32+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [68+esp]\r
+ mov ecx,edx\r
+ xor edi,esi\r
+ mov esi,DWORD [20+esp]\r
+ ror edx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [24+esp]\r
+ xor edx,ecx\r
+ mov DWORD [32+esp],ebx\r
+ xor esi,edi\r
+ ror edx,5\r
+ and esi,ecx\r
+ mov DWORD [16+esp],ecx\r
+ xor edx,ecx\r
+ add ebx,DWORD [28+esp]\r
+ xor edi,esi\r
+ ror edx,6\r
+ mov ecx,eax\r
+ add ebx,edi\r
+ ror ecx,9\r
+ mov esi,eax\r
+ mov edi,DWORD [4+esp]\r
+ xor ecx,eax\r
+ mov DWORD [esp],eax\r
+ xor eax,edi\r
+ ror ecx,11\r
+ and ebp,eax\r
+ lea edx,[3835390401+edx*1+ebx]\r
+ xor ecx,esi\r
+ xor ebp,edi\r
+ mov esi,DWORD [40+esp]\r
+ ror ecx,2\r
+ add ebp,edx\r
+ add edx,DWORD [12+esp]\r
+ add ebp,ecx\r
+ mov ecx,DWORD [92+esp]\r
+ mov ebx,esi\r
+ ror esi,11\r
+ mov edi,ecx\r
+ ror ecx,2\r
+ xor esi,ebx\r
+ shr ebx,3\r
+ ror esi,7\r
+ xor ecx,edi\r
+ xor ebx,esi\r
+ ror ecx,17\r
+ add ebx,DWORD [36+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [72+esp]\r
+ mov esi,edx\r
+ xor edi,ecx\r
+ mov ecx,DWORD [16+esp]\r
+ ror edx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [20+esp]\r
+ xor edx,esi\r
+ mov DWORD [36+esp],ebx\r
+ xor ecx,edi\r
+ ror edx,5\r
+ and ecx,esi\r
+ mov DWORD [12+esp],esi\r
+ xor edx,esi\r
+ add ebx,DWORD [24+esp]\r
+ xor edi,ecx\r
+ ror edx,6\r
+ mov esi,ebp\r
+ add ebx,edi\r
+ ror esi,9\r
+ mov ecx,ebp\r
+ mov edi,DWORD [esp]\r
+ xor esi,ebp\r
+ mov DWORD [28+esp],ebp\r
+ xor ebp,edi\r
+ ror esi,11\r
+ and eax,ebp\r
+ lea edx,[4022224774+edx*1+ebx]\r
+ xor esi,ecx\r
+ xor eax,edi\r
+ mov ecx,DWORD [44+esp]\r
+ ror esi,2\r
+ add eax,edx\r
+ add edx,DWORD [8+esp]\r
+ add eax,esi\r
+ mov esi,DWORD [32+esp]\r
+ mov ebx,ecx\r
+ ror ecx,11\r
+ mov edi,esi\r
+ ror esi,2\r
+ xor ecx,ebx\r
+ shr ebx,3\r
+ ror ecx,7\r
+ xor esi,edi\r
+ xor ebx,ecx\r
+ ror esi,17\r
+ add ebx,DWORD [40+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [76+esp]\r
+ mov ecx,edx\r
+ xor edi,esi\r
+ mov esi,DWORD [12+esp]\r
+ ror edx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [16+esp]\r
+ xor edx,ecx\r
+ mov DWORD [40+esp],ebx\r
+ xor esi,edi\r
+ ror edx,5\r
+ and esi,ecx\r
+ mov DWORD [8+esp],ecx\r
+ xor edx,ecx\r
+ add ebx,DWORD [20+esp]\r
+ xor edi,esi\r
+ ror edx,6\r
+ mov ecx,eax\r
+ add ebx,edi\r
+ ror ecx,9\r
+ mov esi,eax\r
+ mov edi,DWORD [28+esp]\r
+ xor ecx,eax\r
+ mov DWORD [24+esp],eax\r
+ xor eax,edi\r
+ ror ecx,11\r
+ and ebp,eax\r
+ lea edx,[264347078+edx*1+ebx]\r
+ xor ecx,esi\r
+ xor ebp,edi\r
+ mov esi,DWORD [48+esp]\r
+ ror ecx,2\r
+ add ebp,edx\r
+ add edx,DWORD [4+esp]\r
+ add ebp,ecx\r
+ mov ecx,DWORD [36+esp]\r
+ mov ebx,esi\r
+ ror esi,11\r
+ mov edi,ecx\r
+ ror ecx,2\r
+ xor esi,ebx\r
+ shr ebx,3\r
+ ror esi,7\r
+ xor ecx,edi\r
+ xor ebx,esi\r
+ ror ecx,17\r
+ add ebx,DWORD [44+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [80+esp]\r
+ mov esi,edx\r
+ xor edi,ecx\r
+ mov ecx,DWORD [8+esp]\r
+ ror edx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [12+esp]\r
+ xor edx,esi\r
+ mov DWORD [44+esp],ebx\r
+ xor ecx,edi\r
+ ror edx,5\r
+ and ecx,esi\r
+ mov DWORD [4+esp],esi\r
+ xor edx,esi\r
+ add ebx,DWORD [16+esp]\r
+ xor edi,ecx\r
+ ror edx,6\r
+ mov esi,ebp\r
+ add ebx,edi\r
+ ror esi,9\r
+ mov ecx,ebp\r
+ mov edi,DWORD [24+esp]\r
+ xor esi,ebp\r
+ mov DWORD [20+esp],ebp\r
+ xor ebp,edi\r
+ ror esi,11\r
+ and eax,ebp\r
+ lea edx,[604807628+edx*1+ebx]\r
+ xor esi,ecx\r
+ xor eax,edi\r
+ mov ecx,DWORD [52+esp]\r
+ ror esi,2\r
+ add eax,edx\r
+ add edx,DWORD [esp]\r
+ add eax,esi\r
+ mov esi,DWORD [40+esp]\r
+ mov ebx,ecx\r
+ ror ecx,11\r
+ mov edi,esi\r
+ ror esi,2\r
+ xor ecx,ebx\r
+ shr ebx,3\r
+ ror ecx,7\r
+ xor esi,edi\r
+ xor ebx,ecx\r
+ ror esi,17\r
+ add ebx,DWORD [48+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [84+esp]\r
+ mov ecx,edx\r
+ xor edi,esi\r
+ mov esi,DWORD [4+esp]\r
+ ror edx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [8+esp]\r
+ xor edx,ecx\r
+ mov DWORD [48+esp],ebx\r
+ xor esi,edi\r
+ ror edx,5\r
+ and esi,ecx\r
+ mov DWORD [esp],ecx\r
+ xor edx,ecx\r
+ add ebx,DWORD [12+esp]\r
+ xor edi,esi\r
+ ror edx,6\r
+ mov ecx,eax\r
+ add ebx,edi\r
+ ror ecx,9\r
+ mov esi,eax\r
+ mov edi,DWORD [20+esp]\r
+ xor ecx,eax\r
+ mov DWORD [16+esp],eax\r
+ xor eax,edi\r
+ ror ecx,11\r
+ and ebp,eax\r
+ lea edx,[770255983+edx*1+ebx]\r
+ xor ecx,esi\r
+ xor ebp,edi\r
+ mov esi,DWORD [56+esp]\r
+ ror ecx,2\r
+ add ebp,edx\r
+ add edx,DWORD [28+esp]\r
+ add ebp,ecx\r
+ mov ecx,DWORD [44+esp]\r
+ mov ebx,esi\r
+ ror esi,11\r
+ mov edi,ecx\r
+ ror ecx,2\r
+ xor esi,ebx\r
+ shr ebx,3\r
+ ror esi,7\r
+ xor ecx,edi\r
+ xor ebx,esi\r
+ ror ecx,17\r
+ add ebx,DWORD [52+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [88+esp]\r
+ mov esi,edx\r
+ xor edi,ecx\r
+ mov ecx,DWORD [esp]\r
+ ror edx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [4+esp]\r
+ xor edx,esi\r
+ mov DWORD [52+esp],ebx\r
+ xor ecx,edi\r
+ ror edx,5\r
+ and ecx,esi\r
+ mov DWORD [28+esp],esi\r
+ xor edx,esi\r
+ add ebx,DWORD [8+esp]\r
+ xor edi,ecx\r
+ ror edx,6\r
+ mov esi,ebp\r
+ add ebx,edi\r
+ ror esi,9\r
+ mov ecx,ebp\r
+ mov edi,DWORD [16+esp]\r
+ xor esi,ebp\r
+ mov DWORD [12+esp],ebp\r
+ xor ebp,edi\r
+ ror esi,11\r
+ and eax,ebp\r
+ lea edx,[1249150122+edx*1+ebx]\r
+ xor esi,ecx\r
+ xor eax,edi\r
+ mov ecx,DWORD [60+esp]\r
+ ror esi,2\r
+ add eax,edx\r
+ add edx,DWORD [24+esp]\r
+ add eax,esi\r
+ mov esi,DWORD [48+esp]\r
+ mov ebx,ecx\r
+ ror ecx,11\r
+ mov edi,esi\r
+ ror esi,2\r
+ xor ecx,ebx\r
+ shr ebx,3\r
+ ror ecx,7\r
+ xor esi,edi\r
+ xor ebx,ecx\r
+ ror esi,17\r
+ add ebx,DWORD [56+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [92+esp]\r
+ mov ecx,edx\r
+ xor edi,esi\r
+ mov esi,DWORD [28+esp]\r
+ ror edx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [esp]\r
+ xor edx,ecx\r
+ mov DWORD [56+esp],ebx\r
+ xor esi,edi\r
+ ror edx,5\r
+ and esi,ecx\r
+ mov DWORD [24+esp],ecx\r
+ xor edx,ecx\r
+ add ebx,DWORD [4+esp]\r
+ xor edi,esi\r
+ ror edx,6\r
+ mov ecx,eax\r
+ add ebx,edi\r
+ ror ecx,9\r
+ mov esi,eax\r
+ mov edi,DWORD [12+esp]\r
+ xor ecx,eax\r
+ mov DWORD [8+esp],eax\r
+ xor eax,edi\r
+ ror ecx,11\r
+ and ebp,eax\r
+ lea edx,[1555081692+edx*1+ebx]\r
+ xor ecx,esi\r
+ xor ebp,edi\r
+ mov esi,DWORD [64+esp]\r
+ ror ecx,2\r
+ add ebp,edx\r
+ add edx,DWORD [20+esp]\r
+ add ebp,ecx\r
+ mov ecx,DWORD [52+esp]\r
+ mov ebx,esi\r
+ ror esi,11\r
+ mov edi,ecx\r
+ ror ecx,2\r
+ xor esi,ebx\r
+ shr ebx,3\r
+ ror esi,7\r
+ xor ecx,edi\r
+ xor ebx,esi\r
+ ror ecx,17\r
+ add ebx,DWORD [60+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [32+esp]\r
+ mov esi,edx\r
+ xor edi,ecx\r
+ mov ecx,DWORD [24+esp]\r
+ ror edx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [28+esp]\r
+ xor edx,esi\r
+ mov DWORD [60+esp],ebx\r
+ xor ecx,edi\r
+ ror edx,5\r
+ and ecx,esi\r
+ mov DWORD [20+esp],esi\r
+ xor edx,esi\r
+ add ebx,DWORD [esp]\r
+ xor edi,ecx\r
+ ror edx,6\r
+ mov esi,ebp\r
+ add ebx,edi\r
+ ror esi,9\r
+ mov ecx,ebp\r
+ mov edi,DWORD [8+esp]\r
+ xor esi,ebp\r
+ mov DWORD [4+esp],ebp\r
+ xor ebp,edi\r
+ ror esi,11\r
+ and eax,ebp\r
+ lea edx,[1996064986+edx*1+ebx]\r
+ xor esi,ecx\r
+ xor eax,edi\r
+ mov ecx,DWORD [68+esp]\r
+ ror esi,2\r
+ add eax,edx\r
+ add edx,DWORD [16+esp]\r
+ add eax,esi\r
+ mov esi,DWORD [56+esp]\r
+ mov ebx,ecx\r
+ ror ecx,11\r
+ mov edi,esi\r
+ ror esi,2\r
+ xor ecx,ebx\r
+ shr ebx,3\r
+ ror ecx,7\r
+ xor esi,edi\r
+ xor ebx,ecx\r
+ ror esi,17\r
+ add ebx,DWORD [64+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [36+esp]\r
+ mov ecx,edx\r
+ xor edi,esi\r
+ mov esi,DWORD [20+esp]\r
+ ror edx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [24+esp]\r
+ xor edx,ecx\r
+ mov DWORD [64+esp],ebx\r
+ xor esi,edi\r
+ ror edx,5\r
+ and esi,ecx\r
+ mov DWORD [16+esp],ecx\r
+ xor edx,ecx\r
+ add ebx,DWORD [28+esp]\r
+ xor edi,esi\r
+ ror edx,6\r
+ mov ecx,eax\r
+ add ebx,edi\r
+ ror ecx,9\r
+ mov esi,eax\r
+ mov edi,DWORD [4+esp]\r
+ xor ecx,eax\r
+ mov DWORD [esp],eax\r
+ xor eax,edi\r
+ ror ecx,11\r
+ and ebp,eax\r
+ lea edx,[2554220882+edx*1+ebx]\r
+ xor ecx,esi\r
+ xor ebp,edi\r
+ mov esi,DWORD [72+esp]\r
+ ror ecx,2\r
+ add ebp,edx\r
+ add edx,DWORD [12+esp]\r
+ add ebp,ecx\r
+ mov ecx,DWORD [60+esp]\r
+ mov ebx,esi\r
+ ror esi,11\r
+ mov edi,ecx\r
+ ror ecx,2\r
+ xor esi,ebx\r
+ shr ebx,3\r
+ ror esi,7\r
+ xor ecx,edi\r
+ xor ebx,esi\r
+ ror ecx,17\r
+ add ebx,DWORD [68+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [40+esp]\r
+ mov esi,edx\r
+ xor edi,ecx\r
+ mov ecx,DWORD [16+esp]\r
+ ror edx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [20+esp]\r
+ xor edx,esi\r
+ mov DWORD [68+esp],ebx\r
+ xor ecx,edi\r
+ ror edx,5\r
+ and ecx,esi\r
+ mov DWORD [12+esp],esi\r
+ xor edx,esi\r
+ add ebx,DWORD [24+esp]\r
+ xor edi,ecx\r
+ ror edx,6\r
+ mov esi,ebp\r
+ add ebx,edi\r
+ ror esi,9\r
+ mov ecx,ebp\r
+ mov edi,DWORD [esp]\r
+ xor esi,ebp\r
+ mov DWORD [28+esp],ebp\r
+ xor ebp,edi\r
+ ror esi,11\r
+ and eax,ebp\r
+ lea edx,[2821834349+edx*1+ebx]\r
+ xor esi,ecx\r
+ xor eax,edi\r
+ mov ecx,DWORD [76+esp]\r
+ ror esi,2\r
+ add eax,edx\r
+ add edx,DWORD [8+esp]\r
+ add eax,esi\r
+ mov esi,DWORD [64+esp]\r
+ mov ebx,ecx\r
+ ror ecx,11\r
+ mov edi,esi\r
+ ror esi,2\r
+ xor ecx,ebx\r
+ shr ebx,3\r
+ ror ecx,7\r
+ xor esi,edi\r
+ xor ebx,ecx\r
+ ror esi,17\r
+ add ebx,DWORD [72+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [44+esp]\r
+ mov ecx,edx\r
+ xor edi,esi\r
+ mov esi,DWORD [12+esp]\r
+ ror edx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [16+esp]\r
+ xor edx,ecx\r
+ mov DWORD [72+esp],ebx\r
+ xor esi,edi\r
+ ror edx,5\r
+ and esi,ecx\r
+ mov DWORD [8+esp],ecx\r
+ xor edx,ecx\r
+ add ebx,DWORD [20+esp]\r
+ xor edi,esi\r
+ ror edx,6\r
+ mov ecx,eax\r
+ add ebx,edi\r
+ ror ecx,9\r
+ mov esi,eax\r
+ mov edi,DWORD [28+esp]\r
+ xor ecx,eax\r
+ mov DWORD [24+esp],eax\r
+ xor eax,edi\r
+ ror ecx,11\r
+ and ebp,eax\r
+ lea edx,[2952996808+edx*1+ebx]\r
+ xor ecx,esi\r
+ xor ebp,edi\r
+ mov esi,DWORD [80+esp]\r
+ ror ecx,2\r
+ add ebp,edx\r
+ add edx,DWORD [4+esp]\r
+ add ebp,ecx\r
+ mov ecx,DWORD [68+esp]\r
+ mov ebx,esi\r
+ ror esi,11\r
+ mov edi,ecx\r
+ ror ecx,2\r
+ xor esi,ebx\r
+ shr ebx,3\r
+ ror esi,7\r
+ xor ecx,edi\r
+ xor ebx,esi\r
+ ror ecx,17\r
+ add ebx,DWORD [76+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [48+esp]\r
+ mov esi,edx\r
+ xor edi,ecx\r
+ mov ecx,DWORD [8+esp]\r
+ ror edx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [12+esp]\r
+ xor edx,esi\r
+ mov DWORD [76+esp],ebx\r
+ xor ecx,edi\r
+ ror edx,5\r
+ and ecx,esi\r
+ mov DWORD [4+esp],esi\r
+ xor edx,esi\r
+ add ebx,DWORD [16+esp]\r
+ xor edi,ecx\r
+ ror edx,6\r
+ mov esi,ebp\r
+ add ebx,edi\r
+ ror esi,9\r
+ mov ecx,ebp\r
+ mov edi,DWORD [24+esp]\r
+ xor esi,ebp\r
+ mov DWORD [20+esp],ebp\r
+ xor ebp,edi\r
+ ror esi,11\r
+ and eax,ebp\r
+ lea edx,[3210313671+edx*1+ebx]\r
+ xor esi,ecx\r
+ xor eax,edi\r
+ mov ecx,DWORD [84+esp]\r
+ ror esi,2\r
+ add eax,edx\r
+ add edx,DWORD [esp]\r
+ add eax,esi\r
+ mov esi,DWORD [72+esp]\r
+ mov ebx,ecx\r
+ ror ecx,11\r
+ mov edi,esi\r
+ ror esi,2\r
+ xor ecx,ebx\r
+ shr ebx,3\r
+ ror ecx,7\r
+ xor esi,edi\r
+ xor ebx,ecx\r
+ ror esi,17\r
+ add ebx,DWORD [80+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [52+esp]\r
+ mov ecx,edx\r
+ xor edi,esi\r
+ mov esi,DWORD [4+esp]\r
+ ror edx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [8+esp]\r
+ xor edx,ecx\r
+ mov DWORD [80+esp],ebx\r
+ xor esi,edi\r
+ ror edx,5\r
+ and esi,ecx\r
+ mov DWORD [esp],ecx\r
+ xor edx,ecx\r
+ add ebx,DWORD [12+esp]\r
+ xor edi,esi\r
+ ror edx,6\r
+ mov ecx,eax\r
+ add ebx,edi\r
+ ror ecx,9\r
+ mov esi,eax\r
+ mov edi,DWORD [20+esp]\r
+ xor ecx,eax\r
+ mov DWORD [16+esp],eax\r
+ xor eax,edi\r
+ ror ecx,11\r
+ and ebp,eax\r
+ lea edx,[3336571891+edx*1+ebx]\r
+ xor ecx,esi\r
+ xor ebp,edi\r
+ mov esi,DWORD [88+esp]\r
+ ror ecx,2\r
+ add ebp,edx\r
+ add edx,DWORD [28+esp]\r
+ add ebp,ecx\r
+ mov ecx,DWORD [76+esp]\r
+ mov ebx,esi\r
+ ror esi,11\r
+ mov edi,ecx\r
+ ror ecx,2\r
+ xor esi,ebx\r
+ shr ebx,3\r
+ ror esi,7\r
+ xor ecx,edi\r
+ xor ebx,esi\r
+ ror ecx,17\r
+ add ebx,DWORD [84+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [56+esp]\r
+ mov esi,edx\r
+ xor edi,ecx\r
+ mov ecx,DWORD [esp]\r
+ ror edx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [4+esp]\r
+ xor edx,esi\r
+ mov DWORD [84+esp],ebx\r
+ xor ecx,edi\r
+ ror edx,5\r
+ and ecx,esi\r
+ mov DWORD [28+esp],esi\r
+ xor edx,esi\r
+ add ebx,DWORD [8+esp]\r
+ xor edi,ecx\r
+ ror edx,6\r
+ mov esi,ebp\r
+ add ebx,edi\r
+ ror esi,9\r
+ mov ecx,ebp\r
+ mov edi,DWORD [16+esp]\r
+ xor esi,ebp\r
+ mov DWORD [12+esp],ebp\r
+ xor ebp,edi\r
+ ror esi,11\r
+ and eax,ebp\r
+ lea edx,[3584528711+edx*1+ebx]\r
+ xor esi,ecx\r
+ xor eax,edi\r
+ mov ecx,DWORD [92+esp]\r
+ ror esi,2\r
+ add eax,edx\r
+ add edx,DWORD [24+esp]\r
+ add eax,esi\r
+ mov esi,DWORD [80+esp]\r
+ mov ebx,ecx\r
+ ror ecx,11\r
+ mov edi,esi\r
+ ror esi,2\r
+ xor ecx,ebx\r
+ shr ebx,3\r
+ ror ecx,7\r
+ xor esi,edi\r
+ xor ebx,ecx\r
+ ror esi,17\r
+ add ebx,DWORD [88+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [60+esp]\r
+ mov ecx,edx\r
+ xor edi,esi\r
+ mov esi,DWORD [28+esp]\r
+ ror edx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [esp]\r
+ xor edx,ecx\r
+ mov DWORD [88+esp],ebx\r
+ xor esi,edi\r
+ ror edx,5\r
+ and esi,ecx\r
+ mov DWORD [24+esp],ecx\r
+ xor edx,ecx\r
+ add ebx,DWORD [4+esp]\r
+ xor edi,esi\r
+ ror edx,6\r
+ mov ecx,eax\r
+ add ebx,edi\r
+ ror ecx,9\r
+ mov esi,eax\r
+ mov edi,DWORD [12+esp]\r
+ xor ecx,eax\r
+ mov DWORD [8+esp],eax\r
+ xor eax,edi\r
+ ror ecx,11\r
+ and ebp,eax\r
+ lea edx,[113926993+edx*1+ebx]\r
+ xor ecx,esi\r
+ xor ebp,edi\r
+ mov esi,DWORD [32+esp]\r
+ ror ecx,2\r
+ add ebp,edx\r
+ add edx,DWORD [20+esp]\r
+ add ebp,ecx\r
+ mov ecx,DWORD [84+esp]\r
+ mov ebx,esi\r
+ ror esi,11\r
+ mov edi,ecx\r
+ ror ecx,2\r
+ xor esi,ebx\r
+ shr ebx,3\r
+ ror esi,7\r
+ xor ecx,edi\r
+ xor ebx,esi\r
+ ror ecx,17\r
+ add ebx,DWORD [92+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [64+esp]\r
+ mov esi,edx\r
+ xor edi,ecx\r
+ mov ecx,DWORD [24+esp]\r
+ ror edx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [28+esp]\r
+ xor edx,esi\r
+ mov DWORD [92+esp],ebx\r
+ xor ecx,edi\r
+ ror edx,5\r
+ and ecx,esi\r
+ mov DWORD [20+esp],esi\r
+ xor edx,esi\r
+ add ebx,DWORD [esp]\r
+ xor edi,ecx\r
+ ror edx,6\r
+ mov esi,ebp\r
+ add ebx,edi\r
+ ror esi,9\r
+ mov ecx,ebp\r
+ mov edi,DWORD [8+esp]\r
+ xor esi,ebp\r
+ mov DWORD [4+esp],ebp\r
+ xor ebp,edi\r
+ ror esi,11\r
+ and eax,ebp\r
+ lea edx,[338241895+edx*1+ebx]\r
+ xor esi,ecx\r
+ xor eax,edi\r
+ mov ecx,DWORD [36+esp]\r
+ ror esi,2\r
+ add eax,edx\r
+ add edx,DWORD [16+esp]\r
+ add eax,esi\r
+ mov esi,DWORD [88+esp]\r
+ mov ebx,ecx\r
+ ror ecx,11\r
+ mov edi,esi\r
+ ror esi,2\r
+ xor ecx,ebx\r
+ shr ebx,3\r
+ ror ecx,7\r
+ xor esi,edi\r
+ xor ebx,ecx\r
+ ror esi,17\r
+ add ebx,DWORD [32+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [68+esp]\r
+ mov ecx,edx\r
+ xor edi,esi\r
+ mov esi,DWORD [20+esp]\r
+ ror edx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [24+esp]\r
+ xor edx,ecx\r
+ mov DWORD [32+esp],ebx\r
+ xor esi,edi\r
+ ror edx,5\r
+ and esi,ecx\r
+ mov DWORD [16+esp],ecx\r
+ xor edx,ecx\r
+ add ebx,DWORD [28+esp]\r
+ xor edi,esi\r
+ ror edx,6\r
+ mov ecx,eax\r
+ add ebx,edi\r
+ ror ecx,9\r
+ mov esi,eax\r
+ mov edi,DWORD [4+esp]\r
+ xor ecx,eax\r
+ mov DWORD [esp],eax\r
+ xor eax,edi\r
+ ror ecx,11\r
+ and ebp,eax\r
+ lea edx,[666307205+edx*1+ebx]\r
+ xor ecx,esi\r
+ xor ebp,edi\r
+ mov esi,DWORD [40+esp]\r
+ ror ecx,2\r
+ add ebp,edx\r
+ add edx,DWORD [12+esp]\r
+ add ebp,ecx\r
+ mov ecx,DWORD [92+esp]\r
+ mov ebx,esi\r
+ ror esi,11\r
+ mov edi,ecx\r
+ ror ecx,2\r
+ xor esi,ebx\r
+ shr ebx,3\r
+ ror esi,7\r
+ xor ecx,edi\r
+ xor ebx,esi\r
+ ror ecx,17\r
+ add ebx,DWORD [36+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [72+esp]\r
+ mov esi,edx\r
+ xor edi,ecx\r
+ mov ecx,DWORD [16+esp]\r
+ ror edx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [20+esp]\r
+ xor edx,esi\r
+ mov DWORD [36+esp],ebx\r
+ xor ecx,edi\r
+ ror edx,5\r
+ and ecx,esi\r
+ mov DWORD [12+esp],esi\r
+ xor edx,esi\r
+ add ebx,DWORD [24+esp]\r
+ xor edi,ecx\r
+ ror edx,6\r
+ mov esi,ebp\r
+ add ebx,edi\r
+ ror esi,9\r
+ mov ecx,ebp\r
+ mov edi,DWORD [esp]\r
+ xor esi,ebp\r
+ mov DWORD [28+esp],ebp\r
+ xor ebp,edi\r
+ ror esi,11\r
+ and eax,ebp\r
+ lea edx,[773529912+edx*1+ebx]\r
+ xor esi,ecx\r
+ xor eax,edi\r
+ mov ecx,DWORD [44+esp]\r
+ ror esi,2\r
+ add eax,edx\r
+ add edx,DWORD [8+esp]\r
+ add eax,esi\r
+ mov esi,DWORD [32+esp]\r
+ mov ebx,ecx\r
+ ror ecx,11\r
+ mov edi,esi\r
+ ror esi,2\r
+ xor ecx,ebx\r
+ shr ebx,3\r
+ ror ecx,7\r
+ xor esi,edi\r
+ xor ebx,ecx\r
+ ror esi,17\r
+ add ebx,DWORD [40+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [76+esp]\r
+ mov ecx,edx\r
+ xor edi,esi\r
+ mov esi,DWORD [12+esp]\r
+ ror edx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [16+esp]\r
+ xor edx,ecx\r
+ mov DWORD [40+esp],ebx\r
+ xor esi,edi\r
+ ror edx,5\r
+ and esi,ecx\r
+ mov DWORD [8+esp],ecx\r
+ xor edx,ecx\r
+ add ebx,DWORD [20+esp]\r
+ xor edi,esi\r
+ ror edx,6\r
+ mov ecx,eax\r
+ add ebx,edi\r
+ ror ecx,9\r
+ mov esi,eax\r
+ mov edi,DWORD [28+esp]\r
+ xor ecx,eax\r
+ mov DWORD [24+esp],eax\r
+ xor eax,edi\r
+ ror ecx,11\r
+ and ebp,eax\r
+ lea edx,[1294757372+edx*1+ebx]\r
+ xor ecx,esi\r
+ xor ebp,edi\r
+ mov esi,DWORD [48+esp]\r
+ ror ecx,2\r
+ add ebp,edx\r
+ add edx,DWORD [4+esp]\r
+ add ebp,ecx\r
+ mov ecx,DWORD [36+esp]\r
+ mov ebx,esi\r
+ ror esi,11\r
+ mov edi,ecx\r
+ ror ecx,2\r
+ xor esi,ebx\r
+ shr ebx,3\r
+ ror esi,7\r
+ xor ecx,edi\r
+ xor ebx,esi\r
+ ror ecx,17\r
+ add ebx,DWORD [44+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [80+esp]\r
+ mov esi,edx\r
+ xor edi,ecx\r
+ mov ecx,DWORD [8+esp]\r
+ ror edx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [12+esp]\r
+ xor edx,esi\r
+ mov DWORD [44+esp],ebx\r
+ xor ecx,edi\r
+ ror edx,5\r
+ and ecx,esi\r
+ mov DWORD [4+esp],esi\r
+ xor edx,esi\r
+ add ebx,DWORD [16+esp]\r
+ xor edi,ecx\r
+ ror edx,6\r
+ mov esi,ebp\r
+ add ebx,edi\r
+ ror esi,9\r
+ mov ecx,ebp\r
+ mov edi,DWORD [24+esp]\r
+ xor esi,ebp\r
+ mov DWORD [20+esp],ebp\r
+ xor ebp,edi\r
+ ror esi,11\r
+ and eax,ebp\r
+ lea edx,[1396182291+edx*1+ebx]\r
+ xor esi,ecx\r
+ xor eax,edi\r
+ mov ecx,DWORD [52+esp]\r
+ ror esi,2\r
+ add eax,edx\r
+ add edx,DWORD [esp]\r
+ add eax,esi\r
+ mov esi,DWORD [40+esp]\r
+ mov ebx,ecx\r
+ ror ecx,11\r
+ mov edi,esi\r
+ ror esi,2\r
+ xor ecx,ebx\r
+ shr ebx,3\r
+ ror ecx,7\r
+ xor esi,edi\r
+ xor ebx,ecx\r
+ ror esi,17\r
+ add ebx,DWORD [48+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [84+esp]\r
+ mov ecx,edx\r
+ xor edi,esi\r
+ mov esi,DWORD [4+esp]\r
+ ror edx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [8+esp]\r
+ xor edx,ecx\r
+ mov DWORD [48+esp],ebx\r
+ xor esi,edi\r
+ ror edx,5\r
+ and esi,ecx\r
+ mov DWORD [esp],ecx\r
+ xor edx,ecx\r
+ add ebx,DWORD [12+esp]\r
+ xor edi,esi\r
+ ror edx,6\r
+ mov ecx,eax\r
+ add ebx,edi\r
+ ror ecx,9\r
+ mov esi,eax\r
+ mov edi,DWORD [20+esp]\r
+ xor ecx,eax\r
+ mov DWORD [16+esp],eax\r
+ xor eax,edi\r
+ ror ecx,11\r
+ and ebp,eax\r
+ lea edx,[1695183700+edx*1+ebx]\r
+ xor ecx,esi\r
+ xor ebp,edi\r
+ mov esi,DWORD [56+esp]\r
+ ror ecx,2\r
+ add ebp,edx\r
+ add edx,DWORD [28+esp]\r
+ add ebp,ecx\r
+ mov ecx,DWORD [44+esp]\r
+ mov ebx,esi\r
+ ror esi,11\r
+ mov edi,ecx\r
+ ror ecx,2\r
+ xor esi,ebx\r
+ shr ebx,3\r
+ ror esi,7\r
+ xor ecx,edi\r
+ xor ebx,esi\r
+ ror ecx,17\r
+ add ebx,DWORD [52+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [88+esp]\r
+ mov esi,edx\r
+ xor edi,ecx\r
+ mov ecx,DWORD [esp]\r
+ ror edx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [4+esp]\r
+ xor edx,esi\r
+ mov DWORD [52+esp],ebx\r
+ xor ecx,edi\r
+ ror edx,5\r
+ and ecx,esi\r
+ mov DWORD [28+esp],esi\r
+ xor edx,esi\r
+ add ebx,DWORD [8+esp]\r
+ xor edi,ecx\r
+ ror edx,6\r
+ mov esi,ebp\r
+ add ebx,edi\r
+ ror esi,9\r
+ mov ecx,ebp\r
+ mov edi,DWORD [16+esp]\r
+ xor esi,ebp\r
+ mov DWORD [12+esp],ebp\r
+ xor ebp,edi\r
+ ror esi,11\r
+ and eax,ebp\r
+ lea edx,[1986661051+edx*1+ebx]\r
+ xor esi,ecx\r
+ xor eax,edi\r
+ mov ecx,DWORD [60+esp]\r
+ ror esi,2\r
+ add eax,edx\r
+ add edx,DWORD [24+esp]\r
+ add eax,esi\r
+ mov esi,DWORD [48+esp]\r
+ mov ebx,ecx\r
+ ror ecx,11\r
+ mov edi,esi\r
+ ror esi,2\r
+ xor ecx,ebx\r
+ shr ebx,3\r
+ ror ecx,7\r
+ xor esi,edi\r
+ xor ebx,ecx\r
+ ror esi,17\r
+ add ebx,DWORD [56+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [92+esp]\r
+ mov ecx,edx\r
+ xor edi,esi\r
+ mov esi,DWORD [28+esp]\r
+ ror edx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [esp]\r
+ xor edx,ecx\r
+ mov DWORD [56+esp],ebx\r
+ xor esi,edi\r
+ ror edx,5\r
+ and esi,ecx\r
+ mov DWORD [24+esp],ecx\r
+ xor edx,ecx\r
+ add ebx,DWORD [4+esp]\r
+ xor edi,esi\r
+ ror edx,6\r
+ mov ecx,eax\r
+ add ebx,edi\r
+ ror ecx,9\r
+ mov esi,eax\r
+ mov edi,DWORD [12+esp]\r
+ xor ecx,eax\r
+ mov DWORD [8+esp],eax\r
+ xor eax,edi\r
+ ror ecx,11\r
+ and ebp,eax\r
+ lea edx,[2177026350+edx*1+ebx]\r
+ xor ecx,esi\r
+ xor ebp,edi\r
+ mov esi,DWORD [64+esp]\r
+ ror ecx,2\r
+ add ebp,edx\r
+ add edx,DWORD [20+esp]\r
+ add ebp,ecx\r
+ mov ecx,DWORD [52+esp]\r
+ mov ebx,esi\r
+ ror esi,11\r
+ mov edi,ecx\r
+ ror ecx,2\r
+ xor esi,ebx\r
+ shr ebx,3\r
+ ror esi,7\r
+ xor ecx,edi\r
+ xor ebx,esi\r
+ ror ecx,17\r
+ add ebx,DWORD [60+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [32+esp]\r
+ mov esi,edx\r
+ xor edi,ecx\r
+ mov ecx,DWORD [24+esp]\r
+ ror edx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [28+esp]\r
+ xor edx,esi\r
+ mov DWORD [60+esp],ebx\r
+ xor ecx,edi\r
+ ror edx,5\r
+ and ecx,esi\r
+ mov DWORD [20+esp],esi\r
+ xor edx,esi\r
+ add ebx,DWORD [esp]\r
+ xor edi,ecx\r
+ ror edx,6\r
+ mov esi,ebp\r
+ add ebx,edi\r
+ ror esi,9\r
+ mov ecx,ebp\r
+ mov edi,DWORD [8+esp]\r
+ xor esi,ebp\r
+ mov DWORD [4+esp],ebp\r
+ xor ebp,edi\r
+ ror esi,11\r
+ and eax,ebp\r
+ lea edx,[2456956037+edx*1+ebx]\r
+ xor esi,ecx\r
+ xor eax,edi\r
+ mov ecx,DWORD [68+esp]\r
+ ror esi,2\r
+ add eax,edx\r
+ add edx,DWORD [16+esp]\r
+ add eax,esi\r
+ mov esi,DWORD [56+esp]\r
+ mov ebx,ecx\r
+ ror ecx,11\r
+ mov edi,esi\r
+ ror esi,2\r
+ xor ecx,ebx\r
+ shr ebx,3\r
+ ror ecx,7\r
+ xor esi,edi\r
+ xor ebx,ecx\r
+ ror esi,17\r
+ add ebx,DWORD [64+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [36+esp]\r
+ mov ecx,edx\r
+ xor edi,esi\r
+ mov esi,DWORD [20+esp]\r
+ ror edx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [24+esp]\r
+ xor edx,ecx\r
+ mov DWORD [64+esp],ebx\r
+ xor esi,edi\r
+ ror edx,5\r
+ and esi,ecx\r
+ mov DWORD [16+esp],ecx\r
+ xor edx,ecx\r
+ add ebx,DWORD [28+esp]\r
+ xor edi,esi\r
+ ror edx,6\r
+ mov ecx,eax\r
+ add ebx,edi\r
+ ror ecx,9\r
+ mov esi,eax\r
+ mov edi,DWORD [4+esp]\r
+ xor ecx,eax\r
+ mov DWORD [esp],eax\r
+ xor eax,edi\r
+ ror ecx,11\r
+ and ebp,eax\r
+ lea edx,[2730485921+edx*1+ebx]\r
+ xor ecx,esi\r
+ xor ebp,edi\r
+ mov esi,DWORD [72+esp]\r
+ ror ecx,2\r
+ add ebp,edx\r
+ add edx,DWORD [12+esp]\r
+ add ebp,ecx\r
+ mov ecx,DWORD [60+esp]\r
+ mov ebx,esi\r
+ ror esi,11\r
+ mov edi,ecx\r
+ ror ecx,2\r
+ xor esi,ebx\r
+ shr ebx,3\r
+ ror esi,7\r
+ xor ecx,edi\r
+ xor ebx,esi\r
+ ror ecx,17\r
+ add ebx,DWORD [68+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [40+esp]\r
+ mov esi,edx\r
+ xor edi,ecx\r
+ mov ecx,DWORD [16+esp]\r
+ ror edx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [20+esp]\r
+ xor edx,esi\r
+ mov DWORD [68+esp],ebx\r
+ xor ecx,edi\r
+ ror edx,5\r
+ and ecx,esi\r
+ mov DWORD [12+esp],esi\r
+ xor edx,esi\r
+ add ebx,DWORD [24+esp]\r
+ xor edi,ecx\r
+ ror edx,6\r
+ mov esi,ebp\r
+ add ebx,edi\r
+ ror esi,9\r
+ mov ecx,ebp\r
+ mov edi,DWORD [esp]\r
+ xor esi,ebp\r
+ mov DWORD [28+esp],ebp\r
+ xor ebp,edi\r
+ ror esi,11\r
+ and eax,ebp\r
+ lea edx,[2820302411+edx*1+ebx]\r
+ xor esi,ecx\r
+ xor eax,edi\r
+ mov ecx,DWORD [76+esp]\r
+ ror esi,2\r
+ add eax,edx\r
+ add edx,DWORD [8+esp]\r
+ add eax,esi\r
+ mov esi,DWORD [64+esp]\r
+ mov ebx,ecx\r
+ ror ecx,11\r
+ mov edi,esi\r
+ ror esi,2\r
+ xor ecx,ebx\r
+ shr ebx,3\r
+ ror ecx,7\r
+ xor esi,edi\r
+ xor ebx,ecx\r
+ ror esi,17\r
+ add ebx,DWORD [72+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [44+esp]\r
+ mov ecx,edx\r
+ xor edi,esi\r
+ mov esi,DWORD [12+esp]\r
+ ror edx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [16+esp]\r
+ xor edx,ecx\r
+ mov DWORD [72+esp],ebx\r
+ xor esi,edi\r
+ ror edx,5\r
+ and esi,ecx\r
+ mov DWORD [8+esp],ecx\r
+ xor edx,ecx\r
+ add ebx,DWORD [20+esp]\r
+ xor edi,esi\r
+ ror edx,6\r
+ mov ecx,eax\r
+ add ebx,edi\r
+ ror ecx,9\r
+ mov esi,eax\r
+ mov edi,DWORD [28+esp]\r
+ xor ecx,eax\r
+ mov DWORD [24+esp],eax\r
+ xor eax,edi\r
+ ror ecx,11\r
+ and ebp,eax\r
+ lea edx,[3259730800+edx*1+ebx]\r
+ xor ecx,esi\r
+ xor ebp,edi\r
+ mov esi,DWORD [80+esp]\r
+ ror ecx,2\r
+ add ebp,edx\r
+ add edx,DWORD [4+esp]\r
+ add ebp,ecx\r
+ mov ecx,DWORD [68+esp]\r
+ mov ebx,esi\r
+ ror esi,11\r
+ mov edi,ecx\r
+ ror ecx,2\r
+ xor esi,ebx\r
+ shr ebx,3\r
+ ror esi,7\r
+ xor ecx,edi\r
+ xor ebx,esi\r
+ ror ecx,17\r
+ add ebx,DWORD [76+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [48+esp]\r
+ mov esi,edx\r
+ xor edi,ecx\r
+ mov ecx,DWORD [8+esp]\r
+ ror edx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [12+esp]\r
+ xor edx,esi\r
+ mov DWORD [76+esp],ebx\r
+ xor ecx,edi\r
+ ror edx,5\r
+ and ecx,esi\r
+ mov DWORD [4+esp],esi\r
+ xor edx,esi\r
+ add ebx,DWORD [16+esp]\r
+ xor edi,ecx\r
+ ror edx,6\r
+ mov esi,ebp\r
+ add ebx,edi\r
+ ror esi,9\r
+ mov ecx,ebp\r
+ mov edi,DWORD [24+esp]\r
+ xor esi,ebp\r
+ mov DWORD [20+esp],ebp\r
+ xor ebp,edi\r
+ ror esi,11\r
+ and eax,ebp\r
+ lea edx,[3345764771+edx*1+ebx]\r
+ xor esi,ecx\r
+ xor eax,edi\r
+ mov ecx,DWORD [84+esp]\r
+ ror esi,2\r
+ add eax,edx\r
+ add edx,DWORD [esp]\r
+ add eax,esi\r
+ mov esi,DWORD [72+esp]\r
+ mov ebx,ecx\r
+ ror ecx,11\r
+ mov edi,esi\r
+ ror esi,2\r
+ xor ecx,ebx\r
+ shr ebx,3\r
+ ror ecx,7\r
+ xor esi,edi\r
+ xor ebx,ecx\r
+ ror esi,17\r
+ add ebx,DWORD [80+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [52+esp]\r
+ mov ecx,edx\r
+ xor edi,esi\r
+ mov esi,DWORD [4+esp]\r
+ ror edx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [8+esp]\r
+ xor edx,ecx\r
+ mov DWORD [80+esp],ebx\r
+ xor esi,edi\r
+ ror edx,5\r
+ and esi,ecx\r
+ mov DWORD [esp],ecx\r
+ xor edx,ecx\r
+ add ebx,DWORD [12+esp]\r
+ xor edi,esi\r
+ ror edx,6\r
+ mov ecx,eax\r
+ add ebx,edi\r
+ ror ecx,9\r
+ mov esi,eax\r
+ mov edi,DWORD [20+esp]\r
+ xor ecx,eax\r
+ mov DWORD [16+esp],eax\r
+ xor eax,edi\r
+ ror ecx,11\r
+ and ebp,eax\r
+ lea edx,[3516065817+edx*1+ebx]\r
+ xor ecx,esi\r
+ xor ebp,edi\r
+ mov esi,DWORD [88+esp]\r
+ ror ecx,2\r
+ add ebp,edx\r
+ add edx,DWORD [28+esp]\r
+ add ebp,ecx\r
+ mov ecx,DWORD [76+esp]\r
+ mov ebx,esi\r
+ ror esi,11\r
+ mov edi,ecx\r
+ ror ecx,2\r
+ xor esi,ebx\r
+ shr ebx,3\r
+ ror esi,7\r
+ xor ecx,edi\r
+ xor ebx,esi\r
+ ror ecx,17\r
+ add ebx,DWORD [84+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [56+esp]\r
+ mov esi,edx\r
+ xor edi,ecx\r
+ mov ecx,DWORD [esp]\r
+ ror edx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [4+esp]\r
+ xor edx,esi\r
+ mov DWORD [84+esp],ebx\r
+ xor ecx,edi\r
+ ror edx,5\r
+ and ecx,esi\r
+ mov DWORD [28+esp],esi\r
+ xor edx,esi\r
+ add ebx,DWORD [8+esp]\r
+ xor edi,ecx\r
+ ror edx,6\r
+ mov esi,ebp\r
+ add ebx,edi\r
+ ror esi,9\r
+ mov ecx,ebp\r
+ mov edi,DWORD [16+esp]\r
+ xor esi,ebp\r
+ mov DWORD [12+esp],ebp\r
+ xor ebp,edi\r
+ ror esi,11\r
+ and eax,ebp\r
+ lea edx,[3600352804+edx*1+ebx]\r
+ xor esi,ecx\r
+ xor eax,edi\r
+ mov ecx,DWORD [92+esp]\r
+ ror esi,2\r
+ add eax,edx\r
+ add edx,DWORD [24+esp]\r
+ add eax,esi\r
+ mov esi,DWORD [80+esp]\r
+ mov ebx,ecx\r
+ ror ecx,11\r
+ mov edi,esi\r
+ ror esi,2\r
+ xor ecx,ebx\r
+ shr ebx,3\r
+ ror ecx,7\r
+ xor esi,edi\r
+ xor ebx,ecx\r
+ ror esi,17\r
+ add ebx,DWORD [88+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [60+esp]\r
+ mov ecx,edx\r
+ xor edi,esi\r
+ mov esi,DWORD [28+esp]\r
+ ror edx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [esp]\r
+ xor edx,ecx\r
+ mov DWORD [88+esp],ebx\r
+ xor esi,edi\r
+ ror edx,5\r
+ and esi,ecx\r
+ mov DWORD [24+esp],ecx\r
+ xor edx,ecx\r
+ add ebx,DWORD [4+esp]\r
+ xor edi,esi\r
+ ror edx,6\r
+ mov ecx,eax\r
+ add ebx,edi\r
+ ror ecx,9\r
+ mov esi,eax\r
+ mov edi,DWORD [12+esp]\r
+ xor ecx,eax\r
+ mov DWORD [8+esp],eax\r
+ xor eax,edi\r
+ ror ecx,11\r
+ and ebp,eax\r
+ lea edx,[4094571909+edx*1+ebx]\r
+ xor ecx,esi\r
+ xor ebp,edi\r
+ mov esi,DWORD [32+esp]\r
+ ror ecx,2\r
+ add ebp,edx\r
+ add edx,DWORD [20+esp]\r
+ add ebp,ecx\r
+ mov ecx,DWORD [84+esp]\r
+ mov ebx,esi\r
+ ror esi,11\r
+ mov edi,ecx\r
+ ror ecx,2\r
+ xor esi,ebx\r
+ shr ebx,3\r
+ ror esi,7\r
+ xor ecx,edi\r
+ xor ebx,esi\r
+ ror ecx,17\r
+ add ebx,DWORD [92+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [64+esp]\r
+ mov esi,edx\r
+ xor edi,ecx\r
+ mov ecx,DWORD [24+esp]\r
+ ror edx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [28+esp]\r
+ xor edx,esi\r
+ mov DWORD [92+esp],ebx\r
+ xor ecx,edi\r
+ ror edx,5\r
+ and ecx,esi\r
+ mov DWORD [20+esp],esi\r
+ xor edx,esi\r
+ add ebx,DWORD [esp]\r
+ xor edi,ecx\r
+ ror edx,6\r
+ mov esi,ebp\r
+ add ebx,edi\r
+ ror esi,9\r
+ mov ecx,ebp\r
+ mov edi,DWORD [8+esp]\r
+ xor esi,ebp\r
+ mov DWORD [4+esp],ebp\r
+ xor ebp,edi\r
+ ror esi,11\r
+ and eax,ebp\r
+ lea edx,[275423344+edx*1+ebx]\r
+ xor esi,ecx\r
+ xor eax,edi\r
+ mov ecx,DWORD [36+esp]\r
+ ror esi,2\r
+ add eax,edx\r
+ add edx,DWORD [16+esp]\r
+ add eax,esi\r
+ mov esi,DWORD [88+esp]\r
+ mov ebx,ecx\r
+ ror ecx,11\r
+ mov edi,esi\r
+ ror esi,2\r
+ xor ecx,ebx\r
+ shr ebx,3\r
+ ror ecx,7\r
+ xor esi,edi\r
+ xor ebx,ecx\r
+ ror esi,17\r
+ add ebx,DWORD [32+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [68+esp]\r
+ mov ecx,edx\r
+ xor edi,esi\r
+ mov esi,DWORD [20+esp]\r
+ ror edx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [24+esp]\r
+ xor edx,ecx\r
+ mov DWORD [32+esp],ebx\r
+ xor esi,edi\r
+ ror edx,5\r
+ and esi,ecx\r
+ mov DWORD [16+esp],ecx\r
+ xor edx,ecx\r
+ add ebx,DWORD [28+esp]\r
+ xor edi,esi\r
+ ror edx,6\r
+ mov ecx,eax\r
+ add ebx,edi\r
+ ror ecx,9\r
+ mov esi,eax\r
+ mov edi,DWORD [4+esp]\r
+ xor ecx,eax\r
+ mov DWORD [esp],eax\r
+ xor eax,edi\r
+ ror ecx,11\r
+ and ebp,eax\r
+ lea edx,[430227734+edx*1+ebx]\r
+ xor ecx,esi\r
+ xor ebp,edi\r
+ mov esi,DWORD [40+esp]\r
+ ror ecx,2\r
+ add ebp,edx\r
+ add edx,DWORD [12+esp]\r
+ add ebp,ecx\r
+ mov ecx,DWORD [92+esp]\r
+ mov ebx,esi\r
+ ror esi,11\r
+ mov edi,ecx\r
+ ror ecx,2\r
+ xor esi,ebx\r
+ shr ebx,3\r
+ ror esi,7\r
+ xor ecx,edi\r
+ xor ebx,esi\r
+ ror ecx,17\r
+ add ebx,DWORD [36+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [72+esp]\r
+ mov esi,edx\r
+ xor edi,ecx\r
+ mov ecx,DWORD [16+esp]\r
+ ror edx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [20+esp]\r
+ xor edx,esi\r
+ mov DWORD [36+esp],ebx\r
+ xor ecx,edi\r
+ ror edx,5\r
+ and ecx,esi\r
+ mov DWORD [12+esp],esi\r
+ xor edx,esi\r
+ add ebx,DWORD [24+esp]\r
+ xor edi,ecx\r
+ ror edx,6\r
+ mov esi,ebp\r
+ add ebx,edi\r
+ ror esi,9\r
+ mov ecx,ebp\r
+ mov edi,DWORD [esp]\r
+ xor esi,ebp\r
+ mov DWORD [28+esp],ebp\r
+ xor ebp,edi\r
+ ror esi,11\r
+ and eax,ebp\r
+ lea edx,[506948616+edx*1+ebx]\r
+ xor esi,ecx\r
+ xor eax,edi\r
+ mov ecx,DWORD [44+esp]\r
+ ror esi,2\r
+ add eax,edx\r
+ add edx,DWORD [8+esp]\r
+ add eax,esi\r
+ mov esi,DWORD [32+esp]\r
+ mov ebx,ecx\r
+ ror ecx,11\r
+ mov edi,esi\r
+ ror esi,2\r
+ xor ecx,ebx\r
+ shr ebx,3\r
+ ror ecx,7\r
+ xor esi,edi\r
+ xor ebx,ecx\r
+ ror esi,17\r
+ add ebx,DWORD [40+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [76+esp]\r
+ mov ecx,edx\r
+ xor edi,esi\r
+ mov esi,DWORD [12+esp]\r
+ ror edx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [16+esp]\r
+ xor edx,ecx\r
+ mov DWORD [40+esp],ebx\r
+ xor esi,edi\r
+ ror edx,5\r
+ and esi,ecx\r
+ mov DWORD [8+esp],ecx\r
+ xor edx,ecx\r
+ add ebx,DWORD [20+esp]\r
+ xor edi,esi\r
+ ror edx,6\r
+ mov ecx,eax\r
+ add ebx,edi\r
+ ror ecx,9\r
+ mov esi,eax\r
+ mov edi,DWORD [28+esp]\r
+ xor ecx,eax\r
+ mov DWORD [24+esp],eax\r
+ xor eax,edi\r
+ ror ecx,11\r
+ and ebp,eax\r
+ lea edx,[659060556+edx*1+ebx]\r
+ xor ecx,esi\r
+ xor ebp,edi\r
+ mov esi,DWORD [48+esp]\r
+ ror ecx,2\r
+ add ebp,edx\r
+ add edx,DWORD [4+esp]\r
+ add ebp,ecx\r
+ mov ecx,DWORD [36+esp]\r
+ mov ebx,esi\r
+ ror esi,11\r
+ mov edi,ecx\r
+ ror ecx,2\r
+ xor esi,ebx\r
+ shr ebx,3\r
+ ror esi,7\r
+ xor ecx,edi\r
+ xor ebx,esi\r
+ ror ecx,17\r
+ add ebx,DWORD [44+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [80+esp]\r
+ mov esi,edx\r
+ xor edi,ecx\r
+ mov ecx,DWORD [8+esp]\r
+ ror edx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [12+esp]\r
+ xor edx,esi\r
+ mov DWORD [44+esp],ebx\r
+ xor ecx,edi\r
+ ror edx,5\r
+ and ecx,esi\r
+ mov DWORD [4+esp],esi\r
+ xor edx,esi\r
+ add ebx,DWORD [16+esp]\r
+ xor edi,ecx\r
+ ror edx,6\r
+ mov esi,ebp\r
+ add ebx,edi\r
+ ror esi,9\r
+ mov ecx,ebp\r
+ mov edi,DWORD [24+esp]\r
+ xor esi,ebp\r
+ mov DWORD [20+esp],ebp\r
+ xor ebp,edi\r
+ ror esi,11\r
+ and eax,ebp\r
+ lea edx,[883997877+edx*1+ebx]\r
+ xor esi,ecx\r
+ xor eax,edi\r
+ mov ecx,DWORD [52+esp]\r
+ ror esi,2\r
+ add eax,edx\r
+ add edx,DWORD [esp]\r
+ add eax,esi\r
+ mov esi,DWORD [40+esp]\r
+ mov ebx,ecx\r
+ ror ecx,11\r
+ mov edi,esi\r
+ ror esi,2\r
+ xor ecx,ebx\r
+ shr ebx,3\r
+ ror ecx,7\r
+ xor esi,edi\r
+ xor ebx,ecx\r
+ ror esi,17\r
+ add ebx,DWORD [48+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [84+esp]\r
+ mov ecx,edx\r
+ xor edi,esi\r
+ mov esi,DWORD [4+esp]\r
+ ror edx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [8+esp]\r
+ xor edx,ecx\r
+ mov DWORD [48+esp],ebx\r
+ xor esi,edi\r
+ ror edx,5\r
+ and esi,ecx\r
+ mov DWORD [esp],ecx\r
+ xor edx,ecx\r
+ add ebx,DWORD [12+esp]\r
+ xor edi,esi\r
+ ror edx,6\r
+ mov ecx,eax\r
+ add ebx,edi\r
+ ror ecx,9\r
+ mov esi,eax\r
+ mov edi,DWORD [20+esp]\r
+ xor ecx,eax\r
+ mov DWORD [16+esp],eax\r
+ xor eax,edi\r
+ ror ecx,11\r
+ and ebp,eax\r
+ lea edx,[958139571+edx*1+ebx]\r
+ xor ecx,esi\r
+ xor ebp,edi\r
+ mov esi,DWORD [56+esp]\r
+ ror ecx,2\r
+ add ebp,edx\r
+ add edx,DWORD [28+esp]\r
+ add ebp,ecx\r
+ mov ecx,DWORD [44+esp]\r
+ mov ebx,esi\r
+ ror esi,11\r
+ mov edi,ecx\r
+ ror ecx,2\r
+ xor esi,ebx\r
+ shr ebx,3\r
+ ror esi,7\r
+ xor ecx,edi\r
+ xor ebx,esi\r
+ ror ecx,17\r
+ add ebx,DWORD [52+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [88+esp]\r
+ mov esi,edx\r
+ xor edi,ecx\r
+ mov ecx,DWORD [esp]\r
+ ror edx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [4+esp]\r
+ xor edx,esi\r
+ mov DWORD [52+esp],ebx\r
+ xor ecx,edi\r
+ ror edx,5\r
+ and ecx,esi\r
+ mov DWORD [28+esp],esi\r
+ xor edx,esi\r
+ add ebx,DWORD [8+esp]\r
+ xor edi,ecx\r
+ ror edx,6\r
+ mov esi,ebp\r
+ add ebx,edi\r
+ ror esi,9\r
+ mov ecx,ebp\r
+ mov edi,DWORD [16+esp]\r
+ xor esi,ebp\r
+ mov DWORD [12+esp],ebp\r
+ xor ebp,edi\r
+ ror esi,11\r
+ and eax,ebp\r
+ lea edx,[1322822218+edx*1+ebx]\r
+ xor esi,ecx\r
+ xor eax,edi\r
+ mov ecx,DWORD [60+esp]\r
+ ror esi,2\r
+ add eax,edx\r
+ add edx,DWORD [24+esp]\r
+ add eax,esi\r
+ mov esi,DWORD [48+esp]\r
+ mov ebx,ecx\r
+ ror ecx,11\r
+ mov edi,esi\r
+ ror esi,2\r
+ xor ecx,ebx\r
+ shr ebx,3\r
+ ror ecx,7\r
+ xor esi,edi\r
+ xor ebx,ecx\r
+ ror esi,17\r
+ add ebx,DWORD [56+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [92+esp]\r
+ mov ecx,edx\r
+ xor edi,esi\r
+ mov esi,DWORD [28+esp]\r
+ ror edx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [esp]\r
+ xor edx,ecx\r
+ mov DWORD [56+esp],ebx\r
+ xor esi,edi\r
+ ror edx,5\r
+ and esi,ecx\r
+ mov DWORD [24+esp],ecx\r
+ xor edx,ecx\r
+ add ebx,DWORD [4+esp]\r
+ xor edi,esi\r
+ ror edx,6\r
+ mov ecx,eax\r
+ add ebx,edi\r
+ ror ecx,9\r
+ mov esi,eax\r
+ mov edi,DWORD [12+esp]\r
+ xor ecx,eax\r
+ mov DWORD [8+esp],eax\r
+ xor eax,edi\r
+ ror ecx,11\r
+ and ebp,eax\r
+ lea edx,[1537002063+edx*1+ebx]\r
+ xor ecx,esi\r
+ xor ebp,edi\r
+ mov esi,DWORD [64+esp]\r
+ ror ecx,2\r
+ add ebp,edx\r
+ add edx,DWORD [20+esp]\r
+ add ebp,ecx\r
+ mov ecx,DWORD [52+esp]\r
+ mov ebx,esi\r
+ ror esi,11\r
+ mov edi,ecx\r
+ ror ecx,2\r
+ xor esi,ebx\r
+ shr ebx,3\r
+ ror esi,7\r
+ xor ecx,edi\r
+ xor ebx,esi\r
+ ror ecx,17\r
+ add ebx,DWORD [60+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [32+esp]\r
+ mov esi,edx\r
+ xor edi,ecx\r
+ mov ecx,DWORD [24+esp]\r
+ ror edx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [28+esp]\r
+ xor edx,esi\r
+ mov DWORD [60+esp],ebx\r
+ xor ecx,edi\r
+ ror edx,5\r
+ and ecx,esi\r
+ mov DWORD [20+esp],esi\r
+ xor edx,esi\r
+ add ebx,DWORD [esp]\r
+ xor edi,ecx\r
+ ror edx,6\r
+ mov esi,ebp\r
+ add ebx,edi\r
+ ror esi,9\r
+ mov ecx,ebp\r
+ mov edi,DWORD [8+esp]\r
+ xor esi,ebp\r
+ mov DWORD [4+esp],ebp\r
+ xor ebp,edi\r
+ ror esi,11\r
+ and eax,ebp\r
+ lea edx,[1747873779+edx*1+ebx]\r
+ xor esi,ecx\r
+ xor eax,edi\r
+ mov ecx,DWORD [68+esp]\r
+ ror esi,2\r
+ add eax,edx\r
+ add edx,DWORD [16+esp]\r
+ add eax,esi\r
+ mov esi,DWORD [56+esp]\r
+ mov ebx,ecx\r
+ ror ecx,11\r
+ mov edi,esi\r
+ ror esi,2\r
+ xor ecx,ebx\r
+ shr ebx,3\r
+ ror ecx,7\r
+ xor esi,edi\r
+ xor ebx,ecx\r
+ ror esi,17\r
+ add ebx,DWORD [64+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [36+esp]\r
+ mov ecx,edx\r
+ xor edi,esi\r
+ mov esi,DWORD [20+esp]\r
+ ror edx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [24+esp]\r
+ xor edx,ecx\r
+ mov DWORD [64+esp],ebx\r
+ xor esi,edi\r
+ ror edx,5\r
+ and esi,ecx\r
+ mov DWORD [16+esp],ecx\r
+ xor edx,ecx\r
+ add ebx,DWORD [28+esp]\r
+ xor edi,esi\r
+ ror edx,6\r
+ mov ecx,eax\r
+ add ebx,edi\r
+ ror ecx,9\r
+ mov esi,eax\r
+ mov edi,DWORD [4+esp]\r
+ xor ecx,eax\r
+ mov DWORD [esp],eax\r
+ xor eax,edi\r
+ ror ecx,11\r
+ and ebp,eax\r
+ lea edx,[1955562222+edx*1+ebx]\r
+ xor ecx,esi\r
+ xor ebp,edi\r
+ mov esi,DWORD [72+esp]\r
+ ror ecx,2\r
+ add ebp,edx\r
+ add edx,DWORD [12+esp]\r
+ add ebp,ecx\r
+ mov ecx,DWORD [60+esp]\r
+ mov ebx,esi\r
+ ror esi,11\r
+ mov edi,ecx\r
+ ror ecx,2\r
+ xor esi,ebx\r
+ shr ebx,3\r
+ ror esi,7\r
+ xor ecx,edi\r
+ xor ebx,esi\r
+ ror ecx,17\r
+ add ebx,DWORD [68+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [40+esp]\r
+ mov esi,edx\r
+ xor edi,ecx\r
+ mov ecx,DWORD [16+esp]\r
+ ror edx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [20+esp]\r
+ xor edx,esi\r
+ mov DWORD [68+esp],ebx\r
+ xor ecx,edi\r
+ ror edx,5\r
+ and ecx,esi\r
+ mov DWORD [12+esp],esi\r
+ xor edx,esi\r
+ add ebx,DWORD [24+esp]\r
+ xor edi,ecx\r
+ ror edx,6\r
+ mov esi,ebp\r
+ add ebx,edi\r
+ ror esi,9\r
+ mov ecx,ebp\r
+ mov edi,DWORD [esp]\r
+ xor esi,ebp\r
+ mov DWORD [28+esp],ebp\r
+ xor ebp,edi\r
+ ror esi,11\r
+ and eax,ebp\r
+ lea edx,[2024104815+edx*1+ebx]\r
+ xor esi,ecx\r
+ xor eax,edi\r
+ mov ecx,DWORD [76+esp]\r
+ ror esi,2\r
+ add eax,edx\r
+ add edx,DWORD [8+esp]\r
+ add eax,esi\r
+ mov esi,DWORD [64+esp]\r
+ mov ebx,ecx\r
+ ror ecx,11\r
+ mov edi,esi\r
+ ror esi,2\r
+ xor ecx,ebx\r
+ shr ebx,3\r
+ ror ecx,7\r
+ xor esi,edi\r
+ xor ebx,ecx\r
+ ror esi,17\r
+ add ebx,DWORD [72+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [44+esp]\r
+ mov ecx,edx\r
+ xor edi,esi\r
+ mov esi,DWORD [12+esp]\r
+ ror edx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [16+esp]\r
+ xor edx,ecx\r
+ mov DWORD [72+esp],ebx\r
+ xor esi,edi\r
+ ror edx,5\r
+ and esi,ecx\r
+ mov DWORD [8+esp],ecx\r
+ xor edx,ecx\r
+ add ebx,DWORD [20+esp]\r
+ xor edi,esi\r
+ ror edx,6\r
+ mov ecx,eax\r
+ add ebx,edi\r
+ ror ecx,9\r
+ mov esi,eax\r
+ mov edi,DWORD [28+esp]\r
+ xor ecx,eax\r
+ mov DWORD [24+esp],eax\r
+ xor eax,edi\r
+ ror ecx,11\r
+ and ebp,eax\r
+ lea edx,[2227730452+edx*1+ebx]\r
+ xor ecx,esi\r
+ xor ebp,edi\r
+ mov esi,DWORD [80+esp]\r
+ ror ecx,2\r
+ add ebp,edx\r
+ add edx,DWORD [4+esp]\r
+ add ebp,ecx\r
+ mov ecx,DWORD [68+esp]\r
+ mov ebx,esi\r
+ ror esi,11\r
+ mov edi,ecx\r
+ ror ecx,2\r
+ xor esi,ebx\r
+ shr ebx,3\r
+ ror esi,7\r
+ xor ecx,edi\r
+ xor ebx,esi\r
+ ror ecx,17\r
+ add ebx,DWORD [76+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [48+esp]\r
+ mov esi,edx\r
+ xor edi,ecx\r
+ mov ecx,DWORD [8+esp]\r
+ ror edx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [12+esp]\r
+ xor edx,esi\r
+ mov DWORD [76+esp],ebx\r
+ xor ecx,edi\r
+ ror edx,5\r
+ and ecx,esi\r
+ mov DWORD [4+esp],esi\r
+ xor edx,esi\r
+ add ebx,DWORD [16+esp]\r
+ xor edi,ecx\r
+ ror edx,6\r
+ mov esi,ebp\r
+ add ebx,edi\r
+ ror esi,9\r
+ mov ecx,ebp\r
+ mov edi,DWORD [24+esp]\r
+ xor esi,ebp\r
+ mov DWORD [20+esp],ebp\r
+ xor ebp,edi\r
+ ror esi,11\r
+ and eax,ebp\r
+ lea edx,[2361852424+edx*1+ebx]\r
+ xor esi,ecx\r
+ xor eax,edi\r
+ mov ecx,DWORD [84+esp]\r
+ ror esi,2\r
+ add eax,edx\r
+ add edx,DWORD [esp]\r
+ add eax,esi\r
+ mov esi,DWORD [72+esp]\r
+ mov ebx,ecx\r
+ ror ecx,11\r
+ mov edi,esi\r
+ ror esi,2\r
+ xor ecx,ebx\r
+ shr ebx,3\r
+ ror ecx,7\r
+ xor esi,edi\r
+ xor ebx,ecx\r
+ ror esi,17\r
+ add ebx,DWORD [80+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [52+esp]\r
+ mov ecx,edx\r
+ xor edi,esi\r
+ mov esi,DWORD [4+esp]\r
+ ror edx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [8+esp]\r
+ xor edx,ecx\r
+ mov DWORD [80+esp],ebx\r
+ xor esi,edi\r
+ ror edx,5\r
+ and esi,ecx\r
+ mov DWORD [esp],ecx\r
+ xor edx,ecx\r
+ add ebx,DWORD [12+esp]\r
+ xor edi,esi\r
+ ror edx,6\r
+ mov ecx,eax\r
+ add ebx,edi\r
+ ror ecx,9\r
+ mov esi,eax\r
+ mov edi,DWORD [20+esp]\r
+ xor ecx,eax\r
+ mov DWORD [16+esp],eax\r
+ xor eax,edi\r
+ ror ecx,11\r
+ and ebp,eax\r
+ lea edx,[2428436474+edx*1+ebx]\r
+ xor ecx,esi\r
+ xor ebp,edi\r
+ mov esi,DWORD [88+esp]\r
+ ror ecx,2\r
+ add ebp,edx\r
+ add edx,DWORD [28+esp]\r
+ add ebp,ecx\r
+ mov ecx,DWORD [76+esp]\r
+ mov ebx,esi\r
+ ror esi,11\r
+ mov edi,ecx\r
+ ror ecx,2\r
+ xor esi,ebx\r
+ shr ebx,3\r
+ ror esi,7\r
+ xor ecx,edi\r
+ xor ebx,esi\r
+ ror ecx,17\r
+ add ebx,DWORD [84+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [56+esp]\r
+ mov esi,edx\r
+ xor edi,ecx\r
+ mov ecx,DWORD [esp]\r
+ ror edx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [4+esp]\r
+ xor edx,esi\r
+ mov DWORD [84+esp],ebx\r
+ xor ecx,edi\r
+ ror edx,5\r
+ and ecx,esi\r
+ mov DWORD [28+esp],esi\r
+ xor edx,esi\r
+ add ebx,DWORD [8+esp]\r
+ xor edi,ecx\r
+ ror edx,6\r
+ mov esi,ebp\r
+ add ebx,edi\r
+ ror esi,9\r
+ mov ecx,ebp\r
+ mov edi,DWORD [16+esp]\r
+ xor esi,ebp\r
+ mov DWORD [12+esp],ebp\r
+ xor ebp,edi\r
+ ror esi,11\r
+ and eax,ebp\r
+ lea edx,[2756734187+edx*1+ebx]\r
+ xor esi,ecx\r
+ xor eax,edi\r
+ mov ecx,DWORD [92+esp]\r
+ ror esi,2\r
+ add eax,edx\r
+ add edx,DWORD [24+esp]\r
+ add eax,esi\r
+ mov esi,DWORD [80+esp]\r
+ mov ebx,ecx\r
+ ror ecx,11\r
+ mov edi,esi\r
+ ror esi,2\r
+ xor ecx,ebx\r
+ shr ebx,3\r
+ ror ecx,7\r
+ xor esi,edi\r
+ xor ebx,ecx\r
+ ror esi,17\r
+ add ebx,DWORD [88+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [60+esp]\r
+ mov ecx,edx\r
+ xor edi,esi\r
+ mov esi,DWORD [28+esp]\r
+ ror edx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [esp]\r
+ xor edx,ecx\r
+ xor esi,edi\r
+ ror edx,5\r
+ and esi,ecx\r
+ mov DWORD [24+esp],ecx\r
+ xor edx,ecx\r
+ add ebx,DWORD [4+esp]\r
+ xor edi,esi\r
+ ror edx,6\r
+ mov ecx,eax\r
+ add ebx,edi\r
+ ror ecx,9\r
+ mov esi,eax\r
+ mov edi,DWORD [12+esp]\r
+ xor ecx,eax\r
+ mov DWORD [8+esp],eax\r
+ xor eax,edi\r
+ ror ecx,11\r
+ and ebp,eax\r
+ lea edx,[3204031479+edx*1+ebx]\r
+ xor ecx,esi\r
+ xor ebp,edi\r
+ mov esi,DWORD [32+esp]\r
+ ror ecx,2\r
+ add ebp,edx\r
+ add edx,DWORD [20+esp]\r
+ add ebp,ecx\r
+ mov ecx,DWORD [84+esp]\r
+ mov ebx,esi\r
+ ror esi,11\r
+ mov edi,ecx\r
+ ror ecx,2\r
+ xor esi,ebx\r
+ shr ebx,3\r
+ ror esi,7\r
+ xor ecx,edi\r
+ xor ebx,esi\r
+ ror ecx,17\r
+ add ebx,DWORD [92+esp]\r
+ shr edi,10\r
+ add ebx,DWORD [64+esp]\r
+ mov esi,edx\r
+ xor edi,ecx\r
+ mov ecx,DWORD [24+esp]\r
+ ror edx,14\r
+ add ebx,edi\r
+ mov edi,DWORD [28+esp]\r
+ xor edx,esi\r
+ xor ecx,edi\r
+ ror edx,5\r
+ and ecx,esi\r
+ mov DWORD [20+esp],esi\r
+ xor edx,esi\r
+ add ebx,DWORD [esp]\r
+ xor edi,ecx\r
+ ror edx,6\r
+ mov esi,ebp\r
+ add ebx,edi\r
+ ror esi,9\r
+ mov ecx,ebp\r
+ mov edi,DWORD [8+esp]\r
+ xor esi,ebp\r
+ mov DWORD [4+esp],ebp\r
+ xor ebp,edi\r
+ ror esi,11\r
+ and eax,ebp\r
+ lea edx,[3329325298+edx*1+ebx]\r
+ xor esi,ecx\r
+ xor eax,edi\r
+ ror esi,2\r
+ add eax,edx\r
+ add edx,DWORD [16+esp]\r
+ add eax,esi\r
+ mov esi,DWORD [96+esp]\r
+ xor ebp,edi\r
+ mov ecx,DWORD [12+esp]\r
+ add eax,DWORD [esi]\r
+ add ebp,DWORD [4+esi]\r
+ add edi,DWORD [8+esi]\r
+ add ecx,DWORD [12+esi]\r
+ mov DWORD [esi],eax\r
+ mov DWORD [4+esi],ebp\r
+ mov DWORD [8+esi],edi\r
+ mov DWORD [12+esi],ecx\r
+ mov DWORD [4+esp],ebp\r
+ xor ebp,edi\r
+ mov DWORD [8+esp],edi\r
+ mov DWORD [12+esp],ecx\r
+ mov edi,DWORD [20+esp]\r
+ mov ebx,DWORD [24+esp]\r
+ mov ecx,DWORD [28+esp]\r
+ add edx,DWORD [16+esi]\r
+ add edi,DWORD [20+esi]\r
+ add ebx,DWORD [24+esi]\r
+ add ecx,DWORD [28+esi]\r
+ mov DWORD [16+esi],edx\r
+ mov DWORD [20+esi],edi\r
+ mov DWORD [24+esi],ebx\r
+ mov DWORD [28+esi],ecx\r
+ mov DWORD [20+esp],edi\r
+ mov edi,DWORD [100+esp]\r
+ mov DWORD [24+esp],ebx\r
+ mov DWORD [28+esp],ecx\r
+ cmp edi,DWORD [104+esp]\r
+ jb NEAR L$009grand_loop\r
+ mov esp,DWORD [108+esp]\r
+ pop edi\r
+ pop esi\r
+ pop ebx\r
+ pop ebp\r
+ ret\r
+segment .bss\r
+common _OPENSSL_ia32cap_P 16\r
--- /dev/null
+; WARNING: do not edit!\r
+; Generated from openssl/crypto/sha/asm/sha512-586.pl\r
+;\r
+; Copyright 2007-2020 The OpenSSL Project Authors. All Rights Reserved.\r
+;\r
+; Licensed under the OpenSSL license (the "License"). You may not use\r
+; this file except in compliance with the License. You can obtain a copy\r
+; in the file LICENSE in the source distribution or at\r
+; https://www.openssl.org/source/license.html\r
+\r
+%ifidn __OUTPUT_FORMAT__,obj\r
+section code use32 class=code align=64\r
+%elifidn __OUTPUT_FORMAT__,win32\r
+$@feat.00 equ 1\r
+section .text code align=64\r
+%else\r
+section .text code\r
+%endif\r
+global _sha512_block_data_order\r
+align 16\r
+_sha512_block_data_order:\r
+L$_sha512_block_data_order_begin:\r
+ push ebp\r
+ push ebx\r
+ push esi\r
+ push edi\r
+ mov esi,DWORD [20+esp]\r
+ mov edi,DWORD [24+esp]\r
+ mov eax,DWORD [28+esp]\r
+ mov ebx,esp\r
+ call L$000pic_point\r
+L$000pic_point:\r
+ pop ebp\r
+ lea ebp,[(L$001K512-L$000pic_point)+ebp]\r
+ sub esp,16\r
+ and esp,-64\r
+ shl eax,7\r
+ add eax,edi\r
+ mov DWORD [esp],esi\r
+ mov DWORD [4+esp],edi\r
+ mov DWORD [8+esp],eax\r
+ mov DWORD [12+esp],ebx\r
+align 16\r
+L$002loop_x86:\r
+ mov eax,DWORD [edi]\r
+ mov ebx,DWORD [4+edi]\r
+ mov ecx,DWORD [8+edi]\r
+ mov edx,DWORD [12+edi]\r
+ bswap eax\r
+ bswap ebx\r
+ bswap ecx\r
+ bswap edx\r
+ push eax\r
+ push ebx\r
+ push ecx\r
+ push edx\r
+ mov eax,DWORD [16+edi]\r
+ mov ebx,DWORD [20+edi]\r
+ mov ecx,DWORD [24+edi]\r
+ mov edx,DWORD [28+edi]\r
+ bswap eax\r
+ bswap ebx\r
+ bswap ecx\r
+ bswap edx\r
+ push eax\r
+ push ebx\r
+ push ecx\r
+ push edx\r
+ mov eax,DWORD [32+edi]\r
+ mov ebx,DWORD [36+edi]\r
+ mov ecx,DWORD [40+edi]\r
+ mov edx,DWORD [44+edi]\r
+ bswap eax\r
+ bswap ebx\r
+ bswap ecx\r
+ bswap edx\r
+ push eax\r
+ push ebx\r
+ push ecx\r
+ push edx\r
+ mov eax,DWORD [48+edi]\r
+ mov ebx,DWORD [52+edi]\r
+ mov ecx,DWORD [56+edi]\r
+ mov edx,DWORD [60+edi]\r
+ bswap eax\r
+ bswap ebx\r
+ bswap ecx\r
+ bswap edx\r
+ push eax\r
+ push ebx\r
+ push ecx\r
+ push edx\r
+ mov eax,DWORD [64+edi]\r
+ mov ebx,DWORD [68+edi]\r
+ mov ecx,DWORD [72+edi]\r
+ mov edx,DWORD [76+edi]\r
+ bswap eax\r
+ bswap ebx\r
+ bswap ecx\r
+ bswap edx\r
+ push eax\r
+ push ebx\r
+ push ecx\r
+ push edx\r
+ mov eax,DWORD [80+edi]\r
+ mov ebx,DWORD [84+edi]\r
+ mov ecx,DWORD [88+edi]\r
+ mov edx,DWORD [92+edi]\r
+ bswap eax\r
+ bswap ebx\r
+ bswap ecx\r
+ bswap edx\r
+ push eax\r
+ push ebx\r
+ push ecx\r
+ push edx\r
+ mov eax,DWORD [96+edi]\r
+ mov ebx,DWORD [100+edi]\r
+ mov ecx,DWORD [104+edi]\r
+ mov edx,DWORD [108+edi]\r
+ bswap eax\r
+ bswap ebx\r
+ bswap ecx\r
+ bswap edx\r
+ push eax\r
+ push ebx\r
+ push ecx\r
+ push edx\r
+ mov eax,DWORD [112+edi]\r
+ mov ebx,DWORD [116+edi]\r
+ mov ecx,DWORD [120+edi]\r
+ mov edx,DWORD [124+edi]\r
+ bswap eax\r
+ bswap ebx\r
+ bswap ecx\r
+ bswap edx\r
+ push eax\r
+ push ebx\r
+ push ecx\r
+ push edx\r
+ add edi,128\r
+ sub esp,72\r
+ mov DWORD [204+esp],edi\r
+ lea edi,[8+esp]\r
+ mov ecx,16\r
+dd 2784229001\r
+align 16\r
+L$00300_15_x86:\r
+ mov ecx,DWORD [40+esp]\r
+ mov edx,DWORD [44+esp]\r
+ mov esi,ecx\r
+ shr ecx,9\r
+ mov edi,edx\r
+ shr edx,9\r
+ mov ebx,ecx\r
+ shl esi,14\r
+ mov eax,edx\r
+ shl edi,14\r
+ xor ebx,esi\r
+ shr ecx,5\r
+ xor eax,edi\r
+ shr edx,5\r
+ xor eax,ecx\r
+ shl esi,4\r
+ xor ebx,edx\r
+ shl edi,4\r
+ xor ebx,esi\r
+ shr ecx,4\r
+ xor eax,edi\r
+ shr edx,4\r
+ xor eax,ecx\r
+ shl esi,5\r
+ xor ebx,edx\r
+ shl edi,5\r
+ xor eax,esi\r
+ xor ebx,edi\r
+ mov ecx,DWORD [48+esp]\r
+ mov edx,DWORD [52+esp]\r
+ mov esi,DWORD [56+esp]\r
+ mov edi,DWORD [60+esp]\r
+ add eax,DWORD [64+esp]\r
+ adc ebx,DWORD [68+esp]\r
+ xor ecx,esi\r
+ xor edx,edi\r
+ and ecx,DWORD [40+esp]\r
+ and edx,DWORD [44+esp]\r
+ add eax,DWORD [192+esp]\r
+ adc ebx,DWORD [196+esp]\r
+ xor ecx,esi\r
+ xor edx,edi\r
+ mov esi,DWORD [ebp]\r
+ mov edi,DWORD [4+ebp]\r
+ add eax,ecx\r
+ adc ebx,edx\r
+ mov ecx,DWORD [32+esp]\r
+ mov edx,DWORD [36+esp]\r
+ add eax,esi\r
+ adc ebx,edi\r
+ mov DWORD [esp],eax\r
+ mov DWORD [4+esp],ebx\r
+ add eax,ecx\r
+ adc ebx,edx\r
+ mov ecx,DWORD [8+esp]\r
+ mov edx,DWORD [12+esp]\r
+ mov DWORD [32+esp],eax\r
+ mov DWORD [36+esp],ebx\r
+ mov esi,ecx\r
+ shr ecx,2\r
+ mov edi,edx\r
+ shr edx,2\r
+ mov ebx,ecx\r
+ shl esi,4\r
+ mov eax,edx\r
+ shl edi,4\r
+ xor ebx,esi\r
+ shr ecx,5\r
+ xor eax,edi\r
+ shr edx,5\r
+ xor ebx,ecx\r
+ shl esi,21\r
+ xor eax,edx\r
+ shl edi,21\r
+ xor eax,esi\r
+ shr ecx,21\r
+ xor ebx,edi\r
+ shr edx,21\r
+ xor eax,ecx\r
+ shl esi,5\r
+ xor ebx,edx\r
+ shl edi,5\r
+ xor eax,esi\r
+ xor ebx,edi\r
+ mov ecx,DWORD [8+esp]\r
+ mov edx,DWORD [12+esp]\r
+ mov esi,DWORD [16+esp]\r
+ mov edi,DWORD [20+esp]\r
+ add eax,DWORD [esp]\r
+ adc ebx,DWORD [4+esp]\r
+ or ecx,esi\r
+ or edx,edi\r
+ and ecx,DWORD [24+esp]\r
+ and edx,DWORD [28+esp]\r
+ and esi,DWORD [8+esp]\r
+ and edi,DWORD [12+esp]\r
+ or ecx,esi\r
+ or edx,edi\r
+ add eax,ecx\r
+ adc ebx,edx\r
+ mov DWORD [esp],eax\r
+ mov DWORD [4+esp],ebx\r
+ mov dl,BYTE [ebp]\r
+ sub esp,8\r
+ lea ebp,[8+ebp]\r
+ cmp dl,148\r
+ jne NEAR L$00300_15_x86\r
+align 16\r
+L$00416_79_x86:\r
+ mov ecx,DWORD [312+esp]\r
+ mov edx,DWORD [316+esp]\r
+ mov esi,ecx\r
+ shr ecx,1\r
+ mov edi,edx\r
+ shr edx,1\r
+ mov eax,ecx\r
+ shl esi,24\r
+ mov ebx,edx\r
+ shl edi,24\r
+ xor ebx,esi\r
+ shr ecx,6\r
+ xor eax,edi\r
+ shr edx,6\r
+ xor eax,ecx\r
+ shl esi,7\r
+ xor ebx,edx\r
+ shl edi,1\r
+ xor ebx,esi\r
+ shr ecx,1\r
+ xor eax,edi\r
+ shr edx,1\r
+ xor eax,ecx\r
+ shl edi,6\r
+ xor ebx,edx\r
+ xor eax,edi\r
+ mov DWORD [esp],eax\r
+ mov DWORD [4+esp],ebx\r
+ mov ecx,DWORD [208+esp]\r
+ mov edx,DWORD [212+esp]\r
+ mov esi,ecx\r
+ shr ecx,6\r
+ mov edi,edx\r
+ shr edx,6\r
+ mov eax,ecx\r
+ shl esi,3\r
+ mov ebx,edx\r
+ shl edi,3\r
+ xor eax,esi\r
+ shr ecx,13\r
+ xor ebx,edi\r
+ shr edx,13\r
+ xor eax,ecx\r
+ shl esi,10\r
+ xor ebx,edx\r
+ shl edi,10\r
+ xor ebx,esi\r
+ shr ecx,10\r
+ xor eax,edi\r
+ shr edx,10\r
+ xor ebx,ecx\r
+ shl edi,13\r
+ xor eax,edx\r
+ xor eax,edi\r
+ mov ecx,DWORD [320+esp]\r
+ mov edx,DWORD [324+esp]\r
+ add eax,DWORD [esp]\r
+ adc ebx,DWORD [4+esp]\r
+ mov esi,DWORD [248+esp]\r
+ mov edi,DWORD [252+esp]\r
+ add eax,ecx\r
+ adc ebx,edx\r
+ add eax,esi\r
+ adc ebx,edi\r
+ mov DWORD [192+esp],eax\r
+ mov DWORD [196+esp],ebx\r
+ mov ecx,DWORD [40+esp]\r
+ mov edx,DWORD [44+esp]\r
+ mov esi,ecx\r
+ shr ecx,9\r
+ mov edi,edx\r
+ shr edx,9\r
+ mov ebx,ecx\r
+ shl esi,14\r
+ mov eax,edx\r
+ shl edi,14\r
+ xor ebx,esi\r
+ shr ecx,5\r
+ xor eax,edi\r
+ shr edx,5\r
+ xor eax,ecx\r
+ shl esi,4\r
+ xor ebx,edx\r
+ shl edi,4\r
+ xor ebx,esi\r
+ shr ecx,4\r
+ xor eax,edi\r
+ shr edx,4\r
+ xor eax,ecx\r
+ shl esi,5\r
+ xor ebx,edx\r
+ shl edi,5\r
+ xor eax,esi\r
+ xor ebx,edi\r
+ mov ecx,DWORD [48+esp]\r
+ mov edx,DWORD [52+esp]\r
+ mov esi,DWORD [56+esp]\r
+ mov edi,DWORD [60+esp]\r
+ add eax,DWORD [64+esp]\r
+ adc ebx,DWORD [68+esp]\r
+ xor ecx,esi\r
+ xor edx,edi\r
+ and ecx,DWORD [40+esp]\r
+ and edx,DWORD [44+esp]\r
+ add eax,DWORD [192+esp]\r
+ adc ebx,DWORD [196+esp]\r
+ xor ecx,esi\r
+ xor edx,edi\r
+ mov esi,DWORD [ebp]\r
+ mov edi,DWORD [4+ebp]\r
+ add eax,ecx\r
+ adc ebx,edx\r
+ mov ecx,DWORD [32+esp]\r
+ mov edx,DWORD [36+esp]\r
+ add eax,esi\r
+ adc ebx,edi\r
+ mov DWORD [esp],eax\r
+ mov DWORD [4+esp],ebx\r
+ add eax,ecx\r
+ adc ebx,edx\r
+ mov ecx,DWORD [8+esp]\r
+ mov edx,DWORD [12+esp]\r
+ mov DWORD [32+esp],eax\r
+ mov DWORD [36+esp],ebx\r
+ mov esi,ecx\r
+ shr ecx,2\r
+ mov edi,edx\r
+ shr edx,2\r
+ mov ebx,ecx\r
+ shl esi,4\r
+ mov eax,edx\r
+ shl edi,4\r
+ xor ebx,esi\r
+ shr ecx,5\r
+ xor eax,edi\r
+ shr edx,5\r
+ xor ebx,ecx\r
+ shl esi,21\r
+ xor eax,edx\r
+ shl edi,21\r
+ xor eax,esi\r
+ shr ecx,21\r
+ xor ebx,edi\r
+ shr edx,21\r
+ xor eax,ecx\r
+ shl esi,5\r
+ xor ebx,edx\r
+ shl edi,5\r
+ xor eax,esi\r
+ xor ebx,edi\r
+ mov ecx,DWORD [8+esp]\r
+ mov edx,DWORD [12+esp]\r
+ mov esi,DWORD [16+esp]\r
+ mov edi,DWORD [20+esp]\r
+ add eax,DWORD [esp]\r
+ adc ebx,DWORD [4+esp]\r
+ or ecx,esi\r
+ or edx,edi\r
+ and ecx,DWORD [24+esp]\r
+ and edx,DWORD [28+esp]\r
+ and esi,DWORD [8+esp]\r
+ and edi,DWORD [12+esp]\r
+ or ecx,esi\r
+ or edx,edi\r
+ add eax,ecx\r
+ adc ebx,edx\r
+ mov DWORD [esp],eax\r
+ mov DWORD [4+esp],ebx\r
+ mov dl,BYTE [ebp]\r
+ sub esp,8\r
+ lea ebp,[8+ebp]\r
+ cmp dl,23\r
+ jne NEAR L$00416_79_x86\r
+ mov esi,DWORD [840+esp]\r
+ mov edi,DWORD [844+esp]\r
+ mov eax,DWORD [esi]\r
+ mov ebx,DWORD [4+esi]\r
+ mov ecx,DWORD [8+esi]\r
+ mov edx,DWORD [12+esi]\r
+ add eax,DWORD [8+esp]\r
+ adc ebx,DWORD [12+esp]\r
+ mov DWORD [esi],eax\r
+ mov DWORD [4+esi],ebx\r
+ add ecx,DWORD [16+esp]\r
+ adc edx,DWORD [20+esp]\r
+ mov DWORD [8+esi],ecx\r
+ mov DWORD [12+esi],edx\r
+ mov eax,DWORD [16+esi]\r
+ mov ebx,DWORD [20+esi]\r
+ mov ecx,DWORD [24+esi]\r
+ mov edx,DWORD [28+esi]\r
+ add eax,DWORD [24+esp]\r
+ adc ebx,DWORD [28+esp]\r
+ mov DWORD [16+esi],eax\r
+ mov DWORD [20+esi],ebx\r
+ add ecx,DWORD [32+esp]\r
+ adc edx,DWORD [36+esp]\r
+ mov DWORD [24+esi],ecx\r
+ mov DWORD [28+esi],edx\r
+ mov eax,DWORD [32+esi]\r
+ mov ebx,DWORD [36+esi]\r
+ mov ecx,DWORD [40+esi]\r
+ mov edx,DWORD [44+esi]\r
+ add eax,DWORD [40+esp]\r
+ adc ebx,DWORD [44+esp]\r
+ mov DWORD [32+esi],eax\r
+ mov DWORD [36+esi],ebx\r
+ add ecx,DWORD [48+esp]\r
+ adc edx,DWORD [52+esp]\r
+ mov DWORD [40+esi],ecx\r
+ mov DWORD [44+esi],edx\r
+ mov eax,DWORD [48+esi]\r
+ mov ebx,DWORD [52+esi]\r
+ mov ecx,DWORD [56+esi]\r
+ mov edx,DWORD [60+esi]\r
+ add eax,DWORD [56+esp]\r
+ adc ebx,DWORD [60+esp]\r
+ mov DWORD [48+esi],eax\r
+ mov DWORD [52+esi],ebx\r
+ add ecx,DWORD [64+esp]\r
+ adc edx,DWORD [68+esp]\r
+ mov DWORD [56+esi],ecx\r
+ mov DWORD [60+esi],edx\r
+ add esp,840\r
+ sub ebp,640\r
+ cmp edi,DWORD [8+esp]\r
+ jb NEAR L$002loop_x86\r
+ mov esp,DWORD [12+esp]\r
+ pop edi\r
+ pop esi\r
+ pop ebx\r
+ pop ebp\r
+ ret\r
+align 64\r
+L$001K512:\r
+dd 3609767458,1116352408\r
+dd 602891725,1899447441\r
+dd 3964484399,3049323471\r
+dd 2173295548,3921009573\r
+dd 4081628472,961987163\r
+dd 3053834265,1508970993\r
+dd 2937671579,2453635748\r
+dd 3664609560,2870763221\r
+dd 2734883394,3624381080\r
+dd 1164996542,310598401\r
+dd 1323610764,607225278\r
+dd 3590304994,1426881987\r
+dd 4068182383,1925078388\r
+dd 991336113,2162078206\r
+dd 633803317,2614888103\r
+dd 3479774868,3248222580\r
+dd 2666613458,3835390401\r
+dd 944711139,4022224774\r
+dd 2341262773,264347078\r
+dd 2007800933,604807628\r
+dd 1495990901,770255983\r
+dd 1856431235,1249150122\r
+dd 3175218132,1555081692\r
+dd 2198950837,1996064986\r
+dd 3999719339,2554220882\r
+dd 766784016,2821834349\r
+dd 2566594879,2952996808\r
+dd 3203337956,3210313671\r
+dd 1034457026,3336571891\r
+dd 2466948901,3584528711\r
+dd 3758326383,113926993\r
+dd 168717936,338241895\r
+dd 1188179964,666307205\r
+dd 1546045734,773529912\r
+dd 1522805485,1294757372\r
+dd 2643833823,1396182291\r
+dd 2343527390,1695183700\r
+dd 1014477480,1986661051\r
+dd 1206759142,2177026350\r
+dd 344077627,2456956037\r
+dd 1290863460,2730485921\r
+dd 3158454273,2820302411\r
+dd 3505952657,3259730800\r
+dd 106217008,3345764771\r
+dd 3606008344,3516065817\r
+dd 1432725776,3600352804\r
+dd 1467031594,4094571909\r
+dd 851169720,275423344\r
+dd 3100823752,430227734\r
+dd 1363258195,506948616\r
+dd 3750685593,659060556\r
+dd 3785050280,883997877\r
+dd 3318307427,958139571\r
+dd 3812723403,1322822218\r
+dd 2003034995,1537002063\r
+dd 3602036899,1747873779\r
+dd 1575990012,1955562222\r
+dd 1125592928,2024104815\r
+dd 2716904306,2227730452\r
+dd 442776044,2361852424\r
+dd 593698344,2428436474\r
+dd 3733110249,2756734187\r
+dd 2999351573,3204031479\r
+dd 3815920427,3329325298\r
+dd 3928383900,3391569614\r
+dd 566280711,3515267271\r
+dd 3454069534,3940187606\r
+dd 4000239992,4118630271\r
+dd 1914138554,116418474\r
+dd 2731055270,174292421\r
+dd 3203993006,289380356\r
+dd 320620315,460393269\r
+dd 587496836,685471733\r
+dd 1086792851,852142971\r
+dd 365543100,1017036298\r
+dd 2618297676,1126000580\r
+dd 3409855158,1288033470\r
+dd 4234509866,1501505948\r
+dd 987167468,1607167915\r
+dd 1246189591,1816402316\r
+dd 67438087,66051\r
+dd 202182159,134810123\r
+db 83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97\r
+db 110,115,102,111,114,109,32,102,111,114,32,120,56,54,44,32\r
+db 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97\r
+db 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103\r
+db 62,0\r
--- /dev/null
+; WARNING: do not edit!\r
+; Generated from openssl/crypto/x86cpuid.pl\r
+;\r
+; Copyright 2004-2020 The OpenSSL Project Authors. All Rights Reserved.\r
+;\r
+; Licensed under the OpenSSL license (the "License"). You may not use\r
+; this file except in compliance with the License. You can obtain a copy\r
+; in the file LICENSE in the source distribution or at\r
+; https://www.openssl.org/source/license.html\r
+\r
+%ifidn __OUTPUT_FORMAT__,obj\r
+section code use32 class=code align=64\r
+%elifidn __OUTPUT_FORMAT__,win32\r
+$@feat.00 equ 1\r
+section .text code align=64\r
+%else\r
+section .text code\r
+%endif\r
+global _OPENSSL_ia32_cpuid\r
+align 16\r
+_OPENSSL_ia32_cpuid:\r
+L$_OPENSSL_ia32_cpuid_begin:\r
+ push ebp\r
+ push ebx\r
+ push esi\r
+ push edi\r
+ xor edx,edx\r
+ pushfd\r
+ pop eax\r
+ mov ecx,eax\r
+ xor eax,2097152\r
+ push eax\r
+ popfd\r
+ pushfd\r
+ pop eax\r
+ xor ecx,eax\r
+ xor eax,eax\r
+ mov esi,DWORD [20+esp]\r
+ mov DWORD [8+esi],eax\r
+ bt ecx,21\r
+ jnc NEAR L$000nocpuid\r
+ cpuid\r
+ mov edi,eax\r
+ xor eax,eax\r
+ cmp ebx,1970169159\r
+ setne al\r
+ mov ebp,eax\r
+ cmp edx,1231384169\r
+ setne al\r
+ or ebp,eax\r
+ cmp ecx,1818588270\r
+ setne al\r
+ or ebp,eax\r
+ jz NEAR L$001intel\r
+ cmp ebx,1752462657\r
+ setne al\r
+ mov esi,eax\r
+ cmp edx,1769238117\r
+ setne al\r
+ or esi,eax\r
+ cmp ecx,1145913699\r
+ setne al\r
+ or esi,eax\r
+ jnz NEAR L$001intel\r
+ mov eax,2147483648\r
+ cpuid\r
+ cmp eax,2147483649\r
+ jb NEAR L$001intel\r
+ mov esi,eax\r
+ mov eax,2147483649\r
+ cpuid\r
+ or ebp,ecx\r
+ and ebp,2049\r
+ cmp esi,2147483656\r
+ jb NEAR L$001intel\r
+ mov eax,2147483656\r
+ cpuid\r
+ movzx esi,cl\r
+ inc esi\r
+ mov eax,1\r
+ xor ecx,ecx\r
+ cpuid\r
+ bt edx,28\r
+ jnc NEAR L$002generic\r
+ shr ebx,16\r
+ and ebx,255\r
+ cmp ebx,esi\r
+ ja NEAR L$002generic\r
+ and edx,4026531839\r
+ jmp NEAR L$002generic\r
+L$001intel:\r
+ cmp edi,4\r
+ mov esi,-1\r
+ jb NEAR L$003nocacheinfo\r
+ mov eax,4\r
+ mov ecx,0\r
+ cpuid\r
+ mov esi,eax\r
+ shr esi,14\r
+ and esi,4095\r
+L$003nocacheinfo:\r
+ mov eax,1\r
+ xor ecx,ecx\r
+ cpuid\r
+ and edx,3220176895\r
+ cmp ebp,0\r
+ jne NEAR L$004notintel\r
+ or edx,1073741824\r
+ and ah,15\r
+ cmp ah,15\r
+ jne NEAR L$004notintel\r
+ or edx,1048576\r
+L$004notintel:\r
+ bt edx,28\r
+ jnc NEAR L$002generic\r
+ and edx,4026531839\r
+ cmp esi,0\r
+ je NEAR L$002generic\r
+ or edx,268435456\r
+ shr ebx,16\r
+ cmp bl,1\r
+ ja NEAR L$002generic\r
+ and edx,4026531839\r
+L$002generic:\r
+ and ebp,2048\r
+ and ecx,4294965247\r
+ mov esi,edx\r
+ or ebp,ecx\r
+ cmp edi,7\r
+ mov edi,DWORD [20+esp]\r
+ jb NEAR L$005no_extended_info\r
+ mov eax,7\r
+ xor ecx,ecx\r
+ cpuid\r
+ mov DWORD [8+edi],ebx\r
+L$005no_extended_info:\r
+ bt ebp,27\r
+ jnc NEAR L$006clear_avx\r
+ xor ecx,ecx\r
+db 15,1,208\r
+ and eax,6\r
+ cmp eax,6\r
+ je NEAR L$007done\r
+ cmp eax,2\r
+ je NEAR L$006clear_avx\r
+L$008clear_xmm:\r
+ and ebp,4261412861\r
+ and esi,4278190079\r
+L$006clear_avx:\r
+ and ebp,4026525695\r
+ and DWORD [8+edi],4294967263\r
+L$007done:\r
+ mov eax,esi\r
+ mov edx,ebp\r
+L$000nocpuid:\r
+ pop edi\r
+ pop esi\r
+ pop ebx\r
+ pop ebp\r
+ ret\r
+;extern _OPENSSL_ia32cap_P\r
+global _OPENSSL_rdtsc\r
+align 16\r
+_OPENSSL_rdtsc:\r
+L$_OPENSSL_rdtsc_begin:\r
+ xor eax,eax\r
+ xor edx,edx\r
+ lea ecx,[_OPENSSL_ia32cap_P]\r
+ bt DWORD [ecx],4\r
+ jnc NEAR L$009notsc\r
+ rdtsc\r
+L$009notsc:\r
+ ret\r
+global _OPENSSL_instrument_halt\r
+align 16\r
+_OPENSSL_instrument_halt:\r
+L$_OPENSSL_instrument_halt_begin:\r
+ lea ecx,[_OPENSSL_ia32cap_P]\r
+ bt DWORD [ecx],4\r
+ jnc NEAR L$010nohalt\r
+dd 2421723150\r
+ and eax,3\r
+ jnz NEAR L$010nohalt\r
+ pushfd\r
+ pop eax\r
+ bt eax,9\r
+ jnc NEAR L$010nohalt\r
+ rdtsc\r
+ push edx\r
+ push eax\r
+ hlt\r
+ rdtsc\r
+ sub eax,DWORD [esp]\r
+ sbb edx,DWORD [4+esp]\r
+ add esp,8\r
+ ret\r
+L$010nohalt:\r
+ xor eax,eax\r
+ xor edx,edx\r
+ ret\r
+global _OPENSSL_far_spin\r
+align 16\r
+_OPENSSL_far_spin:\r
+L$_OPENSSL_far_spin_begin:\r
+ pushfd\r
+ pop eax\r
+ bt eax,9\r
+ jnc NEAR L$011nospin\r
+ mov eax,DWORD [4+esp]\r
+ mov ecx,DWORD [8+esp]\r
+dd 2430111262\r
+ xor eax,eax\r
+ mov edx,DWORD [ecx]\r
+ jmp NEAR L$012spin\r
+align 16\r
+L$012spin:\r
+ inc eax\r
+ cmp edx,DWORD [ecx]\r
+ je NEAR L$012spin\r
+dd 529567888\r
+ ret\r
+L$011nospin:\r
+ xor eax,eax\r
+ xor edx,edx\r
+ ret\r
+global _OPENSSL_wipe_cpu\r
+align 16\r
+_OPENSSL_wipe_cpu:\r
+L$_OPENSSL_wipe_cpu_begin:\r
+ xor eax,eax\r
+ xor edx,edx\r
+ lea ecx,[_OPENSSL_ia32cap_P]\r
+ mov ecx,DWORD [ecx]\r
+ bt DWORD [ecx],1\r
+ jnc NEAR L$013no_x87\r
+dd 4007259865,4007259865,4007259865,4007259865,2430851995\r
+L$013no_x87:\r
+ lea eax,[4+esp]\r
+ ret\r
+global _OPENSSL_atomic_add\r
+align 16\r
+_OPENSSL_atomic_add:\r
+L$_OPENSSL_atomic_add_begin:\r
+ mov edx,DWORD [4+esp]\r
+ mov ecx,DWORD [8+esp]\r
+ push ebx\r
+ nop\r
+ mov eax,DWORD [edx]\r
+L$014spin:\r
+ lea ebx,[ecx*1+eax]\r
+ nop\r
+dd 447811568\r
+ jne NEAR L$014spin\r
+ mov eax,ebx\r
+ pop ebx\r
+ ret\r
+global _OPENSSL_cleanse\r
+align 16\r
+_OPENSSL_cleanse:\r
+L$_OPENSSL_cleanse_begin:\r
+ mov edx,DWORD [4+esp]\r
+ mov ecx,DWORD [8+esp]\r
+ xor eax,eax\r
+ cmp ecx,7\r
+ jae NEAR L$015lot\r
+ cmp ecx,0\r
+ je NEAR L$016ret\r
+L$017little:\r
+ mov BYTE [edx],al\r
+ sub ecx,1\r
+ lea edx,[1+edx]\r
+ jnz NEAR L$017little\r
+L$016ret:\r
+ ret\r
+align 16\r
+L$015lot:\r
+ test edx,3\r
+ jz NEAR L$018aligned\r
+ mov BYTE [edx],al\r
+ lea ecx,[ecx-1]\r
+ lea edx,[1+edx]\r
+ jmp NEAR L$015lot\r
+L$018aligned:\r
+ mov DWORD [edx],eax\r
+ lea ecx,[ecx-4]\r
+ test ecx,-4\r
+ lea edx,[4+edx]\r
+ jnz NEAR L$018aligned\r
+ cmp ecx,0\r
+ jne NEAR L$017little\r
+ ret\r
+global _CRYPTO_memcmp\r
+align 16\r
+_CRYPTO_memcmp:\r
+L$_CRYPTO_memcmp_begin:\r
+ push esi\r
+ push edi\r
+ mov esi,DWORD [12+esp]\r
+ mov edi,DWORD [16+esp]\r
+ mov ecx,DWORD [20+esp]\r
+ xor eax,eax\r
+ xor edx,edx\r
+ cmp ecx,0\r
+ je NEAR L$019no_data\r
+L$020loop:\r
+ mov dl,BYTE [esi]\r
+ lea esi,[1+esi]\r
+ xor dl,BYTE [edi]\r
+ lea edi,[1+edi]\r
+ or al,dl\r
+ dec ecx\r
+ jnz NEAR L$020loop\r
+ neg eax\r
+ shr eax,31\r
+L$019no_data:\r
+ pop edi\r
+ pop esi\r
+ ret\r
+global _OPENSSL_instrument_bus\r
+align 16\r
+_OPENSSL_instrument_bus:\r
+L$_OPENSSL_instrument_bus_begin:\r
+ push ebp\r
+ push ebx\r
+ push esi\r
+ push edi\r
+ mov eax,0\r
+ pop edi\r
+ pop esi\r
+ pop ebx\r
+ pop ebp\r
+ ret\r
+global _OPENSSL_instrument_bus2\r
+align 16\r
+_OPENSSL_instrument_bus2:\r
+L$_OPENSSL_instrument_bus2_begin:\r
+ push ebp\r
+ push ebx\r
+ push esi\r
+ push edi\r
+ mov eax,0\r
+ pop edi\r
+ pop esi\r
+ pop ebx\r
+ pop ebp\r
+ ret\r
+global _OPENSSL_ia32_rdrand_bytes\r
+align 16\r
+_OPENSSL_ia32_rdrand_bytes:\r
+L$_OPENSSL_ia32_rdrand_bytes_begin:\r
+ push edi\r
+ push ebx\r
+ xor eax,eax\r
+ mov edi,DWORD [12+esp]\r
+ mov ebx,DWORD [16+esp]\r
+ cmp ebx,0\r
+ je NEAR L$021done\r
+ mov ecx,8\r
+L$022loop:\r
+db 15,199,242\r
+ jc NEAR L$023break\r
+ loop L$022loop\r
+ jmp NEAR L$021done\r
+align 16\r
+L$023break:\r
+ cmp ebx,4\r
+ jb NEAR L$024tail\r
+ mov DWORD [edi],edx\r
+ lea edi,[4+edi]\r
+ add eax,4\r
+ sub ebx,4\r
+ jz NEAR L$021done\r
+ mov ecx,8\r
+ jmp NEAR L$022loop\r
+align 16\r
+L$024tail:\r
+ mov BYTE [edi],dl\r
+ lea edi,[1+edi]\r
+ inc eax\r
+ shr edx,8\r
+ dec ebx\r
+ jnz NEAR L$024tail\r
+L$021done:\r
+ xor edx,edx\r
+ pop ebx\r
+ pop edi\r
+ ret\r
+global _OPENSSL_ia32_rdseed_bytes\r
+align 16\r
+_OPENSSL_ia32_rdseed_bytes:\r
+L$_OPENSSL_ia32_rdseed_bytes_begin:\r
+ push edi\r
+ push ebx\r
+ xor eax,eax\r
+ mov edi,DWORD [12+esp]\r
+ mov ebx,DWORD [16+esp]\r
+ cmp ebx,0\r
+ je NEAR L$025done\r
+ mov ecx,8\r
+L$026loop:\r
+db 15,199,250\r
+ jc NEAR L$027break\r
+ loop L$026loop\r
+ jmp NEAR L$025done\r
+align 16\r
+L$027break:\r
+ cmp ebx,4\r
+ jb NEAR L$028tail\r
+ mov DWORD [edi],edx\r
+ lea edi,[4+edi]\r
+ add eax,4\r
+ sub ebx,4\r
+ jz NEAR L$025done\r
+ mov ecx,8\r
+ jmp NEAR L$026loop\r
+align 16\r
+L$028tail:\r
+ mov BYTE [edi],dl\r
+ lea edi,[1+edi]\r
+ inc eax\r
+ shr edx,8\r
+ dec ebx\r
+ jnz NEAR L$028tail\r
+L$025done:\r
+ xor edx,edx\r
+ pop ebx\r
+ pop edi\r
+ ret\r
+segment .bss\r
+common _OPENSSL_ia32cap_P 16\r
+segment .CRT$XCU data align=4\r
+extern _OPENSSL_cpuid_setup\r
+dd _OPENSSL_cpuid_setup\r
--- /dev/null
+# WARNING: do not edit!\r
+# Generated from openssl/crypto/aes/asm/aesni-x86.pl\r
+#\r
+# Copyright 2009-2020 The OpenSSL Project Authors. All Rights Reserved.\r
+#\r
+# Licensed under the OpenSSL license (the "License"). You may not use\r
+# this file except in compliance with the License. You can obtain a copy\r
+# in the file LICENSE in the source distribution or at\r
+# https://www.openssl.org/source/license.html\r
+\r
+.text\r
+.globl aesni_encrypt\r
+.type aesni_encrypt,@function\r
+.align 16\r
+aesni_encrypt:\r
+.L_aesni_encrypt_begin:\r
+ movl 4(%esp),%eax\r
+ movl 12(%esp),%edx\r
+ movups (%eax),%xmm2\r
+ movl 240(%edx),%ecx\r
+ movl 8(%esp),%eax\r
+ movups (%edx),%xmm0\r
+ movups 16(%edx),%xmm1\r
+ leal 32(%edx),%edx\r
+ xorps %xmm0,%xmm2\r
+.L000enc1_loop_1:\r
+.byte 102,15,56,220,209\r
+ decl %ecx\r
+ movups (%edx),%xmm1\r
+ leal 16(%edx),%edx\r
+ jnz .L000enc1_loop_1\r
+.byte 102,15,56,221,209\r
+ pxor %xmm0,%xmm0\r
+ pxor %xmm1,%xmm1\r
+ movups %xmm2,(%eax)\r
+ pxor %xmm2,%xmm2\r
+ ret\r
+.size aesni_encrypt,.-.L_aesni_encrypt_begin\r
+.globl aesni_decrypt\r
+.type aesni_decrypt,@function\r
+.align 16\r
+aesni_decrypt:\r
+.L_aesni_decrypt_begin:\r
+ movl 4(%esp),%eax\r
+ movl 12(%esp),%edx\r
+ movups (%eax),%xmm2\r
+ movl 240(%edx),%ecx\r
+ movl 8(%esp),%eax\r
+ movups (%edx),%xmm0\r
+ movups 16(%edx),%xmm1\r
+ leal 32(%edx),%edx\r
+ xorps %xmm0,%xmm2\r
+.L001dec1_loop_2:\r
+.byte 102,15,56,222,209\r
+ decl %ecx\r
+ movups (%edx),%xmm1\r
+ leal 16(%edx),%edx\r
+ jnz .L001dec1_loop_2\r
+.byte 102,15,56,223,209\r
+ pxor %xmm0,%xmm0\r
+ pxor %xmm1,%xmm1\r
+ movups %xmm2,(%eax)\r
+ pxor %xmm2,%xmm2\r
+ ret\r
+.size aesni_decrypt,.-.L_aesni_decrypt_begin\r
+.type _aesni_encrypt2,@function\r
+.align 16\r
+_aesni_encrypt2:\r
+ movups (%edx),%xmm0\r
+ shll $4,%ecx\r
+ movups 16(%edx),%xmm1\r
+ xorps %xmm0,%xmm2\r
+ pxor %xmm0,%xmm3\r
+ movups 32(%edx),%xmm0\r
+ leal 32(%edx,%ecx,1),%edx\r
+ negl %ecx\r
+ addl $16,%ecx\r
+.L002enc2_loop:\r
+.byte 102,15,56,220,209\r
+.byte 102,15,56,220,217\r
+ movups (%edx,%ecx,1),%xmm1\r
+ addl $32,%ecx\r
+.byte 102,15,56,220,208\r
+.byte 102,15,56,220,216\r
+ movups -16(%edx,%ecx,1),%xmm0\r
+ jnz .L002enc2_loop\r
+.byte 102,15,56,220,209\r
+.byte 102,15,56,220,217\r
+.byte 102,15,56,221,208\r
+.byte 102,15,56,221,216\r
+ ret\r
+.size _aesni_encrypt2,.-_aesni_encrypt2\r
+.type _aesni_decrypt2,@function\r
+.align 16\r
+_aesni_decrypt2:\r
+ movups (%edx),%xmm0\r
+ shll $4,%ecx\r
+ movups 16(%edx),%xmm1\r
+ xorps %xmm0,%xmm2\r
+ pxor %xmm0,%xmm3\r
+ movups 32(%edx),%xmm0\r
+ leal 32(%edx,%ecx,1),%edx\r
+ negl %ecx\r
+ addl $16,%ecx\r
+.L003dec2_loop:\r
+.byte 102,15,56,222,209\r
+.byte 102,15,56,222,217\r
+ movups (%edx,%ecx,1),%xmm1\r
+ addl $32,%ecx\r
+.byte 102,15,56,222,208\r
+.byte 102,15,56,222,216\r
+ movups -16(%edx,%ecx,1),%xmm0\r
+ jnz .L003dec2_loop\r
+.byte 102,15,56,222,209\r
+.byte 102,15,56,222,217\r
+.byte 102,15,56,223,208\r
+.byte 102,15,56,223,216\r
+ ret\r
+.size _aesni_decrypt2,.-_aesni_decrypt2\r
+.type _aesni_encrypt3,@function\r
+.align 16\r
+_aesni_encrypt3:\r
+ movups (%edx),%xmm0\r
+ shll $4,%ecx\r
+ movups 16(%edx),%xmm1\r
+ xorps %xmm0,%xmm2\r
+ pxor %xmm0,%xmm3\r
+ pxor %xmm0,%xmm4\r
+ movups 32(%edx),%xmm0\r
+ leal 32(%edx,%ecx,1),%edx\r
+ negl %ecx\r
+ addl $16,%ecx\r
+.L004enc3_loop:\r
+.byte 102,15,56,220,209\r
+.byte 102,15,56,220,217\r
+.byte 102,15,56,220,225\r
+ movups (%edx,%ecx,1),%xmm1\r
+ addl $32,%ecx\r
+.byte 102,15,56,220,208\r
+.byte 102,15,56,220,216\r
+.byte 102,15,56,220,224\r
+ movups -16(%edx,%ecx,1),%xmm0\r
+ jnz .L004enc3_loop\r
+.byte 102,15,56,220,209\r
+.byte 102,15,56,220,217\r
+.byte 102,15,56,220,225\r
+.byte 102,15,56,221,208\r
+.byte 102,15,56,221,216\r
+.byte 102,15,56,221,224\r
+ ret\r
+.size _aesni_encrypt3,.-_aesni_encrypt3\r
+.type _aesni_decrypt3,@function\r
+.align 16\r
+_aesni_decrypt3:\r
+ movups (%edx),%xmm0\r
+ shll $4,%ecx\r
+ movups 16(%edx),%xmm1\r
+ xorps %xmm0,%xmm2\r
+ pxor %xmm0,%xmm3\r
+ pxor %xmm0,%xmm4\r
+ movups 32(%edx),%xmm0\r
+ leal 32(%edx,%ecx,1),%edx\r
+ negl %ecx\r
+ addl $16,%ecx\r
+.L005dec3_loop:\r
+.byte 102,15,56,222,209\r
+.byte 102,15,56,222,217\r
+.byte 102,15,56,222,225\r
+ movups (%edx,%ecx,1),%xmm1\r
+ addl $32,%ecx\r
+.byte 102,15,56,222,208\r
+.byte 102,15,56,222,216\r
+.byte 102,15,56,222,224\r
+ movups -16(%edx,%ecx,1),%xmm0\r
+ jnz .L005dec3_loop\r
+.byte 102,15,56,222,209\r
+.byte 102,15,56,222,217\r
+.byte 102,15,56,222,225\r
+.byte 102,15,56,223,208\r
+.byte 102,15,56,223,216\r
+.byte 102,15,56,223,224\r
+ ret\r
+.size _aesni_decrypt3,.-_aesni_decrypt3\r
+.type _aesni_encrypt4,@function\r
+.align 16\r
+_aesni_encrypt4:\r
+ movups (%edx),%xmm0\r
+ movups 16(%edx),%xmm1\r
+ shll $4,%ecx\r
+ xorps %xmm0,%xmm2\r
+ pxor %xmm0,%xmm3\r
+ pxor %xmm0,%xmm4\r
+ pxor %xmm0,%xmm5\r
+ movups 32(%edx),%xmm0\r
+ leal 32(%edx,%ecx,1),%edx\r
+ negl %ecx\r
+.byte 15,31,64,0\r
+ addl $16,%ecx\r
+.L006enc4_loop:\r
+.byte 102,15,56,220,209\r
+.byte 102,15,56,220,217\r
+.byte 102,15,56,220,225\r
+.byte 102,15,56,220,233\r
+ movups (%edx,%ecx,1),%xmm1\r
+ addl $32,%ecx\r
+.byte 102,15,56,220,208\r
+.byte 102,15,56,220,216\r
+.byte 102,15,56,220,224\r
+.byte 102,15,56,220,232\r
+ movups -16(%edx,%ecx,1),%xmm0\r
+ jnz .L006enc4_loop\r
+.byte 102,15,56,220,209\r
+.byte 102,15,56,220,217\r
+.byte 102,15,56,220,225\r
+.byte 102,15,56,220,233\r
+.byte 102,15,56,221,208\r
+.byte 102,15,56,221,216\r
+.byte 102,15,56,221,224\r
+.byte 102,15,56,221,232\r
+ ret\r
+.size _aesni_encrypt4,.-_aesni_encrypt4\r
+.type _aesni_decrypt4,@function\r
+.align 16\r
+_aesni_decrypt4:\r
+ movups (%edx),%xmm0\r
+ movups 16(%edx),%xmm1\r
+ shll $4,%ecx\r
+ xorps %xmm0,%xmm2\r
+ pxor %xmm0,%xmm3\r
+ pxor %xmm0,%xmm4\r
+ pxor %xmm0,%xmm5\r
+ movups 32(%edx),%xmm0\r
+ leal 32(%edx,%ecx,1),%edx\r
+ negl %ecx\r
+.byte 15,31,64,0\r
+ addl $16,%ecx\r
+.L007dec4_loop:\r
+.byte 102,15,56,222,209\r
+.byte 102,15,56,222,217\r
+.byte 102,15,56,222,225\r
+.byte 102,15,56,222,233\r
+ movups (%edx,%ecx,1),%xmm1\r
+ addl $32,%ecx\r
+.byte 102,15,56,222,208\r
+.byte 102,15,56,222,216\r
+.byte 102,15,56,222,224\r
+.byte 102,15,56,222,232\r
+ movups -16(%edx,%ecx,1),%xmm0\r
+ jnz .L007dec4_loop\r
+.byte 102,15,56,222,209\r
+.byte 102,15,56,222,217\r
+.byte 102,15,56,222,225\r
+.byte 102,15,56,222,233\r
+.byte 102,15,56,223,208\r
+.byte 102,15,56,223,216\r
+.byte 102,15,56,223,224\r
+.byte 102,15,56,223,232\r
+ ret\r
+.size _aesni_decrypt4,.-_aesni_decrypt4\r
+.type _aesni_encrypt6,@function\r
+.align 16\r
+_aesni_encrypt6:\r
+ movups (%edx),%xmm0\r
+ shll $4,%ecx\r
+ movups 16(%edx),%xmm1\r
+ xorps %xmm0,%xmm2\r
+ pxor %xmm0,%xmm3\r
+ pxor %xmm0,%xmm4\r
+.byte 102,15,56,220,209\r
+ pxor %xmm0,%xmm5\r
+ pxor %xmm0,%xmm6\r
+.byte 102,15,56,220,217\r
+ leal 32(%edx,%ecx,1),%edx\r
+ negl %ecx\r
+.byte 102,15,56,220,225\r
+ pxor %xmm0,%xmm7\r
+ movups (%edx,%ecx,1),%xmm0\r
+ addl $16,%ecx\r
+ jmp .L008_aesni_encrypt6_inner\r
+.align 16\r
+.L009enc6_loop:\r
+.byte 102,15,56,220,209\r
+.byte 102,15,56,220,217\r
+.byte 102,15,56,220,225\r
+.L008_aesni_encrypt6_inner:\r
+.byte 102,15,56,220,233\r
+.byte 102,15,56,220,241\r
+.byte 102,15,56,220,249\r
+.L_aesni_encrypt6_enter:\r
+ movups (%edx,%ecx,1),%xmm1\r
+ addl $32,%ecx\r
+.byte 102,15,56,220,208\r
+.byte 102,15,56,220,216\r
+.byte 102,15,56,220,224\r
+.byte 102,15,56,220,232\r
+.byte 102,15,56,220,240\r
+.byte 102,15,56,220,248\r
+ movups -16(%edx,%ecx,1),%xmm0\r
+ jnz .L009enc6_loop\r
+.byte 102,15,56,220,209\r
+.byte 102,15,56,220,217\r
+.byte 102,15,56,220,225\r
+.byte 102,15,56,220,233\r
+.byte 102,15,56,220,241\r
+.byte 102,15,56,220,249\r
+.byte 102,15,56,221,208\r
+.byte 102,15,56,221,216\r
+.byte 102,15,56,221,224\r
+.byte 102,15,56,221,232\r
+.byte 102,15,56,221,240\r
+.byte 102,15,56,221,248\r
+ ret\r
+.size _aesni_encrypt6,.-_aesni_encrypt6\r
+.type _aesni_decrypt6,@function\r
+.align 16\r
+_aesni_decrypt6:\r
+ movups (%edx),%xmm0\r
+ shll $4,%ecx\r
+ movups 16(%edx),%xmm1\r
+ xorps %xmm0,%xmm2\r
+ pxor %xmm0,%xmm3\r
+ pxor %xmm0,%xmm4\r
+.byte 102,15,56,222,209\r
+ pxor %xmm0,%xmm5\r
+ pxor %xmm0,%xmm6\r
+.byte 102,15,56,222,217\r
+ leal 32(%edx,%ecx,1),%edx\r
+ negl %ecx\r
+.byte 102,15,56,222,225\r
+ pxor %xmm0,%xmm7\r
+ movups (%edx,%ecx,1),%xmm0\r
+ addl $16,%ecx\r
+ jmp .L010_aesni_decrypt6_inner\r
+.align 16\r
+.L011dec6_loop:\r
+.byte 102,15,56,222,209\r
+.byte 102,15,56,222,217\r
+.byte 102,15,56,222,225\r
+.L010_aesni_decrypt6_inner:\r
+.byte 102,15,56,222,233\r
+.byte 102,15,56,222,241\r
+.byte 102,15,56,222,249\r
+.L_aesni_decrypt6_enter:\r
+ movups (%edx,%ecx,1),%xmm1\r
+ addl $32,%ecx\r
+.byte 102,15,56,222,208\r
+.byte 102,15,56,222,216\r
+.byte 102,15,56,222,224\r
+.byte 102,15,56,222,232\r
+.byte 102,15,56,222,240\r
+.byte 102,15,56,222,248\r
+ movups -16(%edx,%ecx,1),%xmm0\r
+ jnz .L011dec6_loop\r
+.byte 102,15,56,222,209\r
+.byte 102,15,56,222,217\r
+.byte 102,15,56,222,225\r
+.byte 102,15,56,222,233\r
+.byte 102,15,56,222,241\r
+.byte 102,15,56,222,249\r
+.byte 102,15,56,223,208\r
+.byte 102,15,56,223,216\r
+.byte 102,15,56,223,224\r
+.byte 102,15,56,223,232\r
+.byte 102,15,56,223,240\r
+.byte 102,15,56,223,248\r
+ ret\r
+.size _aesni_decrypt6,.-_aesni_decrypt6\r
+.globl aesni_ecb_encrypt\r
+.type aesni_ecb_encrypt,@function\r
+.align 16\r
+aesni_ecb_encrypt:\r
+.L_aesni_ecb_encrypt_begin:\r
+ pushl %ebp\r
+ pushl %ebx\r
+ pushl %esi\r
+ pushl %edi\r
+ movl 20(%esp),%esi\r
+ movl 24(%esp),%edi\r
+ movl 28(%esp),%eax\r
+ movl 32(%esp),%edx\r
+ movl 36(%esp),%ebx\r
+ andl $-16,%eax\r
+ jz .L012ecb_ret\r
+ movl 240(%edx),%ecx\r
+ testl %ebx,%ebx\r
+ jz .L013ecb_decrypt\r
+ movl %edx,%ebp\r
+ movl %ecx,%ebx\r
+ cmpl $96,%eax\r
+ jb .L014ecb_enc_tail\r
+ movdqu (%esi),%xmm2\r
+ movdqu 16(%esi),%xmm3\r
+ movdqu 32(%esi),%xmm4\r
+ movdqu 48(%esi),%xmm5\r
+ movdqu 64(%esi),%xmm6\r
+ movdqu 80(%esi),%xmm7\r
+ leal 96(%esi),%esi\r
+ subl $96,%eax\r
+ jmp .L015ecb_enc_loop6_enter\r
+.align 16\r
+.L016ecb_enc_loop6:\r
+ movups %xmm2,(%edi)\r
+ movdqu (%esi),%xmm2\r
+ movups %xmm3,16(%edi)\r
+ movdqu 16(%esi),%xmm3\r
+ movups %xmm4,32(%edi)\r
+ movdqu 32(%esi),%xmm4\r
+ movups %xmm5,48(%edi)\r
+ movdqu 48(%esi),%xmm5\r
+ movups %xmm6,64(%edi)\r
+ movdqu 64(%esi),%xmm6\r
+ movups %xmm7,80(%edi)\r
+ leal 96(%edi),%edi\r
+ movdqu 80(%esi),%xmm7\r
+ leal 96(%esi),%esi\r
+.L015ecb_enc_loop6_enter:\r
+ call _aesni_encrypt6\r
+ movl %ebp,%edx\r
+ movl %ebx,%ecx\r
+ subl $96,%eax\r
+ jnc .L016ecb_enc_loop6\r
+ movups %xmm2,(%edi)\r
+ movups %xmm3,16(%edi)\r
+ movups %xmm4,32(%edi)\r
+ movups %xmm5,48(%edi)\r
+ movups %xmm6,64(%edi)\r
+ movups %xmm7,80(%edi)\r
+ leal 96(%edi),%edi\r
+ addl $96,%eax\r
+ jz .L012ecb_ret\r
+.L014ecb_enc_tail:\r
+ movups (%esi),%xmm2\r
+ cmpl $32,%eax\r
+ jb .L017ecb_enc_one\r
+ movups 16(%esi),%xmm3\r
+ je .L018ecb_enc_two\r
+ movups 32(%esi),%xmm4\r
+ cmpl $64,%eax\r
+ jb .L019ecb_enc_three\r
+ movups 48(%esi),%xmm5\r
+ je .L020ecb_enc_four\r
+ movups 64(%esi),%xmm6\r
+ xorps %xmm7,%xmm7\r
+ call _aesni_encrypt6\r
+ movups %xmm2,(%edi)\r
+ movups %xmm3,16(%edi)\r
+ movups %xmm4,32(%edi)\r
+ movups %xmm5,48(%edi)\r
+ movups %xmm6,64(%edi)\r
+ jmp .L012ecb_ret\r
+.align 16\r
+.L017ecb_enc_one:\r
+ movups (%edx),%xmm0\r
+ movups 16(%edx),%xmm1\r
+ leal 32(%edx),%edx\r
+ xorps %xmm0,%xmm2\r
+.L021enc1_loop_3:\r
+.byte 102,15,56,220,209\r
+ decl %ecx\r
+ movups (%edx),%xmm1\r
+ leal 16(%edx),%edx\r
+ jnz .L021enc1_loop_3\r
+.byte 102,15,56,221,209\r
+ movups %xmm2,(%edi)\r
+ jmp .L012ecb_ret\r
+.align 16\r
+.L018ecb_enc_two:\r
+ call _aesni_encrypt2\r
+ movups %xmm2,(%edi)\r
+ movups %xmm3,16(%edi)\r
+ jmp .L012ecb_ret\r
+.align 16\r
+.L019ecb_enc_three:\r
+ call _aesni_encrypt3\r
+ movups %xmm2,(%edi)\r
+ movups %xmm3,16(%edi)\r
+ movups %xmm4,32(%edi)\r
+ jmp .L012ecb_ret\r
+.align 16\r
+.L020ecb_enc_four:\r
+ call _aesni_encrypt4\r
+ movups %xmm2,(%edi)\r
+ movups %xmm3,16(%edi)\r
+ movups %xmm4,32(%edi)\r
+ movups %xmm5,48(%edi)\r
+ jmp .L012ecb_ret\r
+.align 16\r
+.L013ecb_decrypt:\r
+ movl %edx,%ebp\r
+ movl %ecx,%ebx\r
+ cmpl $96,%eax\r
+ jb .L022ecb_dec_tail\r
+ movdqu (%esi),%xmm2\r
+ movdqu 16(%esi),%xmm3\r
+ movdqu 32(%esi),%xmm4\r
+ movdqu 48(%esi),%xmm5\r
+ movdqu 64(%esi),%xmm6\r
+ movdqu 80(%esi),%xmm7\r
+ leal 96(%esi),%esi\r
+ subl $96,%eax\r
+ jmp .L023ecb_dec_loop6_enter\r
+.align 16\r
+.L024ecb_dec_loop6:\r
+ movups %xmm2,(%edi)\r
+ movdqu (%esi),%xmm2\r
+ movups %xmm3,16(%edi)\r
+ movdqu 16(%esi),%xmm3\r
+ movups %xmm4,32(%edi)\r
+ movdqu 32(%esi),%xmm4\r
+ movups %xmm5,48(%edi)\r
+ movdqu 48(%esi),%xmm5\r
+ movups %xmm6,64(%edi)\r
+ movdqu 64(%esi),%xmm6\r
+ movups %xmm7,80(%edi)\r
+ leal 96(%edi),%edi\r
+ movdqu 80(%esi),%xmm7\r
+ leal 96(%esi),%esi\r
+.L023ecb_dec_loop6_enter:\r
+ call _aesni_decrypt6\r
+ movl %ebp,%edx\r
+ movl %ebx,%ecx\r
+ subl $96,%eax\r
+ jnc .L024ecb_dec_loop6\r
+ movups %xmm2,(%edi)\r
+ movups %xmm3,16(%edi)\r
+ movups %xmm4,32(%edi)\r
+ movups %xmm5,48(%edi)\r
+ movups %xmm6,64(%edi)\r
+ movups %xmm7,80(%edi)\r
+ leal 96(%edi),%edi\r
+ addl $96,%eax\r
+ jz .L012ecb_ret\r
+.L022ecb_dec_tail:\r
+ movups (%esi),%xmm2\r
+ cmpl $32,%eax\r
+ jb .L025ecb_dec_one\r
+ movups 16(%esi),%xmm3\r
+ je .L026ecb_dec_two\r
+ movups 32(%esi),%xmm4\r
+ cmpl $64,%eax\r
+ jb .L027ecb_dec_three\r
+ movups 48(%esi),%xmm5\r
+ je .L028ecb_dec_four\r
+ movups 64(%esi),%xmm6\r
+ xorps %xmm7,%xmm7\r
+ call _aesni_decrypt6\r
+ movups %xmm2,(%edi)\r
+ movups %xmm3,16(%edi)\r
+ movups %xmm4,32(%edi)\r
+ movups %xmm5,48(%edi)\r
+ movups %xmm6,64(%edi)\r
+ jmp .L012ecb_ret\r
+.align 16\r
+.L025ecb_dec_one:\r
+ movups (%edx),%xmm0\r
+ movups 16(%edx),%xmm1\r
+ leal 32(%edx),%edx\r
+ xorps %xmm0,%xmm2\r
+.L029dec1_loop_4:\r
+.byte 102,15,56,222,209\r
+ decl %ecx\r
+ movups (%edx),%xmm1\r
+ leal 16(%edx),%edx\r
+ jnz .L029dec1_loop_4\r
+.byte 102,15,56,223,209\r
+ movups %xmm2,(%edi)\r
+ jmp .L012ecb_ret\r
+.align 16\r
+.L026ecb_dec_two:\r
+ call _aesni_decrypt2\r
+ movups %xmm2,(%edi)\r
+ movups %xmm3,16(%edi)\r
+ jmp .L012ecb_ret\r
+.align 16\r
+.L027ecb_dec_three:\r
+ call _aesni_decrypt3\r
+ movups %xmm2,(%edi)\r
+ movups %xmm3,16(%edi)\r
+ movups %xmm4,32(%edi)\r
+ jmp .L012ecb_ret\r
+.align 16\r
+.L028ecb_dec_four:\r
+ call _aesni_decrypt4\r
+ movups %xmm2,(%edi)\r
+ movups %xmm3,16(%edi)\r
+ movups %xmm4,32(%edi)\r
+ movups %xmm5,48(%edi)\r
+.L012ecb_ret:\r
+ pxor %xmm0,%xmm0\r
+ pxor %xmm1,%xmm1\r
+ pxor %xmm2,%xmm2\r
+ pxor %xmm3,%xmm3\r
+ pxor %xmm4,%xmm4\r
+ pxor %xmm5,%xmm5\r
+ pxor %xmm6,%xmm6\r
+ pxor %xmm7,%xmm7\r
+ popl %edi\r
+ popl %esi\r
+ popl %ebx\r
+ popl %ebp\r
+ ret\r
+.size aesni_ecb_encrypt,.-.L_aesni_ecb_encrypt_begin\r
+.globl aesni_ccm64_encrypt_blocks\r
+.type aesni_ccm64_encrypt_blocks,@function\r
+.align 16\r
+aesni_ccm64_encrypt_blocks:\r
+.L_aesni_ccm64_encrypt_blocks_begin:\r
+ pushl %ebp\r
+ pushl %ebx\r
+ pushl %esi\r
+ pushl %edi\r
+ movl 20(%esp),%esi\r
+ movl 24(%esp),%edi\r
+ movl 28(%esp),%eax\r
+ movl 32(%esp),%edx\r
+ movl 36(%esp),%ebx\r
+ movl 40(%esp),%ecx\r
+ movl %esp,%ebp\r
+ subl $60,%esp\r
+ andl $-16,%esp\r
+ movl %ebp,48(%esp)\r
+ movdqu (%ebx),%xmm7\r
+ movdqu (%ecx),%xmm3\r
+ movl 240(%edx),%ecx\r
+ movl $202182159,(%esp)\r
+ movl $134810123,4(%esp)\r
+ movl $67438087,8(%esp)\r
+ movl $66051,12(%esp)\r
+ movl $1,%ebx\r
+ xorl %ebp,%ebp\r
+ movl %ebx,16(%esp)\r
+ movl %ebp,20(%esp)\r
+ movl %ebp,24(%esp)\r
+ movl %ebp,28(%esp)\r
+ shll $4,%ecx\r
+ movl $16,%ebx\r
+ leal (%edx),%ebp\r
+ movdqa (%esp),%xmm5\r
+ movdqa %xmm7,%xmm2\r
+ leal 32(%edx,%ecx,1),%edx\r
+ subl %ecx,%ebx\r
+.byte 102,15,56,0,253\r
+.L030ccm64_enc_outer:\r
+ movups (%ebp),%xmm0\r
+ movl %ebx,%ecx\r
+ movups (%esi),%xmm6\r
+ xorps %xmm0,%xmm2\r
+ movups 16(%ebp),%xmm1\r
+ xorps %xmm6,%xmm0\r
+ xorps %xmm0,%xmm3\r
+ movups 32(%ebp),%xmm0\r
+.L031ccm64_enc2_loop:\r
+.byte 102,15,56,220,209\r
+.byte 102,15,56,220,217\r
+ movups (%edx,%ecx,1),%xmm1\r
+ addl $32,%ecx\r
+.byte 102,15,56,220,208\r
+.byte 102,15,56,220,216\r
+ movups -16(%edx,%ecx,1),%xmm0\r
+ jnz .L031ccm64_enc2_loop\r
+.byte 102,15,56,220,209\r
+.byte 102,15,56,220,217\r
+ paddq 16(%esp),%xmm7\r
+ decl %eax\r
+.byte 102,15,56,221,208\r
+.byte 102,15,56,221,216\r
+ leal 16(%esi),%esi\r
+ xorps %xmm2,%xmm6\r
+ movdqa %xmm7,%xmm2\r
+ movups %xmm6,(%edi)\r
+.byte 102,15,56,0,213\r
+ leal 16(%edi),%edi\r
+ jnz .L030ccm64_enc_outer\r
+ movl 48(%esp),%esp\r
+ movl 40(%esp),%edi\r
+ movups %xmm3,(%edi)\r
+ pxor %xmm0,%xmm0\r
+ pxor %xmm1,%xmm1\r
+ pxor %xmm2,%xmm2\r
+ pxor %xmm3,%xmm3\r
+ pxor %xmm4,%xmm4\r
+ pxor %xmm5,%xmm5\r
+ pxor %xmm6,%xmm6\r
+ pxor %xmm7,%xmm7\r
+ popl %edi\r
+ popl %esi\r
+ popl %ebx\r
+ popl %ebp\r
+ ret\r
+.size aesni_ccm64_encrypt_blocks,.-.L_aesni_ccm64_encrypt_blocks_begin\r
+.globl aesni_ccm64_decrypt_blocks\r
+.type aesni_ccm64_decrypt_blocks,@function\r
+.align 16\r
+aesni_ccm64_decrypt_blocks:\r
+.L_aesni_ccm64_decrypt_blocks_begin:\r
+ pushl %ebp\r
+ pushl %ebx\r
+ pushl %esi\r
+ pushl %edi\r
+ movl 20(%esp),%esi\r
+ movl 24(%esp),%edi\r
+ movl 28(%esp),%eax\r
+ movl 32(%esp),%edx\r
+ movl 36(%esp),%ebx\r
+ movl 40(%esp),%ecx\r
+ movl %esp,%ebp\r
+ subl $60,%esp\r
+ andl $-16,%esp\r
+ movl %ebp,48(%esp)\r
+ movdqu (%ebx),%xmm7\r
+ movdqu (%ecx),%xmm3\r
+ movl 240(%edx),%ecx\r
+ movl $202182159,(%esp)\r
+ movl $134810123,4(%esp)\r
+ movl $67438087,8(%esp)\r
+ movl $66051,12(%esp)\r
+ movl $1,%ebx\r
+ xorl %ebp,%ebp\r
+ movl %ebx,16(%esp)\r
+ movl %ebp,20(%esp)\r
+ movl %ebp,24(%esp)\r
+ movl %ebp,28(%esp)\r
+ movdqa (%esp),%xmm5\r
+ movdqa %xmm7,%xmm2\r
+ movl %edx,%ebp\r
+ movl %ecx,%ebx\r
+.byte 102,15,56,0,253\r
+ movups (%edx),%xmm0\r
+ movups 16(%edx),%xmm1\r
+ leal 32(%edx),%edx\r
+ xorps %xmm0,%xmm2\r
+.L032enc1_loop_5:\r
+.byte 102,15,56,220,209\r
+ decl %ecx\r
+ movups (%edx),%xmm1\r
+ leal 16(%edx),%edx\r
+ jnz .L032enc1_loop_5\r
+.byte 102,15,56,221,209\r
+ shll $4,%ebx\r
+ movl $16,%ecx\r
+ movups (%esi),%xmm6\r
+ paddq 16(%esp),%xmm7\r
+ leal 16(%esi),%esi\r
+ subl %ebx,%ecx\r
+ leal 32(%ebp,%ebx,1),%edx\r
+ movl %ecx,%ebx\r
+ jmp .L033ccm64_dec_outer\r
+.align 16\r
+.L033ccm64_dec_outer:\r
+ xorps %xmm2,%xmm6\r
+ movdqa %xmm7,%xmm2\r
+ movups %xmm6,(%edi)\r
+ leal 16(%edi),%edi\r
+.byte 102,15,56,0,213\r
+ subl $1,%eax\r
+ jz .L034ccm64_dec_break\r
+ movups (%ebp),%xmm0\r
+ movl %ebx,%ecx\r
+ movups 16(%ebp),%xmm1\r
+ xorps %xmm0,%xmm6\r
+ xorps %xmm0,%xmm2\r
+ xorps %xmm6,%xmm3\r
+ movups 32(%ebp),%xmm0\r
+.L035ccm64_dec2_loop:\r
+.byte 102,15,56,220,209\r
+.byte 102,15,56,220,217\r
+ movups (%edx,%ecx,1),%xmm1\r
+ addl $32,%ecx\r
+.byte 102,15,56,220,208\r
+.byte 102,15,56,220,216\r
+ movups -16(%edx,%ecx,1),%xmm0\r
+ jnz .L035ccm64_dec2_loop\r
+ movups (%esi),%xmm6\r
+ paddq 16(%esp),%xmm7\r
+.byte 102,15,56,220,209\r
+.byte 102,15,56,220,217\r
+.byte 102,15,56,221,208\r
+.byte 102,15,56,221,216\r
+ leal 16(%esi),%esi\r
+ jmp .L033ccm64_dec_outer\r
+.align 16\r
+.L034ccm64_dec_break:\r
+ movl 240(%ebp),%ecx\r
+ movl %ebp,%edx\r
+ movups (%edx),%xmm0\r
+ movups 16(%edx),%xmm1\r
+ xorps %xmm0,%xmm6\r
+ leal 32(%edx),%edx\r
+ xorps %xmm6,%xmm3\r
+.L036enc1_loop_6:\r
+.byte 102,15,56,220,217\r
+ decl %ecx\r
+ movups (%edx),%xmm1\r
+ leal 16(%edx),%edx\r
+ jnz .L036enc1_loop_6\r
+.byte 102,15,56,221,217\r
+ movl 48(%esp),%esp\r
+ movl 40(%esp),%edi\r
+ movups %xmm3,(%edi)\r
+ pxor %xmm0,%xmm0\r
+ pxor %xmm1,%xmm1\r
+ pxor %xmm2,%xmm2\r
+ pxor %xmm3,%xmm3\r
+ pxor %xmm4,%xmm4\r
+ pxor %xmm5,%xmm5\r
+ pxor %xmm6,%xmm6\r
+ pxor %xmm7,%xmm7\r
+ popl %edi\r
+ popl %esi\r
+ popl %ebx\r
+ popl %ebp\r
+ ret\r
+.size aesni_ccm64_decrypt_blocks,.-.L_aesni_ccm64_decrypt_blocks_begin\r
+.globl aesni_ctr32_encrypt_blocks\r
+.type aesni_ctr32_encrypt_blocks,@function\r
+.align 16\r
+aesni_ctr32_encrypt_blocks:\r
+.L_aesni_ctr32_encrypt_blocks_begin:\r
+ pushl %ebp\r
+ pushl %ebx\r
+ pushl %esi\r
+ pushl %edi\r
+ movl 20(%esp),%esi\r
+ movl 24(%esp),%edi\r
+ movl 28(%esp),%eax\r
+ movl 32(%esp),%edx\r
+ movl 36(%esp),%ebx\r
+ movl %esp,%ebp\r
+ subl $88,%esp\r
+ andl $-16,%esp\r
+ movl %ebp,80(%esp)\r
+ cmpl $1,%eax\r
+ je .L037ctr32_one_shortcut\r
+ movdqu (%ebx),%xmm7\r
+ movl $202182159,(%esp)\r
+ movl $134810123,4(%esp)\r
+ movl $67438087,8(%esp)\r
+ movl $66051,12(%esp)\r
+ movl $6,%ecx\r
+ xorl %ebp,%ebp\r
+ movl %ecx,16(%esp)\r
+ movl %ecx,20(%esp)\r
+ movl %ecx,24(%esp)\r
+ movl %ebp,28(%esp)\r
+.byte 102,15,58,22,251,3\r
+.byte 102,15,58,34,253,3\r
+ movl 240(%edx),%ecx\r
+ bswap %ebx\r
+ pxor %xmm0,%xmm0\r
+ pxor %xmm1,%xmm1\r
+ movdqa (%esp),%xmm2\r
+.byte 102,15,58,34,195,0\r
+ leal 3(%ebx),%ebp\r
+.byte 102,15,58,34,205,0\r
+ incl %ebx\r
+.byte 102,15,58,34,195,1\r
+ incl %ebp\r
+.byte 102,15,58,34,205,1\r
+ incl %ebx\r
+.byte 102,15,58,34,195,2\r
+ incl %ebp\r
+.byte 102,15,58,34,205,2\r
+ movdqa %xmm0,48(%esp)\r
+.byte 102,15,56,0,194\r
+ movdqu (%edx),%xmm6\r
+ movdqa %xmm1,64(%esp)\r
+.byte 102,15,56,0,202\r
+ pshufd $192,%xmm0,%xmm2\r
+ pshufd $128,%xmm0,%xmm3\r
+ cmpl $6,%eax\r
+ jb .L038ctr32_tail\r
+ pxor %xmm6,%xmm7\r
+ shll $4,%ecx\r
+ movl $16,%ebx\r
+ movdqa %xmm7,32(%esp)\r
+ movl %edx,%ebp\r
+ subl %ecx,%ebx\r
+ leal 32(%edx,%ecx,1),%edx\r
+ subl $6,%eax\r
+ jmp .L039ctr32_loop6\r
+.align 16\r
+.L039ctr32_loop6:\r
+ pshufd $64,%xmm0,%xmm4\r
+ movdqa 32(%esp),%xmm0\r
+ pshufd $192,%xmm1,%xmm5\r
+ pxor %xmm0,%xmm2\r
+ pshufd $128,%xmm1,%xmm6\r
+ pxor %xmm0,%xmm3\r
+ pshufd $64,%xmm1,%xmm7\r
+ movups 16(%ebp),%xmm1\r
+ pxor %xmm0,%xmm4\r
+ pxor %xmm0,%xmm5\r
+.byte 102,15,56,220,209\r
+ pxor %xmm0,%xmm6\r
+ pxor %xmm0,%xmm7\r
+.byte 102,15,56,220,217\r
+ movups 32(%ebp),%xmm0\r
+ movl %ebx,%ecx\r
+.byte 102,15,56,220,225\r
+.byte 102,15,56,220,233\r
+.byte 102,15,56,220,241\r
+.byte 102,15,56,220,249\r
+ call .L_aesni_encrypt6_enter\r
+ movups (%esi),%xmm1\r
+ movups 16(%esi),%xmm0\r
+ xorps %xmm1,%xmm2\r
+ movups 32(%esi),%xmm1\r
+ xorps %xmm0,%xmm3\r
+ movups %xmm2,(%edi)\r
+ movdqa 16(%esp),%xmm0\r
+ xorps %xmm1,%xmm4\r
+ movdqa 64(%esp),%xmm1\r
+ movups %xmm3,16(%edi)\r
+ movups %xmm4,32(%edi)\r
+ paddd %xmm0,%xmm1\r
+ paddd 48(%esp),%xmm0\r
+ movdqa (%esp),%xmm2\r
+ movups 48(%esi),%xmm3\r
+ movups 64(%esi),%xmm4\r
+ xorps %xmm3,%xmm5\r
+ movups 80(%esi),%xmm3\r
+ leal 96(%esi),%esi\r
+ movdqa %xmm0,48(%esp)\r
+.byte 102,15,56,0,194\r
+ xorps %xmm4,%xmm6\r
+ movups %xmm5,48(%edi)\r
+ xorps %xmm3,%xmm7\r
+ movdqa %xmm1,64(%esp)\r
+.byte 102,15,56,0,202\r
+ movups %xmm6,64(%edi)\r
+ pshufd $192,%xmm0,%xmm2\r
+ movups %xmm7,80(%edi)\r
+ leal 96(%edi),%edi\r
+ pshufd $128,%xmm0,%xmm3\r
+ subl $6,%eax\r
+ jnc .L039ctr32_loop6\r
+ addl $6,%eax\r
+ jz .L040ctr32_ret\r
+ movdqu (%ebp),%xmm7\r
+ movl %ebp,%edx\r
+ pxor 32(%esp),%xmm7\r
+ movl 240(%ebp),%ecx\r
+.L038ctr32_tail:\r
+ por %xmm7,%xmm2\r
+ cmpl $2,%eax\r
+ jb .L041ctr32_one\r
+ pshufd $64,%xmm0,%xmm4\r
+ por %xmm7,%xmm3\r
+ je .L042ctr32_two\r
+ pshufd $192,%xmm1,%xmm5\r
+ por %xmm7,%xmm4\r
+ cmpl $4,%eax\r
+ jb .L043ctr32_three\r
+ pshufd $128,%xmm1,%xmm6\r
+ por %xmm7,%xmm5\r
+ je .L044ctr32_four\r
+ por %xmm7,%xmm6\r
+ call _aesni_encrypt6\r
+ movups (%esi),%xmm1\r
+ movups 16(%esi),%xmm0\r
+ xorps %xmm1,%xmm2\r
+ movups 32(%esi),%xmm1\r
+ xorps %xmm0,%xmm3\r
+ movups 48(%esi),%xmm0\r
+ xorps %xmm1,%xmm4\r
+ movups 64(%esi),%xmm1\r
+ xorps %xmm0,%xmm5\r
+ movups %xmm2,(%edi)\r
+ xorps %xmm1,%xmm6\r
+ movups %xmm3,16(%edi)\r
+ movups %xmm4,32(%edi)\r
+ movups %xmm5,48(%edi)\r
+ movups %xmm6,64(%edi)\r
+ jmp .L040ctr32_ret\r
+.align 16\r
+.L037ctr32_one_shortcut:\r
+ movups (%ebx),%xmm2\r
+ movl 240(%edx),%ecx\r
+.L041ctr32_one:\r
+ movups (%edx),%xmm0\r
+ movups 16(%edx),%xmm1\r
+ leal 32(%edx),%edx\r
+ xorps %xmm0,%xmm2\r
+.L045enc1_loop_7:\r
+.byte 102,15,56,220,209\r
+ decl %ecx\r
+ movups (%edx),%xmm1\r
+ leal 16(%edx),%edx\r
+ jnz .L045enc1_loop_7\r
+.byte 102,15,56,221,209\r
+ movups (%esi),%xmm6\r
+ xorps %xmm2,%xmm6\r
+ movups %xmm6,(%edi)\r
+ jmp .L040ctr32_ret\r
+.align 16\r
+.L042ctr32_two:\r
+ call _aesni_encrypt2\r
+ movups (%esi),%xmm5\r
+ movups 16(%esi),%xmm6\r
+ xorps %xmm5,%xmm2\r
+ xorps %xmm6,%xmm3\r
+ movups %xmm2,(%edi)\r
+ movups %xmm3,16(%edi)\r
+ jmp .L040ctr32_ret\r
+.align 16\r
+.L043ctr32_three:\r
+ call _aesni_encrypt3\r
+ movups (%esi),%xmm5\r
+ movups 16(%esi),%xmm6\r
+ xorps %xmm5,%xmm2\r
+ movups 32(%esi),%xmm7\r
+ xorps %xmm6,%xmm3\r
+ movups %xmm2,(%edi)\r
+ xorps %xmm7,%xmm4\r
+ movups %xmm3,16(%edi)\r
+ movups %xmm4,32(%edi)\r
+ jmp .L040ctr32_ret\r
+.align 16\r
+.L044ctr32_four:\r
+ call _aesni_encrypt4\r
+ movups (%esi),%xmm6\r
+ movups 16(%esi),%xmm7\r
+ movups 32(%esi),%xmm1\r
+ xorps %xmm6,%xmm2\r
+ movups 48(%esi),%xmm0\r
+ xorps %xmm7,%xmm3\r
+ movups %xmm2,(%edi)\r
+ xorps %xmm1,%xmm4\r
+ movups %xmm3,16(%edi)\r
+ xorps %xmm0,%xmm5\r
+ movups %xmm4,32(%edi)\r
+ movups %xmm5,48(%edi)\r
+.L040ctr32_ret:\r
+ pxor %xmm0,%xmm0\r
+ pxor %xmm1,%xmm1\r
+ pxor %xmm2,%xmm2\r
+ pxor %xmm3,%xmm3\r
+ pxor %xmm4,%xmm4\r
+ movdqa %xmm0,32(%esp)\r
+ pxor %xmm5,%xmm5\r
+ movdqa %xmm0,48(%esp)\r
+ pxor %xmm6,%xmm6\r
+ movdqa %xmm0,64(%esp)\r
+ pxor %xmm7,%xmm7\r
+ movl 80(%esp),%esp\r
+ popl %edi\r
+ popl %esi\r
+ popl %ebx\r
+ popl %ebp\r
+ ret\r
+.size aesni_ctr32_encrypt_blocks,.-.L_aesni_ctr32_encrypt_blocks_begin\r
+.globl aesni_xts_encrypt\r
+.type aesni_xts_encrypt,@function\r
+.align 16\r
+aesni_xts_encrypt:\r
+.L_aesni_xts_encrypt_begin:\r
+ pushl %ebp\r
+ pushl %ebx\r
+ pushl %esi\r
+ pushl %edi\r
+ movl 36(%esp),%edx\r
+ movl 40(%esp),%esi\r
+ movl 240(%edx),%ecx\r
+ movups (%esi),%xmm2\r
+ movups (%edx),%xmm0\r
+ movups 16(%edx),%xmm1\r
+ leal 32(%edx),%edx\r
+ xorps %xmm0,%xmm2\r
+.L046enc1_loop_8:\r
+.byte 102,15,56,220,209\r
+ decl %ecx\r
+ movups (%edx),%xmm1\r
+ leal 16(%edx),%edx\r
+ jnz .L046enc1_loop_8\r
+.byte 102,15,56,221,209\r
+ movl 20(%esp),%esi\r
+ movl 24(%esp),%edi\r
+ movl 28(%esp),%eax\r
+ movl 32(%esp),%edx\r
+ movl %esp,%ebp\r
+ subl $120,%esp\r
+ movl 240(%edx),%ecx\r
+ andl $-16,%esp\r
+ movl $135,96(%esp)\r
+ movl $0,100(%esp)\r
+ movl $1,104(%esp)\r
+ movl $0,108(%esp)\r
+ movl %eax,112(%esp)\r
+ movl %ebp,116(%esp)\r
+ movdqa %xmm2,%xmm1\r
+ pxor %xmm0,%xmm0\r
+ movdqa 96(%esp),%xmm3\r
+ pcmpgtd %xmm1,%xmm0\r
+ andl $-16,%eax\r
+ movl %edx,%ebp\r
+ movl %ecx,%ebx\r
+ subl $96,%eax\r
+ jc .L047xts_enc_short\r
+ shll $4,%ecx\r
+ movl $16,%ebx\r
+ subl %ecx,%ebx\r
+ leal 32(%edx,%ecx,1),%edx\r
+ jmp .L048xts_enc_loop6\r
+.align 16\r
+.L048xts_enc_loop6:\r
+ pshufd $19,%xmm0,%xmm2\r
+ pxor %xmm0,%xmm0\r
+ movdqa %xmm1,(%esp)\r
+ paddq %xmm1,%xmm1\r
+ pand %xmm3,%xmm2\r
+ pcmpgtd %xmm1,%xmm0\r
+ pxor %xmm2,%xmm1\r
+ pshufd $19,%xmm0,%xmm2\r
+ pxor %xmm0,%xmm0\r
+ movdqa %xmm1,16(%esp)\r
+ paddq %xmm1,%xmm1\r
+ pand %xmm3,%xmm2\r
+ pcmpgtd %xmm1,%xmm0\r
+ pxor %xmm2,%xmm1\r
+ pshufd $19,%xmm0,%xmm2\r
+ pxor %xmm0,%xmm0\r
+ movdqa %xmm1,32(%esp)\r
+ paddq %xmm1,%xmm1\r
+ pand %xmm3,%xmm2\r
+ pcmpgtd %xmm1,%xmm0\r
+ pxor %xmm2,%xmm1\r
+ pshufd $19,%xmm0,%xmm2\r
+ pxor %xmm0,%xmm0\r
+ movdqa %xmm1,48(%esp)\r
+ paddq %xmm1,%xmm1\r
+ pand %xmm3,%xmm2\r
+ pcmpgtd %xmm1,%xmm0\r
+ pxor %xmm2,%xmm1\r
+ pshufd $19,%xmm0,%xmm7\r
+ movdqa %xmm1,64(%esp)\r
+ paddq %xmm1,%xmm1\r
+ movups (%ebp),%xmm0\r
+ pand %xmm3,%xmm7\r
+ movups (%esi),%xmm2\r
+ pxor %xmm1,%xmm7\r
+ movl %ebx,%ecx\r
+ movdqu 16(%esi),%xmm3\r
+ xorps %xmm0,%xmm2\r
+ movdqu 32(%esi),%xmm4\r
+ pxor %xmm0,%xmm3\r
+ movdqu 48(%esi),%xmm5\r
+ pxor %xmm0,%xmm4\r
+ movdqu 64(%esi),%xmm6\r
+ pxor %xmm0,%xmm5\r
+ movdqu 80(%esi),%xmm1\r
+ pxor %xmm0,%xmm6\r
+ leal 96(%esi),%esi\r
+ pxor (%esp),%xmm2\r
+ movdqa %xmm7,80(%esp)\r
+ pxor %xmm1,%xmm7\r
+ movups 16(%ebp),%xmm1\r
+ pxor 16(%esp),%xmm3\r
+ pxor 32(%esp),%xmm4\r
+.byte 102,15,56,220,209\r
+ pxor 48(%esp),%xmm5\r
+ pxor 64(%esp),%xmm6\r
+.byte 102,15,56,220,217\r
+ pxor %xmm0,%xmm7\r
+ movups 32(%ebp),%xmm0\r
+.byte 102,15,56,220,225\r
+.byte 102,15,56,220,233\r
+.byte 102,15,56,220,241\r
+.byte 102,15,56,220,249\r
+ call .L_aesni_encrypt6_enter\r
+ movdqa 80(%esp),%xmm1\r
+ pxor %xmm0,%xmm0\r
+ xorps (%esp),%xmm2\r
+ pcmpgtd %xmm1,%xmm0\r
+ xorps 16(%esp),%xmm3\r
+ movups %xmm2,(%edi)\r
+ xorps 32(%esp),%xmm4\r
+ movups %xmm3,16(%edi)\r
+ xorps 48(%esp),%xmm5\r
+ movups %xmm4,32(%edi)\r
+ xorps 64(%esp),%xmm6\r
+ movups %xmm5,48(%edi)\r
+ xorps %xmm1,%xmm7\r
+ movups %xmm6,64(%edi)\r
+ pshufd $19,%xmm0,%xmm2\r
+ movups %xmm7,80(%edi)\r
+ leal 96(%edi),%edi\r
+ movdqa 96(%esp),%xmm3\r
+ pxor %xmm0,%xmm0\r
+ paddq %xmm1,%xmm1\r
+ pand %xmm3,%xmm2\r
+ pcmpgtd %xmm1,%xmm0\r
+ pxor %xmm2,%xmm1\r
+ subl $96,%eax\r
+ jnc .L048xts_enc_loop6\r
+ movl 240(%ebp),%ecx\r
+ movl %ebp,%edx\r
+ movl %ecx,%ebx\r
+.L047xts_enc_short:\r
+ addl $96,%eax\r
+ jz .L049xts_enc_done6x\r
+ movdqa %xmm1,%xmm5\r
+ cmpl $32,%eax\r
+ jb .L050xts_enc_one\r
+ pshufd $19,%xmm0,%xmm2\r
+ pxor %xmm0,%xmm0\r
+ paddq %xmm1,%xmm1\r
+ pand %xmm3,%xmm2\r
+ pcmpgtd %xmm1,%xmm0\r
+ pxor %xmm2,%xmm1\r
+ je .L051xts_enc_two\r
+ pshufd $19,%xmm0,%xmm2\r
+ pxor %xmm0,%xmm0\r
+ movdqa %xmm1,%xmm6\r
+ paddq %xmm1,%xmm1\r
+ pand %xmm3,%xmm2\r
+ pcmpgtd %xmm1,%xmm0\r
+ pxor %xmm2,%xmm1\r
+ cmpl $64,%eax\r
+ jb .L052xts_enc_three\r
+ pshufd $19,%xmm0,%xmm2\r
+ pxor %xmm0,%xmm0\r
+ movdqa %xmm1,%xmm7\r
+ paddq %xmm1,%xmm1\r
+ pand %xmm3,%xmm2\r
+ pcmpgtd %xmm1,%xmm0\r
+ pxor %xmm2,%xmm1\r
+ movdqa %xmm5,(%esp)\r
+ movdqa %xmm6,16(%esp)\r
+ je .L053xts_enc_four\r
+ movdqa %xmm7,32(%esp)\r
+ pshufd $19,%xmm0,%xmm7\r
+ movdqa %xmm1,48(%esp)\r
+ paddq %xmm1,%xmm1\r
+ pand %xmm3,%xmm7\r
+ pxor %xmm1,%xmm7\r
+ movdqu (%esi),%xmm2\r
+ movdqu 16(%esi),%xmm3\r
+ movdqu 32(%esi),%xmm4\r
+ pxor (%esp),%xmm2\r
+ movdqu 48(%esi),%xmm5\r
+ pxor 16(%esp),%xmm3\r
+ movdqu 64(%esi),%xmm6\r
+ pxor 32(%esp),%xmm4\r
+ leal 80(%esi),%esi\r
+ pxor 48(%esp),%xmm5\r
+ movdqa %xmm7,64(%esp)\r
+ pxor %xmm7,%xmm6\r
+ call _aesni_encrypt6\r
+ movaps 64(%esp),%xmm1\r
+ xorps (%esp),%xmm2\r
+ xorps 16(%esp),%xmm3\r
+ xorps 32(%esp),%xmm4\r
+ movups %xmm2,(%edi)\r
+ xorps 48(%esp),%xmm5\r
+ movups %xmm3,16(%edi)\r
+ xorps %xmm1,%xmm6\r
+ movups %xmm4,32(%edi)\r
+ movups %xmm5,48(%edi)\r
+ movups %xmm6,64(%edi)\r
+ leal 80(%edi),%edi\r
+ jmp .L054xts_enc_done\r
+.align 16\r
+.L050xts_enc_one:\r
+ movups (%esi),%xmm2\r
+ leal 16(%esi),%esi\r
+ xorps %xmm5,%xmm2\r
+ movups (%edx),%xmm0\r
+ movups 16(%edx),%xmm1\r
+ leal 32(%edx),%edx\r
+ xorps %xmm0,%xmm2\r
+.L055enc1_loop_9:\r
+.byte 102,15,56,220,209\r
+ decl %ecx\r
+ movups (%edx),%xmm1\r
+ leal 16(%edx),%edx\r
+ jnz .L055enc1_loop_9\r
+.byte 102,15,56,221,209\r
+ xorps %xmm5,%xmm2\r
+ movups %xmm2,(%edi)\r
+ leal 16(%edi),%edi\r
+ movdqa %xmm5,%xmm1\r
+ jmp .L054xts_enc_done\r
+.align 16\r
+.L051xts_enc_two:\r
+ movaps %xmm1,%xmm6\r
+ movups (%esi),%xmm2\r
+ movups 16(%esi),%xmm3\r
+ leal 32(%esi),%esi\r
+ xorps %xmm5,%xmm2\r
+ xorps %xmm6,%xmm3\r
+ call _aesni_encrypt2\r
+ xorps %xmm5,%xmm2\r
+ xorps %xmm6,%xmm3\r
+ movups %xmm2,(%edi)\r
+ movups %xmm3,16(%edi)\r
+ leal 32(%edi),%edi\r
+ movdqa %xmm6,%xmm1\r
+ jmp .L054xts_enc_done\r
+.align 16\r
+.L052xts_enc_three:\r
+ movaps %xmm1,%xmm7\r
+ movups (%esi),%xmm2\r
+ movups 16(%esi),%xmm3\r
+ movups 32(%esi),%xmm4\r
+ leal 48(%esi),%esi\r
+ xorps %xmm5,%xmm2\r
+ xorps %xmm6,%xmm3\r
+ xorps %xmm7,%xmm4\r
+ call _aesni_encrypt3\r
+ xorps %xmm5,%xmm2\r
+ xorps %xmm6,%xmm3\r
+ xorps %xmm7,%xmm4\r
+ movups %xmm2,(%edi)\r
+ movups %xmm3,16(%edi)\r
+ movups %xmm4,32(%edi)\r
+ leal 48(%edi),%edi\r
+ movdqa %xmm7,%xmm1\r
+ jmp .L054xts_enc_done\r
+.align 16\r
+.L053xts_enc_four:\r
+ movaps %xmm1,%xmm6\r
+ movups (%esi),%xmm2\r
+ movups 16(%esi),%xmm3\r
+ movups 32(%esi),%xmm4\r
+ xorps (%esp),%xmm2\r
+ movups 48(%esi),%xmm5\r
+ leal 64(%esi),%esi\r
+ xorps 16(%esp),%xmm3\r
+ xorps %xmm7,%xmm4\r
+ xorps %xmm6,%xmm5\r
+ call _aesni_encrypt4\r
+ xorps (%esp),%xmm2\r
+ xorps 16(%esp),%xmm3\r
+ xorps %xmm7,%xmm4\r
+ movups %xmm2,(%edi)\r
+ xorps %xmm6,%xmm5\r
+ movups %xmm3,16(%edi)\r
+ movups %xmm4,32(%edi)\r
+ movups %xmm5,48(%edi)\r
+ leal 64(%edi),%edi\r
+ movdqa %xmm6,%xmm1\r
+ jmp .L054xts_enc_done\r
+.align 16\r
+.L049xts_enc_done6x:\r
+ movl 112(%esp),%eax\r
+ andl $15,%eax\r
+ jz .L056xts_enc_ret\r
+ movdqa %xmm1,%xmm5\r
+ movl %eax,112(%esp)\r
+ jmp .L057xts_enc_steal\r
+.align 16\r
+.L054xts_enc_done:\r
+ movl 112(%esp),%eax\r
+ pxor %xmm0,%xmm0\r
+ andl $15,%eax\r
+ jz .L056xts_enc_ret\r
+ pcmpgtd %xmm1,%xmm0\r
+ movl %eax,112(%esp)\r
+ pshufd $19,%xmm0,%xmm5\r
+ paddq %xmm1,%xmm1\r
+ pand 96(%esp),%xmm5\r
+ pxor %xmm1,%xmm5\r
+.L057xts_enc_steal:\r
+ movzbl (%esi),%ecx\r
+ movzbl -16(%edi),%edx\r
+ leal 1(%esi),%esi\r
+ movb %cl,-16(%edi)\r
+ movb %dl,(%edi)\r
+ leal 1(%edi),%edi\r
+ subl $1,%eax\r
+ jnz .L057xts_enc_steal\r
+ subl 112(%esp),%edi\r
+ movl %ebp,%edx\r
+ movl %ebx,%ecx\r
+ movups -16(%edi),%xmm2\r
+ xorps %xmm5,%xmm2\r
+ movups (%edx),%xmm0\r
+ movups 16(%edx),%xmm1\r
+ leal 32(%edx),%edx\r
+ xorps %xmm0,%xmm2\r
+.L058enc1_loop_10:\r
+.byte 102,15,56,220,209\r
+ decl %ecx\r
+ movups (%edx),%xmm1\r
+ leal 16(%edx),%edx\r
+ jnz .L058enc1_loop_10\r
+.byte 102,15,56,221,209\r
+ xorps %xmm5,%xmm2\r
+ movups %xmm2,-16(%edi)\r
+.L056xts_enc_ret:\r
+ pxor %xmm0,%xmm0\r
+ pxor %xmm1,%xmm1\r
+ pxor %xmm2,%xmm2\r
+ movdqa %xmm0,(%esp)\r
+ pxor %xmm3,%xmm3\r
+ movdqa %xmm0,16(%esp)\r
+ pxor %xmm4,%xmm4\r
+ movdqa %xmm0,32(%esp)\r
+ pxor %xmm5,%xmm5\r
+ movdqa %xmm0,48(%esp)\r
+ pxor %xmm6,%xmm6\r
+ movdqa %xmm0,64(%esp)\r
+ pxor %xmm7,%xmm7\r
+ movdqa %xmm0,80(%esp)\r
+ movl 116(%esp),%esp\r
+ popl %edi\r
+ popl %esi\r
+ popl %ebx\r
+ popl %ebp\r
+ ret\r
+.size aesni_xts_encrypt,.-.L_aesni_xts_encrypt_begin\r
+.globl aesni_xts_decrypt\r
+.type aesni_xts_decrypt,@function\r
+.align 16\r
+aesni_xts_decrypt:\r
+.L_aesni_xts_decrypt_begin:\r
+ pushl %ebp\r
+ pushl %ebx\r
+ pushl %esi\r
+ pushl %edi\r
+ movl 36(%esp),%edx\r
+ movl 40(%esp),%esi\r
+ movl 240(%edx),%ecx\r
+ movups (%esi),%xmm2\r
+ movups (%edx),%xmm0\r
+ movups 16(%edx),%xmm1\r
+ leal 32(%edx),%edx\r
+ xorps %xmm0,%xmm2\r
+.L059enc1_loop_11:\r
+.byte 102,15,56,220,209\r
+ decl %ecx\r
+ movups (%edx),%xmm1\r
+ leal 16(%edx),%edx\r
+ jnz .L059enc1_loop_11\r
+.byte 102,15,56,221,209\r
+ movl 20(%esp),%esi\r
+ movl 24(%esp),%edi\r
+ movl 28(%esp),%eax\r
+ movl 32(%esp),%edx\r
+ movl %esp,%ebp\r
+ subl $120,%esp\r
+ andl $-16,%esp\r
+ xorl %ebx,%ebx\r
+ testl $15,%eax\r
+ setnz %bl\r
+ shll $4,%ebx\r
+ subl %ebx,%eax\r
+ movl $135,96(%esp)\r
+ movl $0,100(%esp)\r
+ movl $1,104(%esp)\r
+ movl $0,108(%esp)\r
+ movl %eax,112(%esp)\r
+ movl %ebp,116(%esp)\r
+ movl 240(%edx),%ecx\r
+ movl %edx,%ebp\r
+ movl %ecx,%ebx\r
+ movdqa %xmm2,%xmm1\r
+ pxor %xmm0,%xmm0\r
+ movdqa 96(%esp),%xmm3\r
+ pcmpgtd %xmm1,%xmm0\r
+ andl $-16,%eax\r
+ subl $96,%eax\r
+ jc .L060xts_dec_short\r
+ shll $4,%ecx\r
+ movl $16,%ebx\r
+ subl %ecx,%ebx\r
+ leal 32(%edx,%ecx,1),%edx\r
+ jmp .L061xts_dec_loop6\r
+.align 16\r
+.L061xts_dec_loop6:\r
+ pshufd $19,%xmm0,%xmm2\r
+ pxor %xmm0,%xmm0\r
+ movdqa %xmm1,(%esp)\r
+ paddq %xmm1,%xmm1\r
+ pand %xmm3,%xmm2\r
+ pcmpgtd %xmm1,%xmm0\r
+ pxor %xmm2,%xmm1\r
+ pshufd $19,%xmm0,%xmm2\r
+ pxor %xmm0,%xmm0\r
+ movdqa %xmm1,16(%esp)\r
+ paddq %xmm1,%xmm1\r
+ pand %xmm3,%xmm2\r
+ pcmpgtd %xmm1,%xmm0\r
+ pxor %xmm2,%xmm1\r
+ pshufd $19,%xmm0,%xmm2\r
+ pxor %xmm0,%xmm0\r
+ movdqa %xmm1,32(%esp)\r
+ paddq %xmm1,%xmm1\r
+ pand %xmm3,%xmm2\r
+ pcmpgtd %xmm1,%xmm0\r
+ pxor %xmm2,%xmm1\r
+ pshufd $19,%xmm0,%xmm2\r
+ pxor %xmm0,%xmm0\r
+ movdqa %xmm1,48(%esp)\r
+ paddq %xmm1,%xmm1\r
+ pand %xmm3,%xmm2\r
+ pcmpgtd %xmm1,%xmm0\r
+ pxor %xmm2,%xmm1\r
+ pshufd $19,%xmm0,%xmm7\r
+ movdqa %xmm1,64(%esp)\r
+ paddq %xmm1,%xmm1\r
+ movups (%ebp),%xmm0\r
+ pand %xmm3,%xmm7\r
+ movups (%esi),%xmm2\r
+ pxor %xmm1,%xmm7\r
+ movl %ebx,%ecx\r
+ movdqu 16(%esi),%xmm3\r
+ xorps %xmm0,%xmm2\r
+ movdqu 32(%esi),%xmm4\r
+ pxor %xmm0,%xmm3\r
+ movdqu 48(%esi),%xmm5\r
+ pxor %xmm0,%xmm4\r
+ movdqu 64(%esi),%xmm6\r
+ pxor %xmm0,%xmm5\r
+ movdqu 80(%esi),%xmm1\r
+ pxor %xmm0,%xmm6\r
+ leal 96(%esi),%esi\r
+ pxor (%esp),%xmm2\r
+ movdqa %xmm7,80(%esp)\r
+ pxor %xmm1,%xmm7\r
+ movups 16(%ebp),%xmm1\r
+ pxor 16(%esp),%xmm3\r
+ pxor 32(%esp),%xmm4\r
+.byte 102,15,56,222,209\r
+ pxor 48(%esp),%xmm5\r
+ pxor 64(%esp),%xmm6\r
+.byte 102,15,56,222,217\r
+ pxor %xmm0,%xmm7\r
+ movups 32(%ebp),%xmm0\r
+.byte 102,15,56,222,225\r
+.byte 102,15,56,222,233\r
+.byte 102,15,56,222,241\r
+.byte 102,15,56,222,249\r
+ call .L_aesni_decrypt6_enter\r
+ movdqa 80(%esp),%xmm1\r
+ pxor %xmm0,%xmm0\r
+ xorps (%esp),%xmm2\r
+ pcmpgtd %xmm1,%xmm0\r
+ xorps 16(%esp),%xmm3\r
+ movups %xmm2,(%edi)\r
+ xorps 32(%esp),%xmm4\r
+ movups %xmm3,16(%edi)\r
+ xorps 48(%esp),%xmm5\r
+ movups %xmm4,32(%edi)\r
+ xorps 64(%esp),%xmm6\r
+ movups %xmm5,48(%edi)\r
+ xorps %xmm1,%xmm7\r
+ movups %xmm6,64(%edi)\r
+ pshufd $19,%xmm0,%xmm2\r
+ movups %xmm7,80(%edi)\r
+ leal 96(%edi),%edi\r
+ movdqa 96(%esp),%xmm3\r
+ pxor %xmm0,%xmm0\r
+ paddq %xmm1,%xmm1\r
+ pand %xmm3,%xmm2\r
+ pcmpgtd %xmm1,%xmm0\r
+ pxor %xmm2,%xmm1\r
+ subl $96,%eax\r
+ jnc .L061xts_dec_loop6\r
+ movl 240(%ebp),%ecx\r
+ movl %ebp,%edx\r
+ movl %ecx,%ebx\r
+.L060xts_dec_short:\r
+ addl $96,%eax\r
+ jz .L062xts_dec_done6x\r
+ movdqa %xmm1,%xmm5\r
+ cmpl $32,%eax\r
+ jb .L063xts_dec_one\r
+ pshufd $19,%xmm0,%xmm2\r
+ pxor %xmm0,%xmm0\r
+ paddq %xmm1,%xmm1\r
+ pand %xmm3,%xmm2\r
+ pcmpgtd %xmm1,%xmm0\r
+ pxor %xmm2,%xmm1\r
+ je .L064xts_dec_two\r
+ pshufd $19,%xmm0,%xmm2\r
+ pxor %xmm0,%xmm0\r
+ movdqa %xmm1,%xmm6\r
+ paddq %xmm1,%xmm1\r
+ pand %xmm3,%xmm2\r
+ pcmpgtd %xmm1,%xmm0\r
+ pxor %xmm2,%xmm1\r
+ cmpl $64,%eax\r
+ jb .L065xts_dec_three\r
+ pshufd $19,%xmm0,%xmm2\r
+ pxor %xmm0,%xmm0\r
+ movdqa %xmm1,%xmm7\r
+ paddq %xmm1,%xmm1\r
+ pand %xmm3,%xmm2\r
+ pcmpgtd %xmm1,%xmm0\r
+ pxor %xmm2,%xmm1\r
+ movdqa %xmm5,(%esp)\r
+ movdqa %xmm6,16(%esp)\r
+ je .L066xts_dec_four\r
+ movdqa %xmm7,32(%esp)\r
+ pshufd $19,%xmm0,%xmm7\r
+ movdqa %xmm1,48(%esp)\r
+ paddq %xmm1,%xmm1\r
+ pand %xmm3,%xmm7\r
+ pxor %xmm1,%xmm7\r
+ movdqu (%esi),%xmm2\r
+ movdqu 16(%esi),%xmm3\r
+ movdqu 32(%esi),%xmm4\r
+ pxor (%esp),%xmm2\r
+ movdqu 48(%esi),%xmm5\r
+ pxor 16(%esp),%xmm3\r
+ movdqu 64(%esi),%xmm6\r
+ pxor 32(%esp),%xmm4\r
+ leal 80(%esi),%esi\r
+ pxor 48(%esp),%xmm5\r
+ movdqa %xmm7,64(%esp)\r
+ pxor %xmm7,%xmm6\r
+ call _aesni_decrypt6\r
+ movaps 64(%esp),%xmm1\r
+ xorps (%esp),%xmm2\r
+ xorps 16(%esp),%xmm3\r
+ xorps 32(%esp),%xmm4\r
+ movups %xmm2,(%edi)\r
+ xorps 48(%esp),%xmm5\r
+ movups %xmm3,16(%edi)\r
+ xorps %xmm1,%xmm6\r
+ movups %xmm4,32(%edi)\r
+ movups %xmm5,48(%edi)\r
+ movups %xmm6,64(%edi)\r
+ leal 80(%edi),%edi\r
+ jmp .L067xts_dec_done\r
+.align 16\r
+.L063xts_dec_one:\r
+ movups (%esi),%xmm2\r
+ leal 16(%esi),%esi\r
+ xorps %xmm5,%xmm2\r
+ movups (%edx),%xmm0\r
+ movups 16(%edx),%xmm1\r
+ leal 32(%edx),%edx\r
+ xorps %xmm0,%xmm2\r
+.L068dec1_loop_12:\r
+.byte 102,15,56,222,209\r
+ decl %ecx\r
+ movups (%edx),%xmm1\r
+ leal 16(%edx),%edx\r
+ jnz .L068dec1_loop_12\r
+.byte 102,15,56,223,209\r
+ xorps %xmm5,%xmm2\r
+ movups %xmm2,(%edi)\r
+ leal 16(%edi),%edi\r
+ movdqa %xmm5,%xmm1\r
+ jmp .L067xts_dec_done\r
+.align 16\r
+.L064xts_dec_two:\r
+ movaps %xmm1,%xmm6\r
+ movups (%esi),%xmm2\r
+ movups 16(%esi),%xmm3\r
+ leal 32(%esi),%esi\r
+ xorps %xmm5,%xmm2\r
+ xorps %xmm6,%xmm3\r
+ call _aesni_decrypt2\r
+ xorps %xmm5,%xmm2\r
+ xorps %xmm6,%xmm3\r
+ movups %xmm2,(%edi)\r
+ movups %xmm3,16(%edi)\r
+ leal 32(%edi),%edi\r
+ movdqa %xmm6,%xmm1\r
+ jmp .L067xts_dec_done\r
+.align 16\r
+.L065xts_dec_three:\r
+ movaps %xmm1,%xmm7\r
+ movups (%esi),%xmm2\r
+ movups 16(%esi),%xmm3\r
+ movups 32(%esi),%xmm4\r
+ leal 48(%esi),%esi\r
+ xorps %xmm5,%xmm2\r
+ xorps %xmm6,%xmm3\r
+ xorps %xmm7,%xmm4\r
+ call _aesni_decrypt3\r
+ xorps %xmm5,%xmm2\r
+ xorps %xmm6,%xmm3\r
+ xorps %xmm7,%xmm4\r
+ movups %xmm2,(%edi)\r
+ movups %xmm3,16(%edi)\r
+ movups %xmm4,32(%edi)\r
+ leal 48(%edi),%edi\r
+ movdqa %xmm7,%xmm1\r
+ jmp .L067xts_dec_done\r
+.align 16\r
+.L066xts_dec_four:\r
+ movaps %xmm1,%xmm6\r
+ movups (%esi),%xmm2\r
+ movups 16(%esi),%xmm3\r
+ movups 32(%esi),%xmm4\r
+ xorps (%esp),%xmm2\r
+ movups 48(%esi),%xmm5\r
+ leal 64(%esi),%esi\r
+ xorps 16(%esp),%xmm3\r
+ xorps %xmm7,%xmm4\r
+ xorps %xmm6,%xmm5\r
+ call _aesni_decrypt4\r
+ xorps (%esp),%xmm2\r
+ xorps 16(%esp),%xmm3\r
+ xorps %xmm7,%xmm4\r
+ movups %xmm2,(%edi)\r
+ xorps %xmm6,%xmm5\r
+ movups %xmm3,16(%edi)\r
+ movups %xmm4,32(%edi)\r
+ movups %xmm5,48(%edi)\r
+ leal 64(%edi),%edi\r
+ movdqa %xmm6,%xmm1\r
+ jmp .L067xts_dec_done\r
+.align 16\r
+.L062xts_dec_done6x:\r
+ movl 112(%esp),%eax\r
+ andl $15,%eax\r
+ jz .L069xts_dec_ret\r
+ movl %eax,112(%esp)\r
+ jmp .L070xts_dec_only_one_more\r
+.align 16\r
+.L067xts_dec_done:\r
+ movl 112(%esp),%eax\r
+ pxor %xmm0,%xmm0\r
+ andl $15,%eax\r
+ jz .L069xts_dec_ret\r
+ pcmpgtd %xmm1,%xmm0\r
+ movl %eax,112(%esp)\r
+ pshufd $19,%xmm0,%xmm2\r
+ pxor %xmm0,%xmm0\r
+ movdqa 96(%esp),%xmm3\r
+ paddq %xmm1,%xmm1\r
+ pand %xmm3,%xmm2\r
+ pcmpgtd %xmm1,%xmm0\r
+ pxor %xmm2,%xmm1\r
+.L070xts_dec_only_one_more:\r
+ pshufd $19,%xmm0,%xmm5\r
+ movdqa %xmm1,%xmm6\r
+ paddq %xmm1,%xmm1\r
+ pand %xmm3,%xmm5\r
+ pxor %xmm1,%xmm5\r
+ movl %ebp,%edx\r
+ movl %ebx,%ecx\r
+ movups (%esi),%xmm2\r
+ xorps %xmm5,%xmm2\r
+ movups (%edx),%xmm0\r
+ movups 16(%edx),%xmm1\r
+ leal 32(%edx),%edx\r
+ xorps %xmm0,%xmm2\r
+.L071dec1_loop_13:\r
+.byte 102,15,56,222,209\r
+ decl %ecx\r
+ movups (%edx),%xmm1\r
+ leal 16(%edx),%edx\r
+ jnz .L071dec1_loop_13\r
+.byte 102,15,56,223,209\r
+ xorps %xmm5,%xmm2\r
+ movups %xmm2,(%edi)\r
+.L072xts_dec_steal:\r
+ movzbl 16(%esi),%ecx\r
+ movzbl (%edi),%edx\r
+ leal 1(%esi),%esi\r
+ movb %cl,(%edi)\r
+ movb %dl,16(%edi)\r
+ leal 1(%edi),%edi\r
+ subl $1,%eax\r
+ jnz .L072xts_dec_steal\r
+ subl 112(%esp),%edi\r
+ movl %ebp,%edx\r
+ movl %ebx,%ecx\r
+ movups (%edi),%xmm2\r
+ xorps %xmm6,%xmm2\r
+ movups (%edx),%xmm0\r
+ movups 16(%edx),%xmm1\r
+ leal 32(%edx),%edx\r
+ xorps %xmm0,%xmm2\r
+.L073dec1_loop_14:\r
+.byte 102,15,56,222,209\r
+ decl %ecx\r
+ movups (%edx),%xmm1\r
+ leal 16(%edx),%edx\r
+ jnz .L073dec1_loop_14\r
+.byte 102,15,56,223,209\r
+ xorps %xmm6,%xmm2\r
+ movups %xmm2,(%edi)\r
+.L069xts_dec_ret:\r
+ pxor %xmm0,%xmm0\r
+ pxor %xmm1,%xmm1\r
+ pxor %xmm2,%xmm2\r
+ movdqa %xmm0,(%esp)\r
+ pxor %xmm3,%xmm3\r
+ movdqa %xmm0,16(%esp)\r
+ pxor %xmm4,%xmm4\r
+ movdqa %xmm0,32(%esp)\r
+ pxor %xmm5,%xmm5\r
+ movdqa %xmm0,48(%esp)\r
+ pxor %xmm6,%xmm6\r
+ movdqa %xmm0,64(%esp)\r
+ pxor %xmm7,%xmm7\r
+ movdqa %xmm0,80(%esp)\r
+ movl 116(%esp),%esp\r
+ popl %edi\r
+ popl %esi\r
+ popl %ebx\r
+ popl %ebp\r
+ ret\r
+.size aesni_xts_decrypt,.-.L_aesni_xts_decrypt_begin\r
+.globl aesni_ocb_encrypt\r
+.type aesni_ocb_encrypt,@function\r
+.align 16\r
+aesni_ocb_encrypt:\r
+.L_aesni_ocb_encrypt_begin:\r
+ pushl %ebp\r
+ pushl %ebx\r
+ pushl %esi\r
+ pushl %edi\r
+ movl 40(%esp),%ecx\r
+ movl 48(%esp),%ebx\r
+ movl 20(%esp),%esi\r
+ movl 24(%esp),%edi\r
+ movl 28(%esp),%eax\r
+ movl 32(%esp),%edx\r
+ movdqu (%ecx),%xmm0\r
+ movl 36(%esp),%ebp\r
+ movdqu (%ebx),%xmm1\r
+ movl 44(%esp),%ebx\r
+ movl %esp,%ecx\r
+ subl $132,%esp\r
+ andl $-16,%esp\r
+ subl %esi,%edi\r
+ shll $4,%eax\r
+ leal -96(%esi,%eax,1),%eax\r
+ movl %edi,120(%esp)\r
+ movl %eax,124(%esp)\r
+ movl %ecx,128(%esp)\r
+ movl 240(%edx),%ecx\r
+ testl $1,%ebp\r
+ jnz .L074odd\r
+ bsfl %ebp,%eax\r
+ addl $1,%ebp\r
+ shll $4,%eax\r
+ movdqu (%ebx,%eax,1),%xmm7\r
+ movl %edx,%eax\r
+ movdqu (%esi),%xmm2\r
+ leal 16(%esi),%esi\r
+ pxor %xmm0,%xmm7\r
+ pxor %xmm2,%xmm1\r
+ pxor %xmm7,%xmm2\r
+ movdqa %xmm1,%xmm6\r
+ movups (%edx),%xmm0\r
+ movups 16(%edx),%xmm1\r
+ leal 32(%edx),%edx\r
+ xorps %xmm0,%xmm2\r
+.L075enc1_loop_15:\r
+.byte 102,15,56,220,209\r
+ decl %ecx\r
+ movups (%edx),%xmm1\r
+ leal 16(%edx),%edx\r
+ jnz .L075enc1_loop_15\r
+.byte 102,15,56,221,209\r
+ xorps %xmm7,%xmm2\r
+ movdqa %xmm7,%xmm0\r
+ movdqa %xmm6,%xmm1\r
+ movups %xmm2,-16(%edi,%esi,1)\r
+ movl 240(%eax),%ecx\r
+ movl %eax,%edx\r
+ movl 124(%esp),%eax\r
+.L074odd:\r
+ shll $4,%ecx\r
+ movl $16,%edi\r
+ subl %ecx,%edi\r
+ movl %edx,112(%esp)\r
+ leal 32(%edx,%ecx,1),%edx\r
+ movl %edi,116(%esp)\r
+ cmpl %eax,%esi\r
+ ja .L076short\r
+ jmp .L077grandloop\r
+.align 32\r
+.L077grandloop:\r
+ leal 1(%ebp),%ecx\r
+ leal 3(%ebp),%eax\r
+ leal 5(%ebp),%edi\r
+ addl $6,%ebp\r
+ bsfl %ecx,%ecx\r
+ bsfl %eax,%eax\r
+ bsfl %edi,%edi\r
+ shll $4,%ecx\r
+ shll $4,%eax\r
+ shll $4,%edi\r
+ movdqu (%ebx),%xmm2\r
+ movdqu (%ebx,%ecx,1),%xmm3\r
+ movl 116(%esp),%ecx\r
+ movdqa %xmm2,%xmm4\r
+ movdqu (%ebx,%eax,1),%xmm5\r
+ movdqa %xmm2,%xmm6\r
+ movdqu (%ebx,%edi,1),%xmm7\r
+ pxor %xmm0,%xmm2\r
+ pxor %xmm2,%xmm3\r
+ movdqa %xmm2,(%esp)\r
+ pxor %xmm3,%xmm4\r
+ movdqa %xmm3,16(%esp)\r
+ pxor %xmm4,%xmm5\r
+ movdqa %xmm4,32(%esp)\r
+ pxor %xmm5,%xmm6\r
+ movdqa %xmm5,48(%esp)\r
+ pxor %xmm6,%xmm7\r
+ movdqa %xmm6,64(%esp)\r
+ movdqa %xmm7,80(%esp)\r
+ movups -48(%edx,%ecx,1),%xmm0\r
+ movdqu (%esi),%xmm2\r
+ movdqu 16(%esi),%xmm3\r
+ movdqu 32(%esi),%xmm4\r
+ movdqu 48(%esi),%xmm5\r
+ movdqu 64(%esi),%xmm6\r
+ movdqu 80(%esi),%xmm7\r
+ leal 96(%esi),%esi\r
+ pxor %xmm2,%xmm1\r
+ pxor %xmm0,%xmm2\r
+ pxor %xmm3,%xmm1\r
+ pxor %xmm0,%xmm3\r
+ pxor %xmm4,%xmm1\r
+ pxor %xmm0,%xmm4\r
+ pxor %xmm5,%xmm1\r
+ pxor %xmm0,%xmm5\r
+ pxor %xmm6,%xmm1\r
+ pxor %xmm0,%xmm6\r
+ pxor %xmm7,%xmm1\r
+ pxor %xmm0,%xmm7\r
+ movdqa %xmm1,96(%esp)\r
+ movups -32(%edx,%ecx,1),%xmm1\r
+ pxor (%esp),%xmm2\r
+ pxor 16(%esp),%xmm3\r
+ pxor 32(%esp),%xmm4\r
+ pxor 48(%esp),%xmm5\r
+ pxor 64(%esp),%xmm6\r
+ pxor 80(%esp),%xmm7\r
+ movups -16(%edx,%ecx,1),%xmm0\r
+.byte 102,15,56,220,209\r
+.byte 102,15,56,220,217\r
+.byte 102,15,56,220,225\r
+.byte 102,15,56,220,233\r
+.byte 102,15,56,220,241\r
+.byte 102,15,56,220,249\r
+ movl 120(%esp),%edi\r
+ movl 124(%esp),%eax\r
+ call .L_aesni_encrypt6_enter\r
+ movdqa 80(%esp),%xmm0\r
+ pxor (%esp),%xmm2\r
+ pxor 16(%esp),%xmm3\r
+ pxor 32(%esp),%xmm4\r
+ pxor 48(%esp),%xmm5\r
+ pxor 64(%esp),%xmm6\r
+ pxor %xmm0,%xmm7\r
+ movdqa 96(%esp),%xmm1\r
+ movdqu %xmm2,-96(%edi,%esi,1)\r
+ movdqu %xmm3,-80(%edi,%esi,1)\r
+ movdqu %xmm4,-64(%edi,%esi,1)\r
+ movdqu %xmm5,-48(%edi,%esi,1)\r
+ movdqu %xmm6,-32(%edi,%esi,1)\r
+ movdqu %xmm7,-16(%edi,%esi,1)\r
+ cmpl %eax,%esi\r
+ jb .L077grandloop\r
+.L076short:\r
+ addl $96,%eax\r
+ subl %esi,%eax\r
+ jz .L078done\r
+ cmpl $32,%eax\r
+ jb .L079one\r
+ je .L080two\r
+ cmpl $64,%eax\r
+ jb .L081three\r
+ je .L082four\r
+ leal 1(%ebp),%ecx\r
+ leal 3(%ebp),%eax\r
+ bsfl %ecx,%ecx\r
+ bsfl %eax,%eax\r
+ shll $4,%ecx\r
+ shll $4,%eax\r
+ movdqu (%ebx),%xmm2\r
+ movdqu (%ebx,%ecx,1),%xmm3\r
+ movl 116(%esp),%ecx\r
+ movdqa %xmm2,%xmm4\r
+ movdqu (%ebx,%eax,1),%xmm5\r
+ movdqa %xmm2,%xmm6\r
+ pxor %xmm0,%xmm2\r
+ pxor %xmm2,%xmm3\r
+ movdqa %xmm2,(%esp)\r
+ pxor %xmm3,%xmm4\r
+ movdqa %xmm3,16(%esp)\r
+ pxor %xmm4,%xmm5\r
+ movdqa %xmm4,32(%esp)\r
+ pxor %xmm5,%xmm6\r
+ movdqa %xmm5,48(%esp)\r
+ pxor %xmm6,%xmm7\r
+ movdqa %xmm6,64(%esp)\r
+ movups -48(%edx,%ecx,1),%xmm0\r
+ movdqu (%esi),%xmm2\r
+ movdqu 16(%esi),%xmm3\r
+ movdqu 32(%esi),%xmm4\r
+ movdqu 48(%esi),%xmm5\r
+ movdqu 64(%esi),%xmm6\r
+ pxor %xmm7,%xmm7\r
+ pxor %xmm2,%xmm1\r
+ pxor %xmm0,%xmm2\r
+ pxor %xmm3,%xmm1\r
+ pxor %xmm0,%xmm3\r
+ pxor %xmm4,%xmm1\r
+ pxor %xmm0,%xmm4\r
+ pxor %xmm5,%xmm1\r
+ pxor %xmm0,%xmm5\r
+ pxor %xmm6,%xmm1\r
+ pxor %xmm0,%xmm6\r
+ movdqa %xmm1,96(%esp)\r
+ movups -32(%edx,%ecx,1),%xmm1\r
+ pxor (%esp),%xmm2\r
+ pxor 16(%esp),%xmm3\r
+ pxor 32(%esp),%xmm4\r
+ pxor 48(%esp),%xmm5\r
+ pxor 64(%esp),%xmm6\r
+ movups -16(%edx,%ecx,1),%xmm0\r
+.byte 102,15,56,220,209\r
+.byte 102,15,56,220,217\r
+.byte 102,15,56,220,225\r
+.byte 102,15,56,220,233\r
+.byte 102,15,56,220,241\r
+.byte 102,15,56,220,249\r
+ movl 120(%esp),%edi\r
+ call .L_aesni_encrypt6_enter\r
+ movdqa 64(%esp),%xmm0\r
+ pxor (%esp),%xmm2\r
+ pxor 16(%esp),%xmm3\r
+ pxor 32(%esp),%xmm4\r
+ pxor 48(%esp),%xmm5\r
+ pxor %xmm0,%xmm6\r
+ movdqa 96(%esp),%xmm1\r
+ movdqu %xmm2,(%edi,%esi,1)\r
+ movdqu %xmm3,16(%edi,%esi,1)\r
+ movdqu %xmm4,32(%edi,%esi,1)\r
+ movdqu %xmm5,48(%edi,%esi,1)\r
+ movdqu %xmm6,64(%edi,%esi,1)\r
+ jmp .L078done\r
+.align 16\r
+.L079one:\r
+ movdqu (%ebx),%xmm7\r
+ movl 112(%esp),%edx\r
+ movdqu (%esi),%xmm2\r
+ movl 240(%edx),%ecx\r
+ pxor %xmm0,%xmm7\r
+ pxor %xmm2,%xmm1\r
+ pxor %xmm7,%xmm2\r
+ movdqa %xmm1,%xmm6\r
+ movl 120(%esp),%edi\r
+ movups (%edx),%xmm0\r
+ movups 16(%edx),%xmm1\r
+ leal 32(%edx),%edx\r
+ xorps %xmm0,%xmm2\r
+.L083enc1_loop_16:\r
+.byte 102,15,56,220,209\r
+ decl %ecx\r
+ movups (%edx),%xmm1\r
+ leal 16(%edx),%edx\r
+ jnz .L083enc1_loop_16\r
+.byte 102,15,56,221,209\r
+ xorps %xmm7,%xmm2\r
+ movdqa %xmm7,%xmm0\r
+ movdqa %xmm6,%xmm1\r
+ movups %xmm2,(%edi,%esi,1)\r
+ jmp .L078done\r
+.align 16\r
+.L080two:\r
+ leal 1(%ebp),%ecx\r
+ movl 112(%esp),%edx\r
+ bsfl %ecx,%ecx\r
+ shll $4,%ecx\r
+ movdqu (%ebx),%xmm6\r
+ movdqu (%ebx,%ecx,1),%xmm7\r
+ movdqu (%esi),%xmm2\r
+ movdqu 16(%esi),%xmm3\r
+ movl 240(%edx),%ecx\r
+ pxor %xmm0,%xmm6\r
+ pxor %xmm6,%xmm7\r
+ pxor %xmm2,%xmm1\r
+ pxor %xmm6,%xmm2\r
+ pxor %xmm3,%xmm1\r
+ pxor %xmm7,%xmm3\r
+ movdqa %xmm1,%xmm5\r
+ movl 120(%esp),%edi\r
+ call _aesni_encrypt2\r
+ xorps %xmm6,%xmm2\r
+ xorps %xmm7,%xmm3\r
+ movdqa %xmm7,%xmm0\r
+ movdqa %xmm5,%xmm1\r
+ movups %xmm2,(%edi,%esi,1)\r
+ movups %xmm3,16(%edi,%esi,1)\r
+ jmp .L078done\r
+.align 16\r
+.L081three:\r
+ leal 1(%ebp),%ecx\r
+ movl 112(%esp),%edx\r
+ bsfl %ecx,%ecx\r
+ shll $4,%ecx\r
+ movdqu (%ebx),%xmm5\r
+ movdqu (%ebx,%ecx,1),%xmm6\r
+ movdqa %xmm5,%xmm7\r
+ movdqu (%esi),%xmm2\r
+ movdqu 16(%esi),%xmm3\r
+ movdqu 32(%esi),%xmm4\r
+ movl 240(%edx),%ecx\r
+ pxor %xmm0,%xmm5\r
+ pxor %xmm5,%xmm6\r
+ pxor %xmm6,%xmm7\r
+ pxor %xmm2,%xmm1\r
+ pxor %xmm5,%xmm2\r
+ pxor %xmm3,%xmm1\r
+ pxor %xmm6,%xmm3\r
+ pxor %xmm4,%xmm1\r
+ pxor %xmm7,%xmm4\r
+ movdqa %xmm1,96(%esp)\r
+ movl 120(%esp),%edi\r
+ call _aesni_encrypt3\r
+ xorps %xmm5,%xmm2\r
+ xorps %xmm6,%xmm3\r
+ xorps %xmm7,%xmm4\r
+ movdqa %xmm7,%xmm0\r
+ movdqa 96(%esp),%xmm1\r
+ movups %xmm2,(%edi,%esi,1)\r
+ movups %xmm3,16(%edi,%esi,1)\r
+ movups %xmm4,32(%edi,%esi,1)\r
+ jmp .L078done\r
+.align 16\r
+.L082four:\r
+ leal 1(%ebp),%ecx\r
+ leal 3(%ebp),%eax\r
+ bsfl %ecx,%ecx\r
+ bsfl %eax,%eax\r
+ movl 112(%esp),%edx\r
+ shll $4,%ecx\r
+ shll $4,%eax\r
+ movdqu (%ebx),%xmm4\r
+ movdqu (%ebx,%ecx,1),%xmm5\r
+ movdqa %xmm4,%xmm6\r
+ movdqu (%ebx,%eax,1),%xmm7\r
+ pxor %xmm0,%xmm4\r
+ movdqu (%esi),%xmm2\r
+ pxor %xmm4,%xmm5\r
+ movdqu 16(%esi),%xmm3\r
+ pxor %xmm5,%xmm6\r
+ movdqa %xmm4,(%esp)\r
+ pxor %xmm6,%xmm7\r
+ movdqa %xmm5,16(%esp)\r
+ movdqu 32(%esi),%xmm4\r
+ movdqu 48(%esi),%xmm5\r
+ movl 240(%edx),%ecx\r
+ pxor %xmm2,%xmm1\r
+ pxor (%esp),%xmm2\r
+ pxor %xmm3,%xmm1\r
+ pxor 16(%esp),%xmm3\r
+ pxor %xmm4,%xmm1\r
+ pxor %xmm6,%xmm4\r
+ pxor %xmm5,%xmm1\r
+ pxor %xmm7,%xmm5\r
+ movdqa %xmm1,96(%esp)\r
+ movl 120(%esp),%edi\r
+ call _aesni_encrypt4\r
+ xorps (%esp),%xmm2\r
+ xorps 16(%esp),%xmm3\r
+ xorps %xmm6,%xmm4\r
+ movups %xmm2,(%edi,%esi,1)\r
+ xorps %xmm7,%xmm5\r
+ movups %xmm3,16(%edi,%esi,1)\r
+ movdqa %xmm7,%xmm0\r
+ movups %xmm4,32(%edi,%esi,1)\r
+ movdqa 96(%esp),%xmm1\r
+ movups %xmm5,48(%edi,%esi,1)\r
+.L078done:\r
+ movl 128(%esp),%edx\r
+ pxor %xmm2,%xmm2\r
+ pxor %xmm3,%xmm3\r
+ movdqa %xmm2,(%esp)\r
+ pxor %xmm4,%xmm4\r
+ movdqa %xmm2,16(%esp)\r
+ pxor %xmm5,%xmm5\r
+ movdqa %xmm2,32(%esp)\r
+ pxor %xmm6,%xmm6\r
+ movdqa %xmm2,48(%esp)\r
+ pxor %xmm7,%xmm7\r
+ movdqa %xmm2,64(%esp)\r
+ movdqa %xmm2,80(%esp)\r
+ movdqa %xmm2,96(%esp)\r
+ leal (%edx),%esp\r
+ movl 40(%esp),%ecx\r
+ movl 48(%esp),%ebx\r
+ movdqu %xmm0,(%ecx)\r
+ pxor %xmm0,%xmm0\r
+ movdqu %xmm1,(%ebx)\r
+ pxor %xmm1,%xmm1\r
+ popl %edi\r
+ popl %esi\r
+ popl %ebx\r
+ popl %ebp\r
+ ret\r
+.size aesni_ocb_encrypt,.-.L_aesni_ocb_encrypt_begin\r
+.globl aesni_ocb_decrypt\r
+.type aesni_ocb_decrypt,@function\r
+.align 16\r
+aesni_ocb_decrypt:\r
+.L_aesni_ocb_decrypt_begin:\r
+ pushl %ebp\r
+ pushl %ebx\r
+ pushl %esi\r
+ pushl %edi\r
+ movl 40(%esp),%ecx\r
+ movl 48(%esp),%ebx\r
+ movl 20(%esp),%esi\r
+ movl 24(%esp),%edi\r
+ movl 28(%esp),%eax\r
+ movl 32(%esp),%edx\r
+ movdqu (%ecx),%xmm0\r
+ movl 36(%esp),%ebp\r
+ movdqu (%ebx),%xmm1\r
+ movl 44(%esp),%ebx\r
+ movl %esp,%ecx\r
+ subl $132,%esp\r
+ andl $-16,%esp\r
+ subl %esi,%edi\r
+ shll $4,%eax\r
+ leal -96(%esi,%eax,1),%eax\r
+ movl %edi,120(%esp)\r
+ movl %eax,124(%esp)\r
+ movl %ecx,128(%esp)\r
+ movl 240(%edx),%ecx\r
+ testl $1,%ebp\r
+ jnz .L084odd\r
+ bsfl %ebp,%eax\r
+ addl $1,%ebp\r
+ shll $4,%eax\r
+ movdqu (%ebx,%eax,1),%xmm7\r
+ movl %edx,%eax\r
+ movdqu (%esi),%xmm2\r
+ leal 16(%esi),%esi\r
+ pxor %xmm0,%xmm7\r
+ pxor %xmm7,%xmm2\r
+ movdqa %xmm1,%xmm6\r
+ movups (%edx),%xmm0\r
+ movups 16(%edx),%xmm1\r
+ leal 32(%edx),%edx\r
+ xorps %xmm0,%xmm2\r
+.L085dec1_loop_17:\r
+.byte 102,15,56,222,209\r
+ decl %ecx\r
+ movups (%edx),%xmm1\r
+ leal 16(%edx),%edx\r
+ jnz .L085dec1_loop_17\r
+.byte 102,15,56,223,209\r
+ xorps %xmm7,%xmm2\r
+ movaps %xmm6,%xmm1\r
+ movdqa %xmm7,%xmm0\r
+ xorps %xmm2,%xmm1\r
+ movups %xmm2,-16(%edi,%esi,1)\r
+ movl 240(%eax),%ecx\r
+ movl %eax,%edx\r
+ movl 124(%esp),%eax\r
+.L084odd:\r
+ shll $4,%ecx\r
+ movl $16,%edi\r
+ subl %ecx,%edi\r
+ movl %edx,112(%esp)\r
+ leal 32(%edx,%ecx,1),%edx\r
+ movl %edi,116(%esp)\r
+ cmpl %eax,%esi\r
+ ja .L086short\r
+ jmp .L087grandloop\r
+.align 32\r
+.L087grandloop:\r
+ leal 1(%ebp),%ecx\r
+ leal 3(%ebp),%eax\r
+ leal 5(%ebp),%edi\r
+ addl $6,%ebp\r
+ bsfl %ecx,%ecx\r
+ bsfl %eax,%eax\r
+ bsfl %edi,%edi\r
+ shll $4,%ecx\r
+ shll $4,%eax\r
+ shll $4,%edi\r
+ movdqu (%ebx),%xmm2\r
+ movdqu (%ebx,%ecx,1),%xmm3\r
+ movl 116(%esp),%ecx\r
+ movdqa %xmm2,%xmm4\r
+ movdqu (%ebx,%eax,1),%xmm5\r
+ movdqa %xmm2,%xmm6\r
+ movdqu (%ebx,%edi,1),%xmm7\r
+ pxor %xmm0,%xmm2\r
+ pxor %xmm2,%xmm3\r
+ movdqa %xmm2,(%esp)\r
+ pxor %xmm3,%xmm4\r
+ movdqa %xmm3,16(%esp)\r
+ pxor %xmm4,%xmm5\r
+ movdqa %xmm4,32(%esp)\r
+ pxor %xmm5,%xmm6\r
+ movdqa %xmm5,48(%esp)\r
+ pxor %xmm6,%xmm7\r
+ movdqa %xmm6,64(%esp)\r
+ movdqa %xmm7,80(%esp)\r
+ movups -48(%edx,%ecx,1),%xmm0\r
+ movdqu (%esi),%xmm2\r
+ movdqu 16(%esi),%xmm3\r
+ movdqu 32(%esi),%xmm4\r
+ movdqu 48(%esi),%xmm5\r
+ movdqu 64(%esi),%xmm6\r
+ movdqu 80(%esi),%xmm7\r
+ leal 96(%esi),%esi\r
+ movdqa %xmm1,96(%esp)\r
+ pxor %xmm0,%xmm2\r
+ pxor %xmm0,%xmm3\r
+ pxor %xmm0,%xmm4\r
+ pxor %xmm0,%xmm5\r
+ pxor %xmm0,%xmm6\r
+ pxor %xmm0,%xmm7\r
+ movups -32(%edx,%ecx,1),%xmm1\r
+ pxor (%esp),%xmm2\r
+ pxor 16(%esp),%xmm3\r
+ pxor 32(%esp),%xmm4\r
+ pxor 48(%esp),%xmm5\r
+ pxor 64(%esp),%xmm6\r
+ pxor 80(%esp),%xmm7\r
+ movups -16(%edx,%ecx,1),%xmm0\r
+.byte 102,15,56,222,209\r
+.byte 102,15,56,222,217\r
+.byte 102,15,56,222,225\r
+.byte 102,15,56,222,233\r
+.byte 102,15,56,222,241\r
+.byte 102,15,56,222,249\r
+ movl 120(%esp),%edi\r
+ movl 124(%esp),%eax\r
+ call .L_aesni_decrypt6_enter\r
+ movdqa 80(%esp),%xmm0\r
+ pxor (%esp),%xmm2\r
+ movdqa 96(%esp),%xmm1\r
+ pxor 16(%esp),%xmm3\r
+ pxor 32(%esp),%xmm4\r
+ pxor 48(%esp),%xmm5\r
+ pxor 64(%esp),%xmm6\r
+ pxor %xmm0,%xmm7\r
+ pxor %xmm2,%xmm1\r
+ movdqu %xmm2,-96(%edi,%esi,1)\r
+ pxor %xmm3,%xmm1\r
+ movdqu %xmm3,-80(%edi,%esi,1)\r
+ pxor %xmm4,%xmm1\r
+ movdqu %xmm4,-64(%edi,%esi,1)\r
+ pxor %xmm5,%xmm1\r
+ movdqu %xmm5,-48(%edi,%esi,1)\r
+ pxor %xmm6,%xmm1\r
+ movdqu %xmm6,-32(%edi,%esi,1)\r
+ pxor %xmm7,%xmm1\r
+ movdqu %xmm7,-16(%edi,%esi,1)\r
+ cmpl %eax,%esi\r
+ jb .L087grandloop\r
+.L086short:\r
+ addl $96,%eax\r
+ subl %esi,%eax\r
+ jz .L088done\r
+ cmpl $32,%eax\r
+ jb .L089one\r
+ je .L090two\r
+ cmpl $64,%eax\r
+ jb .L091three\r
+ je .L092four\r
+ leal 1(%ebp),%ecx\r
+ leal 3(%ebp),%eax\r
+ bsfl %ecx,%ecx\r
+ bsfl %eax,%eax\r
+ shll $4,%ecx\r
+ shll $4,%eax\r
+ movdqu (%ebx),%xmm2\r
+ movdqu (%ebx,%ecx,1),%xmm3\r
+ movl 116(%esp),%ecx\r
+ movdqa %xmm2,%xmm4\r
+ movdqu (%ebx,%eax,1),%xmm5\r
+ movdqa %xmm2,%xmm6\r
+ pxor %xmm0,%xmm2\r
+ pxor %xmm2,%xmm3\r
+ movdqa %xmm2,(%esp)\r
+ pxor %xmm3,%xmm4\r
+ movdqa %xmm3,16(%esp)\r
+ pxor %xmm4,%xmm5\r
+ movdqa %xmm4,32(%esp)\r
+ pxor %xmm5,%xmm6\r
+ movdqa %xmm5,48(%esp)\r
+ pxor %xmm6,%xmm7\r
+ movdqa %xmm6,64(%esp)\r
+ movups -48(%edx,%ecx,1),%xmm0\r
+ movdqu (%esi),%xmm2\r
+ movdqu 16(%esi),%xmm3\r
+ movdqu 32(%esi),%xmm4\r
+ movdqu 48(%esi),%xmm5\r
+ movdqu 64(%esi),%xmm6\r
+ pxor %xmm7,%xmm7\r
+ movdqa %xmm1,96(%esp)\r
+ pxor %xmm0,%xmm2\r
+ pxor %xmm0,%xmm3\r
+ pxor %xmm0,%xmm4\r
+ pxor %xmm0,%xmm5\r
+ pxor %xmm0,%xmm6\r
+ movups -32(%edx,%ecx,1),%xmm1\r
+ pxor (%esp),%xmm2\r
+ pxor 16(%esp),%xmm3\r
+ pxor 32(%esp),%xmm4\r
+ pxor 48(%esp),%xmm5\r
+ pxor 64(%esp),%xmm6\r
+ movups -16(%edx,%ecx,1),%xmm0\r
+.byte 102,15,56,222,209\r
+.byte 102,15,56,222,217\r
+.byte 102,15,56,222,225\r
+.byte 102,15,56,222,233\r
+.byte 102,15,56,222,241\r
+.byte 102,15,56,222,249\r
+ movl 120(%esp),%edi\r
+ call .L_aesni_decrypt6_enter\r
+ movdqa 64(%esp),%xmm0\r
+ pxor (%esp),%xmm2\r
+ movdqa 96(%esp),%xmm1\r
+ pxor 16(%esp),%xmm3\r
+ pxor 32(%esp),%xmm4\r
+ pxor 48(%esp),%xmm5\r
+ pxor %xmm0,%xmm6\r
+ pxor %xmm2,%xmm1\r
+ movdqu %xmm2,(%edi,%esi,1)\r
+ pxor %xmm3,%xmm1\r
+ movdqu %xmm3,16(%edi,%esi,1)\r
+ pxor %xmm4,%xmm1\r
+ movdqu %xmm4,32(%edi,%esi,1)\r
+ pxor %xmm5,%xmm1\r
+ movdqu %xmm5,48(%edi,%esi,1)\r
+ pxor %xmm6,%xmm1\r
+ movdqu %xmm6,64(%edi,%esi,1)\r
+ jmp .L088done\r
+.align 16\r
+.L089one:\r
+ movdqu (%ebx),%xmm7\r
+ movl 112(%esp),%edx\r
+ movdqu (%esi),%xmm2\r
+ movl 240(%edx),%ecx\r
+ pxor %xmm0,%xmm7\r
+ pxor %xmm7,%xmm2\r
+ movdqa %xmm1,%xmm6\r
+ movl 120(%esp),%edi\r
+ movups (%edx),%xmm0\r
+ movups 16(%edx),%xmm1\r
+ leal 32(%edx),%edx\r
+ xorps %xmm0,%xmm2\r
+.L093dec1_loop_18:\r
+.byte 102,15,56,222,209\r
+ decl %ecx\r
+ movups (%edx),%xmm1\r
+ leal 16(%edx),%edx\r
+ jnz .L093dec1_loop_18\r
+.byte 102,15,56,223,209\r
+ xorps %xmm7,%xmm2\r
+ movaps %xmm6,%xmm1\r
+ movdqa %xmm7,%xmm0\r
+ xorps %xmm2,%xmm1\r
+ movups %xmm2,(%edi,%esi,1)\r
+ jmp .L088done\r
+.align 16\r
+.L090two:\r
+ leal 1(%ebp),%ecx\r
+ movl 112(%esp),%edx\r
+ bsfl %ecx,%ecx\r
+ shll $4,%ecx\r
+ movdqu (%ebx),%xmm6\r
+ movdqu (%ebx,%ecx,1),%xmm7\r
+ movdqu (%esi),%xmm2\r
+ movdqu 16(%esi),%xmm3\r
+ movl 240(%edx),%ecx\r
+ movdqa %xmm1,%xmm5\r
+ pxor %xmm0,%xmm6\r
+ pxor %xmm6,%xmm7\r
+ pxor %xmm6,%xmm2\r
+ pxor %xmm7,%xmm3\r
+ movl 120(%esp),%edi\r
+ call _aesni_decrypt2\r
+ xorps %xmm6,%xmm2\r
+ xorps %xmm7,%xmm3\r
+ movdqa %xmm7,%xmm0\r
+ xorps %xmm2,%xmm5\r
+ movups %xmm2,(%edi,%esi,1)\r
+ xorps %xmm3,%xmm5\r
+ movups %xmm3,16(%edi,%esi,1)\r
+ movaps %xmm5,%xmm1\r
+ jmp .L088done\r
+.align 16\r
+.L091three:\r
+ leal 1(%ebp),%ecx\r
+ movl 112(%esp),%edx\r
+ bsfl %ecx,%ecx\r
+ shll $4,%ecx\r
+ movdqu (%ebx),%xmm5\r
+ movdqu (%ebx,%ecx,1),%xmm6\r
+ movdqa %xmm5,%xmm7\r
+ movdqu (%esi),%xmm2\r
+ movdqu 16(%esi),%xmm3\r
+ movdqu 32(%esi),%xmm4\r
+ movl 240(%edx),%ecx\r
+ movdqa %xmm1,96(%esp)\r
+ pxor %xmm0,%xmm5\r
+ pxor %xmm5,%xmm6\r
+ pxor %xmm6,%xmm7\r
+ pxor %xmm5,%xmm2\r
+ pxor %xmm6,%xmm3\r
+ pxor %xmm7,%xmm4\r
+ movl 120(%esp),%edi\r
+ call _aesni_decrypt3\r
+ movdqa 96(%esp),%xmm1\r
+ xorps %xmm5,%xmm2\r
+ xorps %xmm6,%xmm3\r
+ xorps %xmm7,%xmm4\r
+ movups %xmm2,(%edi,%esi,1)\r
+ pxor %xmm2,%xmm1\r
+ movdqa %xmm7,%xmm0\r
+ movups %xmm3,16(%edi,%esi,1)\r
+ pxor %xmm3,%xmm1\r
+ movups %xmm4,32(%edi,%esi,1)\r
+ pxor %xmm4,%xmm1\r
+ jmp .L088done\r
+.align 16\r
+.L092four:\r
+ leal 1(%ebp),%ecx\r
+ leal 3(%ebp),%eax\r
+ bsfl %ecx,%ecx\r
+ bsfl %eax,%eax\r
+ movl 112(%esp),%edx\r
+ shll $4,%ecx\r
+ shll $4,%eax\r
+ movdqu (%ebx),%xmm4\r
+ movdqu (%ebx,%ecx,1),%xmm5\r
+ movdqa %xmm4,%xmm6\r
+ movdqu (%ebx,%eax,1),%xmm7\r
+ pxor %xmm0,%xmm4\r
+ movdqu (%esi),%xmm2\r
+ pxor %xmm4,%xmm5\r
+ movdqu 16(%esi),%xmm3\r
+ pxor %xmm5,%xmm6\r
+ movdqa %xmm4,(%esp)\r
+ pxor %xmm6,%xmm7\r
+ movdqa %xmm5,16(%esp)\r
+ movdqu 32(%esi),%xmm4\r
+ movdqu 48(%esi),%xmm5\r
+ movl 240(%edx),%ecx\r
+ movdqa %xmm1,96(%esp)\r
+ pxor (%esp),%xmm2\r
+ pxor 16(%esp),%xmm3\r
+ pxor %xmm6,%xmm4\r
+ pxor %xmm7,%xmm5\r
+ movl 120(%esp),%edi\r
+ call _aesni_decrypt4\r
+ movdqa 96(%esp),%xmm1\r
+ xorps (%esp),%xmm2\r
+ xorps 16(%esp),%xmm3\r
+ xorps %xmm6,%xmm4\r
+ movups %xmm2,(%edi,%esi,1)\r
+ pxor %xmm2,%xmm1\r
+ xorps %xmm7,%xmm5\r
+ movups %xmm3,16(%edi,%esi,1)\r
+ pxor %xmm3,%xmm1\r
+ movdqa %xmm7,%xmm0\r
+ movups %xmm4,32(%edi,%esi,1)\r
+ pxor %xmm4,%xmm1\r
+ movups %xmm5,48(%edi,%esi,1)\r
+ pxor %xmm5,%xmm1\r
+.L088done:\r
+ movl 128(%esp),%edx\r
+ pxor %xmm2,%xmm2\r
+ pxor %xmm3,%xmm3\r
+ movdqa %xmm2,(%esp)\r
+ pxor %xmm4,%xmm4\r
+ movdqa %xmm2,16(%esp)\r
+ pxor %xmm5,%xmm5\r
+ movdqa %xmm2,32(%esp)\r
+ pxor %xmm6,%xmm6\r
+ movdqa %xmm2,48(%esp)\r
+ pxor %xmm7,%xmm7\r
+ movdqa %xmm2,64(%esp)\r
+ movdqa %xmm2,80(%esp)\r
+ movdqa %xmm2,96(%esp)\r
+ leal (%edx),%esp\r
+ movl 40(%esp),%ecx\r
+ movl 48(%esp),%ebx\r
+ movdqu %xmm0,(%ecx)\r
+ pxor %xmm0,%xmm0\r
+ movdqu %xmm1,(%ebx)\r
+ pxor %xmm1,%xmm1\r
+ popl %edi\r
+ popl %esi\r
+ popl %ebx\r
+ popl %ebp\r
+ ret\r
+.size aesni_ocb_decrypt,.-.L_aesni_ocb_decrypt_begin\r
+.globl aesni_cbc_encrypt\r
+.type aesni_cbc_encrypt,@function\r
+.align 16\r
+aesni_cbc_encrypt:\r
+.L_aesni_cbc_encrypt_begin:\r
+ pushl %ebp\r
+ pushl %ebx\r
+ pushl %esi\r
+ pushl %edi\r
+ movl 20(%esp),%esi\r
+ movl %esp,%ebx\r
+ movl 24(%esp),%edi\r
+ subl $24,%ebx\r
+ movl 28(%esp),%eax\r
+ andl $-16,%ebx\r
+ movl 32(%esp),%edx\r
+ movl 36(%esp),%ebp\r
+ testl %eax,%eax\r
+ jz .L094cbc_abort\r
+ cmpl $0,40(%esp)\r
+ xchgl %esp,%ebx\r
+ movups (%ebp),%xmm7\r
+ movl 240(%edx),%ecx\r
+ movl %edx,%ebp\r
+ movl %ebx,16(%esp)\r
+ movl %ecx,%ebx\r
+ je .L095cbc_decrypt\r
+ movaps %xmm7,%xmm2\r
+ cmpl $16,%eax\r
+ jb .L096cbc_enc_tail\r
+ subl $16,%eax\r
+ jmp .L097cbc_enc_loop\r
+.align 16\r
+.L097cbc_enc_loop:\r
+ movups (%esi),%xmm7\r
+ leal 16(%esi),%esi\r
+ movups (%edx),%xmm0\r
+ movups 16(%edx),%xmm1\r
+ xorps %xmm0,%xmm7\r
+ leal 32(%edx),%edx\r
+ xorps %xmm7,%xmm2\r
+.L098enc1_loop_19:\r
+.byte 102,15,56,220,209\r
+ decl %ecx\r
+ movups (%edx),%xmm1\r
+ leal 16(%edx),%edx\r
+ jnz .L098enc1_loop_19\r
+.byte 102,15,56,221,209\r
+ movl %ebx,%ecx\r
+ movl %ebp,%edx\r
+ movups %xmm2,(%edi)\r
+ leal 16(%edi),%edi\r
+ subl $16,%eax\r
+ jnc .L097cbc_enc_loop\r
+ addl $16,%eax\r
+ jnz .L096cbc_enc_tail\r
+ movaps %xmm2,%xmm7\r
+ pxor %xmm2,%xmm2\r
+ jmp .L099cbc_ret\r
+.L096cbc_enc_tail:\r
+ movl %eax,%ecx\r
+.long 2767451785\r
+ movl $16,%ecx\r
+ subl %eax,%ecx\r
+ xorl %eax,%eax\r
+.long 2868115081\r
+ leal -16(%edi),%edi\r
+ movl %ebx,%ecx\r
+ movl %edi,%esi\r
+ movl %ebp,%edx\r
+ jmp .L097cbc_enc_loop\r
+.align 16\r
+.L095cbc_decrypt:\r
+ cmpl $80,%eax\r
+ jbe .L100cbc_dec_tail\r
+ movaps %xmm7,(%esp)\r
+ subl $80,%eax\r
+ jmp .L101cbc_dec_loop6_enter\r
+.align 16\r
+.L102cbc_dec_loop6:\r
+ movaps %xmm0,(%esp)\r
+ movups %xmm7,(%edi)\r
+ leal 16(%edi),%edi\r
+.L101cbc_dec_loop6_enter:\r
+ movdqu (%esi),%xmm2\r
+ movdqu 16(%esi),%xmm3\r
+ movdqu 32(%esi),%xmm4\r
+ movdqu 48(%esi),%xmm5\r
+ movdqu 64(%esi),%xmm6\r
+ movdqu 80(%esi),%xmm7\r
+ call _aesni_decrypt6\r
+ movups (%esi),%xmm1\r
+ movups 16(%esi),%xmm0\r
+ xorps (%esp),%xmm2\r
+ xorps %xmm1,%xmm3\r
+ movups 32(%esi),%xmm1\r
+ xorps %xmm0,%xmm4\r
+ movups 48(%esi),%xmm0\r
+ xorps %xmm1,%xmm5\r
+ movups 64(%esi),%xmm1\r
+ xorps %xmm0,%xmm6\r
+ movups 80(%esi),%xmm0\r
+ xorps %xmm1,%xmm7\r
+ movups %xmm2,(%edi)\r
+ movups %xmm3,16(%edi)\r
+ leal 96(%esi),%esi\r
+ movups %xmm4,32(%edi)\r
+ movl %ebx,%ecx\r
+ movups %xmm5,48(%edi)\r
+ movl %ebp,%edx\r
+ movups %xmm6,64(%edi)\r
+ leal 80(%edi),%edi\r
+ subl $96,%eax\r
+ ja .L102cbc_dec_loop6\r
+ movaps %xmm7,%xmm2\r
+ movaps %xmm0,%xmm7\r
+ addl $80,%eax\r
+ jle .L103cbc_dec_clear_tail_collected\r
+ movups %xmm2,(%edi)\r
+ leal 16(%edi),%edi\r
+.L100cbc_dec_tail:\r
+ movups (%esi),%xmm2\r
+ movaps %xmm2,%xmm6\r
+ cmpl $16,%eax\r
+ jbe .L104cbc_dec_one\r
+ movups 16(%esi),%xmm3\r
+ movaps %xmm3,%xmm5\r
+ cmpl $32,%eax\r
+ jbe .L105cbc_dec_two\r
+ movups 32(%esi),%xmm4\r
+ cmpl $48,%eax\r
+ jbe .L106cbc_dec_three\r
+ movups 48(%esi),%xmm5\r
+ cmpl $64,%eax\r
+ jbe .L107cbc_dec_four\r
+ movups 64(%esi),%xmm6\r
+ movaps %xmm7,(%esp)\r
+ movups (%esi),%xmm2\r
+ xorps %xmm7,%xmm7\r
+ call _aesni_decrypt6\r
+ movups (%esi),%xmm1\r
+ movups 16(%esi),%xmm0\r
+ xorps (%esp),%xmm2\r
+ xorps %xmm1,%xmm3\r
+ movups 32(%esi),%xmm1\r
+ xorps %xmm0,%xmm4\r
+ movups 48(%esi),%xmm0\r
+ xorps %xmm1,%xmm5\r
+ movups 64(%esi),%xmm7\r
+ xorps %xmm0,%xmm6\r
+ movups %xmm2,(%edi)\r
+ movups %xmm3,16(%edi)\r
+ pxor %xmm3,%xmm3\r
+ movups %xmm4,32(%edi)\r
+ pxor %xmm4,%xmm4\r
+ movups %xmm5,48(%edi)\r
+ pxor %xmm5,%xmm5\r
+ leal 64(%edi),%edi\r
+ movaps %xmm6,%xmm2\r
+ pxor %xmm6,%xmm6\r
+ subl $80,%eax\r
+ jmp .L108cbc_dec_tail_collected\r
+.align 16\r
+.L104cbc_dec_one:\r
+ movups (%edx),%xmm0\r
+ movups 16(%edx),%xmm1\r
+ leal 32(%edx),%edx\r
+ xorps %xmm0,%xmm2\r
+.L109dec1_loop_20:\r
+.byte 102,15,56,222,209\r
+ decl %ecx\r
+ movups (%edx),%xmm1\r
+ leal 16(%edx),%edx\r
+ jnz .L109dec1_loop_20\r
+.byte 102,15,56,223,209\r
+ xorps %xmm7,%xmm2\r
+ movaps %xmm6,%xmm7\r
+ subl $16,%eax\r
+ jmp .L108cbc_dec_tail_collected\r
+.align 16\r
+.L105cbc_dec_two:\r
+ call _aesni_decrypt2\r
+ xorps %xmm7,%xmm2\r
+ xorps %xmm6,%xmm3\r
+ movups %xmm2,(%edi)\r
+ movaps %xmm3,%xmm2\r
+ pxor %xmm3,%xmm3\r
+ leal 16(%edi),%edi\r
+ movaps %xmm5,%xmm7\r
+ subl $32,%eax\r
+ jmp .L108cbc_dec_tail_collected\r
+.align 16\r
+.L106cbc_dec_three:\r
+ call _aesni_decrypt3\r
+ xorps %xmm7,%xmm2\r
+ xorps %xmm6,%xmm3\r
+ xorps %xmm5,%xmm4\r
+ movups %xmm2,(%edi)\r
+ movaps %xmm4,%xmm2\r
+ pxor %xmm4,%xmm4\r
+ movups %xmm3,16(%edi)\r
+ pxor %xmm3,%xmm3\r
+ leal 32(%edi),%edi\r
+ movups 32(%esi),%xmm7\r
+ subl $48,%eax\r
+ jmp .L108cbc_dec_tail_collected\r
+.align 16\r
+.L107cbc_dec_four:\r
+ call _aesni_decrypt4\r
+ movups 16(%esi),%xmm1\r
+ movups 32(%esi),%xmm0\r
+ xorps %xmm7,%xmm2\r
+ movups 48(%esi),%xmm7\r
+ xorps %xmm6,%xmm3\r
+ movups %xmm2,(%edi)\r
+ xorps %xmm1,%xmm4\r
+ movups %xmm3,16(%edi)\r
+ pxor %xmm3,%xmm3\r
+ xorps %xmm0,%xmm5\r
+ movups %xmm4,32(%edi)\r
+ pxor %xmm4,%xmm4\r
+ leal 48(%edi),%edi\r
+ movaps %xmm5,%xmm2\r
+ pxor %xmm5,%xmm5\r
+ subl $64,%eax\r
+ jmp .L108cbc_dec_tail_collected\r
+.align 16\r
+.L103cbc_dec_clear_tail_collected:\r
+ pxor %xmm3,%xmm3\r
+ pxor %xmm4,%xmm4\r
+ pxor %xmm5,%xmm5\r
+ pxor %xmm6,%xmm6\r
+.L108cbc_dec_tail_collected:\r
+ andl $15,%eax\r
+ jnz .L110cbc_dec_tail_partial\r
+ movups %xmm2,(%edi)\r
+ pxor %xmm0,%xmm0\r
+ jmp .L099cbc_ret\r
+.align 16\r
+.L110cbc_dec_tail_partial:\r
+ movaps %xmm2,(%esp)\r
+ pxor %xmm0,%xmm0\r
+ movl $16,%ecx\r
+ movl %esp,%esi\r
+ subl %eax,%ecx\r
+.long 2767451785\r
+ movdqa %xmm2,(%esp)\r
+.L099cbc_ret:\r
+ movl 16(%esp),%esp\r
+ movl 36(%esp),%ebp\r
+ pxor %xmm2,%xmm2\r
+ pxor %xmm1,%xmm1\r
+ movups %xmm7,(%ebp)\r
+ pxor %xmm7,%xmm7\r
+.L094cbc_abort:\r
+ popl %edi\r
+ popl %esi\r
+ popl %ebx\r
+ popl %ebp\r
+ ret\r
+.size aesni_cbc_encrypt,.-.L_aesni_cbc_encrypt_begin\r
+.type _aesni_set_encrypt_key,@function\r
+.align 16\r
+_aesni_set_encrypt_key:\r
+ pushl %ebp\r
+ pushl %ebx\r
+ testl %eax,%eax\r
+ jz .L111bad_pointer\r
+ testl %edx,%edx\r
+ jz .L111bad_pointer\r
+ call .L112pic\r
+.L112pic:\r
+ popl %ebx\r
+ leal .Lkey_const-.L112pic(%ebx),%ebx\r
+ leal OPENSSL_ia32cap_P,%ebp\r
+ movups (%eax),%xmm0\r
+ xorps %xmm4,%xmm4\r
+ movl 4(%ebp),%ebp\r
+ leal 16(%edx),%edx\r
+ andl $268437504,%ebp\r
+ cmpl $256,%ecx\r
+ je .L11314rounds\r
+ cmpl $192,%ecx\r
+ je .L11412rounds\r
+ cmpl $128,%ecx\r
+ jne .L115bad_keybits\r
+.align 16\r
+.L11610rounds:\r
+ cmpl $268435456,%ebp\r
+ je .L11710rounds_alt\r
+ movl $9,%ecx\r
+ movups %xmm0,-16(%edx)\r
+.byte 102,15,58,223,200,1\r
+ call .L118key_128_cold\r
+.byte 102,15,58,223,200,2\r
+ call .L119key_128\r
+.byte 102,15,58,223,200,4\r
+ call .L119key_128\r
+.byte 102,15,58,223,200,8\r
+ call .L119key_128\r
+.byte 102,15,58,223,200,16\r
+ call .L119key_128\r
+.byte 102,15,58,223,200,32\r
+ call .L119key_128\r
+.byte 102,15,58,223,200,64\r
+ call .L119key_128\r
+.byte 102,15,58,223,200,128\r
+ call .L119key_128\r
+.byte 102,15,58,223,200,27\r
+ call .L119key_128\r
+.byte 102,15,58,223,200,54\r
+ call .L119key_128\r
+ movups %xmm0,(%edx)\r
+ movl %ecx,80(%edx)\r
+ jmp .L120good_key\r
+.align 16\r
+.L119key_128:\r
+ movups %xmm0,(%edx)\r
+ leal 16(%edx),%edx\r
+.L118key_128_cold:\r
+ shufps $16,%xmm0,%xmm4\r
+ xorps %xmm4,%xmm0\r
+ shufps $140,%xmm0,%xmm4\r
+ xorps %xmm4,%xmm0\r
+ shufps $255,%xmm1,%xmm1\r
+ xorps %xmm1,%xmm0\r
+ ret\r
+.align 16\r
+.L11710rounds_alt:\r
+ movdqa (%ebx),%xmm5\r
+ movl $8,%ecx\r
+ movdqa 32(%ebx),%xmm4\r
+ movdqa %xmm0,%xmm2\r
+ movdqu %xmm0,-16(%edx)\r
+.L121loop_key128:\r
+.byte 102,15,56,0,197\r
+.byte 102,15,56,221,196\r
+ pslld $1,%xmm4\r
+ leal 16(%edx),%edx\r
+ movdqa %xmm2,%xmm3\r
+ pslldq $4,%xmm2\r
+ pxor %xmm2,%xmm3\r
+ pslldq $4,%xmm2\r
+ pxor %xmm2,%xmm3\r
+ pslldq $4,%xmm2\r
+ pxor %xmm3,%xmm2\r
+ pxor %xmm2,%xmm0\r
+ movdqu %xmm0,-16(%edx)\r
+ movdqa %xmm0,%xmm2\r
+ decl %ecx\r
+ jnz .L121loop_key128\r
+ movdqa 48(%ebx),%xmm4\r
+.byte 102,15,56,0,197\r
+.byte 102,15,56,221,196\r
+ pslld $1,%xmm4\r
+ movdqa %xmm2,%xmm3\r
+ pslldq $4,%xmm2\r
+ pxor %xmm2,%xmm3\r
+ pslldq $4,%xmm2\r
+ pxor %xmm2,%xmm3\r
+ pslldq $4,%xmm2\r
+ pxor %xmm3,%xmm2\r
+ pxor %xmm2,%xmm0\r
+ movdqu %xmm0,(%edx)\r
+ movdqa %xmm0,%xmm2\r
+.byte 102,15,56,0,197\r
+.byte 102,15,56,221,196\r
+ movdqa %xmm2,%xmm3\r
+ pslldq $4,%xmm2\r
+ pxor %xmm2,%xmm3\r
+ pslldq $4,%xmm2\r
+ pxor %xmm2,%xmm3\r
+ pslldq $4,%xmm2\r
+ pxor %xmm3,%xmm2\r
+ pxor %xmm2,%xmm0\r
+ movdqu %xmm0,16(%edx)\r
+ movl $9,%ecx\r
+ movl %ecx,96(%edx)\r
+ jmp .L120good_key\r
+.align 16\r
+.L11412rounds:\r
+ movq 16(%eax),%xmm2\r
+ cmpl $268435456,%ebp\r
+ je .L12212rounds_alt\r
+ movl $11,%ecx\r
+ movups %xmm0,-16(%edx)\r
+.byte 102,15,58,223,202,1\r
+ call .L123key_192a_cold\r
+.byte 102,15,58,223,202,2\r
+ call .L124key_192b\r
+.byte 102,15,58,223,202,4\r
+ call .L125key_192a\r
+.byte 102,15,58,223,202,8\r
+ call .L124key_192b\r
+.byte 102,15,58,223,202,16\r
+ call .L125key_192a\r
+.byte 102,15,58,223,202,32\r
+ call .L124key_192b\r
+.byte 102,15,58,223,202,64\r
+ call .L125key_192a\r
+.byte 102,15,58,223,202,128\r
+ call .L124key_192b\r
+ movups %xmm0,(%edx)\r
+ movl %ecx,48(%edx)\r
+ jmp .L120good_key\r
+.align 16\r
+.L125key_192a:\r
+ movups %xmm0,(%edx)\r
+ leal 16(%edx),%edx\r
+.align 16\r
+.L123key_192a_cold:\r
+ movaps %xmm2,%xmm5\r
+.L126key_192b_warm:\r
+ shufps $16,%xmm0,%xmm4\r
+ movdqa %xmm2,%xmm3\r
+ xorps %xmm4,%xmm0\r
+ shufps $140,%xmm0,%xmm4\r
+ pslldq $4,%xmm3\r
+ xorps %xmm4,%xmm0\r
+ pshufd $85,%xmm1,%xmm1\r
+ pxor %xmm3,%xmm2\r
+ pxor %xmm1,%xmm0\r
+ pshufd $255,%xmm0,%xmm3\r
+ pxor %xmm3,%xmm2\r
+ ret\r
+.align 16\r
+.L124key_192b:\r
+ movaps %xmm0,%xmm3\r
+ shufps $68,%xmm0,%xmm5\r
+ movups %xmm5,(%edx)\r
+ shufps $78,%xmm2,%xmm3\r
+ movups %xmm3,16(%edx)\r
+ leal 32(%edx),%edx\r
+ jmp .L126key_192b_warm\r
+.align 16\r
+.L12212rounds_alt:\r
+ movdqa 16(%ebx),%xmm5\r
+ movdqa 32(%ebx),%xmm4\r
+ movl $8,%ecx\r
+ movdqu %xmm0,-16(%edx)\r
+.L127loop_key192:\r
+ movq %xmm2,(%edx)\r
+ movdqa %xmm2,%xmm1\r
+.byte 102,15,56,0,213\r
+.byte 102,15,56,221,212\r
+ pslld $1,%xmm4\r
+ leal 24(%edx),%edx\r
+ movdqa %xmm0,%xmm3\r
+ pslldq $4,%xmm0\r
+ pxor %xmm0,%xmm3\r
+ pslldq $4,%xmm0\r
+ pxor %xmm0,%xmm3\r
+ pslldq $4,%xmm0\r
+ pxor %xmm3,%xmm0\r
+ pshufd $255,%xmm0,%xmm3\r
+ pxor %xmm1,%xmm3\r
+ pslldq $4,%xmm1\r
+ pxor %xmm1,%xmm3\r
+ pxor %xmm2,%xmm0\r
+ pxor %xmm3,%xmm2\r
+ movdqu %xmm0,-16(%edx)\r
+ decl %ecx\r
+ jnz .L127loop_key192\r
+ movl $11,%ecx\r
+ movl %ecx,32(%edx)\r
+ jmp .L120good_key\r
+.align 16\r
+.L11314rounds:\r
+ movups 16(%eax),%xmm2\r
+ leal 16(%edx),%edx\r
+ cmpl $268435456,%ebp\r
+ je .L12814rounds_alt\r
+ movl $13,%ecx\r
+ movups %xmm0,-32(%edx)\r
+ movups %xmm2,-16(%edx)\r
+.byte 102,15,58,223,202,1\r
+ call .L129key_256a_cold\r
+.byte 102,15,58,223,200,1\r
+ call .L130key_256b\r
+.byte 102,15,58,223,202,2\r
+ call .L131key_256a\r
+.byte 102,15,58,223,200,2\r
+ call .L130key_256b\r
+.byte 102,15,58,223,202,4\r
+ call .L131key_256a\r
+.byte 102,15,58,223,200,4\r
+ call .L130key_256b\r
+.byte 102,15,58,223,202,8\r
+ call .L131key_256a\r
+.byte 102,15,58,223,200,8\r
+ call .L130key_256b\r
+.byte 102,15,58,223,202,16\r
+ call .L131key_256a\r
+.byte 102,15,58,223,200,16\r
+ call .L130key_256b\r
+.byte 102,15,58,223,202,32\r
+ call .L131key_256a\r
+.byte 102,15,58,223,200,32\r
+ call .L130key_256b\r
+.byte 102,15,58,223,202,64\r
+ call .L131key_256a\r
+ movups %xmm0,(%edx)\r
+ movl %ecx,16(%edx)\r
+ xorl %eax,%eax\r
+ jmp .L120good_key\r
+.align 16\r
+.L131key_256a:\r
+ movups %xmm2,(%edx)\r
+ leal 16(%edx),%edx\r
+.L129key_256a_cold:\r
+ shufps $16,%xmm0,%xmm4\r
+ xorps %xmm4,%xmm0\r
+ shufps $140,%xmm0,%xmm4\r
+ xorps %xmm4,%xmm0\r
+ shufps $255,%xmm1,%xmm1\r
+ xorps %xmm1,%xmm0\r
+ ret\r
+.align 16\r
+.L130key_256b:\r
+ movups %xmm0,(%edx)\r
+ leal 16(%edx),%edx\r
+ shufps $16,%xmm2,%xmm4\r
+ xorps %xmm4,%xmm2\r
+ shufps $140,%xmm2,%xmm4\r
+ xorps %xmm4,%xmm2\r
+ shufps $170,%xmm1,%xmm1\r
+ xorps %xmm1,%xmm2\r
+ ret\r
+.align 16\r
+.L12814rounds_alt:\r
+ movdqa (%ebx),%xmm5\r
+ movdqa 32(%ebx),%xmm4\r
+ movl $7,%ecx\r
+ movdqu %xmm0,-32(%edx)\r
+ movdqa %xmm2,%xmm1\r
+ movdqu %xmm2,-16(%edx)\r
+.L132loop_key256:\r
+.byte 102,15,56,0,213\r
+.byte 102,15,56,221,212\r
+ movdqa %xmm0,%xmm3\r
+ pslldq $4,%xmm0\r
+ pxor %xmm0,%xmm3\r
+ pslldq $4,%xmm0\r
+ pxor %xmm0,%xmm3\r
+ pslldq $4,%xmm0\r
+ pxor %xmm3,%xmm0\r
+ pslld $1,%xmm4\r
+ pxor %xmm2,%xmm0\r
+ movdqu %xmm0,(%edx)\r
+ decl %ecx\r
+ jz .L133done_key256\r
+ pshufd $255,%xmm0,%xmm2\r
+ pxor %xmm3,%xmm3\r
+.byte 102,15,56,221,211\r
+ movdqa %xmm1,%xmm3\r
+ pslldq $4,%xmm1\r
+ pxor %xmm1,%xmm3\r
+ pslldq $4,%xmm1\r
+ pxor %xmm1,%xmm3\r
+ pslldq $4,%xmm1\r
+ pxor %xmm3,%xmm1\r
+ pxor %xmm1,%xmm2\r
+ movdqu %xmm2,16(%edx)\r
+ leal 32(%edx),%edx\r
+ movdqa %xmm2,%xmm1\r
+ jmp .L132loop_key256\r
+.L133done_key256:\r
+ movl $13,%ecx\r
+ movl %ecx,16(%edx)\r
+.L120good_key:\r
+ pxor %xmm0,%xmm0\r
+ pxor %xmm1,%xmm1\r
+ pxor %xmm2,%xmm2\r
+ pxor %xmm3,%xmm3\r
+ pxor %xmm4,%xmm4\r
+ pxor %xmm5,%xmm5\r
+ xorl %eax,%eax\r
+ popl %ebx\r
+ popl %ebp\r
+ ret\r
+.align 4\r
+.L111bad_pointer:\r
+ movl $-1,%eax\r
+ popl %ebx\r
+ popl %ebp\r
+ ret\r
+.align 4\r
+.L115bad_keybits:\r
+ pxor %xmm0,%xmm0\r
+ movl $-2,%eax\r
+ popl %ebx\r
+ popl %ebp\r
+ ret\r
+.size _aesni_set_encrypt_key,.-_aesni_set_encrypt_key\r
+.globl aesni_set_encrypt_key\r
+.type aesni_set_encrypt_key,@function\r
+.align 16\r
+aesni_set_encrypt_key:\r
+.L_aesni_set_encrypt_key_begin:\r
+ movl 4(%esp),%eax\r
+ movl 8(%esp),%ecx\r
+ movl 12(%esp),%edx\r
+ call _aesni_set_encrypt_key\r
+ ret\r
+.size aesni_set_encrypt_key,.-.L_aesni_set_encrypt_key_begin\r
+.globl aesni_set_decrypt_key\r
+.type aesni_set_decrypt_key,@function\r
+.align 16\r
+aesni_set_decrypt_key:\r
+.L_aesni_set_decrypt_key_begin:\r
+ movl 4(%esp),%eax\r
+ movl 8(%esp),%ecx\r
+ movl 12(%esp),%edx\r
+ call _aesni_set_encrypt_key\r
+ movl 12(%esp),%edx\r
+ shll $4,%ecx\r
+ testl %eax,%eax\r
+ jnz .L134dec_key_ret\r
+ leal 16(%edx,%ecx,1),%eax\r
+ movups (%edx),%xmm0\r
+ movups (%eax),%xmm1\r
+ movups %xmm0,(%eax)\r
+ movups %xmm1,(%edx)\r
+ leal 16(%edx),%edx\r
+ leal -16(%eax),%eax\r
+.L135dec_key_inverse:\r
+ movups (%edx),%xmm0\r
+ movups (%eax),%xmm1\r
+.byte 102,15,56,219,192\r
+.byte 102,15,56,219,201\r
+ leal 16(%edx),%edx\r
+ leal -16(%eax),%eax\r
+ movups %xmm0,16(%eax)\r
+ movups %xmm1,-16(%edx)\r
+ cmpl %edx,%eax\r
+ ja .L135dec_key_inverse\r
+ movups (%edx),%xmm0\r
+.byte 102,15,56,219,192\r
+ movups %xmm0,(%edx)\r
+ pxor %xmm0,%xmm0\r
+ pxor %xmm1,%xmm1\r
+ xorl %eax,%eax\r
+.L134dec_key_ret:\r
+ ret\r
+.size aesni_set_decrypt_key,.-.L_aesni_set_decrypt_key_begin\r
+.align 64\r
+.Lkey_const:\r
+.long 202313229,202313229,202313229,202313229\r
+.long 67569157,67569157,67569157,67569157\r
+.long 1,1,1,1\r
+.long 27,27,27,27\r
+.byte 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69\r
+.byte 83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83\r
+.byte 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115\r
+.byte 115,108,46,111,114,103,62,0\r
+.comm OPENSSL_ia32cap_P,16,4\r
--- /dev/null
+# WARNING: do not edit!\r
+# Generated from openssl/crypto/aes/asm/vpaes-x86.pl\r
+#\r
+# Copyright 2011-2020 The OpenSSL Project Authors. All Rights Reserved.\r
+#\r
+# Licensed under the OpenSSL license (the "License"). You may not use\r
+# this file except in compliance with the License. You can obtain a copy\r
+# in the file LICENSE in the source distribution or at\r
+# https://www.openssl.org/source/license.html\r
+\r
+.text\r
+.align 64\r
+.L_vpaes_consts:\r
+.long 218628480,235210255,168496130,67568393\r
+.long 252381056,17041926,33884169,51187212\r
+.long 252645135,252645135,252645135,252645135\r
+.long 1512730624,3266504856,1377990664,3401244816\r
+.long 830229760,1275146365,2969422977,3447763452\r
+.long 3411033600,2979783055,338359620,2782886510\r
+.long 4209124096,907596821,221174255,1006095553\r
+.long 191964160,3799684038,3164090317,1589111125\r
+.long 182528256,1777043520,2877432650,3265356744\r
+.long 1874708224,3503451415,3305285752,363511674\r
+.long 1606117888,3487855781,1093350906,2384367825\r
+.long 197121,67569157,134941193,202313229\r
+.long 67569157,134941193,202313229,197121\r
+.long 134941193,202313229,197121,67569157\r
+.long 202313229,197121,67569157,134941193\r
+.long 33619971,100992007,168364043,235736079\r
+.long 235736079,33619971,100992007,168364043\r
+.long 168364043,235736079,33619971,100992007\r
+.long 100992007,168364043,235736079,33619971\r
+.long 50462976,117835012,185207048,252579084\r
+.long 252314880,51251460,117574920,184942860\r
+.long 184682752,252054788,50987272,118359308\r
+.long 118099200,185467140,251790600,50727180\r
+.long 2946363062,528716217,1300004225,1881839624\r
+.long 1532713819,1532713819,1532713819,1532713819\r
+.long 3602276352,4288629033,3737020424,4153884961\r
+.long 1354558464,32357713,2958822624,3775749553\r
+.long 1201988352,132424512,1572796698,503232858\r
+.long 2213177600,1597421020,4103937655,675398315\r
+.long 2749646592,4273543773,1511898873,121693092\r
+.long 3040248576,1103263732,2871565598,1608280554\r
+.long 2236667136,2588920351,482954393,64377734\r
+.long 3069987328,291237287,2117370568,3650299247\r
+.long 533321216,3573750986,2572112006,1401264716\r
+.long 1339849704,2721158661,548607111,3445553514\r
+.long 2128193280,3054596040,2183486460,1257083700\r
+.long 655635200,1165381986,3923443150,2344132524\r
+.long 190078720,256924420,290342170,357187870\r
+.long 1610966272,2263057382,4103205268,309794674\r
+.long 2592527872,2233205587,1335446729,3402964816\r
+.long 3973531904,3225098121,3002836325,1918774430\r
+.long 3870401024,2102906079,2284471353,4117666579\r
+.long 617007872,1021508343,366931923,691083277\r
+.long 2528395776,3491914898,2968704004,1613121270\r
+.long 3445188352,3247741094,844474987,4093578302\r
+.long 651481088,1190302358,1689581232,574775300\r
+.long 4289380608,206939853,2555985458,2489840491\r
+.long 2130264064,327674451,3566485037,3349835193\r
+.long 2470714624,316102159,3636825756,3393945945\r
+.byte 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105\r
+.byte 111,110,32,65,69,83,32,102,111,114,32,120,56,54,47,83\r
+.byte 83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117\r
+.byte 114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105\r
+.byte 118,101,114,115,105,116,121,41,0\r
+.align 64\r
+.type _vpaes_preheat,@function\r
+.align 16\r
+_vpaes_preheat:\r
+ addl (%esp),%ebp\r
+ movdqa -48(%ebp),%xmm7\r
+ movdqa -16(%ebp),%xmm6\r
+ ret\r
+.size _vpaes_preheat,.-_vpaes_preheat\r
+.type _vpaes_encrypt_core,@function\r
+.align 16\r
+_vpaes_encrypt_core:\r
+ movl $16,%ecx\r
+ movl 240(%edx),%eax\r
+ movdqa %xmm6,%xmm1\r
+ movdqa (%ebp),%xmm2\r
+ pandn %xmm0,%xmm1\r
+ pand %xmm6,%xmm0\r
+ movdqu (%edx),%xmm5\r
+.byte 102,15,56,0,208\r
+ movdqa 16(%ebp),%xmm0\r
+ pxor %xmm5,%xmm2\r
+ psrld $4,%xmm1\r
+ addl $16,%edx\r
+.byte 102,15,56,0,193\r
+ leal 192(%ebp),%ebx\r
+ pxor %xmm2,%xmm0\r
+ jmp .L000enc_entry\r
+.align 16\r
+.L001enc_loop:\r
+ movdqa 32(%ebp),%xmm4\r
+ movdqa 48(%ebp),%xmm0\r
+.byte 102,15,56,0,226\r
+.byte 102,15,56,0,195\r
+ pxor %xmm5,%xmm4\r
+ movdqa 64(%ebp),%xmm5\r
+ pxor %xmm4,%xmm0\r
+ movdqa -64(%ebx,%ecx,1),%xmm1\r
+.byte 102,15,56,0,234\r
+ movdqa 80(%ebp),%xmm2\r
+ movdqa (%ebx,%ecx,1),%xmm4\r
+.byte 102,15,56,0,211\r
+ movdqa %xmm0,%xmm3\r
+ pxor %xmm5,%xmm2\r
+.byte 102,15,56,0,193\r
+ addl $16,%edx\r
+ pxor %xmm2,%xmm0\r
+.byte 102,15,56,0,220\r
+ addl $16,%ecx\r
+ pxor %xmm0,%xmm3\r
+.byte 102,15,56,0,193\r
+ andl $48,%ecx\r
+ subl $1,%eax\r
+ pxor %xmm3,%xmm0\r
+.L000enc_entry:\r
+ movdqa %xmm6,%xmm1\r
+ movdqa -32(%ebp),%xmm5\r
+ pandn %xmm0,%xmm1\r
+ psrld $4,%xmm1\r
+ pand %xmm6,%xmm0\r
+.byte 102,15,56,0,232\r
+ movdqa %xmm7,%xmm3\r
+ pxor %xmm1,%xmm0\r
+.byte 102,15,56,0,217\r
+ movdqa %xmm7,%xmm4\r
+ pxor %xmm5,%xmm3\r
+.byte 102,15,56,0,224\r
+ movdqa %xmm7,%xmm2\r
+ pxor %xmm5,%xmm4\r
+.byte 102,15,56,0,211\r
+ movdqa %xmm7,%xmm3\r
+ pxor %xmm0,%xmm2\r
+.byte 102,15,56,0,220\r
+ movdqu (%edx),%xmm5\r
+ pxor %xmm1,%xmm3\r
+ jnz .L001enc_loop\r
+ movdqa 96(%ebp),%xmm4\r
+ movdqa 112(%ebp),%xmm0\r
+.byte 102,15,56,0,226\r
+ pxor %xmm5,%xmm4\r
+.byte 102,15,56,0,195\r
+ movdqa 64(%ebx,%ecx,1),%xmm1\r
+ pxor %xmm4,%xmm0\r
+.byte 102,15,56,0,193\r
+ ret\r
+.size _vpaes_encrypt_core,.-_vpaes_encrypt_core\r
+.type _vpaes_decrypt_core,@function\r
+.align 16\r
+_vpaes_decrypt_core:\r
+ leal 608(%ebp),%ebx\r
+ movl 240(%edx),%eax\r
+ movdqa %xmm6,%xmm1\r
+ movdqa -64(%ebx),%xmm2\r
+ pandn %xmm0,%xmm1\r
+ movl %eax,%ecx\r
+ psrld $4,%xmm1\r
+ movdqu (%edx),%xmm5\r
+ shll $4,%ecx\r
+ pand %xmm6,%xmm0\r
+.byte 102,15,56,0,208\r
+ movdqa -48(%ebx),%xmm0\r
+ xorl $48,%ecx\r
+.byte 102,15,56,0,193\r
+ andl $48,%ecx\r
+ pxor %xmm5,%xmm2\r
+ movdqa 176(%ebp),%xmm5\r
+ pxor %xmm2,%xmm0\r
+ addl $16,%edx\r
+ leal -352(%ebx,%ecx,1),%ecx\r
+ jmp .L002dec_entry\r
+.align 16\r
+.L003dec_loop:\r
+ movdqa -32(%ebx),%xmm4\r
+ movdqa -16(%ebx),%xmm1\r
+.byte 102,15,56,0,226\r
+.byte 102,15,56,0,203\r
+ pxor %xmm4,%xmm0\r
+ movdqa (%ebx),%xmm4\r
+ pxor %xmm1,%xmm0\r
+ movdqa 16(%ebx),%xmm1\r
+.byte 102,15,56,0,226\r
+.byte 102,15,56,0,197\r
+.byte 102,15,56,0,203\r
+ pxor %xmm4,%xmm0\r
+ movdqa 32(%ebx),%xmm4\r
+ pxor %xmm1,%xmm0\r
+ movdqa 48(%ebx),%xmm1\r
+.byte 102,15,56,0,226\r
+.byte 102,15,56,0,197\r
+.byte 102,15,56,0,203\r
+ pxor %xmm4,%xmm0\r
+ movdqa 64(%ebx),%xmm4\r
+ pxor %xmm1,%xmm0\r
+ movdqa 80(%ebx),%xmm1\r
+.byte 102,15,56,0,226\r
+.byte 102,15,56,0,197\r
+.byte 102,15,56,0,203\r
+ pxor %xmm4,%xmm0\r
+ addl $16,%edx\r
+.byte 102,15,58,15,237,12\r
+ pxor %xmm1,%xmm0\r
+ subl $1,%eax\r
+.L002dec_entry:\r
+ movdqa %xmm6,%xmm1\r
+ movdqa -32(%ebp),%xmm2\r
+ pandn %xmm0,%xmm1\r
+ pand %xmm6,%xmm0\r
+ psrld $4,%xmm1\r
+.byte 102,15,56,0,208\r
+ movdqa %xmm7,%xmm3\r
+ pxor %xmm1,%xmm0\r
+.byte 102,15,56,0,217\r
+ movdqa %xmm7,%xmm4\r
+ pxor %xmm2,%xmm3\r
+.byte 102,15,56,0,224\r
+ pxor %xmm2,%xmm4\r
+ movdqa %xmm7,%xmm2\r
+.byte 102,15,56,0,211\r
+ movdqa %xmm7,%xmm3\r
+ pxor %xmm0,%xmm2\r
+.byte 102,15,56,0,220\r
+ movdqu (%edx),%xmm0\r
+ pxor %xmm1,%xmm3\r
+ jnz .L003dec_loop\r
+ movdqa 96(%ebx),%xmm4\r
+.byte 102,15,56,0,226\r
+ pxor %xmm0,%xmm4\r
+ movdqa 112(%ebx),%xmm0\r
+ movdqa (%ecx),%xmm2\r
+.byte 102,15,56,0,195\r
+ pxor %xmm4,%xmm0\r
+.byte 102,15,56,0,194\r
+ ret\r
+.size _vpaes_decrypt_core,.-_vpaes_decrypt_core\r
+.type _vpaes_schedule_core,@function\r
+.align 16\r
+_vpaes_schedule_core:\r
+ addl (%esp),%ebp\r
+ movdqu (%esi),%xmm0\r
+ movdqa 320(%ebp),%xmm2\r
+ movdqa %xmm0,%xmm3\r
+ leal (%ebp),%ebx\r
+ movdqa %xmm2,4(%esp)\r
+ call _vpaes_schedule_transform\r
+ movdqa %xmm0,%xmm7\r
+ testl %edi,%edi\r
+ jnz .L004schedule_am_decrypting\r
+ movdqu %xmm0,(%edx)\r
+ jmp .L005schedule_go\r
+.L004schedule_am_decrypting:\r
+ movdqa 256(%ebp,%ecx,1),%xmm1\r
+.byte 102,15,56,0,217\r
+ movdqu %xmm3,(%edx)\r
+ xorl $48,%ecx\r
+.L005schedule_go:\r
+ cmpl $192,%eax\r
+ ja .L006schedule_256\r
+ je .L007schedule_192\r
+.L008schedule_128:\r
+ movl $10,%eax\r
+.L009loop_schedule_128:\r
+ call _vpaes_schedule_round\r
+ decl %eax\r
+ jz .L010schedule_mangle_last\r
+ call _vpaes_schedule_mangle\r
+ jmp .L009loop_schedule_128\r
+.align 16\r
+.L007schedule_192:\r
+ movdqu 8(%esi),%xmm0\r
+ call _vpaes_schedule_transform\r
+ movdqa %xmm0,%xmm6\r
+ pxor %xmm4,%xmm4\r
+ movhlps %xmm4,%xmm6\r
+ movl $4,%eax\r
+.L011loop_schedule_192:\r
+ call _vpaes_schedule_round\r
+.byte 102,15,58,15,198,8\r
+ call _vpaes_schedule_mangle\r
+ call _vpaes_schedule_192_smear\r
+ call _vpaes_schedule_mangle\r
+ call _vpaes_schedule_round\r
+ decl %eax\r
+ jz .L010schedule_mangle_last\r
+ call _vpaes_schedule_mangle\r
+ call _vpaes_schedule_192_smear\r
+ jmp .L011loop_schedule_192\r
+.align 16\r
+.L006schedule_256:\r
+ movdqu 16(%esi),%xmm0\r
+ call _vpaes_schedule_transform\r
+ movl $7,%eax\r
+.L012loop_schedule_256:\r
+ call _vpaes_schedule_mangle\r
+ movdqa %xmm0,%xmm6\r
+ call _vpaes_schedule_round\r
+ decl %eax\r
+ jz .L010schedule_mangle_last\r
+ call _vpaes_schedule_mangle\r
+ pshufd $255,%xmm0,%xmm0\r
+ movdqa %xmm7,20(%esp)\r
+ movdqa %xmm6,%xmm7\r
+ call .L_vpaes_schedule_low_round\r
+ movdqa 20(%esp),%xmm7\r
+ jmp .L012loop_schedule_256\r
+.align 16\r
+.L010schedule_mangle_last:\r
+ leal 384(%ebp),%ebx\r
+ testl %edi,%edi\r
+ jnz .L013schedule_mangle_last_dec\r
+ movdqa 256(%ebp,%ecx,1),%xmm1\r
+.byte 102,15,56,0,193\r
+ leal 352(%ebp),%ebx\r
+ addl $32,%edx\r
+.L013schedule_mangle_last_dec:\r
+ addl $-16,%edx\r
+ pxor 336(%ebp),%xmm0\r
+ call _vpaes_schedule_transform\r
+ movdqu %xmm0,(%edx)\r
+ pxor %xmm0,%xmm0\r
+ pxor %xmm1,%xmm1\r
+ pxor %xmm2,%xmm2\r
+ pxor %xmm3,%xmm3\r
+ pxor %xmm4,%xmm4\r
+ pxor %xmm5,%xmm5\r
+ pxor %xmm6,%xmm6\r
+ pxor %xmm7,%xmm7\r
+ ret\r
+.size _vpaes_schedule_core,.-_vpaes_schedule_core\r
+.type _vpaes_schedule_192_smear,@function\r
+.align 16\r
+_vpaes_schedule_192_smear:\r
+ pshufd $128,%xmm6,%xmm1\r
+ pshufd $254,%xmm7,%xmm0\r
+ pxor %xmm1,%xmm6\r
+ pxor %xmm1,%xmm1\r
+ pxor %xmm0,%xmm6\r
+ movdqa %xmm6,%xmm0\r
+ movhlps %xmm1,%xmm6\r
+ ret\r
+.size _vpaes_schedule_192_smear,.-_vpaes_schedule_192_smear\r
+.type _vpaes_schedule_round,@function\r
+.align 16\r
+_vpaes_schedule_round:\r
+ movdqa 8(%esp),%xmm2\r
+ pxor %xmm1,%xmm1\r
+.byte 102,15,58,15,202,15\r
+.byte 102,15,58,15,210,15\r
+ pxor %xmm1,%xmm7\r
+ pshufd $255,%xmm0,%xmm0\r
+.byte 102,15,58,15,192,1\r
+ movdqa %xmm2,8(%esp)\r
+.L_vpaes_schedule_low_round:\r
+ movdqa %xmm7,%xmm1\r
+ pslldq $4,%xmm7\r
+ pxor %xmm1,%xmm7\r
+ movdqa %xmm7,%xmm1\r
+ pslldq $8,%xmm7\r
+ pxor %xmm1,%xmm7\r
+ pxor 336(%ebp),%xmm7\r
+ movdqa -16(%ebp),%xmm4\r
+ movdqa -48(%ebp),%xmm5\r
+ movdqa %xmm4,%xmm1\r
+ pandn %xmm0,%xmm1\r
+ psrld $4,%xmm1\r
+ pand %xmm4,%xmm0\r
+ movdqa -32(%ebp),%xmm2\r
+.byte 102,15,56,0,208\r
+ pxor %xmm1,%xmm0\r
+ movdqa %xmm5,%xmm3\r
+.byte 102,15,56,0,217\r
+ pxor %xmm2,%xmm3\r
+ movdqa %xmm5,%xmm4\r
+.byte 102,15,56,0,224\r
+ pxor %xmm2,%xmm4\r
+ movdqa %xmm5,%xmm2\r
+.byte 102,15,56,0,211\r
+ pxor %xmm0,%xmm2\r
+ movdqa %xmm5,%xmm3\r
+.byte 102,15,56,0,220\r
+ pxor %xmm1,%xmm3\r
+ movdqa 32(%ebp),%xmm4\r
+.byte 102,15,56,0,226\r
+ movdqa 48(%ebp),%xmm0\r
+.byte 102,15,56,0,195\r
+ pxor %xmm4,%xmm0\r
+ pxor %xmm7,%xmm0\r
+ movdqa %xmm0,%xmm7\r
+ ret\r
+.size _vpaes_schedule_round,.-_vpaes_schedule_round\r
+.type _vpaes_schedule_transform,@function\r
+.align 16\r
+_vpaes_schedule_transform:\r
+ movdqa -16(%ebp),%xmm2\r
+ movdqa %xmm2,%xmm1\r
+ pandn %xmm0,%xmm1\r
+ psrld $4,%xmm1\r
+ pand %xmm2,%xmm0\r
+ movdqa (%ebx),%xmm2\r
+.byte 102,15,56,0,208\r
+ movdqa 16(%ebx),%xmm0\r
+.byte 102,15,56,0,193\r
+ pxor %xmm2,%xmm0\r
+ ret\r
+.size _vpaes_schedule_transform,.-_vpaes_schedule_transform\r
+.type _vpaes_schedule_mangle,@function\r
+.align 16\r
+_vpaes_schedule_mangle:\r
+ movdqa %xmm0,%xmm4\r
+ movdqa 128(%ebp),%xmm5\r
+ testl %edi,%edi\r
+ jnz .L014schedule_mangle_dec\r
+ addl $16,%edx\r
+ pxor 336(%ebp),%xmm4\r
+.byte 102,15,56,0,229\r
+ movdqa %xmm4,%xmm3\r
+.byte 102,15,56,0,229\r
+ pxor %xmm4,%xmm3\r
+.byte 102,15,56,0,229\r
+ pxor %xmm4,%xmm3\r
+ jmp .L015schedule_mangle_both\r
+.align 16\r
+.L014schedule_mangle_dec:\r
+ movdqa -16(%ebp),%xmm2\r
+ leal 416(%ebp),%esi\r
+ movdqa %xmm2,%xmm1\r
+ pandn %xmm4,%xmm1\r
+ psrld $4,%xmm1\r
+ pand %xmm2,%xmm4\r
+ movdqa (%esi),%xmm2\r
+.byte 102,15,56,0,212\r
+ movdqa 16(%esi),%xmm3\r
+.byte 102,15,56,0,217\r
+ pxor %xmm2,%xmm3\r
+.byte 102,15,56,0,221\r
+ movdqa 32(%esi),%xmm2\r
+.byte 102,15,56,0,212\r
+ pxor %xmm3,%xmm2\r
+ movdqa 48(%esi),%xmm3\r
+.byte 102,15,56,0,217\r
+ pxor %xmm2,%xmm3\r
+.byte 102,15,56,0,221\r
+ movdqa 64(%esi),%xmm2\r
+.byte 102,15,56,0,212\r
+ pxor %xmm3,%xmm2\r
+ movdqa 80(%esi),%xmm3\r
+.byte 102,15,56,0,217\r
+ pxor %xmm2,%xmm3\r
+.byte 102,15,56,0,221\r
+ movdqa 96(%esi),%xmm2\r
+.byte 102,15,56,0,212\r
+ pxor %xmm3,%xmm2\r
+ movdqa 112(%esi),%xmm3\r
+.byte 102,15,56,0,217\r
+ pxor %xmm2,%xmm3\r
+ addl $-16,%edx\r
+.L015schedule_mangle_both:\r
+ movdqa 256(%ebp,%ecx,1),%xmm1\r
+.byte 102,15,56,0,217\r
+ addl $-16,%ecx\r
+ andl $48,%ecx\r
+ movdqu %xmm3,(%edx)\r
+ ret\r
+.size _vpaes_schedule_mangle,.-_vpaes_schedule_mangle\r
+.globl vpaes_set_encrypt_key\r
+.type vpaes_set_encrypt_key,@function\r
+.align 16\r
+vpaes_set_encrypt_key:\r
+.L_vpaes_set_encrypt_key_begin:\r
+ pushl %ebp\r
+ pushl %ebx\r
+ pushl %esi\r
+ pushl %edi\r
+ movl 20(%esp),%esi\r
+ leal -56(%esp),%ebx\r
+ movl 24(%esp),%eax\r
+ andl $-16,%ebx\r
+ movl 28(%esp),%edx\r
+ xchgl %esp,%ebx\r
+ movl %ebx,48(%esp)\r
+ movl %eax,%ebx\r
+ shrl $5,%ebx\r
+ addl $5,%ebx\r
+ movl %ebx,240(%edx)\r
+ movl $48,%ecx\r
+ movl $0,%edi\r
+ leal .L_vpaes_consts+0x30-.L016pic_point,%ebp\r
+ call _vpaes_schedule_core\r
+.L016pic_point:\r
+ movl 48(%esp),%esp\r
+ xorl %eax,%eax\r
+ popl %edi\r
+ popl %esi\r
+ popl %ebx\r
+ popl %ebp\r
+ ret\r
+.size vpaes_set_encrypt_key,.-.L_vpaes_set_encrypt_key_begin\r
+.globl vpaes_set_decrypt_key\r
+.type vpaes_set_decrypt_key,@function\r
+.align 16\r
+vpaes_set_decrypt_key:\r
+.L_vpaes_set_decrypt_key_begin:\r
+ pushl %ebp\r
+ pushl %ebx\r
+ pushl %esi\r
+ pushl %edi\r
+ movl 20(%esp),%esi\r
+ leal -56(%esp),%ebx\r
+ movl 24(%esp),%eax\r
+ andl $-16,%ebx\r
+ movl 28(%esp),%edx\r
+ xchgl %esp,%ebx\r
+ movl %ebx,48(%esp)\r
+ movl %eax,%ebx\r
+ shrl $5,%ebx\r
+ addl $5,%ebx\r
+ movl %ebx,240(%edx)\r
+ shll $4,%ebx\r
+ leal 16(%edx,%ebx,1),%edx\r
+ movl $1,%edi\r
+ movl %eax,%ecx\r
+ shrl $1,%ecx\r
+ andl $32,%ecx\r
+ xorl $32,%ecx\r
+ leal .L_vpaes_consts+0x30-.L017pic_point,%ebp\r
+ call _vpaes_schedule_core\r
+.L017pic_point:\r
+ movl 48(%esp),%esp\r
+ xorl %eax,%eax\r
+ popl %edi\r
+ popl %esi\r
+ popl %ebx\r
+ popl %ebp\r
+ ret\r
+.size vpaes_set_decrypt_key,.-.L_vpaes_set_decrypt_key_begin\r
+.globl vpaes_encrypt\r
+.type vpaes_encrypt,@function\r
+.align 16\r
+vpaes_encrypt:\r
+.L_vpaes_encrypt_begin:\r
+ pushl %ebp\r
+ pushl %ebx\r
+ pushl %esi\r
+ pushl %edi\r
+ leal .L_vpaes_consts+0x30-.L018pic_point,%ebp\r
+ call _vpaes_preheat\r
+.L018pic_point:\r
+ movl 20(%esp),%esi\r
+ leal -56(%esp),%ebx\r
+ movl 24(%esp),%edi\r
+ andl $-16,%ebx\r
+ movl 28(%esp),%edx\r
+ xchgl %esp,%ebx\r
+ movl %ebx,48(%esp)\r
+ movdqu (%esi),%xmm0\r
+ call _vpaes_encrypt_core\r
+ movdqu %xmm0,(%edi)\r
+ movl 48(%esp),%esp\r
+ popl %edi\r
+ popl %esi\r
+ popl %ebx\r
+ popl %ebp\r
+ ret\r
+.size vpaes_encrypt,.-.L_vpaes_encrypt_begin\r
+.globl vpaes_decrypt\r
+.type vpaes_decrypt,@function\r
+.align 16\r
+vpaes_decrypt:\r
+.L_vpaes_decrypt_begin:\r
+ pushl %ebp\r
+ pushl %ebx\r
+ pushl %esi\r
+ pushl %edi\r
+ leal .L_vpaes_consts+0x30-.L019pic_point,%ebp\r
+ call _vpaes_preheat\r
+.L019pic_point:\r
+ movl 20(%esp),%esi\r
+ leal -56(%esp),%ebx\r
+ movl 24(%esp),%edi\r
+ andl $-16,%ebx\r
+ movl 28(%esp),%edx\r
+ xchgl %esp,%ebx\r
+ movl %ebx,48(%esp)\r
+ movdqu (%esi),%xmm0\r
+ call _vpaes_decrypt_core\r
+ movdqu %xmm0,(%edi)\r
+ movl 48(%esp),%esp\r
+ popl %edi\r
+ popl %esi\r
+ popl %ebx\r
+ popl %ebp\r
+ ret\r
+.size vpaes_decrypt,.-.L_vpaes_decrypt_begin\r
+.globl vpaes_cbc_encrypt\r
+.type vpaes_cbc_encrypt,@function\r
+.align 16\r
+vpaes_cbc_encrypt:\r
+.L_vpaes_cbc_encrypt_begin:\r
+ pushl %ebp\r
+ pushl %ebx\r
+ pushl %esi\r
+ pushl %edi\r
+ movl 20(%esp),%esi\r
+ movl 24(%esp),%edi\r
+ movl 28(%esp),%eax\r
+ movl 32(%esp),%edx\r
+ subl $16,%eax\r
+ jc .L020cbc_abort\r
+ leal -56(%esp),%ebx\r
+ movl 36(%esp),%ebp\r
+ andl $-16,%ebx\r
+ movl 40(%esp),%ecx\r
+ xchgl %esp,%ebx\r
+ movdqu (%ebp),%xmm1\r
+ subl %esi,%edi\r
+ movl %ebx,48(%esp)\r
+ movl %edi,(%esp)\r
+ movl %edx,4(%esp)\r
+ movl %ebp,8(%esp)\r
+ movl %eax,%edi\r
+ leal .L_vpaes_consts+0x30-.L021pic_point,%ebp\r
+ call _vpaes_preheat\r
+.L021pic_point:\r
+ cmpl $0,%ecx\r
+ je .L022cbc_dec_loop\r
+ jmp .L023cbc_enc_loop\r
+.align 16\r
+.L023cbc_enc_loop:\r
+ movdqu (%esi),%xmm0\r
+ pxor %xmm1,%xmm0\r
+ call _vpaes_encrypt_core\r
+ movl (%esp),%ebx\r
+ movl 4(%esp),%edx\r
+ movdqa %xmm0,%xmm1\r
+ movdqu %xmm0,(%ebx,%esi,1)\r
+ leal 16(%esi),%esi\r
+ subl $16,%edi\r
+ jnc .L023cbc_enc_loop\r
+ jmp .L024cbc_done\r
+.align 16\r
+.L022cbc_dec_loop:\r
+ movdqu (%esi),%xmm0\r
+ movdqa %xmm1,16(%esp)\r
+ movdqa %xmm0,32(%esp)\r
+ call _vpaes_decrypt_core\r
+ movl (%esp),%ebx\r
+ movl 4(%esp),%edx\r
+ pxor 16(%esp),%xmm0\r
+ movdqa 32(%esp),%xmm1\r
+ movdqu %xmm0,(%ebx,%esi,1)\r
+ leal 16(%esi),%esi\r
+ subl $16,%edi\r
+ jnc .L022cbc_dec_loop\r
+.L024cbc_done:\r
+ movl 8(%esp),%ebx\r
+ movl 48(%esp),%esp\r
+ movdqu %xmm1,(%ebx)\r
+.L020cbc_abort:\r
+ popl %edi\r
+ popl %esi\r
+ popl %ebx\r
+ popl %ebp\r
+ ret\r
+.size vpaes_cbc_encrypt,.-.L_vpaes_cbc_encrypt_begin\r
--- /dev/null
+# WARNING: do not edit!\r
+# Generated from openssl/crypto/modes/asm/ghash-x86.pl\r
+#\r
+# Copyright 2010-2020 The OpenSSL Project Authors. All Rights Reserved.\r
+#\r
+# Licensed under the OpenSSL license (the "License"). You may not use\r
+# this file except in compliance with the License. You can obtain a copy\r
+# in the file LICENSE in the source distribution or at\r
+# https://www.openssl.org/source/license.html\r
+\r
+.text\r
+.globl gcm_gmult_4bit_x86\r
+.type gcm_gmult_4bit_x86,@function\r
+.align 16\r
+gcm_gmult_4bit_x86:\r
+.L_gcm_gmult_4bit_x86_begin:\r
+ pushl %ebp\r
+ pushl %ebx\r
+ pushl %esi\r
+ pushl %edi\r
+ subl $84,%esp\r
+ movl 104(%esp),%edi\r
+ movl 108(%esp),%esi\r
+ movl (%edi),%ebp\r
+ movl 4(%edi),%edx\r
+ movl 8(%edi),%ecx\r
+ movl 12(%edi),%ebx\r
+ movl $0,16(%esp)\r
+ movl $471859200,20(%esp)\r
+ movl $943718400,24(%esp)\r
+ movl $610271232,28(%esp)\r
+ movl $1887436800,32(%esp)\r
+ movl $1822425088,36(%esp)\r
+ movl $1220542464,40(%esp)\r
+ movl $1423966208,44(%esp)\r
+ movl $3774873600,48(%esp)\r
+ movl $4246732800,52(%esp)\r
+ movl $3644850176,56(%esp)\r
+ movl $3311403008,60(%esp)\r
+ movl $2441084928,64(%esp)\r
+ movl $2376073216,68(%esp)\r
+ movl $2847932416,72(%esp)\r
+ movl $3051356160,76(%esp)\r
+ movl %ebp,(%esp)\r
+ movl %edx,4(%esp)\r
+ movl %ecx,8(%esp)\r
+ movl %ebx,12(%esp)\r
+ shrl $20,%ebx\r
+ andl $240,%ebx\r
+ movl 4(%esi,%ebx,1),%ebp\r
+ movl (%esi,%ebx,1),%edx\r
+ movl 12(%esi,%ebx,1),%ecx\r
+ movl 8(%esi,%ebx,1),%ebx\r
+ xorl %eax,%eax\r
+ movl $15,%edi\r
+ jmp .L000x86_loop\r
+.align 16\r
+.L000x86_loop:\r
+ movb %bl,%al\r
+ shrdl $4,%ecx,%ebx\r
+ andb $15,%al\r
+ shrdl $4,%edx,%ecx\r
+ shrdl $4,%ebp,%edx\r
+ shrl $4,%ebp\r
+ xorl 16(%esp,%eax,4),%ebp\r
+ movb (%esp,%edi,1),%al\r
+ andb $240,%al\r
+ xorl 8(%esi,%eax,1),%ebx\r
+ xorl 12(%esi,%eax,1),%ecx\r
+ xorl (%esi,%eax,1),%edx\r
+ xorl 4(%esi,%eax,1),%ebp\r
+ decl %edi\r
+ js .L001x86_break\r
+ movb %bl,%al\r
+ shrdl $4,%ecx,%ebx\r
+ andb $15,%al\r
+ shrdl $4,%edx,%ecx\r
+ shrdl $4,%ebp,%edx\r
+ shrl $4,%ebp\r
+ xorl 16(%esp,%eax,4),%ebp\r
+ movb (%esp,%edi,1),%al\r
+ shlb $4,%al\r
+ xorl 8(%esi,%eax,1),%ebx\r
+ xorl 12(%esi,%eax,1),%ecx\r
+ xorl (%esi,%eax,1),%edx\r
+ xorl 4(%esi,%eax,1),%ebp\r
+ jmp .L000x86_loop\r
+.align 16\r
+.L001x86_break:\r
+ bswap %ebx\r
+ bswap %ecx\r
+ bswap %edx\r
+ bswap %ebp\r
+ movl 104(%esp),%edi\r
+ movl %ebx,12(%edi)\r
+ movl %ecx,8(%edi)\r
+ movl %edx,4(%edi)\r
+ movl %ebp,(%edi)\r
+ addl $84,%esp\r
+ popl %edi\r
+ popl %esi\r
+ popl %ebx\r
+ popl %ebp\r
+ ret\r
+.size gcm_gmult_4bit_x86,.-.L_gcm_gmult_4bit_x86_begin\r
+.globl gcm_ghash_4bit_x86\r
+.type gcm_ghash_4bit_x86,@function\r
+.align 16\r
+gcm_ghash_4bit_x86:\r
+.L_gcm_ghash_4bit_x86_begin:\r
+ pushl %ebp\r
+ pushl %ebx\r
+ pushl %esi\r
+ pushl %edi\r
+ subl $84,%esp\r
+ movl 104(%esp),%ebx\r
+ movl 108(%esp),%esi\r
+ movl 112(%esp),%edi\r
+ movl 116(%esp),%ecx\r
+ addl %edi,%ecx\r
+ movl %ecx,116(%esp)\r
+ movl (%ebx),%ebp\r
+ movl 4(%ebx),%edx\r
+ movl 8(%ebx),%ecx\r
+ movl 12(%ebx),%ebx\r
+ movl $0,16(%esp)\r
+ movl $471859200,20(%esp)\r
+ movl $943718400,24(%esp)\r
+ movl $610271232,28(%esp)\r
+ movl $1887436800,32(%esp)\r
+ movl $1822425088,36(%esp)\r
+ movl $1220542464,40(%esp)\r
+ movl $1423966208,44(%esp)\r
+ movl $3774873600,48(%esp)\r
+ movl $4246732800,52(%esp)\r
+ movl $3644850176,56(%esp)\r
+ movl $3311403008,60(%esp)\r
+ movl $2441084928,64(%esp)\r
+ movl $2376073216,68(%esp)\r
+ movl $2847932416,72(%esp)\r
+ movl $3051356160,76(%esp)\r
+.align 16\r
+.L002x86_outer_loop:\r
+ xorl 12(%edi),%ebx\r
+ xorl 8(%edi),%ecx\r
+ xorl 4(%edi),%edx\r
+ xorl (%edi),%ebp\r
+ movl %ebx,12(%esp)\r
+ movl %ecx,8(%esp)\r
+ movl %edx,4(%esp)\r
+ movl %ebp,(%esp)\r
+ shrl $20,%ebx\r
+ andl $240,%ebx\r
+ movl 4(%esi,%ebx,1),%ebp\r
+ movl (%esi,%ebx,1),%edx\r
+ movl 12(%esi,%ebx,1),%ecx\r
+ movl 8(%esi,%ebx,1),%ebx\r
+ xorl %eax,%eax\r
+ movl $15,%edi\r
+ jmp .L003x86_loop\r
+.align 16\r
+.L003x86_loop:\r
+ movb %bl,%al\r
+ shrdl $4,%ecx,%ebx\r
+ andb $15,%al\r
+ shrdl $4,%edx,%ecx\r
+ shrdl $4,%ebp,%edx\r
+ shrl $4,%ebp\r
+ xorl 16(%esp,%eax,4),%ebp\r
+ movb (%esp,%edi,1),%al\r
+ andb $240,%al\r
+ xorl 8(%esi,%eax,1),%ebx\r
+ xorl 12(%esi,%eax,1),%ecx\r
+ xorl (%esi,%eax,1),%edx\r
+ xorl 4(%esi,%eax,1),%ebp\r
+ decl %edi\r
+ js .L004x86_break\r
+ movb %bl,%al\r
+ shrdl $4,%ecx,%ebx\r
+ andb $15,%al\r
+ shrdl $4,%edx,%ecx\r
+ shrdl $4,%ebp,%edx\r
+ shrl $4,%ebp\r
+ xorl 16(%esp,%eax,4),%ebp\r
+ movb (%esp,%edi,1),%al\r
+ shlb $4,%al\r
+ xorl 8(%esi,%eax,1),%ebx\r
+ xorl 12(%esi,%eax,1),%ecx\r
+ xorl (%esi,%eax,1),%edx\r
+ xorl 4(%esi,%eax,1),%ebp\r
+ jmp .L003x86_loop\r
+.align 16\r
+.L004x86_break:\r
+ bswap %ebx\r
+ bswap %ecx\r
+ bswap %edx\r
+ bswap %ebp\r
+ movl 112(%esp),%edi\r
+ leal 16(%edi),%edi\r
+ cmpl 116(%esp),%edi\r
+ movl %edi,112(%esp)\r
+ jb .L002x86_outer_loop\r
+ movl 104(%esp),%edi\r
+ movl %ebx,12(%edi)\r
+ movl %ecx,8(%edi)\r
+ movl %edx,4(%edi)\r
+ movl %ebp,(%edi)\r
+ addl $84,%esp\r
+ popl %edi\r
+ popl %esi\r
+ popl %ebx\r
+ popl %ebp\r
+ ret\r
+.size gcm_ghash_4bit_x86,.-.L_gcm_ghash_4bit_x86_begin\r
+.type _mmx_gmult_4bit_inner,@function\r
+.align 16\r
+_mmx_gmult_4bit_inner:\r
+ xorl %ecx,%ecx\r
+ movl %ebx,%edx\r
+ movb %dl,%cl\r
+ shlb $4,%cl\r
+ andl $240,%edx\r
+ movq 8(%esi,%ecx,1),%mm0\r
+ movq (%esi,%ecx,1),%mm1\r
+ movd %mm0,%ebp\r
+ psrlq $4,%mm0\r
+ movq %mm1,%mm2\r
+ psrlq $4,%mm1\r
+ pxor 8(%esi,%edx,1),%mm0\r
+ movb 14(%edi),%cl\r
+ psllq $60,%mm2\r
+ andl $15,%ebp\r
+ pxor (%esi,%edx,1),%mm1\r
+ movl %ecx,%edx\r
+ movd %mm0,%ebx\r
+ pxor %mm2,%mm0\r
+ shlb $4,%cl\r
+ psrlq $4,%mm0\r
+ movq %mm1,%mm2\r
+ psrlq $4,%mm1\r
+ pxor 8(%esi,%ecx,1),%mm0\r
+ psllq $60,%mm2\r
+ andl $240,%edx\r
+ pxor (%eax,%ebp,8),%mm1\r
+ andl $15,%ebx\r
+ pxor (%esi,%ecx,1),%mm1\r
+ movd %mm0,%ebp\r
+ pxor %mm2,%mm0\r
+ psrlq $4,%mm0\r
+ movq %mm1,%mm2\r
+ psrlq $4,%mm1\r
+ pxor 8(%esi,%edx,1),%mm0\r
+ movb 13(%edi),%cl\r
+ psllq $60,%mm2\r
+ pxor (%eax,%ebx,8),%mm1\r
+ andl $15,%ebp\r
+ pxor (%esi,%edx,1),%mm1\r
+ movl %ecx,%edx\r
+ movd %mm0,%ebx\r
+ pxor %mm2,%mm0\r
+ shlb $4,%cl\r
+ psrlq $4,%mm0\r
+ movq %mm1,%mm2\r
+ psrlq $4,%mm1\r
+ pxor 8(%esi,%ecx,1),%mm0\r
+ psllq $60,%mm2\r
+ andl $240,%edx\r
+ pxor (%eax,%ebp,8),%mm1\r
+ andl $15,%ebx\r
+ pxor (%esi,%ecx,1),%mm1\r
+ movd %mm0,%ebp\r
+ pxor %mm2,%mm0\r
+ psrlq $4,%mm0\r
+ movq %mm1,%mm2\r
+ psrlq $4,%mm1\r
+ pxor 8(%esi,%edx,1),%mm0\r
+ movb 12(%edi),%cl\r
+ psllq $60,%mm2\r
+ pxor (%eax,%ebx,8),%mm1\r
+ andl $15,%ebp\r
+ pxor (%esi,%edx,1),%mm1\r
+ movl %ecx,%edx\r
+ movd %mm0,%ebx\r
+ pxor %mm2,%mm0\r
+ shlb $4,%cl\r
+ psrlq $4,%mm0\r
+ movq %mm1,%mm2\r
+ psrlq $4,%mm1\r
+ pxor 8(%esi,%ecx,1),%mm0\r
+ psllq $60,%mm2\r
+ andl $240,%edx\r
+ pxor (%eax,%ebp,8),%mm1\r
+ andl $15,%ebx\r
+ pxor (%esi,%ecx,1),%mm1\r
+ movd %mm0,%ebp\r
+ pxor %mm2,%mm0\r
+ psrlq $4,%mm0\r
+ movq %mm1,%mm2\r
+ psrlq $4,%mm1\r
+ pxor 8(%esi,%edx,1),%mm0\r
+ movb 11(%edi),%cl\r
+ psllq $60,%mm2\r
+ pxor (%eax,%ebx,8),%mm1\r
+ andl $15,%ebp\r
+ pxor (%esi,%edx,1),%mm1\r
+ movl %ecx,%edx\r
+ movd %mm0,%ebx\r
+ pxor %mm2,%mm0\r
+ shlb $4,%cl\r
+ psrlq $4,%mm0\r
+ movq %mm1,%mm2\r
+ psrlq $4,%mm1\r
+ pxor 8(%esi,%ecx,1),%mm0\r
+ psllq $60,%mm2\r
+ andl $240,%edx\r
+ pxor (%eax,%ebp,8),%mm1\r
+ andl $15,%ebx\r
+ pxor (%esi,%ecx,1),%mm1\r
+ movd %mm0,%ebp\r
+ pxor %mm2,%mm0\r
+ psrlq $4,%mm0\r
+ movq %mm1,%mm2\r
+ psrlq $4,%mm1\r
+ pxor 8(%esi,%edx,1),%mm0\r
+ movb 10(%edi),%cl\r
+ psllq $60,%mm2\r
+ pxor (%eax,%ebx,8),%mm1\r
+ andl $15,%ebp\r
+ pxor (%esi,%edx,1),%mm1\r
+ movl %ecx,%edx\r
+ movd %mm0,%ebx\r
+ pxor %mm2,%mm0\r
+ shlb $4,%cl\r
+ psrlq $4,%mm0\r
+ movq %mm1,%mm2\r
+ psrlq $4,%mm1\r
+ pxor 8(%esi,%ecx,1),%mm0\r
+ psllq $60,%mm2\r
+ andl $240,%edx\r
+ pxor (%eax,%ebp,8),%mm1\r
+ andl $15,%ebx\r
+ pxor (%esi,%ecx,1),%mm1\r
+ movd %mm0,%ebp\r
+ pxor %mm2,%mm0\r
+ psrlq $4,%mm0\r
+ movq %mm1,%mm2\r
+ psrlq $4,%mm1\r
+ pxor 8(%esi,%edx,1),%mm0\r
+ movb 9(%edi),%cl\r
+ psllq $60,%mm2\r
+ pxor (%eax,%ebx,8),%mm1\r
+ andl $15,%ebp\r
+ pxor (%esi,%edx,1),%mm1\r
+ movl %ecx,%edx\r
+ movd %mm0,%ebx\r
+ pxor %mm2,%mm0\r
+ shlb $4,%cl\r
+ psrlq $4,%mm0\r
+ movq %mm1,%mm2\r
+ psrlq $4,%mm1\r
+ pxor 8(%esi,%ecx,1),%mm0\r
+ psllq $60,%mm2\r
+ andl $240,%edx\r
+ pxor (%eax,%ebp,8),%mm1\r
+ andl $15,%ebx\r
+ pxor (%esi,%ecx,1),%mm1\r
+ movd %mm0,%ebp\r
+ pxor %mm2,%mm0\r
+ psrlq $4,%mm0\r
+ movq %mm1,%mm2\r
+ psrlq $4,%mm1\r
+ pxor 8(%esi,%edx,1),%mm0\r
+ movb 8(%edi),%cl\r
+ psllq $60,%mm2\r
+ pxor (%eax,%ebx,8),%mm1\r
+ andl $15,%ebp\r
+ pxor (%esi,%edx,1),%mm1\r
+ movl %ecx,%edx\r
+ movd %mm0,%ebx\r
+ pxor %mm2,%mm0\r
+ shlb $4,%cl\r
+ psrlq $4,%mm0\r
+ movq %mm1,%mm2\r
+ psrlq $4,%mm1\r
+ pxor 8(%esi,%ecx,1),%mm0\r
+ psllq $60,%mm2\r
+ andl $240,%edx\r
+ pxor (%eax,%ebp,8),%mm1\r
+ andl $15,%ebx\r
+ pxor (%esi,%ecx,1),%mm1\r
+ movd %mm0,%ebp\r
+ pxor %mm2,%mm0\r
+ psrlq $4,%mm0\r
+ movq %mm1,%mm2\r
+ psrlq $4,%mm1\r
+ pxor 8(%esi,%edx,1),%mm0\r
+ movb 7(%edi),%cl\r
+ psllq $60,%mm2\r
+ pxor (%eax,%ebx,8),%mm1\r
+ andl $15,%ebp\r
+ pxor (%esi,%edx,1),%mm1\r
+ movl %ecx,%edx\r
+ movd %mm0,%ebx\r
+ pxor %mm2,%mm0\r
+ shlb $4,%cl\r
+ psrlq $4,%mm0\r
+ movq %mm1,%mm2\r
+ psrlq $4,%mm1\r
+ pxor 8(%esi,%ecx,1),%mm0\r
+ psllq $60,%mm2\r
+ andl $240,%edx\r
+ pxor (%eax,%ebp,8),%mm1\r
+ andl $15,%ebx\r
+ pxor (%esi,%ecx,1),%mm1\r
+ movd %mm0,%ebp\r
+ pxor %mm2,%mm0\r
+ psrlq $4,%mm0\r
+ movq %mm1,%mm2\r
+ psrlq $4,%mm1\r
+ pxor 8(%esi,%edx,1),%mm0\r
+ movb 6(%edi),%cl\r
+ psllq $60,%mm2\r
+ pxor (%eax,%ebx,8),%mm1\r
+ andl $15,%ebp\r
+ pxor (%esi,%edx,1),%mm1\r
+ movl %ecx,%edx\r
+ movd %mm0,%ebx\r
+ pxor %mm2,%mm0\r
+ shlb $4,%cl\r
+ psrlq $4,%mm0\r
+ movq %mm1,%mm2\r
+ psrlq $4,%mm1\r
+ pxor 8(%esi,%ecx,1),%mm0\r
+ psllq $60,%mm2\r
+ andl $240,%edx\r
+ pxor (%eax,%ebp,8),%mm1\r
+ andl $15,%ebx\r
+ pxor (%esi,%ecx,1),%mm1\r
+ movd %mm0,%ebp\r
+ pxor %mm2,%mm0\r
+ psrlq $4,%mm0\r
+ movq %mm1,%mm2\r
+ psrlq $4,%mm1\r
+ pxor 8(%esi,%edx,1),%mm0\r
+ movb 5(%edi),%cl\r
+ psllq $60,%mm2\r
+ pxor (%eax,%ebx,8),%mm1\r
+ andl $15,%ebp\r
+ pxor (%esi,%edx,1),%mm1\r
+ movl %ecx,%edx\r
+ movd %mm0,%ebx\r
+ pxor %mm2,%mm0\r
+ shlb $4,%cl\r
+ psrlq $4,%mm0\r
+ movq %mm1,%mm2\r
+ psrlq $4,%mm1\r
+ pxor 8(%esi,%ecx,1),%mm0\r
+ psllq $60,%mm2\r
+ andl $240,%edx\r
+ pxor (%eax,%ebp,8),%mm1\r
+ andl $15,%ebx\r
+ pxor (%esi,%ecx,1),%mm1\r
+ movd %mm0,%ebp\r
+ pxor %mm2,%mm0\r
+ psrlq $4,%mm0\r
+ movq %mm1,%mm2\r
+ psrlq $4,%mm1\r
+ pxor 8(%esi,%edx,1),%mm0\r
+ movb 4(%edi),%cl\r
+ psllq $60,%mm2\r
+ pxor (%eax,%ebx,8),%mm1\r
+ andl $15,%ebp\r
+ pxor (%esi,%edx,1),%mm1\r
+ movl %ecx,%edx\r
+ movd %mm0,%ebx\r
+ pxor %mm2,%mm0\r
+ shlb $4,%cl\r
+ psrlq $4,%mm0\r
+ movq %mm1,%mm2\r
+ psrlq $4,%mm1\r
+ pxor 8(%esi,%ecx,1),%mm0\r
+ psllq $60,%mm2\r
+ andl $240,%edx\r
+ pxor (%eax,%ebp,8),%mm1\r
+ andl $15,%ebx\r
+ pxor (%esi,%ecx,1),%mm1\r
+ movd %mm0,%ebp\r
+ pxor %mm2,%mm0\r
+ psrlq $4,%mm0\r
+ movq %mm1,%mm2\r
+ psrlq $4,%mm1\r
+ pxor 8(%esi,%edx,1),%mm0\r
+ movb 3(%edi),%cl\r
+ psllq $60,%mm2\r
+ pxor (%eax,%ebx,8),%mm1\r
+ andl $15,%ebp\r
+ pxor (%esi,%edx,1),%mm1\r
+ movl %ecx,%edx\r
+ movd %mm0,%ebx\r
+ pxor %mm2,%mm0\r
+ shlb $4,%cl\r
+ psrlq $4,%mm0\r
+ movq %mm1,%mm2\r
+ psrlq $4,%mm1\r
+ pxor 8(%esi,%ecx,1),%mm0\r
+ psllq $60,%mm2\r
+ andl $240,%edx\r
+ pxor (%eax,%ebp,8),%mm1\r
+ andl $15,%ebx\r
+ pxor (%esi,%ecx,1),%mm1\r
+ movd %mm0,%ebp\r
+ pxor %mm2,%mm0\r
+ psrlq $4,%mm0\r
+ movq %mm1,%mm2\r
+ psrlq $4,%mm1\r
+ pxor 8(%esi,%edx,1),%mm0\r
+ movb 2(%edi),%cl\r
+ psllq $60,%mm2\r
+ pxor (%eax,%ebx,8),%mm1\r
+ andl $15,%ebp\r
+ pxor (%esi,%edx,1),%mm1\r
+ movl %ecx,%edx\r
+ movd %mm0,%ebx\r
+ pxor %mm2,%mm0\r
+ shlb $4,%cl\r
+ psrlq $4,%mm0\r
+ movq %mm1,%mm2\r
+ psrlq $4,%mm1\r
+ pxor 8(%esi,%ecx,1),%mm0\r
+ psllq $60,%mm2\r
+ andl $240,%edx\r
+ pxor (%eax,%ebp,8),%mm1\r
+ andl $15,%ebx\r
+ pxor (%esi,%ecx,1),%mm1\r
+ movd %mm0,%ebp\r
+ pxor %mm2,%mm0\r
+ psrlq $4,%mm0\r
+ movq %mm1,%mm2\r
+ psrlq $4,%mm1\r
+ pxor 8(%esi,%edx,1),%mm0\r
+ movb 1(%edi),%cl\r
+ psllq $60,%mm2\r
+ pxor (%eax,%ebx,8),%mm1\r
+ andl $15,%ebp\r
+ pxor (%esi,%edx,1),%mm1\r
+ movl %ecx,%edx\r
+ movd %mm0,%ebx\r
+ pxor %mm2,%mm0\r
+ shlb $4,%cl\r
+ psrlq $4,%mm0\r
+ movq %mm1,%mm2\r
+ psrlq $4,%mm1\r
+ pxor 8(%esi,%ecx,1),%mm0\r
+ psllq $60,%mm2\r
+ andl $240,%edx\r
+ pxor (%eax,%ebp,8),%mm1\r
+ andl $15,%ebx\r
+ pxor (%esi,%ecx,1),%mm1\r
+ movd %mm0,%ebp\r
+ pxor %mm2,%mm0\r
+ psrlq $4,%mm0\r
+ movq %mm1,%mm2\r
+ psrlq $4,%mm1\r
+ pxor 8(%esi,%edx,1),%mm0\r
+ movb (%edi),%cl\r
+ psllq $60,%mm2\r
+ pxor (%eax,%ebx,8),%mm1\r
+ andl $15,%ebp\r
+ pxor (%esi,%edx,1),%mm1\r
+ movl %ecx,%edx\r
+ movd %mm0,%ebx\r
+ pxor %mm2,%mm0\r
+ shlb $4,%cl\r
+ psrlq $4,%mm0\r
+ movq %mm1,%mm2\r
+ psrlq $4,%mm1\r
+ pxor 8(%esi,%ecx,1),%mm0\r
+ psllq $60,%mm2\r
+ andl $240,%edx\r
+ pxor (%eax,%ebp,8),%mm1\r
+ andl $15,%ebx\r
+ pxor (%esi,%ecx,1),%mm1\r
+ movd %mm0,%ebp\r
+ pxor %mm2,%mm0\r
+ psrlq $4,%mm0\r
+ movq %mm1,%mm2\r
+ psrlq $4,%mm1\r
+ pxor 8(%esi,%edx,1),%mm0\r
+ psllq $60,%mm2\r
+ pxor (%eax,%ebx,8),%mm1\r
+ andl $15,%ebp\r
+ pxor (%esi,%edx,1),%mm1\r
+ movd %mm0,%ebx\r
+ pxor %mm2,%mm0\r
+ movl 4(%eax,%ebp,8),%edi\r
+ psrlq $32,%mm0\r
+ movd %mm1,%edx\r
+ psrlq $32,%mm1\r
+ movd %mm0,%ecx\r
+ movd %mm1,%ebp\r
+ shll $4,%edi\r
+ bswap %ebx\r
+ bswap %edx\r
+ bswap %ecx\r
+ xorl %edi,%ebp\r
+ bswap %ebp\r
+ ret\r
+.size _mmx_gmult_4bit_inner,.-_mmx_gmult_4bit_inner\r
+.globl gcm_gmult_4bit_mmx\r
+.type gcm_gmult_4bit_mmx,@function\r
+.align 16\r
+gcm_gmult_4bit_mmx:\r
+.L_gcm_gmult_4bit_mmx_begin:\r
+ pushl %ebp\r
+ pushl %ebx\r
+ pushl %esi\r
+ pushl %edi\r
+ movl 20(%esp),%edi\r
+ movl 24(%esp),%esi\r
+ call .L005pic_point\r
+.L005pic_point:\r
+ popl %eax\r
+ leal .Lrem_4bit-.L005pic_point(%eax),%eax\r
+ movzbl 15(%edi),%ebx\r
+ call _mmx_gmult_4bit_inner\r
+ movl 20(%esp),%edi\r
+ emms\r
+ movl %ebx,12(%edi)\r
+ movl %edx,4(%edi)\r
+ movl %ecx,8(%edi)\r
+ movl %ebp,(%edi)\r
+ popl %edi\r
+ popl %esi\r
+ popl %ebx\r
+ popl %ebp\r
+ ret\r
+.size gcm_gmult_4bit_mmx,.-.L_gcm_gmult_4bit_mmx_begin\r
+.globl gcm_ghash_4bit_mmx\r
+.type gcm_ghash_4bit_mmx,@function\r
+.align 16\r
+gcm_ghash_4bit_mmx:\r
+.L_gcm_ghash_4bit_mmx_begin:\r
+ pushl %ebp\r
+ pushl %ebx\r
+ pushl %esi\r
+ pushl %edi\r
+ movl 20(%esp),%ebp\r
+ movl 24(%esp),%esi\r
+ movl 28(%esp),%edi\r
+ movl 32(%esp),%ecx\r
+ call .L006pic_point\r
+.L006pic_point:\r
+ popl %eax\r
+ leal .Lrem_4bit-.L006pic_point(%eax),%eax\r
+ addl %edi,%ecx\r
+ movl %ecx,32(%esp)\r
+ subl $20,%esp\r
+ movl 12(%ebp),%ebx\r
+ movl 4(%ebp),%edx\r
+ movl 8(%ebp),%ecx\r
+ movl (%ebp),%ebp\r
+ jmp .L007mmx_outer_loop\r
+.align 16\r
+.L007mmx_outer_loop:\r
+ xorl 12(%edi),%ebx\r
+ xorl 4(%edi),%edx\r
+ xorl 8(%edi),%ecx\r
+ xorl (%edi),%ebp\r
+ movl %edi,48(%esp)\r
+ movl %ebx,12(%esp)\r
+ movl %edx,4(%esp)\r
+ movl %ecx,8(%esp)\r
+ movl %ebp,(%esp)\r
+ movl %esp,%edi\r
+ shrl $24,%ebx\r
+ call _mmx_gmult_4bit_inner\r
+ movl 48(%esp),%edi\r
+ leal 16(%edi),%edi\r
+ cmpl 52(%esp),%edi\r
+ jb .L007mmx_outer_loop\r
+ movl 40(%esp),%edi\r
+ emms\r
+ movl %ebx,12(%edi)\r
+ movl %edx,4(%edi)\r
+ movl %ecx,8(%edi)\r
+ movl %ebp,(%edi)\r
+ addl $20,%esp\r
+ popl %edi\r
+ popl %esi\r
+ popl %ebx\r
+ popl %ebp\r
+ ret\r
+.size gcm_ghash_4bit_mmx,.-.L_gcm_ghash_4bit_mmx_begin\r
+.align 64\r
+.Lrem_4bit:\r
+.long 0,0,0,29491200,0,58982400,0,38141952\r
+.long 0,117964800,0,113901568,0,76283904,0,88997888\r
+.long 0,235929600,0,265420800,0,227803136,0,206962688\r
+.long 0,152567808,0,148504576,0,177995776,0,190709760\r
+.byte 71,72,65,83,72,32,102,111,114,32,120,56,54,44,32,67\r
+.byte 82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112\r
+.byte 112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62\r
+.byte 0\r
--- /dev/null
+# WARNING: do not edit!\r
+# Generated from openssl/crypto/sha/asm/sha1-586.pl\r
+#\r
+# Copyright 1998-2020 The OpenSSL Project Authors. All Rights Reserved.\r
+#\r
+# Licensed under the OpenSSL license (the "License"). You may not use\r
+# this file except in compliance with the License. You can obtain a copy\r
+# in the file LICENSE in the source distribution or at\r
+# https://www.openssl.org/source/license.html\r
+\r
+.text\r
+.globl sha1_block_data_order\r
+.type sha1_block_data_order,@function\r
+.align 16\r
+sha1_block_data_order:\r
+.L_sha1_block_data_order_begin:\r
+ pushl %ebp\r
+ pushl %ebx\r
+ pushl %esi\r
+ pushl %edi\r
+ movl 20(%esp),%ebp\r
+ movl 24(%esp),%esi\r
+ movl 28(%esp),%eax\r
+ subl $76,%esp\r
+ shll $6,%eax\r
+ addl %esi,%eax\r
+ movl %eax,104(%esp)\r
+ movl 16(%ebp),%edi\r
+ jmp .L000loop\r
+.align 16\r
+.L000loop:\r
+ movl (%esi),%eax\r
+ movl 4(%esi),%ebx\r
+ movl 8(%esi),%ecx\r
+ movl 12(%esi),%edx\r
+ bswap %eax\r
+ bswap %ebx\r
+ bswap %ecx\r
+ bswap %edx\r
+ movl %eax,(%esp)\r
+ movl %ebx,4(%esp)\r
+ movl %ecx,8(%esp)\r
+ movl %edx,12(%esp)\r
+ movl 16(%esi),%eax\r
+ movl 20(%esi),%ebx\r
+ movl 24(%esi),%ecx\r
+ movl 28(%esi),%edx\r
+ bswap %eax\r
+ bswap %ebx\r
+ bswap %ecx\r
+ bswap %edx\r
+ movl %eax,16(%esp)\r
+ movl %ebx,20(%esp)\r
+ movl %ecx,24(%esp)\r
+ movl %edx,28(%esp)\r
+ movl 32(%esi),%eax\r
+ movl 36(%esi),%ebx\r
+ movl 40(%esi),%ecx\r
+ movl 44(%esi),%edx\r
+ bswap %eax\r
+ bswap %ebx\r
+ bswap %ecx\r
+ bswap %edx\r
+ movl %eax,32(%esp)\r
+ movl %ebx,36(%esp)\r
+ movl %ecx,40(%esp)\r
+ movl %edx,44(%esp)\r
+ movl 48(%esi),%eax\r
+ movl 52(%esi),%ebx\r
+ movl 56(%esi),%ecx\r
+ movl 60(%esi),%edx\r
+ bswap %eax\r
+ bswap %ebx\r
+ bswap %ecx\r
+ bswap %edx\r
+ movl %eax,48(%esp)\r
+ movl %ebx,52(%esp)\r
+ movl %ecx,56(%esp)\r
+ movl %edx,60(%esp)\r
+ movl %esi,100(%esp)\r
+ movl (%ebp),%eax\r
+ movl 4(%ebp),%ebx\r
+ movl 8(%ebp),%ecx\r
+ movl 12(%ebp),%edx\r
+\r
+ movl %ecx,%esi\r
+ movl %eax,%ebp\r
+ roll $5,%ebp\r
+ xorl %edx,%esi\r
+ addl %edi,%ebp\r
+ movl (%esp),%edi\r
+ andl %ebx,%esi\r
+ rorl $2,%ebx\r
+ xorl %edx,%esi\r
+ leal 1518500249(%ebp,%edi,1),%ebp\r
+ addl %esi,%ebp\r
+\r
+ movl %ebx,%edi\r
+ movl %ebp,%esi\r
+ roll $5,%ebp\r
+ xorl %ecx,%edi\r
+ addl %edx,%ebp\r
+ movl 4(%esp),%edx\r
+ andl %eax,%edi\r
+ rorl $2,%eax\r
+ xorl %ecx,%edi\r
+ leal 1518500249(%ebp,%edx,1),%ebp\r
+ addl %edi,%ebp\r
+\r
+ movl %eax,%edx\r
+ movl %ebp,%edi\r
+ roll $5,%ebp\r
+ xorl %ebx,%edx\r
+ addl %ecx,%ebp\r
+ movl 8(%esp),%ecx\r
+ andl %esi,%edx\r
+ rorl $2,%esi\r
+ xorl %ebx,%edx\r
+ leal 1518500249(%ebp,%ecx,1),%ebp\r
+ addl %edx,%ebp\r
+\r
+ movl %esi,%ecx\r
+ movl %ebp,%edx\r
+ roll $5,%ebp\r
+ xorl %eax,%ecx\r
+ addl %ebx,%ebp\r
+ movl 12(%esp),%ebx\r
+ andl %edi,%ecx\r
+ rorl $2,%edi\r
+ xorl %eax,%ecx\r
+ leal 1518500249(%ebp,%ebx,1),%ebp\r
+ addl %ecx,%ebp\r
+\r
+ movl %edi,%ebx\r
+ movl %ebp,%ecx\r
+ roll $5,%ebp\r
+ xorl %esi,%ebx\r
+ addl %eax,%ebp\r
+ movl 16(%esp),%eax\r
+ andl %edx,%ebx\r
+ rorl $2,%edx\r
+ xorl %esi,%ebx\r
+ leal 1518500249(%ebp,%eax,1),%ebp\r
+ addl %ebx,%ebp\r
+\r
+ movl %edx,%eax\r
+ movl %ebp,%ebx\r
+ roll $5,%ebp\r
+ xorl %edi,%eax\r
+ addl %esi,%ebp\r
+ movl 20(%esp),%esi\r
+ andl %ecx,%eax\r
+ rorl $2,%ecx\r
+ xorl %edi,%eax\r
+ leal 1518500249(%ebp,%esi,1),%ebp\r
+ addl %eax,%ebp\r
+\r
+ movl %ecx,%esi\r
+ movl %ebp,%eax\r
+ roll $5,%ebp\r
+ xorl %edx,%esi\r
+ addl %edi,%ebp\r
+ movl 24(%esp),%edi\r
+ andl %ebx,%esi\r
+ rorl $2,%ebx\r
+ xorl %edx,%esi\r
+ leal 1518500249(%ebp,%edi,1),%ebp\r
+ addl %esi,%ebp\r
+\r
+ movl %ebx,%edi\r
+ movl %ebp,%esi\r
+ roll $5,%ebp\r
+ xorl %ecx,%edi\r
+ addl %edx,%ebp\r
+ movl 28(%esp),%edx\r
+ andl %eax,%edi\r
+ rorl $2,%eax\r
+ xorl %ecx,%edi\r
+ leal 1518500249(%ebp,%edx,1),%ebp\r
+ addl %edi,%ebp\r
+\r
+ movl %eax,%edx\r
+ movl %ebp,%edi\r
+ roll $5,%ebp\r
+ xorl %ebx,%edx\r
+ addl %ecx,%ebp\r
+ movl 32(%esp),%ecx\r
+ andl %esi,%edx\r
+ rorl $2,%esi\r
+ xorl %ebx,%edx\r
+ leal 1518500249(%ebp,%ecx,1),%ebp\r
+ addl %edx,%ebp\r
+\r
+ movl %esi,%ecx\r
+ movl %ebp,%edx\r
+ roll $5,%ebp\r
+ xorl %eax,%ecx\r
+ addl %ebx,%ebp\r
+ movl 36(%esp),%ebx\r
+ andl %edi,%ecx\r
+ rorl $2,%edi\r
+ xorl %eax,%ecx\r
+ leal 1518500249(%ebp,%ebx,1),%ebp\r
+ addl %ecx,%ebp\r
+\r
+ movl %edi,%ebx\r
+ movl %ebp,%ecx\r
+ roll $5,%ebp\r
+ xorl %esi,%ebx\r
+ addl %eax,%ebp\r
+ movl 40(%esp),%eax\r
+ andl %edx,%ebx\r
+ rorl $2,%edx\r
+ xorl %esi,%ebx\r
+ leal 1518500249(%ebp,%eax,1),%ebp\r
+ addl %ebx,%ebp\r
+\r
+ movl %edx,%eax\r
+ movl %ebp,%ebx\r
+ roll $5,%ebp\r
+ xorl %edi,%eax\r
+ addl %esi,%ebp\r
+ movl 44(%esp),%esi\r
+ andl %ecx,%eax\r
+ rorl $2,%ecx\r
+ xorl %edi,%eax\r
+ leal 1518500249(%ebp,%esi,1),%ebp\r
+ addl %eax,%ebp\r
+\r
+ movl %ecx,%esi\r
+ movl %ebp,%eax\r
+ roll $5,%ebp\r
+ xorl %edx,%esi\r
+ addl %edi,%ebp\r
+ movl 48(%esp),%edi\r
+ andl %ebx,%esi\r
+ rorl $2,%ebx\r
+ xorl %edx,%esi\r
+ leal 1518500249(%ebp,%edi,1),%ebp\r
+ addl %esi,%ebp\r
+\r
+ movl %ebx,%edi\r
+ movl %ebp,%esi\r
+ roll $5,%ebp\r
+ xorl %ecx,%edi\r
+ addl %edx,%ebp\r
+ movl 52(%esp),%edx\r
+ andl %eax,%edi\r
+ rorl $2,%eax\r
+ xorl %ecx,%edi\r
+ leal 1518500249(%ebp,%edx,1),%ebp\r
+ addl %edi,%ebp\r
+\r
+ movl %eax,%edx\r
+ movl %ebp,%edi\r
+ roll $5,%ebp\r
+ xorl %ebx,%edx\r
+ addl %ecx,%ebp\r
+ movl 56(%esp),%ecx\r
+ andl %esi,%edx\r
+ rorl $2,%esi\r
+ xorl %ebx,%edx\r
+ leal 1518500249(%ebp,%ecx,1),%ebp\r
+ addl %edx,%ebp\r
+\r
+ movl %esi,%ecx\r
+ movl %ebp,%edx\r
+ roll $5,%ebp\r
+ xorl %eax,%ecx\r
+ addl %ebx,%ebp\r
+ movl 60(%esp),%ebx\r
+ andl %edi,%ecx\r
+ rorl $2,%edi\r
+ xorl %eax,%ecx\r
+ leal 1518500249(%ebp,%ebx,1),%ebp\r
+ movl (%esp),%ebx\r
+ addl %ebp,%ecx\r
+\r
+ movl %edi,%ebp\r
+ xorl 8(%esp),%ebx\r
+ xorl %esi,%ebp\r
+ xorl 32(%esp),%ebx\r
+ andl %edx,%ebp\r
+ xorl 52(%esp),%ebx\r
+ roll $1,%ebx\r
+ xorl %esi,%ebp\r
+ addl %ebp,%eax\r
+ movl %ecx,%ebp\r
+ rorl $2,%edx\r
+ movl %ebx,(%esp)\r
+ roll $5,%ebp\r
+ leal 1518500249(%ebx,%eax,1),%ebx\r
+ movl 4(%esp),%eax\r
+ addl %ebp,%ebx\r
+\r
+ movl %edx,%ebp\r
+ xorl 12(%esp),%eax\r
+ xorl %edi,%ebp\r
+ xorl 36(%esp),%eax\r
+ andl %ecx,%ebp\r
+ xorl 56(%esp),%eax\r
+ roll $1,%eax\r
+ xorl %edi,%ebp\r
+ addl %ebp,%esi\r
+ movl %ebx,%ebp\r
+ rorl $2,%ecx\r
+ movl %eax,4(%esp)\r
+ roll $5,%ebp\r
+ leal 1518500249(%eax,%esi,1),%eax\r
+ movl 8(%esp),%esi\r
+ addl %ebp,%eax\r
+\r
+ movl %ecx,%ebp\r
+ xorl 16(%esp),%esi\r
+ xorl %edx,%ebp\r
+ xorl 40(%esp),%esi\r
+ andl %ebx,%ebp\r
+ xorl 60(%esp),%esi\r
+ roll $1,%esi\r
+ xorl %edx,%ebp\r
+ addl %ebp,%edi\r
+ movl %eax,%ebp\r
+ rorl $2,%ebx\r
+ movl %esi,8(%esp)\r
+ roll $5,%ebp\r
+ leal 1518500249(%esi,%edi,1),%esi\r
+ movl 12(%esp),%edi\r
+ addl %ebp,%esi\r
+\r
+ movl %ebx,%ebp\r
+ xorl 20(%esp),%edi\r
+ xorl %ecx,%ebp\r
+ xorl 44(%esp),%edi\r
+ andl %eax,%ebp\r
+ xorl (%esp),%edi\r
+ roll $1,%edi\r
+ xorl %ecx,%ebp\r
+ addl %ebp,%edx\r
+ movl %esi,%ebp\r
+ rorl $2,%eax\r
+ movl %edi,12(%esp)\r
+ roll $5,%ebp\r
+ leal 1518500249(%edi,%edx,1),%edi\r
+ movl 16(%esp),%edx\r
+ addl %ebp,%edi\r
+\r
+ movl %esi,%ebp\r
+ xorl 24(%esp),%edx\r
+ xorl %eax,%ebp\r
+ xorl 48(%esp),%edx\r
+ xorl %ebx,%ebp\r
+ xorl 4(%esp),%edx\r
+ roll $1,%edx\r
+ addl %ebp,%ecx\r
+ rorl $2,%esi\r
+ movl %edi,%ebp\r
+ roll $5,%ebp\r
+ movl %edx,16(%esp)\r
+ leal 1859775393(%edx,%ecx,1),%edx\r
+ movl 20(%esp),%ecx\r
+ addl %ebp,%edx\r
+\r
+ movl %edi,%ebp\r
+ xorl 28(%esp),%ecx\r
+ xorl %esi,%ebp\r
+ xorl 52(%esp),%ecx\r
+ xorl %eax,%ebp\r
+ xorl 8(%esp),%ecx\r
+ roll $1,%ecx\r
+ addl %ebp,%ebx\r
+ rorl $2,%edi\r
+ movl %edx,%ebp\r
+ roll $5,%ebp\r
+ movl %ecx,20(%esp)\r
+ leal 1859775393(%ecx,%ebx,1),%ecx\r
+ movl 24(%esp),%ebx\r
+ addl %ebp,%ecx\r
+\r
+ movl %edx,%ebp\r
+ xorl 32(%esp),%ebx\r
+ xorl %edi,%ebp\r
+ xorl 56(%esp),%ebx\r
+ xorl %esi,%ebp\r
+ xorl 12(%esp),%ebx\r
+ roll $1,%ebx\r
+ addl %ebp,%eax\r
+ rorl $2,%edx\r
+ movl %ecx,%ebp\r
+ roll $5,%ebp\r
+ movl %ebx,24(%esp)\r
+ leal 1859775393(%ebx,%eax,1),%ebx\r
+ movl 28(%esp),%eax\r
+ addl %ebp,%ebx\r
+\r
+ movl %ecx,%ebp\r
+ xorl 36(%esp),%eax\r
+ xorl %edx,%ebp\r
+ xorl 60(%esp),%eax\r
+ xorl %edi,%ebp\r
+ xorl 16(%esp),%eax\r
+ roll $1,%eax\r
+ addl %ebp,%esi\r
+ rorl $2,%ecx\r
+ movl %ebx,%ebp\r
+ roll $5,%ebp\r
+ movl %eax,28(%esp)\r
+ leal 1859775393(%eax,%esi,1),%eax\r
+ movl 32(%esp),%esi\r
+ addl %ebp,%eax\r
+\r
+ movl %ebx,%ebp\r
+ xorl 40(%esp),%esi\r
+ xorl %ecx,%ebp\r
+ xorl (%esp),%esi\r
+ xorl %edx,%ebp\r
+ xorl 20(%esp),%esi\r
+ roll $1,%esi\r
+ addl %ebp,%edi\r
+ rorl $2,%ebx\r
+ movl %eax,%ebp\r
+ roll $5,%ebp\r
+ movl %esi,32(%esp)\r
+ leal 1859775393(%esi,%edi,1),%esi\r
+ movl 36(%esp),%edi\r
+ addl %ebp,%esi\r
+\r
+ movl %eax,%ebp\r
+ xorl 44(%esp),%edi\r
+ xorl %ebx,%ebp\r
+ xorl 4(%esp),%edi\r
+ xorl %ecx,%ebp\r
+ xorl 24(%esp),%edi\r
+ roll $1,%edi\r
+ addl %ebp,%edx\r
+ rorl $2,%eax\r
+ movl %esi,%ebp\r
+ roll $5,%ebp\r
+ movl %edi,36(%esp)\r
+ leal 1859775393(%edi,%edx,1),%edi\r
+ movl 40(%esp),%edx\r
+ addl %ebp,%edi\r
+\r
+ movl %esi,%ebp\r
+ xorl 48(%esp),%edx\r
+ xorl %eax,%ebp\r
+ xorl 8(%esp),%edx\r
+ xorl %ebx,%ebp\r
+ xorl 28(%esp),%edx\r
+ roll $1,%edx\r
+ addl %ebp,%ecx\r
+ rorl $2,%esi\r
+ movl %edi,%ebp\r
+ roll $5,%ebp\r
+ movl %edx,40(%esp)\r
+ leal 1859775393(%edx,%ecx,1),%edx\r
+ movl 44(%esp),%ecx\r
+ addl %ebp,%edx\r
+\r
+ movl %edi,%ebp\r
+ xorl 52(%esp),%ecx\r
+ xorl %esi,%ebp\r
+ xorl 12(%esp),%ecx\r
+ xorl %eax,%ebp\r
+ xorl 32(%esp),%ecx\r
+ roll $1,%ecx\r
+ addl %ebp,%ebx\r
+ rorl $2,%edi\r
+ movl %edx,%ebp\r
+ roll $5,%ebp\r
+ movl %ecx,44(%esp)\r
+ leal 1859775393(%ecx,%ebx,1),%ecx\r
+ movl 48(%esp),%ebx\r
+ addl %ebp,%ecx\r
+\r
+ movl %edx,%ebp\r
+ xorl 56(%esp),%ebx\r
+ xorl %edi,%ebp\r
+ xorl 16(%esp),%ebx\r
+ xorl %esi,%ebp\r
+ xorl 36(%esp),%ebx\r
+ roll $1,%ebx\r
+ addl %ebp,%eax\r
+ rorl $2,%edx\r
+ movl %ecx,%ebp\r
+ roll $5,%ebp\r
+ movl %ebx,48(%esp)\r
+ leal 1859775393(%ebx,%eax,1),%ebx\r
+ movl 52(%esp),%eax\r
+ addl %ebp,%ebx\r
+\r
+ movl %ecx,%ebp\r
+ xorl 60(%esp),%eax\r
+ xorl %edx,%ebp\r
+ xorl 20(%esp),%eax\r
+ xorl %edi,%ebp\r
+ xorl 40(%esp),%eax\r
+ roll $1,%eax\r
+ addl %ebp,%esi\r
+ rorl $2,%ecx\r
+ movl %ebx,%ebp\r
+ roll $5,%ebp\r
+ movl %eax,52(%esp)\r
+ leal 1859775393(%eax,%esi,1),%eax\r
+ movl 56(%esp),%esi\r
+ addl %ebp,%eax\r
+\r
+ movl %ebx,%ebp\r
+ xorl (%esp),%esi\r
+ xorl %ecx,%ebp\r
+ xorl 24(%esp),%esi\r
+ xorl %edx,%ebp\r
+ xorl 44(%esp),%esi\r
+ roll $1,%esi\r
+ addl %ebp,%edi\r
+ rorl $2,%ebx\r
+ movl %eax,%ebp\r
+ roll $5,%ebp\r
+ movl %esi,56(%esp)\r
+ leal 1859775393(%esi,%edi,1),%esi\r
+ movl 60(%esp),%edi\r
+ addl %ebp,%esi\r
+\r
+ movl %eax,%ebp\r
+ xorl 4(%esp),%edi\r
+ xorl %ebx,%ebp\r
+ xorl 28(%esp),%edi\r
+ xorl %ecx,%ebp\r
+ xorl 48(%esp),%edi\r
+ roll $1,%edi\r
+ addl %ebp,%edx\r
+ rorl $2,%eax\r
+ movl %esi,%ebp\r
+ roll $5,%ebp\r
+ movl %edi,60(%esp)\r
+ leal 1859775393(%edi,%edx,1),%edi\r
+ movl (%esp),%edx\r
+ addl %ebp,%edi\r
+\r
+ movl %esi,%ebp\r
+ xorl 8(%esp),%edx\r
+ xorl %eax,%ebp\r
+ xorl 32(%esp),%edx\r
+ xorl %ebx,%ebp\r
+ xorl 52(%esp),%edx\r
+ roll $1,%edx\r
+ addl %ebp,%ecx\r
+ rorl $2,%esi\r
+ movl %edi,%ebp\r
+ roll $5,%ebp\r
+ movl %edx,(%esp)\r
+ leal 1859775393(%edx,%ecx,1),%edx\r
+ movl 4(%esp),%ecx\r
+ addl %ebp,%edx\r
+\r
+ movl %edi,%ebp\r
+ xorl 12(%esp),%ecx\r
+ xorl %esi,%ebp\r
+ xorl 36(%esp),%ecx\r
+ xorl %eax,%ebp\r
+ xorl 56(%esp),%ecx\r
+ roll $1,%ecx\r
+ addl %ebp,%ebx\r
+ rorl $2,%edi\r
+ movl %edx,%ebp\r
+ roll $5,%ebp\r
+ movl %ecx,4(%esp)\r
+ leal 1859775393(%ecx,%ebx,1),%ecx\r
+ movl 8(%esp),%ebx\r
+ addl %ebp,%ecx\r
+\r
+ movl %edx,%ebp\r
+ xorl 16(%esp),%ebx\r
+ xorl %edi,%ebp\r
+ xorl 40(%esp),%ebx\r
+ xorl %esi,%ebp\r
+ xorl 60(%esp),%ebx\r
+ roll $1,%ebx\r
+ addl %ebp,%eax\r
+ rorl $2,%edx\r
+ movl %ecx,%ebp\r
+ roll $5,%ebp\r
+ movl %ebx,8(%esp)\r
+ leal 1859775393(%ebx,%eax,1),%ebx\r
+ movl 12(%esp),%eax\r
+ addl %ebp,%ebx\r
+\r
+ movl %ecx,%ebp\r
+ xorl 20(%esp),%eax\r
+ xorl %edx,%ebp\r
+ xorl 44(%esp),%eax\r
+ xorl %edi,%ebp\r
+ xorl (%esp),%eax\r
+ roll $1,%eax\r
+ addl %ebp,%esi\r
+ rorl $2,%ecx\r
+ movl %ebx,%ebp\r
+ roll $5,%ebp\r
+ movl %eax,12(%esp)\r
+ leal 1859775393(%eax,%esi,1),%eax\r
+ movl 16(%esp),%esi\r
+ addl %ebp,%eax\r
+\r
+ movl %ebx,%ebp\r
+ xorl 24(%esp),%esi\r
+ xorl %ecx,%ebp\r
+ xorl 48(%esp),%esi\r
+ xorl %edx,%ebp\r
+ xorl 4(%esp),%esi\r
+ roll $1,%esi\r
+ addl %ebp,%edi\r
+ rorl $2,%ebx\r
+ movl %eax,%ebp\r
+ roll $5,%ebp\r
+ movl %esi,16(%esp)\r
+ leal 1859775393(%esi,%edi,1),%esi\r
+ movl 20(%esp),%edi\r
+ addl %ebp,%esi\r
+\r
+ movl %eax,%ebp\r
+ xorl 28(%esp),%edi\r
+ xorl %ebx,%ebp\r
+ xorl 52(%esp),%edi\r
+ xorl %ecx,%ebp\r
+ xorl 8(%esp),%edi\r
+ roll $1,%edi\r
+ addl %ebp,%edx\r
+ rorl $2,%eax\r
+ movl %esi,%ebp\r
+ roll $5,%ebp\r
+ movl %edi,20(%esp)\r
+ leal 1859775393(%edi,%edx,1),%edi\r
+ movl 24(%esp),%edx\r
+ addl %ebp,%edi\r
+\r
+ movl %esi,%ebp\r
+ xorl 32(%esp),%edx\r
+ xorl %eax,%ebp\r
+ xorl 56(%esp),%edx\r
+ xorl %ebx,%ebp\r
+ xorl 12(%esp),%edx\r
+ roll $1,%edx\r
+ addl %ebp,%ecx\r
+ rorl $2,%esi\r
+ movl %edi,%ebp\r
+ roll $5,%ebp\r
+ movl %edx,24(%esp)\r
+ leal 1859775393(%edx,%ecx,1),%edx\r
+ movl 28(%esp),%ecx\r
+ addl %ebp,%edx\r
+\r
+ movl %edi,%ebp\r
+ xorl 36(%esp),%ecx\r
+ xorl %esi,%ebp\r
+ xorl 60(%esp),%ecx\r
+ xorl %eax,%ebp\r
+ xorl 16(%esp),%ecx\r
+ roll $1,%ecx\r
+ addl %ebp,%ebx\r
+ rorl $2,%edi\r
+ movl %edx,%ebp\r
+ roll $5,%ebp\r
+ movl %ecx,28(%esp)\r
+ leal 1859775393(%ecx,%ebx,1),%ecx\r
+ movl 32(%esp),%ebx\r
+ addl %ebp,%ecx\r
+\r
+ movl %edi,%ebp\r
+ xorl 40(%esp),%ebx\r
+ xorl %esi,%ebp\r
+ xorl (%esp),%ebx\r
+ andl %edx,%ebp\r
+ xorl 20(%esp),%ebx\r
+ roll $1,%ebx\r
+ addl %eax,%ebp\r
+ rorl $2,%edx\r
+ movl %ecx,%eax\r
+ roll $5,%eax\r
+ movl %ebx,32(%esp)\r
+ leal 2400959708(%ebx,%ebp,1),%ebx\r
+ movl %edi,%ebp\r
+ addl %eax,%ebx\r
+ andl %esi,%ebp\r
+ movl 36(%esp),%eax\r
+ addl %ebp,%ebx\r
+\r
+ movl %edx,%ebp\r
+ xorl 44(%esp),%eax\r
+ xorl %edi,%ebp\r
+ xorl 4(%esp),%eax\r
+ andl %ecx,%ebp\r
+ xorl 24(%esp),%eax\r
+ roll $1,%eax\r
+ addl %esi,%ebp\r
+ rorl $2,%ecx\r
+ movl %ebx,%esi\r
+ roll $5,%esi\r
+ movl %eax,36(%esp)\r
+ leal 2400959708(%eax,%ebp,1),%eax\r
+ movl %edx,%ebp\r
+ addl %esi,%eax\r
+ andl %edi,%ebp\r
+ movl 40(%esp),%esi\r
+ addl %ebp,%eax\r
+\r
+ movl %ecx,%ebp\r
+ xorl 48(%esp),%esi\r
+ xorl %edx,%ebp\r
+ xorl 8(%esp),%esi\r
+ andl %ebx,%ebp\r
+ xorl 28(%esp),%esi\r
+ roll $1,%esi\r
+ addl %edi,%ebp\r
+ rorl $2,%ebx\r
+ movl %eax,%edi\r
+ roll $5,%edi\r
+ movl %esi,40(%esp)\r
+ leal 2400959708(%esi,%ebp,1),%esi\r
+ movl %ecx,%ebp\r
+ addl %edi,%esi\r
+ andl %edx,%ebp\r
+ movl 44(%esp),%edi\r
+ addl %ebp,%esi\r
+\r
+ movl %ebx,%ebp\r
+ xorl 52(%esp),%edi\r
+ xorl %ecx,%ebp\r
+ xorl 12(%esp),%edi\r
+ andl %eax,%ebp\r
+ xorl 32(%esp),%edi\r
+ roll $1,%edi\r
+ addl %edx,%ebp\r
+ rorl $2,%eax\r
+ movl %esi,%edx\r
+ roll $5,%edx\r
+ movl %edi,44(%esp)\r
+ leal 2400959708(%edi,%ebp,1),%edi\r
+ movl %ebx,%ebp\r
+ addl %edx,%edi\r
+ andl %ecx,%ebp\r
+ movl 48(%esp),%edx\r
+ addl %ebp,%edi\r
+\r
+ movl %eax,%ebp\r
+ xorl 56(%esp),%edx\r
+ xorl %ebx,%ebp\r
+ xorl 16(%esp),%edx\r
+ andl %esi,%ebp\r
+ xorl 36(%esp),%edx\r
+ roll $1,%edx\r
+ addl %ecx,%ebp\r
+ rorl $2,%esi\r
+ movl %edi,%ecx\r
+ roll $5,%ecx\r
+ movl %edx,48(%esp)\r
+ leal 2400959708(%edx,%ebp,1),%edx\r
+ movl %eax,%ebp\r
+ addl %ecx,%edx\r
+ andl %ebx,%ebp\r
+ movl 52(%esp),%ecx\r
+ addl %ebp,%edx\r
+\r
+ movl %esi,%ebp\r
+ xorl 60(%esp),%ecx\r
+ xorl %eax,%ebp\r
+ xorl 20(%esp),%ecx\r
+ andl %edi,%ebp\r
+ xorl 40(%esp),%ecx\r
+ roll $1,%ecx\r
+ addl %ebx,%ebp\r
+ rorl $2,%edi\r
+ movl %edx,%ebx\r
+ roll $5,%ebx\r
+ movl %ecx,52(%esp)\r
+ leal 2400959708(%ecx,%ebp,1),%ecx\r
+ movl %esi,%ebp\r
+ addl %ebx,%ecx\r
+ andl %eax,%ebp\r
+ movl 56(%esp),%ebx\r
+ addl %ebp,%ecx\r
+\r
+ movl %edi,%ebp\r
+ xorl (%esp),%ebx\r
+ xorl %esi,%ebp\r
+ xorl 24(%esp),%ebx\r
+ andl %edx,%ebp\r
+ xorl 44(%esp),%ebx\r
+ roll $1,%ebx\r
+ addl %eax,%ebp\r
+ rorl $2,%edx\r
+ movl %ecx,%eax\r
+ roll $5,%eax\r
+ movl %ebx,56(%esp)\r
+ leal 2400959708(%ebx,%ebp,1),%ebx\r
+ movl %edi,%ebp\r
+ addl %eax,%ebx\r
+ andl %esi,%ebp\r
+ movl 60(%esp),%eax\r
+ addl %ebp,%ebx\r
+\r
+ movl %edx,%ebp\r
+ xorl 4(%esp),%eax\r
+ xorl %edi,%ebp\r
+ xorl 28(%esp),%eax\r
+ andl %ecx,%ebp\r
+ xorl 48(%esp),%eax\r
+ roll $1,%eax\r
+ addl %esi,%ebp\r
+ rorl $2,%ecx\r
+ movl %ebx,%esi\r
+ roll $5,%esi\r
+ movl %eax,60(%esp)\r
+ leal 2400959708(%eax,%ebp,1),%eax\r
+ movl %edx,%ebp\r
+ addl %esi,%eax\r
+ andl %edi,%ebp\r
+ movl (%esp),%esi\r
+ addl %ebp,%eax\r
+\r
+ movl %ecx,%ebp\r
+ xorl 8(%esp),%esi\r
+ xorl %edx,%ebp\r
+ xorl 32(%esp),%esi\r
+ andl %ebx,%ebp\r
+ xorl 52(%esp),%esi\r
+ roll $1,%esi\r
+ addl %edi,%ebp\r
+ rorl $2,%ebx\r
+ movl %eax,%edi\r
+ roll $5,%edi\r
+ movl %esi,(%esp)\r
+ leal 2400959708(%esi,%ebp,1),%esi\r
+ movl %ecx,%ebp\r
+ addl %edi,%esi\r
+ andl %edx,%ebp\r
+ movl 4(%esp),%edi\r
+ addl %ebp,%esi\r
+\r
+ movl %ebx,%ebp\r
+ xorl 12(%esp),%edi\r
+ xorl %ecx,%ebp\r
+ xorl 36(%esp),%edi\r
+ andl %eax,%ebp\r
+ xorl 56(%esp),%edi\r
+ roll $1,%edi\r
+ addl %edx,%ebp\r
+ rorl $2,%eax\r
+ movl %esi,%edx\r
+ roll $5,%edx\r
+ movl %edi,4(%esp)\r
+ leal 2400959708(%edi,%ebp,1),%edi\r
+ movl %ebx,%ebp\r
+ addl %edx,%edi\r
+ andl %ecx,%ebp\r
+ movl 8(%esp),%edx\r
+ addl %ebp,%edi\r
+\r
+ movl %eax,%ebp\r
+ xorl 16(%esp),%edx\r
+ xorl %ebx,%ebp\r
+ xorl 40(%esp),%edx\r
+ andl %esi,%ebp\r
+ xorl 60(%esp),%edx\r
+ roll $1,%edx\r
+ addl %ecx,%ebp\r
+ rorl $2,%esi\r
+ movl %edi,%ecx\r
+ roll $5,%ecx\r
+ movl %edx,8(%esp)\r
+ leal 2400959708(%edx,%ebp,1),%edx\r
+ movl %eax,%ebp\r
+ addl %ecx,%edx\r
+ andl %ebx,%ebp\r
+ movl 12(%esp),%ecx\r
+ addl %ebp,%edx\r
+\r
+ movl %esi,%ebp\r
+ xorl 20(%esp),%ecx\r
+ xorl %eax,%ebp\r
+ xorl 44(%esp),%ecx\r
+ andl %edi,%ebp\r
+ xorl (%esp),%ecx\r
+ roll $1,%ecx\r
+ addl %ebx,%ebp\r
+ rorl $2,%edi\r
+ movl %edx,%ebx\r
+ roll $5,%ebx\r
+ movl %ecx,12(%esp)\r
+ leal 2400959708(%ecx,%ebp,1),%ecx\r
+ movl %esi,%ebp\r
+ addl %ebx,%ecx\r
+ andl %eax,%ebp\r
+ movl 16(%esp),%ebx\r
+ addl %ebp,%ecx\r
+\r
+ movl %edi,%ebp\r
+ xorl 24(%esp),%ebx\r
+ xorl %esi,%ebp\r
+ xorl 48(%esp),%ebx\r
+ andl %edx,%ebp\r
+ xorl 4(%esp),%ebx\r
+ roll $1,%ebx\r
+ addl %eax,%ebp\r
+ rorl $2,%edx\r
+ movl %ecx,%eax\r
+ roll $5,%eax\r
+ movl %ebx,16(%esp)\r
+ leal 2400959708(%ebx,%ebp,1),%ebx\r
+ movl %edi,%ebp\r
+ addl %eax,%ebx\r
+ andl %esi,%ebp\r
+ movl 20(%esp),%eax\r
+ addl %ebp,%ebx\r
+\r
+ movl %edx,%ebp\r
+ xorl 28(%esp),%eax\r
+ xorl %edi,%ebp\r
+ xorl 52(%esp),%eax\r
+ andl %ecx,%ebp\r
+ xorl 8(%esp),%eax\r
+ roll $1,%eax\r
+ addl %esi,%ebp\r
+ rorl $2,%ecx\r
+ movl %ebx,%esi\r
+ roll $5,%esi\r
+ movl %eax,20(%esp)\r
+ leal 2400959708(%eax,%ebp,1),%eax\r
+ movl %edx,%ebp\r
+ addl %esi,%eax\r
+ andl %edi,%ebp\r
+ movl 24(%esp),%esi\r
+ addl %ebp,%eax\r
+\r
+ movl %ecx,%ebp\r
+ xorl 32(%esp),%esi\r
+ xorl %edx,%ebp\r
+ xorl 56(%esp),%esi\r
+ andl %ebx,%ebp\r
+ xorl 12(%esp),%esi\r
+ roll $1,%esi\r
+ addl %edi,%ebp\r
+ rorl $2,%ebx\r
+ movl %eax,%edi\r
+ roll $5,%edi\r
+ movl %esi,24(%esp)\r
+ leal 2400959708(%esi,%ebp,1),%esi\r
+ movl %ecx,%ebp\r
+ addl %edi,%esi\r
+ andl %edx,%ebp\r
+ movl 28(%esp),%edi\r
+ addl %ebp,%esi\r
+\r
+ movl %ebx,%ebp\r
+ xorl 36(%esp),%edi\r
+ xorl %ecx,%ebp\r
+ xorl 60(%esp),%edi\r
+ andl %eax,%ebp\r
+ xorl 16(%esp),%edi\r
+ roll $1,%edi\r
+ addl %edx,%ebp\r
+ rorl $2,%eax\r
+ movl %esi,%edx\r
+ roll $5,%edx\r
+ movl %edi,28(%esp)\r
+ leal 2400959708(%edi,%ebp,1),%edi\r
+ movl %ebx,%ebp\r
+ addl %edx,%edi\r
+ andl %ecx,%ebp\r
+ movl 32(%esp),%edx\r
+ addl %ebp,%edi\r
+\r
+ movl %eax,%ebp\r
+ xorl 40(%esp),%edx\r
+ xorl %ebx,%ebp\r
+ xorl (%esp),%edx\r
+ andl %esi,%ebp\r
+ xorl 20(%esp),%edx\r
+ roll $1,%edx\r
+ addl %ecx,%ebp\r
+ rorl $2,%esi\r
+ movl %edi,%ecx\r
+ roll $5,%ecx\r
+ movl %edx,32(%esp)\r
+ leal 2400959708(%edx,%ebp,1),%edx\r
+ movl %eax,%ebp\r
+ addl %ecx,%edx\r
+ andl %ebx,%ebp\r
+ movl 36(%esp),%ecx\r
+ addl %ebp,%edx\r
+\r
+ movl %esi,%ebp\r
+ xorl 44(%esp),%ecx\r
+ xorl %eax,%ebp\r
+ xorl 4(%esp),%ecx\r
+ andl %edi,%ebp\r
+ xorl 24(%esp),%ecx\r
+ roll $1,%ecx\r
+ addl %ebx,%ebp\r
+ rorl $2,%edi\r
+ movl %edx,%ebx\r
+ roll $5,%ebx\r
+ movl %ecx,36(%esp)\r
+ leal 2400959708(%ecx,%ebp,1),%ecx\r
+ movl %esi,%ebp\r
+ addl %ebx,%ecx\r
+ andl %eax,%ebp\r
+ movl 40(%esp),%ebx\r
+ addl %ebp,%ecx\r
+\r
+ movl %edi,%ebp\r
+ xorl 48(%esp),%ebx\r
+ xorl %esi,%ebp\r
+ xorl 8(%esp),%ebx\r
+ andl %edx,%ebp\r
+ xorl 28(%esp),%ebx\r
+ roll $1,%ebx\r
+ addl %eax,%ebp\r
+ rorl $2,%edx\r
+ movl %ecx,%eax\r
+ roll $5,%eax\r
+ movl %ebx,40(%esp)\r
+ leal 2400959708(%ebx,%ebp,1),%ebx\r
+ movl %edi,%ebp\r
+ addl %eax,%ebx\r
+ andl %esi,%ebp\r
+ movl 44(%esp),%eax\r
+ addl %ebp,%ebx\r
+\r
+ movl %edx,%ebp\r
+ xorl 52(%esp),%eax\r
+ xorl %edi,%ebp\r
+ xorl 12(%esp),%eax\r
+ andl %ecx,%ebp\r
+ xorl 32(%esp),%eax\r
+ roll $1,%eax\r
+ addl %esi,%ebp\r
+ rorl $2,%ecx\r
+ movl %ebx,%esi\r
+ roll $5,%esi\r
+ movl %eax,44(%esp)\r
+ leal 2400959708(%eax,%ebp,1),%eax\r
+ movl %edx,%ebp\r
+ addl %esi,%eax\r
+ andl %edi,%ebp\r
+ movl 48(%esp),%esi\r
+ addl %ebp,%eax\r
+\r
+ movl %ebx,%ebp\r
+ xorl 56(%esp),%esi\r
+ xorl %ecx,%ebp\r
+ xorl 16(%esp),%esi\r
+ xorl %edx,%ebp\r
+ xorl 36(%esp),%esi\r
+ roll $1,%esi\r
+ addl %ebp,%edi\r
+ rorl $2,%ebx\r
+ movl %eax,%ebp\r
+ roll $5,%ebp\r
+ movl %esi,48(%esp)\r
+ leal 3395469782(%esi,%edi,1),%esi\r
+ movl 52(%esp),%edi\r
+ addl %ebp,%esi\r
+\r
+ movl %eax,%ebp\r
+ xorl 60(%esp),%edi\r
+ xorl %ebx,%ebp\r
+ xorl 20(%esp),%edi\r
+ xorl %ecx,%ebp\r
+ xorl 40(%esp),%edi\r
+ roll $1,%edi\r
+ addl %ebp,%edx\r
+ rorl $2,%eax\r
+ movl %esi,%ebp\r
+ roll $5,%ebp\r
+ movl %edi,52(%esp)\r
+ leal 3395469782(%edi,%edx,1),%edi\r
+ movl 56(%esp),%edx\r
+ addl %ebp,%edi\r
+\r
+ movl %esi,%ebp\r
+ xorl (%esp),%edx\r
+ xorl %eax,%ebp\r
+ xorl 24(%esp),%edx\r
+ xorl %ebx,%ebp\r
+ xorl 44(%esp),%edx\r
+ roll $1,%edx\r
+ addl %ebp,%ecx\r
+ rorl $2,%esi\r
+ movl %edi,%ebp\r
+ roll $5,%ebp\r
+ movl %edx,56(%esp)\r
+ leal 3395469782(%edx,%ecx,1),%edx\r
+ movl 60(%esp),%ecx\r
+ addl %ebp,%edx\r
+\r
+ movl %edi,%ebp\r
+ xorl 4(%esp),%ecx\r
+ xorl %esi,%ebp\r
+ xorl 28(%esp),%ecx\r
+ xorl %eax,%ebp\r
+ xorl 48(%esp),%ecx\r
+ roll $1,%ecx\r
+ addl %ebp,%ebx\r
+ rorl $2,%edi\r
+ movl %edx,%ebp\r
+ roll $5,%ebp\r
+ movl %ecx,60(%esp)\r
+ leal 3395469782(%ecx,%ebx,1),%ecx\r
+ movl (%esp),%ebx\r
+ addl %ebp,%ecx\r
+\r
+ movl %edx,%ebp\r
+ xorl 8(%esp),%ebx\r
+ xorl %edi,%ebp\r
+ xorl 32(%esp),%ebx\r
+ xorl %esi,%ebp\r
+ xorl 52(%esp),%ebx\r
+ roll $1,%ebx\r
+ addl %ebp,%eax\r
+ rorl $2,%edx\r
+ movl %ecx,%ebp\r
+ roll $5,%ebp\r
+ movl %ebx,(%esp)\r
+ leal 3395469782(%ebx,%eax,1),%ebx\r
+ movl 4(%esp),%eax\r
+ addl %ebp,%ebx\r
+\r
+ movl %ecx,%ebp\r
+ xorl 12(%esp),%eax\r
+ xorl %edx,%ebp\r
+ xorl 36(%esp),%eax\r
+ xorl %edi,%ebp\r
+ xorl 56(%esp),%eax\r
+ roll $1,%eax\r
+ addl %ebp,%esi\r
+ rorl $2,%ecx\r
+ movl %ebx,%ebp\r
+ roll $5,%ebp\r
+ movl %eax,4(%esp)\r
+ leal 3395469782(%eax,%esi,1),%eax\r
+ movl 8(%esp),%esi\r
+ addl %ebp,%eax\r
+\r
+ movl %ebx,%ebp\r
+ xorl 16(%esp),%esi\r
+ xorl %ecx,%ebp\r
+ xorl 40(%esp),%esi\r
+ xorl %edx,%ebp\r
+ xorl 60(%esp),%esi\r
+ roll $1,%esi\r
+ addl %ebp,%edi\r
+ rorl $2,%ebx\r
+ movl %eax,%ebp\r
+ roll $5,%ebp\r
+ movl %esi,8(%esp)\r
+ leal 3395469782(%esi,%edi,1),%esi\r
+ movl 12(%esp),%edi\r
+ addl %ebp,%esi\r
+\r
+ movl %eax,%ebp\r
+ xorl 20(%esp),%edi\r
+ xorl %ebx,%ebp\r
+ xorl 44(%esp),%edi\r
+ xorl %ecx,%ebp\r
+ xorl (%esp),%edi\r
+ roll $1,%edi\r
+ addl %ebp,%edx\r
+ rorl $2,%eax\r
+ movl %esi,%ebp\r
+ roll $5,%ebp\r
+ movl %edi,12(%esp)\r
+ leal 3395469782(%edi,%edx,1),%edi\r
+ movl 16(%esp),%edx\r
+ addl %ebp,%edi\r
+\r
+ movl %esi,%ebp\r
+ xorl 24(%esp),%edx\r
+ xorl %eax,%ebp\r
+ xorl 48(%esp),%edx\r
+ xorl %ebx,%ebp\r
+ xorl 4(%esp),%edx\r
+ roll $1,%edx\r
+ addl %ebp,%ecx\r
+ rorl $2,%esi\r
+ movl %edi,%ebp\r
+ roll $5,%ebp\r
+ movl %edx,16(%esp)\r
+ leal 3395469782(%edx,%ecx,1),%edx\r
+ movl 20(%esp),%ecx\r
+ addl %ebp,%edx\r
+\r
+ movl %edi,%ebp\r
+ xorl 28(%esp),%ecx\r
+ xorl %esi,%ebp\r
+ xorl 52(%esp),%ecx\r
+ xorl %eax,%ebp\r
+ xorl 8(%esp),%ecx\r
+ roll $1,%ecx\r
+ addl %ebp,%ebx\r
+ rorl $2,%edi\r
+ movl %edx,%ebp\r
+ roll $5,%ebp\r
+ movl %ecx,20(%esp)\r
+ leal 3395469782(%ecx,%ebx,1),%ecx\r
+ movl 24(%esp),%ebx\r
+ addl %ebp,%ecx\r
+\r
+ movl %edx,%ebp\r
+ xorl 32(%esp),%ebx\r
+ xorl %edi,%ebp\r
+ xorl 56(%esp),%ebx\r
+ xorl %esi,%ebp\r
+ xorl 12(%esp),%ebx\r
+ roll $1,%ebx\r
+ addl %ebp,%eax\r
+ rorl $2,%edx\r
+ movl %ecx,%ebp\r
+ roll $5,%ebp\r
+ movl %ebx,24(%esp)\r
+ leal 3395469782(%ebx,%eax,1),%ebx\r
+ movl 28(%esp),%eax\r
+ addl %ebp,%ebx\r
+\r
+ movl %ecx,%ebp\r
+ xorl 36(%esp),%eax\r
+ xorl %edx,%ebp\r
+ xorl 60(%esp),%eax\r
+ xorl %edi,%ebp\r
+ xorl 16(%esp),%eax\r
+ roll $1,%eax\r
+ addl %ebp,%esi\r
+ rorl $2,%ecx\r
+ movl %ebx,%ebp\r
+ roll $5,%ebp\r
+ movl %eax,28(%esp)\r
+ leal 3395469782(%eax,%esi,1),%eax\r
+ movl 32(%esp),%esi\r
+ addl %ebp,%eax\r
+\r
+ movl %ebx,%ebp\r
+ xorl 40(%esp),%esi\r
+ xorl %ecx,%ebp\r
+ xorl (%esp),%esi\r
+ xorl %edx,%ebp\r
+ xorl 20(%esp),%esi\r
+ roll $1,%esi\r
+ addl %ebp,%edi\r
+ rorl $2,%ebx\r
+ movl %eax,%ebp\r
+ roll $5,%ebp\r
+ movl %esi,32(%esp)\r
+ leal 3395469782(%esi,%edi,1),%esi\r
+ movl 36(%esp),%edi\r
+ addl %ebp,%esi\r
+\r
+ movl %eax,%ebp\r
+ xorl 44(%esp),%edi\r
+ xorl %ebx,%ebp\r
+ xorl 4(%esp),%edi\r
+ xorl %ecx,%ebp\r
+ xorl 24(%esp),%edi\r
+ roll $1,%edi\r
+ addl %ebp,%edx\r
+ rorl $2,%eax\r
+ movl %esi,%ebp\r
+ roll $5,%ebp\r
+ movl %edi,36(%esp)\r
+ leal 3395469782(%edi,%edx,1),%edi\r
+ movl 40(%esp),%edx\r
+ addl %ebp,%edi\r
+\r
+ movl %esi,%ebp\r
+ xorl 48(%esp),%edx\r
+ xorl %eax,%ebp\r
+ xorl 8(%esp),%edx\r
+ xorl %ebx,%ebp\r
+ xorl 28(%esp),%edx\r
+ roll $1,%edx\r
+ addl %ebp,%ecx\r
+ rorl $2,%esi\r
+ movl %edi,%ebp\r
+ roll $5,%ebp\r
+ movl %edx,40(%esp)\r
+ leal 3395469782(%edx,%ecx,1),%edx\r
+ movl 44(%esp),%ecx\r
+ addl %ebp,%edx\r
+\r
+ movl %edi,%ebp\r
+ xorl 52(%esp),%ecx\r
+ xorl %esi,%ebp\r
+ xorl 12(%esp),%ecx\r
+ xorl %eax,%ebp\r
+ xorl 32(%esp),%ecx\r
+ roll $1,%ecx\r
+ addl %ebp,%ebx\r
+ rorl $2,%edi\r
+ movl %edx,%ebp\r
+ roll $5,%ebp\r
+ movl %ecx,44(%esp)\r
+ leal 3395469782(%ecx,%ebx,1),%ecx\r
+ movl 48(%esp),%ebx\r
+ addl %ebp,%ecx\r
+\r
+ movl %edx,%ebp\r
+ xorl 56(%esp),%ebx\r
+ xorl %edi,%ebp\r
+ xorl 16(%esp),%ebx\r
+ xorl %esi,%ebp\r
+ xorl 36(%esp),%ebx\r
+ roll $1,%ebx\r
+ addl %ebp,%eax\r
+ rorl $2,%edx\r
+ movl %ecx,%ebp\r
+ roll $5,%ebp\r
+ movl %ebx,48(%esp)\r
+ leal 3395469782(%ebx,%eax,1),%ebx\r
+ movl 52(%esp),%eax\r
+ addl %ebp,%ebx\r
+\r
+ movl %ecx,%ebp\r
+ xorl 60(%esp),%eax\r
+ xorl %edx,%ebp\r
+ xorl 20(%esp),%eax\r
+ xorl %edi,%ebp\r
+ xorl 40(%esp),%eax\r
+ roll $1,%eax\r
+ addl %ebp,%esi\r
+ rorl $2,%ecx\r
+ movl %ebx,%ebp\r
+ roll $5,%ebp\r
+ leal 3395469782(%eax,%esi,1),%eax\r
+ movl 56(%esp),%esi\r
+ addl %ebp,%eax\r
+\r
+ movl %ebx,%ebp\r
+ xorl (%esp),%esi\r
+ xorl %ecx,%ebp\r
+ xorl 24(%esp),%esi\r
+ xorl %edx,%ebp\r
+ xorl 44(%esp),%esi\r
+ roll $1,%esi\r
+ addl %ebp,%edi\r
+ rorl $2,%ebx\r
+ movl %eax,%ebp\r
+ roll $5,%ebp\r
+ leal 3395469782(%esi,%edi,1),%esi\r
+ movl 60(%esp),%edi\r
+ addl %ebp,%esi\r
+\r
+ movl %eax,%ebp\r
+ xorl 4(%esp),%edi\r
+ xorl %ebx,%ebp\r
+ xorl 28(%esp),%edi\r
+ xorl %ecx,%ebp\r
+ xorl 48(%esp),%edi\r
+ roll $1,%edi\r
+ addl %ebp,%edx\r
+ rorl $2,%eax\r
+ movl %esi,%ebp\r
+ roll $5,%ebp\r
+ leal 3395469782(%edi,%edx,1),%edi\r
+ addl %ebp,%edi\r
+ movl 96(%esp),%ebp\r
+ movl 100(%esp),%edx\r
+ addl (%ebp),%edi\r
+ addl 4(%ebp),%esi\r
+ addl 8(%ebp),%eax\r
+ addl 12(%ebp),%ebx\r
+ addl 16(%ebp),%ecx\r
+ movl %edi,(%ebp)\r
+ addl $64,%edx\r
+ movl %esi,4(%ebp)\r
+ cmpl 104(%esp),%edx\r
+ movl %eax,8(%ebp)\r
+ movl %ecx,%edi\r
+ movl %ebx,12(%ebp)\r
+ movl %edx,%esi\r
+ movl %ecx,16(%ebp)\r
+ jb .L000loop\r
+ addl $76,%esp\r
+ popl %edi\r
+ popl %esi\r
+ popl %ebx\r
+ popl %ebp\r
+ ret\r
+.size sha1_block_data_order,.-.L_sha1_block_data_order_begin\r
+.byte 83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115\r
+.byte 102,111,114,109,32,102,111,114,32,120,56,54,44,32,67,82\r
+.byte 89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112\r
+.byte 114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0\r
--- /dev/null
+# WARNING: do not edit!\r
+# Generated from openssl/crypto/sha/asm/sha256-586.pl\r
+#\r
+# Copyright 2007-2020 The OpenSSL Project Authors. All Rights Reserved.\r
+#\r
+# Licensed under the OpenSSL license (the "License"). You may not use\r
+# this file except in compliance with the License. You can obtain a copy\r
+# in the file LICENSE in the source distribution or at\r
+# https://www.openssl.org/source/license.html\r
+\r
+.text\r
+.globl sha256_block_data_order\r
+.type sha256_block_data_order,@function\r
+.align 16\r
+sha256_block_data_order:\r
+.L_sha256_block_data_order_begin:\r
+ pushl %ebp\r
+ pushl %ebx\r
+ pushl %esi\r
+ pushl %edi\r
+ movl 20(%esp),%esi\r
+ movl 24(%esp),%edi\r
+ movl 28(%esp),%eax\r
+ movl %esp,%ebx\r
+ call .L000pic_point\r
+.L000pic_point:\r
+ popl %ebp\r
+ leal .L001K256-.L000pic_point(%ebp),%ebp\r
+ subl $16,%esp\r
+ andl $-64,%esp\r
+ shll $6,%eax\r
+ addl %edi,%eax\r
+ movl %esi,(%esp)\r
+ movl %edi,4(%esp)\r
+ movl %eax,8(%esp)\r
+ movl %ebx,12(%esp)\r
+ jmp .L002loop\r
+.align 16\r
+.L002loop:\r
+ movl (%edi),%eax\r
+ movl 4(%edi),%ebx\r
+ movl 8(%edi),%ecx\r
+ bswap %eax\r
+ movl 12(%edi),%edx\r
+ bswap %ebx\r
+ pushl %eax\r
+ bswap %ecx\r
+ pushl %ebx\r
+ bswap %edx\r
+ pushl %ecx\r
+ pushl %edx\r
+ movl 16(%edi),%eax\r
+ movl 20(%edi),%ebx\r
+ movl 24(%edi),%ecx\r
+ bswap %eax\r
+ movl 28(%edi),%edx\r
+ bswap %ebx\r
+ pushl %eax\r
+ bswap %ecx\r
+ pushl %ebx\r
+ bswap %edx\r
+ pushl %ecx\r
+ pushl %edx\r
+ movl 32(%edi),%eax\r
+ movl 36(%edi),%ebx\r
+ movl 40(%edi),%ecx\r
+ bswap %eax\r
+ movl 44(%edi),%edx\r
+ bswap %ebx\r
+ pushl %eax\r
+ bswap %ecx\r
+ pushl %ebx\r
+ bswap %edx\r
+ pushl %ecx\r
+ pushl %edx\r
+ movl 48(%edi),%eax\r
+ movl 52(%edi),%ebx\r
+ movl 56(%edi),%ecx\r
+ bswap %eax\r
+ movl 60(%edi),%edx\r
+ bswap %ebx\r
+ pushl %eax\r
+ bswap %ecx\r
+ pushl %ebx\r
+ bswap %edx\r
+ pushl %ecx\r
+ pushl %edx\r
+ addl $64,%edi\r
+ leal -36(%esp),%esp\r
+ movl %edi,104(%esp)\r
+ movl (%esi),%eax\r
+ movl 4(%esi),%ebx\r
+ movl 8(%esi),%ecx\r
+ movl 12(%esi),%edi\r
+ movl %ebx,8(%esp)\r
+ xorl %ecx,%ebx\r
+ movl %ecx,12(%esp)\r
+ movl %edi,16(%esp)\r
+ movl %ebx,(%esp)\r
+ movl 16(%esi),%edx\r
+ movl 20(%esi),%ebx\r
+ movl 24(%esi),%ecx\r
+ movl 28(%esi),%edi\r
+ movl %ebx,24(%esp)\r
+ movl %ecx,28(%esp)\r
+ movl %edi,32(%esp)\r
+.align 16\r
+.L00300_15:\r
+ movl %edx,%ecx\r
+ movl 24(%esp),%esi\r
+ rorl $14,%ecx\r
+ movl 28(%esp),%edi\r
+ xorl %edx,%ecx\r
+ xorl %edi,%esi\r
+ movl 96(%esp),%ebx\r
+ rorl $5,%ecx\r
+ andl %edx,%esi\r
+ movl %edx,20(%esp)\r
+ xorl %ecx,%edx\r
+ addl 32(%esp),%ebx\r
+ xorl %edi,%esi\r
+ rorl $6,%edx\r
+ movl %eax,%ecx\r
+ addl %esi,%ebx\r
+ rorl $9,%ecx\r
+ addl %edx,%ebx\r
+ movl 8(%esp),%edi\r
+ xorl %eax,%ecx\r
+ movl %eax,4(%esp)\r
+ leal -4(%esp),%esp\r
+ rorl $11,%ecx\r
+ movl (%ebp),%esi\r
+ xorl %eax,%ecx\r
+ movl 20(%esp),%edx\r
+ xorl %edi,%eax\r
+ rorl $2,%ecx\r
+ addl %esi,%ebx\r
+ movl %eax,(%esp)\r
+ addl %ebx,%edx\r
+ andl 4(%esp),%eax\r
+ addl %ecx,%ebx\r
+ xorl %edi,%eax\r
+ addl $4,%ebp\r
+ addl %ebx,%eax\r
+ cmpl $3248222580,%esi\r
+ jne .L00300_15\r
+ movl 156(%esp),%ecx\r
+ jmp .L00416_63\r
+.align 16\r
+.L00416_63:\r
+ movl %ecx,%ebx\r
+ movl 104(%esp),%esi\r
+ rorl $11,%ecx\r
+ movl %esi,%edi\r
+ rorl $2,%esi\r
+ xorl %ebx,%ecx\r
+ shrl $3,%ebx\r
+ rorl $7,%ecx\r
+ xorl %edi,%esi\r
+ xorl %ecx,%ebx\r
+ rorl $17,%esi\r
+ addl 160(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 124(%esp),%ebx\r
+ movl %edx,%ecx\r
+ xorl %esi,%edi\r
+ movl 24(%esp),%esi\r
+ rorl $14,%ecx\r
+ addl %edi,%ebx\r
+ movl 28(%esp),%edi\r
+ xorl %edx,%ecx\r
+ xorl %edi,%esi\r
+ movl %ebx,96(%esp)\r
+ rorl $5,%ecx\r
+ andl %edx,%esi\r
+ movl %edx,20(%esp)\r
+ xorl %ecx,%edx\r
+ addl 32(%esp),%ebx\r
+ xorl %edi,%esi\r
+ rorl $6,%edx\r
+ movl %eax,%ecx\r
+ addl %esi,%ebx\r
+ rorl $9,%ecx\r
+ addl %edx,%ebx\r
+ movl 8(%esp),%edi\r
+ xorl %eax,%ecx\r
+ movl %eax,4(%esp)\r
+ leal -4(%esp),%esp\r
+ rorl $11,%ecx\r
+ movl (%ebp),%esi\r
+ xorl %eax,%ecx\r
+ movl 20(%esp),%edx\r
+ xorl %edi,%eax\r
+ rorl $2,%ecx\r
+ addl %esi,%ebx\r
+ movl %eax,(%esp)\r
+ addl %ebx,%edx\r
+ andl 4(%esp),%eax\r
+ addl %ecx,%ebx\r
+ xorl %edi,%eax\r
+ movl 156(%esp),%ecx\r
+ addl $4,%ebp\r
+ addl %ebx,%eax\r
+ cmpl $3329325298,%esi\r
+ jne .L00416_63\r
+ movl 356(%esp),%esi\r
+ movl 8(%esp),%ebx\r
+ movl 16(%esp),%ecx\r
+ addl (%esi),%eax\r
+ addl 4(%esi),%ebx\r
+ addl 8(%esi),%edi\r
+ addl 12(%esi),%ecx\r
+ movl %eax,(%esi)\r
+ movl %ebx,4(%esi)\r
+ movl %edi,8(%esi)\r
+ movl %ecx,12(%esi)\r
+ movl 24(%esp),%eax\r
+ movl 28(%esp),%ebx\r
+ movl 32(%esp),%ecx\r
+ movl 360(%esp),%edi\r
+ addl 16(%esi),%edx\r
+ addl 20(%esi),%eax\r
+ addl 24(%esi),%ebx\r
+ addl 28(%esi),%ecx\r
+ movl %edx,16(%esi)\r
+ movl %eax,20(%esi)\r
+ movl %ebx,24(%esi)\r
+ movl %ecx,28(%esi)\r
+ leal 356(%esp),%esp\r
+ subl $256,%ebp\r
+ cmpl 8(%esp),%edi\r
+ jb .L002loop\r
+ movl 12(%esp),%esp\r
+ popl %edi\r
+ popl %esi\r
+ popl %ebx\r
+ popl %ebp\r
+ ret\r
+.align 32\r
+.L005loop_shrd:\r
+ movl (%edi),%eax\r
+ movl 4(%edi),%ebx\r
+ movl 8(%edi),%ecx\r
+ bswap %eax\r
+ movl 12(%edi),%edx\r
+ bswap %ebx\r
+ pushl %eax\r
+ bswap %ecx\r
+ pushl %ebx\r
+ bswap %edx\r
+ pushl %ecx\r
+ pushl %edx\r
+ movl 16(%edi),%eax\r
+ movl 20(%edi),%ebx\r
+ movl 24(%edi),%ecx\r
+ bswap %eax\r
+ movl 28(%edi),%edx\r
+ bswap %ebx\r
+ pushl %eax\r
+ bswap %ecx\r
+ pushl %ebx\r
+ bswap %edx\r
+ pushl %ecx\r
+ pushl %edx\r
+ movl 32(%edi),%eax\r
+ movl 36(%edi),%ebx\r
+ movl 40(%edi),%ecx\r
+ bswap %eax\r
+ movl 44(%edi),%edx\r
+ bswap %ebx\r
+ pushl %eax\r
+ bswap %ecx\r
+ pushl %ebx\r
+ bswap %edx\r
+ pushl %ecx\r
+ pushl %edx\r
+ movl 48(%edi),%eax\r
+ movl 52(%edi),%ebx\r
+ movl 56(%edi),%ecx\r
+ bswap %eax\r
+ movl 60(%edi),%edx\r
+ bswap %ebx\r
+ pushl %eax\r
+ bswap %ecx\r
+ pushl %ebx\r
+ bswap %edx\r
+ pushl %ecx\r
+ pushl %edx\r
+ addl $64,%edi\r
+ leal -36(%esp),%esp\r
+ movl %edi,104(%esp)\r
+ movl (%esi),%eax\r
+ movl 4(%esi),%ebx\r
+ movl 8(%esi),%ecx\r
+ movl 12(%esi),%edi\r
+ movl %ebx,8(%esp)\r
+ xorl %ecx,%ebx\r
+ movl %ecx,12(%esp)\r
+ movl %edi,16(%esp)\r
+ movl %ebx,(%esp)\r
+ movl 16(%esi),%edx\r
+ movl 20(%esi),%ebx\r
+ movl 24(%esi),%ecx\r
+ movl 28(%esi),%edi\r
+ movl %ebx,24(%esp)\r
+ movl %ecx,28(%esp)\r
+ movl %edi,32(%esp)\r
+.align 16\r
+.L00600_15_shrd:\r
+ movl %edx,%ecx\r
+ movl 24(%esp),%esi\r
+ shrdl $14,%ecx,%ecx\r
+ movl 28(%esp),%edi\r
+ xorl %edx,%ecx\r
+ xorl %edi,%esi\r
+ movl 96(%esp),%ebx\r
+ shrdl $5,%ecx,%ecx\r
+ andl %edx,%esi\r
+ movl %edx,20(%esp)\r
+ xorl %ecx,%edx\r
+ addl 32(%esp),%ebx\r
+ xorl %edi,%esi\r
+ shrdl $6,%edx,%edx\r
+ movl %eax,%ecx\r
+ addl %esi,%ebx\r
+ shrdl $9,%ecx,%ecx\r
+ addl %edx,%ebx\r
+ movl 8(%esp),%edi\r
+ xorl %eax,%ecx\r
+ movl %eax,4(%esp)\r
+ leal -4(%esp),%esp\r
+ shrdl $11,%ecx,%ecx\r
+ movl (%ebp),%esi\r
+ xorl %eax,%ecx\r
+ movl 20(%esp),%edx\r
+ xorl %edi,%eax\r
+ shrdl $2,%ecx,%ecx\r
+ addl %esi,%ebx\r
+ movl %eax,(%esp)\r
+ addl %ebx,%edx\r
+ andl 4(%esp),%eax\r
+ addl %ecx,%ebx\r
+ xorl %edi,%eax\r
+ addl $4,%ebp\r
+ addl %ebx,%eax\r
+ cmpl $3248222580,%esi\r
+ jne .L00600_15_shrd\r
+ movl 156(%esp),%ecx\r
+ jmp .L00716_63_shrd\r
+.align 16\r
+.L00716_63_shrd:\r
+ movl %ecx,%ebx\r
+ movl 104(%esp),%esi\r
+ shrdl $11,%ecx,%ecx\r
+ movl %esi,%edi\r
+ shrdl $2,%esi,%esi\r
+ xorl %ebx,%ecx\r
+ shrl $3,%ebx\r
+ shrdl $7,%ecx,%ecx\r
+ xorl %edi,%esi\r
+ xorl %ecx,%ebx\r
+ shrdl $17,%esi,%esi\r
+ addl 160(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 124(%esp),%ebx\r
+ movl %edx,%ecx\r
+ xorl %esi,%edi\r
+ movl 24(%esp),%esi\r
+ shrdl $14,%ecx,%ecx\r
+ addl %edi,%ebx\r
+ movl 28(%esp),%edi\r
+ xorl %edx,%ecx\r
+ xorl %edi,%esi\r
+ movl %ebx,96(%esp)\r
+ shrdl $5,%ecx,%ecx\r
+ andl %edx,%esi\r
+ movl %edx,20(%esp)\r
+ xorl %ecx,%edx\r
+ addl 32(%esp),%ebx\r
+ xorl %edi,%esi\r
+ shrdl $6,%edx,%edx\r
+ movl %eax,%ecx\r
+ addl %esi,%ebx\r
+ shrdl $9,%ecx,%ecx\r
+ addl %edx,%ebx\r
+ movl 8(%esp),%edi\r
+ xorl %eax,%ecx\r
+ movl %eax,4(%esp)\r
+ leal -4(%esp),%esp\r
+ shrdl $11,%ecx,%ecx\r
+ movl (%ebp),%esi\r
+ xorl %eax,%ecx\r
+ movl 20(%esp),%edx\r
+ xorl %edi,%eax\r
+ shrdl $2,%ecx,%ecx\r
+ addl %esi,%ebx\r
+ movl %eax,(%esp)\r
+ addl %ebx,%edx\r
+ andl 4(%esp),%eax\r
+ addl %ecx,%ebx\r
+ xorl %edi,%eax\r
+ movl 156(%esp),%ecx\r
+ addl $4,%ebp\r
+ addl %ebx,%eax\r
+ cmpl $3329325298,%esi\r
+ jne .L00716_63_shrd\r
+ movl 356(%esp),%esi\r
+ movl 8(%esp),%ebx\r
+ movl 16(%esp),%ecx\r
+ addl (%esi),%eax\r
+ addl 4(%esi),%ebx\r
+ addl 8(%esi),%edi\r
+ addl 12(%esi),%ecx\r
+ movl %eax,(%esi)\r
+ movl %ebx,4(%esi)\r
+ movl %edi,8(%esi)\r
+ movl %ecx,12(%esi)\r
+ movl 24(%esp),%eax\r
+ movl 28(%esp),%ebx\r
+ movl 32(%esp),%ecx\r
+ movl 360(%esp),%edi\r
+ addl 16(%esi),%edx\r
+ addl 20(%esi),%eax\r
+ addl 24(%esi),%ebx\r
+ addl 28(%esi),%ecx\r
+ movl %edx,16(%esi)\r
+ movl %eax,20(%esi)\r
+ movl %ebx,24(%esi)\r
+ movl %ecx,28(%esi)\r
+ leal 356(%esp),%esp\r
+ subl $256,%ebp\r
+ cmpl 8(%esp),%edi\r
+ jb .L005loop_shrd\r
+ movl 12(%esp),%esp\r
+ popl %edi\r
+ popl %esi\r
+ popl %ebx\r
+ popl %ebp\r
+ ret\r
+.align 64\r
+.L001K256:\r
+.long 1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298\r
+.long 66051,67438087,134810123,202182159\r
+.byte 83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97\r
+.byte 110,115,102,111,114,109,32,102,111,114,32,120,56,54,44,32\r
+.byte 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97\r
+.byte 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103\r
+.byte 62,0\r
+.align 16\r
+.L008unrolled:\r
+ leal -96(%esp),%esp\r
+ movl (%esi),%eax\r
+ movl 4(%esi),%ebp\r
+ movl 8(%esi),%ecx\r
+ movl 12(%esi),%ebx\r
+ movl %ebp,4(%esp)\r
+ xorl %ecx,%ebp\r
+ movl %ecx,8(%esp)\r
+ movl %ebx,12(%esp)\r
+ movl 16(%esi),%edx\r
+ movl 20(%esi),%ebx\r
+ movl 24(%esi),%ecx\r
+ movl 28(%esi),%esi\r
+ movl %ebx,20(%esp)\r
+ movl %ecx,24(%esp)\r
+ movl %esi,28(%esp)\r
+ jmp .L009grand_loop\r
+.align 16\r
+.L009grand_loop:\r
+ movl (%edi),%ebx\r
+ movl 4(%edi),%ecx\r
+ bswap %ebx\r
+ movl 8(%edi),%esi\r
+ bswap %ecx\r
+ movl %ebx,32(%esp)\r
+ bswap %esi\r
+ movl %ecx,36(%esp)\r
+ movl %esi,40(%esp)\r
+ movl 12(%edi),%ebx\r
+ movl 16(%edi),%ecx\r
+ bswap %ebx\r
+ movl 20(%edi),%esi\r
+ bswap %ecx\r
+ movl %ebx,44(%esp)\r
+ bswap %esi\r
+ movl %ecx,48(%esp)\r
+ movl %esi,52(%esp)\r
+ movl 24(%edi),%ebx\r
+ movl 28(%edi),%ecx\r
+ bswap %ebx\r
+ movl 32(%edi),%esi\r
+ bswap %ecx\r
+ movl %ebx,56(%esp)\r
+ bswap %esi\r
+ movl %ecx,60(%esp)\r
+ movl %esi,64(%esp)\r
+ movl 36(%edi),%ebx\r
+ movl 40(%edi),%ecx\r
+ bswap %ebx\r
+ movl 44(%edi),%esi\r
+ bswap %ecx\r
+ movl %ebx,68(%esp)\r
+ bswap %esi\r
+ movl %ecx,72(%esp)\r
+ movl %esi,76(%esp)\r
+ movl 48(%edi),%ebx\r
+ movl 52(%edi),%ecx\r
+ bswap %ebx\r
+ movl 56(%edi),%esi\r
+ bswap %ecx\r
+ movl %ebx,80(%esp)\r
+ bswap %esi\r
+ movl %ecx,84(%esp)\r
+ movl %esi,88(%esp)\r
+ movl 60(%edi),%ebx\r
+ addl $64,%edi\r
+ bswap %ebx\r
+ movl %edi,100(%esp)\r
+ movl %ebx,92(%esp)\r
+ movl %edx,%ecx\r
+ movl 20(%esp),%esi\r
+ rorl $14,%edx\r
+ movl 24(%esp),%edi\r
+ xorl %ecx,%edx\r
+ movl 32(%esp),%ebx\r
+ xorl %edi,%esi\r
+ rorl $5,%edx\r
+ andl %ecx,%esi\r
+ movl %ecx,16(%esp)\r
+ xorl %ecx,%edx\r
+ addl 28(%esp),%ebx\r
+ xorl %esi,%edi\r
+ rorl $6,%edx\r
+ movl %eax,%ecx\r
+ addl %edi,%ebx\r
+ rorl $9,%ecx\r
+ movl %eax,%esi\r
+ movl 4(%esp),%edi\r
+ xorl %eax,%ecx\r
+ movl %eax,(%esp)\r
+ xorl %edi,%eax\r
+ rorl $11,%ecx\r
+ andl %eax,%ebp\r
+ leal 1116352408(%ebx,%edx,1),%edx\r
+ xorl %esi,%ecx\r
+ xorl %edi,%ebp\r
+ rorl $2,%ecx\r
+ addl %edx,%ebp\r
+ addl 12(%esp),%edx\r
+ addl %ecx,%ebp\r
+ movl %edx,%esi\r
+ movl 16(%esp),%ecx\r
+ rorl $14,%edx\r
+ movl 20(%esp),%edi\r
+ xorl %esi,%edx\r
+ movl 36(%esp),%ebx\r
+ xorl %edi,%ecx\r
+ rorl $5,%edx\r
+ andl %esi,%ecx\r
+ movl %esi,12(%esp)\r
+ xorl %esi,%edx\r
+ addl 24(%esp),%ebx\r
+ xorl %ecx,%edi\r
+ rorl $6,%edx\r
+ movl %ebp,%esi\r
+ addl %edi,%ebx\r
+ rorl $9,%esi\r
+ movl %ebp,%ecx\r
+ movl (%esp),%edi\r
+ xorl %ebp,%esi\r
+ movl %ebp,28(%esp)\r
+ xorl %edi,%ebp\r
+ rorl $11,%esi\r
+ andl %ebp,%eax\r
+ leal 1899447441(%ebx,%edx,1),%edx\r
+ xorl %ecx,%esi\r
+ xorl %edi,%eax\r
+ rorl $2,%esi\r
+ addl %edx,%eax\r
+ addl 8(%esp),%edx\r
+ addl %esi,%eax\r
+ movl %edx,%ecx\r
+ movl 12(%esp),%esi\r
+ rorl $14,%edx\r
+ movl 16(%esp),%edi\r
+ xorl %ecx,%edx\r
+ movl 40(%esp),%ebx\r
+ xorl %edi,%esi\r
+ rorl $5,%edx\r
+ andl %ecx,%esi\r
+ movl %ecx,8(%esp)\r
+ xorl %ecx,%edx\r
+ addl 20(%esp),%ebx\r
+ xorl %esi,%edi\r
+ rorl $6,%edx\r
+ movl %eax,%ecx\r
+ addl %edi,%ebx\r
+ rorl $9,%ecx\r
+ movl %eax,%esi\r
+ movl 28(%esp),%edi\r
+ xorl %eax,%ecx\r
+ movl %eax,24(%esp)\r
+ xorl %edi,%eax\r
+ rorl $11,%ecx\r
+ andl %eax,%ebp\r
+ leal 3049323471(%ebx,%edx,1),%edx\r
+ xorl %esi,%ecx\r
+ xorl %edi,%ebp\r
+ rorl $2,%ecx\r
+ addl %edx,%ebp\r
+ addl 4(%esp),%edx\r
+ addl %ecx,%ebp\r
+ movl %edx,%esi\r
+ movl 8(%esp),%ecx\r
+ rorl $14,%edx\r
+ movl 12(%esp),%edi\r
+ xorl %esi,%edx\r
+ movl 44(%esp),%ebx\r
+ xorl %edi,%ecx\r
+ rorl $5,%edx\r
+ andl %esi,%ecx\r
+ movl %esi,4(%esp)\r
+ xorl %esi,%edx\r
+ addl 16(%esp),%ebx\r
+ xorl %ecx,%edi\r
+ rorl $6,%edx\r
+ movl %ebp,%esi\r
+ addl %edi,%ebx\r
+ rorl $9,%esi\r
+ movl %ebp,%ecx\r
+ movl 24(%esp),%edi\r
+ xorl %ebp,%esi\r
+ movl %ebp,20(%esp)\r
+ xorl %edi,%ebp\r
+ rorl $11,%esi\r
+ andl %ebp,%eax\r
+ leal 3921009573(%ebx,%edx,1),%edx\r
+ xorl %ecx,%esi\r
+ xorl %edi,%eax\r
+ rorl $2,%esi\r
+ addl %edx,%eax\r
+ addl (%esp),%edx\r
+ addl %esi,%eax\r
+ movl %edx,%ecx\r
+ movl 4(%esp),%esi\r
+ rorl $14,%edx\r
+ movl 8(%esp),%edi\r
+ xorl %ecx,%edx\r
+ movl 48(%esp),%ebx\r
+ xorl %edi,%esi\r
+ rorl $5,%edx\r
+ andl %ecx,%esi\r
+ movl %ecx,(%esp)\r
+ xorl %ecx,%edx\r
+ addl 12(%esp),%ebx\r
+ xorl %esi,%edi\r
+ rorl $6,%edx\r
+ movl %eax,%ecx\r
+ addl %edi,%ebx\r
+ rorl $9,%ecx\r
+ movl %eax,%esi\r
+ movl 20(%esp),%edi\r
+ xorl %eax,%ecx\r
+ movl %eax,16(%esp)\r
+ xorl %edi,%eax\r
+ rorl $11,%ecx\r
+ andl %eax,%ebp\r
+ leal 961987163(%ebx,%edx,1),%edx\r
+ xorl %esi,%ecx\r
+ xorl %edi,%ebp\r
+ rorl $2,%ecx\r
+ addl %edx,%ebp\r
+ addl 28(%esp),%edx\r
+ addl %ecx,%ebp\r
+ movl %edx,%esi\r
+ movl (%esp),%ecx\r
+ rorl $14,%edx\r
+ movl 4(%esp),%edi\r
+ xorl %esi,%edx\r
+ movl 52(%esp),%ebx\r
+ xorl %edi,%ecx\r
+ rorl $5,%edx\r
+ andl %esi,%ecx\r
+ movl %esi,28(%esp)\r
+ xorl %esi,%edx\r
+ addl 8(%esp),%ebx\r
+ xorl %ecx,%edi\r
+ rorl $6,%edx\r
+ movl %ebp,%esi\r
+ addl %edi,%ebx\r
+ rorl $9,%esi\r
+ movl %ebp,%ecx\r
+ movl 16(%esp),%edi\r
+ xorl %ebp,%esi\r
+ movl %ebp,12(%esp)\r
+ xorl %edi,%ebp\r
+ rorl $11,%esi\r
+ andl %ebp,%eax\r
+ leal 1508970993(%ebx,%edx,1),%edx\r
+ xorl %ecx,%esi\r
+ xorl %edi,%eax\r
+ rorl $2,%esi\r
+ addl %edx,%eax\r
+ addl 24(%esp),%edx\r
+ addl %esi,%eax\r
+ movl %edx,%ecx\r
+ movl 28(%esp),%esi\r
+ rorl $14,%edx\r
+ movl (%esp),%edi\r
+ xorl %ecx,%edx\r
+ movl 56(%esp),%ebx\r
+ xorl %edi,%esi\r
+ rorl $5,%edx\r
+ andl %ecx,%esi\r
+ movl %ecx,24(%esp)\r
+ xorl %ecx,%edx\r
+ addl 4(%esp),%ebx\r
+ xorl %esi,%edi\r
+ rorl $6,%edx\r
+ movl %eax,%ecx\r
+ addl %edi,%ebx\r
+ rorl $9,%ecx\r
+ movl %eax,%esi\r
+ movl 12(%esp),%edi\r
+ xorl %eax,%ecx\r
+ movl %eax,8(%esp)\r
+ xorl %edi,%eax\r
+ rorl $11,%ecx\r
+ andl %eax,%ebp\r
+ leal 2453635748(%ebx,%edx,1),%edx\r
+ xorl %esi,%ecx\r
+ xorl %edi,%ebp\r
+ rorl $2,%ecx\r
+ addl %edx,%ebp\r
+ addl 20(%esp),%edx\r
+ addl %ecx,%ebp\r
+ movl %edx,%esi\r
+ movl 24(%esp),%ecx\r
+ rorl $14,%edx\r
+ movl 28(%esp),%edi\r
+ xorl %esi,%edx\r
+ movl 60(%esp),%ebx\r
+ xorl %edi,%ecx\r
+ rorl $5,%edx\r
+ andl %esi,%ecx\r
+ movl %esi,20(%esp)\r
+ xorl %esi,%edx\r
+ addl (%esp),%ebx\r
+ xorl %ecx,%edi\r
+ rorl $6,%edx\r
+ movl %ebp,%esi\r
+ addl %edi,%ebx\r
+ rorl $9,%esi\r
+ movl %ebp,%ecx\r
+ movl 8(%esp),%edi\r
+ xorl %ebp,%esi\r
+ movl %ebp,4(%esp)\r
+ xorl %edi,%ebp\r
+ rorl $11,%esi\r
+ andl %ebp,%eax\r
+ leal 2870763221(%ebx,%edx,1),%edx\r
+ xorl %ecx,%esi\r
+ xorl %edi,%eax\r
+ rorl $2,%esi\r
+ addl %edx,%eax\r
+ addl 16(%esp),%edx\r
+ addl %esi,%eax\r
+ movl %edx,%ecx\r
+ movl 20(%esp),%esi\r
+ rorl $14,%edx\r
+ movl 24(%esp),%edi\r
+ xorl %ecx,%edx\r
+ movl 64(%esp),%ebx\r
+ xorl %edi,%esi\r
+ rorl $5,%edx\r
+ andl %ecx,%esi\r
+ movl %ecx,16(%esp)\r
+ xorl %ecx,%edx\r
+ addl 28(%esp),%ebx\r
+ xorl %esi,%edi\r
+ rorl $6,%edx\r
+ movl %eax,%ecx\r
+ addl %edi,%ebx\r
+ rorl $9,%ecx\r
+ movl %eax,%esi\r
+ movl 4(%esp),%edi\r
+ xorl %eax,%ecx\r
+ movl %eax,(%esp)\r
+ xorl %edi,%eax\r
+ rorl $11,%ecx\r
+ andl %eax,%ebp\r
+ leal 3624381080(%ebx,%edx,1),%edx\r
+ xorl %esi,%ecx\r
+ xorl %edi,%ebp\r
+ rorl $2,%ecx\r
+ addl %edx,%ebp\r
+ addl 12(%esp),%edx\r
+ addl %ecx,%ebp\r
+ movl %edx,%esi\r
+ movl 16(%esp),%ecx\r
+ rorl $14,%edx\r
+ movl 20(%esp),%edi\r
+ xorl %esi,%edx\r
+ movl 68(%esp),%ebx\r
+ xorl %edi,%ecx\r
+ rorl $5,%edx\r
+ andl %esi,%ecx\r
+ movl %esi,12(%esp)\r
+ xorl %esi,%edx\r
+ addl 24(%esp),%ebx\r
+ xorl %ecx,%edi\r
+ rorl $6,%edx\r
+ movl %ebp,%esi\r
+ addl %edi,%ebx\r
+ rorl $9,%esi\r
+ movl %ebp,%ecx\r
+ movl (%esp),%edi\r
+ xorl %ebp,%esi\r
+ movl %ebp,28(%esp)\r
+ xorl %edi,%ebp\r
+ rorl $11,%esi\r
+ andl %ebp,%eax\r
+ leal 310598401(%ebx,%edx,1),%edx\r
+ xorl %ecx,%esi\r
+ xorl %edi,%eax\r
+ rorl $2,%esi\r
+ addl %edx,%eax\r
+ addl 8(%esp),%edx\r
+ addl %esi,%eax\r
+ movl %edx,%ecx\r
+ movl 12(%esp),%esi\r
+ rorl $14,%edx\r
+ movl 16(%esp),%edi\r
+ xorl %ecx,%edx\r
+ movl 72(%esp),%ebx\r
+ xorl %edi,%esi\r
+ rorl $5,%edx\r
+ andl %ecx,%esi\r
+ movl %ecx,8(%esp)\r
+ xorl %ecx,%edx\r
+ addl 20(%esp),%ebx\r
+ xorl %esi,%edi\r
+ rorl $6,%edx\r
+ movl %eax,%ecx\r
+ addl %edi,%ebx\r
+ rorl $9,%ecx\r
+ movl %eax,%esi\r
+ movl 28(%esp),%edi\r
+ xorl %eax,%ecx\r
+ movl %eax,24(%esp)\r
+ xorl %edi,%eax\r
+ rorl $11,%ecx\r
+ andl %eax,%ebp\r
+ leal 607225278(%ebx,%edx,1),%edx\r
+ xorl %esi,%ecx\r
+ xorl %edi,%ebp\r
+ rorl $2,%ecx\r
+ addl %edx,%ebp\r
+ addl 4(%esp),%edx\r
+ addl %ecx,%ebp\r
+ movl %edx,%esi\r
+ movl 8(%esp),%ecx\r
+ rorl $14,%edx\r
+ movl 12(%esp),%edi\r
+ xorl %esi,%edx\r
+ movl 76(%esp),%ebx\r
+ xorl %edi,%ecx\r
+ rorl $5,%edx\r
+ andl %esi,%ecx\r
+ movl %esi,4(%esp)\r
+ xorl %esi,%edx\r
+ addl 16(%esp),%ebx\r
+ xorl %ecx,%edi\r
+ rorl $6,%edx\r
+ movl %ebp,%esi\r
+ addl %edi,%ebx\r
+ rorl $9,%esi\r
+ movl %ebp,%ecx\r
+ movl 24(%esp),%edi\r
+ xorl %ebp,%esi\r
+ movl %ebp,20(%esp)\r
+ xorl %edi,%ebp\r
+ rorl $11,%esi\r
+ andl %ebp,%eax\r
+ leal 1426881987(%ebx,%edx,1),%edx\r
+ xorl %ecx,%esi\r
+ xorl %edi,%eax\r
+ rorl $2,%esi\r
+ addl %edx,%eax\r
+ addl (%esp),%edx\r
+ addl %esi,%eax\r
+ movl %edx,%ecx\r
+ movl 4(%esp),%esi\r
+ rorl $14,%edx\r
+ movl 8(%esp),%edi\r
+ xorl %ecx,%edx\r
+ movl 80(%esp),%ebx\r
+ xorl %edi,%esi\r
+ rorl $5,%edx\r
+ andl %ecx,%esi\r
+ movl %ecx,(%esp)\r
+ xorl %ecx,%edx\r
+ addl 12(%esp),%ebx\r
+ xorl %esi,%edi\r
+ rorl $6,%edx\r
+ movl %eax,%ecx\r
+ addl %edi,%ebx\r
+ rorl $9,%ecx\r
+ movl %eax,%esi\r
+ movl 20(%esp),%edi\r
+ xorl %eax,%ecx\r
+ movl %eax,16(%esp)\r
+ xorl %edi,%eax\r
+ rorl $11,%ecx\r
+ andl %eax,%ebp\r
+ leal 1925078388(%ebx,%edx,1),%edx\r
+ xorl %esi,%ecx\r
+ xorl %edi,%ebp\r
+ rorl $2,%ecx\r
+ addl %edx,%ebp\r
+ addl 28(%esp),%edx\r
+ addl %ecx,%ebp\r
+ movl %edx,%esi\r
+ movl (%esp),%ecx\r
+ rorl $14,%edx\r
+ movl 4(%esp),%edi\r
+ xorl %esi,%edx\r
+ movl 84(%esp),%ebx\r
+ xorl %edi,%ecx\r
+ rorl $5,%edx\r
+ andl %esi,%ecx\r
+ movl %esi,28(%esp)\r
+ xorl %esi,%edx\r
+ addl 8(%esp),%ebx\r
+ xorl %ecx,%edi\r
+ rorl $6,%edx\r
+ movl %ebp,%esi\r
+ addl %edi,%ebx\r
+ rorl $9,%esi\r
+ movl %ebp,%ecx\r
+ movl 16(%esp),%edi\r
+ xorl %ebp,%esi\r
+ movl %ebp,12(%esp)\r
+ xorl %edi,%ebp\r
+ rorl $11,%esi\r
+ andl %ebp,%eax\r
+ leal 2162078206(%ebx,%edx,1),%edx\r
+ xorl %ecx,%esi\r
+ xorl %edi,%eax\r
+ rorl $2,%esi\r
+ addl %edx,%eax\r
+ addl 24(%esp),%edx\r
+ addl %esi,%eax\r
+ movl %edx,%ecx\r
+ movl 28(%esp),%esi\r
+ rorl $14,%edx\r
+ movl (%esp),%edi\r
+ xorl %ecx,%edx\r
+ movl 88(%esp),%ebx\r
+ xorl %edi,%esi\r
+ rorl $5,%edx\r
+ andl %ecx,%esi\r
+ movl %ecx,24(%esp)\r
+ xorl %ecx,%edx\r
+ addl 4(%esp),%ebx\r
+ xorl %esi,%edi\r
+ rorl $6,%edx\r
+ movl %eax,%ecx\r
+ addl %edi,%ebx\r
+ rorl $9,%ecx\r
+ movl %eax,%esi\r
+ movl 12(%esp),%edi\r
+ xorl %eax,%ecx\r
+ movl %eax,8(%esp)\r
+ xorl %edi,%eax\r
+ rorl $11,%ecx\r
+ andl %eax,%ebp\r
+ leal 2614888103(%ebx,%edx,1),%edx\r
+ xorl %esi,%ecx\r
+ xorl %edi,%ebp\r
+ rorl $2,%ecx\r
+ addl %edx,%ebp\r
+ addl 20(%esp),%edx\r
+ addl %ecx,%ebp\r
+ movl %edx,%esi\r
+ movl 24(%esp),%ecx\r
+ rorl $14,%edx\r
+ movl 28(%esp),%edi\r
+ xorl %esi,%edx\r
+ movl 92(%esp),%ebx\r
+ xorl %edi,%ecx\r
+ rorl $5,%edx\r
+ andl %esi,%ecx\r
+ movl %esi,20(%esp)\r
+ xorl %esi,%edx\r
+ addl (%esp),%ebx\r
+ xorl %ecx,%edi\r
+ rorl $6,%edx\r
+ movl %ebp,%esi\r
+ addl %edi,%ebx\r
+ rorl $9,%esi\r
+ movl %ebp,%ecx\r
+ movl 8(%esp),%edi\r
+ xorl %ebp,%esi\r
+ movl %ebp,4(%esp)\r
+ xorl %edi,%ebp\r
+ rorl $11,%esi\r
+ andl %ebp,%eax\r
+ leal 3248222580(%ebx,%edx,1),%edx\r
+ xorl %ecx,%esi\r
+ xorl %edi,%eax\r
+ movl 36(%esp),%ecx\r
+ rorl $2,%esi\r
+ addl %edx,%eax\r
+ addl 16(%esp),%edx\r
+ addl %esi,%eax\r
+ movl 88(%esp),%esi\r
+ movl %ecx,%ebx\r
+ rorl $11,%ecx\r
+ movl %esi,%edi\r
+ rorl $2,%esi\r
+ xorl %ebx,%ecx\r
+ shrl $3,%ebx\r
+ rorl $7,%ecx\r
+ xorl %edi,%esi\r
+ xorl %ecx,%ebx\r
+ rorl $17,%esi\r
+ addl 32(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 68(%esp),%ebx\r
+ movl %edx,%ecx\r
+ xorl %esi,%edi\r
+ movl 20(%esp),%esi\r
+ rorl $14,%edx\r
+ addl %edi,%ebx\r
+ movl 24(%esp),%edi\r
+ xorl %ecx,%edx\r
+ movl %ebx,32(%esp)\r
+ xorl %edi,%esi\r
+ rorl $5,%edx\r
+ andl %ecx,%esi\r
+ movl %ecx,16(%esp)\r
+ xorl %ecx,%edx\r
+ addl 28(%esp),%ebx\r
+ xorl %esi,%edi\r
+ rorl $6,%edx\r
+ movl %eax,%ecx\r
+ addl %edi,%ebx\r
+ rorl $9,%ecx\r
+ movl %eax,%esi\r
+ movl 4(%esp),%edi\r
+ xorl %eax,%ecx\r
+ movl %eax,(%esp)\r
+ xorl %edi,%eax\r
+ rorl $11,%ecx\r
+ andl %eax,%ebp\r
+ leal 3835390401(%ebx,%edx,1),%edx\r
+ xorl %esi,%ecx\r
+ xorl %edi,%ebp\r
+ movl 40(%esp),%esi\r
+ rorl $2,%ecx\r
+ addl %edx,%ebp\r
+ addl 12(%esp),%edx\r
+ addl %ecx,%ebp\r
+ movl 92(%esp),%ecx\r
+ movl %esi,%ebx\r
+ rorl $11,%esi\r
+ movl %ecx,%edi\r
+ rorl $2,%ecx\r
+ xorl %ebx,%esi\r
+ shrl $3,%ebx\r
+ rorl $7,%esi\r
+ xorl %edi,%ecx\r
+ xorl %esi,%ebx\r
+ rorl $17,%ecx\r
+ addl 36(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 72(%esp),%ebx\r
+ movl %edx,%esi\r
+ xorl %ecx,%edi\r
+ movl 16(%esp),%ecx\r
+ rorl $14,%edx\r
+ addl %edi,%ebx\r
+ movl 20(%esp),%edi\r
+ xorl %esi,%edx\r
+ movl %ebx,36(%esp)\r
+ xorl %edi,%ecx\r
+ rorl $5,%edx\r
+ andl %esi,%ecx\r
+ movl %esi,12(%esp)\r
+ xorl %esi,%edx\r
+ addl 24(%esp),%ebx\r
+ xorl %ecx,%edi\r
+ rorl $6,%edx\r
+ movl %ebp,%esi\r
+ addl %edi,%ebx\r
+ rorl $9,%esi\r
+ movl %ebp,%ecx\r
+ movl (%esp),%edi\r
+ xorl %ebp,%esi\r
+ movl %ebp,28(%esp)\r
+ xorl %edi,%ebp\r
+ rorl $11,%esi\r
+ andl %ebp,%eax\r
+ leal 4022224774(%ebx,%edx,1),%edx\r
+ xorl %ecx,%esi\r
+ xorl %edi,%eax\r
+ movl 44(%esp),%ecx\r
+ rorl $2,%esi\r
+ addl %edx,%eax\r
+ addl 8(%esp),%edx\r
+ addl %esi,%eax\r
+ movl 32(%esp),%esi\r
+ movl %ecx,%ebx\r
+ rorl $11,%ecx\r
+ movl %esi,%edi\r
+ rorl $2,%esi\r
+ xorl %ebx,%ecx\r
+ shrl $3,%ebx\r
+ rorl $7,%ecx\r
+ xorl %edi,%esi\r
+ xorl %ecx,%ebx\r
+ rorl $17,%esi\r
+ addl 40(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 76(%esp),%ebx\r
+ movl %edx,%ecx\r
+ xorl %esi,%edi\r
+ movl 12(%esp),%esi\r
+ rorl $14,%edx\r
+ addl %edi,%ebx\r
+ movl 16(%esp),%edi\r
+ xorl %ecx,%edx\r
+ movl %ebx,40(%esp)\r
+ xorl %edi,%esi\r
+ rorl $5,%edx\r
+ andl %ecx,%esi\r
+ movl %ecx,8(%esp)\r
+ xorl %ecx,%edx\r
+ addl 20(%esp),%ebx\r
+ xorl %esi,%edi\r
+ rorl $6,%edx\r
+ movl %eax,%ecx\r
+ addl %edi,%ebx\r
+ rorl $9,%ecx\r
+ movl %eax,%esi\r
+ movl 28(%esp),%edi\r
+ xorl %eax,%ecx\r
+ movl %eax,24(%esp)\r
+ xorl %edi,%eax\r
+ rorl $11,%ecx\r
+ andl %eax,%ebp\r
+ leal 264347078(%ebx,%edx,1),%edx\r
+ xorl %esi,%ecx\r
+ xorl %edi,%ebp\r
+ movl 48(%esp),%esi\r
+ rorl $2,%ecx\r
+ addl %edx,%ebp\r
+ addl 4(%esp),%edx\r
+ addl %ecx,%ebp\r
+ movl 36(%esp),%ecx\r
+ movl %esi,%ebx\r
+ rorl $11,%esi\r
+ movl %ecx,%edi\r
+ rorl $2,%ecx\r
+ xorl %ebx,%esi\r
+ shrl $3,%ebx\r
+ rorl $7,%esi\r
+ xorl %edi,%ecx\r
+ xorl %esi,%ebx\r
+ rorl $17,%ecx\r
+ addl 44(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 80(%esp),%ebx\r
+ movl %edx,%esi\r
+ xorl %ecx,%edi\r
+ movl 8(%esp),%ecx\r
+ rorl $14,%edx\r
+ addl %edi,%ebx\r
+ movl 12(%esp),%edi\r
+ xorl %esi,%edx\r
+ movl %ebx,44(%esp)\r
+ xorl %edi,%ecx\r
+ rorl $5,%edx\r
+ andl %esi,%ecx\r
+ movl %esi,4(%esp)\r
+ xorl %esi,%edx\r
+ addl 16(%esp),%ebx\r
+ xorl %ecx,%edi\r
+ rorl $6,%edx\r
+ movl %ebp,%esi\r
+ addl %edi,%ebx\r
+ rorl $9,%esi\r
+ movl %ebp,%ecx\r
+ movl 24(%esp),%edi\r
+ xorl %ebp,%esi\r
+ movl %ebp,20(%esp)\r
+ xorl %edi,%ebp\r
+ rorl $11,%esi\r
+ andl %ebp,%eax\r
+ leal 604807628(%ebx,%edx,1),%edx\r
+ xorl %ecx,%esi\r
+ xorl %edi,%eax\r
+ movl 52(%esp),%ecx\r
+ rorl $2,%esi\r
+ addl %edx,%eax\r
+ addl (%esp),%edx\r
+ addl %esi,%eax\r
+ movl 40(%esp),%esi\r
+ movl %ecx,%ebx\r
+ rorl $11,%ecx\r
+ movl %esi,%edi\r
+ rorl $2,%esi\r
+ xorl %ebx,%ecx\r
+ shrl $3,%ebx\r
+ rorl $7,%ecx\r
+ xorl %edi,%esi\r
+ xorl %ecx,%ebx\r
+ rorl $17,%esi\r
+ addl 48(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 84(%esp),%ebx\r
+ movl %edx,%ecx\r
+ xorl %esi,%edi\r
+ movl 4(%esp),%esi\r
+ rorl $14,%edx\r
+ addl %edi,%ebx\r
+ movl 8(%esp),%edi\r
+ xorl %ecx,%edx\r
+ movl %ebx,48(%esp)\r
+ xorl %edi,%esi\r
+ rorl $5,%edx\r
+ andl %ecx,%esi\r
+ movl %ecx,(%esp)\r
+ xorl %ecx,%edx\r
+ addl 12(%esp),%ebx\r
+ xorl %esi,%edi\r
+ rorl $6,%edx\r
+ movl %eax,%ecx\r
+ addl %edi,%ebx\r
+ rorl $9,%ecx\r
+ movl %eax,%esi\r
+ movl 20(%esp),%edi\r
+ xorl %eax,%ecx\r
+ movl %eax,16(%esp)\r
+ xorl %edi,%eax\r
+ rorl $11,%ecx\r
+ andl %eax,%ebp\r
+ leal 770255983(%ebx,%edx,1),%edx\r
+ xorl %esi,%ecx\r
+ xorl %edi,%ebp\r
+ movl 56(%esp),%esi\r
+ rorl $2,%ecx\r
+ addl %edx,%ebp\r
+ addl 28(%esp),%edx\r
+ addl %ecx,%ebp\r
+ movl 44(%esp),%ecx\r
+ movl %esi,%ebx\r
+ rorl $11,%esi\r
+ movl %ecx,%edi\r
+ rorl $2,%ecx\r
+ xorl %ebx,%esi\r
+ shrl $3,%ebx\r
+ rorl $7,%esi\r
+ xorl %edi,%ecx\r
+ xorl %esi,%ebx\r
+ rorl $17,%ecx\r
+ addl 52(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 88(%esp),%ebx\r
+ movl %edx,%esi\r
+ xorl %ecx,%edi\r
+ movl (%esp),%ecx\r
+ rorl $14,%edx\r
+ addl %edi,%ebx\r
+ movl 4(%esp),%edi\r
+ xorl %esi,%edx\r
+ movl %ebx,52(%esp)\r
+ xorl %edi,%ecx\r
+ rorl $5,%edx\r
+ andl %esi,%ecx\r
+ movl %esi,28(%esp)\r
+ xorl %esi,%edx\r
+ addl 8(%esp),%ebx\r
+ xorl %ecx,%edi\r
+ rorl $6,%edx\r
+ movl %ebp,%esi\r
+ addl %edi,%ebx\r
+ rorl $9,%esi\r
+ movl %ebp,%ecx\r
+ movl 16(%esp),%edi\r
+ xorl %ebp,%esi\r
+ movl %ebp,12(%esp)\r
+ xorl %edi,%ebp\r
+ rorl $11,%esi\r
+ andl %ebp,%eax\r
+ leal 1249150122(%ebx,%edx,1),%edx\r
+ xorl %ecx,%esi\r
+ xorl %edi,%eax\r
+ movl 60(%esp),%ecx\r
+ rorl $2,%esi\r
+ addl %edx,%eax\r
+ addl 24(%esp),%edx\r
+ addl %esi,%eax\r
+ movl 48(%esp),%esi\r
+ movl %ecx,%ebx\r
+ rorl $11,%ecx\r
+ movl %esi,%edi\r
+ rorl $2,%esi\r
+ xorl %ebx,%ecx\r
+ shrl $3,%ebx\r
+ rorl $7,%ecx\r
+ xorl %edi,%esi\r
+ xorl %ecx,%ebx\r
+ rorl $17,%esi\r
+ addl 56(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 92(%esp),%ebx\r
+ movl %edx,%ecx\r
+ xorl %esi,%edi\r
+ movl 28(%esp),%esi\r
+ rorl $14,%edx\r
+ addl %edi,%ebx\r
+ movl (%esp),%edi\r
+ xorl %ecx,%edx\r
+ movl %ebx,56(%esp)\r
+ xorl %edi,%esi\r
+ rorl $5,%edx\r
+ andl %ecx,%esi\r
+ movl %ecx,24(%esp)\r
+ xorl %ecx,%edx\r
+ addl 4(%esp),%ebx\r
+ xorl %esi,%edi\r
+ rorl $6,%edx\r
+ movl %eax,%ecx\r
+ addl %edi,%ebx\r
+ rorl $9,%ecx\r
+ movl %eax,%esi\r
+ movl 12(%esp),%edi\r
+ xorl %eax,%ecx\r
+ movl %eax,8(%esp)\r
+ xorl %edi,%eax\r
+ rorl $11,%ecx\r
+ andl %eax,%ebp\r
+ leal 1555081692(%ebx,%edx,1),%edx\r
+ xorl %esi,%ecx\r
+ xorl %edi,%ebp\r
+ movl 64(%esp),%esi\r
+ rorl $2,%ecx\r
+ addl %edx,%ebp\r
+ addl 20(%esp),%edx\r
+ addl %ecx,%ebp\r
+ movl 52(%esp),%ecx\r
+ movl %esi,%ebx\r
+ rorl $11,%esi\r
+ movl %ecx,%edi\r
+ rorl $2,%ecx\r
+ xorl %ebx,%esi\r
+ shrl $3,%ebx\r
+ rorl $7,%esi\r
+ xorl %edi,%ecx\r
+ xorl %esi,%ebx\r
+ rorl $17,%ecx\r
+ addl 60(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 32(%esp),%ebx\r
+ movl %edx,%esi\r
+ xorl %ecx,%edi\r
+ movl 24(%esp),%ecx\r
+ rorl $14,%edx\r
+ addl %edi,%ebx\r
+ movl 28(%esp),%edi\r
+ xorl %esi,%edx\r
+ movl %ebx,60(%esp)\r
+ xorl %edi,%ecx\r
+ rorl $5,%edx\r
+ andl %esi,%ecx\r
+ movl %esi,20(%esp)\r
+ xorl %esi,%edx\r
+ addl (%esp),%ebx\r
+ xorl %ecx,%edi\r
+ rorl $6,%edx\r
+ movl %ebp,%esi\r
+ addl %edi,%ebx\r
+ rorl $9,%esi\r
+ movl %ebp,%ecx\r
+ movl 8(%esp),%edi\r
+ xorl %ebp,%esi\r
+ movl %ebp,4(%esp)\r
+ xorl %edi,%ebp\r
+ rorl $11,%esi\r
+ andl %ebp,%eax\r
+ leal 1996064986(%ebx,%edx,1),%edx\r
+ xorl %ecx,%esi\r
+ xorl %edi,%eax\r
+ movl 68(%esp),%ecx\r
+ rorl $2,%esi\r
+ addl %edx,%eax\r
+ addl 16(%esp),%edx\r
+ addl %esi,%eax\r
+ movl 56(%esp),%esi\r
+ movl %ecx,%ebx\r
+ rorl $11,%ecx\r
+ movl %esi,%edi\r
+ rorl $2,%esi\r
+ xorl %ebx,%ecx\r
+ shrl $3,%ebx\r
+ rorl $7,%ecx\r
+ xorl %edi,%esi\r
+ xorl %ecx,%ebx\r
+ rorl $17,%esi\r
+ addl 64(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 36(%esp),%ebx\r
+ movl %edx,%ecx\r
+ xorl %esi,%edi\r
+ movl 20(%esp),%esi\r
+ rorl $14,%edx\r
+ addl %edi,%ebx\r
+ movl 24(%esp),%edi\r
+ xorl %ecx,%edx\r
+ movl %ebx,64(%esp)\r
+ xorl %edi,%esi\r
+ rorl $5,%edx\r
+ andl %ecx,%esi\r
+ movl %ecx,16(%esp)\r
+ xorl %ecx,%edx\r
+ addl 28(%esp),%ebx\r
+ xorl %esi,%edi\r
+ rorl $6,%edx\r
+ movl %eax,%ecx\r
+ addl %edi,%ebx\r
+ rorl $9,%ecx\r
+ movl %eax,%esi\r
+ movl 4(%esp),%edi\r
+ xorl %eax,%ecx\r
+ movl %eax,(%esp)\r
+ xorl %edi,%eax\r
+ rorl $11,%ecx\r
+ andl %eax,%ebp\r
+ leal 2554220882(%ebx,%edx,1),%edx\r
+ xorl %esi,%ecx\r
+ xorl %edi,%ebp\r
+ movl 72(%esp),%esi\r
+ rorl $2,%ecx\r
+ addl %edx,%ebp\r
+ addl 12(%esp),%edx\r
+ addl %ecx,%ebp\r
+ movl 60(%esp),%ecx\r
+ movl %esi,%ebx\r
+ rorl $11,%esi\r
+ movl %ecx,%edi\r
+ rorl $2,%ecx\r
+ xorl %ebx,%esi\r
+ shrl $3,%ebx\r
+ rorl $7,%esi\r
+ xorl %edi,%ecx\r
+ xorl %esi,%ebx\r
+ rorl $17,%ecx\r
+ addl 68(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 40(%esp),%ebx\r
+ movl %edx,%esi\r
+ xorl %ecx,%edi\r
+ movl 16(%esp),%ecx\r
+ rorl $14,%edx\r
+ addl %edi,%ebx\r
+ movl 20(%esp),%edi\r
+ xorl %esi,%edx\r
+ movl %ebx,68(%esp)\r
+ xorl %edi,%ecx\r
+ rorl $5,%edx\r
+ andl %esi,%ecx\r
+ movl %esi,12(%esp)\r
+ xorl %esi,%edx\r
+ addl 24(%esp),%ebx\r
+ xorl %ecx,%edi\r
+ rorl $6,%edx\r
+ movl %ebp,%esi\r
+ addl %edi,%ebx\r
+ rorl $9,%esi\r
+ movl %ebp,%ecx\r
+ movl (%esp),%edi\r
+ xorl %ebp,%esi\r
+ movl %ebp,28(%esp)\r
+ xorl %edi,%ebp\r
+ rorl $11,%esi\r
+ andl %ebp,%eax\r
+ leal 2821834349(%ebx,%edx,1),%edx\r
+ xorl %ecx,%esi\r
+ xorl %edi,%eax\r
+ movl 76(%esp),%ecx\r
+ rorl $2,%esi\r
+ addl %edx,%eax\r
+ addl 8(%esp),%edx\r
+ addl %esi,%eax\r
+ movl 64(%esp),%esi\r
+ movl %ecx,%ebx\r
+ rorl $11,%ecx\r
+ movl %esi,%edi\r
+ rorl $2,%esi\r
+ xorl %ebx,%ecx\r
+ shrl $3,%ebx\r
+ rorl $7,%ecx\r
+ xorl %edi,%esi\r
+ xorl %ecx,%ebx\r
+ rorl $17,%esi\r
+ addl 72(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 44(%esp),%ebx\r
+ movl %edx,%ecx\r
+ xorl %esi,%edi\r
+ movl 12(%esp),%esi\r
+ rorl $14,%edx\r
+ addl %edi,%ebx\r
+ movl 16(%esp),%edi\r
+ xorl %ecx,%edx\r
+ movl %ebx,72(%esp)\r
+ xorl %edi,%esi\r
+ rorl $5,%edx\r
+ andl %ecx,%esi\r
+ movl %ecx,8(%esp)\r
+ xorl %ecx,%edx\r
+ addl 20(%esp),%ebx\r
+ xorl %esi,%edi\r
+ rorl $6,%edx\r
+ movl %eax,%ecx\r
+ addl %edi,%ebx\r
+ rorl $9,%ecx\r
+ movl %eax,%esi\r
+ movl 28(%esp),%edi\r
+ xorl %eax,%ecx\r
+ movl %eax,24(%esp)\r
+ xorl %edi,%eax\r
+ rorl $11,%ecx\r
+ andl %eax,%ebp\r
+ leal 2952996808(%ebx,%edx,1),%edx\r
+ xorl %esi,%ecx\r
+ xorl %edi,%ebp\r
+ movl 80(%esp),%esi\r
+ rorl $2,%ecx\r
+ addl %edx,%ebp\r
+ addl 4(%esp),%edx\r
+ addl %ecx,%ebp\r
+ movl 68(%esp),%ecx\r
+ movl %esi,%ebx\r
+ rorl $11,%esi\r
+ movl %ecx,%edi\r
+ rorl $2,%ecx\r
+ xorl %ebx,%esi\r
+ shrl $3,%ebx\r
+ rorl $7,%esi\r
+ xorl %edi,%ecx\r
+ xorl %esi,%ebx\r
+ rorl $17,%ecx\r
+ addl 76(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 48(%esp),%ebx\r
+ movl %edx,%esi\r
+ xorl %ecx,%edi\r
+ movl 8(%esp),%ecx\r
+ rorl $14,%edx\r
+ addl %edi,%ebx\r
+ movl 12(%esp),%edi\r
+ xorl %esi,%edx\r
+ movl %ebx,76(%esp)\r
+ xorl %edi,%ecx\r
+ rorl $5,%edx\r
+ andl %esi,%ecx\r
+ movl %esi,4(%esp)\r
+ xorl %esi,%edx\r
+ addl 16(%esp),%ebx\r
+ xorl %ecx,%edi\r
+ rorl $6,%edx\r
+ movl %ebp,%esi\r
+ addl %edi,%ebx\r
+ rorl $9,%esi\r
+ movl %ebp,%ecx\r
+ movl 24(%esp),%edi\r
+ xorl %ebp,%esi\r
+ movl %ebp,20(%esp)\r
+ xorl %edi,%ebp\r
+ rorl $11,%esi\r
+ andl %ebp,%eax\r
+ leal 3210313671(%ebx,%edx,1),%edx\r
+ xorl %ecx,%esi\r
+ xorl %edi,%eax\r
+ movl 84(%esp),%ecx\r
+ rorl $2,%esi\r
+ addl %edx,%eax\r
+ addl (%esp),%edx\r
+ addl %esi,%eax\r
+ movl 72(%esp),%esi\r
+ movl %ecx,%ebx\r
+ rorl $11,%ecx\r
+ movl %esi,%edi\r
+ rorl $2,%esi\r
+ xorl %ebx,%ecx\r
+ shrl $3,%ebx\r
+ rorl $7,%ecx\r
+ xorl %edi,%esi\r
+ xorl %ecx,%ebx\r
+ rorl $17,%esi\r
+ addl 80(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 52(%esp),%ebx\r
+ movl %edx,%ecx\r
+ xorl %esi,%edi\r
+ movl 4(%esp),%esi\r
+ rorl $14,%edx\r
+ addl %edi,%ebx\r
+ movl 8(%esp),%edi\r
+ xorl %ecx,%edx\r
+ movl %ebx,80(%esp)\r
+ xorl %edi,%esi\r
+ rorl $5,%edx\r
+ andl %ecx,%esi\r
+ movl %ecx,(%esp)\r
+ xorl %ecx,%edx\r
+ addl 12(%esp),%ebx\r
+ xorl %esi,%edi\r
+ rorl $6,%edx\r
+ movl %eax,%ecx\r
+ addl %edi,%ebx\r
+ rorl $9,%ecx\r
+ movl %eax,%esi\r
+ movl 20(%esp),%edi\r
+ xorl %eax,%ecx\r
+ movl %eax,16(%esp)\r
+ xorl %edi,%eax\r
+ rorl $11,%ecx\r
+ andl %eax,%ebp\r
+ leal 3336571891(%ebx,%edx,1),%edx\r
+ xorl %esi,%ecx\r
+ xorl %edi,%ebp\r
+ movl 88(%esp),%esi\r
+ rorl $2,%ecx\r
+ addl %edx,%ebp\r
+ addl 28(%esp),%edx\r
+ addl %ecx,%ebp\r
+ movl 76(%esp),%ecx\r
+ movl %esi,%ebx\r
+ rorl $11,%esi\r
+ movl %ecx,%edi\r
+ rorl $2,%ecx\r
+ xorl %ebx,%esi\r
+ shrl $3,%ebx\r
+ rorl $7,%esi\r
+ xorl %edi,%ecx\r
+ xorl %esi,%ebx\r
+ rorl $17,%ecx\r
+ addl 84(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 56(%esp),%ebx\r
+ movl %edx,%esi\r
+ xorl %ecx,%edi\r
+ movl (%esp),%ecx\r
+ rorl $14,%edx\r
+ addl %edi,%ebx\r
+ movl 4(%esp),%edi\r
+ xorl %esi,%edx\r
+ movl %ebx,84(%esp)\r
+ xorl %edi,%ecx\r
+ rorl $5,%edx\r
+ andl %esi,%ecx\r
+ movl %esi,28(%esp)\r
+ xorl %esi,%edx\r
+ addl 8(%esp),%ebx\r
+ xorl %ecx,%edi\r
+ rorl $6,%edx\r
+ movl %ebp,%esi\r
+ addl %edi,%ebx\r
+ rorl $9,%esi\r
+ movl %ebp,%ecx\r
+ movl 16(%esp),%edi\r
+ xorl %ebp,%esi\r
+ movl %ebp,12(%esp)\r
+ xorl %edi,%ebp\r
+ rorl $11,%esi\r
+ andl %ebp,%eax\r
+ leal 3584528711(%ebx,%edx,1),%edx\r
+ xorl %ecx,%esi\r
+ xorl %edi,%eax\r
+ movl 92(%esp),%ecx\r
+ rorl $2,%esi\r
+ addl %edx,%eax\r
+ addl 24(%esp),%edx\r
+ addl %esi,%eax\r
+ movl 80(%esp),%esi\r
+ movl %ecx,%ebx\r
+ rorl $11,%ecx\r
+ movl %esi,%edi\r
+ rorl $2,%esi\r
+ xorl %ebx,%ecx\r
+ shrl $3,%ebx\r
+ rorl $7,%ecx\r
+ xorl %edi,%esi\r
+ xorl %ecx,%ebx\r
+ rorl $17,%esi\r
+ addl 88(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 60(%esp),%ebx\r
+ movl %edx,%ecx\r
+ xorl %esi,%edi\r
+ movl 28(%esp),%esi\r
+ rorl $14,%edx\r
+ addl %edi,%ebx\r
+ movl (%esp),%edi\r
+ xorl %ecx,%edx\r
+ movl %ebx,88(%esp)\r
+ xorl %edi,%esi\r
+ rorl $5,%edx\r
+ andl %ecx,%esi\r
+ movl %ecx,24(%esp)\r
+ xorl %ecx,%edx\r
+ addl 4(%esp),%ebx\r
+ xorl %esi,%edi\r
+ rorl $6,%edx\r
+ movl %eax,%ecx\r
+ addl %edi,%ebx\r
+ rorl $9,%ecx\r
+ movl %eax,%esi\r
+ movl 12(%esp),%edi\r
+ xorl %eax,%ecx\r
+ movl %eax,8(%esp)\r
+ xorl %edi,%eax\r
+ rorl $11,%ecx\r
+ andl %eax,%ebp\r
+ leal 113926993(%ebx,%edx,1),%edx\r
+ xorl %esi,%ecx\r
+ xorl %edi,%ebp\r
+ movl 32(%esp),%esi\r
+ rorl $2,%ecx\r
+ addl %edx,%ebp\r
+ addl 20(%esp),%edx\r
+ addl %ecx,%ebp\r
+ movl 84(%esp),%ecx\r
+ movl %esi,%ebx\r
+ rorl $11,%esi\r
+ movl %ecx,%edi\r
+ rorl $2,%ecx\r
+ xorl %ebx,%esi\r
+ shrl $3,%ebx\r
+ rorl $7,%esi\r
+ xorl %edi,%ecx\r
+ xorl %esi,%ebx\r
+ rorl $17,%ecx\r
+ addl 92(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 64(%esp),%ebx\r
+ movl %edx,%esi\r
+ xorl %ecx,%edi\r
+ movl 24(%esp),%ecx\r
+ rorl $14,%edx\r
+ addl %edi,%ebx\r
+ movl 28(%esp),%edi\r
+ xorl %esi,%edx\r
+ movl %ebx,92(%esp)\r
+ xorl %edi,%ecx\r
+ rorl $5,%edx\r
+ andl %esi,%ecx\r
+ movl %esi,20(%esp)\r
+ xorl %esi,%edx\r
+ addl (%esp),%ebx\r
+ xorl %ecx,%edi\r
+ rorl $6,%edx\r
+ movl %ebp,%esi\r
+ addl %edi,%ebx\r
+ rorl $9,%esi\r
+ movl %ebp,%ecx\r
+ movl 8(%esp),%edi\r
+ xorl %ebp,%esi\r
+ movl %ebp,4(%esp)\r
+ xorl %edi,%ebp\r
+ rorl $11,%esi\r
+ andl %ebp,%eax\r
+ leal 338241895(%ebx,%edx,1),%edx\r
+ xorl %ecx,%esi\r
+ xorl %edi,%eax\r
+ movl 36(%esp),%ecx\r
+ rorl $2,%esi\r
+ addl %edx,%eax\r
+ addl 16(%esp),%edx\r
+ addl %esi,%eax\r
+ movl 88(%esp),%esi\r
+ movl %ecx,%ebx\r
+ rorl $11,%ecx\r
+ movl %esi,%edi\r
+ rorl $2,%esi\r
+ xorl %ebx,%ecx\r
+ shrl $3,%ebx\r
+ rorl $7,%ecx\r
+ xorl %edi,%esi\r
+ xorl %ecx,%ebx\r
+ rorl $17,%esi\r
+ addl 32(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 68(%esp),%ebx\r
+ movl %edx,%ecx\r
+ xorl %esi,%edi\r
+ movl 20(%esp),%esi\r
+ rorl $14,%edx\r
+ addl %edi,%ebx\r
+ movl 24(%esp),%edi\r
+ xorl %ecx,%edx\r
+ movl %ebx,32(%esp)\r
+ xorl %edi,%esi\r
+ rorl $5,%edx\r
+ andl %ecx,%esi\r
+ movl %ecx,16(%esp)\r
+ xorl %ecx,%edx\r
+ addl 28(%esp),%ebx\r
+ xorl %esi,%edi\r
+ rorl $6,%edx\r
+ movl %eax,%ecx\r
+ addl %edi,%ebx\r
+ rorl $9,%ecx\r
+ movl %eax,%esi\r
+ movl 4(%esp),%edi\r
+ xorl %eax,%ecx\r
+ movl %eax,(%esp)\r
+ xorl %edi,%eax\r
+ rorl $11,%ecx\r
+ andl %eax,%ebp\r
+ leal 666307205(%ebx,%edx,1),%edx\r
+ xorl %esi,%ecx\r
+ xorl %edi,%ebp\r
+ movl 40(%esp),%esi\r
+ rorl $2,%ecx\r
+ addl %edx,%ebp\r
+ addl 12(%esp),%edx\r
+ addl %ecx,%ebp\r
+ movl 92(%esp),%ecx\r
+ movl %esi,%ebx\r
+ rorl $11,%esi\r
+ movl %ecx,%edi\r
+ rorl $2,%ecx\r
+ xorl %ebx,%esi\r
+ shrl $3,%ebx\r
+ rorl $7,%esi\r
+ xorl %edi,%ecx\r
+ xorl %esi,%ebx\r
+ rorl $17,%ecx\r
+ addl 36(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 72(%esp),%ebx\r
+ movl %edx,%esi\r
+ xorl %ecx,%edi\r
+ movl 16(%esp),%ecx\r
+ rorl $14,%edx\r
+ addl %edi,%ebx\r
+ movl 20(%esp),%edi\r
+ xorl %esi,%edx\r
+ movl %ebx,36(%esp)\r
+ xorl %edi,%ecx\r
+ rorl $5,%edx\r
+ andl %esi,%ecx\r
+ movl %esi,12(%esp)\r
+ xorl %esi,%edx\r
+ addl 24(%esp),%ebx\r
+ xorl %ecx,%edi\r
+ rorl $6,%edx\r
+ movl %ebp,%esi\r
+ addl %edi,%ebx\r
+ rorl $9,%esi\r
+ movl %ebp,%ecx\r
+ movl (%esp),%edi\r
+ xorl %ebp,%esi\r
+ movl %ebp,28(%esp)\r
+ xorl %edi,%ebp\r
+ rorl $11,%esi\r
+ andl %ebp,%eax\r
+ leal 773529912(%ebx,%edx,1),%edx\r
+ xorl %ecx,%esi\r
+ xorl %edi,%eax\r
+ movl 44(%esp),%ecx\r
+ rorl $2,%esi\r
+ addl %edx,%eax\r
+ addl 8(%esp),%edx\r
+ addl %esi,%eax\r
+ movl 32(%esp),%esi\r
+ movl %ecx,%ebx\r
+ rorl $11,%ecx\r
+ movl %esi,%edi\r
+ rorl $2,%esi\r
+ xorl %ebx,%ecx\r
+ shrl $3,%ebx\r
+ rorl $7,%ecx\r
+ xorl %edi,%esi\r
+ xorl %ecx,%ebx\r
+ rorl $17,%esi\r
+ addl 40(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 76(%esp),%ebx\r
+ movl %edx,%ecx\r
+ xorl %esi,%edi\r
+ movl 12(%esp),%esi\r
+ rorl $14,%edx\r
+ addl %edi,%ebx\r
+ movl 16(%esp),%edi\r
+ xorl %ecx,%edx\r
+ movl %ebx,40(%esp)\r
+ xorl %edi,%esi\r
+ rorl $5,%edx\r
+ andl %ecx,%esi\r
+ movl %ecx,8(%esp)\r
+ xorl %ecx,%edx\r
+ addl 20(%esp),%ebx\r
+ xorl %esi,%edi\r
+ rorl $6,%edx\r
+ movl %eax,%ecx\r
+ addl %edi,%ebx\r
+ rorl $9,%ecx\r
+ movl %eax,%esi\r
+ movl 28(%esp),%edi\r
+ xorl %eax,%ecx\r
+ movl %eax,24(%esp)\r
+ xorl %edi,%eax\r
+ rorl $11,%ecx\r
+ andl %eax,%ebp\r
+ leal 1294757372(%ebx,%edx,1),%edx\r
+ xorl %esi,%ecx\r
+ xorl %edi,%ebp\r
+ movl 48(%esp),%esi\r
+ rorl $2,%ecx\r
+ addl %edx,%ebp\r
+ addl 4(%esp),%edx\r
+ addl %ecx,%ebp\r
+ movl 36(%esp),%ecx\r
+ movl %esi,%ebx\r
+ rorl $11,%esi\r
+ movl %ecx,%edi\r
+ rorl $2,%ecx\r
+ xorl %ebx,%esi\r
+ shrl $3,%ebx\r
+ rorl $7,%esi\r
+ xorl %edi,%ecx\r
+ xorl %esi,%ebx\r
+ rorl $17,%ecx\r
+ addl 44(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 80(%esp),%ebx\r
+ movl %edx,%esi\r
+ xorl %ecx,%edi\r
+ movl 8(%esp),%ecx\r
+ rorl $14,%edx\r
+ addl %edi,%ebx\r
+ movl 12(%esp),%edi\r
+ xorl %esi,%edx\r
+ movl %ebx,44(%esp)\r
+ xorl %edi,%ecx\r
+ rorl $5,%edx\r
+ andl %esi,%ecx\r
+ movl %esi,4(%esp)\r
+ xorl %esi,%edx\r
+ addl 16(%esp),%ebx\r
+ xorl %ecx,%edi\r
+ rorl $6,%edx\r
+ movl %ebp,%esi\r
+ addl %edi,%ebx\r
+ rorl $9,%esi\r
+ movl %ebp,%ecx\r
+ movl 24(%esp),%edi\r
+ xorl %ebp,%esi\r
+ movl %ebp,20(%esp)\r
+ xorl %edi,%ebp\r
+ rorl $11,%esi\r
+ andl %ebp,%eax\r
+ leal 1396182291(%ebx,%edx,1),%edx\r
+ xorl %ecx,%esi\r
+ xorl %edi,%eax\r
+ movl 52(%esp),%ecx\r
+ rorl $2,%esi\r
+ addl %edx,%eax\r
+ addl (%esp),%edx\r
+ addl %esi,%eax\r
+ movl 40(%esp),%esi\r
+ movl %ecx,%ebx\r
+ rorl $11,%ecx\r
+ movl %esi,%edi\r
+ rorl $2,%esi\r
+ xorl %ebx,%ecx\r
+ shrl $3,%ebx\r
+ rorl $7,%ecx\r
+ xorl %edi,%esi\r
+ xorl %ecx,%ebx\r
+ rorl $17,%esi\r
+ addl 48(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 84(%esp),%ebx\r
+ movl %edx,%ecx\r
+ xorl %esi,%edi\r
+ movl 4(%esp),%esi\r
+ rorl $14,%edx\r
+ addl %edi,%ebx\r
+ movl 8(%esp),%edi\r
+ xorl %ecx,%edx\r
+ movl %ebx,48(%esp)\r
+ xorl %edi,%esi\r
+ rorl $5,%edx\r
+ andl %ecx,%esi\r
+ movl %ecx,(%esp)\r
+ xorl %ecx,%edx\r
+ addl 12(%esp),%ebx\r
+ xorl %esi,%edi\r
+ rorl $6,%edx\r
+ movl %eax,%ecx\r
+ addl %edi,%ebx\r
+ rorl $9,%ecx\r
+ movl %eax,%esi\r
+ movl 20(%esp),%edi\r
+ xorl %eax,%ecx\r
+ movl %eax,16(%esp)\r
+ xorl %edi,%eax\r
+ rorl $11,%ecx\r
+ andl %eax,%ebp\r
+ leal 1695183700(%ebx,%edx,1),%edx\r
+ xorl %esi,%ecx\r
+ xorl %edi,%ebp\r
+ movl 56(%esp),%esi\r
+ rorl $2,%ecx\r
+ addl %edx,%ebp\r
+ addl 28(%esp),%edx\r
+ addl %ecx,%ebp\r
+ movl 44(%esp),%ecx\r
+ movl %esi,%ebx\r
+ rorl $11,%esi\r
+ movl %ecx,%edi\r
+ rorl $2,%ecx\r
+ xorl %ebx,%esi\r
+ shrl $3,%ebx\r
+ rorl $7,%esi\r
+ xorl %edi,%ecx\r
+ xorl %esi,%ebx\r
+ rorl $17,%ecx\r
+ addl 52(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 88(%esp),%ebx\r
+ movl %edx,%esi\r
+ xorl %ecx,%edi\r
+ movl (%esp),%ecx\r
+ rorl $14,%edx\r
+ addl %edi,%ebx\r
+ movl 4(%esp),%edi\r
+ xorl %esi,%edx\r
+ movl %ebx,52(%esp)\r
+ xorl %edi,%ecx\r
+ rorl $5,%edx\r
+ andl %esi,%ecx\r
+ movl %esi,28(%esp)\r
+ xorl %esi,%edx\r
+ addl 8(%esp),%ebx\r
+ xorl %ecx,%edi\r
+ rorl $6,%edx\r
+ movl %ebp,%esi\r
+ addl %edi,%ebx\r
+ rorl $9,%esi\r
+ movl %ebp,%ecx\r
+ movl 16(%esp),%edi\r
+ xorl %ebp,%esi\r
+ movl %ebp,12(%esp)\r
+ xorl %edi,%ebp\r
+ rorl $11,%esi\r
+ andl %ebp,%eax\r
+ leal 1986661051(%ebx,%edx,1),%edx\r
+ xorl %ecx,%esi\r
+ xorl %edi,%eax\r
+ movl 60(%esp),%ecx\r
+ rorl $2,%esi\r
+ addl %edx,%eax\r
+ addl 24(%esp),%edx\r
+ addl %esi,%eax\r
+ movl 48(%esp),%esi\r
+ movl %ecx,%ebx\r
+ rorl $11,%ecx\r
+ movl %esi,%edi\r
+ rorl $2,%esi\r
+ xorl %ebx,%ecx\r
+ shrl $3,%ebx\r
+ rorl $7,%ecx\r
+ xorl %edi,%esi\r
+ xorl %ecx,%ebx\r
+ rorl $17,%esi\r
+ addl 56(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 92(%esp),%ebx\r
+ movl %edx,%ecx\r
+ xorl %esi,%edi\r
+ movl 28(%esp),%esi\r
+ rorl $14,%edx\r
+ addl %edi,%ebx\r
+ movl (%esp),%edi\r
+ xorl %ecx,%edx\r
+ movl %ebx,56(%esp)\r
+ xorl %edi,%esi\r
+ rorl $5,%edx\r
+ andl %ecx,%esi\r
+ movl %ecx,24(%esp)\r
+ xorl %ecx,%edx\r
+ addl 4(%esp),%ebx\r
+ xorl %esi,%edi\r
+ rorl $6,%edx\r
+ movl %eax,%ecx\r
+ addl %edi,%ebx\r
+ rorl $9,%ecx\r
+ movl %eax,%esi\r
+ movl 12(%esp),%edi\r
+ xorl %eax,%ecx\r
+ movl %eax,8(%esp)\r
+ xorl %edi,%eax\r
+ rorl $11,%ecx\r
+ andl %eax,%ebp\r
+ leal 2177026350(%ebx,%edx,1),%edx\r
+ xorl %esi,%ecx\r
+ xorl %edi,%ebp\r
+ movl 64(%esp),%esi\r
+ rorl $2,%ecx\r
+ addl %edx,%ebp\r
+ addl 20(%esp),%edx\r
+ addl %ecx,%ebp\r
+ movl 52(%esp),%ecx\r
+ movl %esi,%ebx\r
+ rorl $11,%esi\r
+ movl %ecx,%edi\r
+ rorl $2,%ecx\r
+ xorl %ebx,%esi\r
+ shrl $3,%ebx\r
+ rorl $7,%esi\r
+ xorl %edi,%ecx\r
+ xorl %esi,%ebx\r
+ rorl $17,%ecx\r
+ addl 60(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 32(%esp),%ebx\r
+ movl %edx,%esi\r
+ xorl %ecx,%edi\r
+ movl 24(%esp),%ecx\r
+ rorl $14,%edx\r
+ addl %edi,%ebx\r
+ movl 28(%esp),%edi\r
+ xorl %esi,%edx\r
+ movl %ebx,60(%esp)\r
+ xorl %edi,%ecx\r
+ rorl $5,%edx\r
+ andl %esi,%ecx\r
+ movl %esi,20(%esp)\r
+ xorl %esi,%edx\r
+ addl (%esp),%ebx\r
+ xorl %ecx,%edi\r
+ rorl $6,%edx\r
+ movl %ebp,%esi\r
+ addl %edi,%ebx\r
+ rorl $9,%esi\r
+ movl %ebp,%ecx\r
+ movl 8(%esp),%edi\r
+ xorl %ebp,%esi\r
+ movl %ebp,4(%esp)\r
+ xorl %edi,%ebp\r
+ rorl $11,%esi\r
+ andl %ebp,%eax\r
+ leal 2456956037(%ebx,%edx,1),%edx\r
+ xorl %ecx,%esi\r
+ xorl %edi,%eax\r
+ movl 68(%esp),%ecx\r
+ rorl $2,%esi\r
+ addl %edx,%eax\r
+ addl 16(%esp),%edx\r
+ addl %esi,%eax\r
+ movl 56(%esp),%esi\r
+ movl %ecx,%ebx\r
+ rorl $11,%ecx\r
+ movl %esi,%edi\r
+ rorl $2,%esi\r
+ xorl %ebx,%ecx\r
+ shrl $3,%ebx\r
+ rorl $7,%ecx\r
+ xorl %edi,%esi\r
+ xorl %ecx,%ebx\r
+ rorl $17,%esi\r
+ addl 64(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 36(%esp),%ebx\r
+ movl %edx,%ecx\r
+ xorl %esi,%edi\r
+ movl 20(%esp),%esi\r
+ rorl $14,%edx\r
+ addl %edi,%ebx\r
+ movl 24(%esp),%edi\r
+ xorl %ecx,%edx\r
+ movl %ebx,64(%esp)\r
+ xorl %edi,%esi\r
+ rorl $5,%edx\r
+ andl %ecx,%esi\r
+ movl %ecx,16(%esp)\r
+ xorl %ecx,%edx\r
+ addl 28(%esp),%ebx\r
+ xorl %esi,%edi\r
+ rorl $6,%edx\r
+ movl %eax,%ecx\r
+ addl %edi,%ebx\r
+ rorl $9,%ecx\r
+ movl %eax,%esi\r
+ movl 4(%esp),%edi\r
+ xorl %eax,%ecx\r
+ movl %eax,(%esp)\r
+ xorl %edi,%eax\r
+ rorl $11,%ecx\r
+ andl %eax,%ebp\r
+ leal 2730485921(%ebx,%edx,1),%edx\r
+ xorl %esi,%ecx\r
+ xorl %edi,%ebp\r
+ movl 72(%esp),%esi\r
+ rorl $2,%ecx\r
+ addl %edx,%ebp\r
+ addl 12(%esp),%edx\r
+ addl %ecx,%ebp\r
+ movl 60(%esp),%ecx\r
+ movl %esi,%ebx\r
+ rorl $11,%esi\r
+ movl %ecx,%edi\r
+ rorl $2,%ecx\r
+ xorl %ebx,%esi\r
+ shrl $3,%ebx\r
+ rorl $7,%esi\r
+ xorl %edi,%ecx\r
+ xorl %esi,%ebx\r
+ rorl $17,%ecx\r
+ addl 68(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 40(%esp),%ebx\r
+ movl %edx,%esi\r
+ xorl %ecx,%edi\r
+ movl 16(%esp),%ecx\r
+ rorl $14,%edx\r
+ addl %edi,%ebx\r
+ movl 20(%esp),%edi\r
+ xorl %esi,%edx\r
+ movl %ebx,68(%esp)\r
+ xorl %edi,%ecx\r
+ rorl $5,%edx\r
+ andl %esi,%ecx\r
+ movl %esi,12(%esp)\r
+ xorl %esi,%edx\r
+ addl 24(%esp),%ebx\r
+ xorl %ecx,%edi\r
+ rorl $6,%edx\r
+ movl %ebp,%esi\r
+ addl %edi,%ebx\r
+ rorl $9,%esi\r
+ movl %ebp,%ecx\r
+ movl (%esp),%edi\r
+ xorl %ebp,%esi\r
+ movl %ebp,28(%esp)\r
+ xorl %edi,%ebp\r
+ rorl $11,%esi\r
+ andl %ebp,%eax\r
+ leal 2820302411(%ebx,%edx,1),%edx\r
+ xorl %ecx,%esi\r
+ xorl %edi,%eax\r
+ movl 76(%esp),%ecx\r
+ rorl $2,%esi\r
+ addl %edx,%eax\r
+ addl 8(%esp),%edx\r
+ addl %esi,%eax\r
+ movl 64(%esp),%esi\r
+ movl %ecx,%ebx\r
+ rorl $11,%ecx\r
+ movl %esi,%edi\r
+ rorl $2,%esi\r
+ xorl %ebx,%ecx\r
+ shrl $3,%ebx\r
+ rorl $7,%ecx\r
+ xorl %edi,%esi\r
+ xorl %ecx,%ebx\r
+ rorl $17,%esi\r
+ addl 72(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 44(%esp),%ebx\r
+ movl %edx,%ecx\r
+ xorl %esi,%edi\r
+ movl 12(%esp),%esi\r
+ rorl $14,%edx\r
+ addl %edi,%ebx\r
+ movl 16(%esp),%edi\r
+ xorl %ecx,%edx\r
+ movl %ebx,72(%esp)\r
+ xorl %edi,%esi\r
+ rorl $5,%edx\r
+ andl %ecx,%esi\r
+ movl %ecx,8(%esp)\r
+ xorl %ecx,%edx\r
+ addl 20(%esp),%ebx\r
+ xorl %esi,%edi\r
+ rorl $6,%edx\r
+ movl %eax,%ecx\r
+ addl %edi,%ebx\r
+ rorl $9,%ecx\r
+ movl %eax,%esi\r
+ movl 28(%esp),%edi\r
+ xorl %eax,%ecx\r
+ movl %eax,24(%esp)\r
+ xorl %edi,%eax\r
+ rorl $11,%ecx\r
+ andl %eax,%ebp\r
+ leal 3259730800(%ebx,%edx,1),%edx\r
+ xorl %esi,%ecx\r
+ xorl %edi,%ebp\r
+ movl 80(%esp),%esi\r
+ rorl $2,%ecx\r
+ addl %edx,%ebp\r
+ addl 4(%esp),%edx\r
+ addl %ecx,%ebp\r
+ movl 68(%esp),%ecx\r
+ movl %esi,%ebx\r
+ rorl $11,%esi\r
+ movl %ecx,%edi\r
+ rorl $2,%ecx\r
+ xorl %ebx,%esi\r
+ shrl $3,%ebx\r
+ rorl $7,%esi\r
+ xorl %edi,%ecx\r
+ xorl %esi,%ebx\r
+ rorl $17,%ecx\r
+ addl 76(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 48(%esp),%ebx\r
+ movl %edx,%esi\r
+ xorl %ecx,%edi\r
+ movl 8(%esp),%ecx\r
+ rorl $14,%edx\r
+ addl %edi,%ebx\r
+ movl 12(%esp),%edi\r
+ xorl %esi,%edx\r
+ movl %ebx,76(%esp)\r
+ xorl %edi,%ecx\r
+ rorl $5,%edx\r
+ andl %esi,%ecx\r
+ movl %esi,4(%esp)\r
+ xorl %esi,%edx\r
+ addl 16(%esp),%ebx\r
+ xorl %ecx,%edi\r
+ rorl $6,%edx\r
+ movl %ebp,%esi\r
+ addl %edi,%ebx\r
+ rorl $9,%esi\r
+ movl %ebp,%ecx\r
+ movl 24(%esp),%edi\r
+ xorl %ebp,%esi\r
+ movl %ebp,20(%esp)\r
+ xorl %edi,%ebp\r
+ rorl $11,%esi\r
+ andl %ebp,%eax\r
+ leal 3345764771(%ebx,%edx,1),%edx\r
+ xorl %ecx,%esi\r
+ xorl %edi,%eax\r
+ movl 84(%esp),%ecx\r
+ rorl $2,%esi\r
+ addl %edx,%eax\r
+ addl (%esp),%edx\r
+ addl %esi,%eax\r
+ movl 72(%esp),%esi\r
+ movl %ecx,%ebx\r
+ rorl $11,%ecx\r
+ movl %esi,%edi\r
+ rorl $2,%esi\r
+ xorl %ebx,%ecx\r
+ shrl $3,%ebx\r
+ rorl $7,%ecx\r
+ xorl %edi,%esi\r
+ xorl %ecx,%ebx\r
+ rorl $17,%esi\r
+ addl 80(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 52(%esp),%ebx\r
+ movl %edx,%ecx\r
+ xorl %esi,%edi\r
+ movl 4(%esp),%esi\r
+ rorl $14,%edx\r
+ addl %edi,%ebx\r
+ movl 8(%esp),%edi\r
+ xorl %ecx,%edx\r
+ movl %ebx,80(%esp)\r
+ xorl %edi,%esi\r
+ rorl $5,%edx\r
+ andl %ecx,%esi\r
+ movl %ecx,(%esp)\r
+ xorl %ecx,%edx\r
+ addl 12(%esp),%ebx\r
+ xorl %esi,%edi\r
+ rorl $6,%edx\r
+ movl %eax,%ecx\r
+ addl %edi,%ebx\r
+ rorl $9,%ecx\r
+ movl %eax,%esi\r
+ movl 20(%esp),%edi\r
+ xorl %eax,%ecx\r
+ movl %eax,16(%esp)\r
+ xorl %edi,%eax\r
+ rorl $11,%ecx\r
+ andl %eax,%ebp\r
+ leal 3516065817(%ebx,%edx,1),%edx\r
+ xorl %esi,%ecx\r
+ xorl %edi,%ebp\r
+ movl 88(%esp),%esi\r
+ rorl $2,%ecx\r
+ addl %edx,%ebp\r
+ addl 28(%esp),%edx\r
+ addl %ecx,%ebp\r
+ movl 76(%esp),%ecx\r
+ movl %esi,%ebx\r
+ rorl $11,%esi\r
+ movl %ecx,%edi\r
+ rorl $2,%ecx\r
+ xorl %ebx,%esi\r
+ shrl $3,%ebx\r
+ rorl $7,%esi\r
+ xorl %edi,%ecx\r
+ xorl %esi,%ebx\r
+ rorl $17,%ecx\r
+ addl 84(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 56(%esp),%ebx\r
+ movl %edx,%esi\r
+ xorl %ecx,%edi\r
+ movl (%esp),%ecx\r
+ rorl $14,%edx\r
+ addl %edi,%ebx\r
+ movl 4(%esp),%edi\r
+ xorl %esi,%edx\r
+ movl %ebx,84(%esp)\r
+ xorl %edi,%ecx\r
+ rorl $5,%edx\r
+ andl %esi,%ecx\r
+ movl %esi,28(%esp)\r
+ xorl %esi,%edx\r
+ addl 8(%esp),%ebx\r
+ xorl %ecx,%edi\r
+ rorl $6,%edx\r
+ movl %ebp,%esi\r
+ addl %edi,%ebx\r
+ rorl $9,%esi\r
+ movl %ebp,%ecx\r
+ movl 16(%esp),%edi\r
+ xorl %ebp,%esi\r
+ movl %ebp,12(%esp)\r
+ xorl %edi,%ebp\r
+ rorl $11,%esi\r
+ andl %ebp,%eax\r
+ leal 3600352804(%ebx,%edx,1),%edx\r
+ xorl %ecx,%esi\r
+ xorl %edi,%eax\r
+ movl 92(%esp),%ecx\r
+ rorl $2,%esi\r
+ addl %edx,%eax\r
+ addl 24(%esp),%edx\r
+ addl %esi,%eax\r
+ movl 80(%esp),%esi\r
+ movl %ecx,%ebx\r
+ rorl $11,%ecx\r
+ movl %esi,%edi\r
+ rorl $2,%esi\r
+ xorl %ebx,%ecx\r
+ shrl $3,%ebx\r
+ rorl $7,%ecx\r
+ xorl %edi,%esi\r
+ xorl %ecx,%ebx\r
+ rorl $17,%esi\r
+ addl 88(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 60(%esp),%ebx\r
+ movl %edx,%ecx\r
+ xorl %esi,%edi\r
+ movl 28(%esp),%esi\r
+ rorl $14,%edx\r
+ addl %edi,%ebx\r
+ movl (%esp),%edi\r
+ xorl %ecx,%edx\r
+ movl %ebx,88(%esp)\r
+ xorl %edi,%esi\r
+ rorl $5,%edx\r
+ andl %ecx,%esi\r
+ movl %ecx,24(%esp)\r
+ xorl %ecx,%edx\r
+ addl 4(%esp),%ebx\r
+ xorl %esi,%edi\r
+ rorl $6,%edx\r
+ movl %eax,%ecx\r
+ addl %edi,%ebx\r
+ rorl $9,%ecx\r
+ movl %eax,%esi\r
+ movl 12(%esp),%edi\r
+ xorl %eax,%ecx\r
+ movl %eax,8(%esp)\r
+ xorl %edi,%eax\r
+ rorl $11,%ecx\r
+ andl %eax,%ebp\r
+ leal 4094571909(%ebx,%edx,1),%edx\r
+ xorl %esi,%ecx\r
+ xorl %edi,%ebp\r
+ movl 32(%esp),%esi\r
+ rorl $2,%ecx\r
+ addl %edx,%ebp\r
+ addl 20(%esp),%edx\r
+ addl %ecx,%ebp\r
+ movl 84(%esp),%ecx\r
+ movl %esi,%ebx\r
+ rorl $11,%esi\r
+ movl %ecx,%edi\r
+ rorl $2,%ecx\r
+ xorl %ebx,%esi\r
+ shrl $3,%ebx\r
+ rorl $7,%esi\r
+ xorl %edi,%ecx\r
+ xorl %esi,%ebx\r
+ rorl $17,%ecx\r
+ addl 92(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 64(%esp),%ebx\r
+ movl %edx,%esi\r
+ xorl %ecx,%edi\r
+ movl 24(%esp),%ecx\r
+ rorl $14,%edx\r
+ addl %edi,%ebx\r
+ movl 28(%esp),%edi\r
+ xorl %esi,%edx\r
+ movl %ebx,92(%esp)\r
+ xorl %edi,%ecx\r
+ rorl $5,%edx\r
+ andl %esi,%ecx\r
+ movl %esi,20(%esp)\r
+ xorl %esi,%edx\r
+ addl (%esp),%ebx\r
+ xorl %ecx,%edi\r
+ rorl $6,%edx\r
+ movl %ebp,%esi\r
+ addl %edi,%ebx\r
+ rorl $9,%esi\r
+ movl %ebp,%ecx\r
+ movl 8(%esp),%edi\r
+ xorl %ebp,%esi\r
+ movl %ebp,4(%esp)\r
+ xorl %edi,%ebp\r
+ rorl $11,%esi\r
+ andl %ebp,%eax\r
+ leal 275423344(%ebx,%edx,1),%edx\r
+ xorl %ecx,%esi\r
+ xorl %edi,%eax\r
+ movl 36(%esp),%ecx\r
+ rorl $2,%esi\r
+ addl %edx,%eax\r
+ addl 16(%esp),%edx\r
+ addl %esi,%eax\r
+ movl 88(%esp),%esi\r
+ movl %ecx,%ebx\r
+ rorl $11,%ecx\r
+ movl %esi,%edi\r
+ rorl $2,%esi\r
+ xorl %ebx,%ecx\r
+ shrl $3,%ebx\r
+ rorl $7,%ecx\r
+ xorl %edi,%esi\r
+ xorl %ecx,%ebx\r
+ rorl $17,%esi\r
+ addl 32(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 68(%esp),%ebx\r
+ movl %edx,%ecx\r
+ xorl %esi,%edi\r
+ movl 20(%esp),%esi\r
+ rorl $14,%edx\r
+ addl %edi,%ebx\r
+ movl 24(%esp),%edi\r
+ xorl %ecx,%edx\r
+ movl %ebx,32(%esp)\r
+ xorl %edi,%esi\r
+ rorl $5,%edx\r
+ andl %ecx,%esi\r
+ movl %ecx,16(%esp)\r
+ xorl %ecx,%edx\r
+ addl 28(%esp),%ebx\r
+ xorl %esi,%edi\r
+ rorl $6,%edx\r
+ movl %eax,%ecx\r
+ addl %edi,%ebx\r
+ rorl $9,%ecx\r
+ movl %eax,%esi\r
+ movl 4(%esp),%edi\r
+ xorl %eax,%ecx\r
+ movl %eax,(%esp)\r
+ xorl %edi,%eax\r
+ rorl $11,%ecx\r
+ andl %eax,%ebp\r
+ leal 430227734(%ebx,%edx,1),%edx\r
+ xorl %esi,%ecx\r
+ xorl %edi,%ebp\r
+ movl 40(%esp),%esi\r
+ rorl $2,%ecx\r
+ addl %edx,%ebp\r
+ addl 12(%esp),%edx\r
+ addl %ecx,%ebp\r
+ movl 92(%esp),%ecx\r
+ movl %esi,%ebx\r
+ rorl $11,%esi\r
+ movl %ecx,%edi\r
+ rorl $2,%ecx\r
+ xorl %ebx,%esi\r
+ shrl $3,%ebx\r
+ rorl $7,%esi\r
+ xorl %edi,%ecx\r
+ xorl %esi,%ebx\r
+ rorl $17,%ecx\r
+ addl 36(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 72(%esp),%ebx\r
+ movl %edx,%esi\r
+ xorl %ecx,%edi\r
+ movl 16(%esp),%ecx\r
+ rorl $14,%edx\r
+ addl %edi,%ebx\r
+ movl 20(%esp),%edi\r
+ xorl %esi,%edx\r
+ movl %ebx,36(%esp)\r
+ xorl %edi,%ecx\r
+ rorl $5,%edx\r
+ andl %esi,%ecx\r
+ movl %esi,12(%esp)\r
+ xorl %esi,%edx\r
+ addl 24(%esp),%ebx\r
+ xorl %ecx,%edi\r
+ rorl $6,%edx\r
+ movl %ebp,%esi\r
+ addl %edi,%ebx\r
+ rorl $9,%esi\r
+ movl %ebp,%ecx\r
+ movl (%esp),%edi\r
+ xorl %ebp,%esi\r
+ movl %ebp,28(%esp)\r
+ xorl %edi,%ebp\r
+ rorl $11,%esi\r
+ andl %ebp,%eax\r
+ leal 506948616(%ebx,%edx,1),%edx\r
+ xorl %ecx,%esi\r
+ xorl %edi,%eax\r
+ movl 44(%esp),%ecx\r
+ rorl $2,%esi\r
+ addl %edx,%eax\r
+ addl 8(%esp),%edx\r
+ addl %esi,%eax\r
+ movl 32(%esp),%esi\r
+ movl %ecx,%ebx\r
+ rorl $11,%ecx\r
+ movl %esi,%edi\r
+ rorl $2,%esi\r
+ xorl %ebx,%ecx\r
+ shrl $3,%ebx\r
+ rorl $7,%ecx\r
+ xorl %edi,%esi\r
+ xorl %ecx,%ebx\r
+ rorl $17,%esi\r
+ addl 40(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 76(%esp),%ebx\r
+ movl %edx,%ecx\r
+ xorl %esi,%edi\r
+ movl 12(%esp),%esi\r
+ rorl $14,%edx\r
+ addl %edi,%ebx\r
+ movl 16(%esp),%edi\r
+ xorl %ecx,%edx\r
+ movl %ebx,40(%esp)\r
+ xorl %edi,%esi\r
+ rorl $5,%edx\r
+ andl %ecx,%esi\r
+ movl %ecx,8(%esp)\r
+ xorl %ecx,%edx\r
+ addl 20(%esp),%ebx\r
+ xorl %esi,%edi\r
+ rorl $6,%edx\r
+ movl %eax,%ecx\r
+ addl %edi,%ebx\r
+ rorl $9,%ecx\r
+ movl %eax,%esi\r
+ movl 28(%esp),%edi\r
+ xorl %eax,%ecx\r
+ movl %eax,24(%esp)\r
+ xorl %edi,%eax\r
+ rorl $11,%ecx\r
+ andl %eax,%ebp\r
+ leal 659060556(%ebx,%edx,1),%edx\r
+ xorl %esi,%ecx\r
+ xorl %edi,%ebp\r
+ movl 48(%esp),%esi\r
+ rorl $2,%ecx\r
+ addl %edx,%ebp\r
+ addl 4(%esp),%edx\r
+ addl %ecx,%ebp\r
+ movl 36(%esp),%ecx\r
+ movl %esi,%ebx\r
+ rorl $11,%esi\r
+ movl %ecx,%edi\r
+ rorl $2,%ecx\r
+ xorl %ebx,%esi\r
+ shrl $3,%ebx\r
+ rorl $7,%esi\r
+ xorl %edi,%ecx\r
+ xorl %esi,%ebx\r
+ rorl $17,%ecx\r
+ addl 44(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 80(%esp),%ebx\r
+ movl %edx,%esi\r
+ xorl %ecx,%edi\r
+ movl 8(%esp),%ecx\r
+ rorl $14,%edx\r
+ addl %edi,%ebx\r
+ movl 12(%esp),%edi\r
+ xorl %esi,%edx\r
+ movl %ebx,44(%esp)\r
+ xorl %edi,%ecx\r
+ rorl $5,%edx\r
+ andl %esi,%ecx\r
+ movl %esi,4(%esp)\r
+ xorl %esi,%edx\r
+ addl 16(%esp),%ebx\r
+ xorl %ecx,%edi\r
+ rorl $6,%edx\r
+ movl %ebp,%esi\r
+ addl %edi,%ebx\r
+ rorl $9,%esi\r
+ movl %ebp,%ecx\r
+ movl 24(%esp),%edi\r
+ xorl %ebp,%esi\r
+ movl %ebp,20(%esp)\r
+ xorl %edi,%ebp\r
+ rorl $11,%esi\r
+ andl %ebp,%eax\r
+ leal 883997877(%ebx,%edx,1),%edx\r
+ xorl %ecx,%esi\r
+ xorl %edi,%eax\r
+ movl 52(%esp),%ecx\r
+ rorl $2,%esi\r
+ addl %edx,%eax\r
+ addl (%esp),%edx\r
+ addl %esi,%eax\r
+ movl 40(%esp),%esi\r
+ movl %ecx,%ebx\r
+ rorl $11,%ecx\r
+ movl %esi,%edi\r
+ rorl $2,%esi\r
+ xorl %ebx,%ecx\r
+ shrl $3,%ebx\r
+ rorl $7,%ecx\r
+ xorl %edi,%esi\r
+ xorl %ecx,%ebx\r
+ rorl $17,%esi\r
+ addl 48(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 84(%esp),%ebx\r
+ movl %edx,%ecx\r
+ xorl %esi,%edi\r
+ movl 4(%esp),%esi\r
+ rorl $14,%edx\r
+ addl %edi,%ebx\r
+ movl 8(%esp),%edi\r
+ xorl %ecx,%edx\r
+ movl %ebx,48(%esp)\r
+ xorl %edi,%esi\r
+ rorl $5,%edx\r
+ andl %ecx,%esi\r
+ movl %ecx,(%esp)\r
+ xorl %ecx,%edx\r
+ addl 12(%esp),%ebx\r
+ xorl %esi,%edi\r
+ rorl $6,%edx\r
+ movl %eax,%ecx\r
+ addl %edi,%ebx\r
+ rorl $9,%ecx\r
+ movl %eax,%esi\r
+ movl 20(%esp),%edi\r
+ xorl %eax,%ecx\r
+ movl %eax,16(%esp)\r
+ xorl %edi,%eax\r
+ rorl $11,%ecx\r
+ andl %eax,%ebp\r
+ leal 958139571(%ebx,%edx,1),%edx\r
+ xorl %esi,%ecx\r
+ xorl %edi,%ebp\r
+ movl 56(%esp),%esi\r
+ rorl $2,%ecx\r
+ addl %edx,%ebp\r
+ addl 28(%esp),%edx\r
+ addl %ecx,%ebp\r
+ movl 44(%esp),%ecx\r
+ movl %esi,%ebx\r
+ rorl $11,%esi\r
+ movl %ecx,%edi\r
+ rorl $2,%ecx\r
+ xorl %ebx,%esi\r
+ shrl $3,%ebx\r
+ rorl $7,%esi\r
+ xorl %edi,%ecx\r
+ xorl %esi,%ebx\r
+ rorl $17,%ecx\r
+ addl 52(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 88(%esp),%ebx\r
+ movl %edx,%esi\r
+ xorl %ecx,%edi\r
+ movl (%esp),%ecx\r
+ rorl $14,%edx\r
+ addl %edi,%ebx\r
+ movl 4(%esp),%edi\r
+ xorl %esi,%edx\r
+ movl %ebx,52(%esp)\r
+ xorl %edi,%ecx\r
+ rorl $5,%edx\r
+ andl %esi,%ecx\r
+ movl %esi,28(%esp)\r
+ xorl %esi,%edx\r
+ addl 8(%esp),%ebx\r
+ xorl %ecx,%edi\r
+ rorl $6,%edx\r
+ movl %ebp,%esi\r
+ addl %edi,%ebx\r
+ rorl $9,%esi\r
+ movl %ebp,%ecx\r
+ movl 16(%esp),%edi\r
+ xorl %ebp,%esi\r
+ movl %ebp,12(%esp)\r
+ xorl %edi,%ebp\r
+ rorl $11,%esi\r
+ andl %ebp,%eax\r
+ leal 1322822218(%ebx,%edx,1),%edx\r
+ xorl %ecx,%esi\r
+ xorl %edi,%eax\r
+ movl 60(%esp),%ecx\r
+ rorl $2,%esi\r
+ addl %edx,%eax\r
+ addl 24(%esp),%edx\r
+ addl %esi,%eax\r
+ movl 48(%esp),%esi\r
+ movl %ecx,%ebx\r
+ rorl $11,%ecx\r
+ movl %esi,%edi\r
+ rorl $2,%esi\r
+ xorl %ebx,%ecx\r
+ shrl $3,%ebx\r
+ rorl $7,%ecx\r
+ xorl %edi,%esi\r
+ xorl %ecx,%ebx\r
+ rorl $17,%esi\r
+ addl 56(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 92(%esp),%ebx\r
+ movl %edx,%ecx\r
+ xorl %esi,%edi\r
+ movl 28(%esp),%esi\r
+ rorl $14,%edx\r
+ addl %edi,%ebx\r
+ movl (%esp),%edi\r
+ xorl %ecx,%edx\r
+ movl %ebx,56(%esp)\r
+ xorl %edi,%esi\r
+ rorl $5,%edx\r
+ andl %ecx,%esi\r
+ movl %ecx,24(%esp)\r
+ xorl %ecx,%edx\r
+ addl 4(%esp),%ebx\r
+ xorl %esi,%edi\r
+ rorl $6,%edx\r
+ movl %eax,%ecx\r
+ addl %edi,%ebx\r
+ rorl $9,%ecx\r
+ movl %eax,%esi\r
+ movl 12(%esp),%edi\r
+ xorl %eax,%ecx\r
+ movl %eax,8(%esp)\r
+ xorl %edi,%eax\r
+ rorl $11,%ecx\r
+ andl %eax,%ebp\r
+ leal 1537002063(%ebx,%edx,1),%edx\r
+ xorl %esi,%ecx\r
+ xorl %edi,%ebp\r
+ movl 64(%esp),%esi\r
+ rorl $2,%ecx\r
+ addl %edx,%ebp\r
+ addl 20(%esp),%edx\r
+ addl %ecx,%ebp\r
+ movl 52(%esp),%ecx\r
+ movl %esi,%ebx\r
+ rorl $11,%esi\r
+ movl %ecx,%edi\r
+ rorl $2,%ecx\r
+ xorl %ebx,%esi\r
+ shrl $3,%ebx\r
+ rorl $7,%esi\r
+ xorl %edi,%ecx\r
+ xorl %esi,%ebx\r
+ rorl $17,%ecx\r
+ addl 60(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 32(%esp),%ebx\r
+ movl %edx,%esi\r
+ xorl %ecx,%edi\r
+ movl 24(%esp),%ecx\r
+ rorl $14,%edx\r
+ addl %edi,%ebx\r
+ movl 28(%esp),%edi\r
+ xorl %esi,%edx\r
+ movl %ebx,60(%esp)\r
+ xorl %edi,%ecx\r
+ rorl $5,%edx\r
+ andl %esi,%ecx\r
+ movl %esi,20(%esp)\r
+ xorl %esi,%edx\r
+ addl (%esp),%ebx\r
+ xorl %ecx,%edi\r
+ rorl $6,%edx\r
+ movl %ebp,%esi\r
+ addl %edi,%ebx\r
+ rorl $9,%esi\r
+ movl %ebp,%ecx\r
+ movl 8(%esp),%edi\r
+ xorl %ebp,%esi\r
+ movl %ebp,4(%esp)\r
+ xorl %edi,%ebp\r
+ rorl $11,%esi\r
+ andl %ebp,%eax\r
+ leal 1747873779(%ebx,%edx,1),%edx\r
+ xorl %ecx,%esi\r
+ xorl %edi,%eax\r
+ movl 68(%esp),%ecx\r
+ rorl $2,%esi\r
+ addl %edx,%eax\r
+ addl 16(%esp),%edx\r
+ addl %esi,%eax\r
+ movl 56(%esp),%esi\r
+ movl %ecx,%ebx\r
+ rorl $11,%ecx\r
+ movl %esi,%edi\r
+ rorl $2,%esi\r
+ xorl %ebx,%ecx\r
+ shrl $3,%ebx\r
+ rorl $7,%ecx\r
+ xorl %edi,%esi\r
+ xorl %ecx,%ebx\r
+ rorl $17,%esi\r
+ addl 64(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 36(%esp),%ebx\r
+ movl %edx,%ecx\r
+ xorl %esi,%edi\r
+ movl 20(%esp),%esi\r
+ rorl $14,%edx\r
+ addl %edi,%ebx\r
+ movl 24(%esp),%edi\r
+ xorl %ecx,%edx\r
+ movl %ebx,64(%esp)\r
+ xorl %edi,%esi\r
+ rorl $5,%edx\r
+ andl %ecx,%esi\r
+ movl %ecx,16(%esp)\r
+ xorl %ecx,%edx\r
+ addl 28(%esp),%ebx\r
+ xorl %esi,%edi\r
+ rorl $6,%edx\r
+ movl %eax,%ecx\r
+ addl %edi,%ebx\r
+ rorl $9,%ecx\r
+ movl %eax,%esi\r
+ movl 4(%esp),%edi\r
+ xorl %eax,%ecx\r
+ movl %eax,(%esp)\r
+ xorl %edi,%eax\r
+ rorl $11,%ecx\r
+ andl %eax,%ebp\r
+ leal 1955562222(%ebx,%edx,1),%edx\r
+ xorl %esi,%ecx\r
+ xorl %edi,%ebp\r
+ movl 72(%esp),%esi\r
+ rorl $2,%ecx\r
+ addl %edx,%ebp\r
+ addl 12(%esp),%edx\r
+ addl %ecx,%ebp\r
+ movl 60(%esp),%ecx\r
+ movl %esi,%ebx\r
+ rorl $11,%esi\r
+ movl %ecx,%edi\r
+ rorl $2,%ecx\r
+ xorl %ebx,%esi\r
+ shrl $3,%ebx\r
+ rorl $7,%esi\r
+ xorl %edi,%ecx\r
+ xorl %esi,%ebx\r
+ rorl $17,%ecx\r
+ addl 68(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 40(%esp),%ebx\r
+ movl %edx,%esi\r
+ xorl %ecx,%edi\r
+ movl 16(%esp),%ecx\r
+ rorl $14,%edx\r
+ addl %edi,%ebx\r
+ movl 20(%esp),%edi\r
+ xorl %esi,%edx\r
+ movl %ebx,68(%esp)\r
+ xorl %edi,%ecx\r
+ rorl $5,%edx\r
+ andl %esi,%ecx\r
+ movl %esi,12(%esp)\r
+ xorl %esi,%edx\r
+ addl 24(%esp),%ebx\r
+ xorl %ecx,%edi\r
+ rorl $6,%edx\r
+ movl %ebp,%esi\r
+ addl %edi,%ebx\r
+ rorl $9,%esi\r
+ movl %ebp,%ecx\r
+ movl (%esp),%edi\r
+ xorl %ebp,%esi\r
+ movl %ebp,28(%esp)\r
+ xorl %edi,%ebp\r
+ rorl $11,%esi\r
+ andl %ebp,%eax\r
+ leal 2024104815(%ebx,%edx,1),%edx\r
+ xorl %ecx,%esi\r
+ xorl %edi,%eax\r
+ movl 76(%esp),%ecx\r
+ rorl $2,%esi\r
+ addl %edx,%eax\r
+ addl 8(%esp),%edx\r
+ addl %esi,%eax\r
+ movl 64(%esp),%esi\r
+ movl %ecx,%ebx\r
+ rorl $11,%ecx\r
+ movl %esi,%edi\r
+ rorl $2,%esi\r
+ xorl %ebx,%ecx\r
+ shrl $3,%ebx\r
+ rorl $7,%ecx\r
+ xorl %edi,%esi\r
+ xorl %ecx,%ebx\r
+ rorl $17,%esi\r
+ addl 72(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 44(%esp),%ebx\r
+ movl %edx,%ecx\r
+ xorl %esi,%edi\r
+ movl 12(%esp),%esi\r
+ rorl $14,%edx\r
+ addl %edi,%ebx\r
+ movl 16(%esp),%edi\r
+ xorl %ecx,%edx\r
+ movl %ebx,72(%esp)\r
+ xorl %edi,%esi\r
+ rorl $5,%edx\r
+ andl %ecx,%esi\r
+ movl %ecx,8(%esp)\r
+ xorl %ecx,%edx\r
+ addl 20(%esp),%ebx\r
+ xorl %esi,%edi\r
+ rorl $6,%edx\r
+ movl %eax,%ecx\r
+ addl %edi,%ebx\r
+ rorl $9,%ecx\r
+ movl %eax,%esi\r
+ movl 28(%esp),%edi\r
+ xorl %eax,%ecx\r
+ movl %eax,24(%esp)\r
+ xorl %edi,%eax\r
+ rorl $11,%ecx\r
+ andl %eax,%ebp\r
+ leal 2227730452(%ebx,%edx,1),%edx\r
+ xorl %esi,%ecx\r
+ xorl %edi,%ebp\r
+ movl 80(%esp),%esi\r
+ rorl $2,%ecx\r
+ addl %edx,%ebp\r
+ addl 4(%esp),%edx\r
+ addl %ecx,%ebp\r
+ movl 68(%esp),%ecx\r
+ movl %esi,%ebx\r
+ rorl $11,%esi\r
+ movl %ecx,%edi\r
+ rorl $2,%ecx\r
+ xorl %ebx,%esi\r
+ shrl $3,%ebx\r
+ rorl $7,%esi\r
+ xorl %edi,%ecx\r
+ xorl %esi,%ebx\r
+ rorl $17,%ecx\r
+ addl 76(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 48(%esp),%ebx\r
+ movl %edx,%esi\r
+ xorl %ecx,%edi\r
+ movl 8(%esp),%ecx\r
+ rorl $14,%edx\r
+ addl %edi,%ebx\r
+ movl 12(%esp),%edi\r
+ xorl %esi,%edx\r
+ movl %ebx,76(%esp)\r
+ xorl %edi,%ecx\r
+ rorl $5,%edx\r
+ andl %esi,%ecx\r
+ movl %esi,4(%esp)\r
+ xorl %esi,%edx\r
+ addl 16(%esp),%ebx\r
+ xorl %ecx,%edi\r
+ rorl $6,%edx\r
+ movl %ebp,%esi\r
+ addl %edi,%ebx\r
+ rorl $9,%esi\r
+ movl %ebp,%ecx\r
+ movl 24(%esp),%edi\r
+ xorl %ebp,%esi\r
+ movl %ebp,20(%esp)\r
+ xorl %edi,%ebp\r
+ rorl $11,%esi\r
+ andl %ebp,%eax\r
+ leal 2361852424(%ebx,%edx,1),%edx\r
+ xorl %ecx,%esi\r
+ xorl %edi,%eax\r
+ movl 84(%esp),%ecx\r
+ rorl $2,%esi\r
+ addl %edx,%eax\r
+ addl (%esp),%edx\r
+ addl %esi,%eax\r
+ movl 72(%esp),%esi\r
+ movl %ecx,%ebx\r
+ rorl $11,%ecx\r
+ movl %esi,%edi\r
+ rorl $2,%esi\r
+ xorl %ebx,%ecx\r
+ shrl $3,%ebx\r
+ rorl $7,%ecx\r
+ xorl %edi,%esi\r
+ xorl %ecx,%ebx\r
+ rorl $17,%esi\r
+ addl 80(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 52(%esp),%ebx\r
+ movl %edx,%ecx\r
+ xorl %esi,%edi\r
+ movl 4(%esp),%esi\r
+ rorl $14,%edx\r
+ addl %edi,%ebx\r
+ movl 8(%esp),%edi\r
+ xorl %ecx,%edx\r
+ movl %ebx,80(%esp)\r
+ xorl %edi,%esi\r
+ rorl $5,%edx\r
+ andl %ecx,%esi\r
+ movl %ecx,(%esp)\r
+ xorl %ecx,%edx\r
+ addl 12(%esp),%ebx\r
+ xorl %esi,%edi\r
+ rorl $6,%edx\r
+ movl %eax,%ecx\r
+ addl %edi,%ebx\r
+ rorl $9,%ecx\r
+ movl %eax,%esi\r
+ movl 20(%esp),%edi\r
+ xorl %eax,%ecx\r
+ movl %eax,16(%esp)\r
+ xorl %edi,%eax\r
+ rorl $11,%ecx\r
+ andl %eax,%ebp\r
+ leal 2428436474(%ebx,%edx,1),%edx\r
+ xorl %esi,%ecx\r
+ xorl %edi,%ebp\r
+ movl 88(%esp),%esi\r
+ rorl $2,%ecx\r
+ addl %edx,%ebp\r
+ addl 28(%esp),%edx\r
+ addl %ecx,%ebp\r
+ movl 76(%esp),%ecx\r
+ movl %esi,%ebx\r
+ rorl $11,%esi\r
+ movl %ecx,%edi\r
+ rorl $2,%ecx\r
+ xorl %ebx,%esi\r
+ shrl $3,%ebx\r
+ rorl $7,%esi\r
+ xorl %edi,%ecx\r
+ xorl %esi,%ebx\r
+ rorl $17,%ecx\r
+ addl 84(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 56(%esp),%ebx\r
+ movl %edx,%esi\r
+ xorl %ecx,%edi\r
+ movl (%esp),%ecx\r
+ rorl $14,%edx\r
+ addl %edi,%ebx\r
+ movl 4(%esp),%edi\r
+ xorl %esi,%edx\r
+ movl %ebx,84(%esp)\r
+ xorl %edi,%ecx\r
+ rorl $5,%edx\r
+ andl %esi,%ecx\r
+ movl %esi,28(%esp)\r
+ xorl %esi,%edx\r
+ addl 8(%esp),%ebx\r
+ xorl %ecx,%edi\r
+ rorl $6,%edx\r
+ movl %ebp,%esi\r
+ addl %edi,%ebx\r
+ rorl $9,%esi\r
+ movl %ebp,%ecx\r
+ movl 16(%esp),%edi\r
+ xorl %ebp,%esi\r
+ movl %ebp,12(%esp)\r
+ xorl %edi,%ebp\r
+ rorl $11,%esi\r
+ andl %ebp,%eax\r
+ leal 2756734187(%ebx,%edx,1),%edx\r
+ xorl %ecx,%esi\r
+ xorl %edi,%eax\r
+ movl 92(%esp),%ecx\r
+ rorl $2,%esi\r
+ addl %edx,%eax\r
+ addl 24(%esp),%edx\r
+ addl %esi,%eax\r
+ movl 80(%esp),%esi\r
+ movl %ecx,%ebx\r
+ rorl $11,%ecx\r
+ movl %esi,%edi\r
+ rorl $2,%esi\r
+ xorl %ebx,%ecx\r
+ shrl $3,%ebx\r
+ rorl $7,%ecx\r
+ xorl %edi,%esi\r
+ xorl %ecx,%ebx\r
+ rorl $17,%esi\r
+ addl 88(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 60(%esp),%ebx\r
+ movl %edx,%ecx\r
+ xorl %esi,%edi\r
+ movl 28(%esp),%esi\r
+ rorl $14,%edx\r
+ addl %edi,%ebx\r
+ movl (%esp),%edi\r
+ xorl %ecx,%edx\r
+ xorl %edi,%esi\r
+ rorl $5,%edx\r
+ andl %ecx,%esi\r
+ movl %ecx,24(%esp)\r
+ xorl %ecx,%edx\r
+ addl 4(%esp),%ebx\r
+ xorl %esi,%edi\r
+ rorl $6,%edx\r
+ movl %eax,%ecx\r
+ addl %edi,%ebx\r
+ rorl $9,%ecx\r
+ movl %eax,%esi\r
+ movl 12(%esp),%edi\r
+ xorl %eax,%ecx\r
+ movl %eax,8(%esp)\r
+ xorl %edi,%eax\r
+ rorl $11,%ecx\r
+ andl %eax,%ebp\r
+ leal 3204031479(%ebx,%edx,1),%edx\r
+ xorl %esi,%ecx\r
+ xorl %edi,%ebp\r
+ movl 32(%esp),%esi\r
+ rorl $2,%ecx\r
+ addl %edx,%ebp\r
+ addl 20(%esp),%edx\r
+ addl %ecx,%ebp\r
+ movl 84(%esp),%ecx\r
+ movl %esi,%ebx\r
+ rorl $11,%esi\r
+ movl %ecx,%edi\r
+ rorl $2,%ecx\r
+ xorl %ebx,%esi\r
+ shrl $3,%ebx\r
+ rorl $7,%esi\r
+ xorl %edi,%ecx\r
+ xorl %esi,%ebx\r
+ rorl $17,%ecx\r
+ addl 92(%esp),%ebx\r
+ shrl $10,%edi\r
+ addl 64(%esp),%ebx\r
+ movl %edx,%esi\r
+ xorl %ecx,%edi\r
+ movl 24(%esp),%ecx\r
+ rorl $14,%edx\r
+ addl %edi,%ebx\r
+ movl 28(%esp),%edi\r
+ xorl %esi,%edx\r
+ xorl %edi,%ecx\r
+ rorl $5,%edx\r
+ andl %esi,%ecx\r
+ movl %esi,20(%esp)\r
+ xorl %esi,%edx\r
+ addl (%esp),%ebx\r
+ xorl %ecx,%edi\r
+ rorl $6,%edx\r
+ movl %ebp,%esi\r
+ addl %edi,%ebx\r
+ rorl $9,%esi\r
+ movl %ebp,%ecx\r
+ movl 8(%esp),%edi\r
+ xorl %ebp,%esi\r
+ movl %ebp,4(%esp)\r
+ xorl %edi,%ebp\r
+ rorl $11,%esi\r
+ andl %ebp,%eax\r
+ leal 3329325298(%ebx,%edx,1),%edx\r
+ xorl %ecx,%esi\r
+ xorl %edi,%eax\r
+ rorl $2,%esi\r
+ addl %edx,%eax\r
+ addl 16(%esp),%edx\r
+ addl %esi,%eax\r
+ movl 96(%esp),%esi\r
+ xorl %edi,%ebp\r
+ movl 12(%esp),%ecx\r
+ addl (%esi),%eax\r
+ addl 4(%esi),%ebp\r
+ addl 8(%esi),%edi\r
+ addl 12(%esi),%ecx\r
+ movl %eax,(%esi)\r
+ movl %ebp,4(%esi)\r
+ movl %edi,8(%esi)\r
+ movl %ecx,12(%esi)\r
+ movl %ebp,4(%esp)\r
+ xorl %edi,%ebp\r
+ movl %edi,8(%esp)\r
+ movl %ecx,12(%esp)\r
+ movl 20(%esp),%edi\r
+ movl 24(%esp),%ebx\r
+ movl 28(%esp),%ecx\r
+ addl 16(%esi),%edx\r
+ addl 20(%esi),%edi\r
+ addl 24(%esi),%ebx\r
+ addl 28(%esi),%ecx\r
+ movl %edx,16(%esi)\r
+ movl %edi,20(%esi)\r
+ movl %ebx,24(%esi)\r
+ movl %ecx,28(%esi)\r
+ movl %edi,20(%esp)\r
+ movl 100(%esp),%edi\r
+ movl %ebx,24(%esp)\r
+ movl %ecx,28(%esp)\r
+ cmpl 104(%esp),%edi\r
+ jb .L009grand_loop\r
+ movl 108(%esp),%esp\r
+ popl %edi\r
+ popl %esi\r
+ popl %ebx\r
+ popl %ebp\r
+ ret\r
+.size sha256_block_data_order,.-.L_sha256_block_data_order_begin\r
--- /dev/null
+# WARNING: do not edit!\r
+# Generated from openssl/crypto/sha/asm/sha512-586.pl\r
+#\r
+# Copyright 2007-2020 The OpenSSL Project Authors. All Rights Reserved.\r
+#\r
+# Licensed under the OpenSSL license (the "License"). You may not use\r
+# this file except in compliance with the License. You can obtain a copy\r
+# in the file LICENSE in the source distribution or at\r
+# https://www.openssl.org/source/license.html\r
+\r
+.text\r
+.globl sha512_block_data_order\r
+.type sha512_block_data_order,@function\r
+.align 16\r
+sha512_block_data_order:\r
+.L_sha512_block_data_order_begin:\r
+ pushl %ebp\r
+ pushl %ebx\r
+ pushl %esi\r
+ pushl %edi\r
+ movl 20(%esp),%esi\r
+ movl 24(%esp),%edi\r
+ movl 28(%esp),%eax\r
+ movl %esp,%ebx\r
+ call .L000pic_point\r
+.L000pic_point:\r
+ popl %ebp\r
+ leal .L001K512-.L000pic_point(%ebp),%ebp\r
+ subl $16,%esp\r
+ andl $-64,%esp\r
+ shll $7,%eax\r
+ addl %edi,%eax\r
+ movl %esi,(%esp)\r
+ movl %edi,4(%esp)\r
+ movl %eax,8(%esp)\r
+ movl %ebx,12(%esp)\r
+.align 16\r
+.L002loop_x86:\r
+ movl (%edi),%eax\r
+ movl 4(%edi),%ebx\r
+ movl 8(%edi),%ecx\r
+ movl 12(%edi),%edx\r
+ bswap %eax\r
+ bswap %ebx\r
+ bswap %ecx\r
+ bswap %edx\r
+ pushl %eax\r
+ pushl %ebx\r
+ pushl %ecx\r
+ pushl %edx\r
+ movl 16(%edi),%eax\r
+ movl 20(%edi),%ebx\r
+ movl 24(%edi),%ecx\r
+ movl 28(%edi),%edx\r
+ bswap %eax\r
+ bswap %ebx\r
+ bswap %ecx\r
+ bswap %edx\r
+ pushl %eax\r
+ pushl %ebx\r
+ pushl %ecx\r
+ pushl %edx\r
+ movl 32(%edi),%eax\r
+ movl 36(%edi),%ebx\r
+ movl 40(%edi),%ecx\r
+ movl 44(%edi),%edx\r
+ bswap %eax\r
+ bswap %ebx\r
+ bswap %ecx\r
+ bswap %edx\r
+ pushl %eax\r
+ pushl %ebx\r
+ pushl %ecx\r
+ pushl %edx\r
+ movl 48(%edi),%eax\r
+ movl 52(%edi),%ebx\r
+ movl 56(%edi),%ecx\r
+ movl 60(%edi),%edx\r
+ bswap %eax\r
+ bswap %ebx\r
+ bswap %ecx\r
+ bswap %edx\r
+ pushl %eax\r
+ pushl %ebx\r
+ pushl %ecx\r
+ pushl %edx\r
+ movl 64(%edi),%eax\r
+ movl 68(%edi),%ebx\r
+ movl 72(%edi),%ecx\r
+ movl 76(%edi),%edx\r
+ bswap %eax\r
+ bswap %ebx\r
+ bswap %ecx\r
+ bswap %edx\r
+ pushl %eax\r
+ pushl %ebx\r
+ pushl %ecx\r
+ pushl %edx\r
+ movl 80(%edi),%eax\r
+ movl 84(%edi),%ebx\r
+ movl 88(%edi),%ecx\r
+ movl 92(%edi),%edx\r
+ bswap %eax\r
+ bswap %ebx\r
+ bswap %ecx\r
+ bswap %edx\r
+ pushl %eax\r
+ pushl %ebx\r
+ pushl %ecx\r
+ pushl %edx\r
+ movl 96(%edi),%eax\r
+ movl 100(%edi),%ebx\r
+ movl 104(%edi),%ecx\r
+ movl 108(%edi),%edx\r
+ bswap %eax\r
+ bswap %ebx\r
+ bswap %ecx\r
+ bswap %edx\r
+ pushl %eax\r
+ pushl %ebx\r
+ pushl %ecx\r
+ pushl %edx\r
+ movl 112(%edi),%eax\r
+ movl 116(%edi),%ebx\r
+ movl 120(%edi),%ecx\r
+ movl 124(%edi),%edx\r
+ bswap %eax\r
+ bswap %ebx\r
+ bswap %ecx\r
+ bswap %edx\r
+ pushl %eax\r
+ pushl %ebx\r
+ pushl %ecx\r
+ pushl %edx\r
+ addl $128,%edi\r
+ subl $72,%esp\r
+ movl %edi,204(%esp)\r
+ leal 8(%esp),%edi\r
+ movl $16,%ecx\r
+.long 2784229001\r
+.align 16\r
+.L00300_15_x86:\r
+ movl 40(%esp),%ecx\r
+ movl 44(%esp),%edx\r
+ movl %ecx,%esi\r
+ shrl $9,%ecx\r
+ movl %edx,%edi\r
+ shrl $9,%edx\r
+ movl %ecx,%ebx\r
+ shll $14,%esi\r
+ movl %edx,%eax\r
+ shll $14,%edi\r
+ xorl %esi,%ebx\r
+ shrl $5,%ecx\r
+ xorl %edi,%eax\r
+ shrl $5,%edx\r
+ xorl %ecx,%eax\r
+ shll $4,%esi\r
+ xorl %edx,%ebx\r
+ shll $4,%edi\r
+ xorl %esi,%ebx\r
+ shrl $4,%ecx\r
+ xorl %edi,%eax\r
+ shrl $4,%edx\r
+ xorl %ecx,%eax\r
+ shll $5,%esi\r
+ xorl %edx,%ebx\r
+ shll $5,%edi\r
+ xorl %esi,%eax\r
+ xorl %edi,%ebx\r
+ movl 48(%esp),%ecx\r
+ movl 52(%esp),%edx\r
+ movl 56(%esp),%esi\r
+ movl 60(%esp),%edi\r
+ addl 64(%esp),%eax\r
+ adcl 68(%esp),%ebx\r
+ xorl %esi,%ecx\r
+ xorl %edi,%edx\r
+ andl 40(%esp),%ecx\r
+ andl 44(%esp),%edx\r
+ addl 192(%esp),%eax\r
+ adcl 196(%esp),%ebx\r
+ xorl %esi,%ecx\r
+ xorl %edi,%edx\r
+ movl (%ebp),%esi\r
+ movl 4(%ebp),%edi\r
+ addl %ecx,%eax\r
+ adcl %edx,%ebx\r
+ movl 32(%esp),%ecx\r
+ movl 36(%esp),%edx\r
+ addl %esi,%eax\r
+ adcl %edi,%ebx\r
+ movl %eax,(%esp)\r
+ movl %ebx,4(%esp)\r
+ addl %ecx,%eax\r
+ adcl %edx,%ebx\r
+ movl 8(%esp),%ecx\r
+ movl 12(%esp),%edx\r
+ movl %eax,32(%esp)\r
+ movl %ebx,36(%esp)\r
+ movl %ecx,%esi\r
+ shrl $2,%ecx\r
+ movl %edx,%edi\r
+ shrl $2,%edx\r
+ movl %ecx,%ebx\r
+ shll $4,%esi\r
+ movl %edx,%eax\r
+ shll $4,%edi\r
+ xorl %esi,%ebx\r
+ shrl $5,%ecx\r
+ xorl %edi,%eax\r
+ shrl $5,%edx\r
+ xorl %ecx,%ebx\r
+ shll $21,%esi\r
+ xorl %edx,%eax\r
+ shll $21,%edi\r
+ xorl %esi,%eax\r
+ shrl $21,%ecx\r
+ xorl %edi,%ebx\r
+ shrl $21,%edx\r
+ xorl %ecx,%eax\r
+ shll $5,%esi\r
+ xorl %edx,%ebx\r
+ shll $5,%edi\r
+ xorl %esi,%eax\r
+ xorl %edi,%ebx\r
+ movl 8(%esp),%ecx\r
+ movl 12(%esp),%edx\r
+ movl 16(%esp),%esi\r
+ movl 20(%esp),%edi\r
+ addl (%esp),%eax\r
+ adcl 4(%esp),%ebx\r
+ orl %esi,%ecx\r
+ orl %edi,%edx\r
+ andl 24(%esp),%ecx\r
+ andl 28(%esp),%edx\r
+ andl 8(%esp),%esi\r
+ andl 12(%esp),%edi\r
+ orl %esi,%ecx\r
+ orl %edi,%edx\r
+ addl %ecx,%eax\r
+ adcl %edx,%ebx\r
+ movl %eax,(%esp)\r
+ movl %ebx,4(%esp)\r
+ movb (%ebp),%dl\r
+ subl $8,%esp\r
+ leal 8(%ebp),%ebp\r
+ cmpb $148,%dl\r
+ jne .L00300_15_x86\r
+.align 16\r
+.L00416_79_x86:\r
+ movl 312(%esp),%ecx\r
+ movl 316(%esp),%edx\r
+ movl %ecx,%esi\r
+ shrl $1,%ecx\r
+ movl %edx,%edi\r
+ shrl $1,%edx\r
+ movl %ecx,%eax\r
+ shll $24,%esi\r
+ movl %edx,%ebx\r
+ shll $24,%edi\r
+ xorl %esi,%ebx\r
+ shrl $6,%ecx\r
+ xorl %edi,%eax\r
+ shrl $6,%edx\r
+ xorl %ecx,%eax\r
+ shll $7,%esi\r
+ xorl %edx,%ebx\r
+ shll $1,%edi\r
+ xorl %esi,%ebx\r
+ shrl $1,%ecx\r
+ xorl %edi,%eax\r
+ shrl $1,%edx\r
+ xorl %ecx,%eax\r
+ shll $6,%edi\r
+ xorl %edx,%ebx\r
+ xorl %edi,%eax\r
+ movl %eax,(%esp)\r
+ movl %ebx,4(%esp)\r
+ movl 208(%esp),%ecx\r
+ movl 212(%esp),%edx\r
+ movl %ecx,%esi\r
+ shrl $6,%ecx\r
+ movl %edx,%edi\r
+ shrl $6,%edx\r
+ movl %ecx,%eax\r
+ shll $3,%esi\r
+ movl %edx,%ebx\r
+ shll $3,%edi\r
+ xorl %esi,%eax\r
+ shrl $13,%ecx\r
+ xorl %edi,%ebx\r
+ shrl $13,%edx\r
+ xorl %ecx,%eax\r
+ shll $10,%esi\r
+ xorl %edx,%ebx\r
+ shll $10,%edi\r
+ xorl %esi,%ebx\r
+ shrl $10,%ecx\r
+ xorl %edi,%eax\r
+ shrl $10,%edx\r
+ xorl %ecx,%ebx\r
+ shll $13,%edi\r
+ xorl %edx,%eax\r
+ xorl %edi,%eax\r
+ movl 320(%esp),%ecx\r
+ movl 324(%esp),%edx\r
+ addl (%esp),%eax\r
+ adcl 4(%esp),%ebx\r
+ movl 248(%esp),%esi\r
+ movl 252(%esp),%edi\r
+ addl %ecx,%eax\r
+ adcl %edx,%ebx\r
+ addl %esi,%eax\r
+ adcl %edi,%ebx\r
+ movl %eax,192(%esp)\r
+ movl %ebx,196(%esp)\r
+ movl 40(%esp),%ecx\r
+ movl 44(%esp),%edx\r
+ movl %ecx,%esi\r
+ shrl $9,%ecx\r
+ movl %edx,%edi\r
+ shrl $9,%edx\r
+ movl %ecx,%ebx\r
+ shll $14,%esi\r
+ movl %edx,%eax\r
+ shll $14,%edi\r
+ xorl %esi,%ebx\r
+ shrl $5,%ecx\r
+ xorl %edi,%eax\r
+ shrl $5,%edx\r
+ xorl %ecx,%eax\r
+ shll $4,%esi\r
+ xorl %edx,%ebx\r
+ shll $4,%edi\r
+ xorl %esi,%ebx\r
+ shrl $4,%ecx\r
+ xorl %edi,%eax\r
+ shrl $4,%edx\r
+ xorl %ecx,%eax\r
+ shll $5,%esi\r
+ xorl %edx,%ebx\r
+ shll $5,%edi\r
+ xorl %esi,%eax\r
+ xorl %edi,%ebx\r
+ movl 48(%esp),%ecx\r
+ movl 52(%esp),%edx\r
+ movl 56(%esp),%esi\r
+ movl 60(%esp),%edi\r
+ addl 64(%esp),%eax\r
+ adcl 68(%esp),%ebx\r
+ xorl %esi,%ecx\r
+ xorl %edi,%edx\r
+ andl 40(%esp),%ecx\r
+ andl 44(%esp),%edx\r
+ addl 192(%esp),%eax\r
+ adcl 196(%esp),%ebx\r
+ xorl %esi,%ecx\r
+ xorl %edi,%edx\r
+ movl (%ebp),%esi\r
+ movl 4(%ebp),%edi\r
+ addl %ecx,%eax\r
+ adcl %edx,%ebx\r
+ movl 32(%esp),%ecx\r
+ movl 36(%esp),%edx\r
+ addl %esi,%eax\r
+ adcl %edi,%ebx\r
+ movl %eax,(%esp)\r
+ movl %ebx,4(%esp)\r
+ addl %ecx,%eax\r
+ adcl %edx,%ebx\r
+ movl 8(%esp),%ecx\r
+ movl 12(%esp),%edx\r
+ movl %eax,32(%esp)\r
+ movl %ebx,36(%esp)\r
+ movl %ecx,%esi\r
+ shrl $2,%ecx\r
+ movl %edx,%edi\r
+ shrl $2,%edx\r
+ movl %ecx,%ebx\r
+ shll $4,%esi\r
+ movl %edx,%eax\r
+ shll $4,%edi\r
+ xorl %esi,%ebx\r
+ shrl $5,%ecx\r
+ xorl %edi,%eax\r
+ shrl $5,%edx\r
+ xorl %ecx,%ebx\r
+ shll $21,%esi\r
+ xorl %edx,%eax\r
+ shll $21,%edi\r
+ xorl %esi,%eax\r
+ shrl $21,%ecx\r
+ xorl %edi,%ebx\r
+ shrl $21,%edx\r
+ xorl %ecx,%eax\r
+ shll $5,%esi\r
+ xorl %edx,%ebx\r
+ shll $5,%edi\r
+ xorl %esi,%eax\r
+ xorl %edi,%ebx\r
+ movl 8(%esp),%ecx\r
+ movl 12(%esp),%edx\r
+ movl 16(%esp),%esi\r
+ movl 20(%esp),%edi\r
+ addl (%esp),%eax\r
+ adcl 4(%esp),%ebx\r
+ orl %esi,%ecx\r
+ orl %edi,%edx\r
+ andl 24(%esp),%ecx\r
+ andl 28(%esp),%edx\r
+ andl 8(%esp),%esi\r
+ andl 12(%esp),%edi\r
+ orl %esi,%ecx\r
+ orl %edi,%edx\r
+ addl %ecx,%eax\r
+ adcl %edx,%ebx\r
+ movl %eax,(%esp)\r
+ movl %ebx,4(%esp)\r
+ movb (%ebp),%dl\r
+ subl $8,%esp\r
+ leal 8(%ebp),%ebp\r
+ cmpb $23,%dl\r
+ jne .L00416_79_x86\r
+ movl 840(%esp),%esi\r
+ movl 844(%esp),%edi\r
+ movl (%esi),%eax\r
+ movl 4(%esi),%ebx\r
+ movl 8(%esi),%ecx\r
+ movl 12(%esi),%edx\r
+ addl 8(%esp),%eax\r
+ adcl 12(%esp),%ebx\r
+ movl %eax,(%esi)\r
+ movl %ebx,4(%esi)\r
+ addl 16(%esp),%ecx\r
+ adcl 20(%esp),%edx\r
+ movl %ecx,8(%esi)\r
+ movl %edx,12(%esi)\r
+ movl 16(%esi),%eax\r
+ movl 20(%esi),%ebx\r
+ movl 24(%esi),%ecx\r
+ movl 28(%esi),%edx\r
+ addl 24(%esp),%eax\r
+ adcl 28(%esp),%ebx\r
+ movl %eax,16(%esi)\r
+ movl %ebx,20(%esi)\r
+ addl 32(%esp),%ecx\r
+ adcl 36(%esp),%edx\r
+ movl %ecx,24(%esi)\r
+ movl %edx,28(%esi)\r
+ movl 32(%esi),%eax\r
+ movl 36(%esi),%ebx\r
+ movl 40(%esi),%ecx\r
+ movl 44(%esi),%edx\r
+ addl 40(%esp),%eax\r
+ adcl 44(%esp),%ebx\r
+ movl %eax,32(%esi)\r
+ movl %ebx,36(%esi)\r
+ addl 48(%esp),%ecx\r
+ adcl 52(%esp),%edx\r
+ movl %ecx,40(%esi)\r
+ movl %edx,44(%esi)\r
+ movl 48(%esi),%eax\r
+ movl 52(%esi),%ebx\r
+ movl 56(%esi),%ecx\r
+ movl 60(%esi),%edx\r
+ addl 56(%esp),%eax\r
+ adcl 60(%esp),%ebx\r
+ movl %eax,48(%esi)\r
+ movl %ebx,52(%esi)\r
+ addl 64(%esp),%ecx\r
+ adcl 68(%esp),%edx\r
+ movl %ecx,56(%esi)\r
+ movl %edx,60(%esi)\r
+ addl $840,%esp\r
+ subl $640,%ebp\r
+ cmpl 8(%esp),%edi\r
+ jb .L002loop_x86\r
+ movl 12(%esp),%esp\r
+ popl %edi\r
+ popl %esi\r
+ popl %ebx\r
+ popl %ebp\r
+ ret\r
+.align 64\r
+.L001K512:\r
+.long 3609767458,1116352408\r
+.long 602891725,1899447441\r
+.long 3964484399,3049323471\r
+.long 2173295548,3921009573\r
+.long 4081628472,961987163\r
+.long 3053834265,1508970993\r
+.long 2937671579,2453635748\r
+.long 3664609560,2870763221\r
+.long 2734883394,3624381080\r
+.long 1164996542,310598401\r
+.long 1323610764,607225278\r
+.long 3590304994,1426881987\r
+.long 4068182383,1925078388\r
+.long 991336113,2162078206\r
+.long 633803317,2614888103\r
+.long 3479774868,3248222580\r
+.long 2666613458,3835390401\r
+.long 944711139,4022224774\r
+.long 2341262773,264347078\r
+.long 2007800933,604807628\r
+.long 1495990901,770255983\r
+.long 1856431235,1249150122\r
+.long 3175218132,1555081692\r
+.long 2198950837,1996064986\r
+.long 3999719339,2554220882\r
+.long 766784016,2821834349\r
+.long 2566594879,2952996808\r
+.long 3203337956,3210313671\r
+.long 1034457026,3336571891\r
+.long 2466948901,3584528711\r
+.long 3758326383,113926993\r
+.long 168717936,338241895\r
+.long 1188179964,666307205\r
+.long 1546045734,773529912\r
+.long 1522805485,1294757372\r
+.long 2643833823,1396182291\r
+.long 2343527390,1695183700\r
+.long 1014477480,1986661051\r
+.long 1206759142,2177026350\r
+.long 344077627,2456956037\r
+.long 1290863460,2730485921\r
+.long 3158454273,2820302411\r
+.long 3505952657,3259730800\r
+.long 106217008,3345764771\r
+.long 3606008344,3516065817\r
+.long 1432725776,3600352804\r
+.long 1467031594,4094571909\r
+.long 851169720,275423344\r
+.long 3100823752,430227734\r
+.long 1363258195,506948616\r
+.long 3750685593,659060556\r
+.long 3785050280,883997877\r
+.long 3318307427,958139571\r
+.long 3812723403,1322822218\r
+.long 2003034995,1537002063\r
+.long 3602036899,1747873779\r
+.long 1575990012,1955562222\r
+.long 1125592928,2024104815\r
+.long 2716904306,2227730452\r
+.long 442776044,2361852424\r
+.long 593698344,2428436474\r
+.long 3733110249,2756734187\r
+.long 2999351573,3204031479\r
+.long 3815920427,3329325298\r
+.long 3928383900,3391569614\r
+.long 566280711,3515267271\r
+.long 3454069534,3940187606\r
+.long 4000239992,4118630271\r
+.long 1914138554,116418474\r
+.long 2731055270,174292421\r
+.long 3203993006,289380356\r
+.long 320620315,460393269\r
+.long 587496836,685471733\r
+.long 1086792851,852142971\r
+.long 365543100,1017036298\r
+.long 2618297676,1126000580\r
+.long 3409855158,1288033470\r
+.long 4234509866,1501505948\r
+.long 987167468,1607167915\r
+.long 1246189591,1816402316\r
+.long 67438087,66051\r
+.long 202182159,134810123\r
+.size sha512_block_data_order,.-.L_sha512_block_data_order_begin\r
+.byte 83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97\r
+.byte 110,115,102,111,114,109,32,102,111,114,32,120,56,54,44,32\r
+.byte 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97\r
+.byte 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103\r
+.byte 62,0\r
--- /dev/null
+# WARNING: do not edit!\r
+# Generated from openssl/crypto/x86cpuid.pl\r
+#\r
+# Copyright 2004-2020 The OpenSSL Project Authors. All Rights Reserved.\r
+#\r
+# Licensed under the OpenSSL license (the "License"). You may not use\r
+# this file except in compliance with the License. You can obtain a copy\r
+# in the file LICENSE in the source distribution or at\r
+# https://www.openssl.org/source/license.html\r
+\r
+.text\r
+.globl OPENSSL_ia32_cpuid\r
+.type OPENSSL_ia32_cpuid,@function\r
+.align 16\r
+OPENSSL_ia32_cpuid:\r
+.L_OPENSSL_ia32_cpuid_begin:\r
+ pushl %ebp\r
+ pushl %ebx\r
+ pushl %esi\r
+ pushl %edi\r
+ xorl %edx,%edx\r
+ pushfl\r
+ popl %eax\r
+ movl %eax,%ecx\r
+ xorl $2097152,%eax\r
+ pushl %eax\r
+ popfl\r
+ pushfl\r
+ popl %eax\r
+ xorl %eax,%ecx\r
+ xorl %eax,%eax\r
+ movl 20(%esp),%esi\r
+ movl %eax,8(%esi)\r
+ btl $21,%ecx\r
+ jnc .L000nocpuid\r
+ .byte 0x0f,0xa2\r
+ movl %eax,%edi\r
+ xorl %eax,%eax\r
+ cmpl $1970169159,%ebx\r
+ setne %al\r
+ movl %eax,%ebp\r
+ cmpl $1231384169,%edx\r
+ setne %al\r
+ orl %eax,%ebp\r
+ cmpl $1818588270,%ecx\r
+ setne %al\r
+ orl %eax,%ebp\r
+ jz .L001intel\r
+ cmpl $1752462657,%ebx\r
+ setne %al\r
+ movl %eax,%esi\r
+ cmpl $1769238117,%edx\r
+ setne %al\r
+ orl %eax,%esi\r
+ cmpl $1145913699,%ecx\r
+ setne %al\r
+ orl %eax,%esi\r
+ jnz .L001intel\r
+ movl $2147483648,%eax\r
+ .byte 0x0f,0xa2\r
+ cmpl $2147483649,%eax\r
+ jb .L001intel\r
+ movl %eax,%esi\r
+ movl $2147483649,%eax\r
+ .byte 0x0f,0xa2\r
+ orl %ecx,%ebp\r
+ andl $2049,%ebp\r
+ cmpl $2147483656,%esi\r
+ jb .L001intel\r
+ movl $2147483656,%eax\r
+ .byte 0x0f,0xa2\r
+ movzbl %cl,%esi\r
+ incl %esi\r
+ movl $1,%eax\r
+ xorl %ecx,%ecx\r
+ .byte 0x0f,0xa2\r
+ btl $28,%edx\r
+ jnc .L002generic\r
+ shrl $16,%ebx\r
+ andl $255,%ebx\r
+ cmpl %esi,%ebx\r
+ ja .L002generic\r
+ andl $4026531839,%edx\r
+ jmp .L002generic\r
+.L001intel:\r
+ cmpl $4,%edi\r
+ movl $-1,%esi\r
+ jb .L003nocacheinfo\r
+ movl $4,%eax\r
+ movl $0,%ecx\r
+ .byte 0x0f,0xa2\r
+ movl %eax,%esi\r
+ shrl $14,%esi\r
+ andl $4095,%esi\r
+.L003nocacheinfo:\r
+ movl $1,%eax\r
+ xorl %ecx,%ecx\r
+ .byte 0x0f,0xa2\r
+ andl $3220176895,%edx\r
+ cmpl $0,%ebp\r
+ jne .L004notintel\r
+ orl $1073741824,%edx\r
+ andb $15,%ah\r
+ cmpb $15,%ah\r
+ jne .L004notintel\r
+ orl $1048576,%edx\r
+.L004notintel:\r
+ btl $28,%edx\r
+ jnc .L002generic\r
+ andl $4026531839,%edx\r
+ cmpl $0,%esi\r
+ je .L002generic\r
+ orl $268435456,%edx\r
+ shrl $16,%ebx\r
+ cmpb $1,%bl\r
+ ja .L002generic\r
+ andl $4026531839,%edx\r
+.L002generic:\r
+ andl $2048,%ebp\r
+ andl $4294965247,%ecx\r
+ movl %edx,%esi\r
+ orl %ecx,%ebp\r
+ cmpl $7,%edi\r
+ movl 20(%esp),%edi\r
+ jb .L005no_extended_info\r
+ movl $7,%eax\r
+ xorl %ecx,%ecx\r
+ .byte 0x0f,0xa2\r
+ movl %ebx,8(%edi)\r
+.L005no_extended_info:\r
+ btl $27,%ebp\r
+ jnc .L006clear_avx\r
+ xorl %ecx,%ecx\r
+.byte 15,1,208\r
+ andl $6,%eax\r
+ cmpl $6,%eax\r
+ je .L007done\r
+ cmpl $2,%eax\r
+ je .L006clear_avx\r
+.L008clear_xmm:\r
+ andl $4261412861,%ebp\r
+ andl $4278190079,%esi\r
+.L006clear_avx:\r
+ andl $4026525695,%ebp\r
+ andl $4294967263,8(%edi)\r
+.L007done:\r
+ movl %esi,%eax\r
+ movl %ebp,%edx\r
+.L000nocpuid:\r
+ popl %edi\r
+ popl %esi\r
+ popl %ebx\r
+ popl %ebp\r
+ ret\r
+.size OPENSSL_ia32_cpuid,.-.L_OPENSSL_ia32_cpuid_begin\r
+.globl OPENSSL_rdtsc\r
+.type OPENSSL_rdtsc,@function\r
+.align 16\r
+OPENSSL_rdtsc:\r
+.L_OPENSSL_rdtsc_begin:\r
+ xorl %eax,%eax\r
+ xorl %edx,%edx\r
+ leal OPENSSL_ia32cap_P,%ecx\r
+ btl $4,(%ecx)\r
+ jnc .L009notsc\r
+ .byte 0x0f,0x31\r
+.L009notsc:\r
+ ret\r
+.size OPENSSL_rdtsc,.-.L_OPENSSL_rdtsc_begin\r
+.globl OPENSSL_instrument_halt\r
+.type OPENSSL_instrument_halt,@function\r
+.align 16\r
+OPENSSL_instrument_halt:\r
+.L_OPENSSL_instrument_halt_begin:\r
+ leal OPENSSL_ia32cap_P,%ecx\r
+ btl $4,(%ecx)\r
+ jnc .L010nohalt\r
+.long 2421723150\r
+ andl $3,%eax\r
+ jnz .L010nohalt\r
+ pushfl\r
+ popl %eax\r
+ btl $9,%eax\r
+ jnc .L010nohalt\r
+ .byte 0x0f,0x31\r
+ pushl %edx\r
+ pushl %eax\r
+ hlt\r
+ .byte 0x0f,0x31\r
+ subl (%esp),%eax\r
+ sbbl 4(%esp),%edx\r
+ addl $8,%esp\r
+ ret\r
+.L010nohalt:\r
+ xorl %eax,%eax\r
+ xorl %edx,%edx\r
+ ret\r
+.size OPENSSL_instrument_halt,.-.L_OPENSSL_instrument_halt_begin\r
+.globl OPENSSL_far_spin\r
+.type OPENSSL_far_spin,@function\r
+.align 16\r
+OPENSSL_far_spin:\r
+.L_OPENSSL_far_spin_begin:\r
+ pushfl\r
+ popl %eax\r
+ btl $9,%eax\r
+ jnc .L011nospin\r
+ movl 4(%esp),%eax\r
+ movl 8(%esp),%ecx\r
+.long 2430111262\r
+ xorl %eax,%eax\r
+ movl (%ecx),%edx\r
+ jmp .L012spin\r
+.align 16\r
+.L012spin:\r
+ incl %eax\r
+ cmpl (%ecx),%edx\r
+ je .L012spin\r
+.long 529567888\r
+ ret\r
+.L011nospin:\r
+ xorl %eax,%eax\r
+ xorl %edx,%edx\r
+ ret\r
+.size OPENSSL_far_spin,.-.L_OPENSSL_far_spin_begin\r
+.globl OPENSSL_wipe_cpu\r
+.type OPENSSL_wipe_cpu,@function\r
+.align 16\r
+OPENSSL_wipe_cpu:\r
+.L_OPENSSL_wipe_cpu_begin:\r
+ xorl %eax,%eax\r
+ xorl %edx,%edx\r
+ leal OPENSSL_ia32cap_P,%ecx\r
+ movl (%ecx),%ecx\r
+ btl $1,(%ecx)\r
+ jnc .L013no_x87\r
+.long 4007259865,4007259865,4007259865,4007259865,2430851995\r
+.L013no_x87:\r
+ leal 4(%esp),%eax\r
+ ret\r
+.size OPENSSL_wipe_cpu,.-.L_OPENSSL_wipe_cpu_begin\r
+.globl OPENSSL_atomic_add\r
+.type OPENSSL_atomic_add,@function\r
+.align 16\r
+OPENSSL_atomic_add:\r
+.L_OPENSSL_atomic_add_begin:\r
+ movl 4(%esp),%edx\r
+ movl 8(%esp),%ecx\r
+ pushl %ebx\r
+ nop\r
+ movl (%edx),%eax\r
+.L014spin:\r
+ leal (%eax,%ecx,1),%ebx\r
+ nop\r
+.long 447811568\r
+ jne .L014spin\r
+ movl %ebx,%eax\r
+ popl %ebx\r
+ ret\r
+.size OPENSSL_atomic_add,.-.L_OPENSSL_atomic_add_begin\r
+.globl OPENSSL_cleanse\r
+.type OPENSSL_cleanse,@function\r
+.align 16\r
+OPENSSL_cleanse:\r
+.L_OPENSSL_cleanse_begin:\r
+ movl 4(%esp),%edx\r
+ movl 8(%esp),%ecx\r
+ xorl %eax,%eax\r
+ cmpl $7,%ecx\r
+ jae .L015lot\r
+ cmpl $0,%ecx\r
+ je .L016ret\r
+.L017little:\r
+ movb %al,(%edx)\r
+ subl $1,%ecx\r
+ leal 1(%edx),%edx\r
+ jnz .L017little\r
+.L016ret:\r
+ ret\r
+.align 16\r
+.L015lot:\r
+ testl $3,%edx\r
+ jz .L018aligned\r
+ movb %al,(%edx)\r
+ leal -1(%ecx),%ecx\r
+ leal 1(%edx),%edx\r
+ jmp .L015lot\r
+.L018aligned:\r
+ movl %eax,(%edx)\r
+ leal -4(%ecx),%ecx\r
+ testl $-4,%ecx\r
+ leal 4(%edx),%edx\r
+ jnz .L018aligned\r
+ cmpl $0,%ecx\r
+ jne .L017little\r
+ ret\r
+.size OPENSSL_cleanse,.-.L_OPENSSL_cleanse_begin\r
+.globl CRYPTO_memcmp\r
+.type CRYPTO_memcmp,@function\r
+.align 16\r
+CRYPTO_memcmp:\r
+.L_CRYPTO_memcmp_begin:\r
+ pushl %esi\r
+ pushl %edi\r
+ movl 12(%esp),%esi\r
+ movl 16(%esp),%edi\r
+ movl 20(%esp),%ecx\r
+ xorl %eax,%eax\r
+ xorl %edx,%edx\r
+ cmpl $0,%ecx\r
+ je .L019no_data\r
+.L020loop:\r
+ movb (%esi),%dl\r
+ leal 1(%esi),%esi\r
+ xorb (%edi),%dl\r
+ leal 1(%edi),%edi\r
+ orb %dl,%al\r
+ decl %ecx\r
+ jnz .L020loop\r
+ negl %eax\r
+ shrl $31,%eax\r
+.L019no_data:\r
+ popl %edi\r
+ popl %esi\r
+ ret\r
+.size CRYPTO_memcmp,.-.L_CRYPTO_memcmp_begin\r
+.globl OPENSSL_instrument_bus\r
+.type OPENSSL_instrument_bus,@function\r
+.align 16\r
+OPENSSL_instrument_bus:\r
+.L_OPENSSL_instrument_bus_begin:\r
+ pushl %ebp\r
+ pushl %ebx\r
+ pushl %esi\r
+ pushl %edi\r
+ movl $0,%eax\r
+ popl %edi\r
+ popl %esi\r
+ popl %ebx\r
+ popl %ebp\r
+ ret\r
+.size OPENSSL_instrument_bus,.-.L_OPENSSL_instrument_bus_begin\r
+.globl OPENSSL_instrument_bus2\r
+.type OPENSSL_instrument_bus2,@function\r
+.align 16\r
+OPENSSL_instrument_bus2:\r
+.L_OPENSSL_instrument_bus2_begin:\r
+ pushl %ebp\r
+ pushl %ebx\r
+ pushl %esi\r
+ pushl %edi\r
+ movl $0,%eax\r
+ popl %edi\r
+ popl %esi\r
+ popl %ebx\r
+ popl %ebp\r
+ ret\r
+.size OPENSSL_instrument_bus2,.-.L_OPENSSL_instrument_bus2_begin\r
+.globl OPENSSL_ia32_rdrand_bytes\r
+.type OPENSSL_ia32_rdrand_bytes,@function\r
+.align 16\r
+OPENSSL_ia32_rdrand_bytes:\r
+.L_OPENSSL_ia32_rdrand_bytes_begin:\r
+ pushl %edi\r
+ pushl %ebx\r
+ xorl %eax,%eax\r
+ movl 12(%esp),%edi\r
+ movl 16(%esp),%ebx\r
+ cmpl $0,%ebx\r
+ je .L021done\r
+ movl $8,%ecx\r
+.L022loop:\r
+.byte 15,199,242\r
+ jc .L023break\r
+ loop .L022loop\r
+ jmp .L021done\r
+.align 16\r
+.L023break:\r
+ cmpl $4,%ebx\r
+ jb .L024tail\r
+ movl %edx,(%edi)\r
+ leal 4(%edi),%edi\r
+ addl $4,%eax\r
+ subl $4,%ebx\r
+ jz .L021done\r
+ movl $8,%ecx\r
+ jmp .L022loop\r
+.align 16\r
+.L024tail:\r
+ movb %dl,(%edi)\r
+ leal 1(%edi),%edi\r
+ incl %eax\r
+ shrl $8,%edx\r
+ decl %ebx\r
+ jnz .L024tail\r
+.L021done:\r
+ xorl %edx,%edx\r
+ popl %ebx\r
+ popl %edi\r
+ ret\r
+.size OPENSSL_ia32_rdrand_bytes,.-.L_OPENSSL_ia32_rdrand_bytes_begin\r
+.globl OPENSSL_ia32_rdseed_bytes\r
+.type OPENSSL_ia32_rdseed_bytes,@function\r
+.align 16\r
+OPENSSL_ia32_rdseed_bytes:\r
+.L_OPENSSL_ia32_rdseed_bytes_begin:\r
+ pushl %edi\r
+ pushl %ebx\r
+ xorl %eax,%eax\r
+ movl 12(%esp),%edi\r
+ movl 16(%esp),%ebx\r
+ cmpl $0,%ebx\r
+ je .L025done\r
+ movl $8,%ecx\r
+.L026loop:\r
+.byte 15,199,250\r
+ jc .L027break\r
+ loop .L026loop\r
+ jmp .L025done\r
+.align 16\r
+.L027break:\r
+ cmpl $4,%ebx\r
+ jb .L028tail\r
+ movl %edx,(%edi)\r
+ leal 4(%edi),%edi\r
+ addl $4,%eax\r
+ subl $4,%ebx\r
+ jz .L025done\r
+ movl $8,%ecx\r
+ jmp .L026loop\r
+.align 16\r
+.L028tail:\r
+ movb %dl,(%edi)\r
+ leal 1(%edi),%edi\r
+ incl %eax\r
+ shrl $8,%edx\r
+ decl %ebx\r
+ jnz .L028tail\r
+.L025done:\r
+ xorl %edx,%edx\r
+ popl %ebx\r
+ popl %edi\r
+ ret\r
+.size OPENSSL_ia32_rdseed_bytes,.-.L_OPENSSL_ia32_rdseed_bytes_begin\r
+.hidden OPENSSL_cpuid_setup\r
+.hidden OPENSSL_ia32cap_P\r
+.comm OPENSSL_ia32cap_P,16,4\r
+.section .init\r
+ call OPENSSL_cpuid_setup\r