[edk2-devel] [PATCH 21/22] CryptoPkg/openssl: cleanup remaining openssl-1.1.1 files

Gerd Hoffmann kraxel at redhat.com
Mon Mar 13 08:30:15 UTC 2023


Signed-off-by: Gerd Hoffmann <kraxel at redhat.com>
---
 .../OpensslLib/IA32/crypto/aes/aesni-x86.nasm | 3212 -----------
 .../OpensslLib/IA32/crypto/aes/vpaes-x86.nasm |  651 ---
 .../IA32/crypto/modes/ghash-x86.nasm          |  700 ---
 .../OpensslLib/IA32/crypto/sha/sha1-586.nasm  | 1394 -----
 .../IA32/crypto/sha/sha256-586.nasm           | 3364 -----------
 .../IA32/crypto/sha/sha512-586.nasm           |  579 --
 .../OpensslLib/IA32/crypto/x86cpuid.nasm      |  433 --
 .../OpensslLib/IA32Gcc/crypto/aes/aesni-x86.S | 3247 -----------
 .../OpensslLib/IA32Gcc/crypto/aes/vpaes-x86.S |  670 ---
 .../IA32Gcc/crypto/modes/ghash-x86.S          |  703 ---
 .../OpensslLib/IA32Gcc/crypto/sha/sha1-586.S  | 1389 -----
 .../IA32Gcc/crypto/sha/sha256-586.S           | 3356 -----------
 .../IA32Gcc/crypto/sha/sha512-586.S           |  574 --
 .../OpensslLib/IA32Gcc/crypto/x86cpuid.S      |  449 --
 .../X64/crypto/aes/aesni-mb-x86_64.nasm       |  732 ---
 .../X64/crypto/aes/aesni-sha1-x86_64.nasm     | 1916 -------
 .../X64/crypto/aes/aesni-sha256-x86_64.nasm   |   78 -
 .../X64/crypto/aes/aesni-x86_64.nasm          | 5103 -----------------
 .../X64/crypto/aes/vpaes-x86_64.nasm          | 1173 ----
 .../X64/crypto/modes/aesni-gcm-x86_64.nasm    |   34 -
 .../X64/crypto/modes/ghash-x86_64.nasm        | 1569 -----
 .../X64/crypto/sha/sha1-mb-x86_64.nasm        | 3137 ----------
 .../X64/crypto/sha/sha1-x86_64.nasm           | 2884 ----------
 .../X64/crypto/sha/sha256-mb-x86_64.nasm      | 3461 -----------
 .../X64/crypto/sha/sha256-x86_64.nasm         | 3313 -----------
 .../X64/crypto/sha/sha512-x86_64.nasm         | 1938 -------
 .../OpensslLib/X64/crypto/x86_64cpuid.nasm    |  491 --
 .../X64Gcc/crypto/aes/aesni-mb-x86_64.S       |  552 --
 .../X64Gcc/crypto/aes/aesni-sha1-x86_64.S     | 1719 ------
 .../X64Gcc/crypto/aes/aesni-sha256-x86_64.S   |   69 -
 .../X64Gcc/crypto/aes/aesni-x86_64.S          | 4484 ---------------
 .../X64Gcc/crypto/aes/vpaes-x86_64.S          |  863 ---
 .../X64Gcc/crypto/modes/aesni-gcm-x86_64.S    |   29 -
 .../X64Gcc/crypto/modes/ghash-x86_64.S        | 1386 -----
 .../X64Gcc/crypto/sha/sha1-mb-x86_64.S        | 2962 ----------
 .../X64Gcc/crypto/sha/sha1-x86_64.S           | 2631 ---------
 .../X64Gcc/crypto/sha/sha256-mb-x86_64.S      | 3286 -----------
 .../X64Gcc/crypto/sha/sha256-x86_64.S         | 3097 ----------
 .../X64Gcc/crypto/sha/sha512-x86_64.S         | 1811 ------
 .../OpensslLib/X64Gcc/crypto/x86_64cpuid.S    |  491 --
 CryptoPkg/Library/OpensslLib/process_files.pl |  529 --
 41 files changed, 70459 deletions(-)
 delete mode 100644 CryptoPkg/Library/OpensslLib/IA32/crypto/aes/aesni-x86.nasm
 delete mode 100644 CryptoPkg/Library/OpensslLib/IA32/crypto/aes/vpaes-x86.nasm
 delete mode 100644 CryptoPkg/Library/OpensslLib/IA32/crypto/modes/ghash-x86.nasm
 delete mode 100644 CryptoPkg/Library/OpensslLib/IA32/crypto/sha/sha1-586.nasm
 delete mode 100644 CryptoPkg/Library/OpensslLib/IA32/crypto/sha/sha256-586.nasm
 delete mode 100644 CryptoPkg/Library/OpensslLib/IA32/crypto/sha/sha512-586.nasm
 delete mode 100644 CryptoPkg/Library/OpensslLib/IA32/crypto/x86cpuid.nasm
 delete mode 100644 CryptoPkg/Library/OpensslLib/IA32Gcc/crypto/aes/aesni-x86.S
 delete mode 100644 CryptoPkg/Library/OpensslLib/IA32Gcc/crypto/aes/vpaes-x86.S
 delete mode 100644 CryptoPkg/Library/OpensslLib/IA32Gcc/crypto/modes/ghash-x86.S
 delete mode 100644 CryptoPkg/Library/OpensslLib/IA32Gcc/crypto/sha/sha1-586.S
 delete mode 100644 CryptoPkg/Library/OpensslLib/IA32Gcc/crypto/sha/sha256-586.S
 delete mode 100644 CryptoPkg/Library/OpensslLib/IA32Gcc/crypto/sha/sha512-586.S
 delete mode 100644 CryptoPkg/Library/OpensslLib/IA32Gcc/crypto/x86cpuid.S
 delete mode 100644 CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-mb-x86_64.nasm
 delete mode 100644 CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-sha1-x86_64.nasm
 delete mode 100644 CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-sha256-x86_64.nasm
 delete mode 100644 CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-x86_64.nasm
 delete mode 100644 CryptoPkg/Library/OpensslLib/X64/crypto/aes/vpaes-x86_64.nasm
 delete mode 100644 CryptoPkg/Library/OpensslLib/X64/crypto/modes/aesni-gcm-x86_64.nasm
 delete mode 100644 CryptoPkg/Library/OpensslLib/X64/crypto/modes/ghash-x86_64.nasm
 delete mode 100644 CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha1-mb-x86_64.nasm
 delete mode 100644 CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha1-x86_64.nasm
 delete mode 100644 CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha256-mb-x86_64.nasm
 delete mode 100644 CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha256-x86_64.nasm
 delete mode 100644 CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha512-x86_64.nasm
 delete mode 100644 CryptoPkg/Library/OpensslLib/X64/crypto/x86_64cpuid.nasm
 delete mode 100644 CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/aesni-mb-x86_64.S
 delete mode 100644 CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/aesni-sha1-x86_64.S
 delete mode 100644 CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/aesni-sha256-x86_64.S
 delete mode 100644 CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/aesni-x86_64.S
 delete mode 100644 CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/vpaes-x86_64.S
 delete mode 100644 CryptoPkg/Library/OpensslLib/X64Gcc/crypto/modes/aesni-gcm-x86_64.S
 delete mode 100644 CryptoPkg/Library/OpensslLib/X64Gcc/crypto/modes/ghash-x86_64.S
 delete mode 100644 CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha1-mb-x86_64.S
 delete mode 100644 CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha1-x86_64.S
 delete mode 100644 CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha256-mb-x86_64.S
 delete mode 100644 CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha256-x86_64.S
 delete mode 100644 CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha512-x86_64.S
 delete mode 100644 CryptoPkg/Library/OpensslLib/X64Gcc/crypto/x86_64cpuid.S
 delete mode 100755 CryptoPkg/Library/OpensslLib/process_files.pl

diff --git a/CryptoPkg/Library/OpensslLib/IA32/crypto/aes/aesni-x86.nasm b/CryptoPkg/Library/OpensslLib/IA32/crypto/aes/aesni-x86.nasm
deleted file mode 100644
index e0b5058273be..000000000000
--- a/CryptoPkg/Library/OpensslLib/IA32/crypto/aes/aesni-x86.nasm
+++ /dev/null
@@ -1,3212 +0,0 @@
-; WARNING: do not edit!
-; Generated from openssl/crypto/aes/asm/aesni-x86.pl
-;
-; Copyright 2009-2020 The OpenSSL Project Authors. All Rights Reserved.
-;
-; Licensed under the OpenSSL license (the "License").  You may not use
-; this file except in compliance with the License.  You can obtain a copy
-; in the file LICENSE in the source distribution or at
-; https://www.openssl.org/source/license.html
-
-%ifidn __OUTPUT_FORMAT__,obj
-section code    use32 class=code align=64
-%elifidn __OUTPUT_FORMAT__,win32
-$@feat.00 equ 1
-section .text   code align=64
-%else
-section .text   code
-%endif
-;extern _OPENSSL_ia32cap_P
-global  _aesni_encrypt
-align   16
-_aesni_encrypt:
-L$_aesni_encrypt_begin:
-        mov     eax,DWORD [4+esp]
-        mov     edx,DWORD [12+esp]
-        movups  xmm2,[eax]
-        mov     ecx,DWORD [240+edx]
-        mov     eax,DWORD [8+esp]
-        movups  xmm0,[edx]
-        movups  xmm1,[16+edx]
-        lea     edx,[32+edx]
-        xorps   xmm2,xmm0
-L$000enc1_loop_1:
-db      102,15,56,220,209
-        dec     ecx
-        movups  xmm1,[edx]
-        lea     edx,[16+edx]
-        jnz     NEAR L$000enc1_loop_1
-db      102,15,56,221,209
-        pxor    xmm0,xmm0
-        pxor    xmm1,xmm1
-        movups  [eax],xmm2
-        pxor    xmm2,xmm2
-        ret
-global  _aesni_decrypt
-align   16
-_aesni_decrypt:
-L$_aesni_decrypt_begin:
-        mov     eax,DWORD [4+esp]
-        mov     edx,DWORD [12+esp]
-        movups  xmm2,[eax]
-        mov     ecx,DWORD [240+edx]
-        mov     eax,DWORD [8+esp]
-        movups  xmm0,[edx]
-        movups  xmm1,[16+edx]
-        lea     edx,[32+edx]
-        xorps   xmm2,xmm0
-L$001dec1_loop_2:
-db      102,15,56,222,209
-        dec     ecx
-        movups  xmm1,[edx]
-        lea     edx,[16+edx]
-        jnz     NEAR L$001dec1_loop_2
-db      102,15,56,223,209
-        pxor    xmm0,xmm0
-        pxor    xmm1,xmm1
-        movups  [eax],xmm2
-        pxor    xmm2,xmm2
-        ret
-align   16
-__aesni_encrypt2:
-        movups  xmm0,[edx]
-        shl     ecx,4
-        movups  xmm1,[16+edx]
-        xorps   xmm2,xmm0
-        pxor    xmm3,xmm0
-        movups  xmm0,[32+edx]
-        lea     edx,[32+ecx*1+edx]
-        neg     ecx
-        add     ecx,16
-L$002enc2_loop:
-db      102,15,56,220,209
-db      102,15,56,220,217
-        movups  xmm1,[ecx*1+edx]
-        add     ecx,32
-db      102,15,56,220,208
-db      102,15,56,220,216
-        movups  xmm0,[ecx*1+edx-16]
-        jnz     NEAR L$002enc2_loop
-db      102,15,56,220,209
-db      102,15,56,220,217
-db      102,15,56,221,208
-db      102,15,56,221,216
-        ret
-align   16
-__aesni_decrypt2:
-        movups  xmm0,[edx]
-        shl     ecx,4
-        movups  xmm1,[16+edx]
-        xorps   xmm2,xmm0
-        pxor    xmm3,xmm0
-        movups  xmm0,[32+edx]
-        lea     edx,[32+ecx*1+edx]
-        neg     ecx
-        add     ecx,16
-L$003dec2_loop:
-db      102,15,56,222,209
-db      102,15,56,222,217
-        movups  xmm1,[ecx*1+edx]
-        add     ecx,32
-db      102,15,56,222,208
-db      102,15,56,222,216
-        movups  xmm0,[ecx*1+edx-16]
-        jnz     NEAR L$003dec2_loop
-db      102,15,56,222,209
-db      102,15,56,222,217
-db      102,15,56,223,208
-db      102,15,56,223,216
-        ret
-align   16
-__aesni_encrypt3:
-        movups  xmm0,[edx]
-        shl     ecx,4
-        movups  xmm1,[16+edx]
-        xorps   xmm2,xmm0
-        pxor    xmm3,xmm0
-        pxor    xmm4,xmm0
-        movups  xmm0,[32+edx]
-        lea     edx,[32+ecx*1+edx]
-        neg     ecx
-        add     ecx,16
-L$004enc3_loop:
-db      102,15,56,220,209
-db      102,15,56,220,217
-db      102,15,56,220,225
-        movups  xmm1,[ecx*1+edx]
-        add     ecx,32
-db      102,15,56,220,208
-db      102,15,56,220,216
-db      102,15,56,220,224
-        movups  xmm0,[ecx*1+edx-16]
-        jnz     NEAR L$004enc3_loop
-db      102,15,56,220,209
-db      102,15,56,220,217
-db      102,15,56,220,225
-db      102,15,56,221,208
-db      102,15,56,221,216
-db      102,15,56,221,224
-        ret
-align   16
-__aesni_decrypt3:
-        movups  xmm0,[edx]
-        shl     ecx,4
-        movups  xmm1,[16+edx]
-        xorps   xmm2,xmm0
-        pxor    xmm3,xmm0
-        pxor    xmm4,xmm0
-        movups  xmm0,[32+edx]
-        lea     edx,[32+ecx*1+edx]
-        neg     ecx
-        add     ecx,16
-L$005dec3_loop:
-db      102,15,56,222,209
-db      102,15,56,222,217
-db      102,15,56,222,225
-        movups  xmm1,[ecx*1+edx]
-        add     ecx,32
-db      102,15,56,222,208
-db      102,15,56,222,216
-db      102,15,56,222,224
-        movups  xmm0,[ecx*1+edx-16]
-        jnz     NEAR L$005dec3_loop
-db      102,15,56,222,209
-db      102,15,56,222,217
-db      102,15,56,222,225
-db      102,15,56,223,208
-db      102,15,56,223,216
-db      102,15,56,223,224
-        ret
-align   16
-__aesni_encrypt4:
-        movups  xmm0,[edx]
-        movups  xmm1,[16+edx]
-        shl     ecx,4
-        xorps   xmm2,xmm0
-        pxor    xmm3,xmm0
-        pxor    xmm4,xmm0
-        pxor    xmm5,xmm0
-        movups  xmm0,[32+edx]
-        lea     edx,[32+ecx*1+edx]
-        neg     ecx
-db      15,31,64,0
-        add     ecx,16
-L$006enc4_loop:
-db      102,15,56,220,209
-db      102,15,56,220,217
-db      102,15,56,220,225
-db      102,15,56,220,233
-        movups  xmm1,[ecx*1+edx]
-        add     ecx,32
-db      102,15,56,220,208
-db      102,15,56,220,216
-db      102,15,56,220,224
-db      102,15,56,220,232
-        movups  xmm0,[ecx*1+edx-16]
-        jnz     NEAR L$006enc4_loop
-db      102,15,56,220,209
-db      102,15,56,220,217
-db      102,15,56,220,225
-db      102,15,56,220,233
-db      102,15,56,221,208
-db      102,15,56,221,216
-db      102,15,56,221,224
-db      102,15,56,221,232
-        ret
-align   16
-__aesni_decrypt4:
-        movups  xmm0,[edx]
-        movups  xmm1,[16+edx]
-        shl     ecx,4
-        xorps   xmm2,xmm0
-        pxor    xmm3,xmm0
-        pxor    xmm4,xmm0
-        pxor    xmm5,xmm0
-        movups  xmm0,[32+edx]
-        lea     edx,[32+ecx*1+edx]
-        neg     ecx
-db      15,31,64,0
-        add     ecx,16
-L$007dec4_loop:
-db      102,15,56,222,209
-db      102,15,56,222,217
-db      102,15,56,222,225
-db      102,15,56,222,233
-        movups  xmm1,[ecx*1+edx]
-        add     ecx,32
-db      102,15,56,222,208
-db      102,15,56,222,216
-db      102,15,56,222,224
-db      102,15,56,222,232
-        movups  xmm0,[ecx*1+edx-16]
-        jnz     NEAR L$007dec4_loop
-db      102,15,56,222,209
-db      102,15,56,222,217
-db      102,15,56,222,225
-db      102,15,56,222,233
-db      102,15,56,223,208
-db      102,15,56,223,216
-db      102,15,56,223,224
-db      102,15,56,223,232
-        ret
-align   16
-__aesni_encrypt6:
-        movups  xmm0,[edx]
-        shl     ecx,4
-        movups  xmm1,[16+edx]
-        xorps   xmm2,xmm0
-        pxor    xmm3,xmm0
-        pxor    xmm4,xmm0
-db      102,15,56,220,209
-        pxor    xmm5,xmm0
-        pxor    xmm6,xmm0
-db      102,15,56,220,217
-        lea     edx,[32+ecx*1+edx]
-        neg     ecx
-db      102,15,56,220,225
-        pxor    xmm7,xmm0
-        movups  xmm0,[ecx*1+edx]
-        add     ecx,16
-        jmp     NEAR L$008_aesni_encrypt6_inner
-align   16
-L$009enc6_loop:
-db      102,15,56,220,209
-db      102,15,56,220,217
-db      102,15,56,220,225
-L$008_aesni_encrypt6_inner:
-db      102,15,56,220,233
-db      102,15,56,220,241
-db      102,15,56,220,249
-L$_aesni_encrypt6_enter:
-        movups  xmm1,[ecx*1+edx]
-        add     ecx,32
-db      102,15,56,220,208
-db      102,15,56,220,216
-db      102,15,56,220,224
-db      102,15,56,220,232
-db      102,15,56,220,240
-db      102,15,56,220,248
-        movups  xmm0,[ecx*1+edx-16]
-        jnz     NEAR L$009enc6_loop
-db      102,15,56,220,209
-db      102,15,56,220,217
-db      102,15,56,220,225
-db      102,15,56,220,233
-db      102,15,56,220,241
-db      102,15,56,220,249
-db      102,15,56,221,208
-db      102,15,56,221,216
-db      102,15,56,221,224
-db      102,15,56,221,232
-db      102,15,56,221,240
-db      102,15,56,221,248
-        ret
-align   16
-__aesni_decrypt6:
-        movups  xmm0,[edx]
-        shl     ecx,4
-        movups  xmm1,[16+edx]
-        xorps   xmm2,xmm0
-        pxor    xmm3,xmm0
-        pxor    xmm4,xmm0
-db      102,15,56,222,209
-        pxor    xmm5,xmm0
-        pxor    xmm6,xmm0
-db      102,15,56,222,217
-        lea     edx,[32+ecx*1+edx]
-        neg     ecx
-db      102,15,56,222,225
-        pxor    xmm7,xmm0
-        movups  xmm0,[ecx*1+edx]
-        add     ecx,16
-        jmp     NEAR L$010_aesni_decrypt6_inner
-align   16
-L$011dec6_loop:
-db      102,15,56,222,209
-db      102,15,56,222,217
-db      102,15,56,222,225
-L$010_aesni_decrypt6_inner:
-db      102,15,56,222,233
-db      102,15,56,222,241
-db      102,15,56,222,249
-L$_aesni_decrypt6_enter:
-        movups  xmm1,[ecx*1+edx]
-        add     ecx,32
-db      102,15,56,222,208
-db      102,15,56,222,216
-db      102,15,56,222,224
-db      102,15,56,222,232
-db      102,15,56,222,240
-db      102,15,56,222,248
-        movups  xmm0,[ecx*1+edx-16]
-        jnz     NEAR L$011dec6_loop
-db      102,15,56,222,209
-db      102,15,56,222,217
-db      102,15,56,222,225
-db      102,15,56,222,233
-db      102,15,56,222,241
-db      102,15,56,222,249
-db      102,15,56,223,208
-db      102,15,56,223,216
-db      102,15,56,223,224
-db      102,15,56,223,232
-db      102,15,56,223,240
-db      102,15,56,223,248
-        ret
-global  _aesni_ecb_encrypt
-align   16
-_aesni_ecb_encrypt:
-L$_aesni_ecb_encrypt_begin:
-        push    ebp
-        push    ebx
-        push    esi
-        push    edi
-        mov     esi,DWORD [20+esp]
-        mov     edi,DWORD [24+esp]
-        mov     eax,DWORD [28+esp]
-        mov     edx,DWORD [32+esp]
-        mov     ebx,DWORD [36+esp]
-        and     eax,-16
-        jz      NEAR L$012ecb_ret
-        mov     ecx,DWORD [240+edx]
-        test    ebx,ebx
-        jz      NEAR L$013ecb_decrypt
-        mov     ebp,edx
-        mov     ebx,ecx
-        cmp     eax,96
-        jb      NEAR L$014ecb_enc_tail
-        movdqu  xmm2,[esi]
-        movdqu  xmm3,[16+esi]
-        movdqu  xmm4,[32+esi]
-        movdqu  xmm5,[48+esi]
-        movdqu  xmm6,[64+esi]
-        movdqu  xmm7,[80+esi]
-        lea     esi,[96+esi]
-        sub     eax,96
-        jmp     NEAR L$015ecb_enc_loop6_enter
-align   16
-L$016ecb_enc_loop6:
-        movups  [edi],xmm2
-        movdqu  xmm2,[esi]
-        movups  [16+edi],xmm3
-        movdqu  xmm3,[16+esi]
-        movups  [32+edi],xmm4
-        movdqu  xmm4,[32+esi]
-        movups  [48+edi],xmm5
-        movdqu  xmm5,[48+esi]
-        movups  [64+edi],xmm6
-        movdqu  xmm6,[64+esi]
-        movups  [80+edi],xmm7
-        lea     edi,[96+edi]
-        movdqu  xmm7,[80+esi]
-        lea     esi,[96+esi]
-L$015ecb_enc_loop6_enter:
-        call    __aesni_encrypt6
-        mov     edx,ebp
-        mov     ecx,ebx
-        sub     eax,96
-        jnc     NEAR L$016ecb_enc_loop6
-        movups  [edi],xmm2
-        movups  [16+edi],xmm3
-        movups  [32+edi],xmm4
-        movups  [48+edi],xmm5
-        movups  [64+edi],xmm6
-        movups  [80+edi],xmm7
-        lea     edi,[96+edi]
-        add     eax,96
-        jz      NEAR L$012ecb_ret
-L$014ecb_enc_tail:
-        movups  xmm2,[esi]
-        cmp     eax,32
-        jb      NEAR L$017ecb_enc_one
-        movups  xmm3,[16+esi]
-        je      NEAR L$018ecb_enc_two
-        movups  xmm4,[32+esi]
-        cmp     eax,64
-        jb      NEAR L$019ecb_enc_three
-        movups  xmm5,[48+esi]
-        je      NEAR L$020ecb_enc_four
-        movups  xmm6,[64+esi]
-        xorps   xmm7,xmm7
-        call    __aesni_encrypt6
-        movups  [edi],xmm2
-        movups  [16+edi],xmm3
-        movups  [32+edi],xmm4
-        movups  [48+edi],xmm5
-        movups  [64+edi],xmm6
-        jmp     NEAR L$012ecb_ret
-align   16
-L$017ecb_enc_one:
-        movups  xmm0,[edx]
-        movups  xmm1,[16+edx]
-        lea     edx,[32+edx]
-        xorps   xmm2,xmm0
-L$021enc1_loop_3:
-db      102,15,56,220,209
-        dec     ecx
-        movups  xmm1,[edx]
-        lea     edx,[16+edx]
-        jnz     NEAR L$021enc1_loop_3
-db      102,15,56,221,209
-        movups  [edi],xmm2
-        jmp     NEAR L$012ecb_ret
-align   16
-L$018ecb_enc_two:
-        call    __aesni_encrypt2
-        movups  [edi],xmm2
-        movups  [16+edi],xmm3
-        jmp     NEAR L$012ecb_ret
-align   16
-L$019ecb_enc_three:
-        call    __aesni_encrypt3
-        movups  [edi],xmm2
-        movups  [16+edi],xmm3
-        movups  [32+edi],xmm4
-        jmp     NEAR L$012ecb_ret
-align   16
-L$020ecb_enc_four:
-        call    __aesni_encrypt4
-        movups  [edi],xmm2
-        movups  [16+edi],xmm3
-        movups  [32+edi],xmm4
-        movups  [48+edi],xmm5
-        jmp     NEAR L$012ecb_ret
-align   16
-L$013ecb_decrypt:
-        mov     ebp,edx
-        mov     ebx,ecx
-        cmp     eax,96
-        jb      NEAR L$022ecb_dec_tail
-        movdqu  xmm2,[esi]
-        movdqu  xmm3,[16+esi]
-        movdqu  xmm4,[32+esi]
-        movdqu  xmm5,[48+esi]
-        movdqu  xmm6,[64+esi]
-        movdqu  xmm7,[80+esi]
-        lea     esi,[96+esi]
-        sub     eax,96
-        jmp     NEAR L$023ecb_dec_loop6_enter
-align   16
-L$024ecb_dec_loop6:
-        movups  [edi],xmm2
-        movdqu  xmm2,[esi]
-        movups  [16+edi],xmm3
-        movdqu  xmm3,[16+esi]
-        movups  [32+edi],xmm4
-        movdqu  xmm4,[32+esi]
-        movups  [48+edi],xmm5
-        movdqu  xmm5,[48+esi]
-        movups  [64+edi],xmm6
-        movdqu  xmm6,[64+esi]
-        movups  [80+edi],xmm7
-        lea     edi,[96+edi]
-        movdqu  xmm7,[80+esi]
-        lea     esi,[96+esi]
-L$023ecb_dec_loop6_enter:
-        call    __aesni_decrypt6
-        mov     edx,ebp
-        mov     ecx,ebx
-        sub     eax,96
-        jnc     NEAR L$024ecb_dec_loop6
-        movups  [edi],xmm2
-        movups  [16+edi],xmm3
-        movups  [32+edi],xmm4
-        movups  [48+edi],xmm5
-        movups  [64+edi],xmm6
-        movups  [80+edi],xmm7
-        lea     edi,[96+edi]
-        add     eax,96
-        jz      NEAR L$012ecb_ret
-L$022ecb_dec_tail:
-        movups  xmm2,[esi]
-        cmp     eax,32
-        jb      NEAR L$025ecb_dec_one
-        movups  xmm3,[16+esi]
-        je      NEAR L$026ecb_dec_two
-        movups  xmm4,[32+esi]
-        cmp     eax,64
-        jb      NEAR L$027ecb_dec_three
-        movups  xmm5,[48+esi]
-        je      NEAR L$028ecb_dec_four
-        movups  xmm6,[64+esi]
-        xorps   xmm7,xmm7
-        call    __aesni_decrypt6
-        movups  [edi],xmm2
-        movups  [16+edi],xmm3
-        movups  [32+edi],xmm4
-        movups  [48+edi],xmm5
-        movups  [64+edi],xmm6
-        jmp     NEAR L$012ecb_ret
-align   16
-L$025ecb_dec_one:
-        movups  xmm0,[edx]
-        movups  xmm1,[16+edx]
-        lea     edx,[32+edx]
-        xorps   xmm2,xmm0
-L$029dec1_loop_4:
-db      102,15,56,222,209
-        dec     ecx
-        movups  xmm1,[edx]
-        lea     edx,[16+edx]
-        jnz     NEAR L$029dec1_loop_4
-db      102,15,56,223,209
-        movups  [edi],xmm2
-        jmp     NEAR L$012ecb_ret
-align   16
-L$026ecb_dec_two:
-        call    __aesni_decrypt2
-        movups  [edi],xmm2
-        movups  [16+edi],xmm3
-        jmp     NEAR L$012ecb_ret
-align   16
-L$027ecb_dec_three:
-        call    __aesni_decrypt3
-        movups  [edi],xmm2
-        movups  [16+edi],xmm3
-        movups  [32+edi],xmm4
-        jmp     NEAR L$012ecb_ret
-align   16
-L$028ecb_dec_four:
-        call    __aesni_decrypt4
-        movups  [edi],xmm2
-        movups  [16+edi],xmm3
-        movups  [32+edi],xmm4
-        movups  [48+edi],xmm5
-L$012ecb_ret:
-        pxor    xmm0,xmm0
-        pxor    xmm1,xmm1
-        pxor    xmm2,xmm2
-        pxor    xmm3,xmm3
-        pxor    xmm4,xmm4
-        pxor    xmm5,xmm5
-        pxor    xmm6,xmm6
-        pxor    xmm7,xmm7
-        pop     edi
-        pop     esi
-        pop     ebx
-        pop     ebp
-        ret
-global  _aesni_ccm64_encrypt_blocks
-align   16
-_aesni_ccm64_encrypt_blocks:
-L$_aesni_ccm64_encrypt_blocks_begin:
-        push    ebp
-        push    ebx
-        push    esi
-        push    edi
-        mov     esi,DWORD [20+esp]
-        mov     edi,DWORD [24+esp]
-        mov     eax,DWORD [28+esp]
-        mov     edx,DWORD [32+esp]
-        mov     ebx,DWORD [36+esp]
-        mov     ecx,DWORD [40+esp]
-        mov     ebp,esp
-        sub     esp,60
-        and     esp,-16
-        mov     DWORD [48+esp],ebp
-        movdqu  xmm7,[ebx]
-        movdqu  xmm3,[ecx]
-        mov     ecx,DWORD [240+edx]
-        mov     DWORD [esp],202182159
-        mov     DWORD [4+esp],134810123
-        mov     DWORD [8+esp],67438087
-        mov     DWORD [12+esp],66051
-        mov     ebx,1
-        xor     ebp,ebp
-        mov     DWORD [16+esp],ebx
-        mov     DWORD [20+esp],ebp
-        mov     DWORD [24+esp],ebp
-        mov     DWORD [28+esp],ebp
-        shl     ecx,4
-        mov     ebx,16
-        lea     ebp,[edx]
-        movdqa  xmm5,[esp]
-        movdqa  xmm2,xmm7
-        lea     edx,[32+ecx*1+edx]
-        sub     ebx,ecx
-db      102,15,56,0,253
-L$030ccm64_enc_outer:
-        movups  xmm0,[ebp]
-        mov     ecx,ebx
-        movups  xmm6,[esi]
-        xorps   xmm2,xmm0
-        movups  xmm1,[16+ebp]
-        xorps   xmm0,xmm6
-        xorps   xmm3,xmm0
-        movups  xmm0,[32+ebp]
-L$031ccm64_enc2_loop:
-db      102,15,56,220,209
-db      102,15,56,220,217
-        movups  xmm1,[ecx*1+edx]
-        add     ecx,32
-db      102,15,56,220,208
-db      102,15,56,220,216
-        movups  xmm0,[ecx*1+edx-16]
-        jnz     NEAR L$031ccm64_enc2_loop
-db      102,15,56,220,209
-db      102,15,56,220,217
-        paddq   xmm7,[16+esp]
-        dec     eax
-db      102,15,56,221,208
-db      102,15,56,221,216
-        lea     esi,[16+esi]
-        xorps   xmm6,xmm2
-        movdqa  xmm2,xmm7
-        movups  [edi],xmm6
-db      102,15,56,0,213
-        lea     edi,[16+edi]
-        jnz     NEAR L$030ccm64_enc_outer
-        mov     esp,DWORD [48+esp]
-        mov     edi,DWORD [40+esp]
-        movups  [edi],xmm3
-        pxor    xmm0,xmm0
-        pxor    xmm1,xmm1
-        pxor    xmm2,xmm2
-        pxor    xmm3,xmm3
-        pxor    xmm4,xmm4
-        pxor    xmm5,xmm5
-        pxor    xmm6,xmm6
-        pxor    xmm7,xmm7
-        pop     edi
-        pop     esi
-        pop     ebx
-        pop     ebp
-        ret
-global  _aesni_ccm64_decrypt_blocks
-align   16
-_aesni_ccm64_decrypt_blocks:
-L$_aesni_ccm64_decrypt_blocks_begin:
-        push    ebp
-        push    ebx
-        push    esi
-        push    edi
-        mov     esi,DWORD [20+esp]
-        mov     edi,DWORD [24+esp]
-        mov     eax,DWORD [28+esp]
-        mov     edx,DWORD [32+esp]
-        mov     ebx,DWORD [36+esp]
-        mov     ecx,DWORD [40+esp]
-        mov     ebp,esp
-        sub     esp,60
-        and     esp,-16
-        mov     DWORD [48+esp],ebp
-        movdqu  xmm7,[ebx]
-        movdqu  xmm3,[ecx]
-        mov     ecx,DWORD [240+edx]
-        mov     DWORD [esp],202182159
-        mov     DWORD [4+esp],134810123
-        mov     DWORD [8+esp],67438087
-        mov     DWORD [12+esp],66051
-        mov     ebx,1
-        xor     ebp,ebp
-        mov     DWORD [16+esp],ebx
-        mov     DWORD [20+esp],ebp
-        mov     DWORD [24+esp],ebp
-        mov     DWORD [28+esp],ebp
-        movdqa  xmm5,[esp]
-        movdqa  xmm2,xmm7
-        mov     ebp,edx
-        mov     ebx,ecx
-db      102,15,56,0,253
-        movups  xmm0,[edx]
-        movups  xmm1,[16+edx]
-        lea     edx,[32+edx]
-        xorps   xmm2,xmm0
-L$032enc1_loop_5:
-db      102,15,56,220,209
-        dec     ecx
-        movups  xmm1,[edx]
-        lea     edx,[16+edx]
-        jnz     NEAR L$032enc1_loop_5
-db      102,15,56,221,209
-        shl     ebx,4
-        mov     ecx,16
-        movups  xmm6,[esi]
-        paddq   xmm7,[16+esp]
-        lea     esi,[16+esi]
-        sub     ecx,ebx
-        lea     edx,[32+ebx*1+ebp]
-        mov     ebx,ecx
-        jmp     NEAR L$033ccm64_dec_outer
-align   16
-L$033ccm64_dec_outer:
-        xorps   xmm6,xmm2
-        movdqa  xmm2,xmm7
-        movups  [edi],xmm6
-        lea     edi,[16+edi]
-db      102,15,56,0,213
-        sub     eax,1
-        jz      NEAR L$034ccm64_dec_break
-        movups  xmm0,[ebp]
-        mov     ecx,ebx
-        movups  xmm1,[16+ebp]
-        xorps   xmm6,xmm0
-        xorps   xmm2,xmm0
-        xorps   xmm3,xmm6
-        movups  xmm0,[32+ebp]
-L$035ccm64_dec2_loop:
-db      102,15,56,220,209
-db      102,15,56,220,217
-        movups  xmm1,[ecx*1+edx]
-        add     ecx,32
-db      102,15,56,220,208
-db      102,15,56,220,216
-        movups  xmm0,[ecx*1+edx-16]
-        jnz     NEAR L$035ccm64_dec2_loop
-        movups  xmm6,[esi]
-        paddq   xmm7,[16+esp]
-db      102,15,56,220,209
-db      102,15,56,220,217
-db      102,15,56,221,208
-db      102,15,56,221,216
-        lea     esi,[16+esi]
-        jmp     NEAR L$033ccm64_dec_outer
-align   16
-L$034ccm64_dec_break:
-        mov     ecx,DWORD [240+ebp]
-        mov     edx,ebp
-        movups  xmm0,[edx]
-        movups  xmm1,[16+edx]
-        xorps   xmm6,xmm0
-        lea     edx,[32+edx]
-        xorps   xmm3,xmm6
-L$036enc1_loop_6:
-db      102,15,56,220,217
-        dec     ecx
-        movups  xmm1,[edx]
-        lea     edx,[16+edx]
-        jnz     NEAR L$036enc1_loop_6
-db      102,15,56,221,217
-        mov     esp,DWORD [48+esp]
-        mov     edi,DWORD [40+esp]
-        movups  [edi],xmm3
-        pxor    xmm0,xmm0
-        pxor    xmm1,xmm1
-        pxor    xmm2,xmm2
-        pxor    xmm3,xmm3
-        pxor    xmm4,xmm4
-        pxor    xmm5,xmm5
-        pxor    xmm6,xmm6
-        pxor    xmm7,xmm7
-        pop     edi
-        pop     esi
-        pop     ebx
-        pop     ebp
-        ret
-global  _aesni_ctr32_encrypt_blocks
-align   16
-_aesni_ctr32_encrypt_blocks:
-L$_aesni_ctr32_encrypt_blocks_begin:
-        push    ebp
-        push    ebx
-        push    esi
-        push    edi
-        mov     esi,DWORD [20+esp]
-        mov     edi,DWORD [24+esp]
-        mov     eax,DWORD [28+esp]
-        mov     edx,DWORD [32+esp]
-        mov     ebx,DWORD [36+esp]
-        mov     ebp,esp
-        sub     esp,88
-        and     esp,-16
-        mov     DWORD [80+esp],ebp
-        cmp     eax,1
-        je      NEAR L$037ctr32_one_shortcut
-        movdqu  xmm7,[ebx]
-        mov     DWORD [esp],202182159
-        mov     DWORD [4+esp],134810123
-        mov     DWORD [8+esp],67438087
-        mov     DWORD [12+esp],66051
-        mov     ecx,6
-        xor     ebp,ebp
-        mov     DWORD [16+esp],ecx
-        mov     DWORD [20+esp],ecx
-        mov     DWORD [24+esp],ecx
-        mov     DWORD [28+esp],ebp
-db      102,15,58,22,251,3
-db      102,15,58,34,253,3
-        mov     ecx,DWORD [240+edx]
-        bswap   ebx
-        pxor    xmm0,xmm0
-        pxor    xmm1,xmm1
-        movdqa  xmm2,[esp]
-db      102,15,58,34,195,0
-        lea     ebp,[3+ebx]
-db      102,15,58,34,205,0
-        inc     ebx
-db      102,15,58,34,195,1
-        inc     ebp
-db      102,15,58,34,205,1
-        inc     ebx
-db      102,15,58,34,195,2
-        inc     ebp
-db      102,15,58,34,205,2
-        movdqa  [48+esp],xmm0
-db      102,15,56,0,194
-        movdqu  xmm6,[edx]
-        movdqa  [64+esp],xmm1
-db      102,15,56,0,202
-        pshufd  xmm2,xmm0,192
-        pshufd  xmm3,xmm0,128
-        cmp     eax,6
-        jb      NEAR L$038ctr32_tail
-        pxor    xmm7,xmm6
-        shl     ecx,4
-        mov     ebx,16
-        movdqa  [32+esp],xmm7
-        mov     ebp,edx
-        sub     ebx,ecx
-        lea     edx,[32+ecx*1+edx]
-        sub     eax,6
-        jmp     NEAR L$039ctr32_loop6
-align   16
-L$039ctr32_loop6:
-        pshufd  xmm4,xmm0,64
-        movdqa  xmm0,[32+esp]
-        pshufd  xmm5,xmm1,192
-        pxor    xmm2,xmm0
-        pshufd  xmm6,xmm1,128
-        pxor    xmm3,xmm0
-        pshufd  xmm7,xmm1,64
-        movups  xmm1,[16+ebp]
-        pxor    xmm4,xmm0
-        pxor    xmm5,xmm0
-db      102,15,56,220,209
-        pxor    xmm6,xmm0
-        pxor    xmm7,xmm0
-db      102,15,56,220,217
-        movups  xmm0,[32+ebp]
-        mov     ecx,ebx
-db      102,15,56,220,225
-db      102,15,56,220,233
-db      102,15,56,220,241
-db      102,15,56,220,249
-        call    L$_aesni_encrypt6_enter
-        movups  xmm1,[esi]
-        movups  xmm0,[16+esi]
-        xorps   xmm2,xmm1
-        movups  xmm1,[32+esi]
-        xorps   xmm3,xmm0
-        movups  [edi],xmm2
-        movdqa  xmm0,[16+esp]
-        xorps   xmm4,xmm1
-        movdqa  xmm1,[64+esp]
-        movups  [16+edi],xmm3
-        movups  [32+edi],xmm4
-        paddd   xmm1,xmm0
-        paddd   xmm0,[48+esp]
-        movdqa  xmm2,[esp]
-        movups  xmm3,[48+esi]
-        movups  xmm4,[64+esi]
-        xorps   xmm5,xmm3
-        movups  xmm3,[80+esi]
-        lea     esi,[96+esi]
-        movdqa  [48+esp],xmm0
-db      102,15,56,0,194
-        xorps   xmm6,xmm4
-        movups  [48+edi],xmm5
-        xorps   xmm7,xmm3
-        movdqa  [64+esp],xmm1
-db      102,15,56,0,202
-        movups  [64+edi],xmm6
-        pshufd  xmm2,xmm0,192
-        movups  [80+edi],xmm7
-        lea     edi,[96+edi]
-        pshufd  xmm3,xmm0,128
-        sub     eax,6
-        jnc     NEAR L$039ctr32_loop6
-        add     eax,6
-        jz      NEAR L$040ctr32_ret
-        movdqu  xmm7,[ebp]
-        mov     edx,ebp
-        pxor    xmm7,[32+esp]
-        mov     ecx,DWORD [240+ebp]
-L$038ctr32_tail:
-        por     xmm2,xmm7
-        cmp     eax,2
-        jb      NEAR L$041ctr32_one
-        pshufd  xmm4,xmm0,64
-        por     xmm3,xmm7
-        je      NEAR L$042ctr32_two
-        pshufd  xmm5,xmm1,192
-        por     xmm4,xmm7
-        cmp     eax,4
-        jb      NEAR L$043ctr32_three
-        pshufd  xmm6,xmm1,128
-        por     xmm5,xmm7
-        je      NEAR L$044ctr32_four
-        por     xmm6,xmm7
-        call    __aesni_encrypt6
-        movups  xmm1,[esi]
-        movups  xmm0,[16+esi]
-        xorps   xmm2,xmm1
-        movups  xmm1,[32+esi]
-        xorps   xmm3,xmm0
-        movups  xmm0,[48+esi]
-        xorps   xmm4,xmm1
-        movups  xmm1,[64+esi]
-        xorps   xmm5,xmm0
-        movups  [edi],xmm2
-        xorps   xmm6,xmm1
-        movups  [16+edi],xmm3
-        movups  [32+edi],xmm4
-        movups  [48+edi],xmm5
-        movups  [64+edi],xmm6
-        jmp     NEAR L$040ctr32_ret
-align   16
-L$037ctr32_one_shortcut:
-        movups  xmm2,[ebx]
-        mov     ecx,DWORD [240+edx]
-L$041ctr32_one:
-        movups  xmm0,[edx]
-        movups  xmm1,[16+edx]
-        lea     edx,[32+edx]
-        xorps   xmm2,xmm0
-L$045enc1_loop_7:
-db      102,15,56,220,209
-        dec     ecx
-        movups  xmm1,[edx]
-        lea     edx,[16+edx]
-        jnz     NEAR L$045enc1_loop_7
-db      102,15,56,221,209
-        movups  xmm6,[esi]
-        xorps   xmm6,xmm2
-        movups  [edi],xmm6
-        jmp     NEAR L$040ctr32_ret
-align   16
-L$042ctr32_two:
-        call    __aesni_encrypt2
-        movups  xmm5,[esi]
-        movups  xmm6,[16+esi]
-        xorps   xmm2,xmm5
-        xorps   xmm3,xmm6
-        movups  [edi],xmm2
-        movups  [16+edi],xmm3
-        jmp     NEAR L$040ctr32_ret
-align   16
-L$043ctr32_three:
-        call    __aesni_encrypt3
-        movups  xmm5,[esi]
-        movups  xmm6,[16+esi]
-        xorps   xmm2,xmm5
-        movups  xmm7,[32+esi]
-        xorps   xmm3,xmm6
-        movups  [edi],xmm2
-        xorps   xmm4,xmm7
-        movups  [16+edi],xmm3
-        movups  [32+edi],xmm4
-        jmp     NEAR L$040ctr32_ret
-align   16
-L$044ctr32_four:
-        call    __aesni_encrypt4
-        movups  xmm6,[esi]
-        movups  xmm7,[16+esi]
-        movups  xmm1,[32+esi]
-        xorps   xmm2,xmm6
-        movups  xmm0,[48+esi]
-        xorps   xmm3,xmm7
-        movups  [edi],xmm2
-        xorps   xmm4,xmm1
-        movups  [16+edi],xmm3
-        xorps   xmm5,xmm0
-        movups  [32+edi],xmm4
-        movups  [48+edi],xmm5
-L$040ctr32_ret:
-        pxor    xmm0,xmm0
-        pxor    xmm1,xmm1
-        pxor    xmm2,xmm2
-        pxor    xmm3,xmm3
-        pxor    xmm4,xmm4
-        movdqa  [32+esp],xmm0
-        pxor    xmm5,xmm5
-        movdqa  [48+esp],xmm0
-        pxor    xmm6,xmm6
-        movdqa  [64+esp],xmm0
-        pxor    xmm7,xmm7
-        mov     esp,DWORD [80+esp]
-        pop     edi
-        pop     esi
-        pop     ebx
-        pop     ebp
-        ret
-global  _aesni_xts_encrypt
-align   16
-_aesni_xts_encrypt:
-L$_aesni_xts_encrypt_begin:
-        push    ebp
-        push    ebx
-        push    esi
-        push    edi
-        mov     edx,DWORD [36+esp]
-        mov     esi,DWORD [40+esp]
-        mov     ecx,DWORD [240+edx]
-        movups  xmm2,[esi]
-        movups  xmm0,[edx]
-        movups  xmm1,[16+edx]
-        lea     edx,[32+edx]
-        xorps   xmm2,xmm0
-L$046enc1_loop_8:
-db      102,15,56,220,209
-        dec     ecx
-        movups  xmm1,[edx]
-        lea     edx,[16+edx]
-        jnz     NEAR L$046enc1_loop_8
-db      102,15,56,221,209
-        mov     esi,DWORD [20+esp]
-        mov     edi,DWORD [24+esp]
-        mov     eax,DWORD [28+esp]
-        mov     edx,DWORD [32+esp]
-        mov     ebp,esp
-        sub     esp,120
-        mov     ecx,DWORD [240+edx]
-        and     esp,-16
-        mov     DWORD [96+esp],135
-        mov     DWORD [100+esp],0
-        mov     DWORD [104+esp],1
-        mov     DWORD [108+esp],0
-        mov     DWORD [112+esp],eax
-        mov     DWORD [116+esp],ebp
-        movdqa  xmm1,xmm2
-        pxor    xmm0,xmm0
-        movdqa  xmm3,[96+esp]
-        pcmpgtd xmm0,xmm1
-        and     eax,-16
-        mov     ebp,edx
-        mov     ebx,ecx
-        sub     eax,96
-        jc      NEAR L$047xts_enc_short
-        shl     ecx,4
-        mov     ebx,16
-        sub     ebx,ecx
-        lea     edx,[32+ecx*1+edx]
-        jmp     NEAR L$048xts_enc_loop6
-align   16
-L$048xts_enc_loop6:
-        pshufd  xmm2,xmm0,19
-        pxor    xmm0,xmm0
-        movdqa  [esp],xmm1
-        paddq   xmm1,xmm1
-        pand    xmm2,xmm3
-        pcmpgtd xmm0,xmm1
-        pxor    xmm1,xmm2
-        pshufd  xmm2,xmm0,19
-        pxor    xmm0,xmm0
-        movdqa  [16+esp],xmm1
-        paddq   xmm1,xmm1
-        pand    xmm2,xmm3
-        pcmpgtd xmm0,xmm1
-        pxor    xmm1,xmm2
-        pshufd  xmm2,xmm0,19
-        pxor    xmm0,xmm0
-        movdqa  [32+esp],xmm1
-        paddq   xmm1,xmm1
-        pand    xmm2,xmm3
-        pcmpgtd xmm0,xmm1
-        pxor    xmm1,xmm2
-        pshufd  xmm2,xmm0,19
-        pxor    xmm0,xmm0
-        movdqa  [48+esp],xmm1
-        paddq   xmm1,xmm1
-        pand    xmm2,xmm3
-        pcmpgtd xmm0,xmm1
-        pxor    xmm1,xmm2
-        pshufd  xmm7,xmm0,19
-        movdqa  [64+esp],xmm1
-        paddq   xmm1,xmm1
-        movups  xmm0,[ebp]
-        pand    xmm7,xmm3
-        movups  xmm2,[esi]
-        pxor    xmm7,xmm1
-        mov     ecx,ebx
-        movdqu  xmm3,[16+esi]
-        xorps   xmm2,xmm0
-        movdqu  xmm4,[32+esi]
-        pxor    xmm3,xmm0
-        movdqu  xmm5,[48+esi]
-        pxor    xmm4,xmm0
-        movdqu  xmm6,[64+esi]
-        pxor    xmm5,xmm0
-        movdqu  xmm1,[80+esi]
-        pxor    xmm6,xmm0
-        lea     esi,[96+esi]
-        pxor    xmm2,[esp]
-        movdqa  [80+esp],xmm7
-        pxor    xmm7,xmm1
-        movups  xmm1,[16+ebp]
-        pxor    xmm3,[16+esp]
-        pxor    xmm4,[32+esp]
-db      102,15,56,220,209
-        pxor    xmm5,[48+esp]
-        pxor    xmm6,[64+esp]
-db      102,15,56,220,217
-        pxor    xmm7,xmm0
-        movups  xmm0,[32+ebp]
-db      102,15,56,220,225
-db      102,15,56,220,233
-db      102,15,56,220,241
-db      102,15,56,220,249
-        call    L$_aesni_encrypt6_enter
-        movdqa  xmm1,[80+esp]
-        pxor    xmm0,xmm0
-        xorps   xmm2,[esp]
-        pcmpgtd xmm0,xmm1
-        xorps   xmm3,[16+esp]
-        movups  [edi],xmm2
-        xorps   xmm4,[32+esp]
-        movups  [16+edi],xmm3
-        xorps   xmm5,[48+esp]
-        movups  [32+edi],xmm4
-        xorps   xmm6,[64+esp]
-        movups  [48+edi],xmm5
-        xorps   xmm7,xmm1
-        movups  [64+edi],xmm6
-        pshufd  xmm2,xmm0,19
-        movups  [80+edi],xmm7
-        lea     edi,[96+edi]
-        movdqa  xmm3,[96+esp]
-        pxor    xmm0,xmm0
-        paddq   xmm1,xmm1
-        pand    xmm2,xmm3
-        pcmpgtd xmm0,xmm1
-        pxor    xmm1,xmm2
-        sub     eax,96
-        jnc     NEAR L$048xts_enc_loop6
-        mov     ecx,DWORD [240+ebp]
-        mov     edx,ebp
-        mov     ebx,ecx
-L$047xts_enc_short:
-        add     eax,96
-        jz      NEAR L$049xts_enc_done6x
-        movdqa  xmm5,xmm1
-        cmp     eax,32
-        jb      NEAR L$050xts_enc_one
-        pshufd  xmm2,xmm0,19
-        pxor    xmm0,xmm0
-        paddq   xmm1,xmm1
-        pand    xmm2,xmm3
-        pcmpgtd xmm0,xmm1
-        pxor    xmm1,xmm2
-        je      NEAR L$051xts_enc_two
-        pshufd  xmm2,xmm0,19
-        pxor    xmm0,xmm0
-        movdqa  xmm6,xmm1
-        paddq   xmm1,xmm1
-        pand    xmm2,xmm3
-        pcmpgtd xmm0,xmm1
-        pxor    xmm1,xmm2
-        cmp     eax,64
-        jb      NEAR L$052xts_enc_three
-        pshufd  xmm2,xmm0,19
-        pxor    xmm0,xmm0
-        movdqa  xmm7,xmm1
-        paddq   xmm1,xmm1
-        pand    xmm2,xmm3
-        pcmpgtd xmm0,xmm1
-        pxor    xmm1,xmm2
-        movdqa  [esp],xmm5
-        movdqa  [16+esp],xmm6
-        je      NEAR L$053xts_enc_four
-        movdqa  [32+esp],xmm7
-        pshufd  xmm7,xmm0,19
-        movdqa  [48+esp],xmm1
-        paddq   xmm1,xmm1
-        pand    xmm7,xmm3
-        pxor    xmm7,xmm1
-        movdqu  xmm2,[esi]
-        movdqu  xmm3,[16+esi]
-        movdqu  xmm4,[32+esi]
-        pxor    xmm2,[esp]
-        movdqu  xmm5,[48+esi]
-        pxor    xmm3,[16+esp]
-        movdqu  xmm6,[64+esi]
-        pxor    xmm4,[32+esp]
-        lea     esi,[80+esi]
-        pxor    xmm5,[48+esp]
-        movdqa  [64+esp],xmm7
-        pxor    xmm6,xmm7
-        call    __aesni_encrypt6
-        movaps  xmm1,[64+esp]
-        xorps   xmm2,[esp]
-        xorps   xmm3,[16+esp]
-        xorps   xmm4,[32+esp]
-        movups  [edi],xmm2
-        xorps   xmm5,[48+esp]
-        movups  [16+edi],xmm3
-        xorps   xmm6,xmm1
-        movups  [32+edi],xmm4
-        movups  [48+edi],xmm5
-        movups  [64+edi],xmm6
-        lea     edi,[80+edi]
-        jmp     NEAR L$054xts_enc_done
-align   16
-L$050xts_enc_one:
-        movups  xmm2,[esi]
-        lea     esi,[16+esi]
-        xorps   xmm2,xmm5
-        movups  xmm0,[edx]
-        movups  xmm1,[16+edx]
-        lea     edx,[32+edx]
-        xorps   xmm2,xmm0
-L$055enc1_loop_9:
-db      102,15,56,220,209
-        dec     ecx
-        movups  xmm1,[edx]
-        lea     edx,[16+edx]
-        jnz     NEAR L$055enc1_loop_9
-db      102,15,56,221,209
-        xorps   xmm2,xmm5
-        movups  [edi],xmm2
-        lea     edi,[16+edi]
-        movdqa  xmm1,xmm5
-        jmp     NEAR L$054xts_enc_done
-align   16
-L$051xts_enc_two:
-        movaps  xmm6,xmm1
-        movups  xmm2,[esi]
-        movups  xmm3,[16+esi]
-        lea     esi,[32+esi]
-        xorps   xmm2,xmm5
-        xorps   xmm3,xmm6
-        call    __aesni_encrypt2
-        xorps   xmm2,xmm5
-        xorps   xmm3,xmm6
-        movups  [edi],xmm2
-        movups  [16+edi],xmm3
-        lea     edi,[32+edi]
-        movdqa  xmm1,xmm6
-        jmp     NEAR L$054xts_enc_done
-align   16
-L$052xts_enc_three:
-        movaps  xmm7,xmm1
-        movups  xmm2,[esi]
-        movups  xmm3,[16+esi]
-        movups  xmm4,[32+esi]
-        lea     esi,[48+esi]
-        xorps   xmm2,xmm5
-        xorps   xmm3,xmm6
-        xorps   xmm4,xmm7
-        call    __aesni_encrypt3
-        xorps   xmm2,xmm5
-        xorps   xmm3,xmm6
-        xorps   xmm4,xmm7
-        movups  [edi],xmm2
-        movups  [16+edi],xmm3
-        movups  [32+edi],xmm4
-        lea     edi,[48+edi]
-        movdqa  xmm1,xmm7
-        jmp     NEAR L$054xts_enc_done
-align   16
-L$053xts_enc_four:
-        movaps  xmm6,xmm1
-        movups  xmm2,[esi]
-        movups  xmm3,[16+esi]
-        movups  xmm4,[32+esi]
-        xorps   xmm2,[esp]
-        movups  xmm5,[48+esi]
-        lea     esi,[64+esi]
-        xorps   xmm3,[16+esp]
-        xorps   xmm4,xmm7
-        xorps   xmm5,xmm6
-        call    __aesni_encrypt4
-        xorps   xmm2,[esp]
-        xorps   xmm3,[16+esp]
-        xorps   xmm4,xmm7
-        movups  [edi],xmm2
-        xorps   xmm5,xmm6
-        movups  [16+edi],xmm3
-        movups  [32+edi],xmm4
-        movups  [48+edi],xmm5
-        lea     edi,[64+edi]
-        movdqa  xmm1,xmm6
-        jmp     NEAR L$054xts_enc_done
-align   16
-L$049xts_enc_done6x:
-        mov     eax,DWORD [112+esp]
-        and     eax,15
-        jz      NEAR L$056xts_enc_ret
-        movdqa  xmm5,xmm1
-        mov     DWORD [112+esp],eax
-        jmp     NEAR L$057xts_enc_steal
-align   16
-L$054xts_enc_done:
-        mov     eax,DWORD [112+esp]
-        pxor    xmm0,xmm0
-        and     eax,15
-        jz      NEAR L$056xts_enc_ret
-        pcmpgtd xmm0,xmm1
-        mov     DWORD [112+esp],eax
-        pshufd  xmm5,xmm0,19
-        paddq   xmm1,xmm1
-        pand    xmm5,[96+esp]
-        pxor    xmm5,xmm1
-L$057xts_enc_steal:
-        movzx   ecx,BYTE [esi]
-        movzx   edx,BYTE [edi-16]
-        lea     esi,[1+esi]
-        mov     BYTE [edi-16],cl
-        mov     BYTE [edi],dl
-        lea     edi,[1+edi]
-        sub     eax,1
-        jnz     NEAR L$057xts_enc_steal
-        sub     edi,DWORD [112+esp]
-        mov     edx,ebp
-        mov     ecx,ebx
-        movups  xmm2,[edi-16]
-        xorps   xmm2,xmm5
-        movups  xmm0,[edx]
-        movups  xmm1,[16+edx]
-        lea     edx,[32+edx]
-        xorps   xmm2,xmm0
-L$058enc1_loop_10:
-db      102,15,56,220,209
-        dec     ecx
-        movups  xmm1,[edx]
-        lea     edx,[16+edx]
-        jnz     NEAR L$058enc1_loop_10
-db      102,15,56,221,209
-        xorps   xmm2,xmm5
-        movups  [edi-16],xmm2
-L$056xts_enc_ret:
-        pxor    xmm0,xmm0
-        pxor    xmm1,xmm1
-        pxor    xmm2,xmm2
-        movdqa  [esp],xmm0
-        pxor    xmm3,xmm3
-        movdqa  [16+esp],xmm0
-        pxor    xmm4,xmm4
-        movdqa  [32+esp],xmm0
-        pxor    xmm5,xmm5
-        movdqa  [48+esp],xmm0
-        pxor    xmm6,xmm6
-        movdqa  [64+esp],xmm0
-        pxor    xmm7,xmm7
-        movdqa  [80+esp],xmm0
-        mov     esp,DWORD [116+esp]
-        pop     edi
-        pop     esi
-        pop     ebx
-        pop     ebp
-        ret
-global  _aesni_xts_decrypt
-align   16
-_aesni_xts_decrypt:
-L$_aesni_xts_decrypt_begin:
-        push    ebp
-        push    ebx
-        push    esi
-        push    edi
-        mov     edx,DWORD [36+esp]
-        mov     esi,DWORD [40+esp]
-        mov     ecx,DWORD [240+edx]
-        movups  xmm2,[esi]
-        movups  xmm0,[edx]
-        movups  xmm1,[16+edx]
-        lea     edx,[32+edx]
-        xorps   xmm2,xmm0
-L$059enc1_loop_11:
-db      102,15,56,220,209
-        dec     ecx
-        movups  xmm1,[edx]
-        lea     edx,[16+edx]
-        jnz     NEAR L$059enc1_loop_11
-db      102,15,56,221,209
-        mov     esi,DWORD [20+esp]
-        mov     edi,DWORD [24+esp]
-        mov     eax,DWORD [28+esp]
-        mov     edx,DWORD [32+esp]
-        mov     ebp,esp
-        sub     esp,120
-        and     esp,-16
-        xor     ebx,ebx
-        test    eax,15
-        setnz   bl
-        shl     ebx,4
-        sub     eax,ebx
-        mov     DWORD [96+esp],135
-        mov     DWORD [100+esp],0
-        mov     DWORD [104+esp],1
-        mov     DWORD [108+esp],0
-        mov     DWORD [112+esp],eax
-        mov     DWORD [116+esp],ebp
-        mov     ecx,DWORD [240+edx]
-        mov     ebp,edx
-        mov     ebx,ecx
-        movdqa  xmm1,xmm2
-        pxor    xmm0,xmm0
-        movdqa  xmm3,[96+esp]
-        pcmpgtd xmm0,xmm1
-        and     eax,-16
-        sub     eax,96
-        jc      NEAR L$060xts_dec_short
-        shl     ecx,4
-        mov     ebx,16
-        sub     ebx,ecx
-        lea     edx,[32+ecx*1+edx]
-        jmp     NEAR L$061xts_dec_loop6
-align   16
-L$061xts_dec_loop6:
-        pshufd  xmm2,xmm0,19
-        pxor    xmm0,xmm0
-        movdqa  [esp],xmm1
-        paddq   xmm1,xmm1
-        pand    xmm2,xmm3
-        pcmpgtd xmm0,xmm1
-        pxor    xmm1,xmm2
-        pshufd  xmm2,xmm0,19
-        pxor    xmm0,xmm0
-        movdqa  [16+esp],xmm1
-        paddq   xmm1,xmm1
-        pand    xmm2,xmm3
-        pcmpgtd xmm0,xmm1
-        pxor    xmm1,xmm2
-        pshufd  xmm2,xmm0,19
-        pxor    xmm0,xmm0
-        movdqa  [32+esp],xmm1
-        paddq   xmm1,xmm1
-        pand    xmm2,xmm3
-        pcmpgtd xmm0,xmm1
-        pxor    xmm1,xmm2
-        pshufd  xmm2,xmm0,19
-        pxor    xmm0,xmm0
-        movdqa  [48+esp],xmm1
-        paddq   xmm1,xmm1
-        pand    xmm2,xmm3
-        pcmpgtd xmm0,xmm1
-        pxor    xmm1,xmm2
-        pshufd  xmm7,xmm0,19
-        movdqa  [64+esp],xmm1
-        paddq   xmm1,xmm1
-        movups  xmm0,[ebp]
-        pand    xmm7,xmm3
-        movups  xmm2,[esi]
-        pxor    xmm7,xmm1
-        mov     ecx,ebx
-        movdqu  xmm3,[16+esi]
-        xorps   xmm2,xmm0
-        movdqu  xmm4,[32+esi]
-        pxor    xmm3,xmm0
-        movdqu  xmm5,[48+esi]
-        pxor    xmm4,xmm0
-        movdqu  xmm6,[64+esi]
-        pxor    xmm5,xmm0
-        movdqu  xmm1,[80+esi]
-        pxor    xmm6,xmm0
-        lea     esi,[96+esi]
-        pxor    xmm2,[esp]
-        movdqa  [80+esp],xmm7
-        pxor    xmm7,xmm1
-        movups  xmm1,[16+ebp]
-        pxor    xmm3,[16+esp]
-        pxor    xmm4,[32+esp]
-db      102,15,56,222,209
-        pxor    xmm5,[48+esp]
-        pxor    xmm6,[64+esp]
-db      102,15,56,222,217
-        pxor    xmm7,xmm0
-        movups  xmm0,[32+ebp]
-db      102,15,56,222,225
-db      102,15,56,222,233
-db      102,15,56,222,241
-db      102,15,56,222,249
-        call    L$_aesni_decrypt6_enter
-        movdqa  xmm1,[80+esp]
-        pxor    xmm0,xmm0
-        xorps   xmm2,[esp]
-        pcmpgtd xmm0,xmm1
-        xorps   xmm3,[16+esp]
-        movups  [edi],xmm2
-        xorps   xmm4,[32+esp]
-        movups  [16+edi],xmm3
-        xorps   xmm5,[48+esp]
-        movups  [32+edi],xmm4
-        xorps   xmm6,[64+esp]
-        movups  [48+edi],xmm5
-        xorps   xmm7,xmm1
-        movups  [64+edi],xmm6
-        pshufd  xmm2,xmm0,19
-        movups  [80+edi],xmm7
-        lea     edi,[96+edi]
-        movdqa  xmm3,[96+esp]
-        pxor    xmm0,xmm0
-        paddq   xmm1,xmm1
-        pand    xmm2,xmm3
-        pcmpgtd xmm0,xmm1
-        pxor    xmm1,xmm2
-        sub     eax,96
-        jnc     NEAR L$061xts_dec_loop6
-        mov     ecx,DWORD [240+ebp]
-        mov     edx,ebp
-        mov     ebx,ecx
-L$060xts_dec_short:
-        add     eax,96
-        jz      NEAR L$062xts_dec_done6x
-        movdqa  xmm5,xmm1
-        cmp     eax,32
-        jb      NEAR L$063xts_dec_one
-        pshufd  xmm2,xmm0,19
-        pxor    xmm0,xmm0
-        paddq   xmm1,xmm1
-        pand    xmm2,xmm3
-        pcmpgtd xmm0,xmm1
-        pxor    xmm1,xmm2
-        je      NEAR L$064xts_dec_two
-        pshufd  xmm2,xmm0,19
-        pxor    xmm0,xmm0
-        movdqa  xmm6,xmm1
-        paddq   xmm1,xmm1
-        pand    xmm2,xmm3
-        pcmpgtd xmm0,xmm1
-        pxor    xmm1,xmm2
-        cmp     eax,64
-        jb      NEAR L$065xts_dec_three
-        pshufd  xmm2,xmm0,19
-        pxor    xmm0,xmm0
-        movdqa  xmm7,xmm1
-        paddq   xmm1,xmm1
-        pand    xmm2,xmm3
-        pcmpgtd xmm0,xmm1
-        pxor    xmm1,xmm2
-        movdqa  [esp],xmm5
-        movdqa  [16+esp],xmm6
-        je      NEAR L$066xts_dec_four
-        movdqa  [32+esp],xmm7
-        pshufd  xmm7,xmm0,19
-        movdqa  [48+esp],xmm1
-        paddq   xmm1,xmm1
-        pand    xmm7,xmm3
-        pxor    xmm7,xmm1
-        movdqu  xmm2,[esi]
-        movdqu  xmm3,[16+esi]
-        movdqu  xmm4,[32+esi]
-        pxor    xmm2,[esp]
-        movdqu  xmm5,[48+esi]
-        pxor    xmm3,[16+esp]
-        movdqu  xmm6,[64+esi]
-        pxor    xmm4,[32+esp]
-        lea     esi,[80+esi]
-        pxor    xmm5,[48+esp]
-        movdqa  [64+esp],xmm7
-        pxor    xmm6,xmm7
-        call    __aesni_decrypt6
-        movaps  xmm1,[64+esp]
-        xorps   xmm2,[esp]
-        xorps   xmm3,[16+esp]
-        xorps   xmm4,[32+esp]
-        movups  [edi],xmm2
-        xorps   xmm5,[48+esp]
-        movups  [16+edi],xmm3
-        xorps   xmm6,xmm1
-        movups  [32+edi],xmm4
-        movups  [48+edi],xmm5
-        movups  [64+edi],xmm6
-        lea     edi,[80+edi]
-        jmp     NEAR L$067xts_dec_done
-align   16
-L$063xts_dec_one:
-        movups  xmm2,[esi]
-        lea     esi,[16+esi]
-        xorps   xmm2,xmm5
-        movups  xmm0,[edx]
-        movups  xmm1,[16+edx]
-        lea     edx,[32+edx]
-        xorps   xmm2,xmm0
-L$068dec1_loop_12:
-db      102,15,56,222,209
-        dec     ecx
-        movups  xmm1,[edx]
-        lea     edx,[16+edx]
-        jnz     NEAR L$068dec1_loop_12
-db      102,15,56,223,209
-        xorps   xmm2,xmm5
-        movups  [edi],xmm2
-        lea     edi,[16+edi]
-        movdqa  xmm1,xmm5
-        jmp     NEAR L$067xts_dec_done
-align   16
-L$064xts_dec_two:
-        movaps  xmm6,xmm1
-        movups  xmm2,[esi]
-        movups  xmm3,[16+esi]
-        lea     esi,[32+esi]
-        xorps   xmm2,xmm5
-        xorps   xmm3,xmm6
-        call    __aesni_decrypt2
-        xorps   xmm2,xmm5
-        xorps   xmm3,xmm6
-        movups  [edi],xmm2
-        movups  [16+edi],xmm3
-        lea     edi,[32+edi]
-        movdqa  xmm1,xmm6
-        jmp     NEAR L$067xts_dec_done
-align   16
-L$065xts_dec_three:
-        movaps  xmm7,xmm1
-        movups  xmm2,[esi]
-        movups  xmm3,[16+esi]
-        movups  xmm4,[32+esi]
-        lea     esi,[48+esi]
-        xorps   xmm2,xmm5
-        xorps   xmm3,xmm6
-        xorps   xmm4,xmm7
-        call    __aesni_decrypt3
-        xorps   xmm2,xmm5
-        xorps   xmm3,xmm6
-        xorps   xmm4,xmm7
-        movups  [edi],xmm2
-        movups  [16+edi],xmm3
-        movups  [32+edi],xmm4
-        lea     edi,[48+edi]
-        movdqa  xmm1,xmm7
-        jmp     NEAR L$067xts_dec_done
-align   16
-L$066xts_dec_four:
-        movaps  xmm6,xmm1
-        movups  xmm2,[esi]
-        movups  xmm3,[16+esi]
-        movups  xmm4,[32+esi]
-        xorps   xmm2,[esp]
-        movups  xmm5,[48+esi]
-        lea     esi,[64+esi]
-        xorps   xmm3,[16+esp]
-        xorps   xmm4,xmm7
-        xorps   xmm5,xmm6
-        call    __aesni_decrypt4
-        xorps   xmm2,[esp]
-        xorps   xmm3,[16+esp]
-        xorps   xmm4,xmm7
-        movups  [edi],xmm2
-        xorps   xmm5,xmm6
-        movups  [16+edi],xmm3
-        movups  [32+edi],xmm4
-        movups  [48+edi],xmm5
-        lea     edi,[64+edi]
-        movdqa  xmm1,xmm6
-        jmp     NEAR L$067xts_dec_done
-align   16
-L$062xts_dec_done6x:
-        mov     eax,DWORD [112+esp]
-        and     eax,15
-        jz      NEAR L$069xts_dec_ret
-        mov     DWORD [112+esp],eax
-        jmp     NEAR L$070xts_dec_only_one_more
-align   16
-L$067xts_dec_done:
-        mov     eax,DWORD [112+esp]
-        pxor    xmm0,xmm0
-        and     eax,15
-        jz      NEAR L$069xts_dec_ret
-        pcmpgtd xmm0,xmm1
-        mov     DWORD [112+esp],eax
-        pshufd  xmm2,xmm0,19
-        pxor    xmm0,xmm0
-        movdqa  xmm3,[96+esp]
-        paddq   xmm1,xmm1
-        pand    xmm2,xmm3
-        pcmpgtd xmm0,xmm1
-        pxor    xmm1,xmm2
-L$070xts_dec_only_one_more:
-        pshufd  xmm5,xmm0,19
-        movdqa  xmm6,xmm1
-        paddq   xmm1,xmm1
-        pand    xmm5,xmm3
-        pxor    xmm5,xmm1
-        mov     edx,ebp
-        mov     ecx,ebx
-        movups  xmm2,[esi]
-        xorps   xmm2,xmm5
-        movups  xmm0,[edx]
-        movups  xmm1,[16+edx]
-        lea     edx,[32+edx]
-        xorps   xmm2,xmm0
-L$071dec1_loop_13:
-db      102,15,56,222,209
-        dec     ecx
-        movups  xmm1,[edx]
-        lea     edx,[16+edx]
-        jnz     NEAR L$071dec1_loop_13
-db      102,15,56,223,209
-        xorps   xmm2,xmm5
-        movups  [edi],xmm2
-L$072xts_dec_steal:
-        movzx   ecx,BYTE [16+esi]
-        movzx   edx,BYTE [edi]
-        lea     esi,[1+esi]
-        mov     BYTE [edi],cl
-        mov     BYTE [16+edi],dl
-        lea     edi,[1+edi]
-        sub     eax,1
-        jnz     NEAR L$072xts_dec_steal
-        sub     edi,DWORD [112+esp]
-        mov     edx,ebp
-        mov     ecx,ebx
-        movups  xmm2,[edi]
-        xorps   xmm2,xmm6
-        movups  xmm0,[edx]
-        movups  xmm1,[16+edx]
-        lea     edx,[32+edx]
-        xorps   xmm2,xmm0
-L$073dec1_loop_14:
-db      102,15,56,222,209
-        dec     ecx
-        movups  xmm1,[edx]
-        lea     edx,[16+edx]
-        jnz     NEAR L$073dec1_loop_14
-db      102,15,56,223,209
-        xorps   xmm2,xmm6
-        movups  [edi],xmm2
-L$069xts_dec_ret:
-        pxor    xmm0,xmm0
-        pxor    xmm1,xmm1
-        pxor    xmm2,xmm2
-        movdqa  [esp],xmm0
-        pxor    xmm3,xmm3
-        movdqa  [16+esp],xmm0
-        pxor    xmm4,xmm4
-        movdqa  [32+esp],xmm0
-        pxor    xmm5,xmm5
-        movdqa  [48+esp],xmm0
-        pxor    xmm6,xmm6
-        movdqa  [64+esp],xmm0
-        pxor    xmm7,xmm7
-        movdqa  [80+esp],xmm0
-        mov     esp,DWORD [116+esp]
-        pop     edi
-        pop     esi
-        pop     ebx
-        pop     ebp
-        ret
-global  _aesni_ocb_encrypt
-align   16
-_aesni_ocb_encrypt:
-L$_aesni_ocb_encrypt_begin:
-        push    ebp
-        push    ebx
-        push    esi
-        push    edi
-        mov     ecx,DWORD [40+esp]
-        mov     ebx,DWORD [48+esp]
-        mov     esi,DWORD [20+esp]
-        mov     edi,DWORD [24+esp]
-        mov     eax,DWORD [28+esp]
-        mov     edx,DWORD [32+esp]
-        movdqu  xmm0,[ecx]
-        mov     ebp,DWORD [36+esp]
-        movdqu  xmm1,[ebx]
-        mov     ebx,DWORD [44+esp]
-        mov     ecx,esp
-        sub     esp,132
-        and     esp,-16
-        sub     edi,esi
-        shl     eax,4
-        lea     eax,[eax*1+esi-96]
-        mov     DWORD [120+esp],edi
-        mov     DWORD [124+esp],eax
-        mov     DWORD [128+esp],ecx
-        mov     ecx,DWORD [240+edx]
-        test    ebp,1
-        jnz     NEAR L$074odd
-        bsf     eax,ebp
-        add     ebp,1
-        shl     eax,4
-        movdqu  xmm7,[eax*1+ebx]
-        mov     eax,edx
-        movdqu  xmm2,[esi]
-        lea     esi,[16+esi]
-        pxor    xmm7,xmm0
-        pxor    xmm1,xmm2
-        pxor    xmm2,xmm7
-        movdqa  xmm6,xmm1
-        movups  xmm0,[edx]
-        movups  xmm1,[16+edx]
-        lea     edx,[32+edx]
-        xorps   xmm2,xmm0
-L$075enc1_loop_15:
-db      102,15,56,220,209
-        dec     ecx
-        movups  xmm1,[edx]
-        lea     edx,[16+edx]
-        jnz     NEAR L$075enc1_loop_15
-db      102,15,56,221,209
-        xorps   xmm2,xmm7
-        movdqa  xmm0,xmm7
-        movdqa  xmm1,xmm6
-        movups  [esi*1+edi-16],xmm2
-        mov     ecx,DWORD [240+eax]
-        mov     edx,eax
-        mov     eax,DWORD [124+esp]
-L$074odd:
-        shl     ecx,4
-        mov     edi,16
-        sub     edi,ecx
-        mov     DWORD [112+esp],edx
-        lea     edx,[32+ecx*1+edx]
-        mov     DWORD [116+esp],edi
-        cmp     esi,eax
-        ja      NEAR L$076short
-        jmp     NEAR L$077grandloop
-align   32
-L$077grandloop:
-        lea     ecx,[1+ebp]
-        lea     eax,[3+ebp]
-        lea     edi,[5+ebp]
-        add     ebp,6
-        bsf     ecx,ecx
-        bsf     eax,eax
-        bsf     edi,edi
-        shl     ecx,4
-        shl     eax,4
-        shl     edi,4
-        movdqu  xmm2,[ebx]
-        movdqu  xmm3,[ecx*1+ebx]
-        mov     ecx,DWORD [116+esp]
-        movdqa  xmm4,xmm2
-        movdqu  xmm5,[eax*1+ebx]
-        movdqa  xmm6,xmm2
-        movdqu  xmm7,[edi*1+ebx]
-        pxor    xmm2,xmm0
-        pxor    xmm3,xmm2
-        movdqa  [esp],xmm2
-        pxor    xmm4,xmm3
-        movdqa  [16+esp],xmm3
-        pxor    xmm5,xmm4
-        movdqa  [32+esp],xmm4
-        pxor    xmm6,xmm5
-        movdqa  [48+esp],xmm5
-        pxor    xmm7,xmm6
-        movdqa  [64+esp],xmm6
-        movdqa  [80+esp],xmm7
-        movups  xmm0,[ecx*1+edx-48]
-        movdqu  xmm2,[esi]
-        movdqu  xmm3,[16+esi]
-        movdqu  xmm4,[32+esi]
-        movdqu  xmm5,[48+esi]
-        movdqu  xmm6,[64+esi]
-        movdqu  xmm7,[80+esi]
-        lea     esi,[96+esi]
-        pxor    xmm1,xmm2
-        pxor    xmm2,xmm0
-        pxor    xmm1,xmm3
-        pxor    xmm3,xmm0
-        pxor    xmm1,xmm4
-        pxor    xmm4,xmm0
-        pxor    xmm1,xmm5
-        pxor    xmm5,xmm0
-        pxor    xmm1,xmm6
-        pxor    xmm6,xmm0
-        pxor    xmm1,xmm7
-        pxor    xmm7,xmm0
-        movdqa  [96+esp],xmm1
-        movups  xmm1,[ecx*1+edx-32]
-        pxor    xmm2,[esp]
-        pxor    xmm3,[16+esp]
-        pxor    xmm4,[32+esp]
-        pxor    xmm5,[48+esp]
-        pxor    xmm6,[64+esp]
-        pxor    xmm7,[80+esp]
-        movups  xmm0,[ecx*1+edx-16]
-db      102,15,56,220,209
-db      102,15,56,220,217
-db      102,15,56,220,225
-db      102,15,56,220,233
-db      102,15,56,220,241
-db      102,15,56,220,249
-        mov     edi,DWORD [120+esp]
-        mov     eax,DWORD [124+esp]
-        call    L$_aesni_encrypt6_enter
-        movdqa  xmm0,[80+esp]
-        pxor    xmm2,[esp]
-        pxor    xmm3,[16+esp]
-        pxor    xmm4,[32+esp]
-        pxor    xmm5,[48+esp]
-        pxor    xmm6,[64+esp]
-        pxor    xmm7,xmm0
-        movdqa  xmm1,[96+esp]
-        movdqu  [esi*1+edi-96],xmm2
-        movdqu  [esi*1+edi-80],xmm3
-        movdqu  [esi*1+edi-64],xmm4
-        movdqu  [esi*1+edi-48],xmm5
-        movdqu  [esi*1+edi-32],xmm6
-        movdqu  [esi*1+edi-16],xmm7
-        cmp     esi,eax
-        jb      NEAR L$077grandloop
-L$076short:
-        add     eax,96
-        sub     eax,esi
-        jz      NEAR L$078done
-        cmp     eax,32
-        jb      NEAR L$079one
-        je      NEAR L$080two
-        cmp     eax,64
-        jb      NEAR L$081three
-        je      NEAR L$082four
-        lea     ecx,[1+ebp]
-        lea     eax,[3+ebp]
-        bsf     ecx,ecx
-        bsf     eax,eax
-        shl     ecx,4
-        shl     eax,4
-        movdqu  xmm2,[ebx]
-        movdqu  xmm3,[ecx*1+ebx]
-        mov     ecx,DWORD [116+esp]
-        movdqa  xmm4,xmm2
-        movdqu  xmm5,[eax*1+ebx]
-        movdqa  xmm6,xmm2
-        pxor    xmm2,xmm0
-        pxor    xmm3,xmm2
-        movdqa  [esp],xmm2
-        pxor    xmm4,xmm3
-        movdqa  [16+esp],xmm3
-        pxor    xmm5,xmm4
-        movdqa  [32+esp],xmm4
-        pxor    xmm6,xmm5
-        movdqa  [48+esp],xmm5
-        pxor    xmm7,xmm6
-        movdqa  [64+esp],xmm6
-        movups  xmm0,[ecx*1+edx-48]
-        movdqu  xmm2,[esi]
-        movdqu  xmm3,[16+esi]
-        movdqu  xmm4,[32+esi]
-        movdqu  xmm5,[48+esi]
-        movdqu  xmm6,[64+esi]
-        pxor    xmm7,xmm7
-        pxor    xmm1,xmm2
-        pxor    xmm2,xmm0
-        pxor    xmm1,xmm3
-        pxor    xmm3,xmm0
-        pxor    xmm1,xmm4
-        pxor    xmm4,xmm0
-        pxor    xmm1,xmm5
-        pxor    xmm5,xmm0
-        pxor    xmm1,xmm6
-        pxor    xmm6,xmm0
-        movdqa  [96+esp],xmm1
-        movups  xmm1,[ecx*1+edx-32]
-        pxor    xmm2,[esp]
-        pxor    xmm3,[16+esp]
-        pxor    xmm4,[32+esp]
-        pxor    xmm5,[48+esp]
-        pxor    xmm6,[64+esp]
-        movups  xmm0,[ecx*1+edx-16]
-db      102,15,56,220,209
-db      102,15,56,220,217
-db      102,15,56,220,225
-db      102,15,56,220,233
-db      102,15,56,220,241
-db      102,15,56,220,249
-        mov     edi,DWORD [120+esp]
-        call    L$_aesni_encrypt6_enter
-        movdqa  xmm0,[64+esp]
-        pxor    xmm2,[esp]
-        pxor    xmm3,[16+esp]
-        pxor    xmm4,[32+esp]
-        pxor    xmm5,[48+esp]
-        pxor    xmm6,xmm0
-        movdqa  xmm1,[96+esp]
-        movdqu  [esi*1+edi],xmm2
-        movdqu  [16+esi*1+edi],xmm3
-        movdqu  [32+esi*1+edi],xmm4
-        movdqu  [48+esi*1+edi],xmm5
-        movdqu  [64+esi*1+edi],xmm6
-        jmp     NEAR L$078done
-align   16
-L$079one:
-        movdqu  xmm7,[ebx]
-        mov     edx,DWORD [112+esp]
-        movdqu  xmm2,[esi]
-        mov     ecx,DWORD [240+edx]
-        pxor    xmm7,xmm0
-        pxor    xmm1,xmm2
-        pxor    xmm2,xmm7
-        movdqa  xmm6,xmm1
-        mov     edi,DWORD [120+esp]
-        movups  xmm0,[edx]
-        movups  xmm1,[16+edx]
-        lea     edx,[32+edx]
-        xorps   xmm2,xmm0
-L$083enc1_loop_16:
-db      102,15,56,220,209
-        dec     ecx
-        movups  xmm1,[edx]
-        lea     edx,[16+edx]
-        jnz     NEAR L$083enc1_loop_16
-db      102,15,56,221,209
-        xorps   xmm2,xmm7
-        movdqa  xmm0,xmm7
-        movdqa  xmm1,xmm6
-        movups  [esi*1+edi],xmm2
-        jmp     NEAR L$078done
-align   16
-L$080two:
-        lea     ecx,[1+ebp]
-        mov     edx,DWORD [112+esp]
-        bsf     ecx,ecx
-        shl     ecx,4
-        movdqu  xmm6,[ebx]
-        movdqu  xmm7,[ecx*1+ebx]
-        movdqu  xmm2,[esi]
-        movdqu  xmm3,[16+esi]
-        mov     ecx,DWORD [240+edx]
-        pxor    xmm6,xmm0
-        pxor    xmm7,xmm6
-        pxor    xmm1,xmm2
-        pxor    xmm2,xmm6
-        pxor    xmm1,xmm3
-        pxor    xmm3,xmm7
-        movdqa  xmm5,xmm1
-        mov     edi,DWORD [120+esp]
-        call    __aesni_encrypt2
-        xorps   xmm2,xmm6
-        xorps   xmm3,xmm7
-        movdqa  xmm0,xmm7
-        movdqa  xmm1,xmm5
-        movups  [esi*1+edi],xmm2
-        movups  [16+esi*1+edi],xmm3
-        jmp     NEAR L$078done
-align   16
-L$081three:
-        lea     ecx,[1+ebp]
-        mov     edx,DWORD [112+esp]
-        bsf     ecx,ecx
-        shl     ecx,4
-        movdqu  xmm5,[ebx]
-        movdqu  xmm6,[ecx*1+ebx]
-        movdqa  xmm7,xmm5
-        movdqu  xmm2,[esi]
-        movdqu  xmm3,[16+esi]
-        movdqu  xmm4,[32+esi]
-        mov     ecx,DWORD [240+edx]
-        pxor    xmm5,xmm0
-        pxor    xmm6,xmm5
-        pxor    xmm7,xmm6
-        pxor    xmm1,xmm2
-        pxor    xmm2,xmm5
-        pxor    xmm1,xmm3
-        pxor    xmm3,xmm6
-        pxor    xmm1,xmm4
-        pxor    xmm4,xmm7
-        movdqa  [96+esp],xmm1
-        mov     edi,DWORD [120+esp]
-        call    __aesni_encrypt3
-        xorps   xmm2,xmm5
-        xorps   xmm3,xmm6
-        xorps   xmm4,xmm7
-        movdqa  xmm0,xmm7
-        movdqa  xmm1,[96+esp]
-        movups  [esi*1+edi],xmm2
-        movups  [16+esi*1+edi],xmm3
-        movups  [32+esi*1+edi],xmm4
-        jmp     NEAR L$078done
-align   16
-L$082four:
-        lea     ecx,[1+ebp]
-        lea     eax,[3+ebp]
-        bsf     ecx,ecx
-        bsf     eax,eax
-        mov     edx,DWORD [112+esp]
-        shl     ecx,4
-        shl     eax,4
-        movdqu  xmm4,[ebx]
-        movdqu  xmm5,[ecx*1+ebx]
-        movdqa  xmm6,xmm4
-        movdqu  xmm7,[eax*1+ebx]
-        pxor    xmm4,xmm0
-        movdqu  xmm2,[esi]
-        pxor    xmm5,xmm4
-        movdqu  xmm3,[16+esi]
-        pxor    xmm6,xmm5
-        movdqa  [esp],xmm4
-        pxor    xmm7,xmm6
-        movdqa  [16+esp],xmm5
-        movdqu  xmm4,[32+esi]
-        movdqu  xmm5,[48+esi]
-        mov     ecx,DWORD [240+edx]
-        pxor    xmm1,xmm2
-        pxor    xmm2,[esp]
-        pxor    xmm1,xmm3
-        pxor    xmm3,[16+esp]
-        pxor    xmm1,xmm4
-        pxor    xmm4,xmm6
-        pxor    xmm1,xmm5
-        pxor    xmm5,xmm7
-        movdqa  [96+esp],xmm1
-        mov     edi,DWORD [120+esp]
-        call    __aesni_encrypt4
-        xorps   xmm2,[esp]
-        xorps   xmm3,[16+esp]
-        xorps   xmm4,xmm6
-        movups  [esi*1+edi],xmm2
-        xorps   xmm5,xmm7
-        movups  [16+esi*1+edi],xmm3
-        movdqa  xmm0,xmm7
-        movups  [32+esi*1+edi],xmm4
-        movdqa  xmm1,[96+esp]
-        movups  [48+esi*1+edi],xmm5
-L$078done:
-        mov     edx,DWORD [128+esp]
-        pxor    xmm2,xmm2
-        pxor    xmm3,xmm3
-        movdqa  [esp],xmm2
-        pxor    xmm4,xmm4
-        movdqa  [16+esp],xmm2
-        pxor    xmm5,xmm5
-        movdqa  [32+esp],xmm2
-        pxor    xmm6,xmm6
-        movdqa  [48+esp],xmm2
-        pxor    xmm7,xmm7
-        movdqa  [64+esp],xmm2
-        movdqa  [80+esp],xmm2
-        movdqa  [96+esp],xmm2
-        lea     esp,[edx]
-        mov     ecx,DWORD [40+esp]
-        mov     ebx,DWORD [48+esp]
-        movdqu  [ecx],xmm0
-        pxor    xmm0,xmm0
-        movdqu  [ebx],xmm1
-        pxor    xmm1,xmm1
-        pop     edi
-        pop     esi
-        pop     ebx
-        pop     ebp
-        ret
-global  _aesni_ocb_decrypt
-align   16
-_aesni_ocb_decrypt:
-L$_aesni_ocb_decrypt_begin:
-        push    ebp
-        push    ebx
-        push    esi
-        push    edi
-        mov     ecx,DWORD [40+esp]
-        mov     ebx,DWORD [48+esp]
-        mov     esi,DWORD [20+esp]
-        mov     edi,DWORD [24+esp]
-        mov     eax,DWORD [28+esp]
-        mov     edx,DWORD [32+esp]
-        movdqu  xmm0,[ecx]
-        mov     ebp,DWORD [36+esp]
-        movdqu  xmm1,[ebx]
-        mov     ebx,DWORD [44+esp]
-        mov     ecx,esp
-        sub     esp,132
-        and     esp,-16
-        sub     edi,esi
-        shl     eax,4
-        lea     eax,[eax*1+esi-96]
-        mov     DWORD [120+esp],edi
-        mov     DWORD [124+esp],eax
-        mov     DWORD [128+esp],ecx
-        mov     ecx,DWORD [240+edx]
-        test    ebp,1
-        jnz     NEAR L$084odd
-        bsf     eax,ebp
-        add     ebp,1
-        shl     eax,4
-        movdqu  xmm7,[eax*1+ebx]
-        mov     eax,edx
-        movdqu  xmm2,[esi]
-        lea     esi,[16+esi]
-        pxor    xmm7,xmm0
-        pxor    xmm2,xmm7
-        movdqa  xmm6,xmm1
-        movups  xmm0,[edx]
-        movups  xmm1,[16+edx]
-        lea     edx,[32+edx]
-        xorps   xmm2,xmm0
-L$085dec1_loop_17:
-db      102,15,56,222,209
-        dec     ecx
-        movups  xmm1,[edx]
-        lea     edx,[16+edx]
-        jnz     NEAR L$085dec1_loop_17
-db      102,15,56,223,209
-        xorps   xmm2,xmm7
-        movaps  xmm1,xmm6
-        movdqa  xmm0,xmm7
-        xorps   xmm1,xmm2
-        movups  [esi*1+edi-16],xmm2
-        mov     ecx,DWORD [240+eax]
-        mov     edx,eax
-        mov     eax,DWORD [124+esp]
-L$084odd:
-        shl     ecx,4
-        mov     edi,16
-        sub     edi,ecx
-        mov     DWORD [112+esp],edx
-        lea     edx,[32+ecx*1+edx]
-        mov     DWORD [116+esp],edi
-        cmp     esi,eax
-        ja      NEAR L$086short
-        jmp     NEAR L$087grandloop
-align   32
-L$087grandloop:
-        lea     ecx,[1+ebp]
-        lea     eax,[3+ebp]
-        lea     edi,[5+ebp]
-        add     ebp,6
-        bsf     ecx,ecx
-        bsf     eax,eax
-        bsf     edi,edi
-        shl     ecx,4
-        shl     eax,4
-        shl     edi,4
-        movdqu  xmm2,[ebx]
-        movdqu  xmm3,[ecx*1+ebx]
-        mov     ecx,DWORD [116+esp]
-        movdqa  xmm4,xmm2
-        movdqu  xmm5,[eax*1+ebx]
-        movdqa  xmm6,xmm2
-        movdqu  xmm7,[edi*1+ebx]
-        pxor    xmm2,xmm0
-        pxor    xmm3,xmm2
-        movdqa  [esp],xmm2
-        pxor    xmm4,xmm3
-        movdqa  [16+esp],xmm3
-        pxor    xmm5,xmm4
-        movdqa  [32+esp],xmm4
-        pxor    xmm6,xmm5
-        movdqa  [48+esp],xmm5
-        pxor    xmm7,xmm6
-        movdqa  [64+esp],xmm6
-        movdqa  [80+esp],xmm7
-        movups  xmm0,[ecx*1+edx-48]
-        movdqu  xmm2,[esi]
-        movdqu  xmm3,[16+esi]
-        movdqu  xmm4,[32+esi]
-        movdqu  xmm5,[48+esi]
-        movdqu  xmm6,[64+esi]
-        movdqu  xmm7,[80+esi]
-        lea     esi,[96+esi]
-        movdqa  [96+esp],xmm1
-        pxor    xmm2,xmm0
-        pxor    xmm3,xmm0
-        pxor    xmm4,xmm0
-        pxor    xmm5,xmm0
-        pxor    xmm6,xmm0
-        pxor    xmm7,xmm0
-        movups  xmm1,[ecx*1+edx-32]
-        pxor    xmm2,[esp]
-        pxor    xmm3,[16+esp]
-        pxor    xmm4,[32+esp]
-        pxor    xmm5,[48+esp]
-        pxor    xmm6,[64+esp]
-        pxor    xmm7,[80+esp]
-        movups  xmm0,[ecx*1+edx-16]
-db      102,15,56,222,209
-db      102,15,56,222,217
-db      102,15,56,222,225
-db      102,15,56,222,233
-db      102,15,56,222,241
-db      102,15,56,222,249
-        mov     edi,DWORD [120+esp]
-        mov     eax,DWORD [124+esp]
-        call    L$_aesni_decrypt6_enter
-        movdqa  xmm0,[80+esp]
-        pxor    xmm2,[esp]
-        movdqa  xmm1,[96+esp]
-        pxor    xmm3,[16+esp]
-        pxor    xmm4,[32+esp]
-        pxor    xmm5,[48+esp]
-        pxor    xmm6,[64+esp]
-        pxor    xmm7,xmm0
-        pxor    xmm1,xmm2
-        movdqu  [esi*1+edi-96],xmm2
-        pxor    xmm1,xmm3
-        movdqu  [esi*1+edi-80],xmm3
-        pxor    xmm1,xmm4
-        movdqu  [esi*1+edi-64],xmm4
-        pxor    xmm1,xmm5
-        movdqu  [esi*1+edi-48],xmm5
-        pxor    xmm1,xmm6
-        movdqu  [esi*1+edi-32],xmm6
-        pxor    xmm1,xmm7
-        movdqu  [esi*1+edi-16],xmm7
-        cmp     esi,eax
-        jb      NEAR L$087grandloop
-L$086short:
-        add     eax,96
-        sub     eax,esi
-        jz      NEAR L$088done
-        cmp     eax,32
-        jb      NEAR L$089one
-        je      NEAR L$090two
-        cmp     eax,64
-        jb      NEAR L$091three
-        je      NEAR L$092four
-        lea     ecx,[1+ebp]
-        lea     eax,[3+ebp]
-        bsf     ecx,ecx
-        bsf     eax,eax
-        shl     ecx,4
-        shl     eax,4
-        movdqu  xmm2,[ebx]
-        movdqu  xmm3,[ecx*1+ebx]
-        mov     ecx,DWORD [116+esp]
-        movdqa  xmm4,xmm2
-        movdqu  xmm5,[eax*1+ebx]
-        movdqa  xmm6,xmm2
-        pxor    xmm2,xmm0
-        pxor    xmm3,xmm2
-        movdqa  [esp],xmm2
-        pxor    xmm4,xmm3
-        movdqa  [16+esp],xmm3
-        pxor    xmm5,xmm4
-        movdqa  [32+esp],xmm4
-        pxor    xmm6,xmm5
-        movdqa  [48+esp],xmm5
-        pxor    xmm7,xmm6
-        movdqa  [64+esp],xmm6
-        movups  xmm0,[ecx*1+edx-48]
-        movdqu  xmm2,[esi]
-        movdqu  xmm3,[16+esi]
-        movdqu  xmm4,[32+esi]
-        movdqu  xmm5,[48+esi]
-        movdqu  xmm6,[64+esi]
-        pxor    xmm7,xmm7
-        movdqa  [96+esp],xmm1
-        pxor    xmm2,xmm0
-        pxor    xmm3,xmm0
-        pxor    xmm4,xmm0
-        pxor    xmm5,xmm0
-        pxor    xmm6,xmm0
-        movups  xmm1,[ecx*1+edx-32]
-        pxor    xmm2,[esp]
-        pxor    xmm3,[16+esp]
-        pxor    xmm4,[32+esp]
-        pxor    xmm5,[48+esp]
-        pxor    xmm6,[64+esp]
-        movups  xmm0,[ecx*1+edx-16]
-db      102,15,56,222,209
-db      102,15,56,222,217
-db      102,15,56,222,225
-db      102,15,56,222,233
-db      102,15,56,222,241
-db      102,15,56,222,249
-        mov     edi,DWORD [120+esp]
-        call    L$_aesni_decrypt6_enter
-        movdqa  xmm0,[64+esp]
-        pxor    xmm2,[esp]
-        movdqa  xmm1,[96+esp]
-        pxor    xmm3,[16+esp]
-        pxor    xmm4,[32+esp]
-        pxor    xmm5,[48+esp]
-        pxor    xmm6,xmm0
-        pxor    xmm1,xmm2
-        movdqu  [esi*1+edi],xmm2
-        pxor    xmm1,xmm3
-        movdqu  [16+esi*1+edi],xmm3
-        pxor    xmm1,xmm4
-        movdqu  [32+esi*1+edi],xmm4
-        pxor    xmm1,xmm5
-        movdqu  [48+esi*1+edi],xmm5
-        pxor    xmm1,xmm6
-        movdqu  [64+esi*1+edi],xmm6
-        jmp     NEAR L$088done
-align   16
-L$089one:
-        movdqu  xmm7,[ebx]
-        mov     edx,DWORD [112+esp]
-        movdqu  xmm2,[esi]
-        mov     ecx,DWORD [240+edx]
-        pxor    xmm7,xmm0
-        pxor    xmm2,xmm7
-        movdqa  xmm6,xmm1
-        mov     edi,DWORD [120+esp]
-        movups  xmm0,[edx]
-        movups  xmm1,[16+edx]
-        lea     edx,[32+edx]
-        xorps   xmm2,xmm0
-L$093dec1_loop_18:
-db      102,15,56,222,209
-        dec     ecx
-        movups  xmm1,[edx]
-        lea     edx,[16+edx]
-        jnz     NEAR L$093dec1_loop_18
-db      102,15,56,223,209
-        xorps   xmm2,xmm7
-        movaps  xmm1,xmm6
-        movdqa  xmm0,xmm7
-        xorps   xmm1,xmm2
-        movups  [esi*1+edi],xmm2
-        jmp     NEAR L$088done
-align   16
-L$090two:
-        lea     ecx,[1+ebp]
-        mov     edx,DWORD [112+esp]
-        bsf     ecx,ecx
-        shl     ecx,4
-        movdqu  xmm6,[ebx]
-        movdqu  xmm7,[ecx*1+ebx]
-        movdqu  xmm2,[esi]
-        movdqu  xmm3,[16+esi]
-        mov     ecx,DWORD [240+edx]
-        movdqa  xmm5,xmm1
-        pxor    xmm6,xmm0
-        pxor    xmm7,xmm6
-        pxor    xmm2,xmm6
-        pxor    xmm3,xmm7
-        mov     edi,DWORD [120+esp]
-        call    __aesni_decrypt2
-        xorps   xmm2,xmm6
-        xorps   xmm3,xmm7
-        movdqa  xmm0,xmm7
-        xorps   xmm5,xmm2
-        movups  [esi*1+edi],xmm2
-        xorps   xmm5,xmm3
-        movups  [16+esi*1+edi],xmm3
-        movaps  xmm1,xmm5
-        jmp     NEAR L$088done
-align   16
-L$091three:
-        lea     ecx,[1+ebp]
-        mov     edx,DWORD [112+esp]
-        bsf     ecx,ecx
-        shl     ecx,4
-        movdqu  xmm5,[ebx]
-        movdqu  xmm6,[ecx*1+ebx]
-        movdqa  xmm7,xmm5
-        movdqu  xmm2,[esi]
-        movdqu  xmm3,[16+esi]
-        movdqu  xmm4,[32+esi]
-        mov     ecx,DWORD [240+edx]
-        movdqa  [96+esp],xmm1
-        pxor    xmm5,xmm0
-        pxor    xmm6,xmm5
-        pxor    xmm7,xmm6
-        pxor    xmm2,xmm5
-        pxor    xmm3,xmm6
-        pxor    xmm4,xmm7
-        mov     edi,DWORD [120+esp]
-        call    __aesni_decrypt3
-        movdqa  xmm1,[96+esp]
-        xorps   xmm2,xmm5
-        xorps   xmm3,xmm6
-        xorps   xmm4,xmm7
-        movups  [esi*1+edi],xmm2
-        pxor    xmm1,xmm2
-        movdqa  xmm0,xmm7
-        movups  [16+esi*1+edi],xmm3
-        pxor    xmm1,xmm3
-        movups  [32+esi*1+edi],xmm4
-        pxor    xmm1,xmm4
-        jmp     NEAR L$088done
-align   16
-L$092four:
-        lea     ecx,[1+ebp]
-        lea     eax,[3+ebp]
-        bsf     ecx,ecx
-        bsf     eax,eax
-        mov     edx,DWORD [112+esp]
-        shl     ecx,4
-        shl     eax,4
-        movdqu  xmm4,[ebx]
-        movdqu  xmm5,[ecx*1+ebx]
-        movdqa  xmm6,xmm4
-        movdqu  xmm7,[eax*1+ebx]
-        pxor    xmm4,xmm0
-        movdqu  xmm2,[esi]
-        pxor    xmm5,xmm4
-        movdqu  xmm3,[16+esi]
-        pxor    xmm6,xmm5
-        movdqa  [esp],xmm4
-        pxor    xmm7,xmm6
-        movdqa  [16+esp],xmm5
-        movdqu  xmm4,[32+esi]
-        movdqu  xmm5,[48+esi]
-        mov     ecx,DWORD [240+edx]
-        movdqa  [96+esp],xmm1
-        pxor    xmm2,[esp]
-        pxor    xmm3,[16+esp]
-        pxor    xmm4,xmm6
-        pxor    xmm5,xmm7
-        mov     edi,DWORD [120+esp]
-        call    __aesni_decrypt4
-        movdqa  xmm1,[96+esp]
-        xorps   xmm2,[esp]
-        xorps   xmm3,[16+esp]
-        xorps   xmm4,xmm6
-        movups  [esi*1+edi],xmm2
-        pxor    xmm1,xmm2
-        xorps   xmm5,xmm7
-        movups  [16+esi*1+edi],xmm3
-        pxor    xmm1,xmm3
-        movdqa  xmm0,xmm7
-        movups  [32+esi*1+edi],xmm4
-        pxor    xmm1,xmm4
-        movups  [48+esi*1+edi],xmm5
-        pxor    xmm1,xmm5
-L$088done:
-        mov     edx,DWORD [128+esp]
-        pxor    xmm2,xmm2
-        pxor    xmm3,xmm3
-        movdqa  [esp],xmm2
-        pxor    xmm4,xmm4
-        movdqa  [16+esp],xmm2
-        pxor    xmm5,xmm5
-        movdqa  [32+esp],xmm2
-        pxor    xmm6,xmm6
-        movdqa  [48+esp],xmm2
-        pxor    xmm7,xmm7
-        movdqa  [64+esp],xmm2
-        movdqa  [80+esp],xmm2
-        movdqa  [96+esp],xmm2
-        lea     esp,[edx]
-        mov     ecx,DWORD [40+esp]
-        mov     ebx,DWORD [48+esp]
-        movdqu  [ecx],xmm0
-        pxor    xmm0,xmm0
-        movdqu  [ebx],xmm1
-        pxor    xmm1,xmm1
-        pop     edi
-        pop     esi
-        pop     ebx
-        pop     ebp
-        ret
-global  _aesni_cbc_encrypt
-align   16
-_aesni_cbc_encrypt:
-L$_aesni_cbc_encrypt_begin:
-        push    ebp
-        push    ebx
-        push    esi
-        push    edi
-        mov     esi,DWORD [20+esp]
-        mov     ebx,esp
-        mov     edi,DWORD [24+esp]
-        sub     ebx,24
-        mov     eax,DWORD [28+esp]
-        and     ebx,-16
-        mov     edx,DWORD [32+esp]
-        mov     ebp,DWORD [36+esp]
-        test    eax,eax
-        jz      NEAR L$094cbc_abort
-        cmp     DWORD [40+esp],0
-        xchg    ebx,esp
-        movups  xmm7,[ebp]
-        mov     ecx,DWORD [240+edx]
-        mov     ebp,edx
-        mov     DWORD [16+esp],ebx
-        mov     ebx,ecx
-        je      NEAR L$095cbc_decrypt
-        movaps  xmm2,xmm7
-        cmp     eax,16
-        jb      NEAR L$096cbc_enc_tail
-        sub     eax,16
-        jmp     NEAR L$097cbc_enc_loop
-align   16
-L$097cbc_enc_loop:
-        movups  xmm7,[esi]
-        lea     esi,[16+esi]
-        movups  xmm0,[edx]
-        movups  xmm1,[16+edx]
-        xorps   xmm7,xmm0
-        lea     edx,[32+edx]
-        xorps   xmm2,xmm7
-L$098enc1_loop_19:
-db      102,15,56,220,209
-        dec     ecx
-        movups  xmm1,[edx]
-        lea     edx,[16+edx]
-        jnz     NEAR L$098enc1_loop_19
-db      102,15,56,221,209
-        mov     ecx,ebx
-        mov     edx,ebp
-        movups  [edi],xmm2
-        lea     edi,[16+edi]
-        sub     eax,16
-        jnc     NEAR L$097cbc_enc_loop
-        add     eax,16
-        jnz     NEAR L$096cbc_enc_tail
-        movaps  xmm7,xmm2
-        pxor    xmm2,xmm2
-        jmp     NEAR L$099cbc_ret
-L$096cbc_enc_tail:
-        mov     ecx,eax
-dd      2767451785
-        mov     ecx,16
-        sub     ecx,eax
-        xor     eax,eax
-dd      2868115081
-        lea     edi,[edi-16]
-        mov     ecx,ebx
-        mov     esi,edi
-        mov     edx,ebp
-        jmp     NEAR L$097cbc_enc_loop
-align   16
-L$095cbc_decrypt:
-        cmp     eax,80
-        jbe     NEAR L$100cbc_dec_tail
-        movaps  [esp],xmm7
-        sub     eax,80
-        jmp     NEAR L$101cbc_dec_loop6_enter
-align   16
-L$102cbc_dec_loop6:
-        movaps  [esp],xmm0
-        movups  [edi],xmm7
-        lea     edi,[16+edi]
-L$101cbc_dec_loop6_enter:
-        movdqu  xmm2,[esi]
-        movdqu  xmm3,[16+esi]
-        movdqu  xmm4,[32+esi]
-        movdqu  xmm5,[48+esi]
-        movdqu  xmm6,[64+esi]
-        movdqu  xmm7,[80+esi]
-        call    __aesni_decrypt6
-        movups  xmm1,[esi]
-        movups  xmm0,[16+esi]
-        xorps   xmm2,[esp]
-        xorps   xmm3,xmm1
-        movups  xmm1,[32+esi]
-        xorps   xmm4,xmm0
-        movups  xmm0,[48+esi]
-        xorps   xmm5,xmm1
-        movups  xmm1,[64+esi]
-        xorps   xmm6,xmm0
-        movups  xmm0,[80+esi]
-        xorps   xmm7,xmm1
-        movups  [edi],xmm2
-        movups  [16+edi],xmm3
-        lea     esi,[96+esi]
-        movups  [32+edi],xmm4
-        mov     ecx,ebx
-        movups  [48+edi],xmm5
-        mov     edx,ebp
-        movups  [64+edi],xmm6
-        lea     edi,[80+edi]
-        sub     eax,96
-        ja      NEAR L$102cbc_dec_loop6
-        movaps  xmm2,xmm7
-        movaps  xmm7,xmm0
-        add     eax,80
-        jle     NEAR L$103cbc_dec_clear_tail_collected
-        movups  [edi],xmm2
-        lea     edi,[16+edi]
-L$100cbc_dec_tail:
-        movups  xmm2,[esi]
-        movaps  xmm6,xmm2
-        cmp     eax,16
-        jbe     NEAR L$104cbc_dec_one
-        movups  xmm3,[16+esi]
-        movaps  xmm5,xmm3
-        cmp     eax,32
-        jbe     NEAR L$105cbc_dec_two
-        movups  xmm4,[32+esi]
-        cmp     eax,48
-        jbe     NEAR L$106cbc_dec_three
-        movups  xmm5,[48+esi]
-        cmp     eax,64
-        jbe     NEAR L$107cbc_dec_four
-        movups  xmm6,[64+esi]
-        movaps  [esp],xmm7
-        movups  xmm2,[esi]
-        xorps   xmm7,xmm7
-        call    __aesni_decrypt6
-        movups  xmm1,[esi]
-        movups  xmm0,[16+esi]
-        xorps   xmm2,[esp]
-        xorps   xmm3,xmm1
-        movups  xmm1,[32+esi]
-        xorps   xmm4,xmm0
-        movups  xmm0,[48+esi]
-        xorps   xmm5,xmm1
-        movups  xmm7,[64+esi]
-        xorps   xmm6,xmm0
-        movups  [edi],xmm2
-        movups  [16+edi],xmm3
-        pxor    xmm3,xmm3
-        movups  [32+edi],xmm4
-        pxor    xmm4,xmm4
-        movups  [48+edi],xmm5
-        pxor    xmm5,xmm5
-        lea     edi,[64+edi]
-        movaps  xmm2,xmm6
-        pxor    xmm6,xmm6
-        sub     eax,80
-        jmp     NEAR L$108cbc_dec_tail_collected
-align   16
-L$104cbc_dec_one:
-        movups  xmm0,[edx]
-        movups  xmm1,[16+edx]
-        lea     edx,[32+edx]
-        xorps   xmm2,xmm0
-L$109dec1_loop_20:
-db      102,15,56,222,209
-        dec     ecx
-        movups  xmm1,[edx]
-        lea     edx,[16+edx]
-        jnz     NEAR L$109dec1_loop_20
-db      102,15,56,223,209
-        xorps   xmm2,xmm7
-        movaps  xmm7,xmm6
-        sub     eax,16
-        jmp     NEAR L$108cbc_dec_tail_collected
-align   16
-L$105cbc_dec_two:
-        call    __aesni_decrypt2
-        xorps   xmm2,xmm7
-        xorps   xmm3,xmm6
-        movups  [edi],xmm2
-        movaps  xmm2,xmm3
-        pxor    xmm3,xmm3
-        lea     edi,[16+edi]
-        movaps  xmm7,xmm5
-        sub     eax,32
-        jmp     NEAR L$108cbc_dec_tail_collected
-align   16
-L$106cbc_dec_three:
-        call    __aesni_decrypt3
-        xorps   xmm2,xmm7
-        xorps   xmm3,xmm6
-        xorps   xmm4,xmm5
-        movups  [edi],xmm2
-        movaps  xmm2,xmm4
-        pxor    xmm4,xmm4
-        movups  [16+edi],xmm3
-        pxor    xmm3,xmm3
-        lea     edi,[32+edi]
-        movups  xmm7,[32+esi]
-        sub     eax,48
-        jmp     NEAR L$108cbc_dec_tail_collected
-align   16
-L$107cbc_dec_four:
-        call    __aesni_decrypt4
-        movups  xmm1,[16+esi]
-        movups  xmm0,[32+esi]
-        xorps   xmm2,xmm7
-        movups  xmm7,[48+esi]
-        xorps   xmm3,xmm6
-        movups  [edi],xmm2
-        xorps   xmm4,xmm1
-        movups  [16+edi],xmm3
-        pxor    xmm3,xmm3
-        xorps   xmm5,xmm0
-        movups  [32+edi],xmm4
-        pxor    xmm4,xmm4
-        lea     edi,[48+edi]
-        movaps  xmm2,xmm5
-        pxor    xmm5,xmm5
-        sub     eax,64
-        jmp     NEAR L$108cbc_dec_tail_collected
-align   16
-L$103cbc_dec_clear_tail_collected:
-        pxor    xmm3,xmm3
-        pxor    xmm4,xmm4
-        pxor    xmm5,xmm5
-        pxor    xmm6,xmm6
-L$108cbc_dec_tail_collected:
-        and     eax,15
-        jnz     NEAR L$110cbc_dec_tail_partial
-        movups  [edi],xmm2
-        pxor    xmm0,xmm0
-        jmp     NEAR L$099cbc_ret
-align   16
-L$110cbc_dec_tail_partial:
-        movaps  [esp],xmm2
-        pxor    xmm0,xmm0
-        mov     ecx,16
-        mov     esi,esp
-        sub     ecx,eax
-dd      2767451785
-        movdqa  [esp],xmm2
-L$099cbc_ret:
-        mov     esp,DWORD [16+esp]
-        mov     ebp,DWORD [36+esp]
-        pxor    xmm2,xmm2
-        pxor    xmm1,xmm1
-        movups  [ebp],xmm7
-        pxor    xmm7,xmm7
-L$094cbc_abort:
-        pop     edi
-        pop     esi
-        pop     ebx
-        pop     ebp
-        ret
-align   16
-__aesni_set_encrypt_key:
-        push    ebp
-        push    ebx
-        test    eax,eax
-        jz      NEAR L$111bad_pointer
-        test    edx,edx
-        jz      NEAR L$111bad_pointer
-        call    L$112pic
-L$112pic:
-        pop     ebx
-        lea     ebx,[(L$key_const-L$112pic)+ebx]
-        lea     ebp,[_OPENSSL_ia32cap_P]
-        movups  xmm0,[eax]
-        xorps   xmm4,xmm4
-        mov     ebp,DWORD [4+ebp]
-        lea     edx,[16+edx]
-        and     ebp,268437504
-        cmp     ecx,256
-        je      NEAR L$11314rounds
-        cmp     ecx,192
-        je      NEAR L$11412rounds
-        cmp     ecx,128
-        jne     NEAR L$115bad_keybits
-align   16
-L$11610rounds:
-        cmp     ebp,268435456
-        je      NEAR L$11710rounds_alt
-        mov     ecx,9
-        movups  [edx-16],xmm0
-db      102,15,58,223,200,1
-        call    L$118key_128_cold
-db      102,15,58,223,200,2
-        call    L$119key_128
-db      102,15,58,223,200,4
-        call    L$119key_128
-db      102,15,58,223,200,8
-        call    L$119key_128
-db      102,15,58,223,200,16
-        call    L$119key_128
-db      102,15,58,223,200,32
-        call    L$119key_128
-db      102,15,58,223,200,64
-        call    L$119key_128
-db      102,15,58,223,200,128
-        call    L$119key_128
-db      102,15,58,223,200,27
-        call    L$119key_128
-db      102,15,58,223,200,54
-        call    L$119key_128
-        movups  [edx],xmm0
-        mov     DWORD [80+edx],ecx
-        jmp     NEAR L$120good_key
-align   16
-L$119key_128:
-        movups  [edx],xmm0
-        lea     edx,[16+edx]
-L$118key_128_cold:
-        shufps  xmm4,xmm0,16
-        xorps   xmm0,xmm4
-        shufps  xmm4,xmm0,140
-        xorps   xmm0,xmm4
-        shufps  xmm1,xmm1,255
-        xorps   xmm0,xmm1
-        ret
-align   16
-L$11710rounds_alt:
-        movdqa  xmm5,[ebx]
-        mov     ecx,8
-        movdqa  xmm4,[32+ebx]
-        movdqa  xmm2,xmm0
-        movdqu  [edx-16],xmm0
-L$121loop_key128:
-db      102,15,56,0,197
-db      102,15,56,221,196
-        pslld   xmm4,1
-        lea     edx,[16+edx]
-        movdqa  xmm3,xmm2
-        pslldq  xmm2,4
-        pxor    xmm3,xmm2
-        pslldq  xmm2,4
-        pxor    xmm3,xmm2
-        pslldq  xmm2,4
-        pxor    xmm2,xmm3
-        pxor    xmm0,xmm2
-        movdqu  [edx-16],xmm0
-        movdqa  xmm2,xmm0
-        dec     ecx
-        jnz     NEAR L$121loop_key128
-        movdqa  xmm4,[48+ebx]
-db      102,15,56,0,197
-db      102,15,56,221,196
-        pslld   xmm4,1
-        movdqa  xmm3,xmm2
-        pslldq  xmm2,4
-        pxor    xmm3,xmm2
-        pslldq  xmm2,4
-        pxor    xmm3,xmm2
-        pslldq  xmm2,4
-        pxor    xmm2,xmm3
-        pxor    xmm0,xmm2
-        movdqu  [edx],xmm0
-        movdqa  xmm2,xmm0
-db      102,15,56,0,197
-db      102,15,56,221,196
-        movdqa  xmm3,xmm2
-        pslldq  xmm2,4
-        pxor    xmm3,xmm2
-        pslldq  xmm2,4
-        pxor    xmm3,xmm2
-        pslldq  xmm2,4
-        pxor    xmm2,xmm3
-        pxor    xmm0,xmm2
-        movdqu  [16+edx],xmm0
-        mov     ecx,9
-        mov     DWORD [96+edx],ecx
-        jmp     NEAR L$120good_key
-align   16
-L$11412rounds:
-        movq    xmm2,[16+eax]
-        cmp     ebp,268435456
-        je      NEAR L$12212rounds_alt
-        mov     ecx,11
-        movups  [edx-16],xmm0
-db      102,15,58,223,202,1
-        call    L$123key_192a_cold
-db      102,15,58,223,202,2
-        call    L$124key_192b
-db      102,15,58,223,202,4
-        call    L$125key_192a
-db      102,15,58,223,202,8
-        call    L$124key_192b
-db      102,15,58,223,202,16
-        call    L$125key_192a
-db      102,15,58,223,202,32
-        call    L$124key_192b
-db      102,15,58,223,202,64
-        call    L$125key_192a
-db      102,15,58,223,202,128
-        call    L$124key_192b
-        movups  [edx],xmm0
-        mov     DWORD [48+edx],ecx
-        jmp     NEAR L$120good_key
-align   16
-L$125key_192a:
-        movups  [edx],xmm0
-        lea     edx,[16+edx]
-align   16
-L$123key_192a_cold:
-        movaps  xmm5,xmm2
-L$126key_192b_warm:
-        shufps  xmm4,xmm0,16
-        movdqa  xmm3,xmm2
-        xorps   xmm0,xmm4
-        shufps  xmm4,xmm0,140
-        pslldq  xmm3,4
-        xorps   xmm0,xmm4
-        pshufd  xmm1,xmm1,85
-        pxor    xmm2,xmm3
-        pxor    xmm0,xmm1
-        pshufd  xmm3,xmm0,255
-        pxor    xmm2,xmm3
-        ret
-align   16
-L$124key_192b:
-        movaps  xmm3,xmm0
-        shufps  xmm5,xmm0,68
-        movups  [edx],xmm5
-        shufps  xmm3,xmm2,78
-        movups  [16+edx],xmm3
-        lea     edx,[32+edx]
-        jmp     NEAR L$126key_192b_warm
-align   16
-L$12212rounds_alt:
-        movdqa  xmm5,[16+ebx]
-        movdqa  xmm4,[32+ebx]
-        mov     ecx,8
-        movdqu  [edx-16],xmm0
-L$127loop_key192:
-        movq    [edx],xmm2
-        movdqa  xmm1,xmm2
-db      102,15,56,0,213
-db      102,15,56,221,212
-        pslld   xmm4,1
-        lea     edx,[24+edx]
-        movdqa  xmm3,xmm0
-        pslldq  xmm0,4
-        pxor    xmm3,xmm0
-        pslldq  xmm0,4
-        pxor    xmm3,xmm0
-        pslldq  xmm0,4
-        pxor    xmm0,xmm3
-        pshufd  xmm3,xmm0,255
-        pxor    xmm3,xmm1
-        pslldq  xmm1,4
-        pxor    xmm3,xmm1
-        pxor    xmm0,xmm2
-        pxor    xmm2,xmm3
-        movdqu  [edx-16],xmm0
-        dec     ecx
-        jnz     NEAR L$127loop_key192
-        mov     ecx,11
-        mov     DWORD [32+edx],ecx
-        jmp     NEAR L$120good_key
-align   16
-L$11314rounds:
-        movups  xmm2,[16+eax]
-        lea     edx,[16+edx]
-        cmp     ebp,268435456
-        je      NEAR L$12814rounds_alt
-        mov     ecx,13
-        movups  [edx-32],xmm0
-        movups  [edx-16],xmm2
-db      102,15,58,223,202,1
-        call    L$129key_256a_cold
-db      102,15,58,223,200,1
-        call    L$130key_256b
-db      102,15,58,223,202,2
-        call    L$131key_256a
-db      102,15,58,223,200,2
-        call    L$130key_256b
-db      102,15,58,223,202,4
-        call    L$131key_256a
-db      102,15,58,223,200,4
-        call    L$130key_256b
-db      102,15,58,223,202,8
-        call    L$131key_256a
-db      102,15,58,223,200,8
-        call    L$130key_256b
-db      102,15,58,223,202,16
-        call    L$131key_256a
-db      102,15,58,223,200,16
-        call    L$130key_256b
-db      102,15,58,223,202,32
-        call    L$131key_256a
-db      102,15,58,223,200,32
-        call    L$130key_256b
-db      102,15,58,223,202,64
-        call    L$131key_256a
-        movups  [edx],xmm0
-        mov     DWORD [16+edx],ecx
-        xor     eax,eax
-        jmp     NEAR L$120good_key
-align   16
-L$131key_256a:
-        movups  [edx],xmm2
-        lea     edx,[16+edx]
-L$129key_256a_cold:
-        shufps  xmm4,xmm0,16
-        xorps   xmm0,xmm4
-        shufps  xmm4,xmm0,140
-        xorps   xmm0,xmm4
-        shufps  xmm1,xmm1,255
-        xorps   xmm0,xmm1
-        ret
-align   16
-L$130key_256b:
-        movups  [edx],xmm0
-        lea     edx,[16+edx]
-        shufps  xmm4,xmm2,16
-        xorps   xmm2,xmm4
-        shufps  xmm4,xmm2,140
-        xorps   xmm2,xmm4
-        shufps  xmm1,xmm1,170
-        xorps   xmm2,xmm1
-        ret
-align   16
-L$12814rounds_alt:
-        movdqa  xmm5,[ebx]
-        movdqa  xmm4,[32+ebx]
-        mov     ecx,7
-        movdqu  [edx-32],xmm0
-        movdqa  xmm1,xmm2
-        movdqu  [edx-16],xmm2
-L$132loop_key256:
-db      102,15,56,0,213
-db      102,15,56,221,212
-        movdqa  xmm3,xmm0
-        pslldq  xmm0,4
-        pxor    xmm3,xmm0
-        pslldq  xmm0,4
-        pxor    xmm3,xmm0
-        pslldq  xmm0,4
-        pxor    xmm0,xmm3
-        pslld   xmm4,1
-        pxor    xmm0,xmm2
-        movdqu  [edx],xmm0
-        dec     ecx
-        jz      NEAR L$133done_key256
-        pshufd  xmm2,xmm0,255
-        pxor    xmm3,xmm3
-db      102,15,56,221,211
-        movdqa  xmm3,xmm1
-        pslldq  xmm1,4
-        pxor    xmm3,xmm1
-        pslldq  xmm1,4
-        pxor    xmm3,xmm1
-        pslldq  xmm1,4
-        pxor    xmm1,xmm3
-        pxor    xmm2,xmm1
-        movdqu  [16+edx],xmm2
-        lea     edx,[32+edx]
-        movdqa  xmm1,xmm2
-        jmp     NEAR L$132loop_key256
-L$133done_key256:
-        mov     ecx,13
-        mov     DWORD [16+edx],ecx
-L$120good_key:
-        pxor    xmm0,xmm0
-        pxor    xmm1,xmm1
-        pxor    xmm2,xmm2
-        pxor    xmm3,xmm3
-        pxor    xmm4,xmm4
-        pxor    xmm5,xmm5
-        xor     eax,eax
-        pop     ebx
-        pop     ebp
-        ret
-align   4
-L$111bad_pointer:
-        mov     eax,-1
-        pop     ebx
-        pop     ebp
-        ret
-align   4
-L$115bad_keybits:
-        pxor    xmm0,xmm0
-        mov     eax,-2
-        pop     ebx
-        pop     ebp
-        ret
-global  _aesni_set_encrypt_key
-align   16
-_aesni_set_encrypt_key:
-L$_aesni_set_encrypt_key_begin:
-        mov     eax,DWORD [4+esp]
-        mov     ecx,DWORD [8+esp]
-        mov     edx,DWORD [12+esp]
-        call    __aesni_set_encrypt_key
-        ret
-global  _aesni_set_decrypt_key
-align   16
-_aesni_set_decrypt_key:
-L$_aesni_set_decrypt_key_begin:
-        mov     eax,DWORD [4+esp]
-        mov     ecx,DWORD [8+esp]
-        mov     edx,DWORD [12+esp]
-        call    __aesni_set_encrypt_key
-        mov     edx,DWORD [12+esp]
-        shl     ecx,4
-        test    eax,eax
-        jnz     NEAR L$134dec_key_ret
-        lea     eax,[16+ecx*1+edx]
-        movups  xmm0,[edx]
-        movups  xmm1,[eax]
-        movups  [eax],xmm0
-        movups  [edx],xmm1
-        lea     edx,[16+edx]
-        lea     eax,[eax-16]
-L$135dec_key_inverse:
-        movups  xmm0,[edx]
-        movups  xmm1,[eax]
-db      102,15,56,219,192
-db      102,15,56,219,201
-        lea     edx,[16+edx]
-        lea     eax,[eax-16]
-        movups  [16+eax],xmm0
-        movups  [edx-16],xmm1
-        cmp     eax,edx
-        ja      NEAR L$135dec_key_inverse
-        movups  xmm0,[edx]
-db      102,15,56,219,192
-        movups  [edx],xmm0
-        pxor    xmm0,xmm0
-        pxor    xmm1,xmm1
-        xor     eax,eax
-L$134dec_key_ret:
-        ret
-align   64
-L$key_const:
-dd      202313229,202313229,202313229,202313229
-dd      67569157,67569157,67569157,67569157
-dd      1,1,1,1
-dd      27,27,27,27
-db      65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69
-db      83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83
-db      32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115
-db      115,108,46,111,114,103,62,0
-segment .bss
-common  _OPENSSL_ia32cap_P 16
diff --git a/CryptoPkg/Library/OpensslLib/IA32/crypto/aes/vpaes-x86.nasm b/CryptoPkg/Library/OpensslLib/IA32/crypto/aes/vpaes-x86.nasm
deleted file mode 100644
index cf2e13f620ea..000000000000
--- a/CryptoPkg/Library/OpensslLib/IA32/crypto/aes/vpaes-x86.nasm
+++ /dev/null
@@ -1,651 +0,0 @@
-; WARNING: do not edit!
-; Generated from openssl/crypto/aes/asm/vpaes-x86.pl
-;
-; Copyright 2011-2020 The OpenSSL Project Authors. All Rights Reserved.
-;
-; Licensed under the OpenSSL license (the "License").  You may not use
-; this file except in compliance with the License.  You can obtain a copy
-; in the file LICENSE in the source distribution or at
-; https://www.openssl.org/source/license.html
-
-%ifidn __OUTPUT_FORMAT__,obj
-section code    use32 class=code align=64
-%elifidn __OUTPUT_FORMAT__,win32
-$@feat.00 equ 1
-section .text   code align=64
-%else
-section .text   code
-%endif
-align   64
-L$_vpaes_consts:
-dd      218628480,235210255,168496130,67568393
-dd      252381056,17041926,33884169,51187212
-dd      252645135,252645135,252645135,252645135
-dd      1512730624,3266504856,1377990664,3401244816
-dd      830229760,1275146365,2969422977,3447763452
-dd      3411033600,2979783055,338359620,2782886510
-dd      4209124096,907596821,221174255,1006095553
-dd      191964160,3799684038,3164090317,1589111125
-dd      182528256,1777043520,2877432650,3265356744
-dd      1874708224,3503451415,3305285752,363511674
-dd      1606117888,3487855781,1093350906,2384367825
-dd      197121,67569157,134941193,202313229
-dd      67569157,134941193,202313229,197121
-dd      134941193,202313229,197121,67569157
-dd      202313229,197121,67569157,134941193
-dd      33619971,100992007,168364043,235736079
-dd      235736079,33619971,100992007,168364043
-dd      168364043,235736079,33619971,100992007
-dd      100992007,168364043,235736079,33619971
-dd      50462976,117835012,185207048,252579084
-dd      252314880,51251460,117574920,184942860
-dd      184682752,252054788,50987272,118359308
-dd      118099200,185467140,251790600,50727180
-dd      2946363062,528716217,1300004225,1881839624
-dd      1532713819,1532713819,1532713819,1532713819
-dd      3602276352,4288629033,3737020424,4153884961
-dd      1354558464,32357713,2958822624,3775749553
-dd      1201988352,132424512,1572796698,503232858
-dd      2213177600,1597421020,4103937655,675398315
-dd      2749646592,4273543773,1511898873,121693092
-dd      3040248576,1103263732,2871565598,1608280554
-dd      2236667136,2588920351,482954393,64377734
-dd      3069987328,291237287,2117370568,3650299247
-dd      533321216,3573750986,2572112006,1401264716
-dd      1339849704,2721158661,548607111,3445553514
-dd      2128193280,3054596040,2183486460,1257083700
-dd      655635200,1165381986,3923443150,2344132524
-dd      190078720,256924420,290342170,357187870
-dd      1610966272,2263057382,4103205268,309794674
-dd      2592527872,2233205587,1335446729,3402964816
-dd      3973531904,3225098121,3002836325,1918774430
-dd      3870401024,2102906079,2284471353,4117666579
-dd      617007872,1021508343,366931923,691083277
-dd      2528395776,3491914898,2968704004,1613121270
-dd      3445188352,3247741094,844474987,4093578302
-dd      651481088,1190302358,1689581232,574775300
-dd      4289380608,206939853,2555985458,2489840491
-dd      2130264064,327674451,3566485037,3349835193
-dd      2470714624,316102159,3636825756,3393945945
-db      86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105
-db      111,110,32,65,69,83,32,102,111,114,32,120,56,54,47,83
-db      83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117
-db      114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105
-db      118,101,114,115,105,116,121,41,0
-align   64
-align   16
-__vpaes_preheat:
-        add     ebp,DWORD [esp]
-        movdqa  xmm7,[ebp-48]
-        movdqa  xmm6,[ebp-16]
-        ret
-align   16
-__vpaes_encrypt_core:
-        mov     ecx,16
-        mov     eax,DWORD [240+edx]
-        movdqa  xmm1,xmm6
-        movdqa  xmm2,[ebp]
-        pandn   xmm1,xmm0
-        pand    xmm0,xmm6
-        movdqu  xmm5,[edx]
-db      102,15,56,0,208
-        movdqa  xmm0,[16+ebp]
-        pxor    xmm2,xmm5
-        psrld   xmm1,4
-        add     edx,16
-db      102,15,56,0,193
-        lea     ebx,[192+ebp]
-        pxor    xmm0,xmm2
-        jmp     NEAR L$000enc_entry
-align   16
-L$001enc_loop:
-        movdqa  xmm4,[32+ebp]
-        movdqa  xmm0,[48+ebp]
-db      102,15,56,0,226
-db      102,15,56,0,195
-        pxor    xmm4,xmm5
-        movdqa  xmm5,[64+ebp]
-        pxor    xmm0,xmm4
-        movdqa  xmm1,[ecx*1+ebx-64]
-db      102,15,56,0,234
-        movdqa  xmm2,[80+ebp]
-        movdqa  xmm4,[ecx*1+ebx]
-db      102,15,56,0,211
-        movdqa  xmm3,xmm0
-        pxor    xmm2,xmm5
-db      102,15,56,0,193
-        add     edx,16
-        pxor    xmm0,xmm2
-db      102,15,56,0,220
-        add     ecx,16
-        pxor    xmm3,xmm0
-db      102,15,56,0,193
-        and     ecx,48
-        sub     eax,1
-        pxor    xmm0,xmm3
-L$000enc_entry:
-        movdqa  xmm1,xmm6
-        movdqa  xmm5,[ebp-32]
-        pandn   xmm1,xmm0
-        psrld   xmm1,4
-        pand    xmm0,xmm6
-db      102,15,56,0,232
-        movdqa  xmm3,xmm7
-        pxor    xmm0,xmm1
-db      102,15,56,0,217
-        movdqa  xmm4,xmm7
-        pxor    xmm3,xmm5
-db      102,15,56,0,224
-        movdqa  xmm2,xmm7
-        pxor    xmm4,xmm5
-db      102,15,56,0,211
-        movdqa  xmm3,xmm7
-        pxor    xmm2,xmm0
-db      102,15,56,0,220
-        movdqu  xmm5,[edx]
-        pxor    xmm3,xmm1
-        jnz     NEAR L$001enc_loop
-        movdqa  xmm4,[96+ebp]
-        movdqa  xmm0,[112+ebp]
-db      102,15,56,0,226
-        pxor    xmm4,xmm5
-db      102,15,56,0,195
-        movdqa  xmm1,[64+ecx*1+ebx]
-        pxor    xmm0,xmm4
-db      102,15,56,0,193
-        ret
-align   16
-__vpaes_decrypt_core:
-        lea     ebx,[608+ebp]
-        mov     eax,DWORD [240+edx]
-        movdqa  xmm1,xmm6
-        movdqa  xmm2,[ebx-64]
-        pandn   xmm1,xmm0
-        mov     ecx,eax
-        psrld   xmm1,4
-        movdqu  xmm5,[edx]
-        shl     ecx,4
-        pand    xmm0,xmm6
-db      102,15,56,0,208
-        movdqa  xmm0,[ebx-48]
-        xor     ecx,48
-db      102,15,56,0,193
-        and     ecx,48
-        pxor    xmm2,xmm5
-        movdqa  xmm5,[176+ebp]
-        pxor    xmm0,xmm2
-        add     edx,16
-        lea     ecx,[ecx*1+ebx-352]
-        jmp     NEAR L$002dec_entry
-align   16
-L$003dec_loop:
-        movdqa  xmm4,[ebx-32]
-        movdqa  xmm1,[ebx-16]
-db      102,15,56,0,226
-db      102,15,56,0,203
-        pxor    xmm0,xmm4
-        movdqa  xmm4,[ebx]
-        pxor    xmm0,xmm1
-        movdqa  xmm1,[16+ebx]
-db      102,15,56,0,226
-db      102,15,56,0,197
-db      102,15,56,0,203
-        pxor    xmm0,xmm4
-        movdqa  xmm4,[32+ebx]
-        pxor    xmm0,xmm1
-        movdqa  xmm1,[48+ebx]
-db      102,15,56,0,226
-db      102,15,56,0,197
-db      102,15,56,0,203
-        pxor    xmm0,xmm4
-        movdqa  xmm4,[64+ebx]
-        pxor    xmm0,xmm1
-        movdqa  xmm1,[80+ebx]
-db      102,15,56,0,226
-db      102,15,56,0,197
-db      102,15,56,0,203
-        pxor    xmm0,xmm4
-        add     edx,16
-db      102,15,58,15,237,12
-        pxor    xmm0,xmm1
-        sub     eax,1
-L$002dec_entry:
-        movdqa  xmm1,xmm6
-        movdqa  xmm2,[ebp-32]
-        pandn   xmm1,xmm0
-        pand    xmm0,xmm6
-        psrld   xmm1,4
-db      102,15,56,0,208
-        movdqa  xmm3,xmm7
-        pxor    xmm0,xmm1
-db      102,15,56,0,217
-        movdqa  xmm4,xmm7
-        pxor    xmm3,xmm2
-db      102,15,56,0,224
-        pxor    xmm4,xmm2
-        movdqa  xmm2,xmm7
-db      102,15,56,0,211
-        movdqa  xmm3,xmm7
-        pxor    xmm2,xmm0
-db      102,15,56,0,220
-        movdqu  xmm0,[edx]
-        pxor    xmm3,xmm1
-        jnz     NEAR L$003dec_loop
-        movdqa  xmm4,[96+ebx]
-db      102,15,56,0,226
-        pxor    xmm4,xmm0
-        movdqa  xmm0,[112+ebx]
-        movdqa  xmm2,[ecx]
-db      102,15,56,0,195
-        pxor    xmm0,xmm4
-db      102,15,56,0,194
-        ret
-align   16
-__vpaes_schedule_core:
-        add     ebp,DWORD [esp]
-        movdqu  xmm0,[esi]
-        movdqa  xmm2,[320+ebp]
-        movdqa  xmm3,xmm0
-        lea     ebx,[ebp]
-        movdqa  [4+esp],xmm2
-        call    __vpaes_schedule_transform
-        movdqa  xmm7,xmm0
-        test    edi,edi
-        jnz     NEAR L$004schedule_am_decrypting
-        movdqu  [edx],xmm0
-        jmp     NEAR L$005schedule_go
-L$004schedule_am_decrypting:
-        movdqa  xmm1,[256+ecx*1+ebp]
-db      102,15,56,0,217
-        movdqu  [edx],xmm3
-        xor     ecx,48
-L$005schedule_go:
-        cmp     eax,192
-        ja      NEAR L$006schedule_256
-        je      NEAR L$007schedule_192
-L$008schedule_128:
-        mov     eax,10
-L$009loop_schedule_128:
-        call    __vpaes_schedule_round
-        dec     eax
-        jz      NEAR L$010schedule_mangle_last
-        call    __vpaes_schedule_mangle
-        jmp     NEAR L$009loop_schedule_128
-align   16
-L$007schedule_192:
-        movdqu  xmm0,[8+esi]
-        call    __vpaes_schedule_transform
-        movdqa  xmm6,xmm0
-        pxor    xmm4,xmm4
-        movhlps xmm6,xmm4
-        mov     eax,4
-L$011loop_schedule_192:
-        call    __vpaes_schedule_round
-db      102,15,58,15,198,8
-        call    __vpaes_schedule_mangle
-        call    __vpaes_schedule_192_smear
-        call    __vpaes_schedule_mangle
-        call    __vpaes_schedule_round
-        dec     eax
-        jz      NEAR L$010schedule_mangle_last
-        call    __vpaes_schedule_mangle
-        call    __vpaes_schedule_192_smear
-        jmp     NEAR L$011loop_schedule_192
-align   16
-L$006schedule_256:
-        movdqu  xmm0,[16+esi]
-        call    __vpaes_schedule_transform
-        mov     eax,7
-L$012loop_schedule_256:
-        call    __vpaes_schedule_mangle
-        movdqa  xmm6,xmm0
-        call    __vpaes_schedule_round
-        dec     eax
-        jz      NEAR L$010schedule_mangle_last
-        call    __vpaes_schedule_mangle
-        pshufd  xmm0,xmm0,255
-        movdqa  [20+esp],xmm7
-        movdqa  xmm7,xmm6
-        call    L$_vpaes_schedule_low_round
-        movdqa  xmm7,[20+esp]
-        jmp     NEAR L$012loop_schedule_256
-align   16
-L$010schedule_mangle_last:
-        lea     ebx,[384+ebp]
-        test    edi,edi
-        jnz     NEAR L$013schedule_mangle_last_dec
-        movdqa  xmm1,[256+ecx*1+ebp]
-db      102,15,56,0,193
-        lea     ebx,[352+ebp]
-        add     edx,32
-L$013schedule_mangle_last_dec:
-        add     edx,-16
-        pxor    xmm0,[336+ebp]
-        call    __vpaes_schedule_transform
-        movdqu  [edx],xmm0
-        pxor    xmm0,xmm0
-        pxor    xmm1,xmm1
-        pxor    xmm2,xmm2
-        pxor    xmm3,xmm3
-        pxor    xmm4,xmm4
-        pxor    xmm5,xmm5
-        pxor    xmm6,xmm6
-        pxor    xmm7,xmm7
-        ret
-align   16
-__vpaes_schedule_192_smear:
-        pshufd  xmm1,xmm6,128
-        pshufd  xmm0,xmm7,254
-        pxor    xmm6,xmm1
-        pxor    xmm1,xmm1
-        pxor    xmm6,xmm0
-        movdqa  xmm0,xmm6
-        movhlps xmm6,xmm1
-        ret
-align   16
-__vpaes_schedule_round:
-        movdqa  xmm2,[8+esp]
-        pxor    xmm1,xmm1
-db      102,15,58,15,202,15
-db      102,15,58,15,210,15
-        pxor    xmm7,xmm1
-        pshufd  xmm0,xmm0,255
-db      102,15,58,15,192,1
-        movdqa  [8+esp],xmm2
-L$_vpaes_schedule_low_round:
-        movdqa  xmm1,xmm7
-        pslldq  xmm7,4
-        pxor    xmm7,xmm1
-        movdqa  xmm1,xmm7
-        pslldq  xmm7,8
-        pxor    xmm7,xmm1
-        pxor    xmm7,[336+ebp]
-        movdqa  xmm4,[ebp-16]
-        movdqa  xmm5,[ebp-48]
-        movdqa  xmm1,xmm4
-        pandn   xmm1,xmm0
-        psrld   xmm1,4
-        pand    xmm0,xmm4
-        movdqa  xmm2,[ebp-32]
-db      102,15,56,0,208
-        pxor    xmm0,xmm1
-        movdqa  xmm3,xmm5
-db      102,15,56,0,217
-        pxor    xmm3,xmm2
-        movdqa  xmm4,xmm5
-db      102,15,56,0,224
-        pxor    xmm4,xmm2
-        movdqa  xmm2,xmm5
-db      102,15,56,0,211
-        pxor    xmm2,xmm0
-        movdqa  xmm3,xmm5
-db      102,15,56,0,220
-        pxor    xmm3,xmm1
-        movdqa  xmm4,[32+ebp]
-db      102,15,56,0,226
-        movdqa  xmm0,[48+ebp]
-db      102,15,56,0,195
-        pxor    xmm0,xmm4
-        pxor    xmm0,xmm7
-        movdqa  xmm7,xmm0
-        ret
-align   16
-__vpaes_schedule_transform:
-        movdqa  xmm2,[ebp-16]
-        movdqa  xmm1,xmm2
-        pandn   xmm1,xmm0
-        psrld   xmm1,4
-        pand    xmm0,xmm2
-        movdqa  xmm2,[ebx]
-db      102,15,56,0,208
-        movdqa  xmm0,[16+ebx]
-db      102,15,56,0,193
-        pxor    xmm0,xmm2
-        ret
-align   16
-__vpaes_schedule_mangle:
-        movdqa  xmm4,xmm0
-        movdqa  xmm5,[128+ebp]
-        test    edi,edi
-        jnz     NEAR L$014schedule_mangle_dec
-        add     edx,16
-        pxor    xmm4,[336+ebp]
-db      102,15,56,0,229
-        movdqa  xmm3,xmm4
-db      102,15,56,0,229
-        pxor    xmm3,xmm4
-db      102,15,56,0,229
-        pxor    xmm3,xmm4
-        jmp     NEAR L$015schedule_mangle_both
-align   16
-L$014schedule_mangle_dec:
-        movdqa  xmm2,[ebp-16]
-        lea     esi,[416+ebp]
-        movdqa  xmm1,xmm2
-        pandn   xmm1,xmm4
-        psrld   xmm1,4
-        pand    xmm4,xmm2
-        movdqa  xmm2,[esi]
-db      102,15,56,0,212
-        movdqa  xmm3,[16+esi]
-db      102,15,56,0,217
-        pxor    xmm3,xmm2
-db      102,15,56,0,221
-        movdqa  xmm2,[32+esi]
-db      102,15,56,0,212
-        pxor    xmm2,xmm3
-        movdqa  xmm3,[48+esi]
-db      102,15,56,0,217
-        pxor    xmm3,xmm2
-db      102,15,56,0,221
-        movdqa  xmm2,[64+esi]
-db      102,15,56,0,212
-        pxor    xmm2,xmm3
-        movdqa  xmm3,[80+esi]
-db      102,15,56,0,217
-        pxor    xmm3,xmm2
-db      102,15,56,0,221
-        movdqa  xmm2,[96+esi]
-db      102,15,56,0,212
-        pxor    xmm2,xmm3
-        movdqa  xmm3,[112+esi]
-db      102,15,56,0,217
-        pxor    xmm3,xmm2
-        add     edx,-16
-L$015schedule_mangle_both:
-        movdqa  xmm1,[256+ecx*1+ebp]
-db      102,15,56,0,217
-        add     ecx,-16
-        and     ecx,48
-        movdqu  [edx],xmm3
-        ret
-global  _vpaes_set_encrypt_key
-align   16
-_vpaes_set_encrypt_key:
-L$_vpaes_set_encrypt_key_begin:
-        push    ebp
-        push    ebx
-        push    esi
-        push    edi
-        mov     esi,DWORD [20+esp]
-        lea     ebx,[esp-56]
-        mov     eax,DWORD [24+esp]
-        and     ebx,-16
-        mov     edx,DWORD [28+esp]
-        xchg    ebx,esp
-        mov     DWORD [48+esp],ebx
-        mov     ebx,eax
-        shr     ebx,5
-        add     ebx,5
-        mov     DWORD [240+edx],ebx
-        mov     ecx,48
-        mov     edi,0
-        lea     ebp,[(L$_vpaes_consts+0x30-L$016pic_point)]
-        call    __vpaes_schedule_core
-L$016pic_point:
-        mov     esp,DWORD [48+esp]
-        xor     eax,eax
-        pop     edi
-        pop     esi
-        pop     ebx
-        pop     ebp
-        ret
-global  _vpaes_set_decrypt_key
-align   16
-_vpaes_set_decrypt_key:
-L$_vpaes_set_decrypt_key_begin:
-        push    ebp
-        push    ebx
-        push    esi
-        push    edi
-        mov     esi,DWORD [20+esp]
-        lea     ebx,[esp-56]
-        mov     eax,DWORD [24+esp]
-        and     ebx,-16
-        mov     edx,DWORD [28+esp]
-        xchg    ebx,esp
-        mov     DWORD [48+esp],ebx
-        mov     ebx,eax
-        shr     ebx,5
-        add     ebx,5
-        mov     DWORD [240+edx],ebx
-        shl     ebx,4
-        lea     edx,[16+ebx*1+edx]
-        mov     edi,1
-        mov     ecx,eax
-        shr     ecx,1
-        and     ecx,32
-        xor     ecx,32
-        lea     ebp,[(L$_vpaes_consts+0x30-L$017pic_point)]
-        call    __vpaes_schedule_core
-L$017pic_point:
-        mov     esp,DWORD [48+esp]
-        xor     eax,eax
-        pop     edi
-        pop     esi
-        pop     ebx
-        pop     ebp
-        ret
-global  _vpaes_encrypt
-align   16
-_vpaes_encrypt:
-L$_vpaes_encrypt_begin:
-        push    ebp
-        push    ebx
-        push    esi
-        push    edi
-        lea     ebp,[(L$_vpaes_consts+0x30-L$018pic_point)]
-        call    __vpaes_preheat
-L$018pic_point:
-        mov     esi,DWORD [20+esp]
-        lea     ebx,[esp-56]
-        mov     edi,DWORD [24+esp]
-        and     ebx,-16
-        mov     edx,DWORD [28+esp]
-        xchg    ebx,esp
-        mov     DWORD [48+esp],ebx
-        movdqu  xmm0,[esi]
-        call    __vpaes_encrypt_core
-        movdqu  [edi],xmm0
-        mov     esp,DWORD [48+esp]
-        pop     edi
-        pop     esi
-        pop     ebx
-        pop     ebp
-        ret
-global  _vpaes_decrypt
-align   16
-_vpaes_decrypt:
-L$_vpaes_decrypt_begin:
-        push    ebp
-        push    ebx
-        push    esi
-        push    edi
-        lea     ebp,[(L$_vpaes_consts+0x30-L$019pic_point)]
-        call    __vpaes_preheat
-L$019pic_point:
-        mov     esi,DWORD [20+esp]
-        lea     ebx,[esp-56]
-        mov     edi,DWORD [24+esp]
-        and     ebx,-16
-        mov     edx,DWORD [28+esp]
-        xchg    ebx,esp
-        mov     DWORD [48+esp],ebx
-        movdqu  xmm0,[esi]
-        call    __vpaes_decrypt_core
-        movdqu  [edi],xmm0
-        mov     esp,DWORD [48+esp]
-        pop     edi
-        pop     esi
-        pop     ebx
-        pop     ebp
-        ret
-global  _vpaes_cbc_encrypt
-align   16
-_vpaes_cbc_encrypt:
-L$_vpaes_cbc_encrypt_begin:
-        push    ebp
-        push    ebx
-        push    esi
-        push    edi
-        mov     esi,DWORD [20+esp]
-        mov     edi,DWORD [24+esp]
-        mov     eax,DWORD [28+esp]
-        mov     edx,DWORD [32+esp]
-        sub     eax,16
-        jc      NEAR L$020cbc_abort
-        lea     ebx,[esp-56]
-        mov     ebp,DWORD [36+esp]
-        and     ebx,-16
-        mov     ecx,DWORD [40+esp]
-        xchg    ebx,esp
-        movdqu  xmm1,[ebp]
-        sub     edi,esi
-        mov     DWORD [48+esp],ebx
-        mov     DWORD [esp],edi
-        mov     DWORD [4+esp],edx
-        mov     DWORD [8+esp],ebp
-        mov     edi,eax
-        lea     ebp,[(L$_vpaes_consts+0x30-L$021pic_point)]
-        call    __vpaes_preheat
-L$021pic_point:
-        cmp     ecx,0
-        je      NEAR L$022cbc_dec_loop
-        jmp     NEAR L$023cbc_enc_loop
-align   16
-L$023cbc_enc_loop:
-        movdqu  xmm0,[esi]
-        pxor    xmm0,xmm1
-        call    __vpaes_encrypt_core
-        mov     ebx,DWORD [esp]
-        mov     edx,DWORD [4+esp]
-        movdqa  xmm1,xmm0
-        movdqu  [esi*1+ebx],xmm0
-        lea     esi,[16+esi]
-        sub     edi,16
-        jnc     NEAR L$023cbc_enc_loop
-        jmp     NEAR L$024cbc_done
-align   16
-L$022cbc_dec_loop:
-        movdqu  xmm0,[esi]
-        movdqa  [16+esp],xmm1
-        movdqa  [32+esp],xmm0
-        call    __vpaes_decrypt_core
-        mov     ebx,DWORD [esp]
-        mov     edx,DWORD [4+esp]
-        pxor    xmm0,[16+esp]
-        movdqa  xmm1,[32+esp]
-        movdqu  [esi*1+ebx],xmm0
-        lea     esi,[16+esi]
-        sub     edi,16
-        jnc     NEAR L$022cbc_dec_loop
-L$024cbc_done:
-        mov     ebx,DWORD [8+esp]
-        mov     esp,DWORD [48+esp]
-        movdqu  [ebx],xmm1
-L$020cbc_abort:
-        pop     edi
-        pop     esi
-        pop     ebx
-        pop     ebp
-        ret
diff --git a/CryptoPkg/Library/OpensslLib/IA32/crypto/modes/ghash-x86.nasm b/CryptoPkg/Library/OpensslLib/IA32/crypto/modes/ghash-x86.nasm
deleted file mode 100644
index 88c52f746cdc..000000000000
--- a/CryptoPkg/Library/OpensslLib/IA32/crypto/modes/ghash-x86.nasm
+++ /dev/null
@@ -1,700 +0,0 @@
-; WARNING: do not edit!
-; Generated from openssl/crypto/modes/asm/ghash-x86.pl
-;
-; Copyright 2010-2020 The OpenSSL Project Authors. All Rights Reserved.
-;
-; Licensed under the OpenSSL license (the "License").  You may not use
-; this file except in compliance with the License.  You can obtain a copy
-; in the file LICENSE in the source distribution or at
-; https://www.openssl.org/source/license.html
-
-%ifidn __OUTPUT_FORMAT__,obj
-section code    use32 class=code align=64
-%elifidn __OUTPUT_FORMAT__,win32
-$@feat.00 equ 1
-section .text   code align=64
-%else
-section .text   code
-%endif
-global  _gcm_gmult_4bit_x86
-align   16
-_gcm_gmult_4bit_x86:
-L$_gcm_gmult_4bit_x86_begin:
-        push    ebp
-        push    ebx
-        push    esi
-        push    edi
-        sub     esp,84
-        mov     edi,DWORD [104+esp]
-        mov     esi,DWORD [108+esp]
-        mov     ebp,DWORD [edi]
-        mov     edx,DWORD [4+edi]
-        mov     ecx,DWORD [8+edi]
-        mov     ebx,DWORD [12+edi]
-        mov     DWORD [16+esp],0
-        mov     DWORD [20+esp],471859200
-        mov     DWORD [24+esp],943718400
-        mov     DWORD [28+esp],610271232
-        mov     DWORD [32+esp],1887436800
-        mov     DWORD [36+esp],1822425088
-        mov     DWORD [40+esp],1220542464
-        mov     DWORD [44+esp],1423966208
-        mov     DWORD [48+esp],3774873600
-        mov     DWORD [52+esp],4246732800
-        mov     DWORD [56+esp],3644850176
-        mov     DWORD [60+esp],3311403008
-        mov     DWORD [64+esp],2441084928
-        mov     DWORD [68+esp],2376073216
-        mov     DWORD [72+esp],2847932416
-        mov     DWORD [76+esp],3051356160
-        mov     DWORD [esp],ebp
-        mov     DWORD [4+esp],edx
-        mov     DWORD [8+esp],ecx
-        mov     DWORD [12+esp],ebx
-        shr     ebx,20
-        and     ebx,240
-        mov     ebp,DWORD [4+ebx*1+esi]
-        mov     edx,DWORD [ebx*1+esi]
-        mov     ecx,DWORD [12+ebx*1+esi]
-        mov     ebx,DWORD [8+ebx*1+esi]
-        xor     eax,eax
-        mov     edi,15
-        jmp     NEAR L$000x86_loop
-align   16
-L$000x86_loop:
-        mov     al,bl
-        shrd    ebx,ecx,4
-        and     al,15
-        shrd    ecx,edx,4
-        shrd    edx,ebp,4
-        shr     ebp,4
-        xor     ebp,DWORD [16+eax*4+esp]
-        mov     al,BYTE [edi*1+esp]
-        and     al,240
-        xor     ebx,DWORD [8+eax*1+esi]
-        xor     ecx,DWORD [12+eax*1+esi]
-        xor     edx,DWORD [eax*1+esi]
-        xor     ebp,DWORD [4+eax*1+esi]
-        dec     edi
-        js      NEAR L$001x86_break
-        mov     al,bl
-        shrd    ebx,ecx,4
-        and     al,15
-        shrd    ecx,edx,4
-        shrd    edx,ebp,4
-        shr     ebp,4
-        xor     ebp,DWORD [16+eax*4+esp]
-        mov     al,BYTE [edi*1+esp]
-        shl     al,4
-        xor     ebx,DWORD [8+eax*1+esi]
-        xor     ecx,DWORD [12+eax*1+esi]
-        xor     edx,DWORD [eax*1+esi]
-        xor     ebp,DWORD [4+eax*1+esi]
-        jmp     NEAR L$000x86_loop
-align   16
-L$001x86_break:
-        bswap   ebx
-        bswap   ecx
-        bswap   edx
-        bswap   ebp
-        mov     edi,DWORD [104+esp]
-        mov     DWORD [12+edi],ebx
-        mov     DWORD [8+edi],ecx
-        mov     DWORD [4+edi],edx
-        mov     DWORD [edi],ebp
-        add     esp,84
-        pop     edi
-        pop     esi
-        pop     ebx
-        pop     ebp
-        ret
-global  _gcm_ghash_4bit_x86
-align   16
-_gcm_ghash_4bit_x86:
-L$_gcm_ghash_4bit_x86_begin:
-        push    ebp
-        push    ebx
-        push    esi
-        push    edi
-        sub     esp,84
-        mov     ebx,DWORD [104+esp]
-        mov     esi,DWORD [108+esp]
-        mov     edi,DWORD [112+esp]
-        mov     ecx,DWORD [116+esp]
-        add     ecx,edi
-        mov     DWORD [116+esp],ecx
-        mov     ebp,DWORD [ebx]
-        mov     edx,DWORD [4+ebx]
-        mov     ecx,DWORD [8+ebx]
-        mov     ebx,DWORD [12+ebx]
-        mov     DWORD [16+esp],0
-        mov     DWORD [20+esp],471859200
-        mov     DWORD [24+esp],943718400
-        mov     DWORD [28+esp],610271232
-        mov     DWORD [32+esp],1887436800
-        mov     DWORD [36+esp],1822425088
-        mov     DWORD [40+esp],1220542464
-        mov     DWORD [44+esp],1423966208
-        mov     DWORD [48+esp],3774873600
-        mov     DWORD [52+esp],4246732800
-        mov     DWORD [56+esp],3644850176
-        mov     DWORD [60+esp],3311403008
-        mov     DWORD [64+esp],2441084928
-        mov     DWORD [68+esp],2376073216
-        mov     DWORD [72+esp],2847932416
-        mov     DWORD [76+esp],3051356160
-align   16
-L$002x86_outer_loop:
-        xor     ebx,DWORD [12+edi]
-        xor     ecx,DWORD [8+edi]
-        xor     edx,DWORD [4+edi]
-        xor     ebp,DWORD [edi]
-        mov     DWORD [12+esp],ebx
-        mov     DWORD [8+esp],ecx
-        mov     DWORD [4+esp],edx
-        mov     DWORD [esp],ebp
-        shr     ebx,20
-        and     ebx,240
-        mov     ebp,DWORD [4+ebx*1+esi]
-        mov     edx,DWORD [ebx*1+esi]
-        mov     ecx,DWORD [12+ebx*1+esi]
-        mov     ebx,DWORD [8+ebx*1+esi]
-        xor     eax,eax
-        mov     edi,15
-        jmp     NEAR L$003x86_loop
-align   16
-L$003x86_loop:
-        mov     al,bl
-        shrd    ebx,ecx,4
-        and     al,15
-        shrd    ecx,edx,4
-        shrd    edx,ebp,4
-        shr     ebp,4
-        xor     ebp,DWORD [16+eax*4+esp]
-        mov     al,BYTE [edi*1+esp]
-        and     al,240
-        xor     ebx,DWORD [8+eax*1+esi]
-        xor     ecx,DWORD [12+eax*1+esi]
-        xor     edx,DWORD [eax*1+esi]
-        xor     ebp,DWORD [4+eax*1+esi]
-        dec     edi
-        js      NEAR L$004x86_break
-        mov     al,bl
-        shrd    ebx,ecx,4
-        and     al,15
-        shrd    ecx,edx,4
-        shrd    edx,ebp,4
-        shr     ebp,4
-        xor     ebp,DWORD [16+eax*4+esp]
-        mov     al,BYTE [edi*1+esp]
-        shl     al,4
-        xor     ebx,DWORD [8+eax*1+esi]
-        xor     ecx,DWORD [12+eax*1+esi]
-        xor     edx,DWORD [eax*1+esi]
-        xor     ebp,DWORD [4+eax*1+esi]
-        jmp     NEAR L$003x86_loop
-align   16
-L$004x86_break:
-        bswap   ebx
-        bswap   ecx
-        bswap   edx
-        bswap   ebp
-        mov     edi,DWORD [112+esp]
-        lea     edi,[16+edi]
-        cmp     edi,DWORD [116+esp]
-        mov     DWORD [112+esp],edi
-        jb      NEAR L$002x86_outer_loop
-        mov     edi,DWORD [104+esp]
-        mov     DWORD [12+edi],ebx
-        mov     DWORD [8+edi],ecx
-        mov     DWORD [4+edi],edx
-        mov     DWORD [edi],ebp
-        add     esp,84
-        pop     edi
-        pop     esi
-        pop     ebx
-        pop     ebp
-        ret
-align   16
-__mmx_gmult_4bit_inner:
-        xor     ecx,ecx
-        mov     edx,ebx
-        mov     cl,dl
-        shl     cl,4
-        and     edx,240
-        movq    mm0,[8+ecx*1+esi]
-        movq    mm1,[ecx*1+esi]
-        movd    ebp,mm0
-        psrlq   mm0,4
-        movq    mm2,mm1
-        psrlq   mm1,4
-        pxor    mm0,[8+edx*1+esi]
-        mov     cl,BYTE [14+edi]
-        psllq   mm2,60
-        and     ebp,15
-        pxor    mm1,[edx*1+esi]
-        mov     edx,ecx
-        movd    ebx,mm0
-        pxor    mm0,mm2
-        shl     cl,4
-        psrlq   mm0,4
-        movq    mm2,mm1
-        psrlq   mm1,4
-        pxor    mm0,[8+ecx*1+esi]
-        psllq   mm2,60
-        and     edx,240
-        pxor    mm1,[ebp*8+eax]
-        and     ebx,15
-        pxor    mm1,[ecx*1+esi]
-        movd    ebp,mm0
-        pxor    mm0,mm2
-        psrlq   mm0,4
-        movq    mm2,mm1
-        psrlq   mm1,4
-        pxor    mm0,[8+edx*1+esi]
-        mov     cl,BYTE [13+edi]
-        psllq   mm2,60
-        pxor    mm1,[ebx*8+eax]
-        and     ebp,15
-        pxor    mm1,[edx*1+esi]
-        mov     edx,ecx
-        movd    ebx,mm0
-        pxor    mm0,mm2
-        shl     cl,4
-        psrlq   mm0,4
-        movq    mm2,mm1
-        psrlq   mm1,4
-        pxor    mm0,[8+ecx*1+esi]
-        psllq   mm2,60
-        and     edx,240
-        pxor    mm1,[ebp*8+eax]
-        and     ebx,15
-        pxor    mm1,[ecx*1+esi]
-        movd    ebp,mm0
-        pxor    mm0,mm2
-        psrlq   mm0,4
-        movq    mm2,mm1
-        psrlq   mm1,4
-        pxor    mm0,[8+edx*1+esi]
-        mov     cl,BYTE [12+edi]
-        psllq   mm2,60
-        pxor    mm1,[ebx*8+eax]
-        and     ebp,15
-        pxor    mm1,[edx*1+esi]
-        mov     edx,ecx
-        movd    ebx,mm0
-        pxor    mm0,mm2
-        shl     cl,4
-        psrlq   mm0,4
-        movq    mm2,mm1
-        psrlq   mm1,4
-        pxor    mm0,[8+ecx*1+esi]
-        psllq   mm2,60
-        and     edx,240
-        pxor    mm1,[ebp*8+eax]
-        and     ebx,15
-        pxor    mm1,[ecx*1+esi]
-        movd    ebp,mm0
-        pxor    mm0,mm2
-        psrlq   mm0,4
-        movq    mm2,mm1
-        psrlq   mm1,4
-        pxor    mm0,[8+edx*1+esi]
-        mov     cl,BYTE [11+edi]
-        psllq   mm2,60
-        pxor    mm1,[ebx*8+eax]
-        and     ebp,15
-        pxor    mm1,[edx*1+esi]
-        mov     edx,ecx
-        movd    ebx,mm0
-        pxor    mm0,mm2
-        shl     cl,4
-        psrlq   mm0,4
-        movq    mm2,mm1
-        psrlq   mm1,4
-        pxor    mm0,[8+ecx*1+esi]
-        psllq   mm2,60
-        and     edx,240
-        pxor    mm1,[ebp*8+eax]
-        and     ebx,15
-        pxor    mm1,[ecx*1+esi]
-        movd    ebp,mm0
-        pxor    mm0,mm2
-        psrlq   mm0,4
-        movq    mm2,mm1
-        psrlq   mm1,4
-        pxor    mm0,[8+edx*1+esi]
-        mov     cl,BYTE [10+edi]
-        psllq   mm2,60
-        pxor    mm1,[ebx*8+eax]
-        and     ebp,15
-        pxor    mm1,[edx*1+esi]
-        mov     edx,ecx
-        movd    ebx,mm0
-        pxor    mm0,mm2
-        shl     cl,4
-        psrlq   mm0,4
-        movq    mm2,mm1
-        psrlq   mm1,4
-        pxor    mm0,[8+ecx*1+esi]
-        psllq   mm2,60
-        and     edx,240
-        pxor    mm1,[ebp*8+eax]
-        and     ebx,15
-        pxor    mm1,[ecx*1+esi]
-        movd    ebp,mm0
-        pxor    mm0,mm2
-        psrlq   mm0,4
-        movq    mm2,mm1
-        psrlq   mm1,4
-        pxor    mm0,[8+edx*1+esi]
-        mov     cl,BYTE [9+edi]
-        psllq   mm2,60
-        pxor    mm1,[ebx*8+eax]
-        and     ebp,15
-        pxor    mm1,[edx*1+esi]
-        mov     edx,ecx
-        movd    ebx,mm0
-        pxor    mm0,mm2
-        shl     cl,4
-        psrlq   mm0,4
-        movq    mm2,mm1
-        psrlq   mm1,4
-        pxor    mm0,[8+ecx*1+esi]
-        psllq   mm2,60
-        and     edx,240
-        pxor    mm1,[ebp*8+eax]
-        and     ebx,15
-        pxor    mm1,[ecx*1+esi]
-        movd    ebp,mm0
-        pxor    mm0,mm2
-        psrlq   mm0,4
-        movq    mm2,mm1
-        psrlq   mm1,4
-        pxor    mm0,[8+edx*1+esi]
-        mov     cl,BYTE [8+edi]
-        psllq   mm2,60
-        pxor    mm1,[ebx*8+eax]
-        and     ebp,15
-        pxor    mm1,[edx*1+esi]
-        mov     edx,ecx
-        movd    ebx,mm0
-        pxor    mm0,mm2
-        shl     cl,4
-        psrlq   mm0,4
-        movq    mm2,mm1
-        psrlq   mm1,4
-        pxor    mm0,[8+ecx*1+esi]
-        psllq   mm2,60
-        and     edx,240
-        pxor    mm1,[ebp*8+eax]
-        and     ebx,15
-        pxor    mm1,[ecx*1+esi]
-        movd    ebp,mm0
-        pxor    mm0,mm2
-        psrlq   mm0,4
-        movq    mm2,mm1
-        psrlq   mm1,4
-        pxor    mm0,[8+edx*1+esi]
-        mov     cl,BYTE [7+edi]
-        psllq   mm2,60
-        pxor    mm1,[ebx*8+eax]
-        and     ebp,15
-        pxor    mm1,[edx*1+esi]
-        mov     edx,ecx
-        movd    ebx,mm0
-        pxor    mm0,mm2
-        shl     cl,4
-        psrlq   mm0,4
-        movq    mm2,mm1
-        psrlq   mm1,4
-        pxor    mm0,[8+ecx*1+esi]
-        psllq   mm2,60
-        and     edx,240
-        pxor    mm1,[ebp*8+eax]
-        and     ebx,15
-        pxor    mm1,[ecx*1+esi]
-        movd    ebp,mm0
-        pxor    mm0,mm2
-        psrlq   mm0,4
-        movq    mm2,mm1
-        psrlq   mm1,4
-        pxor    mm0,[8+edx*1+esi]
-        mov     cl,BYTE [6+edi]
-        psllq   mm2,60
-        pxor    mm1,[ebx*8+eax]
-        and     ebp,15
-        pxor    mm1,[edx*1+esi]
-        mov     edx,ecx
-        movd    ebx,mm0
-        pxor    mm0,mm2
-        shl     cl,4
-        psrlq   mm0,4
-        movq    mm2,mm1
-        psrlq   mm1,4
-        pxor    mm0,[8+ecx*1+esi]
-        psllq   mm2,60
-        and     edx,240
-        pxor    mm1,[ebp*8+eax]
-        and     ebx,15
-        pxor    mm1,[ecx*1+esi]
-        movd    ebp,mm0
-        pxor    mm0,mm2
-        psrlq   mm0,4
-        movq    mm2,mm1
-        psrlq   mm1,4
-        pxor    mm0,[8+edx*1+esi]
-        mov     cl,BYTE [5+edi]
-        psllq   mm2,60
-        pxor    mm1,[ebx*8+eax]
-        and     ebp,15
-        pxor    mm1,[edx*1+esi]
-        mov     edx,ecx
-        movd    ebx,mm0
-        pxor    mm0,mm2
-        shl     cl,4
-        psrlq   mm0,4
-        movq    mm2,mm1
-        psrlq   mm1,4
-        pxor    mm0,[8+ecx*1+esi]
-        psllq   mm2,60
-        and     edx,240
-        pxor    mm1,[ebp*8+eax]
-        and     ebx,15
-        pxor    mm1,[ecx*1+esi]
-        movd    ebp,mm0
-        pxor    mm0,mm2
-        psrlq   mm0,4
-        movq    mm2,mm1
-        psrlq   mm1,4
-        pxor    mm0,[8+edx*1+esi]
-        mov     cl,BYTE [4+edi]
-        psllq   mm2,60
-        pxor    mm1,[ebx*8+eax]
-        and     ebp,15
-        pxor    mm1,[edx*1+esi]
-        mov     edx,ecx
-        movd    ebx,mm0
-        pxor    mm0,mm2
-        shl     cl,4
-        psrlq   mm0,4
-        movq    mm2,mm1
-        psrlq   mm1,4
-        pxor    mm0,[8+ecx*1+esi]
-        psllq   mm2,60
-        and     edx,240
-        pxor    mm1,[ebp*8+eax]
-        and     ebx,15
-        pxor    mm1,[ecx*1+esi]
-        movd    ebp,mm0
-        pxor    mm0,mm2
-        psrlq   mm0,4
-        movq    mm2,mm1
-        psrlq   mm1,4
-        pxor    mm0,[8+edx*1+esi]
-        mov     cl,BYTE [3+edi]
-        psllq   mm2,60
-        pxor    mm1,[ebx*8+eax]
-        and     ebp,15
-        pxor    mm1,[edx*1+esi]
-        mov     edx,ecx
-        movd    ebx,mm0
-        pxor    mm0,mm2
-        shl     cl,4
-        psrlq   mm0,4
-        movq    mm2,mm1
-        psrlq   mm1,4
-        pxor    mm0,[8+ecx*1+esi]
-        psllq   mm2,60
-        and     edx,240
-        pxor    mm1,[ebp*8+eax]
-        and     ebx,15
-        pxor    mm1,[ecx*1+esi]
-        movd    ebp,mm0
-        pxor    mm0,mm2
-        psrlq   mm0,4
-        movq    mm2,mm1
-        psrlq   mm1,4
-        pxor    mm0,[8+edx*1+esi]
-        mov     cl,BYTE [2+edi]
-        psllq   mm2,60
-        pxor    mm1,[ebx*8+eax]
-        and     ebp,15
-        pxor    mm1,[edx*1+esi]
-        mov     edx,ecx
-        movd    ebx,mm0
-        pxor    mm0,mm2
-        shl     cl,4
-        psrlq   mm0,4
-        movq    mm2,mm1
-        psrlq   mm1,4
-        pxor    mm0,[8+ecx*1+esi]
-        psllq   mm2,60
-        and     edx,240
-        pxor    mm1,[ebp*8+eax]
-        and     ebx,15
-        pxor    mm1,[ecx*1+esi]
-        movd    ebp,mm0
-        pxor    mm0,mm2
-        psrlq   mm0,4
-        movq    mm2,mm1
-        psrlq   mm1,4
-        pxor    mm0,[8+edx*1+esi]
-        mov     cl,BYTE [1+edi]
-        psllq   mm2,60
-        pxor    mm1,[ebx*8+eax]
-        and     ebp,15
-        pxor    mm1,[edx*1+esi]
-        mov     edx,ecx
-        movd    ebx,mm0
-        pxor    mm0,mm2
-        shl     cl,4
-        psrlq   mm0,4
-        movq    mm2,mm1
-        psrlq   mm1,4
-        pxor    mm0,[8+ecx*1+esi]
-        psllq   mm2,60
-        and     edx,240
-        pxor    mm1,[ebp*8+eax]
-        and     ebx,15
-        pxor    mm1,[ecx*1+esi]
-        movd    ebp,mm0
-        pxor    mm0,mm2
-        psrlq   mm0,4
-        movq    mm2,mm1
-        psrlq   mm1,4
-        pxor    mm0,[8+edx*1+esi]
-        mov     cl,BYTE [edi]
-        psllq   mm2,60
-        pxor    mm1,[ebx*8+eax]
-        and     ebp,15
-        pxor    mm1,[edx*1+esi]
-        mov     edx,ecx
-        movd    ebx,mm0
-        pxor    mm0,mm2
-        shl     cl,4
-        psrlq   mm0,4
-        movq    mm2,mm1
-        psrlq   mm1,4
-        pxor    mm0,[8+ecx*1+esi]
-        psllq   mm2,60
-        and     edx,240
-        pxor    mm1,[ebp*8+eax]
-        and     ebx,15
-        pxor    mm1,[ecx*1+esi]
-        movd    ebp,mm0
-        pxor    mm0,mm2
-        psrlq   mm0,4
-        movq    mm2,mm1
-        psrlq   mm1,4
-        pxor    mm0,[8+edx*1+esi]
-        psllq   mm2,60
-        pxor    mm1,[ebx*8+eax]
-        and     ebp,15
-        pxor    mm1,[edx*1+esi]
-        movd    ebx,mm0
-        pxor    mm0,mm2
-        mov     edi,DWORD [4+ebp*8+eax]
-        psrlq   mm0,32
-        movd    edx,mm1
-        psrlq   mm1,32
-        movd    ecx,mm0
-        movd    ebp,mm1
-        shl     edi,4
-        bswap   ebx
-        bswap   edx
-        bswap   ecx
-        xor     ebp,edi
-        bswap   ebp
-        ret
-global  _gcm_gmult_4bit_mmx
-align   16
-_gcm_gmult_4bit_mmx:
-L$_gcm_gmult_4bit_mmx_begin:
-        push    ebp
-        push    ebx
-        push    esi
-        push    edi
-        mov     edi,DWORD [20+esp]
-        mov     esi,DWORD [24+esp]
-        call    L$005pic_point
-L$005pic_point:
-        pop     eax
-        lea     eax,[(L$rem_4bit-L$005pic_point)+eax]
-        movzx   ebx,BYTE [15+edi]
-        call    __mmx_gmult_4bit_inner
-        mov     edi,DWORD [20+esp]
-        emms
-        mov     DWORD [12+edi],ebx
-        mov     DWORD [4+edi],edx
-        mov     DWORD [8+edi],ecx
-        mov     DWORD [edi],ebp
-        pop     edi
-        pop     esi
-        pop     ebx
-        pop     ebp
-        ret
-global  _gcm_ghash_4bit_mmx
-align   16
-_gcm_ghash_4bit_mmx:
-L$_gcm_ghash_4bit_mmx_begin:
-        push    ebp
-        push    ebx
-        push    esi
-        push    edi
-        mov     ebp,DWORD [20+esp]
-        mov     esi,DWORD [24+esp]
-        mov     edi,DWORD [28+esp]
-        mov     ecx,DWORD [32+esp]
-        call    L$006pic_point
-L$006pic_point:
-        pop     eax
-        lea     eax,[(L$rem_4bit-L$006pic_point)+eax]
-        add     ecx,edi
-        mov     DWORD [32+esp],ecx
-        sub     esp,20
-        mov     ebx,DWORD [12+ebp]
-        mov     edx,DWORD [4+ebp]
-        mov     ecx,DWORD [8+ebp]
-        mov     ebp,DWORD [ebp]
-        jmp     NEAR L$007mmx_outer_loop
-align   16
-L$007mmx_outer_loop:
-        xor     ebx,DWORD [12+edi]
-        xor     edx,DWORD [4+edi]
-        xor     ecx,DWORD [8+edi]
-        xor     ebp,DWORD [edi]
-        mov     DWORD [48+esp],edi
-        mov     DWORD [12+esp],ebx
-        mov     DWORD [4+esp],edx
-        mov     DWORD [8+esp],ecx
-        mov     DWORD [esp],ebp
-        mov     edi,esp
-        shr     ebx,24
-        call    __mmx_gmult_4bit_inner
-        mov     edi,DWORD [48+esp]
-        lea     edi,[16+edi]
-        cmp     edi,DWORD [52+esp]
-        jb      NEAR L$007mmx_outer_loop
-        mov     edi,DWORD [40+esp]
-        emms
-        mov     DWORD [12+edi],ebx
-        mov     DWORD [4+edi],edx
-        mov     DWORD [8+edi],ecx
-        mov     DWORD [edi],ebp
-        add     esp,20
-        pop     edi
-        pop     esi
-        pop     ebx
-        pop     ebp
-        ret
-align   64
-L$rem_4bit:
-dd      0,0,0,29491200,0,58982400,0,38141952
-dd      0,117964800,0,113901568,0,76283904,0,88997888
-dd      0,235929600,0,265420800,0,227803136,0,206962688
-dd      0,152567808,0,148504576,0,177995776,0,190709760
-db      71,72,65,83,72,32,102,111,114,32,120,56,54,44,32,67
-db      82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112
-db      112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62
-db      0
diff --git a/CryptoPkg/Library/OpensslLib/IA32/crypto/sha/sha1-586.nasm b/CryptoPkg/Library/OpensslLib/IA32/crypto/sha/sha1-586.nasm
deleted file mode 100644
index bf2831e5eaef..000000000000
--- a/CryptoPkg/Library/OpensslLib/IA32/crypto/sha/sha1-586.nasm
+++ /dev/null
@@ -1,1394 +0,0 @@
-; WARNING: do not edit!
-; Generated from openssl/crypto/sha/asm/sha1-586.pl
-;
-; Copyright 1998-2020 The OpenSSL Project Authors. All Rights Reserved.
-;
-; Licensed under the OpenSSL license (the "License").  You may not use
-; this file except in compliance with the License.  You can obtain a copy
-; in the file LICENSE in the source distribution or at
-; https://www.openssl.org/source/license.html
-
-%ifidn __OUTPUT_FORMAT__,obj
-section code    use32 class=code align=64
-%elifidn __OUTPUT_FORMAT__,win32
-$@feat.00 equ 1
-section .text   code align=64
-%else
-section .text   code
-%endif
-global  _sha1_block_data_order
-align   16
-_sha1_block_data_order:
-L$_sha1_block_data_order_begin:
-        push    ebp
-        push    ebx
-        push    esi
-        push    edi
-        mov     ebp,DWORD [20+esp]
-        mov     esi,DWORD [24+esp]
-        mov     eax,DWORD [28+esp]
-        sub     esp,76
-        shl     eax,6
-        add     eax,esi
-        mov     DWORD [104+esp],eax
-        mov     edi,DWORD [16+ebp]
-        jmp     NEAR L$000loop
-align   16
-L$000loop:
-        mov     eax,DWORD [esi]
-        mov     ebx,DWORD [4+esi]
-        mov     ecx,DWORD [8+esi]
-        mov     edx,DWORD [12+esi]
-        bswap   eax
-        bswap   ebx
-        bswap   ecx
-        bswap   edx
-        mov     DWORD [esp],eax
-        mov     DWORD [4+esp],ebx
-        mov     DWORD [8+esp],ecx
-        mov     DWORD [12+esp],edx
-        mov     eax,DWORD [16+esi]
-        mov     ebx,DWORD [20+esi]
-        mov     ecx,DWORD [24+esi]
-        mov     edx,DWORD [28+esi]
-        bswap   eax
-        bswap   ebx
-        bswap   ecx
-        bswap   edx
-        mov     DWORD [16+esp],eax
-        mov     DWORD [20+esp],ebx
-        mov     DWORD [24+esp],ecx
-        mov     DWORD [28+esp],edx
-        mov     eax,DWORD [32+esi]
-        mov     ebx,DWORD [36+esi]
-        mov     ecx,DWORD [40+esi]
-        mov     edx,DWORD [44+esi]
-        bswap   eax
-        bswap   ebx
-        bswap   ecx
-        bswap   edx
-        mov     DWORD [32+esp],eax
-        mov     DWORD [36+esp],ebx
-        mov     DWORD [40+esp],ecx
-        mov     DWORD [44+esp],edx
-        mov     eax,DWORD [48+esi]
-        mov     ebx,DWORD [52+esi]
-        mov     ecx,DWORD [56+esi]
-        mov     edx,DWORD [60+esi]
-        bswap   eax
-        bswap   ebx
-        bswap   ecx
-        bswap   edx
-        mov     DWORD [48+esp],eax
-        mov     DWORD [52+esp],ebx
-        mov     DWORD [56+esp],ecx
-        mov     DWORD [60+esp],edx
-        mov     DWORD [100+esp],esi
-        mov     eax,DWORD [ebp]
-        mov     ebx,DWORD [4+ebp]
-        mov     ecx,DWORD [8+ebp]
-        mov     edx,DWORD [12+ebp]
-        ; 00_15 0
-        mov     esi,ecx
-        mov     ebp,eax
-        rol     ebp,5
-        xor     esi,edx
-        add     ebp,edi
-        mov     edi,DWORD [esp]
-        and     esi,ebx
-        ror     ebx,2
-        xor     esi,edx
-        lea     ebp,[1518500249+edi*1+ebp]
-        add     ebp,esi
-        ; 00_15 1
-        mov     edi,ebx
-        mov     esi,ebp
-        rol     ebp,5
-        xor     edi,ecx
-        add     ebp,edx
-        mov     edx,DWORD [4+esp]
-        and     edi,eax
-        ror     eax,2
-        xor     edi,ecx
-        lea     ebp,[1518500249+edx*1+ebp]
-        add     ebp,edi
-        ; 00_15 2
-        mov     edx,eax
-        mov     edi,ebp
-        rol     ebp,5
-        xor     edx,ebx
-        add     ebp,ecx
-        mov     ecx,DWORD [8+esp]
-        and     edx,esi
-        ror     esi,2
-        xor     edx,ebx
-        lea     ebp,[1518500249+ecx*1+ebp]
-        add     ebp,edx
-        ; 00_15 3
-        mov     ecx,esi
-        mov     edx,ebp
-        rol     ebp,5
-        xor     ecx,eax
-        add     ebp,ebx
-        mov     ebx,DWORD [12+esp]
-        and     ecx,edi
-        ror     edi,2
-        xor     ecx,eax
-        lea     ebp,[1518500249+ebx*1+ebp]
-        add     ebp,ecx
-        ; 00_15 4
-        mov     ebx,edi
-        mov     ecx,ebp
-        rol     ebp,5
-        xor     ebx,esi
-        add     ebp,eax
-        mov     eax,DWORD [16+esp]
-        and     ebx,edx
-        ror     edx,2
-        xor     ebx,esi
-        lea     ebp,[1518500249+eax*1+ebp]
-        add     ebp,ebx
-        ; 00_15 5
-        mov     eax,edx
-        mov     ebx,ebp
-        rol     ebp,5
-        xor     eax,edi
-        add     ebp,esi
-        mov     esi,DWORD [20+esp]
-        and     eax,ecx
-        ror     ecx,2
-        xor     eax,edi
-        lea     ebp,[1518500249+esi*1+ebp]
-        add     ebp,eax
-        ; 00_15 6
-        mov     esi,ecx
-        mov     eax,ebp
-        rol     ebp,5
-        xor     esi,edx
-        add     ebp,edi
-        mov     edi,DWORD [24+esp]
-        and     esi,ebx
-        ror     ebx,2
-        xor     esi,edx
-        lea     ebp,[1518500249+edi*1+ebp]
-        add     ebp,esi
-        ; 00_15 7
-        mov     edi,ebx
-        mov     esi,ebp
-        rol     ebp,5
-        xor     edi,ecx
-        add     ebp,edx
-        mov     edx,DWORD [28+esp]
-        and     edi,eax
-        ror     eax,2
-        xor     edi,ecx
-        lea     ebp,[1518500249+edx*1+ebp]
-        add     ebp,edi
-        ; 00_15 8
-        mov     edx,eax
-        mov     edi,ebp
-        rol     ebp,5
-        xor     edx,ebx
-        add     ebp,ecx
-        mov     ecx,DWORD [32+esp]
-        and     edx,esi
-        ror     esi,2
-        xor     edx,ebx
-        lea     ebp,[1518500249+ecx*1+ebp]
-        add     ebp,edx
-        ; 00_15 9
-        mov     ecx,esi
-        mov     edx,ebp
-        rol     ebp,5
-        xor     ecx,eax
-        add     ebp,ebx
-        mov     ebx,DWORD [36+esp]
-        and     ecx,edi
-        ror     edi,2
-        xor     ecx,eax
-        lea     ebp,[1518500249+ebx*1+ebp]
-        add     ebp,ecx
-        ; 00_15 10
-        mov     ebx,edi
-        mov     ecx,ebp
-        rol     ebp,5
-        xor     ebx,esi
-        add     ebp,eax
-        mov     eax,DWORD [40+esp]
-        and     ebx,edx
-        ror     edx,2
-        xor     ebx,esi
-        lea     ebp,[1518500249+eax*1+ebp]
-        add     ebp,ebx
-        ; 00_15 11
-        mov     eax,edx
-        mov     ebx,ebp
-        rol     ebp,5
-        xor     eax,edi
-        add     ebp,esi
-        mov     esi,DWORD [44+esp]
-        and     eax,ecx
-        ror     ecx,2
-        xor     eax,edi
-        lea     ebp,[1518500249+esi*1+ebp]
-        add     ebp,eax
-        ; 00_15 12
-        mov     esi,ecx
-        mov     eax,ebp
-        rol     ebp,5
-        xor     esi,edx
-        add     ebp,edi
-        mov     edi,DWORD [48+esp]
-        and     esi,ebx
-        ror     ebx,2
-        xor     esi,edx
-        lea     ebp,[1518500249+edi*1+ebp]
-        add     ebp,esi
-        ; 00_15 13
-        mov     edi,ebx
-        mov     esi,ebp
-        rol     ebp,5
-        xor     edi,ecx
-        add     ebp,edx
-        mov     edx,DWORD [52+esp]
-        and     edi,eax
-        ror     eax,2
-        xor     edi,ecx
-        lea     ebp,[1518500249+edx*1+ebp]
-        add     ebp,edi
-        ; 00_15 14
-        mov     edx,eax
-        mov     edi,ebp
-        rol     ebp,5
-        xor     edx,ebx
-        add     ebp,ecx
-        mov     ecx,DWORD [56+esp]
-        and     edx,esi
-        ror     esi,2
-        xor     edx,ebx
-        lea     ebp,[1518500249+ecx*1+ebp]
-        add     ebp,edx
-        ; 00_15 15
-        mov     ecx,esi
-        mov     edx,ebp
-        rol     ebp,5
-        xor     ecx,eax
-        add     ebp,ebx
-        mov     ebx,DWORD [60+esp]
-        and     ecx,edi
-        ror     edi,2
-        xor     ecx,eax
-        lea     ebp,[1518500249+ebx*1+ebp]
-        mov     ebx,DWORD [esp]
-        add     ecx,ebp
-        ; 16_19 16
-        mov     ebp,edi
-        xor     ebx,DWORD [8+esp]
-        xor     ebp,esi
-        xor     ebx,DWORD [32+esp]
-        and     ebp,edx
-        xor     ebx,DWORD [52+esp]
-        rol     ebx,1
-        xor     ebp,esi
-        add     eax,ebp
-        mov     ebp,ecx
-        ror     edx,2
-        mov     DWORD [esp],ebx
-        rol     ebp,5
-        lea     ebx,[1518500249+eax*1+ebx]
-        mov     eax,DWORD [4+esp]
-        add     ebx,ebp
-        ; 16_19 17
-        mov     ebp,edx
-        xor     eax,DWORD [12+esp]
-        xor     ebp,edi
-        xor     eax,DWORD [36+esp]
-        and     ebp,ecx
-        xor     eax,DWORD [56+esp]
-        rol     eax,1
-        xor     ebp,edi
-        add     esi,ebp
-        mov     ebp,ebx
-        ror     ecx,2
-        mov     DWORD [4+esp],eax
-        rol     ebp,5
-        lea     eax,[1518500249+esi*1+eax]
-        mov     esi,DWORD [8+esp]
-        add     eax,ebp
-        ; 16_19 18
-        mov     ebp,ecx
-        xor     esi,DWORD [16+esp]
-        xor     ebp,edx
-        xor     esi,DWORD [40+esp]
-        and     ebp,ebx
-        xor     esi,DWORD [60+esp]
-        rol     esi,1
-        xor     ebp,edx
-        add     edi,ebp
-        mov     ebp,eax
-        ror     ebx,2
-        mov     DWORD [8+esp],esi
-        rol     ebp,5
-        lea     esi,[1518500249+edi*1+esi]
-        mov     edi,DWORD [12+esp]
-        add     esi,ebp
-        ; 16_19 19
-        mov     ebp,ebx
-        xor     edi,DWORD [20+esp]
-        xor     ebp,ecx
-        xor     edi,DWORD [44+esp]
-        and     ebp,eax
-        xor     edi,DWORD [esp]
-        rol     edi,1
-        xor     ebp,ecx
-        add     edx,ebp
-        mov     ebp,esi
-        ror     eax,2
-        mov     DWORD [12+esp],edi
-        rol     ebp,5
-        lea     edi,[1518500249+edx*1+edi]
-        mov     edx,DWORD [16+esp]
-        add     edi,ebp
-        ; 20_39 20
-        mov     ebp,esi
-        xor     edx,DWORD [24+esp]
-        xor     ebp,eax
-        xor     edx,DWORD [48+esp]
-        xor     ebp,ebx
-        xor     edx,DWORD [4+esp]
-        rol     edx,1
-        add     ecx,ebp
-        ror     esi,2
-        mov     ebp,edi
-        rol     ebp,5
-        mov     DWORD [16+esp],edx
-        lea     edx,[1859775393+ecx*1+edx]
-        mov     ecx,DWORD [20+esp]
-        add     edx,ebp
-        ; 20_39 21
-        mov     ebp,edi
-        xor     ecx,DWORD [28+esp]
-        xor     ebp,esi
-        xor     ecx,DWORD [52+esp]
-        xor     ebp,eax
-        xor     ecx,DWORD [8+esp]
-        rol     ecx,1
-        add     ebx,ebp
-        ror     edi,2
-        mov     ebp,edx
-        rol     ebp,5
-        mov     DWORD [20+esp],ecx
-        lea     ecx,[1859775393+ebx*1+ecx]
-        mov     ebx,DWORD [24+esp]
-        add     ecx,ebp
-        ; 20_39 22
-        mov     ebp,edx
-        xor     ebx,DWORD [32+esp]
-        xor     ebp,edi
-        xor     ebx,DWORD [56+esp]
-        xor     ebp,esi
-        xor     ebx,DWORD [12+esp]
-        rol     ebx,1
-        add     eax,ebp
-        ror     edx,2
-        mov     ebp,ecx
-        rol     ebp,5
-        mov     DWORD [24+esp],ebx
-        lea     ebx,[1859775393+eax*1+ebx]
-        mov     eax,DWORD [28+esp]
-        add     ebx,ebp
-        ; 20_39 23
-        mov     ebp,ecx
-        xor     eax,DWORD [36+esp]
-        xor     ebp,edx
-        xor     eax,DWORD [60+esp]
-        xor     ebp,edi
-        xor     eax,DWORD [16+esp]
-        rol     eax,1
-        add     esi,ebp
-        ror     ecx,2
-        mov     ebp,ebx
-        rol     ebp,5
-        mov     DWORD [28+esp],eax
-        lea     eax,[1859775393+esi*1+eax]
-        mov     esi,DWORD [32+esp]
-        add     eax,ebp
-        ; 20_39 24
-        mov     ebp,ebx
-        xor     esi,DWORD [40+esp]
-        xor     ebp,ecx
-        xor     esi,DWORD [esp]
-        xor     ebp,edx
-        xor     esi,DWORD [20+esp]
-        rol     esi,1
-        add     edi,ebp
-        ror     ebx,2
-        mov     ebp,eax
-        rol     ebp,5
-        mov     DWORD [32+esp],esi
-        lea     esi,[1859775393+edi*1+esi]
-        mov     edi,DWORD [36+esp]
-        add     esi,ebp
-        ; 20_39 25
-        mov     ebp,eax
-        xor     edi,DWORD [44+esp]
-        xor     ebp,ebx
-        xor     edi,DWORD [4+esp]
-        xor     ebp,ecx
-        xor     edi,DWORD [24+esp]
-        rol     edi,1
-        add     edx,ebp
-        ror     eax,2
-        mov     ebp,esi
-        rol     ebp,5
-        mov     DWORD [36+esp],edi
-        lea     edi,[1859775393+edx*1+edi]
-        mov     edx,DWORD [40+esp]
-        add     edi,ebp
-        ; 20_39 26
-        mov     ebp,esi
-        xor     edx,DWORD [48+esp]
-        xor     ebp,eax
-        xor     edx,DWORD [8+esp]
-        xor     ebp,ebx
-        xor     edx,DWORD [28+esp]
-        rol     edx,1
-        add     ecx,ebp
-        ror     esi,2
-        mov     ebp,edi
-        rol     ebp,5
-        mov     DWORD [40+esp],edx
-        lea     edx,[1859775393+ecx*1+edx]
-        mov     ecx,DWORD [44+esp]
-        add     edx,ebp
-        ; 20_39 27
-        mov     ebp,edi
-        xor     ecx,DWORD [52+esp]
-        xor     ebp,esi
-        xor     ecx,DWORD [12+esp]
-        xor     ebp,eax
-        xor     ecx,DWORD [32+esp]
-        rol     ecx,1
-        add     ebx,ebp
-        ror     edi,2
-        mov     ebp,edx
-        rol     ebp,5
-        mov     DWORD [44+esp],ecx
-        lea     ecx,[1859775393+ebx*1+ecx]
-        mov     ebx,DWORD [48+esp]
-        add     ecx,ebp
-        ; 20_39 28
-        mov     ebp,edx
-        xor     ebx,DWORD [56+esp]
-        xor     ebp,edi
-        xor     ebx,DWORD [16+esp]
-        xor     ebp,esi
-        xor     ebx,DWORD [36+esp]
-        rol     ebx,1
-        add     eax,ebp
-        ror     edx,2
-        mov     ebp,ecx
-        rol     ebp,5
-        mov     DWORD [48+esp],ebx
-        lea     ebx,[1859775393+eax*1+ebx]
-        mov     eax,DWORD [52+esp]
-        add     ebx,ebp
-        ; 20_39 29
-        mov     ebp,ecx
-        xor     eax,DWORD [60+esp]
-        xor     ebp,edx
-        xor     eax,DWORD [20+esp]
-        xor     ebp,edi
-        xor     eax,DWORD [40+esp]
-        rol     eax,1
-        add     esi,ebp
-        ror     ecx,2
-        mov     ebp,ebx
-        rol     ebp,5
-        mov     DWORD [52+esp],eax
-        lea     eax,[1859775393+esi*1+eax]
-        mov     esi,DWORD [56+esp]
-        add     eax,ebp
-        ; 20_39 30
-        mov     ebp,ebx
-        xor     esi,DWORD [esp]
-        xor     ebp,ecx
-        xor     esi,DWORD [24+esp]
-        xor     ebp,edx
-        xor     esi,DWORD [44+esp]
-        rol     esi,1
-        add     edi,ebp
-        ror     ebx,2
-        mov     ebp,eax
-        rol     ebp,5
-        mov     DWORD [56+esp],esi
-        lea     esi,[1859775393+edi*1+esi]
-        mov     edi,DWORD [60+esp]
-        add     esi,ebp
-        ; 20_39 31
-        mov     ebp,eax
-        xor     edi,DWORD [4+esp]
-        xor     ebp,ebx
-        xor     edi,DWORD [28+esp]
-        xor     ebp,ecx
-        xor     edi,DWORD [48+esp]
-        rol     edi,1
-        add     edx,ebp
-        ror     eax,2
-        mov     ebp,esi
-        rol     ebp,5
-        mov     DWORD [60+esp],edi
-        lea     edi,[1859775393+edx*1+edi]
-        mov     edx,DWORD [esp]
-        add     edi,ebp
-        ; 20_39 32
-        mov     ebp,esi
-        xor     edx,DWORD [8+esp]
-        xor     ebp,eax
-        xor     edx,DWORD [32+esp]
-        xor     ebp,ebx
-        xor     edx,DWORD [52+esp]
-        rol     edx,1
-        add     ecx,ebp
-        ror     esi,2
-        mov     ebp,edi
-        rol     ebp,5
-        mov     DWORD [esp],edx
-        lea     edx,[1859775393+ecx*1+edx]
-        mov     ecx,DWORD [4+esp]
-        add     edx,ebp
-        ; 20_39 33
-        mov     ebp,edi
-        xor     ecx,DWORD [12+esp]
-        xor     ebp,esi
-        xor     ecx,DWORD [36+esp]
-        xor     ebp,eax
-        xor     ecx,DWORD [56+esp]
-        rol     ecx,1
-        add     ebx,ebp
-        ror     edi,2
-        mov     ebp,edx
-        rol     ebp,5
-        mov     DWORD [4+esp],ecx
-        lea     ecx,[1859775393+ebx*1+ecx]
-        mov     ebx,DWORD [8+esp]
-        add     ecx,ebp
-        ; 20_39 34
-        mov     ebp,edx
-        xor     ebx,DWORD [16+esp]
-        xor     ebp,edi
-        xor     ebx,DWORD [40+esp]
-        xor     ebp,esi
-        xor     ebx,DWORD [60+esp]
-        rol     ebx,1
-        add     eax,ebp
-        ror     edx,2
-        mov     ebp,ecx
-        rol     ebp,5
-        mov     DWORD [8+esp],ebx
-        lea     ebx,[1859775393+eax*1+ebx]
-        mov     eax,DWORD [12+esp]
-        add     ebx,ebp
-        ; 20_39 35
-        mov     ebp,ecx
-        xor     eax,DWORD [20+esp]
-        xor     ebp,edx
-        xor     eax,DWORD [44+esp]
-        xor     ebp,edi
-        xor     eax,DWORD [esp]
-        rol     eax,1
-        add     esi,ebp
-        ror     ecx,2
-        mov     ebp,ebx
-        rol     ebp,5
-        mov     DWORD [12+esp],eax
-        lea     eax,[1859775393+esi*1+eax]
-        mov     esi,DWORD [16+esp]
-        add     eax,ebp
-        ; 20_39 36
-        mov     ebp,ebx
-        xor     esi,DWORD [24+esp]
-        xor     ebp,ecx
-        xor     esi,DWORD [48+esp]
-        xor     ebp,edx
-        xor     esi,DWORD [4+esp]
-        rol     esi,1
-        add     edi,ebp
-        ror     ebx,2
-        mov     ebp,eax
-        rol     ebp,5
-        mov     DWORD [16+esp],esi
-        lea     esi,[1859775393+edi*1+esi]
-        mov     edi,DWORD [20+esp]
-        add     esi,ebp
-        ; 20_39 37
-        mov     ebp,eax
-        xor     edi,DWORD [28+esp]
-        xor     ebp,ebx
-        xor     edi,DWORD [52+esp]
-        xor     ebp,ecx
-        xor     edi,DWORD [8+esp]
-        rol     edi,1
-        add     edx,ebp
-        ror     eax,2
-        mov     ebp,esi
-        rol     ebp,5
-        mov     DWORD [20+esp],edi
-        lea     edi,[1859775393+edx*1+edi]
-        mov     edx,DWORD [24+esp]
-        add     edi,ebp
-        ; 20_39 38
-        mov     ebp,esi
-        xor     edx,DWORD [32+esp]
-        xor     ebp,eax
-        xor     edx,DWORD [56+esp]
-        xor     ebp,ebx
-        xor     edx,DWORD [12+esp]
-        rol     edx,1
-        add     ecx,ebp
-        ror     esi,2
-        mov     ebp,edi
-        rol     ebp,5
-        mov     DWORD [24+esp],edx
-        lea     edx,[1859775393+ecx*1+edx]
-        mov     ecx,DWORD [28+esp]
-        add     edx,ebp
-        ; 20_39 39
-        mov     ebp,edi
-        xor     ecx,DWORD [36+esp]
-        xor     ebp,esi
-        xor     ecx,DWORD [60+esp]
-        xor     ebp,eax
-        xor     ecx,DWORD [16+esp]
-        rol     ecx,1
-        add     ebx,ebp
-        ror     edi,2
-        mov     ebp,edx
-        rol     ebp,5
-        mov     DWORD [28+esp],ecx
-        lea     ecx,[1859775393+ebx*1+ecx]
-        mov     ebx,DWORD [32+esp]
-        add     ecx,ebp
-        ; 40_59 40
-        mov     ebp,edi
-        xor     ebx,DWORD [40+esp]
-        xor     ebp,esi
-        xor     ebx,DWORD [esp]
-        and     ebp,edx
-        xor     ebx,DWORD [20+esp]
-        rol     ebx,1
-        add     ebp,eax
-        ror     edx,2
-        mov     eax,ecx
-        rol     eax,5
-        mov     DWORD [32+esp],ebx
-        lea     ebx,[2400959708+ebp*1+ebx]
-        mov     ebp,edi
-        add     ebx,eax
-        and     ebp,esi
-        mov     eax,DWORD [36+esp]
-        add     ebx,ebp
-        ; 40_59 41
-        mov     ebp,edx
-        xor     eax,DWORD [44+esp]
-        xor     ebp,edi
-        xor     eax,DWORD [4+esp]
-        and     ebp,ecx
-        xor     eax,DWORD [24+esp]
-        rol     eax,1
-        add     ebp,esi
-        ror     ecx,2
-        mov     esi,ebx
-        rol     esi,5
-        mov     DWORD [36+esp],eax
-        lea     eax,[2400959708+ebp*1+eax]
-        mov     ebp,edx
-        add     eax,esi
-        and     ebp,edi
-        mov     esi,DWORD [40+esp]
-        add     eax,ebp
-        ; 40_59 42
-        mov     ebp,ecx
-        xor     esi,DWORD [48+esp]
-        xor     ebp,edx
-        xor     esi,DWORD [8+esp]
-        and     ebp,ebx
-        xor     esi,DWORD [28+esp]
-        rol     esi,1
-        add     ebp,edi
-        ror     ebx,2
-        mov     edi,eax
-        rol     edi,5
-        mov     DWORD [40+esp],esi
-        lea     esi,[2400959708+ebp*1+esi]
-        mov     ebp,ecx
-        add     esi,edi
-        and     ebp,edx
-        mov     edi,DWORD [44+esp]
-        add     esi,ebp
-        ; 40_59 43
-        mov     ebp,ebx
-        xor     edi,DWORD [52+esp]
-        xor     ebp,ecx
-        xor     edi,DWORD [12+esp]
-        and     ebp,eax
-        xor     edi,DWORD [32+esp]
-        rol     edi,1
-        add     ebp,edx
-        ror     eax,2
-        mov     edx,esi
-        rol     edx,5
-        mov     DWORD [44+esp],edi
-        lea     edi,[2400959708+ebp*1+edi]
-        mov     ebp,ebx
-        add     edi,edx
-        and     ebp,ecx
-        mov     edx,DWORD [48+esp]
-        add     edi,ebp
-        ; 40_59 44
-        mov     ebp,eax
-        xor     edx,DWORD [56+esp]
-        xor     ebp,ebx
-        xor     edx,DWORD [16+esp]
-        and     ebp,esi
-        xor     edx,DWORD [36+esp]
-        rol     edx,1
-        add     ebp,ecx
-        ror     esi,2
-        mov     ecx,edi
-        rol     ecx,5
-        mov     DWORD [48+esp],edx
-        lea     edx,[2400959708+ebp*1+edx]
-        mov     ebp,eax
-        add     edx,ecx
-        and     ebp,ebx
-        mov     ecx,DWORD [52+esp]
-        add     edx,ebp
-        ; 40_59 45
-        mov     ebp,esi
-        xor     ecx,DWORD [60+esp]
-        xor     ebp,eax
-        xor     ecx,DWORD [20+esp]
-        and     ebp,edi
-        xor     ecx,DWORD [40+esp]
-        rol     ecx,1
-        add     ebp,ebx
-        ror     edi,2
-        mov     ebx,edx
-        rol     ebx,5
-        mov     DWORD [52+esp],ecx
-        lea     ecx,[2400959708+ebp*1+ecx]
-        mov     ebp,esi
-        add     ecx,ebx
-        and     ebp,eax
-        mov     ebx,DWORD [56+esp]
-        add     ecx,ebp
-        ; 40_59 46
-        mov     ebp,edi
-        xor     ebx,DWORD [esp]
-        xor     ebp,esi
-        xor     ebx,DWORD [24+esp]
-        and     ebp,edx
-        xor     ebx,DWORD [44+esp]
-        rol     ebx,1
-        add     ebp,eax
-        ror     edx,2
-        mov     eax,ecx
-        rol     eax,5
-        mov     DWORD [56+esp],ebx
-        lea     ebx,[2400959708+ebp*1+ebx]
-        mov     ebp,edi
-        add     ebx,eax
-        and     ebp,esi
-        mov     eax,DWORD [60+esp]
-        add     ebx,ebp
-        ; 40_59 47
-        mov     ebp,edx
-        xor     eax,DWORD [4+esp]
-        xor     ebp,edi
-        xor     eax,DWORD [28+esp]
-        and     ebp,ecx
-        xor     eax,DWORD [48+esp]
-        rol     eax,1
-        add     ebp,esi
-        ror     ecx,2
-        mov     esi,ebx
-        rol     esi,5
-        mov     DWORD [60+esp],eax
-        lea     eax,[2400959708+ebp*1+eax]
-        mov     ebp,edx
-        add     eax,esi
-        and     ebp,edi
-        mov     esi,DWORD [esp]
-        add     eax,ebp
-        ; 40_59 48
-        mov     ebp,ecx
-        xor     esi,DWORD [8+esp]
-        xor     ebp,edx
-        xor     esi,DWORD [32+esp]
-        and     ebp,ebx
-        xor     esi,DWORD [52+esp]
-        rol     esi,1
-        add     ebp,edi
-        ror     ebx,2
-        mov     edi,eax
-        rol     edi,5
-        mov     DWORD [esp],esi
-        lea     esi,[2400959708+ebp*1+esi]
-        mov     ebp,ecx
-        add     esi,edi
-        and     ebp,edx
-        mov     edi,DWORD [4+esp]
-        add     esi,ebp
-        ; 40_59 49
-        mov     ebp,ebx
-        xor     edi,DWORD [12+esp]
-        xor     ebp,ecx
-        xor     edi,DWORD [36+esp]
-        and     ebp,eax
-        xor     edi,DWORD [56+esp]
-        rol     edi,1
-        add     ebp,edx
-        ror     eax,2
-        mov     edx,esi
-        rol     edx,5
-        mov     DWORD [4+esp],edi
-        lea     edi,[2400959708+ebp*1+edi]
-        mov     ebp,ebx
-        add     edi,edx
-        and     ebp,ecx
-        mov     edx,DWORD [8+esp]
-        add     edi,ebp
-        ; 40_59 50
-        mov     ebp,eax
-        xor     edx,DWORD [16+esp]
-        xor     ebp,ebx
-        xor     edx,DWORD [40+esp]
-        and     ebp,esi
-        xor     edx,DWORD [60+esp]
-        rol     edx,1
-        add     ebp,ecx
-        ror     esi,2
-        mov     ecx,edi
-        rol     ecx,5
-        mov     DWORD [8+esp],edx
-        lea     edx,[2400959708+ebp*1+edx]
-        mov     ebp,eax
-        add     edx,ecx
-        and     ebp,ebx
-        mov     ecx,DWORD [12+esp]
-        add     edx,ebp
-        ; 40_59 51
-        mov     ebp,esi
-        xor     ecx,DWORD [20+esp]
-        xor     ebp,eax
-        xor     ecx,DWORD [44+esp]
-        and     ebp,edi
-        xor     ecx,DWORD [esp]
-        rol     ecx,1
-        add     ebp,ebx
-        ror     edi,2
-        mov     ebx,edx
-        rol     ebx,5
-        mov     DWORD [12+esp],ecx
-        lea     ecx,[2400959708+ebp*1+ecx]
-        mov     ebp,esi
-        add     ecx,ebx
-        and     ebp,eax
-        mov     ebx,DWORD [16+esp]
-        add     ecx,ebp
-        ; 40_59 52
-        mov     ebp,edi
-        xor     ebx,DWORD [24+esp]
-        xor     ebp,esi
-        xor     ebx,DWORD [48+esp]
-        and     ebp,edx
-        xor     ebx,DWORD [4+esp]
-        rol     ebx,1
-        add     ebp,eax
-        ror     edx,2
-        mov     eax,ecx
-        rol     eax,5
-        mov     DWORD [16+esp],ebx
-        lea     ebx,[2400959708+ebp*1+ebx]
-        mov     ebp,edi
-        add     ebx,eax
-        and     ebp,esi
-        mov     eax,DWORD [20+esp]
-        add     ebx,ebp
-        ; 40_59 53
-        mov     ebp,edx
-        xor     eax,DWORD [28+esp]
-        xor     ebp,edi
-        xor     eax,DWORD [52+esp]
-        and     ebp,ecx
-        xor     eax,DWORD [8+esp]
-        rol     eax,1
-        add     ebp,esi
-        ror     ecx,2
-        mov     esi,ebx
-        rol     esi,5
-        mov     DWORD [20+esp],eax
-        lea     eax,[2400959708+ebp*1+eax]
-        mov     ebp,edx
-        add     eax,esi
-        and     ebp,edi
-        mov     esi,DWORD [24+esp]
-        add     eax,ebp
-        ; 40_59 54
-        mov     ebp,ecx
-        xor     esi,DWORD [32+esp]
-        xor     ebp,edx
-        xor     esi,DWORD [56+esp]
-        and     ebp,ebx
-        xor     esi,DWORD [12+esp]
-        rol     esi,1
-        add     ebp,edi
-        ror     ebx,2
-        mov     edi,eax
-        rol     edi,5
-        mov     DWORD [24+esp],esi
-        lea     esi,[2400959708+ebp*1+esi]
-        mov     ebp,ecx
-        add     esi,edi
-        and     ebp,edx
-        mov     edi,DWORD [28+esp]
-        add     esi,ebp
-        ; 40_59 55
-        mov     ebp,ebx
-        xor     edi,DWORD [36+esp]
-        xor     ebp,ecx
-        xor     edi,DWORD [60+esp]
-        and     ebp,eax
-        xor     edi,DWORD [16+esp]
-        rol     edi,1
-        add     ebp,edx
-        ror     eax,2
-        mov     edx,esi
-        rol     edx,5
-        mov     DWORD [28+esp],edi
-        lea     edi,[2400959708+ebp*1+edi]
-        mov     ebp,ebx
-        add     edi,edx
-        and     ebp,ecx
-        mov     edx,DWORD [32+esp]
-        add     edi,ebp
-        ; 40_59 56
-        mov     ebp,eax
-        xor     edx,DWORD [40+esp]
-        xor     ebp,ebx
-        xor     edx,DWORD [esp]
-        and     ebp,esi
-        xor     edx,DWORD [20+esp]
-        rol     edx,1
-        add     ebp,ecx
-        ror     esi,2
-        mov     ecx,edi
-        rol     ecx,5
-        mov     DWORD [32+esp],edx
-        lea     edx,[2400959708+ebp*1+edx]
-        mov     ebp,eax
-        add     edx,ecx
-        and     ebp,ebx
-        mov     ecx,DWORD [36+esp]
-        add     edx,ebp
-        ; 40_59 57
-        mov     ebp,esi
-        xor     ecx,DWORD [44+esp]
-        xor     ebp,eax
-        xor     ecx,DWORD [4+esp]
-        and     ebp,edi
-        xor     ecx,DWORD [24+esp]
-        rol     ecx,1
-        add     ebp,ebx
-        ror     edi,2
-        mov     ebx,edx
-        rol     ebx,5
-        mov     DWORD [36+esp],ecx
-        lea     ecx,[2400959708+ebp*1+ecx]
-        mov     ebp,esi
-        add     ecx,ebx
-        and     ebp,eax
-        mov     ebx,DWORD [40+esp]
-        add     ecx,ebp
-        ; 40_59 58
-        mov     ebp,edi
-        xor     ebx,DWORD [48+esp]
-        xor     ebp,esi
-        xor     ebx,DWORD [8+esp]
-        and     ebp,edx
-        xor     ebx,DWORD [28+esp]
-        rol     ebx,1
-        add     ebp,eax
-        ror     edx,2
-        mov     eax,ecx
-        rol     eax,5
-        mov     DWORD [40+esp],ebx
-        lea     ebx,[2400959708+ebp*1+ebx]
-        mov     ebp,edi
-        add     ebx,eax
-        and     ebp,esi
-        mov     eax,DWORD [44+esp]
-        add     ebx,ebp
-        ; 40_59 59
-        mov     ebp,edx
-        xor     eax,DWORD [52+esp]
-        xor     ebp,edi
-        xor     eax,DWORD [12+esp]
-        and     ebp,ecx
-        xor     eax,DWORD [32+esp]
-        rol     eax,1
-        add     ebp,esi
-        ror     ecx,2
-        mov     esi,ebx
-        rol     esi,5
-        mov     DWORD [44+esp],eax
-        lea     eax,[2400959708+ebp*1+eax]
-        mov     ebp,edx
-        add     eax,esi
-        and     ebp,edi
-        mov     esi,DWORD [48+esp]
-        add     eax,ebp
-        ; 20_39 60
-        mov     ebp,ebx
-        xor     esi,DWORD [56+esp]
-        xor     ebp,ecx
-        xor     esi,DWORD [16+esp]
-        xor     ebp,edx
-        xor     esi,DWORD [36+esp]
-        rol     esi,1
-        add     edi,ebp
-        ror     ebx,2
-        mov     ebp,eax
-        rol     ebp,5
-        mov     DWORD [48+esp],esi
-        lea     esi,[3395469782+edi*1+esi]
-        mov     edi,DWORD [52+esp]
-        add     esi,ebp
-        ; 20_39 61
-        mov     ebp,eax
-        xor     edi,DWORD [60+esp]
-        xor     ebp,ebx
-        xor     edi,DWORD [20+esp]
-        xor     ebp,ecx
-        xor     edi,DWORD [40+esp]
-        rol     edi,1
-        add     edx,ebp
-        ror     eax,2
-        mov     ebp,esi
-        rol     ebp,5
-        mov     DWORD [52+esp],edi
-        lea     edi,[3395469782+edx*1+edi]
-        mov     edx,DWORD [56+esp]
-        add     edi,ebp
-        ; 20_39 62
-        mov     ebp,esi
-        xor     edx,DWORD [esp]
-        xor     ebp,eax
-        xor     edx,DWORD [24+esp]
-        xor     ebp,ebx
-        xor     edx,DWORD [44+esp]
-        rol     edx,1
-        add     ecx,ebp
-        ror     esi,2
-        mov     ebp,edi
-        rol     ebp,5
-        mov     DWORD [56+esp],edx
-        lea     edx,[3395469782+ecx*1+edx]
-        mov     ecx,DWORD [60+esp]
-        add     edx,ebp
-        ; 20_39 63
-        mov     ebp,edi
-        xor     ecx,DWORD [4+esp]
-        xor     ebp,esi
-        xor     ecx,DWORD [28+esp]
-        xor     ebp,eax
-        xor     ecx,DWORD [48+esp]
-        rol     ecx,1
-        add     ebx,ebp
-        ror     edi,2
-        mov     ebp,edx
-        rol     ebp,5
-        mov     DWORD [60+esp],ecx
-        lea     ecx,[3395469782+ebx*1+ecx]
-        mov     ebx,DWORD [esp]
-        add     ecx,ebp
-        ; 20_39 64
-        mov     ebp,edx
-        xor     ebx,DWORD [8+esp]
-        xor     ebp,edi
-        xor     ebx,DWORD [32+esp]
-        xor     ebp,esi
-        xor     ebx,DWORD [52+esp]
-        rol     ebx,1
-        add     eax,ebp
-        ror     edx,2
-        mov     ebp,ecx
-        rol     ebp,5
-        mov     DWORD [esp],ebx
-        lea     ebx,[3395469782+eax*1+ebx]
-        mov     eax,DWORD [4+esp]
-        add     ebx,ebp
-        ; 20_39 65
-        mov     ebp,ecx
-        xor     eax,DWORD [12+esp]
-        xor     ebp,edx
-        xor     eax,DWORD [36+esp]
-        xor     ebp,edi
-        xor     eax,DWORD [56+esp]
-        rol     eax,1
-        add     esi,ebp
-        ror     ecx,2
-        mov     ebp,ebx
-        rol     ebp,5
-        mov     DWORD [4+esp],eax
-        lea     eax,[3395469782+esi*1+eax]
-        mov     esi,DWORD [8+esp]
-        add     eax,ebp
-        ; 20_39 66
-        mov     ebp,ebx
-        xor     esi,DWORD [16+esp]
-        xor     ebp,ecx
-        xor     esi,DWORD [40+esp]
-        xor     ebp,edx
-        xor     esi,DWORD [60+esp]
-        rol     esi,1
-        add     edi,ebp
-        ror     ebx,2
-        mov     ebp,eax
-        rol     ebp,5
-        mov     DWORD [8+esp],esi
-        lea     esi,[3395469782+edi*1+esi]
-        mov     edi,DWORD [12+esp]
-        add     esi,ebp
-        ; 20_39 67
-        mov     ebp,eax
-        xor     edi,DWORD [20+esp]
-        xor     ebp,ebx
-        xor     edi,DWORD [44+esp]
-        xor     ebp,ecx
-        xor     edi,DWORD [esp]
-        rol     edi,1
-        add     edx,ebp
-        ror     eax,2
-        mov     ebp,esi
-        rol     ebp,5
-        mov     DWORD [12+esp],edi
-        lea     edi,[3395469782+edx*1+edi]
-        mov     edx,DWORD [16+esp]
-        add     edi,ebp
-        ; 20_39 68
-        mov     ebp,esi
-        xor     edx,DWORD [24+esp]
-        xor     ebp,eax
-        xor     edx,DWORD [48+esp]
-        xor     ebp,ebx
-        xor     edx,DWORD [4+esp]
-        rol     edx,1
-        add     ecx,ebp
-        ror     esi,2
-        mov     ebp,edi
-        rol     ebp,5
-        mov     DWORD [16+esp],edx
-        lea     edx,[3395469782+ecx*1+edx]
-        mov     ecx,DWORD [20+esp]
-        add     edx,ebp
-        ; 20_39 69
-        mov     ebp,edi
-        xor     ecx,DWORD [28+esp]
-        xor     ebp,esi
-        xor     ecx,DWORD [52+esp]
-        xor     ebp,eax
-        xor     ecx,DWORD [8+esp]
-        rol     ecx,1
-        add     ebx,ebp
-        ror     edi,2
-        mov     ebp,edx
-        rol     ebp,5
-        mov     DWORD [20+esp],ecx
-        lea     ecx,[3395469782+ebx*1+ecx]
-        mov     ebx,DWORD [24+esp]
-        add     ecx,ebp
-        ; 20_39 70
-        mov     ebp,edx
-        xor     ebx,DWORD [32+esp]
-        xor     ebp,edi
-        xor     ebx,DWORD [56+esp]
-        xor     ebp,esi
-        xor     ebx,DWORD [12+esp]
-        rol     ebx,1
-        add     eax,ebp
-        ror     edx,2
-        mov     ebp,ecx
-        rol     ebp,5
-        mov     DWORD [24+esp],ebx
-        lea     ebx,[3395469782+eax*1+ebx]
-        mov     eax,DWORD [28+esp]
-        add     ebx,ebp
-        ; 20_39 71
-        mov     ebp,ecx
-        xor     eax,DWORD [36+esp]
-        xor     ebp,edx
-        xor     eax,DWORD [60+esp]
-        xor     ebp,edi
-        xor     eax,DWORD [16+esp]
-        rol     eax,1
-        add     esi,ebp
-        ror     ecx,2
-        mov     ebp,ebx
-        rol     ebp,5
-        mov     DWORD [28+esp],eax
-        lea     eax,[3395469782+esi*1+eax]
-        mov     esi,DWORD [32+esp]
-        add     eax,ebp
-        ; 20_39 72
-        mov     ebp,ebx
-        xor     esi,DWORD [40+esp]
-        xor     ebp,ecx
-        xor     esi,DWORD [esp]
-        xor     ebp,edx
-        xor     esi,DWORD [20+esp]
-        rol     esi,1
-        add     edi,ebp
-        ror     ebx,2
-        mov     ebp,eax
-        rol     ebp,5
-        mov     DWORD [32+esp],esi
-        lea     esi,[3395469782+edi*1+esi]
-        mov     edi,DWORD [36+esp]
-        add     esi,ebp
-        ; 20_39 73
-        mov     ebp,eax
-        xor     edi,DWORD [44+esp]
-        xor     ebp,ebx
-        xor     edi,DWORD [4+esp]
-        xor     ebp,ecx
-        xor     edi,DWORD [24+esp]
-        rol     edi,1
-        add     edx,ebp
-        ror     eax,2
-        mov     ebp,esi
-        rol     ebp,5
-        mov     DWORD [36+esp],edi
-        lea     edi,[3395469782+edx*1+edi]
-        mov     edx,DWORD [40+esp]
-        add     edi,ebp
-        ; 20_39 74
-        mov     ebp,esi
-        xor     edx,DWORD [48+esp]
-        xor     ebp,eax
-        xor     edx,DWORD [8+esp]
-        xor     ebp,ebx
-        xor     edx,DWORD [28+esp]
-        rol     edx,1
-        add     ecx,ebp
-        ror     esi,2
-        mov     ebp,edi
-        rol     ebp,5
-        mov     DWORD [40+esp],edx
-        lea     edx,[3395469782+ecx*1+edx]
-        mov     ecx,DWORD [44+esp]
-        add     edx,ebp
-        ; 20_39 75
-        mov     ebp,edi
-        xor     ecx,DWORD [52+esp]
-        xor     ebp,esi
-        xor     ecx,DWORD [12+esp]
-        xor     ebp,eax
-        xor     ecx,DWORD [32+esp]
-        rol     ecx,1
-        add     ebx,ebp
-        ror     edi,2
-        mov     ebp,edx
-        rol     ebp,5
-        mov     DWORD [44+esp],ecx
-        lea     ecx,[3395469782+ebx*1+ecx]
-        mov     ebx,DWORD [48+esp]
-        add     ecx,ebp
-        ; 20_39 76
-        mov     ebp,edx
-        xor     ebx,DWORD [56+esp]
-        xor     ebp,edi
-        xor     ebx,DWORD [16+esp]
-        xor     ebp,esi
-        xor     ebx,DWORD [36+esp]
-        rol     ebx,1
-        add     eax,ebp
-        ror     edx,2
-        mov     ebp,ecx
-        rol     ebp,5
-        mov     DWORD [48+esp],ebx
-        lea     ebx,[3395469782+eax*1+ebx]
-        mov     eax,DWORD [52+esp]
-        add     ebx,ebp
-        ; 20_39 77
-        mov     ebp,ecx
-        xor     eax,DWORD [60+esp]
-        xor     ebp,edx
-        xor     eax,DWORD [20+esp]
-        xor     ebp,edi
-        xor     eax,DWORD [40+esp]
-        rol     eax,1
-        add     esi,ebp
-        ror     ecx,2
-        mov     ebp,ebx
-        rol     ebp,5
-        lea     eax,[3395469782+esi*1+eax]
-        mov     esi,DWORD [56+esp]
-        add     eax,ebp
-        ; 20_39 78
-        mov     ebp,ebx
-        xor     esi,DWORD [esp]
-        xor     ebp,ecx
-        xor     esi,DWORD [24+esp]
-        xor     ebp,edx
-        xor     esi,DWORD [44+esp]
-        rol     esi,1
-        add     edi,ebp
-        ror     ebx,2
-        mov     ebp,eax
-        rol     ebp,5
-        lea     esi,[3395469782+edi*1+esi]
-        mov     edi,DWORD [60+esp]
-        add     esi,ebp
-        ; 20_39 79
-        mov     ebp,eax
-        xor     edi,DWORD [4+esp]
-        xor     ebp,ebx
-        xor     edi,DWORD [28+esp]
-        xor     ebp,ecx
-        xor     edi,DWORD [48+esp]
-        rol     edi,1
-        add     edx,ebp
-        ror     eax,2
-        mov     ebp,esi
-        rol     ebp,5
-        lea     edi,[3395469782+edx*1+edi]
-        add     edi,ebp
-        mov     ebp,DWORD [96+esp]
-        mov     edx,DWORD [100+esp]
-        add     edi,DWORD [ebp]
-        add     esi,DWORD [4+ebp]
-        add     eax,DWORD [8+ebp]
-        add     ebx,DWORD [12+ebp]
-        add     ecx,DWORD [16+ebp]
-        mov     DWORD [ebp],edi
-        add     edx,64
-        mov     DWORD [4+ebp],esi
-        cmp     edx,DWORD [104+esp]
-        mov     DWORD [8+ebp],eax
-        mov     edi,ecx
-        mov     DWORD [12+ebp],ebx
-        mov     esi,edx
-        mov     DWORD [16+ebp],ecx
-        jb      NEAR L$000loop
-        add     esp,76
-        pop     edi
-        pop     esi
-        pop     ebx
-        pop     ebp
-        ret
-db      83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115
-db      102,111,114,109,32,102,111,114,32,120,56,54,44,32,67,82
-db      89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112
-db      114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
diff --git a/CryptoPkg/Library/OpensslLib/IA32/crypto/sha/sha256-586.nasm b/CryptoPkg/Library/OpensslLib/IA32/crypto/sha/sha256-586.nasm
deleted file mode 100644
index 4598dae75a8b..000000000000
--- a/CryptoPkg/Library/OpensslLib/IA32/crypto/sha/sha256-586.nasm
+++ /dev/null
@@ -1,3364 +0,0 @@
-; WARNING: do not edit!
-; Generated from openssl/crypto/sha/asm/sha256-586.pl
-;
-; Copyright 2007-2020 The OpenSSL Project Authors. All Rights Reserved.
-;
-; Licensed under the OpenSSL license (the "License").  You may not use
-; this file except in compliance with the License.  You can obtain a copy
-; in the file LICENSE in the source distribution or at
-; https://www.openssl.org/source/license.html
-
-%ifidn __OUTPUT_FORMAT__,obj
-section code    use32 class=code align=64
-%elifidn __OUTPUT_FORMAT__,win32
-$@feat.00 equ 1
-section .text   code align=64
-%else
-section .text   code
-%endif
-;extern _OPENSSL_ia32cap_P
-global  _sha256_block_data_order
-align   16
-_sha256_block_data_order:
-L$_sha256_block_data_order_begin:
-        push    ebp
-        push    ebx
-        push    esi
-        push    edi
-        mov     esi,DWORD [20+esp]
-        mov     edi,DWORD [24+esp]
-        mov     eax,DWORD [28+esp]
-        mov     ebx,esp
-        call    L$000pic_point
-L$000pic_point:
-        pop     ebp
-        lea     ebp,[(L$001K256-L$000pic_point)+ebp]
-        sub     esp,16
-        and     esp,-64
-        shl     eax,6
-        add     eax,edi
-        mov     DWORD [esp],esi
-        mov     DWORD [4+esp],edi
-        mov     DWORD [8+esp],eax
-        mov     DWORD [12+esp],ebx
-        jmp     NEAR L$002loop
-align   16
-L$002loop:
-        mov     eax,DWORD [edi]
-        mov     ebx,DWORD [4+edi]
-        mov     ecx,DWORD [8+edi]
-        bswap   eax
-        mov     edx,DWORD [12+edi]
-        bswap   ebx
-        push    eax
-        bswap   ecx
-        push    ebx
-        bswap   edx
-        push    ecx
-        push    edx
-        mov     eax,DWORD [16+edi]
-        mov     ebx,DWORD [20+edi]
-        mov     ecx,DWORD [24+edi]
-        bswap   eax
-        mov     edx,DWORD [28+edi]
-        bswap   ebx
-        push    eax
-        bswap   ecx
-        push    ebx
-        bswap   edx
-        push    ecx
-        push    edx
-        mov     eax,DWORD [32+edi]
-        mov     ebx,DWORD [36+edi]
-        mov     ecx,DWORD [40+edi]
-        bswap   eax
-        mov     edx,DWORD [44+edi]
-        bswap   ebx
-        push    eax
-        bswap   ecx
-        push    ebx
-        bswap   edx
-        push    ecx
-        push    edx
-        mov     eax,DWORD [48+edi]
-        mov     ebx,DWORD [52+edi]
-        mov     ecx,DWORD [56+edi]
-        bswap   eax
-        mov     edx,DWORD [60+edi]
-        bswap   ebx
-        push    eax
-        bswap   ecx
-        push    ebx
-        bswap   edx
-        push    ecx
-        push    edx
-        add     edi,64
-        lea     esp,[esp-36]
-        mov     DWORD [104+esp],edi
-        mov     eax,DWORD [esi]
-        mov     ebx,DWORD [4+esi]
-        mov     ecx,DWORD [8+esi]
-        mov     edi,DWORD [12+esi]
-        mov     DWORD [8+esp],ebx
-        xor     ebx,ecx
-        mov     DWORD [12+esp],ecx
-        mov     DWORD [16+esp],edi
-        mov     DWORD [esp],ebx
-        mov     edx,DWORD [16+esi]
-        mov     ebx,DWORD [20+esi]
-        mov     ecx,DWORD [24+esi]
-        mov     edi,DWORD [28+esi]
-        mov     DWORD [24+esp],ebx
-        mov     DWORD [28+esp],ecx
-        mov     DWORD [32+esp],edi
-align   16
-L$00300_15:
-        mov     ecx,edx
-        mov     esi,DWORD [24+esp]
-        ror     ecx,14
-        mov     edi,DWORD [28+esp]
-        xor     ecx,edx
-        xor     esi,edi
-        mov     ebx,DWORD [96+esp]
-        ror     ecx,5
-        and     esi,edx
-        mov     DWORD [20+esp],edx
-        xor     edx,ecx
-        add     ebx,DWORD [32+esp]
-        xor     esi,edi
-        ror     edx,6
-        mov     ecx,eax
-        add     ebx,esi
-        ror     ecx,9
-        add     ebx,edx
-        mov     edi,DWORD [8+esp]
-        xor     ecx,eax
-        mov     DWORD [4+esp],eax
-        lea     esp,[esp-4]
-        ror     ecx,11
-        mov     esi,DWORD [ebp]
-        xor     ecx,eax
-        mov     edx,DWORD [20+esp]
-        xor     eax,edi
-        ror     ecx,2
-        add     ebx,esi
-        mov     DWORD [esp],eax
-        add     edx,ebx
-        and     eax,DWORD [4+esp]
-        add     ebx,ecx
-        xor     eax,edi
-        add     ebp,4
-        add     eax,ebx
-        cmp     esi,3248222580
-        jne     NEAR L$00300_15
-        mov     ecx,DWORD [156+esp]
-        jmp     NEAR L$00416_63
-align   16
-L$00416_63:
-        mov     ebx,ecx
-        mov     esi,DWORD [104+esp]
-        ror     ecx,11
-        mov     edi,esi
-        ror     esi,2
-        xor     ecx,ebx
-        shr     ebx,3
-        ror     ecx,7
-        xor     esi,edi
-        xor     ebx,ecx
-        ror     esi,17
-        add     ebx,DWORD [160+esp]
-        shr     edi,10
-        add     ebx,DWORD [124+esp]
-        mov     ecx,edx
-        xor     edi,esi
-        mov     esi,DWORD [24+esp]
-        ror     ecx,14
-        add     ebx,edi
-        mov     edi,DWORD [28+esp]
-        xor     ecx,edx
-        xor     esi,edi
-        mov     DWORD [96+esp],ebx
-        ror     ecx,5
-        and     esi,edx
-        mov     DWORD [20+esp],edx
-        xor     edx,ecx
-        add     ebx,DWORD [32+esp]
-        xor     esi,edi
-        ror     edx,6
-        mov     ecx,eax
-        add     ebx,esi
-        ror     ecx,9
-        add     ebx,edx
-        mov     edi,DWORD [8+esp]
-        xor     ecx,eax
-        mov     DWORD [4+esp],eax
-        lea     esp,[esp-4]
-        ror     ecx,11
-        mov     esi,DWORD [ebp]
-        xor     ecx,eax
-        mov     edx,DWORD [20+esp]
-        xor     eax,edi
-        ror     ecx,2
-        add     ebx,esi
-        mov     DWORD [esp],eax
-        add     edx,ebx
-        and     eax,DWORD [4+esp]
-        add     ebx,ecx
-        xor     eax,edi
-        mov     ecx,DWORD [156+esp]
-        add     ebp,4
-        add     eax,ebx
-        cmp     esi,3329325298
-        jne     NEAR L$00416_63
-        mov     esi,DWORD [356+esp]
-        mov     ebx,DWORD [8+esp]
-        mov     ecx,DWORD [16+esp]
-        add     eax,DWORD [esi]
-        add     ebx,DWORD [4+esi]
-        add     edi,DWORD [8+esi]
-        add     ecx,DWORD [12+esi]
-        mov     DWORD [esi],eax
-        mov     DWORD [4+esi],ebx
-        mov     DWORD [8+esi],edi
-        mov     DWORD [12+esi],ecx
-        mov     eax,DWORD [24+esp]
-        mov     ebx,DWORD [28+esp]
-        mov     ecx,DWORD [32+esp]
-        mov     edi,DWORD [360+esp]
-        add     edx,DWORD [16+esi]
-        add     eax,DWORD [20+esi]
-        add     ebx,DWORD [24+esi]
-        add     ecx,DWORD [28+esi]
-        mov     DWORD [16+esi],edx
-        mov     DWORD [20+esi],eax
-        mov     DWORD [24+esi],ebx
-        mov     DWORD [28+esi],ecx
-        lea     esp,[356+esp]
-        sub     ebp,256
-        cmp     edi,DWORD [8+esp]
-        jb      NEAR L$002loop
-        mov     esp,DWORD [12+esp]
-        pop     edi
-        pop     esi
-        pop     ebx
-        pop     ebp
-        ret
-align   32
-L$005loop_shrd:
-        mov     eax,DWORD [edi]
-        mov     ebx,DWORD [4+edi]
-        mov     ecx,DWORD [8+edi]
-        bswap   eax
-        mov     edx,DWORD [12+edi]
-        bswap   ebx
-        push    eax
-        bswap   ecx
-        push    ebx
-        bswap   edx
-        push    ecx
-        push    edx
-        mov     eax,DWORD [16+edi]
-        mov     ebx,DWORD [20+edi]
-        mov     ecx,DWORD [24+edi]
-        bswap   eax
-        mov     edx,DWORD [28+edi]
-        bswap   ebx
-        push    eax
-        bswap   ecx
-        push    ebx
-        bswap   edx
-        push    ecx
-        push    edx
-        mov     eax,DWORD [32+edi]
-        mov     ebx,DWORD [36+edi]
-        mov     ecx,DWORD [40+edi]
-        bswap   eax
-        mov     edx,DWORD [44+edi]
-        bswap   ebx
-        push    eax
-        bswap   ecx
-        push    ebx
-        bswap   edx
-        push    ecx
-        push    edx
-        mov     eax,DWORD [48+edi]
-        mov     ebx,DWORD [52+edi]
-        mov     ecx,DWORD [56+edi]
-        bswap   eax
-        mov     edx,DWORD [60+edi]
-        bswap   ebx
-        push    eax
-        bswap   ecx
-        push    ebx
-        bswap   edx
-        push    ecx
-        push    edx
-        add     edi,64
-        lea     esp,[esp-36]
-        mov     DWORD [104+esp],edi
-        mov     eax,DWORD [esi]
-        mov     ebx,DWORD [4+esi]
-        mov     ecx,DWORD [8+esi]
-        mov     edi,DWORD [12+esi]
-        mov     DWORD [8+esp],ebx
-        xor     ebx,ecx
-        mov     DWORD [12+esp],ecx
-        mov     DWORD [16+esp],edi
-        mov     DWORD [esp],ebx
-        mov     edx,DWORD [16+esi]
-        mov     ebx,DWORD [20+esi]
-        mov     ecx,DWORD [24+esi]
-        mov     edi,DWORD [28+esi]
-        mov     DWORD [24+esp],ebx
-        mov     DWORD [28+esp],ecx
-        mov     DWORD [32+esp],edi
-align   16
-L$00600_15_shrd:
-        mov     ecx,edx
-        mov     esi,DWORD [24+esp]
-        shrd    ecx,ecx,14
-        mov     edi,DWORD [28+esp]
-        xor     ecx,edx
-        xor     esi,edi
-        mov     ebx,DWORD [96+esp]
-        shrd    ecx,ecx,5
-        and     esi,edx
-        mov     DWORD [20+esp],edx
-        xor     edx,ecx
-        add     ebx,DWORD [32+esp]
-        xor     esi,edi
-        shrd    edx,edx,6
-        mov     ecx,eax
-        add     ebx,esi
-        shrd    ecx,ecx,9
-        add     ebx,edx
-        mov     edi,DWORD [8+esp]
-        xor     ecx,eax
-        mov     DWORD [4+esp],eax
-        lea     esp,[esp-4]
-        shrd    ecx,ecx,11
-        mov     esi,DWORD [ebp]
-        xor     ecx,eax
-        mov     edx,DWORD [20+esp]
-        xor     eax,edi
-        shrd    ecx,ecx,2
-        add     ebx,esi
-        mov     DWORD [esp],eax
-        add     edx,ebx
-        and     eax,DWORD [4+esp]
-        add     ebx,ecx
-        xor     eax,edi
-        add     ebp,4
-        add     eax,ebx
-        cmp     esi,3248222580
-        jne     NEAR L$00600_15_shrd
-        mov     ecx,DWORD [156+esp]
-        jmp     NEAR L$00716_63_shrd
-align   16
-L$00716_63_shrd:
-        mov     ebx,ecx
-        mov     esi,DWORD [104+esp]
-        shrd    ecx,ecx,11
-        mov     edi,esi
-        shrd    esi,esi,2
-        xor     ecx,ebx
-        shr     ebx,3
-        shrd    ecx,ecx,7
-        xor     esi,edi
-        xor     ebx,ecx
-        shrd    esi,esi,17
-        add     ebx,DWORD [160+esp]
-        shr     edi,10
-        add     ebx,DWORD [124+esp]
-        mov     ecx,edx
-        xor     edi,esi
-        mov     esi,DWORD [24+esp]
-        shrd    ecx,ecx,14
-        add     ebx,edi
-        mov     edi,DWORD [28+esp]
-        xor     ecx,edx
-        xor     esi,edi
-        mov     DWORD [96+esp],ebx
-        shrd    ecx,ecx,5
-        and     esi,edx
-        mov     DWORD [20+esp],edx
-        xor     edx,ecx
-        add     ebx,DWORD [32+esp]
-        xor     esi,edi
-        shrd    edx,edx,6
-        mov     ecx,eax
-        add     ebx,esi
-        shrd    ecx,ecx,9
-        add     ebx,edx
-        mov     edi,DWORD [8+esp]
-        xor     ecx,eax
-        mov     DWORD [4+esp],eax
-        lea     esp,[esp-4]
-        shrd    ecx,ecx,11
-        mov     esi,DWORD [ebp]
-        xor     ecx,eax
-        mov     edx,DWORD [20+esp]
-        xor     eax,edi
-        shrd    ecx,ecx,2
-        add     ebx,esi
-        mov     DWORD [esp],eax
-        add     edx,ebx
-        and     eax,DWORD [4+esp]
-        add     ebx,ecx
-        xor     eax,edi
-        mov     ecx,DWORD [156+esp]
-        add     ebp,4
-        add     eax,ebx
-        cmp     esi,3329325298
-        jne     NEAR L$00716_63_shrd
-        mov     esi,DWORD [356+esp]
-        mov     ebx,DWORD [8+esp]
-        mov     ecx,DWORD [16+esp]
-        add     eax,DWORD [esi]
-        add     ebx,DWORD [4+esi]
-        add     edi,DWORD [8+esi]
-        add     ecx,DWORD [12+esi]
-        mov     DWORD [esi],eax
-        mov     DWORD [4+esi],ebx
-        mov     DWORD [8+esi],edi
-        mov     DWORD [12+esi],ecx
-        mov     eax,DWORD [24+esp]
-        mov     ebx,DWORD [28+esp]
-        mov     ecx,DWORD [32+esp]
-        mov     edi,DWORD [360+esp]
-        add     edx,DWORD [16+esi]
-        add     eax,DWORD [20+esi]
-        add     ebx,DWORD [24+esi]
-        add     ecx,DWORD [28+esi]
-        mov     DWORD [16+esi],edx
-        mov     DWORD [20+esi],eax
-        mov     DWORD [24+esi],ebx
-        mov     DWORD [28+esi],ecx
-        lea     esp,[356+esp]
-        sub     ebp,256
-        cmp     edi,DWORD [8+esp]
-        jb      NEAR L$005loop_shrd
-        mov     esp,DWORD [12+esp]
-        pop     edi
-        pop     esi
-        pop     ebx
-        pop     ebp
-        ret
-align   64
-L$001K256:
-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
-dd      66051,67438087,134810123,202182159
-db      83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97
-db      110,115,102,111,114,109,32,102,111,114,32,120,56,54,44,32
-db      67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97
-db      112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103
-db      62,0
-align   16
-L$008unrolled:
-        lea     esp,[esp-96]
-        mov     eax,DWORD [esi]
-        mov     ebp,DWORD [4+esi]
-        mov     ecx,DWORD [8+esi]
-        mov     ebx,DWORD [12+esi]
-        mov     DWORD [4+esp],ebp
-        xor     ebp,ecx
-        mov     DWORD [8+esp],ecx
-        mov     DWORD [12+esp],ebx
-        mov     edx,DWORD [16+esi]
-        mov     ebx,DWORD [20+esi]
-        mov     ecx,DWORD [24+esi]
-        mov     esi,DWORD [28+esi]
-        mov     DWORD [20+esp],ebx
-        mov     DWORD [24+esp],ecx
-        mov     DWORD [28+esp],esi
-        jmp     NEAR L$009grand_loop
-align   16
-L$009grand_loop:
-        mov     ebx,DWORD [edi]
-        mov     ecx,DWORD [4+edi]
-        bswap   ebx
-        mov     esi,DWORD [8+edi]
-        bswap   ecx
-        mov     DWORD [32+esp],ebx
-        bswap   esi
-        mov     DWORD [36+esp],ecx
-        mov     DWORD [40+esp],esi
-        mov     ebx,DWORD [12+edi]
-        mov     ecx,DWORD [16+edi]
-        bswap   ebx
-        mov     esi,DWORD [20+edi]
-        bswap   ecx
-        mov     DWORD [44+esp],ebx
-        bswap   esi
-        mov     DWORD [48+esp],ecx
-        mov     DWORD [52+esp],esi
-        mov     ebx,DWORD [24+edi]
-        mov     ecx,DWORD [28+edi]
-        bswap   ebx
-        mov     esi,DWORD [32+edi]
-        bswap   ecx
-        mov     DWORD [56+esp],ebx
-        bswap   esi
-        mov     DWORD [60+esp],ecx
-        mov     DWORD [64+esp],esi
-        mov     ebx,DWORD [36+edi]
-        mov     ecx,DWORD [40+edi]
-        bswap   ebx
-        mov     esi,DWORD [44+edi]
-        bswap   ecx
-        mov     DWORD [68+esp],ebx
-        bswap   esi
-        mov     DWORD [72+esp],ecx
-        mov     DWORD [76+esp],esi
-        mov     ebx,DWORD [48+edi]
-        mov     ecx,DWORD [52+edi]
-        bswap   ebx
-        mov     esi,DWORD [56+edi]
-        bswap   ecx
-        mov     DWORD [80+esp],ebx
-        bswap   esi
-        mov     DWORD [84+esp],ecx
-        mov     DWORD [88+esp],esi
-        mov     ebx,DWORD [60+edi]
-        add     edi,64
-        bswap   ebx
-        mov     DWORD [100+esp],edi
-        mov     DWORD [92+esp],ebx
-        mov     ecx,edx
-        mov     esi,DWORD [20+esp]
-        ror     edx,14
-        mov     edi,DWORD [24+esp]
-        xor     edx,ecx
-        mov     ebx,DWORD [32+esp]
-        xor     esi,edi
-        ror     edx,5
-        and     esi,ecx
-        mov     DWORD [16+esp],ecx
-        xor     edx,ecx
-        add     ebx,DWORD [28+esp]
-        xor     edi,esi
-        ror     edx,6
-        mov     ecx,eax
-        add     ebx,edi
-        ror     ecx,9
-        mov     esi,eax
-        mov     edi,DWORD [4+esp]
-        xor     ecx,eax
-        mov     DWORD [esp],eax
-        xor     eax,edi
-        ror     ecx,11
-        and     ebp,eax
-        lea     edx,[1116352408+edx*1+ebx]
-        xor     ecx,esi
-        xor     ebp,edi
-        ror     ecx,2
-        add     ebp,edx
-        add     edx,DWORD [12+esp]
-        add     ebp,ecx
-        mov     esi,edx
-        mov     ecx,DWORD [16+esp]
-        ror     edx,14
-        mov     edi,DWORD [20+esp]
-        xor     edx,esi
-        mov     ebx,DWORD [36+esp]
-        xor     ecx,edi
-        ror     edx,5
-        and     ecx,esi
-        mov     DWORD [12+esp],esi
-        xor     edx,esi
-        add     ebx,DWORD [24+esp]
-        xor     edi,ecx
-        ror     edx,6
-        mov     esi,ebp
-        add     ebx,edi
-        ror     esi,9
-        mov     ecx,ebp
-        mov     edi,DWORD [esp]
-        xor     esi,ebp
-        mov     DWORD [28+esp],ebp
-        xor     ebp,edi
-        ror     esi,11
-        and     eax,ebp
-        lea     edx,[1899447441+edx*1+ebx]
-        xor     esi,ecx
-        xor     eax,edi
-        ror     esi,2
-        add     eax,edx
-        add     edx,DWORD [8+esp]
-        add     eax,esi
-        mov     ecx,edx
-        mov     esi,DWORD [12+esp]
-        ror     edx,14
-        mov     edi,DWORD [16+esp]
-        xor     edx,ecx
-        mov     ebx,DWORD [40+esp]
-        xor     esi,edi
-        ror     edx,5
-        and     esi,ecx
-        mov     DWORD [8+esp],ecx
-        xor     edx,ecx
-        add     ebx,DWORD [20+esp]
-        xor     edi,esi
-        ror     edx,6
-        mov     ecx,eax
-        add     ebx,edi
-        ror     ecx,9
-        mov     esi,eax
-        mov     edi,DWORD [28+esp]
-        xor     ecx,eax
-        mov     DWORD [24+esp],eax
-        xor     eax,edi
-        ror     ecx,11
-        and     ebp,eax
-        lea     edx,[3049323471+edx*1+ebx]
-        xor     ecx,esi
-        xor     ebp,edi
-        ror     ecx,2
-        add     ebp,edx
-        add     edx,DWORD [4+esp]
-        add     ebp,ecx
-        mov     esi,edx
-        mov     ecx,DWORD [8+esp]
-        ror     edx,14
-        mov     edi,DWORD [12+esp]
-        xor     edx,esi
-        mov     ebx,DWORD [44+esp]
-        xor     ecx,edi
-        ror     edx,5
-        and     ecx,esi
-        mov     DWORD [4+esp],esi
-        xor     edx,esi
-        add     ebx,DWORD [16+esp]
-        xor     edi,ecx
-        ror     edx,6
-        mov     esi,ebp
-        add     ebx,edi
-        ror     esi,9
-        mov     ecx,ebp
-        mov     edi,DWORD [24+esp]
-        xor     esi,ebp
-        mov     DWORD [20+esp],ebp
-        xor     ebp,edi
-        ror     esi,11
-        and     eax,ebp
-        lea     edx,[3921009573+edx*1+ebx]
-        xor     esi,ecx
-        xor     eax,edi
-        ror     esi,2
-        add     eax,edx
-        add     edx,DWORD [esp]
-        add     eax,esi
-        mov     ecx,edx
-        mov     esi,DWORD [4+esp]
-        ror     edx,14
-        mov     edi,DWORD [8+esp]
-        xor     edx,ecx
-        mov     ebx,DWORD [48+esp]
-        xor     esi,edi
-        ror     edx,5
-        and     esi,ecx
-        mov     DWORD [esp],ecx
-        xor     edx,ecx
-        add     ebx,DWORD [12+esp]
-        xor     edi,esi
-        ror     edx,6
-        mov     ecx,eax
-        add     ebx,edi
-        ror     ecx,9
-        mov     esi,eax
-        mov     edi,DWORD [20+esp]
-        xor     ecx,eax
-        mov     DWORD [16+esp],eax
-        xor     eax,edi
-        ror     ecx,11
-        and     ebp,eax
-        lea     edx,[961987163+edx*1+ebx]
-        xor     ecx,esi
-        xor     ebp,edi
-        ror     ecx,2
-        add     ebp,edx
-        add     edx,DWORD [28+esp]
-        add     ebp,ecx
-        mov     esi,edx
-        mov     ecx,DWORD [esp]
-        ror     edx,14
-        mov     edi,DWORD [4+esp]
-        xor     edx,esi
-        mov     ebx,DWORD [52+esp]
-        xor     ecx,edi
-        ror     edx,5
-        and     ecx,esi
-        mov     DWORD [28+esp],esi
-        xor     edx,esi
-        add     ebx,DWORD [8+esp]
-        xor     edi,ecx
-        ror     edx,6
-        mov     esi,ebp
-        add     ebx,edi
-        ror     esi,9
-        mov     ecx,ebp
-        mov     edi,DWORD [16+esp]
-        xor     esi,ebp
-        mov     DWORD [12+esp],ebp
-        xor     ebp,edi
-        ror     esi,11
-        and     eax,ebp
-        lea     edx,[1508970993+edx*1+ebx]
-        xor     esi,ecx
-        xor     eax,edi
-        ror     esi,2
-        add     eax,edx
-        add     edx,DWORD [24+esp]
-        add     eax,esi
-        mov     ecx,edx
-        mov     esi,DWORD [28+esp]
-        ror     edx,14
-        mov     edi,DWORD [esp]
-        xor     edx,ecx
-        mov     ebx,DWORD [56+esp]
-        xor     esi,edi
-        ror     edx,5
-        and     esi,ecx
-        mov     DWORD [24+esp],ecx
-        xor     edx,ecx
-        add     ebx,DWORD [4+esp]
-        xor     edi,esi
-        ror     edx,6
-        mov     ecx,eax
-        add     ebx,edi
-        ror     ecx,9
-        mov     esi,eax
-        mov     edi,DWORD [12+esp]
-        xor     ecx,eax
-        mov     DWORD [8+esp],eax
-        xor     eax,edi
-        ror     ecx,11
-        and     ebp,eax
-        lea     edx,[2453635748+edx*1+ebx]
-        xor     ecx,esi
-        xor     ebp,edi
-        ror     ecx,2
-        add     ebp,edx
-        add     edx,DWORD [20+esp]
-        add     ebp,ecx
-        mov     esi,edx
-        mov     ecx,DWORD [24+esp]
-        ror     edx,14
-        mov     edi,DWORD [28+esp]
-        xor     edx,esi
-        mov     ebx,DWORD [60+esp]
-        xor     ecx,edi
-        ror     edx,5
-        and     ecx,esi
-        mov     DWORD [20+esp],esi
-        xor     edx,esi
-        add     ebx,DWORD [esp]
-        xor     edi,ecx
-        ror     edx,6
-        mov     esi,ebp
-        add     ebx,edi
-        ror     esi,9
-        mov     ecx,ebp
-        mov     edi,DWORD [8+esp]
-        xor     esi,ebp
-        mov     DWORD [4+esp],ebp
-        xor     ebp,edi
-        ror     esi,11
-        and     eax,ebp
-        lea     edx,[2870763221+edx*1+ebx]
-        xor     esi,ecx
-        xor     eax,edi
-        ror     esi,2
-        add     eax,edx
-        add     edx,DWORD [16+esp]
-        add     eax,esi
-        mov     ecx,edx
-        mov     esi,DWORD [20+esp]
-        ror     edx,14
-        mov     edi,DWORD [24+esp]
-        xor     edx,ecx
-        mov     ebx,DWORD [64+esp]
-        xor     esi,edi
-        ror     edx,5
-        and     esi,ecx
-        mov     DWORD [16+esp],ecx
-        xor     edx,ecx
-        add     ebx,DWORD [28+esp]
-        xor     edi,esi
-        ror     edx,6
-        mov     ecx,eax
-        add     ebx,edi
-        ror     ecx,9
-        mov     esi,eax
-        mov     edi,DWORD [4+esp]
-        xor     ecx,eax
-        mov     DWORD [esp],eax
-        xor     eax,edi
-        ror     ecx,11
-        and     ebp,eax
-        lea     edx,[3624381080+edx*1+ebx]
-        xor     ecx,esi
-        xor     ebp,edi
-        ror     ecx,2
-        add     ebp,edx
-        add     edx,DWORD [12+esp]
-        add     ebp,ecx
-        mov     esi,edx
-        mov     ecx,DWORD [16+esp]
-        ror     edx,14
-        mov     edi,DWORD [20+esp]
-        xor     edx,esi
-        mov     ebx,DWORD [68+esp]
-        xor     ecx,edi
-        ror     edx,5
-        and     ecx,esi
-        mov     DWORD [12+esp],esi
-        xor     edx,esi
-        add     ebx,DWORD [24+esp]
-        xor     edi,ecx
-        ror     edx,6
-        mov     esi,ebp
-        add     ebx,edi
-        ror     esi,9
-        mov     ecx,ebp
-        mov     edi,DWORD [esp]
-        xor     esi,ebp
-        mov     DWORD [28+esp],ebp
-        xor     ebp,edi
-        ror     esi,11
-        and     eax,ebp
-        lea     edx,[310598401+edx*1+ebx]
-        xor     esi,ecx
-        xor     eax,edi
-        ror     esi,2
-        add     eax,edx
-        add     edx,DWORD [8+esp]
-        add     eax,esi
-        mov     ecx,edx
-        mov     esi,DWORD [12+esp]
-        ror     edx,14
-        mov     edi,DWORD [16+esp]
-        xor     edx,ecx
-        mov     ebx,DWORD [72+esp]
-        xor     esi,edi
-        ror     edx,5
-        and     esi,ecx
-        mov     DWORD [8+esp],ecx
-        xor     edx,ecx
-        add     ebx,DWORD [20+esp]
-        xor     edi,esi
-        ror     edx,6
-        mov     ecx,eax
-        add     ebx,edi
-        ror     ecx,9
-        mov     esi,eax
-        mov     edi,DWORD [28+esp]
-        xor     ecx,eax
-        mov     DWORD [24+esp],eax
-        xor     eax,edi
-        ror     ecx,11
-        and     ebp,eax
-        lea     edx,[607225278+edx*1+ebx]
-        xor     ecx,esi
-        xor     ebp,edi
-        ror     ecx,2
-        add     ebp,edx
-        add     edx,DWORD [4+esp]
-        add     ebp,ecx
-        mov     esi,edx
-        mov     ecx,DWORD [8+esp]
-        ror     edx,14
-        mov     edi,DWORD [12+esp]
-        xor     edx,esi
-        mov     ebx,DWORD [76+esp]
-        xor     ecx,edi
-        ror     edx,5
-        and     ecx,esi
-        mov     DWORD [4+esp],esi
-        xor     edx,esi
-        add     ebx,DWORD [16+esp]
-        xor     edi,ecx
-        ror     edx,6
-        mov     esi,ebp
-        add     ebx,edi
-        ror     esi,9
-        mov     ecx,ebp
-        mov     edi,DWORD [24+esp]
-        xor     esi,ebp
-        mov     DWORD [20+esp],ebp
-        xor     ebp,edi
-        ror     esi,11
-        and     eax,ebp
-        lea     edx,[1426881987+edx*1+ebx]
-        xor     esi,ecx
-        xor     eax,edi
-        ror     esi,2
-        add     eax,edx
-        add     edx,DWORD [esp]
-        add     eax,esi
-        mov     ecx,edx
-        mov     esi,DWORD [4+esp]
-        ror     edx,14
-        mov     edi,DWORD [8+esp]
-        xor     edx,ecx
-        mov     ebx,DWORD [80+esp]
-        xor     esi,edi
-        ror     edx,5
-        and     esi,ecx
-        mov     DWORD [esp],ecx
-        xor     edx,ecx
-        add     ebx,DWORD [12+esp]
-        xor     edi,esi
-        ror     edx,6
-        mov     ecx,eax
-        add     ebx,edi
-        ror     ecx,9
-        mov     esi,eax
-        mov     edi,DWORD [20+esp]
-        xor     ecx,eax
-        mov     DWORD [16+esp],eax
-        xor     eax,edi
-        ror     ecx,11
-        and     ebp,eax
-        lea     edx,[1925078388+edx*1+ebx]
-        xor     ecx,esi
-        xor     ebp,edi
-        ror     ecx,2
-        add     ebp,edx
-        add     edx,DWORD [28+esp]
-        add     ebp,ecx
-        mov     esi,edx
-        mov     ecx,DWORD [esp]
-        ror     edx,14
-        mov     edi,DWORD [4+esp]
-        xor     edx,esi
-        mov     ebx,DWORD [84+esp]
-        xor     ecx,edi
-        ror     edx,5
-        and     ecx,esi
-        mov     DWORD [28+esp],esi
-        xor     edx,esi
-        add     ebx,DWORD [8+esp]
-        xor     edi,ecx
-        ror     edx,6
-        mov     esi,ebp
-        add     ebx,edi
-        ror     esi,9
-        mov     ecx,ebp
-        mov     edi,DWORD [16+esp]
-        xor     esi,ebp
-        mov     DWORD [12+esp],ebp
-        xor     ebp,edi
-        ror     esi,11
-        and     eax,ebp
-        lea     edx,[2162078206+edx*1+ebx]
-        xor     esi,ecx
-        xor     eax,edi
-        ror     esi,2
-        add     eax,edx
-        add     edx,DWORD [24+esp]
-        add     eax,esi
-        mov     ecx,edx
-        mov     esi,DWORD [28+esp]
-        ror     edx,14
-        mov     edi,DWORD [esp]
-        xor     edx,ecx
-        mov     ebx,DWORD [88+esp]
-        xor     esi,edi
-        ror     edx,5
-        and     esi,ecx
-        mov     DWORD [24+esp],ecx
-        xor     edx,ecx
-        add     ebx,DWORD [4+esp]
-        xor     edi,esi
-        ror     edx,6
-        mov     ecx,eax
-        add     ebx,edi
-        ror     ecx,9
-        mov     esi,eax
-        mov     edi,DWORD [12+esp]
-        xor     ecx,eax
-        mov     DWORD [8+esp],eax
-        xor     eax,edi
-        ror     ecx,11
-        and     ebp,eax
-        lea     edx,[2614888103+edx*1+ebx]
-        xor     ecx,esi
-        xor     ebp,edi
-        ror     ecx,2
-        add     ebp,edx
-        add     edx,DWORD [20+esp]
-        add     ebp,ecx
-        mov     esi,edx
-        mov     ecx,DWORD [24+esp]
-        ror     edx,14
-        mov     edi,DWORD [28+esp]
-        xor     edx,esi
-        mov     ebx,DWORD [92+esp]
-        xor     ecx,edi
-        ror     edx,5
-        and     ecx,esi
-        mov     DWORD [20+esp],esi
-        xor     edx,esi
-        add     ebx,DWORD [esp]
-        xor     edi,ecx
-        ror     edx,6
-        mov     esi,ebp
-        add     ebx,edi
-        ror     esi,9
-        mov     ecx,ebp
-        mov     edi,DWORD [8+esp]
-        xor     esi,ebp
-        mov     DWORD [4+esp],ebp
-        xor     ebp,edi
-        ror     esi,11
-        and     eax,ebp
-        lea     edx,[3248222580+edx*1+ebx]
-        xor     esi,ecx
-        xor     eax,edi
-        mov     ecx,DWORD [36+esp]
-        ror     esi,2
-        add     eax,edx
-        add     edx,DWORD [16+esp]
-        add     eax,esi
-        mov     esi,DWORD [88+esp]
-        mov     ebx,ecx
-        ror     ecx,11
-        mov     edi,esi
-        ror     esi,2
-        xor     ecx,ebx
-        shr     ebx,3
-        ror     ecx,7
-        xor     esi,edi
-        xor     ebx,ecx
-        ror     esi,17
-        add     ebx,DWORD [32+esp]
-        shr     edi,10
-        add     ebx,DWORD [68+esp]
-        mov     ecx,edx
-        xor     edi,esi
-        mov     esi,DWORD [20+esp]
-        ror     edx,14
-        add     ebx,edi
-        mov     edi,DWORD [24+esp]
-        xor     edx,ecx
-        mov     DWORD [32+esp],ebx
-        xor     esi,edi
-        ror     edx,5
-        and     esi,ecx
-        mov     DWORD [16+esp],ecx
-        xor     edx,ecx
-        add     ebx,DWORD [28+esp]
-        xor     edi,esi
-        ror     edx,6
-        mov     ecx,eax
-        add     ebx,edi
-        ror     ecx,9
-        mov     esi,eax
-        mov     edi,DWORD [4+esp]
-        xor     ecx,eax
-        mov     DWORD [esp],eax
-        xor     eax,edi
-        ror     ecx,11
-        and     ebp,eax
-        lea     edx,[3835390401+edx*1+ebx]
-        xor     ecx,esi
-        xor     ebp,edi
-        mov     esi,DWORD [40+esp]
-        ror     ecx,2
-        add     ebp,edx
-        add     edx,DWORD [12+esp]
-        add     ebp,ecx
-        mov     ecx,DWORD [92+esp]
-        mov     ebx,esi
-        ror     esi,11
-        mov     edi,ecx
-        ror     ecx,2
-        xor     esi,ebx
-        shr     ebx,3
-        ror     esi,7
-        xor     ecx,edi
-        xor     ebx,esi
-        ror     ecx,17
-        add     ebx,DWORD [36+esp]
-        shr     edi,10
-        add     ebx,DWORD [72+esp]
-        mov     esi,edx
-        xor     edi,ecx
-        mov     ecx,DWORD [16+esp]
-        ror     edx,14
-        add     ebx,edi
-        mov     edi,DWORD [20+esp]
-        xor     edx,esi
-        mov     DWORD [36+esp],ebx
-        xor     ecx,edi
-        ror     edx,5
-        and     ecx,esi
-        mov     DWORD [12+esp],esi
-        xor     edx,esi
-        add     ebx,DWORD [24+esp]
-        xor     edi,ecx
-        ror     edx,6
-        mov     esi,ebp
-        add     ebx,edi
-        ror     esi,9
-        mov     ecx,ebp
-        mov     edi,DWORD [esp]
-        xor     esi,ebp
-        mov     DWORD [28+esp],ebp
-        xor     ebp,edi
-        ror     esi,11
-        and     eax,ebp
-        lea     edx,[4022224774+edx*1+ebx]
-        xor     esi,ecx
-        xor     eax,edi
-        mov     ecx,DWORD [44+esp]
-        ror     esi,2
-        add     eax,edx
-        add     edx,DWORD [8+esp]
-        add     eax,esi
-        mov     esi,DWORD [32+esp]
-        mov     ebx,ecx
-        ror     ecx,11
-        mov     edi,esi
-        ror     esi,2
-        xor     ecx,ebx
-        shr     ebx,3
-        ror     ecx,7
-        xor     esi,edi
-        xor     ebx,ecx
-        ror     esi,17
-        add     ebx,DWORD [40+esp]
-        shr     edi,10
-        add     ebx,DWORD [76+esp]
-        mov     ecx,edx
-        xor     edi,esi
-        mov     esi,DWORD [12+esp]
-        ror     edx,14
-        add     ebx,edi
-        mov     edi,DWORD [16+esp]
-        xor     edx,ecx
-        mov     DWORD [40+esp],ebx
-        xor     esi,edi
-        ror     edx,5
-        and     esi,ecx
-        mov     DWORD [8+esp],ecx
-        xor     edx,ecx
-        add     ebx,DWORD [20+esp]
-        xor     edi,esi
-        ror     edx,6
-        mov     ecx,eax
-        add     ebx,edi
-        ror     ecx,9
-        mov     esi,eax
-        mov     edi,DWORD [28+esp]
-        xor     ecx,eax
-        mov     DWORD [24+esp],eax
-        xor     eax,edi
-        ror     ecx,11
-        and     ebp,eax
-        lea     edx,[264347078+edx*1+ebx]
-        xor     ecx,esi
-        xor     ebp,edi
-        mov     esi,DWORD [48+esp]
-        ror     ecx,2
-        add     ebp,edx
-        add     edx,DWORD [4+esp]
-        add     ebp,ecx
-        mov     ecx,DWORD [36+esp]
-        mov     ebx,esi
-        ror     esi,11
-        mov     edi,ecx
-        ror     ecx,2
-        xor     esi,ebx
-        shr     ebx,3
-        ror     esi,7
-        xor     ecx,edi
-        xor     ebx,esi
-        ror     ecx,17
-        add     ebx,DWORD [44+esp]
-        shr     edi,10
-        add     ebx,DWORD [80+esp]
-        mov     esi,edx
-        xor     edi,ecx
-        mov     ecx,DWORD [8+esp]
-        ror     edx,14
-        add     ebx,edi
-        mov     edi,DWORD [12+esp]
-        xor     edx,esi
-        mov     DWORD [44+esp],ebx
-        xor     ecx,edi
-        ror     edx,5
-        and     ecx,esi
-        mov     DWORD [4+esp],esi
-        xor     edx,esi
-        add     ebx,DWORD [16+esp]
-        xor     edi,ecx
-        ror     edx,6
-        mov     esi,ebp
-        add     ebx,edi
-        ror     esi,9
-        mov     ecx,ebp
-        mov     edi,DWORD [24+esp]
-        xor     esi,ebp
-        mov     DWORD [20+esp],ebp
-        xor     ebp,edi
-        ror     esi,11
-        and     eax,ebp
-        lea     edx,[604807628+edx*1+ebx]
-        xor     esi,ecx
-        xor     eax,edi
-        mov     ecx,DWORD [52+esp]
-        ror     esi,2
-        add     eax,edx
-        add     edx,DWORD [esp]
-        add     eax,esi
-        mov     esi,DWORD [40+esp]
-        mov     ebx,ecx
-        ror     ecx,11
-        mov     edi,esi
-        ror     esi,2
-        xor     ecx,ebx
-        shr     ebx,3
-        ror     ecx,7
-        xor     esi,edi
-        xor     ebx,ecx
-        ror     esi,17
-        add     ebx,DWORD [48+esp]
-        shr     edi,10
-        add     ebx,DWORD [84+esp]
-        mov     ecx,edx
-        xor     edi,esi
-        mov     esi,DWORD [4+esp]
-        ror     edx,14
-        add     ebx,edi
-        mov     edi,DWORD [8+esp]
-        xor     edx,ecx
-        mov     DWORD [48+esp],ebx
-        xor     esi,edi
-        ror     edx,5
-        and     esi,ecx
-        mov     DWORD [esp],ecx
-        xor     edx,ecx
-        add     ebx,DWORD [12+esp]
-        xor     edi,esi
-        ror     edx,6
-        mov     ecx,eax
-        add     ebx,edi
-        ror     ecx,9
-        mov     esi,eax
-        mov     edi,DWORD [20+esp]
-        xor     ecx,eax
-        mov     DWORD [16+esp],eax
-        xor     eax,edi
-        ror     ecx,11
-        and     ebp,eax
-        lea     edx,[770255983+edx*1+ebx]
-        xor     ecx,esi
-        xor     ebp,edi
-        mov     esi,DWORD [56+esp]
-        ror     ecx,2
-        add     ebp,edx
-        add     edx,DWORD [28+esp]
-        add     ebp,ecx
-        mov     ecx,DWORD [44+esp]
-        mov     ebx,esi
-        ror     esi,11
-        mov     edi,ecx
-        ror     ecx,2
-        xor     esi,ebx
-        shr     ebx,3
-        ror     esi,7
-        xor     ecx,edi
-        xor     ebx,esi
-        ror     ecx,17
-        add     ebx,DWORD [52+esp]
-        shr     edi,10
-        add     ebx,DWORD [88+esp]
-        mov     esi,edx
-        xor     edi,ecx
-        mov     ecx,DWORD [esp]
-        ror     edx,14
-        add     ebx,edi
-        mov     edi,DWORD [4+esp]
-        xor     edx,esi
-        mov     DWORD [52+esp],ebx
-        xor     ecx,edi
-        ror     edx,5
-        and     ecx,esi
-        mov     DWORD [28+esp],esi
-        xor     edx,esi
-        add     ebx,DWORD [8+esp]
-        xor     edi,ecx
-        ror     edx,6
-        mov     esi,ebp
-        add     ebx,edi
-        ror     esi,9
-        mov     ecx,ebp
-        mov     edi,DWORD [16+esp]
-        xor     esi,ebp
-        mov     DWORD [12+esp],ebp
-        xor     ebp,edi
-        ror     esi,11
-        and     eax,ebp
-        lea     edx,[1249150122+edx*1+ebx]
-        xor     esi,ecx
-        xor     eax,edi
-        mov     ecx,DWORD [60+esp]
-        ror     esi,2
-        add     eax,edx
-        add     edx,DWORD [24+esp]
-        add     eax,esi
-        mov     esi,DWORD [48+esp]
-        mov     ebx,ecx
-        ror     ecx,11
-        mov     edi,esi
-        ror     esi,2
-        xor     ecx,ebx
-        shr     ebx,3
-        ror     ecx,7
-        xor     esi,edi
-        xor     ebx,ecx
-        ror     esi,17
-        add     ebx,DWORD [56+esp]
-        shr     edi,10
-        add     ebx,DWORD [92+esp]
-        mov     ecx,edx
-        xor     edi,esi
-        mov     esi,DWORD [28+esp]
-        ror     edx,14
-        add     ebx,edi
-        mov     edi,DWORD [esp]
-        xor     edx,ecx
-        mov     DWORD [56+esp],ebx
-        xor     esi,edi
-        ror     edx,5
-        and     esi,ecx
-        mov     DWORD [24+esp],ecx
-        xor     edx,ecx
-        add     ebx,DWORD [4+esp]
-        xor     edi,esi
-        ror     edx,6
-        mov     ecx,eax
-        add     ebx,edi
-        ror     ecx,9
-        mov     esi,eax
-        mov     edi,DWORD [12+esp]
-        xor     ecx,eax
-        mov     DWORD [8+esp],eax
-        xor     eax,edi
-        ror     ecx,11
-        and     ebp,eax
-        lea     edx,[1555081692+edx*1+ebx]
-        xor     ecx,esi
-        xor     ebp,edi
-        mov     esi,DWORD [64+esp]
-        ror     ecx,2
-        add     ebp,edx
-        add     edx,DWORD [20+esp]
-        add     ebp,ecx
-        mov     ecx,DWORD [52+esp]
-        mov     ebx,esi
-        ror     esi,11
-        mov     edi,ecx
-        ror     ecx,2
-        xor     esi,ebx
-        shr     ebx,3
-        ror     esi,7
-        xor     ecx,edi
-        xor     ebx,esi
-        ror     ecx,17
-        add     ebx,DWORD [60+esp]
-        shr     edi,10
-        add     ebx,DWORD [32+esp]
-        mov     esi,edx
-        xor     edi,ecx
-        mov     ecx,DWORD [24+esp]
-        ror     edx,14
-        add     ebx,edi
-        mov     edi,DWORD [28+esp]
-        xor     edx,esi
-        mov     DWORD [60+esp],ebx
-        xor     ecx,edi
-        ror     edx,5
-        and     ecx,esi
-        mov     DWORD [20+esp],esi
-        xor     edx,esi
-        add     ebx,DWORD [esp]
-        xor     edi,ecx
-        ror     edx,6
-        mov     esi,ebp
-        add     ebx,edi
-        ror     esi,9
-        mov     ecx,ebp
-        mov     edi,DWORD [8+esp]
-        xor     esi,ebp
-        mov     DWORD [4+esp],ebp
-        xor     ebp,edi
-        ror     esi,11
-        and     eax,ebp
-        lea     edx,[1996064986+edx*1+ebx]
-        xor     esi,ecx
-        xor     eax,edi
-        mov     ecx,DWORD [68+esp]
-        ror     esi,2
-        add     eax,edx
-        add     edx,DWORD [16+esp]
-        add     eax,esi
-        mov     esi,DWORD [56+esp]
-        mov     ebx,ecx
-        ror     ecx,11
-        mov     edi,esi
-        ror     esi,2
-        xor     ecx,ebx
-        shr     ebx,3
-        ror     ecx,7
-        xor     esi,edi
-        xor     ebx,ecx
-        ror     esi,17
-        add     ebx,DWORD [64+esp]
-        shr     edi,10
-        add     ebx,DWORD [36+esp]
-        mov     ecx,edx
-        xor     edi,esi
-        mov     esi,DWORD [20+esp]
-        ror     edx,14
-        add     ebx,edi
-        mov     edi,DWORD [24+esp]
-        xor     edx,ecx
-        mov     DWORD [64+esp],ebx
-        xor     esi,edi
-        ror     edx,5
-        and     esi,ecx
-        mov     DWORD [16+esp],ecx
-        xor     edx,ecx
-        add     ebx,DWORD [28+esp]
-        xor     edi,esi
-        ror     edx,6
-        mov     ecx,eax
-        add     ebx,edi
-        ror     ecx,9
-        mov     esi,eax
-        mov     edi,DWORD [4+esp]
-        xor     ecx,eax
-        mov     DWORD [esp],eax
-        xor     eax,edi
-        ror     ecx,11
-        and     ebp,eax
-        lea     edx,[2554220882+edx*1+ebx]
-        xor     ecx,esi
-        xor     ebp,edi
-        mov     esi,DWORD [72+esp]
-        ror     ecx,2
-        add     ebp,edx
-        add     edx,DWORD [12+esp]
-        add     ebp,ecx
-        mov     ecx,DWORD [60+esp]
-        mov     ebx,esi
-        ror     esi,11
-        mov     edi,ecx
-        ror     ecx,2
-        xor     esi,ebx
-        shr     ebx,3
-        ror     esi,7
-        xor     ecx,edi
-        xor     ebx,esi
-        ror     ecx,17
-        add     ebx,DWORD [68+esp]
-        shr     edi,10
-        add     ebx,DWORD [40+esp]
-        mov     esi,edx
-        xor     edi,ecx
-        mov     ecx,DWORD [16+esp]
-        ror     edx,14
-        add     ebx,edi
-        mov     edi,DWORD [20+esp]
-        xor     edx,esi
-        mov     DWORD [68+esp],ebx
-        xor     ecx,edi
-        ror     edx,5
-        and     ecx,esi
-        mov     DWORD [12+esp],esi
-        xor     edx,esi
-        add     ebx,DWORD [24+esp]
-        xor     edi,ecx
-        ror     edx,6
-        mov     esi,ebp
-        add     ebx,edi
-        ror     esi,9
-        mov     ecx,ebp
-        mov     edi,DWORD [esp]
-        xor     esi,ebp
-        mov     DWORD [28+esp],ebp
-        xor     ebp,edi
-        ror     esi,11
-        and     eax,ebp
-        lea     edx,[2821834349+edx*1+ebx]
-        xor     esi,ecx
-        xor     eax,edi
-        mov     ecx,DWORD [76+esp]
-        ror     esi,2
-        add     eax,edx
-        add     edx,DWORD [8+esp]
-        add     eax,esi
-        mov     esi,DWORD [64+esp]
-        mov     ebx,ecx
-        ror     ecx,11
-        mov     edi,esi
-        ror     esi,2
-        xor     ecx,ebx
-        shr     ebx,3
-        ror     ecx,7
-        xor     esi,edi
-        xor     ebx,ecx
-        ror     esi,17
-        add     ebx,DWORD [72+esp]
-        shr     edi,10
-        add     ebx,DWORD [44+esp]
-        mov     ecx,edx
-        xor     edi,esi
-        mov     esi,DWORD [12+esp]
-        ror     edx,14
-        add     ebx,edi
-        mov     edi,DWORD [16+esp]
-        xor     edx,ecx
-        mov     DWORD [72+esp],ebx
-        xor     esi,edi
-        ror     edx,5
-        and     esi,ecx
-        mov     DWORD [8+esp],ecx
-        xor     edx,ecx
-        add     ebx,DWORD [20+esp]
-        xor     edi,esi
-        ror     edx,6
-        mov     ecx,eax
-        add     ebx,edi
-        ror     ecx,9
-        mov     esi,eax
-        mov     edi,DWORD [28+esp]
-        xor     ecx,eax
-        mov     DWORD [24+esp],eax
-        xor     eax,edi
-        ror     ecx,11
-        and     ebp,eax
-        lea     edx,[2952996808+edx*1+ebx]
-        xor     ecx,esi
-        xor     ebp,edi
-        mov     esi,DWORD [80+esp]
-        ror     ecx,2
-        add     ebp,edx
-        add     edx,DWORD [4+esp]
-        add     ebp,ecx
-        mov     ecx,DWORD [68+esp]
-        mov     ebx,esi
-        ror     esi,11
-        mov     edi,ecx
-        ror     ecx,2
-        xor     esi,ebx
-        shr     ebx,3
-        ror     esi,7
-        xor     ecx,edi
-        xor     ebx,esi
-        ror     ecx,17
-        add     ebx,DWORD [76+esp]
-        shr     edi,10
-        add     ebx,DWORD [48+esp]
-        mov     esi,edx
-        xor     edi,ecx
-        mov     ecx,DWORD [8+esp]
-        ror     edx,14
-        add     ebx,edi
-        mov     edi,DWORD [12+esp]
-        xor     edx,esi
-        mov     DWORD [76+esp],ebx
-        xor     ecx,edi
-        ror     edx,5
-        and     ecx,esi
-        mov     DWORD [4+esp],esi
-        xor     edx,esi
-        add     ebx,DWORD [16+esp]
-        xor     edi,ecx
-        ror     edx,6
-        mov     esi,ebp
-        add     ebx,edi
-        ror     esi,9
-        mov     ecx,ebp
-        mov     edi,DWORD [24+esp]
-        xor     esi,ebp
-        mov     DWORD [20+esp],ebp
-        xor     ebp,edi
-        ror     esi,11
-        and     eax,ebp
-        lea     edx,[3210313671+edx*1+ebx]
-        xor     esi,ecx
-        xor     eax,edi
-        mov     ecx,DWORD [84+esp]
-        ror     esi,2
-        add     eax,edx
-        add     edx,DWORD [esp]
-        add     eax,esi
-        mov     esi,DWORD [72+esp]
-        mov     ebx,ecx
-        ror     ecx,11
-        mov     edi,esi
-        ror     esi,2
-        xor     ecx,ebx
-        shr     ebx,3
-        ror     ecx,7
-        xor     esi,edi
-        xor     ebx,ecx
-        ror     esi,17
-        add     ebx,DWORD [80+esp]
-        shr     edi,10
-        add     ebx,DWORD [52+esp]
-        mov     ecx,edx
-        xor     edi,esi
-        mov     esi,DWORD [4+esp]
-        ror     edx,14
-        add     ebx,edi
-        mov     edi,DWORD [8+esp]
-        xor     edx,ecx
-        mov     DWORD [80+esp],ebx
-        xor     esi,edi
-        ror     edx,5
-        and     esi,ecx
-        mov     DWORD [esp],ecx
-        xor     edx,ecx
-        add     ebx,DWORD [12+esp]
-        xor     edi,esi
-        ror     edx,6
-        mov     ecx,eax
-        add     ebx,edi
-        ror     ecx,9
-        mov     esi,eax
-        mov     edi,DWORD [20+esp]
-        xor     ecx,eax
-        mov     DWORD [16+esp],eax
-        xor     eax,edi
-        ror     ecx,11
-        and     ebp,eax
-        lea     edx,[3336571891+edx*1+ebx]
-        xor     ecx,esi
-        xor     ebp,edi
-        mov     esi,DWORD [88+esp]
-        ror     ecx,2
-        add     ebp,edx
-        add     edx,DWORD [28+esp]
-        add     ebp,ecx
-        mov     ecx,DWORD [76+esp]
-        mov     ebx,esi
-        ror     esi,11
-        mov     edi,ecx
-        ror     ecx,2
-        xor     esi,ebx
-        shr     ebx,3
-        ror     esi,7
-        xor     ecx,edi
-        xor     ebx,esi
-        ror     ecx,17
-        add     ebx,DWORD [84+esp]
-        shr     edi,10
-        add     ebx,DWORD [56+esp]
-        mov     esi,edx
-        xor     edi,ecx
-        mov     ecx,DWORD [esp]
-        ror     edx,14
-        add     ebx,edi
-        mov     edi,DWORD [4+esp]
-        xor     edx,esi
-        mov     DWORD [84+esp],ebx
-        xor     ecx,edi
-        ror     edx,5
-        and     ecx,esi
-        mov     DWORD [28+esp],esi
-        xor     edx,esi
-        add     ebx,DWORD [8+esp]
-        xor     edi,ecx
-        ror     edx,6
-        mov     esi,ebp
-        add     ebx,edi
-        ror     esi,9
-        mov     ecx,ebp
-        mov     edi,DWORD [16+esp]
-        xor     esi,ebp
-        mov     DWORD [12+esp],ebp
-        xor     ebp,edi
-        ror     esi,11
-        and     eax,ebp
-        lea     edx,[3584528711+edx*1+ebx]
-        xor     esi,ecx
-        xor     eax,edi
-        mov     ecx,DWORD [92+esp]
-        ror     esi,2
-        add     eax,edx
-        add     edx,DWORD [24+esp]
-        add     eax,esi
-        mov     esi,DWORD [80+esp]
-        mov     ebx,ecx
-        ror     ecx,11
-        mov     edi,esi
-        ror     esi,2
-        xor     ecx,ebx
-        shr     ebx,3
-        ror     ecx,7
-        xor     esi,edi
-        xor     ebx,ecx
-        ror     esi,17
-        add     ebx,DWORD [88+esp]
-        shr     edi,10
-        add     ebx,DWORD [60+esp]
-        mov     ecx,edx
-        xor     edi,esi
-        mov     esi,DWORD [28+esp]
-        ror     edx,14
-        add     ebx,edi
-        mov     edi,DWORD [esp]
-        xor     edx,ecx
-        mov     DWORD [88+esp],ebx
-        xor     esi,edi
-        ror     edx,5
-        and     esi,ecx
-        mov     DWORD [24+esp],ecx
-        xor     edx,ecx
-        add     ebx,DWORD [4+esp]
-        xor     edi,esi
-        ror     edx,6
-        mov     ecx,eax
-        add     ebx,edi
-        ror     ecx,9
-        mov     esi,eax
-        mov     edi,DWORD [12+esp]
-        xor     ecx,eax
-        mov     DWORD [8+esp],eax
-        xor     eax,edi
-        ror     ecx,11
-        and     ebp,eax
-        lea     edx,[113926993+edx*1+ebx]
-        xor     ecx,esi
-        xor     ebp,edi
-        mov     esi,DWORD [32+esp]
-        ror     ecx,2
-        add     ebp,edx
-        add     edx,DWORD [20+esp]
-        add     ebp,ecx
-        mov     ecx,DWORD [84+esp]
-        mov     ebx,esi
-        ror     esi,11
-        mov     edi,ecx
-        ror     ecx,2
-        xor     esi,ebx
-        shr     ebx,3
-        ror     esi,7
-        xor     ecx,edi
-        xor     ebx,esi
-        ror     ecx,17
-        add     ebx,DWORD [92+esp]
-        shr     edi,10
-        add     ebx,DWORD [64+esp]
-        mov     esi,edx
-        xor     edi,ecx
-        mov     ecx,DWORD [24+esp]
-        ror     edx,14
-        add     ebx,edi
-        mov     edi,DWORD [28+esp]
-        xor     edx,esi
-        mov     DWORD [92+esp],ebx
-        xor     ecx,edi
-        ror     edx,5
-        and     ecx,esi
-        mov     DWORD [20+esp],esi
-        xor     edx,esi
-        add     ebx,DWORD [esp]
-        xor     edi,ecx
-        ror     edx,6
-        mov     esi,ebp
-        add     ebx,edi
-        ror     esi,9
-        mov     ecx,ebp
-        mov     edi,DWORD [8+esp]
-        xor     esi,ebp
-        mov     DWORD [4+esp],ebp
-        xor     ebp,edi
-        ror     esi,11
-        and     eax,ebp
-        lea     edx,[338241895+edx*1+ebx]
-        xor     esi,ecx
-        xor     eax,edi
-        mov     ecx,DWORD [36+esp]
-        ror     esi,2
-        add     eax,edx
-        add     edx,DWORD [16+esp]
-        add     eax,esi
-        mov     esi,DWORD [88+esp]
-        mov     ebx,ecx
-        ror     ecx,11
-        mov     edi,esi
-        ror     esi,2
-        xor     ecx,ebx
-        shr     ebx,3
-        ror     ecx,7
-        xor     esi,edi
-        xor     ebx,ecx
-        ror     esi,17
-        add     ebx,DWORD [32+esp]
-        shr     edi,10
-        add     ebx,DWORD [68+esp]
-        mov     ecx,edx
-        xor     edi,esi
-        mov     esi,DWORD [20+esp]
-        ror     edx,14
-        add     ebx,edi
-        mov     edi,DWORD [24+esp]
-        xor     edx,ecx
-        mov     DWORD [32+esp],ebx
-        xor     esi,edi
-        ror     edx,5
-        and     esi,ecx
-        mov     DWORD [16+esp],ecx
-        xor     edx,ecx
-        add     ebx,DWORD [28+esp]
-        xor     edi,esi
-        ror     edx,6
-        mov     ecx,eax
-        add     ebx,edi
-        ror     ecx,9
-        mov     esi,eax
-        mov     edi,DWORD [4+esp]
-        xor     ecx,eax
-        mov     DWORD [esp],eax
-        xor     eax,edi
-        ror     ecx,11
-        and     ebp,eax
-        lea     edx,[666307205+edx*1+ebx]
-        xor     ecx,esi
-        xor     ebp,edi
-        mov     esi,DWORD [40+esp]
-        ror     ecx,2
-        add     ebp,edx
-        add     edx,DWORD [12+esp]
-        add     ebp,ecx
-        mov     ecx,DWORD [92+esp]
-        mov     ebx,esi
-        ror     esi,11
-        mov     edi,ecx
-        ror     ecx,2
-        xor     esi,ebx
-        shr     ebx,3
-        ror     esi,7
-        xor     ecx,edi
-        xor     ebx,esi
-        ror     ecx,17
-        add     ebx,DWORD [36+esp]
-        shr     edi,10
-        add     ebx,DWORD [72+esp]
-        mov     esi,edx
-        xor     edi,ecx
-        mov     ecx,DWORD [16+esp]
-        ror     edx,14
-        add     ebx,edi
-        mov     edi,DWORD [20+esp]
-        xor     edx,esi
-        mov     DWORD [36+esp],ebx
-        xor     ecx,edi
-        ror     edx,5
-        and     ecx,esi
-        mov     DWORD [12+esp],esi
-        xor     edx,esi
-        add     ebx,DWORD [24+esp]
-        xor     edi,ecx
-        ror     edx,6
-        mov     esi,ebp
-        add     ebx,edi
-        ror     esi,9
-        mov     ecx,ebp
-        mov     edi,DWORD [esp]
-        xor     esi,ebp
-        mov     DWORD [28+esp],ebp
-        xor     ebp,edi
-        ror     esi,11
-        and     eax,ebp
-        lea     edx,[773529912+edx*1+ebx]
-        xor     esi,ecx
-        xor     eax,edi
-        mov     ecx,DWORD [44+esp]
-        ror     esi,2
-        add     eax,edx
-        add     edx,DWORD [8+esp]
-        add     eax,esi
-        mov     esi,DWORD [32+esp]
-        mov     ebx,ecx
-        ror     ecx,11
-        mov     edi,esi
-        ror     esi,2
-        xor     ecx,ebx
-        shr     ebx,3
-        ror     ecx,7
-        xor     esi,edi
-        xor     ebx,ecx
-        ror     esi,17
-        add     ebx,DWORD [40+esp]
-        shr     edi,10
-        add     ebx,DWORD [76+esp]
-        mov     ecx,edx
-        xor     edi,esi
-        mov     esi,DWORD [12+esp]
-        ror     edx,14
-        add     ebx,edi
-        mov     edi,DWORD [16+esp]
-        xor     edx,ecx
-        mov     DWORD [40+esp],ebx
-        xor     esi,edi
-        ror     edx,5
-        and     esi,ecx
-        mov     DWORD [8+esp],ecx
-        xor     edx,ecx
-        add     ebx,DWORD [20+esp]
-        xor     edi,esi
-        ror     edx,6
-        mov     ecx,eax
-        add     ebx,edi
-        ror     ecx,9
-        mov     esi,eax
-        mov     edi,DWORD [28+esp]
-        xor     ecx,eax
-        mov     DWORD [24+esp],eax
-        xor     eax,edi
-        ror     ecx,11
-        and     ebp,eax
-        lea     edx,[1294757372+edx*1+ebx]
-        xor     ecx,esi
-        xor     ebp,edi
-        mov     esi,DWORD [48+esp]
-        ror     ecx,2
-        add     ebp,edx
-        add     edx,DWORD [4+esp]
-        add     ebp,ecx
-        mov     ecx,DWORD [36+esp]
-        mov     ebx,esi
-        ror     esi,11
-        mov     edi,ecx
-        ror     ecx,2
-        xor     esi,ebx
-        shr     ebx,3
-        ror     esi,7
-        xor     ecx,edi
-        xor     ebx,esi
-        ror     ecx,17
-        add     ebx,DWORD [44+esp]
-        shr     edi,10
-        add     ebx,DWORD [80+esp]
-        mov     esi,edx
-        xor     edi,ecx
-        mov     ecx,DWORD [8+esp]
-        ror     edx,14
-        add     ebx,edi
-        mov     edi,DWORD [12+esp]
-        xor     edx,esi
-        mov     DWORD [44+esp],ebx
-        xor     ecx,edi
-        ror     edx,5
-        and     ecx,esi
-        mov     DWORD [4+esp],esi
-        xor     edx,esi
-        add     ebx,DWORD [16+esp]
-        xor     edi,ecx
-        ror     edx,6
-        mov     esi,ebp
-        add     ebx,edi
-        ror     esi,9
-        mov     ecx,ebp
-        mov     edi,DWORD [24+esp]
-        xor     esi,ebp
-        mov     DWORD [20+esp],ebp
-        xor     ebp,edi
-        ror     esi,11
-        and     eax,ebp
-        lea     edx,[1396182291+edx*1+ebx]
-        xor     esi,ecx
-        xor     eax,edi
-        mov     ecx,DWORD [52+esp]
-        ror     esi,2
-        add     eax,edx
-        add     edx,DWORD [esp]
-        add     eax,esi
-        mov     esi,DWORD [40+esp]
-        mov     ebx,ecx
-        ror     ecx,11
-        mov     edi,esi
-        ror     esi,2
-        xor     ecx,ebx
-        shr     ebx,3
-        ror     ecx,7
-        xor     esi,edi
-        xor     ebx,ecx
-        ror     esi,17
-        add     ebx,DWORD [48+esp]
-        shr     edi,10
-        add     ebx,DWORD [84+esp]
-        mov     ecx,edx
-        xor     edi,esi
-        mov     esi,DWORD [4+esp]
-        ror     edx,14
-        add     ebx,edi
-        mov     edi,DWORD [8+esp]
-        xor     edx,ecx
-        mov     DWORD [48+esp],ebx
-        xor     esi,edi
-        ror     edx,5
-        and     esi,ecx
-        mov     DWORD [esp],ecx
-        xor     edx,ecx
-        add     ebx,DWORD [12+esp]
-        xor     edi,esi
-        ror     edx,6
-        mov     ecx,eax
-        add     ebx,edi
-        ror     ecx,9
-        mov     esi,eax
-        mov     edi,DWORD [20+esp]
-        xor     ecx,eax
-        mov     DWORD [16+esp],eax
-        xor     eax,edi
-        ror     ecx,11
-        and     ebp,eax
-        lea     edx,[1695183700+edx*1+ebx]
-        xor     ecx,esi
-        xor     ebp,edi
-        mov     esi,DWORD [56+esp]
-        ror     ecx,2
-        add     ebp,edx
-        add     edx,DWORD [28+esp]
-        add     ebp,ecx
-        mov     ecx,DWORD [44+esp]
-        mov     ebx,esi
-        ror     esi,11
-        mov     edi,ecx
-        ror     ecx,2
-        xor     esi,ebx
-        shr     ebx,3
-        ror     esi,7
-        xor     ecx,edi
-        xor     ebx,esi
-        ror     ecx,17
-        add     ebx,DWORD [52+esp]
-        shr     edi,10
-        add     ebx,DWORD [88+esp]
-        mov     esi,edx
-        xor     edi,ecx
-        mov     ecx,DWORD [esp]
-        ror     edx,14
-        add     ebx,edi
-        mov     edi,DWORD [4+esp]
-        xor     edx,esi
-        mov     DWORD [52+esp],ebx
-        xor     ecx,edi
-        ror     edx,5
-        and     ecx,esi
-        mov     DWORD [28+esp],esi
-        xor     edx,esi
-        add     ebx,DWORD [8+esp]
-        xor     edi,ecx
-        ror     edx,6
-        mov     esi,ebp
-        add     ebx,edi
-        ror     esi,9
-        mov     ecx,ebp
-        mov     edi,DWORD [16+esp]
-        xor     esi,ebp
-        mov     DWORD [12+esp],ebp
-        xor     ebp,edi
-        ror     esi,11
-        and     eax,ebp
-        lea     edx,[1986661051+edx*1+ebx]
-        xor     esi,ecx
-        xor     eax,edi
-        mov     ecx,DWORD [60+esp]
-        ror     esi,2
-        add     eax,edx
-        add     edx,DWORD [24+esp]
-        add     eax,esi
-        mov     esi,DWORD [48+esp]
-        mov     ebx,ecx
-        ror     ecx,11
-        mov     edi,esi
-        ror     esi,2
-        xor     ecx,ebx
-        shr     ebx,3
-        ror     ecx,7
-        xor     esi,edi
-        xor     ebx,ecx
-        ror     esi,17
-        add     ebx,DWORD [56+esp]
-        shr     edi,10
-        add     ebx,DWORD [92+esp]
-        mov     ecx,edx
-        xor     edi,esi
-        mov     esi,DWORD [28+esp]
-        ror     edx,14
-        add     ebx,edi
-        mov     edi,DWORD [esp]
-        xor     edx,ecx
-        mov     DWORD [56+esp],ebx
-        xor     esi,edi
-        ror     edx,5
-        and     esi,ecx
-        mov     DWORD [24+esp],ecx
-        xor     edx,ecx
-        add     ebx,DWORD [4+esp]
-        xor     edi,esi
-        ror     edx,6
-        mov     ecx,eax
-        add     ebx,edi
-        ror     ecx,9
-        mov     esi,eax
-        mov     edi,DWORD [12+esp]
-        xor     ecx,eax
-        mov     DWORD [8+esp],eax
-        xor     eax,edi
-        ror     ecx,11
-        and     ebp,eax
-        lea     edx,[2177026350+edx*1+ebx]
-        xor     ecx,esi
-        xor     ebp,edi
-        mov     esi,DWORD [64+esp]
-        ror     ecx,2
-        add     ebp,edx
-        add     edx,DWORD [20+esp]
-        add     ebp,ecx
-        mov     ecx,DWORD [52+esp]
-        mov     ebx,esi
-        ror     esi,11
-        mov     edi,ecx
-        ror     ecx,2
-        xor     esi,ebx
-        shr     ebx,3
-        ror     esi,7
-        xor     ecx,edi
-        xor     ebx,esi
-        ror     ecx,17
-        add     ebx,DWORD [60+esp]
-        shr     edi,10
-        add     ebx,DWORD [32+esp]
-        mov     esi,edx
-        xor     edi,ecx
-        mov     ecx,DWORD [24+esp]
-        ror     edx,14
-        add     ebx,edi
-        mov     edi,DWORD [28+esp]
-        xor     edx,esi
-        mov     DWORD [60+esp],ebx
-        xor     ecx,edi
-        ror     edx,5
-        and     ecx,esi
-        mov     DWORD [20+esp],esi
-        xor     edx,esi
-        add     ebx,DWORD [esp]
-        xor     edi,ecx
-        ror     edx,6
-        mov     esi,ebp
-        add     ebx,edi
-        ror     esi,9
-        mov     ecx,ebp
-        mov     edi,DWORD [8+esp]
-        xor     esi,ebp
-        mov     DWORD [4+esp],ebp
-        xor     ebp,edi
-        ror     esi,11
-        and     eax,ebp
-        lea     edx,[2456956037+edx*1+ebx]
-        xor     esi,ecx
-        xor     eax,edi
-        mov     ecx,DWORD [68+esp]
-        ror     esi,2
-        add     eax,edx
-        add     edx,DWORD [16+esp]
-        add     eax,esi
-        mov     esi,DWORD [56+esp]
-        mov     ebx,ecx
-        ror     ecx,11
-        mov     edi,esi
-        ror     esi,2
-        xor     ecx,ebx
-        shr     ebx,3
-        ror     ecx,7
-        xor     esi,edi
-        xor     ebx,ecx
-        ror     esi,17
-        add     ebx,DWORD [64+esp]
-        shr     edi,10
-        add     ebx,DWORD [36+esp]
-        mov     ecx,edx
-        xor     edi,esi
-        mov     esi,DWORD [20+esp]
-        ror     edx,14
-        add     ebx,edi
-        mov     edi,DWORD [24+esp]
-        xor     edx,ecx
-        mov     DWORD [64+esp],ebx
-        xor     esi,edi
-        ror     edx,5
-        and     esi,ecx
-        mov     DWORD [16+esp],ecx
-        xor     edx,ecx
-        add     ebx,DWORD [28+esp]
-        xor     edi,esi
-        ror     edx,6
-        mov     ecx,eax
-        add     ebx,edi
-        ror     ecx,9
-        mov     esi,eax
-        mov     edi,DWORD [4+esp]
-        xor     ecx,eax
-        mov     DWORD [esp],eax
-        xor     eax,edi
-        ror     ecx,11
-        and     ebp,eax
-        lea     edx,[2730485921+edx*1+ebx]
-        xor     ecx,esi
-        xor     ebp,edi
-        mov     esi,DWORD [72+esp]
-        ror     ecx,2
-        add     ebp,edx
-        add     edx,DWORD [12+esp]
-        add     ebp,ecx
-        mov     ecx,DWORD [60+esp]
-        mov     ebx,esi
-        ror     esi,11
-        mov     edi,ecx
-        ror     ecx,2
-        xor     esi,ebx
-        shr     ebx,3
-        ror     esi,7
-        xor     ecx,edi
-        xor     ebx,esi
-        ror     ecx,17
-        add     ebx,DWORD [68+esp]
-        shr     edi,10
-        add     ebx,DWORD [40+esp]
-        mov     esi,edx
-        xor     edi,ecx
-        mov     ecx,DWORD [16+esp]
-        ror     edx,14
-        add     ebx,edi
-        mov     edi,DWORD [20+esp]
-        xor     edx,esi
-        mov     DWORD [68+esp],ebx
-        xor     ecx,edi
-        ror     edx,5
-        and     ecx,esi
-        mov     DWORD [12+esp],esi
-        xor     edx,esi
-        add     ebx,DWORD [24+esp]
-        xor     edi,ecx
-        ror     edx,6
-        mov     esi,ebp
-        add     ebx,edi
-        ror     esi,9
-        mov     ecx,ebp
-        mov     edi,DWORD [esp]
-        xor     esi,ebp
-        mov     DWORD [28+esp],ebp
-        xor     ebp,edi
-        ror     esi,11
-        and     eax,ebp
-        lea     edx,[2820302411+edx*1+ebx]
-        xor     esi,ecx
-        xor     eax,edi
-        mov     ecx,DWORD [76+esp]
-        ror     esi,2
-        add     eax,edx
-        add     edx,DWORD [8+esp]
-        add     eax,esi
-        mov     esi,DWORD [64+esp]
-        mov     ebx,ecx
-        ror     ecx,11
-        mov     edi,esi
-        ror     esi,2
-        xor     ecx,ebx
-        shr     ebx,3
-        ror     ecx,7
-        xor     esi,edi
-        xor     ebx,ecx
-        ror     esi,17
-        add     ebx,DWORD [72+esp]
-        shr     edi,10
-        add     ebx,DWORD [44+esp]
-        mov     ecx,edx
-        xor     edi,esi
-        mov     esi,DWORD [12+esp]
-        ror     edx,14
-        add     ebx,edi
-        mov     edi,DWORD [16+esp]
-        xor     edx,ecx
-        mov     DWORD [72+esp],ebx
-        xor     esi,edi
-        ror     edx,5
-        and     esi,ecx
-        mov     DWORD [8+esp],ecx
-        xor     edx,ecx
-        add     ebx,DWORD [20+esp]
-        xor     edi,esi
-        ror     edx,6
-        mov     ecx,eax
-        add     ebx,edi
-        ror     ecx,9
-        mov     esi,eax
-        mov     edi,DWORD [28+esp]
-        xor     ecx,eax
-        mov     DWORD [24+esp],eax
-        xor     eax,edi
-        ror     ecx,11
-        and     ebp,eax
-        lea     edx,[3259730800+edx*1+ebx]
-        xor     ecx,esi
-        xor     ebp,edi
-        mov     esi,DWORD [80+esp]
-        ror     ecx,2
-        add     ebp,edx
-        add     edx,DWORD [4+esp]
-        add     ebp,ecx
-        mov     ecx,DWORD [68+esp]
-        mov     ebx,esi
-        ror     esi,11
-        mov     edi,ecx
-        ror     ecx,2
-        xor     esi,ebx
-        shr     ebx,3
-        ror     esi,7
-        xor     ecx,edi
-        xor     ebx,esi
-        ror     ecx,17
-        add     ebx,DWORD [76+esp]
-        shr     edi,10
-        add     ebx,DWORD [48+esp]
-        mov     esi,edx
-        xor     edi,ecx
-        mov     ecx,DWORD [8+esp]
-        ror     edx,14
-        add     ebx,edi
-        mov     edi,DWORD [12+esp]
-        xor     edx,esi
-        mov     DWORD [76+esp],ebx
-        xor     ecx,edi
-        ror     edx,5
-        and     ecx,esi
-        mov     DWORD [4+esp],esi
-        xor     edx,esi
-        add     ebx,DWORD [16+esp]
-        xor     edi,ecx
-        ror     edx,6
-        mov     esi,ebp
-        add     ebx,edi
-        ror     esi,9
-        mov     ecx,ebp
-        mov     edi,DWORD [24+esp]
-        xor     esi,ebp
-        mov     DWORD [20+esp],ebp
-        xor     ebp,edi
-        ror     esi,11
-        and     eax,ebp
-        lea     edx,[3345764771+edx*1+ebx]
-        xor     esi,ecx
-        xor     eax,edi
-        mov     ecx,DWORD [84+esp]
-        ror     esi,2
-        add     eax,edx
-        add     edx,DWORD [esp]
-        add     eax,esi
-        mov     esi,DWORD [72+esp]
-        mov     ebx,ecx
-        ror     ecx,11
-        mov     edi,esi
-        ror     esi,2
-        xor     ecx,ebx
-        shr     ebx,3
-        ror     ecx,7
-        xor     esi,edi
-        xor     ebx,ecx
-        ror     esi,17
-        add     ebx,DWORD [80+esp]
-        shr     edi,10
-        add     ebx,DWORD [52+esp]
-        mov     ecx,edx
-        xor     edi,esi
-        mov     esi,DWORD [4+esp]
-        ror     edx,14
-        add     ebx,edi
-        mov     edi,DWORD [8+esp]
-        xor     edx,ecx
-        mov     DWORD [80+esp],ebx
-        xor     esi,edi
-        ror     edx,5
-        and     esi,ecx
-        mov     DWORD [esp],ecx
-        xor     edx,ecx
-        add     ebx,DWORD [12+esp]
-        xor     edi,esi
-        ror     edx,6
-        mov     ecx,eax
-        add     ebx,edi
-        ror     ecx,9
-        mov     esi,eax
-        mov     edi,DWORD [20+esp]
-        xor     ecx,eax
-        mov     DWORD [16+esp],eax
-        xor     eax,edi
-        ror     ecx,11
-        and     ebp,eax
-        lea     edx,[3516065817+edx*1+ebx]
-        xor     ecx,esi
-        xor     ebp,edi
-        mov     esi,DWORD [88+esp]
-        ror     ecx,2
-        add     ebp,edx
-        add     edx,DWORD [28+esp]
-        add     ebp,ecx
-        mov     ecx,DWORD [76+esp]
-        mov     ebx,esi
-        ror     esi,11
-        mov     edi,ecx
-        ror     ecx,2
-        xor     esi,ebx
-        shr     ebx,3
-        ror     esi,7
-        xor     ecx,edi
-        xor     ebx,esi
-        ror     ecx,17
-        add     ebx,DWORD [84+esp]
-        shr     edi,10
-        add     ebx,DWORD [56+esp]
-        mov     esi,edx
-        xor     edi,ecx
-        mov     ecx,DWORD [esp]
-        ror     edx,14
-        add     ebx,edi
-        mov     edi,DWORD [4+esp]
-        xor     edx,esi
-        mov     DWORD [84+esp],ebx
-        xor     ecx,edi
-        ror     edx,5
-        and     ecx,esi
-        mov     DWORD [28+esp],esi
-        xor     edx,esi
-        add     ebx,DWORD [8+esp]
-        xor     edi,ecx
-        ror     edx,6
-        mov     esi,ebp
-        add     ebx,edi
-        ror     esi,9
-        mov     ecx,ebp
-        mov     edi,DWORD [16+esp]
-        xor     esi,ebp
-        mov     DWORD [12+esp],ebp
-        xor     ebp,edi
-        ror     esi,11
-        and     eax,ebp
-        lea     edx,[3600352804+edx*1+ebx]
-        xor     esi,ecx
-        xor     eax,edi
-        mov     ecx,DWORD [92+esp]
-        ror     esi,2
-        add     eax,edx
-        add     edx,DWORD [24+esp]
-        add     eax,esi
-        mov     esi,DWORD [80+esp]
-        mov     ebx,ecx
-        ror     ecx,11
-        mov     edi,esi
-        ror     esi,2
-        xor     ecx,ebx
-        shr     ebx,3
-        ror     ecx,7
-        xor     esi,edi
-        xor     ebx,ecx
-        ror     esi,17
-        add     ebx,DWORD [88+esp]
-        shr     edi,10
-        add     ebx,DWORD [60+esp]
-        mov     ecx,edx
-        xor     edi,esi
-        mov     esi,DWORD [28+esp]
-        ror     edx,14
-        add     ebx,edi
-        mov     edi,DWORD [esp]
-        xor     edx,ecx
-        mov     DWORD [88+esp],ebx
-        xor     esi,edi
-        ror     edx,5
-        and     esi,ecx
-        mov     DWORD [24+esp],ecx
-        xor     edx,ecx
-        add     ebx,DWORD [4+esp]
-        xor     edi,esi
-        ror     edx,6
-        mov     ecx,eax
-        add     ebx,edi
-        ror     ecx,9
-        mov     esi,eax
-        mov     edi,DWORD [12+esp]
-        xor     ecx,eax
-        mov     DWORD [8+esp],eax
-        xor     eax,edi
-        ror     ecx,11
-        and     ebp,eax
-        lea     edx,[4094571909+edx*1+ebx]
-        xor     ecx,esi
-        xor     ebp,edi
-        mov     esi,DWORD [32+esp]
-        ror     ecx,2
-        add     ebp,edx
-        add     edx,DWORD [20+esp]
-        add     ebp,ecx
-        mov     ecx,DWORD [84+esp]
-        mov     ebx,esi
-        ror     esi,11
-        mov     edi,ecx
-        ror     ecx,2
-        xor     esi,ebx
-        shr     ebx,3
-        ror     esi,7
-        xor     ecx,edi
-        xor     ebx,esi
-        ror     ecx,17
-        add     ebx,DWORD [92+esp]
-        shr     edi,10
-        add     ebx,DWORD [64+esp]
-        mov     esi,edx
-        xor     edi,ecx
-        mov     ecx,DWORD [24+esp]
-        ror     edx,14
-        add     ebx,edi
-        mov     edi,DWORD [28+esp]
-        xor     edx,esi
-        mov     DWORD [92+esp],ebx
-        xor     ecx,edi
-        ror     edx,5
-        and     ecx,esi
-        mov     DWORD [20+esp],esi
-        xor     edx,esi
-        add     ebx,DWORD [esp]
-        xor     edi,ecx
-        ror     edx,6
-        mov     esi,ebp
-        add     ebx,edi
-        ror     esi,9
-        mov     ecx,ebp
-        mov     edi,DWORD [8+esp]
-        xor     esi,ebp
-        mov     DWORD [4+esp],ebp
-        xor     ebp,edi
-        ror     esi,11
-        and     eax,ebp
-        lea     edx,[275423344+edx*1+ebx]
-        xor     esi,ecx
-        xor     eax,edi
-        mov     ecx,DWORD [36+esp]
-        ror     esi,2
-        add     eax,edx
-        add     edx,DWORD [16+esp]
-        add     eax,esi
-        mov     esi,DWORD [88+esp]
-        mov     ebx,ecx
-        ror     ecx,11
-        mov     edi,esi
-        ror     esi,2
-        xor     ecx,ebx
-        shr     ebx,3
-        ror     ecx,7
-        xor     esi,edi
-        xor     ebx,ecx
-        ror     esi,17
-        add     ebx,DWORD [32+esp]
-        shr     edi,10
-        add     ebx,DWORD [68+esp]
-        mov     ecx,edx
-        xor     edi,esi
-        mov     esi,DWORD [20+esp]
-        ror     edx,14
-        add     ebx,edi
-        mov     edi,DWORD [24+esp]
-        xor     edx,ecx
-        mov     DWORD [32+esp],ebx
-        xor     esi,edi
-        ror     edx,5
-        and     esi,ecx
-        mov     DWORD [16+esp],ecx
-        xor     edx,ecx
-        add     ebx,DWORD [28+esp]
-        xor     edi,esi
-        ror     edx,6
-        mov     ecx,eax
-        add     ebx,edi
-        ror     ecx,9
-        mov     esi,eax
-        mov     edi,DWORD [4+esp]
-        xor     ecx,eax
-        mov     DWORD [esp],eax
-        xor     eax,edi
-        ror     ecx,11
-        and     ebp,eax
-        lea     edx,[430227734+edx*1+ebx]
-        xor     ecx,esi
-        xor     ebp,edi
-        mov     esi,DWORD [40+esp]
-        ror     ecx,2
-        add     ebp,edx
-        add     edx,DWORD [12+esp]
-        add     ebp,ecx
-        mov     ecx,DWORD [92+esp]
-        mov     ebx,esi
-        ror     esi,11
-        mov     edi,ecx
-        ror     ecx,2
-        xor     esi,ebx
-        shr     ebx,3
-        ror     esi,7
-        xor     ecx,edi
-        xor     ebx,esi
-        ror     ecx,17
-        add     ebx,DWORD [36+esp]
-        shr     edi,10
-        add     ebx,DWORD [72+esp]
-        mov     esi,edx
-        xor     edi,ecx
-        mov     ecx,DWORD [16+esp]
-        ror     edx,14
-        add     ebx,edi
-        mov     edi,DWORD [20+esp]
-        xor     edx,esi
-        mov     DWORD [36+esp],ebx
-        xor     ecx,edi
-        ror     edx,5
-        and     ecx,esi
-        mov     DWORD [12+esp],esi
-        xor     edx,esi
-        add     ebx,DWORD [24+esp]
-        xor     edi,ecx
-        ror     edx,6
-        mov     esi,ebp
-        add     ebx,edi
-        ror     esi,9
-        mov     ecx,ebp
-        mov     edi,DWORD [esp]
-        xor     esi,ebp
-        mov     DWORD [28+esp],ebp
-        xor     ebp,edi
-        ror     esi,11
-        and     eax,ebp
-        lea     edx,[506948616+edx*1+ebx]
-        xor     esi,ecx
-        xor     eax,edi
-        mov     ecx,DWORD [44+esp]
-        ror     esi,2
-        add     eax,edx
-        add     edx,DWORD [8+esp]
-        add     eax,esi
-        mov     esi,DWORD [32+esp]
-        mov     ebx,ecx
-        ror     ecx,11
-        mov     edi,esi
-        ror     esi,2
-        xor     ecx,ebx
-        shr     ebx,3
-        ror     ecx,7
-        xor     esi,edi
-        xor     ebx,ecx
-        ror     esi,17
-        add     ebx,DWORD [40+esp]
-        shr     edi,10
-        add     ebx,DWORD [76+esp]
-        mov     ecx,edx
-        xor     edi,esi
-        mov     esi,DWORD [12+esp]
-        ror     edx,14
-        add     ebx,edi
-        mov     edi,DWORD [16+esp]
-        xor     edx,ecx
-        mov     DWORD [40+esp],ebx
-        xor     esi,edi
-        ror     edx,5
-        and     esi,ecx
-        mov     DWORD [8+esp],ecx
-        xor     edx,ecx
-        add     ebx,DWORD [20+esp]
-        xor     edi,esi
-        ror     edx,6
-        mov     ecx,eax
-        add     ebx,edi
-        ror     ecx,9
-        mov     esi,eax
-        mov     edi,DWORD [28+esp]
-        xor     ecx,eax
-        mov     DWORD [24+esp],eax
-        xor     eax,edi
-        ror     ecx,11
-        and     ebp,eax
-        lea     edx,[659060556+edx*1+ebx]
-        xor     ecx,esi
-        xor     ebp,edi
-        mov     esi,DWORD [48+esp]
-        ror     ecx,2
-        add     ebp,edx
-        add     edx,DWORD [4+esp]
-        add     ebp,ecx
-        mov     ecx,DWORD [36+esp]
-        mov     ebx,esi
-        ror     esi,11
-        mov     edi,ecx
-        ror     ecx,2
-        xor     esi,ebx
-        shr     ebx,3
-        ror     esi,7
-        xor     ecx,edi
-        xor     ebx,esi
-        ror     ecx,17
-        add     ebx,DWORD [44+esp]
-        shr     edi,10
-        add     ebx,DWORD [80+esp]
-        mov     esi,edx
-        xor     edi,ecx
-        mov     ecx,DWORD [8+esp]
-        ror     edx,14
-        add     ebx,edi
-        mov     edi,DWORD [12+esp]
-        xor     edx,esi
-        mov     DWORD [44+esp],ebx
-        xor     ecx,edi
-        ror     edx,5
-        and     ecx,esi
-        mov     DWORD [4+esp],esi
-        xor     edx,esi
-        add     ebx,DWORD [16+esp]
-        xor     edi,ecx
-        ror     edx,6
-        mov     esi,ebp
-        add     ebx,edi
-        ror     esi,9
-        mov     ecx,ebp
-        mov     edi,DWORD [24+esp]
-        xor     esi,ebp
-        mov     DWORD [20+esp],ebp
-        xor     ebp,edi
-        ror     esi,11
-        and     eax,ebp
-        lea     edx,[883997877+edx*1+ebx]
-        xor     esi,ecx
-        xor     eax,edi
-        mov     ecx,DWORD [52+esp]
-        ror     esi,2
-        add     eax,edx
-        add     edx,DWORD [esp]
-        add     eax,esi
-        mov     esi,DWORD [40+esp]
-        mov     ebx,ecx
-        ror     ecx,11
-        mov     edi,esi
-        ror     esi,2
-        xor     ecx,ebx
-        shr     ebx,3
-        ror     ecx,7
-        xor     esi,edi
-        xor     ebx,ecx
-        ror     esi,17
-        add     ebx,DWORD [48+esp]
-        shr     edi,10
-        add     ebx,DWORD [84+esp]
-        mov     ecx,edx
-        xor     edi,esi
-        mov     esi,DWORD [4+esp]
-        ror     edx,14
-        add     ebx,edi
-        mov     edi,DWORD [8+esp]
-        xor     edx,ecx
-        mov     DWORD [48+esp],ebx
-        xor     esi,edi
-        ror     edx,5
-        and     esi,ecx
-        mov     DWORD [esp],ecx
-        xor     edx,ecx
-        add     ebx,DWORD [12+esp]
-        xor     edi,esi
-        ror     edx,6
-        mov     ecx,eax
-        add     ebx,edi
-        ror     ecx,9
-        mov     esi,eax
-        mov     edi,DWORD [20+esp]
-        xor     ecx,eax
-        mov     DWORD [16+esp],eax
-        xor     eax,edi
-        ror     ecx,11
-        and     ebp,eax
-        lea     edx,[958139571+edx*1+ebx]
-        xor     ecx,esi
-        xor     ebp,edi
-        mov     esi,DWORD [56+esp]
-        ror     ecx,2
-        add     ebp,edx
-        add     edx,DWORD [28+esp]
-        add     ebp,ecx
-        mov     ecx,DWORD [44+esp]
-        mov     ebx,esi
-        ror     esi,11
-        mov     edi,ecx
-        ror     ecx,2
-        xor     esi,ebx
-        shr     ebx,3
-        ror     esi,7
-        xor     ecx,edi
-        xor     ebx,esi
-        ror     ecx,17
-        add     ebx,DWORD [52+esp]
-        shr     edi,10
-        add     ebx,DWORD [88+esp]
-        mov     esi,edx
-        xor     edi,ecx
-        mov     ecx,DWORD [esp]
-        ror     edx,14
-        add     ebx,edi
-        mov     edi,DWORD [4+esp]
-        xor     edx,esi
-        mov     DWORD [52+esp],ebx
-        xor     ecx,edi
-        ror     edx,5
-        and     ecx,esi
-        mov     DWORD [28+esp],esi
-        xor     edx,esi
-        add     ebx,DWORD [8+esp]
-        xor     edi,ecx
-        ror     edx,6
-        mov     esi,ebp
-        add     ebx,edi
-        ror     esi,9
-        mov     ecx,ebp
-        mov     edi,DWORD [16+esp]
-        xor     esi,ebp
-        mov     DWORD [12+esp],ebp
-        xor     ebp,edi
-        ror     esi,11
-        and     eax,ebp
-        lea     edx,[1322822218+edx*1+ebx]
-        xor     esi,ecx
-        xor     eax,edi
-        mov     ecx,DWORD [60+esp]
-        ror     esi,2
-        add     eax,edx
-        add     edx,DWORD [24+esp]
-        add     eax,esi
-        mov     esi,DWORD [48+esp]
-        mov     ebx,ecx
-        ror     ecx,11
-        mov     edi,esi
-        ror     esi,2
-        xor     ecx,ebx
-        shr     ebx,3
-        ror     ecx,7
-        xor     esi,edi
-        xor     ebx,ecx
-        ror     esi,17
-        add     ebx,DWORD [56+esp]
-        shr     edi,10
-        add     ebx,DWORD [92+esp]
-        mov     ecx,edx
-        xor     edi,esi
-        mov     esi,DWORD [28+esp]
-        ror     edx,14
-        add     ebx,edi
-        mov     edi,DWORD [esp]
-        xor     edx,ecx
-        mov     DWORD [56+esp],ebx
-        xor     esi,edi
-        ror     edx,5
-        and     esi,ecx
-        mov     DWORD [24+esp],ecx
-        xor     edx,ecx
-        add     ebx,DWORD [4+esp]
-        xor     edi,esi
-        ror     edx,6
-        mov     ecx,eax
-        add     ebx,edi
-        ror     ecx,9
-        mov     esi,eax
-        mov     edi,DWORD [12+esp]
-        xor     ecx,eax
-        mov     DWORD [8+esp],eax
-        xor     eax,edi
-        ror     ecx,11
-        and     ebp,eax
-        lea     edx,[1537002063+edx*1+ebx]
-        xor     ecx,esi
-        xor     ebp,edi
-        mov     esi,DWORD [64+esp]
-        ror     ecx,2
-        add     ebp,edx
-        add     edx,DWORD [20+esp]
-        add     ebp,ecx
-        mov     ecx,DWORD [52+esp]
-        mov     ebx,esi
-        ror     esi,11
-        mov     edi,ecx
-        ror     ecx,2
-        xor     esi,ebx
-        shr     ebx,3
-        ror     esi,7
-        xor     ecx,edi
-        xor     ebx,esi
-        ror     ecx,17
-        add     ebx,DWORD [60+esp]
-        shr     edi,10
-        add     ebx,DWORD [32+esp]
-        mov     esi,edx
-        xor     edi,ecx
-        mov     ecx,DWORD [24+esp]
-        ror     edx,14
-        add     ebx,edi
-        mov     edi,DWORD [28+esp]
-        xor     edx,esi
-        mov     DWORD [60+esp],ebx
-        xor     ecx,edi
-        ror     edx,5
-        and     ecx,esi
-        mov     DWORD [20+esp],esi
-        xor     edx,esi
-        add     ebx,DWORD [esp]
-        xor     edi,ecx
-        ror     edx,6
-        mov     esi,ebp
-        add     ebx,edi
-        ror     esi,9
-        mov     ecx,ebp
-        mov     edi,DWORD [8+esp]
-        xor     esi,ebp
-        mov     DWORD [4+esp],ebp
-        xor     ebp,edi
-        ror     esi,11
-        and     eax,ebp
-        lea     edx,[1747873779+edx*1+ebx]
-        xor     esi,ecx
-        xor     eax,edi
-        mov     ecx,DWORD [68+esp]
-        ror     esi,2
-        add     eax,edx
-        add     edx,DWORD [16+esp]
-        add     eax,esi
-        mov     esi,DWORD [56+esp]
-        mov     ebx,ecx
-        ror     ecx,11
-        mov     edi,esi
-        ror     esi,2
-        xor     ecx,ebx
-        shr     ebx,3
-        ror     ecx,7
-        xor     esi,edi
-        xor     ebx,ecx
-        ror     esi,17
-        add     ebx,DWORD [64+esp]
-        shr     edi,10
-        add     ebx,DWORD [36+esp]
-        mov     ecx,edx
-        xor     edi,esi
-        mov     esi,DWORD [20+esp]
-        ror     edx,14
-        add     ebx,edi
-        mov     edi,DWORD [24+esp]
-        xor     edx,ecx
-        mov     DWORD [64+esp],ebx
-        xor     esi,edi
-        ror     edx,5
-        and     esi,ecx
-        mov     DWORD [16+esp],ecx
-        xor     edx,ecx
-        add     ebx,DWORD [28+esp]
-        xor     edi,esi
-        ror     edx,6
-        mov     ecx,eax
-        add     ebx,edi
-        ror     ecx,9
-        mov     esi,eax
-        mov     edi,DWORD [4+esp]
-        xor     ecx,eax
-        mov     DWORD [esp],eax
-        xor     eax,edi
-        ror     ecx,11
-        and     ebp,eax
-        lea     edx,[1955562222+edx*1+ebx]
-        xor     ecx,esi
-        xor     ebp,edi
-        mov     esi,DWORD [72+esp]
-        ror     ecx,2
-        add     ebp,edx
-        add     edx,DWORD [12+esp]
-        add     ebp,ecx
-        mov     ecx,DWORD [60+esp]
-        mov     ebx,esi
-        ror     esi,11
-        mov     edi,ecx
-        ror     ecx,2
-        xor     esi,ebx
-        shr     ebx,3
-        ror     esi,7
-        xor     ecx,edi
-        xor     ebx,esi
-        ror     ecx,17
-        add     ebx,DWORD [68+esp]
-        shr     edi,10
-        add     ebx,DWORD [40+esp]
-        mov     esi,edx
-        xor     edi,ecx
-        mov     ecx,DWORD [16+esp]
-        ror     edx,14
-        add     ebx,edi
-        mov     edi,DWORD [20+esp]
-        xor     edx,esi
-        mov     DWORD [68+esp],ebx
-        xor     ecx,edi
-        ror     edx,5
-        and     ecx,esi
-        mov     DWORD [12+esp],esi
-        xor     edx,esi
-        add     ebx,DWORD [24+esp]
-        xor     edi,ecx
-        ror     edx,6
-        mov     esi,ebp
-        add     ebx,edi
-        ror     esi,9
-        mov     ecx,ebp
-        mov     edi,DWORD [esp]
-        xor     esi,ebp
-        mov     DWORD [28+esp],ebp
-        xor     ebp,edi
-        ror     esi,11
-        and     eax,ebp
-        lea     edx,[2024104815+edx*1+ebx]
-        xor     esi,ecx
-        xor     eax,edi
-        mov     ecx,DWORD [76+esp]
-        ror     esi,2
-        add     eax,edx
-        add     edx,DWORD [8+esp]
-        add     eax,esi
-        mov     esi,DWORD [64+esp]
-        mov     ebx,ecx
-        ror     ecx,11
-        mov     edi,esi
-        ror     esi,2
-        xor     ecx,ebx
-        shr     ebx,3
-        ror     ecx,7
-        xor     esi,edi
-        xor     ebx,ecx
-        ror     esi,17
-        add     ebx,DWORD [72+esp]
-        shr     edi,10
-        add     ebx,DWORD [44+esp]
-        mov     ecx,edx
-        xor     edi,esi
-        mov     esi,DWORD [12+esp]
-        ror     edx,14
-        add     ebx,edi
-        mov     edi,DWORD [16+esp]
-        xor     edx,ecx
-        mov     DWORD [72+esp],ebx
-        xor     esi,edi
-        ror     edx,5
-        and     esi,ecx
-        mov     DWORD [8+esp],ecx
-        xor     edx,ecx
-        add     ebx,DWORD [20+esp]
-        xor     edi,esi
-        ror     edx,6
-        mov     ecx,eax
-        add     ebx,edi
-        ror     ecx,9
-        mov     esi,eax
-        mov     edi,DWORD [28+esp]
-        xor     ecx,eax
-        mov     DWORD [24+esp],eax
-        xor     eax,edi
-        ror     ecx,11
-        and     ebp,eax
-        lea     edx,[2227730452+edx*1+ebx]
-        xor     ecx,esi
-        xor     ebp,edi
-        mov     esi,DWORD [80+esp]
-        ror     ecx,2
-        add     ebp,edx
-        add     edx,DWORD [4+esp]
-        add     ebp,ecx
-        mov     ecx,DWORD [68+esp]
-        mov     ebx,esi
-        ror     esi,11
-        mov     edi,ecx
-        ror     ecx,2
-        xor     esi,ebx
-        shr     ebx,3
-        ror     esi,7
-        xor     ecx,edi
-        xor     ebx,esi
-        ror     ecx,17
-        add     ebx,DWORD [76+esp]
-        shr     edi,10
-        add     ebx,DWORD [48+esp]
-        mov     esi,edx
-        xor     edi,ecx
-        mov     ecx,DWORD [8+esp]
-        ror     edx,14
-        add     ebx,edi
-        mov     edi,DWORD [12+esp]
-        xor     edx,esi
-        mov     DWORD [76+esp],ebx
-        xor     ecx,edi
-        ror     edx,5
-        and     ecx,esi
-        mov     DWORD [4+esp],esi
-        xor     edx,esi
-        add     ebx,DWORD [16+esp]
-        xor     edi,ecx
-        ror     edx,6
-        mov     esi,ebp
-        add     ebx,edi
-        ror     esi,9
-        mov     ecx,ebp
-        mov     edi,DWORD [24+esp]
-        xor     esi,ebp
-        mov     DWORD [20+esp],ebp
-        xor     ebp,edi
-        ror     esi,11
-        and     eax,ebp
-        lea     edx,[2361852424+edx*1+ebx]
-        xor     esi,ecx
-        xor     eax,edi
-        mov     ecx,DWORD [84+esp]
-        ror     esi,2
-        add     eax,edx
-        add     edx,DWORD [esp]
-        add     eax,esi
-        mov     esi,DWORD [72+esp]
-        mov     ebx,ecx
-        ror     ecx,11
-        mov     edi,esi
-        ror     esi,2
-        xor     ecx,ebx
-        shr     ebx,3
-        ror     ecx,7
-        xor     esi,edi
-        xor     ebx,ecx
-        ror     esi,17
-        add     ebx,DWORD [80+esp]
-        shr     edi,10
-        add     ebx,DWORD [52+esp]
-        mov     ecx,edx
-        xor     edi,esi
-        mov     esi,DWORD [4+esp]
-        ror     edx,14
-        add     ebx,edi
-        mov     edi,DWORD [8+esp]
-        xor     edx,ecx
-        mov     DWORD [80+esp],ebx
-        xor     esi,edi
-        ror     edx,5
-        and     esi,ecx
-        mov     DWORD [esp],ecx
-        xor     edx,ecx
-        add     ebx,DWORD [12+esp]
-        xor     edi,esi
-        ror     edx,6
-        mov     ecx,eax
-        add     ebx,edi
-        ror     ecx,9
-        mov     esi,eax
-        mov     edi,DWORD [20+esp]
-        xor     ecx,eax
-        mov     DWORD [16+esp],eax
-        xor     eax,edi
-        ror     ecx,11
-        and     ebp,eax
-        lea     edx,[2428436474+edx*1+ebx]
-        xor     ecx,esi
-        xor     ebp,edi
-        mov     esi,DWORD [88+esp]
-        ror     ecx,2
-        add     ebp,edx
-        add     edx,DWORD [28+esp]
-        add     ebp,ecx
-        mov     ecx,DWORD [76+esp]
-        mov     ebx,esi
-        ror     esi,11
-        mov     edi,ecx
-        ror     ecx,2
-        xor     esi,ebx
-        shr     ebx,3
-        ror     esi,7
-        xor     ecx,edi
-        xor     ebx,esi
-        ror     ecx,17
-        add     ebx,DWORD [84+esp]
-        shr     edi,10
-        add     ebx,DWORD [56+esp]
-        mov     esi,edx
-        xor     edi,ecx
-        mov     ecx,DWORD [esp]
-        ror     edx,14
-        add     ebx,edi
-        mov     edi,DWORD [4+esp]
-        xor     edx,esi
-        mov     DWORD [84+esp],ebx
-        xor     ecx,edi
-        ror     edx,5
-        and     ecx,esi
-        mov     DWORD [28+esp],esi
-        xor     edx,esi
-        add     ebx,DWORD [8+esp]
-        xor     edi,ecx
-        ror     edx,6
-        mov     esi,ebp
-        add     ebx,edi
-        ror     esi,9
-        mov     ecx,ebp
-        mov     edi,DWORD [16+esp]
-        xor     esi,ebp
-        mov     DWORD [12+esp],ebp
-        xor     ebp,edi
-        ror     esi,11
-        and     eax,ebp
-        lea     edx,[2756734187+edx*1+ebx]
-        xor     esi,ecx
-        xor     eax,edi
-        mov     ecx,DWORD [92+esp]
-        ror     esi,2
-        add     eax,edx
-        add     edx,DWORD [24+esp]
-        add     eax,esi
-        mov     esi,DWORD [80+esp]
-        mov     ebx,ecx
-        ror     ecx,11
-        mov     edi,esi
-        ror     esi,2
-        xor     ecx,ebx
-        shr     ebx,3
-        ror     ecx,7
-        xor     esi,edi
-        xor     ebx,ecx
-        ror     esi,17
-        add     ebx,DWORD [88+esp]
-        shr     edi,10
-        add     ebx,DWORD [60+esp]
-        mov     ecx,edx
-        xor     edi,esi
-        mov     esi,DWORD [28+esp]
-        ror     edx,14
-        add     ebx,edi
-        mov     edi,DWORD [esp]
-        xor     edx,ecx
-        xor     esi,edi
-        ror     edx,5
-        and     esi,ecx
-        mov     DWORD [24+esp],ecx
-        xor     edx,ecx
-        add     ebx,DWORD [4+esp]
-        xor     edi,esi
-        ror     edx,6
-        mov     ecx,eax
-        add     ebx,edi
-        ror     ecx,9
-        mov     esi,eax
-        mov     edi,DWORD [12+esp]
-        xor     ecx,eax
-        mov     DWORD [8+esp],eax
-        xor     eax,edi
-        ror     ecx,11
-        and     ebp,eax
-        lea     edx,[3204031479+edx*1+ebx]
-        xor     ecx,esi
-        xor     ebp,edi
-        mov     esi,DWORD [32+esp]
-        ror     ecx,2
-        add     ebp,edx
-        add     edx,DWORD [20+esp]
-        add     ebp,ecx
-        mov     ecx,DWORD [84+esp]
-        mov     ebx,esi
-        ror     esi,11
-        mov     edi,ecx
-        ror     ecx,2
-        xor     esi,ebx
-        shr     ebx,3
-        ror     esi,7
-        xor     ecx,edi
-        xor     ebx,esi
-        ror     ecx,17
-        add     ebx,DWORD [92+esp]
-        shr     edi,10
-        add     ebx,DWORD [64+esp]
-        mov     esi,edx
-        xor     edi,ecx
-        mov     ecx,DWORD [24+esp]
-        ror     edx,14
-        add     ebx,edi
-        mov     edi,DWORD [28+esp]
-        xor     edx,esi
-        xor     ecx,edi
-        ror     edx,5
-        and     ecx,esi
-        mov     DWORD [20+esp],esi
-        xor     edx,esi
-        add     ebx,DWORD [esp]
-        xor     edi,ecx
-        ror     edx,6
-        mov     esi,ebp
-        add     ebx,edi
-        ror     esi,9
-        mov     ecx,ebp
-        mov     edi,DWORD [8+esp]
-        xor     esi,ebp
-        mov     DWORD [4+esp],ebp
-        xor     ebp,edi
-        ror     esi,11
-        and     eax,ebp
-        lea     edx,[3329325298+edx*1+ebx]
-        xor     esi,ecx
-        xor     eax,edi
-        ror     esi,2
-        add     eax,edx
-        add     edx,DWORD [16+esp]
-        add     eax,esi
-        mov     esi,DWORD [96+esp]
-        xor     ebp,edi
-        mov     ecx,DWORD [12+esp]
-        add     eax,DWORD [esi]
-        add     ebp,DWORD [4+esi]
-        add     edi,DWORD [8+esi]
-        add     ecx,DWORD [12+esi]
-        mov     DWORD [esi],eax
-        mov     DWORD [4+esi],ebp
-        mov     DWORD [8+esi],edi
-        mov     DWORD [12+esi],ecx
-        mov     DWORD [4+esp],ebp
-        xor     ebp,edi
-        mov     DWORD [8+esp],edi
-        mov     DWORD [12+esp],ecx
-        mov     edi,DWORD [20+esp]
-        mov     ebx,DWORD [24+esp]
-        mov     ecx,DWORD [28+esp]
-        add     edx,DWORD [16+esi]
-        add     edi,DWORD [20+esi]
-        add     ebx,DWORD [24+esi]
-        add     ecx,DWORD [28+esi]
-        mov     DWORD [16+esi],edx
-        mov     DWORD [20+esi],edi
-        mov     DWORD [24+esi],ebx
-        mov     DWORD [28+esi],ecx
-        mov     DWORD [20+esp],edi
-        mov     edi,DWORD [100+esp]
-        mov     DWORD [24+esp],ebx
-        mov     DWORD [28+esp],ecx
-        cmp     edi,DWORD [104+esp]
-        jb      NEAR L$009grand_loop
-        mov     esp,DWORD [108+esp]
-        pop     edi
-        pop     esi
-        pop     ebx
-        pop     ebp
-        ret
-segment .bss
-common  _OPENSSL_ia32cap_P 16
diff --git a/CryptoPkg/Library/OpensslLib/IA32/crypto/sha/sha512-586.nasm b/CryptoPkg/Library/OpensslLib/IA32/crypto/sha/sha512-586.nasm
deleted file mode 100644
index a168b4a79994..000000000000
--- a/CryptoPkg/Library/OpensslLib/IA32/crypto/sha/sha512-586.nasm
+++ /dev/null
@@ -1,579 +0,0 @@
-; WARNING: do not edit!
-; Generated from openssl/crypto/sha/asm/sha512-586.pl
-;
-; Copyright 2007-2020 The OpenSSL Project Authors. All Rights Reserved.
-;
-; Licensed under the OpenSSL license (the "License").  You may not use
-; this file except in compliance with the License.  You can obtain a copy
-; in the file LICENSE in the source distribution or at
-; https://www.openssl.org/source/license.html
-
-%ifidn __OUTPUT_FORMAT__,obj
-section code    use32 class=code align=64
-%elifidn __OUTPUT_FORMAT__,win32
-$@feat.00 equ 1
-section .text   code align=64
-%else
-section .text   code
-%endif
-global  _sha512_block_data_order
-align   16
-_sha512_block_data_order:
-L$_sha512_block_data_order_begin:
-        push    ebp
-        push    ebx
-        push    esi
-        push    edi
-        mov     esi,DWORD [20+esp]
-        mov     edi,DWORD [24+esp]
-        mov     eax,DWORD [28+esp]
-        mov     ebx,esp
-        call    L$000pic_point
-L$000pic_point:
-        pop     ebp
-        lea     ebp,[(L$001K512-L$000pic_point)+ebp]
-        sub     esp,16
-        and     esp,-64
-        shl     eax,7
-        add     eax,edi
-        mov     DWORD [esp],esi
-        mov     DWORD [4+esp],edi
-        mov     DWORD [8+esp],eax
-        mov     DWORD [12+esp],ebx
-align   16
-L$002loop_x86:
-        mov     eax,DWORD [edi]
-        mov     ebx,DWORD [4+edi]
-        mov     ecx,DWORD [8+edi]
-        mov     edx,DWORD [12+edi]
-        bswap   eax
-        bswap   ebx
-        bswap   ecx
-        bswap   edx
-        push    eax
-        push    ebx
-        push    ecx
-        push    edx
-        mov     eax,DWORD [16+edi]
-        mov     ebx,DWORD [20+edi]
-        mov     ecx,DWORD [24+edi]
-        mov     edx,DWORD [28+edi]
-        bswap   eax
-        bswap   ebx
-        bswap   ecx
-        bswap   edx
-        push    eax
-        push    ebx
-        push    ecx
-        push    edx
-        mov     eax,DWORD [32+edi]
-        mov     ebx,DWORD [36+edi]
-        mov     ecx,DWORD [40+edi]
-        mov     edx,DWORD [44+edi]
-        bswap   eax
-        bswap   ebx
-        bswap   ecx
-        bswap   edx
-        push    eax
-        push    ebx
-        push    ecx
-        push    edx
-        mov     eax,DWORD [48+edi]
-        mov     ebx,DWORD [52+edi]
-        mov     ecx,DWORD [56+edi]
-        mov     edx,DWORD [60+edi]
-        bswap   eax
-        bswap   ebx
-        bswap   ecx
-        bswap   edx
-        push    eax
-        push    ebx
-        push    ecx
-        push    edx
-        mov     eax,DWORD [64+edi]
-        mov     ebx,DWORD [68+edi]
-        mov     ecx,DWORD [72+edi]
-        mov     edx,DWORD [76+edi]
-        bswap   eax
-        bswap   ebx
-        bswap   ecx
-        bswap   edx
-        push    eax
-        push    ebx
-        push    ecx
-        push    edx
-        mov     eax,DWORD [80+edi]
-        mov     ebx,DWORD [84+edi]
-        mov     ecx,DWORD [88+edi]
-        mov     edx,DWORD [92+edi]
-        bswap   eax
-        bswap   ebx
-        bswap   ecx
-        bswap   edx
-        push    eax
-        push    ebx
-        push    ecx
-        push    edx
-        mov     eax,DWORD [96+edi]
-        mov     ebx,DWORD [100+edi]
-        mov     ecx,DWORD [104+edi]
-        mov     edx,DWORD [108+edi]
-        bswap   eax
-        bswap   ebx
-        bswap   ecx
-        bswap   edx
-        push    eax
-        push    ebx
-        push    ecx
-        push    edx
-        mov     eax,DWORD [112+edi]
-        mov     ebx,DWORD [116+edi]
-        mov     ecx,DWORD [120+edi]
-        mov     edx,DWORD [124+edi]
-        bswap   eax
-        bswap   ebx
-        bswap   ecx
-        bswap   edx
-        push    eax
-        push    ebx
-        push    ecx
-        push    edx
-        add     edi,128
-        sub     esp,72
-        mov     DWORD [204+esp],edi
-        lea     edi,[8+esp]
-        mov     ecx,16
-dd      2784229001
-align   16
-L$00300_15_x86:
-        mov     ecx,DWORD [40+esp]
-        mov     edx,DWORD [44+esp]
-        mov     esi,ecx
-        shr     ecx,9
-        mov     edi,edx
-        shr     edx,9
-        mov     ebx,ecx
-        shl     esi,14
-        mov     eax,edx
-        shl     edi,14
-        xor     ebx,esi
-        shr     ecx,5
-        xor     eax,edi
-        shr     edx,5
-        xor     eax,ecx
-        shl     esi,4
-        xor     ebx,edx
-        shl     edi,4
-        xor     ebx,esi
-        shr     ecx,4
-        xor     eax,edi
-        shr     edx,4
-        xor     eax,ecx
-        shl     esi,5
-        xor     ebx,edx
-        shl     edi,5
-        xor     eax,esi
-        xor     ebx,edi
-        mov     ecx,DWORD [48+esp]
-        mov     edx,DWORD [52+esp]
-        mov     esi,DWORD [56+esp]
-        mov     edi,DWORD [60+esp]
-        add     eax,DWORD [64+esp]
-        adc     ebx,DWORD [68+esp]
-        xor     ecx,esi
-        xor     edx,edi
-        and     ecx,DWORD [40+esp]
-        and     edx,DWORD [44+esp]
-        add     eax,DWORD [192+esp]
-        adc     ebx,DWORD [196+esp]
-        xor     ecx,esi
-        xor     edx,edi
-        mov     esi,DWORD [ebp]
-        mov     edi,DWORD [4+ebp]
-        add     eax,ecx
-        adc     ebx,edx
-        mov     ecx,DWORD [32+esp]
-        mov     edx,DWORD [36+esp]
-        add     eax,esi
-        adc     ebx,edi
-        mov     DWORD [esp],eax
-        mov     DWORD [4+esp],ebx
-        add     eax,ecx
-        adc     ebx,edx
-        mov     ecx,DWORD [8+esp]
-        mov     edx,DWORD [12+esp]
-        mov     DWORD [32+esp],eax
-        mov     DWORD [36+esp],ebx
-        mov     esi,ecx
-        shr     ecx,2
-        mov     edi,edx
-        shr     edx,2
-        mov     ebx,ecx
-        shl     esi,4
-        mov     eax,edx
-        shl     edi,4
-        xor     ebx,esi
-        shr     ecx,5
-        xor     eax,edi
-        shr     edx,5
-        xor     ebx,ecx
-        shl     esi,21
-        xor     eax,edx
-        shl     edi,21
-        xor     eax,esi
-        shr     ecx,21
-        xor     ebx,edi
-        shr     edx,21
-        xor     eax,ecx
-        shl     esi,5
-        xor     ebx,edx
-        shl     edi,5
-        xor     eax,esi
-        xor     ebx,edi
-        mov     ecx,DWORD [8+esp]
-        mov     edx,DWORD [12+esp]
-        mov     esi,DWORD [16+esp]
-        mov     edi,DWORD [20+esp]
-        add     eax,DWORD [esp]
-        adc     ebx,DWORD [4+esp]
-        or      ecx,esi
-        or      edx,edi
-        and     ecx,DWORD [24+esp]
-        and     edx,DWORD [28+esp]
-        and     esi,DWORD [8+esp]
-        and     edi,DWORD [12+esp]
-        or      ecx,esi
-        or      edx,edi
-        add     eax,ecx
-        adc     ebx,edx
-        mov     DWORD [esp],eax
-        mov     DWORD [4+esp],ebx
-        mov     dl,BYTE [ebp]
-        sub     esp,8
-        lea     ebp,[8+ebp]
-        cmp     dl,148
-        jne     NEAR L$00300_15_x86
-align   16
-L$00416_79_x86:
-        mov     ecx,DWORD [312+esp]
-        mov     edx,DWORD [316+esp]
-        mov     esi,ecx
-        shr     ecx,1
-        mov     edi,edx
-        shr     edx,1
-        mov     eax,ecx
-        shl     esi,24
-        mov     ebx,edx
-        shl     edi,24
-        xor     ebx,esi
-        shr     ecx,6
-        xor     eax,edi
-        shr     edx,6
-        xor     eax,ecx
-        shl     esi,7
-        xor     ebx,edx
-        shl     edi,1
-        xor     ebx,esi
-        shr     ecx,1
-        xor     eax,edi
-        shr     edx,1
-        xor     eax,ecx
-        shl     edi,6
-        xor     ebx,edx
-        xor     eax,edi
-        mov     DWORD [esp],eax
-        mov     DWORD [4+esp],ebx
-        mov     ecx,DWORD [208+esp]
-        mov     edx,DWORD [212+esp]
-        mov     esi,ecx
-        shr     ecx,6
-        mov     edi,edx
-        shr     edx,6
-        mov     eax,ecx
-        shl     esi,3
-        mov     ebx,edx
-        shl     edi,3
-        xor     eax,esi
-        shr     ecx,13
-        xor     ebx,edi
-        shr     edx,13
-        xor     eax,ecx
-        shl     esi,10
-        xor     ebx,edx
-        shl     edi,10
-        xor     ebx,esi
-        shr     ecx,10
-        xor     eax,edi
-        shr     edx,10
-        xor     ebx,ecx
-        shl     edi,13
-        xor     eax,edx
-        xor     eax,edi
-        mov     ecx,DWORD [320+esp]
-        mov     edx,DWORD [324+esp]
-        add     eax,DWORD [esp]
-        adc     ebx,DWORD [4+esp]
-        mov     esi,DWORD [248+esp]
-        mov     edi,DWORD [252+esp]
-        add     eax,ecx
-        adc     ebx,edx
-        add     eax,esi
-        adc     ebx,edi
-        mov     DWORD [192+esp],eax
-        mov     DWORD [196+esp],ebx
-        mov     ecx,DWORD [40+esp]
-        mov     edx,DWORD [44+esp]
-        mov     esi,ecx
-        shr     ecx,9
-        mov     edi,edx
-        shr     edx,9
-        mov     ebx,ecx
-        shl     esi,14
-        mov     eax,edx
-        shl     edi,14
-        xor     ebx,esi
-        shr     ecx,5
-        xor     eax,edi
-        shr     edx,5
-        xor     eax,ecx
-        shl     esi,4
-        xor     ebx,edx
-        shl     edi,4
-        xor     ebx,esi
-        shr     ecx,4
-        xor     eax,edi
-        shr     edx,4
-        xor     eax,ecx
-        shl     esi,5
-        xor     ebx,edx
-        shl     edi,5
-        xor     eax,esi
-        xor     ebx,edi
-        mov     ecx,DWORD [48+esp]
-        mov     edx,DWORD [52+esp]
-        mov     esi,DWORD [56+esp]
-        mov     edi,DWORD [60+esp]
-        add     eax,DWORD [64+esp]
-        adc     ebx,DWORD [68+esp]
-        xor     ecx,esi
-        xor     edx,edi
-        and     ecx,DWORD [40+esp]
-        and     edx,DWORD [44+esp]
-        add     eax,DWORD [192+esp]
-        adc     ebx,DWORD [196+esp]
-        xor     ecx,esi
-        xor     edx,edi
-        mov     esi,DWORD [ebp]
-        mov     edi,DWORD [4+ebp]
-        add     eax,ecx
-        adc     ebx,edx
-        mov     ecx,DWORD [32+esp]
-        mov     edx,DWORD [36+esp]
-        add     eax,esi
-        adc     ebx,edi
-        mov     DWORD [esp],eax
-        mov     DWORD [4+esp],ebx
-        add     eax,ecx
-        adc     ebx,edx
-        mov     ecx,DWORD [8+esp]
-        mov     edx,DWORD [12+esp]
-        mov     DWORD [32+esp],eax
-        mov     DWORD [36+esp],ebx
-        mov     esi,ecx
-        shr     ecx,2
-        mov     edi,edx
-        shr     edx,2
-        mov     ebx,ecx
-        shl     esi,4
-        mov     eax,edx
-        shl     edi,4
-        xor     ebx,esi
-        shr     ecx,5
-        xor     eax,edi
-        shr     edx,5
-        xor     ebx,ecx
-        shl     esi,21
-        xor     eax,edx
-        shl     edi,21
-        xor     eax,esi
-        shr     ecx,21
-        xor     ebx,edi
-        shr     edx,21
-        xor     eax,ecx
-        shl     esi,5
-        xor     ebx,edx
-        shl     edi,5
-        xor     eax,esi
-        xor     ebx,edi
-        mov     ecx,DWORD [8+esp]
-        mov     edx,DWORD [12+esp]
-        mov     esi,DWORD [16+esp]
-        mov     edi,DWORD [20+esp]
-        add     eax,DWORD [esp]
-        adc     ebx,DWORD [4+esp]
-        or      ecx,esi
-        or      edx,edi
-        and     ecx,DWORD [24+esp]
-        and     edx,DWORD [28+esp]
-        and     esi,DWORD [8+esp]
-        and     edi,DWORD [12+esp]
-        or      ecx,esi
-        or      edx,edi
-        add     eax,ecx
-        adc     ebx,edx
-        mov     DWORD [esp],eax
-        mov     DWORD [4+esp],ebx
-        mov     dl,BYTE [ebp]
-        sub     esp,8
-        lea     ebp,[8+ebp]
-        cmp     dl,23
-        jne     NEAR L$00416_79_x86
-        mov     esi,DWORD [840+esp]
-        mov     edi,DWORD [844+esp]
-        mov     eax,DWORD [esi]
-        mov     ebx,DWORD [4+esi]
-        mov     ecx,DWORD [8+esi]
-        mov     edx,DWORD [12+esi]
-        add     eax,DWORD [8+esp]
-        adc     ebx,DWORD [12+esp]
-        mov     DWORD [esi],eax
-        mov     DWORD [4+esi],ebx
-        add     ecx,DWORD [16+esp]
-        adc     edx,DWORD [20+esp]
-        mov     DWORD [8+esi],ecx
-        mov     DWORD [12+esi],edx
-        mov     eax,DWORD [16+esi]
-        mov     ebx,DWORD [20+esi]
-        mov     ecx,DWORD [24+esi]
-        mov     edx,DWORD [28+esi]
-        add     eax,DWORD [24+esp]
-        adc     ebx,DWORD [28+esp]
-        mov     DWORD [16+esi],eax
-        mov     DWORD [20+esi],ebx
-        add     ecx,DWORD [32+esp]
-        adc     edx,DWORD [36+esp]
-        mov     DWORD [24+esi],ecx
-        mov     DWORD [28+esi],edx
-        mov     eax,DWORD [32+esi]
-        mov     ebx,DWORD [36+esi]
-        mov     ecx,DWORD [40+esi]
-        mov     edx,DWORD [44+esi]
-        add     eax,DWORD [40+esp]
-        adc     ebx,DWORD [44+esp]
-        mov     DWORD [32+esi],eax
-        mov     DWORD [36+esi],ebx
-        add     ecx,DWORD [48+esp]
-        adc     edx,DWORD [52+esp]
-        mov     DWORD [40+esi],ecx
-        mov     DWORD [44+esi],edx
-        mov     eax,DWORD [48+esi]
-        mov     ebx,DWORD [52+esi]
-        mov     ecx,DWORD [56+esi]
-        mov     edx,DWORD [60+esi]
-        add     eax,DWORD [56+esp]
-        adc     ebx,DWORD [60+esp]
-        mov     DWORD [48+esi],eax
-        mov     DWORD [52+esi],ebx
-        add     ecx,DWORD [64+esp]
-        adc     edx,DWORD [68+esp]
-        mov     DWORD [56+esi],ecx
-        mov     DWORD [60+esi],edx
-        add     esp,840
-        sub     ebp,640
-        cmp     edi,DWORD [8+esp]
-        jb      NEAR L$002loop_x86
-        mov     esp,DWORD [12+esp]
-        pop     edi
-        pop     esi
-        pop     ebx
-        pop     ebp
-        ret
-align   64
-L$001K512:
-dd      3609767458,1116352408
-dd      602891725,1899447441
-dd      3964484399,3049323471
-dd      2173295548,3921009573
-dd      4081628472,961987163
-dd      3053834265,1508970993
-dd      2937671579,2453635748
-dd      3664609560,2870763221
-dd      2734883394,3624381080
-dd      1164996542,310598401
-dd      1323610764,607225278
-dd      3590304994,1426881987
-dd      4068182383,1925078388
-dd      991336113,2162078206
-dd      633803317,2614888103
-dd      3479774868,3248222580
-dd      2666613458,3835390401
-dd      944711139,4022224774
-dd      2341262773,264347078
-dd      2007800933,604807628
-dd      1495990901,770255983
-dd      1856431235,1249150122
-dd      3175218132,1555081692
-dd      2198950837,1996064986
-dd      3999719339,2554220882
-dd      766784016,2821834349
-dd      2566594879,2952996808
-dd      3203337956,3210313671
-dd      1034457026,3336571891
-dd      2466948901,3584528711
-dd      3758326383,113926993
-dd      168717936,338241895
-dd      1188179964,666307205
-dd      1546045734,773529912
-dd      1522805485,1294757372
-dd      2643833823,1396182291
-dd      2343527390,1695183700
-dd      1014477480,1986661051
-dd      1206759142,2177026350
-dd      344077627,2456956037
-dd      1290863460,2730485921
-dd      3158454273,2820302411
-dd      3505952657,3259730800
-dd      106217008,3345764771
-dd      3606008344,3516065817
-dd      1432725776,3600352804
-dd      1467031594,4094571909
-dd      851169720,275423344
-dd      3100823752,430227734
-dd      1363258195,506948616
-dd      3750685593,659060556
-dd      3785050280,883997877
-dd      3318307427,958139571
-dd      3812723403,1322822218
-dd      2003034995,1537002063
-dd      3602036899,1747873779
-dd      1575990012,1955562222
-dd      1125592928,2024104815
-dd      2716904306,2227730452
-dd      442776044,2361852424
-dd      593698344,2428436474
-dd      3733110249,2756734187
-dd      2999351573,3204031479
-dd      3815920427,3329325298
-dd      3928383900,3391569614
-dd      566280711,3515267271
-dd      3454069534,3940187606
-dd      4000239992,4118630271
-dd      1914138554,116418474
-dd      2731055270,174292421
-dd      3203993006,289380356
-dd      320620315,460393269
-dd      587496836,685471733
-dd      1086792851,852142971
-dd      365543100,1017036298
-dd      2618297676,1126000580
-dd      3409855158,1288033470
-dd      4234509866,1501505948
-dd      987167468,1607167915
-dd      1246189591,1816402316
-dd      67438087,66051
-dd      202182159,134810123
-db      83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97
-db      110,115,102,111,114,109,32,102,111,114,32,120,56,54,44,32
-db      67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97
-db      112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103
-db      62,0
diff --git a/CryptoPkg/Library/OpensslLib/IA32/crypto/x86cpuid.nasm b/CryptoPkg/Library/OpensslLib/IA32/crypto/x86cpuid.nasm
deleted file mode 100644
index 542e759ecdc6..000000000000
--- a/CryptoPkg/Library/OpensslLib/IA32/crypto/x86cpuid.nasm
+++ /dev/null
@@ -1,433 +0,0 @@
-; WARNING: do not edit!
-; Generated from openssl/crypto/x86cpuid.pl
-;
-; Copyright 2004-2020 The OpenSSL Project Authors. All Rights Reserved.
-;
-; Licensed under the OpenSSL license (the "License").  You may not use
-; this file except in compliance with the License.  You can obtain a copy
-; in the file LICENSE in the source distribution or at
-; https://www.openssl.org/source/license.html
-
-%ifidn __OUTPUT_FORMAT__,obj
-section code    use32 class=code align=64
-%elifidn __OUTPUT_FORMAT__,win32
-$@feat.00 equ 1
-section .text   code align=64
-%else
-section .text   code
-%endif
-global  _OPENSSL_ia32_cpuid
-align   16
-_OPENSSL_ia32_cpuid:
-L$_OPENSSL_ia32_cpuid_begin:
-        push    ebp
-        push    ebx
-        push    esi
-        push    edi
-        xor     edx,edx
-        pushfd
-        pop     eax
-        mov     ecx,eax
-        xor     eax,2097152
-        push    eax
-        popfd
-        pushfd
-        pop     eax
-        xor     ecx,eax
-        xor     eax,eax
-        mov     esi,DWORD [20+esp]
-        mov     DWORD [8+esi],eax
-        bt      ecx,21
-        jnc     NEAR L$000nocpuid
-        cpuid
-        mov     edi,eax
-        xor     eax,eax
-        cmp     ebx,1970169159
-        setne   al
-        mov     ebp,eax
-        cmp     edx,1231384169
-        setne   al
-        or      ebp,eax
-        cmp     ecx,1818588270
-        setne   al
-        or      ebp,eax
-        jz      NEAR L$001intel
-        cmp     ebx,1752462657
-        setne   al
-        mov     esi,eax
-        cmp     edx,1769238117
-        setne   al
-        or      esi,eax
-        cmp     ecx,1145913699
-        setne   al
-        or      esi,eax
-        jnz     NEAR L$001intel
-        mov     eax,2147483648
-        cpuid
-        cmp     eax,2147483649
-        jb      NEAR L$001intel
-        mov     esi,eax
-        mov     eax,2147483649
-        cpuid
-        or      ebp,ecx
-        and     ebp,2049
-        cmp     esi,2147483656
-        jb      NEAR L$001intel
-        mov     eax,2147483656
-        cpuid
-        movzx   esi,cl
-        inc     esi
-        mov     eax,1
-        xor     ecx,ecx
-        cpuid
-        bt      edx,28
-        jnc     NEAR L$002generic
-        shr     ebx,16
-        and     ebx,255
-        cmp     ebx,esi
-        ja      NEAR L$002generic
-        and     edx,4026531839
-        jmp     NEAR L$002generic
-L$001intel:
-        cmp     edi,4
-        mov     esi,-1
-        jb      NEAR L$003nocacheinfo
-        mov     eax,4
-        mov     ecx,0
-        cpuid
-        mov     esi,eax
-        shr     esi,14
-        and     esi,4095
-L$003nocacheinfo:
-        mov     eax,1
-        xor     ecx,ecx
-        cpuid
-        and     edx,3220176895
-        cmp     ebp,0
-        jne     NEAR L$004notintel
-        or      edx,1073741824
-        and     ah,15
-        cmp     ah,15
-        jne     NEAR L$004notintel
-        or      edx,1048576
-L$004notintel:
-        bt      edx,28
-        jnc     NEAR L$002generic
-        and     edx,4026531839
-        cmp     esi,0
-        je      NEAR L$002generic
-        or      edx,268435456
-        shr     ebx,16
-        cmp     bl,1
-        ja      NEAR L$002generic
-        and     edx,4026531839
-L$002generic:
-        and     ebp,2048
-        and     ecx,4294965247
-        mov     esi,edx
-        or      ebp,ecx
-        cmp     edi,7
-        mov     edi,DWORD [20+esp]
-        jb      NEAR L$005no_extended_info
-        mov     eax,7
-        xor     ecx,ecx
-        cpuid
-        mov     DWORD [8+edi],ebx
-L$005no_extended_info:
-        bt      ebp,27
-        jnc     NEAR L$006clear_avx
-        xor     ecx,ecx
-db      15,1,208
-        and     eax,6
-        cmp     eax,6
-        je      NEAR L$007done
-        cmp     eax,2
-        je      NEAR L$006clear_avx
-L$008clear_xmm:
-        and     ebp,4261412861
-        and     esi,4278190079
-L$006clear_avx:
-        and     ebp,4026525695
-        and     DWORD [8+edi],4294967263
-L$007done:
-        mov     eax,esi
-        mov     edx,ebp
-L$000nocpuid:
-        pop     edi
-        pop     esi
-        pop     ebx
-        pop     ebp
-        ret
-;extern _OPENSSL_ia32cap_P
-global  _OPENSSL_rdtsc
-align   16
-_OPENSSL_rdtsc:
-L$_OPENSSL_rdtsc_begin:
-        xor     eax,eax
-        xor     edx,edx
-        lea     ecx,[_OPENSSL_ia32cap_P]
-        bt      DWORD [ecx],4
-        jnc     NEAR L$009notsc
-        rdtsc
-L$009notsc:
-        ret
-global  _OPENSSL_instrument_halt
-align   16
-_OPENSSL_instrument_halt:
-L$_OPENSSL_instrument_halt_begin:
-        lea     ecx,[_OPENSSL_ia32cap_P]
-        bt      DWORD [ecx],4
-        jnc     NEAR L$010nohalt
-dd      2421723150
-        and     eax,3
-        jnz     NEAR L$010nohalt
-        pushfd
-        pop     eax
-        bt      eax,9
-        jnc     NEAR L$010nohalt
-        rdtsc
-        push    edx
-        push    eax
-        hlt
-        rdtsc
-        sub     eax,DWORD [esp]
-        sbb     edx,DWORD [4+esp]
-        add     esp,8
-        ret
-L$010nohalt:
-        xor     eax,eax
-        xor     edx,edx
-        ret
-global  _OPENSSL_far_spin
-align   16
-_OPENSSL_far_spin:
-L$_OPENSSL_far_spin_begin:
-        pushfd
-        pop     eax
-        bt      eax,9
-        jnc     NEAR L$011nospin
-        mov     eax,DWORD [4+esp]
-        mov     ecx,DWORD [8+esp]
-dd      2430111262
-        xor     eax,eax
-        mov     edx,DWORD [ecx]
-        jmp     NEAR L$012spin
-align   16
-L$012spin:
-        inc     eax
-        cmp     edx,DWORD [ecx]
-        je      NEAR L$012spin
-dd      529567888
-        ret
-L$011nospin:
-        xor     eax,eax
-        xor     edx,edx
-        ret
-global  _OPENSSL_wipe_cpu
-align   16
-_OPENSSL_wipe_cpu:
-L$_OPENSSL_wipe_cpu_begin:
-        xor     eax,eax
-        xor     edx,edx
-        lea     ecx,[_OPENSSL_ia32cap_P]
-        mov     ecx,DWORD [ecx]
-        bt      DWORD [ecx],1
-        jnc     NEAR L$013no_x87
-dd      4007259865,4007259865,4007259865,4007259865,2430851995
-L$013no_x87:
-        lea     eax,[4+esp]
-        ret
-global  _OPENSSL_atomic_add
-align   16
-_OPENSSL_atomic_add:
-L$_OPENSSL_atomic_add_begin:
-        mov     edx,DWORD [4+esp]
-        mov     ecx,DWORD [8+esp]
-        push    ebx
-        nop
-        mov     eax,DWORD [edx]
-L$014spin:
-        lea     ebx,[ecx*1+eax]
-        nop
-dd      447811568
-        jne     NEAR L$014spin
-        mov     eax,ebx
-        pop     ebx
-        ret
-global  _OPENSSL_cleanse
-align   16
-_OPENSSL_cleanse:
-L$_OPENSSL_cleanse_begin:
-        mov     edx,DWORD [4+esp]
-        mov     ecx,DWORD [8+esp]
-        xor     eax,eax
-        cmp     ecx,7
-        jae     NEAR L$015lot
-        cmp     ecx,0
-        je      NEAR L$016ret
-L$017little:
-        mov     BYTE [edx],al
-        sub     ecx,1
-        lea     edx,[1+edx]
-        jnz     NEAR L$017little
-L$016ret:
-        ret
-align   16
-L$015lot:
-        test    edx,3
-        jz      NEAR L$018aligned
-        mov     BYTE [edx],al
-        lea     ecx,[ecx-1]
-        lea     edx,[1+edx]
-        jmp     NEAR L$015lot
-L$018aligned:
-        mov     DWORD [edx],eax
-        lea     ecx,[ecx-4]
-        test    ecx,-4
-        lea     edx,[4+edx]
-        jnz     NEAR L$018aligned
-        cmp     ecx,0
-        jne     NEAR L$017little
-        ret
-global  _CRYPTO_memcmp
-align   16
-_CRYPTO_memcmp:
-L$_CRYPTO_memcmp_begin:
-        push    esi
-        push    edi
-        mov     esi,DWORD [12+esp]
-        mov     edi,DWORD [16+esp]
-        mov     ecx,DWORD [20+esp]
-        xor     eax,eax
-        xor     edx,edx
-        cmp     ecx,0
-        je      NEAR L$019no_data
-L$020loop:
-        mov     dl,BYTE [esi]
-        lea     esi,[1+esi]
-        xor     dl,BYTE [edi]
-        lea     edi,[1+edi]
-        or      al,dl
-        dec     ecx
-        jnz     NEAR L$020loop
-        neg     eax
-        shr     eax,31
-L$019no_data:
-        pop     edi
-        pop     esi
-        ret
-global  _OPENSSL_instrument_bus
-align   16
-_OPENSSL_instrument_bus:
-L$_OPENSSL_instrument_bus_begin:
-        push    ebp
-        push    ebx
-        push    esi
-        push    edi
-        mov     eax,0
-        pop     edi
-        pop     esi
-        pop     ebx
-        pop     ebp
-        ret
-global  _OPENSSL_instrument_bus2
-align   16
-_OPENSSL_instrument_bus2:
-L$_OPENSSL_instrument_bus2_begin:
-        push    ebp
-        push    ebx
-        push    esi
-        push    edi
-        mov     eax,0
-        pop     edi
-        pop     esi
-        pop     ebx
-        pop     ebp
-        ret
-global  _OPENSSL_ia32_rdrand_bytes
-align   16
-_OPENSSL_ia32_rdrand_bytes:
-L$_OPENSSL_ia32_rdrand_bytes_begin:
-        push    edi
-        push    ebx
-        xor     eax,eax
-        mov     edi,DWORD [12+esp]
-        mov     ebx,DWORD [16+esp]
-        cmp     ebx,0
-        je      NEAR L$021done
-        mov     ecx,8
-L$022loop:
-db      15,199,242
-        jc      NEAR L$023break
-        loop    L$022loop
-        jmp     NEAR L$021done
-align   16
-L$023break:
-        cmp     ebx,4
-        jb      NEAR L$024tail
-        mov     DWORD [edi],edx
-        lea     edi,[4+edi]
-        add     eax,4
-        sub     ebx,4
-        jz      NEAR L$021done
-        mov     ecx,8
-        jmp     NEAR L$022loop
-align   16
-L$024tail:
-        mov     BYTE [edi],dl
-        lea     edi,[1+edi]
-        inc     eax
-        shr     edx,8
-        dec     ebx
-        jnz     NEAR L$024tail
-L$021done:
-        xor     edx,edx
-        pop     ebx
-        pop     edi
-        ret
-global  _OPENSSL_ia32_rdseed_bytes
-align   16
-_OPENSSL_ia32_rdseed_bytes:
-L$_OPENSSL_ia32_rdseed_bytes_begin:
-        push    edi
-        push    ebx
-        xor     eax,eax
-        mov     edi,DWORD [12+esp]
-        mov     ebx,DWORD [16+esp]
-        cmp     ebx,0
-        je      NEAR L$025done
-        mov     ecx,8
-L$026loop:
-db      15,199,250
-        jc      NEAR L$027break
-        loop    L$026loop
-        jmp     NEAR L$025done
-align   16
-L$027break:
-        cmp     ebx,4
-        jb      NEAR L$028tail
-        mov     DWORD [edi],edx
-        lea     edi,[4+edi]
-        add     eax,4
-        sub     ebx,4
-        jz      NEAR L$025done
-        mov     ecx,8
-        jmp     NEAR L$026loop
-align   16
-L$028tail:
-        mov     BYTE [edi],dl
-        lea     edi,[1+edi]
-        inc     eax
-        shr     edx,8
-        dec     ebx
-        jnz     NEAR L$028tail
-L$025done:
-        xor     edx,edx
-        pop     ebx
-        pop     edi
-        ret
-segment .bss
-common  _OPENSSL_ia32cap_P 16
-segment .CRT$XCU data align=4
-extern  _OPENSSL_cpuid_setup
-dd      _OPENSSL_cpuid_setup
diff --git a/CryptoPkg/Library/OpensslLib/IA32Gcc/crypto/aes/aesni-x86.S b/CryptoPkg/Library/OpensslLib/IA32Gcc/crypto/aes/aesni-x86.S
deleted file mode 100644
index 836e831b183d..000000000000
--- a/CryptoPkg/Library/OpensslLib/IA32Gcc/crypto/aes/aesni-x86.S
+++ /dev/null
@@ -1,3247 +0,0 @@
-# WARNING: do not edit!
-# Generated from openssl/crypto/aes/asm/aesni-x86.pl
-#
-# Copyright 2009-2020 The OpenSSL Project Authors. All Rights Reserved.
-#
-# Licensed under the OpenSSL license (the "License").  You may not use
-# this file except in compliance with the License.  You can obtain a copy
-# in the file LICENSE in the source distribution or at
-# https://www.openssl.org/source/license.html
-
-.text
-.globl  aesni_encrypt
-.type   aesni_encrypt, at function
-.align  16
-aesni_encrypt:
-.L_aesni_encrypt_begin:
-        movl    4(%esp),%eax
-        movl    12(%esp),%edx
-        movups  (%eax),%xmm2
-        movl    240(%edx),%ecx
-        movl    8(%esp),%eax
-        movups  (%edx),%xmm0
-        movups  16(%edx),%xmm1
-        leal    32(%edx),%edx
-        xorps   %xmm0,%xmm2
-.L000enc1_loop_1:
-.byte   102,15,56,220,209
-        decl    %ecx
-        movups  (%edx),%xmm1
-        leal    16(%edx),%edx
-        jnz     .L000enc1_loop_1
-.byte   102,15,56,221,209
-        pxor    %xmm0,%xmm0
-        pxor    %xmm1,%xmm1
-        movups  %xmm2,(%eax)
-        pxor    %xmm2,%xmm2
-        ret
-.size   aesni_encrypt,.-.L_aesni_encrypt_begin
-.globl  aesni_decrypt
-.type   aesni_decrypt, at function
-.align  16
-aesni_decrypt:
-.L_aesni_decrypt_begin:
-        movl    4(%esp),%eax
-        movl    12(%esp),%edx
-        movups  (%eax),%xmm2
-        movl    240(%edx),%ecx
-        movl    8(%esp),%eax
-        movups  (%edx),%xmm0
-        movups  16(%edx),%xmm1
-        leal    32(%edx),%edx
-        xorps   %xmm0,%xmm2
-.L001dec1_loop_2:
-.byte   102,15,56,222,209
-        decl    %ecx
-        movups  (%edx),%xmm1
-        leal    16(%edx),%edx
-        jnz     .L001dec1_loop_2
-.byte   102,15,56,223,209
-        pxor    %xmm0,%xmm0
-        pxor    %xmm1,%xmm1
-        movups  %xmm2,(%eax)
-        pxor    %xmm2,%xmm2
-        ret
-.size   aesni_decrypt,.-.L_aesni_decrypt_begin
-.type   _aesni_encrypt2, at function
-.align  16
-_aesni_encrypt2:
-        movups  (%edx),%xmm0
-        shll    $4,%ecx
-        movups  16(%edx),%xmm1
-        xorps   %xmm0,%xmm2
-        pxor    %xmm0,%xmm3
-        movups  32(%edx),%xmm0
-        leal    32(%edx,%ecx,1),%edx
-        negl    %ecx
-        addl    $16,%ecx
-.L002enc2_loop:
-.byte   102,15,56,220,209
-.byte   102,15,56,220,217
-        movups  (%edx,%ecx,1),%xmm1
-        addl    $32,%ecx
-.byte   102,15,56,220,208
-.byte   102,15,56,220,216
-        movups  -16(%edx,%ecx,1),%xmm0
-        jnz     .L002enc2_loop
-.byte   102,15,56,220,209
-.byte   102,15,56,220,217
-.byte   102,15,56,221,208
-.byte   102,15,56,221,216
-        ret
-.size   _aesni_encrypt2,.-_aesni_encrypt2
-.type   _aesni_decrypt2, at function
-.align  16
-_aesni_decrypt2:
-        movups  (%edx),%xmm0
-        shll    $4,%ecx
-        movups  16(%edx),%xmm1
-        xorps   %xmm0,%xmm2
-        pxor    %xmm0,%xmm3
-        movups  32(%edx),%xmm0
-        leal    32(%edx,%ecx,1),%edx
-        negl    %ecx
-        addl    $16,%ecx
-.L003dec2_loop:
-.byte   102,15,56,222,209
-.byte   102,15,56,222,217
-        movups  (%edx,%ecx,1),%xmm1
-        addl    $32,%ecx
-.byte   102,15,56,222,208
-.byte   102,15,56,222,216
-        movups  -16(%edx,%ecx,1),%xmm0
-        jnz     .L003dec2_loop
-.byte   102,15,56,222,209
-.byte   102,15,56,222,217
-.byte   102,15,56,223,208
-.byte   102,15,56,223,216
-        ret
-.size   _aesni_decrypt2,.-_aesni_decrypt2
-.type   _aesni_encrypt3, at function
-.align  16
-_aesni_encrypt3:
-        movups  (%edx),%xmm0
-        shll    $4,%ecx
-        movups  16(%edx),%xmm1
-        xorps   %xmm0,%xmm2
-        pxor    %xmm0,%xmm3
-        pxor    %xmm0,%xmm4
-        movups  32(%edx),%xmm0
-        leal    32(%edx,%ecx,1),%edx
-        negl    %ecx
-        addl    $16,%ecx
-.L004enc3_loop:
-.byte   102,15,56,220,209
-.byte   102,15,56,220,217
-.byte   102,15,56,220,225
-        movups  (%edx,%ecx,1),%xmm1
-        addl    $32,%ecx
-.byte   102,15,56,220,208
-.byte   102,15,56,220,216
-.byte   102,15,56,220,224
-        movups  -16(%edx,%ecx,1),%xmm0
-        jnz     .L004enc3_loop
-.byte   102,15,56,220,209
-.byte   102,15,56,220,217
-.byte   102,15,56,220,225
-.byte   102,15,56,221,208
-.byte   102,15,56,221,216
-.byte   102,15,56,221,224
-        ret
-.size   _aesni_encrypt3,.-_aesni_encrypt3
-.type   _aesni_decrypt3, at function
-.align  16
-_aesni_decrypt3:
-        movups  (%edx),%xmm0
-        shll    $4,%ecx
-        movups  16(%edx),%xmm1
-        xorps   %xmm0,%xmm2
-        pxor    %xmm0,%xmm3
-        pxor    %xmm0,%xmm4
-        movups  32(%edx),%xmm0
-        leal    32(%edx,%ecx,1),%edx
-        negl    %ecx
-        addl    $16,%ecx
-.L005dec3_loop:
-.byte   102,15,56,222,209
-.byte   102,15,56,222,217
-.byte   102,15,56,222,225
-        movups  (%edx,%ecx,1),%xmm1
-        addl    $32,%ecx
-.byte   102,15,56,222,208
-.byte   102,15,56,222,216
-.byte   102,15,56,222,224
-        movups  -16(%edx,%ecx,1),%xmm0
-        jnz     .L005dec3_loop
-.byte   102,15,56,222,209
-.byte   102,15,56,222,217
-.byte   102,15,56,222,225
-.byte   102,15,56,223,208
-.byte   102,15,56,223,216
-.byte   102,15,56,223,224
-        ret
-.size   _aesni_decrypt3,.-_aesni_decrypt3
-.type   _aesni_encrypt4, at function
-.align  16
-_aesni_encrypt4:
-        movups  (%edx),%xmm0
-        movups  16(%edx),%xmm1
-        shll    $4,%ecx
-        xorps   %xmm0,%xmm2
-        pxor    %xmm0,%xmm3
-        pxor    %xmm0,%xmm4
-        pxor    %xmm0,%xmm5
-        movups  32(%edx),%xmm0
-        leal    32(%edx,%ecx,1),%edx
-        negl    %ecx
-.byte   15,31,64,0
-        addl    $16,%ecx
-.L006enc4_loop:
-.byte   102,15,56,220,209
-.byte   102,15,56,220,217
-.byte   102,15,56,220,225
-.byte   102,15,56,220,233
-        movups  (%edx,%ecx,1),%xmm1
-        addl    $32,%ecx
-.byte   102,15,56,220,208
-.byte   102,15,56,220,216
-.byte   102,15,56,220,224
-.byte   102,15,56,220,232
-        movups  -16(%edx,%ecx,1),%xmm0
-        jnz     .L006enc4_loop
-.byte   102,15,56,220,209
-.byte   102,15,56,220,217
-.byte   102,15,56,220,225
-.byte   102,15,56,220,233
-.byte   102,15,56,221,208
-.byte   102,15,56,221,216
-.byte   102,15,56,221,224
-.byte   102,15,56,221,232
-        ret
-.size   _aesni_encrypt4,.-_aesni_encrypt4
-.type   _aesni_decrypt4, at function
-.align  16
-_aesni_decrypt4:
-        movups  (%edx),%xmm0
-        movups  16(%edx),%xmm1
-        shll    $4,%ecx
-        xorps   %xmm0,%xmm2
-        pxor    %xmm0,%xmm3
-        pxor    %xmm0,%xmm4
-        pxor    %xmm0,%xmm5
-        movups  32(%edx),%xmm0
-        leal    32(%edx,%ecx,1),%edx
-        negl    %ecx
-.byte   15,31,64,0
-        addl    $16,%ecx
-.L007dec4_loop:
-.byte   102,15,56,222,209
-.byte   102,15,56,222,217
-.byte   102,15,56,222,225
-.byte   102,15,56,222,233
-        movups  (%edx,%ecx,1),%xmm1
-        addl    $32,%ecx
-.byte   102,15,56,222,208
-.byte   102,15,56,222,216
-.byte   102,15,56,222,224
-.byte   102,15,56,222,232
-        movups  -16(%edx,%ecx,1),%xmm0
-        jnz     .L007dec4_loop
-.byte   102,15,56,222,209
-.byte   102,15,56,222,217
-.byte   102,15,56,222,225
-.byte   102,15,56,222,233
-.byte   102,15,56,223,208
-.byte   102,15,56,223,216
-.byte   102,15,56,223,224
-.byte   102,15,56,223,232
-        ret
-.size   _aesni_decrypt4,.-_aesni_decrypt4
-.type   _aesni_encrypt6, at function
-.align  16
-_aesni_encrypt6:
-        movups  (%edx),%xmm0
-        shll    $4,%ecx
-        movups  16(%edx),%xmm1
-        xorps   %xmm0,%xmm2
-        pxor    %xmm0,%xmm3
-        pxor    %xmm0,%xmm4
-.byte   102,15,56,220,209
-        pxor    %xmm0,%xmm5
-        pxor    %xmm0,%xmm6
-.byte   102,15,56,220,217
-        leal    32(%edx,%ecx,1),%edx
-        negl    %ecx
-.byte   102,15,56,220,225
-        pxor    %xmm0,%xmm7
-        movups  (%edx,%ecx,1),%xmm0
-        addl    $16,%ecx
-        jmp     .L008_aesni_encrypt6_inner
-.align  16
-.L009enc6_loop:
-.byte   102,15,56,220,209
-.byte   102,15,56,220,217
-.byte   102,15,56,220,225
-.L008_aesni_encrypt6_inner:
-.byte   102,15,56,220,233
-.byte   102,15,56,220,241
-.byte   102,15,56,220,249
-.L_aesni_encrypt6_enter:
-        movups  (%edx,%ecx,1),%xmm1
-        addl    $32,%ecx
-.byte   102,15,56,220,208
-.byte   102,15,56,220,216
-.byte   102,15,56,220,224
-.byte   102,15,56,220,232
-.byte   102,15,56,220,240
-.byte   102,15,56,220,248
-        movups  -16(%edx,%ecx,1),%xmm0
-        jnz     .L009enc6_loop
-.byte   102,15,56,220,209
-.byte   102,15,56,220,217
-.byte   102,15,56,220,225
-.byte   102,15,56,220,233
-.byte   102,15,56,220,241
-.byte   102,15,56,220,249
-.byte   102,15,56,221,208
-.byte   102,15,56,221,216
-.byte   102,15,56,221,224
-.byte   102,15,56,221,232
-.byte   102,15,56,221,240
-.byte   102,15,56,221,248
-        ret
-.size   _aesni_encrypt6,.-_aesni_encrypt6
-.type   _aesni_decrypt6, at function
-.align  16
-_aesni_decrypt6:
-        movups  (%edx),%xmm0
-        shll    $4,%ecx
-        movups  16(%edx),%xmm1
-        xorps   %xmm0,%xmm2
-        pxor    %xmm0,%xmm3
-        pxor    %xmm0,%xmm4
-.byte   102,15,56,222,209
-        pxor    %xmm0,%xmm5
-        pxor    %xmm0,%xmm6
-.byte   102,15,56,222,217
-        leal    32(%edx,%ecx,1),%edx
-        negl    %ecx
-.byte   102,15,56,222,225
-        pxor    %xmm0,%xmm7
-        movups  (%edx,%ecx,1),%xmm0
-        addl    $16,%ecx
-        jmp     .L010_aesni_decrypt6_inner
-.align  16
-.L011dec6_loop:
-.byte   102,15,56,222,209
-.byte   102,15,56,222,217
-.byte   102,15,56,222,225
-.L010_aesni_decrypt6_inner:
-.byte   102,15,56,222,233
-.byte   102,15,56,222,241
-.byte   102,15,56,222,249
-.L_aesni_decrypt6_enter:
-        movups  (%edx,%ecx,1),%xmm1
-        addl    $32,%ecx
-.byte   102,15,56,222,208
-.byte   102,15,56,222,216
-.byte   102,15,56,222,224
-.byte   102,15,56,222,232
-.byte   102,15,56,222,240
-.byte   102,15,56,222,248
-        movups  -16(%edx,%ecx,1),%xmm0
-        jnz     .L011dec6_loop
-.byte   102,15,56,222,209
-.byte   102,15,56,222,217
-.byte   102,15,56,222,225
-.byte   102,15,56,222,233
-.byte   102,15,56,222,241
-.byte   102,15,56,222,249
-.byte   102,15,56,223,208
-.byte   102,15,56,223,216
-.byte   102,15,56,223,224
-.byte   102,15,56,223,232
-.byte   102,15,56,223,240
-.byte   102,15,56,223,248
-        ret
-.size   _aesni_decrypt6,.-_aesni_decrypt6
-.globl  aesni_ecb_encrypt
-.type   aesni_ecb_encrypt, at function
-.align  16
-aesni_ecb_encrypt:
-.L_aesni_ecb_encrypt_begin:
-        pushl   %ebp
-        pushl   %ebx
-        pushl   %esi
-        pushl   %edi
-        movl    20(%esp),%esi
-        movl    24(%esp),%edi
-        movl    28(%esp),%eax
-        movl    32(%esp),%edx
-        movl    36(%esp),%ebx
-        andl    $-16,%eax
-        jz      .L012ecb_ret
-        movl    240(%edx),%ecx
-        testl   %ebx,%ebx
-        jz      .L013ecb_decrypt
-        movl    %edx,%ebp
-        movl    %ecx,%ebx
-        cmpl    $96,%eax
-        jb      .L014ecb_enc_tail
-        movdqu  (%esi),%xmm2
-        movdqu  16(%esi),%xmm3
-        movdqu  32(%esi),%xmm4
-        movdqu  48(%esi),%xmm5
-        movdqu  64(%esi),%xmm6
-        movdqu  80(%esi),%xmm7
-        leal    96(%esi),%esi
-        subl    $96,%eax
-        jmp     .L015ecb_enc_loop6_enter
-.align  16
-.L016ecb_enc_loop6:
-        movups  %xmm2,(%edi)
-        movdqu  (%esi),%xmm2
-        movups  %xmm3,16(%edi)
-        movdqu  16(%esi),%xmm3
-        movups  %xmm4,32(%edi)
-        movdqu  32(%esi),%xmm4
-        movups  %xmm5,48(%edi)
-        movdqu  48(%esi),%xmm5
-        movups  %xmm6,64(%edi)
-        movdqu  64(%esi),%xmm6
-        movups  %xmm7,80(%edi)
-        leal    96(%edi),%edi
-        movdqu  80(%esi),%xmm7
-        leal    96(%esi),%esi
-.L015ecb_enc_loop6_enter:
-        call    _aesni_encrypt6
-        movl    %ebp,%edx
-        movl    %ebx,%ecx
-        subl    $96,%eax
-        jnc     .L016ecb_enc_loop6
-        movups  %xmm2,(%edi)
-        movups  %xmm3,16(%edi)
-        movups  %xmm4,32(%edi)
-        movups  %xmm5,48(%edi)
-        movups  %xmm6,64(%edi)
-        movups  %xmm7,80(%edi)
-        leal    96(%edi),%edi
-        addl    $96,%eax
-        jz      .L012ecb_ret
-.L014ecb_enc_tail:
-        movups  (%esi),%xmm2
-        cmpl    $32,%eax
-        jb      .L017ecb_enc_one
-        movups  16(%esi),%xmm3
-        je      .L018ecb_enc_two
-        movups  32(%esi),%xmm4
-        cmpl    $64,%eax
-        jb      .L019ecb_enc_three
-        movups  48(%esi),%xmm5
-        je      .L020ecb_enc_four
-        movups  64(%esi),%xmm6
-        xorps   %xmm7,%xmm7
-        call    _aesni_encrypt6
-        movups  %xmm2,(%edi)
-        movups  %xmm3,16(%edi)
-        movups  %xmm4,32(%edi)
-        movups  %xmm5,48(%edi)
-        movups  %xmm6,64(%edi)
-        jmp     .L012ecb_ret
-.align  16
-.L017ecb_enc_one:
-        movups  (%edx),%xmm0
-        movups  16(%edx),%xmm1
-        leal    32(%edx),%edx
-        xorps   %xmm0,%xmm2
-.L021enc1_loop_3:
-.byte   102,15,56,220,209
-        decl    %ecx
-        movups  (%edx),%xmm1
-        leal    16(%edx),%edx
-        jnz     .L021enc1_loop_3
-.byte   102,15,56,221,209
-        movups  %xmm2,(%edi)
-        jmp     .L012ecb_ret
-.align  16
-.L018ecb_enc_two:
-        call    _aesni_encrypt2
-        movups  %xmm2,(%edi)
-        movups  %xmm3,16(%edi)
-        jmp     .L012ecb_ret
-.align  16
-.L019ecb_enc_three:
-        call    _aesni_encrypt3
-        movups  %xmm2,(%edi)
-        movups  %xmm3,16(%edi)
-        movups  %xmm4,32(%edi)
-        jmp     .L012ecb_ret
-.align  16
-.L020ecb_enc_four:
-        call    _aesni_encrypt4
-        movups  %xmm2,(%edi)
-        movups  %xmm3,16(%edi)
-        movups  %xmm4,32(%edi)
-        movups  %xmm5,48(%edi)
-        jmp     .L012ecb_ret
-.align  16
-.L013ecb_decrypt:
-        movl    %edx,%ebp
-        movl    %ecx,%ebx
-        cmpl    $96,%eax
-        jb      .L022ecb_dec_tail
-        movdqu  (%esi),%xmm2
-        movdqu  16(%esi),%xmm3
-        movdqu  32(%esi),%xmm4
-        movdqu  48(%esi),%xmm5
-        movdqu  64(%esi),%xmm6
-        movdqu  80(%esi),%xmm7
-        leal    96(%esi),%esi
-        subl    $96,%eax
-        jmp     .L023ecb_dec_loop6_enter
-.align  16
-.L024ecb_dec_loop6:
-        movups  %xmm2,(%edi)
-        movdqu  (%esi),%xmm2
-        movups  %xmm3,16(%edi)
-        movdqu  16(%esi),%xmm3
-        movups  %xmm4,32(%edi)
-        movdqu  32(%esi),%xmm4
-        movups  %xmm5,48(%edi)
-        movdqu  48(%esi),%xmm5
-        movups  %xmm6,64(%edi)
-        movdqu  64(%esi),%xmm6
-        movups  %xmm7,80(%edi)
-        leal    96(%edi),%edi
-        movdqu  80(%esi),%xmm7
-        leal    96(%esi),%esi
-.L023ecb_dec_loop6_enter:
-        call    _aesni_decrypt6
-        movl    %ebp,%edx
-        movl    %ebx,%ecx
-        subl    $96,%eax
-        jnc     .L024ecb_dec_loop6
-        movups  %xmm2,(%edi)
-        movups  %xmm3,16(%edi)
-        movups  %xmm4,32(%edi)
-        movups  %xmm5,48(%edi)
-        movups  %xmm6,64(%edi)
-        movups  %xmm7,80(%edi)
-        leal    96(%edi),%edi
-        addl    $96,%eax
-        jz      .L012ecb_ret
-.L022ecb_dec_tail:
-        movups  (%esi),%xmm2
-        cmpl    $32,%eax
-        jb      .L025ecb_dec_one
-        movups  16(%esi),%xmm3
-        je      .L026ecb_dec_two
-        movups  32(%esi),%xmm4
-        cmpl    $64,%eax
-        jb      .L027ecb_dec_three
-        movups  48(%esi),%xmm5
-        je      .L028ecb_dec_four
-        movups  64(%esi),%xmm6
-        xorps   %xmm7,%xmm7
-        call    _aesni_decrypt6
-        movups  %xmm2,(%edi)
-        movups  %xmm3,16(%edi)
-        movups  %xmm4,32(%edi)
-        movups  %xmm5,48(%edi)
-        movups  %xmm6,64(%edi)
-        jmp     .L012ecb_ret
-.align  16
-.L025ecb_dec_one:
-        movups  (%edx),%xmm0
-        movups  16(%edx),%xmm1
-        leal    32(%edx),%edx
-        xorps   %xmm0,%xmm2
-.L029dec1_loop_4:
-.byte   102,15,56,222,209
-        decl    %ecx
-        movups  (%edx),%xmm1
-        leal    16(%edx),%edx
-        jnz     .L029dec1_loop_4
-.byte   102,15,56,223,209
-        movups  %xmm2,(%edi)
-        jmp     .L012ecb_ret
-.align  16
-.L026ecb_dec_two:
-        call    _aesni_decrypt2
-        movups  %xmm2,(%edi)
-        movups  %xmm3,16(%edi)
-        jmp     .L012ecb_ret
-.align  16
-.L027ecb_dec_three:
-        call    _aesni_decrypt3
-        movups  %xmm2,(%edi)
-        movups  %xmm3,16(%edi)
-        movups  %xmm4,32(%edi)
-        jmp     .L012ecb_ret
-.align  16
-.L028ecb_dec_four:
-        call    _aesni_decrypt4
-        movups  %xmm2,(%edi)
-        movups  %xmm3,16(%edi)
-        movups  %xmm4,32(%edi)
-        movups  %xmm5,48(%edi)
-.L012ecb_ret:
-        pxor    %xmm0,%xmm0
-        pxor    %xmm1,%xmm1
-        pxor    %xmm2,%xmm2
-        pxor    %xmm3,%xmm3
-        pxor    %xmm4,%xmm4
-        pxor    %xmm5,%xmm5
-        pxor    %xmm6,%xmm6
-        pxor    %xmm7,%xmm7
-        popl    %edi
-        popl    %esi
-        popl    %ebx
-        popl    %ebp
-        ret
-.size   aesni_ecb_encrypt,.-.L_aesni_ecb_encrypt_begin
-.globl  aesni_ccm64_encrypt_blocks
-.type   aesni_ccm64_encrypt_blocks, at function
-.align  16
-aesni_ccm64_encrypt_blocks:
-.L_aesni_ccm64_encrypt_blocks_begin:
-        pushl   %ebp
-        pushl   %ebx
-        pushl   %esi
-        pushl   %edi
-        movl    20(%esp),%esi
-        movl    24(%esp),%edi
-        movl    28(%esp),%eax
-        movl    32(%esp),%edx
-        movl    36(%esp),%ebx
-        movl    40(%esp),%ecx
-        movl    %esp,%ebp
-        subl    $60,%esp
-        andl    $-16,%esp
-        movl    %ebp,48(%esp)
-        movdqu  (%ebx),%xmm7
-        movdqu  (%ecx),%xmm3
-        movl    240(%edx),%ecx
-        movl    $202182159,(%esp)
-        movl    $134810123,4(%esp)
-        movl    $67438087,8(%esp)
-        movl    $66051,12(%esp)
-        movl    $1,%ebx
-        xorl    %ebp,%ebp
-        movl    %ebx,16(%esp)
-        movl    %ebp,20(%esp)
-        movl    %ebp,24(%esp)
-        movl    %ebp,28(%esp)
-        shll    $4,%ecx
-        movl    $16,%ebx
-        leal    (%edx),%ebp
-        movdqa  (%esp),%xmm5
-        movdqa  %xmm7,%xmm2
-        leal    32(%edx,%ecx,1),%edx
-        subl    %ecx,%ebx
-.byte   102,15,56,0,253
-.L030ccm64_enc_outer:
-        movups  (%ebp),%xmm0
-        movl    %ebx,%ecx
-        movups  (%esi),%xmm6
-        xorps   %xmm0,%xmm2
-        movups  16(%ebp),%xmm1
-        xorps   %xmm6,%xmm0
-        xorps   %xmm0,%xmm3
-        movups  32(%ebp),%xmm0
-.L031ccm64_enc2_loop:
-.byte   102,15,56,220,209
-.byte   102,15,56,220,217
-        movups  (%edx,%ecx,1),%xmm1
-        addl    $32,%ecx
-.byte   102,15,56,220,208
-.byte   102,15,56,220,216
-        movups  -16(%edx,%ecx,1),%xmm0
-        jnz     .L031ccm64_enc2_loop
-.byte   102,15,56,220,209
-.byte   102,15,56,220,217
-        paddq   16(%esp),%xmm7
-        decl    %eax
-.byte   102,15,56,221,208
-.byte   102,15,56,221,216
-        leal    16(%esi),%esi
-        xorps   %xmm2,%xmm6
-        movdqa  %xmm7,%xmm2
-        movups  %xmm6,(%edi)
-.byte   102,15,56,0,213
-        leal    16(%edi),%edi
-        jnz     .L030ccm64_enc_outer
-        movl    48(%esp),%esp
-        movl    40(%esp),%edi
-        movups  %xmm3,(%edi)
-        pxor    %xmm0,%xmm0
-        pxor    %xmm1,%xmm1
-        pxor    %xmm2,%xmm2
-        pxor    %xmm3,%xmm3
-        pxor    %xmm4,%xmm4
-        pxor    %xmm5,%xmm5
-        pxor    %xmm6,%xmm6
-        pxor    %xmm7,%xmm7
-        popl    %edi
-        popl    %esi
-        popl    %ebx
-        popl    %ebp
-        ret
-.size   aesni_ccm64_encrypt_blocks,.-.L_aesni_ccm64_encrypt_blocks_begin
-.globl  aesni_ccm64_decrypt_blocks
-.type   aesni_ccm64_decrypt_blocks, at function
-.align  16
-aesni_ccm64_decrypt_blocks:
-.L_aesni_ccm64_decrypt_blocks_begin:
-        pushl   %ebp
-        pushl   %ebx
-        pushl   %esi
-        pushl   %edi
-        movl    20(%esp),%esi
-        movl    24(%esp),%edi
-        movl    28(%esp),%eax
-        movl    32(%esp),%edx
-        movl    36(%esp),%ebx
-        movl    40(%esp),%ecx
-        movl    %esp,%ebp
-        subl    $60,%esp
-        andl    $-16,%esp
-        movl    %ebp,48(%esp)
-        movdqu  (%ebx),%xmm7
-        movdqu  (%ecx),%xmm3
-        movl    240(%edx),%ecx
-        movl    $202182159,(%esp)
-        movl    $134810123,4(%esp)
-        movl    $67438087,8(%esp)
-        movl    $66051,12(%esp)
-        movl    $1,%ebx
-        xorl    %ebp,%ebp
-        movl    %ebx,16(%esp)
-        movl    %ebp,20(%esp)
-        movl    %ebp,24(%esp)
-        movl    %ebp,28(%esp)
-        movdqa  (%esp),%xmm5
-        movdqa  %xmm7,%xmm2
-        movl    %edx,%ebp
-        movl    %ecx,%ebx
-.byte   102,15,56,0,253
-        movups  (%edx),%xmm0
-        movups  16(%edx),%xmm1
-        leal    32(%edx),%edx
-        xorps   %xmm0,%xmm2
-.L032enc1_loop_5:
-.byte   102,15,56,220,209
-        decl    %ecx
-        movups  (%edx),%xmm1
-        leal    16(%edx),%edx
-        jnz     .L032enc1_loop_5
-.byte   102,15,56,221,209
-        shll    $4,%ebx
-        movl    $16,%ecx
-        movups  (%esi),%xmm6
-        paddq   16(%esp),%xmm7
-        leal    16(%esi),%esi
-        subl    %ebx,%ecx
-        leal    32(%ebp,%ebx,1),%edx
-        movl    %ecx,%ebx
-        jmp     .L033ccm64_dec_outer
-.align  16
-.L033ccm64_dec_outer:
-        xorps   %xmm2,%xmm6
-        movdqa  %xmm7,%xmm2
-        movups  %xmm6,(%edi)
-        leal    16(%edi),%edi
-.byte   102,15,56,0,213
-        subl    $1,%eax
-        jz      .L034ccm64_dec_break
-        movups  (%ebp),%xmm0
-        movl    %ebx,%ecx
-        movups  16(%ebp),%xmm1
-        xorps   %xmm0,%xmm6
-        xorps   %xmm0,%xmm2
-        xorps   %xmm6,%xmm3
-        movups  32(%ebp),%xmm0
-.L035ccm64_dec2_loop:
-.byte   102,15,56,220,209
-.byte   102,15,56,220,217
-        movups  (%edx,%ecx,1),%xmm1
-        addl    $32,%ecx
-.byte   102,15,56,220,208
-.byte   102,15,56,220,216
-        movups  -16(%edx,%ecx,1),%xmm0
-        jnz     .L035ccm64_dec2_loop
-        movups  (%esi),%xmm6
-        paddq   16(%esp),%xmm7
-.byte   102,15,56,220,209
-.byte   102,15,56,220,217
-.byte   102,15,56,221,208
-.byte   102,15,56,221,216
-        leal    16(%esi),%esi
-        jmp     .L033ccm64_dec_outer
-.align  16
-.L034ccm64_dec_break:
-        movl    240(%ebp),%ecx
-        movl    %ebp,%edx
-        movups  (%edx),%xmm0
-        movups  16(%edx),%xmm1
-        xorps   %xmm0,%xmm6
-        leal    32(%edx),%edx
-        xorps   %xmm6,%xmm3
-.L036enc1_loop_6:
-.byte   102,15,56,220,217
-        decl    %ecx
-        movups  (%edx),%xmm1
-        leal    16(%edx),%edx
-        jnz     .L036enc1_loop_6
-.byte   102,15,56,221,217
-        movl    48(%esp),%esp
-        movl    40(%esp),%edi
-        movups  %xmm3,(%edi)
-        pxor    %xmm0,%xmm0
-        pxor    %xmm1,%xmm1
-        pxor    %xmm2,%xmm2
-        pxor    %xmm3,%xmm3
-        pxor    %xmm4,%xmm4
-        pxor    %xmm5,%xmm5
-        pxor    %xmm6,%xmm6
-        pxor    %xmm7,%xmm7
-        popl    %edi
-        popl    %esi
-        popl    %ebx
-        popl    %ebp
-        ret
-.size   aesni_ccm64_decrypt_blocks,.-.L_aesni_ccm64_decrypt_blocks_begin
-.globl  aesni_ctr32_encrypt_blocks
-.type   aesni_ctr32_encrypt_blocks, at function
-.align  16
-aesni_ctr32_encrypt_blocks:
-.L_aesni_ctr32_encrypt_blocks_begin:
-        pushl   %ebp
-        pushl   %ebx
-        pushl   %esi
-        pushl   %edi
-        movl    20(%esp),%esi
-        movl    24(%esp),%edi
-        movl    28(%esp),%eax
-        movl    32(%esp),%edx
-        movl    36(%esp),%ebx
-        movl    %esp,%ebp
-        subl    $88,%esp
-        andl    $-16,%esp
-        movl    %ebp,80(%esp)
-        cmpl    $1,%eax
-        je      .L037ctr32_one_shortcut
-        movdqu  (%ebx),%xmm7
-        movl    $202182159,(%esp)
-        movl    $134810123,4(%esp)
-        movl    $67438087,8(%esp)
-        movl    $66051,12(%esp)
-        movl    $6,%ecx
-        xorl    %ebp,%ebp
-        movl    %ecx,16(%esp)
-        movl    %ecx,20(%esp)
-        movl    %ecx,24(%esp)
-        movl    %ebp,28(%esp)
-.byte   102,15,58,22,251,3
-.byte   102,15,58,34,253,3
-        movl    240(%edx),%ecx
-        bswap   %ebx
-        pxor    %xmm0,%xmm0
-        pxor    %xmm1,%xmm1
-        movdqa  (%esp),%xmm2
-.byte   102,15,58,34,195,0
-        leal    3(%ebx),%ebp
-.byte   102,15,58,34,205,0
-        incl    %ebx
-.byte   102,15,58,34,195,1
-        incl    %ebp
-.byte   102,15,58,34,205,1
-        incl    %ebx
-.byte   102,15,58,34,195,2
-        incl    %ebp
-.byte   102,15,58,34,205,2
-        movdqa  %xmm0,48(%esp)
-.byte   102,15,56,0,194
-        movdqu  (%edx),%xmm6
-        movdqa  %xmm1,64(%esp)
-.byte   102,15,56,0,202
-        pshufd  $192,%xmm0,%xmm2
-        pshufd  $128,%xmm0,%xmm3
-        cmpl    $6,%eax
-        jb      .L038ctr32_tail
-        pxor    %xmm6,%xmm7
-        shll    $4,%ecx
-        movl    $16,%ebx
-        movdqa  %xmm7,32(%esp)
-        movl    %edx,%ebp
-        subl    %ecx,%ebx
-        leal    32(%edx,%ecx,1),%edx
-        subl    $6,%eax
-        jmp     .L039ctr32_loop6
-.align  16
-.L039ctr32_loop6:
-        pshufd  $64,%xmm0,%xmm4
-        movdqa  32(%esp),%xmm0
-        pshufd  $192,%xmm1,%xmm5
-        pxor    %xmm0,%xmm2
-        pshufd  $128,%xmm1,%xmm6
-        pxor    %xmm0,%xmm3
-        pshufd  $64,%xmm1,%xmm7
-        movups  16(%ebp),%xmm1
-        pxor    %xmm0,%xmm4
-        pxor    %xmm0,%xmm5
-.byte   102,15,56,220,209
-        pxor    %xmm0,%xmm6
-        pxor    %xmm0,%xmm7
-.byte   102,15,56,220,217
-        movups  32(%ebp),%xmm0
-        movl    %ebx,%ecx
-.byte   102,15,56,220,225
-.byte   102,15,56,220,233
-.byte   102,15,56,220,241
-.byte   102,15,56,220,249
-        call    .L_aesni_encrypt6_enter
-        movups  (%esi),%xmm1
-        movups  16(%esi),%xmm0
-        xorps   %xmm1,%xmm2
-        movups  32(%esi),%xmm1
-        xorps   %xmm0,%xmm3
-        movups  %xmm2,(%edi)
-        movdqa  16(%esp),%xmm0
-        xorps   %xmm1,%xmm4
-        movdqa  64(%esp),%xmm1
-        movups  %xmm3,16(%edi)
-        movups  %xmm4,32(%edi)
-        paddd   %xmm0,%xmm1
-        paddd   48(%esp),%xmm0
-        movdqa  (%esp),%xmm2
-        movups  48(%esi),%xmm3
-        movups  64(%esi),%xmm4
-        xorps   %xmm3,%xmm5
-        movups  80(%esi),%xmm3
-        leal    96(%esi),%esi
-        movdqa  %xmm0,48(%esp)
-.byte   102,15,56,0,194
-        xorps   %xmm4,%xmm6
-        movups  %xmm5,48(%edi)
-        xorps   %xmm3,%xmm7
-        movdqa  %xmm1,64(%esp)
-.byte   102,15,56,0,202
-        movups  %xmm6,64(%edi)
-        pshufd  $192,%xmm0,%xmm2
-        movups  %xmm7,80(%edi)
-        leal    96(%edi),%edi
-        pshufd  $128,%xmm0,%xmm3
-        subl    $6,%eax
-        jnc     .L039ctr32_loop6
-        addl    $6,%eax
-        jz      .L040ctr32_ret
-        movdqu  (%ebp),%xmm7
-        movl    %ebp,%edx
-        pxor    32(%esp),%xmm7
-        movl    240(%ebp),%ecx
-.L038ctr32_tail:
-        por     %xmm7,%xmm2
-        cmpl    $2,%eax
-        jb      .L041ctr32_one
-        pshufd  $64,%xmm0,%xmm4
-        por     %xmm7,%xmm3
-        je      .L042ctr32_two
-        pshufd  $192,%xmm1,%xmm5
-        por     %xmm7,%xmm4
-        cmpl    $4,%eax
-        jb      .L043ctr32_three
-        pshufd  $128,%xmm1,%xmm6
-        por     %xmm7,%xmm5
-        je      .L044ctr32_four
-        por     %xmm7,%xmm6
-        call    _aesni_encrypt6
-        movups  (%esi),%xmm1
-        movups  16(%esi),%xmm0
-        xorps   %xmm1,%xmm2
-        movups  32(%esi),%xmm1
-        xorps   %xmm0,%xmm3
-        movups  48(%esi),%xmm0
-        xorps   %xmm1,%xmm4
-        movups  64(%esi),%xmm1
-        xorps   %xmm0,%xmm5
-        movups  %xmm2,(%edi)
-        xorps   %xmm1,%xmm6
-        movups  %xmm3,16(%edi)
-        movups  %xmm4,32(%edi)
-        movups  %xmm5,48(%edi)
-        movups  %xmm6,64(%edi)
-        jmp     .L040ctr32_ret
-.align  16
-.L037ctr32_one_shortcut:
-        movups  (%ebx),%xmm2
-        movl    240(%edx),%ecx
-.L041ctr32_one:
-        movups  (%edx),%xmm0
-        movups  16(%edx),%xmm1
-        leal    32(%edx),%edx
-        xorps   %xmm0,%xmm2
-.L045enc1_loop_7:
-.byte   102,15,56,220,209
-        decl    %ecx
-        movups  (%edx),%xmm1
-        leal    16(%edx),%edx
-        jnz     .L045enc1_loop_7
-.byte   102,15,56,221,209
-        movups  (%esi),%xmm6
-        xorps   %xmm2,%xmm6
-        movups  %xmm6,(%edi)
-        jmp     .L040ctr32_ret
-.align  16
-.L042ctr32_two:
-        call    _aesni_encrypt2
-        movups  (%esi),%xmm5
-        movups  16(%esi),%xmm6
-        xorps   %xmm5,%xmm2
-        xorps   %xmm6,%xmm3
-        movups  %xmm2,(%edi)
-        movups  %xmm3,16(%edi)
-        jmp     .L040ctr32_ret
-.align  16
-.L043ctr32_three:
-        call    _aesni_encrypt3
-        movups  (%esi),%xmm5
-        movups  16(%esi),%xmm6
-        xorps   %xmm5,%xmm2
-        movups  32(%esi),%xmm7
-        xorps   %xmm6,%xmm3
-        movups  %xmm2,(%edi)
-        xorps   %xmm7,%xmm4
-        movups  %xmm3,16(%edi)
-        movups  %xmm4,32(%edi)
-        jmp     .L040ctr32_ret
-.align  16
-.L044ctr32_four:
-        call    _aesni_encrypt4
-        movups  (%esi),%xmm6
-        movups  16(%esi),%xmm7
-        movups  32(%esi),%xmm1
-        xorps   %xmm6,%xmm2
-        movups  48(%esi),%xmm0
-        xorps   %xmm7,%xmm3
-        movups  %xmm2,(%edi)
-        xorps   %xmm1,%xmm4
-        movups  %xmm3,16(%edi)
-        xorps   %xmm0,%xmm5
-        movups  %xmm4,32(%edi)
-        movups  %xmm5,48(%edi)
-.L040ctr32_ret:
-        pxor    %xmm0,%xmm0
-        pxor    %xmm1,%xmm1
-        pxor    %xmm2,%xmm2
-        pxor    %xmm3,%xmm3
-        pxor    %xmm4,%xmm4
-        movdqa  %xmm0,32(%esp)
-        pxor    %xmm5,%xmm5
-        movdqa  %xmm0,48(%esp)
-        pxor    %xmm6,%xmm6
-        movdqa  %xmm0,64(%esp)
-        pxor    %xmm7,%xmm7
-        movl    80(%esp),%esp
-        popl    %edi
-        popl    %esi
-        popl    %ebx
-        popl    %ebp
-        ret
-.size   aesni_ctr32_encrypt_blocks,.-.L_aesni_ctr32_encrypt_blocks_begin
-.globl  aesni_xts_encrypt
-.type   aesni_xts_encrypt, at function
-.align  16
-aesni_xts_encrypt:
-.L_aesni_xts_encrypt_begin:
-        pushl   %ebp
-        pushl   %ebx
-        pushl   %esi
-        pushl   %edi
-        movl    36(%esp),%edx
-        movl    40(%esp),%esi
-        movl    240(%edx),%ecx
-        movups  (%esi),%xmm2
-        movups  (%edx),%xmm0
-        movups  16(%edx),%xmm1
-        leal    32(%edx),%edx
-        xorps   %xmm0,%xmm2
-.L046enc1_loop_8:
-.byte   102,15,56,220,209
-        decl    %ecx
-        movups  (%edx),%xmm1
-        leal    16(%edx),%edx
-        jnz     .L046enc1_loop_8
-.byte   102,15,56,221,209
-        movl    20(%esp),%esi
-        movl    24(%esp),%edi
-        movl    28(%esp),%eax
-        movl    32(%esp),%edx
-        movl    %esp,%ebp
-        subl    $120,%esp
-        movl    240(%edx),%ecx
-        andl    $-16,%esp
-        movl    $135,96(%esp)
-        movl    $0,100(%esp)
-        movl    $1,104(%esp)
-        movl    $0,108(%esp)
-        movl    %eax,112(%esp)
-        movl    %ebp,116(%esp)
-        movdqa  %xmm2,%xmm1
-        pxor    %xmm0,%xmm0
-        movdqa  96(%esp),%xmm3
-        pcmpgtd %xmm1,%xmm0
-        andl    $-16,%eax
-        movl    %edx,%ebp
-        movl    %ecx,%ebx
-        subl    $96,%eax
-        jc      .L047xts_enc_short
-        shll    $4,%ecx
-        movl    $16,%ebx
-        subl    %ecx,%ebx
-        leal    32(%edx,%ecx,1),%edx
-        jmp     .L048xts_enc_loop6
-.align  16
-.L048xts_enc_loop6:
-        pshufd  $19,%xmm0,%xmm2
-        pxor    %xmm0,%xmm0
-        movdqa  %xmm1,(%esp)
-        paddq   %xmm1,%xmm1
-        pand    %xmm3,%xmm2
-        pcmpgtd %xmm1,%xmm0
-        pxor    %xmm2,%xmm1
-        pshufd  $19,%xmm0,%xmm2
-        pxor    %xmm0,%xmm0
-        movdqa  %xmm1,16(%esp)
-        paddq   %xmm1,%xmm1
-        pand    %xmm3,%xmm2
-        pcmpgtd %xmm1,%xmm0
-        pxor    %xmm2,%xmm1
-        pshufd  $19,%xmm0,%xmm2
-        pxor    %xmm0,%xmm0
-        movdqa  %xmm1,32(%esp)
-        paddq   %xmm1,%xmm1
-        pand    %xmm3,%xmm2
-        pcmpgtd %xmm1,%xmm0
-        pxor    %xmm2,%xmm1
-        pshufd  $19,%xmm0,%xmm2
-        pxor    %xmm0,%xmm0
-        movdqa  %xmm1,48(%esp)
-        paddq   %xmm1,%xmm1
-        pand    %xmm3,%xmm2
-        pcmpgtd %xmm1,%xmm0
-        pxor    %xmm2,%xmm1
-        pshufd  $19,%xmm0,%xmm7
-        movdqa  %xmm1,64(%esp)
-        paddq   %xmm1,%xmm1
-        movups  (%ebp),%xmm0
-        pand    %xmm3,%xmm7
-        movups  (%esi),%xmm2
-        pxor    %xmm1,%xmm7
-        movl    %ebx,%ecx
-        movdqu  16(%esi),%xmm3
-        xorps   %xmm0,%xmm2
-        movdqu  32(%esi),%xmm4
-        pxor    %xmm0,%xmm3
-        movdqu  48(%esi),%xmm5
-        pxor    %xmm0,%xmm4
-        movdqu  64(%esi),%xmm6
-        pxor    %xmm0,%xmm5
-        movdqu  80(%esi),%xmm1
-        pxor    %xmm0,%xmm6
-        leal    96(%esi),%esi
-        pxor    (%esp),%xmm2
-        movdqa  %xmm7,80(%esp)
-        pxor    %xmm1,%xmm7
-        movups  16(%ebp),%xmm1
-        pxor    16(%esp),%xmm3
-        pxor    32(%esp),%xmm4
-.byte   102,15,56,220,209
-        pxor    48(%esp),%xmm5
-        pxor    64(%esp),%xmm6
-.byte   102,15,56,220,217
-        pxor    %xmm0,%xmm7
-        movups  32(%ebp),%xmm0
-.byte   102,15,56,220,225
-.byte   102,15,56,220,233
-.byte   102,15,56,220,241
-.byte   102,15,56,220,249
-        call    .L_aesni_encrypt6_enter
-        movdqa  80(%esp),%xmm1
-        pxor    %xmm0,%xmm0
-        xorps   (%esp),%xmm2
-        pcmpgtd %xmm1,%xmm0
-        xorps   16(%esp),%xmm3
-        movups  %xmm2,(%edi)
-        xorps   32(%esp),%xmm4
-        movups  %xmm3,16(%edi)
-        xorps   48(%esp),%xmm5
-        movups  %xmm4,32(%edi)
-        xorps   64(%esp),%xmm6
-        movups  %xmm5,48(%edi)
-        xorps   %xmm1,%xmm7
-        movups  %xmm6,64(%edi)
-        pshufd  $19,%xmm0,%xmm2
-        movups  %xmm7,80(%edi)
-        leal    96(%edi),%edi
-        movdqa  96(%esp),%xmm3
-        pxor    %xmm0,%xmm0
-        paddq   %xmm1,%xmm1
-        pand    %xmm3,%xmm2
-        pcmpgtd %xmm1,%xmm0
-        pxor    %xmm2,%xmm1
-        subl    $96,%eax
-        jnc     .L048xts_enc_loop6
-        movl    240(%ebp),%ecx
-        movl    %ebp,%edx
-        movl    %ecx,%ebx
-.L047xts_enc_short:
-        addl    $96,%eax
-        jz      .L049xts_enc_done6x
-        movdqa  %xmm1,%xmm5
-        cmpl    $32,%eax
-        jb      .L050xts_enc_one
-        pshufd  $19,%xmm0,%xmm2
-        pxor    %xmm0,%xmm0
-        paddq   %xmm1,%xmm1
-        pand    %xmm3,%xmm2
-        pcmpgtd %xmm1,%xmm0
-        pxor    %xmm2,%xmm1
-        je      .L051xts_enc_two
-        pshufd  $19,%xmm0,%xmm2
-        pxor    %xmm0,%xmm0
-        movdqa  %xmm1,%xmm6
-        paddq   %xmm1,%xmm1
-        pand    %xmm3,%xmm2
-        pcmpgtd %xmm1,%xmm0
-        pxor    %xmm2,%xmm1
-        cmpl    $64,%eax
-        jb      .L052xts_enc_three
-        pshufd  $19,%xmm0,%xmm2
-        pxor    %xmm0,%xmm0
-        movdqa  %xmm1,%xmm7
-        paddq   %xmm1,%xmm1
-        pand    %xmm3,%xmm2
-        pcmpgtd %xmm1,%xmm0
-        pxor    %xmm2,%xmm1
-        movdqa  %xmm5,(%esp)
-        movdqa  %xmm6,16(%esp)
-        je      .L053xts_enc_four
-        movdqa  %xmm7,32(%esp)
-        pshufd  $19,%xmm0,%xmm7
-        movdqa  %xmm1,48(%esp)
-        paddq   %xmm1,%xmm1
-        pand    %xmm3,%xmm7
-        pxor    %xmm1,%xmm7
-        movdqu  (%esi),%xmm2
-        movdqu  16(%esi),%xmm3
-        movdqu  32(%esi),%xmm4
-        pxor    (%esp),%xmm2
-        movdqu  48(%esi),%xmm5
-        pxor    16(%esp),%xmm3
-        movdqu  64(%esi),%xmm6
-        pxor    32(%esp),%xmm4
-        leal    80(%esi),%esi
-        pxor    48(%esp),%xmm5
-        movdqa  %xmm7,64(%esp)
-        pxor    %xmm7,%xmm6
-        call    _aesni_encrypt6
-        movaps  64(%esp),%xmm1
-        xorps   (%esp),%xmm2
-        xorps   16(%esp),%xmm3
-        xorps   32(%esp),%xmm4
-        movups  %xmm2,(%edi)
-        xorps   48(%esp),%xmm5
-        movups  %xmm3,16(%edi)
-        xorps   %xmm1,%xmm6
-        movups  %xmm4,32(%edi)
-        movups  %xmm5,48(%edi)
-        movups  %xmm6,64(%edi)
-        leal    80(%edi),%edi
-        jmp     .L054xts_enc_done
-.align  16
-.L050xts_enc_one:
-        movups  (%esi),%xmm2
-        leal    16(%esi),%esi
-        xorps   %xmm5,%xmm2
-        movups  (%edx),%xmm0
-        movups  16(%edx),%xmm1
-        leal    32(%edx),%edx
-        xorps   %xmm0,%xmm2
-.L055enc1_loop_9:
-.byte   102,15,56,220,209
-        decl    %ecx
-        movups  (%edx),%xmm1
-        leal    16(%edx),%edx
-        jnz     .L055enc1_loop_9
-.byte   102,15,56,221,209
-        xorps   %xmm5,%xmm2
-        movups  %xmm2,(%edi)
-        leal    16(%edi),%edi
-        movdqa  %xmm5,%xmm1
-        jmp     .L054xts_enc_done
-.align  16
-.L051xts_enc_two:
-        movaps  %xmm1,%xmm6
-        movups  (%esi),%xmm2
-        movups  16(%esi),%xmm3
-        leal    32(%esi),%esi
-        xorps   %xmm5,%xmm2
-        xorps   %xmm6,%xmm3
-        call    _aesni_encrypt2
-        xorps   %xmm5,%xmm2
-        xorps   %xmm6,%xmm3
-        movups  %xmm2,(%edi)
-        movups  %xmm3,16(%edi)
-        leal    32(%edi),%edi
-        movdqa  %xmm6,%xmm1
-        jmp     .L054xts_enc_done
-.align  16
-.L052xts_enc_three:
-        movaps  %xmm1,%xmm7
-        movups  (%esi),%xmm2
-        movups  16(%esi),%xmm3
-        movups  32(%esi),%xmm4
-        leal    48(%esi),%esi
-        xorps   %xmm5,%xmm2
-        xorps   %xmm6,%xmm3
-        xorps   %xmm7,%xmm4
-        call    _aesni_encrypt3
-        xorps   %xmm5,%xmm2
-        xorps   %xmm6,%xmm3
-        xorps   %xmm7,%xmm4
-        movups  %xmm2,(%edi)
-        movups  %xmm3,16(%edi)
-        movups  %xmm4,32(%edi)
-        leal    48(%edi),%edi
-        movdqa  %xmm7,%xmm1
-        jmp     .L054xts_enc_done
-.align  16
-.L053xts_enc_four:
-        movaps  %xmm1,%xmm6
-        movups  (%esi),%xmm2
-        movups  16(%esi),%xmm3
-        movups  32(%esi),%xmm4
-        xorps   (%esp),%xmm2
-        movups  48(%esi),%xmm5
-        leal    64(%esi),%esi
-        xorps   16(%esp),%xmm3
-        xorps   %xmm7,%xmm4
-        xorps   %xmm6,%xmm5
-        call    _aesni_encrypt4
-        xorps   (%esp),%xmm2
-        xorps   16(%esp),%xmm3
-        xorps   %xmm7,%xmm4
-        movups  %xmm2,(%edi)
-        xorps   %xmm6,%xmm5
-        movups  %xmm3,16(%edi)
-        movups  %xmm4,32(%edi)
-        movups  %xmm5,48(%edi)
-        leal    64(%edi),%edi
-        movdqa  %xmm6,%xmm1
-        jmp     .L054xts_enc_done
-.align  16
-.L049xts_enc_done6x:
-        movl    112(%esp),%eax
-        andl    $15,%eax
-        jz      .L056xts_enc_ret
-        movdqa  %xmm1,%xmm5
-        movl    %eax,112(%esp)
-        jmp     .L057xts_enc_steal
-.align  16
-.L054xts_enc_done:
-        movl    112(%esp),%eax
-        pxor    %xmm0,%xmm0
-        andl    $15,%eax
-        jz      .L056xts_enc_ret
-        pcmpgtd %xmm1,%xmm0
-        movl    %eax,112(%esp)
-        pshufd  $19,%xmm0,%xmm5
-        paddq   %xmm1,%xmm1
-        pand    96(%esp),%xmm5
-        pxor    %xmm1,%xmm5
-.L057xts_enc_steal:
-        movzbl  (%esi),%ecx
-        movzbl  -16(%edi),%edx
-        leal    1(%esi),%esi
-        movb    %cl,-16(%edi)
-        movb    %dl,(%edi)
-        leal    1(%edi),%edi
-        subl    $1,%eax
-        jnz     .L057xts_enc_steal
-        subl    112(%esp),%edi
-        movl    %ebp,%edx
-        movl    %ebx,%ecx
-        movups  -16(%edi),%xmm2
-        xorps   %xmm5,%xmm2
-        movups  (%edx),%xmm0
-        movups  16(%edx),%xmm1
-        leal    32(%edx),%edx
-        xorps   %xmm0,%xmm2
-.L058enc1_loop_10:
-.byte   102,15,56,220,209
-        decl    %ecx
-        movups  (%edx),%xmm1
-        leal    16(%edx),%edx
-        jnz     .L058enc1_loop_10
-.byte   102,15,56,221,209
-        xorps   %xmm5,%xmm2
-        movups  %xmm2,-16(%edi)
-.L056xts_enc_ret:
-        pxor    %xmm0,%xmm0
-        pxor    %xmm1,%xmm1
-        pxor    %xmm2,%xmm2
-        movdqa  %xmm0,(%esp)
-        pxor    %xmm3,%xmm3
-        movdqa  %xmm0,16(%esp)
-        pxor    %xmm4,%xmm4
-        movdqa  %xmm0,32(%esp)
-        pxor    %xmm5,%xmm5
-        movdqa  %xmm0,48(%esp)
-        pxor    %xmm6,%xmm6
-        movdqa  %xmm0,64(%esp)
-        pxor    %xmm7,%xmm7
-        movdqa  %xmm0,80(%esp)
-        movl    116(%esp),%esp
-        popl    %edi
-        popl    %esi
-        popl    %ebx
-        popl    %ebp
-        ret
-.size   aesni_xts_encrypt,.-.L_aesni_xts_encrypt_begin
-.globl  aesni_xts_decrypt
-.type   aesni_xts_decrypt, at function
-.align  16
-aesni_xts_decrypt:
-.L_aesni_xts_decrypt_begin:
-        pushl   %ebp
-        pushl   %ebx
-        pushl   %esi
-        pushl   %edi
-        movl    36(%esp),%edx
-        movl    40(%esp),%esi
-        movl    240(%edx),%ecx
-        movups  (%esi),%xmm2
-        movups  (%edx),%xmm0
-        movups  16(%edx),%xmm1
-        leal    32(%edx),%edx
-        xorps   %xmm0,%xmm2
-.L059enc1_loop_11:
-.byte   102,15,56,220,209
-        decl    %ecx
-        movups  (%edx),%xmm1
-        leal    16(%edx),%edx
-        jnz     .L059enc1_loop_11
-.byte   102,15,56,221,209
-        movl    20(%esp),%esi
-        movl    24(%esp),%edi
-        movl    28(%esp),%eax
-        movl    32(%esp),%edx
-        movl    %esp,%ebp
-        subl    $120,%esp
-        andl    $-16,%esp
-        xorl    %ebx,%ebx
-        testl   $15,%eax
-        setnz   %bl
-        shll    $4,%ebx
-        subl    %ebx,%eax
-        movl    $135,96(%esp)
-        movl    $0,100(%esp)
-        movl    $1,104(%esp)
-        movl    $0,108(%esp)
-        movl    %eax,112(%esp)
-        movl    %ebp,116(%esp)
-        movl    240(%edx),%ecx
-        movl    %edx,%ebp
-        movl    %ecx,%ebx
-        movdqa  %xmm2,%xmm1
-        pxor    %xmm0,%xmm0
-        movdqa  96(%esp),%xmm3
-        pcmpgtd %xmm1,%xmm0
-        andl    $-16,%eax
-        subl    $96,%eax
-        jc      .L060xts_dec_short
-        shll    $4,%ecx
-        movl    $16,%ebx
-        subl    %ecx,%ebx
-        leal    32(%edx,%ecx,1),%edx
-        jmp     .L061xts_dec_loop6
-.align  16
-.L061xts_dec_loop6:
-        pshufd  $19,%xmm0,%xmm2
-        pxor    %xmm0,%xmm0
-        movdqa  %xmm1,(%esp)
-        paddq   %xmm1,%xmm1
-        pand    %xmm3,%xmm2
-        pcmpgtd %xmm1,%xmm0
-        pxor    %xmm2,%xmm1
-        pshufd  $19,%xmm0,%xmm2
-        pxor    %xmm0,%xmm0
-        movdqa  %xmm1,16(%esp)
-        paddq   %xmm1,%xmm1
-        pand    %xmm3,%xmm2
-        pcmpgtd %xmm1,%xmm0
-        pxor    %xmm2,%xmm1
-        pshufd  $19,%xmm0,%xmm2
-        pxor    %xmm0,%xmm0
-        movdqa  %xmm1,32(%esp)
-        paddq   %xmm1,%xmm1
-        pand    %xmm3,%xmm2
-        pcmpgtd %xmm1,%xmm0
-        pxor    %xmm2,%xmm1
-        pshufd  $19,%xmm0,%xmm2
-        pxor    %xmm0,%xmm0
-        movdqa  %xmm1,48(%esp)
-        paddq   %xmm1,%xmm1
-        pand    %xmm3,%xmm2
-        pcmpgtd %xmm1,%xmm0
-        pxor    %xmm2,%xmm1
-        pshufd  $19,%xmm0,%xmm7
-        movdqa  %xmm1,64(%esp)
-        paddq   %xmm1,%xmm1
-        movups  (%ebp),%xmm0
-        pand    %xmm3,%xmm7
-        movups  (%esi),%xmm2
-        pxor    %xmm1,%xmm7
-        movl    %ebx,%ecx
-        movdqu  16(%esi),%xmm3
-        xorps   %xmm0,%xmm2
-        movdqu  32(%esi),%xmm4
-        pxor    %xmm0,%xmm3
-        movdqu  48(%esi),%xmm5
-        pxor    %xmm0,%xmm4
-        movdqu  64(%esi),%xmm6
-        pxor    %xmm0,%xmm5
-        movdqu  80(%esi),%xmm1
-        pxor    %xmm0,%xmm6
-        leal    96(%esi),%esi
-        pxor    (%esp),%xmm2
-        movdqa  %xmm7,80(%esp)
-        pxor    %xmm1,%xmm7
-        movups  16(%ebp),%xmm1
-        pxor    16(%esp),%xmm3
-        pxor    32(%esp),%xmm4
-.byte   102,15,56,222,209
-        pxor    48(%esp),%xmm5
-        pxor    64(%esp),%xmm6
-.byte   102,15,56,222,217
-        pxor    %xmm0,%xmm7
-        movups  32(%ebp),%xmm0
-.byte   102,15,56,222,225
-.byte   102,15,56,222,233
-.byte   102,15,56,222,241
-.byte   102,15,56,222,249
-        call    .L_aesni_decrypt6_enter
-        movdqa  80(%esp),%xmm1
-        pxor    %xmm0,%xmm0
-        xorps   (%esp),%xmm2
-        pcmpgtd %xmm1,%xmm0
-        xorps   16(%esp),%xmm3
-        movups  %xmm2,(%edi)
-        xorps   32(%esp),%xmm4
-        movups  %xmm3,16(%edi)
-        xorps   48(%esp),%xmm5
-        movups  %xmm4,32(%edi)
-        xorps   64(%esp),%xmm6
-        movups  %xmm5,48(%edi)
-        xorps   %xmm1,%xmm7
-        movups  %xmm6,64(%edi)
-        pshufd  $19,%xmm0,%xmm2
-        movups  %xmm7,80(%edi)
-        leal    96(%edi),%edi
-        movdqa  96(%esp),%xmm3
-        pxor    %xmm0,%xmm0
-        paddq   %xmm1,%xmm1
-        pand    %xmm3,%xmm2
-        pcmpgtd %xmm1,%xmm0
-        pxor    %xmm2,%xmm1
-        subl    $96,%eax
-        jnc     .L061xts_dec_loop6
-        movl    240(%ebp),%ecx
-        movl    %ebp,%edx
-        movl    %ecx,%ebx
-.L060xts_dec_short:
-        addl    $96,%eax
-        jz      .L062xts_dec_done6x
-        movdqa  %xmm1,%xmm5
-        cmpl    $32,%eax
-        jb      .L063xts_dec_one
-        pshufd  $19,%xmm0,%xmm2
-        pxor    %xmm0,%xmm0
-        paddq   %xmm1,%xmm1
-        pand    %xmm3,%xmm2
-        pcmpgtd %xmm1,%xmm0
-        pxor    %xmm2,%xmm1
-        je      .L064xts_dec_two
-        pshufd  $19,%xmm0,%xmm2
-        pxor    %xmm0,%xmm0
-        movdqa  %xmm1,%xmm6
-        paddq   %xmm1,%xmm1
-        pand    %xmm3,%xmm2
-        pcmpgtd %xmm1,%xmm0
-        pxor    %xmm2,%xmm1
-        cmpl    $64,%eax
-        jb      .L065xts_dec_three
-        pshufd  $19,%xmm0,%xmm2
-        pxor    %xmm0,%xmm0
-        movdqa  %xmm1,%xmm7
-        paddq   %xmm1,%xmm1
-        pand    %xmm3,%xmm2
-        pcmpgtd %xmm1,%xmm0
-        pxor    %xmm2,%xmm1
-        movdqa  %xmm5,(%esp)
-        movdqa  %xmm6,16(%esp)
-        je      .L066xts_dec_four
-        movdqa  %xmm7,32(%esp)
-        pshufd  $19,%xmm0,%xmm7
-        movdqa  %xmm1,48(%esp)
-        paddq   %xmm1,%xmm1
-        pand    %xmm3,%xmm7
-        pxor    %xmm1,%xmm7
-        movdqu  (%esi),%xmm2
-        movdqu  16(%esi),%xmm3
-        movdqu  32(%esi),%xmm4
-        pxor    (%esp),%xmm2
-        movdqu  48(%esi),%xmm5
-        pxor    16(%esp),%xmm3
-        movdqu  64(%esi),%xmm6
-        pxor    32(%esp),%xmm4
-        leal    80(%esi),%esi
-        pxor    48(%esp),%xmm5
-        movdqa  %xmm7,64(%esp)
-        pxor    %xmm7,%xmm6
-        call    _aesni_decrypt6
-        movaps  64(%esp),%xmm1
-        xorps   (%esp),%xmm2
-        xorps   16(%esp),%xmm3
-        xorps   32(%esp),%xmm4
-        movups  %xmm2,(%edi)
-        xorps   48(%esp),%xmm5
-        movups  %xmm3,16(%edi)
-        xorps   %xmm1,%xmm6
-        movups  %xmm4,32(%edi)
-        movups  %xmm5,48(%edi)
-        movups  %xmm6,64(%edi)
-        leal    80(%edi),%edi
-        jmp     .L067xts_dec_done
-.align  16
-.L063xts_dec_one:
-        movups  (%esi),%xmm2
-        leal    16(%esi),%esi
-        xorps   %xmm5,%xmm2
-        movups  (%edx),%xmm0
-        movups  16(%edx),%xmm1
-        leal    32(%edx),%edx
-        xorps   %xmm0,%xmm2
-.L068dec1_loop_12:
-.byte   102,15,56,222,209
-        decl    %ecx
-        movups  (%edx),%xmm1
-        leal    16(%edx),%edx
-        jnz     .L068dec1_loop_12
-.byte   102,15,56,223,209
-        xorps   %xmm5,%xmm2
-        movups  %xmm2,(%edi)
-        leal    16(%edi),%edi
-        movdqa  %xmm5,%xmm1
-        jmp     .L067xts_dec_done
-.align  16
-.L064xts_dec_two:
-        movaps  %xmm1,%xmm6
-        movups  (%esi),%xmm2
-        movups  16(%esi),%xmm3
-        leal    32(%esi),%esi
-        xorps   %xmm5,%xmm2
-        xorps   %xmm6,%xmm3
-        call    _aesni_decrypt2
-        xorps   %xmm5,%xmm2
-        xorps   %xmm6,%xmm3
-        movups  %xmm2,(%edi)
-        movups  %xmm3,16(%edi)
-        leal    32(%edi),%edi
-        movdqa  %xmm6,%xmm1
-        jmp     .L067xts_dec_done
-.align  16
-.L065xts_dec_three:
-        movaps  %xmm1,%xmm7
-        movups  (%esi),%xmm2
-        movups  16(%esi),%xmm3
-        movups  32(%esi),%xmm4
-        leal    48(%esi),%esi
-        xorps   %xmm5,%xmm2
-        xorps   %xmm6,%xmm3
-        xorps   %xmm7,%xmm4
-        call    _aesni_decrypt3
-        xorps   %xmm5,%xmm2
-        xorps   %xmm6,%xmm3
-        xorps   %xmm7,%xmm4
-        movups  %xmm2,(%edi)
-        movups  %xmm3,16(%edi)
-        movups  %xmm4,32(%edi)
-        leal    48(%edi),%edi
-        movdqa  %xmm7,%xmm1
-        jmp     .L067xts_dec_done
-.align  16
-.L066xts_dec_four:
-        movaps  %xmm1,%xmm6
-        movups  (%esi),%xmm2
-        movups  16(%esi),%xmm3
-        movups  32(%esi),%xmm4
-        xorps   (%esp),%xmm2
-        movups  48(%esi),%xmm5
-        leal    64(%esi),%esi
-        xorps   16(%esp),%xmm3
-        xorps   %xmm7,%xmm4
-        xorps   %xmm6,%xmm5
-        call    _aesni_decrypt4
-        xorps   (%esp),%xmm2
-        xorps   16(%esp),%xmm3
-        xorps   %xmm7,%xmm4
-        movups  %xmm2,(%edi)
-        xorps   %xmm6,%xmm5
-        movups  %xmm3,16(%edi)
-        movups  %xmm4,32(%edi)
-        movups  %xmm5,48(%edi)
-        leal    64(%edi),%edi
-        movdqa  %xmm6,%xmm1
-        jmp     .L067xts_dec_done
-.align  16
-.L062xts_dec_done6x:
-        movl    112(%esp),%eax
-        andl    $15,%eax
-        jz      .L069xts_dec_ret
-        movl    %eax,112(%esp)
-        jmp     .L070xts_dec_only_one_more
-.align  16
-.L067xts_dec_done:
-        movl    112(%esp),%eax
-        pxor    %xmm0,%xmm0
-        andl    $15,%eax
-        jz      .L069xts_dec_ret
-        pcmpgtd %xmm1,%xmm0
-        movl    %eax,112(%esp)
-        pshufd  $19,%xmm0,%xmm2
-        pxor    %xmm0,%xmm0
-        movdqa  96(%esp),%xmm3
-        paddq   %xmm1,%xmm1
-        pand    %xmm3,%xmm2
-        pcmpgtd %xmm1,%xmm0
-        pxor    %xmm2,%xmm1
-.L070xts_dec_only_one_more:
-        pshufd  $19,%xmm0,%xmm5
-        movdqa  %xmm1,%xmm6
-        paddq   %xmm1,%xmm1
-        pand    %xmm3,%xmm5
-        pxor    %xmm1,%xmm5
-        movl    %ebp,%edx
-        movl    %ebx,%ecx
-        movups  (%esi),%xmm2
-        xorps   %xmm5,%xmm2
-        movups  (%edx),%xmm0
-        movups  16(%edx),%xmm1
-        leal    32(%edx),%edx
-        xorps   %xmm0,%xmm2
-.L071dec1_loop_13:
-.byte   102,15,56,222,209
-        decl    %ecx
-        movups  (%edx),%xmm1
-        leal    16(%edx),%edx
-        jnz     .L071dec1_loop_13
-.byte   102,15,56,223,209
-        xorps   %xmm5,%xmm2
-        movups  %xmm2,(%edi)
-.L072xts_dec_steal:
-        movzbl  16(%esi),%ecx
-        movzbl  (%edi),%edx
-        leal    1(%esi),%esi
-        movb    %cl,(%edi)
-        movb    %dl,16(%edi)
-        leal    1(%edi),%edi
-        subl    $1,%eax
-        jnz     .L072xts_dec_steal
-        subl    112(%esp),%edi
-        movl    %ebp,%edx
-        movl    %ebx,%ecx
-        movups  (%edi),%xmm2
-        xorps   %xmm6,%xmm2
-        movups  (%edx),%xmm0
-        movups  16(%edx),%xmm1
-        leal    32(%edx),%edx
-        xorps   %xmm0,%xmm2
-.L073dec1_loop_14:
-.byte   102,15,56,222,209
-        decl    %ecx
-        movups  (%edx),%xmm1
-        leal    16(%edx),%edx
-        jnz     .L073dec1_loop_14
-.byte   102,15,56,223,209
-        xorps   %xmm6,%xmm2
-        movups  %xmm2,(%edi)
-.L069xts_dec_ret:
-        pxor    %xmm0,%xmm0
-        pxor    %xmm1,%xmm1
-        pxor    %xmm2,%xmm2
-        movdqa  %xmm0,(%esp)
-        pxor    %xmm3,%xmm3
-        movdqa  %xmm0,16(%esp)
-        pxor    %xmm4,%xmm4
-        movdqa  %xmm0,32(%esp)
-        pxor    %xmm5,%xmm5
-        movdqa  %xmm0,48(%esp)
-        pxor    %xmm6,%xmm6
-        movdqa  %xmm0,64(%esp)
-        pxor    %xmm7,%xmm7
-        movdqa  %xmm0,80(%esp)
-        movl    116(%esp),%esp
-        popl    %edi
-        popl    %esi
-        popl    %ebx
-        popl    %ebp
-        ret
-.size   aesni_xts_decrypt,.-.L_aesni_xts_decrypt_begin
-.globl  aesni_ocb_encrypt
-.type   aesni_ocb_encrypt, at function
-.align  16
-aesni_ocb_encrypt:
-.L_aesni_ocb_encrypt_begin:
-        pushl   %ebp
-        pushl   %ebx
-        pushl   %esi
-        pushl   %edi
-        movl    40(%esp),%ecx
-        movl    48(%esp),%ebx
-        movl    20(%esp),%esi
-        movl    24(%esp),%edi
-        movl    28(%esp),%eax
-        movl    32(%esp),%edx
-        movdqu  (%ecx),%xmm0
-        movl    36(%esp),%ebp
-        movdqu  (%ebx),%xmm1
-        movl    44(%esp),%ebx
-        movl    %esp,%ecx
-        subl    $132,%esp
-        andl    $-16,%esp
-        subl    %esi,%edi
-        shll    $4,%eax
-        leal    -96(%esi,%eax,1),%eax
-        movl    %edi,120(%esp)
-        movl    %eax,124(%esp)
-        movl    %ecx,128(%esp)
-        movl    240(%edx),%ecx
-        testl   $1,%ebp
-        jnz     .L074odd
-        bsfl    %ebp,%eax
-        addl    $1,%ebp
-        shll    $4,%eax
-        movdqu  (%ebx,%eax,1),%xmm7
-        movl    %edx,%eax
-        movdqu  (%esi),%xmm2
-        leal    16(%esi),%esi
-        pxor    %xmm0,%xmm7
-        pxor    %xmm2,%xmm1
-        pxor    %xmm7,%xmm2
-        movdqa  %xmm1,%xmm6
-        movups  (%edx),%xmm0
-        movups  16(%edx),%xmm1
-        leal    32(%edx),%edx
-        xorps   %xmm0,%xmm2
-.L075enc1_loop_15:
-.byte   102,15,56,220,209
-        decl    %ecx
-        movups  (%edx),%xmm1
-        leal    16(%edx),%edx
-        jnz     .L075enc1_loop_15
-.byte   102,15,56,221,209
-        xorps   %xmm7,%xmm2
-        movdqa  %xmm7,%xmm0
-        movdqa  %xmm6,%xmm1
-        movups  %xmm2,-16(%edi,%esi,1)
-        movl    240(%eax),%ecx
-        movl    %eax,%edx
-        movl    124(%esp),%eax
-.L074odd:
-        shll    $4,%ecx
-        movl    $16,%edi
-        subl    %ecx,%edi
-        movl    %edx,112(%esp)
-        leal    32(%edx,%ecx,1),%edx
-        movl    %edi,116(%esp)
-        cmpl    %eax,%esi
-        ja      .L076short
-        jmp     .L077grandloop
-.align  32
-.L077grandloop:
-        leal    1(%ebp),%ecx
-        leal    3(%ebp),%eax
-        leal    5(%ebp),%edi
-        addl    $6,%ebp
-        bsfl    %ecx,%ecx
-        bsfl    %eax,%eax
-        bsfl    %edi,%edi
-        shll    $4,%ecx
-        shll    $4,%eax
-        shll    $4,%edi
-        movdqu  (%ebx),%xmm2
-        movdqu  (%ebx,%ecx,1),%xmm3
-        movl    116(%esp),%ecx
-        movdqa  %xmm2,%xmm4
-        movdqu  (%ebx,%eax,1),%xmm5
-        movdqa  %xmm2,%xmm6
-        movdqu  (%ebx,%edi,1),%xmm7
-        pxor    %xmm0,%xmm2
-        pxor    %xmm2,%xmm3
-        movdqa  %xmm2,(%esp)
-        pxor    %xmm3,%xmm4
-        movdqa  %xmm3,16(%esp)
-        pxor    %xmm4,%xmm5
-        movdqa  %xmm4,32(%esp)
-        pxor    %xmm5,%xmm6
-        movdqa  %xmm5,48(%esp)
-        pxor    %xmm6,%xmm7
-        movdqa  %xmm6,64(%esp)
-        movdqa  %xmm7,80(%esp)
-        movups  -48(%edx,%ecx,1),%xmm0
-        movdqu  (%esi),%xmm2
-        movdqu  16(%esi),%xmm3
-        movdqu  32(%esi),%xmm4
-        movdqu  48(%esi),%xmm5
-        movdqu  64(%esi),%xmm6
-        movdqu  80(%esi),%xmm7
-        leal    96(%esi),%esi
-        pxor    %xmm2,%xmm1
-        pxor    %xmm0,%xmm2
-        pxor    %xmm3,%xmm1
-        pxor    %xmm0,%xmm3
-        pxor    %xmm4,%xmm1
-        pxor    %xmm0,%xmm4
-        pxor    %xmm5,%xmm1
-        pxor    %xmm0,%xmm5
-        pxor    %xmm6,%xmm1
-        pxor    %xmm0,%xmm6
-        pxor    %xmm7,%xmm1
-        pxor    %xmm0,%xmm7
-        movdqa  %xmm1,96(%esp)
-        movups  -32(%edx,%ecx,1),%xmm1
-        pxor    (%esp),%xmm2
-        pxor    16(%esp),%xmm3
-        pxor    32(%esp),%xmm4
-        pxor    48(%esp),%xmm5
-        pxor    64(%esp),%xmm6
-        pxor    80(%esp),%xmm7
-        movups  -16(%edx,%ecx,1),%xmm0
-.byte   102,15,56,220,209
-.byte   102,15,56,220,217
-.byte   102,15,56,220,225
-.byte   102,15,56,220,233
-.byte   102,15,56,220,241
-.byte   102,15,56,220,249
-        movl    120(%esp),%edi
-        movl    124(%esp),%eax
-        call    .L_aesni_encrypt6_enter
-        movdqa  80(%esp),%xmm0
-        pxor    (%esp),%xmm2
-        pxor    16(%esp),%xmm3
-        pxor    32(%esp),%xmm4
-        pxor    48(%esp),%xmm5
-        pxor    64(%esp),%xmm6
-        pxor    %xmm0,%xmm7
-        movdqa  96(%esp),%xmm1
-        movdqu  %xmm2,-96(%edi,%esi,1)
-        movdqu  %xmm3,-80(%edi,%esi,1)
-        movdqu  %xmm4,-64(%edi,%esi,1)
-        movdqu  %xmm5,-48(%edi,%esi,1)
-        movdqu  %xmm6,-32(%edi,%esi,1)
-        movdqu  %xmm7,-16(%edi,%esi,1)
-        cmpl    %eax,%esi
-        jb      .L077grandloop
-.L076short:
-        addl    $96,%eax
-        subl    %esi,%eax
-        jz      .L078done
-        cmpl    $32,%eax
-        jb      .L079one
-        je      .L080two
-        cmpl    $64,%eax
-        jb      .L081three
-        je      .L082four
-        leal    1(%ebp),%ecx
-        leal    3(%ebp),%eax
-        bsfl    %ecx,%ecx
-        bsfl    %eax,%eax
-        shll    $4,%ecx
-        shll    $4,%eax
-        movdqu  (%ebx),%xmm2
-        movdqu  (%ebx,%ecx,1),%xmm3
-        movl    116(%esp),%ecx
-        movdqa  %xmm2,%xmm4
-        movdqu  (%ebx,%eax,1),%xmm5
-        movdqa  %xmm2,%xmm6
-        pxor    %xmm0,%xmm2
-        pxor    %xmm2,%xmm3
-        movdqa  %xmm2,(%esp)
-        pxor    %xmm3,%xmm4
-        movdqa  %xmm3,16(%esp)
-        pxor    %xmm4,%xmm5
-        movdqa  %xmm4,32(%esp)
-        pxor    %xmm5,%xmm6
-        movdqa  %xmm5,48(%esp)
-        pxor    %xmm6,%xmm7
-        movdqa  %xmm6,64(%esp)
-        movups  -48(%edx,%ecx,1),%xmm0
-        movdqu  (%esi),%xmm2
-        movdqu  16(%esi),%xmm3
-        movdqu  32(%esi),%xmm4
-        movdqu  48(%esi),%xmm5
-        movdqu  64(%esi),%xmm6
-        pxor    %xmm7,%xmm7
-        pxor    %xmm2,%xmm1
-        pxor    %xmm0,%xmm2
-        pxor    %xmm3,%xmm1
-        pxor    %xmm0,%xmm3
-        pxor    %xmm4,%xmm1
-        pxor    %xmm0,%xmm4
-        pxor    %xmm5,%xmm1
-        pxor    %xmm0,%xmm5
-        pxor    %xmm6,%xmm1
-        pxor    %xmm0,%xmm6
-        movdqa  %xmm1,96(%esp)
-        movups  -32(%edx,%ecx,1),%xmm1
-        pxor    (%esp),%xmm2
-        pxor    16(%esp),%xmm3
-        pxor    32(%esp),%xmm4
-        pxor    48(%esp),%xmm5
-        pxor    64(%esp),%xmm6
-        movups  -16(%edx,%ecx,1),%xmm0
-.byte   102,15,56,220,209
-.byte   102,15,56,220,217
-.byte   102,15,56,220,225
-.byte   102,15,56,220,233
-.byte   102,15,56,220,241
-.byte   102,15,56,220,249
-        movl    120(%esp),%edi
-        call    .L_aesni_encrypt6_enter
-        movdqa  64(%esp),%xmm0
-        pxor    (%esp),%xmm2
-        pxor    16(%esp),%xmm3
-        pxor    32(%esp),%xmm4
-        pxor    48(%esp),%xmm5
-        pxor    %xmm0,%xmm6
-        movdqa  96(%esp),%xmm1
-        movdqu  %xmm2,(%edi,%esi,1)
-        movdqu  %xmm3,16(%edi,%esi,1)
-        movdqu  %xmm4,32(%edi,%esi,1)
-        movdqu  %xmm5,48(%edi,%esi,1)
-        movdqu  %xmm6,64(%edi,%esi,1)
-        jmp     .L078done
-.align  16
-.L079one:
-        movdqu  (%ebx),%xmm7
-        movl    112(%esp),%edx
-        movdqu  (%esi),%xmm2
-        movl    240(%edx),%ecx
-        pxor    %xmm0,%xmm7
-        pxor    %xmm2,%xmm1
-        pxor    %xmm7,%xmm2
-        movdqa  %xmm1,%xmm6
-        movl    120(%esp),%edi
-        movups  (%edx),%xmm0
-        movups  16(%edx),%xmm1
-        leal    32(%edx),%edx
-        xorps   %xmm0,%xmm2
-.L083enc1_loop_16:
-.byte   102,15,56,220,209
-        decl    %ecx
-        movups  (%edx),%xmm1
-        leal    16(%edx),%edx
-        jnz     .L083enc1_loop_16
-.byte   102,15,56,221,209
-        xorps   %xmm7,%xmm2
-        movdqa  %xmm7,%xmm0
-        movdqa  %xmm6,%xmm1
-        movups  %xmm2,(%edi,%esi,1)
-        jmp     .L078done
-.align  16
-.L080two:
-        leal    1(%ebp),%ecx
-        movl    112(%esp),%edx
-        bsfl    %ecx,%ecx
-        shll    $4,%ecx
-        movdqu  (%ebx),%xmm6
-        movdqu  (%ebx,%ecx,1),%xmm7
-        movdqu  (%esi),%xmm2
-        movdqu  16(%esi),%xmm3
-        movl    240(%edx),%ecx
-        pxor    %xmm0,%xmm6
-        pxor    %xmm6,%xmm7
-        pxor    %xmm2,%xmm1
-        pxor    %xmm6,%xmm2
-        pxor    %xmm3,%xmm1
-        pxor    %xmm7,%xmm3
-        movdqa  %xmm1,%xmm5
-        movl    120(%esp),%edi
-        call    _aesni_encrypt2
-        xorps   %xmm6,%xmm2
-        xorps   %xmm7,%xmm3
-        movdqa  %xmm7,%xmm0
-        movdqa  %xmm5,%xmm1
-        movups  %xmm2,(%edi,%esi,1)
-        movups  %xmm3,16(%edi,%esi,1)
-        jmp     .L078done
-.align  16
-.L081three:
-        leal    1(%ebp),%ecx
-        movl    112(%esp),%edx
-        bsfl    %ecx,%ecx
-        shll    $4,%ecx
-        movdqu  (%ebx),%xmm5
-        movdqu  (%ebx,%ecx,1),%xmm6
-        movdqa  %xmm5,%xmm7
-        movdqu  (%esi),%xmm2
-        movdqu  16(%esi),%xmm3
-        movdqu  32(%esi),%xmm4
-        movl    240(%edx),%ecx
-        pxor    %xmm0,%xmm5
-        pxor    %xmm5,%xmm6
-        pxor    %xmm6,%xmm7
-        pxor    %xmm2,%xmm1
-        pxor    %xmm5,%xmm2
-        pxor    %xmm3,%xmm1
-        pxor    %xmm6,%xmm3
-        pxor    %xmm4,%xmm1
-        pxor    %xmm7,%xmm4
-        movdqa  %xmm1,96(%esp)
-        movl    120(%esp),%edi
-        call    _aesni_encrypt3
-        xorps   %xmm5,%xmm2
-        xorps   %xmm6,%xmm3
-        xorps   %xmm7,%xmm4
-        movdqa  %xmm7,%xmm0
-        movdqa  96(%esp),%xmm1
-        movups  %xmm2,(%edi,%esi,1)
-        movups  %xmm3,16(%edi,%esi,1)
-        movups  %xmm4,32(%edi,%esi,1)
-        jmp     .L078done
-.align  16
-.L082four:
-        leal    1(%ebp),%ecx
-        leal    3(%ebp),%eax
-        bsfl    %ecx,%ecx
-        bsfl    %eax,%eax
-        movl    112(%esp),%edx
-        shll    $4,%ecx
-        shll    $4,%eax
-        movdqu  (%ebx),%xmm4
-        movdqu  (%ebx,%ecx,1),%xmm5
-        movdqa  %xmm4,%xmm6
-        movdqu  (%ebx,%eax,1),%xmm7
-        pxor    %xmm0,%xmm4
-        movdqu  (%esi),%xmm2
-        pxor    %xmm4,%xmm5
-        movdqu  16(%esi),%xmm3
-        pxor    %xmm5,%xmm6
-        movdqa  %xmm4,(%esp)
-        pxor    %xmm6,%xmm7
-        movdqa  %xmm5,16(%esp)
-        movdqu  32(%esi),%xmm4
-        movdqu  48(%esi),%xmm5
-        movl    240(%edx),%ecx
-        pxor    %xmm2,%xmm1
-        pxor    (%esp),%xmm2
-        pxor    %xmm3,%xmm1
-        pxor    16(%esp),%xmm3
-        pxor    %xmm4,%xmm1
-        pxor    %xmm6,%xmm4
-        pxor    %xmm5,%xmm1
-        pxor    %xmm7,%xmm5
-        movdqa  %xmm1,96(%esp)
-        movl    120(%esp),%edi
-        call    _aesni_encrypt4
-        xorps   (%esp),%xmm2
-        xorps   16(%esp),%xmm3
-        xorps   %xmm6,%xmm4
-        movups  %xmm2,(%edi,%esi,1)
-        xorps   %xmm7,%xmm5
-        movups  %xmm3,16(%edi,%esi,1)
-        movdqa  %xmm7,%xmm0
-        movups  %xmm4,32(%edi,%esi,1)
-        movdqa  96(%esp),%xmm1
-        movups  %xmm5,48(%edi,%esi,1)
-.L078done:
-        movl    128(%esp),%edx
-        pxor    %xmm2,%xmm2
-        pxor    %xmm3,%xmm3
-        movdqa  %xmm2,(%esp)
-        pxor    %xmm4,%xmm4
-        movdqa  %xmm2,16(%esp)
-        pxor    %xmm5,%xmm5
-        movdqa  %xmm2,32(%esp)
-        pxor    %xmm6,%xmm6
-        movdqa  %xmm2,48(%esp)
-        pxor    %xmm7,%xmm7
-        movdqa  %xmm2,64(%esp)
-        movdqa  %xmm2,80(%esp)
-        movdqa  %xmm2,96(%esp)
-        leal    (%edx),%esp
-        movl    40(%esp),%ecx
-        movl    48(%esp),%ebx
-        movdqu  %xmm0,(%ecx)
-        pxor    %xmm0,%xmm0
-        movdqu  %xmm1,(%ebx)
-        pxor    %xmm1,%xmm1
-        popl    %edi
-        popl    %esi
-        popl    %ebx
-        popl    %ebp
-        ret
-.size   aesni_ocb_encrypt,.-.L_aesni_ocb_encrypt_begin
-.globl  aesni_ocb_decrypt
-.type   aesni_ocb_decrypt, at function
-.align  16
-aesni_ocb_decrypt:
-.L_aesni_ocb_decrypt_begin:
-        pushl   %ebp
-        pushl   %ebx
-        pushl   %esi
-        pushl   %edi
-        movl    40(%esp),%ecx
-        movl    48(%esp),%ebx
-        movl    20(%esp),%esi
-        movl    24(%esp),%edi
-        movl    28(%esp),%eax
-        movl    32(%esp),%edx
-        movdqu  (%ecx),%xmm0
-        movl    36(%esp),%ebp
-        movdqu  (%ebx),%xmm1
-        movl    44(%esp),%ebx
-        movl    %esp,%ecx
-        subl    $132,%esp
-        andl    $-16,%esp
-        subl    %esi,%edi
-        shll    $4,%eax
-        leal    -96(%esi,%eax,1),%eax
-        movl    %edi,120(%esp)
-        movl    %eax,124(%esp)
-        movl    %ecx,128(%esp)
-        movl    240(%edx),%ecx
-        testl   $1,%ebp
-        jnz     .L084odd
-        bsfl    %ebp,%eax
-        addl    $1,%ebp
-        shll    $4,%eax
-        movdqu  (%ebx,%eax,1),%xmm7
-        movl    %edx,%eax
-        movdqu  (%esi),%xmm2
-        leal    16(%esi),%esi
-        pxor    %xmm0,%xmm7
-        pxor    %xmm7,%xmm2
-        movdqa  %xmm1,%xmm6
-        movups  (%edx),%xmm0
-        movups  16(%edx),%xmm1
-        leal    32(%edx),%edx
-        xorps   %xmm0,%xmm2
-.L085dec1_loop_17:
-.byte   102,15,56,222,209
-        decl    %ecx
-        movups  (%edx),%xmm1
-        leal    16(%edx),%edx
-        jnz     .L085dec1_loop_17
-.byte   102,15,56,223,209
-        xorps   %xmm7,%xmm2
-        movaps  %xmm6,%xmm1
-        movdqa  %xmm7,%xmm0
-        xorps   %xmm2,%xmm1
-        movups  %xmm2,-16(%edi,%esi,1)
-        movl    240(%eax),%ecx
-        movl    %eax,%edx
-        movl    124(%esp),%eax
-.L084odd:
-        shll    $4,%ecx
-        movl    $16,%edi
-        subl    %ecx,%edi
-        movl    %edx,112(%esp)
-        leal    32(%edx,%ecx,1),%edx
-        movl    %edi,116(%esp)
-        cmpl    %eax,%esi
-        ja      .L086short
-        jmp     .L087grandloop
-.align  32
-.L087grandloop:
-        leal    1(%ebp),%ecx
-        leal    3(%ebp),%eax
-        leal    5(%ebp),%edi
-        addl    $6,%ebp
-        bsfl    %ecx,%ecx
-        bsfl    %eax,%eax
-        bsfl    %edi,%edi
-        shll    $4,%ecx
-        shll    $4,%eax
-        shll    $4,%edi
-        movdqu  (%ebx),%xmm2
-        movdqu  (%ebx,%ecx,1),%xmm3
-        movl    116(%esp),%ecx
-        movdqa  %xmm2,%xmm4
-        movdqu  (%ebx,%eax,1),%xmm5
-        movdqa  %xmm2,%xmm6
-        movdqu  (%ebx,%edi,1),%xmm7
-        pxor    %xmm0,%xmm2
-        pxor    %xmm2,%xmm3
-        movdqa  %xmm2,(%esp)
-        pxor    %xmm3,%xmm4
-        movdqa  %xmm3,16(%esp)
-        pxor    %xmm4,%xmm5
-        movdqa  %xmm4,32(%esp)
-        pxor    %xmm5,%xmm6
-        movdqa  %xmm5,48(%esp)
-        pxor    %xmm6,%xmm7
-        movdqa  %xmm6,64(%esp)
-        movdqa  %xmm7,80(%esp)
-        movups  -48(%edx,%ecx,1),%xmm0
-        movdqu  (%esi),%xmm2
-        movdqu  16(%esi),%xmm3
-        movdqu  32(%esi),%xmm4
-        movdqu  48(%esi),%xmm5
-        movdqu  64(%esi),%xmm6
-        movdqu  80(%esi),%xmm7
-        leal    96(%esi),%esi
-        movdqa  %xmm1,96(%esp)
-        pxor    %xmm0,%xmm2
-        pxor    %xmm0,%xmm3
-        pxor    %xmm0,%xmm4
-        pxor    %xmm0,%xmm5
-        pxor    %xmm0,%xmm6
-        pxor    %xmm0,%xmm7
-        movups  -32(%edx,%ecx,1),%xmm1
-        pxor    (%esp),%xmm2
-        pxor    16(%esp),%xmm3
-        pxor    32(%esp),%xmm4
-        pxor    48(%esp),%xmm5
-        pxor    64(%esp),%xmm6
-        pxor    80(%esp),%xmm7
-        movups  -16(%edx,%ecx,1),%xmm0
-.byte   102,15,56,222,209
-.byte   102,15,56,222,217
-.byte   102,15,56,222,225
-.byte   102,15,56,222,233
-.byte   102,15,56,222,241
-.byte   102,15,56,222,249
-        movl    120(%esp),%edi
-        movl    124(%esp),%eax
-        call    .L_aesni_decrypt6_enter
-        movdqa  80(%esp),%xmm0
-        pxor    (%esp),%xmm2
-        movdqa  96(%esp),%xmm1
-        pxor    16(%esp),%xmm3
-        pxor    32(%esp),%xmm4
-        pxor    48(%esp),%xmm5
-        pxor    64(%esp),%xmm6
-        pxor    %xmm0,%xmm7
-        pxor    %xmm2,%xmm1
-        movdqu  %xmm2,-96(%edi,%esi,1)
-        pxor    %xmm3,%xmm1
-        movdqu  %xmm3,-80(%edi,%esi,1)
-        pxor    %xmm4,%xmm1
-        movdqu  %xmm4,-64(%edi,%esi,1)
-        pxor    %xmm5,%xmm1
-        movdqu  %xmm5,-48(%edi,%esi,1)
-        pxor    %xmm6,%xmm1
-        movdqu  %xmm6,-32(%edi,%esi,1)
-        pxor    %xmm7,%xmm1
-        movdqu  %xmm7,-16(%edi,%esi,1)
-        cmpl    %eax,%esi
-        jb      .L087grandloop
-.L086short:
-        addl    $96,%eax
-        subl    %esi,%eax
-        jz      .L088done
-        cmpl    $32,%eax
-        jb      .L089one
-        je      .L090two
-        cmpl    $64,%eax
-        jb      .L091three
-        je      .L092four
-        leal    1(%ebp),%ecx
-        leal    3(%ebp),%eax
-        bsfl    %ecx,%ecx
-        bsfl    %eax,%eax
-        shll    $4,%ecx
-        shll    $4,%eax
-        movdqu  (%ebx),%xmm2
-        movdqu  (%ebx,%ecx,1),%xmm3
-        movl    116(%esp),%ecx
-        movdqa  %xmm2,%xmm4
-        movdqu  (%ebx,%eax,1),%xmm5
-        movdqa  %xmm2,%xmm6
-        pxor    %xmm0,%xmm2
-        pxor    %xmm2,%xmm3
-        movdqa  %xmm2,(%esp)
-        pxor    %xmm3,%xmm4
-        movdqa  %xmm3,16(%esp)
-        pxor    %xmm4,%xmm5
-        movdqa  %xmm4,32(%esp)
-        pxor    %xmm5,%xmm6
-        movdqa  %xmm5,48(%esp)
-        pxor    %xmm6,%xmm7
-        movdqa  %xmm6,64(%esp)
-        movups  -48(%edx,%ecx,1),%xmm0
-        movdqu  (%esi),%xmm2
-        movdqu  16(%esi),%xmm3
-        movdqu  32(%esi),%xmm4
-        movdqu  48(%esi),%xmm5
-        movdqu  64(%esi),%xmm6
-        pxor    %xmm7,%xmm7
-        movdqa  %xmm1,96(%esp)
-        pxor    %xmm0,%xmm2
-        pxor    %xmm0,%xmm3
-        pxor    %xmm0,%xmm4
-        pxor    %xmm0,%xmm5
-        pxor    %xmm0,%xmm6
-        movups  -32(%edx,%ecx,1),%xmm1
-        pxor    (%esp),%xmm2
-        pxor    16(%esp),%xmm3
-        pxor    32(%esp),%xmm4
-        pxor    48(%esp),%xmm5
-        pxor    64(%esp),%xmm6
-        movups  -16(%edx,%ecx,1),%xmm0
-.byte   102,15,56,222,209
-.byte   102,15,56,222,217
-.byte   102,15,56,222,225
-.byte   102,15,56,222,233
-.byte   102,15,56,222,241
-.byte   102,15,56,222,249
-        movl    120(%esp),%edi
-        call    .L_aesni_decrypt6_enter
-        movdqa  64(%esp),%xmm0
-        pxor    (%esp),%xmm2
-        movdqa  96(%esp),%xmm1
-        pxor    16(%esp),%xmm3
-        pxor    32(%esp),%xmm4
-        pxor    48(%esp),%xmm5
-        pxor    %xmm0,%xmm6
-        pxor    %xmm2,%xmm1
-        movdqu  %xmm2,(%edi,%esi,1)
-        pxor    %xmm3,%xmm1
-        movdqu  %xmm3,16(%edi,%esi,1)
-        pxor    %xmm4,%xmm1
-        movdqu  %xmm4,32(%edi,%esi,1)
-        pxor    %xmm5,%xmm1
-        movdqu  %xmm5,48(%edi,%esi,1)
-        pxor    %xmm6,%xmm1
-        movdqu  %xmm6,64(%edi,%esi,1)
-        jmp     .L088done
-.align  16
-.L089one:
-        movdqu  (%ebx),%xmm7
-        movl    112(%esp),%edx
-        movdqu  (%esi),%xmm2
-        movl    240(%edx),%ecx
-        pxor    %xmm0,%xmm7
-        pxor    %xmm7,%xmm2
-        movdqa  %xmm1,%xmm6
-        movl    120(%esp),%edi
-        movups  (%edx),%xmm0
-        movups  16(%edx),%xmm1
-        leal    32(%edx),%edx
-        xorps   %xmm0,%xmm2
-.L093dec1_loop_18:
-.byte   102,15,56,222,209
-        decl    %ecx
-        movups  (%edx),%xmm1
-        leal    16(%edx),%edx
-        jnz     .L093dec1_loop_18
-.byte   102,15,56,223,209
-        xorps   %xmm7,%xmm2
-        movaps  %xmm6,%xmm1
-        movdqa  %xmm7,%xmm0
-        xorps   %xmm2,%xmm1
-        movups  %xmm2,(%edi,%esi,1)
-        jmp     .L088done
-.align  16
-.L090two:
-        leal    1(%ebp),%ecx
-        movl    112(%esp),%edx
-        bsfl    %ecx,%ecx
-        shll    $4,%ecx
-        movdqu  (%ebx),%xmm6
-        movdqu  (%ebx,%ecx,1),%xmm7
-        movdqu  (%esi),%xmm2
-        movdqu  16(%esi),%xmm3
-        movl    240(%edx),%ecx
-        movdqa  %xmm1,%xmm5
-        pxor    %xmm0,%xmm6
-        pxor    %xmm6,%xmm7
-        pxor    %xmm6,%xmm2
-        pxor    %xmm7,%xmm3
-        movl    120(%esp),%edi
-        call    _aesni_decrypt2
-        xorps   %xmm6,%xmm2
-        xorps   %xmm7,%xmm3
-        movdqa  %xmm7,%xmm0
-        xorps   %xmm2,%xmm5
-        movups  %xmm2,(%edi,%esi,1)
-        xorps   %xmm3,%xmm5
-        movups  %xmm3,16(%edi,%esi,1)
-        movaps  %xmm5,%xmm1
-        jmp     .L088done
-.align  16
-.L091three:
-        leal    1(%ebp),%ecx
-        movl    112(%esp),%edx
-        bsfl    %ecx,%ecx
-        shll    $4,%ecx
-        movdqu  (%ebx),%xmm5
-        movdqu  (%ebx,%ecx,1),%xmm6
-        movdqa  %xmm5,%xmm7
-        movdqu  (%esi),%xmm2
-        movdqu  16(%esi),%xmm3
-        movdqu  32(%esi),%xmm4
-        movl    240(%edx),%ecx
-        movdqa  %xmm1,96(%esp)
-        pxor    %xmm0,%xmm5
-        pxor    %xmm5,%xmm6
-        pxor    %xmm6,%xmm7
-        pxor    %xmm5,%xmm2
-        pxor    %xmm6,%xmm3
-        pxor    %xmm7,%xmm4
-        movl    120(%esp),%edi
-        call    _aesni_decrypt3
-        movdqa  96(%esp),%xmm1
-        xorps   %xmm5,%xmm2
-        xorps   %xmm6,%xmm3
-        xorps   %xmm7,%xmm4
-        movups  %xmm2,(%edi,%esi,1)
-        pxor    %xmm2,%xmm1
-        movdqa  %xmm7,%xmm0
-        movups  %xmm3,16(%edi,%esi,1)
-        pxor    %xmm3,%xmm1
-        movups  %xmm4,32(%edi,%esi,1)
-        pxor    %xmm4,%xmm1
-        jmp     .L088done
-.align  16
-.L092four:
-        leal    1(%ebp),%ecx
-        leal    3(%ebp),%eax
-        bsfl    %ecx,%ecx
-        bsfl    %eax,%eax
-        movl    112(%esp),%edx
-        shll    $4,%ecx
-        shll    $4,%eax
-        movdqu  (%ebx),%xmm4
-        movdqu  (%ebx,%ecx,1),%xmm5
-        movdqa  %xmm4,%xmm6
-        movdqu  (%ebx,%eax,1),%xmm7
-        pxor    %xmm0,%xmm4
-        movdqu  (%esi),%xmm2
-        pxor    %xmm4,%xmm5
-        movdqu  16(%esi),%xmm3
-        pxor    %xmm5,%xmm6
-        movdqa  %xmm4,(%esp)
-        pxor    %xmm6,%xmm7
-        movdqa  %xmm5,16(%esp)
-        movdqu  32(%esi),%xmm4
-        movdqu  48(%esi),%xmm5
-        movl    240(%edx),%ecx
-        movdqa  %xmm1,96(%esp)
-        pxor    (%esp),%xmm2
-        pxor    16(%esp),%xmm3
-        pxor    %xmm6,%xmm4
-        pxor    %xmm7,%xmm5
-        movl    120(%esp),%edi
-        call    _aesni_decrypt4
-        movdqa  96(%esp),%xmm1
-        xorps   (%esp),%xmm2
-        xorps   16(%esp),%xmm3
-        xorps   %xmm6,%xmm4
-        movups  %xmm2,(%edi,%esi,1)
-        pxor    %xmm2,%xmm1
-        xorps   %xmm7,%xmm5
-        movups  %xmm3,16(%edi,%esi,1)
-        pxor    %xmm3,%xmm1
-        movdqa  %xmm7,%xmm0
-        movups  %xmm4,32(%edi,%esi,1)
-        pxor    %xmm4,%xmm1
-        movups  %xmm5,48(%edi,%esi,1)
-        pxor    %xmm5,%xmm1
-.L088done:
-        movl    128(%esp),%edx
-        pxor    %xmm2,%xmm2
-        pxor    %xmm3,%xmm3
-        movdqa  %xmm2,(%esp)
-        pxor    %xmm4,%xmm4
-        movdqa  %xmm2,16(%esp)
-        pxor    %xmm5,%xmm5
-        movdqa  %xmm2,32(%esp)
-        pxor    %xmm6,%xmm6
-        movdqa  %xmm2,48(%esp)
-        pxor    %xmm7,%xmm7
-        movdqa  %xmm2,64(%esp)
-        movdqa  %xmm2,80(%esp)
-        movdqa  %xmm2,96(%esp)
-        leal    (%edx),%esp
-        movl    40(%esp),%ecx
-        movl    48(%esp),%ebx
-        movdqu  %xmm0,(%ecx)
-        pxor    %xmm0,%xmm0
-        movdqu  %xmm1,(%ebx)
-        pxor    %xmm1,%xmm1
-        popl    %edi
-        popl    %esi
-        popl    %ebx
-        popl    %ebp
-        ret
-.size   aesni_ocb_decrypt,.-.L_aesni_ocb_decrypt_begin
-.globl  aesni_cbc_encrypt
-.type   aesni_cbc_encrypt, at function
-.align  16
-aesni_cbc_encrypt:
-.L_aesni_cbc_encrypt_begin:
-        pushl   %ebp
-        pushl   %ebx
-        pushl   %esi
-        pushl   %edi
-        movl    20(%esp),%esi
-        movl    %esp,%ebx
-        movl    24(%esp),%edi
-        subl    $24,%ebx
-        movl    28(%esp),%eax
-        andl    $-16,%ebx
-        movl    32(%esp),%edx
-        movl    36(%esp),%ebp
-        testl   %eax,%eax
-        jz      .L094cbc_abort
-        cmpl    $0,40(%esp)
-        xchgl   %esp,%ebx
-        movups  (%ebp),%xmm7
-        movl    240(%edx),%ecx
-        movl    %edx,%ebp
-        movl    %ebx,16(%esp)
-        movl    %ecx,%ebx
-        je      .L095cbc_decrypt
-        movaps  %xmm7,%xmm2
-        cmpl    $16,%eax
-        jb      .L096cbc_enc_tail
-        subl    $16,%eax
-        jmp     .L097cbc_enc_loop
-.align  16
-.L097cbc_enc_loop:
-        movups  (%esi),%xmm7
-        leal    16(%esi),%esi
-        movups  (%edx),%xmm0
-        movups  16(%edx),%xmm1
-        xorps   %xmm0,%xmm7
-        leal    32(%edx),%edx
-        xorps   %xmm7,%xmm2
-.L098enc1_loop_19:
-.byte   102,15,56,220,209
-        decl    %ecx
-        movups  (%edx),%xmm1
-        leal    16(%edx),%edx
-        jnz     .L098enc1_loop_19
-.byte   102,15,56,221,209
-        movl    %ebx,%ecx
-        movl    %ebp,%edx
-        movups  %xmm2,(%edi)
-        leal    16(%edi),%edi
-        subl    $16,%eax
-        jnc     .L097cbc_enc_loop
-        addl    $16,%eax
-        jnz     .L096cbc_enc_tail
-        movaps  %xmm2,%xmm7
-        pxor    %xmm2,%xmm2
-        jmp     .L099cbc_ret
-.L096cbc_enc_tail:
-        movl    %eax,%ecx
-.long   2767451785
-        movl    $16,%ecx
-        subl    %eax,%ecx
-        xorl    %eax,%eax
-.long   2868115081
-        leal    -16(%edi),%edi
-        movl    %ebx,%ecx
-        movl    %edi,%esi
-        movl    %ebp,%edx
-        jmp     .L097cbc_enc_loop
-.align  16
-.L095cbc_decrypt:
-        cmpl    $80,%eax
-        jbe     .L100cbc_dec_tail
-        movaps  %xmm7,(%esp)
-        subl    $80,%eax
-        jmp     .L101cbc_dec_loop6_enter
-.align  16
-.L102cbc_dec_loop6:
-        movaps  %xmm0,(%esp)
-        movups  %xmm7,(%edi)
-        leal    16(%edi),%edi
-.L101cbc_dec_loop6_enter:
-        movdqu  (%esi),%xmm2
-        movdqu  16(%esi),%xmm3
-        movdqu  32(%esi),%xmm4
-        movdqu  48(%esi),%xmm5
-        movdqu  64(%esi),%xmm6
-        movdqu  80(%esi),%xmm7
-        call    _aesni_decrypt6
-        movups  (%esi),%xmm1
-        movups  16(%esi),%xmm0
-        xorps   (%esp),%xmm2
-        xorps   %xmm1,%xmm3
-        movups  32(%esi),%xmm1
-        xorps   %xmm0,%xmm4
-        movups  48(%esi),%xmm0
-        xorps   %xmm1,%xmm5
-        movups  64(%esi),%xmm1
-        xorps   %xmm0,%xmm6
-        movups  80(%esi),%xmm0
-        xorps   %xmm1,%xmm7
-        movups  %xmm2,(%edi)
-        movups  %xmm3,16(%edi)
-        leal    96(%esi),%esi
-        movups  %xmm4,32(%edi)
-        movl    %ebx,%ecx
-        movups  %xmm5,48(%edi)
-        movl    %ebp,%edx
-        movups  %xmm6,64(%edi)
-        leal    80(%edi),%edi
-        subl    $96,%eax
-        ja      .L102cbc_dec_loop6
-        movaps  %xmm7,%xmm2
-        movaps  %xmm0,%xmm7
-        addl    $80,%eax
-        jle     .L103cbc_dec_clear_tail_collected
-        movups  %xmm2,(%edi)
-        leal    16(%edi),%edi
-.L100cbc_dec_tail:
-        movups  (%esi),%xmm2
-        movaps  %xmm2,%xmm6
-        cmpl    $16,%eax
-        jbe     .L104cbc_dec_one
-        movups  16(%esi),%xmm3
-        movaps  %xmm3,%xmm5
-        cmpl    $32,%eax
-        jbe     .L105cbc_dec_two
-        movups  32(%esi),%xmm4
-        cmpl    $48,%eax
-        jbe     .L106cbc_dec_three
-        movups  48(%esi),%xmm5
-        cmpl    $64,%eax
-        jbe     .L107cbc_dec_four
-        movups  64(%esi),%xmm6
-        movaps  %xmm7,(%esp)
-        movups  (%esi),%xmm2
-        xorps   %xmm7,%xmm7
-        call    _aesni_decrypt6
-        movups  (%esi),%xmm1
-        movups  16(%esi),%xmm0
-        xorps   (%esp),%xmm2
-        xorps   %xmm1,%xmm3
-        movups  32(%esi),%xmm1
-        xorps   %xmm0,%xmm4
-        movups  48(%esi),%xmm0
-        xorps   %xmm1,%xmm5
-        movups  64(%esi),%xmm7
-        xorps   %xmm0,%xmm6
-        movups  %xmm2,(%edi)
-        movups  %xmm3,16(%edi)
-        pxor    %xmm3,%xmm3
-        movups  %xmm4,32(%edi)
-        pxor    %xmm4,%xmm4
-        movups  %xmm5,48(%edi)
-        pxor    %xmm5,%xmm5
-        leal    64(%edi),%edi
-        movaps  %xmm6,%xmm2
-        pxor    %xmm6,%xmm6
-        subl    $80,%eax
-        jmp     .L108cbc_dec_tail_collected
-.align  16
-.L104cbc_dec_one:
-        movups  (%edx),%xmm0
-        movups  16(%edx),%xmm1
-        leal    32(%edx),%edx
-        xorps   %xmm0,%xmm2
-.L109dec1_loop_20:
-.byte   102,15,56,222,209
-        decl    %ecx
-        movups  (%edx),%xmm1
-        leal    16(%edx),%edx
-        jnz     .L109dec1_loop_20
-.byte   102,15,56,223,209
-        xorps   %xmm7,%xmm2
-        movaps  %xmm6,%xmm7
-        subl    $16,%eax
-        jmp     .L108cbc_dec_tail_collected
-.align  16
-.L105cbc_dec_two:
-        call    _aesni_decrypt2
-        xorps   %xmm7,%xmm2
-        xorps   %xmm6,%xmm3
-        movups  %xmm2,(%edi)
-        movaps  %xmm3,%xmm2
-        pxor    %xmm3,%xmm3
-        leal    16(%edi),%edi
-        movaps  %xmm5,%xmm7
-        subl    $32,%eax
-        jmp     .L108cbc_dec_tail_collected
-.align  16
-.L106cbc_dec_three:
-        call    _aesni_decrypt3
-        xorps   %xmm7,%xmm2
-        xorps   %xmm6,%xmm3
-        xorps   %xmm5,%xmm4
-        movups  %xmm2,(%edi)
-        movaps  %xmm4,%xmm2
-        pxor    %xmm4,%xmm4
-        movups  %xmm3,16(%edi)
-        pxor    %xmm3,%xmm3
-        leal    32(%edi),%edi
-        movups  32(%esi),%xmm7
-        subl    $48,%eax
-        jmp     .L108cbc_dec_tail_collected
-.align  16
-.L107cbc_dec_four:
-        call    _aesni_decrypt4
-        movups  16(%esi),%xmm1
-        movups  32(%esi),%xmm0
-        xorps   %xmm7,%xmm2
-        movups  48(%esi),%xmm7
-        xorps   %xmm6,%xmm3
-        movups  %xmm2,(%edi)
-        xorps   %xmm1,%xmm4
-        movups  %xmm3,16(%edi)
-        pxor    %xmm3,%xmm3
-        xorps   %xmm0,%xmm5
-        movups  %xmm4,32(%edi)
-        pxor    %xmm4,%xmm4
-        leal    48(%edi),%edi
-        movaps  %xmm5,%xmm2
-        pxor    %xmm5,%xmm5
-        subl    $64,%eax
-        jmp     .L108cbc_dec_tail_collected
-.align  16
-.L103cbc_dec_clear_tail_collected:
-        pxor    %xmm3,%xmm3
-        pxor    %xmm4,%xmm4
-        pxor    %xmm5,%xmm5
-        pxor    %xmm6,%xmm6
-.L108cbc_dec_tail_collected:
-        andl    $15,%eax
-        jnz     .L110cbc_dec_tail_partial
-        movups  %xmm2,(%edi)
-        pxor    %xmm0,%xmm0
-        jmp     .L099cbc_ret
-.align  16
-.L110cbc_dec_tail_partial:
-        movaps  %xmm2,(%esp)
-        pxor    %xmm0,%xmm0
-        movl    $16,%ecx
-        movl    %esp,%esi
-        subl    %eax,%ecx
-.long   2767451785
-        movdqa  %xmm2,(%esp)
-.L099cbc_ret:
-        movl    16(%esp),%esp
-        movl    36(%esp),%ebp
-        pxor    %xmm2,%xmm2
-        pxor    %xmm1,%xmm1
-        movups  %xmm7,(%ebp)
-        pxor    %xmm7,%xmm7
-.L094cbc_abort:
-        popl    %edi
-        popl    %esi
-        popl    %ebx
-        popl    %ebp
-        ret
-.size   aesni_cbc_encrypt,.-.L_aesni_cbc_encrypt_begin
-.type   _aesni_set_encrypt_key, at function
-.align  16
-_aesni_set_encrypt_key:
-        pushl   %ebp
-        pushl   %ebx
-        testl   %eax,%eax
-        jz      .L111bad_pointer
-        testl   %edx,%edx
-        jz      .L111bad_pointer
-        call    .L112pic
-.L112pic:
-        popl    %ebx
-        leal    .Lkey_const-.L112pic(%ebx),%ebx
-        leal    OPENSSL_ia32cap_P,%ebp
-        movups  (%eax),%xmm0
-        xorps   %xmm4,%xmm4
-        movl    4(%ebp),%ebp
-        leal    16(%edx),%edx
-        andl    $268437504,%ebp
-        cmpl    $256,%ecx
-        je      .L11314rounds
-        cmpl    $192,%ecx
-        je      .L11412rounds
-        cmpl    $128,%ecx
-        jne     .L115bad_keybits
-.align  16
-.L11610rounds:
-        cmpl    $268435456,%ebp
-        je      .L11710rounds_alt
-        movl    $9,%ecx
-        movups  %xmm0,-16(%edx)
-.byte   102,15,58,223,200,1
-        call    .L118key_128_cold
-.byte   102,15,58,223,200,2
-        call    .L119key_128
-.byte   102,15,58,223,200,4
-        call    .L119key_128
-.byte   102,15,58,223,200,8
-        call    .L119key_128
-.byte   102,15,58,223,200,16
-        call    .L119key_128
-.byte   102,15,58,223,200,32
-        call    .L119key_128
-.byte   102,15,58,223,200,64
-        call    .L119key_128
-.byte   102,15,58,223,200,128
-        call    .L119key_128
-.byte   102,15,58,223,200,27
-        call    .L119key_128
-.byte   102,15,58,223,200,54
-        call    .L119key_128
-        movups  %xmm0,(%edx)
-        movl    %ecx,80(%edx)
-        jmp     .L120good_key
-.align  16
-.L119key_128:
-        movups  %xmm0,(%edx)
-        leal    16(%edx),%edx
-.L118key_128_cold:
-        shufps  $16,%xmm0,%xmm4
-        xorps   %xmm4,%xmm0
-        shufps  $140,%xmm0,%xmm4
-        xorps   %xmm4,%xmm0
-        shufps  $255,%xmm1,%xmm1
-        xorps   %xmm1,%xmm0
-        ret
-.align  16
-.L11710rounds_alt:
-        movdqa  (%ebx),%xmm5
-        movl    $8,%ecx
-        movdqa  32(%ebx),%xmm4
-        movdqa  %xmm0,%xmm2
-        movdqu  %xmm0,-16(%edx)
-.L121loop_key128:
-.byte   102,15,56,0,197
-.byte   102,15,56,221,196
-        pslld   $1,%xmm4
-        leal    16(%edx),%edx
-        movdqa  %xmm2,%xmm3
-        pslldq  $4,%xmm2
-        pxor    %xmm2,%xmm3
-        pslldq  $4,%xmm2
-        pxor    %xmm2,%xmm3
-        pslldq  $4,%xmm2
-        pxor    %xmm3,%xmm2
-        pxor    %xmm2,%xmm0
-        movdqu  %xmm0,-16(%edx)
-        movdqa  %xmm0,%xmm2
-        decl    %ecx
-        jnz     .L121loop_key128
-        movdqa  48(%ebx),%xmm4
-.byte   102,15,56,0,197
-.byte   102,15,56,221,196
-        pslld   $1,%xmm4
-        movdqa  %xmm2,%xmm3
-        pslldq  $4,%xmm2
-        pxor    %xmm2,%xmm3
-        pslldq  $4,%xmm2
-        pxor    %xmm2,%xmm3
-        pslldq  $4,%xmm2
-        pxor    %xmm3,%xmm2
-        pxor    %xmm2,%xmm0
-        movdqu  %xmm0,(%edx)
-        movdqa  %xmm0,%xmm2
-.byte   102,15,56,0,197
-.byte   102,15,56,221,196
-        movdqa  %xmm2,%xmm3
-        pslldq  $4,%xmm2
-        pxor    %xmm2,%xmm3
-        pslldq  $4,%xmm2
-        pxor    %xmm2,%xmm3
-        pslldq  $4,%xmm2
-        pxor    %xmm3,%xmm2
-        pxor    %xmm2,%xmm0
-        movdqu  %xmm0,16(%edx)
-        movl    $9,%ecx
-        movl    %ecx,96(%edx)
-        jmp     .L120good_key
-.align  16
-.L11412rounds:
-        movq    16(%eax),%xmm2
-        cmpl    $268435456,%ebp
-        je      .L12212rounds_alt
-        movl    $11,%ecx
-        movups  %xmm0,-16(%edx)
-.byte   102,15,58,223,202,1
-        call    .L123key_192a_cold
-.byte   102,15,58,223,202,2
-        call    .L124key_192b
-.byte   102,15,58,223,202,4
-        call    .L125key_192a
-.byte   102,15,58,223,202,8
-        call    .L124key_192b
-.byte   102,15,58,223,202,16
-        call    .L125key_192a
-.byte   102,15,58,223,202,32
-        call    .L124key_192b
-.byte   102,15,58,223,202,64
-        call    .L125key_192a
-.byte   102,15,58,223,202,128
-        call    .L124key_192b
-        movups  %xmm0,(%edx)
-        movl    %ecx,48(%edx)
-        jmp     .L120good_key
-.align  16
-.L125key_192a:
-        movups  %xmm0,(%edx)
-        leal    16(%edx),%edx
-.align  16
-.L123key_192a_cold:
-        movaps  %xmm2,%xmm5
-.L126key_192b_warm:
-        shufps  $16,%xmm0,%xmm4
-        movdqa  %xmm2,%xmm3
-        xorps   %xmm4,%xmm0
-        shufps  $140,%xmm0,%xmm4
-        pslldq  $4,%xmm3
-        xorps   %xmm4,%xmm0
-        pshufd  $85,%xmm1,%xmm1
-        pxor    %xmm3,%xmm2
-        pxor    %xmm1,%xmm0
-        pshufd  $255,%xmm0,%xmm3
-        pxor    %xmm3,%xmm2
-        ret
-.align  16
-.L124key_192b:
-        movaps  %xmm0,%xmm3
-        shufps  $68,%xmm0,%xmm5
-        movups  %xmm5,(%edx)
-        shufps  $78,%xmm2,%xmm3
-        movups  %xmm3,16(%edx)
-        leal    32(%edx),%edx
-        jmp     .L126key_192b_warm
-.align  16
-.L12212rounds_alt:
-        movdqa  16(%ebx),%xmm5
-        movdqa  32(%ebx),%xmm4
-        movl    $8,%ecx
-        movdqu  %xmm0,-16(%edx)
-.L127loop_key192:
-        movq    %xmm2,(%edx)
-        movdqa  %xmm2,%xmm1
-.byte   102,15,56,0,213
-.byte   102,15,56,221,212
-        pslld   $1,%xmm4
-        leal    24(%edx),%edx
-        movdqa  %xmm0,%xmm3
-        pslldq  $4,%xmm0
-        pxor    %xmm0,%xmm3
-        pslldq  $4,%xmm0
-        pxor    %xmm0,%xmm3
-        pslldq  $4,%xmm0
-        pxor    %xmm3,%xmm0
-        pshufd  $255,%xmm0,%xmm3
-        pxor    %xmm1,%xmm3
-        pslldq  $4,%xmm1
-        pxor    %xmm1,%xmm3
-        pxor    %xmm2,%xmm0
-        pxor    %xmm3,%xmm2
-        movdqu  %xmm0,-16(%edx)
-        decl    %ecx
-        jnz     .L127loop_key192
-        movl    $11,%ecx
-        movl    %ecx,32(%edx)
-        jmp     .L120good_key
-.align  16
-.L11314rounds:
-        movups  16(%eax),%xmm2
-        leal    16(%edx),%edx
-        cmpl    $268435456,%ebp
-        je      .L12814rounds_alt
-        movl    $13,%ecx
-        movups  %xmm0,-32(%edx)
-        movups  %xmm2,-16(%edx)
-.byte   102,15,58,223,202,1
-        call    .L129key_256a_cold
-.byte   102,15,58,223,200,1
-        call    .L130key_256b
-.byte   102,15,58,223,202,2
-        call    .L131key_256a
-.byte   102,15,58,223,200,2
-        call    .L130key_256b
-.byte   102,15,58,223,202,4
-        call    .L131key_256a
-.byte   102,15,58,223,200,4
-        call    .L130key_256b
-.byte   102,15,58,223,202,8
-        call    .L131key_256a
-.byte   102,15,58,223,200,8
-        call    .L130key_256b
-.byte   102,15,58,223,202,16
-        call    .L131key_256a
-.byte   102,15,58,223,200,16
-        call    .L130key_256b
-.byte   102,15,58,223,202,32
-        call    .L131key_256a
-.byte   102,15,58,223,200,32
-        call    .L130key_256b
-.byte   102,15,58,223,202,64
-        call    .L131key_256a
-        movups  %xmm0,(%edx)
-        movl    %ecx,16(%edx)
-        xorl    %eax,%eax
-        jmp     .L120good_key
-.align  16
-.L131key_256a:
-        movups  %xmm2,(%edx)
-        leal    16(%edx),%edx
-.L129key_256a_cold:
-        shufps  $16,%xmm0,%xmm4
-        xorps   %xmm4,%xmm0
-        shufps  $140,%xmm0,%xmm4
-        xorps   %xmm4,%xmm0
-        shufps  $255,%xmm1,%xmm1
-        xorps   %xmm1,%xmm0
-        ret
-.align  16
-.L130key_256b:
-        movups  %xmm0,(%edx)
-        leal    16(%edx),%edx
-        shufps  $16,%xmm2,%xmm4
-        xorps   %xmm4,%xmm2
-        shufps  $140,%xmm2,%xmm4
-        xorps   %xmm4,%xmm2
-        shufps  $170,%xmm1,%xmm1
-        xorps   %xmm1,%xmm2
-        ret
-.align  16
-.L12814rounds_alt:
-        movdqa  (%ebx),%xmm5
-        movdqa  32(%ebx),%xmm4
-        movl    $7,%ecx
-        movdqu  %xmm0,-32(%edx)
-        movdqa  %xmm2,%xmm1
-        movdqu  %xmm2,-16(%edx)
-.L132loop_key256:
-.byte   102,15,56,0,213
-.byte   102,15,56,221,212
-        movdqa  %xmm0,%xmm3
-        pslldq  $4,%xmm0
-        pxor    %xmm0,%xmm3
-        pslldq  $4,%xmm0
-        pxor    %xmm0,%xmm3
-        pslldq  $4,%xmm0
-        pxor    %xmm3,%xmm0
-        pslld   $1,%xmm4
-        pxor    %xmm2,%xmm0
-        movdqu  %xmm0,(%edx)
-        decl    %ecx
-        jz      .L133done_key256
-        pshufd  $255,%xmm0,%xmm2
-        pxor    %xmm3,%xmm3
-.byte   102,15,56,221,211
-        movdqa  %xmm1,%xmm3
-        pslldq  $4,%xmm1
-        pxor    %xmm1,%xmm3
-        pslldq  $4,%xmm1
-        pxor    %xmm1,%xmm3
-        pslldq  $4,%xmm1
-        pxor    %xmm3,%xmm1
-        pxor    %xmm1,%xmm2
-        movdqu  %xmm2,16(%edx)
-        leal    32(%edx),%edx
-        movdqa  %xmm2,%xmm1
-        jmp     .L132loop_key256
-.L133done_key256:
-        movl    $13,%ecx
-        movl    %ecx,16(%edx)
-.L120good_key:
-        pxor    %xmm0,%xmm0
-        pxor    %xmm1,%xmm1
-        pxor    %xmm2,%xmm2
-        pxor    %xmm3,%xmm3
-        pxor    %xmm4,%xmm4
-        pxor    %xmm5,%xmm5
-        xorl    %eax,%eax
-        popl    %ebx
-        popl    %ebp
-        ret
-.align  4
-.L111bad_pointer:
-        movl    $-1,%eax
-        popl    %ebx
-        popl    %ebp
-        ret
-.align  4
-.L115bad_keybits:
-        pxor    %xmm0,%xmm0
-        movl    $-2,%eax
-        popl    %ebx
-        popl    %ebp
-        ret
-.size   _aesni_set_encrypt_key,.-_aesni_set_encrypt_key
-.globl  aesni_set_encrypt_key
-.type   aesni_set_encrypt_key, at function
-.align  16
-aesni_set_encrypt_key:
-.L_aesni_set_encrypt_key_begin:
-        movl    4(%esp),%eax
-        movl    8(%esp),%ecx
-        movl    12(%esp),%edx
-        call    _aesni_set_encrypt_key
-        ret
-.size   aesni_set_encrypt_key,.-.L_aesni_set_encrypt_key_begin
-.globl  aesni_set_decrypt_key
-.type   aesni_set_decrypt_key, at function
-.align  16
-aesni_set_decrypt_key:
-.L_aesni_set_decrypt_key_begin:
-        movl    4(%esp),%eax
-        movl    8(%esp),%ecx
-        movl    12(%esp),%edx
-        call    _aesni_set_encrypt_key
-        movl    12(%esp),%edx
-        shll    $4,%ecx
-        testl   %eax,%eax
-        jnz     .L134dec_key_ret
-        leal    16(%edx,%ecx,1),%eax
-        movups  (%edx),%xmm0
-        movups  (%eax),%xmm1
-        movups  %xmm0,(%eax)
-        movups  %xmm1,(%edx)
-        leal    16(%edx),%edx
-        leal    -16(%eax),%eax
-.L135dec_key_inverse:
-        movups  (%edx),%xmm0
-        movups  (%eax),%xmm1
-.byte   102,15,56,219,192
-.byte   102,15,56,219,201
-        leal    16(%edx),%edx
-        leal    -16(%eax),%eax
-        movups  %xmm0,16(%eax)
-        movups  %xmm1,-16(%edx)
-        cmpl    %edx,%eax
-        ja      .L135dec_key_inverse
-        movups  (%edx),%xmm0
-.byte   102,15,56,219,192
-        movups  %xmm0,(%edx)
-        pxor    %xmm0,%xmm0
-        pxor    %xmm1,%xmm1
-        xorl    %eax,%eax
-.L134dec_key_ret:
-        ret
-.size   aesni_set_decrypt_key,.-.L_aesni_set_decrypt_key_begin
-.align  64
-.Lkey_const:
-.long   202313229,202313229,202313229,202313229
-.long   67569157,67569157,67569157,67569157
-.long   1,1,1,1
-.long   27,27,27,27
-.byte   65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69
-.byte   83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83
-.byte   32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115
-.byte   115,108,46,111,114,103,62,0
-.comm   OPENSSL_ia32cap_P,16,4
diff --git a/CryptoPkg/Library/OpensslLib/IA32Gcc/crypto/aes/vpaes-x86.S b/CryptoPkg/Library/OpensslLib/IA32Gcc/crypto/aes/vpaes-x86.S
deleted file mode 100644
index 6f625346826b..000000000000
--- a/CryptoPkg/Library/OpensslLib/IA32Gcc/crypto/aes/vpaes-x86.S
+++ /dev/null
@@ -1,670 +0,0 @@
-# WARNING: do not edit!
-# Generated from openssl/crypto/aes/asm/vpaes-x86.pl
-#
-# Copyright 2011-2020 The OpenSSL Project Authors. All Rights Reserved.
-#
-# Licensed under the OpenSSL license (the "License").  You may not use
-# this file except in compliance with the License.  You can obtain a copy
-# in the file LICENSE in the source distribution or at
-# https://www.openssl.org/source/license.html
-
-.text
-.align  64
-.L_vpaes_consts:
-.long   218628480,235210255,168496130,67568393
-.long   252381056,17041926,33884169,51187212
-.long   252645135,252645135,252645135,252645135
-.long   1512730624,3266504856,1377990664,3401244816
-.long   830229760,1275146365,2969422977,3447763452
-.long   3411033600,2979783055,338359620,2782886510
-.long   4209124096,907596821,221174255,1006095553
-.long   191964160,3799684038,3164090317,1589111125
-.long   182528256,1777043520,2877432650,3265356744
-.long   1874708224,3503451415,3305285752,363511674
-.long   1606117888,3487855781,1093350906,2384367825
-.long   197121,67569157,134941193,202313229
-.long   67569157,134941193,202313229,197121
-.long   134941193,202313229,197121,67569157
-.long   202313229,197121,67569157,134941193
-.long   33619971,100992007,168364043,235736079
-.long   235736079,33619971,100992007,168364043
-.long   168364043,235736079,33619971,100992007
-.long   100992007,168364043,235736079,33619971
-.long   50462976,117835012,185207048,252579084
-.long   252314880,51251460,117574920,184942860
-.long   184682752,252054788,50987272,118359308
-.long   118099200,185467140,251790600,50727180
-.long   2946363062,528716217,1300004225,1881839624
-.long   1532713819,1532713819,1532713819,1532713819
-.long   3602276352,4288629033,3737020424,4153884961
-.long   1354558464,32357713,2958822624,3775749553
-.long   1201988352,132424512,1572796698,503232858
-.long   2213177600,1597421020,4103937655,675398315
-.long   2749646592,4273543773,1511898873,121693092
-.long   3040248576,1103263732,2871565598,1608280554
-.long   2236667136,2588920351,482954393,64377734
-.long   3069987328,291237287,2117370568,3650299247
-.long   533321216,3573750986,2572112006,1401264716
-.long   1339849704,2721158661,548607111,3445553514
-.long   2128193280,3054596040,2183486460,1257083700
-.long   655635200,1165381986,3923443150,2344132524
-.long   190078720,256924420,290342170,357187870
-.long   1610966272,2263057382,4103205268,309794674
-.long   2592527872,2233205587,1335446729,3402964816
-.long   3973531904,3225098121,3002836325,1918774430
-.long   3870401024,2102906079,2284471353,4117666579
-.long   617007872,1021508343,366931923,691083277
-.long   2528395776,3491914898,2968704004,1613121270
-.long   3445188352,3247741094,844474987,4093578302
-.long   651481088,1190302358,1689581232,574775300
-.long   4289380608,206939853,2555985458,2489840491
-.long   2130264064,327674451,3566485037,3349835193
-.long   2470714624,316102159,3636825756,3393945945
-.byte   86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105
-.byte   111,110,32,65,69,83,32,102,111,114,32,120,56,54,47,83
-.byte   83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117
-.byte   114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105
-.byte   118,101,114,115,105,116,121,41,0
-.align  64
-.type   _vpaes_preheat, at function
-.align  16
-_vpaes_preheat:
-        addl    (%esp),%ebp
-        movdqa  -48(%ebp),%xmm7
-        movdqa  -16(%ebp),%xmm6
-        ret
-.size   _vpaes_preheat,.-_vpaes_preheat
-.type   _vpaes_encrypt_core, at function
-.align  16
-_vpaes_encrypt_core:
-        movl    $16,%ecx
-        movl    240(%edx),%eax
-        movdqa  %xmm6,%xmm1
-        movdqa  (%ebp),%xmm2
-        pandn   %xmm0,%xmm1
-        pand    %xmm6,%xmm0
-        movdqu  (%edx),%xmm5
-.byte   102,15,56,0,208
-        movdqa  16(%ebp),%xmm0
-        pxor    %xmm5,%xmm2
-        psrld   $4,%xmm1
-        addl    $16,%edx
-.byte   102,15,56,0,193
-        leal    192(%ebp),%ebx
-        pxor    %xmm2,%xmm0
-        jmp     .L000enc_entry
-.align  16
-.L001enc_loop:
-        movdqa  32(%ebp),%xmm4
-        movdqa  48(%ebp),%xmm0
-.byte   102,15,56,0,226
-.byte   102,15,56,0,195
-        pxor    %xmm5,%xmm4
-        movdqa  64(%ebp),%xmm5
-        pxor    %xmm4,%xmm0
-        movdqa  -64(%ebx,%ecx,1),%xmm1
-.byte   102,15,56,0,234
-        movdqa  80(%ebp),%xmm2
-        movdqa  (%ebx,%ecx,1),%xmm4
-.byte   102,15,56,0,211
-        movdqa  %xmm0,%xmm3
-        pxor    %xmm5,%xmm2
-.byte   102,15,56,0,193
-        addl    $16,%edx
-        pxor    %xmm2,%xmm0
-.byte   102,15,56,0,220
-        addl    $16,%ecx
-        pxor    %xmm0,%xmm3
-.byte   102,15,56,0,193
-        andl    $48,%ecx
-        subl    $1,%eax
-        pxor    %xmm3,%xmm0
-.L000enc_entry:
-        movdqa  %xmm6,%xmm1
-        movdqa  -32(%ebp),%xmm5
-        pandn   %xmm0,%xmm1
-        psrld   $4,%xmm1
-        pand    %xmm6,%xmm0
-.byte   102,15,56,0,232
-        movdqa  %xmm7,%xmm3
-        pxor    %xmm1,%xmm0
-.byte   102,15,56,0,217
-        movdqa  %xmm7,%xmm4
-        pxor    %xmm5,%xmm3
-.byte   102,15,56,0,224
-        movdqa  %xmm7,%xmm2
-        pxor    %xmm5,%xmm4
-.byte   102,15,56,0,211
-        movdqa  %xmm7,%xmm3
-        pxor    %xmm0,%xmm2
-.byte   102,15,56,0,220
-        movdqu  (%edx),%xmm5
-        pxor    %xmm1,%xmm3
-        jnz     .L001enc_loop
-        movdqa  96(%ebp),%xmm4
-        movdqa  112(%ebp),%xmm0
-.byte   102,15,56,0,226
-        pxor    %xmm5,%xmm4
-.byte   102,15,56,0,195
-        movdqa  64(%ebx,%ecx,1),%xmm1
-        pxor    %xmm4,%xmm0
-.byte   102,15,56,0,193
-        ret
-.size   _vpaes_encrypt_core,.-_vpaes_encrypt_core
-.type   _vpaes_decrypt_core, at function
-.align  16
-_vpaes_decrypt_core:
-        leal    608(%ebp),%ebx
-        movl    240(%edx),%eax
-        movdqa  %xmm6,%xmm1
-        movdqa  -64(%ebx),%xmm2
-        pandn   %xmm0,%xmm1
-        movl    %eax,%ecx
-        psrld   $4,%xmm1
-        movdqu  (%edx),%xmm5
-        shll    $4,%ecx
-        pand    %xmm6,%xmm0
-.byte   102,15,56,0,208
-        movdqa  -48(%ebx),%xmm0
-        xorl    $48,%ecx
-.byte   102,15,56,0,193
-        andl    $48,%ecx
-        pxor    %xmm5,%xmm2
-        movdqa  176(%ebp),%xmm5
-        pxor    %xmm2,%xmm0
-        addl    $16,%edx
-        leal    -352(%ebx,%ecx,1),%ecx
-        jmp     .L002dec_entry
-.align  16
-.L003dec_loop:
-        movdqa  -32(%ebx),%xmm4
-        movdqa  -16(%ebx),%xmm1
-.byte   102,15,56,0,226
-.byte   102,15,56,0,203
-        pxor    %xmm4,%xmm0
-        movdqa  (%ebx),%xmm4
-        pxor    %xmm1,%xmm0
-        movdqa  16(%ebx),%xmm1
-.byte   102,15,56,0,226
-.byte   102,15,56,0,197
-.byte   102,15,56,0,203
-        pxor    %xmm4,%xmm0
-        movdqa  32(%ebx),%xmm4
-        pxor    %xmm1,%xmm0
-        movdqa  48(%ebx),%xmm1
-.byte   102,15,56,0,226
-.byte   102,15,56,0,197
-.byte   102,15,56,0,203
-        pxor    %xmm4,%xmm0
-        movdqa  64(%ebx),%xmm4
-        pxor    %xmm1,%xmm0
-        movdqa  80(%ebx),%xmm1
-.byte   102,15,56,0,226
-.byte   102,15,56,0,197
-.byte   102,15,56,0,203
-        pxor    %xmm4,%xmm0
-        addl    $16,%edx
-.byte   102,15,58,15,237,12
-        pxor    %xmm1,%xmm0
-        subl    $1,%eax
-.L002dec_entry:
-        movdqa  %xmm6,%xmm1
-        movdqa  -32(%ebp),%xmm2
-        pandn   %xmm0,%xmm1
-        pand    %xmm6,%xmm0
-        psrld   $4,%xmm1
-.byte   102,15,56,0,208
-        movdqa  %xmm7,%xmm3
-        pxor    %xmm1,%xmm0
-.byte   102,15,56,0,217
-        movdqa  %xmm7,%xmm4
-        pxor    %xmm2,%xmm3
-.byte   102,15,56,0,224
-        pxor    %xmm2,%xmm4
-        movdqa  %xmm7,%xmm2
-.byte   102,15,56,0,211
-        movdqa  %xmm7,%xmm3
-        pxor    %xmm0,%xmm2
-.byte   102,15,56,0,220
-        movdqu  (%edx),%xmm0
-        pxor    %xmm1,%xmm3
-        jnz     .L003dec_loop
-        movdqa  96(%ebx),%xmm4
-.byte   102,15,56,0,226
-        pxor    %xmm0,%xmm4
-        movdqa  112(%ebx),%xmm0
-        movdqa  (%ecx),%xmm2
-.byte   102,15,56,0,195
-        pxor    %xmm4,%xmm0
-.byte   102,15,56,0,194
-        ret
-.size   _vpaes_decrypt_core,.-_vpaes_decrypt_core
-.type   _vpaes_schedule_core, at function
-.align  16
-_vpaes_schedule_core:
-        addl    (%esp),%ebp
-        movdqu  (%esi),%xmm0
-        movdqa  320(%ebp),%xmm2
-        movdqa  %xmm0,%xmm3
-        leal    (%ebp),%ebx
-        movdqa  %xmm2,4(%esp)
-        call    _vpaes_schedule_transform
-        movdqa  %xmm0,%xmm7
-        testl   %edi,%edi
-        jnz     .L004schedule_am_decrypting
-        movdqu  %xmm0,(%edx)
-        jmp     .L005schedule_go
-.L004schedule_am_decrypting:
-        movdqa  256(%ebp,%ecx,1),%xmm1
-.byte   102,15,56,0,217
-        movdqu  %xmm3,(%edx)
-        xorl    $48,%ecx
-.L005schedule_go:
-        cmpl    $192,%eax
-        ja      .L006schedule_256
-        je      .L007schedule_192
-.L008schedule_128:
-        movl    $10,%eax
-.L009loop_schedule_128:
-        call    _vpaes_schedule_round
-        decl    %eax
-        jz      .L010schedule_mangle_last
-        call    _vpaes_schedule_mangle
-        jmp     .L009loop_schedule_128
-.align  16
-.L007schedule_192:
-        movdqu  8(%esi),%xmm0
-        call    _vpaes_schedule_transform
-        movdqa  %xmm0,%xmm6
-        pxor    %xmm4,%xmm4
-        movhlps %xmm4,%xmm6
-        movl    $4,%eax
-.L011loop_schedule_192:
-        call    _vpaes_schedule_round
-.byte   102,15,58,15,198,8
-        call    _vpaes_schedule_mangle
-        call    _vpaes_schedule_192_smear
-        call    _vpaes_schedule_mangle
-        call    _vpaes_schedule_round
-        decl    %eax
-        jz      .L010schedule_mangle_last
-        call    _vpaes_schedule_mangle
-        call    _vpaes_schedule_192_smear
-        jmp     .L011loop_schedule_192
-.align  16
-.L006schedule_256:
-        movdqu  16(%esi),%xmm0
-        call    _vpaes_schedule_transform
-        movl    $7,%eax
-.L012loop_schedule_256:
-        call    _vpaes_schedule_mangle
-        movdqa  %xmm0,%xmm6
-        call    _vpaes_schedule_round
-        decl    %eax
-        jz      .L010schedule_mangle_last
-        call    _vpaes_schedule_mangle
-        pshufd  $255,%xmm0,%xmm0
-        movdqa  %xmm7,20(%esp)
-        movdqa  %xmm6,%xmm7
-        call    .L_vpaes_schedule_low_round
-        movdqa  20(%esp),%xmm7
-        jmp     .L012loop_schedule_256
-.align  16
-.L010schedule_mangle_last:
-        leal    384(%ebp),%ebx
-        testl   %edi,%edi
-        jnz     .L013schedule_mangle_last_dec
-        movdqa  256(%ebp,%ecx,1),%xmm1
-.byte   102,15,56,0,193
-        leal    352(%ebp),%ebx
-        addl    $32,%edx
-.L013schedule_mangle_last_dec:
-        addl    $-16,%edx
-        pxor    336(%ebp),%xmm0
-        call    _vpaes_schedule_transform
-        movdqu  %xmm0,(%edx)
-        pxor    %xmm0,%xmm0
-        pxor    %xmm1,%xmm1
-        pxor    %xmm2,%xmm2
-        pxor    %xmm3,%xmm3
-        pxor    %xmm4,%xmm4
-        pxor    %xmm5,%xmm5
-        pxor    %xmm6,%xmm6
-        pxor    %xmm7,%xmm7
-        ret
-.size   _vpaes_schedule_core,.-_vpaes_schedule_core
-.type   _vpaes_schedule_192_smear, at function
-.align  16
-_vpaes_schedule_192_smear:
-        pshufd  $128,%xmm6,%xmm1
-        pshufd  $254,%xmm7,%xmm0
-        pxor    %xmm1,%xmm6
-        pxor    %xmm1,%xmm1
-        pxor    %xmm0,%xmm6
-        movdqa  %xmm6,%xmm0
-        movhlps %xmm1,%xmm6
-        ret
-.size   _vpaes_schedule_192_smear,.-_vpaes_schedule_192_smear
-.type   _vpaes_schedule_round, at function
-.align  16
-_vpaes_schedule_round:
-        movdqa  8(%esp),%xmm2
-        pxor    %xmm1,%xmm1
-.byte   102,15,58,15,202,15
-.byte   102,15,58,15,210,15
-        pxor    %xmm1,%xmm7
-        pshufd  $255,%xmm0,%xmm0
-.byte   102,15,58,15,192,1
-        movdqa  %xmm2,8(%esp)
-.L_vpaes_schedule_low_round:
-        movdqa  %xmm7,%xmm1
-        pslldq  $4,%xmm7
-        pxor    %xmm1,%xmm7
-        movdqa  %xmm7,%xmm1
-        pslldq  $8,%xmm7
-        pxor    %xmm1,%xmm7
-        pxor    336(%ebp),%xmm7
-        movdqa  -16(%ebp),%xmm4
-        movdqa  -48(%ebp),%xmm5
-        movdqa  %xmm4,%xmm1
-        pandn   %xmm0,%xmm1
-        psrld   $4,%xmm1
-        pand    %xmm4,%xmm0
-        movdqa  -32(%ebp),%xmm2
-.byte   102,15,56,0,208
-        pxor    %xmm1,%xmm0
-        movdqa  %xmm5,%xmm3
-.byte   102,15,56,0,217
-        pxor    %xmm2,%xmm3
-        movdqa  %xmm5,%xmm4
-.byte   102,15,56,0,224
-        pxor    %xmm2,%xmm4
-        movdqa  %xmm5,%xmm2
-.byte   102,15,56,0,211
-        pxor    %xmm0,%xmm2
-        movdqa  %xmm5,%xmm3
-.byte   102,15,56,0,220
-        pxor    %xmm1,%xmm3
-        movdqa  32(%ebp),%xmm4
-.byte   102,15,56,0,226
-        movdqa  48(%ebp),%xmm0
-.byte   102,15,56,0,195
-        pxor    %xmm4,%xmm0
-        pxor    %xmm7,%xmm0
-        movdqa  %xmm0,%xmm7
-        ret
-.size   _vpaes_schedule_round,.-_vpaes_schedule_round
-.type   _vpaes_schedule_transform, at function
-.align  16
-_vpaes_schedule_transform:
-        movdqa  -16(%ebp),%xmm2
-        movdqa  %xmm2,%xmm1
-        pandn   %xmm0,%xmm1
-        psrld   $4,%xmm1
-        pand    %xmm2,%xmm0
-        movdqa  (%ebx),%xmm2
-.byte   102,15,56,0,208
-        movdqa  16(%ebx),%xmm0
-.byte   102,15,56,0,193
-        pxor    %xmm2,%xmm0
-        ret
-.size   _vpaes_schedule_transform,.-_vpaes_schedule_transform
-.type   _vpaes_schedule_mangle, at function
-.align  16
-_vpaes_schedule_mangle:
-        movdqa  %xmm0,%xmm4
-        movdqa  128(%ebp),%xmm5
-        testl   %edi,%edi
-        jnz     .L014schedule_mangle_dec
-        addl    $16,%edx
-        pxor    336(%ebp),%xmm4
-.byte   102,15,56,0,229
-        movdqa  %xmm4,%xmm3
-.byte   102,15,56,0,229
-        pxor    %xmm4,%xmm3
-.byte   102,15,56,0,229
-        pxor    %xmm4,%xmm3
-        jmp     .L015schedule_mangle_both
-.align  16
-.L014schedule_mangle_dec:
-        movdqa  -16(%ebp),%xmm2
-        leal    416(%ebp),%esi
-        movdqa  %xmm2,%xmm1
-        pandn   %xmm4,%xmm1
-        psrld   $4,%xmm1
-        pand    %xmm2,%xmm4
-        movdqa  (%esi),%xmm2
-.byte   102,15,56,0,212
-        movdqa  16(%esi),%xmm3
-.byte   102,15,56,0,217
-        pxor    %xmm2,%xmm3
-.byte   102,15,56,0,221
-        movdqa  32(%esi),%xmm2
-.byte   102,15,56,0,212
-        pxor    %xmm3,%xmm2
-        movdqa  48(%esi),%xmm3
-.byte   102,15,56,0,217
-        pxor    %xmm2,%xmm3
-.byte   102,15,56,0,221
-        movdqa  64(%esi),%xmm2
-.byte   102,15,56,0,212
-        pxor    %xmm3,%xmm2
-        movdqa  80(%esi),%xmm3
-.byte   102,15,56,0,217
-        pxor    %xmm2,%xmm3
-.byte   102,15,56,0,221
-        movdqa  96(%esi),%xmm2
-.byte   102,15,56,0,212
-        pxor    %xmm3,%xmm2
-        movdqa  112(%esi),%xmm3
-.byte   102,15,56,0,217
-        pxor    %xmm2,%xmm3
-        addl    $-16,%edx
-.L015schedule_mangle_both:
-        movdqa  256(%ebp,%ecx,1),%xmm1
-.byte   102,15,56,0,217
-        addl    $-16,%ecx
-        andl    $48,%ecx
-        movdqu  %xmm3,(%edx)
-        ret
-.size   _vpaes_schedule_mangle,.-_vpaes_schedule_mangle
-.globl  vpaes_set_encrypt_key
-.type   vpaes_set_encrypt_key, at function
-.align  16
-vpaes_set_encrypt_key:
-.L_vpaes_set_encrypt_key_begin:
-        pushl   %ebp
-        pushl   %ebx
-        pushl   %esi
-        pushl   %edi
-        movl    20(%esp),%esi
-        leal    -56(%esp),%ebx
-        movl    24(%esp),%eax
-        andl    $-16,%ebx
-        movl    28(%esp),%edx
-        xchgl   %esp,%ebx
-        movl    %ebx,48(%esp)
-        movl    %eax,%ebx
-        shrl    $5,%ebx
-        addl    $5,%ebx
-        movl    %ebx,240(%edx)
-        movl    $48,%ecx
-        movl    $0,%edi
-        leal    .L_vpaes_consts+0x30-.L016pic_point,%ebp
-        call    _vpaes_schedule_core
-.L016pic_point:
-        movl    48(%esp),%esp
-        xorl    %eax,%eax
-        popl    %edi
-        popl    %esi
-        popl    %ebx
-        popl    %ebp
-        ret
-.size   vpaes_set_encrypt_key,.-.L_vpaes_set_encrypt_key_begin
-.globl  vpaes_set_decrypt_key
-.type   vpaes_set_decrypt_key, at function
-.align  16
-vpaes_set_decrypt_key:
-.L_vpaes_set_decrypt_key_begin:
-        pushl   %ebp
-        pushl   %ebx
-        pushl   %esi
-        pushl   %edi
-        movl    20(%esp),%esi
-        leal    -56(%esp),%ebx
-        movl    24(%esp),%eax
-        andl    $-16,%ebx
-        movl    28(%esp),%edx
-        xchgl   %esp,%ebx
-        movl    %ebx,48(%esp)
-        movl    %eax,%ebx
-        shrl    $5,%ebx
-        addl    $5,%ebx
-        movl    %ebx,240(%edx)
-        shll    $4,%ebx
-        leal    16(%edx,%ebx,1),%edx
-        movl    $1,%edi
-        movl    %eax,%ecx
-        shrl    $1,%ecx
-        andl    $32,%ecx
-        xorl    $32,%ecx
-        leal    .L_vpaes_consts+0x30-.L017pic_point,%ebp
-        call    _vpaes_schedule_core
-.L017pic_point:
-        movl    48(%esp),%esp
-        xorl    %eax,%eax
-        popl    %edi
-        popl    %esi
-        popl    %ebx
-        popl    %ebp
-        ret
-.size   vpaes_set_decrypt_key,.-.L_vpaes_set_decrypt_key_begin
-.globl  vpaes_encrypt
-.type   vpaes_encrypt, at function
-.align  16
-vpaes_encrypt:
-.L_vpaes_encrypt_begin:
-        pushl   %ebp
-        pushl   %ebx
-        pushl   %esi
-        pushl   %edi
-        leal    .L_vpaes_consts+0x30-.L018pic_point,%ebp
-        call    _vpaes_preheat
-.L018pic_point:
-        movl    20(%esp),%esi
-        leal    -56(%esp),%ebx
-        movl    24(%esp),%edi
-        andl    $-16,%ebx
-        movl    28(%esp),%edx
-        xchgl   %esp,%ebx
-        movl    %ebx,48(%esp)
-        movdqu  (%esi),%xmm0
-        call    _vpaes_encrypt_core
-        movdqu  %xmm0,(%edi)
-        movl    48(%esp),%esp
-        popl    %edi
-        popl    %esi
-        popl    %ebx
-        popl    %ebp
-        ret
-.size   vpaes_encrypt,.-.L_vpaes_encrypt_begin
-.globl  vpaes_decrypt
-.type   vpaes_decrypt, at function
-.align  16
-vpaes_decrypt:
-.L_vpaes_decrypt_begin:
-        pushl   %ebp
-        pushl   %ebx
-        pushl   %esi
-        pushl   %edi
-        leal    .L_vpaes_consts+0x30-.L019pic_point,%ebp
-        call    _vpaes_preheat
-.L019pic_point:
-        movl    20(%esp),%esi
-        leal    -56(%esp),%ebx
-        movl    24(%esp),%edi
-        andl    $-16,%ebx
-        movl    28(%esp),%edx
-        xchgl   %esp,%ebx
-        movl    %ebx,48(%esp)
-        movdqu  (%esi),%xmm0
-        call    _vpaes_decrypt_core
-        movdqu  %xmm0,(%edi)
-        movl    48(%esp),%esp
-        popl    %edi
-        popl    %esi
-        popl    %ebx
-        popl    %ebp
-        ret
-.size   vpaes_decrypt,.-.L_vpaes_decrypt_begin
-.globl  vpaes_cbc_encrypt
-.type   vpaes_cbc_encrypt, at function
-.align  16
-vpaes_cbc_encrypt:
-.L_vpaes_cbc_encrypt_begin:
-        pushl   %ebp
-        pushl   %ebx
-        pushl   %esi
-        pushl   %edi
-        movl    20(%esp),%esi
-        movl    24(%esp),%edi
-        movl    28(%esp),%eax
-        movl    32(%esp),%edx
-        subl    $16,%eax
-        jc      .L020cbc_abort
-        leal    -56(%esp),%ebx
-        movl    36(%esp),%ebp
-        andl    $-16,%ebx
-        movl    40(%esp),%ecx
-        xchgl   %esp,%ebx
-        movdqu  (%ebp),%xmm1
-        subl    %esi,%edi
-        movl    %ebx,48(%esp)
-        movl    %edi,(%esp)
-        movl    %edx,4(%esp)
-        movl    %ebp,8(%esp)
-        movl    %eax,%edi
-        leal    .L_vpaes_consts+0x30-.L021pic_point,%ebp
-        call    _vpaes_preheat
-.L021pic_point:
-        cmpl    $0,%ecx
-        je      .L022cbc_dec_loop
-        jmp     .L023cbc_enc_loop
-.align  16
-.L023cbc_enc_loop:
-        movdqu  (%esi),%xmm0
-        pxor    %xmm1,%xmm0
-        call    _vpaes_encrypt_core
-        movl    (%esp),%ebx
-        movl    4(%esp),%edx
-        movdqa  %xmm0,%xmm1
-        movdqu  %xmm0,(%ebx,%esi,1)
-        leal    16(%esi),%esi
-        subl    $16,%edi
-        jnc     .L023cbc_enc_loop
-        jmp     .L024cbc_done
-.align  16
-.L022cbc_dec_loop:
-        movdqu  (%esi),%xmm0
-        movdqa  %xmm1,16(%esp)
-        movdqa  %xmm0,32(%esp)
-        call    _vpaes_decrypt_core
-        movl    (%esp),%ebx
-        movl    4(%esp),%edx
-        pxor    16(%esp),%xmm0
-        movdqa  32(%esp),%xmm1
-        movdqu  %xmm0,(%ebx,%esi,1)
-        leal    16(%esi),%esi
-        subl    $16,%edi
-        jnc     .L022cbc_dec_loop
-.L024cbc_done:
-        movl    8(%esp),%ebx
-        movl    48(%esp),%esp
-        movdqu  %xmm1,(%ebx)
-.L020cbc_abort:
-        popl    %edi
-        popl    %esi
-        popl    %ebx
-        popl    %ebp
-        ret
-.size   vpaes_cbc_encrypt,.-.L_vpaes_cbc_encrypt_begin
diff --git a/CryptoPkg/Library/OpensslLib/IA32Gcc/crypto/modes/ghash-x86.S b/CryptoPkg/Library/OpensslLib/IA32Gcc/crypto/modes/ghash-x86.S
deleted file mode 100644
index f52b445df2af..000000000000
--- a/CryptoPkg/Library/OpensslLib/IA32Gcc/crypto/modes/ghash-x86.S
+++ /dev/null
@@ -1,703 +0,0 @@
-# WARNING: do not edit!
-# Generated from openssl/crypto/modes/asm/ghash-x86.pl
-#
-# Copyright 2010-2020 The OpenSSL Project Authors. All Rights Reserved.
-#
-# Licensed under the OpenSSL license (the "License").  You may not use
-# this file except in compliance with the License.  You can obtain a copy
-# in the file LICENSE in the source distribution or at
-# https://www.openssl.org/source/license.html
-
-.text
-.globl  gcm_gmult_4bit_x86
-.type   gcm_gmult_4bit_x86, at function
-.align  16
-gcm_gmult_4bit_x86:
-.L_gcm_gmult_4bit_x86_begin:
-        pushl   %ebp
-        pushl   %ebx
-        pushl   %esi
-        pushl   %edi
-        subl    $84,%esp
-        movl    104(%esp),%edi
-        movl    108(%esp),%esi
-        movl    (%edi),%ebp
-        movl    4(%edi),%edx
-        movl    8(%edi),%ecx
-        movl    12(%edi),%ebx
-        movl    $0,16(%esp)
-        movl    $471859200,20(%esp)
-        movl    $943718400,24(%esp)
-        movl    $610271232,28(%esp)
-        movl    $1887436800,32(%esp)
-        movl    $1822425088,36(%esp)
-        movl    $1220542464,40(%esp)
-        movl    $1423966208,44(%esp)
-        movl    $3774873600,48(%esp)
-        movl    $4246732800,52(%esp)
-        movl    $3644850176,56(%esp)
-        movl    $3311403008,60(%esp)
-        movl    $2441084928,64(%esp)
-        movl    $2376073216,68(%esp)
-        movl    $2847932416,72(%esp)
-        movl    $3051356160,76(%esp)
-        movl    %ebp,(%esp)
-        movl    %edx,4(%esp)
-        movl    %ecx,8(%esp)
-        movl    %ebx,12(%esp)
-        shrl    $20,%ebx
-        andl    $240,%ebx
-        movl    4(%esi,%ebx,1),%ebp
-        movl    (%esi,%ebx,1),%edx
-        movl    12(%esi,%ebx,1),%ecx
-        movl    8(%esi,%ebx,1),%ebx
-        xorl    %eax,%eax
-        movl    $15,%edi
-        jmp     .L000x86_loop
-.align  16
-.L000x86_loop:
-        movb    %bl,%al
-        shrdl   $4,%ecx,%ebx
-        andb    $15,%al
-        shrdl   $4,%edx,%ecx
-        shrdl   $4,%ebp,%edx
-        shrl    $4,%ebp
-        xorl    16(%esp,%eax,4),%ebp
-        movb    (%esp,%edi,1),%al
-        andb    $240,%al
-        xorl    8(%esi,%eax,1),%ebx
-        xorl    12(%esi,%eax,1),%ecx
-        xorl    (%esi,%eax,1),%edx
-        xorl    4(%esi,%eax,1),%ebp
-        decl    %edi
-        js      .L001x86_break
-        movb    %bl,%al
-        shrdl   $4,%ecx,%ebx
-        andb    $15,%al
-        shrdl   $4,%edx,%ecx
-        shrdl   $4,%ebp,%edx
-        shrl    $4,%ebp
-        xorl    16(%esp,%eax,4),%ebp
-        movb    (%esp,%edi,1),%al
-        shlb    $4,%al
-        xorl    8(%esi,%eax,1),%ebx
-        xorl    12(%esi,%eax,1),%ecx
-        xorl    (%esi,%eax,1),%edx
-        xorl    4(%esi,%eax,1),%ebp
-        jmp     .L000x86_loop
-.align  16
-.L001x86_break:
-        bswap   %ebx
-        bswap   %ecx
-        bswap   %edx
-        bswap   %ebp
-        movl    104(%esp),%edi
-        movl    %ebx,12(%edi)
-        movl    %ecx,8(%edi)
-        movl    %edx,4(%edi)
-        movl    %ebp,(%edi)
-        addl    $84,%esp
-        popl    %edi
-        popl    %esi
-        popl    %ebx
-        popl    %ebp
-        ret
-.size   gcm_gmult_4bit_x86,.-.L_gcm_gmult_4bit_x86_begin
-.globl  gcm_ghash_4bit_x86
-.type   gcm_ghash_4bit_x86, at function
-.align  16
-gcm_ghash_4bit_x86:
-.L_gcm_ghash_4bit_x86_begin:
-        pushl   %ebp
-        pushl   %ebx
-        pushl   %esi
-        pushl   %edi
-        subl    $84,%esp
-        movl    104(%esp),%ebx
-        movl    108(%esp),%esi
-        movl    112(%esp),%edi
-        movl    116(%esp),%ecx
-        addl    %edi,%ecx
-        movl    %ecx,116(%esp)
-        movl    (%ebx),%ebp
-        movl    4(%ebx),%edx
-        movl    8(%ebx),%ecx
-        movl    12(%ebx),%ebx
-        movl    $0,16(%esp)
-        movl    $471859200,20(%esp)
-        movl    $943718400,24(%esp)
-        movl    $610271232,28(%esp)
-        movl    $1887436800,32(%esp)
-        movl    $1822425088,36(%esp)
-        movl    $1220542464,40(%esp)
-        movl    $1423966208,44(%esp)
-        movl    $3774873600,48(%esp)
-        movl    $4246732800,52(%esp)
-        movl    $3644850176,56(%esp)
-        movl    $3311403008,60(%esp)
-        movl    $2441084928,64(%esp)
-        movl    $2376073216,68(%esp)
-        movl    $2847932416,72(%esp)
-        movl    $3051356160,76(%esp)
-.align  16
-.L002x86_outer_loop:
-        xorl    12(%edi),%ebx
-        xorl    8(%edi),%ecx
-        xorl    4(%edi),%edx
-        xorl    (%edi),%ebp
-        movl    %ebx,12(%esp)
-        movl    %ecx,8(%esp)
-        movl    %edx,4(%esp)
-        movl    %ebp,(%esp)
-        shrl    $20,%ebx
-        andl    $240,%ebx
-        movl    4(%esi,%ebx,1),%ebp
-        movl    (%esi,%ebx,1),%edx
-        movl    12(%esi,%ebx,1),%ecx
-        movl    8(%esi,%ebx,1),%ebx
-        xorl    %eax,%eax
-        movl    $15,%edi
-        jmp     .L003x86_loop
-.align  16
-.L003x86_loop:
-        movb    %bl,%al
-        shrdl   $4,%ecx,%ebx
-        andb    $15,%al
-        shrdl   $4,%edx,%ecx
-        shrdl   $4,%ebp,%edx
-        shrl    $4,%ebp
-        xorl    16(%esp,%eax,4),%ebp
-        movb    (%esp,%edi,1),%al
-        andb    $240,%al
-        xorl    8(%esi,%eax,1),%ebx
-        xorl    12(%esi,%eax,1),%ecx
-        xorl    (%esi,%eax,1),%edx
-        xorl    4(%esi,%eax,1),%ebp
-        decl    %edi
-        js      .L004x86_break
-        movb    %bl,%al
-        shrdl   $4,%ecx,%ebx
-        andb    $15,%al
-        shrdl   $4,%edx,%ecx
-        shrdl   $4,%ebp,%edx
-        shrl    $4,%ebp
-        xorl    16(%esp,%eax,4),%ebp
-        movb    (%esp,%edi,1),%al
-        shlb    $4,%al
-        xorl    8(%esi,%eax,1),%ebx
-        xorl    12(%esi,%eax,1),%ecx
-        xorl    (%esi,%eax,1),%edx
-        xorl    4(%esi,%eax,1),%ebp
-        jmp     .L003x86_loop
-.align  16
-.L004x86_break:
-        bswap   %ebx
-        bswap   %ecx
-        bswap   %edx
-        bswap   %ebp
-        movl    112(%esp),%edi
-        leal    16(%edi),%edi
-        cmpl    116(%esp),%edi
-        movl    %edi,112(%esp)
-        jb      .L002x86_outer_loop
-        movl    104(%esp),%edi
-        movl    %ebx,12(%edi)
-        movl    %ecx,8(%edi)
-        movl    %edx,4(%edi)
-        movl    %ebp,(%edi)
-        addl    $84,%esp
-        popl    %edi
-        popl    %esi
-        popl    %ebx
-        popl    %ebp
-        ret
-.size   gcm_ghash_4bit_x86,.-.L_gcm_ghash_4bit_x86_begin
-.type   _mmx_gmult_4bit_inner, at function
-.align  16
-_mmx_gmult_4bit_inner:
-        xorl    %ecx,%ecx
-        movl    %ebx,%edx
-        movb    %dl,%cl
-        shlb    $4,%cl
-        andl    $240,%edx
-        movq    8(%esi,%ecx,1),%mm0
-        movq    (%esi,%ecx,1),%mm1
-        movd    %mm0,%ebp
-        psrlq   $4,%mm0
-        movq    %mm1,%mm2
-        psrlq   $4,%mm1
-        pxor    8(%esi,%edx,1),%mm0
-        movb    14(%edi),%cl
-        psllq   $60,%mm2
-        andl    $15,%ebp
-        pxor    (%esi,%edx,1),%mm1
-        movl    %ecx,%edx
-        movd    %mm0,%ebx
-        pxor    %mm2,%mm0
-        shlb    $4,%cl
-        psrlq   $4,%mm0
-        movq    %mm1,%mm2
-        psrlq   $4,%mm1
-        pxor    8(%esi,%ecx,1),%mm0
-        psllq   $60,%mm2
-        andl    $240,%edx
-        pxor    (%eax,%ebp,8),%mm1
-        andl    $15,%ebx
-        pxor    (%esi,%ecx,1),%mm1
-        movd    %mm0,%ebp
-        pxor    %mm2,%mm0
-        psrlq   $4,%mm0
-        movq    %mm1,%mm2
-        psrlq   $4,%mm1
-        pxor    8(%esi,%edx,1),%mm0
-        movb    13(%edi),%cl
-        psllq   $60,%mm2
-        pxor    (%eax,%ebx,8),%mm1
-        andl    $15,%ebp
-        pxor    (%esi,%edx,1),%mm1
-        movl    %ecx,%edx
-        movd    %mm0,%ebx
-        pxor    %mm2,%mm0
-        shlb    $4,%cl
-        psrlq   $4,%mm0
-        movq    %mm1,%mm2
-        psrlq   $4,%mm1
-        pxor    8(%esi,%ecx,1),%mm0
-        psllq   $60,%mm2
-        andl    $240,%edx
-        pxor    (%eax,%ebp,8),%mm1
-        andl    $15,%ebx
-        pxor    (%esi,%ecx,1),%mm1
-        movd    %mm0,%ebp
-        pxor    %mm2,%mm0
-        psrlq   $4,%mm0
-        movq    %mm1,%mm2
-        psrlq   $4,%mm1
-        pxor    8(%esi,%edx,1),%mm0
-        movb    12(%edi),%cl
-        psllq   $60,%mm2
-        pxor    (%eax,%ebx,8),%mm1
-        andl    $15,%ebp
-        pxor    (%esi,%edx,1),%mm1
-        movl    %ecx,%edx
-        movd    %mm0,%ebx
-        pxor    %mm2,%mm0
-        shlb    $4,%cl
-        psrlq   $4,%mm0
-        movq    %mm1,%mm2
-        psrlq   $4,%mm1
-        pxor    8(%esi,%ecx,1),%mm0
-        psllq   $60,%mm2
-        andl    $240,%edx
-        pxor    (%eax,%ebp,8),%mm1
-        andl    $15,%ebx
-        pxor    (%esi,%ecx,1),%mm1
-        movd    %mm0,%ebp
-        pxor    %mm2,%mm0
-        psrlq   $4,%mm0
-        movq    %mm1,%mm2
-        psrlq   $4,%mm1
-        pxor    8(%esi,%edx,1),%mm0
-        movb    11(%edi),%cl
-        psllq   $60,%mm2
-        pxor    (%eax,%ebx,8),%mm1
-        andl    $15,%ebp
-        pxor    (%esi,%edx,1),%mm1
-        movl    %ecx,%edx
-        movd    %mm0,%ebx
-        pxor    %mm2,%mm0
-        shlb    $4,%cl
-        psrlq   $4,%mm0
-        movq    %mm1,%mm2
-        psrlq   $4,%mm1
-        pxor    8(%esi,%ecx,1),%mm0
-        psllq   $60,%mm2
-        andl    $240,%edx
-        pxor    (%eax,%ebp,8),%mm1
-        andl    $15,%ebx
-        pxor    (%esi,%ecx,1),%mm1
-        movd    %mm0,%ebp
-        pxor    %mm2,%mm0
-        psrlq   $4,%mm0
-        movq    %mm1,%mm2
-        psrlq   $4,%mm1
-        pxor    8(%esi,%edx,1),%mm0
-        movb    10(%edi),%cl
-        psllq   $60,%mm2
-        pxor    (%eax,%ebx,8),%mm1
-        andl    $15,%ebp
-        pxor    (%esi,%edx,1),%mm1
-        movl    %ecx,%edx
-        movd    %mm0,%ebx
-        pxor    %mm2,%mm0
-        shlb    $4,%cl
-        psrlq   $4,%mm0
-        movq    %mm1,%mm2
-        psrlq   $4,%mm1
-        pxor    8(%esi,%ecx,1),%mm0
-        psllq   $60,%mm2
-        andl    $240,%edx
-        pxor    (%eax,%ebp,8),%mm1
-        andl    $15,%ebx
-        pxor    (%esi,%ecx,1),%mm1
-        movd    %mm0,%ebp
-        pxor    %mm2,%mm0
-        psrlq   $4,%mm0
-        movq    %mm1,%mm2
-        psrlq   $4,%mm1
-        pxor    8(%esi,%edx,1),%mm0
-        movb    9(%edi),%cl
-        psllq   $60,%mm2
-        pxor    (%eax,%ebx,8),%mm1
-        andl    $15,%ebp
-        pxor    (%esi,%edx,1),%mm1
-        movl    %ecx,%edx
-        movd    %mm0,%ebx
-        pxor    %mm2,%mm0
-        shlb    $4,%cl
-        psrlq   $4,%mm0
-        movq    %mm1,%mm2
-        psrlq   $4,%mm1
-        pxor    8(%esi,%ecx,1),%mm0
-        psllq   $60,%mm2
-        andl    $240,%edx
-        pxor    (%eax,%ebp,8),%mm1
-        andl    $15,%ebx
-        pxor    (%esi,%ecx,1),%mm1
-        movd    %mm0,%ebp
-        pxor    %mm2,%mm0
-        psrlq   $4,%mm0
-        movq    %mm1,%mm2
-        psrlq   $4,%mm1
-        pxor    8(%esi,%edx,1),%mm0
-        movb    8(%edi),%cl
-        psllq   $60,%mm2
-        pxor    (%eax,%ebx,8),%mm1
-        andl    $15,%ebp
-        pxor    (%esi,%edx,1),%mm1
-        movl    %ecx,%edx
-        movd    %mm0,%ebx
-        pxor    %mm2,%mm0
-        shlb    $4,%cl
-        psrlq   $4,%mm0
-        movq    %mm1,%mm2
-        psrlq   $4,%mm1
-        pxor    8(%esi,%ecx,1),%mm0
-        psllq   $60,%mm2
-        andl    $240,%edx
-        pxor    (%eax,%ebp,8),%mm1
-        andl    $15,%ebx
-        pxor    (%esi,%ecx,1),%mm1
-        movd    %mm0,%ebp
-        pxor    %mm2,%mm0
-        psrlq   $4,%mm0
-        movq    %mm1,%mm2
-        psrlq   $4,%mm1
-        pxor    8(%esi,%edx,1),%mm0
-        movb    7(%edi),%cl
-        psllq   $60,%mm2
-        pxor    (%eax,%ebx,8),%mm1
-        andl    $15,%ebp
-        pxor    (%esi,%edx,1),%mm1
-        movl    %ecx,%edx
-        movd    %mm0,%ebx
-        pxor    %mm2,%mm0
-        shlb    $4,%cl
-        psrlq   $4,%mm0
-        movq    %mm1,%mm2
-        psrlq   $4,%mm1
-        pxor    8(%esi,%ecx,1),%mm0
-        psllq   $60,%mm2
-        andl    $240,%edx
-        pxor    (%eax,%ebp,8),%mm1
-        andl    $15,%ebx
-        pxor    (%esi,%ecx,1),%mm1
-        movd    %mm0,%ebp
-        pxor    %mm2,%mm0
-        psrlq   $4,%mm0
-        movq    %mm1,%mm2
-        psrlq   $4,%mm1
-        pxor    8(%esi,%edx,1),%mm0
-        movb    6(%edi),%cl
-        psllq   $60,%mm2
-        pxor    (%eax,%ebx,8),%mm1
-        andl    $15,%ebp
-        pxor    (%esi,%edx,1),%mm1
-        movl    %ecx,%edx
-        movd    %mm0,%ebx
-        pxor    %mm2,%mm0
-        shlb    $4,%cl
-        psrlq   $4,%mm0
-        movq    %mm1,%mm2
-        psrlq   $4,%mm1
-        pxor    8(%esi,%ecx,1),%mm0
-        psllq   $60,%mm2
-        andl    $240,%edx
-        pxor    (%eax,%ebp,8),%mm1
-        andl    $15,%ebx
-        pxor    (%esi,%ecx,1),%mm1
-        movd    %mm0,%ebp
-        pxor    %mm2,%mm0
-        psrlq   $4,%mm0
-        movq    %mm1,%mm2
-        psrlq   $4,%mm1
-        pxor    8(%esi,%edx,1),%mm0
-        movb    5(%edi),%cl
-        psllq   $60,%mm2
-        pxor    (%eax,%ebx,8),%mm1
-        andl    $15,%ebp
-        pxor    (%esi,%edx,1),%mm1
-        movl    %ecx,%edx
-        movd    %mm0,%ebx
-        pxor    %mm2,%mm0
-        shlb    $4,%cl
-        psrlq   $4,%mm0
-        movq    %mm1,%mm2
-        psrlq   $4,%mm1
-        pxor    8(%esi,%ecx,1),%mm0
-        psllq   $60,%mm2
-        andl    $240,%edx
-        pxor    (%eax,%ebp,8),%mm1
-        andl    $15,%ebx
-        pxor    (%esi,%ecx,1),%mm1
-        movd    %mm0,%ebp
-        pxor    %mm2,%mm0
-        psrlq   $4,%mm0
-        movq    %mm1,%mm2
-        psrlq   $4,%mm1
-        pxor    8(%esi,%edx,1),%mm0
-        movb    4(%edi),%cl
-        psllq   $60,%mm2
-        pxor    (%eax,%ebx,8),%mm1
-        andl    $15,%ebp
-        pxor    (%esi,%edx,1),%mm1
-        movl    %ecx,%edx
-        movd    %mm0,%ebx
-        pxor    %mm2,%mm0
-        shlb    $4,%cl
-        psrlq   $4,%mm0
-        movq    %mm1,%mm2
-        psrlq   $4,%mm1
-        pxor    8(%esi,%ecx,1),%mm0
-        psllq   $60,%mm2
-        andl    $240,%edx
-        pxor    (%eax,%ebp,8),%mm1
-        andl    $15,%ebx
-        pxor    (%esi,%ecx,1),%mm1
-        movd    %mm0,%ebp
-        pxor    %mm2,%mm0
-        psrlq   $4,%mm0
-        movq    %mm1,%mm2
-        psrlq   $4,%mm1
-        pxor    8(%esi,%edx,1),%mm0
-        movb    3(%edi),%cl
-        psllq   $60,%mm2
-        pxor    (%eax,%ebx,8),%mm1
-        andl    $15,%ebp
-        pxor    (%esi,%edx,1),%mm1
-        movl    %ecx,%edx
-        movd    %mm0,%ebx
-        pxor    %mm2,%mm0
-        shlb    $4,%cl
-        psrlq   $4,%mm0
-        movq    %mm1,%mm2
-        psrlq   $4,%mm1
-        pxor    8(%esi,%ecx,1),%mm0
-        psllq   $60,%mm2
-        andl    $240,%edx
-        pxor    (%eax,%ebp,8),%mm1
-        andl    $15,%ebx
-        pxor    (%esi,%ecx,1),%mm1
-        movd    %mm0,%ebp
-        pxor    %mm2,%mm0
-        psrlq   $4,%mm0
-        movq    %mm1,%mm2
-        psrlq   $4,%mm1
-        pxor    8(%esi,%edx,1),%mm0
-        movb    2(%edi),%cl
-        psllq   $60,%mm2
-        pxor    (%eax,%ebx,8),%mm1
-        andl    $15,%ebp
-        pxor    (%esi,%edx,1),%mm1
-        movl    %ecx,%edx
-        movd    %mm0,%ebx
-        pxor    %mm2,%mm0
-        shlb    $4,%cl
-        psrlq   $4,%mm0
-        movq    %mm1,%mm2
-        psrlq   $4,%mm1
-        pxor    8(%esi,%ecx,1),%mm0
-        psllq   $60,%mm2
-        andl    $240,%edx
-        pxor    (%eax,%ebp,8),%mm1
-        andl    $15,%ebx
-        pxor    (%esi,%ecx,1),%mm1
-        movd    %mm0,%ebp
-        pxor    %mm2,%mm0
-        psrlq   $4,%mm0
-        movq    %mm1,%mm2
-        psrlq   $4,%mm1
-        pxor    8(%esi,%edx,1),%mm0
-        movb    1(%edi),%cl
-        psllq   $60,%mm2
-        pxor    (%eax,%ebx,8),%mm1
-        andl    $15,%ebp
-        pxor    (%esi,%edx,1),%mm1
-        movl    %ecx,%edx
-        movd    %mm0,%ebx
-        pxor    %mm2,%mm0
-        shlb    $4,%cl
-        psrlq   $4,%mm0
-        movq    %mm1,%mm2
-        psrlq   $4,%mm1
-        pxor    8(%esi,%ecx,1),%mm0
-        psllq   $60,%mm2
-        andl    $240,%edx
-        pxor    (%eax,%ebp,8),%mm1
-        andl    $15,%ebx
-        pxor    (%esi,%ecx,1),%mm1
-        movd    %mm0,%ebp
-        pxor    %mm2,%mm0
-        psrlq   $4,%mm0
-        movq    %mm1,%mm2
-        psrlq   $4,%mm1
-        pxor    8(%esi,%edx,1),%mm0
-        movb    (%edi),%cl
-        psllq   $60,%mm2
-        pxor    (%eax,%ebx,8),%mm1
-        andl    $15,%ebp
-        pxor    (%esi,%edx,1),%mm1
-        movl    %ecx,%edx
-        movd    %mm0,%ebx
-        pxor    %mm2,%mm0
-        shlb    $4,%cl
-        psrlq   $4,%mm0
-        movq    %mm1,%mm2
-        psrlq   $4,%mm1
-        pxor    8(%esi,%ecx,1),%mm0
-        psllq   $60,%mm2
-        andl    $240,%edx
-        pxor    (%eax,%ebp,8),%mm1
-        andl    $15,%ebx
-        pxor    (%esi,%ecx,1),%mm1
-        movd    %mm0,%ebp
-        pxor    %mm2,%mm0
-        psrlq   $4,%mm0
-        movq    %mm1,%mm2
-        psrlq   $4,%mm1
-        pxor    8(%esi,%edx,1),%mm0
-        psllq   $60,%mm2
-        pxor    (%eax,%ebx,8),%mm1
-        andl    $15,%ebp
-        pxor    (%esi,%edx,1),%mm1
-        movd    %mm0,%ebx
-        pxor    %mm2,%mm0
-        movl    4(%eax,%ebp,8),%edi
-        psrlq   $32,%mm0
-        movd    %mm1,%edx
-        psrlq   $32,%mm1
-        movd    %mm0,%ecx
-        movd    %mm1,%ebp
-        shll    $4,%edi
-        bswap   %ebx
-        bswap   %edx
-        bswap   %ecx
-        xorl    %edi,%ebp
-        bswap   %ebp
-        ret
-.size   _mmx_gmult_4bit_inner,.-_mmx_gmult_4bit_inner
-.globl  gcm_gmult_4bit_mmx
-.type   gcm_gmult_4bit_mmx, at function
-.align  16
-gcm_gmult_4bit_mmx:
-.L_gcm_gmult_4bit_mmx_begin:
-        pushl   %ebp
-        pushl   %ebx
-        pushl   %esi
-        pushl   %edi
-        movl    20(%esp),%edi
-        movl    24(%esp),%esi
-        call    .L005pic_point
-.L005pic_point:
-        popl    %eax
-        leal    .Lrem_4bit-.L005pic_point(%eax),%eax
-        movzbl  15(%edi),%ebx
-        call    _mmx_gmult_4bit_inner
-        movl    20(%esp),%edi
-        emms
-        movl    %ebx,12(%edi)
-        movl    %edx,4(%edi)
-        movl    %ecx,8(%edi)
-        movl    %ebp,(%edi)
-        popl    %edi
-        popl    %esi
-        popl    %ebx
-        popl    %ebp
-        ret
-.size   gcm_gmult_4bit_mmx,.-.L_gcm_gmult_4bit_mmx_begin
-.globl  gcm_ghash_4bit_mmx
-.type   gcm_ghash_4bit_mmx, at function
-.align  16
-gcm_ghash_4bit_mmx:
-.L_gcm_ghash_4bit_mmx_begin:
-        pushl   %ebp
-        pushl   %ebx
-        pushl   %esi
-        pushl   %edi
-        movl    20(%esp),%ebp
-        movl    24(%esp),%esi
-        movl    28(%esp),%edi
-        movl    32(%esp),%ecx
-        call    .L006pic_point
-.L006pic_point:
-        popl    %eax
-        leal    .Lrem_4bit-.L006pic_point(%eax),%eax
-        addl    %edi,%ecx
-        movl    %ecx,32(%esp)
-        subl    $20,%esp
-        movl    12(%ebp),%ebx
-        movl    4(%ebp),%edx
-        movl    8(%ebp),%ecx
-        movl    (%ebp),%ebp
-        jmp     .L007mmx_outer_loop
-.align  16
-.L007mmx_outer_loop:
-        xorl    12(%edi),%ebx
-        xorl    4(%edi),%edx
-        xorl    8(%edi),%ecx
-        xorl    (%edi),%ebp
-        movl    %edi,48(%esp)
-        movl    %ebx,12(%esp)
-        movl    %edx,4(%esp)
-        movl    %ecx,8(%esp)
-        movl    %ebp,(%esp)
-        movl    %esp,%edi
-        shrl    $24,%ebx
-        call    _mmx_gmult_4bit_inner
-        movl    48(%esp),%edi
-        leal    16(%edi),%edi
-        cmpl    52(%esp),%edi
-        jb      .L007mmx_outer_loop
-        movl    40(%esp),%edi
-        emms
-        movl    %ebx,12(%edi)
-        movl    %edx,4(%edi)
-        movl    %ecx,8(%edi)
-        movl    %ebp,(%edi)
-        addl    $20,%esp
-        popl    %edi
-        popl    %esi
-        popl    %ebx
-        popl    %ebp
-        ret
-.size   gcm_ghash_4bit_mmx,.-.L_gcm_ghash_4bit_mmx_begin
-.align  64
-.Lrem_4bit:
-.long   0,0,0,29491200,0,58982400,0,38141952
-.long   0,117964800,0,113901568,0,76283904,0,88997888
-.long   0,235929600,0,265420800,0,227803136,0,206962688
-.long   0,152567808,0,148504576,0,177995776,0,190709760
-.byte   71,72,65,83,72,32,102,111,114,32,120,56,54,44,32,67
-.byte   82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112
-.byte   112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62
-.byte   0
diff --git a/CryptoPkg/Library/OpensslLib/IA32Gcc/crypto/sha/sha1-586.S b/CryptoPkg/Library/OpensslLib/IA32Gcc/crypto/sha/sha1-586.S
deleted file mode 100644
index 0b22a3e5538f..000000000000
--- a/CryptoPkg/Library/OpensslLib/IA32Gcc/crypto/sha/sha1-586.S
+++ /dev/null
@@ -1,1389 +0,0 @@
-# WARNING: do not edit!
-# Generated from openssl/crypto/sha/asm/sha1-586.pl
-#
-# Copyright 1998-2020 The OpenSSL Project Authors. All Rights Reserved.
-#
-# Licensed under the OpenSSL license (the "License").  You may not use
-# this file except in compliance with the License.  You can obtain a copy
-# in the file LICENSE in the source distribution or at
-# https://www.openssl.org/source/license.html
-
-.text
-.globl  sha1_block_data_order
-.type   sha1_block_data_order, at function
-.align  16
-sha1_block_data_order:
-.L_sha1_block_data_order_begin:
-        pushl   %ebp
-        pushl   %ebx
-        pushl   %esi
-        pushl   %edi
-        movl    20(%esp),%ebp
-        movl    24(%esp),%esi
-        movl    28(%esp),%eax
-        subl    $76,%esp
-        shll    $6,%eax
-        addl    %esi,%eax
-        movl    %eax,104(%esp)
-        movl    16(%ebp),%edi
-        jmp     .L000loop
-.align  16
-.L000loop:
-        movl    (%esi),%eax
-        movl    4(%esi),%ebx
-        movl    8(%esi),%ecx
-        movl    12(%esi),%edx
-        bswap   %eax
-        bswap   %ebx
-        bswap   %ecx
-        bswap   %edx
-        movl    %eax,(%esp)
-        movl    %ebx,4(%esp)
-        movl    %ecx,8(%esp)
-        movl    %edx,12(%esp)
-        movl    16(%esi),%eax
-        movl    20(%esi),%ebx
-        movl    24(%esi),%ecx
-        movl    28(%esi),%edx
-        bswap   %eax
-        bswap   %ebx
-        bswap   %ecx
-        bswap   %edx
-        movl    %eax,16(%esp)
-        movl    %ebx,20(%esp)
-        movl    %ecx,24(%esp)
-        movl    %edx,28(%esp)
-        movl    32(%esi),%eax
-        movl    36(%esi),%ebx
-        movl    40(%esi),%ecx
-        movl    44(%esi),%edx
-        bswap   %eax
-        bswap   %ebx
-        bswap   %ecx
-        bswap   %edx
-        movl    %eax,32(%esp)
-        movl    %ebx,36(%esp)
-        movl    %ecx,40(%esp)
-        movl    %edx,44(%esp)
-        movl    48(%esi),%eax
-        movl    52(%esi),%ebx
-        movl    56(%esi),%ecx
-        movl    60(%esi),%edx
-        bswap   %eax
-        bswap   %ebx
-        bswap   %ecx
-        bswap   %edx
-        movl    %eax,48(%esp)
-        movl    %ebx,52(%esp)
-        movl    %ecx,56(%esp)
-        movl    %edx,60(%esp)
-        movl    %esi,100(%esp)
-        movl    (%ebp),%eax
-        movl    4(%ebp),%ebx
-        movl    8(%ebp),%ecx
-        movl    12(%ebp),%edx
-
-        movl    %ecx,%esi
-        movl    %eax,%ebp
-        roll    $5,%ebp
-        xorl    %edx,%esi
-        addl    %edi,%ebp
-        movl    (%esp),%edi
-        andl    %ebx,%esi
-        rorl    $2,%ebx
-        xorl    %edx,%esi
-        leal    1518500249(%ebp,%edi,1),%ebp
-        addl    %esi,%ebp
-
-        movl    %ebx,%edi
-        movl    %ebp,%esi
-        roll    $5,%ebp
-        xorl    %ecx,%edi
-        addl    %edx,%ebp
-        movl    4(%esp),%edx
-        andl    %eax,%edi
-        rorl    $2,%eax
-        xorl    %ecx,%edi
-        leal    1518500249(%ebp,%edx,1),%ebp
-        addl    %edi,%ebp
-
-        movl    %eax,%edx
-        movl    %ebp,%edi
-        roll    $5,%ebp
-        xorl    %ebx,%edx
-        addl    %ecx,%ebp
-        movl    8(%esp),%ecx
-        andl    %esi,%edx
-        rorl    $2,%esi
-        xorl    %ebx,%edx
-        leal    1518500249(%ebp,%ecx,1),%ebp
-        addl    %edx,%ebp
-
-        movl    %esi,%ecx
-        movl    %ebp,%edx
-        roll    $5,%ebp
-        xorl    %eax,%ecx
-        addl    %ebx,%ebp
-        movl    12(%esp),%ebx
-        andl    %edi,%ecx
-        rorl    $2,%edi
-        xorl    %eax,%ecx
-        leal    1518500249(%ebp,%ebx,1),%ebp
-        addl    %ecx,%ebp
-
-        movl    %edi,%ebx
-        movl    %ebp,%ecx
-        roll    $5,%ebp
-        xorl    %esi,%ebx
-        addl    %eax,%ebp
-        movl    16(%esp),%eax
-        andl    %edx,%ebx
-        rorl    $2,%edx
-        xorl    %esi,%ebx
-        leal    1518500249(%ebp,%eax,1),%ebp
-        addl    %ebx,%ebp
-
-        movl    %edx,%eax
-        movl    %ebp,%ebx
-        roll    $5,%ebp
-        xorl    %edi,%eax
-        addl    %esi,%ebp
-        movl    20(%esp),%esi
-        andl    %ecx,%eax
-        rorl    $2,%ecx
-        xorl    %edi,%eax
-        leal    1518500249(%ebp,%esi,1),%ebp
-        addl    %eax,%ebp
-
-        movl    %ecx,%esi
-        movl    %ebp,%eax
-        roll    $5,%ebp
-        xorl    %edx,%esi
-        addl    %edi,%ebp
-        movl    24(%esp),%edi
-        andl    %ebx,%esi
-        rorl    $2,%ebx
-        xorl    %edx,%esi
-        leal    1518500249(%ebp,%edi,1),%ebp
-        addl    %esi,%ebp
-
-        movl    %ebx,%edi
-        movl    %ebp,%esi
-        roll    $5,%ebp
-        xorl    %ecx,%edi
-        addl    %edx,%ebp
-        movl    28(%esp),%edx
-        andl    %eax,%edi
-        rorl    $2,%eax
-        xorl    %ecx,%edi
-        leal    1518500249(%ebp,%edx,1),%ebp
-        addl    %edi,%ebp
-
-        movl    %eax,%edx
-        movl    %ebp,%edi
-        roll    $5,%ebp
-        xorl    %ebx,%edx
-        addl    %ecx,%ebp
-        movl    32(%esp),%ecx
-        andl    %esi,%edx
-        rorl    $2,%esi
-        xorl    %ebx,%edx
-        leal    1518500249(%ebp,%ecx,1),%ebp
-        addl    %edx,%ebp
-
-        movl    %esi,%ecx
-        movl    %ebp,%edx
-        roll    $5,%ebp
-        xorl    %eax,%ecx
-        addl    %ebx,%ebp
-        movl    36(%esp),%ebx
-        andl    %edi,%ecx
-        rorl    $2,%edi
-        xorl    %eax,%ecx
-        leal    1518500249(%ebp,%ebx,1),%ebp
-        addl    %ecx,%ebp
-
-        movl    %edi,%ebx
-        movl    %ebp,%ecx
-        roll    $5,%ebp
-        xorl    %esi,%ebx
-        addl    %eax,%ebp
-        movl    40(%esp),%eax
-        andl    %edx,%ebx
-        rorl    $2,%edx
-        xorl    %esi,%ebx
-        leal    1518500249(%ebp,%eax,1),%ebp
-        addl    %ebx,%ebp
-
-        movl    %edx,%eax
-        movl    %ebp,%ebx
-        roll    $5,%ebp
-        xorl    %edi,%eax
-        addl    %esi,%ebp
-        movl    44(%esp),%esi
-        andl    %ecx,%eax
-        rorl    $2,%ecx
-        xorl    %edi,%eax
-        leal    1518500249(%ebp,%esi,1),%ebp
-        addl    %eax,%ebp
-
-        movl    %ecx,%esi
-        movl    %ebp,%eax
-        roll    $5,%ebp
-        xorl    %edx,%esi
-        addl    %edi,%ebp
-        movl    48(%esp),%edi
-        andl    %ebx,%esi
-        rorl    $2,%ebx
-        xorl    %edx,%esi
-        leal    1518500249(%ebp,%edi,1),%ebp
-        addl    %esi,%ebp
-
-        movl    %ebx,%edi
-        movl    %ebp,%esi
-        roll    $5,%ebp
-        xorl    %ecx,%edi
-        addl    %edx,%ebp
-        movl    52(%esp),%edx
-        andl    %eax,%edi
-        rorl    $2,%eax
-        xorl    %ecx,%edi
-        leal    1518500249(%ebp,%edx,1),%ebp
-        addl    %edi,%ebp
-
-        movl    %eax,%edx
-        movl    %ebp,%edi
-        roll    $5,%ebp
-        xorl    %ebx,%edx
-        addl    %ecx,%ebp
-        movl    56(%esp),%ecx
-        andl    %esi,%edx
-        rorl    $2,%esi
-        xorl    %ebx,%edx
-        leal    1518500249(%ebp,%ecx,1),%ebp
-        addl    %edx,%ebp
-
-        movl    %esi,%ecx
-        movl    %ebp,%edx
-        roll    $5,%ebp
-        xorl    %eax,%ecx
-        addl    %ebx,%ebp
-        movl    60(%esp),%ebx
-        andl    %edi,%ecx
-        rorl    $2,%edi
-        xorl    %eax,%ecx
-        leal    1518500249(%ebp,%ebx,1),%ebp
-        movl    (%esp),%ebx
-        addl    %ebp,%ecx
-
-        movl    %edi,%ebp
-        xorl    8(%esp),%ebx
-        xorl    %esi,%ebp
-        xorl    32(%esp),%ebx
-        andl    %edx,%ebp
-        xorl    52(%esp),%ebx
-        roll    $1,%ebx
-        xorl    %esi,%ebp
-        addl    %ebp,%eax
-        movl    %ecx,%ebp
-        rorl    $2,%edx
-        movl    %ebx,(%esp)
-        roll    $5,%ebp
-        leal    1518500249(%ebx,%eax,1),%ebx
-        movl    4(%esp),%eax
-        addl    %ebp,%ebx
-
-        movl    %edx,%ebp
-        xorl    12(%esp),%eax
-        xorl    %edi,%ebp
-        xorl    36(%esp),%eax
-        andl    %ecx,%ebp
-        xorl    56(%esp),%eax
-        roll    $1,%eax
-        xorl    %edi,%ebp
-        addl    %ebp,%esi
-        movl    %ebx,%ebp
-        rorl    $2,%ecx
-        movl    %eax,4(%esp)
-        roll    $5,%ebp
-        leal    1518500249(%eax,%esi,1),%eax
-        movl    8(%esp),%esi
-        addl    %ebp,%eax
-
-        movl    %ecx,%ebp
-        xorl    16(%esp),%esi
-        xorl    %edx,%ebp
-        xorl    40(%esp),%esi
-        andl    %ebx,%ebp
-        xorl    60(%esp),%esi
-        roll    $1,%esi
-        xorl    %edx,%ebp
-        addl    %ebp,%edi
-        movl    %eax,%ebp
-        rorl    $2,%ebx
-        movl    %esi,8(%esp)
-        roll    $5,%ebp
-        leal    1518500249(%esi,%edi,1),%esi
-        movl    12(%esp),%edi
-        addl    %ebp,%esi
-
-        movl    %ebx,%ebp
-        xorl    20(%esp),%edi
-        xorl    %ecx,%ebp
-        xorl    44(%esp),%edi
-        andl    %eax,%ebp
-        xorl    (%esp),%edi
-        roll    $1,%edi
-        xorl    %ecx,%ebp
-        addl    %ebp,%edx
-        movl    %esi,%ebp
-        rorl    $2,%eax
-        movl    %edi,12(%esp)
-        roll    $5,%ebp
-        leal    1518500249(%edi,%edx,1),%edi
-        movl    16(%esp),%edx
-        addl    %ebp,%edi
-
-        movl    %esi,%ebp
-        xorl    24(%esp),%edx
-        xorl    %eax,%ebp
-        xorl    48(%esp),%edx
-        xorl    %ebx,%ebp
-        xorl    4(%esp),%edx
-        roll    $1,%edx
-        addl    %ebp,%ecx
-        rorl    $2,%esi
-        movl    %edi,%ebp
-        roll    $5,%ebp
-        movl    %edx,16(%esp)
-        leal    1859775393(%edx,%ecx,1),%edx
-        movl    20(%esp),%ecx
-        addl    %ebp,%edx
-
-        movl    %edi,%ebp
-        xorl    28(%esp),%ecx
-        xorl    %esi,%ebp
-        xorl    52(%esp),%ecx
-        xorl    %eax,%ebp
-        xorl    8(%esp),%ecx
-        roll    $1,%ecx
-        addl    %ebp,%ebx
-        rorl    $2,%edi
-        movl    %edx,%ebp
-        roll    $5,%ebp
-        movl    %ecx,20(%esp)
-        leal    1859775393(%ecx,%ebx,1),%ecx
-        movl    24(%esp),%ebx
-        addl    %ebp,%ecx
-
-        movl    %edx,%ebp
-        xorl    32(%esp),%ebx
-        xorl    %edi,%ebp
-        xorl    56(%esp),%ebx
-        xorl    %esi,%ebp
-        xorl    12(%esp),%ebx
-        roll    $1,%ebx
-        addl    %ebp,%eax
-        rorl    $2,%edx
-        movl    %ecx,%ebp
-        roll    $5,%ebp
-        movl    %ebx,24(%esp)
-        leal    1859775393(%ebx,%eax,1),%ebx
-        movl    28(%esp),%eax
-        addl    %ebp,%ebx
-
-        movl    %ecx,%ebp
-        xorl    36(%esp),%eax
-        xorl    %edx,%ebp
-        xorl    60(%esp),%eax
-        xorl    %edi,%ebp
-        xorl    16(%esp),%eax
-        roll    $1,%eax
-        addl    %ebp,%esi
-        rorl    $2,%ecx
-        movl    %ebx,%ebp
-        roll    $5,%ebp
-        movl    %eax,28(%esp)
-        leal    1859775393(%eax,%esi,1),%eax
-        movl    32(%esp),%esi
-        addl    %ebp,%eax
-
-        movl    %ebx,%ebp
-        xorl    40(%esp),%esi
-        xorl    %ecx,%ebp
-        xorl    (%esp),%esi
-        xorl    %edx,%ebp
-        xorl    20(%esp),%esi
-        roll    $1,%esi
-        addl    %ebp,%edi
-        rorl    $2,%ebx
-        movl    %eax,%ebp
-        roll    $5,%ebp
-        movl    %esi,32(%esp)
-        leal    1859775393(%esi,%edi,1),%esi
-        movl    36(%esp),%edi
-        addl    %ebp,%esi
-
-        movl    %eax,%ebp
-        xorl    44(%esp),%edi
-        xorl    %ebx,%ebp
-        xorl    4(%esp),%edi
-        xorl    %ecx,%ebp
-        xorl    24(%esp),%edi
-        roll    $1,%edi
-        addl    %ebp,%edx
-        rorl    $2,%eax
-        movl    %esi,%ebp
-        roll    $5,%ebp
-        movl    %edi,36(%esp)
-        leal    1859775393(%edi,%edx,1),%edi
-        movl    40(%esp),%edx
-        addl    %ebp,%edi
-
-        movl    %esi,%ebp
-        xorl    48(%esp),%edx
-        xorl    %eax,%ebp
-        xorl    8(%esp),%edx
-        xorl    %ebx,%ebp
-        xorl    28(%esp),%edx
-        roll    $1,%edx
-        addl    %ebp,%ecx
-        rorl    $2,%esi
-        movl    %edi,%ebp
-        roll    $5,%ebp
-        movl    %edx,40(%esp)
-        leal    1859775393(%edx,%ecx,1),%edx
-        movl    44(%esp),%ecx
-        addl    %ebp,%edx
-
-        movl    %edi,%ebp
-        xorl    52(%esp),%ecx
-        xorl    %esi,%ebp
-        xorl    12(%esp),%ecx
-        xorl    %eax,%ebp
-        xorl    32(%esp),%ecx
-        roll    $1,%ecx
-        addl    %ebp,%ebx
-        rorl    $2,%edi
-        movl    %edx,%ebp
-        roll    $5,%ebp
-        movl    %ecx,44(%esp)
-        leal    1859775393(%ecx,%ebx,1),%ecx
-        movl    48(%esp),%ebx
-        addl    %ebp,%ecx
-
-        movl    %edx,%ebp
-        xorl    56(%esp),%ebx
-        xorl    %edi,%ebp
-        xorl    16(%esp),%ebx
-        xorl    %esi,%ebp
-        xorl    36(%esp),%ebx
-        roll    $1,%ebx
-        addl    %ebp,%eax
-        rorl    $2,%edx
-        movl    %ecx,%ebp
-        roll    $5,%ebp
-        movl    %ebx,48(%esp)
-        leal    1859775393(%ebx,%eax,1),%ebx
-        movl    52(%esp),%eax
-        addl    %ebp,%ebx
-
-        movl    %ecx,%ebp
-        xorl    60(%esp),%eax
-        xorl    %edx,%ebp
-        xorl    20(%esp),%eax
-        xorl    %edi,%ebp
-        xorl    40(%esp),%eax
-        roll    $1,%eax
-        addl    %ebp,%esi
-        rorl    $2,%ecx
-        movl    %ebx,%ebp
-        roll    $5,%ebp
-        movl    %eax,52(%esp)
-        leal    1859775393(%eax,%esi,1),%eax
-        movl    56(%esp),%esi
-        addl    %ebp,%eax
-
-        movl    %ebx,%ebp
-        xorl    (%esp),%esi
-        xorl    %ecx,%ebp
-        xorl    24(%esp),%esi
-        xorl    %edx,%ebp
-        xorl    44(%esp),%esi
-        roll    $1,%esi
-        addl    %ebp,%edi
-        rorl    $2,%ebx
-        movl    %eax,%ebp
-        roll    $5,%ebp
-        movl    %esi,56(%esp)
-        leal    1859775393(%esi,%edi,1),%esi
-        movl    60(%esp),%edi
-        addl    %ebp,%esi
-
-        movl    %eax,%ebp
-        xorl    4(%esp),%edi
-        xorl    %ebx,%ebp
-        xorl    28(%esp),%edi
-        xorl    %ecx,%ebp
-        xorl    48(%esp),%edi
-        roll    $1,%edi
-        addl    %ebp,%edx
-        rorl    $2,%eax
-        movl    %esi,%ebp
-        roll    $5,%ebp
-        movl    %edi,60(%esp)
-        leal    1859775393(%edi,%edx,1),%edi
-        movl    (%esp),%edx
-        addl    %ebp,%edi
-
-        movl    %esi,%ebp
-        xorl    8(%esp),%edx
-        xorl    %eax,%ebp
-        xorl    32(%esp),%edx
-        xorl    %ebx,%ebp
-        xorl    52(%esp),%edx
-        roll    $1,%edx
-        addl    %ebp,%ecx
-        rorl    $2,%esi
-        movl    %edi,%ebp
-        roll    $5,%ebp
-        movl    %edx,(%esp)
-        leal    1859775393(%edx,%ecx,1),%edx
-        movl    4(%esp),%ecx
-        addl    %ebp,%edx
-
-        movl    %edi,%ebp
-        xorl    12(%esp),%ecx
-        xorl    %esi,%ebp
-        xorl    36(%esp),%ecx
-        xorl    %eax,%ebp
-        xorl    56(%esp),%ecx
-        roll    $1,%ecx
-        addl    %ebp,%ebx
-        rorl    $2,%edi
-        movl    %edx,%ebp
-        roll    $5,%ebp
-        movl    %ecx,4(%esp)
-        leal    1859775393(%ecx,%ebx,1),%ecx
-        movl    8(%esp),%ebx
-        addl    %ebp,%ecx
-
-        movl    %edx,%ebp
-        xorl    16(%esp),%ebx
-        xorl    %edi,%ebp
-        xorl    40(%esp),%ebx
-        xorl    %esi,%ebp
-        xorl    60(%esp),%ebx
-        roll    $1,%ebx
-        addl    %ebp,%eax
-        rorl    $2,%edx
-        movl    %ecx,%ebp
-        roll    $5,%ebp
-        movl    %ebx,8(%esp)
-        leal    1859775393(%ebx,%eax,1),%ebx
-        movl    12(%esp),%eax
-        addl    %ebp,%ebx
-
-        movl    %ecx,%ebp
-        xorl    20(%esp),%eax
-        xorl    %edx,%ebp
-        xorl    44(%esp),%eax
-        xorl    %edi,%ebp
-        xorl    (%esp),%eax
-        roll    $1,%eax
-        addl    %ebp,%esi
-        rorl    $2,%ecx
-        movl    %ebx,%ebp
-        roll    $5,%ebp
-        movl    %eax,12(%esp)
-        leal    1859775393(%eax,%esi,1),%eax
-        movl    16(%esp),%esi
-        addl    %ebp,%eax
-
-        movl    %ebx,%ebp
-        xorl    24(%esp),%esi
-        xorl    %ecx,%ebp
-        xorl    48(%esp),%esi
-        xorl    %edx,%ebp
-        xorl    4(%esp),%esi
-        roll    $1,%esi
-        addl    %ebp,%edi
-        rorl    $2,%ebx
-        movl    %eax,%ebp
-        roll    $5,%ebp
-        movl    %esi,16(%esp)
-        leal    1859775393(%esi,%edi,1),%esi
-        movl    20(%esp),%edi
-        addl    %ebp,%esi
-
-        movl    %eax,%ebp
-        xorl    28(%esp),%edi
-        xorl    %ebx,%ebp
-        xorl    52(%esp),%edi
-        xorl    %ecx,%ebp
-        xorl    8(%esp),%edi
-        roll    $1,%edi
-        addl    %ebp,%edx
-        rorl    $2,%eax
-        movl    %esi,%ebp
-        roll    $5,%ebp
-        movl    %edi,20(%esp)
-        leal    1859775393(%edi,%edx,1),%edi
-        movl    24(%esp),%edx
-        addl    %ebp,%edi
-
-        movl    %esi,%ebp
-        xorl    32(%esp),%edx
-        xorl    %eax,%ebp
-        xorl    56(%esp),%edx
-        xorl    %ebx,%ebp
-        xorl    12(%esp),%edx
-        roll    $1,%edx
-        addl    %ebp,%ecx
-        rorl    $2,%esi
-        movl    %edi,%ebp
-        roll    $5,%ebp
-        movl    %edx,24(%esp)
-        leal    1859775393(%edx,%ecx,1),%edx
-        movl    28(%esp),%ecx
-        addl    %ebp,%edx
-
-        movl    %edi,%ebp
-        xorl    36(%esp),%ecx
-        xorl    %esi,%ebp
-        xorl    60(%esp),%ecx
-        xorl    %eax,%ebp
-        xorl    16(%esp),%ecx
-        roll    $1,%ecx
-        addl    %ebp,%ebx
-        rorl    $2,%edi
-        movl    %edx,%ebp
-        roll    $5,%ebp
-        movl    %ecx,28(%esp)
-        leal    1859775393(%ecx,%ebx,1),%ecx
-        movl    32(%esp),%ebx
-        addl    %ebp,%ecx
-
-        movl    %edi,%ebp
-        xorl    40(%esp),%ebx
-        xorl    %esi,%ebp
-        xorl    (%esp),%ebx
-        andl    %edx,%ebp
-        xorl    20(%esp),%ebx
-        roll    $1,%ebx
-        addl    %eax,%ebp
-        rorl    $2,%edx
-        movl    %ecx,%eax
-        roll    $5,%eax
-        movl    %ebx,32(%esp)
-        leal    2400959708(%ebx,%ebp,1),%ebx
-        movl    %edi,%ebp
-        addl    %eax,%ebx
-        andl    %esi,%ebp
-        movl    36(%esp),%eax
-        addl    %ebp,%ebx
-
-        movl    %edx,%ebp
-        xorl    44(%esp),%eax
-        xorl    %edi,%ebp
-        xorl    4(%esp),%eax
-        andl    %ecx,%ebp
-        xorl    24(%esp),%eax
-        roll    $1,%eax
-        addl    %esi,%ebp
-        rorl    $2,%ecx
-        movl    %ebx,%esi
-        roll    $5,%esi
-        movl    %eax,36(%esp)
-        leal    2400959708(%eax,%ebp,1),%eax
-        movl    %edx,%ebp
-        addl    %esi,%eax
-        andl    %edi,%ebp
-        movl    40(%esp),%esi
-        addl    %ebp,%eax
-
-        movl    %ecx,%ebp
-        xorl    48(%esp),%esi
-        xorl    %edx,%ebp
-        xorl    8(%esp),%esi
-        andl    %ebx,%ebp
-        xorl    28(%esp),%esi
-        roll    $1,%esi
-        addl    %edi,%ebp
-        rorl    $2,%ebx
-        movl    %eax,%edi
-        roll    $5,%edi
-        movl    %esi,40(%esp)
-        leal    2400959708(%esi,%ebp,1),%esi
-        movl    %ecx,%ebp
-        addl    %edi,%esi
-        andl    %edx,%ebp
-        movl    44(%esp),%edi
-        addl    %ebp,%esi
-
-        movl    %ebx,%ebp
-        xorl    52(%esp),%edi
-        xorl    %ecx,%ebp
-        xorl    12(%esp),%edi
-        andl    %eax,%ebp
-        xorl    32(%esp),%edi
-        roll    $1,%edi
-        addl    %edx,%ebp
-        rorl    $2,%eax
-        movl    %esi,%edx
-        roll    $5,%edx
-        movl    %edi,44(%esp)
-        leal    2400959708(%edi,%ebp,1),%edi
-        movl    %ebx,%ebp
-        addl    %edx,%edi
-        andl    %ecx,%ebp
-        movl    48(%esp),%edx
-        addl    %ebp,%edi
-
-        movl    %eax,%ebp
-        xorl    56(%esp),%edx
-        xorl    %ebx,%ebp
-        xorl    16(%esp),%edx
-        andl    %esi,%ebp
-        xorl    36(%esp),%edx
-        roll    $1,%edx
-        addl    %ecx,%ebp
-        rorl    $2,%esi
-        movl    %edi,%ecx
-        roll    $5,%ecx
-        movl    %edx,48(%esp)
-        leal    2400959708(%edx,%ebp,1),%edx
-        movl    %eax,%ebp
-        addl    %ecx,%edx
-        andl    %ebx,%ebp
-        movl    52(%esp),%ecx
-        addl    %ebp,%edx
-
-        movl    %esi,%ebp
-        xorl    60(%esp),%ecx
-        xorl    %eax,%ebp
-        xorl    20(%esp),%ecx
-        andl    %edi,%ebp
-        xorl    40(%esp),%ecx
-        roll    $1,%ecx
-        addl    %ebx,%ebp
-        rorl    $2,%edi
-        movl    %edx,%ebx
-        roll    $5,%ebx
-        movl    %ecx,52(%esp)
-        leal    2400959708(%ecx,%ebp,1),%ecx
-        movl    %esi,%ebp
-        addl    %ebx,%ecx
-        andl    %eax,%ebp
-        movl    56(%esp),%ebx
-        addl    %ebp,%ecx
-
-        movl    %edi,%ebp
-        xorl    (%esp),%ebx
-        xorl    %esi,%ebp
-        xorl    24(%esp),%ebx
-        andl    %edx,%ebp
-        xorl    44(%esp),%ebx
-        roll    $1,%ebx
-        addl    %eax,%ebp
-        rorl    $2,%edx
-        movl    %ecx,%eax
-        roll    $5,%eax
-        movl    %ebx,56(%esp)
-        leal    2400959708(%ebx,%ebp,1),%ebx
-        movl    %edi,%ebp
-        addl    %eax,%ebx
-        andl    %esi,%ebp
-        movl    60(%esp),%eax
-        addl    %ebp,%ebx
-
-        movl    %edx,%ebp
-        xorl    4(%esp),%eax
-        xorl    %edi,%ebp
-        xorl    28(%esp),%eax
-        andl    %ecx,%ebp
-        xorl    48(%esp),%eax
-        roll    $1,%eax
-        addl    %esi,%ebp
-        rorl    $2,%ecx
-        movl    %ebx,%esi
-        roll    $5,%esi
-        movl    %eax,60(%esp)
-        leal    2400959708(%eax,%ebp,1),%eax
-        movl    %edx,%ebp
-        addl    %esi,%eax
-        andl    %edi,%ebp
-        movl    (%esp),%esi
-        addl    %ebp,%eax
-
-        movl    %ecx,%ebp
-        xorl    8(%esp),%esi
-        xorl    %edx,%ebp
-        xorl    32(%esp),%esi
-        andl    %ebx,%ebp
-        xorl    52(%esp),%esi
-        roll    $1,%esi
-        addl    %edi,%ebp
-        rorl    $2,%ebx
-        movl    %eax,%edi
-        roll    $5,%edi
-        movl    %esi,(%esp)
-        leal    2400959708(%esi,%ebp,1),%esi
-        movl    %ecx,%ebp
-        addl    %edi,%esi
-        andl    %edx,%ebp
-        movl    4(%esp),%edi
-        addl    %ebp,%esi
-
-        movl    %ebx,%ebp
-        xorl    12(%esp),%edi
-        xorl    %ecx,%ebp
-        xorl    36(%esp),%edi
-        andl    %eax,%ebp
-        xorl    56(%esp),%edi
-        roll    $1,%edi
-        addl    %edx,%ebp
-        rorl    $2,%eax
-        movl    %esi,%edx
-        roll    $5,%edx
-        movl    %edi,4(%esp)
-        leal    2400959708(%edi,%ebp,1),%edi
-        movl    %ebx,%ebp
-        addl    %edx,%edi
-        andl    %ecx,%ebp
-        movl    8(%esp),%edx
-        addl    %ebp,%edi
-
-        movl    %eax,%ebp
-        xorl    16(%esp),%edx
-        xorl    %ebx,%ebp
-        xorl    40(%esp),%edx
-        andl    %esi,%ebp
-        xorl    60(%esp),%edx
-        roll    $1,%edx
-        addl    %ecx,%ebp
-        rorl    $2,%esi
-        movl    %edi,%ecx
-        roll    $5,%ecx
-        movl    %edx,8(%esp)
-        leal    2400959708(%edx,%ebp,1),%edx
-        movl    %eax,%ebp
-        addl    %ecx,%edx
-        andl    %ebx,%ebp
-        movl    12(%esp),%ecx
-        addl    %ebp,%edx
-
-        movl    %esi,%ebp
-        xorl    20(%esp),%ecx
-        xorl    %eax,%ebp
-        xorl    44(%esp),%ecx
-        andl    %edi,%ebp
-        xorl    (%esp),%ecx
-        roll    $1,%ecx
-        addl    %ebx,%ebp
-        rorl    $2,%edi
-        movl    %edx,%ebx
-        roll    $5,%ebx
-        movl    %ecx,12(%esp)
-        leal    2400959708(%ecx,%ebp,1),%ecx
-        movl    %esi,%ebp
-        addl    %ebx,%ecx
-        andl    %eax,%ebp
-        movl    16(%esp),%ebx
-        addl    %ebp,%ecx
-
-        movl    %edi,%ebp
-        xorl    24(%esp),%ebx
-        xorl    %esi,%ebp
-        xorl    48(%esp),%ebx
-        andl    %edx,%ebp
-        xorl    4(%esp),%ebx
-        roll    $1,%ebx
-        addl    %eax,%ebp
-        rorl    $2,%edx
-        movl    %ecx,%eax
-        roll    $5,%eax
-        movl    %ebx,16(%esp)
-        leal    2400959708(%ebx,%ebp,1),%ebx
-        movl    %edi,%ebp
-        addl    %eax,%ebx
-        andl    %esi,%ebp
-        movl    20(%esp),%eax
-        addl    %ebp,%ebx
-
-        movl    %edx,%ebp
-        xorl    28(%esp),%eax
-        xorl    %edi,%ebp
-        xorl    52(%esp),%eax
-        andl    %ecx,%ebp
-        xorl    8(%esp),%eax
-        roll    $1,%eax
-        addl    %esi,%ebp
-        rorl    $2,%ecx
-        movl    %ebx,%esi
-        roll    $5,%esi
-        movl    %eax,20(%esp)
-        leal    2400959708(%eax,%ebp,1),%eax
-        movl    %edx,%ebp
-        addl    %esi,%eax
-        andl    %edi,%ebp
-        movl    24(%esp),%esi
-        addl    %ebp,%eax
-
-        movl    %ecx,%ebp
-        xorl    32(%esp),%esi
-        xorl    %edx,%ebp
-        xorl    56(%esp),%esi
-        andl    %ebx,%ebp
-        xorl    12(%esp),%esi
-        roll    $1,%esi
-        addl    %edi,%ebp
-        rorl    $2,%ebx
-        movl    %eax,%edi
-        roll    $5,%edi
-        movl    %esi,24(%esp)
-        leal    2400959708(%esi,%ebp,1),%esi
-        movl    %ecx,%ebp
-        addl    %edi,%esi
-        andl    %edx,%ebp
-        movl    28(%esp),%edi
-        addl    %ebp,%esi
-
-        movl    %ebx,%ebp
-        xorl    36(%esp),%edi
-        xorl    %ecx,%ebp
-        xorl    60(%esp),%edi
-        andl    %eax,%ebp
-        xorl    16(%esp),%edi
-        roll    $1,%edi
-        addl    %edx,%ebp
-        rorl    $2,%eax
-        movl    %esi,%edx
-        roll    $5,%edx
-        movl    %edi,28(%esp)
-        leal    2400959708(%edi,%ebp,1),%edi
-        movl    %ebx,%ebp
-        addl    %edx,%edi
-        andl    %ecx,%ebp
-        movl    32(%esp),%edx
-        addl    %ebp,%edi
-
-        movl    %eax,%ebp
-        xorl    40(%esp),%edx
-        xorl    %ebx,%ebp
-        xorl    (%esp),%edx
-        andl    %esi,%ebp
-        xorl    20(%esp),%edx
-        roll    $1,%edx
-        addl    %ecx,%ebp
-        rorl    $2,%esi
-        movl    %edi,%ecx
-        roll    $5,%ecx
-        movl    %edx,32(%esp)
-        leal    2400959708(%edx,%ebp,1),%edx
-        movl    %eax,%ebp
-        addl    %ecx,%edx
-        andl    %ebx,%ebp
-        movl    36(%esp),%ecx
-        addl    %ebp,%edx
-
-        movl    %esi,%ebp
-        xorl    44(%esp),%ecx
-        xorl    %eax,%ebp
-        xorl    4(%esp),%ecx
-        andl    %edi,%ebp
-        xorl    24(%esp),%ecx
-        roll    $1,%ecx
-        addl    %ebx,%ebp
-        rorl    $2,%edi
-        movl    %edx,%ebx
-        roll    $5,%ebx
-        movl    %ecx,36(%esp)
-        leal    2400959708(%ecx,%ebp,1),%ecx
-        movl    %esi,%ebp
-        addl    %ebx,%ecx
-        andl    %eax,%ebp
-        movl    40(%esp),%ebx
-        addl    %ebp,%ecx
-
-        movl    %edi,%ebp
-        xorl    48(%esp),%ebx
-        xorl    %esi,%ebp
-        xorl    8(%esp),%ebx
-        andl    %edx,%ebp
-        xorl    28(%esp),%ebx
-        roll    $1,%ebx
-        addl    %eax,%ebp
-        rorl    $2,%edx
-        movl    %ecx,%eax
-        roll    $5,%eax
-        movl    %ebx,40(%esp)
-        leal    2400959708(%ebx,%ebp,1),%ebx
-        movl    %edi,%ebp
-        addl    %eax,%ebx
-        andl    %esi,%ebp
-        movl    44(%esp),%eax
-        addl    %ebp,%ebx
-
-        movl    %edx,%ebp
-        xorl    52(%esp),%eax
-        xorl    %edi,%ebp
-        xorl    12(%esp),%eax
-        andl    %ecx,%ebp
-        xorl    32(%esp),%eax
-        roll    $1,%eax
-        addl    %esi,%ebp
-        rorl    $2,%ecx
-        movl    %ebx,%esi
-        roll    $5,%esi
-        movl    %eax,44(%esp)
-        leal    2400959708(%eax,%ebp,1),%eax
-        movl    %edx,%ebp
-        addl    %esi,%eax
-        andl    %edi,%ebp
-        movl    48(%esp),%esi
-        addl    %ebp,%eax
-
-        movl    %ebx,%ebp
-        xorl    56(%esp),%esi
-        xorl    %ecx,%ebp
-        xorl    16(%esp),%esi
-        xorl    %edx,%ebp
-        xorl    36(%esp),%esi
-        roll    $1,%esi
-        addl    %ebp,%edi
-        rorl    $2,%ebx
-        movl    %eax,%ebp
-        roll    $5,%ebp
-        movl    %esi,48(%esp)
-        leal    3395469782(%esi,%edi,1),%esi
-        movl    52(%esp),%edi
-        addl    %ebp,%esi
-
-        movl    %eax,%ebp
-        xorl    60(%esp),%edi
-        xorl    %ebx,%ebp
-        xorl    20(%esp),%edi
-        xorl    %ecx,%ebp
-        xorl    40(%esp),%edi
-        roll    $1,%edi
-        addl    %ebp,%edx
-        rorl    $2,%eax
-        movl    %esi,%ebp
-        roll    $5,%ebp
-        movl    %edi,52(%esp)
-        leal    3395469782(%edi,%edx,1),%edi
-        movl    56(%esp),%edx
-        addl    %ebp,%edi
-
-        movl    %esi,%ebp
-        xorl    (%esp),%edx
-        xorl    %eax,%ebp
-        xorl    24(%esp),%edx
-        xorl    %ebx,%ebp
-        xorl    44(%esp),%edx
-        roll    $1,%edx
-        addl    %ebp,%ecx
-        rorl    $2,%esi
-        movl    %edi,%ebp
-        roll    $5,%ebp
-        movl    %edx,56(%esp)
-        leal    3395469782(%edx,%ecx,1),%edx
-        movl    60(%esp),%ecx
-        addl    %ebp,%edx
-
-        movl    %edi,%ebp
-        xorl    4(%esp),%ecx
-        xorl    %esi,%ebp
-        xorl    28(%esp),%ecx
-        xorl    %eax,%ebp
-        xorl    48(%esp),%ecx
-        roll    $1,%ecx
-        addl    %ebp,%ebx
-        rorl    $2,%edi
-        movl    %edx,%ebp
-        roll    $5,%ebp
-        movl    %ecx,60(%esp)
-        leal    3395469782(%ecx,%ebx,1),%ecx
-        movl    (%esp),%ebx
-        addl    %ebp,%ecx
-
-        movl    %edx,%ebp
-        xorl    8(%esp),%ebx
-        xorl    %edi,%ebp
-        xorl    32(%esp),%ebx
-        xorl    %esi,%ebp
-        xorl    52(%esp),%ebx
-        roll    $1,%ebx
-        addl    %ebp,%eax
-        rorl    $2,%edx
-        movl    %ecx,%ebp
-        roll    $5,%ebp
-        movl    %ebx,(%esp)
-        leal    3395469782(%ebx,%eax,1),%ebx
-        movl    4(%esp),%eax
-        addl    %ebp,%ebx
-
-        movl    %ecx,%ebp
-        xorl    12(%esp),%eax
-        xorl    %edx,%ebp
-        xorl    36(%esp),%eax
-        xorl    %edi,%ebp
-        xorl    56(%esp),%eax
-        roll    $1,%eax
-        addl    %ebp,%esi
-        rorl    $2,%ecx
-        movl    %ebx,%ebp
-        roll    $5,%ebp
-        movl    %eax,4(%esp)
-        leal    3395469782(%eax,%esi,1),%eax
-        movl    8(%esp),%esi
-        addl    %ebp,%eax
-
-        movl    %ebx,%ebp
-        xorl    16(%esp),%esi
-        xorl    %ecx,%ebp
-        xorl    40(%esp),%esi
-        xorl    %edx,%ebp
-        xorl    60(%esp),%esi
-        roll    $1,%esi
-        addl    %ebp,%edi
-        rorl    $2,%ebx
-        movl    %eax,%ebp
-        roll    $5,%ebp
-        movl    %esi,8(%esp)
-        leal    3395469782(%esi,%edi,1),%esi
-        movl    12(%esp),%edi
-        addl    %ebp,%esi
-
-        movl    %eax,%ebp
-        xorl    20(%esp),%edi
-        xorl    %ebx,%ebp
-        xorl    44(%esp),%edi
-        xorl    %ecx,%ebp
-        xorl    (%esp),%edi
-        roll    $1,%edi
-        addl    %ebp,%edx
-        rorl    $2,%eax
-        movl    %esi,%ebp
-        roll    $5,%ebp
-        movl    %edi,12(%esp)
-        leal    3395469782(%edi,%edx,1),%edi
-        movl    16(%esp),%edx
-        addl    %ebp,%edi
-
-        movl    %esi,%ebp
-        xorl    24(%esp),%edx
-        xorl    %eax,%ebp
-        xorl    48(%esp),%edx
-        xorl    %ebx,%ebp
-        xorl    4(%esp),%edx
-        roll    $1,%edx
-        addl    %ebp,%ecx
-        rorl    $2,%esi
-        movl    %edi,%ebp
-        roll    $5,%ebp
-        movl    %edx,16(%esp)
-        leal    3395469782(%edx,%ecx,1),%edx
-        movl    20(%esp),%ecx
-        addl    %ebp,%edx
-
-        movl    %edi,%ebp
-        xorl    28(%esp),%ecx
-        xorl    %esi,%ebp
-        xorl    52(%esp),%ecx
-        xorl    %eax,%ebp
-        xorl    8(%esp),%ecx
-        roll    $1,%ecx
-        addl    %ebp,%ebx
-        rorl    $2,%edi
-        movl    %edx,%ebp
-        roll    $5,%ebp
-        movl    %ecx,20(%esp)
-        leal    3395469782(%ecx,%ebx,1),%ecx
-        movl    24(%esp),%ebx
-        addl    %ebp,%ecx
-
-        movl    %edx,%ebp
-        xorl    32(%esp),%ebx
-        xorl    %edi,%ebp
-        xorl    56(%esp),%ebx
-        xorl    %esi,%ebp
-        xorl    12(%esp),%ebx
-        roll    $1,%ebx
-        addl    %ebp,%eax
-        rorl    $2,%edx
-        movl    %ecx,%ebp
-        roll    $5,%ebp
-        movl    %ebx,24(%esp)
-        leal    3395469782(%ebx,%eax,1),%ebx
-        movl    28(%esp),%eax
-        addl    %ebp,%ebx
-
-        movl    %ecx,%ebp
-        xorl    36(%esp),%eax
-        xorl    %edx,%ebp
-        xorl    60(%esp),%eax
-        xorl    %edi,%ebp
-        xorl    16(%esp),%eax
-        roll    $1,%eax
-        addl    %ebp,%esi
-        rorl    $2,%ecx
-        movl    %ebx,%ebp
-        roll    $5,%ebp
-        movl    %eax,28(%esp)
-        leal    3395469782(%eax,%esi,1),%eax
-        movl    32(%esp),%esi
-        addl    %ebp,%eax
-
-        movl    %ebx,%ebp
-        xorl    40(%esp),%esi
-        xorl    %ecx,%ebp
-        xorl    (%esp),%esi
-        xorl    %edx,%ebp
-        xorl    20(%esp),%esi
-        roll    $1,%esi
-        addl    %ebp,%edi
-        rorl    $2,%ebx
-        movl    %eax,%ebp
-        roll    $5,%ebp
-        movl    %esi,32(%esp)
-        leal    3395469782(%esi,%edi,1),%esi
-        movl    36(%esp),%edi
-        addl    %ebp,%esi
-
-        movl    %eax,%ebp
-        xorl    44(%esp),%edi
-        xorl    %ebx,%ebp
-        xorl    4(%esp),%edi
-        xorl    %ecx,%ebp
-        xorl    24(%esp),%edi
-        roll    $1,%edi
-        addl    %ebp,%edx
-        rorl    $2,%eax
-        movl    %esi,%ebp
-        roll    $5,%ebp
-        movl    %edi,36(%esp)
-        leal    3395469782(%edi,%edx,1),%edi
-        movl    40(%esp),%edx
-        addl    %ebp,%edi
-
-        movl    %esi,%ebp
-        xorl    48(%esp),%edx
-        xorl    %eax,%ebp
-        xorl    8(%esp),%edx
-        xorl    %ebx,%ebp
-        xorl    28(%esp),%edx
-        roll    $1,%edx
-        addl    %ebp,%ecx
-        rorl    $2,%esi
-        movl    %edi,%ebp
-        roll    $5,%ebp
-        movl    %edx,40(%esp)
-        leal    3395469782(%edx,%ecx,1),%edx
-        movl    44(%esp),%ecx
-        addl    %ebp,%edx
-
-        movl    %edi,%ebp
-        xorl    52(%esp),%ecx
-        xorl    %esi,%ebp
-        xorl    12(%esp),%ecx
-        xorl    %eax,%ebp
-        xorl    32(%esp),%ecx
-        roll    $1,%ecx
-        addl    %ebp,%ebx
-        rorl    $2,%edi
-        movl    %edx,%ebp
-        roll    $5,%ebp
-        movl    %ecx,44(%esp)
-        leal    3395469782(%ecx,%ebx,1),%ecx
-        movl    48(%esp),%ebx
-        addl    %ebp,%ecx
-
-        movl    %edx,%ebp
-        xorl    56(%esp),%ebx
-        xorl    %edi,%ebp
-        xorl    16(%esp),%ebx
-        xorl    %esi,%ebp
-        xorl    36(%esp),%ebx
-        roll    $1,%ebx
-        addl    %ebp,%eax
-        rorl    $2,%edx
-        movl    %ecx,%ebp
-        roll    $5,%ebp
-        movl    %ebx,48(%esp)
-        leal    3395469782(%ebx,%eax,1),%ebx
-        movl    52(%esp),%eax
-        addl    %ebp,%ebx
-
-        movl    %ecx,%ebp
-        xorl    60(%esp),%eax
-        xorl    %edx,%ebp
-        xorl    20(%esp),%eax
-        xorl    %edi,%ebp
-        xorl    40(%esp),%eax
-        roll    $1,%eax
-        addl    %ebp,%esi
-        rorl    $2,%ecx
-        movl    %ebx,%ebp
-        roll    $5,%ebp
-        leal    3395469782(%eax,%esi,1),%eax
-        movl    56(%esp),%esi
-        addl    %ebp,%eax
-
-        movl    %ebx,%ebp
-        xorl    (%esp),%esi
-        xorl    %ecx,%ebp
-        xorl    24(%esp),%esi
-        xorl    %edx,%ebp
-        xorl    44(%esp),%esi
-        roll    $1,%esi
-        addl    %ebp,%edi
-        rorl    $2,%ebx
-        movl    %eax,%ebp
-        roll    $5,%ebp
-        leal    3395469782(%esi,%edi,1),%esi
-        movl    60(%esp),%edi
-        addl    %ebp,%esi
-
-        movl    %eax,%ebp
-        xorl    4(%esp),%edi
-        xorl    %ebx,%ebp
-        xorl    28(%esp),%edi
-        xorl    %ecx,%ebp
-        xorl    48(%esp),%edi
-        roll    $1,%edi
-        addl    %ebp,%edx
-        rorl    $2,%eax
-        movl    %esi,%ebp
-        roll    $5,%ebp
-        leal    3395469782(%edi,%edx,1),%edi
-        addl    %ebp,%edi
-        movl    96(%esp),%ebp
-        movl    100(%esp),%edx
-        addl    (%ebp),%edi
-        addl    4(%ebp),%esi
-        addl    8(%ebp),%eax
-        addl    12(%ebp),%ebx
-        addl    16(%ebp),%ecx
-        movl    %edi,(%ebp)
-        addl    $64,%edx
-        movl    %esi,4(%ebp)
-        cmpl    104(%esp),%edx
-        movl    %eax,8(%ebp)
-        movl    %ecx,%edi
-        movl    %ebx,12(%ebp)
-        movl    %edx,%esi
-        movl    %ecx,16(%ebp)
-        jb      .L000loop
-        addl    $76,%esp
-        popl    %edi
-        popl    %esi
-        popl    %ebx
-        popl    %ebp
-        ret
-.size   sha1_block_data_order,.-.L_sha1_block_data_order_begin
-.byte   83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115
-.byte   102,111,114,109,32,102,111,114,32,120,56,54,44,32,67,82
-.byte   89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112
-.byte   114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
diff --git a/CryptoPkg/Library/OpensslLib/IA32Gcc/crypto/sha/sha256-586.S b/CryptoPkg/Library/OpensslLib/IA32Gcc/crypto/sha/sha256-586.S
deleted file mode 100644
index 260dde7ad7f8..000000000000
--- a/CryptoPkg/Library/OpensslLib/IA32Gcc/crypto/sha/sha256-586.S
+++ /dev/null
@@ -1,3356 +0,0 @@
-# WARNING: do not edit!
-# Generated from openssl/crypto/sha/asm/sha256-586.pl
-#
-# Copyright 2007-2020 The OpenSSL Project Authors. All Rights Reserved.
-#
-# Licensed under the OpenSSL license (the "License").  You may not use
-# this file except in compliance with the License.  You can obtain a copy
-# in the file LICENSE in the source distribution or at
-# https://www.openssl.org/source/license.html
-
-.text
-.globl  sha256_block_data_order
-.type   sha256_block_data_order, at function
-.align  16
-sha256_block_data_order:
-.L_sha256_block_data_order_begin:
-        pushl   %ebp
-        pushl   %ebx
-        pushl   %esi
-        pushl   %edi
-        movl    20(%esp),%esi
-        movl    24(%esp),%edi
-        movl    28(%esp),%eax
-        movl    %esp,%ebx
-        call    .L000pic_point
-.L000pic_point:
-        popl    %ebp
-        leal    .L001K256-.L000pic_point(%ebp),%ebp
-        subl    $16,%esp
-        andl    $-64,%esp
-        shll    $6,%eax
-        addl    %edi,%eax
-        movl    %esi,(%esp)
-        movl    %edi,4(%esp)
-        movl    %eax,8(%esp)
-        movl    %ebx,12(%esp)
-        jmp     .L002loop
-.align  16
-.L002loop:
-        movl    (%edi),%eax
-        movl    4(%edi),%ebx
-        movl    8(%edi),%ecx
-        bswap   %eax
-        movl    12(%edi),%edx
-        bswap   %ebx
-        pushl   %eax
-        bswap   %ecx
-        pushl   %ebx
-        bswap   %edx
-        pushl   %ecx
-        pushl   %edx
-        movl    16(%edi),%eax
-        movl    20(%edi),%ebx
-        movl    24(%edi),%ecx
-        bswap   %eax
-        movl    28(%edi),%edx
-        bswap   %ebx
-        pushl   %eax
-        bswap   %ecx
-        pushl   %ebx
-        bswap   %edx
-        pushl   %ecx
-        pushl   %edx
-        movl    32(%edi),%eax
-        movl    36(%edi),%ebx
-        movl    40(%edi),%ecx
-        bswap   %eax
-        movl    44(%edi),%edx
-        bswap   %ebx
-        pushl   %eax
-        bswap   %ecx
-        pushl   %ebx
-        bswap   %edx
-        pushl   %ecx
-        pushl   %edx
-        movl    48(%edi),%eax
-        movl    52(%edi),%ebx
-        movl    56(%edi),%ecx
-        bswap   %eax
-        movl    60(%edi),%edx
-        bswap   %ebx
-        pushl   %eax
-        bswap   %ecx
-        pushl   %ebx
-        bswap   %edx
-        pushl   %ecx
-        pushl   %edx
-        addl    $64,%edi
-        leal    -36(%esp),%esp
-        movl    %edi,104(%esp)
-        movl    (%esi),%eax
-        movl    4(%esi),%ebx
-        movl    8(%esi),%ecx
-        movl    12(%esi),%edi
-        movl    %ebx,8(%esp)
-        xorl    %ecx,%ebx
-        movl    %ecx,12(%esp)
-        movl    %edi,16(%esp)
-        movl    %ebx,(%esp)
-        movl    16(%esi),%edx
-        movl    20(%esi),%ebx
-        movl    24(%esi),%ecx
-        movl    28(%esi),%edi
-        movl    %ebx,24(%esp)
-        movl    %ecx,28(%esp)
-        movl    %edi,32(%esp)
-.align  16
-.L00300_15:
-        movl    %edx,%ecx
-        movl    24(%esp),%esi
-        rorl    $14,%ecx
-        movl    28(%esp),%edi
-        xorl    %edx,%ecx
-        xorl    %edi,%esi
-        movl    96(%esp),%ebx
-        rorl    $5,%ecx
-        andl    %edx,%esi
-        movl    %edx,20(%esp)
-        xorl    %ecx,%edx
-        addl    32(%esp),%ebx
-        xorl    %edi,%esi
-        rorl    $6,%edx
-        movl    %eax,%ecx
-        addl    %esi,%ebx
-        rorl    $9,%ecx
-        addl    %edx,%ebx
-        movl    8(%esp),%edi
-        xorl    %eax,%ecx
-        movl    %eax,4(%esp)
-        leal    -4(%esp),%esp
-        rorl    $11,%ecx
-        movl    (%ebp),%esi
-        xorl    %eax,%ecx
-        movl    20(%esp),%edx
-        xorl    %edi,%eax
-        rorl    $2,%ecx
-        addl    %esi,%ebx
-        movl    %eax,(%esp)
-        addl    %ebx,%edx
-        andl    4(%esp),%eax
-        addl    %ecx,%ebx
-        xorl    %edi,%eax
-        addl    $4,%ebp
-        addl    %ebx,%eax
-        cmpl    $3248222580,%esi
-        jne     .L00300_15
-        movl    156(%esp),%ecx
-        jmp     .L00416_63
-.align  16
-.L00416_63:
-        movl    %ecx,%ebx
-        movl    104(%esp),%esi
-        rorl    $11,%ecx
-        movl    %esi,%edi
-        rorl    $2,%esi
-        xorl    %ebx,%ecx
-        shrl    $3,%ebx
-        rorl    $7,%ecx
-        xorl    %edi,%esi
-        xorl    %ecx,%ebx
-        rorl    $17,%esi
-        addl    160(%esp),%ebx
-        shrl    $10,%edi
-        addl    124(%esp),%ebx
-        movl    %edx,%ecx
-        xorl    %esi,%edi
-        movl    24(%esp),%esi
-        rorl    $14,%ecx
-        addl    %edi,%ebx
-        movl    28(%esp),%edi
-        xorl    %edx,%ecx
-        xorl    %edi,%esi
-        movl    %ebx,96(%esp)
-        rorl    $5,%ecx
-        andl    %edx,%esi
-        movl    %edx,20(%esp)
-        xorl    %ecx,%edx
-        addl    32(%esp),%ebx
-        xorl    %edi,%esi
-        rorl    $6,%edx
-        movl    %eax,%ecx
-        addl    %esi,%ebx
-        rorl    $9,%ecx
-        addl    %edx,%ebx
-        movl    8(%esp),%edi
-        xorl    %eax,%ecx
-        movl    %eax,4(%esp)
-        leal    -4(%esp),%esp
-        rorl    $11,%ecx
-        movl    (%ebp),%esi
-        xorl    %eax,%ecx
-        movl    20(%esp),%edx
-        xorl    %edi,%eax
-        rorl    $2,%ecx
-        addl    %esi,%ebx
-        movl    %eax,(%esp)
-        addl    %ebx,%edx
-        andl    4(%esp),%eax
-        addl    %ecx,%ebx
-        xorl    %edi,%eax
-        movl    156(%esp),%ecx
-        addl    $4,%ebp
-        addl    %ebx,%eax
-        cmpl    $3329325298,%esi
-        jne     .L00416_63
-        movl    356(%esp),%esi
-        movl    8(%esp),%ebx
-        movl    16(%esp),%ecx
-        addl    (%esi),%eax
-        addl    4(%esi),%ebx
-        addl    8(%esi),%edi
-        addl    12(%esi),%ecx
-        movl    %eax,(%esi)
-        movl    %ebx,4(%esi)
-        movl    %edi,8(%esi)
-        movl    %ecx,12(%esi)
-        movl    24(%esp),%eax
-        movl    28(%esp),%ebx
-        movl    32(%esp),%ecx
-        movl    360(%esp),%edi
-        addl    16(%esi),%edx
-        addl    20(%esi),%eax
-        addl    24(%esi),%ebx
-        addl    28(%esi),%ecx
-        movl    %edx,16(%esi)
-        movl    %eax,20(%esi)
-        movl    %ebx,24(%esi)
-        movl    %ecx,28(%esi)
-        leal    356(%esp),%esp
-        subl    $256,%ebp
-        cmpl    8(%esp),%edi
-        jb      .L002loop
-        movl    12(%esp),%esp
-        popl    %edi
-        popl    %esi
-        popl    %ebx
-        popl    %ebp
-        ret
-.align  32
-.L005loop_shrd:
-        movl    (%edi),%eax
-        movl    4(%edi),%ebx
-        movl    8(%edi),%ecx
-        bswap   %eax
-        movl    12(%edi),%edx
-        bswap   %ebx
-        pushl   %eax
-        bswap   %ecx
-        pushl   %ebx
-        bswap   %edx
-        pushl   %ecx
-        pushl   %edx
-        movl    16(%edi),%eax
-        movl    20(%edi),%ebx
-        movl    24(%edi),%ecx
-        bswap   %eax
-        movl    28(%edi),%edx
-        bswap   %ebx
-        pushl   %eax
-        bswap   %ecx
-        pushl   %ebx
-        bswap   %edx
-        pushl   %ecx
-        pushl   %edx
-        movl    32(%edi),%eax
-        movl    36(%edi),%ebx
-        movl    40(%edi),%ecx
-        bswap   %eax
-        movl    44(%edi),%edx
-        bswap   %ebx
-        pushl   %eax
-        bswap   %ecx
-        pushl   %ebx
-        bswap   %edx
-        pushl   %ecx
-        pushl   %edx
-        movl    48(%edi),%eax
-        movl    52(%edi),%ebx
-        movl    56(%edi),%ecx
-        bswap   %eax
-        movl    60(%edi),%edx
-        bswap   %ebx
-        pushl   %eax
-        bswap   %ecx
-        pushl   %ebx
-        bswap   %edx
-        pushl   %ecx
-        pushl   %edx
-        addl    $64,%edi
-        leal    -36(%esp),%esp
-        movl    %edi,104(%esp)
-        movl    (%esi),%eax
-        movl    4(%esi),%ebx
-        movl    8(%esi),%ecx
-        movl    12(%esi),%edi
-        movl    %ebx,8(%esp)
-        xorl    %ecx,%ebx
-        movl    %ecx,12(%esp)
-        movl    %edi,16(%esp)
-        movl    %ebx,(%esp)
-        movl    16(%esi),%edx
-        movl    20(%esi),%ebx
-        movl    24(%esi),%ecx
-        movl    28(%esi),%edi
-        movl    %ebx,24(%esp)
-        movl    %ecx,28(%esp)
-        movl    %edi,32(%esp)
-.align  16
-.L00600_15_shrd:
-        movl    %edx,%ecx
-        movl    24(%esp),%esi
-        shrdl   $14,%ecx,%ecx
-        movl    28(%esp),%edi
-        xorl    %edx,%ecx
-        xorl    %edi,%esi
-        movl    96(%esp),%ebx
-        shrdl   $5,%ecx,%ecx
-        andl    %edx,%esi
-        movl    %edx,20(%esp)
-        xorl    %ecx,%edx
-        addl    32(%esp),%ebx
-        xorl    %edi,%esi
-        shrdl   $6,%edx,%edx
-        movl    %eax,%ecx
-        addl    %esi,%ebx
-        shrdl   $9,%ecx,%ecx
-        addl    %edx,%ebx
-        movl    8(%esp),%edi
-        xorl    %eax,%ecx
-        movl    %eax,4(%esp)
-        leal    -4(%esp),%esp
-        shrdl   $11,%ecx,%ecx
-        movl    (%ebp),%esi
-        xorl    %eax,%ecx
-        movl    20(%esp),%edx
-        xorl    %edi,%eax
-        shrdl   $2,%ecx,%ecx
-        addl    %esi,%ebx
-        movl    %eax,(%esp)
-        addl    %ebx,%edx
-        andl    4(%esp),%eax
-        addl    %ecx,%ebx
-        xorl    %edi,%eax
-        addl    $4,%ebp
-        addl    %ebx,%eax
-        cmpl    $3248222580,%esi
-        jne     .L00600_15_shrd
-        movl    156(%esp),%ecx
-        jmp     .L00716_63_shrd
-.align  16
-.L00716_63_shrd:
-        movl    %ecx,%ebx
-        movl    104(%esp),%esi
-        shrdl   $11,%ecx,%ecx
-        movl    %esi,%edi
-        shrdl   $2,%esi,%esi
-        xorl    %ebx,%ecx
-        shrl    $3,%ebx
-        shrdl   $7,%ecx,%ecx
-        xorl    %edi,%esi
-        xorl    %ecx,%ebx
-        shrdl   $17,%esi,%esi
-        addl    160(%esp),%ebx
-        shrl    $10,%edi
-        addl    124(%esp),%ebx
-        movl    %edx,%ecx
-        xorl    %esi,%edi
-        movl    24(%esp),%esi
-        shrdl   $14,%ecx,%ecx
-        addl    %edi,%ebx
-        movl    28(%esp),%edi
-        xorl    %edx,%ecx
-        xorl    %edi,%esi
-        movl    %ebx,96(%esp)
-        shrdl   $5,%ecx,%ecx
-        andl    %edx,%esi
-        movl    %edx,20(%esp)
-        xorl    %ecx,%edx
-        addl    32(%esp),%ebx
-        xorl    %edi,%esi
-        shrdl   $6,%edx,%edx
-        movl    %eax,%ecx
-        addl    %esi,%ebx
-        shrdl   $9,%ecx,%ecx
-        addl    %edx,%ebx
-        movl    8(%esp),%edi
-        xorl    %eax,%ecx
-        movl    %eax,4(%esp)
-        leal    -4(%esp),%esp
-        shrdl   $11,%ecx,%ecx
-        movl    (%ebp),%esi
-        xorl    %eax,%ecx
-        movl    20(%esp),%edx
-        xorl    %edi,%eax
-        shrdl   $2,%ecx,%ecx
-        addl    %esi,%ebx
-        movl    %eax,(%esp)
-        addl    %ebx,%edx
-        andl    4(%esp),%eax
-        addl    %ecx,%ebx
-        xorl    %edi,%eax
-        movl    156(%esp),%ecx
-        addl    $4,%ebp
-        addl    %ebx,%eax
-        cmpl    $3329325298,%esi
-        jne     .L00716_63_shrd
-        movl    356(%esp),%esi
-        movl    8(%esp),%ebx
-        movl    16(%esp),%ecx
-        addl    (%esi),%eax
-        addl    4(%esi),%ebx
-        addl    8(%esi),%edi
-        addl    12(%esi),%ecx
-        movl    %eax,(%esi)
-        movl    %ebx,4(%esi)
-        movl    %edi,8(%esi)
-        movl    %ecx,12(%esi)
-        movl    24(%esp),%eax
-        movl    28(%esp),%ebx
-        movl    32(%esp),%ecx
-        movl    360(%esp),%edi
-        addl    16(%esi),%edx
-        addl    20(%esi),%eax
-        addl    24(%esi),%ebx
-        addl    28(%esi),%ecx
-        movl    %edx,16(%esi)
-        movl    %eax,20(%esi)
-        movl    %ebx,24(%esi)
-        movl    %ecx,28(%esi)
-        leal    356(%esp),%esp
-        subl    $256,%ebp
-        cmpl    8(%esp),%edi
-        jb      .L005loop_shrd
-        movl    12(%esp),%esp
-        popl    %edi
-        popl    %esi
-        popl    %ebx
-        popl    %ebp
-        ret
-.align  64
-.L001K256:
-.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
-.long   66051,67438087,134810123,202182159
-.byte   83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97
-.byte   110,115,102,111,114,109,32,102,111,114,32,120,56,54,44,32
-.byte   67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97
-.byte   112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103
-.byte   62,0
-.align  16
-.L008unrolled:
-        leal    -96(%esp),%esp
-        movl    (%esi),%eax
-        movl    4(%esi),%ebp
-        movl    8(%esi),%ecx
-        movl    12(%esi),%ebx
-        movl    %ebp,4(%esp)
-        xorl    %ecx,%ebp
-        movl    %ecx,8(%esp)
-        movl    %ebx,12(%esp)
-        movl    16(%esi),%edx
-        movl    20(%esi),%ebx
-        movl    24(%esi),%ecx
-        movl    28(%esi),%esi
-        movl    %ebx,20(%esp)
-        movl    %ecx,24(%esp)
-        movl    %esi,28(%esp)
-        jmp     .L009grand_loop
-.align  16
-.L009grand_loop:
-        movl    (%edi),%ebx
-        movl    4(%edi),%ecx
-        bswap   %ebx
-        movl    8(%edi),%esi
-        bswap   %ecx
-        movl    %ebx,32(%esp)
-        bswap   %esi
-        movl    %ecx,36(%esp)
-        movl    %esi,40(%esp)
-        movl    12(%edi),%ebx
-        movl    16(%edi),%ecx
-        bswap   %ebx
-        movl    20(%edi),%esi
-        bswap   %ecx
-        movl    %ebx,44(%esp)
-        bswap   %esi
-        movl    %ecx,48(%esp)
-        movl    %esi,52(%esp)
-        movl    24(%edi),%ebx
-        movl    28(%edi),%ecx
-        bswap   %ebx
-        movl    32(%edi),%esi
-        bswap   %ecx
-        movl    %ebx,56(%esp)
-        bswap   %esi
-        movl    %ecx,60(%esp)
-        movl    %esi,64(%esp)
-        movl    36(%edi),%ebx
-        movl    40(%edi),%ecx
-        bswap   %ebx
-        movl    44(%edi),%esi
-        bswap   %ecx
-        movl    %ebx,68(%esp)
-        bswap   %esi
-        movl    %ecx,72(%esp)
-        movl    %esi,76(%esp)
-        movl    48(%edi),%ebx
-        movl    52(%edi),%ecx
-        bswap   %ebx
-        movl    56(%edi),%esi
-        bswap   %ecx
-        movl    %ebx,80(%esp)
-        bswap   %esi
-        movl    %ecx,84(%esp)
-        movl    %esi,88(%esp)
-        movl    60(%edi),%ebx
-        addl    $64,%edi
-        bswap   %ebx
-        movl    %edi,100(%esp)
-        movl    %ebx,92(%esp)
-        movl    %edx,%ecx
-        movl    20(%esp),%esi
-        rorl    $14,%edx
-        movl    24(%esp),%edi
-        xorl    %ecx,%edx
-        movl    32(%esp),%ebx
-        xorl    %edi,%esi
-        rorl    $5,%edx
-        andl    %ecx,%esi
-        movl    %ecx,16(%esp)
-        xorl    %ecx,%edx
-        addl    28(%esp),%ebx
-        xorl    %esi,%edi
-        rorl    $6,%edx
-        movl    %eax,%ecx
-        addl    %edi,%ebx
-        rorl    $9,%ecx
-        movl    %eax,%esi
-        movl    4(%esp),%edi
-        xorl    %eax,%ecx
-        movl    %eax,(%esp)
-        xorl    %edi,%eax
-        rorl    $11,%ecx
-        andl    %eax,%ebp
-        leal    1116352408(%ebx,%edx,1),%edx
-        xorl    %esi,%ecx
-        xorl    %edi,%ebp
-        rorl    $2,%ecx
-        addl    %edx,%ebp
-        addl    12(%esp),%edx
-        addl    %ecx,%ebp
-        movl    %edx,%esi
-        movl    16(%esp),%ecx
-        rorl    $14,%edx
-        movl    20(%esp),%edi
-        xorl    %esi,%edx
-        movl    36(%esp),%ebx
-        xorl    %edi,%ecx
-        rorl    $5,%edx
-        andl    %esi,%ecx
-        movl    %esi,12(%esp)
-        xorl    %esi,%edx
-        addl    24(%esp),%ebx
-        xorl    %ecx,%edi
-        rorl    $6,%edx
-        movl    %ebp,%esi
-        addl    %edi,%ebx
-        rorl    $9,%esi
-        movl    %ebp,%ecx
-        movl    (%esp),%edi
-        xorl    %ebp,%esi
-        movl    %ebp,28(%esp)
-        xorl    %edi,%ebp
-        rorl    $11,%esi
-        andl    %ebp,%eax
-        leal    1899447441(%ebx,%edx,1),%edx
-        xorl    %ecx,%esi
-        xorl    %edi,%eax
-        rorl    $2,%esi
-        addl    %edx,%eax
-        addl    8(%esp),%edx
-        addl    %esi,%eax
-        movl    %edx,%ecx
-        movl    12(%esp),%esi
-        rorl    $14,%edx
-        movl    16(%esp),%edi
-        xorl    %ecx,%edx
-        movl    40(%esp),%ebx
-        xorl    %edi,%esi
-        rorl    $5,%edx
-        andl    %ecx,%esi
-        movl    %ecx,8(%esp)
-        xorl    %ecx,%edx
-        addl    20(%esp),%ebx
-        xorl    %esi,%edi
-        rorl    $6,%edx
-        movl    %eax,%ecx
-        addl    %edi,%ebx
-        rorl    $9,%ecx
-        movl    %eax,%esi
-        movl    28(%esp),%edi
-        xorl    %eax,%ecx
-        movl    %eax,24(%esp)
-        xorl    %edi,%eax
-        rorl    $11,%ecx
-        andl    %eax,%ebp
-        leal    3049323471(%ebx,%edx,1),%edx
-        xorl    %esi,%ecx
-        xorl    %edi,%ebp
-        rorl    $2,%ecx
-        addl    %edx,%ebp
-        addl    4(%esp),%edx
-        addl    %ecx,%ebp
-        movl    %edx,%esi
-        movl    8(%esp),%ecx
-        rorl    $14,%edx
-        movl    12(%esp),%edi
-        xorl    %esi,%edx
-        movl    44(%esp),%ebx
-        xorl    %edi,%ecx
-        rorl    $5,%edx
-        andl    %esi,%ecx
-        movl    %esi,4(%esp)
-        xorl    %esi,%edx
-        addl    16(%esp),%ebx
-        xorl    %ecx,%edi
-        rorl    $6,%edx
-        movl    %ebp,%esi
-        addl    %edi,%ebx
-        rorl    $9,%esi
-        movl    %ebp,%ecx
-        movl    24(%esp),%edi
-        xorl    %ebp,%esi
-        movl    %ebp,20(%esp)
-        xorl    %edi,%ebp
-        rorl    $11,%esi
-        andl    %ebp,%eax
-        leal    3921009573(%ebx,%edx,1),%edx
-        xorl    %ecx,%esi
-        xorl    %edi,%eax
-        rorl    $2,%esi
-        addl    %edx,%eax
-        addl    (%esp),%edx
-        addl    %esi,%eax
-        movl    %edx,%ecx
-        movl    4(%esp),%esi
-        rorl    $14,%edx
-        movl    8(%esp),%edi
-        xorl    %ecx,%edx
-        movl    48(%esp),%ebx
-        xorl    %edi,%esi
-        rorl    $5,%edx
-        andl    %ecx,%esi
-        movl    %ecx,(%esp)
-        xorl    %ecx,%edx
-        addl    12(%esp),%ebx
-        xorl    %esi,%edi
-        rorl    $6,%edx
-        movl    %eax,%ecx
-        addl    %edi,%ebx
-        rorl    $9,%ecx
-        movl    %eax,%esi
-        movl    20(%esp),%edi
-        xorl    %eax,%ecx
-        movl    %eax,16(%esp)
-        xorl    %edi,%eax
-        rorl    $11,%ecx
-        andl    %eax,%ebp
-        leal    961987163(%ebx,%edx,1),%edx
-        xorl    %esi,%ecx
-        xorl    %edi,%ebp
-        rorl    $2,%ecx
-        addl    %edx,%ebp
-        addl    28(%esp),%edx
-        addl    %ecx,%ebp
-        movl    %edx,%esi
-        movl    (%esp),%ecx
-        rorl    $14,%edx
-        movl    4(%esp),%edi
-        xorl    %esi,%edx
-        movl    52(%esp),%ebx
-        xorl    %edi,%ecx
-        rorl    $5,%edx
-        andl    %esi,%ecx
-        movl    %esi,28(%esp)
-        xorl    %esi,%edx
-        addl    8(%esp),%ebx
-        xorl    %ecx,%edi
-        rorl    $6,%edx
-        movl    %ebp,%esi
-        addl    %edi,%ebx
-        rorl    $9,%esi
-        movl    %ebp,%ecx
-        movl    16(%esp),%edi
-        xorl    %ebp,%esi
-        movl    %ebp,12(%esp)
-        xorl    %edi,%ebp
-        rorl    $11,%esi
-        andl    %ebp,%eax
-        leal    1508970993(%ebx,%edx,1),%edx
-        xorl    %ecx,%esi
-        xorl    %edi,%eax
-        rorl    $2,%esi
-        addl    %edx,%eax
-        addl    24(%esp),%edx
-        addl    %esi,%eax
-        movl    %edx,%ecx
-        movl    28(%esp),%esi
-        rorl    $14,%edx
-        movl    (%esp),%edi
-        xorl    %ecx,%edx
-        movl    56(%esp),%ebx
-        xorl    %edi,%esi
-        rorl    $5,%edx
-        andl    %ecx,%esi
-        movl    %ecx,24(%esp)
-        xorl    %ecx,%edx
-        addl    4(%esp),%ebx
-        xorl    %esi,%edi
-        rorl    $6,%edx
-        movl    %eax,%ecx
-        addl    %edi,%ebx
-        rorl    $9,%ecx
-        movl    %eax,%esi
-        movl    12(%esp),%edi
-        xorl    %eax,%ecx
-        movl    %eax,8(%esp)
-        xorl    %edi,%eax
-        rorl    $11,%ecx
-        andl    %eax,%ebp
-        leal    2453635748(%ebx,%edx,1),%edx
-        xorl    %esi,%ecx
-        xorl    %edi,%ebp
-        rorl    $2,%ecx
-        addl    %edx,%ebp
-        addl    20(%esp),%edx
-        addl    %ecx,%ebp
-        movl    %edx,%esi
-        movl    24(%esp),%ecx
-        rorl    $14,%edx
-        movl    28(%esp),%edi
-        xorl    %esi,%edx
-        movl    60(%esp),%ebx
-        xorl    %edi,%ecx
-        rorl    $5,%edx
-        andl    %esi,%ecx
-        movl    %esi,20(%esp)
-        xorl    %esi,%edx
-        addl    (%esp),%ebx
-        xorl    %ecx,%edi
-        rorl    $6,%edx
-        movl    %ebp,%esi
-        addl    %edi,%ebx
-        rorl    $9,%esi
-        movl    %ebp,%ecx
-        movl    8(%esp),%edi
-        xorl    %ebp,%esi
-        movl    %ebp,4(%esp)
-        xorl    %edi,%ebp
-        rorl    $11,%esi
-        andl    %ebp,%eax
-        leal    2870763221(%ebx,%edx,1),%edx
-        xorl    %ecx,%esi
-        xorl    %edi,%eax
-        rorl    $2,%esi
-        addl    %edx,%eax
-        addl    16(%esp),%edx
-        addl    %esi,%eax
-        movl    %edx,%ecx
-        movl    20(%esp),%esi
-        rorl    $14,%edx
-        movl    24(%esp),%edi
-        xorl    %ecx,%edx
-        movl    64(%esp),%ebx
-        xorl    %edi,%esi
-        rorl    $5,%edx
-        andl    %ecx,%esi
-        movl    %ecx,16(%esp)
-        xorl    %ecx,%edx
-        addl    28(%esp),%ebx
-        xorl    %esi,%edi
-        rorl    $6,%edx
-        movl    %eax,%ecx
-        addl    %edi,%ebx
-        rorl    $9,%ecx
-        movl    %eax,%esi
-        movl    4(%esp),%edi
-        xorl    %eax,%ecx
-        movl    %eax,(%esp)
-        xorl    %edi,%eax
-        rorl    $11,%ecx
-        andl    %eax,%ebp
-        leal    3624381080(%ebx,%edx,1),%edx
-        xorl    %esi,%ecx
-        xorl    %edi,%ebp
-        rorl    $2,%ecx
-        addl    %edx,%ebp
-        addl    12(%esp),%edx
-        addl    %ecx,%ebp
-        movl    %edx,%esi
-        movl    16(%esp),%ecx
-        rorl    $14,%edx
-        movl    20(%esp),%edi
-        xorl    %esi,%edx
-        movl    68(%esp),%ebx
-        xorl    %edi,%ecx
-        rorl    $5,%edx
-        andl    %esi,%ecx
-        movl    %esi,12(%esp)
-        xorl    %esi,%edx
-        addl    24(%esp),%ebx
-        xorl    %ecx,%edi
-        rorl    $6,%edx
-        movl    %ebp,%esi
-        addl    %edi,%ebx
-        rorl    $9,%esi
-        movl    %ebp,%ecx
-        movl    (%esp),%edi
-        xorl    %ebp,%esi
-        movl    %ebp,28(%esp)
-        xorl    %edi,%ebp
-        rorl    $11,%esi
-        andl    %ebp,%eax
-        leal    310598401(%ebx,%edx,1),%edx
-        xorl    %ecx,%esi
-        xorl    %edi,%eax
-        rorl    $2,%esi
-        addl    %edx,%eax
-        addl    8(%esp),%edx
-        addl    %esi,%eax
-        movl    %edx,%ecx
-        movl    12(%esp),%esi
-        rorl    $14,%edx
-        movl    16(%esp),%edi
-        xorl    %ecx,%edx
-        movl    72(%esp),%ebx
-        xorl    %edi,%esi
-        rorl    $5,%edx
-        andl    %ecx,%esi
-        movl    %ecx,8(%esp)
-        xorl    %ecx,%edx
-        addl    20(%esp),%ebx
-        xorl    %esi,%edi
-        rorl    $6,%edx
-        movl    %eax,%ecx
-        addl    %edi,%ebx
-        rorl    $9,%ecx
-        movl    %eax,%esi
-        movl    28(%esp),%edi
-        xorl    %eax,%ecx
-        movl    %eax,24(%esp)
-        xorl    %edi,%eax
-        rorl    $11,%ecx
-        andl    %eax,%ebp
-        leal    607225278(%ebx,%edx,1),%edx
-        xorl    %esi,%ecx
-        xorl    %edi,%ebp
-        rorl    $2,%ecx
-        addl    %edx,%ebp
-        addl    4(%esp),%edx
-        addl    %ecx,%ebp
-        movl    %edx,%esi
-        movl    8(%esp),%ecx
-        rorl    $14,%edx
-        movl    12(%esp),%edi
-        xorl    %esi,%edx
-        movl    76(%esp),%ebx
-        xorl    %edi,%ecx
-        rorl    $5,%edx
-        andl    %esi,%ecx
-        movl    %esi,4(%esp)
-        xorl    %esi,%edx
-        addl    16(%esp),%ebx
-        xorl    %ecx,%edi
-        rorl    $6,%edx
-        movl    %ebp,%esi
-        addl    %edi,%ebx
-        rorl    $9,%esi
-        movl    %ebp,%ecx
-        movl    24(%esp),%edi
-        xorl    %ebp,%esi
-        movl    %ebp,20(%esp)
-        xorl    %edi,%ebp
-        rorl    $11,%esi
-        andl    %ebp,%eax
-        leal    1426881987(%ebx,%edx,1),%edx
-        xorl    %ecx,%esi
-        xorl    %edi,%eax
-        rorl    $2,%esi
-        addl    %edx,%eax
-        addl    (%esp),%edx
-        addl    %esi,%eax
-        movl    %edx,%ecx
-        movl    4(%esp),%esi
-        rorl    $14,%edx
-        movl    8(%esp),%edi
-        xorl    %ecx,%edx
-        movl    80(%esp),%ebx
-        xorl    %edi,%esi
-        rorl    $5,%edx
-        andl    %ecx,%esi
-        movl    %ecx,(%esp)
-        xorl    %ecx,%edx
-        addl    12(%esp),%ebx
-        xorl    %esi,%edi
-        rorl    $6,%edx
-        movl    %eax,%ecx
-        addl    %edi,%ebx
-        rorl    $9,%ecx
-        movl    %eax,%esi
-        movl    20(%esp),%edi
-        xorl    %eax,%ecx
-        movl    %eax,16(%esp)
-        xorl    %edi,%eax
-        rorl    $11,%ecx
-        andl    %eax,%ebp
-        leal    1925078388(%ebx,%edx,1),%edx
-        xorl    %esi,%ecx
-        xorl    %edi,%ebp
-        rorl    $2,%ecx
-        addl    %edx,%ebp
-        addl    28(%esp),%edx
-        addl    %ecx,%ebp
-        movl    %edx,%esi
-        movl    (%esp),%ecx
-        rorl    $14,%edx
-        movl    4(%esp),%edi
-        xorl    %esi,%edx
-        movl    84(%esp),%ebx
-        xorl    %edi,%ecx
-        rorl    $5,%edx
-        andl    %esi,%ecx
-        movl    %esi,28(%esp)
-        xorl    %esi,%edx
-        addl    8(%esp),%ebx
-        xorl    %ecx,%edi
-        rorl    $6,%edx
-        movl    %ebp,%esi
-        addl    %edi,%ebx
-        rorl    $9,%esi
-        movl    %ebp,%ecx
-        movl    16(%esp),%edi
-        xorl    %ebp,%esi
-        movl    %ebp,12(%esp)
-        xorl    %edi,%ebp
-        rorl    $11,%esi
-        andl    %ebp,%eax
-        leal    2162078206(%ebx,%edx,1),%edx
-        xorl    %ecx,%esi
-        xorl    %edi,%eax
-        rorl    $2,%esi
-        addl    %edx,%eax
-        addl    24(%esp),%edx
-        addl    %esi,%eax
-        movl    %edx,%ecx
-        movl    28(%esp),%esi
-        rorl    $14,%edx
-        movl    (%esp),%edi
-        xorl    %ecx,%edx
-        movl    88(%esp),%ebx
-        xorl    %edi,%esi
-        rorl    $5,%edx
-        andl    %ecx,%esi
-        movl    %ecx,24(%esp)
-        xorl    %ecx,%edx
-        addl    4(%esp),%ebx
-        xorl    %esi,%edi
-        rorl    $6,%edx
-        movl    %eax,%ecx
-        addl    %edi,%ebx
-        rorl    $9,%ecx
-        movl    %eax,%esi
-        movl    12(%esp),%edi
-        xorl    %eax,%ecx
-        movl    %eax,8(%esp)
-        xorl    %edi,%eax
-        rorl    $11,%ecx
-        andl    %eax,%ebp
-        leal    2614888103(%ebx,%edx,1),%edx
-        xorl    %esi,%ecx
-        xorl    %edi,%ebp
-        rorl    $2,%ecx
-        addl    %edx,%ebp
-        addl    20(%esp),%edx
-        addl    %ecx,%ebp
-        movl    %edx,%esi
-        movl    24(%esp),%ecx
-        rorl    $14,%edx
-        movl    28(%esp),%edi
-        xorl    %esi,%edx
-        movl    92(%esp),%ebx
-        xorl    %edi,%ecx
-        rorl    $5,%edx
-        andl    %esi,%ecx
-        movl    %esi,20(%esp)
-        xorl    %esi,%edx
-        addl    (%esp),%ebx
-        xorl    %ecx,%edi
-        rorl    $6,%edx
-        movl    %ebp,%esi
-        addl    %edi,%ebx
-        rorl    $9,%esi
-        movl    %ebp,%ecx
-        movl    8(%esp),%edi
-        xorl    %ebp,%esi
-        movl    %ebp,4(%esp)
-        xorl    %edi,%ebp
-        rorl    $11,%esi
-        andl    %ebp,%eax
-        leal    3248222580(%ebx,%edx,1),%edx
-        xorl    %ecx,%esi
-        xorl    %edi,%eax
-        movl    36(%esp),%ecx
-        rorl    $2,%esi
-        addl    %edx,%eax
-        addl    16(%esp),%edx
-        addl    %esi,%eax
-        movl    88(%esp),%esi
-        movl    %ecx,%ebx
-        rorl    $11,%ecx
-        movl    %esi,%edi
-        rorl    $2,%esi
-        xorl    %ebx,%ecx
-        shrl    $3,%ebx
-        rorl    $7,%ecx
-        xorl    %edi,%esi
-        xorl    %ecx,%ebx
-        rorl    $17,%esi
-        addl    32(%esp),%ebx
-        shrl    $10,%edi
-        addl    68(%esp),%ebx
-        movl    %edx,%ecx
-        xorl    %esi,%edi
-        movl    20(%esp),%esi
-        rorl    $14,%edx
-        addl    %edi,%ebx
-        movl    24(%esp),%edi
-        xorl    %ecx,%edx
-        movl    %ebx,32(%esp)
-        xorl    %edi,%esi
-        rorl    $5,%edx
-        andl    %ecx,%esi
-        movl    %ecx,16(%esp)
-        xorl    %ecx,%edx
-        addl    28(%esp),%ebx
-        xorl    %esi,%edi
-        rorl    $6,%edx
-        movl    %eax,%ecx
-        addl    %edi,%ebx
-        rorl    $9,%ecx
-        movl    %eax,%esi
-        movl    4(%esp),%edi
-        xorl    %eax,%ecx
-        movl    %eax,(%esp)
-        xorl    %edi,%eax
-        rorl    $11,%ecx
-        andl    %eax,%ebp
-        leal    3835390401(%ebx,%edx,1),%edx
-        xorl    %esi,%ecx
-        xorl    %edi,%ebp
-        movl    40(%esp),%esi
-        rorl    $2,%ecx
-        addl    %edx,%ebp
-        addl    12(%esp),%edx
-        addl    %ecx,%ebp
-        movl    92(%esp),%ecx
-        movl    %esi,%ebx
-        rorl    $11,%esi
-        movl    %ecx,%edi
-        rorl    $2,%ecx
-        xorl    %ebx,%esi
-        shrl    $3,%ebx
-        rorl    $7,%esi
-        xorl    %edi,%ecx
-        xorl    %esi,%ebx
-        rorl    $17,%ecx
-        addl    36(%esp),%ebx
-        shrl    $10,%edi
-        addl    72(%esp),%ebx
-        movl    %edx,%esi
-        xorl    %ecx,%edi
-        movl    16(%esp),%ecx
-        rorl    $14,%edx
-        addl    %edi,%ebx
-        movl    20(%esp),%edi
-        xorl    %esi,%edx
-        movl    %ebx,36(%esp)
-        xorl    %edi,%ecx
-        rorl    $5,%edx
-        andl    %esi,%ecx
-        movl    %esi,12(%esp)
-        xorl    %esi,%edx
-        addl    24(%esp),%ebx
-        xorl    %ecx,%edi
-        rorl    $6,%edx
-        movl    %ebp,%esi
-        addl    %edi,%ebx
-        rorl    $9,%esi
-        movl    %ebp,%ecx
-        movl    (%esp),%edi
-        xorl    %ebp,%esi
-        movl    %ebp,28(%esp)
-        xorl    %edi,%ebp
-        rorl    $11,%esi
-        andl    %ebp,%eax
-        leal    4022224774(%ebx,%edx,1),%edx
-        xorl    %ecx,%esi
-        xorl    %edi,%eax
-        movl    44(%esp),%ecx
-        rorl    $2,%esi
-        addl    %edx,%eax
-        addl    8(%esp),%edx
-        addl    %esi,%eax
-        movl    32(%esp),%esi
-        movl    %ecx,%ebx
-        rorl    $11,%ecx
-        movl    %esi,%edi
-        rorl    $2,%esi
-        xorl    %ebx,%ecx
-        shrl    $3,%ebx
-        rorl    $7,%ecx
-        xorl    %edi,%esi
-        xorl    %ecx,%ebx
-        rorl    $17,%esi
-        addl    40(%esp),%ebx
-        shrl    $10,%edi
-        addl    76(%esp),%ebx
-        movl    %edx,%ecx
-        xorl    %esi,%edi
-        movl    12(%esp),%esi
-        rorl    $14,%edx
-        addl    %edi,%ebx
-        movl    16(%esp),%edi
-        xorl    %ecx,%edx
-        movl    %ebx,40(%esp)
-        xorl    %edi,%esi
-        rorl    $5,%edx
-        andl    %ecx,%esi
-        movl    %ecx,8(%esp)
-        xorl    %ecx,%edx
-        addl    20(%esp),%ebx
-        xorl    %esi,%edi
-        rorl    $6,%edx
-        movl    %eax,%ecx
-        addl    %edi,%ebx
-        rorl    $9,%ecx
-        movl    %eax,%esi
-        movl    28(%esp),%edi
-        xorl    %eax,%ecx
-        movl    %eax,24(%esp)
-        xorl    %edi,%eax
-        rorl    $11,%ecx
-        andl    %eax,%ebp
-        leal    264347078(%ebx,%edx,1),%edx
-        xorl    %esi,%ecx
-        xorl    %edi,%ebp
-        movl    48(%esp),%esi
-        rorl    $2,%ecx
-        addl    %edx,%ebp
-        addl    4(%esp),%edx
-        addl    %ecx,%ebp
-        movl    36(%esp),%ecx
-        movl    %esi,%ebx
-        rorl    $11,%esi
-        movl    %ecx,%edi
-        rorl    $2,%ecx
-        xorl    %ebx,%esi
-        shrl    $3,%ebx
-        rorl    $7,%esi
-        xorl    %edi,%ecx
-        xorl    %esi,%ebx
-        rorl    $17,%ecx
-        addl    44(%esp),%ebx
-        shrl    $10,%edi
-        addl    80(%esp),%ebx
-        movl    %edx,%esi
-        xorl    %ecx,%edi
-        movl    8(%esp),%ecx
-        rorl    $14,%edx
-        addl    %edi,%ebx
-        movl    12(%esp),%edi
-        xorl    %esi,%edx
-        movl    %ebx,44(%esp)
-        xorl    %edi,%ecx
-        rorl    $5,%edx
-        andl    %esi,%ecx
-        movl    %esi,4(%esp)
-        xorl    %esi,%edx
-        addl    16(%esp),%ebx
-        xorl    %ecx,%edi
-        rorl    $6,%edx
-        movl    %ebp,%esi
-        addl    %edi,%ebx
-        rorl    $9,%esi
-        movl    %ebp,%ecx
-        movl    24(%esp),%edi
-        xorl    %ebp,%esi
-        movl    %ebp,20(%esp)
-        xorl    %edi,%ebp
-        rorl    $11,%esi
-        andl    %ebp,%eax
-        leal    604807628(%ebx,%edx,1),%edx
-        xorl    %ecx,%esi
-        xorl    %edi,%eax
-        movl    52(%esp),%ecx
-        rorl    $2,%esi
-        addl    %edx,%eax
-        addl    (%esp),%edx
-        addl    %esi,%eax
-        movl    40(%esp),%esi
-        movl    %ecx,%ebx
-        rorl    $11,%ecx
-        movl    %esi,%edi
-        rorl    $2,%esi
-        xorl    %ebx,%ecx
-        shrl    $3,%ebx
-        rorl    $7,%ecx
-        xorl    %edi,%esi
-        xorl    %ecx,%ebx
-        rorl    $17,%esi
-        addl    48(%esp),%ebx
-        shrl    $10,%edi
-        addl    84(%esp),%ebx
-        movl    %edx,%ecx
-        xorl    %esi,%edi
-        movl    4(%esp),%esi
-        rorl    $14,%edx
-        addl    %edi,%ebx
-        movl    8(%esp),%edi
-        xorl    %ecx,%edx
-        movl    %ebx,48(%esp)
-        xorl    %edi,%esi
-        rorl    $5,%edx
-        andl    %ecx,%esi
-        movl    %ecx,(%esp)
-        xorl    %ecx,%edx
-        addl    12(%esp),%ebx
-        xorl    %esi,%edi
-        rorl    $6,%edx
-        movl    %eax,%ecx
-        addl    %edi,%ebx
-        rorl    $9,%ecx
-        movl    %eax,%esi
-        movl    20(%esp),%edi
-        xorl    %eax,%ecx
-        movl    %eax,16(%esp)
-        xorl    %edi,%eax
-        rorl    $11,%ecx
-        andl    %eax,%ebp
-        leal    770255983(%ebx,%edx,1),%edx
-        xorl    %esi,%ecx
-        xorl    %edi,%ebp
-        movl    56(%esp),%esi
-        rorl    $2,%ecx
-        addl    %edx,%ebp
-        addl    28(%esp),%edx
-        addl    %ecx,%ebp
-        movl    44(%esp),%ecx
-        movl    %esi,%ebx
-        rorl    $11,%esi
-        movl    %ecx,%edi
-        rorl    $2,%ecx
-        xorl    %ebx,%esi
-        shrl    $3,%ebx
-        rorl    $7,%esi
-        xorl    %edi,%ecx
-        xorl    %esi,%ebx
-        rorl    $17,%ecx
-        addl    52(%esp),%ebx
-        shrl    $10,%edi
-        addl    88(%esp),%ebx
-        movl    %edx,%esi
-        xorl    %ecx,%edi
-        movl    (%esp),%ecx
-        rorl    $14,%edx
-        addl    %edi,%ebx
-        movl    4(%esp),%edi
-        xorl    %esi,%edx
-        movl    %ebx,52(%esp)
-        xorl    %edi,%ecx
-        rorl    $5,%edx
-        andl    %esi,%ecx
-        movl    %esi,28(%esp)
-        xorl    %esi,%edx
-        addl    8(%esp),%ebx
-        xorl    %ecx,%edi
-        rorl    $6,%edx
-        movl    %ebp,%esi
-        addl    %edi,%ebx
-        rorl    $9,%esi
-        movl    %ebp,%ecx
-        movl    16(%esp),%edi
-        xorl    %ebp,%esi
-        movl    %ebp,12(%esp)
-        xorl    %edi,%ebp
-        rorl    $11,%esi
-        andl    %ebp,%eax
-        leal    1249150122(%ebx,%edx,1),%edx
-        xorl    %ecx,%esi
-        xorl    %edi,%eax
-        movl    60(%esp),%ecx
-        rorl    $2,%esi
-        addl    %edx,%eax
-        addl    24(%esp),%edx
-        addl    %esi,%eax
-        movl    48(%esp),%esi
-        movl    %ecx,%ebx
-        rorl    $11,%ecx
-        movl    %esi,%edi
-        rorl    $2,%esi
-        xorl    %ebx,%ecx
-        shrl    $3,%ebx
-        rorl    $7,%ecx
-        xorl    %edi,%esi
-        xorl    %ecx,%ebx
-        rorl    $17,%esi
-        addl    56(%esp),%ebx
-        shrl    $10,%edi
-        addl    92(%esp),%ebx
-        movl    %edx,%ecx
-        xorl    %esi,%edi
-        movl    28(%esp),%esi
-        rorl    $14,%edx
-        addl    %edi,%ebx
-        movl    (%esp),%edi
-        xorl    %ecx,%edx
-        movl    %ebx,56(%esp)
-        xorl    %edi,%esi
-        rorl    $5,%edx
-        andl    %ecx,%esi
-        movl    %ecx,24(%esp)
-        xorl    %ecx,%edx
-        addl    4(%esp),%ebx
-        xorl    %esi,%edi
-        rorl    $6,%edx
-        movl    %eax,%ecx
-        addl    %edi,%ebx
-        rorl    $9,%ecx
-        movl    %eax,%esi
-        movl    12(%esp),%edi
-        xorl    %eax,%ecx
-        movl    %eax,8(%esp)
-        xorl    %edi,%eax
-        rorl    $11,%ecx
-        andl    %eax,%ebp
-        leal    1555081692(%ebx,%edx,1),%edx
-        xorl    %esi,%ecx
-        xorl    %edi,%ebp
-        movl    64(%esp),%esi
-        rorl    $2,%ecx
-        addl    %edx,%ebp
-        addl    20(%esp),%edx
-        addl    %ecx,%ebp
-        movl    52(%esp),%ecx
-        movl    %esi,%ebx
-        rorl    $11,%esi
-        movl    %ecx,%edi
-        rorl    $2,%ecx
-        xorl    %ebx,%esi
-        shrl    $3,%ebx
-        rorl    $7,%esi
-        xorl    %edi,%ecx
-        xorl    %esi,%ebx
-        rorl    $17,%ecx
-        addl    60(%esp),%ebx
-        shrl    $10,%edi
-        addl    32(%esp),%ebx
-        movl    %edx,%esi
-        xorl    %ecx,%edi
-        movl    24(%esp),%ecx
-        rorl    $14,%edx
-        addl    %edi,%ebx
-        movl    28(%esp),%edi
-        xorl    %esi,%edx
-        movl    %ebx,60(%esp)
-        xorl    %edi,%ecx
-        rorl    $5,%edx
-        andl    %esi,%ecx
-        movl    %esi,20(%esp)
-        xorl    %esi,%edx
-        addl    (%esp),%ebx
-        xorl    %ecx,%edi
-        rorl    $6,%edx
-        movl    %ebp,%esi
-        addl    %edi,%ebx
-        rorl    $9,%esi
-        movl    %ebp,%ecx
-        movl    8(%esp),%edi
-        xorl    %ebp,%esi
-        movl    %ebp,4(%esp)
-        xorl    %edi,%ebp
-        rorl    $11,%esi
-        andl    %ebp,%eax
-        leal    1996064986(%ebx,%edx,1),%edx
-        xorl    %ecx,%esi
-        xorl    %edi,%eax
-        movl    68(%esp),%ecx
-        rorl    $2,%esi
-        addl    %edx,%eax
-        addl    16(%esp),%edx
-        addl    %esi,%eax
-        movl    56(%esp),%esi
-        movl    %ecx,%ebx
-        rorl    $11,%ecx
-        movl    %esi,%edi
-        rorl    $2,%esi
-        xorl    %ebx,%ecx
-        shrl    $3,%ebx
-        rorl    $7,%ecx
-        xorl    %edi,%esi
-        xorl    %ecx,%ebx
-        rorl    $17,%esi
-        addl    64(%esp),%ebx
-        shrl    $10,%edi
-        addl    36(%esp),%ebx
-        movl    %edx,%ecx
-        xorl    %esi,%edi
-        movl    20(%esp),%esi
-        rorl    $14,%edx
-        addl    %edi,%ebx
-        movl    24(%esp),%edi
-        xorl    %ecx,%edx
-        movl    %ebx,64(%esp)
-        xorl    %edi,%esi
-        rorl    $5,%edx
-        andl    %ecx,%esi
-        movl    %ecx,16(%esp)
-        xorl    %ecx,%edx
-        addl    28(%esp),%ebx
-        xorl    %esi,%edi
-        rorl    $6,%edx
-        movl    %eax,%ecx
-        addl    %edi,%ebx
-        rorl    $9,%ecx
-        movl    %eax,%esi
-        movl    4(%esp),%edi
-        xorl    %eax,%ecx
-        movl    %eax,(%esp)
-        xorl    %edi,%eax
-        rorl    $11,%ecx
-        andl    %eax,%ebp
-        leal    2554220882(%ebx,%edx,1),%edx
-        xorl    %esi,%ecx
-        xorl    %edi,%ebp
-        movl    72(%esp),%esi
-        rorl    $2,%ecx
-        addl    %edx,%ebp
-        addl    12(%esp),%edx
-        addl    %ecx,%ebp
-        movl    60(%esp),%ecx
-        movl    %esi,%ebx
-        rorl    $11,%esi
-        movl    %ecx,%edi
-        rorl    $2,%ecx
-        xorl    %ebx,%esi
-        shrl    $3,%ebx
-        rorl    $7,%esi
-        xorl    %edi,%ecx
-        xorl    %esi,%ebx
-        rorl    $17,%ecx
-        addl    68(%esp),%ebx
-        shrl    $10,%edi
-        addl    40(%esp),%ebx
-        movl    %edx,%esi
-        xorl    %ecx,%edi
-        movl    16(%esp),%ecx
-        rorl    $14,%edx
-        addl    %edi,%ebx
-        movl    20(%esp),%edi
-        xorl    %esi,%edx
-        movl    %ebx,68(%esp)
-        xorl    %edi,%ecx
-        rorl    $5,%edx
-        andl    %esi,%ecx
-        movl    %esi,12(%esp)
-        xorl    %esi,%edx
-        addl    24(%esp),%ebx
-        xorl    %ecx,%edi
-        rorl    $6,%edx
-        movl    %ebp,%esi
-        addl    %edi,%ebx
-        rorl    $9,%esi
-        movl    %ebp,%ecx
-        movl    (%esp),%edi
-        xorl    %ebp,%esi
-        movl    %ebp,28(%esp)
-        xorl    %edi,%ebp
-        rorl    $11,%esi
-        andl    %ebp,%eax
-        leal    2821834349(%ebx,%edx,1),%edx
-        xorl    %ecx,%esi
-        xorl    %edi,%eax
-        movl    76(%esp),%ecx
-        rorl    $2,%esi
-        addl    %edx,%eax
-        addl    8(%esp),%edx
-        addl    %esi,%eax
-        movl    64(%esp),%esi
-        movl    %ecx,%ebx
-        rorl    $11,%ecx
-        movl    %esi,%edi
-        rorl    $2,%esi
-        xorl    %ebx,%ecx
-        shrl    $3,%ebx
-        rorl    $7,%ecx
-        xorl    %edi,%esi
-        xorl    %ecx,%ebx
-        rorl    $17,%esi
-        addl    72(%esp),%ebx
-        shrl    $10,%edi
-        addl    44(%esp),%ebx
-        movl    %edx,%ecx
-        xorl    %esi,%edi
-        movl    12(%esp),%esi
-        rorl    $14,%edx
-        addl    %edi,%ebx
-        movl    16(%esp),%edi
-        xorl    %ecx,%edx
-        movl    %ebx,72(%esp)
-        xorl    %edi,%esi
-        rorl    $5,%edx
-        andl    %ecx,%esi
-        movl    %ecx,8(%esp)
-        xorl    %ecx,%edx
-        addl    20(%esp),%ebx
-        xorl    %esi,%edi
-        rorl    $6,%edx
-        movl    %eax,%ecx
-        addl    %edi,%ebx
-        rorl    $9,%ecx
-        movl    %eax,%esi
-        movl    28(%esp),%edi
-        xorl    %eax,%ecx
-        movl    %eax,24(%esp)
-        xorl    %edi,%eax
-        rorl    $11,%ecx
-        andl    %eax,%ebp
-        leal    2952996808(%ebx,%edx,1),%edx
-        xorl    %esi,%ecx
-        xorl    %edi,%ebp
-        movl    80(%esp),%esi
-        rorl    $2,%ecx
-        addl    %edx,%ebp
-        addl    4(%esp),%edx
-        addl    %ecx,%ebp
-        movl    68(%esp),%ecx
-        movl    %esi,%ebx
-        rorl    $11,%esi
-        movl    %ecx,%edi
-        rorl    $2,%ecx
-        xorl    %ebx,%esi
-        shrl    $3,%ebx
-        rorl    $7,%esi
-        xorl    %edi,%ecx
-        xorl    %esi,%ebx
-        rorl    $17,%ecx
-        addl    76(%esp),%ebx
-        shrl    $10,%edi
-        addl    48(%esp),%ebx
-        movl    %edx,%esi
-        xorl    %ecx,%edi
-        movl    8(%esp),%ecx
-        rorl    $14,%edx
-        addl    %edi,%ebx
-        movl    12(%esp),%edi
-        xorl    %esi,%edx
-        movl    %ebx,76(%esp)
-        xorl    %edi,%ecx
-        rorl    $5,%edx
-        andl    %esi,%ecx
-        movl    %esi,4(%esp)
-        xorl    %esi,%edx
-        addl    16(%esp),%ebx
-        xorl    %ecx,%edi
-        rorl    $6,%edx
-        movl    %ebp,%esi
-        addl    %edi,%ebx
-        rorl    $9,%esi
-        movl    %ebp,%ecx
-        movl    24(%esp),%edi
-        xorl    %ebp,%esi
-        movl    %ebp,20(%esp)
-        xorl    %edi,%ebp
-        rorl    $11,%esi
-        andl    %ebp,%eax
-        leal    3210313671(%ebx,%edx,1),%edx
-        xorl    %ecx,%esi
-        xorl    %edi,%eax
-        movl    84(%esp),%ecx
-        rorl    $2,%esi
-        addl    %edx,%eax
-        addl    (%esp),%edx
-        addl    %esi,%eax
-        movl    72(%esp),%esi
-        movl    %ecx,%ebx
-        rorl    $11,%ecx
-        movl    %esi,%edi
-        rorl    $2,%esi
-        xorl    %ebx,%ecx
-        shrl    $3,%ebx
-        rorl    $7,%ecx
-        xorl    %edi,%esi
-        xorl    %ecx,%ebx
-        rorl    $17,%esi
-        addl    80(%esp),%ebx
-        shrl    $10,%edi
-        addl    52(%esp),%ebx
-        movl    %edx,%ecx
-        xorl    %esi,%edi
-        movl    4(%esp),%esi
-        rorl    $14,%edx
-        addl    %edi,%ebx
-        movl    8(%esp),%edi
-        xorl    %ecx,%edx
-        movl    %ebx,80(%esp)
-        xorl    %edi,%esi
-        rorl    $5,%edx
-        andl    %ecx,%esi
-        movl    %ecx,(%esp)
-        xorl    %ecx,%edx
-        addl    12(%esp),%ebx
-        xorl    %esi,%edi
-        rorl    $6,%edx
-        movl    %eax,%ecx
-        addl    %edi,%ebx
-        rorl    $9,%ecx
-        movl    %eax,%esi
-        movl    20(%esp),%edi
-        xorl    %eax,%ecx
-        movl    %eax,16(%esp)
-        xorl    %edi,%eax
-        rorl    $11,%ecx
-        andl    %eax,%ebp
-        leal    3336571891(%ebx,%edx,1),%edx
-        xorl    %esi,%ecx
-        xorl    %edi,%ebp
-        movl    88(%esp),%esi
-        rorl    $2,%ecx
-        addl    %edx,%ebp
-        addl    28(%esp),%edx
-        addl    %ecx,%ebp
-        movl    76(%esp),%ecx
-        movl    %esi,%ebx
-        rorl    $11,%esi
-        movl    %ecx,%edi
-        rorl    $2,%ecx
-        xorl    %ebx,%esi
-        shrl    $3,%ebx
-        rorl    $7,%esi
-        xorl    %edi,%ecx
-        xorl    %esi,%ebx
-        rorl    $17,%ecx
-        addl    84(%esp),%ebx
-        shrl    $10,%edi
-        addl    56(%esp),%ebx
-        movl    %edx,%esi
-        xorl    %ecx,%edi
-        movl    (%esp),%ecx
-        rorl    $14,%edx
-        addl    %edi,%ebx
-        movl    4(%esp),%edi
-        xorl    %esi,%edx
-        movl    %ebx,84(%esp)
-        xorl    %edi,%ecx
-        rorl    $5,%edx
-        andl    %esi,%ecx
-        movl    %esi,28(%esp)
-        xorl    %esi,%edx
-        addl    8(%esp),%ebx
-        xorl    %ecx,%edi
-        rorl    $6,%edx
-        movl    %ebp,%esi
-        addl    %edi,%ebx
-        rorl    $9,%esi
-        movl    %ebp,%ecx
-        movl    16(%esp),%edi
-        xorl    %ebp,%esi
-        movl    %ebp,12(%esp)
-        xorl    %edi,%ebp
-        rorl    $11,%esi
-        andl    %ebp,%eax
-        leal    3584528711(%ebx,%edx,1),%edx
-        xorl    %ecx,%esi
-        xorl    %edi,%eax
-        movl    92(%esp),%ecx
-        rorl    $2,%esi
-        addl    %edx,%eax
-        addl    24(%esp),%edx
-        addl    %esi,%eax
-        movl    80(%esp),%esi
-        movl    %ecx,%ebx
-        rorl    $11,%ecx
-        movl    %esi,%edi
-        rorl    $2,%esi
-        xorl    %ebx,%ecx
-        shrl    $3,%ebx
-        rorl    $7,%ecx
-        xorl    %edi,%esi
-        xorl    %ecx,%ebx
-        rorl    $17,%esi
-        addl    88(%esp),%ebx
-        shrl    $10,%edi
-        addl    60(%esp),%ebx
-        movl    %edx,%ecx
-        xorl    %esi,%edi
-        movl    28(%esp),%esi
-        rorl    $14,%edx
-        addl    %edi,%ebx
-        movl    (%esp),%edi
-        xorl    %ecx,%edx
-        movl    %ebx,88(%esp)
-        xorl    %edi,%esi
-        rorl    $5,%edx
-        andl    %ecx,%esi
-        movl    %ecx,24(%esp)
-        xorl    %ecx,%edx
-        addl    4(%esp),%ebx
-        xorl    %esi,%edi
-        rorl    $6,%edx
-        movl    %eax,%ecx
-        addl    %edi,%ebx
-        rorl    $9,%ecx
-        movl    %eax,%esi
-        movl    12(%esp),%edi
-        xorl    %eax,%ecx
-        movl    %eax,8(%esp)
-        xorl    %edi,%eax
-        rorl    $11,%ecx
-        andl    %eax,%ebp
-        leal    113926993(%ebx,%edx,1),%edx
-        xorl    %esi,%ecx
-        xorl    %edi,%ebp
-        movl    32(%esp),%esi
-        rorl    $2,%ecx
-        addl    %edx,%ebp
-        addl    20(%esp),%edx
-        addl    %ecx,%ebp
-        movl    84(%esp),%ecx
-        movl    %esi,%ebx
-        rorl    $11,%esi
-        movl    %ecx,%edi
-        rorl    $2,%ecx
-        xorl    %ebx,%esi
-        shrl    $3,%ebx
-        rorl    $7,%esi
-        xorl    %edi,%ecx
-        xorl    %esi,%ebx
-        rorl    $17,%ecx
-        addl    92(%esp),%ebx
-        shrl    $10,%edi
-        addl    64(%esp),%ebx
-        movl    %edx,%esi
-        xorl    %ecx,%edi
-        movl    24(%esp),%ecx
-        rorl    $14,%edx
-        addl    %edi,%ebx
-        movl    28(%esp),%edi
-        xorl    %esi,%edx
-        movl    %ebx,92(%esp)
-        xorl    %edi,%ecx
-        rorl    $5,%edx
-        andl    %esi,%ecx
-        movl    %esi,20(%esp)
-        xorl    %esi,%edx
-        addl    (%esp),%ebx
-        xorl    %ecx,%edi
-        rorl    $6,%edx
-        movl    %ebp,%esi
-        addl    %edi,%ebx
-        rorl    $9,%esi
-        movl    %ebp,%ecx
-        movl    8(%esp),%edi
-        xorl    %ebp,%esi
-        movl    %ebp,4(%esp)
-        xorl    %edi,%ebp
-        rorl    $11,%esi
-        andl    %ebp,%eax
-        leal    338241895(%ebx,%edx,1),%edx
-        xorl    %ecx,%esi
-        xorl    %edi,%eax
-        movl    36(%esp),%ecx
-        rorl    $2,%esi
-        addl    %edx,%eax
-        addl    16(%esp),%edx
-        addl    %esi,%eax
-        movl    88(%esp),%esi
-        movl    %ecx,%ebx
-        rorl    $11,%ecx
-        movl    %esi,%edi
-        rorl    $2,%esi
-        xorl    %ebx,%ecx
-        shrl    $3,%ebx
-        rorl    $7,%ecx
-        xorl    %edi,%esi
-        xorl    %ecx,%ebx
-        rorl    $17,%esi
-        addl    32(%esp),%ebx
-        shrl    $10,%edi
-        addl    68(%esp),%ebx
-        movl    %edx,%ecx
-        xorl    %esi,%edi
-        movl    20(%esp),%esi
-        rorl    $14,%edx
-        addl    %edi,%ebx
-        movl    24(%esp),%edi
-        xorl    %ecx,%edx
-        movl    %ebx,32(%esp)
-        xorl    %edi,%esi
-        rorl    $5,%edx
-        andl    %ecx,%esi
-        movl    %ecx,16(%esp)
-        xorl    %ecx,%edx
-        addl    28(%esp),%ebx
-        xorl    %esi,%edi
-        rorl    $6,%edx
-        movl    %eax,%ecx
-        addl    %edi,%ebx
-        rorl    $9,%ecx
-        movl    %eax,%esi
-        movl    4(%esp),%edi
-        xorl    %eax,%ecx
-        movl    %eax,(%esp)
-        xorl    %edi,%eax
-        rorl    $11,%ecx
-        andl    %eax,%ebp
-        leal    666307205(%ebx,%edx,1),%edx
-        xorl    %esi,%ecx
-        xorl    %edi,%ebp
-        movl    40(%esp),%esi
-        rorl    $2,%ecx
-        addl    %edx,%ebp
-        addl    12(%esp),%edx
-        addl    %ecx,%ebp
-        movl    92(%esp),%ecx
-        movl    %esi,%ebx
-        rorl    $11,%esi
-        movl    %ecx,%edi
-        rorl    $2,%ecx
-        xorl    %ebx,%esi
-        shrl    $3,%ebx
-        rorl    $7,%esi
-        xorl    %edi,%ecx
-        xorl    %esi,%ebx
-        rorl    $17,%ecx
-        addl    36(%esp),%ebx
-        shrl    $10,%edi
-        addl    72(%esp),%ebx
-        movl    %edx,%esi
-        xorl    %ecx,%edi
-        movl    16(%esp),%ecx
-        rorl    $14,%edx
-        addl    %edi,%ebx
-        movl    20(%esp),%edi
-        xorl    %esi,%edx
-        movl    %ebx,36(%esp)
-        xorl    %edi,%ecx
-        rorl    $5,%edx
-        andl    %esi,%ecx
-        movl    %esi,12(%esp)
-        xorl    %esi,%edx
-        addl    24(%esp),%ebx
-        xorl    %ecx,%edi
-        rorl    $6,%edx
-        movl    %ebp,%esi
-        addl    %edi,%ebx
-        rorl    $9,%esi
-        movl    %ebp,%ecx
-        movl    (%esp),%edi
-        xorl    %ebp,%esi
-        movl    %ebp,28(%esp)
-        xorl    %edi,%ebp
-        rorl    $11,%esi
-        andl    %ebp,%eax
-        leal    773529912(%ebx,%edx,1),%edx
-        xorl    %ecx,%esi
-        xorl    %edi,%eax
-        movl    44(%esp),%ecx
-        rorl    $2,%esi
-        addl    %edx,%eax
-        addl    8(%esp),%edx
-        addl    %esi,%eax
-        movl    32(%esp),%esi
-        movl    %ecx,%ebx
-        rorl    $11,%ecx
-        movl    %esi,%edi
-        rorl    $2,%esi
-        xorl    %ebx,%ecx
-        shrl    $3,%ebx
-        rorl    $7,%ecx
-        xorl    %edi,%esi
-        xorl    %ecx,%ebx
-        rorl    $17,%esi
-        addl    40(%esp),%ebx
-        shrl    $10,%edi
-        addl    76(%esp),%ebx
-        movl    %edx,%ecx
-        xorl    %esi,%edi
-        movl    12(%esp),%esi
-        rorl    $14,%edx
-        addl    %edi,%ebx
-        movl    16(%esp),%edi
-        xorl    %ecx,%edx
-        movl    %ebx,40(%esp)
-        xorl    %edi,%esi
-        rorl    $5,%edx
-        andl    %ecx,%esi
-        movl    %ecx,8(%esp)
-        xorl    %ecx,%edx
-        addl    20(%esp),%ebx
-        xorl    %esi,%edi
-        rorl    $6,%edx
-        movl    %eax,%ecx
-        addl    %edi,%ebx
-        rorl    $9,%ecx
-        movl    %eax,%esi
-        movl    28(%esp),%edi
-        xorl    %eax,%ecx
-        movl    %eax,24(%esp)
-        xorl    %edi,%eax
-        rorl    $11,%ecx
-        andl    %eax,%ebp
-        leal    1294757372(%ebx,%edx,1),%edx
-        xorl    %esi,%ecx
-        xorl    %edi,%ebp
-        movl    48(%esp),%esi
-        rorl    $2,%ecx
-        addl    %edx,%ebp
-        addl    4(%esp),%edx
-        addl    %ecx,%ebp
-        movl    36(%esp),%ecx
-        movl    %esi,%ebx
-        rorl    $11,%esi
-        movl    %ecx,%edi
-        rorl    $2,%ecx
-        xorl    %ebx,%esi
-        shrl    $3,%ebx
-        rorl    $7,%esi
-        xorl    %edi,%ecx
-        xorl    %esi,%ebx
-        rorl    $17,%ecx
-        addl    44(%esp),%ebx
-        shrl    $10,%edi
-        addl    80(%esp),%ebx
-        movl    %edx,%esi
-        xorl    %ecx,%edi
-        movl    8(%esp),%ecx
-        rorl    $14,%edx
-        addl    %edi,%ebx
-        movl    12(%esp),%edi
-        xorl    %esi,%edx
-        movl    %ebx,44(%esp)
-        xorl    %edi,%ecx
-        rorl    $5,%edx
-        andl    %esi,%ecx
-        movl    %esi,4(%esp)
-        xorl    %esi,%edx
-        addl    16(%esp),%ebx
-        xorl    %ecx,%edi
-        rorl    $6,%edx
-        movl    %ebp,%esi
-        addl    %edi,%ebx
-        rorl    $9,%esi
-        movl    %ebp,%ecx
-        movl    24(%esp),%edi
-        xorl    %ebp,%esi
-        movl    %ebp,20(%esp)
-        xorl    %edi,%ebp
-        rorl    $11,%esi
-        andl    %ebp,%eax
-        leal    1396182291(%ebx,%edx,1),%edx
-        xorl    %ecx,%esi
-        xorl    %edi,%eax
-        movl    52(%esp),%ecx
-        rorl    $2,%esi
-        addl    %edx,%eax
-        addl    (%esp),%edx
-        addl    %esi,%eax
-        movl    40(%esp),%esi
-        movl    %ecx,%ebx
-        rorl    $11,%ecx
-        movl    %esi,%edi
-        rorl    $2,%esi
-        xorl    %ebx,%ecx
-        shrl    $3,%ebx
-        rorl    $7,%ecx
-        xorl    %edi,%esi
-        xorl    %ecx,%ebx
-        rorl    $17,%esi
-        addl    48(%esp),%ebx
-        shrl    $10,%edi
-        addl    84(%esp),%ebx
-        movl    %edx,%ecx
-        xorl    %esi,%edi
-        movl    4(%esp),%esi
-        rorl    $14,%edx
-        addl    %edi,%ebx
-        movl    8(%esp),%edi
-        xorl    %ecx,%edx
-        movl    %ebx,48(%esp)
-        xorl    %edi,%esi
-        rorl    $5,%edx
-        andl    %ecx,%esi
-        movl    %ecx,(%esp)
-        xorl    %ecx,%edx
-        addl    12(%esp),%ebx
-        xorl    %esi,%edi
-        rorl    $6,%edx
-        movl    %eax,%ecx
-        addl    %edi,%ebx
-        rorl    $9,%ecx
-        movl    %eax,%esi
-        movl    20(%esp),%edi
-        xorl    %eax,%ecx
-        movl    %eax,16(%esp)
-        xorl    %edi,%eax
-        rorl    $11,%ecx
-        andl    %eax,%ebp
-        leal    1695183700(%ebx,%edx,1),%edx
-        xorl    %esi,%ecx
-        xorl    %edi,%ebp
-        movl    56(%esp),%esi
-        rorl    $2,%ecx
-        addl    %edx,%ebp
-        addl    28(%esp),%edx
-        addl    %ecx,%ebp
-        movl    44(%esp),%ecx
-        movl    %esi,%ebx
-        rorl    $11,%esi
-        movl    %ecx,%edi
-        rorl    $2,%ecx
-        xorl    %ebx,%esi
-        shrl    $3,%ebx
-        rorl    $7,%esi
-        xorl    %edi,%ecx
-        xorl    %esi,%ebx
-        rorl    $17,%ecx
-        addl    52(%esp),%ebx
-        shrl    $10,%edi
-        addl    88(%esp),%ebx
-        movl    %edx,%esi
-        xorl    %ecx,%edi
-        movl    (%esp),%ecx
-        rorl    $14,%edx
-        addl    %edi,%ebx
-        movl    4(%esp),%edi
-        xorl    %esi,%edx
-        movl    %ebx,52(%esp)
-        xorl    %edi,%ecx
-        rorl    $5,%edx
-        andl    %esi,%ecx
-        movl    %esi,28(%esp)
-        xorl    %esi,%edx
-        addl    8(%esp),%ebx
-        xorl    %ecx,%edi
-        rorl    $6,%edx
-        movl    %ebp,%esi
-        addl    %edi,%ebx
-        rorl    $9,%esi
-        movl    %ebp,%ecx
-        movl    16(%esp),%edi
-        xorl    %ebp,%esi
-        movl    %ebp,12(%esp)
-        xorl    %edi,%ebp
-        rorl    $11,%esi
-        andl    %ebp,%eax
-        leal    1986661051(%ebx,%edx,1),%edx
-        xorl    %ecx,%esi
-        xorl    %edi,%eax
-        movl    60(%esp),%ecx
-        rorl    $2,%esi
-        addl    %edx,%eax
-        addl    24(%esp),%edx
-        addl    %esi,%eax
-        movl    48(%esp),%esi
-        movl    %ecx,%ebx
-        rorl    $11,%ecx
-        movl    %esi,%edi
-        rorl    $2,%esi
-        xorl    %ebx,%ecx
-        shrl    $3,%ebx
-        rorl    $7,%ecx
-        xorl    %edi,%esi
-        xorl    %ecx,%ebx
-        rorl    $17,%esi
-        addl    56(%esp),%ebx
-        shrl    $10,%edi
-        addl    92(%esp),%ebx
-        movl    %edx,%ecx
-        xorl    %esi,%edi
-        movl    28(%esp),%esi
-        rorl    $14,%edx
-        addl    %edi,%ebx
-        movl    (%esp),%edi
-        xorl    %ecx,%edx
-        movl    %ebx,56(%esp)
-        xorl    %edi,%esi
-        rorl    $5,%edx
-        andl    %ecx,%esi
-        movl    %ecx,24(%esp)
-        xorl    %ecx,%edx
-        addl    4(%esp),%ebx
-        xorl    %esi,%edi
-        rorl    $6,%edx
-        movl    %eax,%ecx
-        addl    %edi,%ebx
-        rorl    $9,%ecx
-        movl    %eax,%esi
-        movl    12(%esp),%edi
-        xorl    %eax,%ecx
-        movl    %eax,8(%esp)
-        xorl    %edi,%eax
-        rorl    $11,%ecx
-        andl    %eax,%ebp
-        leal    2177026350(%ebx,%edx,1),%edx
-        xorl    %esi,%ecx
-        xorl    %edi,%ebp
-        movl    64(%esp),%esi
-        rorl    $2,%ecx
-        addl    %edx,%ebp
-        addl    20(%esp),%edx
-        addl    %ecx,%ebp
-        movl    52(%esp),%ecx
-        movl    %esi,%ebx
-        rorl    $11,%esi
-        movl    %ecx,%edi
-        rorl    $2,%ecx
-        xorl    %ebx,%esi
-        shrl    $3,%ebx
-        rorl    $7,%esi
-        xorl    %edi,%ecx
-        xorl    %esi,%ebx
-        rorl    $17,%ecx
-        addl    60(%esp),%ebx
-        shrl    $10,%edi
-        addl    32(%esp),%ebx
-        movl    %edx,%esi
-        xorl    %ecx,%edi
-        movl    24(%esp),%ecx
-        rorl    $14,%edx
-        addl    %edi,%ebx
-        movl    28(%esp),%edi
-        xorl    %esi,%edx
-        movl    %ebx,60(%esp)
-        xorl    %edi,%ecx
-        rorl    $5,%edx
-        andl    %esi,%ecx
-        movl    %esi,20(%esp)
-        xorl    %esi,%edx
-        addl    (%esp),%ebx
-        xorl    %ecx,%edi
-        rorl    $6,%edx
-        movl    %ebp,%esi
-        addl    %edi,%ebx
-        rorl    $9,%esi
-        movl    %ebp,%ecx
-        movl    8(%esp),%edi
-        xorl    %ebp,%esi
-        movl    %ebp,4(%esp)
-        xorl    %edi,%ebp
-        rorl    $11,%esi
-        andl    %ebp,%eax
-        leal    2456956037(%ebx,%edx,1),%edx
-        xorl    %ecx,%esi
-        xorl    %edi,%eax
-        movl    68(%esp),%ecx
-        rorl    $2,%esi
-        addl    %edx,%eax
-        addl    16(%esp),%edx
-        addl    %esi,%eax
-        movl    56(%esp),%esi
-        movl    %ecx,%ebx
-        rorl    $11,%ecx
-        movl    %esi,%edi
-        rorl    $2,%esi
-        xorl    %ebx,%ecx
-        shrl    $3,%ebx
-        rorl    $7,%ecx
-        xorl    %edi,%esi
-        xorl    %ecx,%ebx
-        rorl    $17,%esi
-        addl    64(%esp),%ebx
-        shrl    $10,%edi
-        addl    36(%esp),%ebx
-        movl    %edx,%ecx
-        xorl    %esi,%edi
-        movl    20(%esp),%esi
-        rorl    $14,%edx
-        addl    %edi,%ebx
-        movl    24(%esp),%edi
-        xorl    %ecx,%edx
-        movl    %ebx,64(%esp)
-        xorl    %edi,%esi
-        rorl    $5,%edx
-        andl    %ecx,%esi
-        movl    %ecx,16(%esp)
-        xorl    %ecx,%edx
-        addl    28(%esp),%ebx
-        xorl    %esi,%edi
-        rorl    $6,%edx
-        movl    %eax,%ecx
-        addl    %edi,%ebx
-        rorl    $9,%ecx
-        movl    %eax,%esi
-        movl    4(%esp),%edi
-        xorl    %eax,%ecx
-        movl    %eax,(%esp)
-        xorl    %edi,%eax
-        rorl    $11,%ecx
-        andl    %eax,%ebp
-        leal    2730485921(%ebx,%edx,1),%edx
-        xorl    %esi,%ecx
-        xorl    %edi,%ebp
-        movl    72(%esp),%esi
-        rorl    $2,%ecx
-        addl    %edx,%ebp
-        addl    12(%esp),%edx
-        addl    %ecx,%ebp
-        movl    60(%esp),%ecx
-        movl    %esi,%ebx
-        rorl    $11,%esi
-        movl    %ecx,%edi
-        rorl    $2,%ecx
-        xorl    %ebx,%esi
-        shrl    $3,%ebx
-        rorl    $7,%esi
-        xorl    %edi,%ecx
-        xorl    %esi,%ebx
-        rorl    $17,%ecx
-        addl    68(%esp),%ebx
-        shrl    $10,%edi
-        addl    40(%esp),%ebx
-        movl    %edx,%esi
-        xorl    %ecx,%edi
-        movl    16(%esp),%ecx
-        rorl    $14,%edx
-        addl    %edi,%ebx
-        movl    20(%esp),%edi
-        xorl    %esi,%edx
-        movl    %ebx,68(%esp)
-        xorl    %edi,%ecx
-        rorl    $5,%edx
-        andl    %esi,%ecx
-        movl    %esi,12(%esp)
-        xorl    %esi,%edx
-        addl    24(%esp),%ebx
-        xorl    %ecx,%edi
-        rorl    $6,%edx
-        movl    %ebp,%esi
-        addl    %edi,%ebx
-        rorl    $9,%esi
-        movl    %ebp,%ecx
-        movl    (%esp),%edi
-        xorl    %ebp,%esi
-        movl    %ebp,28(%esp)
-        xorl    %edi,%ebp
-        rorl    $11,%esi
-        andl    %ebp,%eax
-        leal    2820302411(%ebx,%edx,1),%edx
-        xorl    %ecx,%esi
-        xorl    %edi,%eax
-        movl    76(%esp),%ecx
-        rorl    $2,%esi
-        addl    %edx,%eax
-        addl    8(%esp),%edx
-        addl    %esi,%eax
-        movl    64(%esp),%esi
-        movl    %ecx,%ebx
-        rorl    $11,%ecx
-        movl    %esi,%edi
-        rorl    $2,%esi
-        xorl    %ebx,%ecx
-        shrl    $3,%ebx
-        rorl    $7,%ecx
-        xorl    %edi,%esi
-        xorl    %ecx,%ebx
-        rorl    $17,%esi
-        addl    72(%esp),%ebx
-        shrl    $10,%edi
-        addl    44(%esp),%ebx
-        movl    %edx,%ecx
-        xorl    %esi,%edi
-        movl    12(%esp),%esi
-        rorl    $14,%edx
-        addl    %edi,%ebx
-        movl    16(%esp),%edi
-        xorl    %ecx,%edx
-        movl    %ebx,72(%esp)
-        xorl    %edi,%esi
-        rorl    $5,%edx
-        andl    %ecx,%esi
-        movl    %ecx,8(%esp)
-        xorl    %ecx,%edx
-        addl    20(%esp),%ebx
-        xorl    %esi,%edi
-        rorl    $6,%edx
-        movl    %eax,%ecx
-        addl    %edi,%ebx
-        rorl    $9,%ecx
-        movl    %eax,%esi
-        movl    28(%esp),%edi
-        xorl    %eax,%ecx
-        movl    %eax,24(%esp)
-        xorl    %edi,%eax
-        rorl    $11,%ecx
-        andl    %eax,%ebp
-        leal    3259730800(%ebx,%edx,1),%edx
-        xorl    %esi,%ecx
-        xorl    %edi,%ebp
-        movl    80(%esp),%esi
-        rorl    $2,%ecx
-        addl    %edx,%ebp
-        addl    4(%esp),%edx
-        addl    %ecx,%ebp
-        movl    68(%esp),%ecx
-        movl    %esi,%ebx
-        rorl    $11,%esi
-        movl    %ecx,%edi
-        rorl    $2,%ecx
-        xorl    %ebx,%esi
-        shrl    $3,%ebx
-        rorl    $7,%esi
-        xorl    %edi,%ecx
-        xorl    %esi,%ebx
-        rorl    $17,%ecx
-        addl    76(%esp),%ebx
-        shrl    $10,%edi
-        addl    48(%esp),%ebx
-        movl    %edx,%esi
-        xorl    %ecx,%edi
-        movl    8(%esp),%ecx
-        rorl    $14,%edx
-        addl    %edi,%ebx
-        movl    12(%esp),%edi
-        xorl    %esi,%edx
-        movl    %ebx,76(%esp)
-        xorl    %edi,%ecx
-        rorl    $5,%edx
-        andl    %esi,%ecx
-        movl    %esi,4(%esp)
-        xorl    %esi,%edx
-        addl    16(%esp),%ebx
-        xorl    %ecx,%edi
-        rorl    $6,%edx
-        movl    %ebp,%esi
-        addl    %edi,%ebx
-        rorl    $9,%esi
-        movl    %ebp,%ecx
-        movl    24(%esp),%edi
-        xorl    %ebp,%esi
-        movl    %ebp,20(%esp)
-        xorl    %edi,%ebp
-        rorl    $11,%esi
-        andl    %ebp,%eax
-        leal    3345764771(%ebx,%edx,1),%edx
-        xorl    %ecx,%esi
-        xorl    %edi,%eax
-        movl    84(%esp),%ecx
-        rorl    $2,%esi
-        addl    %edx,%eax
-        addl    (%esp),%edx
-        addl    %esi,%eax
-        movl    72(%esp),%esi
-        movl    %ecx,%ebx
-        rorl    $11,%ecx
-        movl    %esi,%edi
-        rorl    $2,%esi
-        xorl    %ebx,%ecx
-        shrl    $3,%ebx
-        rorl    $7,%ecx
-        xorl    %edi,%esi
-        xorl    %ecx,%ebx
-        rorl    $17,%esi
-        addl    80(%esp),%ebx
-        shrl    $10,%edi
-        addl    52(%esp),%ebx
-        movl    %edx,%ecx
-        xorl    %esi,%edi
-        movl    4(%esp),%esi
-        rorl    $14,%edx
-        addl    %edi,%ebx
-        movl    8(%esp),%edi
-        xorl    %ecx,%edx
-        movl    %ebx,80(%esp)
-        xorl    %edi,%esi
-        rorl    $5,%edx
-        andl    %ecx,%esi
-        movl    %ecx,(%esp)
-        xorl    %ecx,%edx
-        addl    12(%esp),%ebx
-        xorl    %esi,%edi
-        rorl    $6,%edx
-        movl    %eax,%ecx
-        addl    %edi,%ebx
-        rorl    $9,%ecx
-        movl    %eax,%esi
-        movl    20(%esp),%edi
-        xorl    %eax,%ecx
-        movl    %eax,16(%esp)
-        xorl    %edi,%eax
-        rorl    $11,%ecx
-        andl    %eax,%ebp
-        leal    3516065817(%ebx,%edx,1),%edx
-        xorl    %esi,%ecx
-        xorl    %edi,%ebp
-        movl    88(%esp),%esi
-        rorl    $2,%ecx
-        addl    %edx,%ebp
-        addl    28(%esp),%edx
-        addl    %ecx,%ebp
-        movl    76(%esp),%ecx
-        movl    %esi,%ebx
-        rorl    $11,%esi
-        movl    %ecx,%edi
-        rorl    $2,%ecx
-        xorl    %ebx,%esi
-        shrl    $3,%ebx
-        rorl    $7,%esi
-        xorl    %edi,%ecx
-        xorl    %esi,%ebx
-        rorl    $17,%ecx
-        addl    84(%esp),%ebx
-        shrl    $10,%edi
-        addl    56(%esp),%ebx
-        movl    %edx,%esi
-        xorl    %ecx,%edi
-        movl    (%esp),%ecx
-        rorl    $14,%edx
-        addl    %edi,%ebx
-        movl    4(%esp),%edi
-        xorl    %esi,%edx
-        movl    %ebx,84(%esp)
-        xorl    %edi,%ecx
-        rorl    $5,%edx
-        andl    %esi,%ecx
-        movl    %esi,28(%esp)
-        xorl    %esi,%edx
-        addl    8(%esp),%ebx
-        xorl    %ecx,%edi
-        rorl    $6,%edx
-        movl    %ebp,%esi
-        addl    %edi,%ebx
-        rorl    $9,%esi
-        movl    %ebp,%ecx
-        movl    16(%esp),%edi
-        xorl    %ebp,%esi
-        movl    %ebp,12(%esp)
-        xorl    %edi,%ebp
-        rorl    $11,%esi
-        andl    %ebp,%eax
-        leal    3600352804(%ebx,%edx,1),%edx
-        xorl    %ecx,%esi
-        xorl    %edi,%eax
-        movl    92(%esp),%ecx
-        rorl    $2,%esi
-        addl    %edx,%eax
-        addl    24(%esp),%edx
-        addl    %esi,%eax
-        movl    80(%esp),%esi
-        movl    %ecx,%ebx
-        rorl    $11,%ecx
-        movl    %esi,%edi
-        rorl    $2,%esi
-        xorl    %ebx,%ecx
-        shrl    $3,%ebx
-        rorl    $7,%ecx
-        xorl    %edi,%esi
-        xorl    %ecx,%ebx
-        rorl    $17,%esi
-        addl    88(%esp),%ebx
-        shrl    $10,%edi
-        addl    60(%esp),%ebx
-        movl    %edx,%ecx
-        xorl    %esi,%edi
-        movl    28(%esp),%esi
-        rorl    $14,%edx
-        addl    %edi,%ebx
-        movl    (%esp),%edi
-        xorl    %ecx,%edx
-        movl    %ebx,88(%esp)
-        xorl    %edi,%esi
-        rorl    $5,%edx
-        andl    %ecx,%esi
-        movl    %ecx,24(%esp)
-        xorl    %ecx,%edx
-        addl    4(%esp),%ebx
-        xorl    %esi,%edi
-        rorl    $6,%edx
-        movl    %eax,%ecx
-        addl    %edi,%ebx
-        rorl    $9,%ecx
-        movl    %eax,%esi
-        movl    12(%esp),%edi
-        xorl    %eax,%ecx
-        movl    %eax,8(%esp)
-        xorl    %edi,%eax
-        rorl    $11,%ecx
-        andl    %eax,%ebp
-        leal    4094571909(%ebx,%edx,1),%edx
-        xorl    %esi,%ecx
-        xorl    %edi,%ebp
-        movl    32(%esp),%esi
-        rorl    $2,%ecx
-        addl    %edx,%ebp
-        addl    20(%esp),%edx
-        addl    %ecx,%ebp
-        movl    84(%esp),%ecx
-        movl    %esi,%ebx
-        rorl    $11,%esi
-        movl    %ecx,%edi
-        rorl    $2,%ecx
-        xorl    %ebx,%esi
-        shrl    $3,%ebx
-        rorl    $7,%esi
-        xorl    %edi,%ecx
-        xorl    %esi,%ebx
-        rorl    $17,%ecx
-        addl    92(%esp),%ebx
-        shrl    $10,%edi
-        addl    64(%esp),%ebx
-        movl    %edx,%esi
-        xorl    %ecx,%edi
-        movl    24(%esp),%ecx
-        rorl    $14,%edx
-        addl    %edi,%ebx
-        movl    28(%esp),%edi
-        xorl    %esi,%edx
-        movl    %ebx,92(%esp)
-        xorl    %edi,%ecx
-        rorl    $5,%edx
-        andl    %esi,%ecx
-        movl    %esi,20(%esp)
-        xorl    %esi,%edx
-        addl    (%esp),%ebx
-        xorl    %ecx,%edi
-        rorl    $6,%edx
-        movl    %ebp,%esi
-        addl    %edi,%ebx
-        rorl    $9,%esi
-        movl    %ebp,%ecx
-        movl    8(%esp),%edi
-        xorl    %ebp,%esi
-        movl    %ebp,4(%esp)
-        xorl    %edi,%ebp
-        rorl    $11,%esi
-        andl    %ebp,%eax
-        leal    275423344(%ebx,%edx,1),%edx
-        xorl    %ecx,%esi
-        xorl    %edi,%eax
-        movl    36(%esp),%ecx
-        rorl    $2,%esi
-        addl    %edx,%eax
-        addl    16(%esp),%edx
-        addl    %esi,%eax
-        movl    88(%esp),%esi
-        movl    %ecx,%ebx
-        rorl    $11,%ecx
-        movl    %esi,%edi
-        rorl    $2,%esi
-        xorl    %ebx,%ecx
-        shrl    $3,%ebx
-        rorl    $7,%ecx
-        xorl    %edi,%esi
-        xorl    %ecx,%ebx
-        rorl    $17,%esi
-        addl    32(%esp),%ebx
-        shrl    $10,%edi
-        addl    68(%esp),%ebx
-        movl    %edx,%ecx
-        xorl    %esi,%edi
-        movl    20(%esp),%esi
-        rorl    $14,%edx
-        addl    %edi,%ebx
-        movl    24(%esp),%edi
-        xorl    %ecx,%edx
-        movl    %ebx,32(%esp)
-        xorl    %edi,%esi
-        rorl    $5,%edx
-        andl    %ecx,%esi
-        movl    %ecx,16(%esp)
-        xorl    %ecx,%edx
-        addl    28(%esp),%ebx
-        xorl    %esi,%edi
-        rorl    $6,%edx
-        movl    %eax,%ecx
-        addl    %edi,%ebx
-        rorl    $9,%ecx
-        movl    %eax,%esi
-        movl    4(%esp),%edi
-        xorl    %eax,%ecx
-        movl    %eax,(%esp)
-        xorl    %edi,%eax
-        rorl    $11,%ecx
-        andl    %eax,%ebp
-        leal    430227734(%ebx,%edx,1),%edx
-        xorl    %esi,%ecx
-        xorl    %edi,%ebp
-        movl    40(%esp),%esi
-        rorl    $2,%ecx
-        addl    %edx,%ebp
-        addl    12(%esp),%edx
-        addl    %ecx,%ebp
-        movl    92(%esp),%ecx
-        movl    %esi,%ebx
-        rorl    $11,%esi
-        movl    %ecx,%edi
-        rorl    $2,%ecx
-        xorl    %ebx,%esi
-        shrl    $3,%ebx
-        rorl    $7,%esi
-        xorl    %edi,%ecx
-        xorl    %esi,%ebx
-        rorl    $17,%ecx
-        addl    36(%esp),%ebx
-        shrl    $10,%edi
-        addl    72(%esp),%ebx
-        movl    %edx,%esi
-        xorl    %ecx,%edi
-        movl    16(%esp),%ecx
-        rorl    $14,%edx
-        addl    %edi,%ebx
-        movl    20(%esp),%edi
-        xorl    %esi,%edx
-        movl    %ebx,36(%esp)
-        xorl    %edi,%ecx
-        rorl    $5,%edx
-        andl    %esi,%ecx
-        movl    %esi,12(%esp)
-        xorl    %esi,%edx
-        addl    24(%esp),%ebx
-        xorl    %ecx,%edi
-        rorl    $6,%edx
-        movl    %ebp,%esi
-        addl    %edi,%ebx
-        rorl    $9,%esi
-        movl    %ebp,%ecx
-        movl    (%esp),%edi
-        xorl    %ebp,%esi
-        movl    %ebp,28(%esp)
-        xorl    %edi,%ebp
-        rorl    $11,%esi
-        andl    %ebp,%eax
-        leal    506948616(%ebx,%edx,1),%edx
-        xorl    %ecx,%esi
-        xorl    %edi,%eax
-        movl    44(%esp),%ecx
-        rorl    $2,%esi
-        addl    %edx,%eax
-        addl    8(%esp),%edx
-        addl    %esi,%eax
-        movl    32(%esp),%esi
-        movl    %ecx,%ebx
-        rorl    $11,%ecx
-        movl    %esi,%edi
-        rorl    $2,%esi
-        xorl    %ebx,%ecx
-        shrl    $3,%ebx
-        rorl    $7,%ecx
-        xorl    %edi,%esi
-        xorl    %ecx,%ebx
-        rorl    $17,%esi
-        addl    40(%esp),%ebx
-        shrl    $10,%edi
-        addl    76(%esp),%ebx
-        movl    %edx,%ecx
-        xorl    %esi,%edi
-        movl    12(%esp),%esi
-        rorl    $14,%edx
-        addl    %edi,%ebx
-        movl    16(%esp),%edi
-        xorl    %ecx,%edx
-        movl    %ebx,40(%esp)
-        xorl    %edi,%esi
-        rorl    $5,%edx
-        andl    %ecx,%esi
-        movl    %ecx,8(%esp)
-        xorl    %ecx,%edx
-        addl    20(%esp),%ebx
-        xorl    %esi,%edi
-        rorl    $6,%edx
-        movl    %eax,%ecx
-        addl    %edi,%ebx
-        rorl    $9,%ecx
-        movl    %eax,%esi
-        movl    28(%esp),%edi
-        xorl    %eax,%ecx
-        movl    %eax,24(%esp)
-        xorl    %edi,%eax
-        rorl    $11,%ecx
-        andl    %eax,%ebp
-        leal    659060556(%ebx,%edx,1),%edx
-        xorl    %esi,%ecx
-        xorl    %edi,%ebp
-        movl    48(%esp),%esi
-        rorl    $2,%ecx
-        addl    %edx,%ebp
-        addl    4(%esp),%edx
-        addl    %ecx,%ebp
-        movl    36(%esp),%ecx
-        movl    %esi,%ebx
-        rorl    $11,%esi
-        movl    %ecx,%edi
-        rorl    $2,%ecx
-        xorl    %ebx,%esi
-        shrl    $3,%ebx
-        rorl    $7,%esi
-        xorl    %edi,%ecx
-        xorl    %esi,%ebx
-        rorl    $17,%ecx
-        addl    44(%esp),%ebx
-        shrl    $10,%edi
-        addl    80(%esp),%ebx
-        movl    %edx,%esi
-        xorl    %ecx,%edi
-        movl    8(%esp),%ecx
-        rorl    $14,%edx
-        addl    %edi,%ebx
-        movl    12(%esp),%edi
-        xorl    %esi,%edx
-        movl    %ebx,44(%esp)
-        xorl    %edi,%ecx
-        rorl    $5,%edx
-        andl    %esi,%ecx
-        movl    %esi,4(%esp)
-        xorl    %esi,%edx
-        addl    16(%esp),%ebx
-        xorl    %ecx,%edi
-        rorl    $6,%edx
-        movl    %ebp,%esi
-        addl    %edi,%ebx
-        rorl    $9,%esi
-        movl    %ebp,%ecx
-        movl    24(%esp),%edi
-        xorl    %ebp,%esi
-        movl    %ebp,20(%esp)
-        xorl    %edi,%ebp
-        rorl    $11,%esi
-        andl    %ebp,%eax
-        leal    883997877(%ebx,%edx,1),%edx
-        xorl    %ecx,%esi
-        xorl    %edi,%eax
-        movl    52(%esp),%ecx
-        rorl    $2,%esi
-        addl    %edx,%eax
-        addl    (%esp),%edx
-        addl    %esi,%eax
-        movl    40(%esp),%esi
-        movl    %ecx,%ebx
-        rorl    $11,%ecx
-        movl    %esi,%edi
-        rorl    $2,%esi
-        xorl    %ebx,%ecx
-        shrl    $3,%ebx
-        rorl    $7,%ecx
-        xorl    %edi,%esi
-        xorl    %ecx,%ebx
-        rorl    $17,%esi
-        addl    48(%esp),%ebx
-        shrl    $10,%edi
-        addl    84(%esp),%ebx
-        movl    %edx,%ecx
-        xorl    %esi,%edi
-        movl    4(%esp),%esi
-        rorl    $14,%edx
-        addl    %edi,%ebx
-        movl    8(%esp),%edi
-        xorl    %ecx,%edx
-        movl    %ebx,48(%esp)
-        xorl    %edi,%esi
-        rorl    $5,%edx
-        andl    %ecx,%esi
-        movl    %ecx,(%esp)
-        xorl    %ecx,%edx
-        addl    12(%esp),%ebx
-        xorl    %esi,%edi
-        rorl    $6,%edx
-        movl    %eax,%ecx
-        addl    %edi,%ebx
-        rorl    $9,%ecx
-        movl    %eax,%esi
-        movl    20(%esp),%edi
-        xorl    %eax,%ecx
-        movl    %eax,16(%esp)
-        xorl    %edi,%eax
-        rorl    $11,%ecx
-        andl    %eax,%ebp
-        leal    958139571(%ebx,%edx,1),%edx
-        xorl    %esi,%ecx
-        xorl    %edi,%ebp
-        movl    56(%esp),%esi
-        rorl    $2,%ecx
-        addl    %edx,%ebp
-        addl    28(%esp),%edx
-        addl    %ecx,%ebp
-        movl    44(%esp),%ecx
-        movl    %esi,%ebx
-        rorl    $11,%esi
-        movl    %ecx,%edi
-        rorl    $2,%ecx
-        xorl    %ebx,%esi
-        shrl    $3,%ebx
-        rorl    $7,%esi
-        xorl    %edi,%ecx
-        xorl    %esi,%ebx
-        rorl    $17,%ecx
-        addl    52(%esp),%ebx
-        shrl    $10,%edi
-        addl    88(%esp),%ebx
-        movl    %edx,%esi
-        xorl    %ecx,%edi
-        movl    (%esp),%ecx
-        rorl    $14,%edx
-        addl    %edi,%ebx
-        movl    4(%esp),%edi
-        xorl    %esi,%edx
-        movl    %ebx,52(%esp)
-        xorl    %edi,%ecx
-        rorl    $5,%edx
-        andl    %esi,%ecx
-        movl    %esi,28(%esp)
-        xorl    %esi,%edx
-        addl    8(%esp),%ebx
-        xorl    %ecx,%edi
-        rorl    $6,%edx
-        movl    %ebp,%esi
-        addl    %edi,%ebx
-        rorl    $9,%esi
-        movl    %ebp,%ecx
-        movl    16(%esp),%edi
-        xorl    %ebp,%esi
-        movl    %ebp,12(%esp)
-        xorl    %edi,%ebp
-        rorl    $11,%esi
-        andl    %ebp,%eax
-        leal    1322822218(%ebx,%edx,1),%edx
-        xorl    %ecx,%esi
-        xorl    %edi,%eax
-        movl    60(%esp),%ecx
-        rorl    $2,%esi
-        addl    %edx,%eax
-        addl    24(%esp),%edx
-        addl    %esi,%eax
-        movl    48(%esp),%esi
-        movl    %ecx,%ebx
-        rorl    $11,%ecx
-        movl    %esi,%edi
-        rorl    $2,%esi
-        xorl    %ebx,%ecx
-        shrl    $3,%ebx
-        rorl    $7,%ecx
-        xorl    %edi,%esi
-        xorl    %ecx,%ebx
-        rorl    $17,%esi
-        addl    56(%esp),%ebx
-        shrl    $10,%edi
-        addl    92(%esp),%ebx
-        movl    %edx,%ecx
-        xorl    %esi,%edi
-        movl    28(%esp),%esi
-        rorl    $14,%edx
-        addl    %edi,%ebx
-        movl    (%esp),%edi
-        xorl    %ecx,%edx
-        movl    %ebx,56(%esp)
-        xorl    %edi,%esi
-        rorl    $5,%edx
-        andl    %ecx,%esi
-        movl    %ecx,24(%esp)
-        xorl    %ecx,%edx
-        addl    4(%esp),%ebx
-        xorl    %esi,%edi
-        rorl    $6,%edx
-        movl    %eax,%ecx
-        addl    %edi,%ebx
-        rorl    $9,%ecx
-        movl    %eax,%esi
-        movl    12(%esp),%edi
-        xorl    %eax,%ecx
-        movl    %eax,8(%esp)
-        xorl    %edi,%eax
-        rorl    $11,%ecx
-        andl    %eax,%ebp
-        leal    1537002063(%ebx,%edx,1),%edx
-        xorl    %esi,%ecx
-        xorl    %edi,%ebp
-        movl    64(%esp),%esi
-        rorl    $2,%ecx
-        addl    %edx,%ebp
-        addl    20(%esp),%edx
-        addl    %ecx,%ebp
-        movl    52(%esp),%ecx
-        movl    %esi,%ebx
-        rorl    $11,%esi
-        movl    %ecx,%edi
-        rorl    $2,%ecx
-        xorl    %ebx,%esi
-        shrl    $3,%ebx
-        rorl    $7,%esi
-        xorl    %edi,%ecx
-        xorl    %esi,%ebx
-        rorl    $17,%ecx
-        addl    60(%esp),%ebx
-        shrl    $10,%edi
-        addl    32(%esp),%ebx
-        movl    %edx,%esi
-        xorl    %ecx,%edi
-        movl    24(%esp),%ecx
-        rorl    $14,%edx
-        addl    %edi,%ebx
-        movl    28(%esp),%edi
-        xorl    %esi,%edx
-        movl    %ebx,60(%esp)
-        xorl    %edi,%ecx
-        rorl    $5,%edx
-        andl    %esi,%ecx
-        movl    %esi,20(%esp)
-        xorl    %esi,%edx
-        addl    (%esp),%ebx
-        xorl    %ecx,%edi
-        rorl    $6,%edx
-        movl    %ebp,%esi
-        addl    %edi,%ebx
-        rorl    $9,%esi
-        movl    %ebp,%ecx
-        movl    8(%esp),%edi
-        xorl    %ebp,%esi
-        movl    %ebp,4(%esp)
-        xorl    %edi,%ebp
-        rorl    $11,%esi
-        andl    %ebp,%eax
-        leal    1747873779(%ebx,%edx,1),%edx
-        xorl    %ecx,%esi
-        xorl    %edi,%eax
-        movl    68(%esp),%ecx
-        rorl    $2,%esi
-        addl    %edx,%eax
-        addl    16(%esp),%edx
-        addl    %esi,%eax
-        movl    56(%esp),%esi
-        movl    %ecx,%ebx
-        rorl    $11,%ecx
-        movl    %esi,%edi
-        rorl    $2,%esi
-        xorl    %ebx,%ecx
-        shrl    $3,%ebx
-        rorl    $7,%ecx
-        xorl    %edi,%esi
-        xorl    %ecx,%ebx
-        rorl    $17,%esi
-        addl    64(%esp),%ebx
-        shrl    $10,%edi
-        addl    36(%esp),%ebx
-        movl    %edx,%ecx
-        xorl    %esi,%edi
-        movl    20(%esp),%esi
-        rorl    $14,%edx
-        addl    %edi,%ebx
-        movl    24(%esp),%edi
-        xorl    %ecx,%edx
-        movl    %ebx,64(%esp)
-        xorl    %edi,%esi
-        rorl    $5,%edx
-        andl    %ecx,%esi
-        movl    %ecx,16(%esp)
-        xorl    %ecx,%edx
-        addl    28(%esp),%ebx
-        xorl    %esi,%edi
-        rorl    $6,%edx
-        movl    %eax,%ecx
-        addl    %edi,%ebx
-        rorl    $9,%ecx
-        movl    %eax,%esi
-        movl    4(%esp),%edi
-        xorl    %eax,%ecx
-        movl    %eax,(%esp)
-        xorl    %edi,%eax
-        rorl    $11,%ecx
-        andl    %eax,%ebp
-        leal    1955562222(%ebx,%edx,1),%edx
-        xorl    %esi,%ecx
-        xorl    %edi,%ebp
-        movl    72(%esp),%esi
-        rorl    $2,%ecx
-        addl    %edx,%ebp
-        addl    12(%esp),%edx
-        addl    %ecx,%ebp
-        movl    60(%esp),%ecx
-        movl    %esi,%ebx
-        rorl    $11,%esi
-        movl    %ecx,%edi
-        rorl    $2,%ecx
-        xorl    %ebx,%esi
-        shrl    $3,%ebx
-        rorl    $7,%esi
-        xorl    %edi,%ecx
-        xorl    %esi,%ebx
-        rorl    $17,%ecx
-        addl    68(%esp),%ebx
-        shrl    $10,%edi
-        addl    40(%esp),%ebx
-        movl    %edx,%esi
-        xorl    %ecx,%edi
-        movl    16(%esp),%ecx
-        rorl    $14,%edx
-        addl    %edi,%ebx
-        movl    20(%esp),%edi
-        xorl    %esi,%edx
-        movl    %ebx,68(%esp)
-        xorl    %edi,%ecx
-        rorl    $5,%edx
-        andl    %esi,%ecx
-        movl    %esi,12(%esp)
-        xorl    %esi,%edx
-        addl    24(%esp),%ebx
-        xorl    %ecx,%edi
-        rorl    $6,%edx
-        movl    %ebp,%esi
-        addl    %edi,%ebx
-        rorl    $9,%esi
-        movl    %ebp,%ecx
-        movl    (%esp),%edi
-        xorl    %ebp,%esi
-        movl    %ebp,28(%esp)
-        xorl    %edi,%ebp
-        rorl    $11,%esi
-        andl    %ebp,%eax
-        leal    2024104815(%ebx,%edx,1),%edx
-        xorl    %ecx,%esi
-        xorl    %edi,%eax
-        movl    76(%esp),%ecx
-        rorl    $2,%esi
-        addl    %edx,%eax
-        addl    8(%esp),%edx
-        addl    %esi,%eax
-        movl    64(%esp),%esi
-        movl    %ecx,%ebx
-        rorl    $11,%ecx
-        movl    %esi,%edi
-        rorl    $2,%esi
-        xorl    %ebx,%ecx
-        shrl    $3,%ebx
-        rorl    $7,%ecx
-        xorl    %edi,%esi
-        xorl    %ecx,%ebx
-        rorl    $17,%esi
-        addl    72(%esp),%ebx
-        shrl    $10,%edi
-        addl    44(%esp),%ebx
-        movl    %edx,%ecx
-        xorl    %esi,%edi
-        movl    12(%esp),%esi
-        rorl    $14,%edx
-        addl    %edi,%ebx
-        movl    16(%esp),%edi
-        xorl    %ecx,%edx
-        movl    %ebx,72(%esp)
-        xorl    %edi,%esi
-        rorl    $5,%edx
-        andl    %ecx,%esi
-        movl    %ecx,8(%esp)
-        xorl    %ecx,%edx
-        addl    20(%esp),%ebx
-        xorl    %esi,%edi
-        rorl    $6,%edx
-        movl    %eax,%ecx
-        addl    %edi,%ebx
-        rorl    $9,%ecx
-        movl    %eax,%esi
-        movl    28(%esp),%edi
-        xorl    %eax,%ecx
-        movl    %eax,24(%esp)
-        xorl    %edi,%eax
-        rorl    $11,%ecx
-        andl    %eax,%ebp
-        leal    2227730452(%ebx,%edx,1),%edx
-        xorl    %esi,%ecx
-        xorl    %edi,%ebp
-        movl    80(%esp),%esi
-        rorl    $2,%ecx
-        addl    %edx,%ebp
-        addl    4(%esp),%edx
-        addl    %ecx,%ebp
-        movl    68(%esp),%ecx
-        movl    %esi,%ebx
-        rorl    $11,%esi
-        movl    %ecx,%edi
-        rorl    $2,%ecx
-        xorl    %ebx,%esi
-        shrl    $3,%ebx
-        rorl    $7,%esi
-        xorl    %edi,%ecx
-        xorl    %esi,%ebx
-        rorl    $17,%ecx
-        addl    76(%esp),%ebx
-        shrl    $10,%edi
-        addl    48(%esp),%ebx
-        movl    %edx,%esi
-        xorl    %ecx,%edi
-        movl    8(%esp),%ecx
-        rorl    $14,%edx
-        addl    %edi,%ebx
-        movl    12(%esp),%edi
-        xorl    %esi,%edx
-        movl    %ebx,76(%esp)
-        xorl    %edi,%ecx
-        rorl    $5,%edx
-        andl    %esi,%ecx
-        movl    %esi,4(%esp)
-        xorl    %esi,%edx
-        addl    16(%esp),%ebx
-        xorl    %ecx,%edi
-        rorl    $6,%edx
-        movl    %ebp,%esi
-        addl    %edi,%ebx
-        rorl    $9,%esi
-        movl    %ebp,%ecx
-        movl    24(%esp),%edi
-        xorl    %ebp,%esi
-        movl    %ebp,20(%esp)
-        xorl    %edi,%ebp
-        rorl    $11,%esi
-        andl    %ebp,%eax
-        leal    2361852424(%ebx,%edx,1),%edx
-        xorl    %ecx,%esi
-        xorl    %edi,%eax
-        movl    84(%esp),%ecx
-        rorl    $2,%esi
-        addl    %edx,%eax
-        addl    (%esp),%edx
-        addl    %esi,%eax
-        movl    72(%esp),%esi
-        movl    %ecx,%ebx
-        rorl    $11,%ecx
-        movl    %esi,%edi
-        rorl    $2,%esi
-        xorl    %ebx,%ecx
-        shrl    $3,%ebx
-        rorl    $7,%ecx
-        xorl    %edi,%esi
-        xorl    %ecx,%ebx
-        rorl    $17,%esi
-        addl    80(%esp),%ebx
-        shrl    $10,%edi
-        addl    52(%esp),%ebx
-        movl    %edx,%ecx
-        xorl    %esi,%edi
-        movl    4(%esp),%esi
-        rorl    $14,%edx
-        addl    %edi,%ebx
-        movl    8(%esp),%edi
-        xorl    %ecx,%edx
-        movl    %ebx,80(%esp)
-        xorl    %edi,%esi
-        rorl    $5,%edx
-        andl    %ecx,%esi
-        movl    %ecx,(%esp)
-        xorl    %ecx,%edx
-        addl    12(%esp),%ebx
-        xorl    %esi,%edi
-        rorl    $6,%edx
-        movl    %eax,%ecx
-        addl    %edi,%ebx
-        rorl    $9,%ecx
-        movl    %eax,%esi
-        movl    20(%esp),%edi
-        xorl    %eax,%ecx
-        movl    %eax,16(%esp)
-        xorl    %edi,%eax
-        rorl    $11,%ecx
-        andl    %eax,%ebp
-        leal    2428436474(%ebx,%edx,1),%edx
-        xorl    %esi,%ecx
-        xorl    %edi,%ebp
-        movl    88(%esp),%esi
-        rorl    $2,%ecx
-        addl    %edx,%ebp
-        addl    28(%esp),%edx
-        addl    %ecx,%ebp
-        movl    76(%esp),%ecx
-        movl    %esi,%ebx
-        rorl    $11,%esi
-        movl    %ecx,%edi
-        rorl    $2,%ecx
-        xorl    %ebx,%esi
-        shrl    $3,%ebx
-        rorl    $7,%esi
-        xorl    %edi,%ecx
-        xorl    %esi,%ebx
-        rorl    $17,%ecx
-        addl    84(%esp),%ebx
-        shrl    $10,%edi
-        addl    56(%esp),%ebx
-        movl    %edx,%esi
-        xorl    %ecx,%edi
-        movl    (%esp),%ecx
-        rorl    $14,%edx
-        addl    %edi,%ebx
-        movl    4(%esp),%edi
-        xorl    %esi,%edx
-        movl    %ebx,84(%esp)
-        xorl    %edi,%ecx
-        rorl    $5,%edx
-        andl    %esi,%ecx
-        movl    %esi,28(%esp)
-        xorl    %esi,%edx
-        addl    8(%esp),%ebx
-        xorl    %ecx,%edi
-        rorl    $6,%edx
-        movl    %ebp,%esi
-        addl    %edi,%ebx
-        rorl    $9,%esi
-        movl    %ebp,%ecx
-        movl    16(%esp),%edi
-        xorl    %ebp,%esi
-        movl    %ebp,12(%esp)
-        xorl    %edi,%ebp
-        rorl    $11,%esi
-        andl    %ebp,%eax
-        leal    2756734187(%ebx,%edx,1),%edx
-        xorl    %ecx,%esi
-        xorl    %edi,%eax
-        movl    92(%esp),%ecx
-        rorl    $2,%esi
-        addl    %edx,%eax
-        addl    24(%esp),%edx
-        addl    %esi,%eax
-        movl    80(%esp),%esi
-        movl    %ecx,%ebx
-        rorl    $11,%ecx
-        movl    %esi,%edi
-        rorl    $2,%esi
-        xorl    %ebx,%ecx
-        shrl    $3,%ebx
-        rorl    $7,%ecx
-        xorl    %edi,%esi
-        xorl    %ecx,%ebx
-        rorl    $17,%esi
-        addl    88(%esp),%ebx
-        shrl    $10,%edi
-        addl    60(%esp),%ebx
-        movl    %edx,%ecx
-        xorl    %esi,%edi
-        movl    28(%esp),%esi
-        rorl    $14,%edx
-        addl    %edi,%ebx
-        movl    (%esp),%edi
-        xorl    %ecx,%edx
-        xorl    %edi,%esi
-        rorl    $5,%edx
-        andl    %ecx,%esi
-        movl    %ecx,24(%esp)
-        xorl    %ecx,%edx
-        addl    4(%esp),%ebx
-        xorl    %esi,%edi
-        rorl    $6,%edx
-        movl    %eax,%ecx
-        addl    %edi,%ebx
-        rorl    $9,%ecx
-        movl    %eax,%esi
-        movl    12(%esp),%edi
-        xorl    %eax,%ecx
-        movl    %eax,8(%esp)
-        xorl    %edi,%eax
-        rorl    $11,%ecx
-        andl    %eax,%ebp
-        leal    3204031479(%ebx,%edx,1),%edx
-        xorl    %esi,%ecx
-        xorl    %edi,%ebp
-        movl    32(%esp),%esi
-        rorl    $2,%ecx
-        addl    %edx,%ebp
-        addl    20(%esp),%edx
-        addl    %ecx,%ebp
-        movl    84(%esp),%ecx
-        movl    %esi,%ebx
-        rorl    $11,%esi
-        movl    %ecx,%edi
-        rorl    $2,%ecx
-        xorl    %ebx,%esi
-        shrl    $3,%ebx
-        rorl    $7,%esi
-        xorl    %edi,%ecx
-        xorl    %esi,%ebx
-        rorl    $17,%ecx
-        addl    92(%esp),%ebx
-        shrl    $10,%edi
-        addl    64(%esp),%ebx
-        movl    %edx,%esi
-        xorl    %ecx,%edi
-        movl    24(%esp),%ecx
-        rorl    $14,%edx
-        addl    %edi,%ebx
-        movl    28(%esp),%edi
-        xorl    %esi,%edx
-        xorl    %edi,%ecx
-        rorl    $5,%edx
-        andl    %esi,%ecx
-        movl    %esi,20(%esp)
-        xorl    %esi,%edx
-        addl    (%esp),%ebx
-        xorl    %ecx,%edi
-        rorl    $6,%edx
-        movl    %ebp,%esi
-        addl    %edi,%ebx
-        rorl    $9,%esi
-        movl    %ebp,%ecx
-        movl    8(%esp),%edi
-        xorl    %ebp,%esi
-        movl    %ebp,4(%esp)
-        xorl    %edi,%ebp
-        rorl    $11,%esi
-        andl    %ebp,%eax
-        leal    3329325298(%ebx,%edx,1),%edx
-        xorl    %ecx,%esi
-        xorl    %edi,%eax
-        rorl    $2,%esi
-        addl    %edx,%eax
-        addl    16(%esp),%edx
-        addl    %esi,%eax
-        movl    96(%esp),%esi
-        xorl    %edi,%ebp
-        movl    12(%esp),%ecx
-        addl    (%esi),%eax
-        addl    4(%esi),%ebp
-        addl    8(%esi),%edi
-        addl    12(%esi),%ecx
-        movl    %eax,(%esi)
-        movl    %ebp,4(%esi)
-        movl    %edi,8(%esi)
-        movl    %ecx,12(%esi)
-        movl    %ebp,4(%esp)
-        xorl    %edi,%ebp
-        movl    %edi,8(%esp)
-        movl    %ecx,12(%esp)
-        movl    20(%esp),%edi
-        movl    24(%esp),%ebx
-        movl    28(%esp),%ecx
-        addl    16(%esi),%edx
-        addl    20(%esi),%edi
-        addl    24(%esi),%ebx
-        addl    28(%esi),%ecx
-        movl    %edx,16(%esi)
-        movl    %edi,20(%esi)
-        movl    %ebx,24(%esi)
-        movl    %ecx,28(%esi)
-        movl    %edi,20(%esp)
-        movl    100(%esp),%edi
-        movl    %ebx,24(%esp)
-        movl    %ecx,28(%esp)
-        cmpl    104(%esp),%edi
-        jb      .L009grand_loop
-        movl    108(%esp),%esp
-        popl    %edi
-        popl    %esi
-        popl    %ebx
-        popl    %ebp
-        ret
-.size   sha256_block_data_order,.-.L_sha256_block_data_order_begin
diff --git a/CryptoPkg/Library/OpensslLib/IA32Gcc/crypto/sha/sha512-586.S b/CryptoPkg/Library/OpensslLib/IA32Gcc/crypto/sha/sha512-586.S
deleted file mode 100644
index c01cc2bed876..000000000000
--- a/CryptoPkg/Library/OpensslLib/IA32Gcc/crypto/sha/sha512-586.S
+++ /dev/null
@@ -1,574 +0,0 @@
-# WARNING: do not edit!
-# Generated from openssl/crypto/sha/asm/sha512-586.pl
-#
-# Copyright 2007-2020 The OpenSSL Project Authors. All Rights Reserved.
-#
-# Licensed under the OpenSSL license (the "License").  You may not use
-# this file except in compliance with the License.  You can obtain a copy
-# in the file LICENSE in the source distribution or at
-# https://www.openssl.org/source/license.html
-
-.text
-.globl  sha512_block_data_order
-.type   sha512_block_data_order, at function
-.align  16
-sha512_block_data_order:
-.L_sha512_block_data_order_begin:
-        pushl   %ebp
-        pushl   %ebx
-        pushl   %esi
-        pushl   %edi
-        movl    20(%esp),%esi
-        movl    24(%esp),%edi
-        movl    28(%esp),%eax
-        movl    %esp,%ebx
-        call    .L000pic_point
-.L000pic_point:
-        popl    %ebp
-        leal    .L001K512-.L000pic_point(%ebp),%ebp
-        subl    $16,%esp
-        andl    $-64,%esp
-        shll    $7,%eax
-        addl    %edi,%eax
-        movl    %esi,(%esp)
-        movl    %edi,4(%esp)
-        movl    %eax,8(%esp)
-        movl    %ebx,12(%esp)
-.align  16
-.L002loop_x86:
-        movl    (%edi),%eax
-        movl    4(%edi),%ebx
-        movl    8(%edi),%ecx
-        movl    12(%edi),%edx
-        bswap   %eax
-        bswap   %ebx
-        bswap   %ecx
-        bswap   %edx
-        pushl   %eax
-        pushl   %ebx
-        pushl   %ecx
-        pushl   %edx
-        movl    16(%edi),%eax
-        movl    20(%edi),%ebx
-        movl    24(%edi),%ecx
-        movl    28(%edi),%edx
-        bswap   %eax
-        bswap   %ebx
-        bswap   %ecx
-        bswap   %edx
-        pushl   %eax
-        pushl   %ebx
-        pushl   %ecx
-        pushl   %edx
-        movl    32(%edi),%eax
-        movl    36(%edi),%ebx
-        movl    40(%edi),%ecx
-        movl    44(%edi),%edx
-        bswap   %eax
-        bswap   %ebx
-        bswap   %ecx
-        bswap   %edx
-        pushl   %eax
-        pushl   %ebx
-        pushl   %ecx
-        pushl   %edx
-        movl    48(%edi),%eax
-        movl    52(%edi),%ebx
-        movl    56(%edi),%ecx
-        movl    60(%edi),%edx
-        bswap   %eax
-        bswap   %ebx
-        bswap   %ecx
-        bswap   %edx
-        pushl   %eax
-        pushl   %ebx
-        pushl   %ecx
-        pushl   %edx
-        movl    64(%edi),%eax
-        movl    68(%edi),%ebx
-        movl    72(%edi),%ecx
-        movl    76(%edi),%edx
-        bswap   %eax
-        bswap   %ebx
-        bswap   %ecx
-        bswap   %edx
-        pushl   %eax
-        pushl   %ebx
-        pushl   %ecx
-        pushl   %edx
-        movl    80(%edi),%eax
-        movl    84(%edi),%ebx
-        movl    88(%edi),%ecx
-        movl    92(%edi),%edx
-        bswap   %eax
-        bswap   %ebx
-        bswap   %ecx
-        bswap   %edx
-        pushl   %eax
-        pushl   %ebx
-        pushl   %ecx
-        pushl   %edx
-        movl    96(%edi),%eax
-        movl    100(%edi),%ebx
-        movl    104(%edi),%ecx
-        movl    108(%edi),%edx
-        bswap   %eax
-        bswap   %ebx
-        bswap   %ecx
-        bswap   %edx
-        pushl   %eax
-        pushl   %ebx
-        pushl   %ecx
-        pushl   %edx
-        movl    112(%edi),%eax
-        movl    116(%edi),%ebx
-        movl    120(%edi),%ecx
-        movl    124(%edi),%edx
-        bswap   %eax
-        bswap   %ebx
-        bswap   %ecx
-        bswap   %edx
-        pushl   %eax
-        pushl   %ebx
-        pushl   %ecx
-        pushl   %edx
-        addl    $128,%edi
-        subl    $72,%esp
-        movl    %edi,204(%esp)
-        leal    8(%esp),%edi
-        movl    $16,%ecx
-.long   2784229001
-.align  16
-.L00300_15_x86:
-        movl    40(%esp),%ecx
-        movl    44(%esp),%edx
-        movl    %ecx,%esi
-        shrl    $9,%ecx
-        movl    %edx,%edi
-        shrl    $9,%edx
-        movl    %ecx,%ebx
-        shll    $14,%esi
-        movl    %edx,%eax
-        shll    $14,%edi
-        xorl    %esi,%ebx
-        shrl    $5,%ecx
-        xorl    %edi,%eax
-        shrl    $5,%edx
-        xorl    %ecx,%eax
-        shll    $4,%esi
-        xorl    %edx,%ebx
-        shll    $4,%edi
-        xorl    %esi,%ebx
-        shrl    $4,%ecx
-        xorl    %edi,%eax
-        shrl    $4,%edx
-        xorl    %ecx,%eax
-        shll    $5,%esi
-        xorl    %edx,%ebx
-        shll    $5,%edi
-        xorl    %esi,%eax
-        xorl    %edi,%ebx
-        movl    48(%esp),%ecx
-        movl    52(%esp),%edx
-        movl    56(%esp),%esi
-        movl    60(%esp),%edi
-        addl    64(%esp),%eax
-        adcl    68(%esp),%ebx
-        xorl    %esi,%ecx
-        xorl    %edi,%edx
-        andl    40(%esp),%ecx
-        andl    44(%esp),%edx
-        addl    192(%esp),%eax
-        adcl    196(%esp),%ebx
-        xorl    %esi,%ecx
-        xorl    %edi,%edx
-        movl    (%ebp),%esi
-        movl    4(%ebp),%edi
-        addl    %ecx,%eax
-        adcl    %edx,%ebx
-        movl    32(%esp),%ecx
-        movl    36(%esp),%edx
-        addl    %esi,%eax
-        adcl    %edi,%ebx
-        movl    %eax,(%esp)
-        movl    %ebx,4(%esp)
-        addl    %ecx,%eax
-        adcl    %edx,%ebx
-        movl    8(%esp),%ecx
-        movl    12(%esp),%edx
-        movl    %eax,32(%esp)
-        movl    %ebx,36(%esp)
-        movl    %ecx,%esi
-        shrl    $2,%ecx
-        movl    %edx,%edi
-        shrl    $2,%edx
-        movl    %ecx,%ebx
-        shll    $4,%esi
-        movl    %edx,%eax
-        shll    $4,%edi
-        xorl    %esi,%ebx
-        shrl    $5,%ecx
-        xorl    %edi,%eax
-        shrl    $5,%edx
-        xorl    %ecx,%ebx
-        shll    $21,%esi
-        xorl    %edx,%eax
-        shll    $21,%edi
-        xorl    %esi,%eax
-        shrl    $21,%ecx
-        xorl    %edi,%ebx
-        shrl    $21,%edx
-        xorl    %ecx,%eax
-        shll    $5,%esi
-        xorl    %edx,%ebx
-        shll    $5,%edi
-        xorl    %esi,%eax
-        xorl    %edi,%ebx
-        movl    8(%esp),%ecx
-        movl    12(%esp),%edx
-        movl    16(%esp),%esi
-        movl    20(%esp),%edi
-        addl    (%esp),%eax
-        adcl    4(%esp),%ebx
-        orl     %esi,%ecx
-        orl     %edi,%edx
-        andl    24(%esp),%ecx
-        andl    28(%esp),%edx
-        andl    8(%esp),%esi
-        andl    12(%esp),%edi
-        orl     %esi,%ecx
-        orl     %edi,%edx
-        addl    %ecx,%eax
-        adcl    %edx,%ebx
-        movl    %eax,(%esp)
-        movl    %ebx,4(%esp)
-        movb    (%ebp),%dl
-        subl    $8,%esp
-        leal    8(%ebp),%ebp
-        cmpb    $148,%dl
-        jne     .L00300_15_x86
-.align  16
-.L00416_79_x86:
-        movl    312(%esp),%ecx
-        movl    316(%esp),%edx
-        movl    %ecx,%esi
-        shrl    $1,%ecx
-        movl    %edx,%edi
-        shrl    $1,%edx
-        movl    %ecx,%eax
-        shll    $24,%esi
-        movl    %edx,%ebx
-        shll    $24,%edi
-        xorl    %esi,%ebx
-        shrl    $6,%ecx
-        xorl    %edi,%eax
-        shrl    $6,%edx
-        xorl    %ecx,%eax
-        shll    $7,%esi
-        xorl    %edx,%ebx
-        shll    $1,%edi
-        xorl    %esi,%ebx
-        shrl    $1,%ecx
-        xorl    %edi,%eax
-        shrl    $1,%edx
-        xorl    %ecx,%eax
-        shll    $6,%edi
-        xorl    %edx,%ebx
-        xorl    %edi,%eax
-        movl    %eax,(%esp)
-        movl    %ebx,4(%esp)
-        movl    208(%esp),%ecx
-        movl    212(%esp),%edx
-        movl    %ecx,%esi
-        shrl    $6,%ecx
-        movl    %edx,%edi
-        shrl    $6,%edx
-        movl    %ecx,%eax
-        shll    $3,%esi
-        movl    %edx,%ebx
-        shll    $3,%edi
-        xorl    %esi,%eax
-        shrl    $13,%ecx
-        xorl    %edi,%ebx
-        shrl    $13,%edx
-        xorl    %ecx,%eax
-        shll    $10,%esi
-        xorl    %edx,%ebx
-        shll    $10,%edi
-        xorl    %esi,%ebx
-        shrl    $10,%ecx
-        xorl    %edi,%eax
-        shrl    $10,%edx
-        xorl    %ecx,%ebx
-        shll    $13,%edi
-        xorl    %edx,%eax
-        xorl    %edi,%eax
-        movl    320(%esp),%ecx
-        movl    324(%esp),%edx
-        addl    (%esp),%eax
-        adcl    4(%esp),%ebx
-        movl    248(%esp),%esi
-        movl    252(%esp),%edi
-        addl    %ecx,%eax
-        adcl    %edx,%ebx
-        addl    %esi,%eax
-        adcl    %edi,%ebx
-        movl    %eax,192(%esp)
-        movl    %ebx,196(%esp)
-        movl    40(%esp),%ecx
-        movl    44(%esp),%edx
-        movl    %ecx,%esi
-        shrl    $9,%ecx
-        movl    %edx,%edi
-        shrl    $9,%edx
-        movl    %ecx,%ebx
-        shll    $14,%esi
-        movl    %edx,%eax
-        shll    $14,%edi
-        xorl    %esi,%ebx
-        shrl    $5,%ecx
-        xorl    %edi,%eax
-        shrl    $5,%edx
-        xorl    %ecx,%eax
-        shll    $4,%esi
-        xorl    %edx,%ebx
-        shll    $4,%edi
-        xorl    %esi,%ebx
-        shrl    $4,%ecx
-        xorl    %edi,%eax
-        shrl    $4,%edx
-        xorl    %ecx,%eax
-        shll    $5,%esi
-        xorl    %edx,%ebx
-        shll    $5,%edi
-        xorl    %esi,%eax
-        xorl    %edi,%ebx
-        movl    48(%esp),%ecx
-        movl    52(%esp),%edx
-        movl    56(%esp),%esi
-        movl    60(%esp),%edi
-        addl    64(%esp),%eax
-        adcl    68(%esp),%ebx
-        xorl    %esi,%ecx
-        xorl    %edi,%edx
-        andl    40(%esp),%ecx
-        andl    44(%esp),%edx
-        addl    192(%esp),%eax
-        adcl    196(%esp),%ebx
-        xorl    %esi,%ecx
-        xorl    %edi,%edx
-        movl    (%ebp),%esi
-        movl    4(%ebp),%edi
-        addl    %ecx,%eax
-        adcl    %edx,%ebx
-        movl    32(%esp),%ecx
-        movl    36(%esp),%edx
-        addl    %esi,%eax
-        adcl    %edi,%ebx
-        movl    %eax,(%esp)
-        movl    %ebx,4(%esp)
-        addl    %ecx,%eax
-        adcl    %edx,%ebx
-        movl    8(%esp),%ecx
-        movl    12(%esp),%edx
-        movl    %eax,32(%esp)
-        movl    %ebx,36(%esp)
-        movl    %ecx,%esi
-        shrl    $2,%ecx
-        movl    %edx,%edi
-        shrl    $2,%edx
-        movl    %ecx,%ebx
-        shll    $4,%esi
-        movl    %edx,%eax
-        shll    $4,%edi
-        xorl    %esi,%ebx
-        shrl    $5,%ecx
-        xorl    %edi,%eax
-        shrl    $5,%edx
-        xorl    %ecx,%ebx
-        shll    $21,%esi
-        xorl    %edx,%eax
-        shll    $21,%edi
-        xorl    %esi,%eax
-        shrl    $21,%ecx
-        xorl    %edi,%ebx
-        shrl    $21,%edx
-        xorl    %ecx,%eax
-        shll    $5,%esi
-        xorl    %edx,%ebx
-        shll    $5,%edi
-        xorl    %esi,%eax
-        xorl    %edi,%ebx
-        movl    8(%esp),%ecx
-        movl    12(%esp),%edx
-        movl    16(%esp),%esi
-        movl    20(%esp),%edi
-        addl    (%esp),%eax
-        adcl    4(%esp),%ebx
-        orl     %esi,%ecx
-        orl     %edi,%edx
-        andl    24(%esp),%ecx
-        andl    28(%esp),%edx
-        andl    8(%esp),%esi
-        andl    12(%esp),%edi
-        orl     %esi,%ecx
-        orl     %edi,%edx
-        addl    %ecx,%eax
-        adcl    %edx,%ebx
-        movl    %eax,(%esp)
-        movl    %ebx,4(%esp)
-        movb    (%ebp),%dl
-        subl    $8,%esp
-        leal    8(%ebp),%ebp
-        cmpb    $23,%dl
-        jne     .L00416_79_x86
-        movl    840(%esp),%esi
-        movl    844(%esp),%edi
-        movl    (%esi),%eax
-        movl    4(%esi),%ebx
-        movl    8(%esi),%ecx
-        movl    12(%esi),%edx
-        addl    8(%esp),%eax
-        adcl    12(%esp),%ebx
-        movl    %eax,(%esi)
-        movl    %ebx,4(%esi)
-        addl    16(%esp),%ecx
-        adcl    20(%esp),%edx
-        movl    %ecx,8(%esi)
-        movl    %edx,12(%esi)
-        movl    16(%esi),%eax
-        movl    20(%esi),%ebx
-        movl    24(%esi),%ecx
-        movl    28(%esi),%edx
-        addl    24(%esp),%eax
-        adcl    28(%esp),%ebx
-        movl    %eax,16(%esi)
-        movl    %ebx,20(%esi)
-        addl    32(%esp),%ecx
-        adcl    36(%esp),%edx
-        movl    %ecx,24(%esi)
-        movl    %edx,28(%esi)
-        movl    32(%esi),%eax
-        movl    36(%esi),%ebx
-        movl    40(%esi),%ecx
-        movl    44(%esi),%edx
-        addl    40(%esp),%eax
-        adcl    44(%esp),%ebx
-        movl    %eax,32(%esi)
-        movl    %ebx,36(%esi)
-        addl    48(%esp),%ecx
-        adcl    52(%esp),%edx
-        movl    %ecx,40(%esi)
-        movl    %edx,44(%esi)
-        movl    48(%esi),%eax
-        movl    52(%esi),%ebx
-        movl    56(%esi),%ecx
-        movl    60(%esi),%edx
-        addl    56(%esp),%eax
-        adcl    60(%esp),%ebx
-        movl    %eax,48(%esi)
-        movl    %ebx,52(%esi)
-        addl    64(%esp),%ecx
-        adcl    68(%esp),%edx
-        movl    %ecx,56(%esi)
-        movl    %edx,60(%esi)
-        addl    $840,%esp
-        subl    $640,%ebp
-        cmpl    8(%esp),%edi
-        jb      .L002loop_x86
-        movl    12(%esp),%esp
-        popl    %edi
-        popl    %esi
-        popl    %ebx
-        popl    %ebp
-        ret
-.align  64
-.L001K512:
-.long   3609767458,1116352408
-.long   602891725,1899447441
-.long   3964484399,3049323471
-.long   2173295548,3921009573
-.long   4081628472,961987163
-.long   3053834265,1508970993
-.long   2937671579,2453635748
-.long   3664609560,2870763221
-.long   2734883394,3624381080
-.long   1164996542,310598401
-.long   1323610764,607225278
-.long   3590304994,1426881987
-.long   4068182383,1925078388
-.long   991336113,2162078206
-.long   633803317,2614888103
-.long   3479774868,3248222580
-.long   2666613458,3835390401
-.long   944711139,4022224774
-.long   2341262773,264347078
-.long   2007800933,604807628
-.long   1495990901,770255983
-.long   1856431235,1249150122
-.long   3175218132,1555081692
-.long   2198950837,1996064986
-.long   3999719339,2554220882
-.long   766784016,2821834349
-.long   2566594879,2952996808
-.long   3203337956,3210313671
-.long   1034457026,3336571891
-.long   2466948901,3584528711
-.long   3758326383,113926993
-.long   168717936,338241895
-.long   1188179964,666307205
-.long   1546045734,773529912
-.long   1522805485,1294757372
-.long   2643833823,1396182291
-.long   2343527390,1695183700
-.long   1014477480,1986661051
-.long   1206759142,2177026350
-.long   344077627,2456956037
-.long   1290863460,2730485921
-.long   3158454273,2820302411
-.long   3505952657,3259730800
-.long   106217008,3345764771
-.long   3606008344,3516065817
-.long   1432725776,3600352804
-.long   1467031594,4094571909
-.long   851169720,275423344
-.long   3100823752,430227734
-.long   1363258195,506948616
-.long   3750685593,659060556
-.long   3785050280,883997877
-.long   3318307427,958139571
-.long   3812723403,1322822218
-.long   2003034995,1537002063
-.long   3602036899,1747873779
-.long   1575990012,1955562222
-.long   1125592928,2024104815
-.long   2716904306,2227730452
-.long   442776044,2361852424
-.long   593698344,2428436474
-.long   3733110249,2756734187
-.long   2999351573,3204031479
-.long   3815920427,3329325298
-.long   3928383900,3391569614
-.long   566280711,3515267271
-.long   3454069534,3940187606
-.long   4000239992,4118630271
-.long   1914138554,116418474
-.long   2731055270,174292421
-.long   3203993006,289380356
-.long   320620315,460393269
-.long   587496836,685471733
-.long   1086792851,852142971
-.long   365543100,1017036298
-.long   2618297676,1126000580
-.long   3409855158,1288033470
-.long   4234509866,1501505948
-.long   987167468,1607167915
-.long   1246189591,1816402316
-.long   67438087,66051
-.long   202182159,134810123
-.size   sha512_block_data_order,.-.L_sha512_block_data_order_begin
-.byte   83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97
-.byte   110,115,102,111,114,109,32,102,111,114,32,120,56,54,44,32
-.byte   67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97
-.byte   112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103
-.byte   62,0
diff --git a/CryptoPkg/Library/OpensslLib/IA32Gcc/crypto/x86cpuid.S b/CryptoPkg/Library/OpensslLib/IA32Gcc/crypto/x86cpuid.S
deleted file mode 100644
index a1934cbc5896..000000000000
--- a/CryptoPkg/Library/OpensslLib/IA32Gcc/crypto/x86cpuid.S
+++ /dev/null
@@ -1,449 +0,0 @@
-# WARNING: do not edit!
-# Generated from openssl/crypto/x86cpuid.pl
-#
-# Copyright 2004-2020 The OpenSSL Project Authors. All Rights Reserved.
-#
-# Licensed under the OpenSSL license (the "License").  You may not use
-# this file except in compliance with the License.  You can obtain a copy
-# in the file LICENSE in the source distribution or at
-# https://www.openssl.org/source/license.html
-
-.text
-.globl  OPENSSL_ia32_cpuid
-.type   OPENSSL_ia32_cpuid, at function
-.align  16
-OPENSSL_ia32_cpuid:
-.L_OPENSSL_ia32_cpuid_begin:
-        pushl   %ebp
-        pushl   %ebx
-        pushl   %esi
-        pushl   %edi
-        xorl    %edx,%edx
-        pushfl
-        popl    %eax
-        movl    %eax,%ecx
-        xorl    $2097152,%eax
-        pushl   %eax
-        popfl
-        pushfl
-        popl    %eax
-        xorl    %eax,%ecx
-        xorl    %eax,%eax
-        movl    20(%esp),%esi
-        movl    %eax,8(%esi)
-        btl     $21,%ecx
-        jnc     .L000nocpuid
-        .byte   0x0f,0xa2
-        movl    %eax,%edi
-        xorl    %eax,%eax
-        cmpl    $1970169159,%ebx
-        setne   %al
-        movl    %eax,%ebp
-        cmpl    $1231384169,%edx
-        setne   %al
-        orl     %eax,%ebp
-        cmpl    $1818588270,%ecx
-        setne   %al
-        orl     %eax,%ebp
-        jz      .L001intel
-        cmpl    $1752462657,%ebx
-        setne   %al
-        movl    %eax,%esi
-        cmpl    $1769238117,%edx
-        setne   %al
-        orl     %eax,%esi
-        cmpl    $1145913699,%ecx
-        setne   %al
-        orl     %eax,%esi
-        jnz     .L001intel
-        movl    $2147483648,%eax
-        .byte   0x0f,0xa2
-        cmpl    $2147483649,%eax
-        jb      .L001intel
-        movl    %eax,%esi
-        movl    $2147483649,%eax
-        .byte   0x0f,0xa2
-        orl     %ecx,%ebp
-        andl    $2049,%ebp
-        cmpl    $2147483656,%esi
-        jb      .L001intel
-        movl    $2147483656,%eax
-        .byte   0x0f,0xa2
-        movzbl  %cl,%esi
-        incl    %esi
-        movl    $1,%eax
-        xorl    %ecx,%ecx
-        .byte   0x0f,0xa2
-        btl     $28,%edx
-        jnc     .L002generic
-        shrl    $16,%ebx
-        andl    $255,%ebx
-        cmpl    %esi,%ebx
-        ja      .L002generic
-        andl    $4026531839,%edx
-        jmp     .L002generic
-.L001intel:
-        cmpl    $4,%edi
-        movl    $-1,%esi
-        jb      .L003nocacheinfo
-        movl    $4,%eax
-        movl    $0,%ecx
-        .byte   0x0f,0xa2
-        movl    %eax,%esi
-        shrl    $14,%esi
-        andl    $4095,%esi
-.L003nocacheinfo:
-        movl    $1,%eax
-        xorl    %ecx,%ecx
-        .byte   0x0f,0xa2
-        andl    $3220176895,%edx
-        cmpl    $0,%ebp
-        jne     .L004notintel
-        orl     $1073741824,%edx
-        andb    $15,%ah
-        cmpb    $15,%ah
-        jne     .L004notintel
-        orl     $1048576,%edx
-.L004notintel:
-        btl     $28,%edx
-        jnc     .L002generic
-        andl    $4026531839,%edx
-        cmpl    $0,%esi
-        je      .L002generic
-        orl     $268435456,%edx
-        shrl    $16,%ebx
-        cmpb    $1,%bl
-        ja      .L002generic
-        andl    $4026531839,%edx
-.L002generic:
-        andl    $2048,%ebp
-        andl    $4294965247,%ecx
-        movl    %edx,%esi
-        orl     %ecx,%ebp
-        cmpl    $7,%edi
-        movl    20(%esp),%edi
-        jb      .L005no_extended_info
-        movl    $7,%eax
-        xorl    %ecx,%ecx
-        .byte   0x0f,0xa2
-        movl    %ebx,8(%edi)
-.L005no_extended_info:
-        btl     $27,%ebp
-        jnc     .L006clear_avx
-        xorl    %ecx,%ecx
-.byte   15,1,208
-        andl    $6,%eax
-        cmpl    $6,%eax
-        je      .L007done
-        cmpl    $2,%eax
-        je      .L006clear_avx
-.L008clear_xmm:
-        andl    $4261412861,%ebp
-        andl    $4278190079,%esi
-.L006clear_avx:
-        andl    $4026525695,%ebp
-        andl    $4294967263,8(%edi)
-.L007done:
-        movl    %esi,%eax
-        movl    %ebp,%edx
-.L000nocpuid:
-        popl    %edi
-        popl    %esi
-        popl    %ebx
-        popl    %ebp
-        ret
-.size   OPENSSL_ia32_cpuid,.-.L_OPENSSL_ia32_cpuid_begin
-.globl  OPENSSL_rdtsc
-.type   OPENSSL_rdtsc, at function
-.align  16
-OPENSSL_rdtsc:
-.L_OPENSSL_rdtsc_begin:
-        xorl    %eax,%eax
-        xorl    %edx,%edx
-        leal    OPENSSL_ia32cap_P,%ecx
-        btl     $4,(%ecx)
-        jnc     .L009notsc
-        .byte   0x0f,0x31
-.L009notsc:
-        ret
-.size   OPENSSL_rdtsc,.-.L_OPENSSL_rdtsc_begin
-.globl  OPENSSL_instrument_halt
-.type   OPENSSL_instrument_halt, at function
-.align  16
-OPENSSL_instrument_halt:
-.L_OPENSSL_instrument_halt_begin:
-        leal    OPENSSL_ia32cap_P,%ecx
-        btl     $4,(%ecx)
-        jnc     .L010nohalt
-.long   2421723150
-        andl    $3,%eax
-        jnz     .L010nohalt
-        pushfl
-        popl    %eax
-        btl     $9,%eax
-        jnc     .L010nohalt
-        .byte   0x0f,0x31
-        pushl   %edx
-        pushl   %eax
-        hlt
-        .byte   0x0f,0x31
-        subl    (%esp),%eax
-        sbbl    4(%esp),%edx
-        addl    $8,%esp
-        ret
-.L010nohalt:
-        xorl    %eax,%eax
-        xorl    %edx,%edx
-        ret
-.size   OPENSSL_instrument_halt,.-.L_OPENSSL_instrument_halt_begin
-.globl  OPENSSL_far_spin
-.type   OPENSSL_far_spin, at function
-.align  16
-OPENSSL_far_spin:
-.L_OPENSSL_far_spin_begin:
-        pushfl
-        popl    %eax
-        btl     $9,%eax
-        jnc     .L011nospin
-        movl    4(%esp),%eax
-        movl    8(%esp),%ecx
-.long   2430111262
-        xorl    %eax,%eax
-        movl    (%ecx),%edx
-        jmp     .L012spin
-.align  16
-.L012spin:
-        incl    %eax
-        cmpl    (%ecx),%edx
-        je      .L012spin
-.long   529567888
-        ret
-.L011nospin:
-        xorl    %eax,%eax
-        xorl    %edx,%edx
-        ret
-.size   OPENSSL_far_spin,.-.L_OPENSSL_far_spin_begin
-.globl  OPENSSL_wipe_cpu
-.type   OPENSSL_wipe_cpu, at function
-.align  16
-OPENSSL_wipe_cpu:
-.L_OPENSSL_wipe_cpu_begin:
-        xorl    %eax,%eax
-        xorl    %edx,%edx
-        leal    OPENSSL_ia32cap_P,%ecx
-        movl    (%ecx),%ecx
-        btl     $1,(%ecx)
-        jnc     .L013no_x87
-.long   4007259865,4007259865,4007259865,4007259865,2430851995
-.L013no_x87:
-        leal    4(%esp),%eax
-        ret
-.size   OPENSSL_wipe_cpu,.-.L_OPENSSL_wipe_cpu_begin
-.globl  OPENSSL_atomic_add
-.type   OPENSSL_atomic_add, at function
-.align  16
-OPENSSL_atomic_add:
-.L_OPENSSL_atomic_add_begin:
-        movl    4(%esp),%edx
-        movl    8(%esp),%ecx
-        pushl   %ebx
-        nop
-        movl    (%edx),%eax
-.L014spin:
-        leal    (%eax,%ecx,1),%ebx
-        nop
-.long   447811568
-        jne     .L014spin
-        movl    %ebx,%eax
-        popl    %ebx
-        ret
-.size   OPENSSL_atomic_add,.-.L_OPENSSL_atomic_add_begin
-.globl  OPENSSL_cleanse
-.type   OPENSSL_cleanse, at function
-.align  16
-OPENSSL_cleanse:
-.L_OPENSSL_cleanse_begin:
-        movl    4(%esp),%edx
-        movl    8(%esp),%ecx
-        xorl    %eax,%eax
-        cmpl    $7,%ecx
-        jae     .L015lot
-        cmpl    $0,%ecx
-        je      .L016ret
-.L017little:
-        movb    %al,(%edx)
-        subl    $1,%ecx
-        leal    1(%edx),%edx
-        jnz     .L017little
-.L016ret:
-        ret
-.align  16
-.L015lot:
-        testl   $3,%edx
-        jz      .L018aligned
-        movb    %al,(%edx)
-        leal    -1(%ecx),%ecx
-        leal    1(%edx),%edx
-        jmp     .L015lot
-.L018aligned:
-        movl    %eax,(%edx)
-        leal    -4(%ecx),%ecx
-        testl   $-4,%ecx
-        leal    4(%edx),%edx
-        jnz     .L018aligned
-        cmpl    $0,%ecx
-        jne     .L017little
-        ret
-.size   OPENSSL_cleanse,.-.L_OPENSSL_cleanse_begin
-.globl  CRYPTO_memcmp
-.type   CRYPTO_memcmp, at function
-.align  16
-CRYPTO_memcmp:
-.L_CRYPTO_memcmp_begin:
-        pushl   %esi
-        pushl   %edi
-        movl    12(%esp),%esi
-        movl    16(%esp),%edi
-        movl    20(%esp),%ecx
-        xorl    %eax,%eax
-        xorl    %edx,%edx
-        cmpl    $0,%ecx
-        je      .L019no_data
-.L020loop:
-        movb    (%esi),%dl
-        leal    1(%esi),%esi
-        xorb    (%edi),%dl
-        leal    1(%edi),%edi
-        orb     %dl,%al
-        decl    %ecx
-        jnz     .L020loop
-        negl    %eax
-        shrl    $31,%eax
-.L019no_data:
-        popl    %edi
-        popl    %esi
-        ret
-.size   CRYPTO_memcmp,.-.L_CRYPTO_memcmp_begin
-.globl  OPENSSL_instrument_bus
-.type   OPENSSL_instrument_bus, at function
-.align  16
-OPENSSL_instrument_bus:
-.L_OPENSSL_instrument_bus_begin:
-        pushl   %ebp
-        pushl   %ebx
-        pushl   %esi
-        pushl   %edi
-        movl    $0,%eax
-        popl    %edi
-        popl    %esi
-        popl    %ebx
-        popl    %ebp
-        ret
-.size   OPENSSL_instrument_bus,.-.L_OPENSSL_instrument_bus_begin
-.globl  OPENSSL_instrument_bus2
-.type   OPENSSL_instrument_bus2, at function
-.align  16
-OPENSSL_instrument_bus2:
-.L_OPENSSL_instrument_bus2_begin:
-        pushl   %ebp
-        pushl   %ebx
-        pushl   %esi
-        pushl   %edi
-        movl    $0,%eax
-        popl    %edi
-        popl    %esi
-        popl    %ebx
-        popl    %ebp
-        ret
-.size   OPENSSL_instrument_bus2,.-.L_OPENSSL_instrument_bus2_begin
-.globl  OPENSSL_ia32_rdrand_bytes
-.type   OPENSSL_ia32_rdrand_bytes, at function
-.align  16
-OPENSSL_ia32_rdrand_bytes:
-.L_OPENSSL_ia32_rdrand_bytes_begin:
-        pushl   %edi
-        pushl   %ebx
-        xorl    %eax,%eax
-        movl    12(%esp),%edi
-        movl    16(%esp),%ebx
-        cmpl    $0,%ebx
-        je      .L021done
-        movl    $8,%ecx
-.L022loop:
-.byte   15,199,242
-        jc      .L023break
-        loop    .L022loop
-        jmp     .L021done
-.align  16
-.L023break:
-        cmpl    $4,%ebx
-        jb      .L024tail
-        movl    %edx,(%edi)
-        leal    4(%edi),%edi
-        addl    $4,%eax
-        subl    $4,%ebx
-        jz      .L021done
-        movl    $8,%ecx
-        jmp     .L022loop
-.align  16
-.L024tail:
-        movb    %dl,(%edi)
-        leal    1(%edi),%edi
-        incl    %eax
-        shrl    $8,%edx
-        decl    %ebx
-        jnz     .L024tail
-.L021done:
-        xorl    %edx,%edx
-        popl    %ebx
-        popl    %edi
-        ret
-.size   OPENSSL_ia32_rdrand_bytes,.-.L_OPENSSL_ia32_rdrand_bytes_begin
-.globl  OPENSSL_ia32_rdseed_bytes
-.type   OPENSSL_ia32_rdseed_bytes, at function
-.align  16
-OPENSSL_ia32_rdseed_bytes:
-.L_OPENSSL_ia32_rdseed_bytes_begin:
-        pushl   %edi
-        pushl   %ebx
-        xorl    %eax,%eax
-        movl    12(%esp),%edi
-        movl    16(%esp),%ebx
-        cmpl    $0,%ebx
-        je      .L025done
-        movl    $8,%ecx
-.L026loop:
-.byte   15,199,250
-        jc      .L027break
-        loop    .L026loop
-        jmp     .L025done
-.align  16
-.L027break:
-        cmpl    $4,%ebx
-        jb      .L028tail
-        movl    %edx,(%edi)
-        leal    4(%edi),%edi
-        addl    $4,%eax
-        subl    $4,%ebx
-        jz      .L025done
-        movl    $8,%ecx
-        jmp     .L026loop
-.align  16
-.L028tail:
-        movb    %dl,(%edi)
-        leal    1(%edi),%edi
-        incl    %eax
-        shrl    $8,%edx
-        decl    %ebx
-        jnz     .L028tail
-.L025done:
-        xorl    %edx,%edx
-        popl    %ebx
-        popl    %edi
-        ret
-.size   OPENSSL_ia32_rdseed_bytes,.-.L_OPENSSL_ia32_rdseed_bytes_begin
-.hidden OPENSSL_cpuid_setup
-.hidden OPENSSL_ia32cap_P
-.comm   OPENSSL_ia32cap_P,16,4
-.section        .init
-        call    OPENSSL_cpuid_setup
diff --git a/CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-mb-x86_64.nasm b/CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-mb-x86_64.nasm
deleted file mode 100644
index 1a3ed1dd35ec..000000000000
--- a/CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-mb-x86_64.nasm
+++ /dev/null
@@ -1,732 +0,0 @@
-; WARNING: do not edit!
-; Generated from openssl/crypto/aes/asm/aesni-mb-x86_64.pl
-;
-; Copyright 2013-2020 The OpenSSL Project Authors. All Rights Reserved.
-;
-; Licensed under the OpenSSL license (the "License").  You may not use
-; this file except in compliance with the License.  You can obtain a copy
-; in the file LICENSE in the source distribution or at
-; https://www.openssl.org/source/license.html
-
-default rel
-%define XMMWORD
-%define YMMWORD
-%define ZMMWORD
-section .text code align=64
-
-
-EXTERN  OPENSSL_ia32cap_P
-
-global  aesni_multi_cbc_encrypt
-
-ALIGN   32
-aesni_multi_cbc_encrypt:
-        mov     QWORD[8+rsp],rdi        ;WIN64 prologue
-        mov     QWORD[16+rsp],rsi
-        mov     rax,rsp
-$L$SEH_begin_aesni_multi_cbc_encrypt:
-        mov     rdi,rcx
-        mov     rsi,rdx
-        mov     rdx,r8
-
-
-
-        mov     rax,rsp
-
-        push    rbx
-
-        push    rbp
-
-        push    r12
-
-        push    r13
-
-        push    r14
-
-        push    r15
-
-        lea     rsp,[((-168))+rsp]
-        movaps  XMMWORD[rsp],xmm6
-        movaps  XMMWORD[16+rsp],xmm7
-        movaps  XMMWORD[32+rsp],xmm8
-        movaps  XMMWORD[48+rsp],xmm9
-        movaps  XMMWORD[64+rsp],xmm10
-        movaps  XMMWORD[80+rsp],xmm11
-        movaps  XMMWORD[96+rsp],xmm12
-        movaps  XMMWORD[(-104)+rax],xmm13
-        movaps  XMMWORD[(-88)+rax],xmm14
-        movaps  XMMWORD[(-72)+rax],xmm15
-
-
-
-
-
-
-        sub     rsp,48
-        and     rsp,-64
-        mov     QWORD[16+rsp],rax
-
-
-$L$enc4x_body:
-        movdqu  xmm12,XMMWORD[rsi]
-        lea     rsi,[120+rsi]
-        lea     rdi,[80+rdi]
-
-$L$enc4x_loop_grande:
-        mov     DWORD[24+rsp],edx
-        xor     edx,edx
-        mov     ecx,DWORD[((-64))+rdi]
-        mov     r8,QWORD[((-80))+rdi]
-        cmp     ecx,edx
-        mov     r12,QWORD[((-72))+rdi]
-        cmovg   edx,ecx
-        test    ecx,ecx
-        movdqu  xmm2,XMMWORD[((-56))+rdi]
-        mov     DWORD[32+rsp],ecx
-        cmovle  r8,rsp
-        mov     ecx,DWORD[((-24))+rdi]
-        mov     r9,QWORD[((-40))+rdi]
-        cmp     ecx,edx
-        mov     r13,QWORD[((-32))+rdi]
-        cmovg   edx,ecx
-        test    ecx,ecx
-        movdqu  xmm3,XMMWORD[((-16))+rdi]
-        mov     DWORD[36+rsp],ecx
-        cmovle  r9,rsp
-        mov     ecx,DWORD[16+rdi]
-        mov     r10,QWORD[rdi]
-        cmp     ecx,edx
-        mov     r14,QWORD[8+rdi]
-        cmovg   edx,ecx
-        test    ecx,ecx
-        movdqu  xmm4,XMMWORD[24+rdi]
-        mov     DWORD[40+rsp],ecx
-        cmovle  r10,rsp
-        mov     ecx,DWORD[56+rdi]
-        mov     r11,QWORD[40+rdi]
-        cmp     ecx,edx
-        mov     r15,QWORD[48+rdi]
-        cmovg   edx,ecx
-        test    ecx,ecx
-        movdqu  xmm5,XMMWORD[64+rdi]
-        mov     DWORD[44+rsp],ecx
-        cmovle  r11,rsp
-        test    edx,edx
-        jz      NEAR $L$enc4x_done
-
-        movups  xmm1,XMMWORD[((16-120))+rsi]
-        pxor    xmm2,xmm12
-        movups  xmm0,XMMWORD[((32-120))+rsi]
-        pxor    xmm3,xmm12
-        mov     eax,DWORD[((240-120))+rsi]
-        pxor    xmm4,xmm12
-        movdqu  xmm6,XMMWORD[r8]
-        pxor    xmm5,xmm12
-        movdqu  xmm7,XMMWORD[r9]
-        pxor    xmm2,xmm6
-        movdqu  xmm8,XMMWORD[r10]
-        pxor    xmm3,xmm7
-        movdqu  xmm9,XMMWORD[r11]
-        pxor    xmm4,xmm8
-        pxor    xmm5,xmm9
-        movdqa  xmm10,XMMWORD[32+rsp]
-        xor     rbx,rbx
-        jmp     NEAR $L$oop_enc4x
-
-ALIGN   32
-$L$oop_enc4x:
-        add     rbx,16
-        lea     rbp,[16+rsp]
-        mov     ecx,1
-        sub     rbp,rbx
-
-DB      102,15,56,220,209
-        prefetcht0      [31+rbx*1+r8]
-        prefetcht0      [31+rbx*1+r9]
-DB      102,15,56,220,217
-        prefetcht0      [31+rbx*1+r10]
-        prefetcht0      [31+rbx*1+r10]
-DB      102,15,56,220,225
-DB      102,15,56,220,233
-        movups  xmm1,XMMWORD[((48-120))+rsi]
-        cmp     ecx,DWORD[32+rsp]
-DB      102,15,56,220,208
-DB      102,15,56,220,216
-DB      102,15,56,220,224
-        cmovge  r8,rbp
-        cmovg   r12,rbp
-DB      102,15,56,220,232
-        movups  xmm0,XMMWORD[((-56))+rsi]
-        cmp     ecx,DWORD[36+rsp]
-DB      102,15,56,220,209
-DB      102,15,56,220,217
-DB      102,15,56,220,225
-        cmovge  r9,rbp
-        cmovg   r13,rbp
-DB      102,15,56,220,233
-        movups  xmm1,XMMWORD[((-40))+rsi]
-        cmp     ecx,DWORD[40+rsp]
-DB      102,15,56,220,208
-DB      102,15,56,220,216
-DB      102,15,56,220,224
-        cmovge  r10,rbp
-        cmovg   r14,rbp
-DB      102,15,56,220,232
-        movups  xmm0,XMMWORD[((-24))+rsi]
-        cmp     ecx,DWORD[44+rsp]
-DB      102,15,56,220,209
-DB      102,15,56,220,217
-DB      102,15,56,220,225
-        cmovge  r11,rbp
-        cmovg   r15,rbp
-DB      102,15,56,220,233
-        movups  xmm1,XMMWORD[((-8))+rsi]
-        movdqa  xmm11,xmm10
-DB      102,15,56,220,208
-        prefetcht0      [15+rbx*1+r12]
-        prefetcht0      [15+rbx*1+r13]
-DB      102,15,56,220,216
-        prefetcht0      [15+rbx*1+r14]
-        prefetcht0      [15+rbx*1+r15]
-DB      102,15,56,220,224
-DB      102,15,56,220,232
-        movups  xmm0,XMMWORD[((128-120))+rsi]
-        pxor    xmm12,xmm12
-
-DB      102,15,56,220,209
-        pcmpgtd xmm11,xmm12
-        movdqu  xmm12,XMMWORD[((-120))+rsi]
-DB      102,15,56,220,217
-        paddd   xmm10,xmm11
-        movdqa  XMMWORD[32+rsp],xmm10
-DB      102,15,56,220,225
-DB      102,15,56,220,233
-        movups  xmm1,XMMWORD[((144-120))+rsi]
-
-        cmp     eax,11
-
-DB      102,15,56,220,208
-DB      102,15,56,220,216
-DB      102,15,56,220,224
-DB      102,15,56,220,232
-        movups  xmm0,XMMWORD[((160-120))+rsi]
-
-        jb      NEAR $L$enc4x_tail
-
-DB      102,15,56,220,209
-DB      102,15,56,220,217
-DB      102,15,56,220,225
-DB      102,15,56,220,233
-        movups  xmm1,XMMWORD[((176-120))+rsi]
-
-DB      102,15,56,220,208
-DB      102,15,56,220,216
-DB      102,15,56,220,224
-DB      102,15,56,220,232
-        movups  xmm0,XMMWORD[((192-120))+rsi]
-
-        je      NEAR $L$enc4x_tail
-
-DB      102,15,56,220,209
-DB      102,15,56,220,217
-DB      102,15,56,220,225
-DB      102,15,56,220,233
-        movups  xmm1,XMMWORD[((208-120))+rsi]
-
-DB      102,15,56,220,208
-DB      102,15,56,220,216
-DB      102,15,56,220,224
-DB      102,15,56,220,232
-        movups  xmm0,XMMWORD[((224-120))+rsi]
-        jmp     NEAR $L$enc4x_tail
-
-ALIGN   32
-$L$enc4x_tail:
-DB      102,15,56,220,209
-DB      102,15,56,220,217
-DB      102,15,56,220,225
-DB      102,15,56,220,233
-        movdqu  xmm6,XMMWORD[rbx*1+r8]
-        movdqu  xmm1,XMMWORD[((16-120))+rsi]
-
-DB      102,15,56,221,208
-        movdqu  xmm7,XMMWORD[rbx*1+r9]
-        pxor    xmm6,xmm12
-DB      102,15,56,221,216
-        movdqu  xmm8,XMMWORD[rbx*1+r10]
-        pxor    xmm7,xmm12
-DB      102,15,56,221,224
-        movdqu  xmm9,XMMWORD[rbx*1+r11]
-        pxor    xmm8,xmm12
-DB      102,15,56,221,232
-        movdqu  xmm0,XMMWORD[((32-120))+rsi]
-        pxor    xmm9,xmm12
-
-        movups  XMMWORD[(-16)+rbx*1+r12],xmm2
-        pxor    xmm2,xmm6
-        movups  XMMWORD[(-16)+rbx*1+r13],xmm3
-        pxor    xmm3,xmm7
-        movups  XMMWORD[(-16)+rbx*1+r14],xmm4
-        pxor    xmm4,xmm8
-        movups  XMMWORD[(-16)+rbx*1+r15],xmm5
-        pxor    xmm5,xmm9
-
-        dec     edx
-        jnz     NEAR $L$oop_enc4x
-
-        mov     rax,QWORD[16+rsp]
-
-        mov     edx,DWORD[24+rsp]
-
-
-
-
-
-
-
-
-
-
-        lea     rdi,[160+rdi]
-        dec     edx
-        jnz     NEAR $L$enc4x_loop_grande
-
-$L$enc4x_done:
-        movaps  xmm6,XMMWORD[((-216))+rax]
-        movaps  xmm7,XMMWORD[((-200))+rax]
-        movaps  xmm8,XMMWORD[((-184))+rax]
-        movaps  xmm9,XMMWORD[((-168))+rax]
-        movaps  xmm10,XMMWORD[((-152))+rax]
-        movaps  xmm11,XMMWORD[((-136))+rax]
-        movaps  xmm12,XMMWORD[((-120))+rax]
-
-
-
-        mov     r15,QWORD[((-48))+rax]
-
-        mov     r14,QWORD[((-40))+rax]
-
-        mov     r13,QWORD[((-32))+rax]
-
-        mov     r12,QWORD[((-24))+rax]
-
-        mov     rbp,QWORD[((-16))+rax]
-
-        mov     rbx,QWORD[((-8))+rax]
-
-        lea     rsp,[rax]
-
-$L$enc4x_epilogue:
-        mov     rdi,QWORD[8+rsp]        ;WIN64 epilogue
-        mov     rsi,QWORD[16+rsp]
-        DB      0F3h,0C3h               ;repret
-
-$L$SEH_end_aesni_multi_cbc_encrypt:
-
-global  aesni_multi_cbc_decrypt
-
-ALIGN   32
-aesni_multi_cbc_decrypt:
-        mov     QWORD[8+rsp],rdi        ;WIN64 prologue
-        mov     QWORD[16+rsp],rsi
-        mov     rax,rsp
-$L$SEH_begin_aesni_multi_cbc_decrypt:
-        mov     rdi,rcx
-        mov     rsi,rdx
-        mov     rdx,r8
-
-
-
-        mov     rax,rsp
-
-        push    rbx
-
-        push    rbp
-
-        push    r12
-
-        push    r13
-
-        push    r14
-
-        push    r15
-
-        lea     rsp,[((-168))+rsp]
-        movaps  XMMWORD[rsp],xmm6
-        movaps  XMMWORD[16+rsp],xmm7
-        movaps  XMMWORD[32+rsp],xmm8
-        movaps  XMMWORD[48+rsp],xmm9
-        movaps  XMMWORD[64+rsp],xmm10
-        movaps  XMMWORD[80+rsp],xmm11
-        movaps  XMMWORD[96+rsp],xmm12
-        movaps  XMMWORD[(-104)+rax],xmm13
-        movaps  XMMWORD[(-88)+rax],xmm14
-        movaps  XMMWORD[(-72)+rax],xmm15
-
-
-
-
-
-
-        sub     rsp,48
-        and     rsp,-64
-        mov     QWORD[16+rsp],rax
-
-
-$L$dec4x_body:
-        movdqu  xmm12,XMMWORD[rsi]
-        lea     rsi,[120+rsi]
-        lea     rdi,[80+rdi]
-
-$L$dec4x_loop_grande:
-        mov     DWORD[24+rsp],edx
-        xor     edx,edx
-        mov     ecx,DWORD[((-64))+rdi]
-        mov     r8,QWORD[((-80))+rdi]
-        cmp     ecx,edx
-        mov     r12,QWORD[((-72))+rdi]
-        cmovg   edx,ecx
-        test    ecx,ecx
-        movdqu  xmm6,XMMWORD[((-56))+rdi]
-        mov     DWORD[32+rsp],ecx
-        cmovle  r8,rsp
-        mov     ecx,DWORD[((-24))+rdi]
-        mov     r9,QWORD[((-40))+rdi]
-        cmp     ecx,edx
-        mov     r13,QWORD[((-32))+rdi]
-        cmovg   edx,ecx
-        test    ecx,ecx
-        movdqu  xmm7,XMMWORD[((-16))+rdi]
-        mov     DWORD[36+rsp],ecx
-        cmovle  r9,rsp
-        mov     ecx,DWORD[16+rdi]
-        mov     r10,QWORD[rdi]
-        cmp     ecx,edx
-        mov     r14,QWORD[8+rdi]
-        cmovg   edx,ecx
-        test    ecx,ecx
-        movdqu  xmm8,XMMWORD[24+rdi]
-        mov     DWORD[40+rsp],ecx
-        cmovle  r10,rsp
-        mov     ecx,DWORD[56+rdi]
-        mov     r11,QWORD[40+rdi]
-        cmp     ecx,edx
-        mov     r15,QWORD[48+rdi]
-        cmovg   edx,ecx
-        test    ecx,ecx
-        movdqu  xmm9,XMMWORD[64+rdi]
-        mov     DWORD[44+rsp],ecx
-        cmovle  r11,rsp
-        test    edx,edx
-        jz      NEAR $L$dec4x_done
-
-        movups  xmm1,XMMWORD[((16-120))+rsi]
-        movups  xmm0,XMMWORD[((32-120))+rsi]
-        mov     eax,DWORD[((240-120))+rsi]
-        movdqu  xmm2,XMMWORD[r8]
-        movdqu  xmm3,XMMWORD[r9]
-        pxor    xmm2,xmm12
-        movdqu  xmm4,XMMWORD[r10]
-        pxor    xmm3,xmm12
-        movdqu  xmm5,XMMWORD[r11]
-        pxor    xmm4,xmm12
-        pxor    xmm5,xmm12
-        movdqa  xmm10,XMMWORD[32+rsp]
-        xor     rbx,rbx
-        jmp     NEAR $L$oop_dec4x
-
-ALIGN   32
-$L$oop_dec4x:
-        add     rbx,16
-        lea     rbp,[16+rsp]
-        mov     ecx,1
-        sub     rbp,rbx
-
-DB      102,15,56,222,209
-        prefetcht0      [31+rbx*1+r8]
-        prefetcht0      [31+rbx*1+r9]
-DB      102,15,56,222,217
-        prefetcht0      [31+rbx*1+r10]
-        prefetcht0      [31+rbx*1+r11]
-DB      102,15,56,222,225
-DB      102,15,56,222,233
-        movups  xmm1,XMMWORD[((48-120))+rsi]
-        cmp     ecx,DWORD[32+rsp]
-DB      102,15,56,222,208
-DB      102,15,56,222,216
-DB      102,15,56,222,224
-        cmovge  r8,rbp
-        cmovg   r12,rbp
-DB      102,15,56,222,232
-        movups  xmm0,XMMWORD[((-56))+rsi]
-        cmp     ecx,DWORD[36+rsp]
-DB      102,15,56,222,209
-DB      102,15,56,222,217
-DB      102,15,56,222,225
-        cmovge  r9,rbp
-        cmovg   r13,rbp
-DB      102,15,56,222,233
-        movups  xmm1,XMMWORD[((-40))+rsi]
-        cmp     ecx,DWORD[40+rsp]
-DB      102,15,56,222,208
-DB      102,15,56,222,216
-DB      102,15,56,222,224
-        cmovge  r10,rbp
-        cmovg   r14,rbp
-DB      102,15,56,222,232
-        movups  xmm0,XMMWORD[((-24))+rsi]
-        cmp     ecx,DWORD[44+rsp]
-DB      102,15,56,222,209
-DB      102,15,56,222,217
-DB      102,15,56,222,225
-        cmovge  r11,rbp
-        cmovg   r15,rbp
-DB      102,15,56,222,233
-        movups  xmm1,XMMWORD[((-8))+rsi]
-        movdqa  xmm11,xmm10
-DB      102,15,56,222,208
-        prefetcht0      [15+rbx*1+r12]
-        prefetcht0      [15+rbx*1+r13]
-DB      102,15,56,222,216
-        prefetcht0      [15+rbx*1+r14]
-        prefetcht0      [15+rbx*1+r15]
-DB      102,15,56,222,224
-DB      102,15,56,222,232
-        movups  xmm0,XMMWORD[((128-120))+rsi]
-        pxor    xmm12,xmm12
-
-DB      102,15,56,222,209
-        pcmpgtd xmm11,xmm12
-        movdqu  xmm12,XMMWORD[((-120))+rsi]
-DB      102,15,56,222,217
-        paddd   xmm10,xmm11
-        movdqa  XMMWORD[32+rsp],xmm10
-DB      102,15,56,222,225
-DB      102,15,56,222,233
-        movups  xmm1,XMMWORD[((144-120))+rsi]
-
-        cmp     eax,11
-
-DB      102,15,56,222,208
-DB      102,15,56,222,216
-DB      102,15,56,222,224
-DB      102,15,56,222,232
-        movups  xmm0,XMMWORD[((160-120))+rsi]
-
-        jb      NEAR $L$dec4x_tail
-
-DB      102,15,56,222,209
-DB      102,15,56,222,217
-DB      102,15,56,222,225
-DB      102,15,56,222,233
-        movups  xmm1,XMMWORD[((176-120))+rsi]
-
-DB      102,15,56,222,208
-DB      102,15,56,222,216
-DB      102,15,56,222,224
-DB      102,15,56,222,232
-        movups  xmm0,XMMWORD[((192-120))+rsi]
-
-        je      NEAR $L$dec4x_tail
-
-DB      102,15,56,222,209
-DB      102,15,56,222,217
-DB      102,15,56,222,225
-DB      102,15,56,222,233
-        movups  xmm1,XMMWORD[((208-120))+rsi]
-
-DB      102,15,56,222,208
-DB      102,15,56,222,216
-DB      102,15,56,222,224
-DB      102,15,56,222,232
-        movups  xmm0,XMMWORD[((224-120))+rsi]
-        jmp     NEAR $L$dec4x_tail
-
-ALIGN   32
-$L$dec4x_tail:
-DB      102,15,56,222,209
-DB      102,15,56,222,217
-DB      102,15,56,222,225
-        pxor    xmm6,xmm0
-        pxor    xmm7,xmm0
-DB      102,15,56,222,233
-        movdqu  xmm1,XMMWORD[((16-120))+rsi]
-        pxor    xmm8,xmm0
-        pxor    xmm9,xmm0
-        movdqu  xmm0,XMMWORD[((32-120))+rsi]
-
-DB      102,15,56,223,214
-DB      102,15,56,223,223
-        movdqu  xmm6,XMMWORD[((-16))+rbx*1+r8]
-        movdqu  xmm7,XMMWORD[((-16))+rbx*1+r9]
-DB      102,65,15,56,223,224
-DB      102,65,15,56,223,233
-        movdqu  xmm8,XMMWORD[((-16))+rbx*1+r10]
-        movdqu  xmm9,XMMWORD[((-16))+rbx*1+r11]
-
-        movups  XMMWORD[(-16)+rbx*1+r12],xmm2
-        movdqu  xmm2,XMMWORD[rbx*1+r8]
-        movups  XMMWORD[(-16)+rbx*1+r13],xmm3
-        movdqu  xmm3,XMMWORD[rbx*1+r9]
-        pxor    xmm2,xmm12
-        movups  XMMWORD[(-16)+rbx*1+r14],xmm4
-        movdqu  xmm4,XMMWORD[rbx*1+r10]
-        pxor    xmm3,xmm12
-        movups  XMMWORD[(-16)+rbx*1+r15],xmm5
-        movdqu  xmm5,XMMWORD[rbx*1+r11]
-        pxor    xmm4,xmm12
-        pxor    xmm5,xmm12
-
-        dec     edx
-        jnz     NEAR $L$oop_dec4x
-
-        mov     rax,QWORD[16+rsp]
-
-        mov     edx,DWORD[24+rsp]
-
-        lea     rdi,[160+rdi]
-        dec     edx
-        jnz     NEAR $L$dec4x_loop_grande
-
-$L$dec4x_done:
-        movaps  xmm6,XMMWORD[((-216))+rax]
-        movaps  xmm7,XMMWORD[((-200))+rax]
-        movaps  xmm8,XMMWORD[((-184))+rax]
-        movaps  xmm9,XMMWORD[((-168))+rax]
-        movaps  xmm10,XMMWORD[((-152))+rax]
-        movaps  xmm11,XMMWORD[((-136))+rax]
-        movaps  xmm12,XMMWORD[((-120))+rax]
-
-
-
-        mov     r15,QWORD[((-48))+rax]
-
-        mov     r14,QWORD[((-40))+rax]
-
-        mov     r13,QWORD[((-32))+rax]
-
-        mov     r12,QWORD[((-24))+rax]
-
-        mov     rbp,QWORD[((-16))+rax]
-
-        mov     rbx,QWORD[((-8))+rax]
-
-        lea     rsp,[rax]
-
-$L$dec4x_epilogue:
-        mov     rdi,QWORD[8+rsp]        ;WIN64 epilogue
-        mov     rsi,QWORD[16+rsp]
-        DB      0F3h,0C3h               ;repret
-
-$L$SEH_end_aesni_multi_cbc_decrypt:
-EXTERN  __imp_RtlVirtualUnwind
-
-ALIGN   16
-se_handler:
-        push    rsi
-        push    rdi
-        push    rbx
-        push    rbp
-        push    r12
-        push    r13
-        push    r14
-        push    r15
-        pushfq
-        sub     rsp,64
-
-        mov     rax,QWORD[120+r8]
-        mov     rbx,QWORD[248+r8]
-
-        mov     rsi,QWORD[8+r9]
-        mov     r11,QWORD[56+r9]
-
-        mov     r10d,DWORD[r11]
-        lea     r10,[r10*1+rsi]
-        cmp     rbx,r10
-        jb      NEAR $L$in_prologue
-
-        mov     rax,QWORD[152+r8]
-
-        mov     r10d,DWORD[4+r11]
-        lea     r10,[r10*1+rsi]
-        cmp     rbx,r10
-        jae     NEAR $L$in_prologue
-
-        mov     rax,QWORD[16+rax]
-
-        mov     rbx,QWORD[((-8))+rax]
-        mov     rbp,QWORD[((-16))+rax]
-        mov     r12,QWORD[((-24))+rax]
-        mov     r13,QWORD[((-32))+rax]
-        mov     r14,QWORD[((-40))+rax]
-        mov     r15,QWORD[((-48))+rax]
-        mov     QWORD[144+r8],rbx
-        mov     QWORD[160+r8],rbp
-        mov     QWORD[216+r8],r12
-        mov     QWORD[224+r8],r13
-        mov     QWORD[232+r8],r14
-        mov     QWORD[240+r8],r15
-
-        lea     rsi,[((-56-160))+rax]
-        lea     rdi,[512+r8]
-        mov     ecx,20
-        DD      0xa548f3fc
-
-$L$in_prologue:
-        mov     rdi,QWORD[8+rax]
-        mov     rsi,QWORD[16+rax]
-        mov     QWORD[152+r8],rax
-        mov     QWORD[168+r8],rsi
-        mov     QWORD[176+r8],rdi
-
-        mov     rdi,QWORD[40+r9]
-        mov     rsi,r8
-        mov     ecx,154
-        DD      0xa548f3fc
-
-        mov     rsi,r9
-        xor     rcx,rcx
-        mov     rdx,QWORD[8+rsi]
-        mov     r8,QWORD[rsi]
-        mov     r9,QWORD[16+rsi]
-        mov     r10,QWORD[40+rsi]
-        lea     r11,[56+rsi]
-        lea     r12,[24+rsi]
-        mov     QWORD[32+rsp],r10
-        mov     QWORD[40+rsp],r11
-        mov     QWORD[48+rsp],r12
-        mov     QWORD[56+rsp],rcx
-        call    QWORD[__imp_RtlVirtualUnwind]
-
-        mov     eax,1
-        add     rsp,64
-        popfq
-        pop     r15
-        pop     r14
-        pop     r13
-        pop     r12
-        pop     rbp
-        pop     rbx
-        pop     rdi
-        pop     rsi
-        DB      0F3h,0C3h               ;repret
-
-
-section .pdata rdata align=4
-ALIGN   4
-        DD      $L$SEH_begin_aesni_multi_cbc_encrypt wrt ..imagebase
-        DD      $L$SEH_end_aesni_multi_cbc_encrypt wrt ..imagebase
-        DD      $L$SEH_info_aesni_multi_cbc_encrypt wrt ..imagebase
-        DD      $L$SEH_begin_aesni_multi_cbc_decrypt wrt ..imagebase
-        DD      $L$SEH_end_aesni_multi_cbc_decrypt wrt ..imagebase
-        DD      $L$SEH_info_aesni_multi_cbc_decrypt wrt ..imagebase
-section .xdata rdata align=8
-ALIGN   8
-$L$SEH_info_aesni_multi_cbc_encrypt:
-DB      9,0,0,0
-        DD      se_handler wrt ..imagebase
-        DD      $L$enc4x_body wrt ..imagebase,$L$enc4x_epilogue wrt ..imagebase
-$L$SEH_info_aesni_multi_cbc_decrypt:
-DB      9,0,0,0
-        DD      se_handler wrt ..imagebase
-        DD      $L$dec4x_body wrt ..imagebase,$L$dec4x_epilogue wrt ..imagebase
diff --git a/CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-sha1-x86_64.nasm b/CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-sha1-x86_64.nasm
deleted file mode 100644
index f4fd9ca50d61..000000000000
--- a/CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-sha1-x86_64.nasm
+++ /dev/null
@@ -1,1916 +0,0 @@
-; WARNING: do not edit!
-; Generated from openssl/crypto/aes/asm/aesni-sha1-x86_64.pl
-;
-; Copyright 2011-2020 The OpenSSL Project Authors. All Rights Reserved.
-;
-; Licensed under the OpenSSL license (the "License").  You may not use
-; this file except in compliance with the License.  You can obtain a copy
-; in the file LICENSE in the source distribution or at
-; https://www.openssl.org/source/license.html
-
-default rel
-%define XMMWORD
-%define YMMWORD
-%define ZMMWORD
-section .text code align=64
-
-EXTERN  OPENSSL_ia32cap_P
-
-global  aesni_cbc_sha1_enc
-
-ALIGN   32
-aesni_cbc_sha1_enc:
-
-
-        mov     r10d,DWORD[((OPENSSL_ia32cap_P+0))]
-        mov     r11,QWORD[((OPENSSL_ia32cap_P+4))]
-        bt      r11,61
-        jc      NEAR aesni_cbc_sha1_enc_shaext
-        jmp     NEAR aesni_cbc_sha1_enc_ssse3
-        DB      0F3h,0C3h               ;repret
-
-
-
-ALIGN   32
-aesni_cbc_sha1_enc_ssse3:
-        mov     QWORD[8+rsp],rdi        ;WIN64 prologue
-        mov     QWORD[16+rsp],rsi
-        mov     rax,rsp
-$L$SEH_begin_aesni_cbc_sha1_enc_ssse3:
-        mov     rdi,rcx
-        mov     rsi,rdx
-        mov     rdx,r8
-        mov     rcx,r9
-        mov     r8,QWORD[40+rsp]
-        mov     r9,QWORD[48+rsp]
-
-
-
-        mov     r10,QWORD[56+rsp]
-
-
-        push    rbx
-
-        push    rbp
-
-        push    r12
-
-        push    r13
-
-        push    r14
-
-        push    r15
-
-        lea     rsp,[((-264))+rsp]
-
-
-
-        movaps  XMMWORD[(96+0)+rsp],xmm6
-        movaps  XMMWORD[(96+16)+rsp],xmm7
-        movaps  XMMWORD[(96+32)+rsp],xmm8
-        movaps  XMMWORD[(96+48)+rsp],xmm9
-        movaps  XMMWORD[(96+64)+rsp],xmm10
-        movaps  XMMWORD[(96+80)+rsp],xmm11
-        movaps  XMMWORD[(96+96)+rsp],xmm12
-        movaps  XMMWORD[(96+112)+rsp],xmm13
-        movaps  XMMWORD[(96+128)+rsp],xmm14
-        movaps  XMMWORD[(96+144)+rsp],xmm15
-$L$prologue_ssse3:
-        mov     r12,rdi
-        mov     r13,rsi
-        mov     r14,rdx
-        lea     r15,[112+rcx]
-        movdqu  xmm2,XMMWORD[r8]
-        mov     QWORD[88+rsp],r8
-        shl     r14,6
-        sub     r13,r12
-        mov     r8d,DWORD[((240-112))+r15]
-        add     r14,r10
-
-        lea     r11,[K_XX_XX]
-        mov     eax,DWORD[r9]
-        mov     ebx,DWORD[4+r9]
-        mov     ecx,DWORD[8+r9]
-        mov     edx,DWORD[12+r9]
-        mov     esi,ebx
-        mov     ebp,DWORD[16+r9]
-        mov     edi,ecx
-        xor     edi,edx
-        and     esi,edi
-
-        movdqa  xmm3,XMMWORD[64+r11]
-        movdqa  xmm13,XMMWORD[r11]
-        movdqu  xmm4,XMMWORD[r10]
-        movdqu  xmm5,XMMWORD[16+r10]
-        movdqu  xmm6,XMMWORD[32+r10]
-        movdqu  xmm7,XMMWORD[48+r10]
-DB      102,15,56,0,227
-DB      102,15,56,0,235
-DB      102,15,56,0,243
-        add     r10,64
-        paddd   xmm4,xmm13
-DB      102,15,56,0,251
-        paddd   xmm5,xmm13
-        paddd   xmm6,xmm13
-        movdqa  XMMWORD[rsp],xmm4
-        psubd   xmm4,xmm13
-        movdqa  XMMWORD[16+rsp],xmm5
-        psubd   xmm5,xmm13
-        movdqa  XMMWORD[32+rsp],xmm6
-        psubd   xmm6,xmm13
-        movups  xmm15,XMMWORD[((-112))+r15]
-        movups  xmm0,XMMWORD[((16-112))+r15]
-        jmp     NEAR $L$oop_ssse3
-ALIGN   32
-$L$oop_ssse3:
-        ror     ebx,2
-        movups  xmm14,XMMWORD[r12]
-        xorps   xmm14,xmm15
-        xorps   xmm2,xmm14
-        movups  xmm1,XMMWORD[((-80))+r15]
-DB      102,15,56,220,208
-        pshufd  xmm8,xmm4,238
-        xor     esi,edx
-        movdqa  xmm12,xmm7
-        paddd   xmm13,xmm7
-        mov     edi,eax
-        add     ebp,DWORD[rsp]
-        punpcklqdq      xmm8,xmm5
-        xor     ebx,ecx
-        rol     eax,5
-        add     ebp,esi
-        psrldq  xmm12,4
-        and     edi,ebx
-        xor     ebx,ecx
-        pxor    xmm8,xmm4
-        add     ebp,eax
-        ror     eax,7
-        pxor    xmm12,xmm6
-        xor     edi,ecx
-        mov     esi,ebp
-        add     edx,DWORD[4+rsp]
-        pxor    xmm8,xmm12
-        xor     eax,ebx
-        rol     ebp,5
-        movdqa  XMMWORD[48+rsp],xmm13
-        add     edx,edi
-        movups  xmm0,XMMWORD[((-64))+r15]
-DB      102,15,56,220,209
-        and     esi,eax
-        movdqa  xmm3,xmm8
-        xor     eax,ebx
-        add     edx,ebp
-        ror     ebp,7
-        movdqa  xmm12,xmm8
-        xor     esi,ebx
-        pslldq  xmm3,12
-        paddd   xmm8,xmm8
-        mov     edi,edx
-        add     ecx,DWORD[8+rsp]
-        psrld   xmm12,31
-        xor     ebp,eax
-        rol     edx,5
-        add     ecx,esi
-        movdqa  xmm13,xmm3
-        and     edi,ebp
-        xor     ebp,eax
-        psrld   xmm3,30
-        add     ecx,edx
-        ror     edx,7
-        por     xmm8,xmm12
-        xor     edi,eax
-        mov     esi,ecx
-        add     ebx,DWORD[12+rsp]
-        movups  xmm1,XMMWORD[((-48))+r15]
-DB      102,15,56,220,208
-        pslld   xmm13,2
-        pxor    xmm8,xmm3
-        xor     edx,ebp
-        movdqa  xmm3,XMMWORD[r11]
-        rol     ecx,5
-        add     ebx,edi
-        and     esi,edx
-        pxor    xmm8,xmm13
-        xor     edx,ebp
-        add     ebx,ecx
-        ror     ecx,7
-        pshufd  xmm9,xmm5,238
-        xor     esi,ebp
-        movdqa  xmm13,xmm8
-        paddd   xmm3,xmm8
-        mov     edi,ebx
-        add     eax,DWORD[16+rsp]
-        punpcklqdq      xmm9,xmm6
-        xor     ecx,edx
-        rol     ebx,5
-        add     eax,esi
-        psrldq  xmm13,4
-        and     edi,ecx
-        xor     ecx,edx
-        pxor    xmm9,xmm5
-        add     eax,ebx
-        ror     ebx,7
-        movups  xmm0,XMMWORD[((-32))+r15]
-DB      102,15,56,220,209
-        pxor    xmm13,xmm7
-        xor     edi,edx
-        mov     esi,eax
-        add     ebp,DWORD[20+rsp]
-        pxor    xmm9,xmm13
-        xor     ebx,ecx
-        rol     eax,5
-        movdqa  XMMWORD[rsp],xmm3
-        add     ebp,edi
-        and     esi,ebx
-        movdqa  xmm12,xmm9
-        xor     ebx,ecx
-        add     ebp,eax
-        ror     eax,7
-        movdqa  xmm13,xmm9
-        xor     esi,ecx
-        pslldq  xmm12,12
-        paddd   xmm9,xmm9
-        mov     edi,ebp
-        add     edx,DWORD[24+rsp]
-        psrld   xmm13,31
-        xor     eax,ebx
-        rol     ebp,5
-        add     edx,esi
-        movups  xmm1,XMMWORD[((-16))+r15]
-DB      102,15,56,220,208
-        movdqa  xmm3,xmm12
-        and     edi,eax
-        xor     eax,ebx
-        psrld   xmm12,30
-        add     edx,ebp
-        ror     ebp,7
-        por     xmm9,xmm13
-        xor     edi,ebx
-        mov     esi,edx
-        add     ecx,DWORD[28+rsp]
-        pslld   xmm3,2
-        pxor    xmm9,xmm12
-        xor     ebp,eax
-        movdqa  xmm12,XMMWORD[16+r11]
-        rol     edx,5
-        add     ecx,edi
-        and     esi,ebp
-        pxor    xmm9,xmm3
-        xor     ebp,eax
-        add     ecx,edx
-        ror     edx,7
-        pshufd  xmm10,xmm6,238
-        xor     esi,eax
-        movdqa  xmm3,xmm9
-        paddd   xmm12,xmm9
-        mov     edi,ecx
-        add     ebx,DWORD[32+rsp]
-        movups  xmm0,XMMWORD[r15]
-DB      102,15,56,220,209
-        punpcklqdq      xmm10,xmm7
-        xor     edx,ebp
-        rol     ecx,5
-        add     ebx,esi
-        psrldq  xmm3,4
-        and     edi,edx
-        xor     edx,ebp
-        pxor    xmm10,xmm6
-        add     ebx,ecx
-        ror     ecx,7
-        pxor    xmm3,xmm8
-        xor     edi,ebp
-        mov     esi,ebx
-        add     eax,DWORD[36+rsp]
-        pxor    xmm10,xmm3
-        xor     ecx,edx
-        rol     ebx,5
-        movdqa  XMMWORD[16+rsp],xmm12
-        add     eax,edi
-        and     esi,ecx
-        movdqa  xmm13,xmm10
-        xor     ecx,edx
-        add     eax,ebx
-        ror     ebx,7
-        movups  xmm1,XMMWORD[16+r15]
-DB      102,15,56,220,208
-        movdqa  xmm3,xmm10
-        xor     esi,edx
-        pslldq  xmm13,12
-        paddd   xmm10,xmm10
-        mov     edi,eax
-        add     ebp,DWORD[40+rsp]
-        psrld   xmm3,31
-        xor     ebx,ecx
-        rol     eax,5
-        add     ebp,esi
-        movdqa  xmm12,xmm13
-        and     edi,ebx
-        xor     ebx,ecx
-        psrld   xmm13,30
-        add     ebp,eax
-        ror     eax,7
-        por     xmm10,xmm3
-        xor     edi,ecx
-        mov     esi,ebp
-        add     edx,DWORD[44+rsp]
-        pslld   xmm12,2
-        pxor    xmm10,xmm13
-        xor     eax,ebx
-        movdqa  xmm13,XMMWORD[16+r11]
-        rol     ebp,5
-        add     edx,edi
-        movups  xmm0,XMMWORD[32+r15]
-DB      102,15,56,220,209
-        and     esi,eax
-        pxor    xmm10,xmm12
-        xor     eax,ebx
-        add     edx,ebp
-        ror     ebp,7
-        pshufd  xmm11,xmm7,238
-        xor     esi,ebx
-        movdqa  xmm12,xmm10
-        paddd   xmm13,xmm10
-        mov     edi,edx
-        add     ecx,DWORD[48+rsp]
-        punpcklqdq      xmm11,xmm8
-        xor     ebp,eax
-        rol     edx,5
-        add     ecx,esi
-        psrldq  xmm12,4
-        and     edi,ebp
-        xor     ebp,eax
-        pxor    xmm11,xmm7
-        add     ecx,edx
-        ror     edx,7
-        pxor    xmm12,xmm9
-        xor     edi,eax
-        mov     esi,ecx
-        add     ebx,DWORD[52+rsp]
-        movups  xmm1,XMMWORD[48+r15]
-DB      102,15,56,220,208
-        pxor    xmm11,xmm12
-        xor     edx,ebp
-        rol     ecx,5
-        movdqa  XMMWORD[32+rsp],xmm13
-        add     ebx,edi
-        and     esi,edx
-        movdqa  xmm3,xmm11
-        xor     edx,ebp
-        add     ebx,ecx
-        ror     ecx,7
-        movdqa  xmm12,xmm11
-        xor     esi,ebp
-        pslldq  xmm3,12
-        paddd   xmm11,xmm11
-        mov     edi,ebx
-        add     eax,DWORD[56+rsp]
-        psrld   xmm12,31
-        xor     ecx,edx
-        rol     ebx,5
-        add     eax,esi
-        movdqa  xmm13,xmm3
-        and     edi,ecx
-        xor     ecx,edx
-        psrld   xmm3,30
-        add     eax,ebx
-        ror     ebx,7
-        cmp     r8d,11
-        jb      NEAR $L$aesenclast1
-        movups  xmm0,XMMWORD[64+r15]
-DB      102,15,56,220,209
-        movups  xmm1,XMMWORD[80+r15]
-DB      102,15,56,220,208
-        je      NEAR $L$aesenclast1
-        movups  xmm0,XMMWORD[96+r15]
-DB      102,15,56,220,209
-        movups  xmm1,XMMWORD[112+r15]
-DB      102,15,56,220,208
-$L$aesenclast1:
-DB      102,15,56,221,209
-        movups  xmm0,XMMWORD[((16-112))+r15]
-        por     xmm11,xmm12
-        xor     edi,edx
-        mov     esi,eax
-        add     ebp,DWORD[60+rsp]
-        pslld   xmm13,2
-        pxor    xmm11,xmm3
-        xor     ebx,ecx
-        movdqa  xmm3,XMMWORD[16+r11]
-        rol     eax,5
-        add     ebp,edi
-        and     esi,ebx
-        pxor    xmm11,xmm13
-        pshufd  xmm13,xmm10,238
-        xor     ebx,ecx
-        add     ebp,eax
-        ror     eax,7
-        pxor    xmm4,xmm8
-        xor     esi,ecx
-        mov     edi,ebp
-        add     edx,DWORD[rsp]
-        punpcklqdq      xmm13,xmm11
-        xor     eax,ebx
-        rol     ebp,5
-        pxor    xmm4,xmm5
-        add     edx,esi
-        movups  xmm14,XMMWORD[16+r12]
-        xorps   xmm14,xmm15
-        movups  XMMWORD[r13*1+r12],xmm2
-        xorps   xmm2,xmm14
-        movups  xmm1,XMMWORD[((-80))+r15]
-DB      102,15,56,220,208
-        and     edi,eax
-        movdqa  xmm12,xmm3
-        xor     eax,ebx
-        paddd   xmm3,xmm11
-        add     edx,ebp
-        pxor    xmm4,xmm13
-        ror     ebp,7
-        xor     edi,ebx
-        mov     esi,edx
-        add     ecx,DWORD[4+rsp]
-        movdqa  xmm13,xmm4
-        xor     ebp,eax
-        rol     edx,5
-        movdqa  XMMWORD[48+rsp],xmm3
-        add     ecx,edi
-        and     esi,ebp
-        xor     ebp,eax
-        pslld   xmm4,2
-        add     ecx,edx
-        ror     edx,7
-        psrld   xmm13,30
-        xor     esi,eax
-        mov     edi,ecx
-        add     ebx,DWORD[8+rsp]
-        movups  xmm0,XMMWORD[((-64))+r15]
-DB      102,15,56,220,209
-        por     xmm4,xmm13
-        xor     edx,ebp
-        rol     ecx,5
-        pshufd  xmm3,xmm11,238
-        add     ebx,esi
-        and     edi,edx
-        xor     edx,ebp
-        add     ebx,ecx
-        add     eax,DWORD[12+rsp]
-        xor     edi,ebp
-        mov     esi,ebx
-        rol     ebx,5
-        add     eax,edi
-        xor     esi,edx
-        ror     ecx,7
-        add     eax,ebx
-        pxor    xmm5,xmm9
-        add     ebp,DWORD[16+rsp]
-        movups  xmm1,XMMWORD[((-48))+r15]
-DB      102,15,56,220,208
-        xor     esi,ecx
-        punpcklqdq      xmm3,xmm4
-        mov     edi,eax
-        rol     eax,5
-        pxor    xmm5,xmm6
-        add     ebp,esi
-        xor     edi,ecx
-        movdqa  xmm13,xmm12
-        ror     ebx,7
-        paddd   xmm12,xmm4
-        add     ebp,eax
-        pxor    xmm5,xmm3
-        add     edx,DWORD[20+rsp]
-        xor     edi,ebx
-        mov     esi,ebp
-        rol     ebp,5
-        movdqa  xmm3,xmm5
-        add     edx,edi
-        xor     esi,ebx
-        movdqa  XMMWORD[rsp],xmm12
-        ror     eax,7
-        add     edx,ebp
-        add     ecx,DWORD[24+rsp]
-        pslld   xmm5,2
-        xor     esi,eax
-        mov     edi,edx
-        psrld   xmm3,30
-        rol     edx,5
-        add     ecx,esi
-        movups  xmm0,XMMWORD[((-32))+r15]
-DB      102,15,56,220,209
-        xor     edi,eax
-        ror     ebp,7
-        por     xmm5,xmm3
-        add     ecx,edx
-        add     ebx,DWORD[28+rsp]
-        pshufd  xmm12,xmm4,238
-        xor     edi,ebp
-        mov     esi,ecx
-        rol     ecx,5
-        add     ebx,edi
-        xor     esi,ebp
-        ror     edx,7
-        add     ebx,ecx
-        pxor    xmm6,xmm10
-        add     eax,DWORD[32+rsp]
-        xor     esi,edx
-        punpcklqdq      xmm12,xmm5
-        mov     edi,ebx
-        rol     ebx,5
-        pxor    xmm6,xmm7
-        add     eax,esi
-        xor     edi,edx
-        movdqa  xmm3,XMMWORD[32+r11]
-        ror     ecx,7
-        paddd   xmm13,xmm5
-        add     eax,ebx
-        pxor    xmm6,xmm12
-        add     ebp,DWORD[36+rsp]
-        movups  xmm1,XMMWORD[((-16))+r15]
-DB      102,15,56,220,208
-        xor     edi,ecx
-        mov     esi,eax
-        rol     eax,5
-        movdqa  xmm12,xmm6
-        add     ebp,edi
-        xor     esi,ecx
-        movdqa  XMMWORD[16+rsp],xmm13
-        ror     ebx,7
-        add     ebp,eax
-        add     edx,DWORD[40+rsp]
-        pslld   xmm6,2
-        xor     esi,ebx
-        mov     edi,ebp
-        psrld   xmm12,30
-        rol     ebp,5
-        add     edx,esi
-        xor     edi,ebx
-        ror     eax,7
-        por     xmm6,xmm12
-        add     edx,ebp
-        add     ecx,DWORD[44+rsp]
-        pshufd  xmm13,xmm5,238
-        xor     edi,eax
-        mov     esi,edx
-        rol     edx,5
-        add     ecx,edi
-        movups  xmm0,XMMWORD[r15]
-DB      102,15,56,220,209
-        xor     esi,eax
-        ror     ebp,7
-        add     ecx,edx
-        pxor    xmm7,xmm11
-        add     ebx,DWORD[48+rsp]
-        xor     esi,ebp
-        punpcklqdq      xmm13,xmm6
-        mov     edi,ecx
-        rol     ecx,5
-        pxor    xmm7,xmm8
-        add     ebx,esi
-        xor     edi,ebp
-        movdqa  xmm12,xmm3
-        ror     edx,7
-        paddd   xmm3,xmm6
-        add     ebx,ecx
-        pxor    xmm7,xmm13
-        add     eax,DWORD[52+rsp]
-        xor     edi,edx
-        mov     esi,ebx
-        rol     ebx,5
-        movdqa  xmm13,xmm7
-        add     eax,edi
-        xor     esi,edx
-        movdqa  XMMWORD[32+rsp],xmm3
-        ror     ecx,7
-        add     eax,ebx
-        add     ebp,DWORD[56+rsp]
-        movups  xmm1,XMMWORD[16+r15]
-DB      102,15,56,220,208
-        pslld   xmm7,2
-        xor     esi,ecx
-        mov     edi,eax
-        psrld   xmm13,30
-        rol     eax,5
-        add     ebp,esi
-        xor     edi,ecx
-        ror     ebx,7
-        por     xmm7,xmm13
-        add     ebp,eax
-        add     edx,DWORD[60+rsp]
-        pshufd  xmm3,xmm6,238
-        xor     edi,ebx
-        mov     esi,ebp
-        rol     ebp,5
-        add     edx,edi
-        xor     esi,ebx
-        ror     eax,7
-        add     edx,ebp
-        pxor    xmm8,xmm4
-        add     ecx,DWORD[rsp]
-        xor     esi,eax
-        punpcklqdq      xmm3,xmm7
-        mov     edi,edx
-        rol     edx,5
-        pxor    xmm8,xmm9
-        add     ecx,esi
-        movups  xmm0,XMMWORD[32+r15]
-DB      102,15,56,220,209
-        xor     edi,eax
-        movdqa  xmm13,xmm12
-        ror     ebp,7
-        paddd   xmm12,xmm7
-        add     ecx,edx
-        pxor    xmm8,xmm3
-        add     ebx,DWORD[4+rsp]
-        xor     edi,ebp
-        mov     esi,ecx
-        rol     ecx,5
-        movdqa  xmm3,xmm8
-        add     ebx,edi
-        xor     esi,ebp
-        movdqa  XMMWORD[48+rsp],xmm12
-        ror     edx,7
-        add     ebx,ecx
-        add     eax,DWORD[8+rsp]
-        pslld   xmm8,2
-        xor     esi,edx
-        mov     edi,ebx
-        psrld   xmm3,30
-        rol     ebx,5
-        add     eax,esi
-        xor     edi,edx
-        ror     ecx,7
-        por     xmm8,xmm3
-        add     eax,ebx
-        add     ebp,DWORD[12+rsp]
-        movups  xmm1,XMMWORD[48+r15]
-DB      102,15,56,220,208
-        pshufd  xmm12,xmm7,238
-        xor     edi,ecx
-        mov     esi,eax
-        rol     eax,5
-        add     ebp,edi
-        xor     esi,ecx
-        ror     ebx,7
-        add     ebp,eax
-        pxor    xmm9,xmm5
-        add     edx,DWORD[16+rsp]
-        xor     esi,ebx
-        punpcklqdq      xmm12,xmm8
-        mov     edi,ebp
-        rol     ebp,5
-        pxor    xmm9,xmm10
-        add     edx,esi
-        xor     edi,ebx
-        movdqa  xmm3,xmm13
-        ror     eax,7
-        paddd   xmm13,xmm8
-        add     edx,ebp
-        pxor    xmm9,xmm12
-        add     ecx,DWORD[20+rsp]
-        xor     edi,eax
-        mov     esi,edx
-        rol     edx,5
-        movdqa  xmm12,xmm9
-        add     ecx,edi
-        cmp     r8d,11
-        jb      NEAR $L$aesenclast2
-        movups  xmm0,XMMWORD[64+r15]
-DB      102,15,56,220,209
-        movups  xmm1,XMMWORD[80+r15]
-DB      102,15,56,220,208
-        je      NEAR $L$aesenclast2
-        movups  xmm0,XMMWORD[96+r15]
-DB      102,15,56,220,209
-        movups  xmm1,XMMWORD[112+r15]
-DB      102,15,56,220,208
-$L$aesenclast2:
-DB      102,15,56,221,209
-        movups  xmm0,XMMWORD[((16-112))+r15]
-        xor     esi,eax
-        movdqa  XMMWORD[rsp],xmm13
-        ror     ebp,7
-        add     ecx,edx
-        add     ebx,DWORD[24+rsp]
-        pslld   xmm9,2
-        xor     esi,ebp
-        mov     edi,ecx
-        psrld   xmm12,30
-        rol     ecx,5
-        add     ebx,esi
-        xor     edi,ebp
-        ror     edx,7
-        por     xmm9,xmm12
-        add     ebx,ecx
-        add     eax,DWORD[28+rsp]
-        pshufd  xmm13,xmm8,238
-        ror     ecx,7
-        mov     esi,ebx
-        xor     edi,edx
-        rol     ebx,5
-        add     eax,edi
-        xor     esi,ecx
-        xor     ecx,edx
-        add     eax,ebx
-        pxor    xmm10,xmm6
-        add     ebp,DWORD[32+rsp]
-        movups  xmm14,XMMWORD[32+r12]
-        xorps   xmm14,xmm15
-        movups  XMMWORD[16+r12*1+r13],xmm2
-        xorps   xmm2,xmm14
-        movups  xmm1,XMMWORD[((-80))+r15]
-DB      102,15,56,220,208
-        and     esi,ecx
-        xor     ecx,edx
-        ror     ebx,7
-        punpcklqdq      xmm13,xmm9
-        mov     edi,eax
-        xor     esi,ecx
-        pxor    xmm10,xmm11
-        rol     eax,5
-        add     ebp,esi
-        movdqa  xmm12,xmm3
-        xor     edi,ebx
-        paddd   xmm3,xmm9
-        xor     ebx,ecx
-        pxor    xmm10,xmm13
-        add     ebp,eax
-        add     edx,DWORD[36+rsp]
-        and     edi,ebx
-        xor     ebx,ecx
-        ror     eax,7
-        movdqa  xmm13,xmm10
-        mov     esi,ebp
-        xor     edi,ebx
-        movdqa  XMMWORD[16+rsp],xmm3
-        rol     ebp,5
-        add     edx,edi
-        movups  xmm0,XMMWORD[((-64))+r15]
-DB      102,15,56,220,209
-        xor     esi,eax
-        pslld   xmm10,2
-        xor     eax,ebx
-        add     edx,ebp
-        psrld   xmm13,30
-        add     ecx,DWORD[40+rsp]
-        and     esi,eax
-        xor     eax,ebx
-        por     xmm10,xmm13
-        ror     ebp,7
-        mov     edi,edx
-        xor     esi,eax
-        rol     edx,5
-        pshufd  xmm3,xmm9,238
-        add     ecx,esi
-        xor     edi,ebp
-        xor     ebp,eax
-        add     ecx,edx
-        add     ebx,DWORD[44+rsp]
-        and     edi,ebp
-        xor     ebp,eax
-        ror     edx,7
-        movups  xmm1,XMMWORD[((-48))+r15]
-DB      102,15,56,220,208
-        mov     esi,ecx
-        xor     edi,ebp
-        rol     ecx,5
-        add     ebx,edi
-        xor     esi,edx
-        xor     edx,ebp
-        add     ebx,ecx
-        pxor    xmm11,xmm7
-        add     eax,DWORD[48+rsp]
-        and     esi,edx
-        xor     edx,ebp
-        ror     ecx,7
-        punpcklqdq      xmm3,xmm10
-        mov     edi,ebx
-        xor     esi,edx
-        pxor    xmm11,xmm4
-        rol     ebx,5
-        add     eax,esi
-        movdqa  xmm13,XMMWORD[48+r11]
-        xor     edi,ecx
-        paddd   xmm12,xmm10
-        xor     ecx,edx
-        pxor    xmm11,xmm3
-        add     eax,ebx
-        add     ebp,DWORD[52+rsp]
-        movups  xmm0,XMMWORD[((-32))+r15]
-DB      102,15,56,220,209
-        and     edi,ecx
-        xor     ecx,edx
-        ror     ebx,7
-        movdqa  xmm3,xmm11
-        mov     esi,eax
-        xor     edi,ecx
-        movdqa  XMMWORD[32+rsp],xmm12
-        rol     eax,5
-        add     ebp,edi
-        xor     esi,ebx
-        pslld   xmm11,2
-        xor     ebx,ecx
-        add     ebp,eax
-        psrld   xmm3,30
-        add     edx,DWORD[56+rsp]
-        and     esi,ebx
-        xor     ebx,ecx
-        por     xmm11,xmm3
-        ror     eax,7
-        mov     edi,ebp
-        xor     esi,ebx
-        rol     ebp,5
-        pshufd  xmm12,xmm10,238
-        add     edx,esi
-        movups  xmm1,XMMWORD[((-16))+r15]
-DB      102,15,56,220,208
-        xor     edi,eax
-        xor     eax,ebx
-        add     edx,ebp
-        add     ecx,DWORD[60+rsp]
-        and     edi,eax
-        xor     eax,ebx
-        ror     ebp,7
-        mov     esi,edx
-        xor     edi,eax
-        rol     edx,5
-        add     ecx,edi
-        xor     esi,ebp
-        xor     ebp,eax
-        add     ecx,edx
-        pxor    xmm4,xmm8
-        add     ebx,DWORD[rsp]
-        and     esi,ebp
-        xor     ebp,eax
-        ror     edx,7
-        movups  xmm0,XMMWORD[r15]
-DB      102,15,56,220,209
-        punpcklqdq      xmm12,xmm11
-        mov     edi,ecx
-        xor     esi,ebp
-        pxor    xmm4,xmm5
-        rol     ecx,5
-        add     ebx,esi
-        movdqa  xmm3,xmm13
-        xor     edi,edx
-        paddd   xmm13,xmm11
-        xor     edx,ebp
-        pxor    xmm4,xmm12
-        add     ebx,ecx
-        add     eax,DWORD[4+rsp]
-        and     edi,edx
-        xor     edx,ebp
-        ror     ecx,7
-        movdqa  xmm12,xmm4
-        mov     esi,ebx
-        xor     edi,edx
-        movdqa  XMMWORD[48+rsp],xmm13
-        rol     ebx,5
-        add     eax,edi
-        xor     esi,ecx
-        pslld   xmm4,2
-        xor     ecx,edx
-        add     eax,ebx
-        psrld   xmm12,30
-        add     ebp,DWORD[8+rsp]
-        movups  xmm1,XMMWORD[16+r15]
-DB      102,15,56,220,208
-        and     esi,ecx
-        xor     ecx,edx
-        por     xmm4,xmm12
-        ror     ebx,7
-        mov     edi,eax
-        xor     esi,ecx
-        rol     eax,5
-        pshufd  xmm13,xmm11,238
-        add     ebp,esi
-        xor     edi,ebx
-        xor     ebx,ecx
-        add     ebp,eax
-        add     edx,DWORD[12+rsp]
-        and     edi,ebx
-        xor     ebx,ecx
-        ror     eax,7
-        mov     esi,ebp
-        xor     edi,ebx
-        rol     ebp,5
-        add     edx,edi
-        movups  xmm0,XMMWORD[32+r15]
-DB      102,15,56,220,209
-        xor     esi,eax
-        xor     eax,ebx
-        add     edx,ebp
-        pxor    xmm5,xmm9
-        add     ecx,DWORD[16+rsp]
-        and     esi,eax
-        xor     eax,ebx
-        ror     ebp,7
-        punpcklqdq      xmm13,xmm4
-        mov     edi,edx
-        xor     esi,eax
-        pxor    xmm5,xmm6
-        rol     edx,5
-        add     ecx,esi
-        movdqa  xmm12,xmm3
-        xor     edi,ebp
-        paddd   xmm3,xmm4
-        xor     ebp,eax
-        pxor    xmm5,xmm13
-        add     ecx,edx
-        add     ebx,DWORD[20+rsp]
-        and     edi,ebp
-        xor     ebp,eax
-        ror     edx,7
-        movups  xmm1,XMMWORD[48+r15]
-DB      102,15,56,220,208
-        movdqa  xmm13,xmm5
-        mov     esi,ecx
-        xor     edi,ebp
-        movdqa  XMMWORD[rsp],xmm3
-        rol     ecx,5
-        add     ebx,edi
-        xor     esi,edx
-        pslld   xmm5,2
-        xor     edx,ebp
-        add     ebx,ecx
-        psrld   xmm13,30
-        add     eax,DWORD[24+rsp]
-        and     esi,edx
-        xor     edx,ebp
-        por     xmm5,xmm13
-        ror     ecx,7
-        mov     edi,ebx
-        xor     esi,edx
-        rol     ebx,5
-        pshufd  xmm3,xmm4,238
-        add     eax,esi
-        xor     edi,ecx
-        xor     ecx,edx
-        add     eax,ebx
-        add     ebp,DWORD[28+rsp]
-        cmp     r8d,11
-        jb      NEAR $L$aesenclast3
-        movups  xmm0,XMMWORD[64+r15]
-DB      102,15,56,220,209
-        movups  xmm1,XMMWORD[80+r15]
-DB      102,15,56,220,208
-        je      NEAR $L$aesenclast3
-        movups  xmm0,XMMWORD[96+r15]
-DB      102,15,56,220,209
-        movups  xmm1,XMMWORD[112+r15]
-DB      102,15,56,220,208
-$L$aesenclast3:
-DB      102,15,56,221,209
-        movups  xmm0,XMMWORD[((16-112))+r15]
-        and     edi,ecx
-        xor     ecx,edx
-        ror     ebx,7
-        mov     esi,eax
-        xor     edi,ecx
-        rol     eax,5
-        add     ebp,edi
-        xor     esi,ebx
-        xor     ebx,ecx
-        add     ebp,eax
-        pxor    xmm6,xmm10
-        add     edx,DWORD[32+rsp]
-        and     esi,ebx
-        xor     ebx,ecx
-        ror     eax,7
-        punpcklqdq      xmm3,xmm5
-        mov     edi,ebp
-        xor     esi,ebx
-        pxor    xmm6,xmm7
-        rol     ebp,5
-        add     edx,esi
-        movups  xmm14,XMMWORD[48+r12]
-        xorps   xmm14,xmm15
-        movups  XMMWORD[32+r12*1+r13],xmm2
-        xorps   xmm2,xmm14
-        movups  xmm1,XMMWORD[((-80))+r15]
-DB      102,15,56,220,208
-        movdqa  xmm13,xmm12
-        xor     edi,eax
-        paddd   xmm12,xmm5
-        xor     eax,ebx
-        pxor    xmm6,xmm3
-        add     edx,ebp
-        add     ecx,DWORD[36+rsp]
-        and     edi,eax
-        xor     eax,ebx
-        ror     ebp,7
-        movdqa  xmm3,xmm6
-        mov     esi,edx
-        xor     edi,eax
-        movdqa  XMMWORD[16+rsp],xmm12
-        rol     edx,5
-        add     ecx,edi
-        xor     esi,ebp
-        pslld   xmm6,2
-        xor     ebp,eax
-        add     ecx,edx
-        psrld   xmm3,30
-        add     ebx,DWORD[40+rsp]
-        and     esi,ebp
-        xor     ebp,eax
-        por     xmm6,xmm3
-        ror     edx,7
-        movups  xmm0,XMMWORD[((-64))+r15]
-DB      102,15,56,220,209
-        mov     edi,ecx
-        xor     esi,ebp
-        rol     ecx,5
-        pshufd  xmm12,xmm5,238
-        add     ebx,esi
-        xor     edi,edx
-        xor     edx,ebp
-        add     ebx,ecx
-        add     eax,DWORD[44+rsp]
-        and     edi,edx
-        xor     edx,ebp
-        ror     ecx,7
-        mov     esi,ebx
-        xor     edi,edx
-        rol     ebx,5
-        add     eax,edi
-        xor     esi,edx
-        add     eax,ebx
-        pxor    xmm7,xmm11
-        add     ebp,DWORD[48+rsp]
-        movups  xmm1,XMMWORD[((-48))+r15]
-DB      102,15,56,220,208
-        xor     esi,ecx
-        punpcklqdq      xmm12,xmm6
-        mov     edi,eax
-        rol     eax,5
-        pxor    xmm7,xmm8
-        add     ebp,esi
-        xor     edi,ecx
-        movdqa  xmm3,xmm13
-        ror     ebx,7
-        paddd   xmm13,xmm6
-        add     ebp,eax
-        pxor    xmm7,xmm12
-        add     edx,DWORD[52+rsp]
-        xor     edi,ebx
-        mov     esi,ebp
-        rol     ebp,5
-        movdqa  xmm12,xmm7
-        add     edx,edi
-        xor     esi,ebx
-        movdqa  XMMWORD[32+rsp],xmm13
-        ror     eax,7
-        add     edx,ebp
-        add     ecx,DWORD[56+rsp]
-        pslld   xmm7,2
-        xor     esi,eax
-        mov     edi,edx
-        psrld   xmm12,30
-        rol     edx,5
-        add     ecx,esi
-        movups  xmm0,XMMWORD[((-32))+r15]
-DB      102,15,56,220,209
-        xor     edi,eax
-        ror     ebp,7
-        por     xmm7,xmm12
-        add     ecx,edx
-        add     ebx,DWORD[60+rsp]
-        xor     edi,ebp
-        mov     esi,ecx
-        rol     ecx,5
-        add     ebx,edi
-        xor     esi,ebp
-        ror     edx,7
-        add     ebx,ecx
-        add     eax,DWORD[rsp]
-        xor     esi,edx
-        mov     edi,ebx
-        rol     ebx,5
-        paddd   xmm3,xmm7
-        add     eax,esi
-        xor     edi,edx
-        movdqa  XMMWORD[48+rsp],xmm3
-        ror     ecx,7
-        add     eax,ebx
-        add     ebp,DWORD[4+rsp]
-        movups  xmm1,XMMWORD[((-16))+r15]
-DB      102,15,56,220,208
-        xor     edi,ecx
-        mov     esi,eax
-        rol     eax,5
-        add     ebp,edi
-        xor     esi,ecx
-        ror     ebx,7
-        add     ebp,eax
-        add     edx,DWORD[8+rsp]
-        xor     esi,ebx
-        mov     edi,ebp
-        rol     ebp,5
-        add     edx,esi
-        xor     edi,ebx
-        ror     eax,7
-        add     edx,ebp
-        add     ecx,DWORD[12+rsp]
-        xor     edi,eax
-        mov     esi,edx
-        rol     edx,5
-        add     ecx,edi
-        movups  xmm0,XMMWORD[r15]
-DB      102,15,56,220,209
-        xor     esi,eax
-        ror     ebp,7
-        add     ecx,edx
-        cmp     r10,r14
-        je      NEAR $L$done_ssse3
-        movdqa  xmm3,XMMWORD[64+r11]
-        movdqa  xmm13,XMMWORD[r11]
-        movdqu  xmm4,XMMWORD[r10]
-        movdqu  xmm5,XMMWORD[16+r10]
-        movdqu  xmm6,XMMWORD[32+r10]
-        movdqu  xmm7,XMMWORD[48+r10]
-DB      102,15,56,0,227
-        add     r10,64
-        add     ebx,DWORD[16+rsp]
-        xor     esi,ebp
-        mov     edi,ecx
-DB      102,15,56,0,235
-        rol     ecx,5
-        add     ebx,esi
-        xor     edi,ebp
-        ror     edx,7
-        paddd   xmm4,xmm13
-        add     ebx,ecx
-        add     eax,DWORD[20+rsp]
-        xor     edi,edx
-        mov     esi,ebx
-        movdqa  XMMWORD[rsp],xmm4
-        rol     ebx,5
-        add     eax,edi
-        xor     esi,edx
-        ror     ecx,7
-        psubd   xmm4,xmm13
-        add     eax,ebx
-        add     ebp,DWORD[24+rsp]
-        movups  xmm1,XMMWORD[16+r15]
-DB      102,15,56,220,208
-        xor     esi,ecx
-        mov     edi,eax
-        rol     eax,5
-        add     ebp,esi
-        xor     edi,ecx
-        ror     ebx,7
-        add     ebp,eax
-        add     edx,DWORD[28+rsp]
-        xor     edi,ebx
-        mov     esi,ebp
-        rol     ebp,5
-        add     edx,edi
-        xor     esi,ebx
-        ror     eax,7
-        add     edx,ebp
-        add     ecx,DWORD[32+rsp]
-        xor     esi,eax
-        mov     edi,edx
-DB      102,15,56,0,243
-        rol     edx,5
-        add     ecx,esi
-        movups  xmm0,XMMWORD[32+r15]
-DB      102,15,56,220,209
-        xor     edi,eax
-        ror     ebp,7
-        paddd   xmm5,xmm13
-        add     ecx,edx
-        add     ebx,DWORD[36+rsp]
-        xor     edi,ebp
-        mov     esi,ecx
-        movdqa  XMMWORD[16+rsp],xmm5
-        rol     ecx,5
-        add     ebx,edi
-        xor     esi,ebp
-        ror     edx,7
-        psubd   xmm5,xmm13
-        add     ebx,ecx
-        add     eax,DWORD[40+rsp]
-        xor     esi,edx
-        mov     edi,ebx
-        rol     ebx,5
-        add     eax,esi
-        xor     edi,edx
-        ror     ecx,7
-        add     eax,ebx
-        add     ebp,DWORD[44+rsp]
-        movups  xmm1,XMMWORD[48+r15]
-DB      102,15,56,220,208
-        xor     edi,ecx
-        mov     esi,eax
-        rol     eax,5
-        add     ebp,edi
-        xor     esi,ecx
-        ror     ebx,7
-        add     ebp,eax
-        add     edx,DWORD[48+rsp]
-        xor     esi,ebx
-        mov     edi,ebp
-DB      102,15,56,0,251
-        rol     ebp,5
-        add     edx,esi
-        xor     edi,ebx
-        ror     eax,7
-        paddd   xmm6,xmm13
-        add     edx,ebp
-        add     ecx,DWORD[52+rsp]
-        xor     edi,eax
-        mov     esi,edx
-        movdqa  XMMWORD[32+rsp],xmm6
-        rol     edx,5
-        add     ecx,edi
-        cmp     r8d,11
-        jb      NEAR $L$aesenclast4
-        movups  xmm0,XMMWORD[64+r15]
-DB      102,15,56,220,209
-        movups  xmm1,XMMWORD[80+r15]
-DB      102,15,56,220,208
-        je      NEAR $L$aesenclast4
-        movups  xmm0,XMMWORD[96+r15]
-DB      102,15,56,220,209
-        movups  xmm1,XMMWORD[112+r15]
-DB      102,15,56,220,208
-$L$aesenclast4:
-DB      102,15,56,221,209
-        movups  xmm0,XMMWORD[((16-112))+r15]
-        xor     esi,eax
-        ror     ebp,7
-        psubd   xmm6,xmm13
-        add     ecx,edx
-        add     ebx,DWORD[56+rsp]
-        xor     esi,ebp
-        mov     edi,ecx
-        rol     ecx,5
-        add     ebx,esi
-        xor     edi,ebp
-        ror     edx,7
-        add     ebx,ecx
-        add     eax,DWORD[60+rsp]
-        xor     edi,edx
-        mov     esi,ebx
-        rol     ebx,5
-        add     eax,edi
-        ror     ecx,7
-        add     eax,ebx
-        movups  XMMWORD[48+r12*1+r13],xmm2
-        lea     r12,[64+r12]
-
-        add     eax,DWORD[r9]
-        add     esi,DWORD[4+r9]
-        add     ecx,DWORD[8+r9]
-        add     edx,DWORD[12+r9]
-        mov     DWORD[r9],eax
-        add     ebp,DWORD[16+r9]
-        mov     DWORD[4+r9],esi
-        mov     ebx,esi
-        mov     DWORD[8+r9],ecx
-        mov     edi,ecx
-        mov     DWORD[12+r9],edx
-        xor     edi,edx
-        mov     DWORD[16+r9],ebp
-        and     esi,edi
-        jmp     NEAR $L$oop_ssse3
-
-$L$done_ssse3:
-        add     ebx,DWORD[16+rsp]
-        xor     esi,ebp
-        mov     edi,ecx
-        rol     ecx,5
-        add     ebx,esi
-        xor     edi,ebp
-        ror     edx,7
-        add     ebx,ecx
-        add     eax,DWORD[20+rsp]
-        xor     edi,edx
-        mov     esi,ebx
-        rol     ebx,5
-        add     eax,edi
-        xor     esi,edx
-        ror     ecx,7
-        add     eax,ebx
-        add     ebp,DWORD[24+rsp]
-        movups  xmm1,XMMWORD[16+r15]
-DB      102,15,56,220,208
-        xor     esi,ecx
-        mov     edi,eax
-        rol     eax,5
-        add     ebp,esi
-        xor     edi,ecx
-        ror     ebx,7
-        add     ebp,eax
-        add     edx,DWORD[28+rsp]
-        xor     edi,ebx
-        mov     esi,ebp
-        rol     ebp,5
-        add     edx,edi
-        xor     esi,ebx
-        ror     eax,7
-        add     edx,ebp
-        add     ecx,DWORD[32+rsp]
-        xor     esi,eax
-        mov     edi,edx
-        rol     edx,5
-        add     ecx,esi
-        movups  xmm0,XMMWORD[32+r15]
-DB      102,15,56,220,209
-        xor     edi,eax
-        ror     ebp,7
-        add     ecx,edx
-        add     ebx,DWORD[36+rsp]
-        xor     edi,ebp
-        mov     esi,ecx
-        rol     ecx,5
-        add     ebx,edi
-        xor     esi,ebp
-        ror     edx,7
-        add     ebx,ecx
-        add     eax,DWORD[40+rsp]
-        xor     esi,edx
-        mov     edi,ebx
-        rol     ebx,5
-        add     eax,esi
-        xor     edi,edx
-        ror     ecx,7
-        add     eax,ebx
-        add     ebp,DWORD[44+rsp]
-        movups  xmm1,XMMWORD[48+r15]
-DB      102,15,56,220,208
-        xor     edi,ecx
-        mov     esi,eax
-        rol     eax,5
-        add     ebp,edi
-        xor     esi,ecx
-        ror     ebx,7
-        add     ebp,eax
-        add     edx,DWORD[48+rsp]
-        xor     esi,ebx
-        mov     edi,ebp
-        rol     ebp,5
-        add     edx,esi
-        xor     edi,ebx
-        ror     eax,7
-        add     edx,ebp
-        add     ecx,DWORD[52+rsp]
-        xor     edi,eax
-        mov     esi,edx
-        rol     edx,5
-        add     ecx,edi
-        cmp     r8d,11
-        jb      NEAR $L$aesenclast5
-        movups  xmm0,XMMWORD[64+r15]
-DB      102,15,56,220,209
-        movups  xmm1,XMMWORD[80+r15]
-DB      102,15,56,220,208
-        je      NEAR $L$aesenclast5
-        movups  xmm0,XMMWORD[96+r15]
-DB      102,15,56,220,209
-        movups  xmm1,XMMWORD[112+r15]
-DB      102,15,56,220,208
-$L$aesenclast5:
-DB      102,15,56,221,209
-        movups  xmm0,XMMWORD[((16-112))+r15]
-        xor     esi,eax
-        ror     ebp,7
-        add     ecx,edx
-        add     ebx,DWORD[56+rsp]
-        xor     esi,ebp
-        mov     edi,ecx
-        rol     ecx,5
-        add     ebx,esi
-        xor     edi,ebp
-        ror     edx,7
-        add     ebx,ecx
-        add     eax,DWORD[60+rsp]
-        xor     edi,edx
-        mov     esi,ebx
-        rol     ebx,5
-        add     eax,edi
-        ror     ecx,7
-        add     eax,ebx
-        movups  XMMWORD[48+r12*1+r13],xmm2
-        mov     r8,QWORD[88+rsp]
-
-        add     eax,DWORD[r9]
-        add     esi,DWORD[4+r9]
-        add     ecx,DWORD[8+r9]
-        mov     DWORD[r9],eax
-        add     edx,DWORD[12+r9]
-        mov     DWORD[4+r9],esi
-        add     ebp,DWORD[16+r9]
-        mov     DWORD[8+r9],ecx
-        mov     DWORD[12+r9],edx
-        mov     DWORD[16+r9],ebp
-        movups  XMMWORD[r8],xmm2
-        movaps  xmm6,XMMWORD[((96+0))+rsp]
-        movaps  xmm7,XMMWORD[((96+16))+rsp]
-        movaps  xmm8,XMMWORD[((96+32))+rsp]
-        movaps  xmm9,XMMWORD[((96+48))+rsp]
-        movaps  xmm10,XMMWORD[((96+64))+rsp]
-        movaps  xmm11,XMMWORD[((96+80))+rsp]
-        movaps  xmm12,XMMWORD[((96+96))+rsp]
-        movaps  xmm13,XMMWORD[((96+112))+rsp]
-        movaps  xmm14,XMMWORD[((96+128))+rsp]
-        movaps  xmm15,XMMWORD[((96+144))+rsp]
-        lea     rsi,[264+rsp]
-
-        mov     r15,QWORD[rsi]
-
-        mov     r14,QWORD[8+rsi]
-
-        mov     r13,QWORD[16+rsi]
-
-        mov     r12,QWORD[24+rsi]
-
-        mov     rbp,QWORD[32+rsi]
-
-        mov     rbx,QWORD[40+rsi]
-
-        lea     rsp,[48+rsi]
-
-$L$epilogue_ssse3:
-        mov     rdi,QWORD[8+rsp]        ;WIN64 epilogue
-        mov     rsi,QWORD[16+rsp]
-        DB      0F3h,0C3h               ;repret
-
-$L$SEH_end_aesni_cbc_sha1_enc_ssse3:
-ALIGN   64
-K_XX_XX:
-        DD      0x5a827999,0x5a827999,0x5a827999,0x5a827999
-        DD      0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
-        DD      0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
-        DD      0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
-        DD      0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
-DB      0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0
-
-DB      65,69,83,78,73,45,67,66,67,43,83,72,65,49,32,115
-DB      116,105,116,99,104,32,102,111,114,32,120,56,54,95,54,52
-DB      44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32
-DB      60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111
-DB      114,103,62,0
-ALIGN   64
-
-ALIGN   32
-aesni_cbc_sha1_enc_shaext:
-        mov     QWORD[8+rsp],rdi        ;WIN64 prologue
-        mov     QWORD[16+rsp],rsi
-        mov     rax,rsp
-$L$SEH_begin_aesni_cbc_sha1_enc_shaext:
-        mov     rdi,rcx
-        mov     rsi,rdx
-        mov     rdx,r8
-        mov     rcx,r9
-        mov     r8,QWORD[40+rsp]
-        mov     r9,QWORD[48+rsp]
-
-
-
-        mov     r10,QWORD[56+rsp]
-        lea     rsp,[((-168))+rsp]
-        movaps  XMMWORD[(-8-160)+rax],xmm6
-        movaps  XMMWORD[(-8-144)+rax],xmm7
-        movaps  XMMWORD[(-8-128)+rax],xmm8
-        movaps  XMMWORD[(-8-112)+rax],xmm9
-        movaps  XMMWORD[(-8-96)+rax],xmm10
-        movaps  XMMWORD[(-8-80)+rax],xmm11
-        movaps  XMMWORD[(-8-64)+rax],xmm12
-        movaps  XMMWORD[(-8-48)+rax],xmm13
-        movaps  XMMWORD[(-8-32)+rax],xmm14
-        movaps  XMMWORD[(-8-16)+rax],xmm15
-$L$prologue_shaext:
-        movdqu  xmm8,XMMWORD[r9]
-        movd    xmm9,DWORD[16+r9]
-        movdqa  xmm7,XMMWORD[((K_XX_XX+80))]
-
-        mov     r11d,DWORD[240+rcx]
-        sub     rsi,rdi
-        movups  xmm15,XMMWORD[rcx]
-        movups  xmm2,XMMWORD[r8]
-        movups  xmm0,XMMWORD[16+rcx]
-        lea     rcx,[112+rcx]
-
-        pshufd  xmm8,xmm8,27
-        pshufd  xmm9,xmm9,27
-        jmp     NEAR $L$oop_shaext
-
-ALIGN   16
-$L$oop_shaext:
-        movups  xmm14,XMMWORD[rdi]
-        xorps   xmm14,xmm15
-        xorps   xmm2,xmm14
-        movups  xmm1,XMMWORD[((-80))+rcx]
-DB      102,15,56,220,208
-        movdqu  xmm3,XMMWORD[r10]
-        movdqa  xmm12,xmm9
-DB      102,15,56,0,223
-        movdqu  xmm4,XMMWORD[16+r10]
-        movdqa  xmm11,xmm8
-        movups  xmm0,XMMWORD[((-64))+rcx]
-DB      102,15,56,220,209
-DB      102,15,56,0,231
-
-        paddd   xmm9,xmm3
-        movdqu  xmm5,XMMWORD[32+r10]
-        lea     r10,[64+r10]
-        pxor    xmm3,xmm12
-        movups  xmm1,XMMWORD[((-48))+rcx]
-DB      102,15,56,220,208
-        pxor    xmm3,xmm12
-        movdqa  xmm10,xmm8
-DB      102,15,56,0,239
-DB      69,15,58,204,193,0
-DB      68,15,56,200,212
-        movups  xmm0,XMMWORD[((-32))+rcx]
-DB      102,15,56,220,209
-DB      15,56,201,220
-        movdqu  xmm6,XMMWORD[((-16))+r10]
-        movdqa  xmm9,xmm8
-DB      102,15,56,0,247
-        movups  xmm1,XMMWORD[((-16))+rcx]
-DB      102,15,56,220,208
-DB      69,15,58,204,194,0
-DB      68,15,56,200,205
-        pxor    xmm3,xmm5
-DB      15,56,201,229
-        movups  xmm0,XMMWORD[rcx]
-DB      102,15,56,220,209
-        movdqa  xmm10,xmm8
-DB      69,15,58,204,193,0
-DB      68,15,56,200,214
-        movups  xmm1,XMMWORD[16+rcx]
-DB      102,15,56,220,208
-DB      15,56,202,222
-        pxor    xmm4,xmm6
-DB      15,56,201,238
-        movups  xmm0,XMMWORD[32+rcx]
-DB      102,15,56,220,209
-        movdqa  xmm9,xmm8
-DB      69,15,58,204,194,0
-DB      68,15,56,200,203
-        movups  xmm1,XMMWORD[48+rcx]
-DB      102,15,56,220,208
-DB      15,56,202,227
-        pxor    xmm5,xmm3
-DB      15,56,201,243
-        cmp     r11d,11
-        jb      NEAR $L$aesenclast6
-        movups  xmm0,XMMWORD[64+rcx]
-DB      102,15,56,220,209
-        movups  xmm1,XMMWORD[80+rcx]
-DB      102,15,56,220,208
-        je      NEAR $L$aesenclast6
-        movups  xmm0,XMMWORD[96+rcx]
-DB      102,15,56,220,209
-        movups  xmm1,XMMWORD[112+rcx]
-DB      102,15,56,220,208
-$L$aesenclast6:
-DB      102,15,56,221,209
-        movups  xmm0,XMMWORD[((16-112))+rcx]
-        movdqa  xmm10,xmm8
-DB      69,15,58,204,193,0
-DB      68,15,56,200,212
-        movups  xmm14,XMMWORD[16+rdi]
-        xorps   xmm14,xmm15
-        movups  XMMWORD[rdi*1+rsi],xmm2
-        xorps   xmm2,xmm14
-        movups  xmm1,XMMWORD[((-80))+rcx]
-DB      102,15,56,220,208
-DB      15,56,202,236
-        pxor    xmm6,xmm4
-DB      15,56,201,220
-        movups  xmm0,XMMWORD[((-64))+rcx]
-DB      102,15,56,220,209
-        movdqa  xmm9,xmm8
-DB      69,15,58,204,194,1
-DB      68,15,56,200,205
-        movups  xmm1,XMMWORD[((-48))+rcx]
-DB      102,15,56,220,208
-DB      15,56,202,245
-        pxor    xmm3,xmm5
-DB      15,56,201,229
-        movups  xmm0,XMMWORD[((-32))+rcx]
-DB      102,15,56,220,209
-        movdqa  xmm10,xmm8
-DB      69,15,58,204,193,1
-DB      68,15,56,200,214
-        movups  xmm1,XMMWORD[((-16))+rcx]
-DB      102,15,56,220,208
-DB      15,56,202,222
-        pxor    xmm4,xmm6
-DB      15,56,201,238
-        movups  xmm0,XMMWORD[rcx]
-DB      102,15,56,220,209
-        movdqa  xmm9,xmm8
-DB      69,15,58,204,194,1
-DB      68,15,56,200,203
-        movups  xmm1,XMMWORD[16+rcx]
-DB      102,15,56,220,208
-DB      15,56,202,227
-        pxor    xmm5,xmm3
-DB      15,56,201,243
-        movups  xmm0,XMMWORD[32+rcx]
-DB      102,15,56,220,209
-        movdqa  xmm10,xmm8
-DB      69,15,58,204,193,1
-DB      68,15,56,200,212
-        movups  xmm1,XMMWORD[48+rcx]
-DB      102,15,56,220,208
-DB      15,56,202,236
-        pxor    xmm6,xmm4
-DB      15,56,201,220
-        cmp     r11d,11
-        jb      NEAR $L$aesenclast7
-        movups  xmm0,XMMWORD[64+rcx]
-DB      102,15,56,220,209
-        movups  xmm1,XMMWORD[80+rcx]
-DB      102,15,56,220,208
-        je      NEAR $L$aesenclast7
-        movups  xmm0,XMMWORD[96+rcx]
-DB      102,15,56,220,209
-        movups  xmm1,XMMWORD[112+rcx]
-DB      102,15,56,220,208
-$L$aesenclast7:
-DB      102,15,56,221,209
-        movups  xmm0,XMMWORD[((16-112))+rcx]
-        movdqa  xmm9,xmm8
-DB      69,15,58,204,194,1
-DB      68,15,56,200,205
-        movups  xmm14,XMMWORD[32+rdi]
-        xorps   xmm14,xmm15
-        movups  XMMWORD[16+rdi*1+rsi],xmm2
-        xorps   xmm2,xmm14
-        movups  xmm1,XMMWORD[((-80))+rcx]
-DB      102,15,56,220,208
-DB      15,56,202,245
-        pxor    xmm3,xmm5
-DB      15,56,201,229
-        movups  xmm0,XMMWORD[((-64))+rcx]
-DB      102,15,56,220,209
-        movdqa  xmm10,xmm8
-DB      69,15,58,204,193,2
-DB      68,15,56,200,214
-        movups  xmm1,XMMWORD[((-48))+rcx]
-DB      102,15,56,220,208
-DB      15,56,202,222
-        pxor    xmm4,xmm6
-DB      15,56,201,238
-        movups  xmm0,XMMWORD[((-32))+rcx]
-DB      102,15,56,220,209
-        movdqa  xmm9,xmm8
-DB      69,15,58,204,194,2
-DB      68,15,56,200,203
-        movups  xmm1,XMMWORD[((-16))+rcx]
-DB      102,15,56,220,208
-DB      15,56,202,227
-        pxor    xmm5,xmm3
-DB      15,56,201,243
-        movups  xmm0,XMMWORD[rcx]
-DB      102,15,56,220,209
-        movdqa  xmm10,xmm8
-DB      69,15,58,204,193,2
-DB      68,15,56,200,212
-        movups  xmm1,XMMWORD[16+rcx]
-DB      102,15,56,220,208
-DB      15,56,202,236
-        pxor    xmm6,xmm4
-DB      15,56,201,220
-        movups  xmm0,XMMWORD[32+rcx]
-DB      102,15,56,220,209
-        movdqa  xmm9,xmm8
-DB      69,15,58,204,194,2
-DB      68,15,56,200,205
-        movups  xmm1,XMMWORD[48+rcx]
-DB      102,15,56,220,208
-DB      15,56,202,245
-        pxor    xmm3,xmm5
-DB      15,56,201,229
-        cmp     r11d,11
-        jb      NEAR $L$aesenclast8
-        movups  xmm0,XMMWORD[64+rcx]
-DB      102,15,56,220,209
-        movups  xmm1,XMMWORD[80+rcx]
-DB      102,15,56,220,208
-        je      NEAR $L$aesenclast8
-        movups  xmm0,XMMWORD[96+rcx]
-DB      102,15,56,220,209
-        movups  xmm1,XMMWORD[112+rcx]
-DB      102,15,56,220,208
-$L$aesenclast8:
-DB      102,15,56,221,209
-        movups  xmm0,XMMWORD[((16-112))+rcx]
-        movdqa  xmm10,xmm8
-DB      69,15,58,204,193,2
-DB      68,15,56,200,214
-        movups  xmm14,XMMWORD[48+rdi]
-        xorps   xmm14,xmm15
-        movups  XMMWORD[32+rdi*1+rsi],xmm2
-        xorps   xmm2,xmm14
-        movups  xmm1,XMMWORD[((-80))+rcx]
-DB      102,15,56,220,208
-DB      15,56,202,222
-        pxor    xmm4,xmm6
-DB      15,56,201,238
-        movups  xmm0,XMMWORD[((-64))+rcx]
-DB      102,15,56,220,209
-        movdqa  xmm9,xmm8
-DB      69,15,58,204,194,3
-DB      68,15,56,200,203
-        movups  xmm1,XMMWORD[((-48))+rcx]
-DB      102,15,56,220,208
-DB      15,56,202,227
-        pxor    xmm5,xmm3
-DB      15,56,201,243
-        movups  xmm0,XMMWORD[((-32))+rcx]
-DB      102,15,56,220,209
-        movdqa  xmm10,xmm8
-DB      69,15,58,204,193,3
-DB      68,15,56,200,212
-DB      15,56,202,236
-        pxor    xmm6,xmm4
-        movups  xmm1,XMMWORD[((-16))+rcx]
-DB      102,15,56,220,208
-        movdqa  xmm9,xmm8
-DB      69,15,58,204,194,3
-DB      68,15,56,200,205
-DB      15,56,202,245
-        movups  xmm0,XMMWORD[rcx]
-DB      102,15,56,220,209
-        movdqa  xmm5,xmm12
-        movdqa  xmm10,xmm8
-DB      69,15,58,204,193,3
-DB      68,15,56,200,214
-        movups  xmm1,XMMWORD[16+rcx]
-DB      102,15,56,220,208
-        movdqa  xmm9,xmm8
-DB      69,15,58,204,194,3
-DB      68,15,56,200,205
-        movups  xmm0,XMMWORD[32+rcx]
-DB      102,15,56,220,209
-        movups  xmm1,XMMWORD[48+rcx]
-DB      102,15,56,220,208
-        cmp     r11d,11
-        jb      NEAR $L$aesenclast9
-        movups  xmm0,XMMWORD[64+rcx]
-DB      102,15,56,220,209
-        movups  xmm1,XMMWORD[80+rcx]
-DB      102,15,56,220,208
-        je      NEAR $L$aesenclast9
-        movups  xmm0,XMMWORD[96+rcx]
-DB      102,15,56,220,209
-        movups  xmm1,XMMWORD[112+rcx]
-DB      102,15,56,220,208
-$L$aesenclast9:
-DB      102,15,56,221,209
-        movups  xmm0,XMMWORD[((16-112))+rcx]
-        dec     rdx
-
-        paddd   xmm8,xmm11
-        movups  XMMWORD[48+rdi*1+rsi],xmm2
-        lea     rdi,[64+rdi]
-        jnz     NEAR $L$oop_shaext
-
-        pshufd  xmm8,xmm8,27
-        pshufd  xmm9,xmm9,27
-        movups  XMMWORD[r8],xmm2
-        movdqu  XMMWORD[r9],xmm8
-        movd    DWORD[16+r9],xmm9
-        movaps  xmm6,XMMWORD[((-8-160))+rax]
-        movaps  xmm7,XMMWORD[((-8-144))+rax]
-        movaps  xmm8,XMMWORD[((-8-128))+rax]
-        movaps  xmm9,XMMWORD[((-8-112))+rax]
-        movaps  xmm10,XMMWORD[((-8-96))+rax]
-        movaps  xmm11,XMMWORD[((-8-80))+rax]
-        movaps  xmm12,XMMWORD[((-8-64))+rax]
-        movaps  xmm13,XMMWORD[((-8-48))+rax]
-        movaps  xmm14,XMMWORD[((-8-32))+rax]
-        movaps  xmm15,XMMWORD[((-8-16))+rax]
-        mov     rsp,rax
-$L$epilogue_shaext:
-        mov     rdi,QWORD[8+rsp]        ;WIN64 epilogue
-        mov     rsi,QWORD[16+rsp]
-        DB      0F3h,0C3h               ;repret
-
-$L$SEH_end_aesni_cbc_sha1_enc_shaext:
-EXTERN  __imp_RtlVirtualUnwind
-
-ALIGN   16
-ssse3_handler:
-        push    rsi
-        push    rdi
-        push    rbx
-        push    rbp
-        push    r12
-        push    r13
-        push    r14
-        push    r15
-        pushfq
-        sub     rsp,64
-
-        mov     rax,QWORD[120+r8]
-        mov     rbx,QWORD[248+r8]
-
-        mov     rsi,QWORD[8+r9]
-        mov     r11,QWORD[56+r9]
-
-        mov     r10d,DWORD[r11]
-        lea     r10,[r10*1+rsi]
-        cmp     rbx,r10
-        jb      NEAR $L$common_seh_tail
-
-        mov     rax,QWORD[152+r8]
-
-        mov     r10d,DWORD[4+r11]
-        lea     r10,[r10*1+rsi]
-        cmp     rbx,r10
-        jae     NEAR $L$common_seh_tail
-        lea     r10,[aesni_cbc_sha1_enc_shaext]
-        cmp     rbx,r10
-        jb      NEAR $L$seh_no_shaext
-
-        lea     rsi,[rax]
-        lea     rdi,[512+r8]
-        mov     ecx,20
-        DD      0xa548f3fc
-        lea     rax,[168+rax]
-        jmp     NEAR $L$common_seh_tail
-$L$seh_no_shaext:
-        lea     rsi,[96+rax]
-        lea     rdi,[512+r8]
-        mov     ecx,20
-        DD      0xa548f3fc
-        lea     rax,[264+rax]
-
-        mov     r15,QWORD[rax]
-        mov     r14,QWORD[8+rax]
-        mov     r13,QWORD[16+rax]
-        mov     r12,QWORD[24+rax]
-        mov     rbp,QWORD[32+rax]
-        mov     rbx,QWORD[40+rax]
-        lea     rax,[48+rax]
-        mov     QWORD[144+r8],rbx
-        mov     QWORD[160+r8],rbp
-        mov     QWORD[216+r8],r12
-        mov     QWORD[224+r8],r13
-        mov     QWORD[232+r8],r14
-        mov     QWORD[240+r8],r15
-
-$L$common_seh_tail:
-        mov     rdi,QWORD[8+rax]
-        mov     rsi,QWORD[16+rax]
-        mov     QWORD[152+r8],rax
-        mov     QWORD[168+r8],rsi
-        mov     QWORD[176+r8],rdi
-
-        mov     rdi,QWORD[40+r9]
-        mov     rsi,r8
-        mov     ecx,154
-        DD      0xa548f3fc
-
-        mov     rsi,r9
-        xor     rcx,rcx
-        mov     rdx,QWORD[8+rsi]
-        mov     r8,QWORD[rsi]
-        mov     r9,QWORD[16+rsi]
-        mov     r10,QWORD[40+rsi]
-        lea     r11,[56+rsi]
-        lea     r12,[24+rsi]
-        mov     QWORD[32+rsp],r10
-        mov     QWORD[40+rsp],r11
-        mov     QWORD[48+rsp],r12
-        mov     QWORD[56+rsp],rcx
-        call    QWORD[__imp_RtlVirtualUnwind]
-
-        mov     eax,1
-        add     rsp,64
-        popfq
-        pop     r15
-        pop     r14
-        pop     r13
-        pop     r12
-        pop     rbp
-        pop     rbx
-        pop     rdi
-        pop     rsi
-        DB      0F3h,0C3h               ;repret
-
-
-section .pdata rdata align=4
-ALIGN   4
-        DD      $L$SEH_begin_aesni_cbc_sha1_enc_ssse3 wrt ..imagebase
-        DD      $L$SEH_end_aesni_cbc_sha1_enc_ssse3 wrt ..imagebase
-        DD      $L$SEH_info_aesni_cbc_sha1_enc_ssse3 wrt ..imagebase
-        DD      $L$SEH_begin_aesni_cbc_sha1_enc_shaext wrt ..imagebase
-        DD      $L$SEH_end_aesni_cbc_sha1_enc_shaext wrt ..imagebase
-        DD      $L$SEH_info_aesni_cbc_sha1_enc_shaext wrt ..imagebase
-section .xdata rdata align=8
-ALIGN   8
-$L$SEH_info_aesni_cbc_sha1_enc_ssse3:
-DB      9,0,0,0
-        DD      ssse3_handler wrt ..imagebase
-        DD      $L$prologue_ssse3 wrt ..imagebase,$L$epilogue_ssse3 wrt ..imagebase
-$L$SEH_info_aesni_cbc_sha1_enc_shaext:
-DB      9,0,0,0
-        DD      ssse3_handler wrt ..imagebase
-        DD      $L$prologue_shaext wrt ..imagebase,$L$epilogue_shaext wrt ..imagebase
diff --git a/CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-sha256-x86_64.nasm b/CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-sha256-x86_64.nasm
deleted file mode 100644
index f5c250b9040f..000000000000
--- a/CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-sha256-x86_64.nasm
+++ /dev/null
@@ -1,78 +0,0 @@
-; WARNING: do not edit!
-; Generated from openssl/crypto/aes/asm/aesni-sha256-x86_64.pl
-;
-; Copyright 2013-2020 The OpenSSL Project Authors. All Rights Reserved.
-;
-; Licensed under the OpenSSL license (the "License").  You may not use
-; this file except in compliance with the License.  You can obtain a copy
-; in the file LICENSE in the source distribution or at
-; https://www.openssl.org/source/license.html
-
-default rel
-%define XMMWORD
-%define YMMWORD
-%define ZMMWORD
-section .text code align=64
-
-
-EXTERN  OPENSSL_ia32cap_P
-global  aesni_cbc_sha256_enc
-
-ALIGN   16
-aesni_cbc_sha256_enc:
-
-        xor     eax,eax
-        cmp     rcx,0
-        je      NEAR $L$probe
-        ud2
-$L$probe:
-        DB      0F3h,0C3h               ;repret
-
-
-
-ALIGN   64
-
-K256:
-        DD      0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
-        DD      0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
-        DD      0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
-        DD      0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
-        DD      0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
-        DD      0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
-        DD      0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
-        DD      0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
-        DD      0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
-        DD      0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
-        DD      0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
-        DD      0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
-        DD      0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
-        DD      0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
-        DD      0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
-        DD      0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
-        DD      0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
-        DD      0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
-        DD      0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
-        DD      0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
-        DD      0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
-        DD      0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
-        DD      0xd192e819,0xd6990624,0xf40e3585,0x106aa070
-        DD      0xd192e819,0xd6990624,0xf40e3585,0x106aa070
-        DD      0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
-        DD      0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
-        DD      0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
-        DD      0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
-        DD      0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
-        DD      0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
-        DD      0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
-        DD      0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
-
-        DD      0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
-        DD      0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
-        DD      0,0,0,0,0,0,0,0,-1,-1,-1,-1
-        DD      0,0,0,0,0,0,0,0
-DB      65,69,83,78,73,45,67,66,67,43,83,72,65,50,53,54
-DB      32,115,116,105,116,99,104,32,102,111,114,32,120,56,54,95
-DB      54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98
-DB      121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108
-DB      46,111,114,103,62,0
-ALIGN   64
diff --git a/CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-x86_64.nasm b/CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-x86_64.nasm
deleted file mode 100644
index 57ee23ea8c96..000000000000
--- a/CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-x86_64.nasm
+++ /dev/null
@@ -1,5103 +0,0 @@
-; WARNING: do not edit!
-; Generated from openssl/crypto/aes/asm/aesni-x86_64.pl
-;
-; Copyright 2009-2020 The OpenSSL Project Authors. All Rights Reserved.
-;
-; Licensed under the OpenSSL license (the "License").  You may not use
-; this file except in compliance with the License.  You can obtain a copy
-; in the file LICENSE in the source distribution or at
-; https://www.openssl.org/source/license.html
-
-default rel
-%define XMMWORD
-%define YMMWORD
-%define ZMMWORD
-section .text code align=64
-
-EXTERN  OPENSSL_ia32cap_P
-global  aesni_encrypt
-
-ALIGN   16
-aesni_encrypt:
-
-        movups  xmm2,XMMWORD[rcx]
-        mov     eax,DWORD[240+r8]
-        movups  xmm0,XMMWORD[r8]
-        movups  xmm1,XMMWORD[16+r8]
-        lea     r8,[32+r8]
-        xorps   xmm2,xmm0
-$L$oop_enc1_1:
-DB      102,15,56,220,209
-        dec     eax
-        movups  xmm1,XMMWORD[r8]
-        lea     r8,[16+r8]
-        jnz     NEAR $L$oop_enc1_1
-DB      102,15,56,221,209
-        pxor    xmm0,xmm0
-        pxor    xmm1,xmm1
-        movups  XMMWORD[rdx],xmm2
-        pxor    xmm2,xmm2
-        DB      0F3h,0C3h               ;repret
-
-
-
-global  aesni_decrypt
-
-ALIGN   16
-aesni_decrypt:
-
-        movups  xmm2,XMMWORD[rcx]
-        mov     eax,DWORD[240+r8]
-        movups  xmm0,XMMWORD[r8]
-        movups  xmm1,XMMWORD[16+r8]
-        lea     r8,[32+r8]
-        xorps   xmm2,xmm0
-$L$oop_dec1_2:
-DB      102,15,56,222,209
-        dec     eax
-        movups  xmm1,XMMWORD[r8]
-        lea     r8,[16+r8]
-        jnz     NEAR $L$oop_dec1_2
-DB      102,15,56,223,209
-        pxor    xmm0,xmm0
-        pxor    xmm1,xmm1
-        movups  XMMWORD[rdx],xmm2
-        pxor    xmm2,xmm2
-        DB      0F3h,0C3h               ;repret
-
-
-
-ALIGN   16
-_aesni_encrypt2:
-
-        movups  xmm0,XMMWORD[rcx]
-        shl     eax,4
-        movups  xmm1,XMMWORD[16+rcx]
-        xorps   xmm2,xmm0
-        xorps   xmm3,xmm0
-        movups  xmm0,XMMWORD[32+rcx]
-        lea     rcx,[32+rax*1+rcx]
-        neg     rax
-        add     rax,16
-
-$L$enc_loop2:
-DB      102,15,56,220,209
-DB      102,15,56,220,217
-        movups  xmm1,XMMWORD[rax*1+rcx]
-        add     rax,32
-DB      102,15,56,220,208
-DB      102,15,56,220,216
-        movups  xmm0,XMMWORD[((-16))+rax*1+rcx]
-        jnz     NEAR $L$enc_loop2
-
-DB      102,15,56,220,209
-DB      102,15,56,220,217
-DB      102,15,56,221,208
-DB      102,15,56,221,216
-        DB      0F3h,0C3h               ;repret
-
-
-
-ALIGN   16
-_aesni_decrypt2:
-
-        movups  xmm0,XMMWORD[rcx]
-        shl     eax,4
-        movups  xmm1,XMMWORD[16+rcx]
-        xorps   xmm2,xmm0
-        xorps   xmm3,xmm0
-        movups  xmm0,XMMWORD[32+rcx]
-        lea     rcx,[32+rax*1+rcx]
-        neg     rax
-        add     rax,16
-
-$L$dec_loop2:
-DB      102,15,56,222,209
-DB      102,15,56,222,217
-        movups  xmm1,XMMWORD[rax*1+rcx]
-        add     rax,32
-DB      102,15,56,222,208
-DB      102,15,56,222,216
-        movups  xmm0,XMMWORD[((-16))+rax*1+rcx]
-        jnz     NEAR $L$dec_loop2
-
-DB      102,15,56,222,209
-DB      102,15,56,222,217
-DB      102,15,56,223,208
-DB      102,15,56,223,216
-        DB      0F3h,0C3h               ;repret
-
-
-
-ALIGN   16
-_aesni_encrypt3:
-
-        movups  xmm0,XMMWORD[rcx]
-        shl     eax,4
-        movups  xmm1,XMMWORD[16+rcx]
-        xorps   xmm2,xmm0
-        xorps   xmm3,xmm0
-        xorps   xmm4,xmm0
-        movups  xmm0,XMMWORD[32+rcx]
-        lea     rcx,[32+rax*1+rcx]
-        neg     rax
-        add     rax,16
-
-$L$enc_loop3:
-DB      102,15,56,220,209
-DB      102,15,56,220,217
-DB      102,15,56,220,225
-        movups  xmm1,XMMWORD[rax*1+rcx]
-        add     rax,32
-DB      102,15,56,220,208
-DB      102,15,56,220,216
-DB      102,15,56,220,224
-        movups  xmm0,XMMWORD[((-16))+rax*1+rcx]
-        jnz     NEAR $L$enc_loop3
-
-DB      102,15,56,220,209
-DB      102,15,56,220,217
-DB      102,15,56,220,225
-DB      102,15,56,221,208
-DB      102,15,56,221,216
-DB      102,15,56,221,224
-        DB      0F3h,0C3h               ;repret
-
-
-
-ALIGN   16
-_aesni_decrypt3:
-
-        movups  xmm0,XMMWORD[rcx]
-        shl     eax,4
-        movups  xmm1,XMMWORD[16+rcx]
-        xorps   xmm2,xmm0
-        xorps   xmm3,xmm0
-        xorps   xmm4,xmm0
-        movups  xmm0,XMMWORD[32+rcx]
-        lea     rcx,[32+rax*1+rcx]
-        neg     rax
-        add     rax,16
-
-$L$dec_loop3:
-DB      102,15,56,222,209
-DB      102,15,56,222,217
-DB      102,15,56,222,225
-        movups  xmm1,XMMWORD[rax*1+rcx]
-        add     rax,32
-DB      102,15,56,222,208
-DB      102,15,56,222,216
-DB      102,15,56,222,224
-        movups  xmm0,XMMWORD[((-16))+rax*1+rcx]
-        jnz     NEAR $L$dec_loop3
-
-DB      102,15,56,222,209
-DB      102,15,56,222,217
-DB      102,15,56,222,225
-DB      102,15,56,223,208
-DB      102,15,56,223,216
-DB      102,15,56,223,224
-        DB      0F3h,0C3h               ;repret
-
-
-
-ALIGN   16
-_aesni_encrypt4:
-
-        movups  xmm0,XMMWORD[rcx]
-        shl     eax,4
-        movups  xmm1,XMMWORD[16+rcx]
-        xorps   xmm2,xmm0
-        xorps   xmm3,xmm0
-        xorps   xmm4,xmm0
-        xorps   xmm5,xmm0
-        movups  xmm0,XMMWORD[32+rcx]
-        lea     rcx,[32+rax*1+rcx]
-        neg     rax
-DB      0x0f,0x1f,0x00
-        add     rax,16
-
-$L$enc_loop4:
-DB      102,15,56,220,209
-DB      102,15,56,220,217
-DB      102,15,56,220,225
-DB      102,15,56,220,233
-        movups  xmm1,XMMWORD[rax*1+rcx]
-        add     rax,32
-DB      102,15,56,220,208
-DB      102,15,56,220,216
-DB      102,15,56,220,224
-DB      102,15,56,220,232
-        movups  xmm0,XMMWORD[((-16))+rax*1+rcx]
-        jnz     NEAR $L$enc_loop4
-
-DB      102,15,56,220,209
-DB      102,15,56,220,217
-DB      102,15,56,220,225
-DB      102,15,56,220,233
-DB      102,15,56,221,208
-DB      102,15,56,221,216
-DB      102,15,56,221,224
-DB      102,15,56,221,232
-        DB      0F3h,0C3h               ;repret
-
-
-
-ALIGN   16
-_aesni_decrypt4:
-
-        movups  xmm0,XMMWORD[rcx]
-        shl     eax,4
-        movups  xmm1,XMMWORD[16+rcx]
-        xorps   xmm2,xmm0
-        xorps   xmm3,xmm0
-        xorps   xmm4,xmm0
-        xorps   xmm5,xmm0
-        movups  xmm0,XMMWORD[32+rcx]
-        lea     rcx,[32+rax*1+rcx]
-        neg     rax
-DB      0x0f,0x1f,0x00
-        add     rax,16
-
-$L$dec_loop4:
-DB      102,15,56,222,209
-DB      102,15,56,222,217
-DB      102,15,56,222,225
-DB      102,15,56,222,233
-        movups  xmm1,XMMWORD[rax*1+rcx]
-        add     rax,32
-DB      102,15,56,222,208
-DB      102,15,56,222,216
-DB      102,15,56,222,224
-DB      102,15,56,222,232
-        movups  xmm0,XMMWORD[((-16))+rax*1+rcx]
-        jnz     NEAR $L$dec_loop4
-
-DB      102,15,56,222,209
-DB      102,15,56,222,217
-DB      102,15,56,222,225
-DB      102,15,56,222,233
-DB      102,15,56,223,208
-DB      102,15,56,223,216
-DB      102,15,56,223,224
-DB      102,15,56,223,232
-        DB      0F3h,0C3h               ;repret
-
-
-
-ALIGN   16
-_aesni_encrypt6:
-
-        movups  xmm0,XMMWORD[rcx]
-        shl     eax,4
-        movups  xmm1,XMMWORD[16+rcx]
-        xorps   xmm2,xmm0
-        pxor    xmm3,xmm0
-        pxor    xmm4,xmm0
-DB      102,15,56,220,209
-        lea     rcx,[32+rax*1+rcx]
-        neg     rax
-DB      102,15,56,220,217
-        pxor    xmm5,xmm0
-        pxor    xmm6,xmm0
-DB      102,15,56,220,225
-        pxor    xmm7,xmm0
-        movups  xmm0,XMMWORD[rax*1+rcx]
-        add     rax,16
-        jmp     NEAR $L$enc_loop6_enter
-ALIGN   16
-$L$enc_loop6:
-DB      102,15,56,220,209
-DB      102,15,56,220,217
-DB      102,15,56,220,225
-$L$enc_loop6_enter:
-DB      102,15,56,220,233
-DB      102,15,56,220,241
-DB      102,15,56,220,249
-        movups  xmm1,XMMWORD[rax*1+rcx]
-        add     rax,32
-DB      102,15,56,220,208
-DB      102,15,56,220,216
-DB      102,15,56,220,224
-DB      102,15,56,220,232
-DB      102,15,56,220,240
-DB      102,15,56,220,248
-        movups  xmm0,XMMWORD[((-16))+rax*1+rcx]
-        jnz     NEAR $L$enc_loop6
-
-DB      102,15,56,220,209
-DB      102,15,56,220,217
-DB      102,15,56,220,225
-DB      102,15,56,220,233
-DB      102,15,56,220,241
-DB      102,15,56,220,249
-DB      102,15,56,221,208
-DB      102,15,56,221,216
-DB      102,15,56,221,224
-DB      102,15,56,221,232
-DB      102,15,56,221,240
-DB      102,15,56,221,248
-        DB      0F3h,0C3h               ;repret
-
-
-
-ALIGN   16
-_aesni_decrypt6:
-
-        movups  xmm0,XMMWORD[rcx]
-        shl     eax,4
-        movups  xmm1,XMMWORD[16+rcx]
-        xorps   xmm2,xmm0
-        pxor    xmm3,xmm0
-        pxor    xmm4,xmm0
-DB      102,15,56,222,209
-        lea     rcx,[32+rax*1+rcx]
-        neg     rax
-DB      102,15,56,222,217
-        pxor    xmm5,xmm0
-        pxor    xmm6,xmm0
-DB      102,15,56,222,225
-        pxor    xmm7,xmm0
-        movups  xmm0,XMMWORD[rax*1+rcx]
-        add     rax,16
-        jmp     NEAR $L$dec_loop6_enter
-ALIGN   16
-$L$dec_loop6:
-DB      102,15,56,222,209
-DB      102,15,56,222,217
-DB      102,15,56,222,225
-$L$dec_loop6_enter:
-DB      102,15,56,222,233
-DB      102,15,56,222,241
-DB      102,15,56,222,249
-        movups  xmm1,XMMWORD[rax*1+rcx]
-        add     rax,32
-DB      102,15,56,222,208
-DB      102,15,56,222,216
-DB      102,15,56,222,224
-DB      102,15,56,222,232
-DB      102,15,56,222,240
-DB      102,15,56,222,248
-        movups  xmm0,XMMWORD[((-16))+rax*1+rcx]
-        jnz     NEAR $L$dec_loop6
-
-DB      102,15,56,222,209
-DB      102,15,56,222,217
-DB      102,15,56,222,225
-DB      102,15,56,222,233
-DB      102,15,56,222,241
-DB      102,15,56,222,249
-DB      102,15,56,223,208
-DB      102,15,56,223,216
-DB      102,15,56,223,224
-DB      102,15,56,223,232
-DB      102,15,56,223,240
-DB      102,15,56,223,248
-        DB      0F3h,0C3h               ;repret
-
-
-
-ALIGN   16
-_aesni_encrypt8:
-
-        movups  xmm0,XMMWORD[rcx]
-        shl     eax,4
-        movups  xmm1,XMMWORD[16+rcx]
-        xorps   xmm2,xmm0
-        xorps   xmm3,xmm0
-        pxor    xmm4,xmm0
-        pxor    xmm5,xmm0
-        pxor    xmm6,xmm0
-        lea     rcx,[32+rax*1+rcx]
-        neg     rax
-DB      102,15,56,220,209
-        pxor    xmm7,xmm0
-        pxor    xmm8,xmm0
-DB      102,15,56,220,217
-        pxor    xmm9,xmm0
-        movups  xmm0,XMMWORD[rax*1+rcx]
-        add     rax,16
-        jmp     NEAR $L$enc_loop8_inner
-ALIGN   16
-$L$enc_loop8:
-DB      102,15,56,220,209
-DB      102,15,56,220,217
-$L$enc_loop8_inner:
-DB      102,15,56,220,225
-DB      102,15,56,220,233
-DB      102,15,56,220,241
-DB      102,15,56,220,249
-DB      102,68,15,56,220,193
-DB      102,68,15,56,220,201
-$L$enc_loop8_enter:
-        movups  xmm1,XMMWORD[rax*1+rcx]
-        add     rax,32
-DB      102,15,56,220,208
-DB      102,15,56,220,216
-DB      102,15,56,220,224
-DB      102,15,56,220,232
-DB      102,15,56,220,240
-DB      102,15,56,220,248
-DB      102,68,15,56,220,192
-DB      102,68,15,56,220,200
-        movups  xmm0,XMMWORD[((-16))+rax*1+rcx]
-        jnz     NEAR $L$enc_loop8
-
-DB      102,15,56,220,209
-DB      102,15,56,220,217
-DB      102,15,56,220,225
-DB      102,15,56,220,233
-DB      102,15,56,220,241
-DB      102,15,56,220,249
-DB      102,68,15,56,220,193
-DB      102,68,15,56,220,201
-DB      102,15,56,221,208
-DB      102,15,56,221,216
-DB      102,15,56,221,224
-DB      102,15,56,221,232
-DB      102,15,56,221,240
-DB      102,15,56,221,248
-DB      102,68,15,56,221,192
-DB      102,68,15,56,221,200
-        DB      0F3h,0C3h               ;repret
-
-
-
-ALIGN   16
-_aesni_decrypt8:
-
-        movups  xmm0,XMMWORD[rcx]
-        shl     eax,4
-        movups  xmm1,XMMWORD[16+rcx]
-        xorps   xmm2,xmm0
-        xorps   xmm3,xmm0
-        pxor    xmm4,xmm0
-        pxor    xmm5,xmm0
-        pxor    xmm6,xmm0
-        lea     rcx,[32+rax*1+rcx]
-        neg     rax
-DB      102,15,56,222,209
-        pxor    xmm7,xmm0
-        pxor    xmm8,xmm0
-DB      102,15,56,222,217
-        pxor    xmm9,xmm0
-        movups  xmm0,XMMWORD[rax*1+rcx]
-        add     rax,16
-        jmp     NEAR $L$dec_loop8_inner
-ALIGN   16
-$L$dec_loop8:
-DB      102,15,56,222,209
-DB      102,15,56,222,217
-$L$dec_loop8_inner:
-DB      102,15,56,222,225
-DB      102,15,56,222,233
-DB      102,15,56,222,241
-DB      102,15,56,222,249
-DB      102,68,15,56,222,193
-DB      102,68,15,56,222,201
-$L$dec_loop8_enter:
-        movups  xmm1,XMMWORD[rax*1+rcx]
-        add     rax,32
-DB      102,15,56,222,208
-DB      102,15,56,222,216
-DB      102,15,56,222,224
-DB      102,15,56,222,232
-DB      102,15,56,222,240
-DB      102,15,56,222,248
-DB      102,68,15,56,222,192
-DB      102,68,15,56,222,200
-        movups  xmm0,XMMWORD[((-16))+rax*1+rcx]
-        jnz     NEAR $L$dec_loop8
-
-DB      102,15,56,222,209
-DB      102,15,56,222,217
-DB      102,15,56,222,225
-DB      102,15,56,222,233
-DB      102,15,56,222,241
-DB      102,15,56,222,249
-DB      102,68,15,56,222,193
-DB      102,68,15,56,222,201
-DB      102,15,56,223,208
-DB      102,15,56,223,216
-DB      102,15,56,223,224
-DB      102,15,56,223,232
-DB      102,15,56,223,240
-DB      102,15,56,223,248
-DB      102,68,15,56,223,192
-DB      102,68,15,56,223,200
-        DB      0F3h,0C3h               ;repret
-
-
-global  aesni_ecb_encrypt
-
-ALIGN   16
-aesni_ecb_encrypt:
-        mov     QWORD[8+rsp],rdi        ;WIN64 prologue
-        mov     QWORD[16+rsp],rsi
-        mov     rax,rsp
-$L$SEH_begin_aesni_ecb_encrypt:
-        mov     rdi,rcx
-        mov     rsi,rdx
-        mov     rdx,r8
-        mov     rcx,r9
-        mov     r8,QWORD[40+rsp]
-
-
-
-        lea     rsp,[((-88))+rsp]
-        movaps  XMMWORD[rsp],xmm6
-        movaps  XMMWORD[16+rsp],xmm7
-        movaps  XMMWORD[32+rsp],xmm8
-        movaps  XMMWORD[48+rsp],xmm9
-$L$ecb_enc_body:
-        and     rdx,-16
-        jz      NEAR $L$ecb_ret
-
-        mov     eax,DWORD[240+rcx]
-        movups  xmm0,XMMWORD[rcx]
-        mov     r11,rcx
-        mov     r10d,eax
-        test    r8d,r8d
-        jz      NEAR $L$ecb_decrypt
-
-        cmp     rdx,0x80
-        jb      NEAR $L$ecb_enc_tail
-
-        movdqu  xmm2,XMMWORD[rdi]
-        movdqu  xmm3,XMMWORD[16+rdi]
-        movdqu  xmm4,XMMWORD[32+rdi]
-        movdqu  xmm5,XMMWORD[48+rdi]
-        movdqu  xmm6,XMMWORD[64+rdi]
-        movdqu  xmm7,XMMWORD[80+rdi]
-        movdqu  xmm8,XMMWORD[96+rdi]
-        movdqu  xmm9,XMMWORD[112+rdi]
-        lea     rdi,[128+rdi]
-        sub     rdx,0x80
-        jmp     NEAR $L$ecb_enc_loop8_enter
-ALIGN   16
-$L$ecb_enc_loop8:
-        movups  XMMWORD[rsi],xmm2
-        mov     rcx,r11
-        movdqu  xmm2,XMMWORD[rdi]
-        mov     eax,r10d
-        movups  XMMWORD[16+rsi],xmm3
-        movdqu  xmm3,XMMWORD[16+rdi]
-        movups  XMMWORD[32+rsi],xmm4
-        movdqu  xmm4,XMMWORD[32+rdi]
-        movups  XMMWORD[48+rsi],xmm5
-        movdqu  xmm5,XMMWORD[48+rdi]
-        movups  XMMWORD[64+rsi],xmm6
-        movdqu  xmm6,XMMWORD[64+rdi]
-        movups  XMMWORD[80+rsi],xmm7
-        movdqu  xmm7,XMMWORD[80+rdi]
-        movups  XMMWORD[96+rsi],xmm8
-        movdqu  xmm8,XMMWORD[96+rdi]
-        movups  XMMWORD[112+rsi],xmm9
-        lea     rsi,[128+rsi]
-        movdqu  xmm9,XMMWORD[112+rdi]
-        lea     rdi,[128+rdi]
-$L$ecb_enc_loop8_enter:
-
-        call    _aesni_encrypt8
-
-        sub     rdx,0x80
-        jnc     NEAR $L$ecb_enc_loop8
-
-        movups  XMMWORD[rsi],xmm2
-        mov     rcx,r11
-        movups  XMMWORD[16+rsi],xmm3
-        mov     eax,r10d
-        movups  XMMWORD[32+rsi],xmm4
-        movups  XMMWORD[48+rsi],xmm5
-        movups  XMMWORD[64+rsi],xmm6
-        movups  XMMWORD[80+rsi],xmm7
-        movups  XMMWORD[96+rsi],xmm8
-        movups  XMMWORD[112+rsi],xmm9
-        lea     rsi,[128+rsi]
-        add     rdx,0x80
-        jz      NEAR $L$ecb_ret
-
-$L$ecb_enc_tail:
-        movups  xmm2,XMMWORD[rdi]
-        cmp     rdx,0x20
-        jb      NEAR $L$ecb_enc_one
-        movups  xmm3,XMMWORD[16+rdi]
-        je      NEAR $L$ecb_enc_two
-        movups  xmm4,XMMWORD[32+rdi]
-        cmp     rdx,0x40
-        jb      NEAR $L$ecb_enc_three
-        movups  xmm5,XMMWORD[48+rdi]
-        je      NEAR $L$ecb_enc_four
-        movups  xmm6,XMMWORD[64+rdi]
-        cmp     rdx,0x60
-        jb      NEAR $L$ecb_enc_five
-        movups  xmm7,XMMWORD[80+rdi]
-        je      NEAR $L$ecb_enc_six
-        movdqu  xmm8,XMMWORD[96+rdi]
-        xorps   xmm9,xmm9
-        call    _aesni_encrypt8
-        movups  XMMWORD[rsi],xmm2
-        movups  XMMWORD[16+rsi],xmm3
-        movups  XMMWORD[32+rsi],xmm4
-        movups  XMMWORD[48+rsi],xmm5
-        movups  XMMWORD[64+rsi],xmm6
-        movups  XMMWORD[80+rsi],xmm7
-        movups  XMMWORD[96+rsi],xmm8
-        jmp     NEAR $L$ecb_ret
-ALIGN   16
-$L$ecb_enc_one:
-        movups  xmm0,XMMWORD[rcx]
-        movups  xmm1,XMMWORD[16+rcx]
-        lea     rcx,[32+rcx]
-        xorps   xmm2,xmm0
-$L$oop_enc1_3:
-DB      102,15,56,220,209
-        dec     eax
-        movups  xmm1,XMMWORD[rcx]
-        lea     rcx,[16+rcx]
-        jnz     NEAR $L$oop_enc1_3
-DB      102,15,56,221,209
-        movups  XMMWORD[rsi],xmm2
-        jmp     NEAR $L$ecb_ret
-ALIGN   16
-$L$ecb_enc_two:
-        call    _aesni_encrypt2
-        movups  XMMWORD[rsi],xmm2
-        movups  XMMWORD[16+rsi],xmm3
-        jmp     NEAR $L$ecb_ret
-ALIGN   16
-$L$ecb_enc_three:
-        call    _aesni_encrypt3
-        movups  XMMWORD[rsi],xmm2
-        movups  XMMWORD[16+rsi],xmm3
-        movups  XMMWORD[32+rsi],xmm4
-        jmp     NEAR $L$ecb_ret
-ALIGN   16
-$L$ecb_enc_four:
-        call    _aesni_encrypt4
-        movups  XMMWORD[rsi],xmm2
-        movups  XMMWORD[16+rsi],xmm3
-        movups  XMMWORD[32+rsi],xmm4
-        movups  XMMWORD[48+rsi],xmm5
-        jmp     NEAR $L$ecb_ret
-ALIGN   16
-$L$ecb_enc_five:
-        xorps   xmm7,xmm7
-        call    _aesni_encrypt6
-        movups  XMMWORD[rsi],xmm2
-        movups  XMMWORD[16+rsi],xmm3
-        movups  XMMWORD[32+rsi],xmm4
-        movups  XMMWORD[48+rsi],xmm5
-        movups  XMMWORD[64+rsi],xmm6
-        jmp     NEAR $L$ecb_ret
-ALIGN   16
-$L$ecb_enc_six:
-        call    _aesni_encrypt6
-        movups  XMMWORD[rsi],xmm2
-        movups  XMMWORD[16+rsi],xmm3
-        movups  XMMWORD[32+rsi],xmm4
-        movups  XMMWORD[48+rsi],xmm5
-        movups  XMMWORD[64+rsi],xmm6
-        movups  XMMWORD[80+rsi],xmm7
-        jmp     NEAR $L$ecb_ret
-
-ALIGN   16
-$L$ecb_decrypt:
-        cmp     rdx,0x80
-        jb      NEAR $L$ecb_dec_tail
-
-        movdqu  xmm2,XMMWORD[rdi]
-        movdqu  xmm3,XMMWORD[16+rdi]
-        movdqu  xmm4,XMMWORD[32+rdi]
-        movdqu  xmm5,XMMWORD[48+rdi]
-        movdqu  xmm6,XMMWORD[64+rdi]
-        movdqu  xmm7,XMMWORD[80+rdi]
-        movdqu  xmm8,XMMWORD[96+rdi]
-        movdqu  xmm9,XMMWORD[112+rdi]
-        lea     rdi,[128+rdi]
-        sub     rdx,0x80
-        jmp     NEAR $L$ecb_dec_loop8_enter
-ALIGN   16
-$L$ecb_dec_loop8:
-        movups  XMMWORD[rsi],xmm2
-        mov     rcx,r11
-        movdqu  xmm2,XMMWORD[rdi]
-        mov     eax,r10d
-        movups  XMMWORD[16+rsi],xmm3
-        movdqu  xmm3,XMMWORD[16+rdi]
-        movups  XMMWORD[32+rsi],xmm4
-        movdqu  xmm4,XMMWORD[32+rdi]
-        movups  XMMWORD[48+rsi],xmm5
-        movdqu  xmm5,XMMWORD[48+rdi]
-        movups  XMMWORD[64+rsi],xmm6
-        movdqu  xmm6,XMMWORD[64+rdi]
-        movups  XMMWORD[80+rsi],xmm7
-        movdqu  xmm7,XMMWORD[80+rdi]
-        movups  XMMWORD[96+rsi],xmm8
-        movdqu  xmm8,XMMWORD[96+rdi]
-        movups  XMMWORD[112+rsi],xmm9
-        lea     rsi,[128+rsi]
-        movdqu  xmm9,XMMWORD[112+rdi]
-        lea     rdi,[128+rdi]
-$L$ecb_dec_loop8_enter:
-
-        call    _aesni_decrypt8
-
-        movups  xmm0,XMMWORD[r11]
-        sub     rdx,0x80
-        jnc     NEAR $L$ecb_dec_loop8
-
-        movups  XMMWORD[rsi],xmm2
-        pxor    xmm2,xmm2
-        mov     rcx,r11
-        movups  XMMWORD[16+rsi],xmm3
-        pxor    xmm3,xmm3
-        mov     eax,r10d
-        movups  XMMWORD[32+rsi],xmm4
-        pxor    xmm4,xmm4
-        movups  XMMWORD[48+rsi],xmm5
-        pxor    xmm5,xmm5
-        movups  XMMWORD[64+rsi],xmm6
-        pxor    xmm6,xmm6
-        movups  XMMWORD[80+rsi],xmm7
-        pxor    xmm7,xmm7
-        movups  XMMWORD[96+rsi],xmm8
-        pxor    xmm8,xmm8
-        movups  XMMWORD[112+rsi],xmm9
-        pxor    xmm9,xmm9
-        lea     rsi,[128+rsi]
-        add     rdx,0x80
-        jz      NEAR $L$ecb_ret
-
-$L$ecb_dec_tail:
-        movups  xmm2,XMMWORD[rdi]
-        cmp     rdx,0x20
-        jb      NEAR $L$ecb_dec_one
-        movups  xmm3,XMMWORD[16+rdi]
-        je      NEAR $L$ecb_dec_two
-        movups  xmm4,XMMWORD[32+rdi]
-        cmp     rdx,0x40
-        jb      NEAR $L$ecb_dec_three
-        movups  xmm5,XMMWORD[48+rdi]
-        je      NEAR $L$ecb_dec_four
-        movups  xmm6,XMMWORD[64+rdi]
-        cmp     rdx,0x60
-        jb      NEAR $L$ecb_dec_five
-        movups  xmm7,XMMWORD[80+rdi]
-        je      NEAR $L$ecb_dec_six
-        movups  xmm8,XMMWORD[96+rdi]
-        movups  xmm0,XMMWORD[rcx]
-        xorps   xmm9,xmm9
-        call    _aesni_decrypt8
-        movups  XMMWORD[rsi],xmm2
-        pxor    xmm2,xmm2
-        movups  XMMWORD[16+rsi],xmm3
-        pxor    xmm3,xmm3
-        movups  XMMWORD[32+rsi],xmm4
-        pxor    xmm4,xmm4
-        movups  XMMWORD[48+rsi],xmm5
-        pxor    xmm5,xmm5
-        movups  XMMWORD[64+rsi],xmm6
-        pxor    xmm6,xmm6
-        movups  XMMWORD[80+rsi],xmm7
-        pxor    xmm7,xmm7
-        movups  XMMWORD[96+rsi],xmm8
-        pxor    xmm8,xmm8
-        pxor    xmm9,xmm9
-        jmp     NEAR $L$ecb_ret
-ALIGN   16
-$L$ecb_dec_one:
-        movups  xmm0,XMMWORD[rcx]
-        movups  xmm1,XMMWORD[16+rcx]
-        lea     rcx,[32+rcx]
-        xorps   xmm2,xmm0
-$L$oop_dec1_4:
-DB      102,15,56,222,209
-        dec     eax
-        movups  xmm1,XMMWORD[rcx]
-        lea     rcx,[16+rcx]
-        jnz     NEAR $L$oop_dec1_4
-DB      102,15,56,223,209
-        movups  XMMWORD[rsi],xmm2
-        pxor    xmm2,xmm2
-        jmp     NEAR $L$ecb_ret
-ALIGN   16
-$L$ecb_dec_two:
-        call    _aesni_decrypt2
-        movups  XMMWORD[rsi],xmm2
-        pxor    xmm2,xmm2
-        movups  XMMWORD[16+rsi],xmm3
-        pxor    xmm3,xmm3
-        jmp     NEAR $L$ecb_ret
-ALIGN   16
-$L$ecb_dec_three:
-        call    _aesni_decrypt3
-        movups  XMMWORD[rsi],xmm2
-        pxor    xmm2,xmm2
-        movups  XMMWORD[16+rsi],xmm3
-        pxor    xmm3,xmm3
-        movups  XMMWORD[32+rsi],xmm4
-        pxor    xmm4,xmm4
-        jmp     NEAR $L$ecb_ret
-ALIGN   16
-$L$ecb_dec_four:
-        call    _aesni_decrypt4
-        movups  XMMWORD[rsi],xmm2
-        pxor    xmm2,xmm2
-        movups  XMMWORD[16+rsi],xmm3
-        pxor    xmm3,xmm3
-        movups  XMMWORD[32+rsi],xmm4
-        pxor    xmm4,xmm4
-        movups  XMMWORD[48+rsi],xmm5
-        pxor    xmm5,xmm5
-        jmp     NEAR $L$ecb_ret
-ALIGN   16
-$L$ecb_dec_five:
-        xorps   xmm7,xmm7
-        call    _aesni_decrypt6
-        movups  XMMWORD[rsi],xmm2
-        pxor    xmm2,xmm2
-        movups  XMMWORD[16+rsi],xmm3
-        pxor    xmm3,xmm3
-        movups  XMMWORD[32+rsi],xmm4
-        pxor    xmm4,xmm4
-        movups  XMMWORD[48+rsi],xmm5
-        pxor    xmm5,xmm5
-        movups  XMMWORD[64+rsi],xmm6
-        pxor    xmm6,xmm6
-        pxor    xmm7,xmm7
-        jmp     NEAR $L$ecb_ret
-ALIGN   16
-$L$ecb_dec_six:
-        call    _aesni_decrypt6
-        movups  XMMWORD[rsi],xmm2
-        pxor    xmm2,xmm2
-        movups  XMMWORD[16+rsi],xmm3
-        pxor    xmm3,xmm3
-        movups  XMMWORD[32+rsi],xmm4
-        pxor    xmm4,xmm4
-        movups  XMMWORD[48+rsi],xmm5
-        pxor    xmm5,xmm5
-        movups  XMMWORD[64+rsi],xmm6
-        pxor    xmm6,xmm6
-        movups  XMMWORD[80+rsi],xmm7
-        pxor    xmm7,xmm7
-
-$L$ecb_ret:
-        xorps   xmm0,xmm0
-        pxor    xmm1,xmm1
-        movaps  xmm6,XMMWORD[rsp]
-        movaps  XMMWORD[rsp],xmm0
-        movaps  xmm7,XMMWORD[16+rsp]
-        movaps  XMMWORD[16+rsp],xmm0
-        movaps  xmm8,XMMWORD[32+rsp]
-        movaps  XMMWORD[32+rsp],xmm0
-        movaps  xmm9,XMMWORD[48+rsp]
-        movaps  XMMWORD[48+rsp],xmm0
-        lea     rsp,[88+rsp]
-$L$ecb_enc_ret:
-        mov     rdi,QWORD[8+rsp]        ;WIN64 epilogue
-        mov     rsi,QWORD[16+rsp]
-        DB      0F3h,0C3h               ;repret
-
-$L$SEH_end_aesni_ecb_encrypt:
-global  aesni_ccm64_encrypt_blocks
-
-ALIGN   16
-aesni_ccm64_encrypt_blocks:
-        mov     QWORD[8+rsp],rdi        ;WIN64 prologue
-        mov     QWORD[16+rsp],rsi
-        mov     rax,rsp
-$L$SEH_begin_aesni_ccm64_encrypt_blocks:
-        mov     rdi,rcx
-        mov     rsi,rdx
-        mov     rdx,r8
-        mov     rcx,r9
-        mov     r8,QWORD[40+rsp]
-        mov     r9,QWORD[48+rsp]
-
-
-
-        lea     rsp,[((-88))+rsp]
-        movaps  XMMWORD[rsp],xmm6
-        movaps  XMMWORD[16+rsp],xmm7
-        movaps  XMMWORD[32+rsp],xmm8
-        movaps  XMMWORD[48+rsp],xmm9
-$L$ccm64_enc_body:
-        mov     eax,DWORD[240+rcx]
-        movdqu  xmm6,XMMWORD[r8]
-        movdqa  xmm9,XMMWORD[$L$increment64]
-        movdqa  xmm7,XMMWORD[$L$bswap_mask]
-
-        shl     eax,4
-        mov     r10d,16
-        lea     r11,[rcx]
-        movdqu  xmm3,XMMWORD[r9]
-        movdqa  xmm2,xmm6
-        lea     rcx,[32+rax*1+rcx]
-DB      102,15,56,0,247
-        sub     r10,rax
-        jmp     NEAR $L$ccm64_enc_outer
-ALIGN   16
-$L$ccm64_enc_outer:
-        movups  xmm0,XMMWORD[r11]
-        mov     rax,r10
-        movups  xmm8,XMMWORD[rdi]
-
-        xorps   xmm2,xmm0
-        movups  xmm1,XMMWORD[16+r11]
-        xorps   xmm0,xmm8
-        xorps   xmm3,xmm0
-        movups  xmm0,XMMWORD[32+r11]
-
-$L$ccm64_enc2_loop:
-DB      102,15,56,220,209
-DB      102,15,56,220,217
-        movups  xmm1,XMMWORD[rax*1+rcx]
-        add     rax,32
-DB      102,15,56,220,208
-DB      102,15,56,220,216
-        movups  xmm0,XMMWORD[((-16))+rax*1+rcx]
-        jnz     NEAR $L$ccm64_enc2_loop
-DB      102,15,56,220,209
-DB      102,15,56,220,217
-        paddq   xmm6,xmm9
-        dec     rdx
-DB      102,15,56,221,208
-DB      102,15,56,221,216
-
-        lea     rdi,[16+rdi]
-        xorps   xmm8,xmm2
-        movdqa  xmm2,xmm6
-        movups  XMMWORD[rsi],xmm8
-DB      102,15,56,0,215
-        lea     rsi,[16+rsi]
-        jnz     NEAR $L$ccm64_enc_outer
-
-        pxor    xmm0,xmm0
-        pxor    xmm1,xmm1
-        pxor    xmm2,xmm2
-        movups  XMMWORD[r9],xmm3
-        pxor    xmm3,xmm3
-        pxor    xmm8,xmm8
-        pxor    xmm6,xmm6
-        movaps  xmm6,XMMWORD[rsp]
-        movaps  XMMWORD[rsp],xmm0
-        movaps  xmm7,XMMWORD[16+rsp]
-        movaps  XMMWORD[16+rsp],xmm0
-        movaps  xmm8,XMMWORD[32+rsp]
-        movaps  XMMWORD[32+rsp],xmm0
-        movaps  xmm9,XMMWORD[48+rsp]
-        movaps  XMMWORD[48+rsp],xmm0
-        lea     rsp,[88+rsp]
-$L$ccm64_enc_ret:
-        mov     rdi,QWORD[8+rsp]        ;WIN64 epilogue
-        mov     rsi,QWORD[16+rsp]
-        DB      0F3h,0C3h               ;repret
-
-$L$SEH_end_aesni_ccm64_encrypt_blocks:
-global  aesni_ccm64_decrypt_blocks
-
-ALIGN   16
-aesni_ccm64_decrypt_blocks:
-        mov     QWORD[8+rsp],rdi        ;WIN64 prologue
-        mov     QWORD[16+rsp],rsi
-        mov     rax,rsp
-$L$SEH_begin_aesni_ccm64_decrypt_blocks:
-        mov     rdi,rcx
-        mov     rsi,rdx
-        mov     rdx,r8
-        mov     rcx,r9
-        mov     r8,QWORD[40+rsp]
-        mov     r9,QWORD[48+rsp]
-
-
-
-        lea     rsp,[((-88))+rsp]
-        movaps  XMMWORD[rsp],xmm6
-        movaps  XMMWORD[16+rsp],xmm7
-        movaps  XMMWORD[32+rsp],xmm8
-        movaps  XMMWORD[48+rsp],xmm9
-$L$ccm64_dec_body:
-        mov     eax,DWORD[240+rcx]
-        movups  xmm6,XMMWORD[r8]
-        movdqu  xmm3,XMMWORD[r9]
-        movdqa  xmm9,XMMWORD[$L$increment64]
-        movdqa  xmm7,XMMWORD[$L$bswap_mask]
-
-        movaps  xmm2,xmm6
-        mov     r10d,eax
-        mov     r11,rcx
-DB      102,15,56,0,247
-        movups  xmm0,XMMWORD[rcx]
-        movups  xmm1,XMMWORD[16+rcx]
-        lea     rcx,[32+rcx]
-        xorps   xmm2,xmm0
-$L$oop_enc1_5:
-DB      102,15,56,220,209
-        dec     eax
-        movups  xmm1,XMMWORD[rcx]
-        lea     rcx,[16+rcx]
-        jnz     NEAR $L$oop_enc1_5
-DB      102,15,56,221,209
-        shl     r10d,4
-        mov     eax,16
-        movups  xmm8,XMMWORD[rdi]
-        paddq   xmm6,xmm9
-        lea     rdi,[16+rdi]
-        sub     rax,r10
-        lea     rcx,[32+r10*1+r11]
-        mov     r10,rax
-        jmp     NEAR $L$ccm64_dec_outer
-ALIGN   16
-$L$ccm64_dec_outer:
-        xorps   xmm8,xmm2
-        movdqa  xmm2,xmm6
-        movups  XMMWORD[rsi],xmm8
-        lea     rsi,[16+rsi]
-DB      102,15,56,0,215
-
-        sub     rdx,1
-        jz      NEAR $L$ccm64_dec_break
-
-        movups  xmm0,XMMWORD[r11]
-        mov     rax,r10
-        movups  xmm1,XMMWORD[16+r11]
-        xorps   xmm8,xmm0
-        xorps   xmm2,xmm0
-        xorps   xmm3,xmm8
-        movups  xmm0,XMMWORD[32+r11]
-        jmp     NEAR $L$ccm64_dec2_loop
-ALIGN   16
-$L$ccm64_dec2_loop:
-DB      102,15,56,220,209
-DB      102,15,56,220,217
-        movups  xmm1,XMMWORD[rax*1+rcx]
-        add     rax,32
-DB      102,15,56,220,208
-DB      102,15,56,220,216
-        movups  xmm0,XMMWORD[((-16))+rax*1+rcx]
-        jnz     NEAR $L$ccm64_dec2_loop
-        movups  xmm8,XMMWORD[rdi]
-        paddq   xmm6,xmm9
-DB      102,15,56,220,209
-DB      102,15,56,220,217
-DB      102,15,56,221,208
-DB      102,15,56,221,216
-        lea     rdi,[16+rdi]
-        jmp     NEAR $L$ccm64_dec_outer
-
-ALIGN   16
-$L$ccm64_dec_break:
-
-        mov     eax,DWORD[240+r11]
-        movups  xmm0,XMMWORD[r11]
-        movups  xmm1,XMMWORD[16+r11]
-        xorps   xmm8,xmm0
-        lea     r11,[32+r11]
-        xorps   xmm3,xmm8
-$L$oop_enc1_6:
-DB      102,15,56,220,217
-        dec     eax
-        movups  xmm1,XMMWORD[r11]
-        lea     r11,[16+r11]
-        jnz     NEAR $L$oop_enc1_6
-DB      102,15,56,221,217
-        pxor    xmm0,xmm0
-        pxor    xmm1,xmm1
-        pxor    xmm2,xmm2
-        movups  XMMWORD[r9],xmm3
-        pxor    xmm3,xmm3
-        pxor    xmm8,xmm8
-        pxor    xmm6,xmm6
-        movaps  xmm6,XMMWORD[rsp]
-        movaps  XMMWORD[rsp],xmm0
-        movaps  xmm7,XMMWORD[16+rsp]
-        movaps  XMMWORD[16+rsp],xmm0
-        movaps  xmm8,XMMWORD[32+rsp]
-        movaps  XMMWORD[32+rsp],xmm0
-        movaps  xmm9,XMMWORD[48+rsp]
-        movaps  XMMWORD[48+rsp],xmm0
-        lea     rsp,[88+rsp]
-$L$ccm64_dec_ret:
-        mov     rdi,QWORD[8+rsp]        ;WIN64 epilogue
-        mov     rsi,QWORD[16+rsp]
-        DB      0F3h,0C3h               ;repret
-
-$L$SEH_end_aesni_ccm64_decrypt_blocks:
-global  aesni_ctr32_encrypt_blocks
-
-ALIGN   16
-aesni_ctr32_encrypt_blocks:
-        mov     QWORD[8+rsp],rdi        ;WIN64 prologue
-        mov     QWORD[16+rsp],rsi
-        mov     rax,rsp
-$L$SEH_begin_aesni_ctr32_encrypt_blocks:
-        mov     rdi,rcx
-        mov     rsi,rdx
-        mov     rdx,r8
-        mov     rcx,r9
-        mov     r8,QWORD[40+rsp]
-
-
-
-        cmp     rdx,1
-        jne     NEAR $L$ctr32_bulk
-
-
-
-        movups  xmm2,XMMWORD[r8]
-        movups  xmm3,XMMWORD[rdi]
-        mov     edx,DWORD[240+rcx]
-        movups  xmm0,XMMWORD[rcx]
-        movups  xmm1,XMMWORD[16+rcx]
-        lea     rcx,[32+rcx]
-        xorps   xmm2,xmm0
-$L$oop_enc1_7:
-DB      102,15,56,220,209
-        dec     edx
-        movups  xmm1,XMMWORD[rcx]
-        lea     rcx,[16+rcx]
-        jnz     NEAR $L$oop_enc1_7
-DB      102,15,56,221,209
-        pxor    xmm0,xmm0
-        pxor    xmm1,xmm1
-        xorps   xmm2,xmm3
-        pxor    xmm3,xmm3
-        movups  XMMWORD[rsi],xmm2
-        xorps   xmm2,xmm2
-        jmp     NEAR $L$ctr32_epilogue
-
-ALIGN   16
-$L$ctr32_bulk:
-        lea     r11,[rsp]
-
-        push    rbp
-
-        sub     rsp,288
-        and     rsp,-16
-        movaps  XMMWORD[(-168)+r11],xmm6
-        movaps  XMMWORD[(-152)+r11],xmm7
-        movaps  XMMWORD[(-136)+r11],xmm8
-        movaps  XMMWORD[(-120)+r11],xmm9
-        movaps  XMMWORD[(-104)+r11],xmm10
-        movaps  XMMWORD[(-88)+r11],xmm11
-        movaps  XMMWORD[(-72)+r11],xmm12
-        movaps  XMMWORD[(-56)+r11],xmm13
-        movaps  XMMWORD[(-40)+r11],xmm14
-        movaps  XMMWORD[(-24)+r11],xmm15
-$L$ctr32_body:
-
-
-
-
-        movdqu  xmm2,XMMWORD[r8]
-        movdqu  xmm0,XMMWORD[rcx]
-        mov     r8d,DWORD[12+r8]
-        pxor    xmm2,xmm0
-        mov     ebp,DWORD[12+rcx]
-        movdqa  XMMWORD[rsp],xmm2
-        bswap   r8d
-        movdqa  xmm3,xmm2
-        movdqa  xmm4,xmm2
-        movdqa  xmm5,xmm2
-        movdqa  XMMWORD[64+rsp],xmm2
-        movdqa  XMMWORD[80+rsp],xmm2
-        movdqa  XMMWORD[96+rsp],xmm2
-        mov     r10,rdx
-        movdqa  XMMWORD[112+rsp],xmm2
-
-        lea     rax,[1+r8]
-        lea     rdx,[2+r8]
-        bswap   eax
-        bswap   edx
-        xor     eax,ebp
-        xor     edx,ebp
-DB      102,15,58,34,216,3
-        lea     rax,[3+r8]
-        movdqa  XMMWORD[16+rsp],xmm3
-DB      102,15,58,34,226,3
-        bswap   eax
-        mov     rdx,r10
-        lea     r10,[4+r8]
-        movdqa  XMMWORD[32+rsp],xmm4
-        xor     eax,ebp
-        bswap   r10d
-DB      102,15,58,34,232,3
-        xor     r10d,ebp
-        movdqa  XMMWORD[48+rsp],xmm5
-        lea     r9,[5+r8]
-        mov     DWORD[((64+12))+rsp],r10d
-        bswap   r9d
-        lea     r10,[6+r8]
-        mov     eax,DWORD[240+rcx]
-        xor     r9d,ebp
-        bswap   r10d
-        mov     DWORD[((80+12))+rsp],r9d
-        xor     r10d,ebp
-        lea     r9,[7+r8]
-        mov     DWORD[((96+12))+rsp],r10d
-        bswap   r9d
-        mov     r10d,DWORD[((OPENSSL_ia32cap_P+4))]
-        xor     r9d,ebp
-        and     r10d,71303168
-        mov     DWORD[((112+12))+rsp],r9d
-
-        movups  xmm1,XMMWORD[16+rcx]
-
-        movdqa  xmm6,XMMWORD[64+rsp]
-        movdqa  xmm7,XMMWORD[80+rsp]
-
-        cmp     rdx,8
-        jb      NEAR $L$ctr32_tail
-
-        sub     rdx,6
-        cmp     r10d,4194304
-        je      NEAR $L$ctr32_6x
-
-        lea     rcx,[128+rcx]
-        sub     rdx,2
-        jmp     NEAR $L$ctr32_loop8
-
-ALIGN   16
-$L$ctr32_6x:
-        shl     eax,4
-        mov     r10d,48
-        bswap   ebp
-        lea     rcx,[32+rax*1+rcx]
-        sub     r10,rax
-        jmp     NEAR $L$ctr32_loop6
-
-ALIGN   16
-$L$ctr32_loop6:
-        add     r8d,6
-        movups  xmm0,XMMWORD[((-48))+r10*1+rcx]
-DB      102,15,56,220,209
-        mov     eax,r8d
-        xor     eax,ebp
-DB      102,15,56,220,217
-DB      0x0f,0x38,0xf1,0x44,0x24,12
-        lea     eax,[1+r8]
-DB      102,15,56,220,225
-        xor     eax,ebp
-DB      0x0f,0x38,0xf1,0x44,0x24,28
-DB      102,15,56,220,233
-        lea     eax,[2+r8]
-        xor     eax,ebp
-DB      102,15,56,220,241
-DB      0x0f,0x38,0xf1,0x44,0x24,44
-        lea     eax,[3+r8]
-DB      102,15,56,220,249
-        movups  xmm1,XMMWORD[((-32))+r10*1+rcx]
-        xor     eax,ebp
-
-DB      102,15,56,220,208
-DB      0x0f,0x38,0xf1,0x44,0x24,60
-        lea     eax,[4+r8]
-DB      102,15,56,220,216
-        xor     eax,ebp
-DB      0x0f,0x38,0xf1,0x44,0x24,76
-DB      102,15,56,220,224
-        lea     eax,[5+r8]
-        xor     eax,ebp
-DB      102,15,56,220,232
-DB      0x0f,0x38,0xf1,0x44,0x24,92
-        mov     rax,r10
-DB      102,15,56,220,240
-DB      102,15,56,220,248
-        movups  xmm0,XMMWORD[((-16))+r10*1+rcx]
-
-        call    $L$enc_loop6
-
-        movdqu  xmm8,XMMWORD[rdi]
-        movdqu  xmm9,XMMWORD[16+rdi]
-        movdqu  xmm10,XMMWORD[32+rdi]
-        movdqu  xmm11,XMMWORD[48+rdi]
-        movdqu  xmm12,XMMWORD[64+rdi]
-        movdqu  xmm13,XMMWORD[80+rdi]
-        lea     rdi,[96+rdi]
-        movups  xmm1,XMMWORD[((-64))+r10*1+rcx]
-        pxor    xmm8,xmm2
-        movaps  xmm2,XMMWORD[rsp]
-        pxor    xmm9,xmm3
-        movaps  xmm3,XMMWORD[16+rsp]
-        pxor    xmm10,xmm4
-        movaps  xmm4,XMMWORD[32+rsp]
-        pxor    xmm11,xmm5
-        movaps  xmm5,XMMWORD[48+rsp]
-        pxor    xmm12,xmm6
-        movaps  xmm6,XMMWORD[64+rsp]
-        pxor    xmm13,xmm7
-        movaps  xmm7,XMMWORD[80+rsp]
-        movdqu  XMMWORD[rsi],xmm8
-        movdqu  XMMWORD[16+rsi],xmm9
-        movdqu  XMMWORD[32+rsi],xmm10
-        movdqu  XMMWORD[48+rsi],xmm11
-        movdqu  XMMWORD[64+rsi],xmm12
-        movdqu  XMMWORD[80+rsi],xmm13
-        lea     rsi,[96+rsi]
-
-        sub     rdx,6
-        jnc     NEAR $L$ctr32_loop6
-
-        add     rdx,6
-        jz      NEAR $L$ctr32_done
-
-        lea     eax,[((-48))+r10]
-        lea     rcx,[((-80))+r10*1+rcx]
-        neg     eax
-        shr     eax,4
-        jmp     NEAR $L$ctr32_tail
-
-ALIGN   32
-$L$ctr32_loop8:
-        add     r8d,8
-        movdqa  xmm8,XMMWORD[96+rsp]
-DB      102,15,56,220,209
-        mov     r9d,r8d
-        movdqa  xmm9,XMMWORD[112+rsp]
-DB      102,15,56,220,217
-        bswap   r9d
-        movups  xmm0,XMMWORD[((32-128))+rcx]
-DB      102,15,56,220,225
-        xor     r9d,ebp
-        nop
-DB      102,15,56,220,233
-        mov     DWORD[((0+12))+rsp],r9d
-        lea     r9,[1+r8]
-DB      102,15,56,220,241
-DB      102,15,56,220,249
-DB      102,68,15,56,220,193
-DB      102,68,15,56,220,201
-        movups  xmm1,XMMWORD[((48-128))+rcx]
-        bswap   r9d
-DB      102,15,56,220,208
-DB      102,15,56,220,216
-        xor     r9d,ebp
-DB      0x66,0x90
-DB      102,15,56,220,224
-DB      102,15,56,220,232
-        mov     DWORD[((16+12))+rsp],r9d
-        lea     r9,[2+r8]
-DB      102,15,56,220,240
-DB      102,15,56,220,248
-DB      102,68,15,56,220,192
-DB      102,68,15,56,220,200
-        movups  xmm0,XMMWORD[((64-128))+rcx]
-        bswap   r9d
-DB      102,15,56,220,209
-DB      102,15,56,220,217
-        xor     r9d,ebp
-DB      0x66,0x90
-DB      102,15,56,220,225
-DB      102,15,56,220,233
-        mov     DWORD[((32+12))+rsp],r9d
-        lea     r9,[3+r8]
-DB      102,15,56,220,241
-DB      102,15,56,220,249
-DB      102,68,15,56,220,193
-DB      102,68,15,56,220,201
-        movups  xmm1,XMMWORD[((80-128))+rcx]
-        bswap   r9d
-DB      102,15,56,220,208
-DB      102,15,56,220,216
-        xor     r9d,ebp
-DB      0x66,0x90
-DB      102,15,56,220,224
-DB      102,15,56,220,232
-        mov     DWORD[((48+12))+rsp],r9d
-        lea     r9,[4+r8]
-DB      102,15,56,220,240
-DB      102,15,56,220,248
-DB      102,68,15,56,220,192
-DB      102,68,15,56,220,200
-        movups  xmm0,XMMWORD[((96-128))+rcx]
-        bswap   r9d
-DB      102,15,56,220,209
-DB      102,15,56,220,217
-        xor     r9d,ebp
-DB      0x66,0x90
-DB      102,15,56,220,225
-DB      102,15,56,220,233
-        mov     DWORD[((64+12))+rsp],r9d
-        lea     r9,[5+r8]
-DB      102,15,56,220,241
-DB      102,15,56,220,249
-DB      102,68,15,56,220,193
-DB      102,68,15,56,220,201
-        movups  xmm1,XMMWORD[((112-128))+rcx]
-        bswap   r9d
-DB      102,15,56,220,208
-DB      102,15,56,220,216
-        xor     r9d,ebp
-DB      0x66,0x90
-DB      102,15,56,220,224
-DB      102,15,56,220,232
-        mov     DWORD[((80+12))+rsp],r9d
-        lea     r9,[6+r8]
-DB      102,15,56,220,240
-DB      102,15,56,220,248
-DB      102,68,15,56,220,192
-DB      102,68,15,56,220,200
-        movups  xmm0,XMMWORD[((128-128))+rcx]
-        bswap   r9d
-DB      102,15,56,220,209
-DB      102,15,56,220,217
-        xor     r9d,ebp
-DB      0x66,0x90
-DB      102,15,56,220,225
-DB      102,15,56,220,233
-        mov     DWORD[((96+12))+rsp],r9d
-        lea     r9,[7+r8]
-DB      102,15,56,220,241
-DB      102,15,56,220,249
-DB      102,68,15,56,220,193
-DB      102,68,15,56,220,201
-        movups  xmm1,XMMWORD[((144-128))+rcx]
-        bswap   r9d
-DB      102,15,56,220,208
-DB      102,15,56,220,216
-DB      102,15,56,220,224
-        xor     r9d,ebp
-        movdqu  xmm10,XMMWORD[rdi]
-DB      102,15,56,220,232
-        mov     DWORD[((112+12))+rsp],r9d
-        cmp     eax,11
-DB      102,15,56,220,240
-DB      102,15,56,220,248
-DB      102,68,15,56,220,192
-DB      102,68,15,56,220,200
-        movups  xmm0,XMMWORD[((160-128))+rcx]
-
-        jb      NEAR $L$ctr32_enc_done
-
-DB      102,15,56,220,209
-DB      102,15,56,220,217
-DB      102,15,56,220,225
-DB      102,15,56,220,233
-DB      102,15,56,220,241
-DB      102,15,56,220,249
-DB      102,68,15,56,220,193
-DB      102,68,15,56,220,201
-        movups  xmm1,XMMWORD[((176-128))+rcx]
-
-DB      102,15,56,220,208
-DB      102,15,56,220,216
-DB      102,15,56,220,224
-DB      102,15,56,220,232
-DB      102,15,56,220,240
-DB      102,15,56,220,248
-DB      102,68,15,56,220,192
-DB      102,68,15,56,220,200
-        movups  xmm0,XMMWORD[((192-128))+rcx]
-        je      NEAR $L$ctr32_enc_done
-
-DB      102,15,56,220,209
-DB      102,15,56,220,217
-DB      102,15,56,220,225
-DB      102,15,56,220,233
-DB      102,15,56,220,241
-DB      102,15,56,220,249
-DB      102,68,15,56,220,193
-DB      102,68,15,56,220,201
-        movups  xmm1,XMMWORD[((208-128))+rcx]
-
-DB      102,15,56,220,208
-DB      102,15,56,220,216
-DB      102,15,56,220,224
-DB      102,15,56,220,232
-DB      102,15,56,220,240
-DB      102,15,56,220,248
-DB      102,68,15,56,220,192
-DB      102,68,15,56,220,200
-        movups  xmm0,XMMWORD[((224-128))+rcx]
-        jmp     NEAR $L$ctr32_enc_done
-
-ALIGN   16
-$L$ctr32_enc_done:
-        movdqu  xmm11,XMMWORD[16+rdi]
-        pxor    xmm10,xmm0
-        movdqu  xmm12,XMMWORD[32+rdi]
-        pxor    xmm11,xmm0
-        movdqu  xmm13,XMMWORD[48+rdi]
-        pxor    xmm12,xmm0
-        movdqu  xmm14,XMMWORD[64+rdi]
-        pxor    xmm13,xmm0
-        movdqu  xmm15,XMMWORD[80+rdi]
-        pxor    xmm14,xmm0
-        pxor    xmm15,xmm0
-DB      102,15,56,220,209
-DB      102,15,56,220,217
-DB      102,15,56,220,225
-DB      102,15,56,220,233
-DB      102,15,56,220,241
-DB      102,15,56,220,249
-DB      102,68,15,56,220,193
-DB      102,68,15,56,220,201
-        movdqu  xmm1,XMMWORD[96+rdi]
-        lea     rdi,[128+rdi]
-
-DB      102,65,15,56,221,210
-        pxor    xmm1,xmm0
-        movdqu  xmm10,XMMWORD[((112-128))+rdi]
-DB      102,65,15,56,221,219
-        pxor    xmm10,xmm0
-        movdqa  xmm11,XMMWORD[rsp]
-DB      102,65,15,56,221,228
-DB      102,65,15,56,221,237
-        movdqa  xmm12,XMMWORD[16+rsp]
-        movdqa  xmm13,XMMWORD[32+rsp]
-DB      102,65,15,56,221,246
-DB      102,65,15,56,221,255
-        movdqa  xmm14,XMMWORD[48+rsp]
-        movdqa  xmm15,XMMWORD[64+rsp]
-DB      102,68,15,56,221,193
-        movdqa  xmm0,XMMWORD[80+rsp]
-        movups  xmm1,XMMWORD[((16-128))+rcx]
-DB      102,69,15,56,221,202
-
-        movups  XMMWORD[rsi],xmm2
-        movdqa  xmm2,xmm11
-        movups  XMMWORD[16+rsi],xmm3
-        movdqa  xmm3,xmm12
-        movups  XMMWORD[32+rsi],xmm4
-        movdqa  xmm4,xmm13
-        movups  XMMWORD[48+rsi],xmm5
-        movdqa  xmm5,xmm14
-        movups  XMMWORD[64+rsi],xmm6
-        movdqa  xmm6,xmm15
-        movups  XMMWORD[80+rsi],xmm7
-        movdqa  xmm7,xmm0
-        movups  XMMWORD[96+rsi],xmm8
-        movups  XMMWORD[112+rsi],xmm9
-        lea     rsi,[128+rsi]
-
-        sub     rdx,8
-        jnc     NEAR $L$ctr32_loop8
-
-        add     rdx,8
-        jz      NEAR $L$ctr32_done
-        lea     rcx,[((-128))+rcx]
-
-$L$ctr32_tail:
-
-
-        lea     rcx,[16+rcx]
-        cmp     rdx,4
-        jb      NEAR $L$ctr32_loop3
-        je      NEAR $L$ctr32_loop4
-
-
-        shl     eax,4
-        movdqa  xmm8,XMMWORD[96+rsp]
-        pxor    xmm9,xmm9
-
-        movups  xmm0,XMMWORD[16+rcx]
-DB      102,15,56,220,209
-DB      102,15,56,220,217
-        lea     rcx,[((32-16))+rax*1+rcx]
-        neg     rax
-DB      102,15,56,220,225
-        add     rax,16
-        movups  xmm10,XMMWORD[rdi]
-DB      102,15,56,220,233
-DB      102,15,56,220,241
-        movups  xmm11,XMMWORD[16+rdi]
-        movups  xmm12,XMMWORD[32+rdi]
-DB      102,15,56,220,249
-DB      102,68,15,56,220,193
-
-        call    $L$enc_loop8_enter
-
-        movdqu  xmm13,XMMWORD[48+rdi]
-        pxor    xmm2,xmm10
-        movdqu  xmm10,XMMWORD[64+rdi]
-        pxor    xmm3,xmm11
-        movdqu  XMMWORD[rsi],xmm2
-        pxor    xmm4,xmm12
-        movdqu  XMMWORD[16+rsi],xmm3
-        pxor    xmm5,xmm13
-        movdqu  XMMWORD[32+rsi],xmm4
-        pxor    xmm6,xmm10
-        movdqu  XMMWORD[48+rsi],xmm5
-        movdqu  XMMWORD[64+rsi],xmm6
-        cmp     rdx,6
-        jb      NEAR $L$ctr32_done
-
-        movups  xmm11,XMMWORD[80+rdi]
-        xorps   xmm7,xmm11
-        movups  XMMWORD[80+rsi],xmm7
-        je      NEAR $L$ctr32_done
-
-        movups  xmm12,XMMWORD[96+rdi]
-        xorps   xmm8,xmm12
-        movups  XMMWORD[96+rsi],xmm8
-        jmp     NEAR $L$ctr32_done
-
-ALIGN   32
-$L$ctr32_loop4:
-DB      102,15,56,220,209
-        lea     rcx,[16+rcx]
-        dec     eax
-DB      102,15,56,220,217
-DB      102,15,56,220,225
-DB      102,15,56,220,233
-        movups  xmm1,XMMWORD[rcx]
-        jnz     NEAR $L$ctr32_loop4
-DB      102,15,56,221,209
-DB      102,15,56,221,217
-        movups  xmm10,XMMWORD[rdi]
-        movups  xmm11,XMMWORD[16+rdi]
-DB      102,15,56,221,225
-DB      102,15,56,221,233
-        movups  xmm12,XMMWORD[32+rdi]
-        movups  xmm13,XMMWORD[48+rdi]
-
-        xorps   xmm2,xmm10
-        movups  XMMWORD[rsi],xmm2
-        xorps   xmm3,xmm11
-        movups  XMMWORD[16+rsi],xmm3
-        pxor    xmm4,xmm12
-        movdqu  XMMWORD[32+rsi],xmm4
-        pxor    xmm5,xmm13
-        movdqu  XMMWORD[48+rsi],xmm5
-        jmp     NEAR $L$ctr32_done
-
-ALIGN   32
-$L$ctr32_loop3:
-DB      102,15,56,220,209
-        lea     rcx,[16+rcx]
-        dec     eax
-DB      102,15,56,220,217
-DB      102,15,56,220,225
-        movups  xmm1,XMMWORD[rcx]
-        jnz     NEAR $L$ctr32_loop3
-DB      102,15,56,221,209
-DB      102,15,56,221,217
-DB      102,15,56,221,225
-
-        movups  xmm10,XMMWORD[rdi]
-        xorps   xmm2,xmm10
-        movups  XMMWORD[rsi],xmm2
-        cmp     rdx,2
-        jb      NEAR $L$ctr32_done
-
-        movups  xmm11,XMMWORD[16+rdi]
-        xorps   xmm3,xmm11
-        movups  XMMWORD[16+rsi],xmm3
-        je      NEAR $L$ctr32_done
-
-        movups  xmm12,XMMWORD[32+rdi]
-        xorps   xmm4,xmm12
-        movups  XMMWORD[32+rsi],xmm4
-
-$L$ctr32_done:
-        xorps   xmm0,xmm0
-        xor     ebp,ebp
-        pxor    xmm1,xmm1
-        pxor    xmm2,xmm2
-        pxor    xmm3,xmm3
-        pxor    xmm4,xmm4
-        pxor    xmm5,xmm5
-        movaps  xmm6,XMMWORD[((-168))+r11]
-        movaps  XMMWORD[(-168)+r11],xmm0
-        movaps  xmm7,XMMWORD[((-152))+r11]
-        movaps  XMMWORD[(-152)+r11],xmm0
-        movaps  xmm8,XMMWORD[((-136))+r11]
-        movaps  XMMWORD[(-136)+r11],xmm0
-        movaps  xmm9,XMMWORD[((-120))+r11]
-        movaps  XMMWORD[(-120)+r11],xmm0
-        movaps  xmm10,XMMWORD[((-104))+r11]
-        movaps  XMMWORD[(-104)+r11],xmm0
-        movaps  xmm11,XMMWORD[((-88))+r11]
-        movaps  XMMWORD[(-88)+r11],xmm0
-        movaps  xmm12,XMMWORD[((-72))+r11]
-        movaps  XMMWORD[(-72)+r11],xmm0
-        movaps  xmm13,XMMWORD[((-56))+r11]
-        movaps  XMMWORD[(-56)+r11],xmm0
-        movaps  xmm14,XMMWORD[((-40))+r11]
-        movaps  XMMWORD[(-40)+r11],xmm0
-        movaps  xmm15,XMMWORD[((-24))+r11]
-        movaps  XMMWORD[(-24)+r11],xmm0
-        movaps  XMMWORD[rsp],xmm0
-        movaps  XMMWORD[16+rsp],xmm0
-        movaps  XMMWORD[32+rsp],xmm0
-        movaps  XMMWORD[48+rsp],xmm0
-        movaps  XMMWORD[64+rsp],xmm0
-        movaps  XMMWORD[80+rsp],xmm0
-        movaps  XMMWORD[96+rsp],xmm0
-        movaps  XMMWORD[112+rsp],xmm0
-        mov     rbp,QWORD[((-8))+r11]
-
-        lea     rsp,[r11]
-
-$L$ctr32_epilogue:
-        mov     rdi,QWORD[8+rsp]        ;WIN64 epilogue
-        mov     rsi,QWORD[16+rsp]
-        DB      0F3h,0C3h               ;repret
-
-$L$SEH_end_aesni_ctr32_encrypt_blocks:
-global  aesni_xts_encrypt
-
-ALIGN   16
-aesni_xts_encrypt:
-        mov     QWORD[8+rsp],rdi        ;WIN64 prologue
-        mov     QWORD[16+rsp],rsi
-        mov     rax,rsp
-$L$SEH_begin_aesni_xts_encrypt:
-        mov     rdi,rcx
-        mov     rsi,rdx
-        mov     rdx,r8
-        mov     rcx,r9
-        mov     r8,QWORD[40+rsp]
-        mov     r9,QWORD[48+rsp]
-
-
-
-        lea     r11,[rsp]
-
-        push    rbp
-
-        sub     rsp,272
-        and     rsp,-16
-        movaps  XMMWORD[(-168)+r11],xmm6
-        movaps  XMMWORD[(-152)+r11],xmm7
-        movaps  XMMWORD[(-136)+r11],xmm8
-        movaps  XMMWORD[(-120)+r11],xmm9
-        movaps  XMMWORD[(-104)+r11],xmm10
-        movaps  XMMWORD[(-88)+r11],xmm11
-        movaps  XMMWORD[(-72)+r11],xmm12
-        movaps  XMMWORD[(-56)+r11],xmm13
-        movaps  XMMWORD[(-40)+r11],xmm14
-        movaps  XMMWORD[(-24)+r11],xmm15
-$L$xts_enc_body:
-        movups  xmm2,XMMWORD[r9]
-        mov     eax,DWORD[240+r8]
-        mov     r10d,DWORD[240+rcx]
-        movups  xmm0,XMMWORD[r8]
-        movups  xmm1,XMMWORD[16+r8]
-        lea     r8,[32+r8]
-        xorps   xmm2,xmm0
-$L$oop_enc1_8:
-DB      102,15,56,220,209
-        dec     eax
-        movups  xmm1,XMMWORD[r8]
-        lea     r8,[16+r8]
-        jnz     NEAR $L$oop_enc1_8
-DB      102,15,56,221,209
-        movups  xmm0,XMMWORD[rcx]
-        mov     rbp,rcx
-        mov     eax,r10d
-        shl     r10d,4
-        mov     r9,rdx
-        and     rdx,-16
-
-        movups  xmm1,XMMWORD[16+r10*1+rcx]
-
-        movdqa  xmm8,XMMWORD[$L$xts_magic]
-        movdqa  xmm15,xmm2
-        pshufd  xmm9,xmm2,0x5f
-        pxor    xmm1,xmm0
-        movdqa  xmm14,xmm9
-        paddd   xmm9,xmm9
-        movdqa  xmm10,xmm15
-        psrad   xmm14,31
-        paddq   xmm15,xmm15
-        pand    xmm14,xmm8
-        pxor    xmm10,xmm0
-        pxor    xmm15,xmm14
-        movdqa  xmm14,xmm9
-        paddd   xmm9,xmm9
-        movdqa  xmm11,xmm15
-        psrad   xmm14,31
-        paddq   xmm15,xmm15
-        pand    xmm14,xmm8
-        pxor    xmm11,xmm0
-        pxor    xmm15,xmm14
-        movdqa  xmm14,xmm9
-        paddd   xmm9,xmm9
-        movdqa  xmm12,xmm15
-        psrad   xmm14,31
-        paddq   xmm15,xmm15
-        pand    xmm14,xmm8
-        pxor    xmm12,xmm0
-        pxor    xmm15,xmm14
-        movdqa  xmm14,xmm9
-        paddd   xmm9,xmm9
-        movdqa  xmm13,xmm15
-        psrad   xmm14,31
-        paddq   xmm15,xmm15
-        pand    xmm14,xmm8
-        pxor    xmm13,xmm0
-        pxor    xmm15,xmm14
-        movdqa  xmm14,xmm15
-        psrad   xmm9,31
-        paddq   xmm15,xmm15
-        pand    xmm9,xmm8
-        pxor    xmm14,xmm0
-        pxor    xmm15,xmm9
-        movaps  XMMWORD[96+rsp],xmm1
-
-        sub     rdx,16*6
-        jc      NEAR $L$xts_enc_short
-
-        mov     eax,16+96
-        lea     rcx,[32+r10*1+rbp]
-        sub     rax,r10
-        movups  xmm1,XMMWORD[16+rbp]
-        mov     r10,rax
-        lea     r8,[$L$xts_magic]
-        jmp     NEAR $L$xts_enc_grandloop
-
-ALIGN   32
-$L$xts_enc_grandloop:
-        movdqu  xmm2,XMMWORD[rdi]
-        movdqa  xmm8,xmm0
-        movdqu  xmm3,XMMWORD[16+rdi]
-        pxor    xmm2,xmm10
-        movdqu  xmm4,XMMWORD[32+rdi]
-        pxor    xmm3,xmm11
-DB      102,15,56,220,209
-        movdqu  xmm5,XMMWORD[48+rdi]
-        pxor    xmm4,xmm12
-DB      102,15,56,220,217
-        movdqu  xmm6,XMMWORD[64+rdi]
-        pxor    xmm5,xmm13
-DB      102,15,56,220,225
-        movdqu  xmm7,XMMWORD[80+rdi]
-        pxor    xmm8,xmm15
-        movdqa  xmm9,XMMWORD[96+rsp]
-        pxor    xmm6,xmm14
-DB      102,15,56,220,233
-        movups  xmm0,XMMWORD[32+rbp]
-        lea     rdi,[96+rdi]
-        pxor    xmm7,xmm8
-
-        pxor    xmm10,xmm9
-DB      102,15,56,220,241
-        pxor    xmm11,xmm9
-        movdqa  XMMWORD[rsp],xmm10
-DB      102,15,56,220,249
-        movups  xmm1,XMMWORD[48+rbp]
-        pxor    xmm12,xmm9
-
-DB      102,15,56,220,208
-        pxor    xmm13,xmm9
-        movdqa  XMMWORD[16+rsp],xmm11
-DB      102,15,56,220,216
-        pxor    xmm14,xmm9
-        movdqa  XMMWORD[32+rsp],xmm12
-DB      102,15,56,220,224
-DB      102,15,56,220,232
-        pxor    xmm8,xmm9
-        movdqa  XMMWORD[64+rsp],xmm14
-DB      102,15,56,220,240
-DB      102,15,56,220,248
-        movups  xmm0,XMMWORD[64+rbp]
-        movdqa  XMMWORD[80+rsp],xmm8
-        pshufd  xmm9,xmm15,0x5f
-        jmp     NEAR $L$xts_enc_loop6
-ALIGN   32
-$L$xts_enc_loop6:
-DB      102,15,56,220,209
-DB      102,15,56,220,217
-DB      102,15,56,220,225
-DB      102,15,56,220,233
-DB      102,15,56,220,241
-DB      102,15,56,220,249
-        movups  xmm1,XMMWORD[((-64))+rax*1+rcx]
-        add     rax,32
-
-DB      102,15,56,220,208
-DB      102,15,56,220,216
-DB      102,15,56,220,224
-DB      102,15,56,220,232
-DB      102,15,56,220,240
-DB      102,15,56,220,248
-        movups  xmm0,XMMWORD[((-80))+rax*1+rcx]
-        jnz     NEAR $L$xts_enc_loop6
-
-        movdqa  xmm8,XMMWORD[r8]
-        movdqa  xmm14,xmm9
-        paddd   xmm9,xmm9
-DB      102,15,56,220,209
-        paddq   xmm15,xmm15
-        psrad   xmm14,31
-DB      102,15,56,220,217
-        pand    xmm14,xmm8
-        movups  xmm10,XMMWORD[rbp]
-DB      102,15,56,220,225
-DB      102,15,56,220,233
-DB      102,15,56,220,241
-        pxor    xmm15,xmm14
-        movaps  xmm11,xmm10
-DB      102,15,56,220,249
-        movups  xmm1,XMMWORD[((-64))+rcx]
-
-        movdqa  xmm14,xmm9
-DB      102,15,56,220,208
-        paddd   xmm9,xmm9
-        pxor    xmm10,xmm15
-DB      102,15,56,220,216
-        psrad   xmm14,31
-        paddq   xmm15,xmm15
-DB      102,15,56,220,224
-DB      102,15,56,220,232
-        pand    xmm14,xmm8
-        movaps  xmm12,xmm11
-DB      102,15,56,220,240
-        pxor    xmm15,xmm14
-        movdqa  xmm14,xmm9
-DB      102,15,56,220,248
-        movups  xmm0,XMMWORD[((-48))+rcx]
-
-        paddd   xmm9,xmm9
-DB      102,15,56,220,209
-        pxor    xmm11,xmm15
-        psrad   xmm14,31
-DB      102,15,56,220,217
-        paddq   xmm15,xmm15
-        pand    xmm14,xmm8
-DB      102,15,56,220,225
-DB      102,15,56,220,233
-        movdqa  XMMWORD[48+rsp],xmm13
-        pxor    xmm15,xmm14
-DB      102,15,56,220,241
-        movaps  xmm13,xmm12
-        movdqa  xmm14,xmm9
-DB      102,15,56,220,249
-        movups  xmm1,XMMWORD[((-32))+rcx]
-
-        paddd   xmm9,xmm9
-DB      102,15,56,220,208
-        pxor    xmm12,xmm15
-        psrad   xmm14,31
-DB      102,15,56,220,216
-        paddq   xmm15,xmm15
-        pand    xmm14,xmm8
-DB      102,15,56,220,224
-DB      102,15,56,220,232
-DB      102,15,56,220,240
-        pxor    xmm15,xmm14
-        movaps  xmm14,xmm13
-DB      102,15,56,220,248
-
-        movdqa  xmm0,xmm9
-        paddd   xmm9,xmm9
-DB      102,15,56,220,209
-        pxor    xmm13,xmm15
-        psrad   xmm0,31
-DB      102,15,56,220,217
-        paddq   xmm15,xmm15
-        pand    xmm0,xmm8
-DB      102,15,56,220,225
-DB      102,15,56,220,233
-        pxor    xmm15,xmm0
-        movups  xmm0,XMMWORD[rbp]
-DB      102,15,56,220,241
-DB      102,15,56,220,249
-        movups  xmm1,XMMWORD[16+rbp]
-
-        pxor    xmm14,xmm15
-DB      102,15,56,221,84,36,0
-        psrad   xmm9,31
-        paddq   xmm15,xmm15
-DB      102,15,56,221,92,36,16
-DB      102,15,56,221,100,36,32
-        pand    xmm9,xmm8
-        mov     rax,r10
-DB      102,15,56,221,108,36,48
-DB      102,15,56,221,116,36,64
-DB      102,15,56,221,124,36,80
-        pxor    xmm15,xmm9
-
-        lea     rsi,[96+rsi]
-        movups  XMMWORD[(-96)+rsi],xmm2
-        movups  XMMWORD[(-80)+rsi],xmm3
-        movups  XMMWORD[(-64)+rsi],xmm4
-        movups  XMMWORD[(-48)+rsi],xmm5
-        movups  XMMWORD[(-32)+rsi],xmm6
-        movups  XMMWORD[(-16)+rsi],xmm7
-        sub     rdx,16*6
-        jnc     NEAR $L$xts_enc_grandloop
-
-        mov     eax,16+96
-        sub     eax,r10d
-        mov     rcx,rbp
-        shr     eax,4
-
-$L$xts_enc_short:
-
-        mov     r10d,eax
-        pxor    xmm10,xmm0
-        add     rdx,16*6
-        jz      NEAR $L$xts_enc_done
-
-        pxor    xmm11,xmm0
-        cmp     rdx,0x20
-        jb      NEAR $L$xts_enc_one
-        pxor    xmm12,xmm0
-        je      NEAR $L$xts_enc_two
-
-        pxor    xmm13,xmm0
-        cmp     rdx,0x40
-        jb      NEAR $L$xts_enc_three
-        pxor    xmm14,xmm0
-        je      NEAR $L$xts_enc_four
-
-        movdqu  xmm2,XMMWORD[rdi]
-        movdqu  xmm3,XMMWORD[16+rdi]
-        movdqu  xmm4,XMMWORD[32+rdi]
-        pxor    xmm2,xmm10
-        movdqu  xmm5,XMMWORD[48+rdi]
-        pxor    xmm3,xmm11
-        movdqu  xmm6,XMMWORD[64+rdi]
-        lea     rdi,[80+rdi]
-        pxor    xmm4,xmm12
-        pxor    xmm5,xmm13
-        pxor    xmm6,xmm14
-        pxor    xmm7,xmm7
-
-        call    _aesni_encrypt6
-
-        xorps   xmm2,xmm10
-        movdqa  xmm10,xmm15
-        xorps   xmm3,xmm11
-        xorps   xmm4,xmm12
-        movdqu  XMMWORD[rsi],xmm2
-        xorps   xmm5,xmm13
-        movdqu  XMMWORD[16+rsi],xmm3
-        xorps   xmm6,xmm14
-        movdqu  XMMWORD[32+rsi],xmm4
-        movdqu  XMMWORD[48+rsi],xmm5
-        movdqu  XMMWORD[64+rsi],xmm6
-        lea     rsi,[80+rsi]
-        jmp     NEAR $L$xts_enc_done
-
-ALIGN   16
-$L$xts_enc_one:
-        movups  xmm2,XMMWORD[rdi]
-        lea     rdi,[16+rdi]
-        xorps   xmm2,xmm10
-        movups  xmm0,XMMWORD[rcx]
-        movups  xmm1,XMMWORD[16+rcx]
-        lea     rcx,[32+rcx]
-        xorps   xmm2,xmm0
-$L$oop_enc1_9:
-DB      102,15,56,220,209
-        dec     eax
-        movups  xmm1,XMMWORD[rcx]
-        lea     rcx,[16+rcx]
-        jnz     NEAR $L$oop_enc1_9
-DB      102,15,56,221,209
-        xorps   xmm2,xmm10
-        movdqa  xmm10,xmm11
-        movups  XMMWORD[rsi],xmm2
-        lea     rsi,[16+rsi]
-        jmp     NEAR $L$xts_enc_done
-
-ALIGN   16
-$L$xts_enc_two:
-        movups  xmm2,XMMWORD[rdi]
-        movups  xmm3,XMMWORD[16+rdi]
-        lea     rdi,[32+rdi]
-        xorps   xmm2,xmm10
-        xorps   xmm3,xmm11
-
-        call    _aesni_encrypt2
-
-        xorps   xmm2,xmm10
-        movdqa  xmm10,xmm12
-        xorps   xmm3,xmm11
-        movups  XMMWORD[rsi],xmm2
-        movups  XMMWORD[16+rsi],xmm3
-        lea     rsi,[32+rsi]
-        jmp     NEAR $L$xts_enc_done
-
-ALIGN   16
-$L$xts_enc_three:
-        movups  xmm2,XMMWORD[rdi]
-        movups  xmm3,XMMWORD[16+rdi]
-        movups  xmm4,XMMWORD[32+rdi]
-        lea     rdi,[48+rdi]
-        xorps   xmm2,xmm10
-        xorps   xmm3,xmm11
-        xorps   xmm4,xmm12
-
-        call    _aesni_encrypt3
-
-        xorps   xmm2,xmm10
-        movdqa  xmm10,xmm13
-        xorps   xmm3,xmm11
-        xorps   xmm4,xmm12
-        movups  XMMWORD[rsi],xmm2
-        movups  XMMWORD[16+rsi],xmm3
-        movups  XMMWORD[32+rsi],xmm4
-        lea     rsi,[48+rsi]
-        jmp     NEAR $L$xts_enc_done
-
-ALIGN   16
-$L$xts_enc_four:
-        movups  xmm2,XMMWORD[rdi]
-        movups  xmm3,XMMWORD[16+rdi]
-        movups  xmm4,XMMWORD[32+rdi]
-        xorps   xmm2,xmm10
-        movups  xmm5,XMMWORD[48+rdi]
-        lea     rdi,[64+rdi]
-        xorps   xmm3,xmm11
-        xorps   xmm4,xmm12
-        xorps   xmm5,xmm13
-
-        call    _aesni_encrypt4
-
-        pxor    xmm2,xmm10
-        movdqa  xmm10,xmm14
-        pxor    xmm3,xmm11
-        pxor    xmm4,xmm12
-        movdqu  XMMWORD[rsi],xmm2
-        pxor    xmm5,xmm13
-        movdqu  XMMWORD[16+rsi],xmm3
-        movdqu  XMMWORD[32+rsi],xmm4
-        movdqu  XMMWORD[48+rsi],xmm5
-        lea     rsi,[64+rsi]
-        jmp     NEAR $L$xts_enc_done
-
-ALIGN   16
-$L$xts_enc_done:
-        and     r9,15
-        jz      NEAR $L$xts_enc_ret
-        mov     rdx,r9
-
-$L$xts_enc_steal:
-        movzx   eax,BYTE[rdi]
-        movzx   ecx,BYTE[((-16))+rsi]
-        lea     rdi,[1+rdi]
-        mov     BYTE[((-16))+rsi],al
-        mov     BYTE[rsi],cl
-        lea     rsi,[1+rsi]
-        sub     rdx,1
-        jnz     NEAR $L$xts_enc_steal
-
-        sub     rsi,r9
-        mov     rcx,rbp
-        mov     eax,r10d
-
-        movups  xmm2,XMMWORD[((-16))+rsi]
-        xorps   xmm2,xmm10
-        movups  xmm0,XMMWORD[rcx]
-        movups  xmm1,XMMWORD[16+rcx]
-        lea     rcx,[32+rcx]
-        xorps   xmm2,xmm0
-$L$oop_enc1_10:
-DB      102,15,56,220,209
-        dec     eax
-        movups  xmm1,XMMWORD[rcx]
-        lea     rcx,[16+rcx]
-        jnz     NEAR $L$oop_enc1_10
-DB      102,15,56,221,209
-        xorps   xmm2,xmm10
-        movups  XMMWORD[(-16)+rsi],xmm2
-
-$L$xts_enc_ret:
-        xorps   xmm0,xmm0
-        pxor    xmm1,xmm1
-        pxor    xmm2,xmm2
-        pxor    xmm3,xmm3
-        pxor    xmm4,xmm4
-        pxor    xmm5,xmm5
-        movaps  xmm6,XMMWORD[((-168))+r11]
-        movaps  XMMWORD[(-168)+r11],xmm0
-        movaps  xmm7,XMMWORD[((-152))+r11]
-        movaps  XMMWORD[(-152)+r11],xmm0
-        movaps  xmm8,XMMWORD[((-136))+r11]
-        movaps  XMMWORD[(-136)+r11],xmm0
-        movaps  xmm9,XMMWORD[((-120))+r11]
-        movaps  XMMWORD[(-120)+r11],xmm0
-        movaps  xmm10,XMMWORD[((-104))+r11]
-        movaps  XMMWORD[(-104)+r11],xmm0
-        movaps  xmm11,XMMWORD[((-88))+r11]
-        movaps  XMMWORD[(-88)+r11],xmm0
-        movaps  xmm12,XMMWORD[((-72))+r11]
-        movaps  XMMWORD[(-72)+r11],xmm0
-        movaps  xmm13,XMMWORD[((-56))+r11]
-        movaps  XMMWORD[(-56)+r11],xmm0
-        movaps  xmm14,XMMWORD[((-40))+r11]
-        movaps  XMMWORD[(-40)+r11],xmm0
-        movaps  xmm15,XMMWORD[((-24))+r11]
-        movaps  XMMWORD[(-24)+r11],xmm0
-        movaps  XMMWORD[rsp],xmm0
-        movaps  XMMWORD[16+rsp],xmm0
-        movaps  XMMWORD[32+rsp],xmm0
-        movaps  XMMWORD[48+rsp],xmm0
-        movaps  XMMWORD[64+rsp],xmm0
-        movaps  XMMWORD[80+rsp],xmm0
-        movaps  XMMWORD[96+rsp],xmm0
-        mov     rbp,QWORD[((-8))+r11]
-
-        lea     rsp,[r11]
-
-$L$xts_enc_epilogue:
-        mov     rdi,QWORD[8+rsp]        ;WIN64 epilogue
-        mov     rsi,QWORD[16+rsp]
-        DB      0F3h,0C3h               ;repret
-
-$L$SEH_end_aesni_xts_encrypt:
-global  aesni_xts_decrypt
-
-ALIGN   16
-aesni_xts_decrypt:
-        mov     QWORD[8+rsp],rdi        ;WIN64 prologue
-        mov     QWORD[16+rsp],rsi
-        mov     rax,rsp
-$L$SEH_begin_aesni_xts_decrypt:
-        mov     rdi,rcx
-        mov     rsi,rdx
-        mov     rdx,r8
-        mov     rcx,r9
-        mov     r8,QWORD[40+rsp]
-        mov     r9,QWORD[48+rsp]
-
-
-
-        lea     r11,[rsp]
-
-        push    rbp
-
-        sub     rsp,272
-        and     rsp,-16
-        movaps  XMMWORD[(-168)+r11],xmm6
-        movaps  XMMWORD[(-152)+r11],xmm7
-        movaps  XMMWORD[(-136)+r11],xmm8
-        movaps  XMMWORD[(-120)+r11],xmm9
-        movaps  XMMWORD[(-104)+r11],xmm10
-        movaps  XMMWORD[(-88)+r11],xmm11
-        movaps  XMMWORD[(-72)+r11],xmm12
-        movaps  XMMWORD[(-56)+r11],xmm13
-        movaps  XMMWORD[(-40)+r11],xmm14
-        movaps  XMMWORD[(-24)+r11],xmm15
-$L$xts_dec_body:
-        movups  xmm2,XMMWORD[r9]
-        mov     eax,DWORD[240+r8]
-        mov     r10d,DWORD[240+rcx]
-        movups  xmm0,XMMWORD[r8]
-        movups  xmm1,XMMWORD[16+r8]
-        lea     r8,[32+r8]
-        xorps   xmm2,xmm0
-$L$oop_enc1_11:
-DB      102,15,56,220,209
-        dec     eax
-        movups  xmm1,XMMWORD[r8]
-        lea     r8,[16+r8]
-        jnz     NEAR $L$oop_enc1_11
-DB      102,15,56,221,209
-        xor     eax,eax
-        test    rdx,15
-        setnz   al
-        shl     rax,4
-        sub     rdx,rax
-
-        movups  xmm0,XMMWORD[rcx]
-        mov     rbp,rcx
-        mov     eax,r10d
-        shl     r10d,4
-        mov     r9,rdx
-        and     rdx,-16
-
-        movups  xmm1,XMMWORD[16+r10*1+rcx]
-
-        movdqa  xmm8,XMMWORD[$L$xts_magic]
-        movdqa  xmm15,xmm2
-        pshufd  xmm9,xmm2,0x5f
-        pxor    xmm1,xmm0
-        movdqa  xmm14,xmm9
-        paddd   xmm9,xmm9
-        movdqa  xmm10,xmm15
-        psrad   xmm14,31
-        paddq   xmm15,xmm15
-        pand    xmm14,xmm8
-        pxor    xmm10,xmm0
-        pxor    xmm15,xmm14
-        movdqa  xmm14,xmm9
-        paddd   xmm9,xmm9
-        movdqa  xmm11,xmm15
-        psrad   xmm14,31
-        paddq   xmm15,xmm15
-        pand    xmm14,xmm8
-        pxor    xmm11,xmm0
-        pxor    xmm15,xmm14
-        movdqa  xmm14,xmm9
-        paddd   xmm9,xmm9
-        movdqa  xmm12,xmm15
-        psrad   xmm14,31
-        paddq   xmm15,xmm15
-        pand    xmm14,xmm8
-        pxor    xmm12,xmm0
-        pxor    xmm15,xmm14
-        movdqa  xmm14,xmm9
-        paddd   xmm9,xmm9
-        movdqa  xmm13,xmm15
-        psrad   xmm14,31
-        paddq   xmm15,xmm15
-        pand    xmm14,xmm8
-        pxor    xmm13,xmm0
-        pxor    xmm15,xmm14
-        movdqa  xmm14,xmm15
-        psrad   xmm9,31
-        paddq   xmm15,xmm15
-        pand    xmm9,xmm8
-        pxor    xmm14,xmm0
-        pxor    xmm15,xmm9
-        movaps  XMMWORD[96+rsp],xmm1
-
-        sub     rdx,16*6
-        jc      NEAR $L$xts_dec_short
-
-        mov     eax,16+96
-        lea     rcx,[32+r10*1+rbp]
-        sub     rax,r10
-        movups  xmm1,XMMWORD[16+rbp]
-        mov     r10,rax
-        lea     r8,[$L$xts_magic]
-        jmp     NEAR $L$xts_dec_grandloop
-
-ALIGN   32
-$L$xts_dec_grandloop:
-        movdqu  xmm2,XMMWORD[rdi]
-        movdqa  xmm8,xmm0
-        movdqu  xmm3,XMMWORD[16+rdi]
-        pxor    xmm2,xmm10
-        movdqu  xmm4,XMMWORD[32+rdi]
-        pxor    xmm3,xmm11
-DB      102,15,56,222,209
-        movdqu  xmm5,XMMWORD[48+rdi]
-        pxor    xmm4,xmm12
-DB      102,15,56,222,217
-        movdqu  xmm6,XMMWORD[64+rdi]
-        pxor    xmm5,xmm13
-DB      102,15,56,222,225
-        movdqu  xmm7,XMMWORD[80+rdi]
-        pxor    xmm8,xmm15
-        movdqa  xmm9,XMMWORD[96+rsp]
-        pxor    xmm6,xmm14
-DB      102,15,56,222,233
-        movups  xmm0,XMMWORD[32+rbp]
-        lea     rdi,[96+rdi]
-        pxor    xmm7,xmm8
-
-        pxor    xmm10,xmm9
-DB      102,15,56,222,241
-        pxor    xmm11,xmm9
-        movdqa  XMMWORD[rsp],xmm10
-DB      102,15,56,222,249
-        movups  xmm1,XMMWORD[48+rbp]
-        pxor    xmm12,xmm9
-
-DB      102,15,56,222,208
-        pxor    xmm13,xmm9
-        movdqa  XMMWORD[16+rsp],xmm11
-DB      102,15,56,222,216
-        pxor    xmm14,xmm9
-        movdqa  XMMWORD[32+rsp],xmm12
-DB      102,15,56,222,224
-DB      102,15,56,222,232
-        pxor    xmm8,xmm9
-        movdqa  XMMWORD[64+rsp],xmm14
-DB      102,15,56,222,240
-DB      102,15,56,222,248
-        movups  xmm0,XMMWORD[64+rbp]
-        movdqa  XMMWORD[80+rsp],xmm8
-        pshufd  xmm9,xmm15,0x5f
-        jmp     NEAR $L$xts_dec_loop6
-ALIGN   32
-$L$xts_dec_loop6:
-DB      102,15,56,222,209
-DB      102,15,56,222,217
-DB      102,15,56,222,225
-DB      102,15,56,222,233
-DB      102,15,56,222,241
-DB      102,15,56,222,249
-        movups  xmm1,XMMWORD[((-64))+rax*1+rcx]
-        add     rax,32
-
-DB      102,15,56,222,208
-DB      102,15,56,222,216
-DB      102,15,56,222,224
-DB      102,15,56,222,232
-DB      102,15,56,222,240
-DB      102,15,56,222,248
-        movups  xmm0,XMMWORD[((-80))+rax*1+rcx]
-        jnz     NEAR $L$xts_dec_loop6
-
-        movdqa  xmm8,XMMWORD[r8]
-        movdqa  xmm14,xmm9
-        paddd   xmm9,xmm9
-DB      102,15,56,222,209
-        paddq   xmm15,xmm15
-        psrad   xmm14,31
-DB      102,15,56,222,217
-        pand    xmm14,xmm8
-        movups  xmm10,XMMWORD[rbp]
-DB      102,15,56,222,225
-DB      102,15,56,222,233
-DB      102,15,56,222,241
-        pxor    xmm15,xmm14
-        movaps  xmm11,xmm10
-DB      102,15,56,222,249
-        movups  xmm1,XMMWORD[((-64))+rcx]
-
-        movdqa  xmm14,xmm9
-DB      102,15,56,222,208
-        paddd   xmm9,xmm9
-        pxor    xmm10,xmm15
-DB      102,15,56,222,216
-        psrad   xmm14,31
-        paddq   xmm15,xmm15
-DB      102,15,56,222,224
-DB      102,15,56,222,232
-        pand    xmm14,xmm8
-        movaps  xmm12,xmm11
-DB      102,15,56,222,240
-        pxor    xmm15,xmm14
-        movdqa  xmm14,xmm9
-DB      102,15,56,222,248
-        movups  xmm0,XMMWORD[((-48))+rcx]
-
-        paddd   xmm9,xmm9
-DB      102,15,56,222,209
-        pxor    xmm11,xmm15
-        psrad   xmm14,31
-DB      102,15,56,222,217
-        paddq   xmm15,xmm15
-        pand    xmm14,xmm8
-DB      102,15,56,222,225
-DB      102,15,56,222,233
-        movdqa  XMMWORD[48+rsp],xmm13
-        pxor    xmm15,xmm14
-DB      102,15,56,222,241
-        movaps  xmm13,xmm12
-        movdqa  xmm14,xmm9
-DB      102,15,56,222,249
-        movups  xmm1,XMMWORD[((-32))+rcx]
-
-        paddd   xmm9,xmm9
-DB      102,15,56,222,208
-        pxor    xmm12,xmm15
-        psrad   xmm14,31
-DB      102,15,56,222,216
-        paddq   xmm15,xmm15
-        pand    xmm14,xmm8
-DB      102,15,56,222,224
-DB      102,15,56,222,232
-DB      102,15,56,222,240
-        pxor    xmm15,xmm14
-        movaps  xmm14,xmm13
-DB      102,15,56,222,248
-
-        movdqa  xmm0,xmm9
-        paddd   xmm9,xmm9
-DB      102,15,56,222,209
-        pxor    xmm13,xmm15
-        psrad   xmm0,31
-DB      102,15,56,222,217
-        paddq   xmm15,xmm15
-        pand    xmm0,xmm8
-DB      102,15,56,222,225
-DB      102,15,56,222,233
-        pxor    xmm15,xmm0
-        movups  xmm0,XMMWORD[rbp]
-DB      102,15,56,222,241
-DB      102,15,56,222,249
-        movups  xmm1,XMMWORD[16+rbp]
-
-        pxor    xmm14,xmm15
-DB      102,15,56,223,84,36,0
-        psrad   xmm9,31
-        paddq   xmm15,xmm15
-DB      102,15,56,223,92,36,16
-DB      102,15,56,223,100,36,32
-        pand    xmm9,xmm8
-        mov     rax,r10
-DB      102,15,56,223,108,36,48
-DB      102,15,56,223,116,36,64
-DB      102,15,56,223,124,36,80
-        pxor    xmm15,xmm9
-
-        lea     rsi,[96+rsi]
-        movups  XMMWORD[(-96)+rsi],xmm2
-        movups  XMMWORD[(-80)+rsi],xmm3
-        movups  XMMWORD[(-64)+rsi],xmm4
-        movups  XMMWORD[(-48)+rsi],xmm5
-        movups  XMMWORD[(-32)+rsi],xmm6
-        movups  XMMWORD[(-16)+rsi],xmm7
-        sub     rdx,16*6
-        jnc     NEAR $L$xts_dec_grandloop
-
-        mov     eax,16+96
-        sub     eax,r10d
-        mov     rcx,rbp
-        shr     eax,4
-
-$L$xts_dec_short:
-
-        mov     r10d,eax
-        pxor    xmm10,xmm0
-        pxor    xmm11,xmm0
-        add     rdx,16*6
-        jz      NEAR $L$xts_dec_done
-
-        pxor    xmm12,xmm0
-        cmp     rdx,0x20
-        jb      NEAR $L$xts_dec_one
-        pxor    xmm13,xmm0
-        je      NEAR $L$xts_dec_two
-
-        pxor    xmm14,xmm0
-        cmp     rdx,0x40
-        jb      NEAR $L$xts_dec_three
-        je      NEAR $L$xts_dec_four
-
-        movdqu  xmm2,XMMWORD[rdi]
-        movdqu  xmm3,XMMWORD[16+rdi]
-        movdqu  xmm4,XMMWORD[32+rdi]
-        pxor    xmm2,xmm10
-        movdqu  xmm5,XMMWORD[48+rdi]
-        pxor    xmm3,xmm11
-        movdqu  xmm6,XMMWORD[64+rdi]
-        lea     rdi,[80+rdi]
-        pxor    xmm4,xmm12
-        pxor    xmm5,xmm13
-        pxor    xmm6,xmm14
-
-        call    _aesni_decrypt6
-
-        xorps   xmm2,xmm10
-        xorps   xmm3,xmm11
-        xorps   xmm4,xmm12
-        movdqu  XMMWORD[rsi],xmm2
-        xorps   xmm5,xmm13
-        movdqu  XMMWORD[16+rsi],xmm3
-        xorps   xmm6,xmm14
-        movdqu  XMMWORD[32+rsi],xmm4
-        pxor    xmm14,xmm14
-        movdqu  XMMWORD[48+rsi],xmm5
-        pcmpgtd xmm14,xmm15
-        movdqu  XMMWORD[64+rsi],xmm6
-        lea     rsi,[80+rsi]
-        pshufd  xmm11,xmm14,0x13
-        and     r9,15
-        jz      NEAR $L$xts_dec_ret
-
-        movdqa  xmm10,xmm15
-        paddq   xmm15,xmm15
-        pand    xmm11,xmm8
-        pxor    xmm11,xmm15
-        jmp     NEAR $L$xts_dec_done2
-
-ALIGN   16
-$L$xts_dec_one:
-        movups  xmm2,XMMWORD[rdi]
-        lea     rdi,[16+rdi]
-        xorps   xmm2,xmm10
-        movups  xmm0,XMMWORD[rcx]
-        movups  xmm1,XMMWORD[16+rcx]
-        lea     rcx,[32+rcx]
-        xorps   xmm2,xmm0
-$L$oop_dec1_12:
-DB      102,15,56,222,209
-        dec     eax
-        movups  xmm1,XMMWORD[rcx]
-        lea     rcx,[16+rcx]
-        jnz     NEAR $L$oop_dec1_12
-DB      102,15,56,223,209
-        xorps   xmm2,xmm10
-        movdqa  xmm10,xmm11
-        movups  XMMWORD[rsi],xmm2
-        movdqa  xmm11,xmm12
-        lea     rsi,[16+rsi]
-        jmp     NEAR $L$xts_dec_done
-
-ALIGN   16
-$L$xts_dec_two:
-        movups  xmm2,XMMWORD[rdi]
-        movups  xmm3,XMMWORD[16+rdi]
-        lea     rdi,[32+rdi]
-        xorps   xmm2,xmm10
-        xorps   xmm3,xmm11
-
-        call    _aesni_decrypt2
-
-        xorps   xmm2,xmm10
-        movdqa  xmm10,xmm12
-        xorps   xmm3,xmm11
-        movdqa  xmm11,xmm13
-        movups  XMMWORD[rsi],xmm2
-        movups  XMMWORD[16+rsi],xmm3
-        lea     rsi,[32+rsi]
-        jmp     NEAR $L$xts_dec_done
-
-ALIGN   16
-$L$xts_dec_three:
-        movups  xmm2,XMMWORD[rdi]
-        movups  xmm3,XMMWORD[16+rdi]
-        movups  xmm4,XMMWORD[32+rdi]
-        lea     rdi,[48+rdi]
-        xorps   xmm2,xmm10
-        xorps   xmm3,xmm11
-        xorps   xmm4,xmm12
-
-        call    _aesni_decrypt3
-
-        xorps   xmm2,xmm10
-        movdqa  xmm10,xmm13
-        xorps   xmm3,xmm11
-        movdqa  xmm11,xmm14
-        xorps   xmm4,xmm12
-        movups  XMMWORD[rsi],xmm2
-        movups  XMMWORD[16+rsi],xmm3
-        movups  XMMWORD[32+rsi],xmm4
-        lea     rsi,[48+rsi]
-        jmp     NEAR $L$xts_dec_done
-
-ALIGN   16
-$L$xts_dec_four:
-        movups  xmm2,XMMWORD[rdi]
-        movups  xmm3,XMMWORD[16+rdi]
-        movups  xmm4,XMMWORD[32+rdi]
-        xorps   xmm2,xmm10
-        movups  xmm5,XMMWORD[48+rdi]
-        lea     rdi,[64+rdi]
-        xorps   xmm3,xmm11
-        xorps   xmm4,xmm12
-        xorps   xmm5,xmm13
-
-        call    _aesni_decrypt4
-
-        pxor    xmm2,xmm10
-        movdqa  xmm10,xmm14
-        pxor    xmm3,xmm11
-        movdqa  xmm11,xmm15
-        pxor    xmm4,xmm12
-        movdqu  XMMWORD[rsi],xmm2
-        pxor    xmm5,xmm13
-        movdqu  XMMWORD[16+rsi],xmm3
-        movdqu  XMMWORD[32+rsi],xmm4
-        movdqu  XMMWORD[48+rsi],xmm5
-        lea     rsi,[64+rsi]
-        jmp     NEAR $L$xts_dec_done
-
-ALIGN   16
-$L$xts_dec_done:
-        and     r9,15
-        jz      NEAR $L$xts_dec_ret
-$L$xts_dec_done2:
-        mov     rdx,r9
-        mov     rcx,rbp
-        mov     eax,r10d
-
-        movups  xmm2,XMMWORD[rdi]
-        xorps   xmm2,xmm11
-        movups  xmm0,XMMWORD[rcx]
-        movups  xmm1,XMMWORD[16+rcx]
-        lea     rcx,[32+rcx]
-        xorps   xmm2,xmm0
-$L$oop_dec1_13:
-DB      102,15,56,222,209
-        dec     eax
-        movups  xmm1,XMMWORD[rcx]
-        lea     rcx,[16+rcx]
-        jnz     NEAR $L$oop_dec1_13
-DB      102,15,56,223,209
-        xorps   xmm2,xmm11
-        movups  XMMWORD[rsi],xmm2
-
-$L$xts_dec_steal:
-        movzx   eax,BYTE[16+rdi]
-        movzx   ecx,BYTE[rsi]
-        lea     rdi,[1+rdi]
-        mov     BYTE[rsi],al
-        mov     BYTE[16+rsi],cl
-        lea     rsi,[1+rsi]
-        sub     rdx,1
-        jnz     NEAR $L$xts_dec_steal
-
-        sub     rsi,r9
-        mov     rcx,rbp
-        mov     eax,r10d
-
-        movups  xmm2,XMMWORD[rsi]
-        xorps   xmm2,xmm10
-        movups  xmm0,XMMWORD[rcx]
-        movups  xmm1,XMMWORD[16+rcx]
-        lea     rcx,[32+rcx]
-        xorps   xmm2,xmm0
-$L$oop_dec1_14:
-DB      102,15,56,222,209
-        dec     eax
-        movups  xmm1,XMMWORD[rcx]
-        lea     rcx,[16+rcx]
-        jnz     NEAR $L$oop_dec1_14
-DB      102,15,56,223,209
-        xorps   xmm2,xmm10
-        movups  XMMWORD[rsi],xmm2
-
-$L$xts_dec_ret:
-        xorps   xmm0,xmm0
-        pxor    xmm1,xmm1
-        pxor    xmm2,xmm2
-        pxor    xmm3,xmm3
-        pxor    xmm4,xmm4
-        pxor    xmm5,xmm5
-        movaps  xmm6,XMMWORD[((-168))+r11]
-        movaps  XMMWORD[(-168)+r11],xmm0
-        movaps  xmm7,XMMWORD[((-152))+r11]
-        movaps  XMMWORD[(-152)+r11],xmm0
-        movaps  xmm8,XMMWORD[((-136))+r11]
-        movaps  XMMWORD[(-136)+r11],xmm0
-        movaps  xmm9,XMMWORD[((-120))+r11]
-        movaps  XMMWORD[(-120)+r11],xmm0
-        movaps  xmm10,XMMWORD[((-104))+r11]
-        movaps  XMMWORD[(-104)+r11],xmm0
-        movaps  xmm11,XMMWORD[((-88))+r11]
-        movaps  XMMWORD[(-88)+r11],xmm0
-        movaps  xmm12,XMMWORD[((-72))+r11]
-        movaps  XMMWORD[(-72)+r11],xmm0
-        movaps  xmm13,XMMWORD[((-56))+r11]
-        movaps  XMMWORD[(-56)+r11],xmm0
-        movaps  xmm14,XMMWORD[((-40))+r11]
-        movaps  XMMWORD[(-40)+r11],xmm0
-        movaps  xmm15,XMMWORD[((-24))+r11]
-        movaps  XMMWORD[(-24)+r11],xmm0
-        movaps  XMMWORD[rsp],xmm0
-        movaps  XMMWORD[16+rsp],xmm0
-        movaps  XMMWORD[32+rsp],xmm0
-        movaps  XMMWORD[48+rsp],xmm0
-        movaps  XMMWORD[64+rsp],xmm0
-        movaps  XMMWORD[80+rsp],xmm0
-        movaps  XMMWORD[96+rsp],xmm0
-        mov     rbp,QWORD[((-8))+r11]
-
-        lea     rsp,[r11]
-
-$L$xts_dec_epilogue:
-        mov     rdi,QWORD[8+rsp]        ;WIN64 epilogue
-        mov     rsi,QWORD[16+rsp]
-        DB      0F3h,0C3h               ;repret
-
-$L$SEH_end_aesni_xts_decrypt:
-global  aesni_ocb_encrypt
-
-ALIGN   32
-aesni_ocb_encrypt:
-        mov     QWORD[8+rsp],rdi        ;WIN64 prologue
-        mov     QWORD[16+rsp],rsi
-        mov     rax,rsp
-$L$SEH_begin_aesni_ocb_encrypt:
-        mov     rdi,rcx
-        mov     rsi,rdx
-        mov     rdx,r8
-        mov     rcx,r9
-        mov     r8,QWORD[40+rsp]
-        mov     r9,QWORD[48+rsp]
-
-
-
-        lea     rax,[rsp]
-        push    rbx
-
-        push    rbp
-
-        push    r12
-
-        push    r13
-
-        push    r14
-
-        lea     rsp,[((-160))+rsp]
-        movaps  XMMWORD[rsp],xmm6
-        movaps  XMMWORD[16+rsp],xmm7
-        movaps  XMMWORD[32+rsp],xmm8
-        movaps  XMMWORD[48+rsp],xmm9
-        movaps  XMMWORD[64+rsp],xmm10
-        movaps  XMMWORD[80+rsp],xmm11
-        movaps  XMMWORD[96+rsp],xmm12
-        movaps  XMMWORD[112+rsp],xmm13
-        movaps  XMMWORD[128+rsp],xmm14
-        movaps  XMMWORD[144+rsp],xmm15
-$L$ocb_enc_body:
-        mov     rbx,QWORD[56+rax]
-        mov     rbp,QWORD[((56+8))+rax]
-
-        mov     r10d,DWORD[240+rcx]
-        mov     r11,rcx
-        shl     r10d,4
-        movups  xmm9,XMMWORD[rcx]
-        movups  xmm1,XMMWORD[16+r10*1+rcx]
-
-        movdqu  xmm15,XMMWORD[r9]
-        pxor    xmm9,xmm1
-        pxor    xmm15,xmm1
-
-        mov     eax,16+32
-        lea     rcx,[32+r10*1+r11]
-        movups  xmm1,XMMWORD[16+r11]
-        sub     rax,r10
-        mov     r10,rax
-
-        movdqu  xmm10,XMMWORD[rbx]
-        movdqu  xmm8,XMMWORD[rbp]
-
-        test    r8,1
-        jnz     NEAR $L$ocb_enc_odd
-
-        bsf     r12,r8
-        add     r8,1
-        shl     r12,4
-        movdqu  xmm7,XMMWORD[r12*1+rbx]
-        movdqu  xmm2,XMMWORD[rdi]
-        lea     rdi,[16+rdi]
-
-        call    __ocb_encrypt1
-
-        movdqa  xmm15,xmm7
-        movups  XMMWORD[rsi],xmm2
-        lea     rsi,[16+rsi]
-        sub     rdx,1
-        jz      NEAR $L$ocb_enc_done
-
-$L$ocb_enc_odd:
-        lea     r12,[1+r8]
-        lea     r13,[3+r8]
-        lea     r14,[5+r8]
-        lea     r8,[6+r8]
-        bsf     r12,r12
-        bsf     r13,r13
-        bsf     r14,r14
-        shl     r12,4
-        shl     r13,4
-        shl     r14,4
-
-        sub     rdx,6
-        jc      NEAR $L$ocb_enc_short
-        jmp     NEAR $L$ocb_enc_grandloop
-
-ALIGN   32
-$L$ocb_enc_grandloop:
-        movdqu  xmm2,XMMWORD[rdi]
-        movdqu  xmm3,XMMWORD[16+rdi]
-        movdqu  xmm4,XMMWORD[32+rdi]
-        movdqu  xmm5,XMMWORD[48+rdi]
-        movdqu  xmm6,XMMWORD[64+rdi]
-        movdqu  xmm7,XMMWORD[80+rdi]
-        lea     rdi,[96+rdi]
-
-        call    __ocb_encrypt6
-
-        movups  XMMWORD[rsi],xmm2
-        movups  XMMWORD[16+rsi],xmm3
-        movups  XMMWORD[32+rsi],xmm4
-        movups  XMMWORD[48+rsi],xmm5
-        movups  XMMWORD[64+rsi],xmm6
-        movups  XMMWORD[80+rsi],xmm7
-        lea     rsi,[96+rsi]
-        sub     rdx,6
-        jnc     NEAR $L$ocb_enc_grandloop
-
-$L$ocb_enc_short:
-        add     rdx,6
-        jz      NEAR $L$ocb_enc_done
-
-        movdqu  xmm2,XMMWORD[rdi]
-        cmp     rdx,2
-        jb      NEAR $L$ocb_enc_one
-        movdqu  xmm3,XMMWORD[16+rdi]
-        je      NEAR $L$ocb_enc_two
-
-        movdqu  xmm4,XMMWORD[32+rdi]
-        cmp     rdx,4
-        jb      NEAR $L$ocb_enc_three
-        movdqu  xmm5,XMMWORD[48+rdi]
-        je      NEAR $L$ocb_enc_four
-
-        movdqu  xmm6,XMMWORD[64+rdi]
-        pxor    xmm7,xmm7
-
-        call    __ocb_encrypt6
-
-        movdqa  xmm15,xmm14
-        movups  XMMWORD[rsi],xmm2
-        movups  XMMWORD[16+rsi],xmm3
-        movups  XMMWORD[32+rsi],xmm4
-        movups  XMMWORD[48+rsi],xmm5
-        movups  XMMWORD[64+rsi],xmm6
-
-        jmp     NEAR $L$ocb_enc_done
-
-ALIGN   16
-$L$ocb_enc_one:
-        movdqa  xmm7,xmm10
-
-        call    __ocb_encrypt1
-
-        movdqa  xmm15,xmm7
-        movups  XMMWORD[rsi],xmm2
-        jmp     NEAR $L$ocb_enc_done
-
-ALIGN   16
-$L$ocb_enc_two:
-        pxor    xmm4,xmm4
-        pxor    xmm5,xmm5
-
-        call    __ocb_encrypt4
-
-        movdqa  xmm15,xmm11
-        movups  XMMWORD[rsi],xmm2
-        movups  XMMWORD[16+rsi],xmm3
-
-        jmp     NEAR $L$ocb_enc_done
-
-ALIGN   16
-$L$ocb_enc_three:
-        pxor    xmm5,xmm5
-
-        call    __ocb_encrypt4
-
-        movdqa  xmm15,xmm12
-        movups  XMMWORD[rsi],xmm2
-        movups  XMMWORD[16+rsi],xmm3
-        movups  XMMWORD[32+rsi],xmm4
-
-        jmp     NEAR $L$ocb_enc_done
-
-ALIGN   16
-$L$ocb_enc_four:
-        call    __ocb_encrypt4
-
-        movdqa  xmm15,xmm13
-        movups  XMMWORD[rsi],xmm2
-        movups  XMMWORD[16+rsi],xmm3
-        movups  XMMWORD[32+rsi],xmm4
-        movups  XMMWORD[48+rsi],xmm5
-
-$L$ocb_enc_done:
-        pxor    xmm15,xmm0
-        movdqu  XMMWORD[rbp],xmm8
-        movdqu  XMMWORD[r9],xmm15
-
-        xorps   xmm0,xmm0
-        pxor    xmm1,xmm1
-        pxor    xmm2,xmm2
-        pxor    xmm3,xmm3
-        pxor    xmm4,xmm4
-        pxor    xmm5,xmm5
-        movaps  xmm6,XMMWORD[rsp]
-        movaps  XMMWORD[rsp],xmm0
-        movaps  xmm7,XMMWORD[16+rsp]
-        movaps  XMMWORD[16+rsp],xmm0
-        movaps  xmm8,XMMWORD[32+rsp]
-        movaps  XMMWORD[32+rsp],xmm0
-        movaps  xmm9,XMMWORD[48+rsp]
-        movaps  XMMWORD[48+rsp],xmm0
-        movaps  xmm10,XMMWORD[64+rsp]
-        movaps  XMMWORD[64+rsp],xmm0
-        movaps  xmm11,XMMWORD[80+rsp]
-        movaps  XMMWORD[80+rsp],xmm0
-        movaps  xmm12,XMMWORD[96+rsp]
-        movaps  XMMWORD[96+rsp],xmm0
-        movaps  xmm13,XMMWORD[112+rsp]
-        movaps  XMMWORD[112+rsp],xmm0
-        movaps  xmm14,XMMWORD[128+rsp]
-        movaps  XMMWORD[128+rsp],xmm0
-        movaps  xmm15,XMMWORD[144+rsp]
-        movaps  XMMWORD[144+rsp],xmm0
-        lea     rax,[((160+40))+rsp]
-$L$ocb_enc_pop:
-        mov     r14,QWORD[((-40))+rax]
-
-        mov     r13,QWORD[((-32))+rax]
-
-        mov     r12,QWORD[((-24))+rax]
-
-        mov     rbp,QWORD[((-16))+rax]
-
-        mov     rbx,QWORD[((-8))+rax]
-
-        lea     rsp,[rax]
-
-$L$ocb_enc_epilogue:
-        mov     rdi,QWORD[8+rsp]        ;WIN64 epilogue
-        mov     rsi,QWORD[16+rsp]
-        DB      0F3h,0C3h               ;repret
-
-$L$SEH_end_aesni_ocb_encrypt:
-
-
-ALIGN   32
-__ocb_encrypt6:
-
-        pxor    xmm15,xmm9
-        movdqu  xmm11,XMMWORD[r12*1+rbx]
-        movdqa  xmm12,xmm10
-        movdqu  xmm13,XMMWORD[r13*1+rbx]
-        movdqa  xmm14,xmm10
-        pxor    xmm10,xmm15
-        movdqu  xmm15,XMMWORD[r14*1+rbx]
-        pxor    xmm11,xmm10
-        pxor    xmm8,xmm2
-        pxor    xmm2,xmm10
-        pxor    xmm12,xmm11
-        pxor    xmm8,xmm3
-        pxor    xmm3,xmm11
-        pxor    xmm13,xmm12
-        pxor    xmm8,xmm4
-        pxor    xmm4,xmm12
-        pxor    xmm14,xmm13
-        pxor    xmm8,xmm5
-        pxor    xmm5,xmm13
-        pxor    xmm15,xmm14
-        pxor    xmm8,xmm6
-        pxor    xmm6,xmm14
-        pxor    xmm8,xmm7
-        pxor    xmm7,xmm15
-        movups  xmm0,XMMWORD[32+r11]
-
-        lea     r12,[1+r8]
-        lea     r13,[3+r8]
-        lea     r14,[5+r8]
-        add     r8,6
-        pxor    xmm10,xmm9
-        bsf     r12,r12
-        bsf     r13,r13
-        bsf     r14,r14
-
-DB      102,15,56,220,209
-DB      102,15,56,220,217
-DB      102,15,56,220,225
-DB      102,15,56,220,233
-        pxor    xmm11,xmm9
-        pxor    xmm12,xmm9
-DB      102,15,56,220,241
-        pxor    xmm13,xmm9
-        pxor    xmm14,xmm9
-DB      102,15,56,220,249
-        movups  xmm1,XMMWORD[48+r11]
-        pxor    xmm15,xmm9
-
-DB      102,15,56,220,208
-DB      102,15,56,220,216
-DB      102,15,56,220,224
-DB      102,15,56,220,232
-DB      102,15,56,220,240
-DB      102,15,56,220,248
-        movups  xmm0,XMMWORD[64+r11]
-        shl     r12,4
-        shl     r13,4
-        jmp     NEAR $L$ocb_enc_loop6
-
-ALIGN   32
-$L$ocb_enc_loop6:
-DB      102,15,56,220,209
-DB      102,15,56,220,217
-DB      102,15,56,220,225
-DB      102,15,56,220,233
-DB      102,15,56,220,241
-DB      102,15,56,220,249
-        movups  xmm1,XMMWORD[rax*1+rcx]
-        add     rax,32
-
-DB      102,15,56,220,208
-DB      102,15,56,220,216
-DB      102,15,56,220,224
-DB      102,15,56,220,232
-DB      102,15,56,220,240
-DB      102,15,56,220,248
-        movups  xmm0,XMMWORD[((-16))+rax*1+rcx]
-        jnz     NEAR $L$ocb_enc_loop6
-
-DB      102,15,56,220,209
-DB      102,15,56,220,217
-DB      102,15,56,220,225
-DB      102,15,56,220,233
-DB      102,15,56,220,241
-DB      102,15,56,220,249
-        movups  xmm1,XMMWORD[16+r11]
-        shl     r14,4
-
-DB      102,65,15,56,221,210
-        movdqu  xmm10,XMMWORD[rbx]
-        mov     rax,r10
-DB      102,65,15,56,221,219
-DB      102,65,15,56,221,228
-DB      102,65,15,56,221,237
-DB      102,65,15,56,221,246
-DB      102,65,15,56,221,255
-        DB      0F3h,0C3h               ;repret
-
-
-
-
-ALIGN   32
-__ocb_encrypt4:
-
-        pxor    xmm15,xmm9
-        movdqu  xmm11,XMMWORD[r12*1+rbx]
-        movdqa  xmm12,xmm10
-        movdqu  xmm13,XMMWORD[r13*1+rbx]
-        pxor    xmm10,xmm15
-        pxor    xmm11,xmm10
-        pxor    xmm8,xmm2
-        pxor    xmm2,xmm10
-        pxor    xmm12,xmm11
-        pxor    xmm8,xmm3
-        pxor    xmm3,xmm11
-        pxor    xmm13,xmm12
-        pxor    xmm8,xmm4
-        pxor    xmm4,xmm12
-        pxor    xmm8,xmm5
-        pxor    xmm5,xmm13
-        movups  xmm0,XMMWORD[32+r11]
-
-        pxor    xmm10,xmm9
-        pxor    xmm11,xmm9
-        pxor    xmm12,xmm9
-        pxor    xmm13,xmm9
-
-DB      102,15,56,220,209
-DB      102,15,56,220,217
-DB      102,15,56,220,225
-DB      102,15,56,220,233
-        movups  xmm1,XMMWORD[48+r11]
-
-DB      102,15,56,220,208
-DB      102,15,56,220,216
-DB      102,15,56,220,224
-DB      102,15,56,220,232
-        movups  xmm0,XMMWORD[64+r11]
-        jmp     NEAR $L$ocb_enc_loop4
-
-ALIGN   32
-$L$ocb_enc_loop4:
-DB      102,15,56,220,209
-DB      102,15,56,220,217
-DB      102,15,56,220,225
-DB      102,15,56,220,233
-        movups  xmm1,XMMWORD[rax*1+rcx]
-        add     rax,32
-
-DB      102,15,56,220,208
-DB      102,15,56,220,216
-DB      102,15,56,220,224
-DB      102,15,56,220,232
-        movups  xmm0,XMMWORD[((-16))+rax*1+rcx]
-        jnz     NEAR $L$ocb_enc_loop4
-
-DB      102,15,56,220,209
-DB      102,15,56,220,217
-DB      102,15,56,220,225
-DB      102,15,56,220,233
-        movups  xmm1,XMMWORD[16+r11]
-        mov     rax,r10
-
-DB      102,65,15,56,221,210
-DB      102,65,15,56,221,219
-DB      102,65,15,56,221,228
-DB      102,65,15,56,221,237
-        DB      0F3h,0C3h               ;repret
-
-
-
-
-ALIGN   32
-__ocb_encrypt1:
-
-        pxor    xmm7,xmm15
-        pxor    xmm7,xmm9
-        pxor    xmm8,xmm2
-        pxor    xmm2,xmm7
-        movups  xmm0,XMMWORD[32+r11]
-
-DB      102,15,56,220,209
-        movups  xmm1,XMMWORD[48+r11]
-        pxor    xmm7,xmm9
-
-DB      102,15,56,220,208
-        movups  xmm0,XMMWORD[64+r11]
-        jmp     NEAR $L$ocb_enc_loop1
-
-ALIGN   32
-$L$ocb_enc_loop1:
-DB      102,15,56,220,209
-        movups  xmm1,XMMWORD[rax*1+rcx]
-        add     rax,32
-
-DB      102,15,56,220,208
-        movups  xmm0,XMMWORD[((-16))+rax*1+rcx]
-        jnz     NEAR $L$ocb_enc_loop1
-
-DB      102,15,56,220,209
-        movups  xmm1,XMMWORD[16+r11]
-        mov     rax,r10
-
-DB      102,15,56,221,215
-        DB      0F3h,0C3h               ;repret
-
-
-
-global  aesni_ocb_decrypt
-
-ALIGN   32
-aesni_ocb_decrypt:
-        mov     QWORD[8+rsp],rdi        ;WIN64 prologue
-        mov     QWORD[16+rsp],rsi
-        mov     rax,rsp
-$L$SEH_begin_aesni_ocb_decrypt:
-        mov     rdi,rcx
-        mov     rsi,rdx
-        mov     rdx,r8
-        mov     rcx,r9
-        mov     r8,QWORD[40+rsp]
-        mov     r9,QWORD[48+rsp]
-
-
-
-        lea     rax,[rsp]
-        push    rbx
-
-        push    rbp
-
-        push    r12
-
-        push    r13
-
-        push    r14
-
-        lea     rsp,[((-160))+rsp]
-        movaps  XMMWORD[rsp],xmm6
-        movaps  XMMWORD[16+rsp],xmm7
-        movaps  XMMWORD[32+rsp],xmm8
-        movaps  XMMWORD[48+rsp],xmm9
-        movaps  XMMWORD[64+rsp],xmm10
-        movaps  XMMWORD[80+rsp],xmm11
-        movaps  XMMWORD[96+rsp],xmm12
-        movaps  XMMWORD[112+rsp],xmm13
-        movaps  XMMWORD[128+rsp],xmm14
-        movaps  XMMWORD[144+rsp],xmm15
-$L$ocb_dec_body:
-        mov     rbx,QWORD[56+rax]
-        mov     rbp,QWORD[((56+8))+rax]
-
-        mov     r10d,DWORD[240+rcx]
-        mov     r11,rcx
-        shl     r10d,4
-        movups  xmm9,XMMWORD[rcx]
-        movups  xmm1,XMMWORD[16+r10*1+rcx]
-
-        movdqu  xmm15,XMMWORD[r9]
-        pxor    xmm9,xmm1
-        pxor    xmm15,xmm1
-
-        mov     eax,16+32
-        lea     rcx,[32+r10*1+r11]
-        movups  xmm1,XMMWORD[16+r11]
-        sub     rax,r10
-        mov     r10,rax
-
-        movdqu  xmm10,XMMWORD[rbx]
-        movdqu  xmm8,XMMWORD[rbp]
-
-        test    r8,1
-        jnz     NEAR $L$ocb_dec_odd
-
-        bsf     r12,r8
-        add     r8,1
-        shl     r12,4
-        movdqu  xmm7,XMMWORD[r12*1+rbx]
-        movdqu  xmm2,XMMWORD[rdi]
-        lea     rdi,[16+rdi]
-
-        call    __ocb_decrypt1
-
-        movdqa  xmm15,xmm7
-        movups  XMMWORD[rsi],xmm2
-        xorps   xmm8,xmm2
-        lea     rsi,[16+rsi]
-        sub     rdx,1
-        jz      NEAR $L$ocb_dec_done
-
-$L$ocb_dec_odd:
-        lea     r12,[1+r8]
-        lea     r13,[3+r8]
-        lea     r14,[5+r8]
-        lea     r8,[6+r8]
-        bsf     r12,r12
-        bsf     r13,r13
-        bsf     r14,r14
-        shl     r12,4
-        shl     r13,4
-        shl     r14,4
-
-        sub     rdx,6
-        jc      NEAR $L$ocb_dec_short
-        jmp     NEAR $L$ocb_dec_grandloop
-
-ALIGN   32
-$L$ocb_dec_grandloop:
-        movdqu  xmm2,XMMWORD[rdi]
-        movdqu  xmm3,XMMWORD[16+rdi]
-        movdqu  xmm4,XMMWORD[32+rdi]
-        movdqu  xmm5,XMMWORD[48+rdi]
-        movdqu  xmm6,XMMWORD[64+rdi]
-        movdqu  xmm7,XMMWORD[80+rdi]
-        lea     rdi,[96+rdi]
-
-        call    __ocb_decrypt6
-
-        movups  XMMWORD[rsi],xmm2
-        pxor    xmm8,xmm2
-        movups  XMMWORD[16+rsi],xmm3
-        pxor    xmm8,xmm3
-        movups  XMMWORD[32+rsi],xmm4
-        pxor    xmm8,xmm4
-        movups  XMMWORD[48+rsi],xmm5
-        pxor    xmm8,xmm5
-        movups  XMMWORD[64+rsi],xmm6
-        pxor    xmm8,xmm6
-        movups  XMMWORD[80+rsi],xmm7
-        pxor    xmm8,xmm7
-        lea     rsi,[96+rsi]
-        sub     rdx,6
-        jnc     NEAR $L$ocb_dec_grandloop
-
-$L$ocb_dec_short:
-        add     rdx,6
-        jz      NEAR $L$ocb_dec_done
-
-        movdqu  xmm2,XMMWORD[rdi]
-        cmp     rdx,2
-        jb      NEAR $L$ocb_dec_one
-        movdqu  xmm3,XMMWORD[16+rdi]
-        je      NEAR $L$ocb_dec_two
-
-        movdqu  xmm4,XMMWORD[32+rdi]
-        cmp     rdx,4
-        jb      NEAR $L$ocb_dec_three
-        movdqu  xmm5,XMMWORD[48+rdi]
-        je      NEAR $L$ocb_dec_four
-
-        movdqu  xmm6,XMMWORD[64+rdi]
-        pxor    xmm7,xmm7
-
-        call    __ocb_decrypt6
-
-        movdqa  xmm15,xmm14
-        movups  XMMWORD[rsi],xmm2
-        pxor    xmm8,xmm2
-        movups  XMMWORD[16+rsi],xmm3
-        pxor    xmm8,xmm3
-        movups  XMMWORD[32+rsi],xmm4
-        pxor    xmm8,xmm4
-        movups  XMMWORD[48+rsi],xmm5
-        pxor    xmm8,xmm5
-        movups  XMMWORD[64+rsi],xmm6
-        pxor    xmm8,xmm6
-
-        jmp     NEAR $L$ocb_dec_done
-
-ALIGN   16
-$L$ocb_dec_one:
-        movdqa  xmm7,xmm10
-
-        call    __ocb_decrypt1
-
-        movdqa  xmm15,xmm7
-        movups  XMMWORD[rsi],xmm2
-        xorps   xmm8,xmm2
-        jmp     NEAR $L$ocb_dec_done
-
-ALIGN   16
-$L$ocb_dec_two:
-        pxor    xmm4,xmm4
-        pxor    xmm5,xmm5
-
-        call    __ocb_decrypt4
-
-        movdqa  xmm15,xmm11
-        movups  XMMWORD[rsi],xmm2
-        xorps   xmm8,xmm2
-        movups  XMMWORD[16+rsi],xmm3
-        xorps   xmm8,xmm3
-
-        jmp     NEAR $L$ocb_dec_done
-
-ALIGN   16
-$L$ocb_dec_three:
-        pxor    xmm5,xmm5
-
-        call    __ocb_decrypt4
-
-        movdqa  xmm15,xmm12
-        movups  XMMWORD[rsi],xmm2
-        xorps   xmm8,xmm2
-        movups  XMMWORD[16+rsi],xmm3
-        xorps   xmm8,xmm3
-        movups  XMMWORD[32+rsi],xmm4
-        xorps   xmm8,xmm4
-
-        jmp     NEAR $L$ocb_dec_done
-
-ALIGN   16
-$L$ocb_dec_four:
-        call    __ocb_decrypt4
-
-        movdqa  xmm15,xmm13
-        movups  XMMWORD[rsi],xmm2
-        pxor    xmm8,xmm2
-        movups  XMMWORD[16+rsi],xmm3
-        pxor    xmm8,xmm3
-        movups  XMMWORD[32+rsi],xmm4
-        pxor    xmm8,xmm4
-        movups  XMMWORD[48+rsi],xmm5
-        pxor    xmm8,xmm5
-
-$L$ocb_dec_done:
-        pxor    xmm15,xmm0
-        movdqu  XMMWORD[rbp],xmm8
-        movdqu  XMMWORD[r9],xmm15
-
-        xorps   xmm0,xmm0
-        pxor    xmm1,xmm1
-        pxor    xmm2,xmm2
-        pxor    xmm3,xmm3
-        pxor    xmm4,xmm4
-        pxor    xmm5,xmm5
-        movaps  xmm6,XMMWORD[rsp]
-        movaps  XMMWORD[rsp],xmm0
-        movaps  xmm7,XMMWORD[16+rsp]
-        movaps  XMMWORD[16+rsp],xmm0
-        movaps  xmm8,XMMWORD[32+rsp]
-        movaps  XMMWORD[32+rsp],xmm0
-        movaps  xmm9,XMMWORD[48+rsp]
-        movaps  XMMWORD[48+rsp],xmm0
-        movaps  xmm10,XMMWORD[64+rsp]
-        movaps  XMMWORD[64+rsp],xmm0
-        movaps  xmm11,XMMWORD[80+rsp]
-        movaps  XMMWORD[80+rsp],xmm0
-        movaps  xmm12,XMMWORD[96+rsp]
-        movaps  XMMWORD[96+rsp],xmm0
-        movaps  xmm13,XMMWORD[112+rsp]
-        movaps  XMMWORD[112+rsp],xmm0
-        movaps  xmm14,XMMWORD[128+rsp]
-        movaps  XMMWORD[128+rsp],xmm0
-        movaps  xmm15,XMMWORD[144+rsp]
-        movaps  XMMWORD[144+rsp],xmm0
-        lea     rax,[((160+40))+rsp]
-$L$ocb_dec_pop:
-        mov     r14,QWORD[((-40))+rax]
-
-        mov     r13,QWORD[((-32))+rax]
-
-        mov     r12,QWORD[((-24))+rax]
-
-        mov     rbp,QWORD[((-16))+rax]
-
-        mov     rbx,QWORD[((-8))+rax]
-
-        lea     rsp,[rax]
-
-$L$ocb_dec_epilogue:
-        mov     rdi,QWORD[8+rsp]        ;WIN64 epilogue
-        mov     rsi,QWORD[16+rsp]
-        DB      0F3h,0C3h               ;repret
-
-$L$SEH_end_aesni_ocb_decrypt:
-
-
-ALIGN   32
-__ocb_decrypt6:
-
-        pxor    xmm15,xmm9
-        movdqu  xmm11,XMMWORD[r12*1+rbx]
-        movdqa  xmm12,xmm10
-        movdqu  xmm13,XMMWORD[r13*1+rbx]
-        movdqa  xmm14,xmm10
-        pxor    xmm10,xmm15
-        movdqu  xmm15,XMMWORD[r14*1+rbx]
-        pxor    xmm11,xmm10
-        pxor    xmm2,xmm10
-        pxor    xmm12,xmm11
-        pxor    xmm3,xmm11
-        pxor    xmm13,xmm12
-        pxor    xmm4,xmm12
-        pxor    xmm14,xmm13
-        pxor    xmm5,xmm13
-        pxor    xmm15,xmm14
-        pxor    xmm6,xmm14
-        pxor    xmm7,xmm15
-        movups  xmm0,XMMWORD[32+r11]
-
-        lea     r12,[1+r8]
-        lea     r13,[3+r8]
-        lea     r14,[5+r8]
-        add     r8,6
-        pxor    xmm10,xmm9
-        bsf     r12,r12
-        bsf     r13,r13
-        bsf     r14,r14
-
-DB      102,15,56,222,209
-DB      102,15,56,222,217
-DB      102,15,56,222,225
-DB      102,15,56,222,233
-        pxor    xmm11,xmm9
-        pxor    xmm12,xmm9
-DB      102,15,56,222,241
-        pxor    xmm13,xmm9
-        pxor    xmm14,xmm9
-DB      102,15,56,222,249
-        movups  xmm1,XMMWORD[48+r11]
-        pxor    xmm15,xmm9
-
-DB      102,15,56,222,208
-DB      102,15,56,222,216
-DB      102,15,56,222,224
-DB      102,15,56,222,232
-DB      102,15,56,222,240
-DB      102,15,56,222,248
-        movups  xmm0,XMMWORD[64+r11]
-        shl     r12,4
-        shl     r13,4
-        jmp     NEAR $L$ocb_dec_loop6
-
-ALIGN   32
-$L$ocb_dec_loop6:
-DB      102,15,56,222,209
-DB      102,15,56,222,217
-DB      102,15,56,222,225
-DB      102,15,56,222,233
-DB      102,15,56,222,241
-DB      102,15,56,222,249
-        movups  xmm1,XMMWORD[rax*1+rcx]
-        add     rax,32
-
-DB      102,15,56,222,208
-DB      102,15,56,222,216
-DB      102,15,56,222,224
-DB      102,15,56,222,232
-DB      102,15,56,222,240
-DB      102,15,56,222,248
-        movups  xmm0,XMMWORD[((-16))+rax*1+rcx]
-        jnz     NEAR $L$ocb_dec_loop6
-
-DB      102,15,56,222,209
-DB      102,15,56,222,217
-DB      102,15,56,222,225
-DB      102,15,56,222,233
-DB      102,15,56,222,241
-DB      102,15,56,222,249
-        movups  xmm1,XMMWORD[16+r11]
-        shl     r14,4
-
-DB      102,65,15,56,223,210
-        movdqu  xmm10,XMMWORD[rbx]
-        mov     rax,r10
-DB      102,65,15,56,223,219
-DB      102,65,15,56,223,228
-DB      102,65,15,56,223,237
-DB      102,65,15,56,223,246
-DB      102,65,15,56,223,255
-        DB      0F3h,0C3h               ;repret
-
-
-
-
-ALIGN   32
-__ocb_decrypt4:
-
-        pxor    xmm15,xmm9
-        movdqu  xmm11,XMMWORD[r12*1+rbx]
-        movdqa  xmm12,xmm10
-        movdqu  xmm13,XMMWORD[r13*1+rbx]
-        pxor    xmm10,xmm15
-        pxor    xmm11,xmm10
-        pxor    xmm2,xmm10
-        pxor    xmm12,xmm11
-        pxor    xmm3,xmm11
-        pxor    xmm13,xmm12
-        pxor    xmm4,xmm12
-        pxor    xmm5,xmm13
-        movups  xmm0,XMMWORD[32+r11]
-
-        pxor    xmm10,xmm9
-        pxor    xmm11,xmm9
-        pxor    xmm12,xmm9
-        pxor    xmm13,xmm9
-
-DB      102,15,56,222,209
-DB      102,15,56,222,217
-DB      102,15,56,222,225
-DB      102,15,56,222,233
-        movups  xmm1,XMMWORD[48+r11]
-
-DB      102,15,56,222,208
-DB      102,15,56,222,216
-DB      102,15,56,222,224
-DB      102,15,56,222,232
-        movups  xmm0,XMMWORD[64+r11]
-        jmp     NEAR $L$ocb_dec_loop4
-
-ALIGN   32
-$L$ocb_dec_loop4:
-DB      102,15,56,222,209
-DB      102,15,56,222,217
-DB      102,15,56,222,225
-DB      102,15,56,222,233
-        movups  xmm1,XMMWORD[rax*1+rcx]
-        add     rax,32
-
-DB      102,15,56,222,208
-DB      102,15,56,222,216
-DB      102,15,56,222,224
-DB      102,15,56,222,232
-        movups  xmm0,XMMWORD[((-16))+rax*1+rcx]
-        jnz     NEAR $L$ocb_dec_loop4
-
-DB      102,15,56,222,209
-DB      102,15,56,222,217
-DB      102,15,56,222,225
-DB      102,15,56,222,233
-        movups  xmm1,XMMWORD[16+r11]
-        mov     rax,r10
-
-DB      102,65,15,56,223,210
-DB      102,65,15,56,223,219
-DB      102,65,15,56,223,228
-DB      102,65,15,56,223,237
-        DB      0F3h,0C3h               ;repret
-
-
-
-
-ALIGN   32
-__ocb_decrypt1:
-
-        pxor    xmm7,xmm15
-        pxor    xmm7,xmm9
-        pxor    xmm2,xmm7
-        movups  xmm0,XMMWORD[32+r11]
-
-DB      102,15,56,222,209
-        movups  xmm1,XMMWORD[48+r11]
-        pxor    xmm7,xmm9
-
-DB      102,15,56,222,208
-        movups  xmm0,XMMWORD[64+r11]
-        jmp     NEAR $L$ocb_dec_loop1
-
-ALIGN   32
-$L$ocb_dec_loop1:
-DB      102,15,56,222,209
-        movups  xmm1,XMMWORD[rax*1+rcx]
-        add     rax,32
-
-DB      102,15,56,222,208
-        movups  xmm0,XMMWORD[((-16))+rax*1+rcx]
-        jnz     NEAR $L$ocb_dec_loop1
-
-DB      102,15,56,222,209
-        movups  xmm1,XMMWORD[16+r11]
-        mov     rax,r10
-
-DB      102,15,56,223,215
-        DB      0F3h,0C3h               ;repret
-
-
-global  aesni_cbc_encrypt
-
-ALIGN   16
-aesni_cbc_encrypt:
-        mov     QWORD[8+rsp],rdi        ;WIN64 prologue
-        mov     QWORD[16+rsp],rsi
-        mov     rax,rsp
-$L$SEH_begin_aesni_cbc_encrypt:
-        mov     rdi,rcx
-        mov     rsi,rdx
-        mov     rdx,r8
-        mov     rcx,r9
-        mov     r8,QWORD[40+rsp]
-        mov     r9,QWORD[48+rsp]
-
-
-
-        test    rdx,rdx
-        jz      NEAR $L$cbc_ret
-
-        mov     r10d,DWORD[240+rcx]
-        mov     r11,rcx
-        test    r9d,r9d
-        jz      NEAR $L$cbc_decrypt
-
-        movups  xmm2,XMMWORD[r8]
-        mov     eax,r10d
-        cmp     rdx,16
-        jb      NEAR $L$cbc_enc_tail
-        sub     rdx,16
-        jmp     NEAR $L$cbc_enc_loop
-ALIGN   16
-$L$cbc_enc_loop:
-        movups  xmm3,XMMWORD[rdi]
-        lea     rdi,[16+rdi]
-
-        movups  xmm0,XMMWORD[rcx]
-        movups  xmm1,XMMWORD[16+rcx]
-        xorps   xmm3,xmm0
-        lea     rcx,[32+rcx]
-        xorps   xmm2,xmm3
-$L$oop_enc1_15:
-DB      102,15,56,220,209
-        dec     eax
-        movups  xmm1,XMMWORD[rcx]
-        lea     rcx,[16+rcx]
-        jnz     NEAR $L$oop_enc1_15
-DB      102,15,56,221,209
-        mov     eax,r10d
-        mov     rcx,r11
-        movups  XMMWORD[rsi],xmm2
-        lea     rsi,[16+rsi]
-        sub     rdx,16
-        jnc     NEAR $L$cbc_enc_loop
-        add     rdx,16
-        jnz     NEAR $L$cbc_enc_tail
-        pxor    xmm0,xmm0
-        pxor    xmm1,xmm1
-        movups  XMMWORD[r8],xmm2
-        pxor    xmm2,xmm2
-        pxor    xmm3,xmm3
-        jmp     NEAR $L$cbc_ret
-
-$L$cbc_enc_tail:
-        mov     rcx,rdx
-        xchg    rsi,rdi
-        DD      0x9066A4F3
-        mov     ecx,16
-        sub     rcx,rdx
-        xor     eax,eax
-        DD      0x9066AAF3
-        lea     rdi,[((-16))+rdi]
-        mov     eax,r10d
-        mov     rsi,rdi
-        mov     rcx,r11
-        xor     rdx,rdx
-        jmp     NEAR $L$cbc_enc_loop
-
-ALIGN   16
-$L$cbc_decrypt:
-        cmp     rdx,16
-        jne     NEAR $L$cbc_decrypt_bulk
-
-
-
-        movdqu  xmm2,XMMWORD[rdi]
-        movdqu  xmm3,XMMWORD[r8]
-        movdqa  xmm4,xmm2
-        movups  xmm0,XMMWORD[rcx]
-        movups  xmm1,XMMWORD[16+rcx]
-        lea     rcx,[32+rcx]
-        xorps   xmm2,xmm0
-$L$oop_dec1_16:
-DB      102,15,56,222,209
-        dec     r10d
-        movups  xmm1,XMMWORD[rcx]
-        lea     rcx,[16+rcx]
-        jnz     NEAR $L$oop_dec1_16
-DB      102,15,56,223,209
-        pxor    xmm0,xmm0
-        pxor    xmm1,xmm1
-        movdqu  XMMWORD[r8],xmm4
-        xorps   xmm2,xmm3
-        pxor    xmm3,xmm3
-        movups  XMMWORD[rsi],xmm2
-        pxor    xmm2,xmm2
-        jmp     NEAR $L$cbc_ret
-ALIGN   16
-$L$cbc_decrypt_bulk:
-        lea     r11,[rsp]
-
-        push    rbp
-
-        sub     rsp,176
-        and     rsp,-16
-        movaps  XMMWORD[16+rsp],xmm6
-        movaps  XMMWORD[32+rsp],xmm7
-        movaps  XMMWORD[48+rsp],xmm8
-        movaps  XMMWORD[64+rsp],xmm9
-        movaps  XMMWORD[80+rsp],xmm10
-        movaps  XMMWORD[96+rsp],xmm11
-        movaps  XMMWORD[112+rsp],xmm12
-        movaps  XMMWORD[128+rsp],xmm13
-        movaps  XMMWORD[144+rsp],xmm14
-        movaps  XMMWORD[160+rsp],xmm15
-$L$cbc_decrypt_body:
-        mov     rbp,rcx
-        movups  xmm10,XMMWORD[r8]
-        mov     eax,r10d
-        cmp     rdx,0x50
-        jbe     NEAR $L$cbc_dec_tail
-
-        movups  xmm0,XMMWORD[rcx]
-        movdqu  xmm2,XMMWORD[rdi]
-        movdqu  xmm3,XMMWORD[16+rdi]
-        movdqa  xmm11,xmm2
-        movdqu  xmm4,XMMWORD[32+rdi]
-        movdqa  xmm12,xmm3
-        movdqu  xmm5,XMMWORD[48+rdi]
-        movdqa  xmm13,xmm4
-        movdqu  xmm6,XMMWORD[64+rdi]
-        movdqa  xmm14,xmm5
-        movdqu  xmm7,XMMWORD[80+rdi]
-        movdqa  xmm15,xmm6
-        mov     r9d,DWORD[((OPENSSL_ia32cap_P+4))]
-        cmp     rdx,0x70
-        jbe     NEAR $L$cbc_dec_six_or_seven
-
-        and     r9d,71303168
-        sub     rdx,0x50
-        cmp     r9d,4194304
-        je      NEAR $L$cbc_dec_loop6_enter
-        sub     rdx,0x20
-        lea     rcx,[112+rcx]
-        jmp     NEAR $L$cbc_dec_loop8_enter
-ALIGN   16
-$L$cbc_dec_loop8:
-        movups  XMMWORD[rsi],xmm9
-        lea     rsi,[16+rsi]
-$L$cbc_dec_loop8_enter:
-        movdqu  xmm8,XMMWORD[96+rdi]
-        pxor    xmm2,xmm0
-        movdqu  xmm9,XMMWORD[112+rdi]
-        pxor    xmm3,xmm0
-        movups  xmm1,XMMWORD[((16-112))+rcx]
-        pxor    xmm4,xmm0
-        mov     rbp,-1
-        cmp     rdx,0x70
-        pxor    xmm5,xmm0
-        pxor    xmm6,xmm0
-        pxor    xmm7,xmm0
-        pxor    xmm8,xmm0
-
-DB      102,15,56,222,209
-        pxor    xmm9,xmm0
-        movups  xmm0,XMMWORD[((32-112))+rcx]
-DB      102,15,56,222,217
-DB      102,15,56,222,225
-DB      102,15,56,222,233
-DB      102,15,56,222,241
-DB      102,15,56,222,249
-DB      102,68,15,56,222,193
-        adc     rbp,0
-        and     rbp,128
-DB      102,68,15,56,222,201
-        add     rbp,rdi
-        movups  xmm1,XMMWORD[((48-112))+rcx]
-DB      102,15,56,222,208
-DB      102,15,56,222,216
-DB      102,15,56,222,224
-DB      102,15,56,222,232
-DB      102,15,56,222,240
-DB      102,15,56,222,248
-DB      102,68,15,56,222,192
-DB      102,68,15,56,222,200
-        movups  xmm0,XMMWORD[((64-112))+rcx]
-        nop
-DB      102,15,56,222,209
-DB      102,15,56,222,217
-DB      102,15,56,222,225
-DB      102,15,56,222,233
-DB      102,15,56,222,241
-DB      102,15,56,222,249
-DB      102,68,15,56,222,193
-DB      102,68,15,56,222,201
-        movups  xmm1,XMMWORD[((80-112))+rcx]
-        nop
-DB      102,15,56,222,208
-DB      102,15,56,222,216
-DB      102,15,56,222,224
-DB      102,15,56,222,232
-DB      102,15,56,222,240
-DB      102,15,56,222,248
-DB      102,68,15,56,222,192
-DB      102,68,15,56,222,200
-        movups  xmm0,XMMWORD[((96-112))+rcx]
-        nop
-DB      102,15,56,222,209
-DB      102,15,56,222,217
-DB      102,15,56,222,225
-DB      102,15,56,222,233
-DB      102,15,56,222,241
-DB      102,15,56,222,249
-DB      102,68,15,56,222,193
-DB      102,68,15,56,222,201
-        movups  xmm1,XMMWORD[((112-112))+rcx]
-        nop
-DB      102,15,56,222,208
-DB      102,15,56,222,216
-DB      102,15,56,222,224
-DB      102,15,56,222,232
-DB      102,15,56,222,240
-DB      102,15,56,222,248
-DB      102,68,15,56,222,192
-DB      102,68,15,56,222,200
-        movups  xmm0,XMMWORD[((128-112))+rcx]
-        nop
-DB      102,15,56,222,209
-DB      102,15,56,222,217
-DB      102,15,56,222,225
-DB      102,15,56,222,233
-DB      102,15,56,222,241
-DB      102,15,56,222,249
-DB      102,68,15,56,222,193
-DB      102,68,15,56,222,201
-        movups  xmm1,XMMWORD[((144-112))+rcx]
-        cmp     eax,11
-DB      102,15,56,222,208
-DB      102,15,56,222,216
-DB      102,15,56,222,224
-DB      102,15,56,222,232
-DB      102,15,56,222,240
-DB      102,15,56,222,248
-DB      102,68,15,56,222,192
-DB      102,68,15,56,222,200
-        movups  xmm0,XMMWORD[((160-112))+rcx]
-        jb      NEAR $L$cbc_dec_done
-DB      102,15,56,222,209
-DB      102,15,56,222,217
-DB      102,15,56,222,225
-DB      102,15,56,222,233
-DB      102,15,56,222,241
-DB      102,15,56,222,249
-DB      102,68,15,56,222,193
-DB      102,68,15,56,222,201
-        movups  xmm1,XMMWORD[((176-112))+rcx]
-        nop
-DB      102,15,56,222,208
-DB      102,15,56,222,216
-DB      102,15,56,222,224
-DB      102,15,56,222,232
-DB      102,15,56,222,240
-DB      102,15,56,222,248
-DB      102,68,15,56,222,192
-DB      102,68,15,56,222,200
-        movups  xmm0,XMMWORD[((192-112))+rcx]
-        je      NEAR $L$cbc_dec_done
-DB      102,15,56,222,209
-DB      102,15,56,222,217
-DB      102,15,56,222,225
-DB      102,15,56,222,233
-DB      102,15,56,222,241
-DB      102,15,56,222,249
-DB      102,68,15,56,222,193
-DB      102,68,15,56,222,201
-        movups  xmm1,XMMWORD[((208-112))+rcx]
-        nop
-DB      102,15,56,222,208
-DB      102,15,56,222,216
-DB      102,15,56,222,224
-DB      102,15,56,222,232
-DB      102,15,56,222,240
-DB      102,15,56,222,248
-DB      102,68,15,56,222,192
-DB      102,68,15,56,222,200
-        movups  xmm0,XMMWORD[((224-112))+rcx]
-        jmp     NEAR $L$cbc_dec_done
-ALIGN   16
-$L$cbc_dec_done:
-DB      102,15,56,222,209
-DB      102,15,56,222,217
-        pxor    xmm10,xmm0
-        pxor    xmm11,xmm0
-DB      102,15,56,222,225
-DB      102,15,56,222,233
-        pxor    xmm12,xmm0
-        pxor    xmm13,xmm0
-DB      102,15,56,222,241
-DB      102,15,56,222,249
-        pxor    xmm14,xmm0
-        pxor    xmm15,xmm0
-DB      102,68,15,56,222,193
-DB      102,68,15,56,222,201
-        movdqu  xmm1,XMMWORD[80+rdi]
-
-DB      102,65,15,56,223,210
-        movdqu  xmm10,XMMWORD[96+rdi]
-        pxor    xmm1,xmm0
-DB      102,65,15,56,223,219
-        pxor    xmm10,xmm0
-        movdqu  xmm0,XMMWORD[112+rdi]
-DB      102,65,15,56,223,228
-        lea     rdi,[128+rdi]
-        movdqu  xmm11,XMMWORD[rbp]
-DB      102,65,15,56,223,237
-DB      102,65,15,56,223,246
-        movdqu  xmm12,XMMWORD[16+rbp]
-        movdqu  xmm13,XMMWORD[32+rbp]
-DB      102,65,15,56,223,255
-DB      102,68,15,56,223,193
-        movdqu  xmm14,XMMWORD[48+rbp]
-        movdqu  xmm15,XMMWORD[64+rbp]
-DB      102,69,15,56,223,202
-        movdqa  xmm10,xmm0
-        movdqu  xmm1,XMMWORD[80+rbp]
-        movups  xmm0,XMMWORD[((-112))+rcx]
-
-        movups  XMMWORD[rsi],xmm2
-        movdqa  xmm2,xmm11
-        movups  XMMWORD[16+rsi],xmm3
-        movdqa  xmm3,xmm12
-        movups  XMMWORD[32+rsi],xmm4
-        movdqa  xmm4,xmm13
-        movups  XMMWORD[48+rsi],xmm5
-        movdqa  xmm5,xmm14
-        movups  XMMWORD[64+rsi],xmm6
-        movdqa  xmm6,xmm15
-        movups  XMMWORD[80+rsi],xmm7
-        movdqa  xmm7,xmm1
-        movups  XMMWORD[96+rsi],xmm8
-        lea     rsi,[112+rsi]
-
-        sub     rdx,0x80
-        ja      NEAR $L$cbc_dec_loop8
-
-        movaps  xmm2,xmm9
-        lea     rcx,[((-112))+rcx]
-        add     rdx,0x70
-        jle     NEAR $L$cbc_dec_clear_tail_collected
-        movups  XMMWORD[rsi],xmm9
-        lea     rsi,[16+rsi]
-        cmp     rdx,0x50
-        jbe     NEAR $L$cbc_dec_tail
-
-        movaps  xmm2,xmm11
-$L$cbc_dec_six_or_seven:
-        cmp     rdx,0x60
-        ja      NEAR $L$cbc_dec_seven
-
-        movaps  xmm8,xmm7
-        call    _aesni_decrypt6
-        pxor    xmm2,xmm10
-        movaps  xmm10,xmm8
-        pxor    xmm3,xmm11
-        movdqu  XMMWORD[rsi],xmm2
-        pxor    xmm4,xmm12
-        movdqu  XMMWORD[16+rsi],xmm3
-        pxor    xmm3,xmm3
-        pxor    xmm5,xmm13
-        movdqu  XMMWORD[32+rsi],xmm4
-        pxor    xmm4,xmm4
-        pxor    xmm6,xmm14
-        movdqu  XMMWORD[48+rsi],xmm5
-        pxor    xmm5,xmm5
-        pxor    xmm7,xmm15
-        movdqu  XMMWORD[64+rsi],xmm6
-        pxor    xmm6,xmm6
-        lea     rsi,[80+rsi]
-        movdqa  xmm2,xmm7
-        pxor    xmm7,xmm7
-        jmp     NEAR $L$cbc_dec_tail_collected
-
-ALIGN   16
-$L$cbc_dec_seven:
-        movups  xmm8,XMMWORD[96+rdi]
-        xorps   xmm9,xmm9
-        call    _aesni_decrypt8
-        movups  xmm9,XMMWORD[80+rdi]
-        pxor    xmm2,xmm10
-        movups  xmm10,XMMWORD[96+rdi]
-        pxor    xmm3,xmm11
-        movdqu  XMMWORD[rsi],xmm2
-        pxor    xmm4,xmm12
-        movdqu  XMMWORD[16+rsi],xmm3
-        pxor    xmm3,xmm3
-        pxor    xmm5,xmm13
-        movdqu  XMMWORD[32+rsi],xmm4
-        pxor    xmm4,xmm4
-        pxor    xmm6,xmm14
-        movdqu  XMMWORD[48+rsi],xmm5
-        pxor    xmm5,xmm5
-        pxor    xmm7,xmm15
-        movdqu  XMMWORD[64+rsi],xmm6
-        pxor    xmm6,xmm6
-        pxor    xmm8,xmm9
-        movdqu  XMMWORD[80+rsi],xmm7
-        pxor    xmm7,xmm7
-        lea     rsi,[96+rsi]
-        movdqa  xmm2,xmm8
-        pxor    xmm8,xmm8
-        pxor    xmm9,xmm9
-        jmp     NEAR $L$cbc_dec_tail_collected
-
-ALIGN   16
-$L$cbc_dec_loop6:
-        movups  XMMWORD[rsi],xmm7
-        lea     rsi,[16+rsi]
-        movdqu  xmm2,XMMWORD[rdi]
-        movdqu  xmm3,XMMWORD[16+rdi]
-        movdqa  xmm11,xmm2
-        movdqu  xmm4,XMMWORD[32+rdi]
-        movdqa  xmm12,xmm3
-        movdqu  xmm5,XMMWORD[48+rdi]
-        movdqa  xmm13,xmm4
-        movdqu  xmm6,XMMWORD[64+rdi]
-        movdqa  xmm14,xmm5
-        movdqu  xmm7,XMMWORD[80+rdi]
-        movdqa  xmm15,xmm6
-$L$cbc_dec_loop6_enter:
-        lea     rdi,[96+rdi]
-        movdqa  xmm8,xmm7
-
-        call    _aesni_decrypt6
-
-        pxor    xmm2,xmm10
-        movdqa  xmm10,xmm8
-        pxor    xmm3,xmm11
-        movdqu  XMMWORD[rsi],xmm2
-        pxor    xmm4,xmm12
-        movdqu  XMMWORD[16+rsi],xmm3
-        pxor    xmm5,xmm13
-        movdqu  XMMWORD[32+rsi],xmm4
-        pxor    xmm6,xmm14
-        mov     rcx,rbp
-        movdqu  XMMWORD[48+rsi],xmm5
-        pxor    xmm7,xmm15
-        mov     eax,r10d
-        movdqu  XMMWORD[64+rsi],xmm6
-        lea     rsi,[80+rsi]
-        sub     rdx,0x60
-        ja      NEAR $L$cbc_dec_loop6
-
-        movdqa  xmm2,xmm7
-        add     rdx,0x50
-        jle     NEAR $L$cbc_dec_clear_tail_collected
-        movups  XMMWORD[rsi],xmm7
-        lea     rsi,[16+rsi]
-
-$L$cbc_dec_tail:
-        movups  xmm2,XMMWORD[rdi]
-        sub     rdx,0x10
-        jbe     NEAR $L$cbc_dec_one
-
-        movups  xmm3,XMMWORD[16+rdi]
-        movaps  xmm11,xmm2
-        sub     rdx,0x10
-        jbe     NEAR $L$cbc_dec_two
-
-        movups  xmm4,XMMWORD[32+rdi]
-        movaps  xmm12,xmm3
-        sub     rdx,0x10
-        jbe     NEAR $L$cbc_dec_three
-
-        movups  xmm5,XMMWORD[48+rdi]
-        movaps  xmm13,xmm4
-        sub     rdx,0x10
-        jbe     NEAR $L$cbc_dec_four
-
-        movups  xmm6,XMMWORD[64+rdi]
-        movaps  xmm14,xmm5
-        movaps  xmm15,xmm6
-        xorps   xmm7,xmm7
-        call    _aesni_decrypt6
-        pxor    xmm2,xmm10
-        movaps  xmm10,xmm15
-        pxor    xmm3,xmm11
-        movdqu  XMMWORD[rsi],xmm2
-        pxor    xmm4,xmm12
-        movdqu  XMMWORD[16+rsi],xmm3
-        pxor    xmm3,xmm3
-        pxor    xmm5,xmm13
-        movdqu  XMMWORD[32+rsi],xmm4
-        pxor    xmm4,xmm4
-        pxor    xmm6,xmm14
-        movdqu  XMMWORD[48+rsi],xmm5
-        pxor    xmm5,xmm5
-        lea     rsi,[64+rsi]
-        movdqa  xmm2,xmm6
-        pxor    xmm6,xmm6
-        pxor    xmm7,xmm7
-        sub     rdx,0x10
-        jmp     NEAR $L$cbc_dec_tail_collected
-
-ALIGN   16
-$L$cbc_dec_one:
-        movaps  xmm11,xmm2
-        movups  xmm0,XMMWORD[rcx]
-        movups  xmm1,XMMWORD[16+rcx]
-        lea     rcx,[32+rcx]
-        xorps   xmm2,xmm0
-$L$oop_dec1_17:
-DB      102,15,56,222,209
-        dec     eax
-        movups  xmm1,XMMWORD[rcx]
-        lea     rcx,[16+rcx]
-        jnz     NEAR $L$oop_dec1_17
-DB      102,15,56,223,209
-        xorps   xmm2,xmm10
-        movaps  xmm10,xmm11
-        jmp     NEAR $L$cbc_dec_tail_collected
-ALIGN   16
-$L$cbc_dec_two:
-        movaps  xmm12,xmm3
-        call    _aesni_decrypt2
-        pxor    xmm2,xmm10
-        movaps  xmm10,xmm12
-        pxor    xmm3,xmm11
-        movdqu  XMMWORD[rsi],xmm2
-        movdqa  xmm2,xmm3
-        pxor    xmm3,xmm3
-        lea     rsi,[16+rsi]
-        jmp     NEAR $L$cbc_dec_tail_collected
-ALIGN   16
-$L$cbc_dec_three:
-        movaps  xmm13,xmm4
-        call    _aesni_decrypt3
-        pxor    xmm2,xmm10
-        movaps  xmm10,xmm13
-        pxor    xmm3,xmm11
-        movdqu  XMMWORD[rsi],xmm2
-        pxor    xmm4,xmm12
-        movdqu  XMMWORD[16+rsi],xmm3
-        pxor    xmm3,xmm3
-        movdqa  xmm2,xmm4
-        pxor    xmm4,xmm4
-        lea     rsi,[32+rsi]
-        jmp     NEAR $L$cbc_dec_tail_collected
-ALIGN   16
-$L$cbc_dec_four:
-        movaps  xmm14,xmm5
-        call    _aesni_decrypt4
-        pxor    xmm2,xmm10
-        movaps  xmm10,xmm14
-        pxor    xmm3,xmm11
-        movdqu  XMMWORD[rsi],xmm2
-        pxor    xmm4,xmm12
-        movdqu  XMMWORD[16+rsi],xmm3
-        pxor    xmm3,xmm3
-        pxor    xmm5,xmm13
-        movdqu  XMMWORD[32+rsi],xmm4
-        pxor    xmm4,xmm4
-        movdqa  xmm2,xmm5
-        pxor    xmm5,xmm5
-        lea     rsi,[48+rsi]
-        jmp     NEAR $L$cbc_dec_tail_collected
-
-ALIGN   16
-$L$cbc_dec_clear_tail_collected:
-        pxor    xmm3,xmm3
-        pxor    xmm4,xmm4
-        pxor    xmm5,xmm5
-$L$cbc_dec_tail_collected:
-        movups  XMMWORD[r8],xmm10
-        and     rdx,15
-        jnz     NEAR $L$cbc_dec_tail_partial
-        movups  XMMWORD[rsi],xmm2
-        pxor    xmm2,xmm2
-        jmp     NEAR $L$cbc_dec_ret
-ALIGN   16
-$L$cbc_dec_tail_partial:
-        movaps  XMMWORD[rsp],xmm2
-        pxor    xmm2,xmm2
-        mov     rcx,16
-        mov     rdi,rsi
-        sub     rcx,rdx
-        lea     rsi,[rsp]
-        DD      0x9066A4F3
-        movdqa  XMMWORD[rsp],xmm2
-
-$L$cbc_dec_ret:
-        xorps   xmm0,xmm0
-        pxor    xmm1,xmm1
-        movaps  xmm6,XMMWORD[16+rsp]
-        movaps  XMMWORD[16+rsp],xmm0
-        movaps  xmm7,XMMWORD[32+rsp]
-        movaps  XMMWORD[32+rsp],xmm0
-        movaps  xmm8,XMMWORD[48+rsp]
-        movaps  XMMWORD[48+rsp],xmm0
-        movaps  xmm9,XMMWORD[64+rsp]
-        movaps  XMMWORD[64+rsp],xmm0
-        movaps  xmm10,XMMWORD[80+rsp]
-        movaps  XMMWORD[80+rsp],xmm0
-        movaps  xmm11,XMMWORD[96+rsp]
-        movaps  XMMWORD[96+rsp],xmm0
-        movaps  xmm12,XMMWORD[112+rsp]
-        movaps  XMMWORD[112+rsp],xmm0
-        movaps  xmm13,XMMWORD[128+rsp]
-        movaps  XMMWORD[128+rsp],xmm0
-        movaps  xmm14,XMMWORD[144+rsp]
-        movaps  XMMWORD[144+rsp],xmm0
-        movaps  xmm15,XMMWORD[160+rsp]
-        movaps  XMMWORD[160+rsp],xmm0
-        mov     rbp,QWORD[((-8))+r11]
-
-        lea     rsp,[r11]
-
-$L$cbc_ret:
-        mov     rdi,QWORD[8+rsp]        ;WIN64 epilogue
-        mov     rsi,QWORD[16+rsp]
-        DB      0F3h,0C3h               ;repret
-
-$L$SEH_end_aesni_cbc_encrypt:
-global  aesni_set_decrypt_key
-
-ALIGN   16
-aesni_set_decrypt_key:
-
-DB      0x48,0x83,0xEC,0x08
-
-        call    __aesni_set_encrypt_key
-        shl     edx,4
-        test    eax,eax
-        jnz     NEAR $L$dec_key_ret
-        lea     rcx,[16+rdx*1+r8]
-
-        movups  xmm0,XMMWORD[r8]
-        movups  xmm1,XMMWORD[rcx]
-        movups  XMMWORD[rcx],xmm0
-        movups  XMMWORD[r8],xmm1
-        lea     r8,[16+r8]
-        lea     rcx,[((-16))+rcx]
-
-$L$dec_key_inverse:
-        movups  xmm0,XMMWORD[r8]
-        movups  xmm1,XMMWORD[rcx]
-DB      102,15,56,219,192
-DB      102,15,56,219,201
-        lea     r8,[16+r8]
-        lea     rcx,[((-16))+rcx]
-        movups  XMMWORD[16+rcx],xmm0
-        movups  XMMWORD[(-16)+r8],xmm1
-        cmp     rcx,r8
-        ja      NEAR $L$dec_key_inverse
-
-        movups  xmm0,XMMWORD[r8]
-DB      102,15,56,219,192
-        pxor    xmm1,xmm1
-        movups  XMMWORD[rcx],xmm0
-        pxor    xmm0,xmm0
-$L$dec_key_ret:
-        add     rsp,8
-
-        DB      0F3h,0C3h               ;repret
-
-$L$SEH_end_set_decrypt_key:
-
-global  aesni_set_encrypt_key
-
-ALIGN   16
-aesni_set_encrypt_key:
-__aesni_set_encrypt_key:
-
-DB      0x48,0x83,0xEC,0x08
-
-        mov     rax,-1
-        test    rcx,rcx
-        jz      NEAR $L$enc_key_ret
-        test    r8,r8
-        jz      NEAR $L$enc_key_ret
-
-        mov     r10d,268437504
-        movups  xmm0,XMMWORD[rcx]
-        xorps   xmm4,xmm4
-        and     r10d,DWORD[((OPENSSL_ia32cap_P+4))]
-        lea     rax,[16+r8]
-        cmp     edx,256
-        je      NEAR $L$14rounds
-        cmp     edx,192
-        je      NEAR $L$12rounds
-        cmp     edx,128
-        jne     NEAR $L$bad_keybits
-
-$L$10rounds:
-        mov     edx,9
-        cmp     r10d,268435456
-        je      NEAR $L$10rounds_alt
-
-        movups  XMMWORD[r8],xmm0
-DB      102,15,58,223,200,1
-        call    $L$key_expansion_128_cold
-DB      102,15,58,223,200,2
-        call    $L$key_expansion_128
-DB      102,15,58,223,200,4
-        call    $L$key_expansion_128
-DB      102,15,58,223,200,8
-        call    $L$key_expansion_128
-DB      102,15,58,223,200,16
-        call    $L$key_expansion_128
-DB      102,15,58,223,200,32
-        call    $L$key_expansion_128
-DB      102,15,58,223,200,64
-        call    $L$key_expansion_128
-DB      102,15,58,223,200,128
-        call    $L$key_expansion_128
-DB      102,15,58,223,200,27
-        call    $L$key_expansion_128
-DB      102,15,58,223,200,54
-        call    $L$key_expansion_128
-        movups  XMMWORD[rax],xmm0
-        mov     DWORD[80+rax],edx
-        xor     eax,eax
-        jmp     NEAR $L$enc_key_ret
-
-ALIGN   16
-$L$10rounds_alt:
-        movdqa  xmm5,XMMWORD[$L$key_rotate]
-        mov     r10d,8
-        movdqa  xmm4,XMMWORD[$L$key_rcon1]
-        movdqa  xmm2,xmm0
-        movdqu  XMMWORD[r8],xmm0
-        jmp     NEAR $L$oop_key128
-
-ALIGN   16
-$L$oop_key128:
-DB      102,15,56,0,197
-DB      102,15,56,221,196
-        pslld   xmm4,1
-        lea     rax,[16+rax]
-
-        movdqa  xmm3,xmm2
-        pslldq  xmm2,4
-        pxor    xmm3,xmm2
-        pslldq  xmm2,4
-        pxor    xmm3,xmm2
-        pslldq  xmm2,4
-        pxor    xmm2,xmm3
-
-        pxor    xmm0,xmm2
-        movdqu  XMMWORD[(-16)+rax],xmm0
-        movdqa  xmm2,xmm0
-
-        dec     r10d
-        jnz     NEAR $L$oop_key128
-
-        movdqa  xmm4,XMMWORD[$L$key_rcon1b]
-
-DB      102,15,56,0,197
-DB      102,15,56,221,196
-        pslld   xmm4,1
-
-        movdqa  xmm3,xmm2
-        pslldq  xmm2,4
-        pxor    xmm3,xmm2
-        pslldq  xmm2,4
-        pxor    xmm3,xmm2
-        pslldq  xmm2,4
-        pxor    xmm2,xmm3
-
-        pxor    xmm0,xmm2
-        movdqu  XMMWORD[rax],xmm0
-
-        movdqa  xmm2,xmm0
-DB      102,15,56,0,197
-DB      102,15,56,221,196
-
-        movdqa  xmm3,xmm2
-        pslldq  xmm2,4
-        pxor    xmm3,xmm2
-        pslldq  xmm2,4
-        pxor    xmm3,xmm2
-        pslldq  xmm2,4
-        pxor    xmm2,xmm3
-
-        pxor    xmm0,xmm2
-        movdqu  XMMWORD[16+rax],xmm0
-
-        mov     DWORD[96+rax],edx
-        xor     eax,eax
-        jmp     NEAR $L$enc_key_ret
-
-ALIGN   16
-$L$12rounds:
-        movq    xmm2,QWORD[16+rcx]
-        mov     edx,11
-        cmp     r10d,268435456
-        je      NEAR $L$12rounds_alt
-
-        movups  XMMWORD[r8],xmm0
-DB      102,15,58,223,202,1
-        call    $L$key_expansion_192a_cold
-DB      102,15,58,223,202,2
-        call    $L$key_expansion_192b
-DB      102,15,58,223,202,4
-        call    $L$key_expansion_192a
-DB      102,15,58,223,202,8
-        call    $L$key_expansion_192b
-DB      102,15,58,223,202,16
-        call    $L$key_expansion_192a
-DB      102,15,58,223,202,32
-        call    $L$key_expansion_192b
-DB      102,15,58,223,202,64
-        call    $L$key_expansion_192a
-DB      102,15,58,223,202,128
-        call    $L$key_expansion_192b
-        movups  XMMWORD[rax],xmm0
-        mov     DWORD[48+rax],edx
-        xor     rax,rax
-        jmp     NEAR $L$enc_key_ret
-
-ALIGN   16
-$L$12rounds_alt:
-        movdqa  xmm5,XMMWORD[$L$key_rotate192]
-        movdqa  xmm4,XMMWORD[$L$key_rcon1]
-        mov     r10d,8
-        movdqu  XMMWORD[r8],xmm0
-        jmp     NEAR $L$oop_key192
-
-ALIGN   16
-$L$oop_key192:
-        movq    QWORD[rax],xmm2
-        movdqa  xmm1,xmm2
-DB      102,15,56,0,213
-DB      102,15,56,221,212
-        pslld   xmm4,1
-        lea     rax,[24+rax]
-
-        movdqa  xmm3,xmm0
-        pslldq  xmm0,4
-        pxor    xmm3,xmm0
-        pslldq  xmm0,4
-        pxor    xmm3,xmm0
-        pslldq  xmm0,4
-        pxor    xmm0,xmm3
-
-        pshufd  xmm3,xmm0,0xff
-        pxor    xmm3,xmm1
-        pslldq  xmm1,4
-        pxor    xmm3,xmm1
-
-        pxor    xmm0,xmm2
-        pxor    xmm2,xmm3
-        movdqu  XMMWORD[(-16)+rax],xmm0
-
-        dec     r10d
-        jnz     NEAR $L$oop_key192
-
-        mov     DWORD[32+rax],edx
-        xor     eax,eax
-        jmp     NEAR $L$enc_key_ret
-
-ALIGN   16
-$L$14rounds:
-        movups  xmm2,XMMWORD[16+rcx]
-        mov     edx,13
-        lea     rax,[16+rax]
-        cmp     r10d,268435456
-        je      NEAR $L$14rounds_alt
-
-        movups  XMMWORD[r8],xmm0
-        movups  XMMWORD[16+r8],xmm2
-DB      102,15,58,223,202,1
-        call    $L$key_expansion_256a_cold
-DB      102,15,58,223,200,1
-        call    $L$key_expansion_256b
-DB      102,15,58,223,202,2
-        call    $L$key_expansion_256a
-DB      102,15,58,223,200,2
-        call    $L$key_expansion_256b
-DB      102,15,58,223,202,4
-        call    $L$key_expansion_256a
-DB      102,15,58,223,200,4
-        call    $L$key_expansion_256b
-DB      102,15,58,223,202,8
-        call    $L$key_expansion_256a
-DB      102,15,58,223,200,8
-        call    $L$key_expansion_256b
-DB      102,15,58,223,202,16
-        call    $L$key_expansion_256a
-DB      102,15,58,223,200,16
-        call    $L$key_expansion_256b
-DB      102,15,58,223,202,32
-        call    $L$key_expansion_256a
-DB      102,15,58,223,200,32
-        call    $L$key_expansion_256b
-DB      102,15,58,223,202,64
-        call    $L$key_expansion_256a
-        movups  XMMWORD[rax],xmm0
-        mov     DWORD[16+rax],edx
-        xor     rax,rax
-        jmp     NEAR $L$enc_key_ret
-
-ALIGN   16
-$L$14rounds_alt:
-        movdqa  xmm5,XMMWORD[$L$key_rotate]
-        movdqa  xmm4,XMMWORD[$L$key_rcon1]
-        mov     r10d,7
-        movdqu  XMMWORD[r8],xmm0
-        movdqa  xmm1,xmm2
-        movdqu  XMMWORD[16+r8],xmm2
-        jmp     NEAR $L$oop_key256
-
-ALIGN   16
-$L$oop_key256:
-DB      102,15,56,0,213
-DB      102,15,56,221,212
-
-        movdqa  xmm3,xmm0
-        pslldq  xmm0,4
-        pxor    xmm3,xmm0
-        pslldq  xmm0,4
-        pxor    xmm3,xmm0
-        pslldq  xmm0,4
-        pxor    xmm0,xmm3
-        pslld   xmm4,1
-
-        pxor    xmm0,xmm2
-        movdqu  XMMWORD[rax],xmm0
-
-        dec     r10d
-        jz      NEAR $L$done_key256
-
-        pshufd  xmm2,xmm0,0xff
-        pxor    xmm3,xmm3
-DB      102,15,56,221,211
-
-        movdqa  xmm3,xmm1
-        pslldq  xmm1,4
-        pxor    xmm3,xmm1
-        pslldq  xmm1,4
-        pxor    xmm3,xmm1
-        pslldq  xmm1,4
-        pxor    xmm1,xmm3
-
-        pxor    xmm2,xmm1
-        movdqu  XMMWORD[16+rax],xmm2
-        lea     rax,[32+rax]
-        movdqa  xmm1,xmm2
-
-        jmp     NEAR $L$oop_key256
-
-$L$done_key256:
-        mov     DWORD[16+rax],edx
-        xor     eax,eax
-        jmp     NEAR $L$enc_key_ret
-
-ALIGN   16
-$L$bad_keybits:
-        mov     rax,-2
-$L$enc_key_ret:
-        pxor    xmm0,xmm0
-        pxor    xmm1,xmm1
-        pxor    xmm2,xmm2
-        pxor    xmm3,xmm3
-        pxor    xmm4,xmm4
-        pxor    xmm5,xmm5
-        add     rsp,8
-
-        DB      0F3h,0C3h               ;repret
-$L$SEH_end_set_encrypt_key:
-
-ALIGN   16
-$L$key_expansion_128:
-        movups  XMMWORD[rax],xmm0
-        lea     rax,[16+rax]
-$L$key_expansion_128_cold:
-        shufps  xmm4,xmm0,16
-        xorps   xmm0,xmm4
-        shufps  xmm4,xmm0,140
-        xorps   xmm0,xmm4
-        shufps  xmm1,xmm1,255
-        xorps   xmm0,xmm1
-        DB      0F3h,0C3h               ;repret
-
-ALIGN   16
-$L$key_expansion_192a:
-        movups  XMMWORD[rax],xmm0
-        lea     rax,[16+rax]
-$L$key_expansion_192a_cold:
-        movaps  xmm5,xmm2
-$L$key_expansion_192b_warm:
-        shufps  xmm4,xmm0,16
-        movdqa  xmm3,xmm2
-        xorps   xmm0,xmm4
-        shufps  xmm4,xmm0,140
-        pslldq  xmm3,4
-        xorps   xmm0,xmm4
-        pshufd  xmm1,xmm1,85
-        pxor    xmm2,xmm3
-        pxor    xmm0,xmm1
-        pshufd  xmm3,xmm0,255
-        pxor    xmm2,xmm3
-        DB      0F3h,0C3h               ;repret
-
-ALIGN   16
-$L$key_expansion_192b:
-        movaps  xmm3,xmm0
-        shufps  xmm5,xmm0,68
-        movups  XMMWORD[rax],xmm5
-        shufps  xmm3,xmm2,78
-        movups  XMMWORD[16+rax],xmm3
-        lea     rax,[32+rax]
-        jmp     NEAR $L$key_expansion_192b_warm
-
-ALIGN   16
-$L$key_expansion_256a:
-        movups  XMMWORD[rax],xmm2
-        lea     rax,[16+rax]
-$L$key_expansion_256a_cold:
-        shufps  xmm4,xmm0,16
-        xorps   xmm0,xmm4
-        shufps  xmm4,xmm0,140
-        xorps   xmm0,xmm4
-        shufps  xmm1,xmm1,255
-        xorps   xmm0,xmm1
-        DB      0F3h,0C3h               ;repret
-
-ALIGN   16
-$L$key_expansion_256b:
-        movups  XMMWORD[rax],xmm0
-        lea     rax,[16+rax]
-
-        shufps  xmm4,xmm2,16
-        xorps   xmm2,xmm4
-        shufps  xmm4,xmm2,140
-        xorps   xmm2,xmm4
-        shufps  xmm1,xmm1,170
-        xorps   xmm2,xmm1
-        DB      0F3h,0C3h               ;repret
-
-
-
-ALIGN   64
-$L$bswap_mask:
-DB      15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
-$L$increment32:
-        DD      6,6,6,0
-$L$increment64:
-        DD      1,0,0,0
-$L$xts_magic:
-        DD      0x87,0,1,0
-$L$increment1:
-DB      0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
-$L$key_rotate:
-        DD      0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d
-$L$key_rotate192:
-        DD      0x04070605,0x04070605,0x04070605,0x04070605
-$L$key_rcon1:
-        DD      1,1,1,1
-$L$key_rcon1b:
-        DD      0x1b,0x1b,0x1b,0x1b
-
-DB      65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69
-DB      83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83
-DB      32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115
-DB      115,108,46,111,114,103,62,0
-ALIGN   64
-EXTERN  __imp_RtlVirtualUnwind
-
-ALIGN   16
-ecb_ccm64_se_handler:
-        push    rsi
-        push    rdi
-        push    rbx
-        push    rbp
-        push    r12
-        push    r13
-        push    r14
-        push    r15
-        pushfq
-        sub     rsp,64
-
-        mov     rax,QWORD[120+r8]
-        mov     rbx,QWORD[248+r8]
-
-        mov     rsi,QWORD[8+r9]
-        mov     r11,QWORD[56+r9]
-
-        mov     r10d,DWORD[r11]
-        lea     r10,[r10*1+rsi]
-        cmp     rbx,r10
-        jb      NEAR $L$common_seh_tail
-
-        mov     rax,QWORD[152+r8]
-
-        mov     r10d,DWORD[4+r11]
-        lea     r10,[r10*1+rsi]
-        cmp     rbx,r10
-        jae     NEAR $L$common_seh_tail
-
-        lea     rsi,[rax]
-        lea     rdi,[512+r8]
-        mov     ecx,8
-        DD      0xa548f3fc
-        lea     rax,[88+rax]
-
-        jmp     NEAR $L$common_seh_tail
-
-
-
-ALIGN   16
-ctr_xts_se_handler:
-        push    rsi
-        push    rdi
-        push    rbx
-        push    rbp
-        push    r12
-        push    r13
-        push    r14
-        push    r15
-        pushfq
-        sub     rsp,64
-
-        mov     rax,QWORD[120+r8]
-        mov     rbx,QWORD[248+r8]
-
-        mov     rsi,QWORD[8+r9]
-        mov     r11,QWORD[56+r9]
-
-        mov     r10d,DWORD[r11]
-        lea     r10,[r10*1+rsi]
-        cmp     rbx,r10
-        jb      NEAR $L$common_seh_tail
-
-        mov     rax,QWORD[152+r8]
-
-        mov     r10d,DWORD[4+r11]
-        lea     r10,[r10*1+rsi]
-        cmp     rbx,r10
-        jae     NEAR $L$common_seh_tail
-
-        mov     rax,QWORD[208+r8]
-
-        lea     rsi,[((-168))+rax]
-        lea     rdi,[512+r8]
-        mov     ecx,20
-        DD      0xa548f3fc
-
-        mov     rbp,QWORD[((-8))+rax]
-        mov     QWORD[160+r8],rbp
-        jmp     NEAR $L$common_seh_tail
-
-
-
-ALIGN   16
-ocb_se_handler:
-        push    rsi
-        push    rdi
-        push    rbx
-        push    rbp
-        push    r12
-        push    r13
-        push    r14
-        push    r15
-        pushfq
-        sub     rsp,64
-
-        mov     rax,QWORD[120+r8]
-        mov     rbx,QWORD[248+r8]
-
-        mov     rsi,QWORD[8+r9]
-        mov     r11,QWORD[56+r9]
-
-        mov     r10d,DWORD[r11]
-        lea     r10,[r10*1+rsi]
-        cmp     rbx,r10
-        jb      NEAR $L$common_seh_tail
-
-        mov     r10d,DWORD[4+r11]
-        lea     r10,[r10*1+rsi]
-        cmp     rbx,r10
-        jae     NEAR $L$common_seh_tail
-
-        mov     r10d,DWORD[8+r11]
-        lea     r10,[r10*1+rsi]
-        cmp     rbx,r10
-        jae     NEAR $L$ocb_no_xmm
-
-        mov     rax,QWORD[152+r8]
-
-        lea     rsi,[rax]
-        lea     rdi,[512+r8]
-        mov     ecx,20
-        DD      0xa548f3fc
-        lea     rax,[((160+40))+rax]
-
-$L$ocb_no_xmm:
-        mov     rbx,QWORD[((-8))+rax]
-        mov     rbp,QWORD[((-16))+rax]
-        mov     r12,QWORD[((-24))+rax]
-        mov     r13,QWORD[((-32))+rax]
-        mov     r14,QWORD[((-40))+rax]
-
-        mov     QWORD[144+r8],rbx
-        mov     QWORD[160+r8],rbp
-        mov     QWORD[216+r8],r12
-        mov     QWORD[224+r8],r13
-        mov     QWORD[232+r8],r14
-
-        jmp     NEAR $L$common_seh_tail
-
-
-ALIGN   16
-cbc_se_handler:
-        push    rsi
-        push    rdi
-        push    rbx
-        push    rbp
-        push    r12
-        push    r13
-        push    r14
-        push    r15
-        pushfq
-        sub     rsp,64
-
-        mov     rax,QWORD[152+r8]
-        mov     rbx,QWORD[248+r8]
-
-        lea     r10,[$L$cbc_decrypt_bulk]
-        cmp     rbx,r10
-        jb      NEAR $L$common_seh_tail
-
-        mov     rax,QWORD[120+r8]
-
-        lea     r10,[$L$cbc_decrypt_body]
-        cmp     rbx,r10
-        jb      NEAR $L$common_seh_tail
-
-        mov     rax,QWORD[152+r8]
-
-        lea     r10,[$L$cbc_ret]
-        cmp     rbx,r10
-        jae     NEAR $L$common_seh_tail
-
-        lea     rsi,[16+rax]
-        lea     rdi,[512+r8]
-        mov     ecx,20
-        DD      0xa548f3fc
-
-        mov     rax,QWORD[208+r8]
-
-        mov     rbp,QWORD[((-8))+rax]
-        mov     QWORD[160+r8],rbp
-
-$L$common_seh_tail:
-        mov     rdi,QWORD[8+rax]
-        mov     rsi,QWORD[16+rax]
-        mov     QWORD[152+r8],rax
-        mov     QWORD[168+r8],rsi
-        mov     QWORD[176+r8],rdi
-
-        mov     rdi,QWORD[40+r9]
-        mov     rsi,r8
-        mov     ecx,154
-        DD      0xa548f3fc
-
-        mov     rsi,r9
-        xor     rcx,rcx
-        mov     rdx,QWORD[8+rsi]
-        mov     r8,QWORD[rsi]
-        mov     r9,QWORD[16+rsi]
-        mov     r10,QWORD[40+rsi]
-        lea     r11,[56+rsi]
-        lea     r12,[24+rsi]
-        mov     QWORD[32+rsp],r10
-        mov     QWORD[40+rsp],r11
-        mov     QWORD[48+rsp],r12
-        mov     QWORD[56+rsp],rcx
-        call    QWORD[__imp_RtlVirtualUnwind]
-
-        mov     eax,1
-        add     rsp,64
-        popfq
-        pop     r15
-        pop     r14
-        pop     r13
-        pop     r12
-        pop     rbp
-        pop     rbx
-        pop     rdi
-        pop     rsi
-        DB      0F3h,0C3h               ;repret
-
-
-section .pdata rdata align=4
-ALIGN   4
-        DD      $L$SEH_begin_aesni_ecb_encrypt wrt ..imagebase
-        DD      $L$SEH_end_aesni_ecb_encrypt wrt ..imagebase
-        DD      $L$SEH_info_ecb wrt ..imagebase
-
-        DD      $L$SEH_begin_aesni_ccm64_encrypt_blocks wrt ..imagebase
-        DD      $L$SEH_end_aesni_ccm64_encrypt_blocks wrt ..imagebase
-        DD      $L$SEH_info_ccm64_enc wrt ..imagebase
-
-        DD      $L$SEH_begin_aesni_ccm64_decrypt_blocks wrt ..imagebase
-        DD      $L$SEH_end_aesni_ccm64_decrypt_blocks wrt ..imagebase
-        DD      $L$SEH_info_ccm64_dec wrt ..imagebase
-
-        DD      $L$SEH_begin_aesni_ctr32_encrypt_blocks wrt ..imagebase
-        DD      $L$SEH_end_aesni_ctr32_encrypt_blocks wrt ..imagebase
-        DD      $L$SEH_info_ctr32 wrt ..imagebase
-
-        DD      $L$SEH_begin_aesni_xts_encrypt wrt ..imagebase
-        DD      $L$SEH_end_aesni_xts_encrypt wrt ..imagebase
-        DD      $L$SEH_info_xts_enc wrt ..imagebase
-
-        DD      $L$SEH_begin_aesni_xts_decrypt wrt ..imagebase
-        DD      $L$SEH_end_aesni_xts_decrypt wrt ..imagebase
-        DD      $L$SEH_info_xts_dec wrt ..imagebase
-
-        DD      $L$SEH_begin_aesni_ocb_encrypt wrt ..imagebase
-        DD      $L$SEH_end_aesni_ocb_encrypt wrt ..imagebase
-        DD      $L$SEH_info_ocb_enc wrt ..imagebase
-
-        DD      $L$SEH_begin_aesni_ocb_decrypt wrt ..imagebase
-        DD      $L$SEH_end_aesni_ocb_decrypt wrt ..imagebase
-        DD      $L$SEH_info_ocb_dec wrt ..imagebase
-        DD      $L$SEH_begin_aesni_cbc_encrypt wrt ..imagebase
-        DD      $L$SEH_end_aesni_cbc_encrypt wrt ..imagebase
-        DD      $L$SEH_info_cbc wrt ..imagebase
-
-        DD      aesni_set_decrypt_key wrt ..imagebase
-        DD      $L$SEH_end_set_decrypt_key wrt ..imagebase
-        DD      $L$SEH_info_key wrt ..imagebase
-
-        DD      aesni_set_encrypt_key wrt ..imagebase
-        DD      $L$SEH_end_set_encrypt_key wrt ..imagebase
-        DD      $L$SEH_info_key wrt ..imagebase
-section .xdata rdata align=8
-ALIGN   8
-$L$SEH_info_ecb:
-DB      9,0,0,0
-        DD      ecb_ccm64_se_handler wrt ..imagebase
-        DD      $L$ecb_enc_body wrt ..imagebase,$L$ecb_enc_ret wrt ..imagebase
-$L$SEH_info_ccm64_enc:
-DB      9,0,0,0
-        DD      ecb_ccm64_se_handler wrt ..imagebase
-        DD      $L$ccm64_enc_body wrt ..imagebase,$L$ccm64_enc_ret wrt ..imagebase
-$L$SEH_info_ccm64_dec:
-DB      9,0,0,0
-        DD      ecb_ccm64_se_handler wrt ..imagebase
-        DD      $L$ccm64_dec_body wrt ..imagebase,$L$ccm64_dec_ret wrt ..imagebase
-$L$SEH_info_ctr32:
-DB      9,0,0,0
-        DD      ctr_xts_se_handler wrt ..imagebase
-        DD      $L$ctr32_body wrt ..imagebase,$L$ctr32_epilogue wrt ..imagebase
-$L$SEH_info_xts_enc:
-DB      9,0,0,0
-        DD      ctr_xts_se_handler wrt ..imagebase
-        DD      $L$xts_enc_body wrt ..imagebase,$L$xts_enc_epilogue wrt ..imagebase
-$L$SEH_info_xts_dec:
-DB      9,0,0,0
-        DD      ctr_xts_se_handler wrt ..imagebase
-        DD      $L$xts_dec_body wrt ..imagebase,$L$xts_dec_epilogue wrt ..imagebase
-$L$SEH_info_ocb_enc:
-DB      9,0,0,0
-        DD      ocb_se_handler wrt ..imagebase
-        DD      $L$ocb_enc_body wrt ..imagebase,$L$ocb_enc_epilogue wrt ..imagebase
-        DD      $L$ocb_enc_pop wrt ..imagebase
-        DD      0
-$L$SEH_info_ocb_dec:
-DB      9,0,0,0
-        DD      ocb_se_handler wrt ..imagebase
-        DD      $L$ocb_dec_body wrt ..imagebase,$L$ocb_dec_epilogue wrt ..imagebase
-        DD      $L$ocb_dec_pop wrt ..imagebase
-        DD      0
-$L$SEH_info_cbc:
-DB      9,0,0,0
-        DD      cbc_se_handler wrt ..imagebase
-$L$SEH_info_key:
-DB      0x01,0x04,0x01,0x00
-DB      0x04,0x02,0x00,0x00
diff --git a/CryptoPkg/Library/OpensslLib/X64/crypto/aes/vpaes-x86_64.nasm b/CryptoPkg/Library/OpensslLib/X64/crypto/aes/vpaes-x86_64.nasm
deleted file mode 100644
index 1c911fa294f6..000000000000
--- a/CryptoPkg/Library/OpensslLib/X64/crypto/aes/vpaes-x86_64.nasm
+++ /dev/null
@@ -1,1173 +0,0 @@
-; WARNING: do not edit!
-; Generated from openssl/crypto/aes/asm/vpaes-x86_64.pl
-;
-; Copyright 2011-2020 The OpenSSL Project Authors. All Rights Reserved.
-;
-; Licensed under the OpenSSL license (the "License").  You may not use
-; this file except in compliance with the License.  You can obtain a copy
-; in the file LICENSE in the source distribution or at
-; https://www.openssl.org/source/license.html
-
-default rel
-%define XMMWORD
-%define YMMWORD
-%define ZMMWORD
-section .text code align=64
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-ALIGN   16
-_vpaes_encrypt_core:
-
-        mov     r9,rdx
-        mov     r11,16
-        mov     eax,DWORD[240+rdx]
-        movdqa  xmm1,xmm9
-        movdqa  xmm2,XMMWORD[$L$k_ipt]
-        pandn   xmm1,xmm0
-        movdqu  xmm5,XMMWORD[r9]
-        psrld   xmm1,4
-        pand    xmm0,xmm9
-DB      102,15,56,0,208
-        movdqa  xmm0,XMMWORD[(($L$k_ipt+16))]
-DB      102,15,56,0,193
-        pxor    xmm2,xmm5
-        add     r9,16
-        pxor    xmm0,xmm2
-        lea     r10,[$L$k_mc_backward]
-        jmp     NEAR $L$enc_entry
-
-ALIGN   16
-$L$enc_loop:
-
-        movdqa  xmm4,xmm13
-        movdqa  xmm0,xmm12
-DB      102,15,56,0,226
-DB      102,15,56,0,195
-        pxor    xmm4,xmm5
-        movdqa  xmm5,xmm15
-        pxor    xmm0,xmm4
-        movdqa  xmm1,XMMWORD[((-64))+r10*1+r11]
-DB      102,15,56,0,234
-        movdqa  xmm4,XMMWORD[r10*1+r11]
-        movdqa  xmm2,xmm14
-DB      102,15,56,0,211
-        movdqa  xmm3,xmm0
-        pxor    xmm2,xmm5
-DB      102,15,56,0,193
-        add     r9,16
-        pxor    xmm0,xmm2
-DB      102,15,56,0,220
-        add     r11,16
-        pxor    xmm3,xmm0
-DB      102,15,56,0,193
-        and     r11,0x30
-        sub     rax,1
-        pxor    xmm0,xmm3
-
-$L$enc_entry:
-
-        movdqa  xmm1,xmm9
-        movdqa  xmm5,xmm11
-        pandn   xmm1,xmm0
-        psrld   xmm1,4
-        pand    xmm0,xmm9
-DB      102,15,56,0,232
-        movdqa  xmm3,xmm10
-        pxor    xmm0,xmm1
-DB      102,15,56,0,217
-        movdqa  xmm4,xmm10
-        pxor    xmm3,xmm5
-DB      102,15,56,0,224
-        movdqa  xmm2,xmm10
-        pxor    xmm4,xmm5
-DB      102,15,56,0,211
-        movdqa  xmm3,xmm10
-        pxor    xmm2,xmm0
-DB      102,15,56,0,220
-        movdqu  xmm5,XMMWORD[r9]
-        pxor    xmm3,xmm1
-        jnz     NEAR $L$enc_loop
-
-
-        movdqa  xmm4,XMMWORD[((-96))+r10]
-        movdqa  xmm0,XMMWORD[((-80))+r10]
-DB      102,15,56,0,226
-        pxor    xmm4,xmm5
-DB      102,15,56,0,195
-        movdqa  xmm1,XMMWORD[64+r10*1+r11]
-        pxor    xmm0,xmm4
-DB      102,15,56,0,193
-        DB      0F3h,0C3h               ;repret
-
-
-
-
-
-
-
-
-
-ALIGN   16
-_vpaes_decrypt_core:
-
-        mov     r9,rdx
-        mov     eax,DWORD[240+rdx]
-        movdqa  xmm1,xmm9
-        movdqa  xmm2,XMMWORD[$L$k_dipt]
-        pandn   xmm1,xmm0
-        mov     r11,rax
-        psrld   xmm1,4
-        movdqu  xmm5,XMMWORD[r9]
-        shl     r11,4
-        pand    xmm0,xmm9
-DB      102,15,56,0,208
-        movdqa  xmm0,XMMWORD[(($L$k_dipt+16))]
-        xor     r11,0x30
-        lea     r10,[$L$k_dsbd]
-DB      102,15,56,0,193
-        and     r11,0x30
-        pxor    xmm2,xmm5
-        movdqa  xmm5,XMMWORD[(($L$k_mc_forward+48))]
-        pxor    xmm0,xmm2
-        add     r9,16
-        add     r11,r10
-        jmp     NEAR $L$dec_entry
-
-ALIGN   16
-$L$dec_loop:
-
-
-
-        movdqa  xmm4,XMMWORD[((-32))+r10]
-        movdqa  xmm1,XMMWORD[((-16))+r10]
-DB      102,15,56,0,226
-DB      102,15,56,0,203
-        pxor    xmm0,xmm4
-        movdqa  xmm4,XMMWORD[r10]
-        pxor    xmm0,xmm1
-        movdqa  xmm1,XMMWORD[16+r10]
-
-DB      102,15,56,0,226
-DB      102,15,56,0,197
-DB      102,15,56,0,203
-        pxor    xmm0,xmm4
-        movdqa  xmm4,XMMWORD[32+r10]
-        pxor    xmm0,xmm1
-        movdqa  xmm1,XMMWORD[48+r10]
-
-DB      102,15,56,0,226
-DB      102,15,56,0,197
-DB      102,15,56,0,203
-        pxor    xmm0,xmm4
-        movdqa  xmm4,XMMWORD[64+r10]
-        pxor    xmm0,xmm1
-        movdqa  xmm1,XMMWORD[80+r10]
-
-DB      102,15,56,0,226
-DB      102,15,56,0,197
-DB      102,15,56,0,203
-        pxor    xmm0,xmm4
-        add     r9,16
-DB      102,15,58,15,237,12
-        pxor    xmm0,xmm1
-        sub     rax,1
-
-$L$dec_entry:
-
-        movdqa  xmm1,xmm9
-        pandn   xmm1,xmm0
-        movdqa  xmm2,xmm11
-        psrld   xmm1,4
-        pand    xmm0,xmm9
-DB      102,15,56,0,208
-        movdqa  xmm3,xmm10
-        pxor    xmm0,xmm1
-DB      102,15,56,0,217
-        movdqa  xmm4,xmm10
-        pxor    xmm3,xmm2
-DB      102,15,56,0,224
-        pxor    xmm4,xmm2
-        movdqa  xmm2,xmm10
-DB      102,15,56,0,211
-        movdqa  xmm3,xmm10
-        pxor    xmm2,xmm0
-DB      102,15,56,0,220
-        movdqu  xmm0,XMMWORD[r9]
-        pxor    xmm3,xmm1
-        jnz     NEAR $L$dec_loop
-
-
-        movdqa  xmm4,XMMWORD[96+r10]
-DB      102,15,56,0,226
-        pxor    xmm4,xmm0
-        movdqa  xmm0,XMMWORD[112+r10]
-        movdqa  xmm2,XMMWORD[((-352))+r11]
-DB      102,15,56,0,195
-        pxor    xmm0,xmm4
-DB      102,15,56,0,194
-        DB      0F3h,0C3h               ;repret
-
-
-
-
-
-
-
-
-
-ALIGN   16
-_vpaes_schedule_core:
-
-
-
-
-
-
-        call    _vpaes_preheat
-        movdqa  xmm8,XMMWORD[$L$k_rcon]
-        movdqu  xmm0,XMMWORD[rdi]
-
-
-        movdqa  xmm3,xmm0
-        lea     r11,[$L$k_ipt]
-        call    _vpaes_schedule_transform
-        movdqa  xmm7,xmm0
-
-        lea     r10,[$L$k_sr]
-        test    rcx,rcx
-        jnz     NEAR $L$schedule_am_decrypting
-
-
-        movdqu  XMMWORD[rdx],xmm0
-        jmp     NEAR $L$schedule_go
-
-$L$schedule_am_decrypting:
-
-        movdqa  xmm1,XMMWORD[r10*1+r8]
-DB      102,15,56,0,217
-        movdqu  XMMWORD[rdx],xmm3
-        xor     r8,0x30
-
-$L$schedule_go:
-        cmp     esi,192
-        ja      NEAR $L$schedule_256
-        je      NEAR $L$schedule_192
-
-
-
-
-
-
-
-
-
-
-$L$schedule_128:
-        mov     esi,10
-
-$L$oop_schedule_128:
-        call    _vpaes_schedule_round
-        dec     rsi
-        jz      NEAR $L$schedule_mangle_last
-        call    _vpaes_schedule_mangle
-        jmp     NEAR $L$oop_schedule_128
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-ALIGN   16
-$L$schedule_192:
-        movdqu  xmm0,XMMWORD[8+rdi]
-        call    _vpaes_schedule_transform
-        movdqa  xmm6,xmm0
-        pxor    xmm4,xmm4
-        movhlps xmm6,xmm4
-        mov     esi,4
-
-$L$oop_schedule_192:
-        call    _vpaes_schedule_round
-DB      102,15,58,15,198,8
-        call    _vpaes_schedule_mangle
-        call    _vpaes_schedule_192_smear
-        call    _vpaes_schedule_mangle
-        call    _vpaes_schedule_round
-        dec     rsi
-        jz      NEAR $L$schedule_mangle_last
-        call    _vpaes_schedule_mangle
-        call    _vpaes_schedule_192_smear
-        jmp     NEAR $L$oop_schedule_192
-
-
-
-
-
-
-
-
-
-
-
-ALIGN   16
-$L$schedule_256:
-        movdqu  xmm0,XMMWORD[16+rdi]
-        call    _vpaes_schedule_transform
-        mov     esi,7
-
-$L$oop_schedule_256:
-        call    _vpaes_schedule_mangle
-        movdqa  xmm6,xmm0
-
-
-        call    _vpaes_schedule_round
-        dec     rsi
-        jz      NEAR $L$schedule_mangle_last
-        call    _vpaes_schedule_mangle
-
-
-        pshufd  xmm0,xmm0,0xFF
-        movdqa  xmm5,xmm7
-        movdqa  xmm7,xmm6
-        call    _vpaes_schedule_low_round
-        movdqa  xmm7,xmm5
-
-        jmp     NEAR $L$oop_schedule_256
-
-
-
-
-
-
-
-
-
-
-
-
-ALIGN   16
-$L$schedule_mangle_last:
-
-        lea     r11,[$L$k_deskew]
-        test    rcx,rcx
-        jnz     NEAR $L$schedule_mangle_last_dec
-
-
-        movdqa  xmm1,XMMWORD[r10*1+r8]
-DB      102,15,56,0,193
-        lea     r11,[$L$k_opt]
-        add     rdx,32
-
-$L$schedule_mangle_last_dec:
-        add     rdx,-16
-        pxor    xmm0,XMMWORD[$L$k_s63]
-        call    _vpaes_schedule_transform
-        movdqu  XMMWORD[rdx],xmm0
-
-
-        pxor    xmm0,xmm0
-        pxor    xmm1,xmm1
-        pxor    xmm2,xmm2
-        pxor    xmm3,xmm3
-        pxor    xmm4,xmm4
-        pxor    xmm5,xmm5
-        pxor    xmm6,xmm6
-        pxor    xmm7,xmm7
-        DB      0F3h,0C3h               ;repret
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-ALIGN   16
-_vpaes_schedule_192_smear:
-
-        pshufd  xmm1,xmm6,0x80
-        pshufd  xmm0,xmm7,0xFE
-        pxor    xmm6,xmm1
-        pxor    xmm1,xmm1
-        pxor    xmm6,xmm0
-        movdqa  xmm0,xmm6
-        movhlps xmm6,xmm1
-        DB      0F3h,0C3h               ;repret
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-ALIGN   16
-_vpaes_schedule_round:
-
-
-        pxor    xmm1,xmm1
-DB      102,65,15,58,15,200,15
-DB      102,69,15,58,15,192,15
-        pxor    xmm7,xmm1
-
-
-        pshufd  xmm0,xmm0,0xFF
-DB      102,15,58,15,192,1
-
-
-
-
-_vpaes_schedule_low_round:
-
-        movdqa  xmm1,xmm7
-        pslldq  xmm7,4
-        pxor    xmm7,xmm1
-        movdqa  xmm1,xmm7
-        pslldq  xmm7,8
-        pxor    xmm7,xmm1
-        pxor    xmm7,XMMWORD[$L$k_s63]
-
-
-        movdqa  xmm1,xmm9
-        pandn   xmm1,xmm0
-        psrld   xmm1,4
-        pand    xmm0,xmm9
-        movdqa  xmm2,xmm11
-DB      102,15,56,0,208
-        pxor    xmm0,xmm1
-        movdqa  xmm3,xmm10
-DB      102,15,56,0,217
-        pxor    xmm3,xmm2
-        movdqa  xmm4,xmm10
-DB      102,15,56,0,224
-        pxor    xmm4,xmm2
-        movdqa  xmm2,xmm10
-DB      102,15,56,0,211
-        pxor    xmm2,xmm0
-        movdqa  xmm3,xmm10
-DB      102,15,56,0,220
-        pxor    xmm3,xmm1
-        movdqa  xmm4,xmm13
-DB      102,15,56,0,226
-        movdqa  xmm0,xmm12
-DB      102,15,56,0,195
-        pxor    xmm0,xmm4
-
-
-        pxor    xmm0,xmm7
-        movdqa  xmm7,xmm0
-        DB      0F3h,0C3h               ;repret
-
-
-
-
-
-
-
-
-
-
-
-
-
-ALIGN   16
-_vpaes_schedule_transform:
-
-        movdqa  xmm1,xmm9
-        pandn   xmm1,xmm0
-        psrld   xmm1,4
-        pand    xmm0,xmm9
-        movdqa  xmm2,XMMWORD[r11]
-DB      102,15,56,0,208
-        movdqa  xmm0,XMMWORD[16+r11]
-DB      102,15,56,0,193
-        pxor    xmm0,xmm2
-        DB      0F3h,0C3h               ;repret
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-ALIGN   16
-_vpaes_schedule_mangle:
-
-        movdqa  xmm4,xmm0
-        movdqa  xmm5,XMMWORD[$L$k_mc_forward]
-        test    rcx,rcx
-        jnz     NEAR $L$schedule_mangle_dec
-
-
-        add     rdx,16
-        pxor    xmm4,XMMWORD[$L$k_s63]
-DB      102,15,56,0,229
-        movdqa  xmm3,xmm4
-DB      102,15,56,0,229
-        pxor    xmm3,xmm4
-DB      102,15,56,0,229
-        pxor    xmm3,xmm4
-
-        jmp     NEAR $L$schedule_mangle_both
-ALIGN   16
-$L$schedule_mangle_dec:
-
-        lea     r11,[$L$k_dksd]
-        movdqa  xmm1,xmm9
-        pandn   xmm1,xmm4
-        psrld   xmm1,4
-        pand    xmm4,xmm9
-
-        movdqa  xmm2,XMMWORD[r11]
-DB      102,15,56,0,212
-        movdqa  xmm3,XMMWORD[16+r11]
-DB      102,15,56,0,217
-        pxor    xmm3,xmm2
-DB      102,15,56,0,221
-
-        movdqa  xmm2,XMMWORD[32+r11]
-DB      102,15,56,0,212
-        pxor    xmm2,xmm3
-        movdqa  xmm3,XMMWORD[48+r11]
-DB      102,15,56,0,217
-        pxor    xmm3,xmm2
-DB      102,15,56,0,221
-
-        movdqa  xmm2,XMMWORD[64+r11]
-DB      102,15,56,0,212
-        pxor    xmm2,xmm3
-        movdqa  xmm3,XMMWORD[80+r11]
-DB      102,15,56,0,217
-        pxor    xmm3,xmm2
-DB      102,15,56,0,221
-
-        movdqa  xmm2,XMMWORD[96+r11]
-DB      102,15,56,0,212
-        pxor    xmm2,xmm3
-        movdqa  xmm3,XMMWORD[112+r11]
-DB      102,15,56,0,217
-        pxor    xmm3,xmm2
-
-        add     rdx,-16
-
-$L$schedule_mangle_both:
-        movdqa  xmm1,XMMWORD[r10*1+r8]
-DB      102,15,56,0,217
-        add     r8,-16
-        and     r8,0x30
-        movdqu  XMMWORD[rdx],xmm3
-        DB      0F3h,0C3h               ;repret
-
-
-
-
-
-
-global  vpaes_set_encrypt_key
-
-ALIGN   16
-vpaes_set_encrypt_key:
-        mov     QWORD[8+rsp],rdi        ;WIN64 prologue
-        mov     QWORD[16+rsp],rsi
-        mov     rax,rsp
-$L$SEH_begin_vpaes_set_encrypt_key:
-        mov     rdi,rcx
-        mov     rsi,rdx
-        mov     rdx,r8
-
-
-
-        lea     rsp,[((-184))+rsp]
-        movaps  XMMWORD[16+rsp],xmm6
-        movaps  XMMWORD[32+rsp],xmm7
-        movaps  XMMWORD[48+rsp],xmm8
-        movaps  XMMWORD[64+rsp],xmm9
-        movaps  XMMWORD[80+rsp],xmm10
-        movaps  XMMWORD[96+rsp],xmm11
-        movaps  XMMWORD[112+rsp],xmm12
-        movaps  XMMWORD[128+rsp],xmm13
-        movaps  XMMWORD[144+rsp],xmm14
-        movaps  XMMWORD[160+rsp],xmm15
-$L$enc_key_body:
-        mov     eax,esi
-        shr     eax,5
-        add     eax,5
-        mov     DWORD[240+rdx],eax
-
-        mov     ecx,0
-        mov     r8d,0x30
-        call    _vpaes_schedule_core
-        movaps  xmm6,XMMWORD[16+rsp]
-        movaps  xmm7,XMMWORD[32+rsp]
-        movaps  xmm8,XMMWORD[48+rsp]
-        movaps  xmm9,XMMWORD[64+rsp]
-        movaps  xmm10,XMMWORD[80+rsp]
-        movaps  xmm11,XMMWORD[96+rsp]
-        movaps  xmm12,XMMWORD[112+rsp]
-        movaps  xmm13,XMMWORD[128+rsp]
-        movaps  xmm14,XMMWORD[144+rsp]
-        movaps  xmm15,XMMWORD[160+rsp]
-        lea     rsp,[184+rsp]
-$L$enc_key_epilogue:
-        xor     eax,eax
-        mov     rdi,QWORD[8+rsp]        ;WIN64 epilogue
-        mov     rsi,QWORD[16+rsp]
-        DB      0F3h,0C3h               ;repret
-
-$L$SEH_end_vpaes_set_encrypt_key:
-
-global  vpaes_set_decrypt_key
-
-ALIGN   16
-vpaes_set_decrypt_key:
-        mov     QWORD[8+rsp],rdi        ;WIN64 prologue
-        mov     QWORD[16+rsp],rsi
-        mov     rax,rsp
-$L$SEH_begin_vpaes_set_decrypt_key:
-        mov     rdi,rcx
-        mov     rsi,rdx
-        mov     rdx,r8
-
-
-
-        lea     rsp,[((-184))+rsp]
-        movaps  XMMWORD[16+rsp],xmm6
-        movaps  XMMWORD[32+rsp],xmm7
-        movaps  XMMWORD[48+rsp],xmm8
-        movaps  XMMWORD[64+rsp],xmm9
-        movaps  XMMWORD[80+rsp],xmm10
-        movaps  XMMWORD[96+rsp],xmm11
-        movaps  XMMWORD[112+rsp],xmm12
-        movaps  XMMWORD[128+rsp],xmm13
-        movaps  XMMWORD[144+rsp],xmm14
-        movaps  XMMWORD[160+rsp],xmm15
-$L$dec_key_body:
-        mov     eax,esi
-        shr     eax,5
-        add     eax,5
-        mov     DWORD[240+rdx],eax
-        shl     eax,4
-        lea     rdx,[16+rax*1+rdx]
-
-        mov     ecx,1
-        mov     r8d,esi
-        shr     r8d,1
-        and     r8d,32
-        xor     r8d,32
-        call    _vpaes_schedule_core
-        movaps  xmm6,XMMWORD[16+rsp]
-        movaps  xmm7,XMMWORD[32+rsp]
-        movaps  xmm8,XMMWORD[48+rsp]
-        movaps  xmm9,XMMWORD[64+rsp]
-        movaps  xmm10,XMMWORD[80+rsp]
-        movaps  xmm11,XMMWORD[96+rsp]
-        movaps  xmm12,XMMWORD[112+rsp]
-        movaps  xmm13,XMMWORD[128+rsp]
-        movaps  xmm14,XMMWORD[144+rsp]
-        movaps  xmm15,XMMWORD[160+rsp]
-        lea     rsp,[184+rsp]
-$L$dec_key_epilogue:
-        xor     eax,eax
-        mov     rdi,QWORD[8+rsp]        ;WIN64 epilogue
-        mov     rsi,QWORD[16+rsp]
-        DB      0F3h,0C3h               ;repret
-
-$L$SEH_end_vpaes_set_decrypt_key:
-
-global  vpaes_encrypt
-
-ALIGN   16
-vpaes_encrypt:
-        mov     QWORD[8+rsp],rdi        ;WIN64 prologue
-        mov     QWORD[16+rsp],rsi
-        mov     rax,rsp
-$L$SEH_begin_vpaes_encrypt:
-        mov     rdi,rcx
-        mov     rsi,rdx
-        mov     rdx,r8
-
-
-
-        lea     rsp,[((-184))+rsp]
-        movaps  XMMWORD[16+rsp],xmm6
-        movaps  XMMWORD[32+rsp],xmm7
-        movaps  XMMWORD[48+rsp],xmm8
-        movaps  XMMWORD[64+rsp],xmm9
-        movaps  XMMWORD[80+rsp],xmm10
-        movaps  XMMWORD[96+rsp],xmm11
-        movaps  XMMWORD[112+rsp],xmm12
-        movaps  XMMWORD[128+rsp],xmm13
-        movaps  XMMWORD[144+rsp],xmm14
-        movaps  XMMWORD[160+rsp],xmm15
-$L$enc_body:
-        movdqu  xmm0,XMMWORD[rdi]
-        call    _vpaes_preheat
-        call    _vpaes_encrypt_core
-        movdqu  XMMWORD[rsi],xmm0
-        movaps  xmm6,XMMWORD[16+rsp]
-        movaps  xmm7,XMMWORD[32+rsp]
-        movaps  xmm8,XMMWORD[48+rsp]
-        movaps  xmm9,XMMWORD[64+rsp]
-        movaps  xmm10,XMMWORD[80+rsp]
-        movaps  xmm11,XMMWORD[96+rsp]
-        movaps  xmm12,XMMWORD[112+rsp]
-        movaps  xmm13,XMMWORD[128+rsp]
-        movaps  xmm14,XMMWORD[144+rsp]
-        movaps  xmm15,XMMWORD[160+rsp]
-        lea     rsp,[184+rsp]
-$L$enc_epilogue:
-        mov     rdi,QWORD[8+rsp]        ;WIN64 epilogue
-        mov     rsi,QWORD[16+rsp]
-        DB      0F3h,0C3h               ;repret
-
-$L$SEH_end_vpaes_encrypt:
-
-global  vpaes_decrypt
-
-ALIGN   16
-vpaes_decrypt:
-        mov     QWORD[8+rsp],rdi        ;WIN64 prologue
-        mov     QWORD[16+rsp],rsi
-        mov     rax,rsp
-$L$SEH_begin_vpaes_decrypt:
-        mov     rdi,rcx
-        mov     rsi,rdx
-        mov     rdx,r8
-
-
-
-        lea     rsp,[((-184))+rsp]
-        movaps  XMMWORD[16+rsp],xmm6
-        movaps  XMMWORD[32+rsp],xmm7
-        movaps  XMMWORD[48+rsp],xmm8
-        movaps  XMMWORD[64+rsp],xmm9
-        movaps  XMMWORD[80+rsp],xmm10
-        movaps  XMMWORD[96+rsp],xmm11
-        movaps  XMMWORD[112+rsp],xmm12
-        movaps  XMMWORD[128+rsp],xmm13
-        movaps  XMMWORD[144+rsp],xmm14
-        movaps  XMMWORD[160+rsp],xmm15
-$L$dec_body:
-        movdqu  xmm0,XMMWORD[rdi]
-        call    _vpaes_preheat
-        call    _vpaes_decrypt_core
-        movdqu  XMMWORD[rsi],xmm0
-        movaps  xmm6,XMMWORD[16+rsp]
-        movaps  xmm7,XMMWORD[32+rsp]
-        movaps  xmm8,XMMWORD[48+rsp]
-        movaps  xmm9,XMMWORD[64+rsp]
-        movaps  xmm10,XMMWORD[80+rsp]
-        movaps  xmm11,XMMWORD[96+rsp]
-        movaps  xmm12,XMMWORD[112+rsp]
-        movaps  xmm13,XMMWORD[128+rsp]
-        movaps  xmm14,XMMWORD[144+rsp]
-        movaps  xmm15,XMMWORD[160+rsp]
-        lea     rsp,[184+rsp]
-$L$dec_epilogue:
-        mov     rdi,QWORD[8+rsp]        ;WIN64 epilogue
-        mov     rsi,QWORD[16+rsp]
-        DB      0F3h,0C3h               ;repret
-
-$L$SEH_end_vpaes_decrypt:
-global  vpaes_cbc_encrypt
-
-ALIGN   16
-vpaes_cbc_encrypt:
-        mov     QWORD[8+rsp],rdi        ;WIN64 prologue
-        mov     QWORD[16+rsp],rsi
-        mov     rax,rsp
-$L$SEH_begin_vpaes_cbc_encrypt:
-        mov     rdi,rcx
-        mov     rsi,rdx
-        mov     rdx,r8
-        mov     rcx,r9
-        mov     r8,QWORD[40+rsp]
-        mov     r9,QWORD[48+rsp]
-
-
-
-        xchg    rdx,rcx
-        sub     rcx,16
-        jc      NEAR $L$cbc_abort
-        lea     rsp,[((-184))+rsp]
-        movaps  XMMWORD[16+rsp],xmm6
-        movaps  XMMWORD[32+rsp],xmm7
-        movaps  XMMWORD[48+rsp],xmm8
-        movaps  XMMWORD[64+rsp],xmm9
-        movaps  XMMWORD[80+rsp],xmm10
-        movaps  XMMWORD[96+rsp],xmm11
-        movaps  XMMWORD[112+rsp],xmm12
-        movaps  XMMWORD[128+rsp],xmm13
-        movaps  XMMWORD[144+rsp],xmm14
-        movaps  XMMWORD[160+rsp],xmm15
-$L$cbc_body:
-        movdqu  xmm6,XMMWORD[r8]
-        sub     rsi,rdi
-        call    _vpaes_preheat
-        cmp     r9d,0
-        je      NEAR $L$cbc_dec_loop
-        jmp     NEAR $L$cbc_enc_loop
-ALIGN   16
-$L$cbc_enc_loop:
-        movdqu  xmm0,XMMWORD[rdi]
-        pxor    xmm0,xmm6
-        call    _vpaes_encrypt_core
-        movdqa  xmm6,xmm0
-        movdqu  XMMWORD[rdi*1+rsi],xmm0
-        lea     rdi,[16+rdi]
-        sub     rcx,16
-        jnc     NEAR $L$cbc_enc_loop
-        jmp     NEAR $L$cbc_done
-ALIGN   16
-$L$cbc_dec_loop:
-        movdqu  xmm0,XMMWORD[rdi]
-        movdqa  xmm7,xmm0
-        call    _vpaes_decrypt_core
-        pxor    xmm0,xmm6
-        movdqa  xmm6,xmm7
-        movdqu  XMMWORD[rdi*1+rsi],xmm0
-        lea     rdi,[16+rdi]
-        sub     rcx,16
-        jnc     NEAR $L$cbc_dec_loop
-$L$cbc_done:
-        movdqu  XMMWORD[r8],xmm6
-        movaps  xmm6,XMMWORD[16+rsp]
-        movaps  xmm7,XMMWORD[32+rsp]
-        movaps  xmm8,XMMWORD[48+rsp]
-        movaps  xmm9,XMMWORD[64+rsp]
-        movaps  xmm10,XMMWORD[80+rsp]
-        movaps  xmm11,XMMWORD[96+rsp]
-        movaps  xmm12,XMMWORD[112+rsp]
-        movaps  xmm13,XMMWORD[128+rsp]
-        movaps  xmm14,XMMWORD[144+rsp]
-        movaps  xmm15,XMMWORD[160+rsp]
-        lea     rsp,[184+rsp]
-$L$cbc_epilogue:
-$L$cbc_abort:
-        mov     rdi,QWORD[8+rsp]        ;WIN64 epilogue
-        mov     rsi,QWORD[16+rsp]
-        DB      0F3h,0C3h               ;repret
-
-$L$SEH_end_vpaes_cbc_encrypt:
-
-
-
-
-
-
-
-ALIGN   16
-_vpaes_preheat:
-
-        lea     r10,[$L$k_s0F]
-        movdqa  xmm10,XMMWORD[((-32))+r10]
-        movdqa  xmm11,XMMWORD[((-16))+r10]
-        movdqa  xmm9,XMMWORD[r10]
-        movdqa  xmm13,XMMWORD[48+r10]
-        movdqa  xmm12,XMMWORD[64+r10]
-        movdqa  xmm15,XMMWORD[80+r10]
-        movdqa  xmm14,XMMWORD[96+r10]
-        DB      0F3h,0C3h               ;repret
-
-
-
-
-
-
-
-
-ALIGN   64
-_vpaes_consts:
-$L$k_inv:
-        DQ      0x0E05060F0D080180,0x040703090A0B0C02
-        DQ      0x01040A060F0B0780,0x030D0E0C02050809
-
-$L$k_s0F:
-        DQ      0x0F0F0F0F0F0F0F0F,0x0F0F0F0F0F0F0F0F
-
-$L$k_ipt:
-        DQ      0xC2B2E8985A2A7000,0xCABAE09052227808
-        DQ      0x4C01307D317C4D00,0xCD80B1FCB0FDCC81
-
-$L$k_sb1:
-        DQ      0xB19BE18FCB503E00,0xA5DF7A6E142AF544
-        DQ      0x3618D415FAE22300,0x3BF7CCC10D2ED9EF
-$L$k_sb2:
-        DQ      0xE27A93C60B712400,0x5EB7E955BC982FCD
-        DQ      0x69EB88400AE12900,0xC2A163C8AB82234A
-$L$k_sbo:
-        DQ      0xD0D26D176FBDC700,0x15AABF7AC502A878
-        DQ      0xCFE474A55FBB6A00,0x8E1E90D1412B35FA
-
-$L$k_mc_forward:
-        DQ      0x0407060500030201,0x0C0F0E0D080B0A09
-        DQ      0x080B0A0904070605,0x000302010C0F0E0D
-        DQ      0x0C0F0E0D080B0A09,0x0407060500030201
-        DQ      0x000302010C0F0E0D,0x080B0A0904070605
-
-$L$k_mc_backward:
-        DQ      0x0605040702010003,0x0E0D0C0F0A09080B
-        DQ      0x020100030E0D0C0F,0x0A09080B06050407
-        DQ      0x0E0D0C0F0A09080B,0x0605040702010003
-        DQ      0x0A09080B06050407,0x020100030E0D0C0F
-
-$L$k_sr:
-        DQ      0x0706050403020100,0x0F0E0D0C0B0A0908
-        DQ      0x030E09040F0A0500,0x0B06010C07020D08
-        DQ      0x0F060D040B020900,0x070E050C030A0108
-        DQ      0x0B0E0104070A0D00,0x0306090C0F020508
-
-$L$k_rcon:
-        DQ      0x1F8391B9AF9DEEB6,0x702A98084D7C7D81
-
-$L$k_s63:
-        DQ      0x5B5B5B5B5B5B5B5B,0x5B5B5B5B5B5B5B5B
-
-$L$k_opt:
-        DQ      0xFF9F4929D6B66000,0xF7974121DEBE6808
-        DQ      0x01EDBD5150BCEC00,0xE10D5DB1B05C0CE0
-
-$L$k_deskew:
-        DQ      0x07E4A34047A4E300,0x1DFEB95A5DBEF91A
-        DQ      0x5F36B5DC83EA6900,0x2841C2ABF49D1E77
-
-
-
-
-
-$L$k_dksd:
-        DQ      0xFEB91A5DA3E44700,0x0740E3A45A1DBEF9
-        DQ      0x41C277F4B5368300,0x5FDC69EAAB289D1E
-$L$k_dksb:
-        DQ      0x9A4FCA1F8550D500,0x03D653861CC94C99
-        DQ      0x115BEDA7B6FC4A00,0xD993256F7E3482C8
-$L$k_dkse:
-        DQ      0xD5031CCA1FC9D600,0x53859A4C994F5086
-        DQ      0xA23196054FDC7BE8,0xCD5EF96A20B31487
-$L$k_dks9:
-        DQ      0xB6116FC87ED9A700,0x4AED933482255BFC
-        DQ      0x4576516227143300,0x8BB89FACE9DAFDCE
-
-
-
-
-
-$L$k_dipt:
-        DQ      0x0F505B040B545F00,0x154A411E114E451A
-        DQ      0x86E383E660056500,0x12771772F491F194
-
-$L$k_dsb9:
-        DQ      0x851C03539A86D600,0xCAD51F504F994CC9
-        DQ      0xC03B1789ECD74900,0x725E2C9EB2FBA565
-$L$k_dsbd:
-        DQ      0x7D57CCDFE6B1A200,0xF56E9B13882A4439
-        DQ      0x3CE2FAF724C6CB00,0x2931180D15DEEFD3
-$L$k_dsbb:
-        DQ      0xD022649296B44200,0x602646F6B0F2D404
-        DQ      0xC19498A6CD596700,0xF3FF0C3E3255AA6B
-$L$k_dsbe:
-        DQ      0x46F2929626D4D000,0x2242600464B4F6B0
-        DQ      0x0C55A6CDFFAAC100,0x9467F36B98593E32
-$L$k_dsbo:
-        DQ      0x1387EA537EF94000,0xC7AA6DB9D4943E2D
-        DQ      0x12D7560F93441D00,0xCA4B8159D8C58E9C
-DB      86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105
-DB      111,110,32,65,69,83,32,102,111,114,32,120,56,54,95,54
-DB      52,47,83,83,83,69,51,44,32,77,105,107,101,32,72,97
-DB      109,98,117,114,103,32,40,83,116,97,110,102,111,114,100,32
-DB      85,110,105,118,101,114,115,105,116,121,41,0
-ALIGN   64
-
-EXTERN  __imp_RtlVirtualUnwind
-
-ALIGN   16
-se_handler:
-        push    rsi
-        push    rdi
-        push    rbx
-        push    rbp
-        push    r12
-        push    r13
-        push    r14
-        push    r15
-        pushfq
-        sub     rsp,64
-
-        mov     rax,QWORD[120+r8]
-        mov     rbx,QWORD[248+r8]
-
-        mov     rsi,QWORD[8+r9]
-        mov     r11,QWORD[56+r9]
-
-        mov     r10d,DWORD[r11]
-        lea     r10,[r10*1+rsi]
-        cmp     rbx,r10
-        jb      NEAR $L$in_prologue
-
-        mov     rax,QWORD[152+r8]
-
-        mov     r10d,DWORD[4+r11]
-        lea     r10,[r10*1+rsi]
-        cmp     rbx,r10
-        jae     NEAR $L$in_prologue
-
-        lea     rsi,[16+rax]
-        lea     rdi,[512+r8]
-        mov     ecx,20
-        DD      0xa548f3fc
-        lea     rax,[184+rax]
-
-$L$in_prologue:
-        mov     rdi,QWORD[8+rax]
-        mov     rsi,QWORD[16+rax]
-        mov     QWORD[152+r8],rax
-        mov     QWORD[168+r8],rsi
-        mov     QWORD[176+r8],rdi
-
-        mov     rdi,QWORD[40+r9]
-        mov     rsi,r8
-        mov     ecx,154
-        DD      0xa548f3fc
-
-        mov     rsi,r9
-        xor     rcx,rcx
-        mov     rdx,QWORD[8+rsi]
-        mov     r8,QWORD[rsi]
-        mov     r9,QWORD[16+rsi]
-        mov     r10,QWORD[40+rsi]
-        lea     r11,[56+rsi]
-        lea     r12,[24+rsi]
-        mov     QWORD[32+rsp],r10
-        mov     QWORD[40+rsp],r11
-        mov     QWORD[48+rsp],r12
-        mov     QWORD[56+rsp],rcx
-        call    QWORD[__imp_RtlVirtualUnwind]
-
-        mov     eax,1
-        add     rsp,64
-        popfq
-        pop     r15
-        pop     r14
-        pop     r13
-        pop     r12
-        pop     rbp
-        pop     rbx
-        pop     rdi
-        pop     rsi
-        DB      0F3h,0C3h               ;repret
-
-
-section .pdata rdata align=4
-ALIGN   4
-        DD      $L$SEH_begin_vpaes_set_encrypt_key wrt ..imagebase
-        DD      $L$SEH_end_vpaes_set_encrypt_key wrt ..imagebase
-        DD      $L$SEH_info_vpaes_set_encrypt_key wrt ..imagebase
-
-        DD      $L$SEH_begin_vpaes_set_decrypt_key wrt ..imagebase
-        DD      $L$SEH_end_vpaes_set_decrypt_key wrt ..imagebase
-        DD      $L$SEH_info_vpaes_set_decrypt_key wrt ..imagebase
-
-        DD      $L$SEH_begin_vpaes_encrypt wrt ..imagebase
-        DD      $L$SEH_end_vpaes_encrypt wrt ..imagebase
-        DD      $L$SEH_info_vpaes_encrypt wrt ..imagebase
-
-        DD      $L$SEH_begin_vpaes_decrypt wrt ..imagebase
-        DD      $L$SEH_end_vpaes_decrypt wrt ..imagebase
-        DD      $L$SEH_info_vpaes_decrypt wrt ..imagebase
-
-        DD      $L$SEH_begin_vpaes_cbc_encrypt wrt ..imagebase
-        DD      $L$SEH_end_vpaes_cbc_encrypt wrt ..imagebase
-        DD      $L$SEH_info_vpaes_cbc_encrypt wrt ..imagebase
-
-section .xdata rdata align=8
-ALIGN   8
-$L$SEH_info_vpaes_set_encrypt_key:
-DB      9,0,0,0
-        DD      se_handler wrt ..imagebase
-        DD      $L$enc_key_body wrt ..imagebase,$L$enc_key_epilogue wrt ..imagebase
-$L$SEH_info_vpaes_set_decrypt_key:
-DB      9,0,0,0
-        DD      se_handler wrt ..imagebase
-        DD      $L$dec_key_body wrt ..imagebase,$L$dec_key_epilogue wrt ..imagebase
-$L$SEH_info_vpaes_encrypt:
-DB      9,0,0,0
-        DD      se_handler wrt ..imagebase
-        DD      $L$enc_body wrt ..imagebase,$L$enc_epilogue wrt ..imagebase
-$L$SEH_info_vpaes_decrypt:
-DB      9,0,0,0
-        DD      se_handler wrt ..imagebase
-        DD      $L$dec_body wrt ..imagebase,$L$dec_epilogue wrt ..imagebase
-$L$SEH_info_vpaes_cbc_encrypt:
-DB      9,0,0,0
-        DD      se_handler wrt ..imagebase
-        DD      $L$cbc_body wrt ..imagebase,$L$cbc_epilogue wrt ..imagebase
diff --git a/CryptoPkg/Library/OpensslLib/X64/crypto/modes/aesni-gcm-x86_64.nasm b/CryptoPkg/Library/OpensslLib/X64/crypto/modes/aesni-gcm-x86_64.nasm
deleted file mode 100644
index 9e1a2d0a4036..000000000000
--- a/CryptoPkg/Library/OpensslLib/X64/crypto/modes/aesni-gcm-x86_64.nasm
+++ /dev/null
@@ -1,34 +0,0 @@
-; WARNING: do not edit!
-; Generated from openssl/crypto/modes/asm/aesni-gcm-x86_64.pl
-;
-; Copyright 2013-2020 The OpenSSL Project Authors. All Rights Reserved.
-;
-; Licensed under the OpenSSL license (the "License").  You may not use
-; this file except in compliance with the License.  You can obtain a copy
-; in the file LICENSE in the source distribution or at
-; https://www.openssl.org/source/license.html
-
-default rel
-%define XMMWORD
-%define YMMWORD
-%define ZMMWORD
-section .text code align=64
-
-
-global  aesni_gcm_encrypt
-
-aesni_gcm_encrypt:
-
-        xor     eax,eax
-        DB      0F3h,0C3h               ;repret
-
-
-
-global  aesni_gcm_decrypt
-
-aesni_gcm_decrypt:
-
-        xor     eax,eax
-        DB      0F3h,0C3h               ;repret
-
-
diff --git a/CryptoPkg/Library/OpensslLib/X64/crypto/modes/ghash-x86_64.nasm b/CryptoPkg/Library/OpensslLib/X64/crypto/modes/ghash-x86_64.nasm
deleted file mode 100644
index 60f283d5fbfa..000000000000
--- a/CryptoPkg/Library/OpensslLib/X64/crypto/modes/ghash-x86_64.nasm
+++ /dev/null
@@ -1,1569 +0,0 @@
-; WARNING: do not edit!
-; Generated from openssl/crypto/modes/asm/ghash-x86_64.pl
-;
-; Copyright 2010-2020 The OpenSSL Project Authors. All Rights Reserved.
-;
-; Licensed under the OpenSSL license (the "License").  You may not use
-; this file except in compliance with the License.  You can obtain a copy
-; in the file LICENSE in the source distribution or at
-; https://www.openssl.org/source/license.html
-
-default rel
-%define XMMWORD
-%define YMMWORD
-%define ZMMWORD
-section .text code align=64
-
-EXTERN  OPENSSL_ia32cap_P
-
-global  gcm_gmult_4bit
-
-ALIGN   16
-gcm_gmult_4bit:
-        mov     QWORD[8+rsp],rdi        ;WIN64 prologue
-        mov     QWORD[16+rsp],rsi
-        mov     rax,rsp
-$L$SEH_begin_gcm_gmult_4bit:
-        mov     rdi,rcx
-        mov     rsi,rdx
-
-
-
-        push    rbx
-
-        push    rbp
-
-        push    r12
-
-        push    r13
-
-        push    r14
-
-        push    r15
-
-        sub     rsp,280
-
-$L$gmult_prologue:
-
-        movzx   r8,BYTE[15+rdi]
-        lea     r11,[$L$rem_4bit]
-        xor     rax,rax
-        xor     rbx,rbx
-        mov     al,r8b
-        mov     bl,r8b
-        shl     al,4
-        mov     rcx,14
-        mov     r8,QWORD[8+rax*1+rsi]
-        mov     r9,QWORD[rax*1+rsi]
-        and     bl,0xf0
-        mov     rdx,r8
-        jmp     NEAR $L$oop1
-
-ALIGN   16
-$L$oop1:
-        shr     r8,4
-        and     rdx,0xf
-        mov     r10,r9
-        mov     al,BYTE[rcx*1+rdi]
-        shr     r9,4
-        xor     r8,QWORD[8+rbx*1+rsi]
-        shl     r10,60
-        xor     r9,QWORD[rbx*1+rsi]
-        mov     bl,al
-        xor     r9,QWORD[rdx*8+r11]
-        mov     rdx,r8
-        shl     al,4
-        xor     r8,r10
-        dec     rcx
-        js      NEAR $L$break1
-
-        shr     r8,4
-        and     rdx,0xf
-        mov     r10,r9
-        shr     r9,4
-        xor     r8,QWORD[8+rax*1+rsi]
-        shl     r10,60
-        xor     r9,QWORD[rax*1+rsi]
-        and     bl,0xf0
-        xor     r9,QWORD[rdx*8+r11]
-        mov     rdx,r8
-        xor     r8,r10
-        jmp     NEAR $L$oop1
-
-ALIGN   16
-$L$break1:
-        shr     r8,4
-        and     rdx,0xf
-        mov     r10,r9
-        shr     r9,4
-        xor     r8,QWORD[8+rax*1+rsi]
-        shl     r10,60
-        xor     r9,QWORD[rax*1+rsi]
-        and     bl,0xf0
-        xor     r9,QWORD[rdx*8+r11]
-        mov     rdx,r8
-        xor     r8,r10
-
-        shr     r8,4
-        and     rdx,0xf
-        mov     r10,r9
-        shr     r9,4
-        xor     r8,QWORD[8+rbx*1+rsi]
-        shl     r10,60
-        xor     r9,QWORD[rbx*1+rsi]
-        xor     r8,r10
-        xor     r9,QWORD[rdx*8+r11]
-
-        bswap   r8
-        bswap   r9
-        mov     QWORD[8+rdi],r8
-        mov     QWORD[rdi],r9
-
-        lea     rsi,[((280+48))+rsp]
-
-        mov     rbx,QWORD[((-8))+rsi]
-
-        lea     rsp,[rsi]
-
-$L$gmult_epilogue:
-        mov     rdi,QWORD[8+rsp]        ;WIN64 epilogue
-        mov     rsi,QWORD[16+rsp]
-        DB      0F3h,0C3h               ;repret
-
-$L$SEH_end_gcm_gmult_4bit:
-global  gcm_ghash_4bit
-
-ALIGN   16
-gcm_ghash_4bit:
-        mov     QWORD[8+rsp],rdi        ;WIN64 prologue
-        mov     QWORD[16+rsp],rsi
-        mov     rax,rsp
-$L$SEH_begin_gcm_ghash_4bit:
-        mov     rdi,rcx
-        mov     rsi,rdx
-        mov     rdx,r8
-        mov     rcx,r9
-
-
-
-        push    rbx
-
-        push    rbp
-
-        push    r12
-
-        push    r13
-
-        push    r14
-
-        push    r15
-
-        sub     rsp,280
-
-$L$ghash_prologue:
-        mov     r14,rdx
-        mov     r15,rcx
-        sub     rsi,-128
-        lea     rbp,[((16+128))+rsp]
-        xor     edx,edx
-        mov     r8,QWORD[((0+0-128))+rsi]
-        mov     rax,QWORD[((0+8-128))+rsi]
-        mov     dl,al
-        shr     rax,4
-        mov     r10,r8
-        shr     r8,4
-        mov     r9,QWORD[((16+0-128))+rsi]
-        shl     dl,4
-        mov     rbx,QWORD[((16+8-128))+rsi]
-        shl     r10,60
-        mov     BYTE[rsp],dl
-        or      rax,r10
-        mov     dl,bl
-        shr     rbx,4
-        mov     r10,r9
-        shr     r9,4
-        mov     QWORD[rbp],r8
-        mov     r8,QWORD[((32+0-128))+rsi]
-        shl     dl,4
-        mov     QWORD[((0-128))+rbp],rax
-        mov     rax,QWORD[((32+8-128))+rsi]
-        shl     r10,60
-        mov     BYTE[1+rsp],dl
-        or      rbx,r10
-        mov     dl,al
-        shr     rax,4
-        mov     r10,r8
-        shr     r8,4
-        mov     QWORD[8+rbp],r9
-        mov     r9,QWORD[((48+0-128))+rsi]
-        shl     dl,4
-        mov     QWORD[((8-128))+rbp],rbx
-        mov     rbx,QWORD[((48+8-128))+rsi]
-        shl     r10,60
-        mov     BYTE[2+rsp],dl
-        or      rax,r10
-        mov     dl,bl
-        shr     rbx,4
-        mov     r10,r9
-        shr     r9,4
-        mov     QWORD[16+rbp],r8
-        mov     r8,QWORD[((64+0-128))+rsi]
-        shl     dl,4
-        mov     QWORD[((16-128))+rbp],rax
-        mov     rax,QWORD[((64+8-128))+rsi]
-        shl     r10,60
-        mov     BYTE[3+rsp],dl
-        or      rbx,r10
-        mov     dl,al
-        shr     rax,4
-        mov     r10,r8
-        shr     r8,4
-        mov     QWORD[24+rbp],r9
-        mov     r9,QWORD[((80+0-128))+rsi]
-        shl     dl,4
-        mov     QWORD[((24-128))+rbp],rbx
-        mov     rbx,QWORD[((80+8-128))+rsi]
-        shl     r10,60
-        mov     BYTE[4+rsp],dl
-        or      rax,r10
-        mov     dl,bl
-        shr     rbx,4
-        mov     r10,r9
-        shr     r9,4
-        mov     QWORD[32+rbp],r8
-        mov     r8,QWORD[((96+0-128))+rsi]
-        shl     dl,4
-        mov     QWORD[((32-128))+rbp],rax
-        mov     rax,QWORD[((96+8-128))+rsi]
-        shl     r10,60
-        mov     BYTE[5+rsp],dl
-        or      rbx,r10
-        mov     dl,al
-        shr     rax,4
-        mov     r10,r8
-        shr     r8,4
-        mov     QWORD[40+rbp],r9
-        mov     r9,QWORD[((112+0-128))+rsi]
-        shl     dl,4
-        mov     QWORD[((40-128))+rbp],rbx
-        mov     rbx,QWORD[((112+8-128))+rsi]
-        shl     r10,60
-        mov     BYTE[6+rsp],dl
-        or      rax,r10
-        mov     dl,bl
-        shr     rbx,4
-        mov     r10,r9
-        shr     r9,4
-        mov     QWORD[48+rbp],r8
-        mov     r8,QWORD[((128+0-128))+rsi]
-        shl     dl,4
-        mov     QWORD[((48-128))+rbp],rax
-        mov     rax,QWORD[((128+8-128))+rsi]
-        shl     r10,60
-        mov     BYTE[7+rsp],dl
-        or      rbx,r10
-        mov     dl,al
-        shr     rax,4
-        mov     r10,r8
-        shr     r8,4
-        mov     QWORD[56+rbp],r9
-        mov     r9,QWORD[((144+0-128))+rsi]
-        shl     dl,4
-        mov     QWORD[((56-128))+rbp],rbx
-        mov     rbx,QWORD[((144+8-128))+rsi]
-        shl     r10,60
-        mov     BYTE[8+rsp],dl
-        or      rax,r10
-        mov     dl,bl
-        shr     rbx,4
-        mov     r10,r9
-        shr     r9,4
-        mov     QWORD[64+rbp],r8
-        mov     r8,QWORD[((160+0-128))+rsi]
-        shl     dl,4
-        mov     QWORD[((64-128))+rbp],rax
-        mov     rax,QWORD[((160+8-128))+rsi]
-        shl     r10,60
-        mov     BYTE[9+rsp],dl
-        or      rbx,r10
-        mov     dl,al
-        shr     rax,4
-        mov     r10,r8
-        shr     r8,4
-        mov     QWORD[72+rbp],r9
-        mov     r9,QWORD[((176+0-128))+rsi]
-        shl     dl,4
-        mov     QWORD[((72-128))+rbp],rbx
-        mov     rbx,QWORD[((176+8-128))+rsi]
-        shl     r10,60
-        mov     BYTE[10+rsp],dl
-        or      rax,r10
-        mov     dl,bl
-        shr     rbx,4
-        mov     r10,r9
-        shr     r9,4
-        mov     QWORD[80+rbp],r8
-        mov     r8,QWORD[((192+0-128))+rsi]
-        shl     dl,4
-        mov     QWORD[((80-128))+rbp],rax
-        mov     rax,QWORD[((192+8-128))+rsi]
-        shl     r10,60
-        mov     BYTE[11+rsp],dl
-        or      rbx,r10
-        mov     dl,al
-        shr     rax,4
-        mov     r10,r8
-        shr     r8,4
-        mov     QWORD[88+rbp],r9
-        mov     r9,QWORD[((208+0-128))+rsi]
-        shl     dl,4
-        mov     QWORD[((88-128))+rbp],rbx
-        mov     rbx,QWORD[((208+8-128))+rsi]
-        shl     r10,60
-        mov     BYTE[12+rsp],dl
-        or      rax,r10
-        mov     dl,bl
-        shr     rbx,4
-        mov     r10,r9
-        shr     r9,4
-        mov     QWORD[96+rbp],r8
-        mov     r8,QWORD[((224+0-128))+rsi]
-        shl     dl,4
-        mov     QWORD[((96-128))+rbp],rax
-        mov     rax,QWORD[((224+8-128))+rsi]
-        shl     r10,60
-        mov     BYTE[13+rsp],dl
-        or      rbx,r10
-        mov     dl,al
-        shr     rax,4
-        mov     r10,r8
-        shr     r8,4
-        mov     QWORD[104+rbp],r9
-        mov     r9,QWORD[((240+0-128))+rsi]
-        shl     dl,4
-        mov     QWORD[((104-128))+rbp],rbx
-        mov     rbx,QWORD[((240+8-128))+rsi]
-        shl     r10,60
-        mov     BYTE[14+rsp],dl
-        or      rax,r10
-        mov     dl,bl
-        shr     rbx,4
-        mov     r10,r9
-        shr     r9,4
-        mov     QWORD[112+rbp],r8
-        shl     dl,4
-        mov     QWORD[((112-128))+rbp],rax
-        shl     r10,60
-        mov     BYTE[15+rsp],dl
-        or      rbx,r10
-        mov     QWORD[120+rbp],r9
-        mov     QWORD[((120-128))+rbp],rbx
-        add     rsi,-128
-        mov     r8,QWORD[8+rdi]
-        mov     r9,QWORD[rdi]
-        add     r15,r14
-        lea     r11,[$L$rem_8bit]
-        jmp     NEAR $L$outer_loop
-ALIGN   16
-$L$outer_loop:
-        xor     r9,QWORD[r14]
-        mov     rdx,QWORD[8+r14]
-        lea     r14,[16+r14]
-        xor     rdx,r8
-        mov     QWORD[rdi],r9
-        mov     QWORD[8+rdi],rdx
-        shr     rdx,32
-        xor     rax,rax
-        rol     edx,8
-        mov     al,dl
-        movzx   ebx,dl
-        shl     al,4
-        shr     ebx,4
-        rol     edx,8
-        mov     r8,QWORD[8+rax*1+rsi]
-        mov     r9,QWORD[rax*1+rsi]
-        mov     al,dl
-        movzx   ecx,dl
-        shl     al,4
-        movzx   r12,BYTE[rbx*1+rsp]
-        shr     ecx,4
-        xor     r12,r8
-        mov     r10,r9
-        shr     r8,8
-        movzx   r12,r12b
-        shr     r9,8
-        xor     r8,QWORD[((-128))+rbx*8+rbp]
-        shl     r10,56
-        xor     r9,QWORD[rbx*8+rbp]
-        rol     edx,8
-        xor     r8,QWORD[8+rax*1+rsi]
-        xor     r9,QWORD[rax*1+rsi]
-        mov     al,dl
-        xor     r8,r10
-        movzx   r12,WORD[r12*2+r11]
-        movzx   ebx,dl
-        shl     al,4
-        movzx   r13,BYTE[rcx*1+rsp]
-        shr     ebx,4
-        shl     r12,48
-        xor     r13,r8
-        mov     r10,r9
-        xor     r9,r12
-        shr     r8,8
-        movzx   r13,r13b
-        shr     r9,8
-        xor     r8,QWORD[((-128))+rcx*8+rbp]
-        shl     r10,56
-        xor     r9,QWORD[rcx*8+rbp]
-        rol     edx,8
-        xor     r8,QWORD[8+rax*1+rsi]
-        xor     r9,QWORD[rax*1+rsi]
-        mov     al,dl
-        xor     r8,r10
-        movzx   r13,WORD[r13*2+r11]
-        movzx   ecx,dl
-        shl     al,4
-        movzx   r12,BYTE[rbx*1+rsp]
-        shr     ecx,4
-        shl     r13,48
-        xor     r12,r8
-        mov     r10,r9
-        xor     r9,r13
-        shr     r8,8
-        movzx   r12,r12b
-        mov     edx,DWORD[8+rdi]
-        shr     r9,8
-        xor     r8,QWORD[((-128))+rbx*8+rbp]
-        shl     r10,56
-        xor     r9,QWORD[rbx*8+rbp]
-        rol     edx,8
-        xor     r8,QWORD[8+rax*1+rsi]
-        xor     r9,QWORD[rax*1+rsi]
-        mov     al,dl
-        xor     r8,r10
-        movzx   r12,WORD[r12*2+r11]
-        movzx   ebx,dl
-        shl     al,4
-        movzx   r13,BYTE[rcx*1+rsp]
-        shr     ebx,4
-        shl     r12,48
-        xor     r13,r8
-        mov     r10,r9
-        xor     r9,r12
-        shr     r8,8
-        movzx   r13,r13b
-        shr     r9,8
-        xor     r8,QWORD[((-128))+rcx*8+rbp]
-        shl     r10,56
-        xor     r9,QWORD[rcx*8+rbp]
-        rol     edx,8
-        xor     r8,QWORD[8+rax*1+rsi]
-        xor     r9,QWORD[rax*1+rsi]
-        mov     al,dl
-        xor     r8,r10
-        movzx   r13,WORD[r13*2+r11]
-        movzx   ecx,dl
-        shl     al,4
-        movzx   r12,BYTE[rbx*1+rsp]
-        shr     ecx,4
-        shl     r13,48
-        xor     r12,r8
-        mov     r10,r9
-        xor     r9,r13
-        shr     r8,8
-        movzx   r12,r12b
-        shr     r9,8
-        xor     r8,QWORD[((-128))+rbx*8+rbp]
-        shl     r10,56
-        xor     r9,QWORD[rbx*8+rbp]
-        rol     edx,8
-        xor     r8,QWORD[8+rax*1+rsi]
-        xor     r9,QWORD[rax*1+rsi]
-        mov     al,dl
-        xor     r8,r10
-        movzx   r12,WORD[r12*2+r11]
-        movzx   ebx,dl
-        shl     al,4
-        movzx   r13,BYTE[rcx*1+rsp]
-        shr     ebx,4
-        shl     r12,48
-        xor     r13,r8
-        mov     r10,r9
-        xor     r9,r12
-        shr     r8,8
-        movzx   r13,r13b
-        shr     r9,8
-        xor     r8,QWORD[((-128))+rcx*8+rbp]
-        shl     r10,56
-        xor     r9,QWORD[rcx*8+rbp]
-        rol     edx,8
-        xor     r8,QWORD[8+rax*1+rsi]
-        xor     r9,QWORD[rax*1+rsi]
-        mov     al,dl
-        xor     r8,r10
-        movzx   r13,WORD[r13*2+r11]
-        movzx   ecx,dl
-        shl     al,4
-        movzx   r12,BYTE[rbx*1+rsp]
-        shr     ecx,4
-        shl     r13,48
-        xor     r12,r8
-        mov     r10,r9
-        xor     r9,r13
-        shr     r8,8
-        movzx   r12,r12b
-        mov     edx,DWORD[4+rdi]
-        shr     r9,8
-        xor     r8,QWORD[((-128))+rbx*8+rbp]
-        shl     r10,56
-        xor     r9,QWORD[rbx*8+rbp]
-        rol     edx,8
-        xor     r8,QWORD[8+rax*1+rsi]
-        xor     r9,QWORD[rax*1+rsi]
-        mov     al,dl
-        xor     r8,r10
-        movzx   r12,WORD[r12*2+r11]
-        movzx   ebx,dl
-        shl     al,4
-        movzx   r13,BYTE[rcx*1+rsp]
-        shr     ebx,4
-        shl     r12,48
-        xor     r13,r8
-        mov     r10,r9
-        xor     r9,r12
-        shr     r8,8
-        movzx   r13,r13b
-        shr     r9,8
-        xor     r8,QWORD[((-128))+rcx*8+rbp]
-        shl     r10,56
-        xor     r9,QWORD[rcx*8+rbp]
-        rol     edx,8
-        xor     r8,QWORD[8+rax*1+rsi]
-        xor     r9,QWORD[rax*1+rsi]
-        mov     al,dl
-        xor     r8,r10
-        movzx   r13,WORD[r13*2+r11]
-        movzx   ecx,dl
-        shl     al,4
-        movzx   r12,BYTE[rbx*1+rsp]
-        shr     ecx,4
-        shl     r13,48
-        xor     r12,r8
-        mov     r10,r9
-        xor     r9,r13
-        shr     r8,8
-        movzx   r12,r12b
-        shr     r9,8
-        xor     r8,QWORD[((-128))+rbx*8+rbp]
-        shl     r10,56
-        xor     r9,QWORD[rbx*8+rbp]
-        rol     edx,8
-        xor     r8,QWORD[8+rax*1+rsi]
-        xor     r9,QWORD[rax*1+rsi]
-        mov     al,dl
-        xor     r8,r10
-        movzx   r12,WORD[r12*2+r11]
-        movzx   ebx,dl
-        shl     al,4
-        movzx   r13,BYTE[rcx*1+rsp]
-        shr     ebx,4
-        shl     r12,48
-        xor     r13,r8
-        mov     r10,r9
-        xor     r9,r12
-        shr     r8,8
-        movzx   r13,r13b
-        shr     r9,8
-        xor     r8,QWORD[((-128))+rcx*8+rbp]
-        shl     r10,56
-        xor     r9,QWORD[rcx*8+rbp]
-        rol     edx,8
-        xor     r8,QWORD[8+rax*1+rsi]
-        xor     r9,QWORD[rax*1+rsi]
-        mov     al,dl
-        xor     r8,r10
-        movzx   r13,WORD[r13*2+r11]
-        movzx   ecx,dl
-        shl     al,4
-        movzx   r12,BYTE[rbx*1+rsp]
-        shr     ecx,4
-        shl     r13,48
-        xor     r12,r8
-        mov     r10,r9
-        xor     r9,r13
-        shr     r8,8
-        movzx   r12,r12b
-        mov     edx,DWORD[rdi]
-        shr     r9,8
-        xor     r8,QWORD[((-128))+rbx*8+rbp]
-        shl     r10,56
-        xor     r9,QWORD[rbx*8+rbp]
-        rol     edx,8
-        xor     r8,QWORD[8+rax*1+rsi]
-        xor     r9,QWORD[rax*1+rsi]
-        mov     al,dl
-        xor     r8,r10
-        movzx   r12,WORD[r12*2+r11]
-        movzx   ebx,dl
-        shl     al,4
-        movzx   r13,BYTE[rcx*1+rsp]
-        shr     ebx,4
-        shl     r12,48
-        xor     r13,r8
-        mov     r10,r9
-        xor     r9,r12
-        shr     r8,8
-        movzx   r13,r13b
-        shr     r9,8
-        xor     r8,QWORD[((-128))+rcx*8+rbp]
-        shl     r10,56
-        xor     r9,QWORD[rcx*8+rbp]
-        rol     edx,8
-        xor     r8,QWORD[8+rax*1+rsi]
-        xor     r9,QWORD[rax*1+rsi]
-        mov     al,dl
-        xor     r8,r10
-        movzx   r13,WORD[r13*2+r11]
-        movzx   ecx,dl
-        shl     al,4
-        movzx   r12,BYTE[rbx*1+rsp]
-        shr     ecx,4
-        shl     r13,48
-        xor     r12,r8
-        mov     r10,r9
-        xor     r9,r13
-        shr     r8,8
-        movzx   r12,r12b
-        shr     r9,8
-        xor     r8,QWORD[((-128))+rbx*8+rbp]
-        shl     r10,56
-        xor     r9,QWORD[rbx*8+rbp]
-        rol     edx,8
-        xor     r8,QWORD[8+rax*1+rsi]
-        xor     r9,QWORD[rax*1+rsi]
-        mov     al,dl
-        xor     r8,r10
-        movzx   r12,WORD[r12*2+r11]
-        movzx   ebx,dl
-        shl     al,4
-        movzx   r13,BYTE[rcx*1+rsp]
-        shr     ebx,4
-        shl     r12,48
-        xor     r13,r8
-        mov     r10,r9
-        xor     r9,r12
-        shr     r8,8
-        movzx   r13,r13b
-        shr     r9,8
-        xor     r8,QWORD[((-128))+rcx*8+rbp]
-        shl     r10,56
-        xor     r9,QWORD[rcx*8+rbp]
-        rol     edx,8
-        xor     r8,QWORD[8+rax*1+rsi]
-        xor     r9,QWORD[rax*1+rsi]
-        mov     al,dl
-        xor     r8,r10
-        movzx   r13,WORD[r13*2+r11]
-        movzx   ecx,dl
-        shl     al,4
-        movzx   r12,BYTE[rbx*1+rsp]
-        and     ecx,240
-        shl     r13,48
-        xor     r12,r8
-        mov     r10,r9
-        xor     r9,r13
-        shr     r8,8
-        movzx   r12,r12b
-        mov     edx,DWORD[((-4))+rdi]
-        shr     r9,8
-        xor     r8,QWORD[((-128))+rbx*8+rbp]
-        shl     r10,56
-        xor     r9,QWORD[rbx*8+rbp]
-        movzx   r12,WORD[r12*2+r11]
-        xor     r8,QWORD[8+rax*1+rsi]
-        xor     r9,QWORD[rax*1+rsi]
-        shl     r12,48
-        xor     r8,r10
-        xor     r9,r12
-        movzx   r13,r8b
-        shr     r8,4
-        mov     r10,r9
-        shl     r13b,4
-        shr     r9,4
-        xor     r8,QWORD[8+rcx*1+rsi]
-        movzx   r13,WORD[r13*2+r11]
-        shl     r10,60
-        xor     r9,QWORD[rcx*1+rsi]
-        xor     r8,r10
-        shl     r13,48
-        bswap   r8
-        xor     r9,r13
-        bswap   r9
-        cmp     r14,r15
-        jb      NEAR $L$outer_loop
-        mov     QWORD[8+rdi],r8
-        mov     QWORD[rdi],r9
-
-        lea     rsi,[((280+48))+rsp]
-
-        mov     r15,QWORD[((-48))+rsi]
-
-        mov     r14,QWORD[((-40))+rsi]
-
-        mov     r13,QWORD[((-32))+rsi]
-
-        mov     r12,QWORD[((-24))+rsi]
-
-        mov     rbp,QWORD[((-16))+rsi]
-
-        mov     rbx,QWORD[((-8))+rsi]
-
-        lea     rsp,[rsi]
-
-$L$ghash_epilogue:
-        mov     rdi,QWORD[8+rsp]        ;WIN64 epilogue
-        mov     rsi,QWORD[16+rsp]
-        DB      0F3h,0C3h               ;repret
-
-$L$SEH_end_gcm_ghash_4bit:
-global  gcm_init_clmul
-
-ALIGN   16
-gcm_init_clmul:
-
-$L$_init_clmul:
-$L$SEH_begin_gcm_init_clmul:
-
-DB      0x48,0x83,0xec,0x18
-DB      0x0f,0x29,0x34,0x24
-        movdqu  xmm2,XMMWORD[rdx]
-        pshufd  xmm2,xmm2,78
-
-
-        pshufd  xmm4,xmm2,255
-        movdqa  xmm3,xmm2
-        psllq   xmm2,1
-        pxor    xmm5,xmm5
-        psrlq   xmm3,63
-        pcmpgtd xmm5,xmm4
-        pslldq  xmm3,8
-        por     xmm2,xmm3
-
-
-        pand    xmm5,XMMWORD[$L$0x1c2_polynomial]
-        pxor    xmm2,xmm5
-
-
-        pshufd  xmm6,xmm2,78
-        movdqa  xmm0,xmm2
-        pxor    xmm6,xmm2
-        movdqa  xmm1,xmm0
-        pshufd  xmm3,xmm0,78
-        pxor    xmm3,xmm0
-DB      102,15,58,68,194,0
-DB      102,15,58,68,202,17
-DB      102,15,58,68,222,0
-        pxor    xmm3,xmm0
-        pxor    xmm3,xmm1
-
-        movdqa  xmm4,xmm3
-        psrldq  xmm3,8
-        pslldq  xmm4,8
-        pxor    xmm1,xmm3
-        pxor    xmm0,xmm4
-
-        movdqa  xmm4,xmm0
-        movdqa  xmm3,xmm0
-        psllq   xmm0,5
-        pxor    xmm3,xmm0
-        psllq   xmm0,1
-        pxor    xmm0,xmm3
-        psllq   xmm0,57
-        movdqa  xmm3,xmm0
-        pslldq  xmm0,8
-        psrldq  xmm3,8
-        pxor    xmm0,xmm4
-        pxor    xmm1,xmm3
-
-
-        movdqa  xmm4,xmm0
-        psrlq   xmm0,1
-        pxor    xmm1,xmm4
-        pxor    xmm4,xmm0
-        psrlq   xmm0,5
-        pxor    xmm0,xmm4
-        psrlq   xmm0,1
-        pxor    xmm0,xmm1
-        pshufd  xmm3,xmm2,78
-        pshufd  xmm4,xmm0,78
-        pxor    xmm3,xmm2
-        movdqu  XMMWORD[rcx],xmm2
-        pxor    xmm4,xmm0
-        movdqu  XMMWORD[16+rcx],xmm0
-DB      102,15,58,15,227,8
-        movdqu  XMMWORD[32+rcx],xmm4
-        movdqa  xmm1,xmm0
-        pshufd  xmm3,xmm0,78
-        pxor    xmm3,xmm0
-DB      102,15,58,68,194,0
-DB      102,15,58,68,202,17
-DB      102,15,58,68,222,0
-        pxor    xmm3,xmm0
-        pxor    xmm3,xmm1
-
-        movdqa  xmm4,xmm3
-        psrldq  xmm3,8
-        pslldq  xmm4,8
-        pxor    xmm1,xmm3
-        pxor    xmm0,xmm4
-
-        movdqa  xmm4,xmm0
-        movdqa  xmm3,xmm0
-        psllq   xmm0,5
-        pxor    xmm3,xmm0
-        psllq   xmm0,1
-        pxor    xmm0,xmm3
-        psllq   xmm0,57
-        movdqa  xmm3,xmm0
-        pslldq  xmm0,8
-        psrldq  xmm3,8
-        pxor    xmm0,xmm4
-        pxor    xmm1,xmm3
-
-
-        movdqa  xmm4,xmm0
-        psrlq   xmm0,1
-        pxor    xmm1,xmm4
-        pxor    xmm4,xmm0
-        psrlq   xmm0,5
-        pxor    xmm0,xmm4
-        psrlq   xmm0,1
-        pxor    xmm0,xmm1
-        movdqa  xmm5,xmm0
-        movdqa  xmm1,xmm0
-        pshufd  xmm3,xmm0,78
-        pxor    xmm3,xmm0
-DB      102,15,58,68,194,0
-DB      102,15,58,68,202,17
-DB      102,15,58,68,222,0
-        pxor    xmm3,xmm0
-        pxor    xmm3,xmm1
-
-        movdqa  xmm4,xmm3
-        psrldq  xmm3,8
-        pslldq  xmm4,8
-        pxor    xmm1,xmm3
-        pxor    xmm0,xmm4
-
-        movdqa  xmm4,xmm0
-        movdqa  xmm3,xmm0
-        psllq   xmm0,5
-        pxor    xmm3,xmm0
-        psllq   xmm0,1
-        pxor    xmm0,xmm3
-        psllq   xmm0,57
-        movdqa  xmm3,xmm0
-        pslldq  xmm0,8
-        psrldq  xmm3,8
-        pxor    xmm0,xmm4
-        pxor    xmm1,xmm3
-
-
-        movdqa  xmm4,xmm0
-        psrlq   xmm0,1
-        pxor    xmm1,xmm4
-        pxor    xmm4,xmm0
-        psrlq   xmm0,5
-        pxor    xmm0,xmm4
-        psrlq   xmm0,1
-        pxor    xmm0,xmm1
-        pshufd  xmm3,xmm5,78
-        pshufd  xmm4,xmm0,78
-        pxor    xmm3,xmm5
-        movdqu  XMMWORD[48+rcx],xmm5
-        pxor    xmm4,xmm0
-        movdqu  XMMWORD[64+rcx],xmm0
-DB      102,15,58,15,227,8
-        movdqu  XMMWORD[80+rcx],xmm4
-        movaps  xmm6,XMMWORD[rsp]
-        lea     rsp,[24+rsp]
-$L$SEH_end_gcm_init_clmul:
-        DB      0F3h,0C3h               ;repret
-
-
-global  gcm_gmult_clmul
-
-ALIGN   16
-gcm_gmult_clmul:
-
-$L$_gmult_clmul:
-        movdqu  xmm0,XMMWORD[rcx]
-        movdqa  xmm5,XMMWORD[$L$bswap_mask]
-        movdqu  xmm2,XMMWORD[rdx]
-        movdqu  xmm4,XMMWORD[32+rdx]
-DB      102,15,56,0,197
-        movdqa  xmm1,xmm0
-        pshufd  xmm3,xmm0,78
-        pxor    xmm3,xmm0
-DB      102,15,58,68,194,0
-DB      102,15,58,68,202,17
-DB      102,15,58,68,220,0
-        pxor    xmm3,xmm0
-        pxor    xmm3,xmm1
-
-        movdqa  xmm4,xmm3
-        psrldq  xmm3,8
-        pslldq  xmm4,8
-        pxor    xmm1,xmm3
-        pxor    xmm0,xmm4
-
-        movdqa  xmm4,xmm0
-        movdqa  xmm3,xmm0
-        psllq   xmm0,5
-        pxor    xmm3,xmm0
-        psllq   xmm0,1
-        pxor    xmm0,xmm3
-        psllq   xmm0,57
-        movdqa  xmm3,xmm0
-        pslldq  xmm0,8
-        psrldq  xmm3,8
-        pxor    xmm0,xmm4
-        pxor    xmm1,xmm3
-
-
-        movdqa  xmm4,xmm0
-        psrlq   xmm0,1
-        pxor    xmm1,xmm4
-        pxor    xmm4,xmm0
-        psrlq   xmm0,5
-        pxor    xmm0,xmm4
-        psrlq   xmm0,1
-        pxor    xmm0,xmm1
-DB      102,15,56,0,197
-        movdqu  XMMWORD[rcx],xmm0
-        DB      0F3h,0C3h               ;repret
-
-
-global  gcm_ghash_clmul
-
-ALIGN   32
-gcm_ghash_clmul:
-
-$L$_ghash_clmul:
-        lea     rax,[((-136))+rsp]
-$L$SEH_begin_gcm_ghash_clmul:
-
-DB      0x48,0x8d,0x60,0xe0
-DB      0x0f,0x29,0x70,0xe0
-DB      0x0f,0x29,0x78,0xf0
-DB      0x44,0x0f,0x29,0x00
-DB      0x44,0x0f,0x29,0x48,0x10
-DB      0x44,0x0f,0x29,0x50,0x20
-DB      0x44,0x0f,0x29,0x58,0x30
-DB      0x44,0x0f,0x29,0x60,0x40
-DB      0x44,0x0f,0x29,0x68,0x50
-DB      0x44,0x0f,0x29,0x70,0x60
-DB      0x44,0x0f,0x29,0x78,0x70
-        movdqa  xmm10,XMMWORD[$L$bswap_mask]
-
-        movdqu  xmm0,XMMWORD[rcx]
-        movdqu  xmm2,XMMWORD[rdx]
-        movdqu  xmm7,XMMWORD[32+rdx]
-DB      102,65,15,56,0,194
-
-        sub     r9,0x10
-        jz      NEAR $L$odd_tail
-
-        movdqu  xmm6,XMMWORD[16+rdx]
-        mov     eax,DWORD[((OPENSSL_ia32cap_P+4))]
-        cmp     r9,0x30
-        jb      NEAR $L$skip4x
-
-        and     eax,71303168
-        cmp     eax,4194304
-        je      NEAR $L$skip4x
-
-        sub     r9,0x30
-        mov     rax,0xA040608020C0E000
-        movdqu  xmm14,XMMWORD[48+rdx]
-        movdqu  xmm15,XMMWORD[64+rdx]
-
-
-
-
-        movdqu  xmm3,XMMWORD[48+r8]
-        movdqu  xmm11,XMMWORD[32+r8]
-DB      102,65,15,56,0,218
-DB      102,69,15,56,0,218
-        movdqa  xmm5,xmm3
-        pshufd  xmm4,xmm3,78
-        pxor    xmm4,xmm3
-DB      102,15,58,68,218,0
-DB      102,15,58,68,234,17
-DB      102,15,58,68,231,0
-
-        movdqa  xmm13,xmm11
-        pshufd  xmm12,xmm11,78
-        pxor    xmm12,xmm11
-DB      102,68,15,58,68,222,0
-DB      102,68,15,58,68,238,17
-DB      102,68,15,58,68,231,16
-        xorps   xmm3,xmm11
-        xorps   xmm5,xmm13
-        movups  xmm7,XMMWORD[80+rdx]
-        xorps   xmm4,xmm12
-
-        movdqu  xmm11,XMMWORD[16+r8]
-        movdqu  xmm8,XMMWORD[r8]
-DB      102,69,15,56,0,218
-DB      102,69,15,56,0,194
-        movdqa  xmm13,xmm11
-        pshufd  xmm12,xmm11,78
-        pxor    xmm0,xmm8
-        pxor    xmm12,xmm11
-DB      102,69,15,58,68,222,0
-        movdqa  xmm1,xmm0
-        pshufd  xmm8,xmm0,78
-        pxor    xmm8,xmm0
-DB      102,69,15,58,68,238,17
-DB      102,68,15,58,68,231,0
-        xorps   xmm3,xmm11
-        xorps   xmm5,xmm13
-
-        lea     r8,[64+r8]
-        sub     r9,0x40
-        jc      NEAR $L$tail4x
-
-        jmp     NEAR $L$mod4_loop
-ALIGN   32
-$L$mod4_loop:
-DB      102,65,15,58,68,199,0
-        xorps   xmm4,xmm12
-        movdqu  xmm11,XMMWORD[48+r8]
-DB      102,69,15,56,0,218
-DB      102,65,15,58,68,207,17
-        xorps   xmm0,xmm3
-        movdqu  xmm3,XMMWORD[32+r8]
-        movdqa  xmm13,xmm11
-DB      102,68,15,58,68,199,16
-        pshufd  xmm12,xmm11,78
-        xorps   xmm1,xmm5
-        pxor    xmm12,xmm11
-DB      102,65,15,56,0,218
-        movups  xmm7,XMMWORD[32+rdx]
-        xorps   xmm8,xmm4
-DB      102,68,15,58,68,218,0
-        pshufd  xmm4,xmm3,78
-
-        pxor    xmm8,xmm0
-        movdqa  xmm5,xmm3
-        pxor    xmm8,xmm1
-        pxor    xmm4,xmm3
-        movdqa  xmm9,xmm8
-DB      102,68,15,58,68,234,17
-        pslldq  xmm8,8
-        psrldq  xmm9,8
-        pxor    xmm0,xmm8
-        movdqa  xmm8,XMMWORD[$L$7_mask]
-        pxor    xmm1,xmm9
-DB      102,76,15,110,200
-
-        pand    xmm8,xmm0
-DB      102,69,15,56,0,200
-        pxor    xmm9,xmm0
-DB      102,68,15,58,68,231,0
-        psllq   xmm9,57
-        movdqa  xmm8,xmm9
-        pslldq  xmm9,8
-DB      102,15,58,68,222,0
-        psrldq  xmm8,8
-        pxor    xmm0,xmm9
-        pxor    xmm1,xmm8
-        movdqu  xmm8,XMMWORD[r8]
-
-        movdqa  xmm9,xmm0
-        psrlq   xmm0,1
-DB      102,15,58,68,238,17
-        xorps   xmm3,xmm11
-        movdqu  xmm11,XMMWORD[16+r8]
-DB      102,69,15,56,0,218
-DB      102,15,58,68,231,16
-        xorps   xmm5,xmm13
-        movups  xmm7,XMMWORD[80+rdx]
-DB      102,69,15,56,0,194
-        pxor    xmm1,xmm9
-        pxor    xmm9,xmm0
-        psrlq   xmm0,5
-
-        movdqa  xmm13,xmm11
-        pxor    xmm4,xmm12
-        pshufd  xmm12,xmm11,78
-        pxor    xmm0,xmm9
-        pxor    xmm1,xmm8
-        pxor    xmm12,xmm11
-DB      102,69,15,58,68,222,0
-        psrlq   xmm0,1
-        pxor    xmm0,xmm1
-        movdqa  xmm1,xmm0
-DB      102,69,15,58,68,238,17
-        xorps   xmm3,xmm11
-        pshufd  xmm8,xmm0,78
-        pxor    xmm8,xmm0
-
-DB      102,68,15,58,68,231,0
-        xorps   xmm5,xmm13
-
-        lea     r8,[64+r8]
-        sub     r9,0x40
-        jnc     NEAR $L$mod4_loop
-
-$L$tail4x:
-DB      102,65,15,58,68,199,0
-DB      102,65,15,58,68,207,17
-DB      102,68,15,58,68,199,16
-        xorps   xmm4,xmm12
-        xorps   xmm0,xmm3
-        xorps   xmm1,xmm5
-        pxor    xmm1,xmm0
-        pxor    xmm8,xmm4
-
-        pxor    xmm8,xmm1
-        pxor    xmm1,xmm0
-
-        movdqa  xmm9,xmm8
-        psrldq  xmm8,8
-        pslldq  xmm9,8
-        pxor    xmm1,xmm8
-        pxor    xmm0,xmm9
-
-        movdqa  xmm4,xmm0
-        movdqa  xmm3,xmm0
-        psllq   xmm0,5
-        pxor    xmm3,xmm0
-        psllq   xmm0,1
-        pxor    xmm0,xmm3
-        psllq   xmm0,57
-        movdqa  xmm3,xmm0
-        pslldq  xmm0,8
-        psrldq  xmm3,8
-        pxor    xmm0,xmm4
-        pxor    xmm1,xmm3
-
-
-        movdqa  xmm4,xmm0
-        psrlq   xmm0,1
-        pxor    xmm1,xmm4
-        pxor    xmm4,xmm0
-        psrlq   xmm0,5
-        pxor    xmm0,xmm4
-        psrlq   xmm0,1
-        pxor    xmm0,xmm1
-        add     r9,0x40
-        jz      NEAR $L$done
-        movdqu  xmm7,XMMWORD[32+rdx]
-        sub     r9,0x10
-        jz      NEAR $L$odd_tail
-$L$skip4x:
-
-
-
-
-
-        movdqu  xmm8,XMMWORD[r8]
-        movdqu  xmm3,XMMWORD[16+r8]
-DB      102,69,15,56,0,194
-DB      102,65,15,56,0,218
-        pxor    xmm0,xmm8
-
-        movdqa  xmm5,xmm3
-        pshufd  xmm4,xmm3,78
-        pxor    xmm4,xmm3
-DB      102,15,58,68,218,0
-DB      102,15,58,68,234,17
-DB      102,15,58,68,231,0
-
-        lea     r8,[32+r8]
-        nop
-        sub     r9,0x20
-        jbe     NEAR $L$even_tail
-        nop
-        jmp     NEAR $L$mod_loop
-
-ALIGN   32
-$L$mod_loop:
-        movdqa  xmm1,xmm0
-        movdqa  xmm8,xmm4
-        pshufd  xmm4,xmm0,78
-        pxor    xmm4,xmm0
-
-DB      102,15,58,68,198,0
-DB      102,15,58,68,206,17
-DB      102,15,58,68,231,16
-
-        pxor    xmm0,xmm3
-        pxor    xmm1,xmm5
-        movdqu  xmm9,XMMWORD[r8]
-        pxor    xmm8,xmm0
-DB      102,69,15,56,0,202
-        movdqu  xmm3,XMMWORD[16+r8]
-
-        pxor    xmm8,xmm1
-        pxor    xmm1,xmm9
-        pxor    xmm4,xmm8
-DB      102,65,15,56,0,218
-        movdqa  xmm8,xmm4
-        psrldq  xmm8,8
-        pslldq  xmm4,8
-        pxor    xmm1,xmm8
-        pxor    xmm0,xmm4
-
-        movdqa  xmm5,xmm3
-
-        movdqa  xmm9,xmm0
-        movdqa  xmm8,xmm0
-        psllq   xmm0,5
-        pxor    xmm8,xmm0
-DB      102,15,58,68,218,0
-        psllq   xmm0,1
-        pxor    xmm0,xmm8
-        psllq   xmm0,57
-        movdqa  xmm8,xmm0
-        pslldq  xmm0,8
-        psrldq  xmm8,8
-        pxor    xmm0,xmm9
-        pshufd  xmm4,xmm5,78
-        pxor    xmm1,xmm8
-        pxor    xmm4,xmm5
-
-        movdqa  xmm9,xmm0
-        psrlq   xmm0,1
-DB      102,15,58,68,234,17
-        pxor    xmm1,xmm9
-        pxor    xmm9,xmm0
-        psrlq   xmm0,5
-        pxor    xmm0,xmm9
-        lea     r8,[32+r8]
-        psrlq   xmm0,1
-DB      102,15,58,68,231,0
-        pxor    xmm0,xmm1
-
-        sub     r9,0x20
-        ja      NEAR $L$mod_loop
-
-$L$even_tail:
-        movdqa  xmm1,xmm0
-        movdqa  xmm8,xmm4
-        pshufd  xmm4,xmm0,78
-        pxor    xmm4,xmm0
-
-DB      102,15,58,68,198,0
-DB      102,15,58,68,206,17
-DB      102,15,58,68,231,16
-
-        pxor    xmm0,xmm3
-        pxor    xmm1,xmm5
-        pxor    xmm8,xmm0
-        pxor    xmm8,xmm1
-        pxor    xmm4,xmm8
-        movdqa  xmm8,xmm4
-        psrldq  xmm8,8
-        pslldq  xmm4,8
-        pxor    xmm1,xmm8
-        pxor    xmm0,xmm4
-
-        movdqa  xmm4,xmm0
-        movdqa  xmm3,xmm0
-        psllq   xmm0,5
-        pxor    xmm3,xmm0
-        psllq   xmm0,1
-        pxor    xmm0,xmm3
-        psllq   xmm0,57
-        movdqa  xmm3,xmm0
-        pslldq  xmm0,8
-        psrldq  xmm3,8
-        pxor    xmm0,xmm4
-        pxor    xmm1,xmm3
-
-
-        movdqa  xmm4,xmm0
-        psrlq   xmm0,1
-        pxor    xmm1,xmm4
-        pxor    xmm4,xmm0
-        psrlq   xmm0,5
-        pxor    xmm0,xmm4
-        psrlq   xmm0,1
-        pxor    xmm0,xmm1
-        test    r9,r9
-        jnz     NEAR $L$done
-
-$L$odd_tail:
-        movdqu  xmm8,XMMWORD[r8]
-DB      102,69,15,56,0,194
-        pxor    xmm0,xmm8
-        movdqa  xmm1,xmm0
-        pshufd  xmm3,xmm0,78
-        pxor    xmm3,xmm0
-DB      102,15,58,68,194,0
-DB      102,15,58,68,202,17
-DB      102,15,58,68,223,0
-        pxor    xmm3,xmm0
-        pxor    xmm3,xmm1
-
-        movdqa  xmm4,xmm3
-        psrldq  xmm3,8
-        pslldq  xmm4,8
-        pxor    xmm1,xmm3
-        pxor    xmm0,xmm4
-
-        movdqa  xmm4,xmm0
-        movdqa  xmm3,xmm0
-        psllq   xmm0,5
-        pxor    xmm3,xmm0
-        psllq   xmm0,1
-        pxor    xmm0,xmm3
-        psllq   xmm0,57
-        movdqa  xmm3,xmm0
-        pslldq  xmm0,8
-        psrldq  xmm3,8
-        pxor    xmm0,xmm4
-        pxor    xmm1,xmm3
-
-
-        movdqa  xmm4,xmm0
-        psrlq   xmm0,1
-        pxor    xmm1,xmm4
-        pxor    xmm4,xmm0
-        psrlq   xmm0,5
-        pxor    xmm0,xmm4
-        psrlq   xmm0,1
-        pxor    xmm0,xmm1
-$L$done:
-DB      102,65,15,56,0,194
-        movdqu  XMMWORD[rcx],xmm0
-        movaps  xmm6,XMMWORD[rsp]
-        movaps  xmm7,XMMWORD[16+rsp]
-        movaps  xmm8,XMMWORD[32+rsp]
-        movaps  xmm9,XMMWORD[48+rsp]
-        movaps  xmm10,XMMWORD[64+rsp]
-        movaps  xmm11,XMMWORD[80+rsp]
-        movaps  xmm12,XMMWORD[96+rsp]
-        movaps  xmm13,XMMWORD[112+rsp]
-        movaps  xmm14,XMMWORD[128+rsp]
-        movaps  xmm15,XMMWORD[144+rsp]
-        lea     rsp,[168+rsp]
-$L$SEH_end_gcm_ghash_clmul:
-        DB      0F3h,0C3h               ;repret
-
-
-global  gcm_init_avx
-
-ALIGN   32
-gcm_init_avx:
-
-        jmp     NEAR $L$_init_clmul
-
-
-global  gcm_gmult_avx
-
-ALIGN   32
-gcm_gmult_avx:
-
-        jmp     NEAR $L$_gmult_clmul
-
-
-global  gcm_ghash_avx
-
-ALIGN   32
-gcm_ghash_avx:
-
-        jmp     NEAR $L$_ghash_clmul
-
-
-ALIGN   64
-$L$bswap_mask:
-DB      15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
-$L$0x1c2_polynomial:
-DB      1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xc2
-$L$7_mask:
-        DD      7,0,7,0
-$L$7_mask_poly:
-        DD      7,0,450,0
-ALIGN   64
-
-$L$rem_4bit:
-        DD      0,0,0,471859200,0,943718400,0,610271232
-        DD      0,1887436800,0,1822425088,0,1220542464,0,1423966208
-        DD      0,3774873600,0,4246732800,0,3644850176,0,3311403008
-        DD      0,2441084928,0,2376073216,0,2847932416,0,3051356160
-
-$L$rem_8bit:
-        DW      0x0000,0x01C2,0x0384,0x0246,0x0708,0x06CA,0x048C,0x054E
-        DW      0x0E10,0x0FD2,0x0D94,0x0C56,0x0918,0x08DA,0x0A9C,0x0B5E
-        DW      0x1C20,0x1DE2,0x1FA4,0x1E66,0x1B28,0x1AEA,0x18AC,0x196E
-        DW      0x1230,0x13F2,0x11B4,0x1076,0x1538,0x14FA,0x16BC,0x177E
-        DW      0x3840,0x3982,0x3BC4,0x3A06,0x3F48,0x3E8A,0x3CCC,0x3D0E
-        DW      0x3650,0x3792,0x35D4,0x3416,0x3158,0x309A,0x32DC,0x331E
-        DW      0x2460,0x25A2,0x27E4,0x2626,0x2368,0x22AA,0x20EC,0x212E
-        DW      0x2A70,0x2BB2,0x29F4,0x2836,0x2D78,0x2CBA,0x2EFC,0x2F3E
-        DW      0x7080,0x7142,0x7304,0x72C6,0x7788,0x764A,0x740C,0x75CE
-        DW      0x7E90,0x7F52,0x7D14,0x7CD6,0x7998,0x785A,0x7A1C,0x7BDE
-        DW      0x6CA0,0x6D62,0x6F24,0x6EE6,0x6BA8,0x6A6A,0x682C,0x69EE
-        DW      0x62B0,0x6372,0x6134,0x60F6,0x65B8,0x647A,0x663C,0x67FE
-        DW      0x48C0,0x4902,0x4B44,0x4A86,0x4FC8,0x4E0A,0x4C4C,0x4D8E
-        DW      0x46D0,0x4712,0x4554,0x4496,0x41D8,0x401A,0x425C,0x439E
-        DW      0x54E0,0x5522,0x5764,0x56A6,0x53E8,0x522A,0x506C,0x51AE
-        DW      0x5AF0,0x5B32,0x5974,0x58B6,0x5DF8,0x5C3A,0x5E7C,0x5FBE
-        DW      0xE100,0xE0C2,0xE284,0xE346,0xE608,0xE7CA,0xE58C,0xE44E
-        DW      0xEF10,0xEED2,0xEC94,0xED56,0xE818,0xE9DA,0xEB9C,0xEA5E
-        DW      0xFD20,0xFCE2,0xFEA4,0xFF66,0xFA28,0xFBEA,0xF9AC,0xF86E
-        DW      0xF330,0xF2F2,0xF0B4,0xF176,0xF438,0xF5FA,0xF7BC,0xF67E
-        DW      0xD940,0xD882,0xDAC4,0xDB06,0xDE48,0xDF8A,0xDDCC,0xDC0E
-        DW      0xD750,0xD692,0xD4D4,0xD516,0xD058,0xD19A,0xD3DC,0xD21E
-        DW      0xC560,0xC4A2,0xC6E4,0xC726,0xC268,0xC3AA,0xC1EC,0xC02E
-        DW      0xCB70,0xCAB2,0xC8F4,0xC936,0xCC78,0xCDBA,0xCFFC,0xCE3E
-        DW      0x9180,0x9042,0x9204,0x93C6,0x9688,0x974A,0x950C,0x94CE
-        DW      0x9F90,0x9E52,0x9C14,0x9DD6,0x9898,0x995A,0x9B1C,0x9ADE
-        DW      0x8DA0,0x8C62,0x8E24,0x8FE6,0x8AA8,0x8B6A,0x892C,0x88EE
-        DW      0x83B0,0x8272,0x8034,0x81F6,0x84B8,0x857A,0x873C,0x86FE
-        DW      0xA9C0,0xA802,0xAA44,0xAB86,0xAEC8,0xAF0A,0xAD4C,0xAC8E
-        DW      0xA7D0,0xA612,0xA454,0xA596,0xA0D8,0xA11A,0xA35C,0xA29E
-        DW      0xB5E0,0xB422,0xB664,0xB7A6,0xB2E8,0xB32A,0xB16C,0xB0AE
-        DW      0xBBF0,0xBA32,0xB874,0xB9B6,0xBCF8,0xBD3A,0xBF7C,0xBEBE
-
-DB      71,72,65,83,72,32,102,111,114,32,120,56,54,95,54,52
-DB      44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32
-DB      60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111
-DB      114,103,62,0
-ALIGN   64
-EXTERN  __imp_RtlVirtualUnwind
-
-ALIGN   16
-se_handler:
-        push    rsi
-        push    rdi
-        push    rbx
-        push    rbp
-        push    r12
-        push    r13
-        push    r14
-        push    r15
-        pushfq
-        sub     rsp,64
-
-        mov     rax,QWORD[120+r8]
-        mov     rbx,QWORD[248+r8]
-
-        mov     rsi,QWORD[8+r9]
-        mov     r11,QWORD[56+r9]
-
-        mov     r10d,DWORD[r11]
-        lea     r10,[r10*1+rsi]
-        cmp     rbx,r10
-        jb      NEAR $L$in_prologue
-
-        mov     rax,QWORD[152+r8]
-
-        mov     r10d,DWORD[4+r11]
-        lea     r10,[r10*1+rsi]
-        cmp     rbx,r10
-        jae     NEAR $L$in_prologue
-
-        lea     rax,[((48+280))+rax]
-
-        mov     rbx,QWORD[((-8))+rax]
-        mov     rbp,QWORD[((-16))+rax]
-        mov     r12,QWORD[((-24))+rax]
-        mov     r13,QWORD[((-32))+rax]
-        mov     r14,QWORD[((-40))+rax]
-        mov     r15,QWORD[((-48))+rax]
-        mov     QWORD[144+r8],rbx
-        mov     QWORD[160+r8],rbp
-        mov     QWORD[216+r8],r12
-        mov     QWORD[224+r8],r13
-        mov     QWORD[232+r8],r14
-        mov     QWORD[240+r8],r15
-
-$L$in_prologue:
-        mov     rdi,QWORD[8+rax]
-        mov     rsi,QWORD[16+rax]
-        mov     QWORD[152+r8],rax
-        mov     QWORD[168+r8],rsi
-        mov     QWORD[176+r8],rdi
-
-        mov     rdi,QWORD[40+r9]
-        mov     rsi,r8
-        mov     ecx,154
-        DD      0xa548f3fc
-
-        mov     rsi,r9
-        xor     rcx,rcx
-        mov     rdx,QWORD[8+rsi]
-        mov     r8,QWORD[rsi]
-        mov     r9,QWORD[16+rsi]
-        mov     r10,QWORD[40+rsi]
-        lea     r11,[56+rsi]
-        lea     r12,[24+rsi]
-        mov     QWORD[32+rsp],r10
-        mov     QWORD[40+rsp],r11
-        mov     QWORD[48+rsp],r12
-        mov     QWORD[56+rsp],rcx
-        call    QWORD[__imp_RtlVirtualUnwind]
-
-        mov     eax,1
-        add     rsp,64
-        popfq
-        pop     r15
-        pop     r14
-        pop     r13
-        pop     r12
-        pop     rbp
-        pop     rbx
-        pop     rdi
-        pop     rsi
-        DB      0F3h,0C3h               ;repret
-
-
-section .pdata rdata align=4
-ALIGN   4
-        DD      $L$SEH_begin_gcm_gmult_4bit wrt ..imagebase
-        DD      $L$SEH_end_gcm_gmult_4bit wrt ..imagebase
-        DD      $L$SEH_info_gcm_gmult_4bit wrt ..imagebase
-
-        DD      $L$SEH_begin_gcm_ghash_4bit wrt ..imagebase
-        DD      $L$SEH_end_gcm_ghash_4bit wrt ..imagebase
-        DD      $L$SEH_info_gcm_ghash_4bit wrt ..imagebase
-
-        DD      $L$SEH_begin_gcm_init_clmul wrt ..imagebase
-        DD      $L$SEH_end_gcm_init_clmul wrt ..imagebase
-        DD      $L$SEH_info_gcm_init_clmul wrt ..imagebase
-
-        DD      $L$SEH_begin_gcm_ghash_clmul wrt ..imagebase
-        DD      $L$SEH_end_gcm_ghash_clmul wrt ..imagebase
-        DD      $L$SEH_info_gcm_ghash_clmul wrt ..imagebase
-section .xdata rdata align=8
-ALIGN   8
-$L$SEH_info_gcm_gmult_4bit:
-DB      9,0,0,0
-        DD      se_handler wrt ..imagebase
-        DD      $L$gmult_prologue wrt ..imagebase,$L$gmult_epilogue wrt ..imagebase
-$L$SEH_info_gcm_ghash_4bit:
-DB      9,0,0,0
-        DD      se_handler wrt ..imagebase
-        DD      $L$ghash_prologue wrt ..imagebase,$L$ghash_epilogue wrt ..imagebase
-$L$SEH_info_gcm_init_clmul:
-DB      0x01,0x08,0x03,0x00
-DB      0x08,0x68,0x00,0x00
-DB      0x04,0x22,0x00,0x00
-$L$SEH_info_gcm_ghash_clmul:
-DB      0x01,0x33,0x16,0x00
-DB      0x33,0xf8,0x09,0x00
-DB      0x2e,0xe8,0x08,0x00
-DB      0x29,0xd8,0x07,0x00
-DB      0x24,0xc8,0x06,0x00
-DB      0x1f,0xb8,0x05,0x00
-DB      0x1a,0xa8,0x04,0x00
-DB      0x15,0x98,0x03,0x00
-DB      0x10,0x88,0x02,0x00
-DB      0x0c,0x78,0x01,0x00
-DB      0x08,0x68,0x00,0x00
-DB      0x04,0x01,0x15,0x00
diff --git a/CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha1-mb-x86_64.nasm b/CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha1-mb-x86_64.nasm
deleted file mode 100644
index f3b7b0e35eb0..000000000000
--- a/CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha1-mb-x86_64.nasm
+++ /dev/null
@@ -1,3137 +0,0 @@
-; WARNING: do not edit!
-; Generated from openssl/crypto/sha/asm/sha1-mb-x86_64.pl
-;
-; Copyright 2013-2020 The OpenSSL Project Authors. All Rights Reserved.
-;
-; Licensed under the OpenSSL license (the "License").  You may not use
-; this file except in compliance with the License.  You can obtain a copy
-; in the file LICENSE in the source distribution or at
-; https://www.openssl.org/source/license.html
-
-default rel
-%define XMMWORD
-%define YMMWORD
-%define ZMMWORD
-section .text code align=64
-
-
-EXTERN  OPENSSL_ia32cap_P
-
-global  sha1_multi_block
-
-ALIGN   32
-sha1_multi_block:
-        mov     QWORD[8+rsp],rdi        ;WIN64 prologue
-        mov     QWORD[16+rsp],rsi
-        mov     rax,rsp
-$L$SEH_begin_sha1_multi_block:
-        mov     rdi,rcx
-        mov     rsi,rdx
-        mov     rdx,r8
-
-
-
-        mov     rcx,QWORD[((OPENSSL_ia32cap_P+4))]
-        bt      rcx,61
-        jc      NEAR _shaext_shortcut
-        mov     rax,rsp
-
-        push    rbx
-
-        push    rbp
-
-        lea     rsp,[((-168))+rsp]
-        movaps  XMMWORD[rsp],xmm6
-        movaps  XMMWORD[16+rsp],xmm7
-        movaps  XMMWORD[32+rsp],xmm8
-        movaps  XMMWORD[48+rsp],xmm9
-        movaps  XMMWORD[(-120)+rax],xmm10
-        movaps  XMMWORD[(-104)+rax],xmm11
-        movaps  XMMWORD[(-88)+rax],xmm12
-        movaps  XMMWORD[(-72)+rax],xmm13
-        movaps  XMMWORD[(-56)+rax],xmm14
-        movaps  XMMWORD[(-40)+rax],xmm15
-        sub     rsp,288
-        and     rsp,-256
-        mov     QWORD[272+rsp],rax
-
-$L$body:
-        lea     rbp,[K_XX_XX]
-        lea     rbx,[256+rsp]
-
-$L$oop_grande:
-        mov     DWORD[280+rsp],edx
-        xor     edx,edx
-        mov     r8,QWORD[rsi]
-        mov     ecx,DWORD[8+rsi]
-        cmp     ecx,edx
-        cmovg   edx,ecx
-        test    ecx,ecx
-        mov     DWORD[rbx],ecx
-        cmovle  r8,rbp
-        mov     r9,QWORD[16+rsi]
-        mov     ecx,DWORD[24+rsi]
-        cmp     ecx,edx
-        cmovg   edx,ecx
-        test    ecx,ecx
-        mov     DWORD[4+rbx],ecx
-        cmovle  r9,rbp
-        mov     r10,QWORD[32+rsi]
-        mov     ecx,DWORD[40+rsi]
-        cmp     ecx,edx
-        cmovg   edx,ecx
-        test    ecx,ecx
-        mov     DWORD[8+rbx],ecx
-        cmovle  r10,rbp
-        mov     r11,QWORD[48+rsi]
-        mov     ecx,DWORD[56+rsi]
-        cmp     ecx,edx
-        cmovg   edx,ecx
-        test    ecx,ecx
-        mov     DWORD[12+rbx],ecx
-        cmovle  r11,rbp
-        test    edx,edx
-        jz      NEAR $L$done
-
-        movdqu  xmm10,XMMWORD[rdi]
-        lea     rax,[128+rsp]
-        movdqu  xmm11,XMMWORD[32+rdi]
-        movdqu  xmm12,XMMWORD[64+rdi]
-        movdqu  xmm13,XMMWORD[96+rdi]
-        movdqu  xmm14,XMMWORD[128+rdi]
-        movdqa  xmm5,XMMWORD[96+rbp]
-        movdqa  xmm15,XMMWORD[((-32))+rbp]
-        jmp     NEAR $L$oop
-
-ALIGN   32
-$L$oop:
-        movd    xmm0,DWORD[r8]
-        lea     r8,[64+r8]
-        movd    xmm2,DWORD[r9]
-        lea     r9,[64+r9]
-        movd    xmm3,DWORD[r10]
-        lea     r10,[64+r10]
-        movd    xmm4,DWORD[r11]
-        lea     r11,[64+r11]
-        punpckldq       xmm0,xmm3
-        movd    xmm1,DWORD[((-60))+r8]
-        punpckldq       xmm2,xmm4
-        movd    xmm9,DWORD[((-60))+r9]
-        punpckldq       xmm0,xmm2
-        movd    xmm8,DWORD[((-60))+r10]
-DB      102,15,56,0,197
-        movd    xmm7,DWORD[((-60))+r11]
-        punpckldq       xmm1,xmm8
-        movdqa  xmm8,xmm10
-        paddd   xmm14,xmm15
-        punpckldq       xmm9,xmm7
-        movdqa  xmm7,xmm11
-        movdqa  xmm6,xmm11
-        pslld   xmm8,5
-        pandn   xmm7,xmm13
-        pand    xmm6,xmm12
-        punpckldq       xmm1,xmm9
-        movdqa  xmm9,xmm10
-
-        movdqa  XMMWORD[(0-128)+rax],xmm0
-        paddd   xmm14,xmm0
-        movd    xmm2,DWORD[((-56))+r8]
-        psrld   xmm9,27
-        pxor    xmm6,xmm7
-        movdqa  xmm7,xmm11
-
-        por     xmm8,xmm9
-        movd    xmm9,DWORD[((-56))+r9]
-        pslld   xmm7,30
-        paddd   xmm14,xmm6
-
-        psrld   xmm11,2
-        paddd   xmm14,xmm8
-DB      102,15,56,0,205
-        movd    xmm8,DWORD[((-56))+r10]
-        por     xmm11,xmm7
-        movd    xmm7,DWORD[((-56))+r11]
-        punpckldq       xmm2,xmm8
-        movdqa  xmm8,xmm14
-        paddd   xmm13,xmm15
-        punpckldq       xmm9,xmm7
-        movdqa  xmm7,xmm10
-        movdqa  xmm6,xmm10
-        pslld   xmm8,5
-        pandn   xmm7,xmm12
-        pand    xmm6,xmm11
-        punpckldq       xmm2,xmm9
-        movdqa  xmm9,xmm14
-
-        movdqa  XMMWORD[(16-128)+rax],xmm1
-        paddd   xmm13,xmm1
-        movd    xmm3,DWORD[((-52))+r8]
-        psrld   xmm9,27
-        pxor    xmm6,xmm7
-        movdqa  xmm7,xmm10
-
-        por     xmm8,xmm9
-        movd    xmm9,DWORD[((-52))+r9]
-        pslld   xmm7,30
-        paddd   xmm13,xmm6
-
-        psrld   xmm10,2
-        paddd   xmm13,xmm8
-DB      102,15,56,0,213
-        movd    xmm8,DWORD[((-52))+r10]
-        por     xmm10,xmm7
-        movd    xmm7,DWORD[((-52))+r11]
-        punpckldq       xmm3,xmm8
-        movdqa  xmm8,xmm13
-        paddd   xmm12,xmm15
-        punpckldq       xmm9,xmm7
-        movdqa  xmm7,xmm14
-        movdqa  xmm6,xmm14
-        pslld   xmm8,5
-        pandn   xmm7,xmm11
-        pand    xmm6,xmm10
-        punpckldq       xmm3,xmm9
-        movdqa  xmm9,xmm13
-
-        movdqa  XMMWORD[(32-128)+rax],xmm2
-        paddd   xmm12,xmm2
-        movd    xmm4,DWORD[((-48))+r8]
-        psrld   xmm9,27
-        pxor    xmm6,xmm7
-        movdqa  xmm7,xmm14
-
-        por     xmm8,xmm9
-        movd    xmm9,DWORD[((-48))+r9]
-        pslld   xmm7,30
-        paddd   xmm12,xmm6
-
-        psrld   xmm14,2
-        paddd   xmm12,xmm8
-DB      102,15,56,0,221
-        movd    xmm8,DWORD[((-48))+r10]
-        por     xmm14,xmm7
-        movd    xmm7,DWORD[((-48))+r11]
-        punpckldq       xmm4,xmm8
-        movdqa  xmm8,xmm12
-        paddd   xmm11,xmm15
-        punpckldq       xmm9,xmm7
-        movdqa  xmm7,xmm13
-        movdqa  xmm6,xmm13
-        pslld   xmm8,5
-        pandn   xmm7,xmm10
-        pand    xmm6,xmm14
-        punpckldq       xmm4,xmm9
-        movdqa  xmm9,xmm12
-
-        movdqa  XMMWORD[(48-128)+rax],xmm3
-        paddd   xmm11,xmm3
-        movd    xmm0,DWORD[((-44))+r8]
-        psrld   xmm9,27
-        pxor    xmm6,xmm7
-        movdqa  xmm7,xmm13
-
-        por     xmm8,xmm9
-        movd    xmm9,DWORD[((-44))+r9]
-        pslld   xmm7,30
-        paddd   xmm11,xmm6
-
-        psrld   xmm13,2
-        paddd   xmm11,xmm8
-DB      102,15,56,0,229
-        movd    xmm8,DWORD[((-44))+r10]
-        por     xmm13,xmm7
-        movd    xmm7,DWORD[((-44))+r11]
-        punpckldq       xmm0,xmm8
-        movdqa  xmm8,xmm11
-        paddd   xmm10,xmm15
-        punpckldq       xmm9,xmm7
-        movdqa  xmm7,xmm12
-        movdqa  xmm6,xmm12
-        pslld   xmm8,5
-        pandn   xmm7,xmm14
-        pand    xmm6,xmm13
-        punpckldq       xmm0,xmm9
-        movdqa  xmm9,xmm11
-
-        movdqa  XMMWORD[(64-128)+rax],xmm4
-        paddd   xmm10,xmm4
-        movd    xmm1,DWORD[((-40))+r8]
-        psrld   xmm9,27
-        pxor    xmm6,xmm7
-        movdqa  xmm7,xmm12
-
-        por     xmm8,xmm9
-        movd    xmm9,DWORD[((-40))+r9]
-        pslld   xmm7,30
-        paddd   xmm10,xmm6
-
-        psrld   xmm12,2
-        paddd   xmm10,xmm8
-DB      102,15,56,0,197
-        movd    xmm8,DWORD[((-40))+r10]
-        por     xmm12,xmm7
-        movd    xmm7,DWORD[((-40))+r11]
-        punpckldq       xmm1,xmm8
-        movdqa  xmm8,xmm10
-        paddd   xmm14,xmm15
-        punpckldq       xmm9,xmm7
-        movdqa  xmm7,xmm11
-        movdqa  xmm6,xmm11
-        pslld   xmm8,5
-        pandn   xmm7,xmm13
-        pand    xmm6,xmm12
-        punpckldq       xmm1,xmm9
-        movdqa  xmm9,xmm10
-
-        movdqa  XMMWORD[(80-128)+rax],xmm0
-        paddd   xmm14,xmm0
-        movd    xmm2,DWORD[((-36))+r8]
-        psrld   xmm9,27
-        pxor    xmm6,xmm7
-        movdqa  xmm7,xmm11
-
-        por     xmm8,xmm9
-        movd    xmm9,DWORD[((-36))+r9]
-        pslld   xmm7,30
-        paddd   xmm14,xmm6
-
-        psrld   xmm11,2
-        paddd   xmm14,xmm8
-DB      102,15,56,0,205
-        movd    xmm8,DWORD[((-36))+r10]
-        por     xmm11,xmm7
-        movd    xmm7,DWORD[((-36))+r11]
-        punpckldq       xmm2,xmm8
-        movdqa  xmm8,xmm14
-        paddd   xmm13,xmm15
-        punpckldq       xmm9,xmm7
-        movdqa  xmm7,xmm10
-        movdqa  xmm6,xmm10
-        pslld   xmm8,5
-        pandn   xmm7,xmm12
-        pand    xmm6,xmm11
-        punpckldq       xmm2,xmm9
-        movdqa  xmm9,xmm14
-
-        movdqa  XMMWORD[(96-128)+rax],xmm1
-        paddd   xmm13,xmm1
-        movd    xmm3,DWORD[((-32))+r8]
-        psrld   xmm9,27
-        pxor    xmm6,xmm7
-        movdqa  xmm7,xmm10
-
-        por     xmm8,xmm9
-        movd    xmm9,DWORD[((-32))+r9]
-        pslld   xmm7,30
-        paddd   xmm13,xmm6
-
-        psrld   xmm10,2
-        paddd   xmm13,xmm8
-DB      102,15,56,0,213
-        movd    xmm8,DWORD[((-32))+r10]
-        por     xmm10,xmm7
-        movd    xmm7,DWORD[((-32))+r11]
-        punpckldq       xmm3,xmm8
-        movdqa  xmm8,xmm13
-        paddd   xmm12,xmm15
-        punpckldq       xmm9,xmm7
-        movdqa  xmm7,xmm14
-        movdqa  xmm6,xmm14
-        pslld   xmm8,5
-        pandn   xmm7,xmm11
-        pand    xmm6,xmm10
-        punpckldq       xmm3,xmm9
-        movdqa  xmm9,xmm13
-
-        movdqa  XMMWORD[(112-128)+rax],xmm2
-        paddd   xmm12,xmm2
-        movd    xmm4,DWORD[((-28))+r8]
-        psrld   xmm9,27
-        pxor    xmm6,xmm7
-        movdqa  xmm7,xmm14
-
-        por     xmm8,xmm9
-        movd    xmm9,DWORD[((-28))+r9]
-        pslld   xmm7,30
-        paddd   xmm12,xmm6
-
-        psrld   xmm14,2
-        paddd   xmm12,xmm8
-DB      102,15,56,0,221
-        movd    xmm8,DWORD[((-28))+r10]
-        por     xmm14,xmm7
-        movd    xmm7,DWORD[((-28))+r11]
-        punpckldq       xmm4,xmm8
-        movdqa  xmm8,xmm12
-        paddd   xmm11,xmm15
-        punpckldq       xmm9,xmm7
-        movdqa  xmm7,xmm13
-        movdqa  xmm6,xmm13
-        pslld   xmm8,5
-        pandn   xmm7,xmm10
-        pand    xmm6,xmm14
-        punpckldq       xmm4,xmm9
-        movdqa  xmm9,xmm12
-
-        movdqa  XMMWORD[(128-128)+rax],xmm3
-        paddd   xmm11,xmm3
-        movd    xmm0,DWORD[((-24))+r8]
-        psrld   xmm9,27
-        pxor    xmm6,xmm7
-        movdqa  xmm7,xmm13
-
-        por     xmm8,xmm9
-        movd    xmm9,DWORD[((-24))+r9]
-        pslld   xmm7,30
-        paddd   xmm11,xmm6
-
-        psrld   xmm13,2
-        paddd   xmm11,xmm8
-DB      102,15,56,0,229
-        movd    xmm8,DWORD[((-24))+r10]
-        por     xmm13,xmm7
-        movd    xmm7,DWORD[((-24))+r11]
-        punpckldq       xmm0,xmm8
-        movdqa  xmm8,xmm11
-        paddd   xmm10,xmm15
-        punpckldq       xmm9,xmm7
-        movdqa  xmm7,xmm12
-        movdqa  xmm6,xmm12
-        pslld   xmm8,5
-        pandn   xmm7,xmm14
-        pand    xmm6,xmm13
-        punpckldq       xmm0,xmm9
-        movdqa  xmm9,xmm11
-
-        movdqa  XMMWORD[(144-128)+rax],xmm4
-        paddd   xmm10,xmm4
-        movd    xmm1,DWORD[((-20))+r8]
-        psrld   xmm9,27
-        pxor    xmm6,xmm7
-        movdqa  xmm7,xmm12
-
-        por     xmm8,xmm9
-        movd    xmm9,DWORD[((-20))+r9]
-        pslld   xmm7,30
-        paddd   xmm10,xmm6
-
-        psrld   xmm12,2
-        paddd   xmm10,xmm8
-DB      102,15,56,0,197
-        movd    xmm8,DWORD[((-20))+r10]
-        por     xmm12,xmm7
-        movd    xmm7,DWORD[((-20))+r11]
-        punpckldq       xmm1,xmm8
-        movdqa  xmm8,xmm10
-        paddd   xmm14,xmm15
-        punpckldq       xmm9,xmm7
-        movdqa  xmm7,xmm11
-        movdqa  xmm6,xmm11
-        pslld   xmm8,5
-        pandn   xmm7,xmm13
-        pand    xmm6,xmm12
-        punpckldq       xmm1,xmm9
-        movdqa  xmm9,xmm10
-
-        movdqa  XMMWORD[(160-128)+rax],xmm0
-        paddd   xmm14,xmm0
-        movd    xmm2,DWORD[((-16))+r8]
-        psrld   xmm9,27
-        pxor    xmm6,xmm7
-        movdqa  xmm7,xmm11
-
-        por     xmm8,xmm9
-        movd    xmm9,DWORD[((-16))+r9]
-        pslld   xmm7,30
-        paddd   xmm14,xmm6
-
-        psrld   xmm11,2
-        paddd   xmm14,xmm8
-DB      102,15,56,0,205
-        movd    xmm8,DWORD[((-16))+r10]
-        por     xmm11,xmm7
-        movd    xmm7,DWORD[((-16))+r11]
-        punpckldq       xmm2,xmm8
-        movdqa  xmm8,xmm14
-        paddd   xmm13,xmm15
-        punpckldq       xmm9,xmm7
-        movdqa  xmm7,xmm10
-        movdqa  xmm6,xmm10
-        pslld   xmm8,5
-        pandn   xmm7,xmm12
-        pand    xmm6,xmm11
-        punpckldq       xmm2,xmm9
-        movdqa  xmm9,xmm14
-
-        movdqa  XMMWORD[(176-128)+rax],xmm1
-        paddd   xmm13,xmm1
-        movd    xmm3,DWORD[((-12))+r8]
-        psrld   xmm9,27
-        pxor    xmm6,xmm7
-        movdqa  xmm7,xmm10
-
-        por     xmm8,xmm9
-        movd    xmm9,DWORD[((-12))+r9]
-        pslld   xmm7,30
-        paddd   xmm13,xmm6
-
-        psrld   xmm10,2
-        paddd   xmm13,xmm8
-DB      102,15,56,0,213
-        movd    xmm8,DWORD[((-12))+r10]
-        por     xmm10,xmm7
-        movd    xmm7,DWORD[((-12))+r11]
-        punpckldq       xmm3,xmm8
-        movdqa  xmm8,xmm13
-        paddd   xmm12,xmm15
-        punpckldq       xmm9,xmm7
-        movdqa  xmm7,xmm14
-        movdqa  xmm6,xmm14
-        pslld   xmm8,5
-        pandn   xmm7,xmm11
-        pand    xmm6,xmm10
-        punpckldq       xmm3,xmm9
-        movdqa  xmm9,xmm13
-
-        movdqa  XMMWORD[(192-128)+rax],xmm2
-        paddd   xmm12,xmm2
-        movd    xmm4,DWORD[((-8))+r8]
-        psrld   xmm9,27
-        pxor    xmm6,xmm7
-        movdqa  xmm7,xmm14
-
-        por     xmm8,xmm9
-        movd    xmm9,DWORD[((-8))+r9]
-        pslld   xmm7,30
-        paddd   xmm12,xmm6
-
-        psrld   xmm14,2
-        paddd   xmm12,xmm8
-DB      102,15,56,0,221
-        movd    xmm8,DWORD[((-8))+r10]
-        por     xmm14,xmm7
-        movd    xmm7,DWORD[((-8))+r11]
-        punpckldq       xmm4,xmm8
-        movdqa  xmm8,xmm12
-        paddd   xmm11,xmm15
-        punpckldq       xmm9,xmm7
-        movdqa  xmm7,xmm13
-        movdqa  xmm6,xmm13
-        pslld   xmm8,5
-        pandn   xmm7,xmm10
-        pand    xmm6,xmm14
-        punpckldq       xmm4,xmm9
-        movdqa  xmm9,xmm12
-
-        movdqa  XMMWORD[(208-128)+rax],xmm3
-        paddd   xmm11,xmm3
-        movd    xmm0,DWORD[((-4))+r8]
-        psrld   xmm9,27
-        pxor    xmm6,xmm7
-        movdqa  xmm7,xmm13
-
-        por     xmm8,xmm9
-        movd    xmm9,DWORD[((-4))+r9]
-        pslld   xmm7,30
-        paddd   xmm11,xmm6
-
-        psrld   xmm13,2
-        paddd   xmm11,xmm8
-DB      102,15,56,0,229
-        movd    xmm8,DWORD[((-4))+r10]
-        por     xmm13,xmm7
-        movdqa  xmm1,XMMWORD[((0-128))+rax]
-        movd    xmm7,DWORD[((-4))+r11]
-        punpckldq       xmm0,xmm8
-        movdqa  xmm8,xmm11
-        paddd   xmm10,xmm15
-        punpckldq       xmm9,xmm7
-        movdqa  xmm7,xmm12
-        movdqa  xmm6,xmm12
-        pslld   xmm8,5
-        prefetcht0      [63+r8]
-        pandn   xmm7,xmm14
-        pand    xmm6,xmm13
-        punpckldq       xmm0,xmm9
-        movdqa  xmm9,xmm11
-
-        movdqa  XMMWORD[(224-128)+rax],xmm4
-        paddd   xmm10,xmm4
-        psrld   xmm9,27
-        pxor    xmm6,xmm7
-        movdqa  xmm7,xmm12
-        prefetcht0      [63+r9]
-
-        por     xmm8,xmm9
-        pslld   xmm7,30
-        paddd   xmm10,xmm6
-        prefetcht0      [63+r10]
-
-        psrld   xmm12,2
-        paddd   xmm10,xmm8
-DB      102,15,56,0,197
-        prefetcht0      [63+r11]
-        por     xmm12,xmm7
-        movdqa  xmm2,XMMWORD[((16-128))+rax]
-        pxor    xmm1,xmm3
-        movdqa  xmm3,XMMWORD[((32-128))+rax]
-
-        movdqa  xmm8,xmm10
-        pxor    xmm1,XMMWORD[((128-128))+rax]
-        paddd   xmm14,xmm15
-        movdqa  xmm7,xmm11
-        pslld   xmm8,5
-        pxor    xmm1,xmm3
-        movdqa  xmm6,xmm11
-        pandn   xmm7,xmm13
-        movdqa  xmm5,xmm1
-        pand    xmm6,xmm12
-        movdqa  xmm9,xmm10
-        psrld   xmm5,31
-        paddd   xmm1,xmm1
-
-        movdqa  XMMWORD[(240-128)+rax],xmm0
-        paddd   xmm14,xmm0
-        psrld   xmm9,27
-        pxor    xmm6,xmm7
-
-        movdqa  xmm7,xmm11
-        por     xmm8,xmm9
-        pslld   xmm7,30
-        paddd   xmm14,xmm6
-
-        psrld   xmm11,2
-        paddd   xmm14,xmm8
-        por     xmm1,xmm5
-        por     xmm11,xmm7
-        pxor    xmm2,xmm4
-        movdqa  xmm4,XMMWORD[((48-128))+rax]
-
-        movdqa  xmm8,xmm14
-        pxor    xmm2,XMMWORD[((144-128))+rax]
-        paddd   xmm13,xmm15
-        movdqa  xmm7,xmm10
-        pslld   xmm8,5
-        pxor    xmm2,xmm4
-        movdqa  xmm6,xmm10
-        pandn   xmm7,xmm12
-        movdqa  xmm5,xmm2
-        pand    xmm6,xmm11
-        movdqa  xmm9,xmm14
-        psrld   xmm5,31
-        paddd   xmm2,xmm2
-
-        movdqa  XMMWORD[(0-128)+rax],xmm1
-        paddd   xmm13,xmm1
-        psrld   xmm9,27
-        pxor    xmm6,xmm7
-
-        movdqa  xmm7,xmm10
-        por     xmm8,xmm9
-        pslld   xmm7,30
-        paddd   xmm13,xmm6
-
-        psrld   xmm10,2
-        paddd   xmm13,xmm8
-        por     xmm2,xmm5
-        por     xmm10,xmm7
-        pxor    xmm3,xmm0
-        movdqa  xmm0,XMMWORD[((64-128))+rax]
-
-        movdqa  xmm8,xmm13
-        pxor    xmm3,XMMWORD[((160-128))+rax]
-        paddd   xmm12,xmm15
-        movdqa  xmm7,xmm14
-        pslld   xmm8,5
-        pxor    xmm3,xmm0
-        movdqa  xmm6,xmm14
-        pandn   xmm7,xmm11
-        movdqa  xmm5,xmm3
-        pand    xmm6,xmm10
-        movdqa  xmm9,xmm13
-        psrld   xmm5,31
-        paddd   xmm3,xmm3
-
-        movdqa  XMMWORD[(16-128)+rax],xmm2
-        paddd   xmm12,xmm2
-        psrld   xmm9,27
-        pxor    xmm6,xmm7
-
-        movdqa  xmm7,xmm14
-        por     xmm8,xmm9
-        pslld   xmm7,30
-        paddd   xmm12,xmm6
-
-        psrld   xmm14,2
-        paddd   xmm12,xmm8
-        por     xmm3,xmm5
-        por     xmm14,xmm7
-        pxor    xmm4,xmm1
-        movdqa  xmm1,XMMWORD[((80-128))+rax]
-
-        movdqa  xmm8,xmm12
-        pxor    xmm4,XMMWORD[((176-128))+rax]
-        paddd   xmm11,xmm15
-        movdqa  xmm7,xmm13
-        pslld   xmm8,5
-        pxor    xmm4,xmm1
-        movdqa  xmm6,xmm13
-        pandn   xmm7,xmm10
-        movdqa  xmm5,xmm4
-        pand    xmm6,xmm14
-        movdqa  xmm9,xmm12
-        psrld   xmm5,31
-        paddd   xmm4,xmm4
-
-        movdqa  XMMWORD[(32-128)+rax],xmm3
-        paddd   xmm11,xmm3
-        psrld   xmm9,27
-        pxor    xmm6,xmm7
-
-        movdqa  xmm7,xmm13
-        por     xmm8,xmm9
-        pslld   xmm7,30
-        paddd   xmm11,xmm6
-
-        psrld   xmm13,2
-        paddd   xmm11,xmm8
-        por     xmm4,xmm5
-        por     xmm13,xmm7
-        pxor    xmm0,xmm2
-        movdqa  xmm2,XMMWORD[((96-128))+rax]
-
-        movdqa  xmm8,xmm11
-        pxor    xmm0,XMMWORD[((192-128))+rax]
-        paddd   xmm10,xmm15
-        movdqa  xmm7,xmm12
-        pslld   xmm8,5
-        pxor    xmm0,xmm2
-        movdqa  xmm6,xmm12
-        pandn   xmm7,xmm14
-        movdqa  xmm5,xmm0
-        pand    xmm6,xmm13
-        movdqa  xmm9,xmm11
-        psrld   xmm5,31
-        paddd   xmm0,xmm0
-
-        movdqa  XMMWORD[(48-128)+rax],xmm4
-        paddd   xmm10,xmm4
-        psrld   xmm9,27
-        pxor    xmm6,xmm7
-
-        movdqa  xmm7,xmm12
-        por     xmm8,xmm9
-        pslld   xmm7,30
-        paddd   xmm10,xmm6
-
-        psrld   xmm12,2
-        paddd   xmm10,xmm8
-        por     xmm0,xmm5
-        por     xmm12,xmm7
-        movdqa  xmm15,XMMWORD[rbp]
-        pxor    xmm1,xmm3
-        movdqa  xmm3,XMMWORD[((112-128))+rax]
-
-        movdqa  xmm8,xmm10
-        movdqa  xmm6,xmm13
-        pxor    xmm1,XMMWORD[((208-128))+rax]
-        paddd   xmm14,xmm15
-        pslld   xmm8,5
-        pxor    xmm6,xmm11
-
-        movdqa  xmm9,xmm10
-        movdqa  XMMWORD[(64-128)+rax],xmm0
-        paddd   xmm14,xmm0
-        pxor    xmm1,xmm3
-        psrld   xmm9,27
-        pxor    xmm6,xmm12
-        movdqa  xmm7,xmm11
-
-        pslld   xmm7,30
-        movdqa  xmm5,xmm1
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        paddd   xmm14,xmm6
-        paddd   xmm1,xmm1
-
-        psrld   xmm11,2
-        paddd   xmm14,xmm8
-        por     xmm1,xmm5
-        por     xmm11,xmm7
-        pxor    xmm2,xmm4
-        movdqa  xmm4,XMMWORD[((128-128))+rax]
-
-        movdqa  xmm8,xmm14
-        movdqa  xmm6,xmm12
-        pxor    xmm2,XMMWORD[((224-128))+rax]
-        paddd   xmm13,xmm15
-        pslld   xmm8,5
-        pxor    xmm6,xmm10
-
-        movdqa  xmm9,xmm14
-        movdqa  XMMWORD[(80-128)+rax],xmm1
-        paddd   xmm13,xmm1
-        pxor    xmm2,xmm4
-        psrld   xmm9,27
-        pxor    xmm6,xmm11
-        movdqa  xmm7,xmm10
-
-        pslld   xmm7,30
-        movdqa  xmm5,xmm2
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        paddd   xmm13,xmm6
-        paddd   xmm2,xmm2
-
-        psrld   xmm10,2
-        paddd   xmm13,xmm8
-        por     xmm2,xmm5
-        por     xmm10,xmm7
-        pxor    xmm3,xmm0
-        movdqa  xmm0,XMMWORD[((144-128))+rax]
-
-        movdqa  xmm8,xmm13
-        movdqa  xmm6,xmm11
-        pxor    xmm3,XMMWORD[((240-128))+rax]
-        paddd   xmm12,xmm15
-        pslld   xmm8,5
-        pxor    xmm6,xmm14
-
-        movdqa  xmm9,xmm13
-        movdqa  XMMWORD[(96-128)+rax],xmm2
-        paddd   xmm12,xmm2
-        pxor    xmm3,xmm0
-        psrld   xmm9,27
-        pxor    xmm6,xmm10
-        movdqa  xmm7,xmm14
-
-        pslld   xmm7,30
-        movdqa  xmm5,xmm3
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        paddd   xmm12,xmm6
-        paddd   xmm3,xmm3
-
-        psrld   xmm14,2
-        paddd   xmm12,xmm8
-        por     xmm3,xmm5
-        por     xmm14,xmm7
-        pxor    xmm4,xmm1
-        movdqa  xmm1,XMMWORD[((160-128))+rax]
-
-        movdqa  xmm8,xmm12
-        movdqa  xmm6,xmm10
-        pxor    xmm4,XMMWORD[((0-128))+rax]
-        paddd   xmm11,xmm15
-        pslld   xmm8,5
-        pxor    xmm6,xmm13
-
-        movdqa  xmm9,xmm12
-        movdqa  XMMWORD[(112-128)+rax],xmm3
-        paddd   xmm11,xmm3
-        pxor    xmm4,xmm1
-        psrld   xmm9,27
-        pxor    xmm6,xmm14
-        movdqa  xmm7,xmm13
-
-        pslld   xmm7,30
-        movdqa  xmm5,xmm4
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        paddd   xmm11,xmm6
-        paddd   xmm4,xmm4
-
-        psrld   xmm13,2
-        paddd   xmm11,xmm8
-        por     xmm4,xmm5
-        por     xmm13,xmm7
-        pxor    xmm0,xmm2
-        movdqa  xmm2,XMMWORD[((176-128))+rax]
-
-        movdqa  xmm8,xmm11
-        movdqa  xmm6,xmm14
-        pxor    xmm0,XMMWORD[((16-128))+rax]
-        paddd   xmm10,xmm15
-        pslld   xmm8,5
-        pxor    xmm6,xmm12
-
-        movdqa  xmm9,xmm11
-        movdqa  XMMWORD[(128-128)+rax],xmm4
-        paddd   xmm10,xmm4
-        pxor    xmm0,xmm2
-        psrld   xmm9,27
-        pxor    xmm6,xmm13
-        movdqa  xmm7,xmm12
-
-        pslld   xmm7,30
-        movdqa  xmm5,xmm0
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        paddd   xmm10,xmm6
-        paddd   xmm0,xmm0
-
-        psrld   xmm12,2
-        paddd   xmm10,xmm8
-        por     xmm0,xmm5
-        por     xmm12,xmm7
-        pxor    xmm1,xmm3
-        movdqa  xmm3,XMMWORD[((192-128))+rax]
-
-        movdqa  xmm8,xmm10
-        movdqa  xmm6,xmm13
-        pxor    xmm1,XMMWORD[((32-128))+rax]
-        paddd   xmm14,xmm15
-        pslld   xmm8,5
-        pxor    xmm6,xmm11
-
-        movdqa  xmm9,xmm10
-        movdqa  XMMWORD[(144-128)+rax],xmm0
-        paddd   xmm14,xmm0
-        pxor    xmm1,xmm3
-        psrld   xmm9,27
-        pxor    xmm6,xmm12
-        movdqa  xmm7,xmm11
-
-        pslld   xmm7,30
-        movdqa  xmm5,xmm1
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        paddd   xmm14,xmm6
-        paddd   xmm1,xmm1
-
-        psrld   xmm11,2
-        paddd   xmm14,xmm8
-        por     xmm1,xmm5
-        por     xmm11,xmm7
-        pxor    xmm2,xmm4
-        movdqa  xmm4,XMMWORD[((208-128))+rax]
-
-        movdqa  xmm8,xmm14
-        movdqa  xmm6,xmm12
-        pxor    xmm2,XMMWORD[((48-128))+rax]
-        paddd   xmm13,xmm15
-        pslld   xmm8,5
-        pxor    xmm6,xmm10
-
-        movdqa  xmm9,xmm14
-        movdqa  XMMWORD[(160-128)+rax],xmm1
-        paddd   xmm13,xmm1
-        pxor    xmm2,xmm4
-        psrld   xmm9,27
-        pxor    xmm6,xmm11
-        movdqa  xmm7,xmm10
-
-        pslld   xmm7,30
-        movdqa  xmm5,xmm2
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        paddd   xmm13,xmm6
-        paddd   xmm2,xmm2
-
-        psrld   xmm10,2
-        paddd   xmm13,xmm8
-        por     xmm2,xmm5
-        por     xmm10,xmm7
-        pxor    xmm3,xmm0
-        movdqa  xmm0,XMMWORD[((224-128))+rax]
-
-        movdqa  xmm8,xmm13
-        movdqa  xmm6,xmm11
-        pxor    xmm3,XMMWORD[((64-128))+rax]
-        paddd   xmm12,xmm15
-        pslld   xmm8,5
-        pxor    xmm6,xmm14
-
-        movdqa  xmm9,xmm13
-        movdqa  XMMWORD[(176-128)+rax],xmm2
-        paddd   xmm12,xmm2
-        pxor    xmm3,xmm0
-        psrld   xmm9,27
-        pxor    xmm6,xmm10
-        movdqa  xmm7,xmm14
-
-        pslld   xmm7,30
-        movdqa  xmm5,xmm3
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        paddd   xmm12,xmm6
-        paddd   xmm3,xmm3
-
-        psrld   xmm14,2
-        paddd   xmm12,xmm8
-        por     xmm3,xmm5
-        por     xmm14,xmm7
-        pxor    xmm4,xmm1
-        movdqa  xmm1,XMMWORD[((240-128))+rax]
-
-        movdqa  xmm8,xmm12
-        movdqa  xmm6,xmm10
-        pxor    xmm4,XMMWORD[((80-128))+rax]
-        paddd   xmm11,xmm15
-        pslld   xmm8,5
-        pxor    xmm6,xmm13
-
-        movdqa  xmm9,xmm12
-        movdqa  XMMWORD[(192-128)+rax],xmm3
-        paddd   xmm11,xmm3
-        pxor    xmm4,xmm1
-        psrld   xmm9,27
-        pxor    xmm6,xmm14
-        movdqa  xmm7,xmm13
-
-        pslld   xmm7,30
-        movdqa  xmm5,xmm4
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        paddd   xmm11,xmm6
-        paddd   xmm4,xmm4
-
-        psrld   xmm13,2
-        paddd   xmm11,xmm8
-        por     xmm4,xmm5
-        por     xmm13,xmm7
-        pxor    xmm0,xmm2
-        movdqa  xmm2,XMMWORD[((0-128))+rax]
-
-        movdqa  xmm8,xmm11
-        movdqa  xmm6,xmm14
-        pxor    xmm0,XMMWORD[((96-128))+rax]
-        paddd   xmm10,xmm15
-        pslld   xmm8,5
-        pxor    xmm6,xmm12
-
-        movdqa  xmm9,xmm11
-        movdqa  XMMWORD[(208-128)+rax],xmm4
-        paddd   xmm10,xmm4
-        pxor    xmm0,xmm2
-        psrld   xmm9,27
-        pxor    xmm6,xmm13
-        movdqa  xmm7,xmm12
-
-        pslld   xmm7,30
-        movdqa  xmm5,xmm0
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        paddd   xmm10,xmm6
-        paddd   xmm0,xmm0
-
-        psrld   xmm12,2
-        paddd   xmm10,xmm8
-        por     xmm0,xmm5
-        por     xmm12,xmm7
-        pxor    xmm1,xmm3
-        movdqa  xmm3,XMMWORD[((16-128))+rax]
-
-        movdqa  xmm8,xmm10
-        movdqa  xmm6,xmm13
-        pxor    xmm1,XMMWORD[((112-128))+rax]
-        paddd   xmm14,xmm15
-        pslld   xmm8,5
-        pxor    xmm6,xmm11
-
-        movdqa  xmm9,xmm10
-        movdqa  XMMWORD[(224-128)+rax],xmm0
-        paddd   xmm14,xmm0
-        pxor    xmm1,xmm3
-        psrld   xmm9,27
-        pxor    xmm6,xmm12
-        movdqa  xmm7,xmm11
-
-        pslld   xmm7,30
-        movdqa  xmm5,xmm1
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        paddd   xmm14,xmm6
-        paddd   xmm1,xmm1
-
-        psrld   xmm11,2
-        paddd   xmm14,xmm8
-        por     xmm1,xmm5
-        por     xmm11,xmm7
-        pxor    xmm2,xmm4
-        movdqa  xmm4,XMMWORD[((32-128))+rax]
-
-        movdqa  xmm8,xmm14
-        movdqa  xmm6,xmm12
-        pxor    xmm2,XMMWORD[((128-128))+rax]
-        paddd   xmm13,xmm15
-        pslld   xmm8,5
-        pxor    xmm6,xmm10
-
-        movdqa  xmm9,xmm14
-        movdqa  XMMWORD[(240-128)+rax],xmm1
-        paddd   xmm13,xmm1
-        pxor    xmm2,xmm4
-        psrld   xmm9,27
-        pxor    xmm6,xmm11
-        movdqa  xmm7,xmm10
-
-        pslld   xmm7,30
-        movdqa  xmm5,xmm2
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        paddd   xmm13,xmm6
-        paddd   xmm2,xmm2
-
-        psrld   xmm10,2
-        paddd   xmm13,xmm8
-        por     xmm2,xmm5
-        por     xmm10,xmm7
-        pxor    xmm3,xmm0
-        movdqa  xmm0,XMMWORD[((48-128))+rax]
-
-        movdqa  xmm8,xmm13
-        movdqa  xmm6,xmm11
-        pxor    xmm3,XMMWORD[((144-128))+rax]
-        paddd   xmm12,xmm15
-        pslld   xmm8,5
-        pxor    xmm6,xmm14
-
-        movdqa  xmm9,xmm13
-        movdqa  XMMWORD[(0-128)+rax],xmm2
-        paddd   xmm12,xmm2
-        pxor    xmm3,xmm0
-        psrld   xmm9,27
-        pxor    xmm6,xmm10
-        movdqa  xmm7,xmm14
-
-        pslld   xmm7,30
-        movdqa  xmm5,xmm3
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        paddd   xmm12,xmm6
-        paddd   xmm3,xmm3
-
-        psrld   xmm14,2
-        paddd   xmm12,xmm8
-        por     xmm3,xmm5
-        por     xmm14,xmm7
-        pxor    xmm4,xmm1
-        movdqa  xmm1,XMMWORD[((64-128))+rax]
-
-        movdqa  xmm8,xmm12
-        movdqa  xmm6,xmm10
-        pxor    xmm4,XMMWORD[((160-128))+rax]
-        paddd   xmm11,xmm15
-        pslld   xmm8,5
-        pxor    xmm6,xmm13
-
-        movdqa  xmm9,xmm12
-        movdqa  XMMWORD[(16-128)+rax],xmm3
-        paddd   xmm11,xmm3
-        pxor    xmm4,xmm1
-        psrld   xmm9,27
-        pxor    xmm6,xmm14
-        movdqa  xmm7,xmm13
-
-        pslld   xmm7,30
-        movdqa  xmm5,xmm4
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        paddd   xmm11,xmm6
-        paddd   xmm4,xmm4
-
-        psrld   xmm13,2
-        paddd   xmm11,xmm8
-        por     xmm4,xmm5
-        por     xmm13,xmm7
-        pxor    xmm0,xmm2
-        movdqa  xmm2,XMMWORD[((80-128))+rax]
-
-        movdqa  xmm8,xmm11
-        movdqa  xmm6,xmm14
-        pxor    xmm0,XMMWORD[((176-128))+rax]
-        paddd   xmm10,xmm15
-        pslld   xmm8,5
-        pxor    xmm6,xmm12
-
-        movdqa  xmm9,xmm11
-        movdqa  XMMWORD[(32-128)+rax],xmm4
-        paddd   xmm10,xmm4
-        pxor    xmm0,xmm2
-        psrld   xmm9,27
-        pxor    xmm6,xmm13
-        movdqa  xmm7,xmm12
-
-        pslld   xmm7,30
-        movdqa  xmm5,xmm0
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        paddd   xmm10,xmm6
-        paddd   xmm0,xmm0
-
-        psrld   xmm12,2
-        paddd   xmm10,xmm8
-        por     xmm0,xmm5
-        por     xmm12,xmm7
-        pxor    xmm1,xmm3
-        movdqa  xmm3,XMMWORD[((96-128))+rax]
-
-        movdqa  xmm8,xmm10
-        movdqa  xmm6,xmm13
-        pxor    xmm1,XMMWORD[((192-128))+rax]
-        paddd   xmm14,xmm15
-        pslld   xmm8,5
-        pxor    xmm6,xmm11
-
-        movdqa  xmm9,xmm10
-        movdqa  XMMWORD[(48-128)+rax],xmm0
-        paddd   xmm14,xmm0
-        pxor    xmm1,xmm3
-        psrld   xmm9,27
-        pxor    xmm6,xmm12
-        movdqa  xmm7,xmm11
-
-        pslld   xmm7,30
-        movdqa  xmm5,xmm1
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        paddd   xmm14,xmm6
-        paddd   xmm1,xmm1
-
-        psrld   xmm11,2
-        paddd   xmm14,xmm8
-        por     xmm1,xmm5
-        por     xmm11,xmm7
-        pxor    xmm2,xmm4
-        movdqa  xmm4,XMMWORD[((112-128))+rax]
-
-        movdqa  xmm8,xmm14
-        movdqa  xmm6,xmm12
-        pxor    xmm2,XMMWORD[((208-128))+rax]
-        paddd   xmm13,xmm15
-        pslld   xmm8,5
-        pxor    xmm6,xmm10
-
-        movdqa  xmm9,xmm14
-        movdqa  XMMWORD[(64-128)+rax],xmm1
-        paddd   xmm13,xmm1
-        pxor    xmm2,xmm4
-        psrld   xmm9,27
-        pxor    xmm6,xmm11
-        movdqa  xmm7,xmm10
-
-        pslld   xmm7,30
-        movdqa  xmm5,xmm2
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        paddd   xmm13,xmm6
-        paddd   xmm2,xmm2
-
-        psrld   xmm10,2
-        paddd   xmm13,xmm8
-        por     xmm2,xmm5
-        por     xmm10,xmm7
-        pxor    xmm3,xmm0
-        movdqa  xmm0,XMMWORD[((128-128))+rax]
-
-        movdqa  xmm8,xmm13
-        movdqa  xmm6,xmm11
-        pxor    xmm3,XMMWORD[((224-128))+rax]
-        paddd   xmm12,xmm15
-        pslld   xmm8,5
-        pxor    xmm6,xmm14
-
-        movdqa  xmm9,xmm13
-        movdqa  XMMWORD[(80-128)+rax],xmm2
-        paddd   xmm12,xmm2
-        pxor    xmm3,xmm0
-        psrld   xmm9,27
-        pxor    xmm6,xmm10
-        movdqa  xmm7,xmm14
-
-        pslld   xmm7,30
-        movdqa  xmm5,xmm3
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        paddd   xmm12,xmm6
-        paddd   xmm3,xmm3
-
-        psrld   xmm14,2
-        paddd   xmm12,xmm8
-        por     xmm3,xmm5
-        por     xmm14,xmm7
-        pxor    xmm4,xmm1
-        movdqa  xmm1,XMMWORD[((144-128))+rax]
-
-        movdqa  xmm8,xmm12
-        movdqa  xmm6,xmm10
-        pxor    xmm4,XMMWORD[((240-128))+rax]
-        paddd   xmm11,xmm15
-        pslld   xmm8,5
-        pxor    xmm6,xmm13
-
-        movdqa  xmm9,xmm12
-        movdqa  XMMWORD[(96-128)+rax],xmm3
-        paddd   xmm11,xmm3
-        pxor    xmm4,xmm1
-        psrld   xmm9,27
-        pxor    xmm6,xmm14
-        movdqa  xmm7,xmm13
-
-        pslld   xmm7,30
-        movdqa  xmm5,xmm4
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        paddd   xmm11,xmm6
-        paddd   xmm4,xmm4
-
-        psrld   xmm13,2
-        paddd   xmm11,xmm8
-        por     xmm4,xmm5
-        por     xmm13,xmm7
-        pxor    xmm0,xmm2
-        movdqa  xmm2,XMMWORD[((160-128))+rax]
-
-        movdqa  xmm8,xmm11
-        movdqa  xmm6,xmm14
-        pxor    xmm0,XMMWORD[((0-128))+rax]
-        paddd   xmm10,xmm15
-        pslld   xmm8,5
-        pxor    xmm6,xmm12
-
-        movdqa  xmm9,xmm11
-        movdqa  XMMWORD[(112-128)+rax],xmm4
-        paddd   xmm10,xmm4
-        pxor    xmm0,xmm2
-        psrld   xmm9,27
-        pxor    xmm6,xmm13
-        movdqa  xmm7,xmm12
-
-        pslld   xmm7,30
-        movdqa  xmm5,xmm0
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        paddd   xmm10,xmm6
-        paddd   xmm0,xmm0
-
-        psrld   xmm12,2
-        paddd   xmm10,xmm8
-        por     xmm0,xmm5
-        por     xmm12,xmm7
-        movdqa  xmm15,XMMWORD[32+rbp]
-        pxor    xmm1,xmm3
-        movdqa  xmm3,XMMWORD[((176-128))+rax]
-
-        movdqa  xmm8,xmm10
-        movdqa  xmm7,xmm13
-        pxor    xmm1,XMMWORD[((16-128))+rax]
-        pxor    xmm1,xmm3
-        paddd   xmm14,xmm15
-        pslld   xmm8,5
-        movdqa  xmm9,xmm10
-        pand    xmm7,xmm12
-
-        movdqa  xmm6,xmm13
-        movdqa  xmm5,xmm1
-        psrld   xmm9,27
-        paddd   xmm14,xmm7
-        pxor    xmm6,xmm12
-
-        movdqa  XMMWORD[(128-128)+rax],xmm0
-        paddd   xmm14,xmm0
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        pand    xmm6,xmm11
-        movdqa  xmm7,xmm11
-
-        pslld   xmm7,30
-        paddd   xmm1,xmm1
-        paddd   xmm14,xmm6
-
-        psrld   xmm11,2
-        paddd   xmm14,xmm8
-        por     xmm1,xmm5
-        por     xmm11,xmm7
-        pxor    xmm2,xmm4
-        movdqa  xmm4,XMMWORD[((192-128))+rax]
-
-        movdqa  xmm8,xmm14
-        movdqa  xmm7,xmm12
-        pxor    xmm2,XMMWORD[((32-128))+rax]
-        pxor    xmm2,xmm4
-        paddd   xmm13,xmm15
-        pslld   xmm8,5
-        movdqa  xmm9,xmm14
-        pand    xmm7,xmm11
-
-        movdqa  xmm6,xmm12
-        movdqa  xmm5,xmm2
-        psrld   xmm9,27
-        paddd   xmm13,xmm7
-        pxor    xmm6,xmm11
-
-        movdqa  XMMWORD[(144-128)+rax],xmm1
-        paddd   xmm13,xmm1
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        pand    xmm6,xmm10
-        movdqa  xmm7,xmm10
-
-        pslld   xmm7,30
-        paddd   xmm2,xmm2
-        paddd   xmm13,xmm6
-
-        psrld   xmm10,2
-        paddd   xmm13,xmm8
-        por     xmm2,xmm5
-        por     xmm10,xmm7
-        pxor    xmm3,xmm0
-        movdqa  xmm0,XMMWORD[((208-128))+rax]
-
-        movdqa  xmm8,xmm13
-        movdqa  xmm7,xmm11
-        pxor    xmm3,XMMWORD[((48-128))+rax]
-        pxor    xmm3,xmm0
-        paddd   xmm12,xmm15
-        pslld   xmm8,5
-        movdqa  xmm9,xmm13
-        pand    xmm7,xmm10
-
-        movdqa  xmm6,xmm11
-        movdqa  xmm5,xmm3
-        psrld   xmm9,27
-        paddd   xmm12,xmm7
-        pxor    xmm6,xmm10
-
-        movdqa  XMMWORD[(160-128)+rax],xmm2
-        paddd   xmm12,xmm2
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        pand    xmm6,xmm14
-        movdqa  xmm7,xmm14
-
-        pslld   xmm7,30
-        paddd   xmm3,xmm3
-        paddd   xmm12,xmm6
-
-        psrld   xmm14,2
-        paddd   xmm12,xmm8
-        por     xmm3,xmm5
-        por     xmm14,xmm7
-        pxor    xmm4,xmm1
-        movdqa  xmm1,XMMWORD[((224-128))+rax]
-
-        movdqa  xmm8,xmm12
-        movdqa  xmm7,xmm10
-        pxor    xmm4,XMMWORD[((64-128))+rax]
-        pxor    xmm4,xmm1
-        paddd   xmm11,xmm15
-        pslld   xmm8,5
-        movdqa  xmm9,xmm12
-        pand    xmm7,xmm14
-
-        movdqa  xmm6,xmm10
-        movdqa  xmm5,xmm4
-        psrld   xmm9,27
-        paddd   xmm11,xmm7
-        pxor    xmm6,xmm14
-
-        movdqa  XMMWORD[(176-128)+rax],xmm3
-        paddd   xmm11,xmm3
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        pand    xmm6,xmm13
-        movdqa  xmm7,xmm13
-
-        pslld   xmm7,30
-        paddd   xmm4,xmm4
-        paddd   xmm11,xmm6
-
-        psrld   xmm13,2
-        paddd   xmm11,xmm8
-        por     xmm4,xmm5
-        por     xmm13,xmm7
-        pxor    xmm0,xmm2
-        movdqa  xmm2,XMMWORD[((240-128))+rax]
-
-        movdqa  xmm8,xmm11
-        movdqa  xmm7,xmm14
-        pxor    xmm0,XMMWORD[((80-128))+rax]
-        pxor    xmm0,xmm2
-        paddd   xmm10,xmm15
-        pslld   xmm8,5
-        movdqa  xmm9,xmm11
-        pand    xmm7,xmm13
-
-        movdqa  xmm6,xmm14
-        movdqa  xmm5,xmm0
-        psrld   xmm9,27
-        paddd   xmm10,xmm7
-        pxor    xmm6,xmm13
-
-        movdqa  XMMWORD[(192-128)+rax],xmm4
-        paddd   xmm10,xmm4
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        pand    xmm6,xmm12
-        movdqa  xmm7,xmm12
-
-        pslld   xmm7,30
-        paddd   xmm0,xmm0
-        paddd   xmm10,xmm6
-
-        psrld   xmm12,2
-        paddd   xmm10,xmm8
-        por     xmm0,xmm5
-        por     xmm12,xmm7
-        pxor    xmm1,xmm3
-        movdqa  xmm3,XMMWORD[((0-128))+rax]
-
-        movdqa  xmm8,xmm10
-        movdqa  xmm7,xmm13
-        pxor    xmm1,XMMWORD[((96-128))+rax]
-        pxor    xmm1,xmm3
-        paddd   xmm14,xmm15
-        pslld   xmm8,5
-        movdqa  xmm9,xmm10
-        pand    xmm7,xmm12
-
-        movdqa  xmm6,xmm13
-        movdqa  xmm5,xmm1
-        psrld   xmm9,27
-        paddd   xmm14,xmm7
-        pxor    xmm6,xmm12
-
-        movdqa  XMMWORD[(208-128)+rax],xmm0
-        paddd   xmm14,xmm0
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        pand    xmm6,xmm11
-        movdqa  xmm7,xmm11
-
-        pslld   xmm7,30
-        paddd   xmm1,xmm1
-        paddd   xmm14,xmm6
-
-        psrld   xmm11,2
-        paddd   xmm14,xmm8
-        por     xmm1,xmm5
-        por     xmm11,xmm7
-        pxor    xmm2,xmm4
-        movdqa  xmm4,XMMWORD[((16-128))+rax]
-
-        movdqa  xmm8,xmm14
-        movdqa  xmm7,xmm12
-        pxor    xmm2,XMMWORD[((112-128))+rax]
-        pxor    xmm2,xmm4
-        paddd   xmm13,xmm15
-        pslld   xmm8,5
-        movdqa  xmm9,xmm14
-        pand    xmm7,xmm11
-
-        movdqa  xmm6,xmm12
-        movdqa  xmm5,xmm2
-        psrld   xmm9,27
-        paddd   xmm13,xmm7
-        pxor    xmm6,xmm11
-
-        movdqa  XMMWORD[(224-128)+rax],xmm1
-        paddd   xmm13,xmm1
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        pand    xmm6,xmm10
-        movdqa  xmm7,xmm10
-
-        pslld   xmm7,30
-        paddd   xmm2,xmm2
-        paddd   xmm13,xmm6
-
-        psrld   xmm10,2
-        paddd   xmm13,xmm8
-        por     xmm2,xmm5
-        por     xmm10,xmm7
-        pxor    xmm3,xmm0
-        movdqa  xmm0,XMMWORD[((32-128))+rax]
-
-        movdqa  xmm8,xmm13
-        movdqa  xmm7,xmm11
-        pxor    xmm3,XMMWORD[((128-128))+rax]
-        pxor    xmm3,xmm0
-        paddd   xmm12,xmm15
-        pslld   xmm8,5
-        movdqa  xmm9,xmm13
-        pand    xmm7,xmm10
-
-        movdqa  xmm6,xmm11
-        movdqa  xmm5,xmm3
-        psrld   xmm9,27
-        paddd   xmm12,xmm7
-        pxor    xmm6,xmm10
-
-        movdqa  XMMWORD[(240-128)+rax],xmm2
-        paddd   xmm12,xmm2
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        pand    xmm6,xmm14
-        movdqa  xmm7,xmm14
-
-        pslld   xmm7,30
-        paddd   xmm3,xmm3
-        paddd   xmm12,xmm6
-
-        psrld   xmm14,2
-        paddd   xmm12,xmm8
-        por     xmm3,xmm5
-        por     xmm14,xmm7
-        pxor    xmm4,xmm1
-        movdqa  xmm1,XMMWORD[((48-128))+rax]
-
-        movdqa  xmm8,xmm12
-        movdqa  xmm7,xmm10
-        pxor    xmm4,XMMWORD[((144-128))+rax]
-        pxor    xmm4,xmm1
-        paddd   xmm11,xmm15
-        pslld   xmm8,5
-        movdqa  xmm9,xmm12
-        pand    xmm7,xmm14
-
-        movdqa  xmm6,xmm10
-        movdqa  xmm5,xmm4
-        psrld   xmm9,27
-        paddd   xmm11,xmm7
-        pxor    xmm6,xmm14
-
-        movdqa  XMMWORD[(0-128)+rax],xmm3
-        paddd   xmm11,xmm3
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        pand    xmm6,xmm13
-        movdqa  xmm7,xmm13
-
-        pslld   xmm7,30
-        paddd   xmm4,xmm4
-        paddd   xmm11,xmm6
-
-        psrld   xmm13,2
-        paddd   xmm11,xmm8
-        por     xmm4,xmm5
-        por     xmm13,xmm7
-        pxor    xmm0,xmm2
-        movdqa  xmm2,XMMWORD[((64-128))+rax]
-
-        movdqa  xmm8,xmm11
-        movdqa  xmm7,xmm14
-        pxor    xmm0,XMMWORD[((160-128))+rax]
-        pxor    xmm0,xmm2
-        paddd   xmm10,xmm15
-        pslld   xmm8,5
-        movdqa  xmm9,xmm11
-        pand    xmm7,xmm13
-
-        movdqa  xmm6,xmm14
-        movdqa  xmm5,xmm0
-        psrld   xmm9,27
-        paddd   xmm10,xmm7
-        pxor    xmm6,xmm13
-
-        movdqa  XMMWORD[(16-128)+rax],xmm4
-        paddd   xmm10,xmm4
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        pand    xmm6,xmm12
-        movdqa  xmm7,xmm12
-
-        pslld   xmm7,30
-        paddd   xmm0,xmm0
-        paddd   xmm10,xmm6
-
-        psrld   xmm12,2
-        paddd   xmm10,xmm8
-        por     xmm0,xmm5
-        por     xmm12,xmm7
-        pxor    xmm1,xmm3
-        movdqa  xmm3,XMMWORD[((80-128))+rax]
-
-        movdqa  xmm8,xmm10
-        movdqa  xmm7,xmm13
-        pxor    xmm1,XMMWORD[((176-128))+rax]
-        pxor    xmm1,xmm3
-        paddd   xmm14,xmm15
-        pslld   xmm8,5
-        movdqa  xmm9,xmm10
-        pand    xmm7,xmm12
-
-        movdqa  xmm6,xmm13
-        movdqa  xmm5,xmm1
-        psrld   xmm9,27
-        paddd   xmm14,xmm7
-        pxor    xmm6,xmm12
-
-        movdqa  XMMWORD[(32-128)+rax],xmm0
-        paddd   xmm14,xmm0
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        pand    xmm6,xmm11
-        movdqa  xmm7,xmm11
-
-        pslld   xmm7,30
-        paddd   xmm1,xmm1
-        paddd   xmm14,xmm6
-
-        psrld   xmm11,2
-        paddd   xmm14,xmm8
-        por     xmm1,xmm5
-        por     xmm11,xmm7
-        pxor    xmm2,xmm4
-        movdqa  xmm4,XMMWORD[((96-128))+rax]
-
-        movdqa  xmm8,xmm14
-        movdqa  xmm7,xmm12
-        pxor    xmm2,XMMWORD[((192-128))+rax]
-        pxor    xmm2,xmm4
-        paddd   xmm13,xmm15
-        pslld   xmm8,5
-        movdqa  xmm9,xmm14
-        pand    xmm7,xmm11
-
-        movdqa  xmm6,xmm12
-        movdqa  xmm5,xmm2
-        psrld   xmm9,27
-        paddd   xmm13,xmm7
-        pxor    xmm6,xmm11
-
-        movdqa  XMMWORD[(48-128)+rax],xmm1
-        paddd   xmm13,xmm1
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        pand    xmm6,xmm10
-        movdqa  xmm7,xmm10
-
-        pslld   xmm7,30
-        paddd   xmm2,xmm2
-        paddd   xmm13,xmm6
-
-        psrld   xmm10,2
-        paddd   xmm13,xmm8
-        por     xmm2,xmm5
-        por     xmm10,xmm7
-        pxor    xmm3,xmm0
-        movdqa  xmm0,XMMWORD[((112-128))+rax]
-
-        movdqa  xmm8,xmm13
-        movdqa  xmm7,xmm11
-        pxor    xmm3,XMMWORD[((208-128))+rax]
-        pxor    xmm3,xmm0
-        paddd   xmm12,xmm15
-        pslld   xmm8,5
-        movdqa  xmm9,xmm13
-        pand    xmm7,xmm10
-
-        movdqa  xmm6,xmm11
-        movdqa  xmm5,xmm3
-        psrld   xmm9,27
-        paddd   xmm12,xmm7
-        pxor    xmm6,xmm10
-
-        movdqa  XMMWORD[(64-128)+rax],xmm2
-        paddd   xmm12,xmm2
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        pand    xmm6,xmm14
-        movdqa  xmm7,xmm14
-
-        pslld   xmm7,30
-        paddd   xmm3,xmm3
-        paddd   xmm12,xmm6
-
-        psrld   xmm14,2
-        paddd   xmm12,xmm8
-        por     xmm3,xmm5
-        por     xmm14,xmm7
-        pxor    xmm4,xmm1
-        movdqa  xmm1,XMMWORD[((128-128))+rax]
-
-        movdqa  xmm8,xmm12
-        movdqa  xmm7,xmm10
-        pxor    xmm4,XMMWORD[((224-128))+rax]
-        pxor    xmm4,xmm1
-        paddd   xmm11,xmm15
-        pslld   xmm8,5
-        movdqa  xmm9,xmm12
-        pand    xmm7,xmm14
-
-        movdqa  xmm6,xmm10
-        movdqa  xmm5,xmm4
-        psrld   xmm9,27
-        paddd   xmm11,xmm7
-        pxor    xmm6,xmm14
-
-        movdqa  XMMWORD[(80-128)+rax],xmm3
-        paddd   xmm11,xmm3
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        pand    xmm6,xmm13
-        movdqa  xmm7,xmm13
-
-        pslld   xmm7,30
-        paddd   xmm4,xmm4
-        paddd   xmm11,xmm6
-
-        psrld   xmm13,2
-        paddd   xmm11,xmm8
-        por     xmm4,xmm5
-        por     xmm13,xmm7
-        pxor    xmm0,xmm2
-        movdqa  xmm2,XMMWORD[((144-128))+rax]
-
-        movdqa  xmm8,xmm11
-        movdqa  xmm7,xmm14
-        pxor    xmm0,XMMWORD[((240-128))+rax]
-        pxor    xmm0,xmm2
-        paddd   xmm10,xmm15
-        pslld   xmm8,5
-        movdqa  xmm9,xmm11
-        pand    xmm7,xmm13
-
-        movdqa  xmm6,xmm14
-        movdqa  xmm5,xmm0
-        psrld   xmm9,27
-        paddd   xmm10,xmm7
-        pxor    xmm6,xmm13
-
-        movdqa  XMMWORD[(96-128)+rax],xmm4
-        paddd   xmm10,xmm4
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        pand    xmm6,xmm12
-        movdqa  xmm7,xmm12
-
-        pslld   xmm7,30
-        paddd   xmm0,xmm0
-        paddd   xmm10,xmm6
-
-        psrld   xmm12,2
-        paddd   xmm10,xmm8
-        por     xmm0,xmm5
-        por     xmm12,xmm7
-        pxor    xmm1,xmm3
-        movdqa  xmm3,XMMWORD[((160-128))+rax]
-
-        movdqa  xmm8,xmm10
-        movdqa  xmm7,xmm13
-        pxor    xmm1,XMMWORD[((0-128))+rax]
-        pxor    xmm1,xmm3
-        paddd   xmm14,xmm15
-        pslld   xmm8,5
-        movdqa  xmm9,xmm10
-        pand    xmm7,xmm12
-
-        movdqa  xmm6,xmm13
-        movdqa  xmm5,xmm1
-        psrld   xmm9,27
-        paddd   xmm14,xmm7
-        pxor    xmm6,xmm12
-
-        movdqa  XMMWORD[(112-128)+rax],xmm0
-        paddd   xmm14,xmm0
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        pand    xmm6,xmm11
-        movdqa  xmm7,xmm11
-
-        pslld   xmm7,30
-        paddd   xmm1,xmm1
-        paddd   xmm14,xmm6
-
-        psrld   xmm11,2
-        paddd   xmm14,xmm8
-        por     xmm1,xmm5
-        por     xmm11,xmm7
-        pxor    xmm2,xmm4
-        movdqa  xmm4,XMMWORD[((176-128))+rax]
-
-        movdqa  xmm8,xmm14
-        movdqa  xmm7,xmm12
-        pxor    xmm2,XMMWORD[((16-128))+rax]
-        pxor    xmm2,xmm4
-        paddd   xmm13,xmm15
-        pslld   xmm8,5
-        movdqa  xmm9,xmm14
-        pand    xmm7,xmm11
-
-        movdqa  xmm6,xmm12
-        movdqa  xmm5,xmm2
-        psrld   xmm9,27
-        paddd   xmm13,xmm7
-        pxor    xmm6,xmm11
-
-        movdqa  XMMWORD[(128-128)+rax],xmm1
-        paddd   xmm13,xmm1
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        pand    xmm6,xmm10
-        movdqa  xmm7,xmm10
-
-        pslld   xmm7,30
-        paddd   xmm2,xmm2
-        paddd   xmm13,xmm6
-
-        psrld   xmm10,2
-        paddd   xmm13,xmm8
-        por     xmm2,xmm5
-        por     xmm10,xmm7
-        pxor    xmm3,xmm0
-        movdqa  xmm0,XMMWORD[((192-128))+rax]
-
-        movdqa  xmm8,xmm13
-        movdqa  xmm7,xmm11
-        pxor    xmm3,XMMWORD[((32-128))+rax]
-        pxor    xmm3,xmm0
-        paddd   xmm12,xmm15
-        pslld   xmm8,5
-        movdqa  xmm9,xmm13
-        pand    xmm7,xmm10
-
-        movdqa  xmm6,xmm11
-        movdqa  xmm5,xmm3
-        psrld   xmm9,27
-        paddd   xmm12,xmm7
-        pxor    xmm6,xmm10
-
-        movdqa  XMMWORD[(144-128)+rax],xmm2
-        paddd   xmm12,xmm2
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        pand    xmm6,xmm14
-        movdqa  xmm7,xmm14
-
-        pslld   xmm7,30
-        paddd   xmm3,xmm3
-        paddd   xmm12,xmm6
-
-        psrld   xmm14,2
-        paddd   xmm12,xmm8
-        por     xmm3,xmm5
-        por     xmm14,xmm7
-        pxor    xmm4,xmm1
-        movdqa  xmm1,XMMWORD[((208-128))+rax]
-
-        movdqa  xmm8,xmm12
-        movdqa  xmm7,xmm10
-        pxor    xmm4,XMMWORD[((48-128))+rax]
-        pxor    xmm4,xmm1
-        paddd   xmm11,xmm15
-        pslld   xmm8,5
-        movdqa  xmm9,xmm12
-        pand    xmm7,xmm14
-
-        movdqa  xmm6,xmm10
-        movdqa  xmm5,xmm4
-        psrld   xmm9,27
-        paddd   xmm11,xmm7
-        pxor    xmm6,xmm14
-
-        movdqa  XMMWORD[(160-128)+rax],xmm3
-        paddd   xmm11,xmm3
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        pand    xmm6,xmm13
-        movdqa  xmm7,xmm13
-
-        pslld   xmm7,30
-        paddd   xmm4,xmm4
-        paddd   xmm11,xmm6
-
-        psrld   xmm13,2
-        paddd   xmm11,xmm8
-        por     xmm4,xmm5
-        por     xmm13,xmm7
-        pxor    xmm0,xmm2
-        movdqa  xmm2,XMMWORD[((224-128))+rax]
-
-        movdqa  xmm8,xmm11
-        movdqa  xmm7,xmm14
-        pxor    xmm0,XMMWORD[((64-128))+rax]
-        pxor    xmm0,xmm2
-        paddd   xmm10,xmm15
-        pslld   xmm8,5
-        movdqa  xmm9,xmm11
-        pand    xmm7,xmm13
-
-        movdqa  xmm6,xmm14
-        movdqa  xmm5,xmm0
-        psrld   xmm9,27
-        paddd   xmm10,xmm7
-        pxor    xmm6,xmm13
-
-        movdqa  XMMWORD[(176-128)+rax],xmm4
-        paddd   xmm10,xmm4
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        pand    xmm6,xmm12
-        movdqa  xmm7,xmm12
-
-        pslld   xmm7,30
-        paddd   xmm0,xmm0
-        paddd   xmm10,xmm6
-
-        psrld   xmm12,2
-        paddd   xmm10,xmm8
-        por     xmm0,xmm5
-        por     xmm12,xmm7
-        movdqa  xmm15,XMMWORD[64+rbp]
-        pxor    xmm1,xmm3
-        movdqa  xmm3,XMMWORD[((240-128))+rax]
-
-        movdqa  xmm8,xmm10
-        movdqa  xmm6,xmm13
-        pxor    xmm1,XMMWORD[((80-128))+rax]
-        paddd   xmm14,xmm15
-        pslld   xmm8,5
-        pxor    xmm6,xmm11
-
-        movdqa  xmm9,xmm10
-        movdqa  XMMWORD[(192-128)+rax],xmm0
-        paddd   xmm14,xmm0
-        pxor    xmm1,xmm3
-        psrld   xmm9,27
-        pxor    xmm6,xmm12
-        movdqa  xmm7,xmm11
-
-        pslld   xmm7,30
-        movdqa  xmm5,xmm1
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        paddd   xmm14,xmm6
-        paddd   xmm1,xmm1
-
-        psrld   xmm11,2
-        paddd   xmm14,xmm8
-        por     xmm1,xmm5
-        por     xmm11,xmm7
-        pxor    xmm2,xmm4
-        movdqa  xmm4,XMMWORD[((0-128))+rax]
-
-        movdqa  xmm8,xmm14
-        movdqa  xmm6,xmm12
-        pxor    xmm2,XMMWORD[((96-128))+rax]
-        paddd   xmm13,xmm15
-        pslld   xmm8,5
-        pxor    xmm6,xmm10
-
-        movdqa  xmm9,xmm14
-        movdqa  XMMWORD[(208-128)+rax],xmm1
-        paddd   xmm13,xmm1
-        pxor    xmm2,xmm4
-        psrld   xmm9,27
-        pxor    xmm6,xmm11
-        movdqa  xmm7,xmm10
-
-        pslld   xmm7,30
-        movdqa  xmm5,xmm2
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        paddd   xmm13,xmm6
-        paddd   xmm2,xmm2
-
-        psrld   xmm10,2
-        paddd   xmm13,xmm8
-        por     xmm2,xmm5
-        por     xmm10,xmm7
-        pxor    xmm3,xmm0
-        movdqa  xmm0,XMMWORD[((16-128))+rax]
-
-        movdqa  xmm8,xmm13
-        movdqa  xmm6,xmm11
-        pxor    xmm3,XMMWORD[((112-128))+rax]
-        paddd   xmm12,xmm15
-        pslld   xmm8,5
-        pxor    xmm6,xmm14
-
-        movdqa  xmm9,xmm13
-        movdqa  XMMWORD[(224-128)+rax],xmm2
-        paddd   xmm12,xmm2
-        pxor    xmm3,xmm0
-        psrld   xmm9,27
-        pxor    xmm6,xmm10
-        movdqa  xmm7,xmm14
-
-        pslld   xmm7,30
-        movdqa  xmm5,xmm3
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        paddd   xmm12,xmm6
-        paddd   xmm3,xmm3
-
-        psrld   xmm14,2
-        paddd   xmm12,xmm8
-        por     xmm3,xmm5
-        por     xmm14,xmm7
-        pxor    xmm4,xmm1
-        movdqa  xmm1,XMMWORD[((32-128))+rax]
-
-        movdqa  xmm8,xmm12
-        movdqa  xmm6,xmm10
-        pxor    xmm4,XMMWORD[((128-128))+rax]
-        paddd   xmm11,xmm15
-        pslld   xmm8,5
-        pxor    xmm6,xmm13
-
-        movdqa  xmm9,xmm12
-        movdqa  XMMWORD[(240-128)+rax],xmm3
-        paddd   xmm11,xmm3
-        pxor    xmm4,xmm1
-        psrld   xmm9,27
-        pxor    xmm6,xmm14
-        movdqa  xmm7,xmm13
-
-        pslld   xmm7,30
-        movdqa  xmm5,xmm4
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        paddd   xmm11,xmm6
-        paddd   xmm4,xmm4
-
-        psrld   xmm13,2
-        paddd   xmm11,xmm8
-        por     xmm4,xmm5
-        por     xmm13,xmm7
-        pxor    xmm0,xmm2
-        movdqa  xmm2,XMMWORD[((48-128))+rax]
-
-        movdqa  xmm8,xmm11
-        movdqa  xmm6,xmm14
-        pxor    xmm0,XMMWORD[((144-128))+rax]
-        paddd   xmm10,xmm15
-        pslld   xmm8,5
-        pxor    xmm6,xmm12
-
-        movdqa  xmm9,xmm11
-        movdqa  XMMWORD[(0-128)+rax],xmm4
-        paddd   xmm10,xmm4
-        pxor    xmm0,xmm2
-        psrld   xmm9,27
-        pxor    xmm6,xmm13
-        movdqa  xmm7,xmm12
-
-        pslld   xmm7,30
-        movdqa  xmm5,xmm0
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        paddd   xmm10,xmm6
-        paddd   xmm0,xmm0
-
-        psrld   xmm12,2
-        paddd   xmm10,xmm8
-        por     xmm0,xmm5
-        por     xmm12,xmm7
-        pxor    xmm1,xmm3
-        movdqa  xmm3,XMMWORD[((64-128))+rax]
-
-        movdqa  xmm8,xmm10
-        movdqa  xmm6,xmm13
-        pxor    xmm1,XMMWORD[((160-128))+rax]
-        paddd   xmm14,xmm15
-        pslld   xmm8,5
-        pxor    xmm6,xmm11
-
-        movdqa  xmm9,xmm10
-        movdqa  XMMWORD[(16-128)+rax],xmm0
-        paddd   xmm14,xmm0
-        pxor    xmm1,xmm3
-        psrld   xmm9,27
-        pxor    xmm6,xmm12
-        movdqa  xmm7,xmm11
-
-        pslld   xmm7,30
-        movdqa  xmm5,xmm1
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        paddd   xmm14,xmm6
-        paddd   xmm1,xmm1
-
-        psrld   xmm11,2
-        paddd   xmm14,xmm8
-        por     xmm1,xmm5
-        por     xmm11,xmm7
-        pxor    xmm2,xmm4
-        movdqa  xmm4,XMMWORD[((80-128))+rax]
-
-        movdqa  xmm8,xmm14
-        movdqa  xmm6,xmm12
-        pxor    xmm2,XMMWORD[((176-128))+rax]
-        paddd   xmm13,xmm15
-        pslld   xmm8,5
-        pxor    xmm6,xmm10
-
-        movdqa  xmm9,xmm14
-        movdqa  XMMWORD[(32-128)+rax],xmm1
-        paddd   xmm13,xmm1
-        pxor    xmm2,xmm4
-        psrld   xmm9,27
-        pxor    xmm6,xmm11
-        movdqa  xmm7,xmm10
-
-        pslld   xmm7,30
-        movdqa  xmm5,xmm2
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        paddd   xmm13,xmm6
-        paddd   xmm2,xmm2
-
-        psrld   xmm10,2
-        paddd   xmm13,xmm8
-        por     xmm2,xmm5
-        por     xmm10,xmm7
-        pxor    xmm3,xmm0
-        movdqa  xmm0,XMMWORD[((96-128))+rax]
-
-        movdqa  xmm8,xmm13
-        movdqa  xmm6,xmm11
-        pxor    xmm3,XMMWORD[((192-128))+rax]
-        paddd   xmm12,xmm15
-        pslld   xmm8,5
-        pxor    xmm6,xmm14
-
-        movdqa  xmm9,xmm13
-        movdqa  XMMWORD[(48-128)+rax],xmm2
-        paddd   xmm12,xmm2
-        pxor    xmm3,xmm0
-        psrld   xmm9,27
-        pxor    xmm6,xmm10
-        movdqa  xmm7,xmm14
-
-        pslld   xmm7,30
-        movdqa  xmm5,xmm3
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        paddd   xmm12,xmm6
-        paddd   xmm3,xmm3
-
-        psrld   xmm14,2
-        paddd   xmm12,xmm8
-        por     xmm3,xmm5
-        por     xmm14,xmm7
-        pxor    xmm4,xmm1
-        movdqa  xmm1,XMMWORD[((112-128))+rax]
-
-        movdqa  xmm8,xmm12
-        movdqa  xmm6,xmm10
-        pxor    xmm4,XMMWORD[((208-128))+rax]
-        paddd   xmm11,xmm15
-        pslld   xmm8,5
-        pxor    xmm6,xmm13
-
-        movdqa  xmm9,xmm12
-        movdqa  XMMWORD[(64-128)+rax],xmm3
-        paddd   xmm11,xmm3
-        pxor    xmm4,xmm1
-        psrld   xmm9,27
-        pxor    xmm6,xmm14
-        movdqa  xmm7,xmm13
-
-        pslld   xmm7,30
-        movdqa  xmm5,xmm4
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        paddd   xmm11,xmm6
-        paddd   xmm4,xmm4
-
-        psrld   xmm13,2
-        paddd   xmm11,xmm8
-        por     xmm4,xmm5
-        por     xmm13,xmm7
-        pxor    xmm0,xmm2
-        movdqa  xmm2,XMMWORD[((128-128))+rax]
-
-        movdqa  xmm8,xmm11
-        movdqa  xmm6,xmm14
-        pxor    xmm0,XMMWORD[((224-128))+rax]
-        paddd   xmm10,xmm15
-        pslld   xmm8,5
-        pxor    xmm6,xmm12
-
-        movdqa  xmm9,xmm11
-        movdqa  XMMWORD[(80-128)+rax],xmm4
-        paddd   xmm10,xmm4
-        pxor    xmm0,xmm2
-        psrld   xmm9,27
-        pxor    xmm6,xmm13
-        movdqa  xmm7,xmm12
-
-        pslld   xmm7,30
-        movdqa  xmm5,xmm0
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        paddd   xmm10,xmm6
-        paddd   xmm0,xmm0
-
-        psrld   xmm12,2
-        paddd   xmm10,xmm8
-        por     xmm0,xmm5
-        por     xmm12,xmm7
-        pxor    xmm1,xmm3
-        movdqa  xmm3,XMMWORD[((144-128))+rax]
-
-        movdqa  xmm8,xmm10
-        movdqa  xmm6,xmm13
-        pxor    xmm1,XMMWORD[((240-128))+rax]
-        paddd   xmm14,xmm15
-        pslld   xmm8,5
-        pxor    xmm6,xmm11
-
-        movdqa  xmm9,xmm10
-        movdqa  XMMWORD[(96-128)+rax],xmm0
-        paddd   xmm14,xmm0
-        pxor    xmm1,xmm3
-        psrld   xmm9,27
-        pxor    xmm6,xmm12
-        movdqa  xmm7,xmm11
-
-        pslld   xmm7,30
-        movdqa  xmm5,xmm1
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        paddd   xmm14,xmm6
-        paddd   xmm1,xmm1
-
-        psrld   xmm11,2
-        paddd   xmm14,xmm8
-        por     xmm1,xmm5
-        por     xmm11,xmm7
-        pxor    xmm2,xmm4
-        movdqa  xmm4,XMMWORD[((160-128))+rax]
-
-        movdqa  xmm8,xmm14
-        movdqa  xmm6,xmm12
-        pxor    xmm2,XMMWORD[((0-128))+rax]
-        paddd   xmm13,xmm15
-        pslld   xmm8,5
-        pxor    xmm6,xmm10
-
-        movdqa  xmm9,xmm14
-        movdqa  XMMWORD[(112-128)+rax],xmm1
-        paddd   xmm13,xmm1
-        pxor    xmm2,xmm4
-        psrld   xmm9,27
-        pxor    xmm6,xmm11
-        movdqa  xmm7,xmm10
-
-        pslld   xmm7,30
-        movdqa  xmm5,xmm2
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        paddd   xmm13,xmm6
-        paddd   xmm2,xmm2
-
-        psrld   xmm10,2
-        paddd   xmm13,xmm8
-        por     xmm2,xmm5
-        por     xmm10,xmm7
-        pxor    xmm3,xmm0
-        movdqa  xmm0,XMMWORD[((176-128))+rax]
-
-        movdqa  xmm8,xmm13
-        movdqa  xmm6,xmm11
-        pxor    xmm3,XMMWORD[((16-128))+rax]
-        paddd   xmm12,xmm15
-        pslld   xmm8,5
-        pxor    xmm6,xmm14
-
-        movdqa  xmm9,xmm13
-        paddd   xmm12,xmm2
-        pxor    xmm3,xmm0
-        psrld   xmm9,27
-        pxor    xmm6,xmm10
-        movdqa  xmm7,xmm14
-
-        pslld   xmm7,30
-        movdqa  xmm5,xmm3
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        paddd   xmm12,xmm6
-        paddd   xmm3,xmm3
-
-        psrld   xmm14,2
-        paddd   xmm12,xmm8
-        por     xmm3,xmm5
-        por     xmm14,xmm7
-        pxor    xmm4,xmm1
-        movdqa  xmm1,XMMWORD[((192-128))+rax]
-
-        movdqa  xmm8,xmm12
-        movdqa  xmm6,xmm10
-        pxor    xmm4,XMMWORD[((32-128))+rax]
-        paddd   xmm11,xmm15
-        pslld   xmm8,5
-        pxor    xmm6,xmm13
-
-        movdqa  xmm9,xmm12
-        paddd   xmm11,xmm3
-        pxor    xmm4,xmm1
-        psrld   xmm9,27
-        pxor    xmm6,xmm14
-        movdqa  xmm7,xmm13
-
-        pslld   xmm7,30
-        movdqa  xmm5,xmm4
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        paddd   xmm11,xmm6
-        paddd   xmm4,xmm4
-
-        psrld   xmm13,2
-        paddd   xmm11,xmm8
-        por     xmm4,xmm5
-        por     xmm13,xmm7
-        pxor    xmm0,xmm2
-        movdqa  xmm2,XMMWORD[((208-128))+rax]
-
-        movdqa  xmm8,xmm11
-        movdqa  xmm6,xmm14
-        pxor    xmm0,XMMWORD[((48-128))+rax]
-        paddd   xmm10,xmm15
-        pslld   xmm8,5
-        pxor    xmm6,xmm12
-
-        movdqa  xmm9,xmm11
-        paddd   xmm10,xmm4
-        pxor    xmm0,xmm2
-        psrld   xmm9,27
-        pxor    xmm6,xmm13
-        movdqa  xmm7,xmm12
-
-        pslld   xmm7,30
-        movdqa  xmm5,xmm0
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        paddd   xmm10,xmm6
-        paddd   xmm0,xmm0
-
-        psrld   xmm12,2
-        paddd   xmm10,xmm8
-        por     xmm0,xmm5
-        por     xmm12,xmm7
-        pxor    xmm1,xmm3
-        movdqa  xmm3,XMMWORD[((224-128))+rax]
-
-        movdqa  xmm8,xmm10
-        movdqa  xmm6,xmm13
-        pxor    xmm1,XMMWORD[((64-128))+rax]
-        paddd   xmm14,xmm15
-        pslld   xmm8,5
-        pxor    xmm6,xmm11
-
-        movdqa  xmm9,xmm10
-        paddd   xmm14,xmm0
-        pxor    xmm1,xmm3
-        psrld   xmm9,27
-        pxor    xmm6,xmm12
-        movdqa  xmm7,xmm11
-
-        pslld   xmm7,30
-        movdqa  xmm5,xmm1
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        paddd   xmm14,xmm6
-        paddd   xmm1,xmm1
-
-        psrld   xmm11,2
-        paddd   xmm14,xmm8
-        por     xmm1,xmm5
-        por     xmm11,xmm7
-        pxor    xmm2,xmm4
-        movdqa  xmm4,XMMWORD[((240-128))+rax]
-
-        movdqa  xmm8,xmm14
-        movdqa  xmm6,xmm12
-        pxor    xmm2,XMMWORD[((80-128))+rax]
-        paddd   xmm13,xmm15
-        pslld   xmm8,5
-        pxor    xmm6,xmm10
-
-        movdqa  xmm9,xmm14
-        paddd   xmm13,xmm1
-        pxor    xmm2,xmm4
-        psrld   xmm9,27
-        pxor    xmm6,xmm11
-        movdqa  xmm7,xmm10
-
-        pslld   xmm7,30
-        movdqa  xmm5,xmm2
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        paddd   xmm13,xmm6
-        paddd   xmm2,xmm2
-
-        psrld   xmm10,2
-        paddd   xmm13,xmm8
-        por     xmm2,xmm5
-        por     xmm10,xmm7
-        pxor    xmm3,xmm0
-        movdqa  xmm0,XMMWORD[((0-128))+rax]
-
-        movdqa  xmm8,xmm13
-        movdqa  xmm6,xmm11
-        pxor    xmm3,XMMWORD[((96-128))+rax]
-        paddd   xmm12,xmm15
-        pslld   xmm8,5
-        pxor    xmm6,xmm14
-
-        movdqa  xmm9,xmm13
-        paddd   xmm12,xmm2
-        pxor    xmm3,xmm0
-        psrld   xmm9,27
-        pxor    xmm6,xmm10
-        movdqa  xmm7,xmm14
-
-        pslld   xmm7,30
-        movdqa  xmm5,xmm3
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        paddd   xmm12,xmm6
-        paddd   xmm3,xmm3
-
-        psrld   xmm14,2
-        paddd   xmm12,xmm8
-        por     xmm3,xmm5
-        por     xmm14,xmm7
-        pxor    xmm4,xmm1
-        movdqa  xmm1,XMMWORD[((16-128))+rax]
-
-        movdqa  xmm8,xmm12
-        movdqa  xmm6,xmm10
-        pxor    xmm4,XMMWORD[((112-128))+rax]
-        paddd   xmm11,xmm15
-        pslld   xmm8,5
-        pxor    xmm6,xmm13
-
-        movdqa  xmm9,xmm12
-        paddd   xmm11,xmm3
-        pxor    xmm4,xmm1
-        psrld   xmm9,27
-        pxor    xmm6,xmm14
-        movdqa  xmm7,xmm13
-
-        pslld   xmm7,30
-        movdqa  xmm5,xmm4
-        por     xmm8,xmm9
-        psrld   xmm5,31
-        paddd   xmm11,xmm6
-        paddd   xmm4,xmm4
-
-        psrld   xmm13,2
-        paddd   xmm11,xmm8
-        por     xmm4,xmm5
-        por     xmm13,xmm7
-        movdqa  xmm8,xmm11
-        paddd   xmm10,xmm15
-        movdqa  xmm6,xmm14
-        pslld   xmm8,5
-        pxor    xmm6,xmm12
-
-        movdqa  xmm9,xmm11
-        paddd   xmm10,xmm4
-        psrld   xmm9,27
-        movdqa  xmm7,xmm12
-        pxor    xmm6,xmm13
-
-        pslld   xmm7,30
-        por     xmm8,xmm9
-        paddd   xmm10,xmm6
-
-        psrld   xmm12,2
-        paddd   xmm10,xmm8
-        por     xmm12,xmm7
-        movdqa  xmm0,XMMWORD[rbx]
-        mov     ecx,1
-        cmp     ecx,DWORD[rbx]
-        pxor    xmm8,xmm8
-        cmovge  r8,rbp
-        cmp     ecx,DWORD[4+rbx]
-        movdqa  xmm1,xmm0
-        cmovge  r9,rbp
-        cmp     ecx,DWORD[8+rbx]
-        pcmpgtd xmm1,xmm8
-        cmovge  r10,rbp
-        cmp     ecx,DWORD[12+rbx]
-        paddd   xmm0,xmm1
-        cmovge  r11,rbp
-
-        movdqu  xmm6,XMMWORD[rdi]
-        pand    xmm10,xmm1
-        movdqu  xmm7,XMMWORD[32+rdi]
-        pand    xmm11,xmm1
-        paddd   xmm10,xmm6
-        movdqu  xmm8,XMMWORD[64+rdi]
-        pand    xmm12,xmm1
-        paddd   xmm11,xmm7
-        movdqu  xmm9,XMMWORD[96+rdi]
-        pand    xmm13,xmm1
-        paddd   xmm12,xmm8
-        movdqu  xmm5,XMMWORD[128+rdi]
-        pand    xmm14,xmm1
-        movdqu  XMMWORD[rdi],xmm10
-        paddd   xmm13,xmm9
-        movdqu  XMMWORD[32+rdi],xmm11
-        paddd   xmm14,xmm5
-        movdqu  XMMWORD[64+rdi],xmm12
-        movdqu  XMMWORD[96+rdi],xmm13
-        movdqu  XMMWORD[128+rdi],xmm14
-
-        movdqa  XMMWORD[rbx],xmm0
-        movdqa  xmm5,XMMWORD[96+rbp]
-        movdqa  xmm15,XMMWORD[((-32))+rbp]
-        dec     edx
-        jnz     NEAR $L$oop
-
-        mov     edx,DWORD[280+rsp]
-        lea     rdi,[16+rdi]
-        lea     rsi,[64+rsi]
-        dec     edx
-        jnz     NEAR $L$oop_grande
-
-$L$done:
-        mov     rax,QWORD[272+rsp]
-
-        movaps  xmm6,XMMWORD[((-184))+rax]
-        movaps  xmm7,XMMWORD[((-168))+rax]
-        movaps  xmm8,XMMWORD[((-152))+rax]
-        movaps  xmm9,XMMWORD[((-136))+rax]
-        movaps  xmm10,XMMWORD[((-120))+rax]
-        movaps  xmm11,XMMWORD[((-104))+rax]
-        movaps  xmm12,XMMWORD[((-88))+rax]
-        movaps  xmm13,XMMWORD[((-72))+rax]
-        movaps  xmm14,XMMWORD[((-56))+rax]
-        movaps  xmm15,XMMWORD[((-40))+rax]
-        mov     rbp,QWORD[((-16))+rax]
-
-        mov     rbx,QWORD[((-8))+rax]
-
-        lea     rsp,[rax]
-
-$L$epilogue:
-        mov     rdi,QWORD[8+rsp]        ;WIN64 epilogue
-        mov     rsi,QWORD[16+rsp]
-        DB      0F3h,0C3h               ;repret
-
-$L$SEH_end_sha1_multi_block:
-
-ALIGN   32
-sha1_multi_block_shaext:
-        mov     QWORD[8+rsp],rdi        ;WIN64 prologue
-        mov     QWORD[16+rsp],rsi
-        mov     rax,rsp
-$L$SEH_begin_sha1_multi_block_shaext:
-        mov     rdi,rcx
-        mov     rsi,rdx
-        mov     rdx,r8
-
-
-
-_shaext_shortcut:
-        mov     rax,rsp
-
-        push    rbx
-
-        push    rbp
-
-        lea     rsp,[((-168))+rsp]
-        movaps  XMMWORD[rsp],xmm6
-        movaps  XMMWORD[16+rsp],xmm7
-        movaps  XMMWORD[32+rsp],xmm8
-        movaps  XMMWORD[48+rsp],xmm9
-        movaps  XMMWORD[(-120)+rax],xmm10
-        movaps  XMMWORD[(-104)+rax],xmm11
-        movaps  XMMWORD[(-88)+rax],xmm12
-        movaps  XMMWORD[(-72)+rax],xmm13
-        movaps  XMMWORD[(-56)+rax],xmm14
-        movaps  XMMWORD[(-40)+rax],xmm15
-        sub     rsp,288
-        shl     edx,1
-        and     rsp,-256
-        lea     rdi,[64+rdi]
-        mov     QWORD[272+rsp],rax
-$L$body_shaext:
-        lea     rbx,[256+rsp]
-        movdqa  xmm3,XMMWORD[((K_XX_XX+128))]
-
-$L$oop_grande_shaext:
-        mov     DWORD[280+rsp],edx
-        xor     edx,edx
-        mov     r8,QWORD[rsi]
-        mov     ecx,DWORD[8+rsi]
-        cmp     ecx,edx
-        cmovg   edx,ecx
-        test    ecx,ecx
-        mov     DWORD[rbx],ecx
-        cmovle  r8,rsp
-        mov     r9,QWORD[16+rsi]
-        mov     ecx,DWORD[24+rsi]
-        cmp     ecx,edx
-        cmovg   edx,ecx
-        test    ecx,ecx
-        mov     DWORD[4+rbx],ecx
-        cmovle  r9,rsp
-        test    edx,edx
-        jz      NEAR $L$done_shaext
-
-        movq    xmm0,QWORD[((0-64))+rdi]
-        movq    xmm4,QWORD[((32-64))+rdi]
-        movq    xmm5,QWORD[((64-64))+rdi]
-        movq    xmm6,QWORD[((96-64))+rdi]
-        movq    xmm7,QWORD[((128-64))+rdi]
-
-        punpckldq       xmm0,xmm4
-        punpckldq       xmm5,xmm6
-
-        movdqa  xmm8,xmm0
-        punpcklqdq      xmm0,xmm5
-        punpckhqdq      xmm8,xmm5
-
-        pshufd  xmm1,xmm7,63
-        pshufd  xmm9,xmm7,127
-        pshufd  xmm0,xmm0,27
-        pshufd  xmm8,xmm8,27
-        jmp     NEAR $L$oop_shaext
-
-ALIGN   32
-$L$oop_shaext:
-        movdqu  xmm4,XMMWORD[r8]
-        movdqu  xmm11,XMMWORD[r9]
-        movdqu  xmm5,XMMWORD[16+r8]
-        movdqu  xmm12,XMMWORD[16+r9]
-        movdqu  xmm6,XMMWORD[32+r8]
-DB      102,15,56,0,227
-        movdqu  xmm13,XMMWORD[32+r9]
-DB      102,68,15,56,0,219
-        movdqu  xmm7,XMMWORD[48+r8]
-        lea     r8,[64+r8]
-DB      102,15,56,0,235
-        movdqu  xmm14,XMMWORD[48+r9]
-        lea     r9,[64+r9]
-DB      102,68,15,56,0,227
-
-        movdqa  XMMWORD[80+rsp],xmm1
-        paddd   xmm1,xmm4
-        movdqa  XMMWORD[112+rsp],xmm9
-        paddd   xmm9,xmm11
-        movdqa  XMMWORD[64+rsp],xmm0
-        movdqa  xmm2,xmm0
-        movdqa  XMMWORD[96+rsp],xmm8
-        movdqa  xmm10,xmm8
-DB      15,58,204,193,0
-DB      15,56,200,213
-DB      69,15,58,204,193,0
-DB      69,15,56,200,212
-DB      102,15,56,0,243
-        prefetcht0      [127+r8]
-DB      15,56,201,229
-DB      102,68,15,56,0,235
-        prefetcht0      [127+r9]
-DB      69,15,56,201,220
-
-DB      102,15,56,0,251
-        movdqa  xmm1,xmm0
-DB      102,68,15,56,0,243
-        movdqa  xmm9,xmm8
-DB      15,58,204,194,0
-DB      15,56,200,206
-DB      69,15,58,204,194,0
-DB      69,15,56,200,205
-        pxor    xmm4,xmm6
-DB      15,56,201,238
-        pxor    xmm11,xmm13
-DB      69,15,56,201,229
-        movdqa  xmm2,xmm0
-        movdqa  xmm10,xmm8
-DB      15,58,204,193,0
-DB      15,56,200,215
-DB      69,15,58,204,193,0
-DB      69,15,56,200,214
-DB      15,56,202,231
-DB      69,15,56,202,222
-        pxor    xmm5,xmm7
-DB      15,56,201,247
-        pxor    xmm12,xmm14
-DB      69,15,56,201,238
-        movdqa  xmm1,xmm0
-        movdqa  xmm9,xmm8
-DB      15,58,204,194,0
-DB      15,56,200,204
-DB      69,15,58,204,194,0
-DB      69,15,56,200,203
-DB      15,56,202,236
-DB      69,15,56,202,227
-        pxor    xmm6,xmm4
-DB      15,56,201,252
-        pxor    xmm13,xmm11
-DB      69,15,56,201,243
-        movdqa  xmm2,xmm0
-        movdqa  xmm10,xmm8
-DB      15,58,204,193,0
-DB      15,56,200,213
-DB      69,15,58,204,193,0
-DB      69,15,56,200,212
-DB      15,56,202,245
-DB      69,15,56,202,236
-        pxor    xmm7,xmm5
-DB      15,56,201,229
-        pxor    xmm14,xmm12
-DB      69,15,56,201,220
-        movdqa  xmm1,xmm0
-        movdqa  xmm9,xmm8
-DB      15,58,204,194,1
-DB      15,56,200,206
-DB      69,15,58,204,194,1
-DB      69,15,56,200,205
-DB      15,56,202,254
-DB      69,15,56,202,245
-        pxor    xmm4,xmm6
-DB      15,56,201,238
-        pxor    xmm11,xmm13
-DB      69,15,56,201,229
-        movdqa  xmm2,xmm0
-        movdqa  xmm10,xmm8
-DB      15,58,204,193,1
-DB      15,56,200,215
-DB      69,15,58,204,193,1
-DB      69,15,56,200,214
-DB      15,56,202,231
-DB      69,15,56,202,222
-        pxor    xmm5,xmm7
-DB      15,56,201,247
-        pxor    xmm12,xmm14
-DB      69,15,56,201,238
-        movdqa  xmm1,xmm0
-        movdqa  xmm9,xmm8
-DB      15,58,204,194,1
-DB      15,56,200,204
-DB      69,15,58,204,194,1
-DB      69,15,56,200,203
-DB      15,56,202,236
-DB      69,15,56,202,227
-        pxor    xmm6,xmm4
-DB      15,56,201,252
-        pxor    xmm13,xmm11
-DB      69,15,56,201,243
-        movdqa  xmm2,xmm0
-        movdqa  xmm10,xmm8
-DB      15,58,204,193,1
-DB      15,56,200,213
-DB      69,15,58,204,193,1
-DB      69,15,56,200,212
-DB      15,56,202,245
-DB      69,15,56,202,236
-        pxor    xmm7,xmm5
-DB      15,56,201,229
-        pxor    xmm14,xmm12
-DB      69,15,56,201,220
-        movdqa  xmm1,xmm0
-        movdqa  xmm9,xmm8
-DB      15,58,204,194,1
-DB      15,56,200,206
-DB      69,15,58,204,194,1
-DB      69,15,56,200,205
-DB      15,56,202,254
-DB      69,15,56,202,245
-        pxor    xmm4,xmm6
-DB      15,56,201,238
-        pxor    xmm11,xmm13
-DB      69,15,56,201,229
-        movdqa  xmm2,xmm0
-        movdqa  xmm10,xmm8
-DB      15,58,204,193,2
-DB      15,56,200,215
-DB      69,15,58,204,193,2
-DB      69,15,56,200,214
-DB      15,56,202,231
-DB      69,15,56,202,222
-        pxor    xmm5,xmm7
-DB      15,56,201,247
-        pxor    xmm12,xmm14
-DB      69,15,56,201,238
-        movdqa  xmm1,xmm0
-        movdqa  xmm9,xmm8
-DB      15,58,204,194,2
-DB      15,56,200,204
-DB      69,15,58,204,194,2
-DB      69,15,56,200,203
-DB      15,56,202,236
-DB      69,15,56,202,227
-        pxor    xmm6,xmm4
-DB      15,56,201,252
-        pxor    xmm13,xmm11
-DB      69,15,56,201,243
-        movdqa  xmm2,xmm0
-        movdqa  xmm10,xmm8
-DB      15,58,204,193,2
-DB      15,56,200,213
-DB      69,15,58,204,193,2
-DB      69,15,56,200,212
-DB      15,56,202,245
-DB      69,15,56,202,236
-        pxor    xmm7,xmm5
-DB      15,56,201,229
-        pxor    xmm14,xmm12
-DB      69,15,56,201,220
-        movdqa  xmm1,xmm0
-        movdqa  xmm9,xmm8
-DB      15,58,204,194,2
-DB      15,56,200,206
-DB      69,15,58,204,194,2
-DB      69,15,56,200,205
-DB      15,56,202,254
-DB      69,15,56,202,245
-        pxor    xmm4,xmm6
-DB      15,56,201,238
-        pxor    xmm11,xmm13
-DB      69,15,56,201,229
-        movdqa  xmm2,xmm0
-        movdqa  xmm10,xmm8
-DB      15,58,204,193,2
-DB      15,56,200,215
-DB      69,15,58,204,193,2
-DB      69,15,56,200,214
-DB      15,56,202,231
-DB      69,15,56,202,222
-        pxor    xmm5,xmm7
-DB      15,56,201,247
-        pxor    xmm12,xmm14
-DB      69,15,56,201,238
-        movdqa  xmm1,xmm0
-        movdqa  xmm9,xmm8
-DB      15,58,204,194,3
-DB      15,56,200,204
-DB      69,15,58,204,194,3
-DB      69,15,56,200,203
-DB      15,56,202,236
-DB      69,15,56,202,227
-        pxor    xmm6,xmm4
-DB      15,56,201,252
-        pxor    xmm13,xmm11
-DB      69,15,56,201,243
-        movdqa  xmm2,xmm0
-        movdqa  xmm10,xmm8
-DB      15,58,204,193,3
-DB      15,56,200,213
-DB      69,15,58,204,193,3
-DB      69,15,56,200,212
-DB      15,56,202,245
-DB      69,15,56,202,236
-        pxor    xmm7,xmm5
-        pxor    xmm14,xmm12
-
-        mov     ecx,1
-        pxor    xmm4,xmm4
-        cmp     ecx,DWORD[rbx]
-        cmovge  r8,rsp
-
-        movdqa  xmm1,xmm0
-        movdqa  xmm9,xmm8
-DB      15,58,204,194,3
-DB      15,56,200,206
-DB      69,15,58,204,194,3
-DB      69,15,56,200,205
-DB      15,56,202,254
-DB      69,15,56,202,245
-
-        cmp     ecx,DWORD[4+rbx]
-        cmovge  r9,rsp
-        movq    xmm6,QWORD[rbx]
-
-        movdqa  xmm2,xmm0
-        movdqa  xmm10,xmm8
-DB      15,58,204,193,3
-DB      15,56,200,215
-DB      69,15,58,204,193,3
-DB      69,15,56,200,214
-
-        pshufd  xmm11,xmm6,0x00
-        pshufd  xmm12,xmm6,0x55
-        movdqa  xmm7,xmm6
-        pcmpgtd xmm11,xmm4
-        pcmpgtd xmm12,xmm4
-
-        movdqa  xmm1,xmm0
-        movdqa  xmm9,xmm8
-DB      15,58,204,194,3
-DB      15,56,200,204
-DB      69,15,58,204,194,3
-DB      68,15,56,200,204
-
-        pcmpgtd xmm7,xmm4
-        pand    xmm0,xmm11
-        pand    xmm1,xmm11
-        pand    xmm8,xmm12
-        pand    xmm9,xmm12
-        paddd   xmm6,xmm7
-
-        paddd   xmm0,XMMWORD[64+rsp]
-        paddd   xmm1,XMMWORD[80+rsp]
-        paddd   xmm8,XMMWORD[96+rsp]
-        paddd   xmm9,XMMWORD[112+rsp]
-
-        movq    QWORD[rbx],xmm6
-        dec     edx
-        jnz     NEAR $L$oop_shaext
-
-        mov     edx,DWORD[280+rsp]
-
-        pshufd  xmm0,xmm0,27
-        pshufd  xmm8,xmm8,27
-
-        movdqa  xmm6,xmm0
-        punpckldq       xmm0,xmm8
-        punpckhdq       xmm6,xmm8
-        punpckhdq       xmm1,xmm9
-        movq    QWORD[(0-64)+rdi],xmm0
-        psrldq  xmm0,8
-        movq    QWORD[(64-64)+rdi],xmm6
-        psrldq  xmm6,8
-        movq    QWORD[(32-64)+rdi],xmm0
-        psrldq  xmm1,8
-        movq    QWORD[(96-64)+rdi],xmm6
-        movq    QWORD[(128-64)+rdi],xmm1
-
-        lea     rdi,[8+rdi]
-        lea     rsi,[32+rsi]
-        dec     edx
-        jnz     NEAR $L$oop_grande_shaext
-
-$L$done_shaext:
-
-        movaps  xmm6,XMMWORD[((-184))+rax]
-        movaps  xmm7,XMMWORD[((-168))+rax]
-        movaps  xmm8,XMMWORD[((-152))+rax]
-        movaps  xmm9,XMMWORD[((-136))+rax]
-        movaps  xmm10,XMMWORD[((-120))+rax]
-        movaps  xmm11,XMMWORD[((-104))+rax]
-        movaps  xmm12,XMMWORD[((-88))+rax]
-        movaps  xmm13,XMMWORD[((-72))+rax]
-        movaps  xmm14,XMMWORD[((-56))+rax]
-        movaps  xmm15,XMMWORD[((-40))+rax]
-        mov     rbp,QWORD[((-16))+rax]
-
-        mov     rbx,QWORD[((-8))+rax]
-
-        lea     rsp,[rax]
-
-$L$epilogue_shaext:
-        mov     rdi,QWORD[8+rsp]        ;WIN64 epilogue
-        mov     rsi,QWORD[16+rsp]
-        DB      0F3h,0C3h               ;repret
-
-$L$SEH_end_sha1_multi_block_shaext:
-
-ALIGN   256
-        DD      0x5a827999,0x5a827999,0x5a827999,0x5a827999
-        DD      0x5a827999,0x5a827999,0x5a827999,0x5a827999
-K_XX_XX:
-        DD      0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
-        DD      0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
-        DD      0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
-        DD      0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
-        DD      0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
-        DD      0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
-        DD      0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
-        DD      0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
-DB      0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0
-DB      83,72,65,49,32,109,117,108,116,105,45,98,108,111,99,107
-DB      32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120
-DB      56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77
-DB      83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110
-DB      115,115,108,46,111,114,103,62,0
-EXTERN  __imp_RtlVirtualUnwind
-
-ALIGN   16
-se_handler:
-        push    rsi
-        push    rdi
-        push    rbx
-        push    rbp
-        push    r12
-        push    r13
-        push    r14
-        push    r15
-        pushfq
-        sub     rsp,64
-
-        mov     rax,QWORD[120+r8]
-        mov     rbx,QWORD[248+r8]
-
-        mov     rsi,QWORD[8+r9]
-        mov     r11,QWORD[56+r9]
-
-        mov     r10d,DWORD[r11]
-        lea     r10,[r10*1+rsi]
-        cmp     rbx,r10
-        jb      NEAR $L$in_prologue
-
-        mov     rax,QWORD[152+r8]
-
-        mov     r10d,DWORD[4+r11]
-        lea     r10,[r10*1+rsi]
-        cmp     rbx,r10
-        jae     NEAR $L$in_prologue
-
-        mov     rax,QWORD[272+rax]
-
-        mov     rbx,QWORD[((-8))+rax]
-        mov     rbp,QWORD[((-16))+rax]
-        mov     QWORD[144+r8],rbx
-        mov     QWORD[160+r8],rbp
-
-        lea     rsi,[((-24-160))+rax]
-        lea     rdi,[512+r8]
-        mov     ecx,20
-        DD      0xa548f3fc
-
-$L$in_prologue:
-        mov     rdi,QWORD[8+rax]
-        mov     rsi,QWORD[16+rax]
-        mov     QWORD[152+r8],rax
-        mov     QWORD[168+r8],rsi
-        mov     QWORD[176+r8],rdi
-
-        mov     rdi,QWORD[40+r9]
-        mov     rsi,r8
-        mov     ecx,154
-        DD      0xa548f3fc
-
-        mov     rsi,r9
-        xor     rcx,rcx
-        mov     rdx,QWORD[8+rsi]
-        mov     r8,QWORD[rsi]
-        mov     r9,QWORD[16+rsi]
-        mov     r10,QWORD[40+rsi]
-        lea     r11,[56+rsi]
-        lea     r12,[24+rsi]
-        mov     QWORD[32+rsp],r10
-        mov     QWORD[40+rsp],r11
-        mov     QWORD[48+rsp],r12
-        mov     QWORD[56+rsp],rcx
-        call    QWORD[__imp_RtlVirtualUnwind]
-
-        mov     eax,1
-        add     rsp,64
-        popfq
-        pop     r15
-        pop     r14
-        pop     r13
-        pop     r12
-        pop     rbp
-        pop     rbx
-        pop     rdi
-        pop     rsi
-        DB      0F3h,0C3h               ;repret
-
-section .pdata rdata align=4
-ALIGN   4
-        DD      $L$SEH_begin_sha1_multi_block wrt ..imagebase
-        DD      $L$SEH_end_sha1_multi_block wrt ..imagebase
-        DD      $L$SEH_info_sha1_multi_block wrt ..imagebase
-        DD      $L$SEH_begin_sha1_multi_block_shaext wrt ..imagebase
-        DD      $L$SEH_end_sha1_multi_block_shaext wrt ..imagebase
-        DD      $L$SEH_info_sha1_multi_block_shaext wrt ..imagebase
-section .xdata rdata align=8
-ALIGN   8
-$L$SEH_info_sha1_multi_block:
-DB      9,0,0,0
-        DD      se_handler wrt ..imagebase
-        DD      $L$body wrt ..imagebase,$L$epilogue wrt ..imagebase
-$L$SEH_info_sha1_multi_block_shaext:
-DB      9,0,0,0
-        DD      se_handler wrt ..imagebase
-        DD      $L$body_shaext wrt ..imagebase,$L$epilogue_shaext wrt ..imagebase
diff --git a/CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha1-x86_64.nasm b/CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha1-x86_64.nasm
deleted file mode 100644
index c6d68d348f41..000000000000
--- a/CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha1-x86_64.nasm
+++ /dev/null
@@ -1,2884 +0,0 @@
-; WARNING: do not edit!
-; Generated from openssl/crypto/sha/asm/sha1-x86_64.pl
-;
-; Copyright 2006-2020 The OpenSSL Project Authors. All Rights Reserved.
-;
-; Licensed under the OpenSSL license (the "License").  You may not use
-; this file except in compliance with the License.  You can obtain a copy
-; in the file LICENSE in the source distribution or at
-; https://www.openssl.org/source/license.html
-
-default rel
-%define XMMWORD
-%define YMMWORD
-%define ZMMWORD
-section .text code align=64
-
-EXTERN  OPENSSL_ia32cap_P
-
-global  sha1_block_data_order
-
-ALIGN   16
-sha1_block_data_order:
-        mov     QWORD[8+rsp],rdi        ;WIN64 prologue
-        mov     QWORD[16+rsp],rsi
-        mov     rax,rsp
-$L$SEH_begin_sha1_block_data_order:
-        mov     rdi,rcx
-        mov     rsi,rdx
-        mov     rdx,r8
-
-
-
-        mov     r9d,DWORD[((OPENSSL_ia32cap_P+0))]
-        mov     r8d,DWORD[((OPENSSL_ia32cap_P+4))]
-        mov     r10d,DWORD[((OPENSSL_ia32cap_P+8))]
-        test    r8d,512
-        jz      NEAR $L$ialu
-        test    r10d,536870912
-        jnz     NEAR _shaext_shortcut
-        jmp     NEAR _ssse3_shortcut
-
-ALIGN   16
-$L$ialu:
-        mov     rax,rsp
-
-        push    rbx
-
-        push    rbp
-
-        push    r12
-
-        push    r13
-
-        push    r14
-
-        mov     r8,rdi
-        sub     rsp,72
-        mov     r9,rsi
-        and     rsp,-64
-        mov     r10,rdx
-        mov     QWORD[64+rsp],rax
-
-$L$prologue:
-
-        mov     esi,DWORD[r8]
-        mov     edi,DWORD[4+r8]
-        mov     r11d,DWORD[8+r8]
-        mov     r12d,DWORD[12+r8]
-        mov     r13d,DWORD[16+r8]
-        jmp     NEAR $L$loop
-
-ALIGN   16
-$L$loop:
-        mov     edx,DWORD[r9]
-        bswap   edx
-        mov     ebp,DWORD[4+r9]
-        mov     eax,r12d
-        mov     DWORD[rsp],edx
-        mov     ecx,esi
-        bswap   ebp
-        xor     eax,r11d
-        rol     ecx,5
-        and     eax,edi
-        lea     r13d,[1518500249+r13*1+rdx]
-        add     r13d,ecx
-        xor     eax,r12d
-        rol     edi,30
-        add     r13d,eax
-        mov     r14d,DWORD[8+r9]
-        mov     eax,r11d
-        mov     DWORD[4+rsp],ebp
-        mov     ecx,r13d
-        bswap   r14d
-        xor     eax,edi
-        rol     ecx,5
-        and     eax,esi
-        lea     r12d,[1518500249+r12*1+rbp]
-        add     r12d,ecx
-        xor     eax,r11d
-        rol     esi,30
-        add     r12d,eax
-        mov     edx,DWORD[12+r9]
-        mov     eax,edi
-        mov     DWORD[8+rsp],r14d
-        mov     ecx,r12d
-        bswap   edx
-        xor     eax,esi
-        rol     ecx,5
-        and     eax,r13d
-        lea     r11d,[1518500249+r11*1+r14]
-        add     r11d,ecx
-        xor     eax,edi
-        rol     r13d,30
-        add     r11d,eax
-        mov     ebp,DWORD[16+r9]
-        mov     eax,esi
-        mov     DWORD[12+rsp],edx
-        mov     ecx,r11d
-        bswap   ebp
-        xor     eax,r13d
-        rol     ecx,5
-        and     eax,r12d
-        lea     edi,[1518500249+rdi*1+rdx]
-        add     edi,ecx
-        xor     eax,esi
-        rol     r12d,30
-        add     edi,eax
-        mov     r14d,DWORD[20+r9]
-        mov     eax,r13d
-        mov     DWORD[16+rsp],ebp
-        mov     ecx,edi
-        bswap   r14d
-        xor     eax,r12d
-        rol     ecx,5
-        and     eax,r11d
-        lea     esi,[1518500249+rsi*1+rbp]
-        add     esi,ecx
-        xor     eax,r13d
-        rol     r11d,30
-        add     esi,eax
-        mov     edx,DWORD[24+r9]
-        mov     eax,r12d
-        mov     DWORD[20+rsp],r14d
-        mov     ecx,esi
-        bswap   edx
-        xor     eax,r11d
-        rol     ecx,5
-        and     eax,edi
-        lea     r13d,[1518500249+r13*1+r14]
-        add     r13d,ecx
-        xor     eax,r12d
-        rol     edi,30
-        add     r13d,eax
-        mov     ebp,DWORD[28+r9]
-        mov     eax,r11d
-        mov     DWORD[24+rsp],edx
-        mov     ecx,r13d
-        bswap   ebp
-        xor     eax,edi
-        rol     ecx,5
-        and     eax,esi
-        lea     r12d,[1518500249+r12*1+rdx]
-        add     r12d,ecx
-        xor     eax,r11d
-        rol     esi,30
-        add     r12d,eax
-        mov     r14d,DWORD[32+r9]
-        mov     eax,edi
-        mov     DWORD[28+rsp],ebp
-        mov     ecx,r12d
-        bswap   r14d
-        xor     eax,esi
-        rol     ecx,5
-        and     eax,r13d
-        lea     r11d,[1518500249+r11*1+rbp]
-        add     r11d,ecx
-        xor     eax,edi
-        rol     r13d,30
-        add     r11d,eax
-        mov     edx,DWORD[36+r9]
-        mov     eax,esi
-        mov     DWORD[32+rsp],r14d
-        mov     ecx,r11d
-        bswap   edx
-        xor     eax,r13d
-        rol     ecx,5
-        and     eax,r12d
-        lea     edi,[1518500249+rdi*1+r14]
-        add     edi,ecx
-        xor     eax,esi
-        rol     r12d,30
-        add     edi,eax
-        mov     ebp,DWORD[40+r9]
-        mov     eax,r13d
-        mov     DWORD[36+rsp],edx
-        mov     ecx,edi
-        bswap   ebp
-        xor     eax,r12d
-        rol     ecx,5
-        and     eax,r11d
-        lea     esi,[1518500249+rsi*1+rdx]
-        add     esi,ecx
-        xor     eax,r13d
-        rol     r11d,30
-        add     esi,eax
-        mov     r14d,DWORD[44+r9]
-        mov     eax,r12d
-        mov     DWORD[40+rsp],ebp
-        mov     ecx,esi
-        bswap   r14d
-        xor     eax,r11d
-        rol     ecx,5
-        and     eax,edi
-        lea     r13d,[1518500249+r13*1+rbp]
-        add     r13d,ecx
-        xor     eax,r12d
-        rol     edi,30
-        add     r13d,eax
-        mov     edx,DWORD[48+r9]
-        mov     eax,r11d
-        mov     DWORD[44+rsp],r14d
-        mov     ecx,r13d
-        bswap   edx
-        xor     eax,edi
-        rol     ecx,5
-        and     eax,esi
-        lea     r12d,[1518500249+r12*1+r14]
-        add     r12d,ecx
-        xor     eax,r11d
-        rol     esi,30
-        add     r12d,eax
-        mov     ebp,DWORD[52+r9]
-        mov     eax,edi
-        mov     DWORD[48+rsp],edx
-        mov     ecx,r12d
-        bswap   ebp
-        xor     eax,esi
-        rol     ecx,5
-        and     eax,r13d
-        lea     r11d,[1518500249+r11*1+rdx]
-        add     r11d,ecx
-        xor     eax,edi
-        rol     r13d,30
-        add     r11d,eax
-        mov     r14d,DWORD[56+r9]
-        mov     eax,esi
-        mov     DWORD[52+rsp],ebp
-        mov     ecx,r11d
-        bswap   r14d
-        xor     eax,r13d
-        rol     ecx,5
-        and     eax,r12d
-        lea     edi,[1518500249+rdi*1+rbp]
-        add     edi,ecx
-        xor     eax,esi
-        rol     r12d,30
-        add     edi,eax
-        mov     edx,DWORD[60+r9]
-        mov     eax,r13d
-        mov     DWORD[56+rsp],r14d
-        mov     ecx,edi
-        bswap   edx
-        xor     eax,r12d
-        rol     ecx,5
-        and     eax,r11d
-        lea     esi,[1518500249+rsi*1+r14]
-        add     esi,ecx
-        xor     eax,r13d
-        rol     r11d,30
-        add     esi,eax
-        xor     ebp,DWORD[rsp]
-        mov     eax,r12d
-        mov     DWORD[60+rsp],edx
-        mov     ecx,esi
-        xor     ebp,DWORD[8+rsp]
-        xor     eax,r11d
-        rol     ecx,5
-        xor     ebp,DWORD[32+rsp]
-        and     eax,edi
-        lea     r13d,[1518500249+r13*1+rdx]
-        rol     edi,30
-        xor     eax,r12d
-        add     r13d,ecx
-        rol     ebp,1
-        add     r13d,eax
-        xor     r14d,DWORD[4+rsp]
-        mov     eax,r11d
-        mov     DWORD[rsp],ebp
-        mov     ecx,r13d
-        xor     r14d,DWORD[12+rsp]
-        xor     eax,edi
-        rol     ecx,5
-        xor     r14d,DWORD[36+rsp]
-        and     eax,esi
-        lea     r12d,[1518500249+r12*1+rbp]
-        rol     esi,30
-        xor     eax,r11d
-        add     r12d,ecx
-        rol     r14d,1
-        add     r12d,eax
-        xor     edx,DWORD[8+rsp]
-        mov     eax,edi
-        mov     DWORD[4+rsp],r14d
-        mov     ecx,r12d
-        xor     edx,DWORD[16+rsp]
-        xor     eax,esi
-        rol     ecx,5
-        xor     edx,DWORD[40+rsp]
-        and     eax,r13d
-        lea     r11d,[1518500249+r11*1+r14]
-        rol     r13d,30
-        xor     eax,edi
-        add     r11d,ecx
-        rol     edx,1
-        add     r11d,eax
-        xor     ebp,DWORD[12+rsp]
-        mov     eax,esi
-        mov     DWORD[8+rsp],edx
-        mov     ecx,r11d
-        xor     ebp,DWORD[20+rsp]
-        xor     eax,r13d
-        rol     ecx,5
-        xor     ebp,DWORD[44+rsp]
-        and     eax,r12d
-        lea     edi,[1518500249+rdi*1+rdx]
-        rol     r12d,30
-        xor     eax,esi
-        add     edi,ecx
-        rol     ebp,1
-        add     edi,eax
-        xor     r14d,DWORD[16+rsp]
-        mov     eax,r13d
-        mov     DWORD[12+rsp],ebp
-        mov     ecx,edi
-        xor     r14d,DWORD[24+rsp]
-        xor     eax,r12d
-        rol     ecx,5
-        xor     r14d,DWORD[48+rsp]
-        and     eax,r11d
-        lea     esi,[1518500249+rsi*1+rbp]
-        rol     r11d,30
-        xor     eax,r13d
-        add     esi,ecx
-        rol     r14d,1
-        add     esi,eax
-        xor     edx,DWORD[20+rsp]
-        mov     eax,edi
-        mov     DWORD[16+rsp],r14d
-        mov     ecx,esi
-        xor     edx,DWORD[28+rsp]
-        xor     eax,r12d
-        rol     ecx,5
-        xor     edx,DWORD[52+rsp]
-        lea     r13d,[1859775393+r13*1+r14]
-        xor     eax,r11d
-        add     r13d,ecx
-        rol     edi,30
-        add     r13d,eax
-        rol     edx,1
-        xor     ebp,DWORD[24+rsp]
-        mov     eax,esi
-        mov     DWORD[20+rsp],edx
-        mov     ecx,r13d
-        xor     ebp,DWORD[32+rsp]
-        xor     eax,r11d
-        rol     ecx,5
-        xor     ebp,DWORD[56+rsp]
-        lea     r12d,[1859775393+r12*1+rdx]
-        xor     eax,edi
-        add     r12d,ecx
-        rol     esi,30
-        add     r12d,eax
-        rol     ebp,1
-        xor     r14d,DWORD[28+rsp]
-        mov     eax,r13d
-        mov     DWORD[24+rsp],ebp
-        mov     ecx,r12d
-        xor     r14d,DWORD[36+rsp]
-        xor     eax,edi
-        rol     ecx,5
-        xor     r14d,DWORD[60+rsp]
-        lea     r11d,[1859775393+r11*1+rbp]
-        xor     eax,esi
-        add     r11d,ecx
-        rol     r13d,30
-        add     r11d,eax
-        rol     r14d,1
-        xor     edx,DWORD[32+rsp]
-        mov     eax,r12d
-        mov     DWORD[28+rsp],r14d
-        mov     ecx,r11d
-        xor     edx,DWORD[40+rsp]
-        xor     eax,esi
-        rol     ecx,5
-        xor     edx,DWORD[rsp]
-        lea     edi,[1859775393+rdi*1+r14]
-        xor     eax,r13d
-        add     edi,ecx
-        rol     r12d,30
-        add     edi,eax
-        rol     edx,1
-        xor     ebp,DWORD[36+rsp]
-        mov     eax,r11d
-        mov     DWORD[32+rsp],edx
-        mov     ecx,edi
-        xor     ebp,DWORD[44+rsp]
-        xor     eax,r13d
-        rol     ecx,5
-        xor     ebp,DWORD[4+rsp]
-        lea     esi,[1859775393+rsi*1+rdx]
-        xor     eax,r12d
-        add     esi,ecx
-        rol     r11d,30
-        add     esi,eax
-        rol     ebp,1
-        xor     r14d,DWORD[40+rsp]
-        mov     eax,edi
-        mov     DWORD[36+rsp],ebp
-        mov     ecx,esi
-        xor     r14d,DWORD[48+rsp]
-        xor     eax,r12d
-        rol     ecx,5
-        xor     r14d,DWORD[8+rsp]
-        lea     r13d,[1859775393+r13*1+rbp]
-        xor     eax,r11d
-        add     r13d,ecx
-        rol     edi,30
-        add     r13d,eax
-        rol     r14d,1
-        xor     edx,DWORD[44+rsp]
-        mov     eax,esi
-        mov     DWORD[40+rsp],r14d
-        mov     ecx,r13d
-        xor     edx,DWORD[52+rsp]
-        xor     eax,r11d
-        rol     ecx,5
-        xor     edx,DWORD[12+rsp]
-        lea     r12d,[1859775393+r12*1+r14]
-        xor     eax,edi
-        add     r12d,ecx
-        rol     esi,30
-        add     r12d,eax
-        rol     edx,1
-        xor     ebp,DWORD[48+rsp]
-        mov     eax,r13d
-        mov     DWORD[44+rsp],edx
-        mov     ecx,r12d
-        xor     ebp,DWORD[56+rsp]
-        xor     eax,edi
-        rol     ecx,5
-        xor     ebp,DWORD[16+rsp]
-        lea     r11d,[1859775393+r11*1+rdx]
-        xor     eax,esi
-        add     r11d,ecx
-        rol     r13d,30
-        add     r11d,eax
-        rol     ebp,1
-        xor     r14d,DWORD[52+rsp]
-        mov     eax,r12d
-        mov     DWORD[48+rsp],ebp
-        mov     ecx,r11d
-        xor     r14d,DWORD[60+rsp]
-        xor     eax,esi
-        rol     ecx,5
-        xor     r14d,DWORD[20+rsp]
-        lea     edi,[1859775393+rdi*1+rbp]
-        xor     eax,r13d
-        add     edi,ecx
-        rol     r12d,30
-        add     edi,eax
-        rol     r14d,1
-        xor     edx,DWORD[56+rsp]
-        mov     eax,r11d
-        mov     DWORD[52+rsp],r14d
-        mov     ecx,edi
-        xor     edx,DWORD[rsp]
-        xor     eax,r13d
-        rol     ecx,5
-        xor     edx,DWORD[24+rsp]
-        lea     esi,[1859775393+rsi*1+r14]
-        xor     eax,r12d
-        add     esi,ecx
-        rol     r11d,30
-        add     esi,eax
-        rol     edx,1
-        xor     ebp,DWORD[60+rsp]
-        mov     eax,edi
-        mov     DWORD[56+rsp],edx
-        mov     ecx,esi
-        xor     ebp,DWORD[4+rsp]
-        xor     eax,r12d
-        rol     ecx,5
-        xor     ebp,DWORD[28+rsp]
-        lea     r13d,[1859775393+r13*1+rdx]
-        xor     eax,r11d
-        add     r13d,ecx
-        rol     edi,30
-        add     r13d,eax
-        rol     ebp,1
-        xor     r14d,DWORD[rsp]
-        mov     eax,esi
-        mov     DWORD[60+rsp],ebp
-        mov     ecx,r13d
-        xor     r14d,DWORD[8+rsp]
-        xor     eax,r11d
-        rol     ecx,5
-        xor     r14d,DWORD[32+rsp]
-        lea     r12d,[1859775393+r12*1+rbp]
-        xor     eax,edi
-        add     r12d,ecx
-        rol     esi,30
-        add     r12d,eax
-        rol     r14d,1
-        xor     edx,DWORD[4+rsp]
-        mov     eax,r13d
-        mov     DWORD[rsp],r14d
-        mov     ecx,r12d
-        xor     edx,DWORD[12+rsp]
-        xor     eax,edi
-        rol     ecx,5
-        xor     edx,DWORD[36+rsp]
-        lea     r11d,[1859775393+r11*1+r14]
-        xor     eax,esi
-        add     r11d,ecx
-        rol     r13d,30
-        add     r11d,eax
-        rol     edx,1
-        xor     ebp,DWORD[8+rsp]
-        mov     eax,r12d
-        mov     DWORD[4+rsp],edx
-        mov     ecx,r11d
-        xor     ebp,DWORD[16+rsp]
-        xor     eax,esi
-        rol     ecx,5
-        xor     ebp,DWORD[40+rsp]
-        lea     edi,[1859775393+rdi*1+rdx]
-        xor     eax,r13d
-        add     edi,ecx
-        rol     r12d,30
-        add     edi,eax
-        rol     ebp,1
-        xor     r14d,DWORD[12+rsp]
-        mov     eax,r11d
-        mov     DWORD[8+rsp],ebp
-        mov     ecx,edi
-        xor     r14d,DWORD[20+rsp]
-        xor     eax,r13d
-        rol     ecx,5
-        xor     r14d,DWORD[44+rsp]
-        lea     esi,[1859775393+rsi*1+rbp]
-        xor     eax,r12d
-        add     esi,ecx
-        rol     r11d,30
-        add     esi,eax
-        rol     r14d,1
-        xor     edx,DWORD[16+rsp]
-        mov     eax,edi
-        mov     DWORD[12+rsp],r14d
-        mov     ecx,esi
-        xor     edx,DWORD[24+rsp]
-        xor     eax,r12d
-        rol     ecx,5
-        xor     edx,DWORD[48+rsp]
-        lea     r13d,[1859775393+r13*1+r14]
-        xor     eax,r11d
-        add     r13d,ecx
-        rol     edi,30
-        add     r13d,eax
-        rol     edx,1
-        xor     ebp,DWORD[20+rsp]
-        mov     eax,esi
-        mov     DWORD[16+rsp],edx
-        mov     ecx,r13d
-        xor     ebp,DWORD[28+rsp]
-        xor     eax,r11d
-        rol     ecx,5
-        xor     ebp,DWORD[52+rsp]
-        lea     r12d,[1859775393+r12*1+rdx]
-        xor     eax,edi
-        add     r12d,ecx
-        rol     esi,30
-        add     r12d,eax
-        rol     ebp,1
-        xor     r14d,DWORD[24+rsp]
-        mov     eax,r13d
-        mov     DWORD[20+rsp],ebp
-        mov     ecx,r12d
-        xor     r14d,DWORD[32+rsp]
-        xor     eax,edi
-        rol     ecx,5
-        xor     r14d,DWORD[56+rsp]
-        lea     r11d,[1859775393+r11*1+rbp]
-        xor     eax,esi
-        add     r11d,ecx
-        rol     r13d,30
-        add     r11d,eax
-        rol     r14d,1
-        xor     edx,DWORD[28+rsp]
-        mov     eax,r12d
-        mov     DWORD[24+rsp],r14d
-        mov     ecx,r11d
-        xor     edx,DWORD[36+rsp]
-        xor     eax,esi
-        rol     ecx,5
-        xor     edx,DWORD[60+rsp]
-        lea     edi,[1859775393+rdi*1+r14]
-        xor     eax,r13d
-        add     edi,ecx
-        rol     r12d,30
-        add     edi,eax
-        rol     edx,1
-        xor     ebp,DWORD[32+rsp]
-        mov     eax,r11d
-        mov     DWORD[28+rsp],edx
-        mov     ecx,edi
-        xor     ebp,DWORD[40+rsp]
-        xor     eax,r13d
-        rol     ecx,5
-        xor     ebp,DWORD[rsp]
-        lea     esi,[1859775393+rsi*1+rdx]
-        xor     eax,r12d
-        add     esi,ecx
-        rol     r11d,30
-        add     esi,eax
-        rol     ebp,1
-        xor     r14d,DWORD[36+rsp]
-        mov     eax,r12d
-        mov     DWORD[32+rsp],ebp
-        mov     ebx,r12d
-        xor     r14d,DWORD[44+rsp]
-        and     eax,r11d
-        mov     ecx,esi
-        xor     r14d,DWORD[4+rsp]
-        lea     r13d,[((-1894007588))+r13*1+rbp]
-        xor     ebx,r11d
-        rol     ecx,5
-        add     r13d,eax
-        rol     r14d,1
-        and     ebx,edi
-        add     r13d,ecx
-        rol     edi,30
-        add     r13d,ebx
-        xor     edx,DWORD[40+rsp]
-        mov     eax,r11d
-        mov     DWORD[36+rsp],r14d
-        mov     ebx,r11d
-        xor     edx,DWORD[48+rsp]
-        and     eax,edi
-        mov     ecx,r13d
-        xor     edx,DWORD[8+rsp]
-        lea     r12d,[((-1894007588))+r12*1+r14]
-        xor     ebx,edi
-        rol     ecx,5
-        add     r12d,eax
-        rol     edx,1
-        and     ebx,esi
-        add     r12d,ecx
-        rol     esi,30
-        add     r12d,ebx
-        xor     ebp,DWORD[44+rsp]
-        mov     eax,edi
-        mov     DWORD[40+rsp],edx
-        mov     ebx,edi
-        xor     ebp,DWORD[52+rsp]
-        and     eax,esi
-        mov     ecx,r12d
-        xor     ebp,DWORD[12+rsp]
-        lea     r11d,[((-1894007588))+r11*1+rdx]
-        xor     ebx,esi
-        rol     ecx,5
-        add     r11d,eax
-        rol     ebp,1
-        and     ebx,r13d
-        add     r11d,ecx
-        rol     r13d,30
-        add     r11d,ebx
-        xor     r14d,DWORD[48+rsp]
-        mov     eax,esi
-        mov     DWORD[44+rsp],ebp
-        mov     ebx,esi
-        xor     r14d,DWORD[56+rsp]
-        and     eax,r13d
-        mov     ecx,r11d
-        xor     r14d,DWORD[16+rsp]
-        lea     edi,[((-1894007588))+rdi*1+rbp]
-        xor     ebx,r13d
-        rol     ecx,5
-        add     edi,eax
-        rol     r14d,1
-        and     ebx,r12d
-        add     edi,ecx
-        rol     r12d,30
-        add     edi,ebx
-        xor     edx,DWORD[52+rsp]
-        mov     eax,r13d
-        mov     DWORD[48+rsp],r14d
-        mov     ebx,r13d
-        xor     edx,DWORD[60+rsp]
-        and     eax,r12d
-        mov     ecx,edi
-        xor     edx,DWORD[20+rsp]
-        lea     esi,[((-1894007588))+rsi*1+r14]
-        xor     ebx,r12d
-        rol     ecx,5
-        add     esi,eax
-        rol     edx,1
-        and     ebx,r11d
-        add     esi,ecx
-        rol     r11d,30
-        add     esi,ebx
-        xor     ebp,DWORD[56+rsp]
-        mov     eax,r12d
-        mov     DWORD[52+rsp],edx
-        mov     ebx,r12d
-        xor     ebp,DWORD[rsp]
-        and     eax,r11d
-        mov     ecx,esi
-        xor     ebp,DWORD[24+rsp]
-        lea     r13d,[((-1894007588))+r13*1+rdx]
-        xor     ebx,r11d
-        rol     ecx,5
-        add     r13d,eax
-        rol     ebp,1
-        and     ebx,edi
-        add     r13d,ecx
-        rol     edi,30
-        add     r13d,ebx
-        xor     r14d,DWORD[60+rsp]
-        mov     eax,r11d
-        mov     DWORD[56+rsp],ebp
-        mov     ebx,r11d
-        xor     r14d,DWORD[4+rsp]
-        and     eax,edi
-        mov     ecx,r13d
-        xor     r14d,DWORD[28+rsp]
-        lea     r12d,[((-1894007588))+r12*1+rbp]
-        xor     ebx,edi
-        rol     ecx,5
-        add     r12d,eax
-        rol     r14d,1
-        and     ebx,esi
-        add     r12d,ecx
-        rol     esi,30
-        add     r12d,ebx
-        xor     edx,DWORD[rsp]
-        mov     eax,edi
-        mov     DWORD[60+rsp],r14d
-        mov     ebx,edi
-        xor     edx,DWORD[8+rsp]
-        and     eax,esi
-        mov     ecx,r12d
-        xor     edx,DWORD[32+rsp]
-        lea     r11d,[((-1894007588))+r11*1+r14]
-        xor     ebx,esi
-        rol     ecx,5
-        add     r11d,eax
-        rol     edx,1
-        and     ebx,r13d
-        add     r11d,ecx
-        rol     r13d,30
-        add     r11d,ebx
-        xor     ebp,DWORD[4+rsp]
-        mov     eax,esi
-        mov     DWORD[rsp],edx
-        mov     ebx,esi
-        xor     ebp,DWORD[12+rsp]
-        and     eax,r13d
-        mov     ecx,r11d
-        xor     ebp,DWORD[36+rsp]
-        lea     edi,[((-1894007588))+rdi*1+rdx]
-        xor     ebx,r13d
-        rol     ecx,5
-        add     edi,eax
-        rol     ebp,1
-        and     ebx,r12d
-        add     edi,ecx
-        rol     r12d,30
-        add     edi,ebx
-        xor     r14d,DWORD[8+rsp]
-        mov     eax,r13d
-        mov     DWORD[4+rsp],ebp
-        mov     ebx,r13d
-        xor     r14d,DWORD[16+rsp]
-        and     eax,r12d
-        mov     ecx,edi
-        xor     r14d,DWORD[40+rsp]
-        lea     esi,[((-1894007588))+rsi*1+rbp]
-        xor     ebx,r12d
-        rol     ecx,5
-        add     esi,eax
-        rol     r14d,1
-        and     ebx,r11d
-        add     esi,ecx
-        rol     r11d,30
-        add     esi,ebx
-        xor     edx,DWORD[12+rsp]
-        mov     eax,r12d
-        mov     DWORD[8+rsp],r14d
-        mov     ebx,r12d
-        xor     edx,DWORD[20+rsp]
-        and     eax,r11d
-        mov     ecx,esi
-        xor     edx,DWORD[44+rsp]
-        lea     r13d,[((-1894007588))+r13*1+r14]
-        xor     ebx,r11d
-        rol     ecx,5
-        add     r13d,eax
-        rol     edx,1
-        and     ebx,edi
-        add     r13d,ecx
-        rol     edi,30
-        add     r13d,ebx
-        xor     ebp,DWORD[16+rsp]
-        mov     eax,r11d
-        mov     DWORD[12+rsp],edx
-        mov     ebx,r11d
-        xor     ebp,DWORD[24+rsp]
-        and     eax,edi
-        mov     ecx,r13d
-        xor     ebp,DWORD[48+rsp]
-        lea     r12d,[((-1894007588))+r12*1+rdx]
-        xor     ebx,edi
-        rol     ecx,5
-        add     r12d,eax
-        rol     ebp,1
-        and     ebx,esi
-        add     r12d,ecx
-        rol     esi,30
-        add     r12d,ebx
-        xor     r14d,DWORD[20+rsp]
-        mov     eax,edi
-        mov     DWORD[16+rsp],ebp
-        mov     ebx,edi
-        xor     r14d,DWORD[28+rsp]
-        and     eax,esi
-        mov     ecx,r12d
-        xor     r14d,DWORD[52+rsp]
-        lea     r11d,[((-1894007588))+r11*1+rbp]
-        xor     ebx,esi
-        rol     ecx,5
-        add     r11d,eax
-        rol     r14d,1
-        and     ebx,r13d
-        add     r11d,ecx
-        rol     r13d,30
-        add     r11d,ebx
-        xor     edx,DWORD[24+rsp]
-        mov     eax,esi
-        mov     DWORD[20+rsp],r14d
-        mov     ebx,esi
-        xor     edx,DWORD[32+rsp]
-        and     eax,r13d
-        mov     ecx,r11d
-        xor     edx,DWORD[56+rsp]
-        lea     edi,[((-1894007588))+rdi*1+r14]
-        xor     ebx,r13d
-        rol     ecx,5
-        add     edi,eax
-        rol     edx,1
-        and     ebx,r12d
-        add     edi,ecx
-        rol     r12d,30
-        add     edi,ebx
-        xor     ebp,DWORD[28+rsp]
-        mov     eax,r13d
-        mov     DWORD[24+rsp],edx
-        mov     ebx,r13d
-        xor     ebp,DWORD[36+rsp]
-        and     eax,r12d
-        mov     ecx,edi
-        xor     ebp,DWORD[60+rsp]
-        lea     esi,[((-1894007588))+rsi*1+rdx]
-        xor     ebx,r12d
-        rol     ecx,5
-        add     esi,eax
-        rol     ebp,1
-        and     ebx,r11d
-        add     esi,ecx
-        rol     r11d,30
-        add     esi,ebx
-        xor     r14d,DWORD[32+rsp]
-        mov     eax,r12d
-        mov     DWORD[28+rsp],ebp
-        mov     ebx,r12d
-        xor     r14d,DWORD[40+rsp]
-        and     eax,r11d
-        mov     ecx,esi
-        xor     r14d,DWORD[rsp]
-        lea     r13d,[((-1894007588))+r13*1+rbp]
-        xor     ebx,r11d
-        rol     ecx,5
-        add     r13d,eax
-        rol     r14d,1
-        and     ebx,edi
-        add     r13d,ecx
-        rol     edi,30
-        add     r13d,ebx
-        xor     edx,DWORD[36+rsp]
-        mov     eax,r11d
-        mov     DWORD[32+rsp],r14d
-        mov     ebx,r11d
-        xor     edx,DWORD[44+rsp]
-        and     eax,edi
-        mov     ecx,r13d
-        xor     edx,DWORD[4+rsp]
-        lea     r12d,[((-1894007588))+r12*1+r14]
-        xor     ebx,edi
-        rol     ecx,5
-        add     r12d,eax
-        rol     edx,1
-        and     ebx,esi
-        add     r12d,ecx
-        rol     esi,30
-        add     r12d,ebx
-        xor     ebp,DWORD[40+rsp]
-        mov     eax,edi
-        mov     DWORD[36+rsp],edx
-        mov     ebx,edi
-        xor     ebp,DWORD[48+rsp]
-        and     eax,esi
-        mov     ecx,r12d
-        xor     ebp,DWORD[8+rsp]
-        lea     r11d,[((-1894007588))+r11*1+rdx]
-        xor     ebx,esi
-        rol     ecx,5
-        add     r11d,eax
-        rol     ebp,1
-        and     ebx,r13d
-        add     r11d,ecx
-        rol     r13d,30
-        add     r11d,ebx
-        xor     r14d,DWORD[44+rsp]
-        mov     eax,esi
-        mov     DWORD[40+rsp],ebp
-        mov     ebx,esi
-        xor     r14d,DWORD[52+rsp]
-        and     eax,r13d
-        mov     ecx,r11d
-        xor     r14d,DWORD[12+rsp]
-        lea     edi,[((-1894007588))+rdi*1+rbp]
-        xor     ebx,r13d
-        rol     ecx,5
-        add     edi,eax
-        rol     r14d,1
-        and     ebx,r12d
-        add     edi,ecx
-        rol     r12d,30
-        add     edi,ebx
-        xor     edx,DWORD[48+rsp]
-        mov     eax,r13d
-        mov     DWORD[44+rsp],r14d
-        mov     ebx,r13d
-        xor     edx,DWORD[56+rsp]
-        and     eax,r12d
-        mov     ecx,edi
-        xor     edx,DWORD[16+rsp]
-        lea     esi,[((-1894007588))+rsi*1+r14]
-        xor     ebx,r12d
-        rol     ecx,5
-        add     esi,eax
-        rol     edx,1
-        and     ebx,r11d
-        add     esi,ecx
-        rol     r11d,30
-        add     esi,ebx
-        xor     ebp,DWORD[52+rsp]
-        mov     eax,edi
-        mov     DWORD[48+rsp],edx
-        mov     ecx,esi
-        xor     ebp,DWORD[60+rsp]
-        xor     eax,r12d
-        rol     ecx,5
-        xor     ebp,DWORD[20+rsp]
-        lea     r13d,[((-899497514))+r13*1+rdx]
-        xor     eax,r11d
-        add     r13d,ecx
-        rol     edi,30
-        add     r13d,eax
-        rol     ebp,1
-        xor     r14d,DWORD[56+rsp]
-        mov     eax,esi
-        mov     DWORD[52+rsp],ebp
-        mov     ecx,r13d
-        xor     r14d,DWORD[rsp]
-        xor     eax,r11d
-        rol     ecx,5
-        xor     r14d,DWORD[24+rsp]
-        lea     r12d,[((-899497514))+r12*1+rbp]
-        xor     eax,edi
-        add     r12d,ecx
-        rol     esi,30
-        add     r12d,eax
-        rol     r14d,1
-        xor     edx,DWORD[60+rsp]
-        mov     eax,r13d
-        mov     DWORD[56+rsp],r14d
-        mov     ecx,r12d
-        xor     edx,DWORD[4+rsp]
-        xor     eax,edi
-        rol     ecx,5
-        xor     edx,DWORD[28+rsp]
-        lea     r11d,[((-899497514))+r11*1+r14]
-        xor     eax,esi
-        add     r11d,ecx
-        rol     r13d,30
-        add     r11d,eax
-        rol     edx,1
-        xor     ebp,DWORD[rsp]
-        mov     eax,r12d
-        mov     DWORD[60+rsp],edx
-        mov     ecx,r11d
-        xor     ebp,DWORD[8+rsp]
-        xor     eax,esi
-        rol     ecx,5
-        xor     ebp,DWORD[32+rsp]
-        lea     edi,[((-899497514))+rdi*1+rdx]
-        xor     eax,r13d
-        add     edi,ecx
-        rol     r12d,30
-        add     edi,eax
-        rol     ebp,1
-        xor     r14d,DWORD[4+rsp]
-        mov     eax,r11d
-        mov     DWORD[rsp],ebp
-        mov     ecx,edi
-        xor     r14d,DWORD[12+rsp]
-        xor     eax,r13d
-        rol     ecx,5
-        xor     r14d,DWORD[36+rsp]
-        lea     esi,[((-899497514))+rsi*1+rbp]
-        xor     eax,r12d
-        add     esi,ecx
-        rol     r11d,30
-        add     esi,eax
-        rol     r14d,1
-        xor     edx,DWORD[8+rsp]
-        mov     eax,edi
-        mov     DWORD[4+rsp],r14d
-        mov     ecx,esi
-        xor     edx,DWORD[16+rsp]
-        xor     eax,r12d
-        rol     ecx,5
-        xor     edx,DWORD[40+rsp]
-        lea     r13d,[((-899497514))+r13*1+r14]
-        xor     eax,r11d
-        add     r13d,ecx
-        rol     edi,30
-        add     r13d,eax
-        rol     edx,1
-        xor     ebp,DWORD[12+rsp]
-        mov     eax,esi
-        mov     DWORD[8+rsp],edx
-        mov     ecx,r13d
-        xor     ebp,DWORD[20+rsp]
-        xor     eax,r11d
-        rol     ecx,5
-        xor     ebp,DWORD[44+rsp]
-        lea     r12d,[((-899497514))+r12*1+rdx]
-        xor     eax,edi
-        add     r12d,ecx
-        rol     esi,30
-        add     r12d,eax
-        rol     ebp,1
-        xor     r14d,DWORD[16+rsp]
-        mov     eax,r13d
-        mov     DWORD[12+rsp],ebp
-        mov     ecx,r12d
-        xor     r14d,DWORD[24+rsp]
-        xor     eax,edi
-        rol     ecx,5
-        xor     r14d,DWORD[48+rsp]
-        lea     r11d,[((-899497514))+r11*1+rbp]
-        xor     eax,esi
-        add     r11d,ecx
-        rol     r13d,30
-        add     r11d,eax
-        rol     r14d,1
-        xor     edx,DWORD[20+rsp]
-        mov     eax,r12d
-        mov     DWORD[16+rsp],r14d
-        mov     ecx,r11d
-        xor     edx,DWORD[28+rsp]
-        xor     eax,esi
-        rol     ecx,5
-        xor     edx,DWORD[52+rsp]
-        lea     edi,[((-899497514))+rdi*1+r14]
-        xor     eax,r13d
-        add     edi,ecx
-        rol     r12d,30
-        add     edi,eax
-        rol     edx,1
-        xor     ebp,DWORD[24+rsp]
-        mov     eax,r11d
-        mov     DWORD[20+rsp],edx
-        mov     ecx,edi
-        xor     ebp,DWORD[32+rsp]
-        xor     eax,r13d
-        rol     ecx,5
-        xor     ebp,DWORD[56+rsp]
-        lea     esi,[((-899497514))+rsi*1+rdx]
-        xor     eax,r12d
-        add     esi,ecx
-        rol     r11d,30
-        add     esi,eax
-        rol     ebp,1
-        xor     r14d,DWORD[28+rsp]
-        mov     eax,edi
-        mov     DWORD[24+rsp],ebp
-        mov     ecx,esi
-        xor     r14d,DWORD[36+rsp]
-        xor     eax,r12d
-        rol     ecx,5
-        xor     r14d,DWORD[60+rsp]
-        lea     r13d,[((-899497514))+r13*1+rbp]
-        xor     eax,r11d
-        add     r13d,ecx
-        rol     edi,30
-        add     r13d,eax
-        rol     r14d,1
-        xor     edx,DWORD[32+rsp]
-        mov     eax,esi
-        mov     DWORD[28+rsp],r14d
-        mov     ecx,r13d
-        xor     edx,DWORD[40+rsp]
-        xor     eax,r11d
-        rol     ecx,5
-        xor     edx,DWORD[rsp]
-        lea     r12d,[((-899497514))+r12*1+r14]
-        xor     eax,edi
-        add     r12d,ecx
-        rol     esi,30
-        add     r12d,eax
-        rol     edx,1
-        xor     ebp,DWORD[36+rsp]
-        mov     eax,r13d
-
-        mov     ecx,r12d
-        xor     ebp,DWORD[44+rsp]
-        xor     eax,edi
-        rol     ecx,5
-        xor     ebp,DWORD[4+rsp]
-        lea     r11d,[((-899497514))+r11*1+rdx]
-        xor     eax,esi
-        add     r11d,ecx
-        rol     r13d,30
-        add     r11d,eax
-        rol     ebp,1
-        xor     r14d,DWORD[40+rsp]
-        mov     eax,r12d
-
-        mov     ecx,r11d
-        xor     r14d,DWORD[48+rsp]
-        xor     eax,esi
-        rol     ecx,5
-        xor     r14d,DWORD[8+rsp]
-        lea     edi,[((-899497514))+rdi*1+rbp]
-        xor     eax,r13d
-        add     edi,ecx
-        rol     r12d,30
-        add     edi,eax
-        rol     r14d,1
-        xor     edx,DWORD[44+rsp]
-        mov     eax,r11d
-
-        mov     ecx,edi
-        xor     edx,DWORD[52+rsp]
-        xor     eax,r13d
-        rol     ecx,5
-        xor     edx,DWORD[12+rsp]
-        lea     esi,[((-899497514))+rsi*1+r14]
-        xor     eax,r12d
-        add     esi,ecx
-        rol     r11d,30
-        add     esi,eax
-        rol     edx,1
-        xor     ebp,DWORD[48+rsp]
-        mov     eax,edi
-
-        mov     ecx,esi
-        xor     ebp,DWORD[56+rsp]
-        xor     eax,r12d
-        rol     ecx,5
-        xor     ebp,DWORD[16+rsp]
-        lea     r13d,[((-899497514))+r13*1+rdx]
-        xor     eax,r11d
-        add     r13d,ecx
-        rol     edi,30
-        add     r13d,eax
-        rol     ebp,1
-        xor     r14d,DWORD[52+rsp]
-        mov     eax,esi
-
-        mov     ecx,r13d
-        xor     r14d,DWORD[60+rsp]
-        xor     eax,r11d
-        rol     ecx,5
-        xor     r14d,DWORD[20+rsp]
-        lea     r12d,[((-899497514))+r12*1+rbp]
-        xor     eax,edi
-        add     r12d,ecx
-        rol     esi,30
-        add     r12d,eax
-        rol     r14d,1
-        xor     edx,DWORD[56+rsp]
-        mov     eax,r13d
-
-        mov     ecx,r12d
-        xor     edx,DWORD[rsp]
-        xor     eax,edi
-        rol     ecx,5
-        xor     edx,DWORD[24+rsp]
-        lea     r11d,[((-899497514))+r11*1+r14]
-        xor     eax,esi
-        add     r11d,ecx
-        rol     r13d,30
-        add     r11d,eax
-        rol     edx,1
-        xor     ebp,DWORD[60+rsp]
-        mov     eax,r12d
-
-        mov     ecx,r11d
-        xor     ebp,DWORD[4+rsp]
-        xor     eax,esi
-        rol     ecx,5
-        xor     ebp,DWORD[28+rsp]
-        lea     edi,[((-899497514))+rdi*1+rdx]
-        xor     eax,r13d
-        add     edi,ecx
-        rol     r12d,30
-        add     edi,eax
-        rol     ebp,1
-        mov     eax,r11d
-        mov     ecx,edi
-        xor     eax,r13d
-        lea     esi,[((-899497514))+rsi*1+rbp]
-        rol     ecx,5
-        xor     eax,r12d
-        add     esi,ecx
-        rol     r11d,30
-        add     esi,eax
-        add     esi,DWORD[r8]
-        add     edi,DWORD[4+r8]
-        add     r11d,DWORD[8+r8]
-        add     r12d,DWORD[12+r8]
-        add     r13d,DWORD[16+r8]
-        mov     DWORD[r8],esi
-        mov     DWORD[4+r8],edi
-        mov     DWORD[8+r8],r11d
-        mov     DWORD[12+r8],r12d
-        mov     DWORD[16+r8],r13d
-
-        sub     r10,1
-        lea     r9,[64+r9]
-        jnz     NEAR $L$loop
-
-        mov     rsi,QWORD[64+rsp]
-
-        mov     r14,QWORD[((-40))+rsi]
-
-        mov     r13,QWORD[((-32))+rsi]
-
-        mov     r12,QWORD[((-24))+rsi]
-
-        mov     rbp,QWORD[((-16))+rsi]
-
-        mov     rbx,QWORD[((-8))+rsi]
-
-        lea     rsp,[rsi]
-
-$L$epilogue:
-        mov     rdi,QWORD[8+rsp]        ;WIN64 epilogue
-        mov     rsi,QWORD[16+rsp]
-        DB      0F3h,0C3h               ;repret
-
-$L$SEH_end_sha1_block_data_order:
-
-ALIGN   32
-sha1_block_data_order_shaext:
-        mov     QWORD[8+rsp],rdi        ;WIN64 prologue
-        mov     QWORD[16+rsp],rsi
-        mov     rax,rsp
-$L$SEH_begin_sha1_block_data_order_shaext:
-        mov     rdi,rcx
-        mov     rsi,rdx
-        mov     rdx,r8
-
-
-_shaext_shortcut:
-
-        lea     rsp,[((-72))+rsp]
-        movaps  XMMWORD[(-8-64)+rax],xmm6
-        movaps  XMMWORD[(-8-48)+rax],xmm7
-        movaps  XMMWORD[(-8-32)+rax],xmm8
-        movaps  XMMWORD[(-8-16)+rax],xmm9
-$L$prologue_shaext:
-        movdqu  xmm0,XMMWORD[rdi]
-        movd    xmm1,DWORD[16+rdi]
-        movdqa  xmm3,XMMWORD[((K_XX_XX+160))]
-
-        movdqu  xmm4,XMMWORD[rsi]
-        pshufd  xmm0,xmm0,27
-        movdqu  xmm5,XMMWORD[16+rsi]
-        pshufd  xmm1,xmm1,27
-        movdqu  xmm6,XMMWORD[32+rsi]
-DB      102,15,56,0,227
-        movdqu  xmm7,XMMWORD[48+rsi]
-DB      102,15,56,0,235
-DB      102,15,56,0,243
-        movdqa  xmm9,xmm1
-DB      102,15,56,0,251
-        jmp     NEAR $L$oop_shaext
-
-ALIGN   16
-$L$oop_shaext:
-        dec     rdx
-        lea     r8,[64+rsi]
-        paddd   xmm1,xmm4
-        cmovne  rsi,r8
-        movdqa  xmm8,xmm0
-DB      15,56,201,229
-        movdqa  xmm2,xmm0
-DB      15,58,204,193,0
-DB      15,56,200,213
-        pxor    xmm4,xmm6
-DB      15,56,201,238
-DB      15,56,202,231
-
-        movdqa  xmm1,xmm0
-DB      15,58,204,194,0
-DB      15,56,200,206
-        pxor    xmm5,xmm7
-DB      15,56,202,236
-DB      15,56,201,247
-        movdqa  xmm2,xmm0
-DB      15,58,204,193,0
-DB      15,56,200,215
-        pxor    xmm6,xmm4
-DB      15,56,201,252
-DB      15,56,202,245
-
-        movdqa  xmm1,xmm0
-DB      15,58,204,194,0
-DB      15,56,200,204
-        pxor    xmm7,xmm5
-DB      15,56,202,254
-DB      15,56,201,229
-        movdqa  xmm2,xmm0
-DB      15,58,204,193,0
-DB      15,56,200,213
-        pxor    xmm4,xmm6
-DB      15,56,201,238
-DB      15,56,202,231
-
-        movdqa  xmm1,xmm0
-DB      15,58,204,194,1
-DB      15,56,200,206
-        pxor    xmm5,xmm7
-DB      15,56,202,236
-DB      15,56,201,247
-        movdqa  xmm2,xmm0
-DB      15,58,204,193,1
-DB      15,56,200,215
-        pxor    xmm6,xmm4
-DB      15,56,201,252
-DB      15,56,202,245
-
-        movdqa  xmm1,xmm0
-DB      15,58,204,194,1
-DB      15,56,200,204
-        pxor    xmm7,xmm5
-DB      15,56,202,254
-DB      15,56,201,229
-        movdqa  xmm2,xmm0
-DB      15,58,204,193,1
-DB      15,56,200,213
-        pxor    xmm4,xmm6
-DB      15,56,201,238
-DB      15,56,202,231
-
-        movdqa  xmm1,xmm0
-DB      15,58,204,194,1
-DB      15,56,200,206
-        pxor    xmm5,xmm7
-DB      15,56,202,236
-DB      15,56,201,247
-        movdqa  xmm2,xmm0
-DB      15,58,204,193,2
-DB      15,56,200,215
-        pxor    xmm6,xmm4
-DB      15,56,201,252
-DB      15,56,202,245
-
-        movdqa  xmm1,xmm0
-DB      15,58,204,194,2
-DB      15,56,200,204
-        pxor    xmm7,xmm5
-DB      15,56,202,254
-DB      15,56,201,229
-        movdqa  xmm2,xmm0
-DB      15,58,204,193,2
-DB      15,56,200,213
-        pxor    xmm4,xmm6
-DB      15,56,201,238
-DB      15,56,202,231
-
-        movdqa  xmm1,xmm0
-DB      15,58,204,194,2
-DB      15,56,200,206
-        pxor    xmm5,xmm7
-DB      15,56,202,236
-DB      15,56,201,247
-        movdqa  xmm2,xmm0
-DB      15,58,204,193,2
-DB      15,56,200,215
-        pxor    xmm6,xmm4
-DB      15,56,201,252
-DB      15,56,202,245
-
-        movdqa  xmm1,xmm0
-DB      15,58,204,194,3
-DB      15,56,200,204
-        pxor    xmm7,xmm5
-DB      15,56,202,254
-        movdqu  xmm4,XMMWORD[rsi]
-        movdqa  xmm2,xmm0
-DB      15,58,204,193,3
-DB      15,56,200,213
-        movdqu  xmm5,XMMWORD[16+rsi]
-DB      102,15,56,0,227
-
-        movdqa  xmm1,xmm0
-DB      15,58,204,194,3
-DB      15,56,200,206
-        movdqu  xmm6,XMMWORD[32+rsi]
-DB      102,15,56,0,235
-
-        movdqa  xmm2,xmm0
-DB      15,58,204,193,3
-DB      15,56,200,215
-        movdqu  xmm7,XMMWORD[48+rsi]
-DB      102,15,56,0,243
-
-        movdqa  xmm1,xmm0
-DB      15,58,204,194,3
-DB      65,15,56,200,201
-DB      102,15,56,0,251
-
-        paddd   xmm0,xmm8
-        movdqa  xmm9,xmm1
-
-        jnz     NEAR $L$oop_shaext
-
-        pshufd  xmm0,xmm0,27
-        pshufd  xmm1,xmm1,27
-        movdqu  XMMWORD[rdi],xmm0
-        movd    DWORD[16+rdi],xmm1
-        movaps  xmm6,XMMWORD[((-8-64))+rax]
-        movaps  xmm7,XMMWORD[((-8-48))+rax]
-        movaps  xmm8,XMMWORD[((-8-32))+rax]
-        movaps  xmm9,XMMWORD[((-8-16))+rax]
-        mov     rsp,rax
-$L$epilogue_shaext:
-        mov     rdi,QWORD[8+rsp]        ;WIN64 epilogue
-        mov     rsi,QWORD[16+rsp]
-        DB      0F3h,0C3h               ;repret
-
-$L$SEH_end_sha1_block_data_order_shaext:
-
-ALIGN   16
-sha1_block_data_order_ssse3:
-        mov     QWORD[8+rsp],rdi        ;WIN64 prologue
-        mov     QWORD[16+rsp],rsi
-        mov     rax,rsp
-$L$SEH_begin_sha1_block_data_order_ssse3:
-        mov     rdi,rcx
-        mov     rsi,rdx
-        mov     rdx,r8
-
-
-_ssse3_shortcut:
-
-        mov     r11,rsp
-
-        push    rbx
-
-        push    rbp
-
-        push    r12
-
-        push    r13
-
-        push    r14
-
-        lea     rsp,[((-160))+rsp]
-        movaps  XMMWORD[(-40-96)+r11],xmm6
-        movaps  XMMWORD[(-40-80)+r11],xmm7
-        movaps  XMMWORD[(-40-64)+r11],xmm8
-        movaps  XMMWORD[(-40-48)+r11],xmm9
-        movaps  XMMWORD[(-40-32)+r11],xmm10
-        movaps  XMMWORD[(-40-16)+r11],xmm11
-$L$prologue_ssse3:
-        and     rsp,-64
-        mov     r8,rdi
-        mov     r9,rsi
-        mov     r10,rdx
-
-        shl     r10,6
-        add     r10,r9
-        lea     r14,[((K_XX_XX+64))]
-
-        mov     eax,DWORD[r8]
-        mov     ebx,DWORD[4+r8]
-        mov     ecx,DWORD[8+r8]
-        mov     edx,DWORD[12+r8]
-        mov     esi,ebx
-        mov     ebp,DWORD[16+r8]
-        mov     edi,ecx
-        xor     edi,edx
-        and     esi,edi
-
-        movdqa  xmm6,XMMWORD[64+r14]
-        movdqa  xmm9,XMMWORD[((-64))+r14]
-        movdqu  xmm0,XMMWORD[r9]
-        movdqu  xmm1,XMMWORD[16+r9]
-        movdqu  xmm2,XMMWORD[32+r9]
-        movdqu  xmm3,XMMWORD[48+r9]
-DB      102,15,56,0,198
-DB      102,15,56,0,206
-DB      102,15,56,0,214
-        add     r9,64
-        paddd   xmm0,xmm9
-DB      102,15,56,0,222
-        paddd   xmm1,xmm9
-        paddd   xmm2,xmm9
-        movdqa  XMMWORD[rsp],xmm0
-        psubd   xmm0,xmm9
-        movdqa  XMMWORD[16+rsp],xmm1
-        psubd   xmm1,xmm9
-        movdqa  XMMWORD[32+rsp],xmm2
-        psubd   xmm2,xmm9
-        jmp     NEAR $L$oop_ssse3
-ALIGN   16
-$L$oop_ssse3:
-        ror     ebx,2
-        pshufd  xmm4,xmm0,238
-        xor     esi,edx
-        movdqa  xmm8,xmm3
-        paddd   xmm9,xmm3
-        mov     edi,eax
-        add     ebp,DWORD[rsp]
-        punpcklqdq      xmm4,xmm1
-        xor     ebx,ecx
-        rol     eax,5
-        add     ebp,esi
-        psrldq  xmm8,4
-        and     edi,ebx
-        xor     ebx,ecx
-        pxor    xmm4,xmm0
-        add     ebp,eax
-        ror     eax,7
-        pxor    xmm8,xmm2
-        xor     edi,ecx
-        mov     esi,ebp
-        add     edx,DWORD[4+rsp]
-        pxor    xmm4,xmm8
-        xor     eax,ebx
-        rol     ebp,5
-        movdqa  XMMWORD[48+rsp],xmm9
-        add     edx,edi
-        and     esi,eax
-        movdqa  xmm10,xmm4
-        xor     eax,ebx
-        add     edx,ebp
-        ror     ebp,7
-        movdqa  xmm8,xmm4
-        xor     esi,ebx
-        pslldq  xmm10,12
-        paddd   xmm4,xmm4
-        mov     edi,edx
-        add     ecx,DWORD[8+rsp]
-        psrld   xmm8,31
-        xor     ebp,eax
-        rol     edx,5
-        add     ecx,esi
-        movdqa  xmm9,xmm10
-        and     edi,ebp
-        xor     ebp,eax
-        psrld   xmm10,30
-        add     ecx,edx
-        ror     edx,7
-        por     xmm4,xmm8
-        xor     edi,eax
-        mov     esi,ecx
-        add     ebx,DWORD[12+rsp]
-        pslld   xmm9,2
-        pxor    xmm4,xmm10
-        xor     edx,ebp
-        movdqa  xmm10,XMMWORD[((-64))+r14]
-        rol     ecx,5
-        add     ebx,edi
-        and     esi,edx
-        pxor    xmm4,xmm9
-        xor     edx,ebp
-        add     ebx,ecx
-        ror     ecx,7
-        pshufd  xmm5,xmm1,238
-        xor     esi,ebp
-        movdqa  xmm9,xmm4
-        paddd   xmm10,xmm4
-        mov     edi,ebx
-        add     eax,DWORD[16+rsp]
-        punpcklqdq      xmm5,xmm2
-        xor     ecx,edx
-        rol     ebx,5
-        add     eax,esi
-        psrldq  xmm9,4
-        and     edi,ecx
-        xor     ecx,edx
-        pxor    xmm5,xmm1
-        add     eax,ebx
-        ror     ebx,7
-        pxor    xmm9,xmm3
-        xor     edi,edx
-        mov     esi,eax
-        add     ebp,DWORD[20+rsp]
-        pxor    xmm5,xmm9
-        xor     ebx,ecx
-        rol     eax,5
-        movdqa  XMMWORD[rsp],xmm10
-        add     ebp,edi
-        and     esi,ebx
-        movdqa  xmm8,xmm5
-        xor     ebx,ecx
-        add     ebp,eax
-        ror     eax,7
-        movdqa  xmm9,xmm5
-        xor     esi,ecx
-        pslldq  xmm8,12
-        paddd   xmm5,xmm5
-        mov     edi,ebp
-        add     edx,DWORD[24+rsp]
-        psrld   xmm9,31
-        xor     eax,ebx
-        rol     ebp,5
-        add     edx,esi
-        movdqa  xmm10,xmm8
-        and     edi,eax
-        xor     eax,ebx
-        psrld   xmm8,30
-        add     edx,ebp
-        ror     ebp,7
-        por     xmm5,xmm9
-        xor     edi,ebx
-        mov     esi,edx
-        add     ecx,DWORD[28+rsp]
-        pslld   xmm10,2
-        pxor    xmm5,xmm8
-        xor     ebp,eax
-        movdqa  xmm8,XMMWORD[((-32))+r14]
-        rol     edx,5
-        add     ecx,edi
-        and     esi,ebp
-        pxor    xmm5,xmm10
-        xor     ebp,eax
-        add     ecx,edx
-        ror     edx,7
-        pshufd  xmm6,xmm2,238
-        xor     esi,eax
-        movdqa  xmm10,xmm5
-        paddd   xmm8,xmm5
-        mov     edi,ecx
-        add     ebx,DWORD[32+rsp]
-        punpcklqdq      xmm6,xmm3
-        xor     edx,ebp
-        rol     ecx,5
-        add     ebx,esi
-        psrldq  xmm10,4
-        and     edi,edx
-        xor     edx,ebp
-        pxor    xmm6,xmm2
-        add     ebx,ecx
-        ror     ecx,7
-        pxor    xmm10,xmm4
-        xor     edi,ebp
-        mov     esi,ebx
-        add     eax,DWORD[36+rsp]
-        pxor    xmm6,xmm10
-        xor     ecx,edx
-        rol     ebx,5
-        movdqa  XMMWORD[16+rsp],xmm8
-        add     eax,edi
-        and     esi,ecx
-        movdqa  xmm9,xmm6
-        xor     ecx,edx
-        add     eax,ebx
-        ror     ebx,7
-        movdqa  xmm10,xmm6
-        xor     esi,edx
-        pslldq  xmm9,12
-        paddd   xmm6,xmm6
-        mov     edi,eax
-        add     ebp,DWORD[40+rsp]
-        psrld   xmm10,31
-        xor     ebx,ecx
-        rol     eax,5
-        add     ebp,esi
-        movdqa  xmm8,xmm9
-        and     edi,ebx
-        xor     ebx,ecx
-        psrld   xmm9,30
-        add     ebp,eax
-        ror     eax,7
-        por     xmm6,xmm10
-        xor     edi,ecx
-        mov     esi,ebp
-        add     edx,DWORD[44+rsp]
-        pslld   xmm8,2
-        pxor    xmm6,xmm9
-        xor     eax,ebx
-        movdqa  xmm9,XMMWORD[((-32))+r14]
-        rol     ebp,5
-        add     edx,edi
-        and     esi,eax
-        pxor    xmm6,xmm8
-        xor     eax,ebx
-        add     edx,ebp
-        ror     ebp,7
-        pshufd  xmm7,xmm3,238
-        xor     esi,ebx
-        movdqa  xmm8,xmm6
-        paddd   xmm9,xmm6
-        mov     edi,edx
-        add     ecx,DWORD[48+rsp]
-        punpcklqdq      xmm7,xmm4
-        xor     ebp,eax
-        rol     edx,5
-        add     ecx,esi
-        psrldq  xmm8,4
-        and     edi,ebp
-        xor     ebp,eax
-        pxor    xmm7,xmm3
-        add     ecx,edx
-        ror     edx,7
-        pxor    xmm8,xmm5
-        xor     edi,eax
-        mov     esi,ecx
-        add     ebx,DWORD[52+rsp]
-        pxor    xmm7,xmm8
-        xor     edx,ebp
-        rol     ecx,5
-        movdqa  XMMWORD[32+rsp],xmm9
-        add     ebx,edi
-        and     esi,edx
-        movdqa  xmm10,xmm7
-        xor     edx,ebp
-        add     ebx,ecx
-        ror     ecx,7
-        movdqa  xmm8,xmm7
-        xor     esi,ebp
-        pslldq  xmm10,12
-        paddd   xmm7,xmm7
-        mov     edi,ebx
-        add     eax,DWORD[56+rsp]
-        psrld   xmm8,31
-        xor     ecx,edx
-        rol     ebx,5
-        add     eax,esi
-        movdqa  xmm9,xmm10
-        and     edi,ecx
-        xor     ecx,edx
-        psrld   xmm10,30
-        add     eax,ebx
-        ror     ebx,7
-        por     xmm7,xmm8
-        xor     edi,edx
-        mov     esi,eax
-        add     ebp,DWORD[60+rsp]
-        pslld   xmm9,2
-        pxor    xmm7,xmm10
-        xor     ebx,ecx
-        movdqa  xmm10,XMMWORD[((-32))+r14]
-        rol     eax,5
-        add     ebp,edi
-        and     esi,ebx
-        pxor    xmm7,xmm9
-        pshufd  xmm9,xmm6,238
-        xor     ebx,ecx
-        add     ebp,eax
-        ror     eax,7
-        pxor    xmm0,xmm4
-        xor     esi,ecx
-        mov     edi,ebp
-        add     edx,DWORD[rsp]
-        punpcklqdq      xmm9,xmm7
-        xor     eax,ebx
-        rol     ebp,5
-        pxor    xmm0,xmm1
-        add     edx,esi
-        and     edi,eax
-        movdqa  xmm8,xmm10
-        xor     eax,ebx
-        paddd   xmm10,xmm7
-        add     edx,ebp
-        pxor    xmm0,xmm9
-        ror     ebp,7
-        xor     edi,ebx
-        mov     esi,edx
-        add     ecx,DWORD[4+rsp]
-        movdqa  xmm9,xmm0
-        xor     ebp,eax
-        rol     edx,5
-        movdqa  XMMWORD[48+rsp],xmm10
-        add     ecx,edi
-        and     esi,ebp
-        xor     ebp,eax
-        pslld   xmm0,2
-        add     ecx,edx
-        ror     edx,7
-        psrld   xmm9,30
-        xor     esi,eax
-        mov     edi,ecx
-        add     ebx,DWORD[8+rsp]
-        por     xmm0,xmm9
-        xor     edx,ebp
-        rol     ecx,5
-        pshufd  xmm10,xmm7,238
-        add     ebx,esi
-        and     edi,edx
-        xor     edx,ebp
-        add     ebx,ecx
-        add     eax,DWORD[12+rsp]
-        xor     edi,ebp
-        mov     esi,ebx
-        rol     ebx,5
-        add     eax,edi
-        xor     esi,edx
-        ror     ecx,7
-        add     eax,ebx
-        pxor    xmm1,xmm5
-        add     ebp,DWORD[16+rsp]
-        xor     esi,ecx
-        punpcklqdq      xmm10,xmm0
-        mov     edi,eax
-        rol     eax,5
-        pxor    xmm1,xmm2
-        add     ebp,esi
-        xor     edi,ecx
-        movdqa  xmm9,xmm8
-        ror     ebx,7
-        paddd   xmm8,xmm0
-        add     ebp,eax
-        pxor    xmm1,xmm10
-        add     edx,DWORD[20+rsp]
-        xor     edi,ebx
-        mov     esi,ebp
-        rol     ebp,5
-        movdqa  xmm10,xmm1
-        add     edx,edi
-        xor     esi,ebx
-        movdqa  XMMWORD[rsp],xmm8
-        ror     eax,7
-        add     edx,ebp
-        add     ecx,DWORD[24+rsp]
-        pslld   xmm1,2
-        xor     esi,eax
-        mov     edi,edx
-        psrld   xmm10,30
-        rol     edx,5
-        add     ecx,esi
-        xor     edi,eax
-        ror     ebp,7
-        por     xmm1,xmm10
-        add     ecx,edx
-        add     ebx,DWORD[28+rsp]
-        pshufd  xmm8,xmm0,238
-        xor     edi,ebp
-        mov     esi,ecx
-        rol     ecx,5
-        add     ebx,edi
-        xor     esi,ebp
-        ror     edx,7
-        add     ebx,ecx
-        pxor    xmm2,xmm6
-        add     eax,DWORD[32+rsp]
-        xor     esi,edx
-        punpcklqdq      xmm8,xmm1
-        mov     edi,ebx
-        rol     ebx,5
-        pxor    xmm2,xmm3
-        add     eax,esi
-        xor     edi,edx
-        movdqa  xmm10,XMMWORD[r14]
-        ror     ecx,7
-        paddd   xmm9,xmm1
-        add     eax,ebx
-        pxor    xmm2,xmm8
-        add     ebp,DWORD[36+rsp]
-        xor     edi,ecx
-        mov     esi,eax
-        rol     eax,5
-        movdqa  xmm8,xmm2
-        add     ebp,edi
-        xor     esi,ecx
-        movdqa  XMMWORD[16+rsp],xmm9
-        ror     ebx,7
-        add     ebp,eax
-        add     edx,DWORD[40+rsp]
-        pslld   xmm2,2
-        xor     esi,ebx
-        mov     edi,ebp
-        psrld   xmm8,30
-        rol     ebp,5
-        add     edx,esi
-        xor     edi,ebx
-        ror     eax,7
-        por     xmm2,xmm8
-        add     edx,ebp
-        add     ecx,DWORD[44+rsp]
-        pshufd  xmm9,xmm1,238
-        xor     edi,eax
-        mov     esi,edx
-        rol     edx,5
-        add     ecx,edi
-        xor     esi,eax
-        ror     ebp,7
-        add     ecx,edx
-        pxor    xmm3,xmm7
-        add     ebx,DWORD[48+rsp]
-        xor     esi,ebp
-        punpcklqdq      xmm9,xmm2
-        mov     edi,ecx
-        rol     ecx,5
-        pxor    xmm3,xmm4
-        add     ebx,esi
-        xor     edi,ebp
-        movdqa  xmm8,xmm10
-        ror     edx,7
-        paddd   xmm10,xmm2
-        add     ebx,ecx
-        pxor    xmm3,xmm9
-        add     eax,DWORD[52+rsp]
-        xor     edi,edx
-        mov     esi,ebx
-        rol     ebx,5
-        movdqa  xmm9,xmm3
-        add     eax,edi
-        xor     esi,edx
-        movdqa  XMMWORD[32+rsp],xmm10
-        ror     ecx,7
-        add     eax,ebx
-        add     ebp,DWORD[56+rsp]
-        pslld   xmm3,2
-        xor     esi,ecx
-        mov     edi,eax
-        psrld   xmm9,30
-        rol     eax,5
-        add     ebp,esi
-        xor     edi,ecx
-        ror     ebx,7
-        por     xmm3,xmm9
-        add     ebp,eax
-        add     edx,DWORD[60+rsp]
-        pshufd  xmm10,xmm2,238
-        xor     edi,ebx
-        mov     esi,ebp
-        rol     ebp,5
-        add     edx,edi
-        xor     esi,ebx
-        ror     eax,7
-        add     edx,ebp
-        pxor    xmm4,xmm0
-        add     ecx,DWORD[rsp]
-        xor     esi,eax
-        punpcklqdq      xmm10,xmm3
-        mov     edi,edx
-        rol     edx,5
-        pxor    xmm4,xmm5
-        add     ecx,esi
-        xor     edi,eax
-        movdqa  xmm9,xmm8
-        ror     ebp,7
-        paddd   xmm8,xmm3
-        add     ecx,edx
-        pxor    xmm4,xmm10
-        add     ebx,DWORD[4+rsp]
-        xor     edi,ebp
-        mov     esi,ecx
-        rol     ecx,5
-        movdqa  xmm10,xmm4
-        add     ebx,edi
-        xor     esi,ebp
-        movdqa  XMMWORD[48+rsp],xmm8
-        ror     edx,7
-        add     ebx,ecx
-        add     eax,DWORD[8+rsp]
-        pslld   xmm4,2
-        xor     esi,edx
-        mov     edi,ebx
-        psrld   xmm10,30
-        rol     ebx,5
-        add     eax,esi
-        xor     edi,edx
-        ror     ecx,7
-        por     xmm4,xmm10
-        add     eax,ebx
-        add     ebp,DWORD[12+rsp]
-        pshufd  xmm8,xmm3,238
-        xor     edi,ecx
-        mov     esi,eax
-        rol     eax,5
-        add     ebp,edi
-        xor     esi,ecx
-        ror     ebx,7
-        add     ebp,eax
-        pxor    xmm5,xmm1
-        add     edx,DWORD[16+rsp]
-        xor     esi,ebx
-        punpcklqdq      xmm8,xmm4
-        mov     edi,ebp
-        rol     ebp,5
-        pxor    xmm5,xmm6
-        add     edx,esi
-        xor     edi,ebx
-        movdqa  xmm10,xmm9
-        ror     eax,7
-        paddd   xmm9,xmm4
-        add     edx,ebp
-        pxor    xmm5,xmm8
-        add     ecx,DWORD[20+rsp]
-        xor     edi,eax
-        mov     esi,edx
-        rol     edx,5
-        movdqa  xmm8,xmm5
-        add     ecx,edi
-        xor     esi,eax
-        movdqa  XMMWORD[rsp],xmm9
-        ror     ebp,7
-        add     ecx,edx
-        add     ebx,DWORD[24+rsp]
-        pslld   xmm5,2
-        xor     esi,ebp
-        mov     edi,ecx
-        psrld   xmm8,30
-        rol     ecx,5
-        add     ebx,esi
-        xor     edi,ebp
-        ror     edx,7
-        por     xmm5,xmm8
-        add     ebx,ecx
-        add     eax,DWORD[28+rsp]
-        pshufd  xmm9,xmm4,238
-        ror     ecx,7
-        mov     esi,ebx
-        xor     edi,edx
-        rol     ebx,5
-        add     eax,edi
-        xor     esi,ecx
-        xor     ecx,edx
-        add     eax,ebx
-        pxor    xmm6,xmm2
-        add     ebp,DWORD[32+rsp]
-        and     esi,ecx
-        xor     ecx,edx
-        ror     ebx,7
-        punpcklqdq      xmm9,xmm5
-        mov     edi,eax
-        xor     esi,ecx
-        pxor    xmm6,xmm7
-        rol     eax,5
-        add     ebp,esi
-        movdqa  xmm8,xmm10
-        xor     edi,ebx
-        paddd   xmm10,xmm5
-        xor     ebx,ecx
-        pxor    xmm6,xmm9
-        add     ebp,eax
-        add     edx,DWORD[36+rsp]
-        and     edi,ebx
-        xor     ebx,ecx
-        ror     eax,7
-        movdqa  xmm9,xmm6
-        mov     esi,ebp
-        xor     edi,ebx
-        movdqa  XMMWORD[16+rsp],xmm10
-        rol     ebp,5
-        add     edx,edi
-        xor     esi,eax
-        pslld   xmm6,2
-        xor     eax,ebx
-        add     edx,ebp
-        psrld   xmm9,30
-        add     ecx,DWORD[40+rsp]
-        and     esi,eax
-        xor     eax,ebx
-        por     xmm6,xmm9
-        ror     ebp,7
-        mov     edi,edx
-        xor     esi,eax
-        rol     edx,5
-        pshufd  xmm10,xmm5,238
-        add     ecx,esi
-        xor     edi,ebp
-        xor     ebp,eax
-        add     ecx,edx
-        add     ebx,DWORD[44+rsp]
-        and     edi,ebp
-        xor     ebp,eax
-        ror     edx,7
-        mov     esi,ecx
-        xor     edi,ebp
-        rol     ecx,5
-        add     ebx,edi
-        xor     esi,edx
-        xor     edx,ebp
-        add     ebx,ecx
-        pxor    xmm7,xmm3
-        add     eax,DWORD[48+rsp]
-        and     esi,edx
-        xor     edx,ebp
-        ror     ecx,7
-        punpcklqdq      xmm10,xmm6
-        mov     edi,ebx
-        xor     esi,edx
-        pxor    xmm7,xmm0
-        rol     ebx,5
-        add     eax,esi
-        movdqa  xmm9,XMMWORD[32+r14]
-        xor     edi,ecx
-        paddd   xmm8,xmm6
-        xor     ecx,edx
-        pxor    xmm7,xmm10
-        add     eax,ebx
-        add     ebp,DWORD[52+rsp]
-        and     edi,ecx
-        xor     ecx,edx
-        ror     ebx,7
-        movdqa  xmm10,xmm7
-        mov     esi,eax
-        xor     edi,ecx
-        movdqa  XMMWORD[32+rsp],xmm8
-        rol     eax,5
-        add     ebp,edi
-        xor     esi,ebx
-        pslld   xmm7,2
-        xor     ebx,ecx
-        add     ebp,eax
-        psrld   xmm10,30
-        add     edx,DWORD[56+rsp]
-        and     esi,ebx
-        xor     ebx,ecx
-        por     xmm7,xmm10
-        ror     eax,7
-        mov     edi,ebp
-        xor     esi,ebx
-        rol     ebp,5
-        pshufd  xmm8,xmm6,238
-        add     edx,esi
-        xor     edi,eax
-        xor     eax,ebx
-        add     edx,ebp
-        add     ecx,DWORD[60+rsp]
-        and     edi,eax
-        xor     eax,ebx
-        ror     ebp,7
-        mov     esi,edx
-        xor     edi,eax
-        rol     edx,5
-        add     ecx,edi
-        xor     esi,ebp
-        xor     ebp,eax
-        add     ecx,edx
-        pxor    xmm0,xmm4
-        add     ebx,DWORD[rsp]
-        and     esi,ebp
-        xor     ebp,eax
-        ror     edx,7
-        punpcklqdq      xmm8,xmm7
-        mov     edi,ecx
-        xor     esi,ebp
-        pxor    xmm0,xmm1
-        rol     ecx,5
-        add     ebx,esi
-        movdqa  xmm10,xmm9
-        xor     edi,edx
-        paddd   xmm9,xmm7
-        xor     edx,ebp
-        pxor    xmm0,xmm8
-        add     ebx,ecx
-        add     eax,DWORD[4+rsp]
-        and     edi,edx
-        xor     edx,ebp
-        ror     ecx,7
-        movdqa  xmm8,xmm0
-        mov     esi,ebx
-        xor     edi,edx
-        movdqa  XMMWORD[48+rsp],xmm9
-        rol     ebx,5
-        add     eax,edi
-        xor     esi,ecx
-        pslld   xmm0,2
-        xor     ecx,edx
-        add     eax,ebx
-        psrld   xmm8,30
-        add     ebp,DWORD[8+rsp]
-        and     esi,ecx
-        xor     ecx,edx
-        por     xmm0,xmm8
-        ror     ebx,7
-        mov     edi,eax
-        xor     esi,ecx
-        rol     eax,5
-        pshufd  xmm9,xmm7,238
-        add     ebp,esi
-        xor     edi,ebx
-        xor     ebx,ecx
-        add     ebp,eax
-        add     edx,DWORD[12+rsp]
-        and     edi,ebx
-        xor     ebx,ecx
-        ror     eax,7
-        mov     esi,ebp
-        xor     edi,ebx
-        rol     ebp,5
-        add     edx,edi
-        xor     esi,eax
-        xor     eax,ebx
-        add     edx,ebp
-        pxor    xmm1,xmm5
-        add     ecx,DWORD[16+rsp]
-        and     esi,eax
-        xor     eax,ebx
-        ror     ebp,7
-        punpcklqdq      xmm9,xmm0
-        mov     edi,edx
-        xor     esi,eax
-        pxor    xmm1,xmm2
-        rol     edx,5
-        add     ecx,esi
-        movdqa  xmm8,xmm10
-        xor     edi,ebp
-        paddd   xmm10,xmm0
-        xor     ebp,eax
-        pxor    xmm1,xmm9
-        add     ecx,edx
-        add     ebx,DWORD[20+rsp]
-        and     edi,ebp
-        xor     ebp,eax
-        ror     edx,7
-        movdqa  xmm9,xmm1
-        mov     esi,ecx
-        xor     edi,ebp
-        movdqa  XMMWORD[rsp],xmm10
-        rol     ecx,5
-        add     ebx,edi
-        xor     esi,edx
-        pslld   xmm1,2
-        xor     edx,ebp
-        add     ebx,ecx
-        psrld   xmm9,30
-        add     eax,DWORD[24+rsp]
-        and     esi,edx
-        xor     edx,ebp
-        por     xmm1,xmm9
-        ror     ecx,7
-        mov     edi,ebx
-        xor     esi,edx
-        rol     ebx,5
-        pshufd  xmm10,xmm0,238
-        add     eax,esi
-        xor     edi,ecx
-        xor     ecx,edx
-        add     eax,ebx
-        add     ebp,DWORD[28+rsp]
-        and     edi,ecx
-        xor     ecx,edx
-        ror     ebx,7
-        mov     esi,eax
-        xor     edi,ecx
-        rol     eax,5
-        add     ebp,edi
-        xor     esi,ebx
-        xor     ebx,ecx
-        add     ebp,eax
-        pxor    xmm2,xmm6
-        add     edx,DWORD[32+rsp]
-        and     esi,ebx
-        xor     ebx,ecx
-        ror     eax,7
-        punpcklqdq      xmm10,xmm1
-        mov     edi,ebp
-        xor     esi,ebx
-        pxor    xmm2,xmm3
-        rol     ebp,5
-        add     edx,esi
-        movdqa  xmm9,xmm8
-        xor     edi,eax
-        paddd   xmm8,xmm1
-        xor     eax,ebx
-        pxor    xmm2,xmm10
-        add     edx,ebp
-        add     ecx,DWORD[36+rsp]
-        and     edi,eax
-        xor     eax,ebx
-        ror     ebp,7
-        movdqa  xmm10,xmm2
-        mov     esi,edx
-        xor     edi,eax
-        movdqa  XMMWORD[16+rsp],xmm8
-        rol     edx,5
-        add     ecx,edi
-        xor     esi,ebp
-        pslld   xmm2,2
-        xor     ebp,eax
-        add     ecx,edx
-        psrld   xmm10,30
-        add     ebx,DWORD[40+rsp]
-        and     esi,ebp
-        xor     ebp,eax
-        por     xmm2,xmm10
-        ror     edx,7
-        mov     edi,ecx
-        xor     esi,ebp
-        rol     ecx,5
-        pshufd  xmm8,xmm1,238
-        add     ebx,esi
-        xor     edi,edx
-        xor     edx,ebp
-        add     ebx,ecx
-        add     eax,DWORD[44+rsp]
-        and     edi,edx
-        xor     edx,ebp
-        ror     ecx,7
-        mov     esi,ebx
-        xor     edi,edx
-        rol     ebx,5
-        add     eax,edi
-        xor     esi,edx
-        add     eax,ebx
-        pxor    xmm3,xmm7
-        add     ebp,DWORD[48+rsp]
-        xor     esi,ecx
-        punpcklqdq      xmm8,xmm2
-        mov     edi,eax
-        rol     eax,5
-        pxor    xmm3,xmm4
-        add     ebp,esi
-        xor     edi,ecx
-        movdqa  xmm10,xmm9
-        ror     ebx,7
-        paddd   xmm9,xmm2
-        add     ebp,eax
-        pxor    xmm3,xmm8
-        add     edx,DWORD[52+rsp]
-        xor     edi,ebx
-        mov     esi,ebp
-        rol     ebp,5
-        movdqa  xmm8,xmm3
-        add     edx,edi
-        xor     esi,ebx
-        movdqa  XMMWORD[32+rsp],xmm9
-        ror     eax,7
-        add     edx,ebp
-        add     ecx,DWORD[56+rsp]
-        pslld   xmm3,2
-        xor     esi,eax
-        mov     edi,edx
-        psrld   xmm8,30
-        rol     edx,5
-        add     ecx,esi
-        xor     edi,eax
-        ror     ebp,7
-        por     xmm3,xmm8
-        add     ecx,edx
-        add     ebx,DWORD[60+rsp]
-        xor     edi,ebp
-        mov     esi,ecx
-        rol     ecx,5
-        add     ebx,edi
-        xor     esi,ebp
-        ror     edx,7
-        add     ebx,ecx
-        add     eax,DWORD[rsp]
-        xor     esi,edx
-        mov     edi,ebx
-        rol     ebx,5
-        paddd   xmm10,xmm3
-        add     eax,esi
-        xor     edi,edx
-        movdqa  XMMWORD[48+rsp],xmm10
-        ror     ecx,7
-        add     eax,ebx
-        add     ebp,DWORD[4+rsp]
-        xor     edi,ecx
-        mov     esi,eax
-        rol     eax,5
-        add     ebp,edi
-        xor     esi,ecx
-        ror     ebx,7
-        add     ebp,eax
-        add     edx,DWORD[8+rsp]
-        xor     esi,ebx
-        mov     edi,ebp
-        rol     ebp,5
-        add     edx,esi
-        xor     edi,ebx
-        ror     eax,7
-        add     edx,ebp
-        add     ecx,DWORD[12+rsp]
-        xor     edi,eax
-        mov     esi,edx
-        rol     edx,5
-        add     ecx,edi
-        xor     esi,eax
-        ror     ebp,7
-        add     ecx,edx
-        cmp     r9,r10
-        je      NEAR $L$done_ssse3
-        movdqa  xmm6,XMMWORD[64+r14]
-        movdqa  xmm9,XMMWORD[((-64))+r14]
-        movdqu  xmm0,XMMWORD[r9]
-        movdqu  xmm1,XMMWORD[16+r9]
-        movdqu  xmm2,XMMWORD[32+r9]
-        movdqu  xmm3,XMMWORD[48+r9]
-DB      102,15,56,0,198
-        add     r9,64
-        add     ebx,DWORD[16+rsp]
-        xor     esi,ebp
-        mov     edi,ecx
-DB      102,15,56,0,206
-        rol     ecx,5
-        add     ebx,esi
-        xor     edi,ebp
-        ror     edx,7
-        paddd   xmm0,xmm9
-        add     ebx,ecx
-        add     eax,DWORD[20+rsp]
-        xor     edi,edx
-        mov     esi,ebx
-        movdqa  XMMWORD[rsp],xmm0
-        rol     ebx,5
-        add     eax,edi
-        xor     esi,edx
-        ror     ecx,7
-        psubd   xmm0,xmm9
-        add     eax,ebx
-        add     ebp,DWORD[24+rsp]
-        xor     esi,ecx
-        mov     edi,eax
-        rol     eax,5
-        add     ebp,esi
-        xor     edi,ecx
-        ror     ebx,7
-        add     ebp,eax
-        add     edx,DWORD[28+rsp]
-        xor     edi,ebx
-        mov     esi,ebp
-        rol     ebp,5
-        add     edx,edi
-        xor     esi,ebx
-        ror     eax,7
-        add     edx,ebp
-        add     ecx,DWORD[32+rsp]
-        xor     esi,eax
-        mov     edi,edx
-DB      102,15,56,0,214
-        rol     edx,5
-        add     ecx,esi
-        xor     edi,eax
-        ror     ebp,7
-        paddd   xmm1,xmm9
-        add     ecx,edx
-        add     ebx,DWORD[36+rsp]
-        xor     edi,ebp
-        mov     esi,ecx
-        movdqa  XMMWORD[16+rsp],xmm1
-        rol     ecx,5
-        add     ebx,edi
-        xor     esi,ebp
-        ror     edx,7
-        psubd   xmm1,xmm9
-        add     ebx,ecx
-        add     eax,DWORD[40+rsp]
-        xor     esi,edx
-        mov     edi,ebx
-        rol     ebx,5
-        add     eax,esi
-        xor     edi,edx
-        ror     ecx,7
-        add     eax,ebx
-        add     ebp,DWORD[44+rsp]
-        xor     edi,ecx
-        mov     esi,eax
-        rol     eax,5
-        add     ebp,edi
-        xor     esi,ecx
-        ror     ebx,7
-        add     ebp,eax
-        add     edx,DWORD[48+rsp]
-        xor     esi,ebx
-        mov     edi,ebp
-DB      102,15,56,0,222
-        rol     ebp,5
-        add     edx,esi
-        xor     edi,ebx
-        ror     eax,7
-        paddd   xmm2,xmm9
-        add     edx,ebp
-        add     ecx,DWORD[52+rsp]
-        xor     edi,eax
-        mov     esi,edx
-        movdqa  XMMWORD[32+rsp],xmm2
-        rol     edx,5
-        add     ecx,edi
-        xor     esi,eax
-        ror     ebp,7
-        psubd   xmm2,xmm9
-        add     ecx,edx
-        add     ebx,DWORD[56+rsp]
-        xor     esi,ebp
-        mov     edi,ecx
-        rol     ecx,5
-        add     ebx,esi
-        xor     edi,ebp
-        ror     edx,7
-        add     ebx,ecx
-        add     eax,DWORD[60+rsp]
-        xor     edi,edx
-        mov     esi,ebx
-        rol     ebx,5
-        add     eax,edi
-        ror     ecx,7
-        add     eax,ebx
-        add     eax,DWORD[r8]
-        add     esi,DWORD[4+r8]
-        add     ecx,DWORD[8+r8]
-        add     edx,DWORD[12+r8]
-        mov     DWORD[r8],eax
-        add     ebp,DWORD[16+r8]
-        mov     DWORD[4+r8],esi
-        mov     ebx,esi
-        mov     DWORD[8+r8],ecx
-        mov     edi,ecx
-        mov     DWORD[12+r8],edx
-        xor     edi,edx
-        mov     DWORD[16+r8],ebp
-        and     esi,edi
-        jmp     NEAR $L$oop_ssse3
-
-ALIGN   16
-$L$done_ssse3:
-        add     ebx,DWORD[16+rsp]
-        xor     esi,ebp
-        mov     edi,ecx
-        rol     ecx,5
-        add     ebx,esi
-        xor     edi,ebp
-        ror     edx,7
-        add     ebx,ecx
-        add     eax,DWORD[20+rsp]
-        xor     edi,edx
-        mov     esi,ebx
-        rol     ebx,5
-        add     eax,edi
-        xor     esi,edx
-        ror     ecx,7
-        add     eax,ebx
-        add     ebp,DWORD[24+rsp]
-        xor     esi,ecx
-        mov     edi,eax
-        rol     eax,5
-        add     ebp,esi
-        xor     edi,ecx
-        ror     ebx,7
-        add     ebp,eax
-        add     edx,DWORD[28+rsp]
-        xor     edi,ebx
-        mov     esi,ebp
-        rol     ebp,5
-        add     edx,edi
-        xor     esi,ebx
-        ror     eax,7
-        add     edx,ebp
-        add     ecx,DWORD[32+rsp]
-        xor     esi,eax
-        mov     edi,edx
-        rol     edx,5
-        add     ecx,esi
-        xor     edi,eax
-        ror     ebp,7
-        add     ecx,edx
-        add     ebx,DWORD[36+rsp]
-        xor     edi,ebp
-        mov     esi,ecx
-        rol     ecx,5
-        add     ebx,edi
-        xor     esi,ebp
-        ror     edx,7
-        add     ebx,ecx
-        add     eax,DWORD[40+rsp]
-        xor     esi,edx
-        mov     edi,ebx
-        rol     ebx,5
-        add     eax,esi
-        xor     edi,edx
-        ror     ecx,7
-        add     eax,ebx
-        add     ebp,DWORD[44+rsp]
-        xor     edi,ecx
-        mov     esi,eax
-        rol     eax,5
-        add     ebp,edi
-        xor     esi,ecx
-        ror     ebx,7
-        add     ebp,eax
-        add     edx,DWORD[48+rsp]
-        xor     esi,ebx
-        mov     edi,ebp
-        rol     ebp,5
-        add     edx,esi
-        xor     edi,ebx
-        ror     eax,7
-        add     edx,ebp
-        add     ecx,DWORD[52+rsp]
-        xor     edi,eax
-        mov     esi,edx
-        rol     edx,5
-        add     ecx,edi
-        xor     esi,eax
-        ror     ebp,7
-        add     ecx,edx
-        add     ebx,DWORD[56+rsp]
-        xor     esi,ebp
-        mov     edi,ecx
-        rol     ecx,5
-        add     ebx,esi
-        xor     edi,ebp
-        ror     edx,7
-        add     ebx,ecx
-        add     eax,DWORD[60+rsp]
-        xor     edi,edx
-        mov     esi,ebx
-        rol     ebx,5
-        add     eax,edi
-        ror     ecx,7
-        add     eax,ebx
-        add     eax,DWORD[r8]
-        add     esi,DWORD[4+r8]
-        add     ecx,DWORD[8+r8]
-        mov     DWORD[r8],eax
-        add     edx,DWORD[12+r8]
-        mov     DWORD[4+r8],esi
-        add     ebp,DWORD[16+r8]
-        mov     DWORD[8+r8],ecx
-        mov     DWORD[12+r8],edx
-        mov     DWORD[16+r8],ebp
-        movaps  xmm6,XMMWORD[((-40-96))+r11]
-        movaps  xmm7,XMMWORD[((-40-80))+r11]
-        movaps  xmm8,XMMWORD[((-40-64))+r11]
-        movaps  xmm9,XMMWORD[((-40-48))+r11]
-        movaps  xmm10,XMMWORD[((-40-32))+r11]
-        movaps  xmm11,XMMWORD[((-40-16))+r11]
-        mov     r14,QWORD[((-40))+r11]
-
-        mov     r13,QWORD[((-32))+r11]
-
-        mov     r12,QWORD[((-24))+r11]
-
-        mov     rbp,QWORD[((-16))+r11]
-
-        mov     rbx,QWORD[((-8))+r11]
-
-        lea     rsp,[r11]
-
-$L$epilogue_ssse3:
-        mov     rdi,QWORD[8+rsp]        ;WIN64 epilogue
-        mov     rsi,QWORD[16+rsp]
-        DB      0F3h,0C3h               ;repret
-
-$L$SEH_end_sha1_block_data_order_ssse3:
-ALIGN   64
-K_XX_XX:
-        DD      0x5a827999,0x5a827999,0x5a827999,0x5a827999
-        DD      0x5a827999,0x5a827999,0x5a827999,0x5a827999
-        DD      0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
-        DD      0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
-        DD      0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
-        DD      0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
-        DD      0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
-        DD      0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
-        DD      0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
-        DD      0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
-DB      0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0
-DB      83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115
-DB      102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44
-DB      32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60
-DB      97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114
-DB      103,62,0
-ALIGN   64
-EXTERN  __imp_RtlVirtualUnwind
-
-ALIGN   16
-se_handler:
-        push    rsi
-        push    rdi
-        push    rbx
-        push    rbp
-        push    r12
-        push    r13
-        push    r14
-        push    r15
-        pushfq
-        sub     rsp,64
-
-        mov     rax,QWORD[120+r8]
-        mov     rbx,QWORD[248+r8]
-
-        lea     r10,[$L$prologue]
-        cmp     rbx,r10
-        jb      NEAR $L$common_seh_tail
-
-        mov     rax,QWORD[152+r8]
-
-        lea     r10,[$L$epilogue]
-        cmp     rbx,r10
-        jae     NEAR $L$common_seh_tail
-
-        mov     rax,QWORD[64+rax]
-
-        mov     rbx,QWORD[((-8))+rax]
-        mov     rbp,QWORD[((-16))+rax]
-        mov     r12,QWORD[((-24))+rax]
-        mov     r13,QWORD[((-32))+rax]
-        mov     r14,QWORD[((-40))+rax]
-        mov     QWORD[144+r8],rbx
-        mov     QWORD[160+r8],rbp
-        mov     QWORD[216+r8],r12
-        mov     QWORD[224+r8],r13
-        mov     QWORD[232+r8],r14
-
-        jmp     NEAR $L$common_seh_tail
-
-
-ALIGN   16
-shaext_handler:
-        push    rsi
-        push    rdi
-        push    rbx
-        push    rbp
-        push    r12
-        push    r13
-        push    r14
-        push    r15
-        pushfq
-        sub     rsp,64
-
-        mov     rax,QWORD[120+r8]
-        mov     rbx,QWORD[248+r8]
-
-        lea     r10,[$L$prologue_shaext]
-        cmp     rbx,r10
-        jb      NEAR $L$common_seh_tail
-
-        lea     r10,[$L$epilogue_shaext]
-        cmp     rbx,r10
-        jae     NEAR $L$common_seh_tail
-
-        lea     rsi,[((-8-64))+rax]
-        lea     rdi,[512+r8]
-        mov     ecx,8
-        DD      0xa548f3fc
-
-        jmp     NEAR $L$common_seh_tail
-
-
-ALIGN   16
-ssse3_handler:
-        push    rsi
-        push    rdi
-        push    rbx
-        push    rbp
-        push    r12
-        push    r13
-        push    r14
-        push    r15
-        pushfq
-        sub     rsp,64
-
-        mov     rax,QWORD[120+r8]
-        mov     rbx,QWORD[248+r8]
-
-        mov     rsi,QWORD[8+r9]
-        mov     r11,QWORD[56+r9]
-
-        mov     r10d,DWORD[r11]
-        lea     r10,[r10*1+rsi]
-        cmp     rbx,r10
-        jb      NEAR $L$common_seh_tail
-
-        mov     rax,QWORD[208+r8]
-
-        mov     r10d,DWORD[4+r11]
-        lea     r10,[r10*1+rsi]
-        cmp     rbx,r10
-        jae     NEAR $L$common_seh_tail
-
-        lea     rsi,[((-40-96))+rax]
-        lea     rdi,[512+r8]
-        mov     ecx,12
-        DD      0xa548f3fc
-
-        mov     rbx,QWORD[((-8))+rax]
-        mov     rbp,QWORD[((-16))+rax]
-        mov     r12,QWORD[((-24))+rax]
-        mov     r13,QWORD[((-32))+rax]
-        mov     r14,QWORD[((-40))+rax]
-        mov     QWORD[144+r8],rbx
-        mov     QWORD[160+r8],rbp
-        mov     QWORD[216+r8],r12
-        mov     QWORD[224+r8],r13
-        mov     QWORD[232+r8],r14
-
-$L$common_seh_tail:
-        mov     rdi,QWORD[8+rax]
-        mov     rsi,QWORD[16+rax]
-        mov     QWORD[152+r8],rax
-        mov     QWORD[168+r8],rsi
-        mov     QWORD[176+r8],rdi
-
-        mov     rdi,QWORD[40+r9]
-        mov     rsi,r8
-        mov     ecx,154
-        DD      0xa548f3fc
-
-        mov     rsi,r9
-        xor     rcx,rcx
-        mov     rdx,QWORD[8+rsi]
-        mov     r8,QWORD[rsi]
-        mov     r9,QWORD[16+rsi]
-        mov     r10,QWORD[40+rsi]
-        lea     r11,[56+rsi]
-        lea     r12,[24+rsi]
-        mov     QWORD[32+rsp],r10
-        mov     QWORD[40+rsp],r11
-        mov     QWORD[48+rsp],r12
-        mov     QWORD[56+rsp],rcx
-        call    QWORD[__imp_RtlVirtualUnwind]
-
-        mov     eax,1
-        add     rsp,64
-        popfq
-        pop     r15
-        pop     r14
-        pop     r13
-        pop     r12
-        pop     rbp
-        pop     rbx
-        pop     rdi
-        pop     rsi
-        DB      0F3h,0C3h               ;repret
-
-
-section .pdata rdata align=4
-ALIGN   4
-        DD      $L$SEH_begin_sha1_block_data_order wrt ..imagebase
-        DD      $L$SEH_end_sha1_block_data_order wrt ..imagebase
-        DD      $L$SEH_info_sha1_block_data_order wrt ..imagebase
-        DD      $L$SEH_begin_sha1_block_data_order_shaext wrt ..imagebase
-        DD      $L$SEH_end_sha1_block_data_order_shaext wrt ..imagebase
-        DD      $L$SEH_info_sha1_block_data_order_shaext wrt ..imagebase
-        DD      $L$SEH_begin_sha1_block_data_order_ssse3 wrt ..imagebase
-        DD      $L$SEH_end_sha1_block_data_order_ssse3 wrt ..imagebase
-        DD      $L$SEH_info_sha1_block_data_order_ssse3 wrt ..imagebase
-section .xdata rdata align=8
-ALIGN   8
-$L$SEH_info_sha1_block_data_order:
-DB      9,0,0,0
-        DD      se_handler wrt ..imagebase
-$L$SEH_info_sha1_block_data_order_shaext:
-DB      9,0,0,0
-        DD      shaext_handler wrt ..imagebase
-$L$SEH_info_sha1_block_data_order_ssse3:
-DB      9,0,0,0
-        DD      ssse3_handler wrt ..imagebase
-        DD      $L$prologue_ssse3 wrt ..imagebase,$L$epilogue_ssse3 wrt ..imagebase
diff --git a/CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha256-mb-x86_64.nasm b/CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha256-mb-x86_64.nasm
deleted file mode 100644
index 7cd5eae85ca1..000000000000
--- a/CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha256-mb-x86_64.nasm
+++ /dev/null
@@ -1,3461 +0,0 @@
-; WARNING: do not edit!
-; Generated from openssl/crypto/sha/asm/sha256-mb-x86_64.pl
-;
-; Copyright 2013-2020 The OpenSSL Project Authors. All Rights Reserved.
-;
-; Licensed under the OpenSSL license (the "License").  You may not use
-; this file except in compliance with the License.  You can obtain a copy
-; in the file LICENSE in the source distribution or at
-; https://www.openssl.org/source/license.html
-
-default rel
-%define XMMWORD
-%define YMMWORD
-%define ZMMWORD
-section .text code align=64
-
-
-EXTERN  OPENSSL_ia32cap_P
-
-global  sha256_multi_block
-
-ALIGN   32
-sha256_multi_block:
-        mov     QWORD[8+rsp],rdi        ;WIN64 prologue
-        mov     QWORD[16+rsp],rsi
-        mov     rax,rsp
-$L$SEH_begin_sha256_multi_block:
-        mov     rdi,rcx
-        mov     rsi,rdx
-        mov     rdx,r8
-
-
-
-        mov     rcx,QWORD[((OPENSSL_ia32cap_P+4))]
-        bt      rcx,61
-        jc      NEAR _shaext_shortcut
-        mov     rax,rsp
-
-        push    rbx
-
-        push    rbp
-
-        lea     rsp,[((-168))+rsp]
-        movaps  XMMWORD[rsp],xmm6
-        movaps  XMMWORD[16+rsp],xmm7
-        movaps  XMMWORD[32+rsp],xmm8
-        movaps  XMMWORD[48+rsp],xmm9
-        movaps  XMMWORD[(-120)+rax],xmm10
-        movaps  XMMWORD[(-104)+rax],xmm11
-        movaps  XMMWORD[(-88)+rax],xmm12
-        movaps  XMMWORD[(-72)+rax],xmm13
-        movaps  XMMWORD[(-56)+rax],xmm14
-        movaps  XMMWORD[(-40)+rax],xmm15
-        sub     rsp,288
-        and     rsp,-256
-        mov     QWORD[272+rsp],rax
-
-$L$body:
-        lea     rbp,[((K256+128))]
-        lea     rbx,[256+rsp]
-        lea     rdi,[128+rdi]
-
-$L$oop_grande:
-        mov     DWORD[280+rsp],edx
-        xor     edx,edx
-        mov     r8,QWORD[rsi]
-        mov     ecx,DWORD[8+rsi]
-        cmp     ecx,edx
-        cmovg   edx,ecx
-        test    ecx,ecx
-        mov     DWORD[rbx],ecx
-        cmovle  r8,rbp
-        mov     r9,QWORD[16+rsi]
-        mov     ecx,DWORD[24+rsi]
-        cmp     ecx,edx
-        cmovg   edx,ecx
-        test    ecx,ecx
-        mov     DWORD[4+rbx],ecx
-        cmovle  r9,rbp
-        mov     r10,QWORD[32+rsi]
-        mov     ecx,DWORD[40+rsi]
-        cmp     ecx,edx
-        cmovg   edx,ecx
-        test    ecx,ecx
-        mov     DWORD[8+rbx],ecx
-        cmovle  r10,rbp
-        mov     r11,QWORD[48+rsi]
-        mov     ecx,DWORD[56+rsi]
-        cmp     ecx,edx
-        cmovg   edx,ecx
-        test    ecx,ecx
-        mov     DWORD[12+rbx],ecx
-        cmovle  r11,rbp
-        test    edx,edx
-        jz      NEAR $L$done
-
-        movdqu  xmm8,XMMWORD[((0-128))+rdi]
-        lea     rax,[128+rsp]
-        movdqu  xmm9,XMMWORD[((32-128))+rdi]
-        movdqu  xmm10,XMMWORD[((64-128))+rdi]
-        movdqu  xmm11,XMMWORD[((96-128))+rdi]
-        movdqu  xmm12,XMMWORD[((128-128))+rdi]
-        movdqu  xmm13,XMMWORD[((160-128))+rdi]
-        movdqu  xmm14,XMMWORD[((192-128))+rdi]
-        movdqu  xmm15,XMMWORD[((224-128))+rdi]
-        movdqu  xmm6,XMMWORD[$L$pbswap]
-        jmp     NEAR $L$oop
-
-ALIGN   32
-$L$oop:
-        movdqa  xmm4,xmm10
-        pxor    xmm4,xmm9
-        movd    xmm5,DWORD[r8]
-        movd    xmm0,DWORD[r9]
-        movd    xmm1,DWORD[r10]
-        movd    xmm2,DWORD[r11]
-        punpckldq       xmm5,xmm1
-        punpckldq       xmm0,xmm2
-        punpckldq       xmm5,xmm0
-        movdqa  xmm7,xmm12
-DB      102,15,56,0,238
-        movdqa  xmm2,xmm12
-
-        psrld   xmm7,6
-        movdqa  xmm1,xmm12
-        pslld   xmm2,7
-        movdqa  XMMWORD[(0-128)+rax],xmm5
-        paddd   xmm5,xmm15
-
-        psrld   xmm1,11
-        pxor    xmm7,xmm2
-        pslld   xmm2,21-7
-        paddd   xmm5,XMMWORD[((-128))+rbp]
-        pxor    xmm7,xmm1
-
-        psrld   xmm1,25-11
-        movdqa  xmm0,xmm12
-
-        pxor    xmm7,xmm2
-        movdqa  xmm3,xmm12
-        pslld   xmm2,26-21
-        pandn   xmm0,xmm14
-        pand    xmm3,xmm13
-        pxor    xmm7,xmm1
-
-
-        movdqa  xmm1,xmm8
-        pxor    xmm7,xmm2
-        movdqa  xmm2,xmm8
-        psrld   xmm1,2
-        paddd   xmm5,xmm7
-        pxor    xmm0,xmm3
-        movdqa  xmm3,xmm9
-        movdqa  xmm7,xmm8
-        pslld   xmm2,10
-        pxor    xmm3,xmm8
-
-
-        psrld   xmm7,13
-        pxor    xmm1,xmm2
-        paddd   xmm5,xmm0
-        pslld   xmm2,19-10
-        pand    xmm4,xmm3
-        pxor    xmm1,xmm7
-
-
-        psrld   xmm7,22-13
-        pxor    xmm1,xmm2
-        movdqa  xmm15,xmm9
-        pslld   xmm2,30-19
-        pxor    xmm7,xmm1
-        pxor    xmm15,xmm4
-        paddd   xmm11,xmm5
-        pxor    xmm7,xmm2
-
-        paddd   xmm15,xmm5
-        paddd   xmm15,xmm7
-        movd    xmm5,DWORD[4+r8]
-        movd    xmm0,DWORD[4+r9]
-        movd    xmm1,DWORD[4+r10]
-        movd    xmm2,DWORD[4+r11]
-        punpckldq       xmm5,xmm1
-        punpckldq       xmm0,xmm2
-        punpckldq       xmm5,xmm0
-        movdqa  xmm7,xmm11
-
-        movdqa  xmm2,xmm11
-DB      102,15,56,0,238
-        psrld   xmm7,6
-        movdqa  xmm1,xmm11
-        pslld   xmm2,7
-        movdqa  XMMWORD[(16-128)+rax],xmm5
-        paddd   xmm5,xmm14
-
-        psrld   xmm1,11
-        pxor    xmm7,xmm2
-        pslld   xmm2,21-7
-        paddd   xmm5,XMMWORD[((-96))+rbp]
-        pxor    xmm7,xmm1
-
-        psrld   xmm1,25-11
-        movdqa  xmm0,xmm11
-
-        pxor    xmm7,xmm2
-        movdqa  xmm4,xmm11
-        pslld   xmm2,26-21
-        pandn   xmm0,xmm13
-        pand    xmm4,xmm12
-        pxor    xmm7,xmm1
-
-
-        movdqa  xmm1,xmm15
-        pxor    xmm7,xmm2
-        movdqa  xmm2,xmm15
-        psrld   xmm1,2
-        paddd   xmm5,xmm7
-        pxor    xmm0,xmm4
-        movdqa  xmm4,xmm8
-        movdqa  xmm7,xmm15
-        pslld   xmm2,10
-        pxor    xmm4,xmm15
-
-
-        psrld   xmm7,13
-        pxor    xmm1,xmm2
-        paddd   xmm5,xmm0
-        pslld   xmm2,19-10
-        pand    xmm3,xmm4
-        pxor    xmm1,xmm7
-
-
-        psrld   xmm7,22-13
-        pxor    xmm1,xmm2
-        movdqa  xmm14,xmm8
-        pslld   xmm2,30-19
-        pxor    xmm7,xmm1
-        pxor    xmm14,xmm3
-        paddd   xmm10,xmm5
-        pxor    xmm7,xmm2
-
-        paddd   xmm14,xmm5
-        paddd   xmm14,xmm7
-        movd    xmm5,DWORD[8+r8]
-        movd    xmm0,DWORD[8+r9]
-        movd    xmm1,DWORD[8+r10]
-        movd    xmm2,DWORD[8+r11]
-        punpckldq       xmm5,xmm1
-        punpckldq       xmm0,xmm2
-        punpckldq       xmm5,xmm0
-        movdqa  xmm7,xmm10
-DB      102,15,56,0,238
-        movdqa  xmm2,xmm10
-
-        psrld   xmm7,6
-        movdqa  xmm1,xmm10
-        pslld   xmm2,7
-        movdqa  XMMWORD[(32-128)+rax],xmm5
-        paddd   xmm5,xmm13
-
-        psrld   xmm1,11
-        pxor    xmm7,xmm2
-        pslld   xmm2,21-7
-        paddd   xmm5,XMMWORD[((-64))+rbp]
-        pxor    xmm7,xmm1
-
-        psrld   xmm1,25-11
-        movdqa  xmm0,xmm10
-
-        pxor    xmm7,xmm2
-        movdqa  xmm3,xmm10
-        pslld   xmm2,26-21
-        pandn   xmm0,xmm12
-        pand    xmm3,xmm11
-        pxor    xmm7,xmm1
-
-
-        movdqa  xmm1,xmm14
-        pxor    xmm7,xmm2
-        movdqa  xmm2,xmm14
-        psrld   xmm1,2
-        paddd   xmm5,xmm7
-        pxor    xmm0,xmm3
-        movdqa  xmm3,xmm15
-        movdqa  xmm7,xmm14
-        pslld   xmm2,10
-        pxor    xmm3,xmm14
-
-
-        psrld   xmm7,13
-        pxor    xmm1,xmm2
-        paddd   xmm5,xmm0
-        pslld   xmm2,19-10
-        pand    xmm4,xmm3
-        pxor    xmm1,xmm7
-
-
-        psrld   xmm7,22-13
-        pxor    xmm1,xmm2
-        movdqa  xmm13,xmm15
-        pslld   xmm2,30-19
-        pxor    xmm7,xmm1
-        pxor    xmm13,xmm4
-        paddd   xmm9,xmm5
-        pxor    xmm7,xmm2
-
-        paddd   xmm13,xmm5
-        paddd   xmm13,xmm7
-        movd    xmm5,DWORD[12+r8]
-        movd    xmm0,DWORD[12+r9]
-        movd    xmm1,DWORD[12+r10]
-        movd    xmm2,DWORD[12+r11]
-        punpckldq       xmm5,xmm1
-        punpckldq       xmm0,xmm2
-        punpckldq       xmm5,xmm0
-        movdqa  xmm7,xmm9
-
-        movdqa  xmm2,xmm9
-DB      102,15,56,0,238
-        psrld   xmm7,6
-        movdqa  xmm1,xmm9
-        pslld   xmm2,7
-        movdqa  XMMWORD[(48-128)+rax],xmm5
-        paddd   xmm5,xmm12
-
-        psrld   xmm1,11
-        pxor    xmm7,xmm2
-        pslld   xmm2,21-7
-        paddd   xmm5,XMMWORD[((-32))+rbp]
-        pxor    xmm7,xmm1
-
-        psrld   xmm1,25-11
-        movdqa  xmm0,xmm9
-
-        pxor    xmm7,xmm2
-        movdqa  xmm4,xmm9
-        pslld   xmm2,26-21
-        pandn   xmm0,xmm11
-        pand    xmm4,xmm10
-        pxor    xmm7,xmm1
-
-
-        movdqa  xmm1,xmm13
-        pxor    xmm7,xmm2
-        movdqa  xmm2,xmm13
-        psrld   xmm1,2
-        paddd   xmm5,xmm7
-        pxor    xmm0,xmm4
-        movdqa  xmm4,xmm14
-        movdqa  xmm7,xmm13
-        pslld   xmm2,10
-        pxor    xmm4,xmm13
-
-
-        psrld   xmm7,13
-        pxor    xmm1,xmm2
-        paddd   xmm5,xmm0
-        pslld   xmm2,19-10
-        pand    xmm3,xmm4
-        pxor    xmm1,xmm7
-
-
-        psrld   xmm7,22-13
-        pxor    xmm1,xmm2
-        movdqa  xmm12,xmm14
-        pslld   xmm2,30-19
-        pxor    xmm7,xmm1
-        pxor    xmm12,xmm3
-        paddd   xmm8,xmm5
-        pxor    xmm7,xmm2
-
-        paddd   xmm12,xmm5
-        paddd   xmm12,xmm7
-        movd    xmm5,DWORD[16+r8]
-        movd    xmm0,DWORD[16+r9]
-        movd    xmm1,DWORD[16+r10]
-        movd    xmm2,DWORD[16+r11]
-        punpckldq       xmm5,xmm1
-        punpckldq       xmm0,xmm2
-        punpckldq       xmm5,xmm0
-        movdqa  xmm7,xmm8
-DB      102,15,56,0,238
-        movdqa  xmm2,xmm8
-
-        psrld   xmm7,6
-        movdqa  xmm1,xmm8
-        pslld   xmm2,7
-        movdqa  XMMWORD[(64-128)+rax],xmm5
-        paddd   xmm5,xmm11
-
-        psrld   xmm1,11
-        pxor    xmm7,xmm2
-        pslld   xmm2,21-7
-        paddd   xmm5,XMMWORD[rbp]
-        pxor    xmm7,xmm1
-
-        psrld   xmm1,25-11
-        movdqa  xmm0,xmm8
-
-        pxor    xmm7,xmm2
-        movdqa  xmm3,xmm8
-        pslld   xmm2,26-21
-        pandn   xmm0,xmm10
-        pand    xmm3,xmm9
-        pxor    xmm7,xmm1
-
-
-        movdqa  xmm1,xmm12
-        pxor    xmm7,xmm2
-        movdqa  xmm2,xmm12
-        psrld   xmm1,2
-        paddd   xmm5,xmm7
-        pxor    xmm0,xmm3
-        movdqa  xmm3,xmm13
-        movdqa  xmm7,xmm12
-        pslld   xmm2,10
-        pxor    xmm3,xmm12
-
-
-        psrld   xmm7,13
-        pxor    xmm1,xmm2
-        paddd   xmm5,xmm0
-        pslld   xmm2,19-10
-        pand    xmm4,xmm3
-        pxor    xmm1,xmm7
-
-
-        psrld   xmm7,22-13
-        pxor    xmm1,xmm2
-        movdqa  xmm11,xmm13
-        pslld   xmm2,30-19
-        pxor    xmm7,xmm1
-        pxor    xmm11,xmm4
-        paddd   xmm15,xmm5
-        pxor    xmm7,xmm2
-
-        paddd   xmm11,xmm5
-        paddd   xmm11,xmm7
-        movd    xmm5,DWORD[20+r8]
-        movd    xmm0,DWORD[20+r9]
-        movd    xmm1,DWORD[20+r10]
-        movd    xmm2,DWORD[20+r11]
-        punpckldq       xmm5,xmm1
-        punpckldq       xmm0,xmm2
-        punpckldq       xmm5,xmm0
-        movdqa  xmm7,xmm15
-
-        movdqa  xmm2,xmm15
-DB      102,15,56,0,238
-        psrld   xmm7,6
-        movdqa  xmm1,xmm15
-        pslld   xmm2,7
-        movdqa  XMMWORD[(80-128)+rax],xmm5
-        paddd   xmm5,xmm10
-
-        psrld   xmm1,11
-        pxor    xmm7,xmm2
-        pslld   xmm2,21-7
-        paddd   xmm5,XMMWORD[32+rbp]
-        pxor    xmm7,xmm1
-
-        psrld   xmm1,25-11
-        movdqa  xmm0,xmm15
-
-        pxor    xmm7,xmm2
-        movdqa  xmm4,xmm15
-        pslld   xmm2,26-21
-        pandn   xmm0,xmm9
-        pand    xmm4,xmm8
-        pxor    xmm7,xmm1
-
-
-        movdqa  xmm1,xmm11
-        pxor    xmm7,xmm2
-        movdqa  xmm2,xmm11
-        psrld   xmm1,2
-        paddd   xmm5,xmm7
-        pxor    xmm0,xmm4
-        movdqa  xmm4,xmm12
-        movdqa  xmm7,xmm11
-        pslld   xmm2,10
-        pxor    xmm4,xmm11
-
-
-        psrld   xmm7,13
-        pxor    xmm1,xmm2
-        paddd   xmm5,xmm0
-        pslld   xmm2,19-10
-        pand    xmm3,xmm4
-        pxor    xmm1,xmm7
-
-
-        psrld   xmm7,22-13
-        pxor    xmm1,xmm2
-        movdqa  xmm10,xmm12
-        pslld   xmm2,30-19
-        pxor    xmm7,xmm1
-        pxor    xmm10,xmm3
-        paddd   xmm14,xmm5
-        pxor    xmm7,xmm2
-
-        paddd   xmm10,xmm5
-        paddd   xmm10,xmm7
-        movd    xmm5,DWORD[24+r8]
-        movd    xmm0,DWORD[24+r9]
-        movd    xmm1,DWORD[24+r10]
-        movd    xmm2,DWORD[24+r11]
-        punpckldq       xmm5,xmm1
-        punpckldq       xmm0,xmm2
-        punpckldq       xmm5,xmm0
-        movdqa  xmm7,xmm14
-DB      102,15,56,0,238
-        movdqa  xmm2,xmm14
-
-        psrld   xmm7,6
-        movdqa  xmm1,xmm14
-        pslld   xmm2,7
-        movdqa  XMMWORD[(96-128)+rax],xmm5
-        paddd   xmm5,xmm9
-
-        psrld   xmm1,11
-        pxor    xmm7,xmm2
-        pslld   xmm2,21-7
-        paddd   xmm5,XMMWORD[64+rbp]
-        pxor    xmm7,xmm1
-
-        psrld   xmm1,25-11
-        movdqa  xmm0,xmm14
-
-        pxor    xmm7,xmm2
-        movdqa  xmm3,xmm14
-        pslld   xmm2,26-21
-        pandn   xmm0,xmm8
-        pand    xmm3,xmm15
-        pxor    xmm7,xmm1
-
-
-        movdqa  xmm1,xmm10
-        pxor    xmm7,xmm2
-        movdqa  xmm2,xmm10
-        psrld   xmm1,2
-        paddd   xmm5,xmm7
-        pxor    xmm0,xmm3
-        movdqa  xmm3,xmm11
-        movdqa  xmm7,xmm10
-        pslld   xmm2,10
-        pxor    xmm3,xmm10
-
-
-        psrld   xmm7,13
-        pxor    xmm1,xmm2
-        paddd   xmm5,xmm0
-        pslld   xmm2,19-10
-        pand    xmm4,xmm3
-        pxor    xmm1,xmm7
-
-
-        psrld   xmm7,22-13
-        pxor    xmm1,xmm2
-        movdqa  xmm9,xmm11
-        pslld   xmm2,30-19
-        pxor    xmm7,xmm1
-        pxor    xmm9,xmm4
-        paddd   xmm13,xmm5
-        pxor    xmm7,xmm2
-
-        paddd   xmm9,xmm5
-        paddd   xmm9,xmm7
-        movd    xmm5,DWORD[28+r8]
-        movd    xmm0,DWORD[28+r9]
-        movd    xmm1,DWORD[28+r10]
-        movd    xmm2,DWORD[28+r11]
-        punpckldq       xmm5,xmm1
-        punpckldq       xmm0,xmm2
-        punpckldq       xmm5,xmm0
-        movdqa  xmm7,xmm13
-
-        movdqa  xmm2,xmm13
-DB      102,15,56,0,238
-        psrld   xmm7,6
-        movdqa  xmm1,xmm13
-        pslld   xmm2,7
-        movdqa  XMMWORD[(112-128)+rax],xmm5
-        paddd   xmm5,xmm8
-
-        psrld   xmm1,11
-        pxor    xmm7,xmm2
-        pslld   xmm2,21-7
-        paddd   xmm5,XMMWORD[96+rbp]
-        pxor    xmm7,xmm1
-
-        psrld   xmm1,25-11
-        movdqa  xmm0,xmm13
-
-        pxor    xmm7,xmm2
-        movdqa  xmm4,xmm13
-        pslld   xmm2,26-21
-        pandn   xmm0,xmm15
-        pand    xmm4,xmm14
-        pxor    xmm7,xmm1
-
-
-        movdqa  xmm1,xmm9
-        pxor    xmm7,xmm2
-        movdqa  xmm2,xmm9
-        psrld   xmm1,2
-        paddd   xmm5,xmm7
-        pxor    xmm0,xmm4
-        movdqa  xmm4,xmm10
-        movdqa  xmm7,xmm9
-        pslld   xmm2,10
-        pxor    xmm4,xmm9
-
-
-        psrld   xmm7,13
-        pxor    xmm1,xmm2
-        paddd   xmm5,xmm0
-        pslld   xmm2,19-10
-        pand    xmm3,xmm4
-        pxor    xmm1,xmm7
-
-
-        psrld   xmm7,22-13
-        pxor    xmm1,xmm2
-        movdqa  xmm8,xmm10
-        pslld   xmm2,30-19
-        pxor    xmm7,xmm1
-        pxor    xmm8,xmm3
-        paddd   xmm12,xmm5
-        pxor    xmm7,xmm2
-
-        paddd   xmm8,xmm5
-        paddd   xmm8,xmm7
-        lea     rbp,[256+rbp]
-        movd    xmm5,DWORD[32+r8]
-        movd    xmm0,DWORD[32+r9]
-        movd    xmm1,DWORD[32+r10]
-        movd    xmm2,DWORD[32+r11]
-        punpckldq       xmm5,xmm1
-        punpckldq       xmm0,xmm2
-        punpckldq       xmm5,xmm0
-        movdqa  xmm7,xmm12
-DB      102,15,56,0,238
-        movdqa  xmm2,xmm12
-
-        psrld   xmm7,6
-        movdqa  xmm1,xmm12
-        pslld   xmm2,7
-        movdqa  XMMWORD[(128-128)+rax],xmm5
-        paddd   xmm5,xmm15
-
-        psrld   xmm1,11
-        pxor    xmm7,xmm2
-        pslld   xmm2,21-7
-        paddd   xmm5,XMMWORD[((-128))+rbp]
-        pxor    xmm7,xmm1
-
-        psrld   xmm1,25-11
-        movdqa  xmm0,xmm12
-
-        pxor    xmm7,xmm2
-        movdqa  xmm3,xmm12
-        pslld   xmm2,26-21
-        pandn   xmm0,xmm14
-        pand    xmm3,xmm13
-        pxor    xmm7,xmm1
-
-
-        movdqa  xmm1,xmm8
-        pxor    xmm7,xmm2
-        movdqa  xmm2,xmm8
-        psrld   xmm1,2
-        paddd   xmm5,xmm7
-        pxor    xmm0,xmm3
-        movdqa  xmm3,xmm9
-        movdqa  xmm7,xmm8
-        pslld   xmm2,10
-        pxor    xmm3,xmm8
-
-
-        psrld   xmm7,13
-        pxor    xmm1,xmm2
-        paddd   xmm5,xmm0
-        pslld   xmm2,19-10
-        pand    xmm4,xmm3
-        pxor    xmm1,xmm7
-
-
-        psrld   xmm7,22-13
-        pxor    xmm1,xmm2
-        movdqa  xmm15,xmm9
-        pslld   xmm2,30-19
-        pxor    xmm7,xmm1
-        pxor    xmm15,xmm4
-        paddd   xmm11,xmm5
-        pxor    xmm7,xmm2
-
-        paddd   xmm15,xmm5
-        paddd   xmm15,xmm7
-        movd    xmm5,DWORD[36+r8]
-        movd    xmm0,DWORD[36+r9]
-        movd    xmm1,DWORD[36+r10]
-        movd    xmm2,DWORD[36+r11]
-        punpckldq       xmm5,xmm1
-        punpckldq       xmm0,xmm2
-        punpckldq       xmm5,xmm0
-        movdqa  xmm7,xmm11
-
-        movdqa  xmm2,xmm11
-DB      102,15,56,0,238
-        psrld   xmm7,6
-        movdqa  xmm1,xmm11
-        pslld   xmm2,7
-        movdqa  XMMWORD[(144-128)+rax],xmm5
-        paddd   xmm5,xmm14
-
-        psrld   xmm1,11
-        pxor    xmm7,xmm2
-        pslld   xmm2,21-7
-        paddd   xmm5,XMMWORD[((-96))+rbp]
-        pxor    xmm7,xmm1
-
-        psrld   xmm1,25-11
-        movdqa  xmm0,xmm11
-
-        pxor    xmm7,xmm2
-        movdqa  xmm4,xmm11
-        pslld   xmm2,26-21
-        pandn   xmm0,xmm13
-        pand    xmm4,xmm12
-        pxor    xmm7,xmm1
-
-
-        movdqa  xmm1,xmm15
-        pxor    xmm7,xmm2
-        movdqa  xmm2,xmm15
-        psrld   xmm1,2
-        paddd   xmm5,xmm7
-        pxor    xmm0,xmm4
-        movdqa  xmm4,xmm8
-        movdqa  xmm7,xmm15
-        pslld   xmm2,10
-        pxor    xmm4,xmm15
-
-
-        psrld   xmm7,13
-        pxor    xmm1,xmm2
-        paddd   xmm5,xmm0
-        pslld   xmm2,19-10
-        pand    xmm3,xmm4
-        pxor    xmm1,xmm7
-
-
-        psrld   xmm7,22-13
-        pxor    xmm1,xmm2
-        movdqa  xmm14,xmm8
-        pslld   xmm2,30-19
-        pxor    xmm7,xmm1
-        pxor    xmm14,xmm3
-        paddd   xmm10,xmm5
-        pxor    xmm7,xmm2
-
-        paddd   xmm14,xmm5
-        paddd   xmm14,xmm7
-        movd    xmm5,DWORD[40+r8]
-        movd    xmm0,DWORD[40+r9]
-        movd    xmm1,DWORD[40+r10]
-        movd    xmm2,DWORD[40+r11]
-        punpckldq       xmm5,xmm1
-        punpckldq       xmm0,xmm2
-        punpckldq       xmm5,xmm0
-        movdqa  xmm7,xmm10
-DB      102,15,56,0,238
-        movdqa  xmm2,xmm10
-
-        psrld   xmm7,6
-        movdqa  xmm1,xmm10
-        pslld   xmm2,7
-        movdqa  XMMWORD[(160-128)+rax],xmm5
-        paddd   xmm5,xmm13
-
-        psrld   xmm1,11
-        pxor    xmm7,xmm2
-        pslld   xmm2,21-7
-        paddd   xmm5,XMMWORD[((-64))+rbp]
-        pxor    xmm7,xmm1
-
-        psrld   xmm1,25-11
-        movdqa  xmm0,xmm10
-
-        pxor    xmm7,xmm2
-        movdqa  xmm3,xmm10
-        pslld   xmm2,26-21
-        pandn   xmm0,xmm12
-        pand    xmm3,xmm11
-        pxor    xmm7,xmm1
-
-
-        movdqa  xmm1,xmm14
-        pxor    xmm7,xmm2
-        movdqa  xmm2,xmm14
-        psrld   xmm1,2
-        paddd   xmm5,xmm7
-        pxor    xmm0,xmm3
-        movdqa  xmm3,xmm15
-        movdqa  xmm7,xmm14
-        pslld   xmm2,10
-        pxor    xmm3,xmm14
-
-
-        psrld   xmm7,13
-        pxor    xmm1,xmm2
-        paddd   xmm5,xmm0
-        pslld   xmm2,19-10
-        pand    xmm4,xmm3
-        pxor    xmm1,xmm7
-
-
-        psrld   xmm7,22-13
-        pxor    xmm1,xmm2
-        movdqa  xmm13,xmm15
-        pslld   xmm2,30-19
-        pxor    xmm7,xmm1
-        pxor    xmm13,xmm4
-        paddd   xmm9,xmm5
-        pxor    xmm7,xmm2
-
-        paddd   xmm13,xmm5
-        paddd   xmm13,xmm7
-        movd    xmm5,DWORD[44+r8]
-        movd    xmm0,DWORD[44+r9]
-        movd    xmm1,DWORD[44+r10]
-        movd    xmm2,DWORD[44+r11]
-        punpckldq       xmm5,xmm1
-        punpckldq       xmm0,xmm2
-        punpckldq       xmm5,xmm0
-        movdqa  xmm7,xmm9
-
-        movdqa  xmm2,xmm9
-DB      102,15,56,0,238
-        psrld   xmm7,6
-        movdqa  xmm1,xmm9
-        pslld   xmm2,7
-        movdqa  XMMWORD[(176-128)+rax],xmm5
-        paddd   xmm5,xmm12
-
-        psrld   xmm1,11
-        pxor    xmm7,xmm2
-        pslld   xmm2,21-7
-        paddd   xmm5,XMMWORD[((-32))+rbp]
-        pxor    xmm7,xmm1
-
-        psrld   xmm1,25-11
-        movdqa  xmm0,xmm9
-
-        pxor    xmm7,xmm2
-        movdqa  xmm4,xmm9
-        pslld   xmm2,26-21
-        pandn   xmm0,xmm11
-        pand    xmm4,xmm10
-        pxor    xmm7,xmm1
-
-
-        movdqa  xmm1,xmm13
-        pxor    xmm7,xmm2
-        movdqa  xmm2,xmm13
-        psrld   xmm1,2
-        paddd   xmm5,xmm7
-        pxor    xmm0,xmm4
-        movdqa  xmm4,xmm14
-        movdqa  xmm7,xmm13
-        pslld   xmm2,10
-        pxor    xmm4,xmm13
-
-
-        psrld   xmm7,13
-        pxor    xmm1,xmm2
-        paddd   xmm5,xmm0
-        pslld   xmm2,19-10
-        pand    xmm3,xmm4
-        pxor    xmm1,xmm7
-
-
-        psrld   xmm7,22-13
-        pxor    xmm1,xmm2
-        movdqa  xmm12,xmm14
-        pslld   xmm2,30-19
-        pxor    xmm7,xmm1
-        pxor    xmm12,xmm3
-        paddd   xmm8,xmm5
-        pxor    xmm7,xmm2
-
-        paddd   xmm12,xmm5
-        paddd   xmm12,xmm7
-        movd    xmm5,DWORD[48+r8]
-        movd    xmm0,DWORD[48+r9]
-        movd    xmm1,DWORD[48+r10]
-        movd    xmm2,DWORD[48+r11]
-        punpckldq       xmm5,xmm1
-        punpckldq       xmm0,xmm2
-        punpckldq       xmm5,xmm0
-        movdqa  xmm7,xmm8
-DB      102,15,56,0,238
-        movdqa  xmm2,xmm8
-
-        psrld   xmm7,6
-        movdqa  xmm1,xmm8
-        pslld   xmm2,7
-        movdqa  XMMWORD[(192-128)+rax],xmm5
-        paddd   xmm5,xmm11
-
-        psrld   xmm1,11
-        pxor    xmm7,xmm2
-        pslld   xmm2,21-7
-        paddd   xmm5,XMMWORD[rbp]
-        pxor    xmm7,xmm1
-
-        psrld   xmm1,25-11
-        movdqa  xmm0,xmm8
-
-        pxor    xmm7,xmm2
-        movdqa  xmm3,xmm8
-        pslld   xmm2,26-21
-        pandn   xmm0,xmm10
-        pand    xmm3,xmm9
-        pxor    xmm7,xmm1
-
-
-        movdqa  xmm1,xmm12
-        pxor    xmm7,xmm2
-        movdqa  xmm2,xmm12
-        psrld   xmm1,2
-        paddd   xmm5,xmm7
-        pxor    xmm0,xmm3
-        movdqa  xmm3,xmm13
-        movdqa  xmm7,xmm12
-        pslld   xmm2,10
-        pxor    xmm3,xmm12
-
-
-        psrld   xmm7,13
-        pxor    xmm1,xmm2
-        paddd   xmm5,xmm0
-        pslld   xmm2,19-10
-        pand    xmm4,xmm3
-        pxor    xmm1,xmm7
-
-
-        psrld   xmm7,22-13
-        pxor    xmm1,xmm2
-        movdqa  xmm11,xmm13
-        pslld   xmm2,30-19
-        pxor    xmm7,xmm1
-        pxor    xmm11,xmm4
-        paddd   xmm15,xmm5
-        pxor    xmm7,xmm2
-
-        paddd   xmm11,xmm5
-        paddd   xmm11,xmm7
-        movd    xmm5,DWORD[52+r8]
-        movd    xmm0,DWORD[52+r9]
-        movd    xmm1,DWORD[52+r10]
-        movd    xmm2,DWORD[52+r11]
-        punpckldq       xmm5,xmm1
-        punpckldq       xmm0,xmm2
-        punpckldq       xmm5,xmm0
-        movdqa  xmm7,xmm15
-
-        movdqa  xmm2,xmm15
-DB      102,15,56,0,238
-        psrld   xmm7,6
-        movdqa  xmm1,xmm15
-        pslld   xmm2,7
-        movdqa  XMMWORD[(208-128)+rax],xmm5
-        paddd   xmm5,xmm10
-
-        psrld   xmm1,11
-        pxor    xmm7,xmm2
-        pslld   xmm2,21-7
-        paddd   xmm5,XMMWORD[32+rbp]
-        pxor    xmm7,xmm1
-
-        psrld   xmm1,25-11
-        movdqa  xmm0,xmm15
-
-        pxor    xmm7,xmm2
-        movdqa  xmm4,xmm15
-        pslld   xmm2,26-21
-        pandn   xmm0,xmm9
-        pand    xmm4,xmm8
-        pxor    xmm7,xmm1
-
-
-        movdqa  xmm1,xmm11
-        pxor    xmm7,xmm2
-        movdqa  xmm2,xmm11
-        psrld   xmm1,2
-        paddd   xmm5,xmm7
-        pxor    xmm0,xmm4
-        movdqa  xmm4,xmm12
-        movdqa  xmm7,xmm11
-        pslld   xmm2,10
-        pxor    xmm4,xmm11
-
-
-        psrld   xmm7,13
-        pxor    xmm1,xmm2
-        paddd   xmm5,xmm0
-        pslld   xmm2,19-10
-        pand    xmm3,xmm4
-        pxor    xmm1,xmm7
-
-
-        psrld   xmm7,22-13
-        pxor    xmm1,xmm2
-        movdqa  xmm10,xmm12
-        pslld   xmm2,30-19
-        pxor    xmm7,xmm1
-        pxor    xmm10,xmm3
-        paddd   xmm14,xmm5
-        pxor    xmm7,xmm2
-
-        paddd   xmm10,xmm5
-        paddd   xmm10,xmm7
-        movd    xmm5,DWORD[56+r8]
-        movd    xmm0,DWORD[56+r9]
-        movd    xmm1,DWORD[56+r10]
-        movd    xmm2,DWORD[56+r11]
-        punpckldq       xmm5,xmm1
-        punpckldq       xmm0,xmm2
-        punpckldq       xmm5,xmm0
-        movdqa  xmm7,xmm14
-DB      102,15,56,0,238
-        movdqa  xmm2,xmm14
-
-        psrld   xmm7,6
-        movdqa  xmm1,xmm14
-        pslld   xmm2,7
-        movdqa  XMMWORD[(224-128)+rax],xmm5
-        paddd   xmm5,xmm9
-
-        psrld   xmm1,11
-        pxor    xmm7,xmm2
-        pslld   xmm2,21-7
-        paddd   xmm5,XMMWORD[64+rbp]
-        pxor    xmm7,xmm1
-
-        psrld   xmm1,25-11
-        movdqa  xmm0,xmm14
-
-        pxor    xmm7,xmm2
-        movdqa  xmm3,xmm14
-        pslld   xmm2,26-21
-        pandn   xmm0,xmm8
-        pand    xmm3,xmm15
-        pxor    xmm7,xmm1
-
-
-        movdqa  xmm1,xmm10
-        pxor    xmm7,xmm2
-        movdqa  xmm2,xmm10
-        psrld   xmm1,2
-        paddd   xmm5,xmm7
-        pxor    xmm0,xmm3
-        movdqa  xmm3,xmm11
-        movdqa  xmm7,xmm10
-        pslld   xmm2,10
-        pxor    xmm3,xmm10
-
-
-        psrld   xmm7,13
-        pxor    xmm1,xmm2
-        paddd   xmm5,xmm0
-        pslld   xmm2,19-10
-        pand    xmm4,xmm3
-        pxor    xmm1,xmm7
-
-
-        psrld   xmm7,22-13
-        pxor    xmm1,xmm2
-        movdqa  xmm9,xmm11
-        pslld   xmm2,30-19
-        pxor    xmm7,xmm1
-        pxor    xmm9,xmm4
-        paddd   xmm13,xmm5
-        pxor    xmm7,xmm2
-
-        paddd   xmm9,xmm5
-        paddd   xmm9,xmm7
-        movd    xmm5,DWORD[60+r8]
-        lea     r8,[64+r8]
-        movd    xmm0,DWORD[60+r9]
-        lea     r9,[64+r9]
-        movd    xmm1,DWORD[60+r10]
-        lea     r10,[64+r10]
-        movd    xmm2,DWORD[60+r11]
-        lea     r11,[64+r11]
-        punpckldq       xmm5,xmm1
-        punpckldq       xmm0,xmm2
-        punpckldq       xmm5,xmm0
-        movdqa  xmm7,xmm13
-
-        movdqa  xmm2,xmm13
-DB      102,15,56,0,238
-        psrld   xmm7,6
-        movdqa  xmm1,xmm13
-        pslld   xmm2,7
-        movdqa  XMMWORD[(240-128)+rax],xmm5
-        paddd   xmm5,xmm8
-
-        psrld   xmm1,11
-        pxor    xmm7,xmm2
-        pslld   xmm2,21-7
-        paddd   xmm5,XMMWORD[96+rbp]
-        pxor    xmm7,xmm1
-
-        psrld   xmm1,25-11
-        movdqa  xmm0,xmm13
-        prefetcht0      [63+r8]
-        pxor    xmm7,xmm2
-        movdqa  xmm4,xmm13
-        pslld   xmm2,26-21
-        pandn   xmm0,xmm15
-        pand    xmm4,xmm14
-        pxor    xmm7,xmm1
-
-        prefetcht0      [63+r9]
-        movdqa  xmm1,xmm9
-        pxor    xmm7,xmm2
-        movdqa  xmm2,xmm9
-        psrld   xmm1,2
-        paddd   xmm5,xmm7
-        pxor    xmm0,xmm4
-        movdqa  xmm4,xmm10
-        movdqa  xmm7,xmm9
-        pslld   xmm2,10
-        pxor    xmm4,xmm9
-
-        prefetcht0      [63+r10]
-        psrld   xmm7,13
-        pxor    xmm1,xmm2
-        paddd   xmm5,xmm0
-        pslld   xmm2,19-10
-        pand    xmm3,xmm4
-        pxor    xmm1,xmm7
-
-        prefetcht0      [63+r11]
-        psrld   xmm7,22-13
-        pxor    xmm1,xmm2
-        movdqa  xmm8,xmm10
-        pslld   xmm2,30-19
-        pxor    xmm7,xmm1
-        pxor    xmm8,xmm3
-        paddd   xmm12,xmm5
-        pxor    xmm7,xmm2
-
-        paddd   xmm8,xmm5
-        paddd   xmm8,xmm7
-        lea     rbp,[256+rbp]
-        movdqu  xmm5,XMMWORD[((0-128))+rax]
-        mov     ecx,3
-        jmp     NEAR $L$oop_16_xx
-ALIGN   32
-$L$oop_16_xx:
-        movdqa  xmm6,XMMWORD[((16-128))+rax]
-        paddd   xmm5,XMMWORD[((144-128))+rax]
-
-        movdqa  xmm7,xmm6
-        movdqa  xmm1,xmm6
-        psrld   xmm7,3
-        movdqa  xmm2,xmm6
-
-        psrld   xmm1,7
-        movdqa  xmm0,XMMWORD[((224-128))+rax]
-        pslld   xmm2,14
-        pxor    xmm7,xmm1
-        psrld   xmm1,18-7
-        movdqa  xmm3,xmm0
-        pxor    xmm7,xmm2
-        pslld   xmm2,25-14
-        pxor    xmm7,xmm1
-        psrld   xmm0,10
-        movdqa  xmm1,xmm3
-
-        psrld   xmm3,17
-        pxor    xmm7,xmm2
-        pslld   xmm1,13
-        paddd   xmm5,xmm7
-        pxor    xmm0,xmm3
-        psrld   xmm3,19-17
-        pxor    xmm0,xmm1
-        pslld   xmm1,15-13
-        pxor    xmm0,xmm3
-        pxor    xmm0,xmm1
-        paddd   xmm5,xmm0
-        movdqa  xmm7,xmm12
-
-        movdqa  xmm2,xmm12
-
-        psrld   xmm7,6
-        movdqa  xmm1,xmm12
-        pslld   xmm2,7
-        movdqa  XMMWORD[(0-128)+rax],xmm5
-        paddd   xmm5,xmm15
-
-        psrld   xmm1,11
-        pxor    xmm7,xmm2
-        pslld   xmm2,21-7
-        paddd   xmm5,XMMWORD[((-128))+rbp]
-        pxor    xmm7,xmm1
-
-        psrld   xmm1,25-11
-        movdqa  xmm0,xmm12
-
-        pxor    xmm7,xmm2
-        movdqa  xmm3,xmm12
-        pslld   xmm2,26-21
-        pandn   xmm0,xmm14
-        pand    xmm3,xmm13
-        pxor    xmm7,xmm1
-
-
-        movdqa  xmm1,xmm8
-        pxor    xmm7,xmm2
-        movdqa  xmm2,xmm8
-        psrld   xmm1,2
-        paddd   xmm5,xmm7
-        pxor    xmm0,xmm3
-        movdqa  xmm3,xmm9
-        movdqa  xmm7,xmm8
-        pslld   xmm2,10
-        pxor    xmm3,xmm8
-
-
-        psrld   xmm7,13
-        pxor    xmm1,xmm2
-        paddd   xmm5,xmm0
-        pslld   xmm2,19-10
-        pand    xmm4,xmm3
-        pxor    xmm1,xmm7
-
-
-        psrld   xmm7,22-13
-        pxor    xmm1,xmm2
-        movdqa  xmm15,xmm9
-        pslld   xmm2,30-19
-        pxor    xmm7,xmm1
-        pxor    xmm15,xmm4
-        paddd   xmm11,xmm5
-        pxor    xmm7,xmm2
-
-        paddd   xmm15,xmm5
-        paddd   xmm15,xmm7
-        movdqa  xmm5,XMMWORD[((32-128))+rax]
-        paddd   xmm6,XMMWORD[((160-128))+rax]
-
-        movdqa  xmm7,xmm5
-        movdqa  xmm1,xmm5
-        psrld   xmm7,3
-        movdqa  xmm2,xmm5
-
-        psrld   xmm1,7
-        movdqa  xmm0,XMMWORD[((240-128))+rax]
-        pslld   xmm2,14
-        pxor    xmm7,xmm1
-        psrld   xmm1,18-7
-        movdqa  xmm4,xmm0
-        pxor    xmm7,xmm2
-        pslld   xmm2,25-14
-        pxor    xmm7,xmm1
-        psrld   xmm0,10
-        movdqa  xmm1,xmm4
-
-        psrld   xmm4,17
-        pxor    xmm7,xmm2
-        pslld   xmm1,13
-        paddd   xmm6,xmm7
-        pxor    xmm0,xmm4
-        psrld   xmm4,19-17
-        pxor    xmm0,xmm1
-        pslld   xmm1,15-13
-        pxor    xmm0,xmm4
-        pxor    xmm0,xmm1
-        paddd   xmm6,xmm0
-        movdqa  xmm7,xmm11
-
-        movdqa  xmm2,xmm11
-
-        psrld   xmm7,6
-        movdqa  xmm1,xmm11
-        pslld   xmm2,7
-        movdqa  XMMWORD[(16-128)+rax],xmm6
-        paddd   xmm6,xmm14
-
-        psrld   xmm1,11
-        pxor    xmm7,xmm2
-        pslld   xmm2,21-7
-        paddd   xmm6,XMMWORD[((-96))+rbp]
-        pxor    xmm7,xmm1
-
-        psrld   xmm1,25-11
-        movdqa  xmm0,xmm11
-
-        pxor    xmm7,xmm2
-        movdqa  xmm4,xmm11
-        pslld   xmm2,26-21
-        pandn   xmm0,xmm13
-        pand    xmm4,xmm12
-        pxor    xmm7,xmm1
-
-
-        movdqa  xmm1,xmm15
-        pxor    xmm7,xmm2
-        movdqa  xmm2,xmm15
-        psrld   xmm1,2
-        paddd   xmm6,xmm7
-        pxor    xmm0,xmm4
-        movdqa  xmm4,xmm8
-        movdqa  xmm7,xmm15
-        pslld   xmm2,10
-        pxor    xmm4,xmm15
-
-
-        psrld   xmm7,13
-        pxor    xmm1,xmm2
-        paddd   xmm6,xmm0
-        pslld   xmm2,19-10
-        pand    xmm3,xmm4
-        pxor    xmm1,xmm7
-
-
-        psrld   xmm7,22-13
-        pxor    xmm1,xmm2
-        movdqa  xmm14,xmm8
-        pslld   xmm2,30-19
-        pxor    xmm7,xmm1
-        pxor    xmm14,xmm3
-        paddd   xmm10,xmm6
-        pxor    xmm7,xmm2
-
-        paddd   xmm14,xmm6
-        paddd   xmm14,xmm7
-        movdqa  xmm6,XMMWORD[((48-128))+rax]
-        paddd   xmm5,XMMWORD[((176-128))+rax]
-
-        movdqa  xmm7,xmm6
-        movdqa  xmm1,xmm6
-        psrld   xmm7,3
-        movdqa  xmm2,xmm6
-
-        psrld   xmm1,7
-        movdqa  xmm0,XMMWORD[((0-128))+rax]
-        pslld   xmm2,14
-        pxor    xmm7,xmm1
-        psrld   xmm1,18-7
-        movdqa  xmm3,xmm0
-        pxor    xmm7,xmm2
-        pslld   xmm2,25-14
-        pxor    xmm7,xmm1
-        psrld   xmm0,10
-        movdqa  xmm1,xmm3
-
-        psrld   xmm3,17
-        pxor    xmm7,xmm2
-        pslld   xmm1,13
-        paddd   xmm5,xmm7
-        pxor    xmm0,xmm3
-        psrld   xmm3,19-17
-        pxor    xmm0,xmm1
-        pslld   xmm1,15-13
-        pxor    xmm0,xmm3
-        pxor    xmm0,xmm1
-        paddd   xmm5,xmm0
-        movdqa  xmm7,xmm10
-
-        movdqa  xmm2,xmm10
-
-        psrld   xmm7,6
-        movdqa  xmm1,xmm10
-        pslld   xmm2,7
-        movdqa  XMMWORD[(32-128)+rax],xmm5
-        paddd   xmm5,xmm13
-
-        psrld   xmm1,11
-        pxor    xmm7,xmm2
-        pslld   xmm2,21-7
-        paddd   xmm5,XMMWORD[((-64))+rbp]
-        pxor    xmm7,xmm1
-
-        psrld   xmm1,25-11
-        movdqa  xmm0,xmm10
-
-        pxor    xmm7,xmm2
-        movdqa  xmm3,xmm10
-        pslld   xmm2,26-21
-        pandn   xmm0,xmm12
-        pand    xmm3,xmm11
-        pxor    xmm7,xmm1
-
-
-        movdqa  xmm1,xmm14
-        pxor    xmm7,xmm2
-        movdqa  xmm2,xmm14
-        psrld   xmm1,2
-        paddd   xmm5,xmm7
-        pxor    xmm0,xmm3
-        movdqa  xmm3,xmm15
-        movdqa  xmm7,xmm14
-        pslld   xmm2,10
-        pxor    xmm3,xmm14
-
-
-        psrld   xmm7,13
-        pxor    xmm1,xmm2
-        paddd   xmm5,xmm0
-        pslld   xmm2,19-10
-        pand    xmm4,xmm3
-        pxor    xmm1,xmm7
-
-
-        psrld   xmm7,22-13
-        pxor    xmm1,xmm2
-        movdqa  xmm13,xmm15
-        pslld   xmm2,30-19
-        pxor    xmm7,xmm1
-        pxor    xmm13,xmm4
-        paddd   xmm9,xmm5
-        pxor    xmm7,xmm2
-
-        paddd   xmm13,xmm5
-        paddd   xmm13,xmm7
-        movdqa  xmm5,XMMWORD[((64-128))+rax]
-        paddd   xmm6,XMMWORD[((192-128))+rax]
-
-        movdqa  xmm7,xmm5
-        movdqa  xmm1,xmm5
-        psrld   xmm7,3
-        movdqa  xmm2,xmm5
-
-        psrld   xmm1,7
-        movdqa  xmm0,XMMWORD[((16-128))+rax]
-        pslld   xmm2,14
-        pxor    xmm7,xmm1
-        psrld   xmm1,18-7
-        movdqa  xmm4,xmm0
-        pxor    xmm7,xmm2
-        pslld   xmm2,25-14
-        pxor    xmm7,xmm1
-        psrld   xmm0,10
-        movdqa  xmm1,xmm4
-
-        psrld   xmm4,17
-        pxor    xmm7,xmm2
-        pslld   xmm1,13
-        paddd   xmm6,xmm7
-        pxor    xmm0,xmm4
-        psrld   xmm4,19-17
-        pxor    xmm0,xmm1
-        pslld   xmm1,15-13
-        pxor    xmm0,xmm4
-        pxor    xmm0,xmm1
-        paddd   xmm6,xmm0
-        movdqa  xmm7,xmm9
-
-        movdqa  xmm2,xmm9
-
-        psrld   xmm7,6
-        movdqa  xmm1,xmm9
-        pslld   xmm2,7
-        movdqa  XMMWORD[(48-128)+rax],xmm6
-        paddd   xmm6,xmm12
-
-        psrld   xmm1,11
-        pxor    xmm7,xmm2
-        pslld   xmm2,21-7
-        paddd   xmm6,XMMWORD[((-32))+rbp]
-        pxor    xmm7,xmm1
-
-        psrld   xmm1,25-11
-        movdqa  xmm0,xmm9
-
-        pxor    xmm7,xmm2
-        movdqa  xmm4,xmm9
-        pslld   xmm2,26-21
-        pandn   xmm0,xmm11
-        pand    xmm4,xmm10
-        pxor    xmm7,xmm1
-
-
-        movdqa  xmm1,xmm13
-        pxor    xmm7,xmm2
-        movdqa  xmm2,xmm13
-        psrld   xmm1,2
-        paddd   xmm6,xmm7
-        pxor    xmm0,xmm4
-        movdqa  xmm4,xmm14
-        movdqa  xmm7,xmm13
-        pslld   xmm2,10
-        pxor    xmm4,xmm13
-
-
-        psrld   xmm7,13
-        pxor    xmm1,xmm2
-        paddd   xmm6,xmm0
-        pslld   xmm2,19-10
-        pand    xmm3,xmm4
-        pxor    xmm1,xmm7
-
-
-        psrld   xmm7,22-13
-        pxor    xmm1,xmm2
-        movdqa  xmm12,xmm14
-        pslld   xmm2,30-19
-        pxor    xmm7,xmm1
-        pxor    xmm12,xmm3
-        paddd   xmm8,xmm6
-        pxor    xmm7,xmm2
-
-        paddd   xmm12,xmm6
-        paddd   xmm12,xmm7
-        movdqa  xmm6,XMMWORD[((80-128))+rax]
-        paddd   xmm5,XMMWORD[((208-128))+rax]
-
-        movdqa  xmm7,xmm6
-        movdqa  xmm1,xmm6
-        psrld   xmm7,3
-        movdqa  xmm2,xmm6
-
-        psrld   xmm1,7
-        movdqa  xmm0,XMMWORD[((32-128))+rax]
-        pslld   xmm2,14
-        pxor    xmm7,xmm1
-        psrld   xmm1,18-7
-        movdqa  xmm3,xmm0
-        pxor    xmm7,xmm2
-        pslld   xmm2,25-14
-        pxor    xmm7,xmm1
-        psrld   xmm0,10
-        movdqa  xmm1,xmm3
-
-        psrld   xmm3,17
-        pxor    xmm7,xmm2
-        pslld   xmm1,13
-        paddd   xmm5,xmm7
-        pxor    xmm0,xmm3
-        psrld   xmm3,19-17
-        pxor    xmm0,xmm1
-        pslld   xmm1,15-13
-        pxor    xmm0,xmm3
-        pxor    xmm0,xmm1
-        paddd   xmm5,xmm0
-        movdqa  xmm7,xmm8
-
-        movdqa  xmm2,xmm8
-
-        psrld   xmm7,6
-        movdqa  xmm1,xmm8
-        pslld   xmm2,7
-        movdqa  XMMWORD[(64-128)+rax],xmm5
-        paddd   xmm5,xmm11
-
-        psrld   xmm1,11
-        pxor    xmm7,xmm2
-        pslld   xmm2,21-7
-        paddd   xmm5,XMMWORD[rbp]
-        pxor    xmm7,xmm1
-
-        psrld   xmm1,25-11
-        movdqa  xmm0,xmm8
-
-        pxor    xmm7,xmm2
-        movdqa  xmm3,xmm8
-        pslld   xmm2,26-21
-        pandn   xmm0,xmm10
-        pand    xmm3,xmm9
-        pxor    xmm7,xmm1
-
-
-        movdqa  xmm1,xmm12
-        pxor    xmm7,xmm2
-        movdqa  xmm2,xmm12
-        psrld   xmm1,2
-        paddd   xmm5,xmm7
-        pxor    xmm0,xmm3
-        movdqa  xmm3,xmm13
-        movdqa  xmm7,xmm12
-        pslld   xmm2,10
-        pxor    xmm3,xmm12
-
-
-        psrld   xmm7,13
-        pxor    xmm1,xmm2
-        paddd   xmm5,xmm0
-        pslld   xmm2,19-10
-        pand    xmm4,xmm3
-        pxor    xmm1,xmm7
-
-
-        psrld   xmm7,22-13
-        pxor    xmm1,xmm2
-        movdqa  xmm11,xmm13
-        pslld   xmm2,30-19
-        pxor    xmm7,xmm1
-        pxor    xmm11,xmm4
-        paddd   xmm15,xmm5
-        pxor    xmm7,xmm2
-
-        paddd   xmm11,xmm5
-        paddd   xmm11,xmm7
-        movdqa  xmm5,XMMWORD[((96-128))+rax]
-        paddd   xmm6,XMMWORD[((224-128))+rax]
-
-        movdqa  xmm7,xmm5
-        movdqa  xmm1,xmm5
-        psrld   xmm7,3
-        movdqa  xmm2,xmm5
-
-        psrld   xmm1,7
-        movdqa  xmm0,XMMWORD[((48-128))+rax]
-        pslld   xmm2,14
-        pxor    xmm7,xmm1
-        psrld   xmm1,18-7
-        movdqa  xmm4,xmm0
-        pxor    xmm7,xmm2
-        pslld   xmm2,25-14
-        pxor    xmm7,xmm1
-        psrld   xmm0,10
-        movdqa  xmm1,xmm4
-
-        psrld   xmm4,17
-        pxor    xmm7,xmm2
-        pslld   xmm1,13
-        paddd   xmm6,xmm7
-        pxor    xmm0,xmm4
-        psrld   xmm4,19-17
-        pxor    xmm0,xmm1
-        pslld   xmm1,15-13
-        pxor    xmm0,xmm4
-        pxor    xmm0,xmm1
-        paddd   xmm6,xmm0
-        movdqa  xmm7,xmm15
-
-        movdqa  xmm2,xmm15
-
-        psrld   xmm7,6
-        movdqa  xmm1,xmm15
-        pslld   xmm2,7
-        movdqa  XMMWORD[(80-128)+rax],xmm6
-        paddd   xmm6,xmm10
-
-        psrld   xmm1,11
-        pxor    xmm7,xmm2
-        pslld   xmm2,21-7
-        paddd   xmm6,XMMWORD[32+rbp]
-        pxor    xmm7,xmm1
-
-        psrld   xmm1,25-11
-        movdqa  xmm0,xmm15
-
-        pxor    xmm7,xmm2
-        movdqa  xmm4,xmm15
-        pslld   xmm2,26-21
-        pandn   xmm0,xmm9
-        pand    xmm4,xmm8
-        pxor    xmm7,xmm1
-
-
-        movdqa  xmm1,xmm11
-        pxor    xmm7,xmm2
-        movdqa  xmm2,xmm11
-        psrld   xmm1,2
-        paddd   xmm6,xmm7
-        pxor    xmm0,xmm4
-        movdqa  xmm4,xmm12
-        movdqa  xmm7,xmm11
-        pslld   xmm2,10
-        pxor    xmm4,xmm11
-
-
-        psrld   xmm7,13
-        pxor    xmm1,xmm2
-        paddd   xmm6,xmm0
-        pslld   xmm2,19-10
-        pand    xmm3,xmm4
-        pxor    xmm1,xmm7
-
-
-        psrld   xmm7,22-13
-        pxor    xmm1,xmm2
-        movdqa  xmm10,xmm12
-        pslld   xmm2,30-19
-        pxor    xmm7,xmm1
-        pxor    xmm10,xmm3
-        paddd   xmm14,xmm6
-        pxor    xmm7,xmm2
-
-        paddd   xmm10,xmm6
-        paddd   xmm10,xmm7
-        movdqa  xmm6,XMMWORD[((112-128))+rax]
-        paddd   xmm5,XMMWORD[((240-128))+rax]
-
-        movdqa  xmm7,xmm6
-        movdqa  xmm1,xmm6
-        psrld   xmm7,3
-        movdqa  xmm2,xmm6
-
-        psrld   xmm1,7
-        movdqa  xmm0,XMMWORD[((64-128))+rax]
-        pslld   xmm2,14
-        pxor    xmm7,xmm1
-        psrld   xmm1,18-7
-        movdqa  xmm3,xmm0
-        pxor    xmm7,xmm2
-        pslld   xmm2,25-14
-        pxor    xmm7,xmm1
-        psrld   xmm0,10
-        movdqa  xmm1,xmm3
-
-        psrld   xmm3,17
-        pxor    xmm7,xmm2
-        pslld   xmm1,13
-        paddd   xmm5,xmm7
-        pxor    xmm0,xmm3
-        psrld   xmm3,19-17
-        pxor    xmm0,xmm1
-        pslld   xmm1,15-13
-        pxor    xmm0,xmm3
-        pxor    xmm0,xmm1
-        paddd   xmm5,xmm0
-        movdqa  xmm7,xmm14
-
-        movdqa  xmm2,xmm14
-
-        psrld   xmm7,6
-        movdqa  xmm1,xmm14
-        pslld   xmm2,7
-        movdqa  XMMWORD[(96-128)+rax],xmm5
-        paddd   xmm5,xmm9
-
-        psrld   xmm1,11
-        pxor    xmm7,xmm2
-        pslld   xmm2,21-7
-        paddd   xmm5,XMMWORD[64+rbp]
-        pxor    xmm7,xmm1
-
-        psrld   xmm1,25-11
-        movdqa  xmm0,xmm14
-
-        pxor    xmm7,xmm2
-        movdqa  xmm3,xmm14
-        pslld   xmm2,26-21
-        pandn   xmm0,xmm8
-        pand    xmm3,xmm15
-        pxor    xmm7,xmm1
-
-
-        movdqa  xmm1,xmm10
-        pxor    xmm7,xmm2
-        movdqa  xmm2,xmm10
-        psrld   xmm1,2
-        paddd   xmm5,xmm7
-        pxor    xmm0,xmm3
-        movdqa  xmm3,xmm11
-        movdqa  xmm7,xmm10
-        pslld   xmm2,10
-        pxor    xmm3,xmm10
-
-
-        psrld   xmm7,13
-        pxor    xmm1,xmm2
-        paddd   xmm5,xmm0
-        pslld   xmm2,19-10
-        pand    xmm4,xmm3
-        pxor    xmm1,xmm7
-
-
-        psrld   xmm7,22-13
-        pxor    xmm1,xmm2
-        movdqa  xmm9,xmm11
-        pslld   xmm2,30-19
-        pxor    xmm7,xmm1
-        pxor    xmm9,xmm4
-        paddd   xmm13,xmm5
-        pxor    xmm7,xmm2
-
-        paddd   xmm9,xmm5
-        paddd   xmm9,xmm7
-        movdqa  xmm5,XMMWORD[((128-128))+rax]
-        paddd   xmm6,XMMWORD[((0-128))+rax]
-
-        movdqa  xmm7,xmm5
-        movdqa  xmm1,xmm5
-        psrld   xmm7,3
-        movdqa  xmm2,xmm5
-
-        psrld   xmm1,7
-        movdqa  xmm0,XMMWORD[((80-128))+rax]
-        pslld   xmm2,14
-        pxor    xmm7,xmm1
-        psrld   xmm1,18-7
-        movdqa  xmm4,xmm0
-        pxor    xmm7,xmm2
-        pslld   xmm2,25-14
-        pxor    xmm7,xmm1
-        psrld   xmm0,10
-        movdqa  xmm1,xmm4
-
-        psrld   xmm4,17
-        pxor    xmm7,xmm2
-        pslld   xmm1,13
-        paddd   xmm6,xmm7
-        pxor    xmm0,xmm4
-        psrld   xmm4,19-17
-        pxor    xmm0,xmm1
-        pslld   xmm1,15-13
-        pxor    xmm0,xmm4
-        pxor    xmm0,xmm1
-        paddd   xmm6,xmm0
-        movdqa  xmm7,xmm13
-
-        movdqa  xmm2,xmm13
-
-        psrld   xmm7,6
-        movdqa  xmm1,xmm13
-        pslld   xmm2,7
-        movdqa  XMMWORD[(112-128)+rax],xmm6
-        paddd   xmm6,xmm8
-
-        psrld   xmm1,11
-        pxor    xmm7,xmm2
-        pslld   xmm2,21-7
-        paddd   xmm6,XMMWORD[96+rbp]
-        pxor    xmm7,xmm1
-
-        psrld   xmm1,25-11
-        movdqa  xmm0,xmm13
-
-        pxor    xmm7,xmm2
-        movdqa  xmm4,xmm13
-        pslld   xmm2,26-21
-        pandn   xmm0,xmm15
-        pand    xmm4,xmm14
-        pxor    xmm7,xmm1
-
-
-        movdqa  xmm1,xmm9
-        pxor    xmm7,xmm2
-        movdqa  xmm2,xmm9
-        psrld   xmm1,2
-        paddd   xmm6,xmm7
-        pxor    xmm0,xmm4
-        movdqa  xmm4,xmm10
-        movdqa  xmm7,xmm9
-        pslld   xmm2,10
-        pxor    xmm4,xmm9
-
-
-        psrld   xmm7,13
-        pxor    xmm1,xmm2
-        paddd   xmm6,xmm0
-        pslld   xmm2,19-10
-        pand    xmm3,xmm4
-        pxor    xmm1,xmm7
-
-
-        psrld   xmm7,22-13
-        pxor    xmm1,xmm2
-        movdqa  xmm8,xmm10
-        pslld   xmm2,30-19
-        pxor    xmm7,xmm1
-        pxor    xmm8,xmm3
-        paddd   xmm12,xmm6
-        pxor    xmm7,xmm2
-
-        paddd   xmm8,xmm6
-        paddd   xmm8,xmm7
-        lea     rbp,[256+rbp]
-        movdqa  xmm6,XMMWORD[((144-128))+rax]
-        paddd   xmm5,XMMWORD[((16-128))+rax]
-
-        movdqa  xmm7,xmm6
-        movdqa  xmm1,xmm6
-        psrld   xmm7,3
-        movdqa  xmm2,xmm6
-
-        psrld   xmm1,7
-        movdqa  xmm0,XMMWORD[((96-128))+rax]
-        pslld   xmm2,14
-        pxor    xmm7,xmm1
-        psrld   xmm1,18-7
-        movdqa  xmm3,xmm0
-        pxor    xmm7,xmm2
-        pslld   xmm2,25-14
-        pxor    xmm7,xmm1
-        psrld   xmm0,10
-        movdqa  xmm1,xmm3
-
-        psrld   xmm3,17
-        pxor    xmm7,xmm2
-        pslld   xmm1,13
-        paddd   xmm5,xmm7
-        pxor    xmm0,xmm3
-        psrld   xmm3,19-17
-        pxor    xmm0,xmm1
-        pslld   xmm1,15-13
-        pxor    xmm0,xmm3
-        pxor    xmm0,xmm1
-        paddd   xmm5,xmm0
-        movdqa  xmm7,xmm12
-
-        movdqa  xmm2,xmm12
-
-        psrld   xmm7,6
-        movdqa  xmm1,xmm12
-        pslld   xmm2,7
-        movdqa  XMMWORD[(128-128)+rax],xmm5
-        paddd   xmm5,xmm15
-
-        psrld   xmm1,11
-        pxor    xmm7,xmm2
-        pslld   xmm2,21-7
-        paddd   xmm5,XMMWORD[((-128))+rbp]
-        pxor    xmm7,xmm1
-
-        psrld   xmm1,25-11
-        movdqa  xmm0,xmm12
-
-        pxor    xmm7,xmm2
-        movdqa  xmm3,xmm12
-        pslld   xmm2,26-21
-        pandn   xmm0,xmm14
-        pand    xmm3,xmm13
-        pxor    xmm7,xmm1
-
-
-        movdqa  xmm1,xmm8
-        pxor    xmm7,xmm2
-        movdqa  xmm2,xmm8
-        psrld   xmm1,2
-        paddd   xmm5,xmm7
-        pxor    xmm0,xmm3
-        movdqa  xmm3,xmm9
-        movdqa  xmm7,xmm8
-        pslld   xmm2,10
-        pxor    xmm3,xmm8
-
-
-        psrld   xmm7,13
-        pxor    xmm1,xmm2
-        paddd   xmm5,xmm0
-        pslld   xmm2,19-10
-        pand    xmm4,xmm3
-        pxor    xmm1,xmm7
-
-
-        psrld   xmm7,22-13
-        pxor    xmm1,xmm2
-        movdqa  xmm15,xmm9
-        pslld   xmm2,30-19
-        pxor    xmm7,xmm1
-        pxor    xmm15,xmm4
-        paddd   xmm11,xmm5
-        pxor    xmm7,xmm2
-
-        paddd   xmm15,xmm5
-        paddd   xmm15,xmm7
-        movdqa  xmm5,XMMWORD[((160-128))+rax]
-        paddd   xmm6,XMMWORD[((32-128))+rax]
-
-        movdqa  xmm7,xmm5
-        movdqa  xmm1,xmm5
-        psrld   xmm7,3
-        movdqa  xmm2,xmm5
-
-        psrld   xmm1,7
-        movdqa  xmm0,XMMWORD[((112-128))+rax]
-        pslld   xmm2,14
-        pxor    xmm7,xmm1
-        psrld   xmm1,18-7
-        movdqa  xmm4,xmm0
-        pxor    xmm7,xmm2
-        pslld   xmm2,25-14
-        pxor    xmm7,xmm1
-        psrld   xmm0,10
-        movdqa  xmm1,xmm4
-
-        psrld   xmm4,17
-        pxor    xmm7,xmm2
-        pslld   xmm1,13
-        paddd   xmm6,xmm7
-        pxor    xmm0,xmm4
-        psrld   xmm4,19-17
-        pxor    xmm0,xmm1
-        pslld   xmm1,15-13
-        pxor    xmm0,xmm4
-        pxor    xmm0,xmm1
-        paddd   xmm6,xmm0
-        movdqa  xmm7,xmm11
-
-        movdqa  xmm2,xmm11
-
-        psrld   xmm7,6
-        movdqa  xmm1,xmm11
-        pslld   xmm2,7
-        movdqa  XMMWORD[(144-128)+rax],xmm6
-        paddd   xmm6,xmm14
-
-        psrld   xmm1,11
-        pxor    xmm7,xmm2
-        pslld   xmm2,21-7
-        paddd   xmm6,XMMWORD[((-96))+rbp]
-        pxor    xmm7,xmm1
-
-        psrld   xmm1,25-11
-        movdqa  xmm0,xmm11
-
-        pxor    xmm7,xmm2
-        movdqa  xmm4,xmm11
-        pslld   xmm2,26-21
-        pandn   xmm0,xmm13
-        pand    xmm4,xmm12
-        pxor    xmm7,xmm1
-
-
-        movdqa  xmm1,xmm15
-        pxor    xmm7,xmm2
-        movdqa  xmm2,xmm15
-        psrld   xmm1,2
-        paddd   xmm6,xmm7
-        pxor    xmm0,xmm4
-        movdqa  xmm4,xmm8
-        movdqa  xmm7,xmm15
-        pslld   xmm2,10
-        pxor    xmm4,xmm15
-
-
-        psrld   xmm7,13
-        pxor    xmm1,xmm2
-        paddd   xmm6,xmm0
-        pslld   xmm2,19-10
-        pand    xmm3,xmm4
-        pxor    xmm1,xmm7
-
-
-        psrld   xmm7,22-13
-        pxor    xmm1,xmm2
-        movdqa  xmm14,xmm8
-        pslld   xmm2,30-19
-        pxor    xmm7,xmm1
-        pxor    xmm14,xmm3
-        paddd   xmm10,xmm6
-        pxor    xmm7,xmm2
-
-        paddd   xmm14,xmm6
-        paddd   xmm14,xmm7
-        movdqa  xmm6,XMMWORD[((176-128))+rax]
-        paddd   xmm5,XMMWORD[((48-128))+rax]
-
-        movdqa  xmm7,xmm6
-        movdqa  xmm1,xmm6
-        psrld   xmm7,3
-        movdqa  xmm2,xmm6
-
-        psrld   xmm1,7
-        movdqa  xmm0,XMMWORD[((128-128))+rax]
-        pslld   xmm2,14
-        pxor    xmm7,xmm1
-        psrld   xmm1,18-7
-        movdqa  xmm3,xmm0
-        pxor    xmm7,xmm2
-        pslld   xmm2,25-14
-        pxor    xmm7,xmm1
-        psrld   xmm0,10
-        movdqa  xmm1,xmm3
-
-        psrld   xmm3,17
-        pxor    xmm7,xmm2
-        pslld   xmm1,13
-        paddd   xmm5,xmm7
-        pxor    xmm0,xmm3
-        psrld   xmm3,19-17
-        pxor    xmm0,xmm1
-        pslld   xmm1,15-13
-        pxor    xmm0,xmm3
-        pxor    xmm0,xmm1
-        paddd   xmm5,xmm0
-        movdqa  xmm7,xmm10
-
-        movdqa  xmm2,xmm10
-
-        psrld   xmm7,6
-        movdqa  xmm1,xmm10
-        pslld   xmm2,7
-        movdqa  XMMWORD[(160-128)+rax],xmm5
-        paddd   xmm5,xmm13
-
-        psrld   xmm1,11
-        pxor    xmm7,xmm2
-        pslld   xmm2,21-7
-        paddd   xmm5,XMMWORD[((-64))+rbp]
-        pxor    xmm7,xmm1
-
-        psrld   xmm1,25-11
-        movdqa  xmm0,xmm10
-
-        pxor    xmm7,xmm2
-        movdqa  xmm3,xmm10
-        pslld   xmm2,26-21
-        pandn   xmm0,xmm12
-        pand    xmm3,xmm11
-        pxor    xmm7,xmm1
-
-
-        movdqa  xmm1,xmm14
-        pxor    xmm7,xmm2
-        movdqa  xmm2,xmm14
-        psrld   xmm1,2
-        paddd   xmm5,xmm7
-        pxor    xmm0,xmm3
-        movdqa  xmm3,xmm15
-        movdqa  xmm7,xmm14
-        pslld   xmm2,10
-        pxor    xmm3,xmm14
-
-
-        psrld   xmm7,13
-        pxor    xmm1,xmm2
-        paddd   xmm5,xmm0
-        pslld   xmm2,19-10
-        pand    xmm4,xmm3
-        pxor    xmm1,xmm7
-
-
-        psrld   xmm7,22-13
-        pxor    xmm1,xmm2
-        movdqa  xmm13,xmm15
-        pslld   xmm2,30-19
-        pxor    xmm7,xmm1
-        pxor    xmm13,xmm4
-        paddd   xmm9,xmm5
-        pxor    xmm7,xmm2
-
-        paddd   xmm13,xmm5
-        paddd   xmm13,xmm7
-        movdqa  xmm5,XMMWORD[((192-128))+rax]
-        paddd   xmm6,XMMWORD[((64-128))+rax]
-
-        movdqa  xmm7,xmm5
-        movdqa  xmm1,xmm5
-        psrld   xmm7,3
-        movdqa  xmm2,xmm5
-
-        psrld   xmm1,7
-        movdqa  xmm0,XMMWORD[((144-128))+rax]
-        pslld   xmm2,14
-        pxor    xmm7,xmm1
-        psrld   xmm1,18-7
-        movdqa  xmm4,xmm0
-        pxor    xmm7,xmm2
-        pslld   xmm2,25-14
-        pxor    xmm7,xmm1
-        psrld   xmm0,10
-        movdqa  xmm1,xmm4
-
-        psrld   xmm4,17
-        pxor    xmm7,xmm2
-        pslld   xmm1,13
-        paddd   xmm6,xmm7
-        pxor    xmm0,xmm4
-        psrld   xmm4,19-17
-        pxor    xmm0,xmm1
-        pslld   xmm1,15-13
-        pxor    xmm0,xmm4
-        pxor    xmm0,xmm1
-        paddd   xmm6,xmm0
-        movdqa  xmm7,xmm9
-
-        movdqa  xmm2,xmm9
-
-        psrld   xmm7,6
-        movdqa  xmm1,xmm9
-        pslld   xmm2,7
-        movdqa  XMMWORD[(176-128)+rax],xmm6
-        paddd   xmm6,xmm12
-
-        psrld   xmm1,11
-        pxor    xmm7,xmm2
-        pslld   xmm2,21-7
-        paddd   xmm6,XMMWORD[((-32))+rbp]
-        pxor    xmm7,xmm1
-
-        psrld   xmm1,25-11
-        movdqa  xmm0,xmm9
-
-        pxor    xmm7,xmm2
-        movdqa  xmm4,xmm9
-        pslld   xmm2,26-21
-        pandn   xmm0,xmm11
-        pand    xmm4,xmm10
-        pxor    xmm7,xmm1
-
-
-        movdqa  xmm1,xmm13
-        pxor    xmm7,xmm2
-        movdqa  xmm2,xmm13
-        psrld   xmm1,2
-        paddd   xmm6,xmm7
-        pxor    xmm0,xmm4
-        movdqa  xmm4,xmm14
-        movdqa  xmm7,xmm13
-        pslld   xmm2,10
-        pxor    xmm4,xmm13
-
-
-        psrld   xmm7,13
-        pxor    xmm1,xmm2
-        paddd   xmm6,xmm0
-        pslld   xmm2,19-10
-        pand    xmm3,xmm4
-        pxor    xmm1,xmm7
-
-
-        psrld   xmm7,22-13
-        pxor    xmm1,xmm2
-        movdqa  xmm12,xmm14
-        pslld   xmm2,30-19
-        pxor    xmm7,xmm1
-        pxor    xmm12,xmm3
-        paddd   xmm8,xmm6
-        pxor    xmm7,xmm2
-
-        paddd   xmm12,xmm6
-        paddd   xmm12,xmm7
-        movdqa  xmm6,XMMWORD[((208-128))+rax]
-        paddd   xmm5,XMMWORD[((80-128))+rax]
-
-        movdqa  xmm7,xmm6
-        movdqa  xmm1,xmm6
-        psrld   xmm7,3
-        movdqa  xmm2,xmm6
-
-        psrld   xmm1,7
-        movdqa  xmm0,XMMWORD[((160-128))+rax]
-        pslld   xmm2,14
-        pxor    xmm7,xmm1
-        psrld   xmm1,18-7
-        movdqa  xmm3,xmm0
-        pxor    xmm7,xmm2
-        pslld   xmm2,25-14
-        pxor    xmm7,xmm1
-        psrld   xmm0,10
-        movdqa  xmm1,xmm3
-
-        psrld   xmm3,17
-        pxor    xmm7,xmm2
-        pslld   xmm1,13
-        paddd   xmm5,xmm7
-        pxor    xmm0,xmm3
-        psrld   xmm3,19-17
-        pxor    xmm0,xmm1
-        pslld   xmm1,15-13
-        pxor    xmm0,xmm3
-        pxor    xmm0,xmm1
-        paddd   xmm5,xmm0
-        movdqa  xmm7,xmm8
-
-        movdqa  xmm2,xmm8
-
-        psrld   xmm7,6
-        movdqa  xmm1,xmm8
-        pslld   xmm2,7
-        movdqa  XMMWORD[(192-128)+rax],xmm5
-        paddd   xmm5,xmm11
-
-        psrld   xmm1,11
-        pxor    xmm7,xmm2
-        pslld   xmm2,21-7
-        paddd   xmm5,XMMWORD[rbp]
-        pxor    xmm7,xmm1
-
-        psrld   xmm1,25-11
-        movdqa  xmm0,xmm8
-
-        pxor    xmm7,xmm2
-        movdqa  xmm3,xmm8
-        pslld   xmm2,26-21
-        pandn   xmm0,xmm10
-        pand    xmm3,xmm9
-        pxor    xmm7,xmm1
-
-
-        movdqa  xmm1,xmm12
-        pxor    xmm7,xmm2
-        movdqa  xmm2,xmm12
-        psrld   xmm1,2
-        paddd   xmm5,xmm7
-        pxor    xmm0,xmm3
-        movdqa  xmm3,xmm13
-        movdqa  xmm7,xmm12
-        pslld   xmm2,10
-        pxor    xmm3,xmm12
-
-
-        psrld   xmm7,13
-        pxor    xmm1,xmm2
-        paddd   xmm5,xmm0
-        pslld   xmm2,19-10
-        pand    xmm4,xmm3
-        pxor    xmm1,xmm7
-
-
-        psrld   xmm7,22-13
-        pxor    xmm1,xmm2
-        movdqa  xmm11,xmm13
-        pslld   xmm2,30-19
-        pxor    xmm7,xmm1
-        pxor    xmm11,xmm4
-        paddd   xmm15,xmm5
-        pxor    xmm7,xmm2
-
-        paddd   xmm11,xmm5
-        paddd   xmm11,xmm7
-        movdqa  xmm5,XMMWORD[((224-128))+rax]
-        paddd   xmm6,XMMWORD[((96-128))+rax]
-
-        movdqa  xmm7,xmm5
-        movdqa  xmm1,xmm5
-        psrld   xmm7,3
-        movdqa  xmm2,xmm5
-
-        psrld   xmm1,7
-        movdqa  xmm0,XMMWORD[((176-128))+rax]
-        pslld   xmm2,14
-        pxor    xmm7,xmm1
-        psrld   xmm1,18-7
-        movdqa  xmm4,xmm0
-        pxor    xmm7,xmm2
-        pslld   xmm2,25-14
-        pxor    xmm7,xmm1
-        psrld   xmm0,10
-        movdqa  xmm1,xmm4
-
-        psrld   xmm4,17
-        pxor    xmm7,xmm2
-        pslld   xmm1,13
-        paddd   xmm6,xmm7
-        pxor    xmm0,xmm4
-        psrld   xmm4,19-17
-        pxor    xmm0,xmm1
-        pslld   xmm1,15-13
-        pxor    xmm0,xmm4
-        pxor    xmm0,xmm1
-        paddd   xmm6,xmm0
-        movdqa  xmm7,xmm15
-
-        movdqa  xmm2,xmm15
-
-        psrld   xmm7,6
-        movdqa  xmm1,xmm15
-        pslld   xmm2,7
-        movdqa  XMMWORD[(208-128)+rax],xmm6
-        paddd   xmm6,xmm10
-
-        psrld   xmm1,11
-        pxor    xmm7,xmm2
-        pslld   xmm2,21-7
-        paddd   xmm6,XMMWORD[32+rbp]
-        pxor    xmm7,xmm1
-
-        psrld   xmm1,25-11
-        movdqa  xmm0,xmm15
-
-        pxor    xmm7,xmm2
-        movdqa  xmm4,xmm15
-        pslld   xmm2,26-21
-        pandn   xmm0,xmm9
-        pand    xmm4,xmm8
-        pxor    xmm7,xmm1
-
-
-        movdqa  xmm1,xmm11
-        pxor    xmm7,xmm2
-        movdqa  xmm2,xmm11
-        psrld   xmm1,2
-        paddd   xmm6,xmm7
-        pxor    xmm0,xmm4
-        movdqa  xmm4,xmm12
-        movdqa  xmm7,xmm11
-        pslld   xmm2,10
-        pxor    xmm4,xmm11
-
-
-        psrld   xmm7,13
-        pxor    xmm1,xmm2
-        paddd   xmm6,xmm0
-        pslld   xmm2,19-10
-        pand    xmm3,xmm4
-        pxor    xmm1,xmm7
-
-
-        psrld   xmm7,22-13
-        pxor    xmm1,xmm2
-        movdqa  xmm10,xmm12
-        pslld   xmm2,30-19
-        pxor    xmm7,xmm1
-        pxor    xmm10,xmm3
-        paddd   xmm14,xmm6
-        pxor    xmm7,xmm2
-
-        paddd   xmm10,xmm6
-        paddd   xmm10,xmm7
-        movdqa  xmm6,XMMWORD[((240-128))+rax]
-        paddd   xmm5,XMMWORD[((112-128))+rax]
-
-        movdqa  xmm7,xmm6
-        movdqa  xmm1,xmm6
-        psrld   xmm7,3
-        movdqa  xmm2,xmm6
-
-        psrld   xmm1,7
-        movdqa  xmm0,XMMWORD[((192-128))+rax]
-        pslld   xmm2,14
-        pxor    xmm7,xmm1
-        psrld   xmm1,18-7
-        movdqa  xmm3,xmm0
-        pxor    xmm7,xmm2
-        pslld   xmm2,25-14
-        pxor    xmm7,xmm1
-        psrld   xmm0,10
-        movdqa  xmm1,xmm3
-
-        psrld   xmm3,17
-        pxor    xmm7,xmm2
-        pslld   xmm1,13
-        paddd   xmm5,xmm7
-        pxor    xmm0,xmm3
-        psrld   xmm3,19-17
-        pxor    xmm0,xmm1
-        pslld   xmm1,15-13
-        pxor    xmm0,xmm3
-        pxor    xmm0,xmm1
-        paddd   xmm5,xmm0
-        movdqa  xmm7,xmm14
-
-        movdqa  xmm2,xmm14
-
-        psrld   xmm7,6
-        movdqa  xmm1,xmm14
-        pslld   xmm2,7
-        movdqa  XMMWORD[(224-128)+rax],xmm5
-        paddd   xmm5,xmm9
-
-        psrld   xmm1,11
-        pxor    xmm7,xmm2
-        pslld   xmm2,21-7
-        paddd   xmm5,XMMWORD[64+rbp]
-        pxor    xmm7,xmm1
-
-        psrld   xmm1,25-11
-        movdqa  xmm0,xmm14
-
-        pxor    xmm7,xmm2
-        movdqa  xmm3,xmm14
-        pslld   xmm2,26-21
-        pandn   xmm0,xmm8
-        pand    xmm3,xmm15
-        pxor    xmm7,xmm1
-
-
-        movdqa  xmm1,xmm10
-        pxor    xmm7,xmm2
-        movdqa  xmm2,xmm10
-        psrld   xmm1,2
-        paddd   xmm5,xmm7
-        pxor    xmm0,xmm3
-        movdqa  xmm3,xmm11
-        movdqa  xmm7,xmm10
-        pslld   xmm2,10
-        pxor    xmm3,xmm10
-
-
-        psrld   xmm7,13
-        pxor    xmm1,xmm2
-        paddd   xmm5,xmm0
-        pslld   xmm2,19-10
-        pand    xmm4,xmm3
-        pxor    xmm1,xmm7
-
-
-        psrld   xmm7,22-13
-        pxor    xmm1,xmm2
-        movdqa  xmm9,xmm11
-        pslld   xmm2,30-19
-        pxor    xmm7,xmm1
-        pxor    xmm9,xmm4
-        paddd   xmm13,xmm5
-        pxor    xmm7,xmm2
-
-        paddd   xmm9,xmm5
-        paddd   xmm9,xmm7
-        movdqa  xmm5,XMMWORD[((0-128))+rax]
-        paddd   xmm6,XMMWORD[((128-128))+rax]
-
-        movdqa  xmm7,xmm5
-        movdqa  xmm1,xmm5
-        psrld   xmm7,3
-        movdqa  xmm2,xmm5
-
-        psrld   xmm1,7
-        movdqa  xmm0,XMMWORD[((208-128))+rax]
-        pslld   xmm2,14
-        pxor    xmm7,xmm1
-        psrld   xmm1,18-7
-        movdqa  xmm4,xmm0
-        pxor    xmm7,xmm2
-        pslld   xmm2,25-14
-        pxor    xmm7,xmm1
-        psrld   xmm0,10
-        movdqa  xmm1,xmm4
-
-        psrld   xmm4,17
-        pxor    xmm7,xmm2
-        pslld   xmm1,13
-        paddd   xmm6,xmm7
-        pxor    xmm0,xmm4
-        psrld   xmm4,19-17
-        pxor    xmm0,xmm1
-        pslld   xmm1,15-13
-        pxor    xmm0,xmm4
-        pxor    xmm0,xmm1
-        paddd   xmm6,xmm0
-        movdqa  xmm7,xmm13
-
-        movdqa  xmm2,xmm13
-
-        psrld   xmm7,6
-        movdqa  xmm1,xmm13
-        pslld   xmm2,7
-        movdqa  XMMWORD[(240-128)+rax],xmm6
-        paddd   xmm6,xmm8
-
-        psrld   xmm1,11
-        pxor    xmm7,xmm2
-        pslld   xmm2,21-7
-        paddd   xmm6,XMMWORD[96+rbp]
-        pxor    xmm7,xmm1
-
-        psrld   xmm1,25-11
-        movdqa  xmm0,xmm13
-
-        pxor    xmm7,xmm2
-        movdqa  xmm4,xmm13
-        pslld   xmm2,26-21
-        pandn   xmm0,xmm15
-        pand    xmm4,xmm14
-        pxor    xmm7,xmm1
-
-
-        movdqa  xmm1,xmm9
-        pxor    xmm7,xmm2
-        movdqa  xmm2,xmm9
-        psrld   xmm1,2
-        paddd   xmm6,xmm7
-        pxor    xmm0,xmm4
-        movdqa  xmm4,xmm10
-        movdqa  xmm7,xmm9
-        pslld   xmm2,10
-        pxor    xmm4,xmm9
-
-
-        psrld   xmm7,13
-        pxor    xmm1,xmm2
-        paddd   xmm6,xmm0
-        pslld   xmm2,19-10
-        pand    xmm3,xmm4
-        pxor    xmm1,xmm7
-
-
-        psrld   xmm7,22-13
-        pxor    xmm1,xmm2
-        movdqa  xmm8,xmm10
-        pslld   xmm2,30-19
-        pxor    xmm7,xmm1
-        pxor    xmm8,xmm3
-        paddd   xmm12,xmm6
-        pxor    xmm7,xmm2
-
-        paddd   xmm8,xmm6
-        paddd   xmm8,xmm7
-        lea     rbp,[256+rbp]
-        dec     ecx
-        jnz     NEAR $L$oop_16_xx
-
-        mov     ecx,1
-        lea     rbp,[((K256+128))]
-
-        movdqa  xmm7,XMMWORD[rbx]
-        cmp     ecx,DWORD[rbx]
-        pxor    xmm0,xmm0
-        cmovge  r8,rbp
-        cmp     ecx,DWORD[4+rbx]
-        movdqa  xmm6,xmm7
-        cmovge  r9,rbp
-        cmp     ecx,DWORD[8+rbx]
-        pcmpgtd xmm6,xmm0
-        cmovge  r10,rbp
-        cmp     ecx,DWORD[12+rbx]
-        paddd   xmm7,xmm6
-        cmovge  r11,rbp
-
-        movdqu  xmm0,XMMWORD[((0-128))+rdi]
-        pand    xmm8,xmm6
-        movdqu  xmm1,XMMWORD[((32-128))+rdi]
-        pand    xmm9,xmm6
-        movdqu  xmm2,XMMWORD[((64-128))+rdi]
-        pand    xmm10,xmm6
-        movdqu  xmm5,XMMWORD[((96-128))+rdi]
-        pand    xmm11,xmm6
-        paddd   xmm8,xmm0
-        movdqu  xmm0,XMMWORD[((128-128))+rdi]
-        pand    xmm12,xmm6
-        paddd   xmm9,xmm1
-        movdqu  xmm1,XMMWORD[((160-128))+rdi]
-        pand    xmm13,xmm6
-        paddd   xmm10,xmm2
-        movdqu  xmm2,XMMWORD[((192-128))+rdi]
-        pand    xmm14,xmm6
-        paddd   xmm11,xmm5
-        movdqu  xmm5,XMMWORD[((224-128))+rdi]
-        pand    xmm15,xmm6
-        paddd   xmm12,xmm0
-        paddd   xmm13,xmm1
-        movdqu  XMMWORD[(0-128)+rdi],xmm8
-        paddd   xmm14,xmm2
-        movdqu  XMMWORD[(32-128)+rdi],xmm9
-        paddd   xmm15,xmm5
-        movdqu  XMMWORD[(64-128)+rdi],xmm10
-        movdqu  XMMWORD[(96-128)+rdi],xmm11
-        movdqu  XMMWORD[(128-128)+rdi],xmm12
-        movdqu  XMMWORD[(160-128)+rdi],xmm13
-        movdqu  XMMWORD[(192-128)+rdi],xmm14
-        movdqu  XMMWORD[(224-128)+rdi],xmm15
-
-        movdqa  XMMWORD[rbx],xmm7
-        movdqa  xmm6,XMMWORD[$L$pbswap]
-        dec     edx
-        jnz     NEAR $L$oop
-
-        mov     edx,DWORD[280+rsp]
-        lea     rdi,[16+rdi]
-        lea     rsi,[64+rsi]
-        dec     edx
-        jnz     NEAR $L$oop_grande
-
-$L$done:
-        mov     rax,QWORD[272+rsp]
-
-        movaps  xmm6,XMMWORD[((-184))+rax]
-        movaps  xmm7,XMMWORD[((-168))+rax]
-        movaps  xmm8,XMMWORD[((-152))+rax]
-        movaps  xmm9,XMMWORD[((-136))+rax]
-        movaps  xmm10,XMMWORD[((-120))+rax]
-        movaps  xmm11,XMMWORD[((-104))+rax]
-        movaps  xmm12,XMMWORD[((-88))+rax]
-        movaps  xmm13,XMMWORD[((-72))+rax]
-        movaps  xmm14,XMMWORD[((-56))+rax]
-        movaps  xmm15,XMMWORD[((-40))+rax]
-        mov     rbp,QWORD[((-16))+rax]
-
-        mov     rbx,QWORD[((-8))+rax]
-
-        lea     rsp,[rax]
-
-$L$epilogue:
-        mov     rdi,QWORD[8+rsp]        ;WIN64 epilogue
-        mov     rsi,QWORD[16+rsp]
-        DB      0F3h,0C3h               ;repret
-
-$L$SEH_end_sha256_multi_block:
-
-ALIGN   32
-sha256_multi_block_shaext:
-        mov     QWORD[8+rsp],rdi        ;WIN64 prologue
-        mov     QWORD[16+rsp],rsi
-        mov     rax,rsp
-$L$SEH_begin_sha256_multi_block_shaext:
-        mov     rdi,rcx
-        mov     rsi,rdx
-        mov     rdx,r8
-
-
-
-_shaext_shortcut:
-        mov     rax,rsp
-
-        push    rbx
-
-        push    rbp
-
-        lea     rsp,[((-168))+rsp]
-        movaps  XMMWORD[rsp],xmm6
-        movaps  XMMWORD[16+rsp],xmm7
-        movaps  XMMWORD[32+rsp],xmm8
-        movaps  XMMWORD[48+rsp],xmm9
-        movaps  XMMWORD[(-120)+rax],xmm10
-        movaps  XMMWORD[(-104)+rax],xmm11
-        movaps  XMMWORD[(-88)+rax],xmm12
-        movaps  XMMWORD[(-72)+rax],xmm13
-        movaps  XMMWORD[(-56)+rax],xmm14
-        movaps  XMMWORD[(-40)+rax],xmm15
-        sub     rsp,288
-        shl     edx,1
-        and     rsp,-256
-        lea     rdi,[128+rdi]
-        mov     QWORD[272+rsp],rax
-$L$body_shaext:
-        lea     rbx,[256+rsp]
-        lea     rbp,[((K256_shaext+128))]
-
-$L$oop_grande_shaext:
-        mov     DWORD[280+rsp],edx
-        xor     edx,edx
-        mov     r8,QWORD[rsi]
-        mov     ecx,DWORD[8+rsi]
-        cmp     ecx,edx
-        cmovg   edx,ecx
-        test    ecx,ecx
-        mov     DWORD[rbx],ecx
-        cmovle  r8,rsp
-        mov     r9,QWORD[16+rsi]
-        mov     ecx,DWORD[24+rsi]
-        cmp     ecx,edx
-        cmovg   edx,ecx
-        test    ecx,ecx
-        mov     DWORD[4+rbx],ecx
-        cmovle  r9,rsp
-        test    edx,edx
-        jz      NEAR $L$done_shaext
-
-        movq    xmm12,QWORD[((0-128))+rdi]
-        movq    xmm4,QWORD[((32-128))+rdi]
-        movq    xmm13,QWORD[((64-128))+rdi]
-        movq    xmm5,QWORD[((96-128))+rdi]
-        movq    xmm8,QWORD[((128-128))+rdi]
-        movq    xmm9,QWORD[((160-128))+rdi]
-        movq    xmm10,QWORD[((192-128))+rdi]
-        movq    xmm11,QWORD[((224-128))+rdi]
-
-        punpckldq       xmm12,xmm4
-        punpckldq       xmm13,xmm5
-        punpckldq       xmm8,xmm9
-        punpckldq       xmm10,xmm11
-        movdqa  xmm3,XMMWORD[((K256_shaext-16))]
-
-        movdqa  xmm14,xmm12
-        movdqa  xmm15,xmm13
-        punpcklqdq      xmm12,xmm8
-        punpcklqdq      xmm13,xmm10
-        punpckhqdq      xmm14,xmm8
-        punpckhqdq      xmm15,xmm10
-
-        pshufd  xmm12,xmm12,27
-        pshufd  xmm13,xmm13,27
-        pshufd  xmm14,xmm14,27
-        pshufd  xmm15,xmm15,27
-        jmp     NEAR $L$oop_shaext
-
-ALIGN   32
-$L$oop_shaext:
-        movdqu  xmm4,XMMWORD[r8]
-        movdqu  xmm8,XMMWORD[r9]
-        movdqu  xmm5,XMMWORD[16+r8]
-        movdqu  xmm9,XMMWORD[16+r9]
-        movdqu  xmm6,XMMWORD[32+r8]
-DB      102,15,56,0,227
-        movdqu  xmm10,XMMWORD[32+r9]
-DB      102,68,15,56,0,195
-        movdqu  xmm7,XMMWORD[48+r8]
-        lea     r8,[64+r8]
-        movdqu  xmm11,XMMWORD[48+r9]
-        lea     r9,[64+r9]
-
-        movdqa  xmm0,XMMWORD[((0-128))+rbp]
-DB      102,15,56,0,235
-        paddd   xmm0,xmm4
-        pxor    xmm4,xmm12
-        movdqa  xmm1,xmm0
-        movdqa  xmm2,XMMWORD[((0-128))+rbp]
-DB      102,68,15,56,0,203
-        paddd   xmm2,xmm8
-        movdqa  XMMWORD[80+rsp],xmm13
-DB      69,15,56,203,236
-        pxor    xmm8,xmm14
-        movdqa  xmm0,xmm2
-        movdqa  XMMWORD[112+rsp],xmm15
-DB      69,15,56,203,254
-        pshufd  xmm0,xmm1,0x0e
-        pxor    xmm4,xmm12
-        movdqa  XMMWORD[64+rsp],xmm12
-DB      69,15,56,203,229
-        pshufd  xmm0,xmm2,0x0e
-        pxor    xmm8,xmm14
-        movdqa  XMMWORD[96+rsp],xmm14
-        movdqa  xmm1,XMMWORD[((16-128))+rbp]
-        paddd   xmm1,xmm5
-DB      102,15,56,0,243
-DB      69,15,56,203,247
-
-        movdqa  xmm0,xmm1
-        movdqa  xmm2,XMMWORD[((16-128))+rbp]
-        paddd   xmm2,xmm9
-DB      69,15,56,203,236
-        movdqa  xmm0,xmm2
-        prefetcht0      [127+r8]
-DB      102,15,56,0,251
-DB      102,68,15,56,0,211
-        prefetcht0      [127+r9]
-DB      69,15,56,203,254
-        pshufd  xmm0,xmm1,0x0e
-DB      102,68,15,56,0,219
-DB      15,56,204,229
-DB      69,15,56,203,229
-        pshufd  xmm0,xmm2,0x0e
-        movdqa  xmm1,XMMWORD[((32-128))+rbp]
-        paddd   xmm1,xmm6
-DB      69,15,56,203,247
-
-        movdqa  xmm0,xmm1
-        movdqa  xmm2,XMMWORD[((32-128))+rbp]
-        paddd   xmm2,xmm10
-DB      69,15,56,203,236
-DB      69,15,56,204,193
-        movdqa  xmm0,xmm2
-        movdqa  xmm3,xmm7
-DB      69,15,56,203,254
-        pshufd  xmm0,xmm1,0x0e
-DB      102,15,58,15,222,4
-        paddd   xmm4,xmm3
-        movdqa  xmm3,xmm11
-DB      102,65,15,58,15,218,4
-DB      15,56,204,238
-DB      69,15,56,203,229
-        pshufd  xmm0,xmm2,0x0e
-        movdqa  xmm1,XMMWORD[((48-128))+rbp]
-        paddd   xmm1,xmm7
-DB      69,15,56,203,247
-DB      69,15,56,204,202
-
-        movdqa  xmm0,xmm1
-        movdqa  xmm2,XMMWORD[((48-128))+rbp]
-        paddd   xmm8,xmm3
-        paddd   xmm2,xmm11
-DB      15,56,205,231
-DB      69,15,56,203,236
-        movdqa  xmm0,xmm2
-        movdqa  xmm3,xmm4
-DB      102,15,58,15,223,4
-DB      69,15,56,203,254
-DB      69,15,56,205,195
-        pshufd  xmm0,xmm1,0x0e
-        paddd   xmm5,xmm3
-        movdqa  xmm3,xmm8
-DB      102,65,15,58,15,219,4
-DB      15,56,204,247
-DB      69,15,56,203,229
-        pshufd  xmm0,xmm2,0x0e
-        movdqa  xmm1,XMMWORD[((64-128))+rbp]
-        paddd   xmm1,xmm4
-DB      69,15,56,203,247
-DB      69,15,56,204,211
-        movdqa  xmm0,xmm1
-        movdqa  xmm2,XMMWORD[((64-128))+rbp]
-        paddd   xmm9,xmm3
-        paddd   xmm2,xmm8
-DB      15,56,205,236
-DB      69,15,56,203,236
-        movdqa  xmm0,xmm2
-        movdqa  xmm3,xmm5
-DB      102,15,58,15,220,4
-DB      69,15,56,203,254
-DB      69,15,56,205,200
-        pshufd  xmm0,xmm1,0x0e
-        paddd   xmm6,xmm3
-        movdqa  xmm3,xmm9
-DB      102,65,15,58,15,216,4
-DB      15,56,204,252
-DB      69,15,56,203,229
-        pshufd  xmm0,xmm2,0x0e
-        movdqa  xmm1,XMMWORD[((80-128))+rbp]
-        paddd   xmm1,xmm5
-DB      69,15,56,203,247
-DB      69,15,56,204,216
-        movdqa  xmm0,xmm1
-        movdqa  xmm2,XMMWORD[((80-128))+rbp]
-        paddd   xmm10,xmm3
-        paddd   xmm2,xmm9
-DB      15,56,205,245
-DB      69,15,56,203,236
-        movdqa  xmm0,xmm2
-        movdqa  xmm3,xmm6
-DB      102,15,58,15,221,4
-DB      69,15,56,203,254
-DB      69,15,56,205,209
-        pshufd  xmm0,xmm1,0x0e
-        paddd   xmm7,xmm3
-        movdqa  xmm3,xmm10
-DB      102,65,15,58,15,217,4
-DB      15,56,204,229
-DB      69,15,56,203,229
-        pshufd  xmm0,xmm2,0x0e
-        movdqa  xmm1,XMMWORD[((96-128))+rbp]
-        paddd   xmm1,xmm6
-DB      69,15,56,203,247
-DB      69,15,56,204,193
-        movdqa  xmm0,xmm1
-        movdqa  xmm2,XMMWORD[((96-128))+rbp]
-        paddd   xmm11,xmm3
-        paddd   xmm2,xmm10
-DB      15,56,205,254
-DB      69,15,56,203,236
-        movdqa  xmm0,xmm2
-        movdqa  xmm3,xmm7
-DB      102,15,58,15,222,4
-DB      69,15,56,203,254
-DB      69,15,56,205,218
-        pshufd  xmm0,xmm1,0x0e
-        paddd   xmm4,xmm3
-        movdqa  xmm3,xmm11
-DB      102,65,15,58,15,218,4
-DB      15,56,204,238
-DB      69,15,56,203,229
-        pshufd  xmm0,xmm2,0x0e
-        movdqa  xmm1,XMMWORD[((112-128))+rbp]
-        paddd   xmm1,xmm7
-DB      69,15,56,203,247
-DB      69,15,56,204,202
-        movdqa  xmm0,xmm1
-        movdqa  xmm2,XMMWORD[((112-128))+rbp]
-        paddd   xmm8,xmm3
-        paddd   xmm2,xmm11
-DB      15,56,205,231
-DB      69,15,56,203,236
-        movdqa  xmm0,xmm2
-        movdqa  xmm3,xmm4
-DB      102,15,58,15,223,4
-DB      69,15,56,203,254
-DB      69,15,56,205,195
-        pshufd  xmm0,xmm1,0x0e
-        paddd   xmm5,xmm3
-        movdqa  xmm3,xmm8
-DB      102,65,15,58,15,219,4
-DB      15,56,204,247
-DB      69,15,56,203,229
-        pshufd  xmm0,xmm2,0x0e
-        movdqa  xmm1,XMMWORD[((128-128))+rbp]
-        paddd   xmm1,xmm4
-DB      69,15,56,203,247
-DB      69,15,56,204,211
-        movdqa  xmm0,xmm1
-        movdqa  xmm2,XMMWORD[((128-128))+rbp]
-        paddd   xmm9,xmm3
-        paddd   xmm2,xmm8
-DB      15,56,205,236
-DB      69,15,56,203,236
-        movdqa  xmm0,xmm2
-        movdqa  xmm3,xmm5
-DB      102,15,58,15,220,4
-DB      69,15,56,203,254
-DB      69,15,56,205,200
-        pshufd  xmm0,xmm1,0x0e
-        paddd   xmm6,xmm3
-        movdqa  xmm3,xmm9
-DB      102,65,15,58,15,216,4
-DB      15,56,204,252
-DB      69,15,56,203,229
-        pshufd  xmm0,xmm2,0x0e
-        movdqa  xmm1,XMMWORD[((144-128))+rbp]
-        paddd   xmm1,xmm5
-DB      69,15,56,203,247
-DB      69,15,56,204,216
-        movdqa  xmm0,xmm1
-        movdqa  xmm2,XMMWORD[((144-128))+rbp]
-        paddd   xmm10,xmm3
-        paddd   xmm2,xmm9
-DB      15,56,205,245
-DB      69,15,56,203,236
-        movdqa  xmm0,xmm2
-        movdqa  xmm3,xmm6
-DB      102,15,58,15,221,4
-DB      69,15,56,203,254
-DB      69,15,56,205,209
-        pshufd  xmm0,xmm1,0x0e
-        paddd   xmm7,xmm3
-        movdqa  xmm3,xmm10
-DB      102,65,15,58,15,217,4
-DB      15,56,204,229
-DB      69,15,56,203,229
-        pshufd  xmm0,xmm2,0x0e
-        movdqa  xmm1,XMMWORD[((160-128))+rbp]
-        paddd   xmm1,xmm6
-DB      69,15,56,203,247
-DB      69,15,56,204,193
-        movdqa  xmm0,xmm1
-        movdqa  xmm2,XMMWORD[((160-128))+rbp]
-        paddd   xmm11,xmm3
-        paddd   xmm2,xmm10
-DB      15,56,205,254
-DB      69,15,56,203,236
-        movdqa  xmm0,xmm2
-        movdqa  xmm3,xmm7
-DB      102,15,58,15,222,4
-DB      69,15,56,203,254
-DB      69,15,56,205,218
-        pshufd  xmm0,xmm1,0x0e
-        paddd   xmm4,xmm3
-        movdqa  xmm3,xmm11
-DB      102,65,15,58,15,218,4
-DB      15,56,204,238
-DB      69,15,56,203,229
-        pshufd  xmm0,xmm2,0x0e
-        movdqa  xmm1,XMMWORD[((176-128))+rbp]
-        paddd   xmm1,xmm7
-DB      69,15,56,203,247
-DB      69,15,56,204,202
-        movdqa  xmm0,xmm1
-        movdqa  xmm2,XMMWORD[((176-128))+rbp]
-        paddd   xmm8,xmm3
-        paddd   xmm2,xmm11
-DB      15,56,205,231
-DB      69,15,56,203,236
-        movdqa  xmm0,xmm2
-        movdqa  xmm3,xmm4
-DB      102,15,58,15,223,4
-DB      69,15,56,203,254
-DB      69,15,56,205,195
-        pshufd  xmm0,xmm1,0x0e
-        paddd   xmm5,xmm3
-        movdqa  xmm3,xmm8
-DB      102,65,15,58,15,219,4
-DB      15,56,204,247
-DB      69,15,56,203,229
-        pshufd  xmm0,xmm2,0x0e
-        movdqa  xmm1,XMMWORD[((192-128))+rbp]
-        paddd   xmm1,xmm4
-DB      69,15,56,203,247
-DB      69,15,56,204,211
-        movdqa  xmm0,xmm1
-        movdqa  xmm2,XMMWORD[((192-128))+rbp]
-        paddd   xmm9,xmm3
-        paddd   xmm2,xmm8
-DB      15,56,205,236
-DB      69,15,56,203,236
-        movdqa  xmm0,xmm2
-        movdqa  xmm3,xmm5
-DB      102,15,58,15,220,4
-DB      69,15,56,203,254
-DB      69,15,56,205,200
-        pshufd  xmm0,xmm1,0x0e
-        paddd   xmm6,xmm3
-        movdqa  xmm3,xmm9
-DB      102,65,15,58,15,216,4
-DB      15,56,204,252
-DB      69,15,56,203,229
-        pshufd  xmm0,xmm2,0x0e
-        movdqa  xmm1,XMMWORD[((208-128))+rbp]
-        paddd   xmm1,xmm5
-DB      69,15,56,203,247
-DB      69,15,56,204,216
-        movdqa  xmm0,xmm1
-        movdqa  xmm2,XMMWORD[((208-128))+rbp]
-        paddd   xmm10,xmm3
-        paddd   xmm2,xmm9
-DB      15,56,205,245
-DB      69,15,56,203,236
-        movdqa  xmm0,xmm2
-        movdqa  xmm3,xmm6
-DB      102,15,58,15,221,4
-DB      69,15,56,203,254
-DB      69,15,56,205,209
-        pshufd  xmm0,xmm1,0x0e
-        paddd   xmm7,xmm3
-        movdqa  xmm3,xmm10
-DB      102,65,15,58,15,217,4
-        nop
-DB      69,15,56,203,229
-        pshufd  xmm0,xmm2,0x0e
-        movdqa  xmm1,XMMWORD[((224-128))+rbp]
-        paddd   xmm1,xmm6
-DB      69,15,56,203,247
-
-        movdqa  xmm0,xmm1
-        movdqa  xmm2,XMMWORD[((224-128))+rbp]
-        paddd   xmm11,xmm3
-        paddd   xmm2,xmm10
-DB      15,56,205,254
-        nop
-DB      69,15,56,203,236
-        movdqa  xmm0,xmm2
-        mov     ecx,1
-        pxor    xmm6,xmm6
-DB      69,15,56,203,254
-DB      69,15,56,205,218
-        pshufd  xmm0,xmm1,0x0e
-        movdqa  xmm1,XMMWORD[((240-128))+rbp]
-        paddd   xmm1,xmm7
-        movq    xmm7,QWORD[rbx]
-        nop
-DB      69,15,56,203,229
-        pshufd  xmm0,xmm2,0x0e
-        movdqa  xmm2,XMMWORD[((240-128))+rbp]
-        paddd   xmm2,xmm11
-DB      69,15,56,203,247
-
-        movdqa  xmm0,xmm1
-        cmp     ecx,DWORD[rbx]
-        cmovge  r8,rsp
-        cmp     ecx,DWORD[4+rbx]
-        cmovge  r9,rsp
-        pshufd  xmm9,xmm7,0x00
-DB      69,15,56,203,236
-        movdqa  xmm0,xmm2
-        pshufd  xmm10,xmm7,0x55
-        movdqa  xmm11,xmm7
-DB      69,15,56,203,254
-        pshufd  xmm0,xmm1,0x0e
-        pcmpgtd xmm9,xmm6
-        pcmpgtd xmm10,xmm6
-DB      69,15,56,203,229
-        pshufd  xmm0,xmm2,0x0e
-        pcmpgtd xmm11,xmm6
-        movdqa  xmm3,XMMWORD[((K256_shaext-16))]
-DB      69,15,56,203,247
-
-        pand    xmm13,xmm9
-        pand    xmm15,xmm10
-        pand    xmm12,xmm9
-        pand    xmm14,xmm10
-        paddd   xmm11,xmm7
-
-        paddd   xmm13,XMMWORD[80+rsp]
-        paddd   xmm15,XMMWORD[112+rsp]
-        paddd   xmm12,XMMWORD[64+rsp]
-        paddd   xmm14,XMMWORD[96+rsp]
-
-        movq    QWORD[rbx],xmm11
-        dec     edx
-        jnz     NEAR $L$oop_shaext
-
-        mov     edx,DWORD[280+rsp]
-
-        pshufd  xmm12,xmm12,27
-        pshufd  xmm13,xmm13,27
-        pshufd  xmm14,xmm14,27
-        pshufd  xmm15,xmm15,27
-
-        movdqa  xmm5,xmm12
-        movdqa  xmm6,xmm13
-        punpckldq       xmm12,xmm14
-        punpckhdq       xmm5,xmm14
-        punpckldq       xmm13,xmm15
-        punpckhdq       xmm6,xmm15
-
-        movq    QWORD[(0-128)+rdi],xmm12
-        psrldq  xmm12,8
-        movq    QWORD[(128-128)+rdi],xmm5
-        psrldq  xmm5,8
-        movq    QWORD[(32-128)+rdi],xmm12
-        movq    QWORD[(160-128)+rdi],xmm5
-
-        movq    QWORD[(64-128)+rdi],xmm13
-        psrldq  xmm13,8
-        movq    QWORD[(192-128)+rdi],xmm6
-        psrldq  xmm6,8
-        movq    QWORD[(96-128)+rdi],xmm13
-        movq    QWORD[(224-128)+rdi],xmm6
-
-        lea     rdi,[8+rdi]
-        lea     rsi,[32+rsi]
-        dec     edx
-        jnz     NEAR $L$oop_grande_shaext
-
-$L$done_shaext:
-
-        movaps  xmm6,XMMWORD[((-184))+rax]
-        movaps  xmm7,XMMWORD[((-168))+rax]
-        movaps  xmm8,XMMWORD[((-152))+rax]
-        movaps  xmm9,XMMWORD[((-136))+rax]
-        movaps  xmm10,XMMWORD[((-120))+rax]
-        movaps  xmm11,XMMWORD[((-104))+rax]
-        movaps  xmm12,XMMWORD[((-88))+rax]
-        movaps  xmm13,XMMWORD[((-72))+rax]
-        movaps  xmm14,XMMWORD[((-56))+rax]
-        movaps  xmm15,XMMWORD[((-40))+rax]
-        mov     rbp,QWORD[((-16))+rax]
-
-        mov     rbx,QWORD[((-8))+rax]
-
-        lea     rsp,[rax]
-
-$L$epilogue_shaext:
-        mov     rdi,QWORD[8+rsp]        ;WIN64 epilogue
-        mov     rsi,QWORD[16+rsp]
-        DB      0F3h,0C3h               ;repret
-
-$L$SEH_end_sha256_multi_block_shaext:
-ALIGN   256
-K256:
-        DD      1116352408,1116352408,1116352408,1116352408
-        DD      1116352408,1116352408,1116352408,1116352408
-        DD      1899447441,1899447441,1899447441,1899447441
-        DD      1899447441,1899447441,1899447441,1899447441
-        DD      3049323471,3049323471,3049323471,3049323471
-        DD      3049323471,3049323471,3049323471,3049323471
-        DD      3921009573,3921009573,3921009573,3921009573
-        DD      3921009573,3921009573,3921009573,3921009573
-        DD      961987163,961987163,961987163,961987163
-        DD      961987163,961987163,961987163,961987163
-        DD      1508970993,1508970993,1508970993,1508970993
-        DD      1508970993,1508970993,1508970993,1508970993
-        DD      2453635748,2453635748,2453635748,2453635748
-        DD      2453635748,2453635748,2453635748,2453635748
-        DD      2870763221,2870763221,2870763221,2870763221
-        DD      2870763221,2870763221,2870763221,2870763221
-        DD      3624381080,3624381080,3624381080,3624381080
-        DD      3624381080,3624381080,3624381080,3624381080
-        DD      310598401,310598401,310598401,310598401
-        DD      310598401,310598401,310598401,310598401
-        DD      607225278,607225278,607225278,607225278
-        DD      607225278,607225278,607225278,607225278
-        DD      1426881987,1426881987,1426881987,1426881987
-        DD      1426881987,1426881987,1426881987,1426881987
-        DD      1925078388,1925078388,1925078388,1925078388
-        DD      1925078388,1925078388,1925078388,1925078388
-        DD      2162078206,2162078206,2162078206,2162078206
-        DD      2162078206,2162078206,2162078206,2162078206
-        DD      2614888103,2614888103,2614888103,2614888103
-        DD      2614888103,2614888103,2614888103,2614888103
-        DD      3248222580,3248222580,3248222580,3248222580
-        DD      3248222580,3248222580,3248222580,3248222580
-        DD      3835390401,3835390401,3835390401,3835390401
-        DD      3835390401,3835390401,3835390401,3835390401
-        DD      4022224774,4022224774,4022224774,4022224774
-        DD      4022224774,4022224774,4022224774,4022224774
-        DD      264347078,264347078,264347078,264347078
-        DD      264347078,264347078,264347078,264347078
-        DD      604807628,604807628,604807628,604807628
-        DD      604807628,604807628,604807628,604807628
-        DD      770255983,770255983,770255983,770255983
-        DD      770255983,770255983,770255983,770255983
-        DD      1249150122,1249150122,1249150122,1249150122
-        DD      1249150122,1249150122,1249150122,1249150122
-        DD      1555081692,1555081692,1555081692,1555081692
-        DD      1555081692,1555081692,1555081692,1555081692
-        DD      1996064986,1996064986,1996064986,1996064986
-        DD      1996064986,1996064986,1996064986,1996064986
-        DD      2554220882,2554220882,2554220882,2554220882
-        DD      2554220882,2554220882,2554220882,2554220882
-        DD      2821834349,2821834349,2821834349,2821834349
-        DD      2821834349,2821834349,2821834349,2821834349
-        DD      2952996808,2952996808,2952996808,2952996808
-        DD      2952996808,2952996808,2952996808,2952996808
-        DD      3210313671,3210313671,3210313671,3210313671
-        DD      3210313671,3210313671,3210313671,3210313671
-        DD      3336571891,3336571891,3336571891,3336571891
-        DD      3336571891,3336571891,3336571891,3336571891
-        DD      3584528711,3584528711,3584528711,3584528711
-        DD      3584528711,3584528711,3584528711,3584528711
-        DD      113926993,113926993,113926993,113926993
-        DD      113926993,113926993,113926993,113926993
-        DD      338241895,338241895,338241895,338241895
-        DD      338241895,338241895,338241895,338241895
-        DD      666307205,666307205,666307205,666307205
-        DD      666307205,666307205,666307205,666307205
-        DD      773529912,773529912,773529912,773529912
-        DD      773529912,773529912,773529912,773529912
-        DD      1294757372,1294757372,1294757372,1294757372
-        DD      1294757372,1294757372,1294757372,1294757372
-        DD      1396182291,1396182291,1396182291,1396182291
-        DD      1396182291,1396182291,1396182291,1396182291
-        DD      1695183700,1695183700,1695183700,1695183700
-        DD      1695183700,1695183700,1695183700,1695183700
-        DD      1986661051,1986661051,1986661051,1986661051
-        DD      1986661051,1986661051,1986661051,1986661051
-        DD      2177026350,2177026350,2177026350,2177026350
-        DD      2177026350,2177026350,2177026350,2177026350
-        DD      2456956037,2456956037,2456956037,2456956037
-        DD      2456956037,2456956037,2456956037,2456956037
-        DD      2730485921,2730485921,2730485921,2730485921
-        DD      2730485921,2730485921,2730485921,2730485921
-        DD      2820302411,2820302411,2820302411,2820302411
-        DD      2820302411,2820302411,2820302411,2820302411
-        DD      3259730800,3259730800,3259730800,3259730800
-        DD      3259730800,3259730800,3259730800,3259730800
-        DD      3345764771,3345764771,3345764771,3345764771
-        DD      3345764771,3345764771,3345764771,3345764771
-        DD      3516065817,3516065817,3516065817,3516065817
-        DD      3516065817,3516065817,3516065817,3516065817
-        DD      3600352804,3600352804,3600352804,3600352804
-        DD      3600352804,3600352804,3600352804,3600352804
-        DD      4094571909,4094571909,4094571909,4094571909
-        DD      4094571909,4094571909,4094571909,4094571909
-        DD      275423344,275423344,275423344,275423344
-        DD      275423344,275423344,275423344,275423344
-        DD      430227734,430227734,430227734,430227734
-        DD      430227734,430227734,430227734,430227734
-        DD      506948616,506948616,506948616,506948616
-        DD      506948616,506948616,506948616,506948616
-        DD      659060556,659060556,659060556,659060556
-        DD      659060556,659060556,659060556,659060556
-        DD      883997877,883997877,883997877,883997877
-        DD      883997877,883997877,883997877,883997877
-        DD      958139571,958139571,958139571,958139571
-        DD      958139571,958139571,958139571,958139571
-        DD      1322822218,1322822218,1322822218,1322822218
-        DD      1322822218,1322822218,1322822218,1322822218
-        DD      1537002063,1537002063,1537002063,1537002063
-        DD      1537002063,1537002063,1537002063,1537002063
-        DD      1747873779,1747873779,1747873779,1747873779
-        DD      1747873779,1747873779,1747873779,1747873779
-        DD      1955562222,1955562222,1955562222,1955562222
-        DD      1955562222,1955562222,1955562222,1955562222
-        DD      2024104815,2024104815,2024104815,2024104815
-        DD      2024104815,2024104815,2024104815,2024104815
-        DD      2227730452,2227730452,2227730452,2227730452
-        DD      2227730452,2227730452,2227730452,2227730452
-        DD      2361852424,2361852424,2361852424,2361852424
-        DD      2361852424,2361852424,2361852424,2361852424
-        DD      2428436474,2428436474,2428436474,2428436474
-        DD      2428436474,2428436474,2428436474,2428436474
-        DD      2756734187,2756734187,2756734187,2756734187
-        DD      2756734187,2756734187,2756734187,2756734187
-        DD      3204031479,3204031479,3204031479,3204031479
-        DD      3204031479,3204031479,3204031479,3204031479
-        DD      3329325298,3329325298,3329325298,3329325298
-        DD      3329325298,3329325298,3329325298,3329325298
-$L$pbswap:
-        DD      0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
-        DD      0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
-K256_shaext:
-        DD      0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
-        DD      0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
-        DD      0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
-        DD      0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
-        DD      0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
-        DD      0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
-        DD      0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
-        DD      0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
-        DD      0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
-        DD      0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
-        DD      0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
-        DD      0xd192e819,0xd6990624,0xf40e3585,0x106aa070
-        DD      0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
-        DD      0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
-        DD      0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
-        DD      0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
-DB      83,72,65,50,53,54,32,109,117,108,116,105,45,98,108,111
-DB      99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114
-DB      32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71
-DB      65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112
-DB      101,110,115,115,108,46,111,114,103,62,0
-EXTERN  __imp_RtlVirtualUnwind
-
-ALIGN   16
-se_handler:
-        push    rsi
-        push    rdi
-        push    rbx
-        push    rbp
-        push    r12
-        push    r13
-        push    r14
-        push    r15
-        pushfq
-        sub     rsp,64
-
-        mov     rax,QWORD[120+r8]
-        mov     rbx,QWORD[248+r8]
-
-        mov     rsi,QWORD[8+r9]
-        mov     r11,QWORD[56+r9]
-
-        mov     r10d,DWORD[r11]
-        lea     r10,[r10*1+rsi]
-        cmp     rbx,r10
-        jb      NEAR $L$in_prologue
-
-        mov     rax,QWORD[152+r8]
-
-        mov     r10d,DWORD[4+r11]
-        lea     r10,[r10*1+rsi]
-        cmp     rbx,r10
-        jae     NEAR $L$in_prologue
-
-        mov     rax,QWORD[272+rax]
-
-        mov     rbx,QWORD[((-8))+rax]
-        mov     rbp,QWORD[((-16))+rax]
-        mov     QWORD[144+r8],rbx
-        mov     QWORD[160+r8],rbp
-
-        lea     rsi,[((-24-160))+rax]
-        lea     rdi,[512+r8]
-        mov     ecx,20
-        DD      0xa548f3fc
-
-$L$in_prologue:
-        mov     rdi,QWORD[8+rax]
-        mov     rsi,QWORD[16+rax]
-        mov     QWORD[152+r8],rax
-        mov     QWORD[168+r8],rsi
-        mov     QWORD[176+r8],rdi
-
-        mov     rdi,QWORD[40+r9]
-        mov     rsi,r8
-        mov     ecx,154
-        DD      0xa548f3fc
-
-        mov     rsi,r9
-        xor     rcx,rcx
-        mov     rdx,QWORD[8+rsi]
-        mov     r8,QWORD[rsi]
-        mov     r9,QWORD[16+rsi]
-        mov     r10,QWORD[40+rsi]
-        lea     r11,[56+rsi]
-        lea     r12,[24+rsi]
-        mov     QWORD[32+rsp],r10
-        mov     QWORD[40+rsp],r11
-        mov     QWORD[48+rsp],r12
-        mov     QWORD[56+rsp],rcx
-        call    QWORD[__imp_RtlVirtualUnwind]
-
-        mov     eax,1
-        add     rsp,64
-        popfq
-        pop     r15
-        pop     r14
-        pop     r13
-        pop     r12
-        pop     rbp
-        pop     rbx
-        pop     rdi
-        pop     rsi
-        DB      0F3h,0C3h               ;repret
-
-section .pdata rdata align=4
-ALIGN   4
-        DD      $L$SEH_begin_sha256_multi_block wrt ..imagebase
-        DD      $L$SEH_end_sha256_multi_block wrt ..imagebase
-        DD      $L$SEH_info_sha256_multi_block wrt ..imagebase
-        DD      $L$SEH_begin_sha256_multi_block_shaext wrt ..imagebase
-        DD      $L$SEH_end_sha256_multi_block_shaext wrt ..imagebase
-        DD      $L$SEH_info_sha256_multi_block_shaext wrt ..imagebase
-section .xdata rdata align=8
-ALIGN   8
-$L$SEH_info_sha256_multi_block:
-DB      9,0,0,0
-        DD      se_handler wrt ..imagebase
-        DD      $L$body wrt ..imagebase,$L$epilogue wrt ..imagebase
-$L$SEH_info_sha256_multi_block_shaext:
-DB      9,0,0,0
-        DD      se_handler wrt ..imagebase
-        DD      $L$body_shaext wrt ..imagebase,$L$epilogue_shaext wrt ..imagebase
diff --git a/CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha256-x86_64.nasm b/CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha256-x86_64.nasm
deleted file mode 100644
index 70e49862a364..000000000000
--- a/CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha256-x86_64.nasm
+++ /dev/null
@@ -1,3313 +0,0 @@
-; WARNING: do not edit!
-; Generated from openssl/crypto/sha/asm/sha512-x86_64.pl
-;
-; Copyright 2005-2020 The OpenSSL Project Authors. All Rights Reserved.
-;
-; Licensed under the OpenSSL license (the "License").  You may not use
-; this file except in compliance with the License.  You can obtain a copy
-; in the file LICENSE in the source distribution or at
-; https://www.openssl.org/source/license.html
-
-default rel
-%define XMMWORD
-%define YMMWORD
-%define ZMMWORD
-section .text code align=64
-
-
-EXTERN  OPENSSL_ia32cap_P
-global  sha256_block_data_order
-
-ALIGN   16
-sha256_block_data_order:
-        mov     QWORD[8+rsp],rdi        ;WIN64 prologue
-        mov     QWORD[16+rsp],rsi
-        mov     rax,rsp
-$L$SEH_begin_sha256_block_data_order:
-        mov     rdi,rcx
-        mov     rsi,rdx
-        mov     rdx,r8
-
-
-
-        lea     r11,[OPENSSL_ia32cap_P]
-        mov     r9d,DWORD[r11]
-        mov     r10d,DWORD[4+r11]
-        mov     r11d,DWORD[8+r11]
-        test    r11d,536870912
-        jnz     NEAR _shaext_shortcut
-        test    r10d,512
-        jnz     NEAR $L$ssse3_shortcut
-        mov     rax,rsp
-
-        push    rbx
-
-        push    rbp
-
-        push    r12
-
-        push    r13
-
-        push    r14
-
-        push    r15
-
-        shl     rdx,4
-        sub     rsp,16*4+4*8
-        lea     rdx,[rdx*4+rsi]
-        and     rsp,-64
-        mov     QWORD[((64+0))+rsp],rdi
-        mov     QWORD[((64+8))+rsp],rsi
-        mov     QWORD[((64+16))+rsp],rdx
-        mov     QWORD[88+rsp],rax
-
-$L$prologue:
-
-        mov     eax,DWORD[rdi]
-        mov     ebx,DWORD[4+rdi]
-        mov     ecx,DWORD[8+rdi]
-        mov     edx,DWORD[12+rdi]
-        mov     r8d,DWORD[16+rdi]
-        mov     r9d,DWORD[20+rdi]
-        mov     r10d,DWORD[24+rdi]
-        mov     r11d,DWORD[28+rdi]
-        jmp     NEAR $L$loop
-
-ALIGN   16
-$L$loop:
-        mov     edi,ebx
-        lea     rbp,[K256]
-        xor     edi,ecx
-        mov     r12d,DWORD[rsi]
-        mov     r13d,r8d
-        mov     r14d,eax
-        bswap   r12d
-        ror     r13d,14
-        mov     r15d,r9d
-
-        xor     r13d,r8d
-        ror     r14d,9
-        xor     r15d,r10d
-
-        mov     DWORD[rsp],r12d
-        xor     r14d,eax
-        and     r15d,r8d
-
-        ror     r13d,5
-        add     r12d,r11d
-        xor     r15d,r10d
-
-        ror     r14d,11
-        xor     r13d,r8d
-        add     r12d,r15d
-
-        mov     r15d,eax
-        add     r12d,DWORD[rbp]
-        xor     r14d,eax
-
-        xor     r15d,ebx
-        ror     r13d,6
-        mov     r11d,ebx
-
-        and     edi,r15d
-        ror     r14d,2
-        add     r12d,r13d
-
-        xor     r11d,edi
-        add     edx,r12d
-        add     r11d,r12d
-
-        lea     rbp,[4+rbp]
-        add     r11d,r14d
-        mov     r12d,DWORD[4+rsi]
-        mov     r13d,edx
-        mov     r14d,r11d
-        bswap   r12d
-        ror     r13d,14
-        mov     edi,r8d
-
-        xor     r13d,edx
-        ror     r14d,9
-        xor     edi,r9d
-
-        mov     DWORD[4+rsp],r12d
-        xor     r14d,r11d
-        and     edi,edx
-
-        ror     r13d,5
-        add     r12d,r10d
-        xor     edi,r9d
-
-        ror     r14d,11
-        xor     r13d,edx
-        add     r12d,edi
-
-        mov     edi,r11d
-        add     r12d,DWORD[rbp]
-        xor     r14d,r11d
-
-        xor     edi,eax
-        ror     r13d,6
-        mov     r10d,eax
-
-        and     r15d,edi
-        ror     r14d,2
-        add     r12d,r13d
-
-        xor     r10d,r15d
-        add     ecx,r12d
-        add     r10d,r12d
-
-        lea     rbp,[4+rbp]
-        add     r10d,r14d
-        mov     r12d,DWORD[8+rsi]
-        mov     r13d,ecx
-        mov     r14d,r10d
-        bswap   r12d
-        ror     r13d,14
-        mov     r15d,edx
-
-        xor     r13d,ecx
-        ror     r14d,9
-        xor     r15d,r8d
-
-        mov     DWORD[8+rsp],r12d
-        xor     r14d,r10d
-        and     r15d,ecx
-
-        ror     r13d,5
-        add     r12d,r9d
-        xor     r15d,r8d
-
-        ror     r14d,11
-        xor     r13d,ecx
-        add     r12d,r15d
-
-        mov     r15d,r10d
-        add     r12d,DWORD[rbp]
-        xor     r14d,r10d
-
-        xor     r15d,r11d
-        ror     r13d,6
-        mov     r9d,r11d
-
-        and     edi,r15d
-        ror     r14d,2
-        add     r12d,r13d
-
-        xor     r9d,edi
-        add     ebx,r12d
-        add     r9d,r12d
-
-        lea     rbp,[4+rbp]
-        add     r9d,r14d
-        mov     r12d,DWORD[12+rsi]
-        mov     r13d,ebx
-        mov     r14d,r9d
-        bswap   r12d
-        ror     r13d,14
-        mov     edi,ecx
-
-        xor     r13d,ebx
-        ror     r14d,9
-        xor     edi,edx
-
-        mov     DWORD[12+rsp],r12d
-        xor     r14d,r9d
-        and     edi,ebx
-
-        ror     r13d,5
-        add     r12d,r8d
-        xor     edi,edx
-
-        ror     r14d,11
-        xor     r13d,ebx
-        add     r12d,edi
-
-        mov     edi,r9d
-        add     r12d,DWORD[rbp]
-        xor     r14d,r9d
-
-        xor     edi,r10d
-        ror     r13d,6
-        mov     r8d,r10d
-
-        and     r15d,edi
-        ror     r14d,2
-        add     r12d,r13d
-
-        xor     r8d,r15d
-        add     eax,r12d
-        add     r8d,r12d
-
-        lea     rbp,[20+rbp]
-        add     r8d,r14d
-        mov     r12d,DWORD[16+rsi]
-        mov     r13d,eax
-        mov     r14d,r8d
-        bswap   r12d
-        ror     r13d,14
-        mov     r15d,ebx
-
-        xor     r13d,eax
-        ror     r14d,9
-        xor     r15d,ecx
-
-        mov     DWORD[16+rsp],r12d
-        xor     r14d,r8d
-        and     r15d,eax
-
-        ror     r13d,5
-        add     r12d,edx
-        xor     r15d,ecx
-
-        ror     r14d,11
-        xor     r13d,eax
-        add     r12d,r15d
-
-        mov     r15d,r8d
-        add     r12d,DWORD[rbp]
-        xor     r14d,r8d
-
-        xor     r15d,r9d
-        ror     r13d,6
-        mov     edx,r9d
-
-        and     edi,r15d
-        ror     r14d,2
-        add     r12d,r13d
-
-        xor     edx,edi
-        add     r11d,r12d
-        add     edx,r12d
-
-        lea     rbp,[4+rbp]
-        add     edx,r14d
-        mov     r12d,DWORD[20+rsi]
-        mov     r13d,r11d
-        mov     r14d,edx
-        bswap   r12d
-        ror     r13d,14
-        mov     edi,eax
-
-        xor     r13d,r11d
-        ror     r14d,9
-        xor     edi,ebx
-
-        mov     DWORD[20+rsp],r12d
-        xor     r14d,edx
-        and     edi,r11d
-
-        ror     r13d,5
-        add     r12d,ecx
-        xor     edi,ebx
-
-        ror     r14d,11
-        xor     r13d,r11d
-        add     r12d,edi
-
-        mov     edi,edx
-        add     r12d,DWORD[rbp]
-        xor     r14d,edx
-
-        xor     edi,r8d
-        ror     r13d,6
-        mov     ecx,r8d
-
-        and     r15d,edi
-        ror     r14d,2
-        add     r12d,r13d
-
-        xor     ecx,r15d
-        add     r10d,r12d
-        add     ecx,r12d
-
-        lea     rbp,[4+rbp]
-        add     ecx,r14d
-        mov     r12d,DWORD[24+rsi]
-        mov     r13d,r10d
-        mov     r14d,ecx
-        bswap   r12d
-        ror     r13d,14
-        mov     r15d,r11d
-
-        xor     r13d,r10d
-        ror     r14d,9
-        xor     r15d,eax
-
-        mov     DWORD[24+rsp],r12d
-        xor     r14d,ecx
-        and     r15d,r10d
-
-        ror     r13d,5
-        add     r12d,ebx
-        xor     r15d,eax
-
-        ror     r14d,11
-        xor     r13d,r10d
-        add     r12d,r15d
-
-        mov     r15d,ecx
-        add     r12d,DWORD[rbp]
-        xor     r14d,ecx
-
-        xor     r15d,edx
-        ror     r13d,6
-        mov     ebx,edx
-
-        and     edi,r15d
-        ror     r14d,2
-        add     r12d,r13d
-
-        xor     ebx,edi
-        add     r9d,r12d
-        add     ebx,r12d
-
-        lea     rbp,[4+rbp]
-        add     ebx,r14d
-        mov     r12d,DWORD[28+rsi]
-        mov     r13d,r9d
-        mov     r14d,ebx
-        bswap   r12d
-        ror     r13d,14
-        mov     edi,r10d
-
-        xor     r13d,r9d
-        ror     r14d,9
-        xor     edi,r11d
-
-        mov     DWORD[28+rsp],r12d
-        xor     r14d,ebx
-        and     edi,r9d
-
-        ror     r13d,5
-        add     r12d,eax
-        xor     edi,r11d
-
-        ror     r14d,11
-        xor     r13d,r9d
-        add     r12d,edi
-
-        mov     edi,ebx
-        add     r12d,DWORD[rbp]
-        xor     r14d,ebx
-
-        xor     edi,ecx
-        ror     r13d,6
-        mov     eax,ecx
-
-        and     r15d,edi
-        ror     r14d,2
-        add     r12d,r13d
-
-        xor     eax,r15d
-        add     r8d,r12d
-        add     eax,r12d
-
-        lea     rbp,[20+rbp]
-        add     eax,r14d
-        mov     r12d,DWORD[32+rsi]
-        mov     r13d,r8d
-        mov     r14d,eax
-        bswap   r12d
-        ror     r13d,14
-        mov     r15d,r9d
-
-        xor     r13d,r8d
-        ror     r14d,9
-        xor     r15d,r10d
-
-        mov     DWORD[32+rsp],r12d
-        xor     r14d,eax
-        and     r15d,r8d
-
-        ror     r13d,5
-        add     r12d,r11d
-        xor     r15d,r10d
-
-        ror     r14d,11
-        xor     r13d,r8d
-        add     r12d,r15d
-
-        mov     r15d,eax
-        add     r12d,DWORD[rbp]
-        xor     r14d,eax
-
-        xor     r15d,ebx
-        ror     r13d,6
-        mov     r11d,ebx
-
-        and     edi,r15d
-        ror     r14d,2
-        add     r12d,r13d
-
-        xor     r11d,edi
-        add     edx,r12d
-        add     r11d,r12d
-
-        lea     rbp,[4+rbp]
-        add     r11d,r14d
-        mov     r12d,DWORD[36+rsi]
-        mov     r13d,edx
-        mov     r14d,r11d
-        bswap   r12d
-        ror     r13d,14
-        mov     edi,r8d
-
-        xor     r13d,edx
-        ror     r14d,9
-        xor     edi,r9d
-
-        mov     DWORD[36+rsp],r12d
-        xor     r14d,r11d
-        and     edi,edx
-
-        ror     r13d,5
-        add     r12d,r10d
-        xor     edi,r9d
-
-        ror     r14d,11
-        xor     r13d,edx
-        add     r12d,edi
-
-        mov     edi,r11d
-        add     r12d,DWORD[rbp]
-        xor     r14d,r11d
-
-        xor     edi,eax
-        ror     r13d,6
-        mov     r10d,eax
-
-        and     r15d,edi
-        ror     r14d,2
-        add     r12d,r13d
-
-        xor     r10d,r15d
-        add     ecx,r12d
-        add     r10d,r12d
-
-        lea     rbp,[4+rbp]
-        add     r10d,r14d
-        mov     r12d,DWORD[40+rsi]
-        mov     r13d,ecx
-        mov     r14d,r10d
-        bswap   r12d
-        ror     r13d,14
-        mov     r15d,edx
-
-        xor     r13d,ecx
-        ror     r14d,9
-        xor     r15d,r8d
-
-        mov     DWORD[40+rsp],r12d
-        xor     r14d,r10d
-        and     r15d,ecx
-
-        ror     r13d,5
-        add     r12d,r9d
-        xor     r15d,r8d
-
-        ror     r14d,11
-        xor     r13d,ecx
-        add     r12d,r15d
-
-        mov     r15d,r10d
-        add     r12d,DWORD[rbp]
-        xor     r14d,r10d
-
-        xor     r15d,r11d
-        ror     r13d,6
-        mov     r9d,r11d
-
-        and     edi,r15d
-        ror     r14d,2
-        add     r12d,r13d
-
-        xor     r9d,edi
-        add     ebx,r12d
-        add     r9d,r12d
-
-        lea     rbp,[4+rbp]
-        add     r9d,r14d
-        mov     r12d,DWORD[44+rsi]
-        mov     r13d,ebx
-        mov     r14d,r9d
-        bswap   r12d
-        ror     r13d,14
-        mov     edi,ecx
-
-        xor     r13d,ebx
-        ror     r14d,9
-        xor     edi,edx
-
-        mov     DWORD[44+rsp],r12d
-        xor     r14d,r9d
-        and     edi,ebx
-
-        ror     r13d,5
-        add     r12d,r8d
-        xor     edi,edx
-
-        ror     r14d,11
-        xor     r13d,ebx
-        add     r12d,edi
-
-        mov     edi,r9d
-        add     r12d,DWORD[rbp]
-        xor     r14d,r9d
-
-        xor     edi,r10d
-        ror     r13d,6
-        mov     r8d,r10d
-
-        and     r15d,edi
-        ror     r14d,2
-        add     r12d,r13d
-
-        xor     r8d,r15d
-        add     eax,r12d
-        add     r8d,r12d
-
-        lea     rbp,[20+rbp]
-        add     r8d,r14d
-        mov     r12d,DWORD[48+rsi]
-        mov     r13d,eax
-        mov     r14d,r8d
-        bswap   r12d
-        ror     r13d,14
-        mov     r15d,ebx
-
-        xor     r13d,eax
-        ror     r14d,9
-        xor     r15d,ecx
-
-        mov     DWORD[48+rsp],r12d
-        xor     r14d,r8d
-        and     r15d,eax
-
-        ror     r13d,5
-        add     r12d,edx
-        xor     r15d,ecx
-
-        ror     r14d,11
-        xor     r13d,eax
-        add     r12d,r15d
-
-        mov     r15d,r8d
-        add     r12d,DWORD[rbp]
-        xor     r14d,r8d
-
-        xor     r15d,r9d
-        ror     r13d,6
-        mov     edx,r9d
-
-        and     edi,r15d
-        ror     r14d,2
-        add     r12d,r13d
-
-        xor     edx,edi
-        add     r11d,r12d
-        add     edx,r12d
-
-        lea     rbp,[4+rbp]
-        add     edx,r14d
-        mov     r12d,DWORD[52+rsi]
-        mov     r13d,r11d
-        mov     r14d,edx
-        bswap   r12d
-        ror     r13d,14
-        mov     edi,eax
-
-        xor     r13d,r11d
-        ror     r14d,9
-        xor     edi,ebx
-
-        mov     DWORD[52+rsp],r12d
-        xor     r14d,edx
-        and     edi,r11d
-
-        ror     r13d,5
-        add     r12d,ecx
-        xor     edi,ebx
-
-        ror     r14d,11
-        xor     r13d,r11d
-        add     r12d,edi
-
-        mov     edi,edx
-        add     r12d,DWORD[rbp]
-        xor     r14d,edx
-
-        xor     edi,r8d
-        ror     r13d,6
-        mov     ecx,r8d
-
-        and     r15d,edi
-        ror     r14d,2
-        add     r12d,r13d
-
-        xor     ecx,r15d
-        add     r10d,r12d
-        add     ecx,r12d
-
-        lea     rbp,[4+rbp]
-        add     ecx,r14d
-        mov     r12d,DWORD[56+rsi]
-        mov     r13d,r10d
-        mov     r14d,ecx
-        bswap   r12d
-        ror     r13d,14
-        mov     r15d,r11d
-
-        xor     r13d,r10d
-        ror     r14d,9
-        xor     r15d,eax
-
-        mov     DWORD[56+rsp],r12d
-        xor     r14d,ecx
-        and     r15d,r10d
-
-        ror     r13d,5
-        add     r12d,ebx
-        xor     r15d,eax
-
-        ror     r14d,11
-        xor     r13d,r10d
-        add     r12d,r15d
-
-        mov     r15d,ecx
-        add     r12d,DWORD[rbp]
-        xor     r14d,ecx
-
-        xor     r15d,edx
-        ror     r13d,6
-        mov     ebx,edx
-
-        and     edi,r15d
-        ror     r14d,2
-        add     r12d,r13d
-
-        xor     ebx,edi
-        add     r9d,r12d
-        add     ebx,r12d
-
-        lea     rbp,[4+rbp]
-        add     ebx,r14d
-        mov     r12d,DWORD[60+rsi]
-        mov     r13d,r9d
-        mov     r14d,ebx
-        bswap   r12d
-        ror     r13d,14
-        mov     edi,r10d
-
-        xor     r13d,r9d
-        ror     r14d,9
-        xor     edi,r11d
-
-        mov     DWORD[60+rsp],r12d
-        xor     r14d,ebx
-        and     edi,r9d
-
-        ror     r13d,5
-        add     r12d,eax
-        xor     edi,r11d
-
-        ror     r14d,11
-        xor     r13d,r9d
-        add     r12d,edi
-
-        mov     edi,ebx
-        add     r12d,DWORD[rbp]
-        xor     r14d,ebx
-
-        xor     edi,ecx
-        ror     r13d,6
-        mov     eax,ecx
-
-        and     r15d,edi
-        ror     r14d,2
-        add     r12d,r13d
-
-        xor     eax,r15d
-        add     r8d,r12d
-        add     eax,r12d
-
-        lea     rbp,[20+rbp]
-        jmp     NEAR $L$rounds_16_xx
-ALIGN   16
-$L$rounds_16_xx:
-        mov     r13d,DWORD[4+rsp]
-        mov     r15d,DWORD[56+rsp]
-
-        mov     r12d,r13d
-        ror     r13d,11
-        add     eax,r14d
-        mov     r14d,r15d
-        ror     r15d,2
-
-        xor     r13d,r12d
-        shr     r12d,3
-        ror     r13d,7
-        xor     r15d,r14d
-        shr     r14d,10
-
-        ror     r15d,17
-        xor     r12d,r13d
-        xor     r15d,r14d
-        add     r12d,DWORD[36+rsp]
-
-        add     r12d,DWORD[rsp]
-        mov     r13d,r8d
-        add     r12d,r15d
-        mov     r14d,eax
-        ror     r13d,14
-        mov     r15d,r9d
-
-        xor     r13d,r8d
-        ror     r14d,9
-        xor     r15d,r10d
-
-        mov     DWORD[rsp],r12d
-        xor     r14d,eax
-        and     r15d,r8d
-
-        ror     r13d,5
-        add     r12d,r11d
-        xor     r15d,r10d
-
-        ror     r14d,11
-        xor     r13d,r8d
-        add     r12d,r15d
-
-        mov     r15d,eax
-        add     r12d,DWORD[rbp]
-        xor     r14d,eax
-
-        xor     r15d,ebx
-        ror     r13d,6
-        mov     r11d,ebx
-
-        and     edi,r15d
-        ror     r14d,2
-        add     r12d,r13d
-
-        xor     r11d,edi
-        add     edx,r12d
-        add     r11d,r12d
-
-        lea     rbp,[4+rbp]
-        mov     r13d,DWORD[8+rsp]
-        mov     edi,DWORD[60+rsp]
-
-        mov     r12d,r13d
-        ror     r13d,11
-        add     r11d,r14d
-        mov     r14d,edi
-        ror     edi,2
-
-        xor     r13d,r12d
-        shr     r12d,3
-        ror     r13d,7
-        xor     edi,r14d
-        shr     r14d,10
-
-        ror     edi,17
-        xor     r12d,r13d
-        xor     edi,r14d
-        add     r12d,DWORD[40+rsp]
-
-        add     r12d,DWORD[4+rsp]
-        mov     r13d,edx
-        add     r12d,edi
-        mov     r14d,r11d
-        ror     r13d,14
-        mov     edi,r8d
-
-        xor     r13d,edx
-        ror     r14d,9
-        xor     edi,r9d
-
-        mov     DWORD[4+rsp],r12d
-        xor     r14d,r11d
-        and     edi,edx
-
-        ror     r13d,5
-        add     r12d,r10d
-        xor     edi,r9d
-
-        ror     r14d,11
-        xor     r13d,edx
-        add     r12d,edi
-
-        mov     edi,r11d
-        add     r12d,DWORD[rbp]
-        xor     r14d,r11d
-
-        xor     edi,eax
-        ror     r13d,6
-        mov     r10d,eax
-
-        and     r15d,edi
-        ror     r14d,2
-        add     r12d,r13d
-
-        xor     r10d,r15d
-        add     ecx,r12d
-        add     r10d,r12d
-
-        lea     rbp,[4+rbp]
-        mov     r13d,DWORD[12+rsp]
-        mov     r15d,DWORD[rsp]
-
-        mov     r12d,r13d
-        ror     r13d,11
-        add     r10d,r14d
-        mov     r14d,r15d
-        ror     r15d,2
-
-        xor     r13d,r12d
-        shr     r12d,3
-        ror     r13d,7
-        xor     r15d,r14d
-        shr     r14d,10
-
-        ror     r15d,17
-        xor     r12d,r13d
-        xor     r15d,r14d
-        add     r12d,DWORD[44+rsp]
-
-        add     r12d,DWORD[8+rsp]
-        mov     r13d,ecx
-        add     r12d,r15d
-        mov     r14d,r10d
-        ror     r13d,14
-        mov     r15d,edx
-
-        xor     r13d,ecx
-        ror     r14d,9
-        xor     r15d,r8d
-
-        mov     DWORD[8+rsp],r12d
-        xor     r14d,r10d
-        and     r15d,ecx
-
-        ror     r13d,5
-        add     r12d,r9d
-        xor     r15d,r8d
-
-        ror     r14d,11
-        xor     r13d,ecx
-        add     r12d,r15d
-
-        mov     r15d,r10d
-        add     r12d,DWORD[rbp]
-        xor     r14d,r10d
-
-        xor     r15d,r11d
-        ror     r13d,6
-        mov     r9d,r11d
-
-        and     edi,r15d
-        ror     r14d,2
-        add     r12d,r13d
-
-        xor     r9d,edi
-        add     ebx,r12d
-        add     r9d,r12d
-
-        lea     rbp,[4+rbp]
-        mov     r13d,DWORD[16+rsp]
-        mov     edi,DWORD[4+rsp]
-
-        mov     r12d,r13d
-        ror     r13d,11
-        add     r9d,r14d
-        mov     r14d,edi
-        ror     edi,2
-
-        xor     r13d,r12d
-        shr     r12d,3
-        ror     r13d,7
-        xor     edi,r14d
-        shr     r14d,10
-
-        ror     edi,17
-        xor     r12d,r13d
-        xor     edi,r14d
-        add     r12d,DWORD[48+rsp]
-
-        add     r12d,DWORD[12+rsp]
-        mov     r13d,ebx
-        add     r12d,edi
-        mov     r14d,r9d
-        ror     r13d,14
-        mov     edi,ecx
-
-        xor     r13d,ebx
-        ror     r14d,9
-        xor     edi,edx
-
-        mov     DWORD[12+rsp],r12d
-        xor     r14d,r9d
-        and     edi,ebx
-
-        ror     r13d,5
-        add     r12d,r8d
-        xor     edi,edx
-
-        ror     r14d,11
-        xor     r13d,ebx
-        add     r12d,edi
-
-        mov     edi,r9d
-        add     r12d,DWORD[rbp]
-        xor     r14d,r9d
-
-        xor     edi,r10d
-        ror     r13d,6
-        mov     r8d,r10d
-
-        and     r15d,edi
-        ror     r14d,2
-        add     r12d,r13d
-
-        xor     r8d,r15d
-        add     eax,r12d
-        add     r8d,r12d
-
-        lea     rbp,[20+rbp]
-        mov     r13d,DWORD[20+rsp]
-        mov     r15d,DWORD[8+rsp]
-
-        mov     r12d,r13d
-        ror     r13d,11
-        add     r8d,r14d
-        mov     r14d,r15d
-        ror     r15d,2
-
-        xor     r13d,r12d
-        shr     r12d,3
-        ror     r13d,7
-        xor     r15d,r14d
-        shr     r14d,10
-
-        ror     r15d,17
-        xor     r12d,r13d
-        xor     r15d,r14d
-        add     r12d,DWORD[52+rsp]
-
-        add     r12d,DWORD[16+rsp]
-        mov     r13d,eax
-        add     r12d,r15d
-        mov     r14d,r8d
-        ror     r13d,14
-        mov     r15d,ebx
-
-        xor     r13d,eax
-        ror     r14d,9
-        xor     r15d,ecx
-
-        mov     DWORD[16+rsp],r12d
-        xor     r14d,r8d
-        and     r15d,eax
-
-        ror     r13d,5
-        add     r12d,edx
-        xor     r15d,ecx
-
-        ror     r14d,11
-        xor     r13d,eax
-        add     r12d,r15d
-
-        mov     r15d,r8d
-        add     r12d,DWORD[rbp]
-        xor     r14d,r8d
-
-        xor     r15d,r9d
-        ror     r13d,6
-        mov     edx,r9d
-
-        and     edi,r15d
-        ror     r14d,2
-        add     r12d,r13d
-
-        xor     edx,edi
-        add     r11d,r12d
-        add     edx,r12d
-
-        lea     rbp,[4+rbp]
-        mov     r13d,DWORD[24+rsp]
-        mov     edi,DWORD[12+rsp]
-
-        mov     r12d,r13d
-        ror     r13d,11
-        add     edx,r14d
-        mov     r14d,edi
-        ror     edi,2
-
-        xor     r13d,r12d
-        shr     r12d,3
-        ror     r13d,7
-        xor     edi,r14d
-        shr     r14d,10
-
-        ror     edi,17
-        xor     r12d,r13d
-        xor     edi,r14d
-        add     r12d,DWORD[56+rsp]
-
-        add     r12d,DWORD[20+rsp]
-        mov     r13d,r11d
-        add     r12d,edi
-        mov     r14d,edx
-        ror     r13d,14
-        mov     edi,eax
-
-        xor     r13d,r11d
-        ror     r14d,9
-        xor     edi,ebx
-
-        mov     DWORD[20+rsp],r12d
-        xor     r14d,edx
-        and     edi,r11d
-
-        ror     r13d,5
-        add     r12d,ecx
-        xor     edi,ebx
-
-        ror     r14d,11
-        xor     r13d,r11d
-        add     r12d,edi
-
-        mov     edi,edx
-        add     r12d,DWORD[rbp]
-        xor     r14d,edx
-
-        xor     edi,r8d
-        ror     r13d,6
-        mov     ecx,r8d
-
-        and     r15d,edi
-        ror     r14d,2
-        add     r12d,r13d
-
-        xor     ecx,r15d
-        add     r10d,r12d
-        add     ecx,r12d
-
-        lea     rbp,[4+rbp]
-        mov     r13d,DWORD[28+rsp]
-        mov     r15d,DWORD[16+rsp]
-
-        mov     r12d,r13d
-        ror     r13d,11
-        add     ecx,r14d
-        mov     r14d,r15d
-        ror     r15d,2
-
-        xor     r13d,r12d
-        shr     r12d,3
-        ror     r13d,7
-        xor     r15d,r14d
-        shr     r14d,10
-
-        ror     r15d,17
-        xor     r12d,r13d
-        xor     r15d,r14d
-        add     r12d,DWORD[60+rsp]
-
-        add     r12d,DWORD[24+rsp]
-        mov     r13d,r10d
-        add     r12d,r15d
-        mov     r14d,ecx
-        ror     r13d,14
-        mov     r15d,r11d
-
-        xor     r13d,r10d
-        ror     r14d,9
-        xor     r15d,eax
-
-        mov     DWORD[24+rsp],r12d
-        xor     r14d,ecx
-        and     r15d,r10d
-
-        ror     r13d,5
-        add     r12d,ebx
-        xor     r15d,eax
-
-        ror     r14d,11
-        xor     r13d,r10d
-        add     r12d,r15d
-
-        mov     r15d,ecx
-        add     r12d,DWORD[rbp]
-        xor     r14d,ecx
-
-        xor     r15d,edx
-        ror     r13d,6
-        mov     ebx,edx
-
-        and     edi,r15d
-        ror     r14d,2
-        add     r12d,r13d
-
-        xor     ebx,edi
-        add     r9d,r12d
-        add     ebx,r12d
-
-        lea     rbp,[4+rbp]
-        mov     r13d,DWORD[32+rsp]
-        mov     edi,DWORD[20+rsp]
-
-        mov     r12d,r13d
-        ror     r13d,11
-        add     ebx,r14d
-        mov     r14d,edi
-        ror     edi,2
-
-        xor     r13d,r12d
-        shr     r12d,3
-        ror     r13d,7
-        xor     edi,r14d
-        shr     r14d,10
-
-        ror     edi,17
-        xor     r12d,r13d
-        xor     edi,r14d
-        add     r12d,DWORD[rsp]
-
-        add     r12d,DWORD[28+rsp]
-        mov     r13d,r9d
-        add     r12d,edi
-        mov     r14d,ebx
-        ror     r13d,14
-        mov     edi,r10d
-
-        xor     r13d,r9d
-        ror     r14d,9
-        xor     edi,r11d
-
-        mov     DWORD[28+rsp],r12d
-        xor     r14d,ebx
-        and     edi,r9d
-
-        ror     r13d,5
-        add     r12d,eax
-        xor     edi,r11d
-
-        ror     r14d,11
-        xor     r13d,r9d
-        add     r12d,edi
-
-        mov     edi,ebx
-        add     r12d,DWORD[rbp]
-        xor     r14d,ebx
-
-        xor     edi,ecx
-        ror     r13d,6
-        mov     eax,ecx
-
-        and     r15d,edi
-        ror     r14d,2
-        add     r12d,r13d
-
-        xor     eax,r15d
-        add     r8d,r12d
-        add     eax,r12d
-
-        lea     rbp,[20+rbp]
-        mov     r13d,DWORD[36+rsp]
-        mov     r15d,DWORD[24+rsp]
-
-        mov     r12d,r13d
-        ror     r13d,11
-        add     eax,r14d
-        mov     r14d,r15d
-        ror     r15d,2
-
-        xor     r13d,r12d
-        shr     r12d,3
-        ror     r13d,7
-        xor     r15d,r14d
-        shr     r14d,10
-
-        ror     r15d,17
-        xor     r12d,r13d
-        xor     r15d,r14d
-        add     r12d,DWORD[4+rsp]
-
-        add     r12d,DWORD[32+rsp]
-        mov     r13d,r8d
-        add     r12d,r15d
-        mov     r14d,eax
-        ror     r13d,14
-        mov     r15d,r9d
-
-        xor     r13d,r8d
-        ror     r14d,9
-        xor     r15d,r10d
-
-        mov     DWORD[32+rsp],r12d
-        xor     r14d,eax
-        and     r15d,r8d
-
-        ror     r13d,5
-        add     r12d,r11d
-        xor     r15d,r10d
-
-        ror     r14d,11
-        xor     r13d,r8d
-        add     r12d,r15d
-
-        mov     r15d,eax
-        add     r12d,DWORD[rbp]
-        xor     r14d,eax
-
-        xor     r15d,ebx
-        ror     r13d,6
-        mov     r11d,ebx
-
-        and     edi,r15d
-        ror     r14d,2
-        add     r12d,r13d
-
-        xor     r11d,edi
-        add     edx,r12d
-        add     r11d,r12d
-
-        lea     rbp,[4+rbp]
-        mov     r13d,DWORD[40+rsp]
-        mov     edi,DWORD[28+rsp]
-
-        mov     r12d,r13d
-        ror     r13d,11
-        add     r11d,r14d
-        mov     r14d,edi
-        ror     edi,2
-
-        xor     r13d,r12d
-        shr     r12d,3
-        ror     r13d,7
-        xor     edi,r14d
-        shr     r14d,10
-
-        ror     edi,17
-        xor     r12d,r13d
-        xor     edi,r14d
-        add     r12d,DWORD[8+rsp]
-
-        add     r12d,DWORD[36+rsp]
-        mov     r13d,edx
-        add     r12d,edi
-        mov     r14d,r11d
-        ror     r13d,14
-        mov     edi,r8d
-
-        xor     r13d,edx
-        ror     r14d,9
-        xor     edi,r9d
-
-        mov     DWORD[36+rsp],r12d
-        xor     r14d,r11d
-        and     edi,edx
-
-        ror     r13d,5
-        add     r12d,r10d
-        xor     edi,r9d
-
-        ror     r14d,11
-        xor     r13d,edx
-        add     r12d,edi
-
-        mov     edi,r11d
-        add     r12d,DWORD[rbp]
-        xor     r14d,r11d
-
-        xor     edi,eax
-        ror     r13d,6
-        mov     r10d,eax
-
-        and     r15d,edi
-        ror     r14d,2
-        add     r12d,r13d
-
-        xor     r10d,r15d
-        add     ecx,r12d
-        add     r10d,r12d
-
-        lea     rbp,[4+rbp]
-        mov     r13d,DWORD[44+rsp]
-        mov     r15d,DWORD[32+rsp]
-
-        mov     r12d,r13d
-        ror     r13d,11
-        add     r10d,r14d
-        mov     r14d,r15d
-        ror     r15d,2
-
-        xor     r13d,r12d
-        shr     r12d,3
-        ror     r13d,7
-        xor     r15d,r14d
-        shr     r14d,10
-
-        ror     r15d,17
-        xor     r12d,r13d
-        xor     r15d,r14d
-        add     r12d,DWORD[12+rsp]
-
-        add     r12d,DWORD[40+rsp]
-        mov     r13d,ecx
-        add     r12d,r15d
-        mov     r14d,r10d
-        ror     r13d,14
-        mov     r15d,edx
-
-        xor     r13d,ecx
-        ror     r14d,9
-        xor     r15d,r8d
-
-        mov     DWORD[40+rsp],r12d
-        xor     r14d,r10d
-        and     r15d,ecx
-
-        ror     r13d,5
-        add     r12d,r9d
-        xor     r15d,r8d
-
-        ror     r14d,11
-        xor     r13d,ecx
-        add     r12d,r15d
-
-        mov     r15d,r10d
-        add     r12d,DWORD[rbp]
-        xor     r14d,r10d
-
-        xor     r15d,r11d
-        ror     r13d,6
-        mov     r9d,r11d
-
-        and     edi,r15d
-        ror     r14d,2
-        add     r12d,r13d
-
-        xor     r9d,edi
-        add     ebx,r12d
-        add     r9d,r12d
-
-        lea     rbp,[4+rbp]
-        mov     r13d,DWORD[48+rsp]
-        mov     edi,DWORD[36+rsp]
-
-        mov     r12d,r13d
-        ror     r13d,11
-        add     r9d,r14d
-        mov     r14d,edi
-        ror     edi,2
-
-        xor     r13d,r12d
-        shr     r12d,3
-        ror     r13d,7
-        xor     edi,r14d
-        shr     r14d,10
-
-        ror     edi,17
-        xor     r12d,r13d
-        xor     edi,r14d
-        add     r12d,DWORD[16+rsp]
-
-        add     r12d,DWORD[44+rsp]
-        mov     r13d,ebx
-        add     r12d,edi
-        mov     r14d,r9d
-        ror     r13d,14
-        mov     edi,ecx
-
-        xor     r13d,ebx
-        ror     r14d,9
-        xor     edi,edx
-
-        mov     DWORD[44+rsp],r12d
-        xor     r14d,r9d
-        and     edi,ebx
-
-        ror     r13d,5
-        add     r12d,r8d
-        xor     edi,edx
-
-        ror     r14d,11
-        xor     r13d,ebx
-        add     r12d,edi
-
-        mov     edi,r9d
-        add     r12d,DWORD[rbp]
-        xor     r14d,r9d
-
-        xor     edi,r10d
-        ror     r13d,6
-        mov     r8d,r10d
-
-        and     r15d,edi
-        ror     r14d,2
-        add     r12d,r13d
-
-        xor     r8d,r15d
-        add     eax,r12d
-        add     r8d,r12d
-
-        lea     rbp,[20+rbp]
-        mov     r13d,DWORD[52+rsp]
-        mov     r15d,DWORD[40+rsp]
-
-        mov     r12d,r13d
-        ror     r13d,11
-        add     r8d,r14d
-        mov     r14d,r15d
-        ror     r15d,2
-
-        xor     r13d,r12d
-        shr     r12d,3
-        ror     r13d,7
-        xor     r15d,r14d
-        shr     r14d,10
-
-        ror     r15d,17
-        xor     r12d,r13d
-        xor     r15d,r14d
-        add     r12d,DWORD[20+rsp]
-
-        add     r12d,DWORD[48+rsp]
-        mov     r13d,eax
-        add     r12d,r15d
-        mov     r14d,r8d
-        ror     r13d,14
-        mov     r15d,ebx
-
-        xor     r13d,eax
-        ror     r14d,9
-        xor     r15d,ecx
-
-        mov     DWORD[48+rsp],r12d
-        xor     r14d,r8d
-        and     r15d,eax
-
-        ror     r13d,5
-        add     r12d,edx
-        xor     r15d,ecx
-
-        ror     r14d,11
-        xor     r13d,eax
-        add     r12d,r15d
-
-        mov     r15d,r8d
-        add     r12d,DWORD[rbp]
-        xor     r14d,r8d
-
-        xor     r15d,r9d
-        ror     r13d,6
-        mov     edx,r9d
-
-        and     edi,r15d
-        ror     r14d,2
-        add     r12d,r13d
-
-        xor     edx,edi
-        add     r11d,r12d
-        add     edx,r12d
-
-        lea     rbp,[4+rbp]
-        mov     r13d,DWORD[56+rsp]
-        mov     edi,DWORD[44+rsp]
-
-        mov     r12d,r13d
-        ror     r13d,11
-        add     edx,r14d
-        mov     r14d,edi
-        ror     edi,2
-
-        xor     r13d,r12d
-        shr     r12d,3
-        ror     r13d,7
-        xor     edi,r14d
-        shr     r14d,10
-
-        ror     edi,17
-        xor     r12d,r13d
-        xor     edi,r14d
-        add     r12d,DWORD[24+rsp]
-
-        add     r12d,DWORD[52+rsp]
-        mov     r13d,r11d
-        add     r12d,edi
-        mov     r14d,edx
-        ror     r13d,14
-        mov     edi,eax
-
-        xor     r13d,r11d
-        ror     r14d,9
-        xor     edi,ebx
-
-        mov     DWORD[52+rsp],r12d
-        xor     r14d,edx
-        and     edi,r11d
-
-        ror     r13d,5
-        add     r12d,ecx
-        xor     edi,ebx
-
-        ror     r14d,11
-        xor     r13d,r11d
-        add     r12d,edi
-
-        mov     edi,edx
-        add     r12d,DWORD[rbp]
-        xor     r14d,edx
-
-        xor     edi,r8d
-        ror     r13d,6
-        mov     ecx,r8d
-
-        and     r15d,edi
-        ror     r14d,2
-        add     r12d,r13d
-
-        xor     ecx,r15d
-        add     r10d,r12d
-        add     ecx,r12d
-
-        lea     rbp,[4+rbp]
-        mov     r13d,DWORD[60+rsp]
-        mov     r15d,DWORD[48+rsp]
-
-        mov     r12d,r13d
-        ror     r13d,11
-        add     ecx,r14d
-        mov     r14d,r15d
-        ror     r15d,2
-
-        xor     r13d,r12d
-        shr     r12d,3
-        ror     r13d,7
-        xor     r15d,r14d
-        shr     r14d,10
-
-        ror     r15d,17
-        xor     r12d,r13d
-        xor     r15d,r14d
-        add     r12d,DWORD[28+rsp]
-
-        add     r12d,DWORD[56+rsp]
-        mov     r13d,r10d
-        add     r12d,r15d
-        mov     r14d,ecx
-        ror     r13d,14
-        mov     r15d,r11d
-
-        xor     r13d,r10d
-        ror     r14d,9
-        xor     r15d,eax
-
-        mov     DWORD[56+rsp],r12d
-        xor     r14d,ecx
-        and     r15d,r10d
-
-        ror     r13d,5
-        add     r12d,ebx
-        xor     r15d,eax
-
-        ror     r14d,11
-        xor     r13d,r10d
-        add     r12d,r15d
-
-        mov     r15d,ecx
-        add     r12d,DWORD[rbp]
-        xor     r14d,ecx
-
-        xor     r15d,edx
-        ror     r13d,6
-        mov     ebx,edx
-
-        and     edi,r15d
-        ror     r14d,2
-        add     r12d,r13d
-
-        xor     ebx,edi
-        add     r9d,r12d
-        add     ebx,r12d
-
-        lea     rbp,[4+rbp]
-        mov     r13d,DWORD[rsp]
-        mov     edi,DWORD[52+rsp]
-
-        mov     r12d,r13d
-        ror     r13d,11
-        add     ebx,r14d
-        mov     r14d,edi
-        ror     edi,2
-
-        xor     r13d,r12d
-        shr     r12d,3
-        ror     r13d,7
-        xor     edi,r14d
-        shr     r14d,10
-
-        ror     edi,17
-        xor     r12d,r13d
-        xor     edi,r14d
-        add     r12d,DWORD[32+rsp]
-
-        add     r12d,DWORD[60+rsp]
-        mov     r13d,r9d
-        add     r12d,edi
-        mov     r14d,ebx
-        ror     r13d,14
-        mov     edi,r10d
-
-        xor     r13d,r9d
-        ror     r14d,9
-        xor     edi,r11d
-
-        mov     DWORD[60+rsp],r12d
-        xor     r14d,ebx
-        and     edi,r9d
-
-        ror     r13d,5
-        add     r12d,eax
-        xor     edi,r11d
-
-        ror     r14d,11
-        xor     r13d,r9d
-        add     r12d,edi
-
-        mov     edi,ebx
-        add     r12d,DWORD[rbp]
-        xor     r14d,ebx
-
-        xor     edi,ecx
-        ror     r13d,6
-        mov     eax,ecx
-
-        and     r15d,edi
-        ror     r14d,2
-        add     r12d,r13d
-
-        xor     eax,r15d
-        add     r8d,r12d
-        add     eax,r12d
-
-        lea     rbp,[20+rbp]
-        cmp     BYTE[3+rbp],0
-        jnz     NEAR $L$rounds_16_xx
-
-        mov     rdi,QWORD[((64+0))+rsp]
-        add     eax,r14d
-        lea     rsi,[64+rsi]
-
-        add     eax,DWORD[rdi]
-        add     ebx,DWORD[4+rdi]
-        add     ecx,DWORD[8+rdi]
-        add     edx,DWORD[12+rdi]
-        add     r8d,DWORD[16+rdi]
-        add     r9d,DWORD[20+rdi]
-        add     r10d,DWORD[24+rdi]
-        add     r11d,DWORD[28+rdi]
-
-        cmp     rsi,QWORD[((64+16))+rsp]
-
-        mov     DWORD[rdi],eax
-        mov     DWORD[4+rdi],ebx
-        mov     DWORD[8+rdi],ecx
-        mov     DWORD[12+rdi],edx
-        mov     DWORD[16+rdi],r8d
-        mov     DWORD[20+rdi],r9d
-        mov     DWORD[24+rdi],r10d
-        mov     DWORD[28+rdi],r11d
-        jb      NEAR $L$loop
-
-        mov     rsi,QWORD[88+rsp]
-
-        mov     r15,QWORD[((-48))+rsi]
-
-        mov     r14,QWORD[((-40))+rsi]
-
-        mov     r13,QWORD[((-32))+rsi]
-
-        mov     r12,QWORD[((-24))+rsi]
-
-        mov     rbp,QWORD[((-16))+rsi]
-
-        mov     rbx,QWORD[((-8))+rsi]
-
-        lea     rsp,[rsi]
-
-$L$epilogue:
-        mov     rdi,QWORD[8+rsp]        ;WIN64 epilogue
-        mov     rsi,QWORD[16+rsp]
-        DB      0F3h,0C3h               ;repret
-
-$L$SEH_end_sha256_block_data_order:
-ALIGN   64
-
-K256:
-        DD      0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
-        DD      0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
-        DD      0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
-        DD      0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
-        DD      0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
-        DD      0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
-        DD      0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
-        DD      0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
-        DD      0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
-        DD      0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
-        DD      0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
-        DD      0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
-        DD      0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
-        DD      0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
-        DD      0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
-        DD      0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
-        DD      0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
-        DD      0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
-        DD      0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
-        DD      0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
-        DD      0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
-        DD      0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
-        DD      0xd192e819,0xd6990624,0xf40e3585,0x106aa070
-        DD      0xd192e819,0xd6990624,0xf40e3585,0x106aa070
-        DD      0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
-        DD      0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
-        DD      0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
-        DD      0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
-        DD      0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
-        DD      0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
-        DD      0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
-        DD      0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
-
-        DD      0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
-        DD      0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
-        DD      0x03020100,0x0b0a0908,0xffffffff,0xffffffff
-        DD      0x03020100,0x0b0a0908,0xffffffff,0xffffffff
-        DD      0xffffffff,0xffffffff,0x03020100,0x0b0a0908
-        DD      0xffffffff,0xffffffff,0x03020100,0x0b0a0908
-DB      83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97
-DB      110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54
-DB      52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121
-DB      32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46
-DB      111,114,103,62,0
-
-ALIGN   64
-sha256_block_data_order_shaext:
-        mov     QWORD[8+rsp],rdi        ;WIN64 prologue
-        mov     QWORD[16+rsp],rsi
-        mov     rax,rsp
-$L$SEH_begin_sha256_block_data_order_shaext:
-        mov     rdi,rcx
-        mov     rsi,rdx
-        mov     rdx,r8
-
-
-_shaext_shortcut:
-
-        lea     rsp,[((-88))+rsp]
-        movaps  XMMWORD[(-8-80)+rax],xmm6
-        movaps  XMMWORD[(-8-64)+rax],xmm7
-        movaps  XMMWORD[(-8-48)+rax],xmm8
-        movaps  XMMWORD[(-8-32)+rax],xmm9
-        movaps  XMMWORD[(-8-16)+rax],xmm10
-$L$prologue_shaext:
-        lea     rcx,[((K256+128))]
-        movdqu  xmm1,XMMWORD[rdi]
-        movdqu  xmm2,XMMWORD[16+rdi]
-        movdqa  xmm7,XMMWORD[((512-128))+rcx]
-
-        pshufd  xmm0,xmm1,0x1b
-        pshufd  xmm1,xmm1,0xb1
-        pshufd  xmm2,xmm2,0x1b
-        movdqa  xmm8,xmm7
-DB      102,15,58,15,202,8
-        punpcklqdq      xmm2,xmm0
-        jmp     NEAR $L$oop_shaext
-
-ALIGN   16
-$L$oop_shaext:
-        movdqu  xmm3,XMMWORD[rsi]
-        movdqu  xmm4,XMMWORD[16+rsi]
-        movdqu  xmm5,XMMWORD[32+rsi]
-DB      102,15,56,0,223
-        movdqu  xmm6,XMMWORD[48+rsi]
-
-        movdqa  xmm0,XMMWORD[((0-128))+rcx]
-        paddd   xmm0,xmm3
-DB      102,15,56,0,231
-        movdqa  xmm10,xmm2
-DB      15,56,203,209
-        pshufd  xmm0,xmm0,0x0e
-        nop
-        movdqa  xmm9,xmm1
-DB      15,56,203,202
-
-        movdqa  xmm0,XMMWORD[((32-128))+rcx]
-        paddd   xmm0,xmm4
-DB      102,15,56,0,239
-DB      15,56,203,209
-        pshufd  xmm0,xmm0,0x0e
-        lea     rsi,[64+rsi]
-DB      15,56,204,220
-DB      15,56,203,202
-
-        movdqa  xmm0,XMMWORD[((64-128))+rcx]
-        paddd   xmm0,xmm5
-DB      102,15,56,0,247
-DB      15,56,203,209
-        pshufd  xmm0,xmm0,0x0e
-        movdqa  xmm7,xmm6
-DB      102,15,58,15,253,4
-        nop
-        paddd   xmm3,xmm7
-DB      15,56,204,229
-DB      15,56,203,202
-
-        movdqa  xmm0,XMMWORD[((96-128))+rcx]
-        paddd   xmm0,xmm6
-DB      15,56,205,222
-DB      15,56,203,209
-        pshufd  xmm0,xmm0,0x0e
-        movdqa  xmm7,xmm3
-DB      102,15,58,15,254,4
-        nop
-        paddd   xmm4,xmm7
-DB      15,56,204,238
-DB      15,56,203,202
-        movdqa  xmm0,XMMWORD[((128-128))+rcx]
-        paddd   xmm0,xmm3
-DB      15,56,205,227
-DB      15,56,203,209
-        pshufd  xmm0,xmm0,0x0e
-        movdqa  xmm7,xmm4
-DB      102,15,58,15,251,4
-        nop
-        paddd   xmm5,xmm7
-DB      15,56,204,243
-DB      15,56,203,202
-        movdqa  xmm0,XMMWORD[((160-128))+rcx]
-        paddd   xmm0,xmm4
-DB      15,56,205,236
-DB      15,56,203,209
-        pshufd  xmm0,xmm0,0x0e
-        movdqa  xmm7,xmm5
-DB      102,15,58,15,252,4
-        nop
-        paddd   xmm6,xmm7
-DB      15,56,204,220
-DB      15,56,203,202
-        movdqa  xmm0,XMMWORD[((192-128))+rcx]
-        paddd   xmm0,xmm5
-DB      15,56,205,245
-DB      15,56,203,209
-        pshufd  xmm0,xmm0,0x0e
-        movdqa  xmm7,xmm6
-DB      102,15,58,15,253,4
-        nop
-        paddd   xmm3,xmm7
-DB      15,56,204,229
-DB      15,56,203,202
-        movdqa  xmm0,XMMWORD[((224-128))+rcx]
-        paddd   xmm0,xmm6
-DB      15,56,205,222
-DB      15,56,203,209
-        pshufd  xmm0,xmm0,0x0e
-        movdqa  xmm7,xmm3
-DB      102,15,58,15,254,4
-        nop
-        paddd   xmm4,xmm7
-DB      15,56,204,238
-DB      15,56,203,202
-        movdqa  xmm0,XMMWORD[((256-128))+rcx]
-        paddd   xmm0,xmm3
-DB      15,56,205,227
-DB      15,56,203,209
-        pshufd  xmm0,xmm0,0x0e
-        movdqa  xmm7,xmm4
-DB      102,15,58,15,251,4
-        nop
-        paddd   xmm5,xmm7
-DB      15,56,204,243
-DB      15,56,203,202
-        movdqa  xmm0,XMMWORD[((288-128))+rcx]
-        paddd   xmm0,xmm4
-DB      15,56,205,236
-DB      15,56,203,209
-        pshufd  xmm0,xmm0,0x0e
-        movdqa  xmm7,xmm5
-DB      102,15,58,15,252,4
-        nop
-        paddd   xmm6,xmm7
-DB      15,56,204,220
-DB      15,56,203,202
-        movdqa  xmm0,XMMWORD[((320-128))+rcx]
-        paddd   xmm0,xmm5
-DB      15,56,205,245
-DB      15,56,203,209
-        pshufd  xmm0,xmm0,0x0e
-        movdqa  xmm7,xmm6
-DB      102,15,58,15,253,4
-        nop
-        paddd   xmm3,xmm7
-DB      15,56,204,229
-DB      15,56,203,202
-        movdqa  xmm0,XMMWORD[((352-128))+rcx]
-        paddd   xmm0,xmm6
-DB      15,56,205,222
-DB      15,56,203,209
-        pshufd  xmm0,xmm0,0x0e
-        movdqa  xmm7,xmm3
-DB      102,15,58,15,254,4
-        nop
-        paddd   xmm4,xmm7
-DB      15,56,204,238
-DB      15,56,203,202
-        movdqa  xmm0,XMMWORD[((384-128))+rcx]
-        paddd   xmm0,xmm3
-DB      15,56,205,227
-DB      15,56,203,209
-        pshufd  xmm0,xmm0,0x0e
-        movdqa  xmm7,xmm4
-DB      102,15,58,15,251,4
-        nop
-        paddd   xmm5,xmm7
-DB      15,56,204,243
-DB      15,56,203,202
-        movdqa  xmm0,XMMWORD[((416-128))+rcx]
-        paddd   xmm0,xmm4
-DB      15,56,205,236
-DB      15,56,203,209
-        pshufd  xmm0,xmm0,0x0e
-        movdqa  xmm7,xmm5
-DB      102,15,58,15,252,4
-DB      15,56,203,202
-        paddd   xmm6,xmm7
-
-        movdqa  xmm0,XMMWORD[((448-128))+rcx]
-        paddd   xmm0,xmm5
-DB      15,56,203,209
-        pshufd  xmm0,xmm0,0x0e
-DB      15,56,205,245
-        movdqa  xmm7,xmm8
-DB      15,56,203,202
-
-        movdqa  xmm0,XMMWORD[((480-128))+rcx]
-        paddd   xmm0,xmm6
-        nop
-DB      15,56,203,209
-        pshufd  xmm0,xmm0,0x0e
-        dec     rdx
-        nop
-DB      15,56,203,202
-
-        paddd   xmm2,xmm10
-        paddd   xmm1,xmm9
-        jnz     NEAR $L$oop_shaext
-
-        pshufd  xmm2,xmm2,0xb1
-        pshufd  xmm7,xmm1,0x1b
-        pshufd  xmm1,xmm1,0xb1
-        punpckhqdq      xmm1,xmm2
-DB      102,15,58,15,215,8
-
-        movdqu  XMMWORD[rdi],xmm1
-        movdqu  XMMWORD[16+rdi],xmm2
-        movaps  xmm6,XMMWORD[((-8-80))+rax]
-        movaps  xmm7,XMMWORD[((-8-64))+rax]
-        movaps  xmm8,XMMWORD[((-8-48))+rax]
-        movaps  xmm9,XMMWORD[((-8-32))+rax]
-        movaps  xmm10,XMMWORD[((-8-16))+rax]
-        mov     rsp,rax
-$L$epilogue_shaext:
-        mov     rdi,QWORD[8+rsp]        ;WIN64 epilogue
-        mov     rsi,QWORD[16+rsp]
-        DB      0F3h,0C3h               ;repret
-
-$L$SEH_end_sha256_block_data_order_shaext:
-
-ALIGN   64
-sha256_block_data_order_ssse3:
-        mov     QWORD[8+rsp],rdi        ;WIN64 prologue
-        mov     QWORD[16+rsp],rsi
-        mov     rax,rsp
-$L$SEH_begin_sha256_block_data_order_ssse3:
-        mov     rdi,rcx
-        mov     rsi,rdx
-        mov     rdx,r8
-
-
-
-$L$ssse3_shortcut:
-        mov     rax,rsp
-
-        push    rbx
-
-        push    rbp
-
-        push    r12
-
-        push    r13
-
-        push    r14
-
-        push    r15
-
-        shl     rdx,4
-        sub     rsp,160
-        lea     rdx,[rdx*4+rsi]
-        and     rsp,-64
-        mov     QWORD[((64+0))+rsp],rdi
-        mov     QWORD[((64+8))+rsp],rsi
-        mov     QWORD[((64+16))+rsp],rdx
-        mov     QWORD[88+rsp],rax
-
-        movaps  XMMWORD[(64+32)+rsp],xmm6
-        movaps  XMMWORD[(64+48)+rsp],xmm7
-        movaps  XMMWORD[(64+64)+rsp],xmm8
-        movaps  XMMWORD[(64+80)+rsp],xmm9
-$L$prologue_ssse3:
-
-        mov     eax,DWORD[rdi]
-        mov     ebx,DWORD[4+rdi]
-        mov     ecx,DWORD[8+rdi]
-        mov     edx,DWORD[12+rdi]
-        mov     r8d,DWORD[16+rdi]
-        mov     r9d,DWORD[20+rdi]
-        mov     r10d,DWORD[24+rdi]
-        mov     r11d,DWORD[28+rdi]
-
-
-        jmp     NEAR $L$loop_ssse3
-ALIGN   16
-$L$loop_ssse3:
-        movdqa  xmm7,XMMWORD[((K256+512))]
-        movdqu  xmm0,XMMWORD[rsi]
-        movdqu  xmm1,XMMWORD[16+rsi]
-        movdqu  xmm2,XMMWORD[32+rsi]
-DB      102,15,56,0,199
-        movdqu  xmm3,XMMWORD[48+rsi]
-        lea     rbp,[K256]
-DB      102,15,56,0,207
-        movdqa  xmm4,XMMWORD[rbp]
-        movdqa  xmm5,XMMWORD[32+rbp]
-DB      102,15,56,0,215
-        paddd   xmm4,xmm0
-        movdqa  xmm6,XMMWORD[64+rbp]
-DB      102,15,56,0,223
-        movdqa  xmm7,XMMWORD[96+rbp]
-        paddd   xmm5,xmm1
-        paddd   xmm6,xmm2
-        paddd   xmm7,xmm3
-        movdqa  XMMWORD[rsp],xmm4
-        mov     r14d,eax
-        movdqa  XMMWORD[16+rsp],xmm5
-        mov     edi,ebx
-        movdqa  XMMWORD[32+rsp],xmm6
-        xor     edi,ecx
-        movdqa  XMMWORD[48+rsp],xmm7
-        mov     r13d,r8d
-        jmp     NEAR $L$ssse3_00_47
-
-ALIGN   16
-$L$ssse3_00_47:
-        sub     rbp,-128
-        ror     r13d,14
-        movdqa  xmm4,xmm1
-        mov     eax,r14d
-        mov     r12d,r9d
-        movdqa  xmm7,xmm3
-        ror     r14d,9
-        xor     r13d,r8d
-        xor     r12d,r10d
-        ror     r13d,5
-        xor     r14d,eax
-DB      102,15,58,15,224,4
-        and     r12d,r8d
-        xor     r13d,r8d
-DB      102,15,58,15,250,4
-        add     r11d,DWORD[rsp]
-        mov     r15d,eax
-        xor     r12d,r10d
-        ror     r14d,11
-        movdqa  xmm5,xmm4
-        xor     r15d,ebx
-        add     r11d,r12d
-        movdqa  xmm6,xmm4
-        ror     r13d,6
-        and     edi,r15d
-        psrld   xmm4,3
-        xor     r14d,eax
-        add     r11d,r13d
-        xor     edi,ebx
-        paddd   xmm0,xmm7
-        ror     r14d,2
-        add     edx,r11d
-        psrld   xmm6,7
-        add     r11d,edi
-        mov     r13d,edx
-        pshufd  xmm7,xmm3,250
-        add     r14d,r11d
-        ror     r13d,14
-        pslld   xmm5,14
-        mov     r11d,r14d
-        mov     r12d,r8d
-        pxor    xmm4,xmm6
-        ror     r14d,9
-        xor     r13d,edx
-        xor     r12d,r9d
-        ror     r13d,5
-        psrld   xmm6,11
-        xor     r14d,r11d
-        pxor    xmm4,xmm5
-        and     r12d,edx
-        xor     r13d,edx
-        pslld   xmm5,11
-        add     r10d,DWORD[4+rsp]
-        mov     edi,r11d
-        pxor    xmm4,xmm6
-        xor     r12d,r9d
-        ror     r14d,11
-        movdqa  xmm6,xmm7
-        xor     edi,eax
-        add     r10d,r12d
-        pxor    xmm4,xmm5
-        ror     r13d,6
-        and     r15d,edi
-        xor     r14d,r11d
-        psrld   xmm7,10
-        add     r10d,r13d
-        xor     r15d,eax
-        paddd   xmm0,xmm4
-        ror     r14d,2
-        add     ecx,r10d
-        psrlq   xmm6,17
-        add     r10d,r15d
-        mov     r13d,ecx
-        add     r14d,r10d
-        pxor    xmm7,xmm6
-        ror     r13d,14
-        mov     r10d,r14d
-        mov     r12d,edx
-        ror     r14d,9
-        psrlq   xmm6,2
-        xor     r13d,ecx
-        xor     r12d,r8d
-        pxor    xmm7,xmm6
-        ror     r13d,5
-        xor     r14d,r10d
-        and     r12d,ecx
-        pshufd  xmm7,xmm7,128
-        xor     r13d,ecx
-        add     r9d,DWORD[8+rsp]
-        mov     r15d,r10d
-        psrldq  xmm7,8
-        xor     r12d,r8d
-        ror     r14d,11
-        xor     r15d,r11d
-        add     r9d,r12d
-        ror     r13d,6
-        paddd   xmm0,xmm7
-        and     edi,r15d
-        xor     r14d,r10d
-        add     r9d,r13d
-        pshufd  xmm7,xmm0,80
-        xor     edi,r11d
-        ror     r14d,2
-        add     ebx,r9d
-        movdqa  xmm6,xmm7
-        add     r9d,edi
-        mov     r13d,ebx
-        psrld   xmm7,10
-        add     r14d,r9d
-        ror     r13d,14
-        psrlq   xmm6,17
-        mov     r9d,r14d
-        mov     r12d,ecx
-        pxor    xmm7,xmm6
-        ror     r14d,9
-        xor     r13d,ebx
-        xor     r12d,edx
-        ror     r13d,5
-        xor     r14d,r9d
-        psrlq   xmm6,2
-        and     r12d,ebx
-        xor     r13d,ebx
-        add     r8d,DWORD[12+rsp]
-        pxor    xmm7,xmm6
-        mov     edi,r9d
-        xor     r12d,edx
-        ror     r14d,11
-        pshufd  xmm7,xmm7,8
-        xor     edi,r10d
-        add     r8d,r12d
-        movdqa  xmm6,XMMWORD[rbp]
-        ror     r13d,6
-        and     r15d,edi
-        pslldq  xmm7,8
-        xor     r14d,r9d
-        add     r8d,r13d
-        xor     r15d,r10d
-        paddd   xmm0,xmm7
-        ror     r14d,2
-        add     eax,r8d
-        add     r8d,r15d
-        paddd   xmm6,xmm0
-        mov     r13d,eax
-        add     r14d,r8d
-        movdqa  XMMWORD[rsp],xmm6
-        ror     r13d,14
-        movdqa  xmm4,xmm2
-        mov     r8d,r14d
-        mov     r12d,ebx
-        movdqa  xmm7,xmm0
-        ror     r14d,9
-        xor     r13d,eax
-        xor     r12d,ecx
-        ror     r13d,5
-        xor     r14d,r8d
-DB      102,15,58,15,225,4
-        and     r12d,eax
-        xor     r13d,eax
-DB      102,15,58,15,251,4
-        add     edx,DWORD[16+rsp]
-        mov     r15d,r8d
-        xor     r12d,ecx
-        ror     r14d,11
-        movdqa  xmm5,xmm4
-        xor     r15d,r9d
-        add     edx,r12d
-        movdqa  xmm6,xmm4
-        ror     r13d,6
-        and     edi,r15d
-        psrld   xmm4,3
-        xor     r14d,r8d
-        add     edx,r13d
-        xor     edi,r9d
-        paddd   xmm1,xmm7
-        ror     r14d,2
-        add     r11d,edx
-        psrld   xmm6,7
-        add     edx,edi
-        mov     r13d,r11d
-        pshufd  xmm7,xmm0,250
-        add     r14d,edx
-        ror     r13d,14
-        pslld   xmm5,14
-        mov     edx,r14d
-        mov     r12d,eax
-        pxor    xmm4,xmm6
-        ror     r14d,9
-        xor     r13d,r11d
-        xor     r12d,ebx
-        ror     r13d,5
-        psrld   xmm6,11
-        xor     r14d,edx
-        pxor    xmm4,xmm5
-        and     r12d,r11d
-        xor     r13d,r11d
-        pslld   xmm5,11
-        add     ecx,DWORD[20+rsp]
-        mov     edi,edx
-        pxor    xmm4,xmm6
-        xor     r12d,ebx
-        ror     r14d,11
-        movdqa  xmm6,xmm7
-        xor     edi,r8d
-        add     ecx,r12d
-        pxor    xmm4,xmm5
-        ror     r13d,6
-        and     r15d,edi
-        xor     r14d,edx
-        psrld   xmm7,10
-        add     ecx,r13d
-        xor     r15d,r8d
-        paddd   xmm1,xmm4
-        ror     r14d,2
-        add     r10d,ecx
-        psrlq   xmm6,17
-        add     ecx,r15d
-        mov     r13d,r10d
-        add     r14d,ecx
-        pxor    xmm7,xmm6
-        ror     r13d,14
-        mov     ecx,r14d
-        mov     r12d,r11d
-        ror     r14d,9
-        psrlq   xmm6,2
-        xor     r13d,r10d
-        xor     r12d,eax
-        pxor    xmm7,xmm6
-        ror     r13d,5
-        xor     r14d,ecx
-        and     r12d,r10d
-        pshufd  xmm7,xmm7,128
-        xor     r13d,r10d
-        add     ebx,DWORD[24+rsp]
-        mov     r15d,ecx
-        psrldq  xmm7,8
-        xor     r12d,eax
-        ror     r14d,11
-        xor     r15d,edx
-        add     ebx,r12d
-        ror     r13d,6
-        paddd   xmm1,xmm7
-        and     edi,r15d
-        xor     r14d,ecx
-        add     ebx,r13d
-        pshufd  xmm7,xmm1,80
-        xor     edi,edx
-        ror     r14d,2
-        add     r9d,ebx
-        movdqa  xmm6,xmm7
-        add     ebx,edi
-        mov     r13d,r9d
-        psrld   xmm7,10
-        add     r14d,ebx
-        ror     r13d,14
-        psrlq   xmm6,17
-        mov     ebx,r14d
-        mov     r12d,r10d
-        pxor    xmm7,xmm6
-        ror     r14d,9
-        xor     r13d,r9d
-        xor     r12d,r11d
-        ror     r13d,5
-        xor     r14d,ebx
-        psrlq   xmm6,2
-        and     r12d,r9d
-        xor     r13d,r9d
-        add     eax,DWORD[28+rsp]
-        pxor    xmm7,xmm6
-        mov     edi,ebx
-        xor     r12d,r11d
-        ror     r14d,11
-        pshufd  xmm7,xmm7,8
-        xor     edi,ecx
-        add     eax,r12d
-        movdqa  xmm6,XMMWORD[32+rbp]
-        ror     r13d,6
-        and     r15d,edi
-        pslldq  xmm7,8
-        xor     r14d,ebx
-        add     eax,r13d
-        xor     r15d,ecx
-        paddd   xmm1,xmm7
-        ror     r14d,2
-        add     r8d,eax
-        add     eax,r15d
-        paddd   xmm6,xmm1
-        mov     r13d,r8d
-        add     r14d,eax
-        movdqa  XMMWORD[16+rsp],xmm6
-        ror     r13d,14
-        movdqa  xmm4,xmm3
-        mov     eax,r14d
-        mov     r12d,r9d
-        movdqa  xmm7,xmm1
-        ror     r14d,9
-        xor     r13d,r8d
-        xor     r12d,r10d
-        ror     r13d,5
-        xor     r14d,eax
-DB      102,15,58,15,226,4
-        and     r12d,r8d
-        xor     r13d,r8d
-DB      102,15,58,15,248,4
-        add     r11d,DWORD[32+rsp]
-        mov     r15d,eax
-        xor     r12d,r10d
-        ror     r14d,11
-        movdqa  xmm5,xmm4
-        xor     r15d,ebx
-        add     r11d,r12d
-        movdqa  xmm6,xmm4
-        ror     r13d,6
-        and     edi,r15d
-        psrld   xmm4,3
-        xor     r14d,eax
-        add     r11d,r13d
-        xor     edi,ebx
-        paddd   xmm2,xmm7
-        ror     r14d,2
-        add     edx,r11d
-        psrld   xmm6,7
-        add     r11d,edi
-        mov     r13d,edx
-        pshufd  xmm7,xmm1,250
-        add     r14d,r11d
-        ror     r13d,14
-        pslld   xmm5,14
-        mov     r11d,r14d
-        mov     r12d,r8d
-        pxor    xmm4,xmm6
-        ror     r14d,9
-        xor     r13d,edx
-        xor     r12d,r9d
-        ror     r13d,5
-        psrld   xmm6,11
-        xor     r14d,r11d
-        pxor    xmm4,xmm5
-        and     r12d,edx
-        xor     r13d,edx
-        pslld   xmm5,11
-        add     r10d,DWORD[36+rsp]
-        mov     edi,r11d
-        pxor    xmm4,xmm6
-        xor     r12d,r9d
-        ror     r14d,11
-        movdqa  xmm6,xmm7
-        xor     edi,eax
-        add     r10d,r12d
-        pxor    xmm4,xmm5
-        ror     r13d,6
-        and     r15d,edi
-        xor     r14d,r11d
-        psrld   xmm7,10
-        add     r10d,r13d
-        xor     r15d,eax
-        paddd   xmm2,xmm4
-        ror     r14d,2
-        add     ecx,r10d
-        psrlq   xmm6,17
-        add     r10d,r15d
-        mov     r13d,ecx
-        add     r14d,r10d
-        pxor    xmm7,xmm6
-        ror     r13d,14
-        mov     r10d,r14d
-        mov     r12d,edx
-        ror     r14d,9
-        psrlq   xmm6,2
-        xor     r13d,ecx
-        xor     r12d,r8d
-        pxor    xmm7,xmm6
-        ror     r13d,5
-        xor     r14d,r10d
-        and     r12d,ecx
-        pshufd  xmm7,xmm7,128
-        xor     r13d,ecx
-        add     r9d,DWORD[40+rsp]
-        mov     r15d,r10d
-        psrldq  xmm7,8
-        xor     r12d,r8d
-        ror     r14d,11
-        xor     r15d,r11d
-        add     r9d,r12d
-        ror     r13d,6
-        paddd   xmm2,xmm7
-        and     edi,r15d
-        xor     r14d,r10d
-        add     r9d,r13d
-        pshufd  xmm7,xmm2,80
-        xor     edi,r11d
-        ror     r14d,2
-        add     ebx,r9d
-        movdqa  xmm6,xmm7
-        add     r9d,edi
-        mov     r13d,ebx
-        psrld   xmm7,10
-        add     r14d,r9d
-        ror     r13d,14
-        psrlq   xmm6,17
-        mov     r9d,r14d
-        mov     r12d,ecx
-        pxor    xmm7,xmm6
-        ror     r14d,9
-        xor     r13d,ebx
-        xor     r12d,edx
-        ror     r13d,5
-        xor     r14d,r9d
-        psrlq   xmm6,2
-        and     r12d,ebx
-        xor     r13d,ebx
-        add     r8d,DWORD[44+rsp]
-        pxor    xmm7,xmm6
-        mov     edi,r9d
-        xor     r12d,edx
-        ror     r14d,11
-        pshufd  xmm7,xmm7,8
-        xor     edi,r10d
-        add     r8d,r12d
-        movdqa  xmm6,XMMWORD[64+rbp]
-        ror     r13d,6
-        and     r15d,edi
-        pslldq  xmm7,8
-        xor     r14d,r9d
-        add     r8d,r13d
-        xor     r15d,r10d
-        paddd   xmm2,xmm7
-        ror     r14d,2
-        add     eax,r8d
-        add     r8d,r15d
-        paddd   xmm6,xmm2
-        mov     r13d,eax
-        add     r14d,r8d
-        movdqa  XMMWORD[32+rsp],xmm6
-        ror     r13d,14
-        movdqa  xmm4,xmm0
-        mov     r8d,r14d
-        mov     r12d,ebx
-        movdqa  xmm7,xmm2
-        ror     r14d,9
-        xor     r13d,eax
-        xor     r12d,ecx
-        ror     r13d,5
-        xor     r14d,r8d
-DB      102,15,58,15,227,4
-        and     r12d,eax
-        xor     r13d,eax
-DB      102,15,58,15,249,4
-        add     edx,DWORD[48+rsp]
-        mov     r15d,r8d
-        xor     r12d,ecx
-        ror     r14d,11
-        movdqa  xmm5,xmm4
-        xor     r15d,r9d
-        add     edx,r12d
-        movdqa  xmm6,xmm4
-        ror     r13d,6
-        and     edi,r15d
-        psrld   xmm4,3
-        xor     r14d,r8d
-        add     edx,r13d
-        xor     edi,r9d
-        paddd   xmm3,xmm7
-        ror     r14d,2
-        add     r11d,edx
-        psrld   xmm6,7
-        add     edx,edi
-        mov     r13d,r11d
-        pshufd  xmm7,xmm2,250
-        add     r14d,edx
-        ror     r13d,14
-        pslld   xmm5,14
-        mov     edx,r14d
-        mov     r12d,eax
-        pxor    xmm4,xmm6
-        ror     r14d,9
-        xor     r13d,r11d
-        xor     r12d,ebx
-        ror     r13d,5
-        psrld   xmm6,11
-        xor     r14d,edx
-        pxor    xmm4,xmm5
-        and     r12d,r11d
-        xor     r13d,r11d
-        pslld   xmm5,11
-        add     ecx,DWORD[52+rsp]
-        mov     edi,edx
-        pxor    xmm4,xmm6
-        xor     r12d,ebx
-        ror     r14d,11
-        movdqa  xmm6,xmm7
-        xor     edi,r8d
-        add     ecx,r12d
-        pxor    xmm4,xmm5
-        ror     r13d,6
-        and     r15d,edi
-        xor     r14d,edx
-        psrld   xmm7,10
-        add     ecx,r13d
-        xor     r15d,r8d
-        paddd   xmm3,xmm4
-        ror     r14d,2
-        add     r10d,ecx
-        psrlq   xmm6,17
-        add     ecx,r15d
-        mov     r13d,r10d
-        add     r14d,ecx
-        pxor    xmm7,xmm6
-        ror     r13d,14
-        mov     ecx,r14d
-        mov     r12d,r11d
-        ror     r14d,9
-        psrlq   xmm6,2
-        xor     r13d,r10d
-        xor     r12d,eax
-        pxor    xmm7,xmm6
-        ror     r13d,5
-        xor     r14d,ecx
-        and     r12d,r10d
-        pshufd  xmm7,xmm7,128
-        xor     r13d,r10d
-        add     ebx,DWORD[56+rsp]
-        mov     r15d,ecx
-        psrldq  xmm7,8
-        xor     r12d,eax
-        ror     r14d,11
-        xor     r15d,edx
-        add     ebx,r12d
-        ror     r13d,6
-        paddd   xmm3,xmm7
-        and     edi,r15d
-        xor     r14d,ecx
-        add     ebx,r13d
-        pshufd  xmm7,xmm3,80
-        xor     edi,edx
-        ror     r14d,2
-        add     r9d,ebx
-        movdqa  xmm6,xmm7
-        add     ebx,edi
-        mov     r13d,r9d
-        psrld   xmm7,10
-        add     r14d,ebx
-        ror     r13d,14
-        psrlq   xmm6,17
-        mov     ebx,r14d
-        mov     r12d,r10d
-        pxor    xmm7,xmm6
-        ror     r14d,9
-        xor     r13d,r9d
-        xor     r12d,r11d
-        ror     r13d,5
-        xor     r14d,ebx
-        psrlq   xmm6,2
-        and     r12d,r9d
-        xor     r13d,r9d
-        add     eax,DWORD[60+rsp]
-        pxor    xmm7,xmm6
-        mov     edi,ebx
-        xor     r12d,r11d
-        ror     r14d,11
-        pshufd  xmm7,xmm7,8
-        xor     edi,ecx
-        add     eax,r12d
-        movdqa  xmm6,XMMWORD[96+rbp]
-        ror     r13d,6
-        and     r15d,edi
-        pslldq  xmm7,8
-        xor     r14d,ebx
-        add     eax,r13d
-        xor     r15d,ecx
-        paddd   xmm3,xmm7
-        ror     r14d,2
-        add     r8d,eax
-        add     eax,r15d
-        paddd   xmm6,xmm3
-        mov     r13d,r8d
-        add     r14d,eax
-        movdqa  XMMWORD[48+rsp],xmm6
-        cmp     BYTE[131+rbp],0
-        jne     NEAR $L$ssse3_00_47
-        ror     r13d,14
-        mov     eax,r14d
-        mov     r12d,r9d
-        ror     r14d,9
-        xor     r13d,r8d
-        xor     r12d,r10d
-        ror     r13d,5
-        xor     r14d,eax
-        and     r12d,r8d
-        xor     r13d,r8d
-        add     r11d,DWORD[rsp]
-        mov     r15d,eax
-        xor     r12d,r10d
-        ror     r14d,11
-        xor     r15d,ebx
-        add     r11d,r12d
-        ror     r13d,6
-        and     edi,r15d
-        xor     r14d,eax
-        add     r11d,r13d
-        xor     edi,ebx
-        ror     r14d,2
-        add     edx,r11d
-        add     r11d,edi
-        mov     r13d,edx
-        add     r14d,r11d
-        ror     r13d,14
-        mov     r11d,r14d
-        mov     r12d,r8d
-        ror     r14d,9
-        xor     r13d,edx
-        xor     r12d,r9d
-        ror     r13d,5
-        xor     r14d,r11d
-        and     r12d,edx
-        xor     r13d,edx
-        add     r10d,DWORD[4+rsp]
-        mov     edi,r11d
-        xor     r12d,r9d
-        ror     r14d,11
-        xor     edi,eax
-        add     r10d,r12d
-        ror     r13d,6
-        and     r15d,edi
-        xor     r14d,r11d
-        add     r10d,r13d
-        xor     r15d,eax
-        ror     r14d,2
-        add     ecx,r10d
-        add     r10d,r15d
-        mov     r13d,ecx
-        add     r14d,r10d
-        ror     r13d,14
-        mov     r10d,r14d
-        mov     r12d,edx
-        ror     r14d,9
-        xor     r13d,ecx
-        xor     r12d,r8d
-        ror     r13d,5
-        xor     r14d,r10d
-        and     r12d,ecx
-        xor     r13d,ecx
-        add     r9d,DWORD[8+rsp]
-        mov     r15d,r10d
-        xor     r12d,r8d
-        ror     r14d,11
-        xor     r15d,r11d
-        add     r9d,r12d
-        ror     r13d,6
-        and     edi,r15d
-        xor     r14d,r10d
-        add     r9d,r13d
-        xor     edi,r11d
-        ror     r14d,2
-        add     ebx,r9d
-        add     r9d,edi
-        mov     r13d,ebx
-        add     r14d,r9d
-        ror     r13d,14
-        mov     r9d,r14d
-        mov     r12d,ecx
-        ror     r14d,9
-        xor     r13d,ebx
-        xor     r12d,edx
-        ror     r13d,5
-        xor     r14d,r9d
-        and     r12d,ebx
-        xor     r13d,ebx
-        add     r8d,DWORD[12+rsp]
-        mov     edi,r9d
-        xor     r12d,edx
-        ror     r14d,11
-        xor     edi,r10d
-        add     r8d,r12d
-        ror     r13d,6
-        and     r15d,edi
-        xor     r14d,r9d
-        add     r8d,r13d
-        xor     r15d,r10d
-        ror     r14d,2
-        add     eax,r8d
-        add     r8d,r15d
-        mov     r13d,eax
-        add     r14d,r8d
-        ror     r13d,14
-        mov     r8d,r14d
-        mov     r12d,ebx
-        ror     r14d,9
-        xor     r13d,eax
-        xor     r12d,ecx
-        ror     r13d,5
-        xor     r14d,r8d
-        and     r12d,eax
-        xor     r13d,eax
-        add     edx,DWORD[16+rsp]
-        mov     r15d,r8d
-        xor     r12d,ecx
-        ror     r14d,11
-        xor     r15d,r9d
-        add     edx,r12d
-        ror     r13d,6
-        and     edi,r15d
-        xor     r14d,r8d
-        add     edx,r13d
-        xor     edi,r9d
-        ror     r14d,2
-        add     r11d,edx
-        add     edx,edi
-        mov     r13d,r11d
-        add     r14d,edx
-        ror     r13d,14
-        mov     edx,r14d
-        mov     r12d,eax
-        ror     r14d,9
-        xor     r13d,r11d
-        xor     r12d,ebx
-        ror     r13d,5
-        xor     r14d,edx
-        and     r12d,r11d
-        xor     r13d,r11d
-        add     ecx,DWORD[20+rsp]
-        mov     edi,edx
-        xor     r12d,ebx
-        ror     r14d,11
-        xor     edi,r8d
-        add     ecx,r12d
-        ror     r13d,6
-        and     r15d,edi
-        xor     r14d,edx
-        add     ecx,r13d
-        xor     r15d,r8d
-        ror     r14d,2
-        add     r10d,ecx
-        add     ecx,r15d
-        mov     r13d,r10d
-        add     r14d,ecx
-        ror     r13d,14
-        mov     ecx,r14d
-        mov     r12d,r11d
-        ror     r14d,9
-        xor     r13d,r10d
-        xor     r12d,eax
-        ror     r13d,5
-        xor     r14d,ecx
-        and     r12d,r10d
-        xor     r13d,r10d
-        add     ebx,DWORD[24+rsp]
-        mov     r15d,ecx
-        xor     r12d,eax
-        ror     r14d,11
-        xor     r15d,edx
-        add     ebx,r12d
-        ror     r13d,6
-        and     edi,r15d
-        xor     r14d,ecx
-        add     ebx,r13d
-        xor     edi,edx
-        ror     r14d,2
-        add     r9d,ebx
-        add     ebx,edi
-        mov     r13d,r9d
-        add     r14d,ebx
-        ror     r13d,14
-        mov     ebx,r14d
-        mov     r12d,r10d
-        ror     r14d,9
-        xor     r13d,r9d
-        xor     r12d,r11d
-        ror     r13d,5
-        xor     r14d,ebx
-        and     r12d,r9d
-        xor     r13d,r9d
-        add     eax,DWORD[28+rsp]
-        mov     edi,ebx
-        xor     r12d,r11d
-        ror     r14d,11
-        xor     edi,ecx
-        add     eax,r12d
-        ror     r13d,6
-        and     r15d,edi
-        xor     r14d,ebx
-        add     eax,r13d
-        xor     r15d,ecx
-        ror     r14d,2
-        add     r8d,eax
-        add     eax,r15d
-        mov     r13d,r8d
-        add     r14d,eax
-        ror     r13d,14
-        mov     eax,r14d
-        mov     r12d,r9d
-        ror     r14d,9
-        xor     r13d,r8d
-        xor     r12d,r10d
-        ror     r13d,5
-        xor     r14d,eax
-        and     r12d,r8d
-        xor     r13d,r8d
-        add     r11d,DWORD[32+rsp]
-        mov     r15d,eax
-        xor     r12d,r10d
-        ror     r14d,11
-        xor     r15d,ebx
-        add     r11d,r12d
-        ror     r13d,6
-        and     edi,r15d
-        xor     r14d,eax
-        add     r11d,r13d
-        xor     edi,ebx
-        ror     r14d,2
-        add     edx,r11d
-        add     r11d,edi
-        mov     r13d,edx
-        add     r14d,r11d
-        ror     r13d,14
-        mov     r11d,r14d
-        mov     r12d,r8d
-        ror     r14d,9
-        xor     r13d,edx
-        xor     r12d,r9d
-        ror     r13d,5
-        xor     r14d,r11d
-        and     r12d,edx
-        xor     r13d,edx
-        add     r10d,DWORD[36+rsp]
-        mov     edi,r11d
-        xor     r12d,r9d
-        ror     r14d,11
-        xor     edi,eax
-        add     r10d,r12d
-        ror     r13d,6
-        and     r15d,edi
-        xor     r14d,r11d
-        add     r10d,r13d
-        xor     r15d,eax
-        ror     r14d,2
-        add     ecx,r10d
-        add     r10d,r15d
-        mov     r13d,ecx
-        add     r14d,r10d
-        ror     r13d,14
-        mov     r10d,r14d
-        mov     r12d,edx
-        ror     r14d,9
-        xor     r13d,ecx
-        xor     r12d,r8d
-        ror     r13d,5
-        xor     r14d,r10d
-        and     r12d,ecx
-        xor     r13d,ecx
-        add     r9d,DWORD[40+rsp]
-        mov     r15d,r10d
-        xor     r12d,r8d
-        ror     r14d,11
-        xor     r15d,r11d
-        add     r9d,r12d
-        ror     r13d,6
-        and     edi,r15d
-        xor     r14d,r10d
-        add     r9d,r13d
-        xor     edi,r11d
-        ror     r14d,2
-        add     ebx,r9d
-        add     r9d,edi
-        mov     r13d,ebx
-        add     r14d,r9d
-        ror     r13d,14
-        mov     r9d,r14d
-        mov     r12d,ecx
-        ror     r14d,9
-        xor     r13d,ebx
-        xor     r12d,edx
-        ror     r13d,5
-        xor     r14d,r9d
-        and     r12d,ebx
-        xor     r13d,ebx
-        add     r8d,DWORD[44+rsp]
-        mov     edi,r9d
-        xor     r12d,edx
-        ror     r14d,11
-        xor     edi,r10d
-        add     r8d,r12d
-        ror     r13d,6
-        and     r15d,edi
-        xor     r14d,r9d
-        add     r8d,r13d
-        xor     r15d,r10d
-        ror     r14d,2
-        add     eax,r8d
-        add     r8d,r15d
-        mov     r13d,eax
-        add     r14d,r8d
-        ror     r13d,14
-        mov     r8d,r14d
-        mov     r12d,ebx
-        ror     r14d,9
-        xor     r13d,eax
-        xor     r12d,ecx
-        ror     r13d,5
-        xor     r14d,r8d
-        and     r12d,eax
-        xor     r13d,eax
-        add     edx,DWORD[48+rsp]
-        mov     r15d,r8d
-        xor     r12d,ecx
-        ror     r14d,11
-        xor     r15d,r9d
-        add     edx,r12d
-        ror     r13d,6
-        and     edi,r15d
-        xor     r14d,r8d
-        add     edx,r13d
-        xor     edi,r9d
-        ror     r14d,2
-        add     r11d,edx
-        add     edx,edi
-        mov     r13d,r11d
-        add     r14d,edx
-        ror     r13d,14
-        mov     edx,r14d
-        mov     r12d,eax
-        ror     r14d,9
-        xor     r13d,r11d
-        xor     r12d,ebx
-        ror     r13d,5
-        xor     r14d,edx
-        and     r12d,r11d
-        xor     r13d,r11d
-        add     ecx,DWORD[52+rsp]
-        mov     edi,edx
-        xor     r12d,ebx
-        ror     r14d,11
-        xor     edi,r8d
-        add     ecx,r12d
-        ror     r13d,6
-        and     r15d,edi
-        xor     r14d,edx
-        add     ecx,r13d
-        xor     r15d,r8d
-        ror     r14d,2
-        add     r10d,ecx
-        add     ecx,r15d
-        mov     r13d,r10d
-        add     r14d,ecx
-        ror     r13d,14
-        mov     ecx,r14d
-        mov     r12d,r11d
-        ror     r14d,9
-        xor     r13d,r10d
-        xor     r12d,eax
-        ror     r13d,5
-        xor     r14d,ecx
-        and     r12d,r10d
-        xor     r13d,r10d
-        add     ebx,DWORD[56+rsp]
-        mov     r15d,ecx
-        xor     r12d,eax
-        ror     r14d,11
-        xor     r15d,edx
-        add     ebx,r12d
-        ror     r13d,6
-        and     edi,r15d
-        xor     r14d,ecx
-        add     ebx,r13d
-        xor     edi,edx
-        ror     r14d,2
-        add     r9d,ebx
-        add     ebx,edi
-        mov     r13d,r9d
-        add     r14d,ebx
-        ror     r13d,14
-        mov     ebx,r14d
-        mov     r12d,r10d
-        ror     r14d,9
-        xor     r13d,r9d
-        xor     r12d,r11d
-        ror     r13d,5
-        xor     r14d,ebx
-        and     r12d,r9d
-        xor     r13d,r9d
-        add     eax,DWORD[60+rsp]
-        mov     edi,ebx
-        xor     r12d,r11d
-        ror     r14d,11
-        xor     edi,ecx
-        add     eax,r12d
-        ror     r13d,6
-        and     r15d,edi
-        xor     r14d,ebx
-        add     eax,r13d
-        xor     r15d,ecx
-        ror     r14d,2
-        add     r8d,eax
-        add     eax,r15d
-        mov     r13d,r8d
-        add     r14d,eax
-        mov     rdi,QWORD[((64+0))+rsp]
-        mov     eax,r14d
-
-        add     eax,DWORD[rdi]
-        lea     rsi,[64+rsi]
-        add     ebx,DWORD[4+rdi]
-        add     ecx,DWORD[8+rdi]
-        add     edx,DWORD[12+rdi]
-        add     r8d,DWORD[16+rdi]
-        add     r9d,DWORD[20+rdi]
-        add     r10d,DWORD[24+rdi]
-        add     r11d,DWORD[28+rdi]
-
-        cmp     rsi,QWORD[((64+16))+rsp]
-
-        mov     DWORD[rdi],eax
-        mov     DWORD[4+rdi],ebx
-        mov     DWORD[8+rdi],ecx
-        mov     DWORD[12+rdi],edx
-        mov     DWORD[16+rdi],r8d
-        mov     DWORD[20+rdi],r9d
-        mov     DWORD[24+rdi],r10d
-        mov     DWORD[28+rdi],r11d
-        jb      NEAR $L$loop_ssse3
-
-        mov     rsi,QWORD[88+rsp]
-
-        movaps  xmm6,XMMWORD[((64+32))+rsp]
-        movaps  xmm7,XMMWORD[((64+48))+rsp]
-        movaps  xmm8,XMMWORD[((64+64))+rsp]
-        movaps  xmm9,XMMWORD[((64+80))+rsp]
-        mov     r15,QWORD[((-48))+rsi]
-
-        mov     r14,QWORD[((-40))+rsi]
-
-        mov     r13,QWORD[((-32))+rsi]
-
-        mov     r12,QWORD[((-24))+rsi]
-
-        mov     rbp,QWORD[((-16))+rsi]
-
-        mov     rbx,QWORD[((-8))+rsi]
-
-        lea     rsp,[rsi]
-
-$L$epilogue_ssse3:
-        mov     rdi,QWORD[8+rsp]        ;WIN64 epilogue
-        mov     rsi,QWORD[16+rsp]
-        DB      0F3h,0C3h               ;repret
-
-$L$SEH_end_sha256_block_data_order_ssse3:
-EXTERN  __imp_RtlVirtualUnwind
-
-ALIGN   16
-se_handler:
-        push    rsi
-        push    rdi
-        push    rbx
-        push    rbp
-        push    r12
-        push    r13
-        push    r14
-        push    r15
-        pushfq
-        sub     rsp,64
-
-        mov     rax,QWORD[120+r8]
-        mov     rbx,QWORD[248+r8]
-
-        mov     rsi,QWORD[8+r9]
-        mov     r11,QWORD[56+r9]
-
-        mov     r10d,DWORD[r11]
-        lea     r10,[r10*1+rsi]
-        cmp     rbx,r10
-        jb      NEAR $L$in_prologue
-
-        mov     rax,QWORD[152+r8]
-
-        mov     r10d,DWORD[4+r11]
-        lea     r10,[r10*1+rsi]
-        cmp     rbx,r10
-        jae     NEAR $L$in_prologue
-        mov     rsi,rax
-        mov     rax,QWORD[((64+24))+rax]
-
-        mov     rbx,QWORD[((-8))+rax]
-        mov     rbp,QWORD[((-16))+rax]
-        mov     r12,QWORD[((-24))+rax]
-        mov     r13,QWORD[((-32))+rax]
-        mov     r14,QWORD[((-40))+rax]
-        mov     r15,QWORD[((-48))+rax]
-        mov     QWORD[144+r8],rbx
-        mov     QWORD[160+r8],rbp
-        mov     QWORD[216+r8],r12
-        mov     QWORD[224+r8],r13
-        mov     QWORD[232+r8],r14
-        mov     QWORD[240+r8],r15
-
-        lea     r10,[$L$epilogue]
-        cmp     rbx,r10
-        jb      NEAR $L$in_prologue
-
-        lea     rsi,[((64+32))+rsi]
-        lea     rdi,[512+r8]
-        mov     ecx,8
-        DD      0xa548f3fc
-
-$L$in_prologue:
-        mov     rdi,QWORD[8+rax]
-        mov     rsi,QWORD[16+rax]
-        mov     QWORD[152+r8],rax
-        mov     QWORD[168+r8],rsi
-        mov     QWORD[176+r8],rdi
-
-        mov     rdi,QWORD[40+r9]
-        mov     rsi,r8
-        mov     ecx,154
-        DD      0xa548f3fc
-
-        mov     rsi,r9
-        xor     rcx,rcx
-        mov     rdx,QWORD[8+rsi]
-        mov     r8,QWORD[rsi]
-        mov     r9,QWORD[16+rsi]
-        mov     r10,QWORD[40+rsi]
-        lea     r11,[56+rsi]
-        lea     r12,[24+rsi]
-        mov     QWORD[32+rsp],r10
-        mov     QWORD[40+rsp],r11
-        mov     QWORD[48+rsp],r12
-        mov     QWORD[56+rsp],rcx
-        call    QWORD[__imp_RtlVirtualUnwind]
-
-        mov     eax,1
-        add     rsp,64
-        popfq
-        pop     r15
-        pop     r14
-        pop     r13
-        pop     r12
-        pop     rbp
-        pop     rbx
-        pop     rdi
-        pop     rsi
-        DB      0F3h,0C3h               ;repret
-
-
-ALIGN   16
-shaext_handler:
-        push    rsi
-        push    rdi
-        push    rbx
-        push    rbp
-        push    r12
-        push    r13
-        push    r14
-        push    r15
-        pushfq
-        sub     rsp,64
-
-        mov     rax,QWORD[120+r8]
-        mov     rbx,QWORD[248+r8]
-
-        lea     r10,[$L$prologue_shaext]
-        cmp     rbx,r10
-        jb      NEAR $L$in_prologue
-
-        lea     r10,[$L$epilogue_shaext]
-        cmp     rbx,r10
-        jae     NEAR $L$in_prologue
-
-        lea     rsi,[((-8-80))+rax]
-        lea     rdi,[512+r8]
-        mov     ecx,10
-        DD      0xa548f3fc
-
-        jmp     NEAR $L$in_prologue
-
-section .pdata rdata align=4
-ALIGN   4
-        DD      $L$SEH_begin_sha256_block_data_order wrt ..imagebase
-        DD      $L$SEH_end_sha256_block_data_order wrt ..imagebase
-        DD      $L$SEH_info_sha256_block_data_order wrt ..imagebase
-        DD      $L$SEH_begin_sha256_block_data_order_shaext wrt ..imagebase
-        DD      $L$SEH_end_sha256_block_data_order_shaext wrt ..imagebase
-        DD      $L$SEH_info_sha256_block_data_order_shaext wrt ..imagebase
-        DD      $L$SEH_begin_sha256_block_data_order_ssse3 wrt ..imagebase
-        DD      $L$SEH_end_sha256_block_data_order_ssse3 wrt ..imagebase
-        DD      $L$SEH_info_sha256_block_data_order_ssse3 wrt ..imagebase
-section .xdata rdata align=8
-ALIGN   8
-$L$SEH_info_sha256_block_data_order:
-DB      9,0,0,0
-        DD      se_handler wrt ..imagebase
-        DD      $L$prologue wrt ..imagebase,$L$epilogue wrt ..imagebase
-$L$SEH_info_sha256_block_data_order_shaext:
-DB      9,0,0,0
-        DD      shaext_handler wrt ..imagebase
-$L$SEH_info_sha256_block_data_order_ssse3:
-DB      9,0,0,0
-        DD      se_handler wrt ..imagebase
-        DD      $L$prologue_ssse3 wrt ..imagebase,$L$epilogue_ssse3 wrt ..imagebase
diff --git a/CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha512-x86_64.nasm b/CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha512-x86_64.nasm
deleted file mode 100644
index c6397d439324..000000000000
--- a/CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha512-x86_64.nasm
+++ /dev/null
@@ -1,1938 +0,0 @@
-; WARNING: do not edit!
-; Generated from openssl/crypto/sha/asm/sha512-x86_64.pl
-;
-; Copyright 2005-2020 The OpenSSL Project Authors. All Rights Reserved.
-;
-; Licensed under the OpenSSL license (the "License").  You may not use
-; this file except in compliance with the License.  You can obtain a copy
-; in the file LICENSE in the source distribution or at
-; https://www.openssl.org/source/license.html
-
-default rel
-%define XMMWORD
-%define YMMWORD
-%define ZMMWORD
-section .text code align=64
-
-
-EXTERN  OPENSSL_ia32cap_P
-global  sha512_block_data_order
-
-ALIGN   16
-sha512_block_data_order:
-        mov     QWORD[8+rsp],rdi        ;WIN64 prologue
-        mov     QWORD[16+rsp],rsi
-        mov     rax,rsp
-$L$SEH_begin_sha512_block_data_order:
-        mov     rdi,rcx
-        mov     rsi,rdx
-        mov     rdx,r8
-
-
-
-        mov     rax,rsp
-
-        push    rbx
-
-        push    rbp
-
-        push    r12
-
-        push    r13
-
-        push    r14
-
-        push    r15
-
-        shl     rdx,4
-        sub     rsp,16*8+4*8
-        lea     rdx,[rdx*8+rsi]
-        and     rsp,-64
-        mov     QWORD[((128+0))+rsp],rdi
-        mov     QWORD[((128+8))+rsp],rsi
-        mov     QWORD[((128+16))+rsp],rdx
-        mov     QWORD[152+rsp],rax
-
-$L$prologue:
-
-        mov     rax,QWORD[rdi]
-        mov     rbx,QWORD[8+rdi]
-        mov     rcx,QWORD[16+rdi]
-        mov     rdx,QWORD[24+rdi]
-        mov     r8,QWORD[32+rdi]
-        mov     r9,QWORD[40+rdi]
-        mov     r10,QWORD[48+rdi]
-        mov     r11,QWORD[56+rdi]
-        jmp     NEAR $L$loop
-
-ALIGN   16
-$L$loop:
-        mov     rdi,rbx
-        lea     rbp,[K512]
-        xor     rdi,rcx
-        mov     r12,QWORD[rsi]
-        mov     r13,r8
-        mov     r14,rax
-        bswap   r12
-        ror     r13,23
-        mov     r15,r9
-
-        xor     r13,r8
-        ror     r14,5
-        xor     r15,r10
-
-        mov     QWORD[rsp],r12
-        xor     r14,rax
-        and     r15,r8
-
-        ror     r13,4
-        add     r12,r11
-        xor     r15,r10
-
-        ror     r14,6
-        xor     r13,r8
-        add     r12,r15
-
-        mov     r15,rax
-        add     r12,QWORD[rbp]
-        xor     r14,rax
-
-        xor     r15,rbx
-        ror     r13,14
-        mov     r11,rbx
-
-        and     rdi,r15
-        ror     r14,28
-        add     r12,r13
-
-        xor     r11,rdi
-        add     rdx,r12
-        add     r11,r12
-
-        lea     rbp,[8+rbp]
-        add     r11,r14
-        mov     r12,QWORD[8+rsi]
-        mov     r13,rdx
-        mov     r14,r11
-        bswap   r12
-        ror     r13,23
-        mov     rdi,r8
-
-        xor     r13,rdx
-        ror     r14,5
-        xor     rdi,r9
-
-        mov     QWORD[8+rsp],r12
-        xor     r14,r11
-        and     rdi,rdx
-
-        ror     r13,4
-        add     r12,r10
-        xor     rdi,r9
-
-        ror     r14,6
-        xor     r13,rdx
-        add     r12,rdi
-
-        mov     rdi,r11
-        add     r12,QWORD[rbp]
-        xor     r14,r11
-
-        xor     rdi,rax
-        ror     r13,14
-        mov     r10,rax
-
-        and     r15,rdi
-        ror     r14,28
-        add     r12,r13
-
-        xor     r10,r15
-        add     rcx,r12
-        add     r10,r12
-
-        lea     rbp,[24+rbp]
-        add     r10,r14
-        mov     r12,QWORD[16+rsi]
-        mov     r13,rcx
-        mov     r14,r10
-        bswap   r12
-        ror     r13,23
-        mov     r15,rdx
-
-        xor     r13,rcx
-        ror     r14,5
-        xor     r15,r8
-
-        mov     QWORD[16+rsp],r12
-        xor     r14,r10
-        and     r15,rcx
-
-        ror     r13,4
-        add     r12,r9
-        xor     r15,r8
-
-        ror     r14,6
-        xor     r13,rcx
-        add     r12,r15
-
-        mov     r15,r10
-        add     r12,QWORD[rbp]
-        xor     r14,r10
-
-        xor     r15,r11
-        ror     r13,14
-        mov     r9,r11
-
-        and     rdi,r15
-        ror     r14,28
-        add     r12,r13
-
-        xor     r9,rdi
-        add     rbx,r12
-        add     r9,r12
-
-        lea     rbp,[8+rbp]
-        add     r9,r14
-        mov     r12,QWORD[24+rsi]
-        mov     r13,rbx
-        mov     r14,r9
-        bswap   r12
-        ror     r13,23
-        mov     rdi,rcx
-
-        xor     r13,rbx
-        ror     r14,5
-        xor     rdi,rdx
-
-        mov     QWORD[24+rsp],r12
-        xor     r14,r9
-        and     rdi,rbx
-
-        ror     r13,4
-        add     r12,r8
-        xor     rdi,rdx
-
-        ror     r14,6
-        xor     r13,rbx
-        add     r12,rdi
-
-        mov     rdi,r9
-        add     r12,QWORD[rbp]
-        xor     r14,r9
-
-        xor     rdi,r10
-        ror     r13,14
-        mov     r8,r10
-
-        and     r15,rdi
-        ror     r14,28
-        add     r12,r13
-
-        xor     r8,r15
-        add     rax,r12
-        add     r8,r12
-
-        lea     rbp,[24+rbp]
-        add     r8,r14
-        mov     r12,QWORD[32+rsi]
-        mov     r13,rax
-        mov     r14,r8
-        bswap   r12
-        ror     r13,23
-        mov     r15,rbx
-
-        xor     r13,rax
-        ror     r14,5
-        xor     r15,rcx
-
-        mov     QWORD[32+rsp],r12
-        xor     r14,r8
-        and     r15,rax
-
-        ror     r13,4
-        add     r12,rdx
-        xor     r15,rcx
-
-        ror     r14,6
-        xor     r13,rax
-        add     r12,r15
-
-        mov     r15,r8
-        add     r12,QWORD[rbp]
-        xor     r14,r8
-
-        xor     r15,r9
-        ror     r13,14
-        mov     rdx,r9
-
-        and     rdi,r15
-        ror     r14,28
-        add     r12,r13
-
-        xor     rdx,rdi
-        add     r11,r12
-        add     rdx,r12
-
-        lea     rbp,[8+rbp]
-        add     rdx,r14
-        mov     r12,QWORD[40+rsi]
-        mov     r13,r11
-        mov     r14,rdx
-        bswap   r12
-        ror     r13,23
-        mov     rdi,rax
-
-        xor     r13,r11
-        ror     r14,5
-        xor     rdi,rbx
-
-        mov     QWORD[40+rsp],r12
-        xor     r14,rdx
-        and     rdi,r11
-
-        ror     r13,4
-        add     r12,rcx
-        xor     rdi,rbx
-
-        ror     r14,6
-        xor     r13,r11
-        add     r12,rdi
-
-        mov     rdi,rdx
-        add     r12,QWORD[rbp]
-        xor     r14,rdx
-
-        xor     rdi,r8
-        ror     r13,14
-        mov     rcx,r8
-
-        and     r15,rdi
-        ror     r14,28
-        add     r12,r13
-
-        xor     rcx,r15
-        add     r10,r12
-        add     rcx,r12
-
-        lea     rbp,[24+rbp]
-        add     rcx,r14
-        mov     r12,QWORD[48+rsi]
-        mov     r13,r10
-        mov     r14,rcx
-        bswap   r12
-        ror     r13,23
-        mov     r15,r11
-
-        xor     r13,r10
-        ror     r14,5
-        xor     r15,rax
-
-        mov     QWORD[48+rsp],r12
-        xor     r14,rcx
-        and     r15,r10
-
-        ror     r13,4
-        add     r12,rbx
-        xor     r15,rax
-
-        ror     r14,6
-        xor     r13,r10
-        add     r12,r15
-
-        mov     r15,rcx
-        add     r12,QWORD[rbp]
-        xor     r14,rcx
-
-        xor     r15,rdx
-        ror     r13,14
-        mov     rbx,rdx
-
-        and     rdi,r15
-        ror     r14,28
-        add     r12,r13
-
-        xor     rbx,rdi
-        add     r9,r12
-        add     rbx,r12
-
-        lea     rbp,[8+rbp]
-        add     rbx,r14
-        mov     r12,QWORD[56+rsi]
-        mov     r13,r9
-        mov     r14,rbx
-        bswap   r12
-        ror     r13,23
-        mov     rdi,r10
-
-        xor     r13,r9
-        ror     r14,5
-        xor     rdi,r11
-
-        mov     QWORD[56+rsp],r12
-        xor     r14,rbx
-        and     rdi,r9
-
-        ror     r13,4
-        add     r12,rax
-        xor     rdi,r11
-
-        ror     r14,6
-        xor     r13,r9
-        add     r12,rdi
-
-        mov     rdi,rbx
-        add     r12,QWORD[rbp]
-        xor     r14,rbx
-
-        xor     rdi,rcx
-        ror     r13,14
-        mov     rax,rcx
-
-        and     r15,rdi
-        ror     r14,28
-        add     r12,r13
-
-        xor     rax,r15
-        add     r8,r12
-        add     rax,r12
-
-        lea     rbp,[24+rbp]
-        add     rax,r14
-        mov     r12,QWORD[64+rsi]
-        mov     r13,r8
-        mov     r14,rax
-        bswap   r12
-        ror     r13,23
-        mov     r15,r9
-
-        xor     r13,r8
-        ror     r14,5
-        xor     r15,r10
-
-        mov     QWORD[64+rsp],r12
-        xor     r14,rax
-        and     r15,r8
-
-        ror     r13,4
-        add     r12,r11
-        xor     r15,r10
-
-        ror     r14,6
-        xor     r13,r8
-        add     r12,r15
-
-        mov     r15,rax
-        add     r12,QWORD[rbp]
-        xor     r14,rax
-
-        xor     r15,rbx
-        ror     r13,14
-        mov     r11,rbx
-
-        and     rdi,r15
-        ror     r14,28
-        add     r12,r13
-
-        xor     r11,rdi
-        add     rdx,r12
-        add     r11,r12
-
-        lea     rbp,[8+rbp]
-        add     r11,r14
-        mov     r12,QWORD[72+rsi]
-        mov     r13,rdx
-        mov     r14,r11
-        bswap   r12
-        ror     r13,23
-        mov     rdi,r8
-
-        xor     r13,rdx
-        ror     r14,5
-        xor     rdi,r9
-
-        mov     QWORD[72+rsp],r12
-        xor     r14,r11
-        and     rdi,rdx
-
-        ror     r13,4
-        add     r12,r10
-        xor     rdi,r9
-
-        ror     r14,6
-        xor     r13,rdx
-        add     r12,rdi
-
-        mov     rdi,r11
-        add     r12,QWORD[rbp]
-        xor     r14,r11
-
-        xor     rdi,rax
-        ror     r13,14
-        mov     r10,rax
-
-        and     r15,rdi
-        ror     r14,28
-        add     r12,r13
-
-        xor     r10,r15
-        add     rcx,r12
-        add     r10,r12
-
-        lea     rbp,[24+rbp]
-        add     r10,r14
-        mov     r12,QWORD[80+rsi]
-        mov     r13,rcx
-        mov     r14,r10
-        bswap   r12
-        ror     r13,23
-        mov     r15,rdx
-
-        xor     r13,rcx
-        ror     r14,5
-        xor     r15,r8
-
-        mov     QWORD[80+rsp],r12
-        xor     r14,r10
-        and     r15,rcx
-
-        ror     r13,4
-        add     r12,r9
-        xor     r15,r8
-
-        ror     r14,6
-        xor     r13,rcx
-        add     r12,r15
-
-        mov     r15,r10
-        add     r12,QWORD[rbp]
-        xor     r14,r10
-
-        xor     r15,r11
-        ror     r13,14
-        mov     r9,r11
-
-        and     rdi,r15
-        ror     r14,28
-        add     r12,r13
-
-        xor     r9,rdi
-        add     rbx,r12
-        add     r9,r12
-
-        lea     rbp,[8+rbp]
-        add     r9,r14
-        mov     r12,QWORD[88+rsi]
-        mov     r13,rbx
-        mov     r14,r9
-        bswap   r12
-        ror     r13,23
-        mov     rdi,rcx
-
-        xor     r13,rbx
-        ror     r14,5
-        xor     rdi,rdx
-
-        mov     QWORD[88+rsp],r12
-        xor     r14,r9
-        and     rdi,rbx
-
-        ror     r13,4
-        add     r12,r8
-        xor     rdi,rdx
-
-        ror     r14,6
-        xor     r13,rbx
-        add     r12,rdi
-
-        mov     rdi,r9
-        add     r12,QWORD[rbp]
-        xor     r14,r9
-
-        xor     rdi,r10
-        ror     r13,14
-        mov     r8,r10
-
-        and     r15,rdi
-        ror     r14,28
-        add     r12,r13
-
-        xor     r8,r15
-        add     rax,r12
-        add     r8,r12
-
-        lea     rbp,[24+rbp]
-        add     r8,r14
-        mov     r12,QWORD[96+rsi]
-        mov     r13,rax
-        mov     r14,r8
-        bswap   r12
-        ror     r13,23
-        mov     r15,rbx
-
-        xor     r13,rax
-        ror     r14,5
-        xor     r15,rcx
-
-        mov     QWORD[96+rsp],r12
-        xor     r14,r8
-        and     r15,rax
-
-        ror     r13,4
-        add     r12,rdx
-        xor     r15,rcx
-
-        ror     r14,6
-        xor     r13,rax
-        add     r12,r15
-
-        mov     r15,r8
-        add     r12,QWORD[rbp]
-        xor     r14,r8
-
-        xor     r15,r9
-        ror     r13,14
-        mov     rdx,r9
-
-        and     rdi,r15
-        ror     r14,28
-        add     r12,r13
-
-        xor     rdx,rdi
-        add     r11,r12
-        add     rdx,r12
-
-        lea     rbp,[8+rbp]
-        add     rdx,r14
-        mov     r12,QWORD[104+rsi]
-        mov     r13,r11
-        mov     r14,rdx
-        bswap   r12
-        ror     r13,23
-        mov     rdi,rax
-
-        xor     r13,r11
-        ror     r14,5
-        xor     rdi,rbx
-
-        mov     QWORD[104+rsp],r12
-        xor     r14,rdx
-        and     rdi,r11
-
-        ror     r13,4
-        add     r12,rcx
-        xor     rdi,rbx
-
-        ror     r14,6
-        xor     r13,r11
-        add     r12,rdi
-
-        mov     rdi,rdx
-        add     r12,QWORD[rbp]
-        xor     r14,rdx
-
-        xor     rdi,r8
-        ror     r13,14
-        mov     rcx,r8
-
-        and     r15,rdi
-        ror     r14,28
-        add     r12,r13
-
-        xor     rcx,r15
-        add     r10,r12
-        add     rcx,r12
-
-        lea     rbp,[24+rbp]
-        add     rcx,r14
-        mov     r12,QWORD[112+rsi]
-        mov     r13,r10
-        mov     r14,rcx
-        bswap   r12
-        ror     r13,23
-        mov     r15,r11
-
-        xor     r13,r10
-        ror     r14,5
-        xor     r15,rax
-
-        mov     QWORD[112+rsp],r12
-        xor     r14,rcx
-        and     r15,r10
-
-        ror     r13,4
-        add     r12,rbx
-        xor     r15,rax
-
-        ror     r14,6
-        xor     r13,r10
-        add     r12,r15
-
-        mov     r15,rcx
-        add     r12,QWORD[rbp]
-        xor     r14,rcx
-
-        xor     r15,rdx
-        ror     r13,14
-        mov     rbx,rdx
-
-        and     rdi,r15
-        ror     r14,28
-        add     r12,r13
-
-        xor     rbx,rdi
-        add     r9,r12
-        add     rbx,r12
-
-        lea     rbp,[8+rbp]
-        add     rbx,r14
-        mov     r12,QWORD[120+rsi]
-        mov     r13,r9
-        mov     r14,rbx
-        bswap   r12
-        ror     r13,23
-        mov     rdi,r10
-
-        xor     r13,r9
-        ror     r14,5
-        xor     rdi,r11
-
-        mov     QWORD[120+rsp],r12
-        xor     r14,rbx
-        and     rdi,r9
-
-        ror     r13,4
-        add     r12,rax
-        xor     rdi,r11
-
-        ror     r14,6
-        xor     r13,r9
-        add     r12,rdi
-
-        mov     rdi,rbx
-        add     r12,QWORD[rbp]
-        xor     r14,rbx
-
-        xor     rdi,rcx
-        ror     r13,14
-        mov     rax,rcx
-
-        and     r15,rdi
-        ror     r14,28
-        add     r12,r13
-
-        xor     rax,r15
-        add     r8,r12
-        add     rax,r12
-
-        lea     rbp,[24+rbp]
-        jmp     NEAR $L$rounds_16_xx
-ALIGN   16
-$L$rounds_16_xx:
-        mov     r13,QWORD[8+rsp]
-        mov     r15,QWORD[112+rsp]
-
-        mov     r12,r13
-        ror     r13,7
-        add     rax,r14
-        mov     r14,r15
-        ror     r15,42
-
-        xor     r13,r12
-        shr     r12,7
-        ror     r13,1
-        xor     r15,r14
-        shr     r14,6
-
-        ror     r15,19
-        xor     r12,r13
-        xor     r15,r14
-        add     r12,QWORD[72+rsp]
-
-        add     r12,QWORD[rsp]
-        mov     r13,r8
-        add     r12,r15
-        mov     r14,rax
-        ror     r13,23
-        mov     r15,r9
-
-        xor     r13,r8
-        ror     r14,5
-        xor     r15,r10
-
-        mov     QWORD[rsp],r12
-        xor     r14,rax
-        and     r15,r8
-
-        ror     r13,4
-        add     r12,r11
-        xor     r15,r10
-
-        ror     r14,6
-        xor     r13,r8
-        add     r12,r15
-
-        mov     r15,rax
-        add     r12,QWORD[rbp]
-        xor     r14,rax
-
-        xor     r15,rbx
-        ror     r13,14
-        mov     r11,rbx
-
-        and     rdi,r15
-        ror     r14,28
-        add     r12,r13
-
-        xor     r11,rdi
-        add     rdx,r12
-        add     r11,r12
-
-        lea     rbp,[8+rbp]
-        mov     r13,QWORD[16+rsp]
-        mov     rdi,QWORD[120+rsp]
-
-        mov     r12,r13
-        ror     r13,7
-        add     r11,r14
-        mov     r14,rdi
-        ror     rdi,42
-
-        xor     r13,r12
-        shr     r12,7
-        ror     r13,1
-        xor     rdi,r14
-        shr     r14,6
-
-        ror     rdi,19
-        xor     r12,r13
-        xor     rdi,r14
-        add     r12,QWORD[80+rsp]
-
-        add     r12,QWORD[8+rsp]
-        mov     r13,rdx
-        add     r12,rdi
-        mov     r14,r11
-        ror     r13,23
-        mov     rdi,r8
-
-        xor     r13,rdx
-        ror     r14,5
-        xor     rdi,r9
-
-        mov     QWORD[8+rsp],r12
-        xor     r14,r11
-        and     rdi,rdx
-
-        ror     r13,4
-        add     r12,r10
-        xor     rdi,r9
-
-        ror     r14,6
-        xor     r13,rdx
-        add     r12,rdi
-
-        mov     rdi,r11
-        add     r12,QWORD[rbp]
-        xor     r14,r11
-
-        xor     rdi,rax
-        ror     r13,14
-        mov     r10,rax
-
-        and     r15,rdi
-        ror     r14,28
-        add     r12,r13
-
-        xor     r10,r15
-        add     rcx,r12
-        add     r10,r12
-
-        lea     rbp,[24+rbp]
-        mov     r13,QWORD[24+rsp]
-        mov     r15,QWORD[rsp]
-
-        mov     r12,r13
-        ror     r13,7
-        add     r10,r14
-        mov     r14,r15
-        ror     r15,42
-
-        xor     r13,r12
-        shr     r12,7
-        ror     r13,1
-        xor     r15,r14
-        shr     r14,6
-
-        ror     r15,19
-        xor     r12,r13
-        xor     r15,r14
-        add     r12,QWORD[88+rsp]
-
-        add     r12,QWORD[16+rsp]
-        mov     r13,rcx
-        add     r12,r15
-        mov     r14,r10
-        ror     r13,23
-        mov     r15,rdx
-
-        xor     r13,rcx
-        ror     r14,5
-        xor     r15,r8
-
-        mov     QWORD[16+rsp],r12
-        xor     r14,r10
-        and     r15,rcx
-
-        ror     r13,4
-        add     r12,r9
-        xor     r15,r8
-
-        ror     r14,6
-        xor     r13,rcx
-        add     r12,r15
-
-        mov     r15,r10
-        add     r12,QWORD[rbp]
-        xor     r14,r10
-
-        xor     r15,r11
-        ror     r13,14
-        mov     r9,r11
-
-        and     rdi,r15
-        ror     r14,28
-        add     r12,r13
-
-        xor     r9,rdi
-        add     rbx,r12
-        add     r9,r12
-
-        lea     rbp,[8+rbp]
-        mov     r13,QWORD[32+rsp]
-        mov     rdi,QWORD[8+rsp]
-
-        mov     r12,r13
-        ror     r13,7
-        add     r9,r14
-        mov     r14,rdi
-        ror     rdi,42
-
-        xor     r13,r12
-        shr     r12,7
-        ror     r13,1
-        xor     rdi,r14
-        shr     r14,6
-
-        ror     rdi,19
-        xor     r12,r13
-        xor     rdi,r14
-        add     r12,QWORD[96+rsp]
-
-        add     r12,QWORD[24+rsp]
-        mov     r13,rbx
-        add     r12,rdi
-        mov     r14,r9
-        ror     r13,23
-        mov     rdi,rcx
-
-        xor     r13,rbx
-        ror     r14,5
-        xor     rdi,rdx
-
-        mov     QWORD[24+rsp],r12
-        xor     r14,r9
-        and     rdi,rbx
-
-        ror     r13,4
-        add     r12,r8
-        xor     rdi,rdx
-
-        ror     r14,6
-        xor     r13,rbx
-        add     r12,rdi
-
-        mov     rdi,r9
-        add     r12,QWORD[rbp]
-        xor     r14,r9
-
-        xor     rdi,r10
-        ror     r13,14
-        mov     r8,r10
-
-        and     r15,rdi
-        ror     r14,28
-        add     r12,r13
-
-        xor     r8,r15
-        add     rax,r12
-        add     r8,r12
-
-        lea     rbp,[24+rbp]
-        mov     r13,QWORD[40+rsp]
-        mov     r15,QWORD[16+rsp]
-
-        mov     r12,r13
-        ror     r13,7
-        add     r8,r14
-        mov     r14,r15
-        ror     r15,42
-
-        xor     r13,r12
-        shr     r12,7
-        ror     r13,1
-        xor     r15,r14
-        shr     r14,6
-
-        ror     r15,19
-        xor     r12,r13
-        xor     r15,r14
-        add     r12,QWORD[104+rsp]
-
-        add     r12,QWORD[32+rsp]
-        mov     r13,rax
-        add     r12,r15
-        mov     r14,r8
-        ror     r13,23
-        mov     r15,rbx
-
-        xor     r13,rax
-        ror     r14,5
-        xor     r15,rcx
-
-        mov     QWORD[32+rsp],r12
-        xor     r14,r8
-        and     r15,rax
-
-        ror     r13,4
-        add     r12,rdx
-        xor     r15,rcx
-
-        ror     r14,6
-        xor     r13,rax
-        add     r12,r15
-
-        mov     r15,r8
-        add     r12,QWORD[rbp]
-        xor     r14,r8
-
-        xor     r15,r9
-        ror     r13,14
-        mov     rdx,r9
-
-        and     rdi,r15
-        ror     r14,28
-        add     r12,r13
-
-        xor     rdx,rdi
-        add     r11,r12
-        add     rdx,r12
-
-        lea     rbp,[8+rbp]
-        mov     r13,QWORD[48+rsp]
-        mov     rdi,QWORD[24+rsp]
-
-        mov     r12,r13
-        ror     r13,7
-        add     rdx,r14
-        mov     r14,rdi
-        ror     rdi,42
-
-        xor     r13,r12
-        shr     r12,7
-        ror     r13,1
-        xor     rdi,r14
-        shr     r14,6
-
-        ror     rdi,19
-        xor     r12,r13
-        xor     rdi,r14
-        add     r12,QWORD[112+rsp]
-
-        add     r12,QWORD[40+rsp]
-        mov     r13,r11
-        add     r12,rdi
-        mov     r14,rdx
-        ror     r13,23
-        mov     rdi,rax
-
-        xor     r13,r11
-        ror     r14,5
-        xor     rdi,rbx
-
-        mov     QWORD[40+rsp],r12
-        xor     r14,rdx
-        and     rdi,r11
-
-        ror     r13,4
-        add     r12,rcx
-        xor     rdi,rbx
-
-        ror     r14,6
-        xor     r13,r11
-        add     r12,rdi
-
-        mov     rdi,rdx
-        add     r12,QWORD[rbp]
-        xor     r14,rdx
-
-        xor     rdi,r8
-        ror     r13,14
-        mov     rcx,r8
-
-        and     r15,rdi
-        ror     r14,28
-        add     r12,r13
-
-        xor     rcx,r15
-        add     r10,r12
-        add     rcx,r12
-
-        lea     rbp,[24+rbp]
-        mov     r13,QWORD[56+rsp]
-        mov     r15,QWORD[32+rsp]
-
-        mov     r12,r13
-        ror     r13,7
-        add     rcx,r14
-        mov     r14,r15
-        ror     r15,42
-
-        xor     r13,r12
-        shr     r12,7
-        ror     r13,1
-        xor     r15,r14
-        shr     r14,6
-
-        ror     r15,19
-        xor     r12,r13
-        xor     r15,r14
-        add     r12,QWORD[120+rsp]
-
-        add     r12,QWORD[48+rsp]
-        mov     r13,r10
-        add     r12,r15
-        mov     r14,rcx
-        ror     r13,23
-        mov     r15,r11
-
-        xor     r13,r10
-        ror     r14,5
-        xor     r15,rax
-
-        mov     QWORD[48+rsp],r12
-        xor     r14,rcx
-        and     r15,r10
-
-        ror     r13,4
-        add     r12,rbx
-        xor     r15,rax
-
-        ror     r14,6
-        xor     r13,r10
-        add     r12,r15
-
-        mov     r15,rcx
-        add     r12,QWORD[rbp]
-        xor     r14,rcx
-
-        xor     r15,rdx
-        ror     r13,14
-        mov     rbx,rdx
-
-        and     rdi,r15
-        ror     r14,28
-        add     r12,r13
-
-        xor     rbx,rdi
-        add     r9,r12
-        add     rbx,r12
-
-        lea     rbp,[8+rbp]
-        mov     r13,QWORD[64+rsp]
-        mov     rdi,QWORD[40+rsp]
-
-        mov     r12,r13
-        ror     r13,7
-        add     rbx,r14
-        mov     r14,rdi
-        ror     rdi,42
-
-        xor     r13,r12
-        shr     r12,7
-        ror     r13,1
-        xor     rdi,r14
-        shr     r14,6
-
-        ror     rdi,19
-        xor     r12,r13
-        xor     rdi,r14
-        add     r12,QWORD[rsp]
-
-        add     r12,QWORD[56+rsp]
-        mov     r13,r9
-        add     r12,rdi
-        mov     r14,rbx
-        ror     r13,23
-        mov     rdi,r10
-
-        xor     r13,r9
-        ror     r14,5
-        xor     rdi,r11
-
-        mov     QWORD[56+rsp],r12
-        xor     r14,rbx
-        and     rdi,r9
-
-        ror     r13,4
-        add     r12,rax
-        xor     rdi,r11
-
-        ror     r14,6
-        xor     r13,r9
-        add     r12,rdi
-
-        mov     rdi,rbx
-        add     r12,QWORD[rbp]
-        xor     r14,rbx
-
-        xor     rdi,rcx
-        ror     r13,14
-        mov     rax,rcx
-
-        and     r15,rdi
-        ror     r14,28
-        add     r12,r13
-
-        xor     rax,r15
-        add     r8,r12
-        add     rax,r12
-
-        lea     rbp,[24+rbp]
-        mov     r13,QWORD[72+rsp]
-        mov     r15,QWORD[48+rsp]
-
-        mov     r12,r13
-        ror     r13,7
-        add     rax,r14
-        mov     r14,r15
-        ror     r15,42
-
-        xor     r13,r12
-        shr     r12,7
-        ror     r13,1
-        xor     r15,r14
-        shr     r14,6
-
-        ror     r15,19
-        xor     r12,r13
-        xor     r15,r14
-        add     r12,QWORD[8+rsp]
-
-        add     r12,QWORD[64+rsp]
-        mov     r13,r8
-        add     r12,r15
-        mov     r14,rax
-        ror     r13,23
-        mov     r15,r9
-
-        xor     r13,r8
-        ror     r14,5
-        xor     r15,r10
-
-        mov     QWORD[64+rsp],r12
-        xor     r14,rax
-        and     r15,r8
-
-        ror     r13,4
-        add     r12,r11
-        xor     r15,r10
-
-        ror     r14,6
-        xor     r13,r8
-        add     r12,r15
-
-        mov     r15,rax
-        add     r12,QWORD[rbp]
-        xor     r14,rax
-
-        xor     r15,rbx
-        ror     r13,14
-        mov     r11,rbx
-
-        and     rdi,r15
-        ror     r14,28
-        add     r12,r13
-
-        xor     r11,rdi
-        add     rdx,r12
-        add     r11,r12
-
-        lea     rbp,[8+rbp]
-        mov     r13,QWORD[80+rsp]
-        mov     rdi,QWORD[56+rsp]
-
-        mov     r12,r13
-        ror     r13,7
-        add     r11,r14
-        mov     r14,rdi
-        ror     rdi,42
-
-        xor     r13,r12
-        shr     r12,7
-        ror     r13,1
-        xor     rdi,r14
-        shr     r14,6
-
-        ror     rdi,19
-        xor     r12,r13
-        xor     rdi,r14
-        add     r12,QWORD[16+rsp]
-
-        add     r12,QWORD[72+rsp]
-        mov     r13,rdx
-        add     r12,rdi
-        mov     r14,r11
-        ror     r13,23
-        mov     rdi,r8
-
-        xor     r13,rdx
-        ror     r14,5
-        xor     rdi,r9
-
-        mov     QWORD[72+rsp],r12
-        xor     r14,r11
-        and     rdi,rdx
-
-        ror     r13,4
-        add     r12,r10
-        xor     rdi,r9
-
-        ror     r14,6
-        xor     r13,rdx
-        add     r12,rdi
-
-        mov     rdi,r11
-        add     r12,QWORD[rbp]
-        xor     r14,r11
-
-        xor     rdi,rax
-        ror     r13,14
-        mov     r10,rax
-
-        and     r15,rdi
-        ror     r14,28
-        add     r12,r13
-
-        xor     r10,r15
-        add     rcx,r12
-        add     r10,r12
-
-        lea     rbp,[24+rbp]
-        mov     r13,QWORD[88+rsp]
-        mov     r15,QWORD[64+rsp]
-
-        mov     r12,r13
-        ror     r13,7
-        add     r10,r14
-        mov     r14,r15
-        ror     r15,42
-
-        xor     r13,r12
-        shr     r12,7
-        ror     r13,1
-        xor     r15,r14
-        shr     r14,6
-
-        ror     r15,19
-        xor     r12,r13
-        xor     r15,r14
-        add     r12,QWORD[24+rsp]
-
-        add     r12,QWORD[80+rsp]
-        mov     r13,rcx
-        add     r12,r15
-        mov     r14,r10
-        ror     r13,23
-        mov     r15,rdx
-
-        xor     r13,rcx
-        ror     r14,5
-        xor     r15,r8
-
-        mov     QWORD[80+rsp],r12
-        xor     r14,r10
-        and     r15,rcx
-
-        ror     r13,4
-        add     r12,r9
-        xor     r15,r8
-
-        ror     r14,6
-        xor     r13,rcx
-        add     r12,r15
-
-        mov     r15,r10
-        add     r12,QWORD[rbp]
-        xor     r14,r10
-
-        xor     r15,r11
-        ror     r13,14
-        mov     r9,r11
-
-        and     rdi,r15
-        ror     r14,28
-        add     r12,r13
-
-        xor     r9,rdi
-        add     rbx,r12
-        add     r9,r12
-
-        lea     rbp,[8+rbp]
-        mov     r13,QWORD[96+rsp]
-        mov     rdi,QWORD[72+rsp]
-
-        mov     r12,r13
-        ror     r13,7
-        add     r9,r14
-        mov     r14,rdi
-        ror     rdi,42
-
-        xor     r13,r12
-        shr     r12,7
-        ror     r13,1
-        xor     rdi,r14
-        shr     r14,6
-
-        ror     rdi,19
-        xor     r12,r13
-        xor     rdi,r14
-        add     r12,QWORD[32+rsp]
-
-        add     r12,QWORD[88+rsp]
-        mov     r13,rbx
-        add     r12,rdi
-        mov     r14,r9
-        ror     r13,23
-        mov     rdi,rcx
-
-        xor     r13,rbx
-        ror     r14,5
-        xor     rdi,rdx
-
-        mov     QWORD[88+rsp],r12
-        xor     r14,r9
-        and     rdi,rbx
-
-        ror     r13,4
-        add     r12,r8
-        xor     rdi,rdx
-
-        ror     r14,6
-        xor     r13,rbx
-        add     r12,rdi
-
-        mov     rdi,r9
-        add     r12,QWORD[rbp]
-        xor     r14,r9
-
-        xor     rdi,r10
-        ror     r13,14
-        mov     r8,r10
-
-        and     r15,rdi
-        ror     r14,28
-        add     r12,r13
-
-        xor     r8,r15
-        add     rax,r12
-        add     r8,r12
-
-        lea     rbp,[24+rbp]
-        mov     r13,QWORD[104+rsp]
-        mov     r15,QWORD[80+rsp]
-
-        mov     r12,r13
-        ror     r13,7
-        add     r8,r14
-        mov     r14,r15
-        ror     r15,42
-
-        xor     r13,r12
-        shr     r12,7
-        ror     r13,1
-        xor     r15,r14
-        shr     r14,6
-
-        ror     r15,19
-        xor     r12,r13
-        xor     r15,r14
-        add     r12,QWORD[40+rsp]
-
-        add     r12,QWORD[96+rsp]
-        mov     r13,rax
-        add     r12,r15
-        mov     r14,r8
-        ror     r13,23
-        mov     r15,rbx
-
-        xor     r13,rax
-        ror     r14,5
-        xor     r15,rcx
-
-        mov     QWORD[96+rsp],r12
-        xor     r14,r8
-        and     r15,rax
-
-        ror     r13,4
-        add     r12,rdx
-        xor     r15,rcx
-
-        ror     r14,6
-        xor     r13,rax
-        add     r12,r15
-
-        mov     r15,r8
-        add     r12,QWORD[rbp]
-        xor     r14,r8
-
-        xor     r15,r9
-        ror     r13,14
-        mov     rdx,r9
-
-        and     rdi,r15
-        ror     r14,28
-        add     r12,r13
-
-        xor     rdx,rdi
-        add     r11,r12
-        add     rdx,r12
-
-        lea     rbp,[8+rbp]
-        mov     r13,QWORD[112+rsp]
-        mov     rdi,QWORD[88+rsp]
-
-        mov     r12,r13
-        ror     r13,7
-        add     rdx,r14
-        mov     r14,rdi
-        ror     rdi,42
-
-        xor     r13,r12
-        shr     r12,7
-        ror     r13,1
-        xor     rdi,r14
-        shr     r14,6
-
-        ror     rdi,19
-        xor     r12,r13
-        xor     rdi,r14
-        add     r12,QWORD[48+rsp]
-
-        add     r12,QWORD[104+rsp]
-        mov     r13,r11
-        add     r12,rdi
-        mov     r14,rdx
-        ror     r13,23
-        mov     rdi,rax
-
-        xor     r13,r11
-        ror     r14,5
-        xor     rdi,rbx
-
-        mov     QWORD[104+rsp],r12
-        xor     r14,rdx
-        and     rdi,r11
-
-        ror     r13,4
-        add     r12,rcx
-        xor     rdi,rbx
-
-        ror     r14,6
-        xor     r13,r11
-        add     r12,rdi
-
-        mov     rdi,rdx
-        add     r12,QWORD[rbp]
-        xor     r14,rdx
-
-        xor     rdi,r8
-        ror     r13,14
-        mov     rcx,r8
-
-        and     r15,rdi
-        ror     r14,28
-        add     r12,r13
-
-        xor     rcx,r15
-        add     r10,r12
-        add     rcx,r12
-
-        lea     rbp,[24+rbp]
-        mov     r13,QWORD[120+rsp]
-        mov     r15,QWORD[96+rsp]
-
-        mov     r12,r13
-        ror     r13,7
-        add     rcx,r14
-        mov     r14,r15
-        ror     r15,42
-
-        xor     r13,r12
-        shr     r12,7
-        ror     r13,1
-        xor     r15,r14
-        shr     r14,6
-
-        ror     r15,19
-        xor     r12,r13
-        xor     r15,r14
-        add     r12,QWORD[56+rsp]
-
-        add     r12,QWORD[112+rsp]
-        mov     r13,r10
-        add     r12,r15
-        mov     r14,rcx
-        ror     r13,23
-        mov     r15,r11
-
-        xor     r13,r10
-        ror     r14,5
-        xor     r15,rax
-
-        mov     QWORD[112+rsp],r12
-        xor     r14,rcx
-        and     r15,r10
-
-        ror     r13,4
-        add     r12,rbx
-        xor     r15,rax
-
-        ror     r14,6
-        xor     r13,r10
-        add     r12,r15
-
-        mov     r15,rcx
-        add     r12,QWORD[rbp]
-        xor     r14,rcx
-
-        xor     r15,rdx
-        ror     r13,14
-        mov     rbx,rdx
-
-        and     rdi,r15
-        ror     r14,28
-        add     r12,r13
-
-        xor     rbx,rdi
-        add     r9,r12
-        add     rbx,r12
-
-        lea     rbp,[8+rbp]
-        mov     r13,QWORD[rsp]
-        mov     rdi,QWORD[104+rsp]
-
-        mov     r12,r13
-        ror     r13,7
-        add     rbx,r14
-        mov     r14,rdi
-        ror     rdi,42
-
-        xor     r13,r12
-        shr     r12,7
-        ror     r13,1
-        xor     rdi,r14
-        shr     r14,6
-
-        ror     rdi,19
-        xor     r12,r13
-        xor     rdi,r14
-        add     r12,QWORD[64+rsp]
-
-        add     r12,QWORD[120+rsp]
-        mov     r13,r9
-        add     r12,rdi
-        mov     r14,rbx
-        ror     r13,23
-        mov     rdi,r10
-
-        xor     r13,r9
-        ror     r14,5
-        xor     rdi,r11
-
-        mov     QWORD[120+rsp],r12
-        xor     r14,rbx
-        and     rdi,r9
-
-        ror     r13,4
-        add     r12,rax
-        xor     rdi,r11
-
-        ror     r14,6
-        xor     r13,r9
-        add     r12,rdi
-
-        mov     rdi,rbx
-        add     r12,QWORD[rbp]
-        xor     r14,rbx
-
-        xor     rdi,rcx
-        ror     r13,14
-        mov     rax,rcx
-
-        and     r15,rdi
-        ror     r14,28
-        add     r12,r13
-
-        xor     rax,r15
-        add     r8,r12
-        add     rax,r12
-
-        lea     rbp,[24+rbp]
-        cmp     BYTE[7+rbp],0
-        jnz     NEAR $L$rounds_16_xx
-
-        mov     rdi,QWORD[((128+0))+rsp]
-        add     rax,r14
-        lea     rsi,[128+rsi]
-
-        add     rax,QWORD[rdi]
-        add     rbx,QWORD[8+rdi]
-        add     rcx,QWORD[16+rdi]
-        add     rdx,QWORD[24+rdi]
-        add     r8,QWORD[32+rdi]
-        add     r9,QWORD[40+rdi]
-        add     r10,QWORD[48+rdi]
-        add     r11,QWORD[56+rdi]
-
-        cmp     rsi,QWORD[((128+16))+rsp]
-
-        mov     QWORD[rdi],rax
-        mov     QWORD[8+rdi],rbx
-        mov     QWORD[16+rdi],rcx
-        mov     QWORD[24+rdi],rdx
-        mov     QWORD[32+rdi],r8
-        mov     QWORD[40+rdi],r9
-        mov     QWORD[48+rdi],r10
-        mov     QWORD[56+rdi],r11
-        jb      NEAR $L$loop
-
-        mov     rsi,QWORD[152+rsp]
-
-        mov     r15,QWORD[((-48))+rsi]
-
-        mov     r14,QWORD[((-40))+rsi]
-
-        mov     r13,QWORD[((-32))+rsi]
-
-        mov     r12,QWORD[((-24))+rsi]
-
-        mov     rbp,QWORD[((-16))+rsi]
-
-        mov     rbx,QWORD[((-8))+rsi]
-
-        lea     rsp,[rsi]
-
-$L$epilogue:
-        mov     rdi,QWORD[8+rsp]        ;WIN64 epilogue
-        mov     rsi,QWORD[16+rsp]
-        DB      0F3h,0C3h               ;repret
-
-$L$SEH_end_sha512_block_data_order:
-ALIGN   64
-
-K512:
-        DQ      0x428a2f98d728ae22,0x7137449123ef65cd
-        DQ      0x428a2f98d728ae22,0x7137449123ef65cd
-        DQ      0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
-        DQ      0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
-        DQ      0x3956c25bf348b538,0x59f111f1b605d019
-        DQ      0x3956c25bf348b538,0x59f111f1b605d019
-        DQ      0x923f82a4af194f9b,0xab1c5ed5da6d8118
-        DQ      0x923f82a4af194f9b,0xab1c5ed5da6d8118
-        DQ      0xd807aa98a3030242,0x12835b0145706fbe
-        DQ      0xd807aa98a3030242,0x12835b0145706fbe
-        DQ      0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
-        DQ      0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
-        DQ      0x72be5d74f27b896f,0x80deb1fe3b1696b1
-        DQ      0x72be5d74f27b896f,0x80deb1fe3b1696b1
-        DQ      0x9bdc06a725c71235,0xc19bf174cf692694
-        DQ      0x9bdc06a725c71235,0xc19bf174cf692694
-        DQ      0xe49b69c19ef14ad2,0xefbe4786384f25e3
-        DQ      0xe49b69c19ef14ad2,0xefbe4786384f25e3
-        DQ      0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
-        DQ      0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
-        DQ      0x2de92c6f592b0275,0x4a7484aa6ea6e483
-        DQ      0x2de92c6f592b0275,0x4a7484aa6ea6e483
-        DQ      0x5cb0a9dcbd41fbd4,0x76f988da831153b5
-        DQ      0x5cb0a9dcbd41fbd4,0x76f988da831153b5
-        DQ      0x983e5152ee66dfab,0xa831c66d2db43210
-        DQ      0x983e5152ee66dfab,0xa831c66d2db43210
-        DQ      0xb00327c898fb213f,0xbf597fc7beef0ee4
-        DQ      0xb00327c898fb213f,0xbf597fc7beef0ee4
-        DQ      0xc6e00bf33da88fc2,0xd5a79147930aa725
-        DQ      0xc6e00bf33da88fc2,0xd5a79147930aa725
-        DQ      0x06ca6351e003826f,0x142929670a0e6e70
-        DQ      0x06ca6351e003826f,0x142929670a0e6e70
-        DQ      0x27b70a8546d22ffc,0x2e1b21385c26c926
-        DQ      0x27b70a8546d22ffc,0x2e1b21385c26c926
-        DQ      0x4d2c6dfc5ac42aed,0x53380d139d95b3df
-        DQ      0x4d2c6dfc5ac42aed,0x53380d139d95b3df
-        DQ      0x650a73548baf63de,0x766a0abb3c77b2a8
-        DQ      0x650a73548baf63de,0x766a0abb3c77b2a8
-        DQ      0x81c2c92e47edaee6,0x92722c851482353b
-        DQ      0x81c2c92e47edaee6,0x92722c851482353b
-        DQ      0xa2bfe8a14cf10364,0xa81a664bbc423001
-        DQ      0xa2bfe8a14cf10364,0xa81a664bbc423001
-        DQ      0xc24b8b70d0f89791,0xc76c51a30654be30
-        DQ      0xc24b8b70d0f89791,0xc76c51a30654be30
-        DQ      0xd192e819d6ef5218,0xd69906245565a910
-        DQ      0xd192e819d6ef5218,0xd69906245565a910
-        DQ      0xf40e35855771202a,0x106aa07032bbd1b8
-        DQ      0xf40e35855771202a,0x106aa07032bbd1b8
-        DQ      0x19a4c116b8d2d0c8,0x1e376c085141ab53
-        DQ      0x19a4c116b8d2d0c8,0x1e376c085141ab53
-        DQ      0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
-        DQ      0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
-        DQ      0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
-        DQ      0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
-        DQ      0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
-        DQ      0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
-        DQ      0x748f82ee5defb2fc,0x78a5636f43172f60
-        DQ      0x748f82ee5defb2fc,0x78a5636f43172f60
-        DQ      0x84c87814a1f0ab72,0x8cc702081a6439ec
-        DQ      0x84c87814a1f0ab72,0x8cc702081a6439ec
-        DQ      0x90befffa23631e28,0xa4506cebde82bde9
-        DQ      0x90befffa23631e28,0xa4506cebde82bde9
-        DQ      0xbef9a3f7b2c67915,0xc67178f2e372532b
-        DQ      0xbef9a3f7b2c67915,0xc67178f2e372532b
-        DQ      0xca273eceea26619c,0xd186b8c721c0c207
-        DQ      0xca273eceea26619c,0xd186b8c721c0c207
-        DQ      0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
-        DQ      0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
-        DQ      0x06f067aa72176fba,0x0a637dc5a2c898a6
-        DQ      0x06f067aa72176fba,0x0a637dc5a2c898a6
-        DQ      0x113f9804bef90dae,0x1b710b35131c471b
-        DQ      0x113f9804bef90dae,0x1b710b35131c471b
-        DQ      0x28db77f523047d84,0x32caab7b40c72493
-        DQ      0x28db77f523047d84,0x32caab7b40c72493
-        DQ      0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
-        DQ      0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
-        DQ      0x4cc5d4becb3e42b6,0x597f299cfc657e2a
-        DQ      0x4cc5d4becb3e42b6,0x597f299cfc657e2a
-        DQ      0x5fcb6fab3ad6faec,0x6c44198c4a475817
-        DQ      0x5fcb6fab3ad6faec,0x6c44198c4a475817
-
-        DQ      0x0001020304050607,0x08090a0b0c0d0e0f
-        DQ      0x0001020304050607,0x08090a0b0c0d0e0f
-DB      83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97
-DB      110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54
-DB      52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121
-DB      32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46
-DB      111,114,103,62,0
-EXTERN  __imp_RtlVirtualUnwind
-
-ALIGN   16
-se_handler:
-        push    rsi
-        push    rdi
-        push    rbx
-        push    rbp
-        push    r12
-        push    r13
-        push    r14
-        push    r15
-        pushfq
-        sub     rsp,64
-
-        mov     rax,QWORD[120+r8]
-        mov     rbx,QWORD[248+r8]
-
-        mov     rsi,QWORD[8+r9]
-        mov     r11,QWORD[56+r9]
-
-        mov     r10d,DWORD[r11]
-        lea     r10,[r10*1+rsi]
-        cmp     rbx,r10
-        jb      NEAR $L$in_prologue
-
-        mov     rax,QWORD[152+r8]
-
-        mov     r10d,DWORD[4+r11]
-        lea     r10,[r10*1+rsi]
-        cmp     rbx,r10
-        jae     NEAR $L$in_prologue
-        mov     rsi,rax
-        mov     rax,QWORD[((128+24))+rax]
-
-        mov     rbx,QWORD[((-8))+rax]
-        mov     rbp,QWORD[((-16))+rax]
-        mov     r12,QWORD[((-24))+rax]
-        mov     r13,QWORD[((-32))+rax]
-        mov     r14,QWORD[((-40))+rax]
-        mov     r15,QWORD[((-48))+rax]
-        mov     QWORD[144+r8],rbx
-        mov     QWORD[160+r8],rbp
-        mov     QWORD[216+r8],r12
-        mov     QWORD[224+r8],r13
-        mov     QWORD[232+r8],r14
-        mov     QWORD[240+r8],r15
-
-        lea     r10,[$L$epilogue]
-        cmp     rbx,r10
-        jb      NEAR $L$in_prologue
-
-        lea     rsi,[((128+32))+rsi]
-        lea     rdi,[512+r8]
-        mov     ecx,12
-        DD      0xa548f3fc
-
-$L$in_prologue:
-        mov     rdi,QWORD[8+rax]
-        mov     rsi,QWORD[16+rax]
-        mov     QWORD[152+r8],rax
-        mov     QWORD[168+r8],rsi
-        mov     QWORD[176+r8],rdi
-
-        mov     rdi,QWORD[40+r9]
-        mov     rsi,r8
-        mov     ecx,154
-        DD      0xa548f3fc
-
-        mov     rsi,r9
-        xor     rcx,rcx
-        mov     rdx,QWORD[8+rsi]
-        mov     r8,QWORD[rsi]
-        mov     r9,QWORD[16+rsi]
-        mov     r10,QWORD[40+rsi]
-        lea     r11,[56+rsi]
-        lea     r12,[24+rsi]
-        mov     QWORD[32+rsp],r10
-        mov     QWORD[40+rsp],r11
-        mov     QWORD[48+rsp],r12
-        mov     QWORD[56+rsp],rcx
-        call    QWORD[__imp_RtlVirtualUnwind]
-
-        mov     eax,1
-        add     rsp,64
-        popfq
-        pop     r15
-        pop     r14
-        pop     r13
-        pop     r12
-        pop     rbp
-        pop     rbx
-        pop     rdi
-        pop     rsi
-        DB      0F3h,0C3h               ;repret
-
-section .pdata rdata align=4
-ALIGN   4
-        DD      $L$SEH_begin_sha512_block_data_order wrt ..imagebase
-        DD      $L$SEH_end_sha512_block_data_order wrt ..imagebase
-        DD      $L$SEH_info_sha512_block_data_order wrt ..imagebase
-section .xdata rdata align=8
-ALIGN   8
-$L$SEH_info_sha512_block_data_order:
-DB      9,0,0,0
-        DD      se_handler wrt ..imagebase
-        DD      $L$prologue wrt ..imagebase,$L$epilogue wrt ..imagebase
diff --git a/CryptoPkg/Library/OpensslLib/X64/crypto/x86_64cpuid.nasm b/CryptoPkg/Library/OpensslLib/X64/crypto/x86_64cpuid.nasm
deleted file mode 100644
index 2a3d5bcf72e5..000000000000
--- a/CryptoPkg/Library/OpensslLib/X64/crypto/x86_64cpuid.nasm
+++ /dev/null
@@ -1,491 +0,0 @@
-; WARNING: do not edit!
-; Generated from openssl/crypto/x86_64cpuid.pl
-;
-; Copyright 2005-2020 The OpenSSL Project Authors. All Rights Reserved.
-;
-; Licensed under the OpenSSL license (the "License").  You may not use
-; this file except in compliance with the License.  You can obtain a copy
-; in the file LICENSE in the source distribution or at
-; https://www.openssl.org/source/license.html
-
-default rel
-%define XMMWORD
-%define YMMWORD
-%define ZMMWORD
-EXTERN  OPENSSL_cpuid_setup
-
-section .CRT$XCU rdata align=8
-                DQ      OPENSSL_cpuid_setup
-
-
-common  OPENSSL_ia32cap_P 16
-
-section .text code align=64
-
-
-global  OPENSSL_atomic_add
-
-ALIGN   16
-OPENSSL_atomic_add:
-
-        mov     eax,DWORD[rcx]
-$L$spin:        lea     r8,[rax*1+rdx]
-DB      0xf0
-        cmpxchg DWORD[rcx],r8d
-        jne     NEAR $L$spin
-        mov     eax,r8d
-DB      0x48,0x98
-        DB      0F3h,0C3h               ;repret
-
-
-
-global  OPENSSL_rdtsc
-
-ALIGN   16
-OPENSSL_rdtsc:
-
-        rdtsc
-        shl     rdx,32
-        or      rax,rdx
-        DB      0F3h,0C3h               ;repret
-
-
-
-global  OPENSSL_ia32_cpuid
-
-ALIGN   16
-OPENSSL_ia32_cpuid:
-        mov     QWORD[8+rsp],rdi        ;WIN64 prologue
-        mov     QWORD[16+rsp],rsi
-        mov     rax,rsp
-$L$SEH_begin_OPENSSL_ia32_cpuid:
-        mov     rdi,rcx
-
-
-
-        mov     r8,rbx
-
-
-        xor     eax,eax
-        mov     QWORD[8+rdi],rax
-        cpuid
-        mov     r11d,eax
-
-        xor     eax,eax
-        cmp     ebx,0x756e6547
-        setne   al
-        mov     r9d,eax
-        cmp     edx,0x49656e69
-        setne   al
-        or      r9d,eax
-        cmp     ecx,0x6c65746e
-        setne   al
-        or      r9d,eax
-        jz      NEAR $L$intel
-
-        cmp     ebx,0x68747541
-        setne   al
-        mov     r10d,eax
-        cmp     edx,0x69746E65
-        setne   al
-        or      r10d,eax
-        cmp     ecx,0x444D4163
-        setne   al
-        or      r10d,eax
-        jnz     NEAR $L$intel
-
-
-        mov     eax,0x80000000
-        cpuid
-        cmp     eax,0x80000001
-        jb      NEAR $L$intel
-        mov     r10d,eax
-        mov     eax,0x80000001
-        cpuid
-        or      r9d,ecx
-        and     r9d,0x00000801
-
-        cmp     r10d,0x80000008
-        jb      NEAR $L$intel
-
-        mov     eax,0x80000008
-        cpuid
-        movzx   r10,cl
-        inc     r10
-
-        mov     eax,1
-        cpuid
-        bt      edx,28
-        jnc     NEAR $L$generic
-        shr     ebx,16
-        cmp     bl,r10b
-        ja      NEAR $L$generic
-        and     edx,0xefffffff
-        jmp     NEAR $L$generic
-
-$L$intel:
-        cmp     r11d,4
-        mov     r10d,-1
-        jb      NEAR $L$nocacheinfo
-
-        mov     eax,4
-        mov     ecx,0
-        cpuid
-        mov     r10d,eax
-        shr     r10d,14
-        and     r10d,0xfff
-
-$L$nocacheinfo:
-        mov     eax,1
-        cpuid
-        movd    xmm0,eax
-        and     edx,0xbfefffff
-        cmp     r9d,0
-        jne     NEAR $L$notintel
-        or      edx,0x40000000
-        and     ah,15
-        cmp     ah,15
-        jne     NEAR $L$notP4
-        or      edx,0x00100000
-$L$notP4:
-        cmp     ah,6
-        jne     NEAR $L$notintel
-        and     eax,0x0fff0ff0
-        cmp     eax,0x00050670
-        je      NEAR $L$knights
-        cmp     eax,0x00080650
-        jne     NEAR $L$notintel
-$L$knights:
-        and     ecx,0xfbffffff
-
-$L$notintel:
-        bt      edx,28
-        jnc     NEAR $L$generic
-        and     edx,0xefffffff
-        cmp     r10d,0
-        je      NEAR $L$generic
-
-        or      edx,0x10000000
-        shr     ebx,16
-        cmp     bl,1
-        ja      NEAR $L$generic
-        and     edx,0xefffffff
-$L$generic:
-        and     r9d,0x00000800
-        and     ecx,0xfffff7ff
-        or      r9d,ecx
-
-        mov     r10d,edx
-
-        cmp     r11d,7
-        jb      NEAR $L$no_extended_info
-        mov     eax,7
-        xor     ecx,ecx
-        cpuid
-        bt      r9d,26
-        jc      NEAR $L$notknights
-        and     ebx,0xfff7ffff
-$L$notknights:
-        movd    eax,xmm0
-        and     eax,0x0fff0ff0
-        cmp     eax,0x00050650
-        jne     NEAR $L$notskylakex
-        and     ebx,0xfffeffff
-
-$L$notskylakex:
-        mov     DWORD[8+rdi],ebx
-        mov     DWORD[12+rdi],ecx
-$L$no_extended_info:
-
-        bt      r9d,27
-        jnc     NEAR $L$clear_avx
-        xor     ecx,ecx
-DB      0x0f,0x01,0xd0
-        and     eax,0xe6
-        cmp     eax,0xe6
-        je      NEAR $L$done
-        and     DWORD[8+rdi],0x3fdeffff
-
-
-
-
-        and     eax,6
-        cmp     eax,6
-        je      NEAR $L$done
-$L$clear_avx:
-        mov     eax,0xefffe7ff
-        and     r9d,eax
-        mov     eax,0x3fdeffdf
-        and     DWORD[8+rdi],eax
-$L$done:
-        shl     r9,32
-        mov     eax,r10d
-        mov     rbx,r8
-
-        or      rax,r9
-        mov     rdi,QWORD[8+rsp]        ;WIN64 epilogue
-        mov     rsi,QWORD[16+rsp]
-        DB      0F3h,0C3h               ;repret
-
-$L$SEH_end_OPENSSL_ia32_cpuid:
-
-global  OPENSSL_cleanse
-
-ALIGN   16
-OPENSSL_cleanse:
-
-        xor     rax,rax
-        cmp     rdx,15
-        jae     NEAR $L$ot
-        cmp     rdx,0
-        je      NEAR $L$ret
-$L$ittle:
-        mov     BYTE[rcx],al
-        sub     rdx,1
-        lea     rcx,[1+rcx]
-        jnz     NEAR $L$ittle
-$L$ret:
-        DB      0F3h,0C3h               ;repret
-ALIGN   16
-$L$ot:
-        test    rcx,7
-        jz      NEAR $L$aligned
-        mov     BYTE[rcx],al
-        lea     rdx,[((-1))+rdx]
-        lea     rcx,[1+rcx]
-        jmp     NEAR $L$ot
-$L$aligned:
-        mov     QWORD[rcx],rax
-        lea     rdx,[((-8))+rdx]
-        test    rdx,-8
-        lea     rcx,[8+rcx]
-        jnz     NEAR $L$aligned
-        cmp     rdx,0
-        jne     NEAR $L$ittle
-        DB      0F3h,0C3h               ;repret
-
-
-
-global  CRYPTO_memcmp
-
-ALIGN   16
-CRYPTO_memcmp:
-
-        xor     rax,rax
-        xor     r10,r10
-        cmp     r8,0
-        je      NEAR $L$no_data
-        cmp     r8,16
-        jne     NEAR $L$oop_cmp
-        mov     r10,QWORD[rcx]
-        mov     r11,QWORD[8+rcx]
-        mov     r8,1
-        xor     r10,QWORD[rdx]
-        xor     r11,QWORD[8+rdx]
-        or      r10,r11
-        cmovnz  rax,r8
-        DB      0F3h,0C3h               ;repret
-
-ALIGN   16
-$L$oop_cmp:
-        mov     r10b,BYTE[rcx]
-        lea     rcx,[1+rcx]
-        xor     r10b,BYTE[rdx]
-        lea     rdx,[1+rdx]
-        or      al,r10b
-        dec     r8
-        jnz     NEAR $L$oop_cmp
-        neg     rax
-        shr     rax,63
-$L$no_data:
-        DB      0F3h,0C3h               ;repret
-
-
-global  OPENSSL_wipe_cpu
-
-ALIGN   16
-OPENSSL_wipe_cpu:
-        pxor    xmm0,xmm0
-        pxor    xmm1,xmm1
-        pxor    xmm2,xmm2
-        pxor    xmm3,xmm3
-        pxor    xmm4,xmm4
-        pxor    xmm5,xmm5
-        xor     rcx,rcx
-        xor     rdx,rdx
-        xor     r8,r8
-        xor     r9,r9
-        xor     r10,r10
-        xor     r11,r11
-        lea     rax,[8+rsp]
-        DB      0F3h,0C3h               ;repret
-
-global  OPENSSL_instrument_bus
-
-ALIGN   16
-OPENSSL_instrument_bus:
-
-        mov     r10,rcx
-        mov     rcx,rdx
-        mov     r11,rdx
-
-        rdtsc
-        mov     r8d,eax
-        mov     r9d,0
-        clflush [r10]
-DB      0xf0
-        add     DWORD[r10],r9d
-        jmp     NEAR $L$oop
-ALIGN   16
-$L$oop: rdtsc
-        mov     edx,eax
-        sub     eax,r8d
-        mov     r8d,edx
-        mov     r9d,eax
-        clflush [r10]
-DB      0xf0
-        add     DWORD[r10],eax
-        lea     r10,[4+r10]
-        sub     rcx,1
-        jnz     NEAR $L$oop
-
-        mov     rax,r11
-        DB      0F3h,0C3h               ;repret
-
-
-
-global  OPENSSL_instrument_bus2
-
-ALIGN   16
-OPENSSL_instrument_bus2:
-
-        mov     r10,rcx
-        mov     rcx,rdx
-        mov     r11,r8
-        mov     QWORD[8+rsp],rcx
-
-        rdtsc
-        mov     r8d,eax
-        mov     r9d,0
-
-        clflush [r10]
-DB      0xf0
-        add     DWORD[r10],r9d
-
-        rdtsc
-        mov     edx,eax
-        sub     eax,r8d
-        mov     r8d,edx
-        mov     r9d,eax
-$L$oop2:
-        clflush [r10]
-DB      0xf0
-        add     DWORD[r10],eax
-
-        sub     r11,1
-        jz      NEAR $L$done2
-
-        rdtsc
-        mov     edx,eax
-        sub     eax,r8d
-        mov     r8d,edx
-        cmp     eax,r9d
-        mov     r9d,eax
-        mov     edx,0
-        setne   dl
-        sub     rcx,rdx
-        lea     r10,[rdx*4+r10]
-        jnz     NEAR $L$oop2
-
-$L$done2:
-        mov     rax,QWORD[8+rsp]
-        sub     rax,rcx
-        DB      0F3h,0C3h               ;repret
-
-
-global  OPENSSL_ia32_rdrand_bytes
-
-ALIGN   16
-OPENSSL_ia32_rdrand_bytes:
-
-        xor     rax,rax
-        cmp     rdx,0
-        je      NEAR $L$done_rdrand_bytes
-
-        mov     r11,8
-$L$oop_rdrand_bytes:
-DB      73,15,199,242
-        jc      NEAR $L$break_rdrand_bytes
-        dec     r11
-        jnz     NEAR $L$oop_rdrand_bytes
-        jmp     NEAR $L$done_rdrand_bytes
-
-ALIGN   16
-$L$break_rdrand_bytes:
-        cmp     rdx,8
-        jb      NEAR $L$tail_rdrand_bytes
-        mov     QWORD[rcx],r10
-        lea     rcx,[8+rcx]
-        add     rax,8
-        sub     rdx,8
-        jz      NEAR $L$done_rdrand_bytes
-        mov     r11,8
-        jmp     NEAR $L$oop_rdrand_bytes
-
-ALIGN   16
-$L$tail_rdrand_bytes:
-        mov     BYTE[rcx],r10b
-        lea     rcx,[1+rcx]
-        inc     rax
-        shr     r10,8
-        dec     rdx
-        jnz     NEAR $L$tail_rdrand_bytes
-
-$L$done_rdrand_bytes:
-        xor     r10,r10
-        DB      0F3h,0C3h               ;repret
-
-
-global  OPENSSL_ia32_rdseed_bytes
-
-ALIGN   16
-OPENSSL_ia32_rdseed_bytes:
-
-        xor     rax,rax
-        cmp     rdx,0
-        je      NEAR $L$done_rdseed_bytes
-
-        mov     r11,8
-$L$oop_rdseed_bytes:
-DB      73,15,199,250
-        jc      NEAR $L$break_rdseed_bytes
-        dec     r11
-        jnz     NEAR $L$oop_rdseed_bytes
-        jmp     NEAR $L$done_rdseed_bytes
-
-ALIGN   16
-$L$break_rdseed_bytes:
-        cmp     rdx,8
-        jb      NEAR $L$tail_rdseed_bytes
-        mov     QWORD[rcx],r10
-        lea     rcx,[8+rcx]
-        add     rax,8
-        sub     rdx,8
-        jz      NEAR $L$done_rdseed_bytes
-        mov     r11,8
-        jmp     NEAR $L$oop_rdseed_bytes
-
-ALIGN   16
-$L$tail_rdseed_bytes:
-        mov     BYTE[rcx],r10b
-        lea     rcx,[1+rcx]
-        inc     rax
-        shr     r10,8
-        dec     rdx
-        jnz     NEAR $L$tail_rdseed_bytes
-
-$L$done_rdseed_bytes:
-        xor     r10,r10
-        DB      0F3h,0C3h               ;repret
-
-
diff --git a/CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/aesni-mb-x86_64.S b/CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/aesni-mb-x86_64.S
deleted file mode 100644
index 7749fd685a27..000000000000
--- a/CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/aesni-mb-x86_64.S
+++ /dev/null
@@ -1,552 +0,0 @@
-# WARNING: do not edit!
-# Generated from openssl/crypto/aes/asm/aesni-mb-x86_64.pl
-#
-# Copyright 2013-2020 The OpenSSL Project Authors. All Rights Reserved.
-#
-# Licensed under the OpenSSL license (the "License").  You may not use
-# this file except in compliance with the License.  You can obtain a copy
-# in the file LICENSE in the source distribution or at
-# https://www.openssl.org/source/license.html
-
-.text
-
-
-
-.globl  aesni_multi_cbc_encrypt
-.type   aesni_multi_cbc_encrypt, at function
-.align  32
-aesni_multi_cbc_encrypt:
-.cfi_startproc
-        movq    %rsp,%rax
-.cfi_def_cfa_register   %rax
-        pushq   %rbx
-.cfi_offset     %rbx,-16
-        pushq   %rbp
-.cfi_offset     %rbp,-24
-        pushq   %r12
-.cfi_offset     %r12,-32
-        pushq   %r13
-.cfi_offset     %r13,-40
-        pushq   %r14
-.cfi_offset     %r14,-48
-        pushq   %r15
-.cfi_offset     %r15,-56
-
-
-
-
-
-
-        subq    $48,%rsp
-        andq    $-64,%rsp
-        movq    %rax,16(%rsp)
-.cfi_escape     0x0f,0x05,0x77,0x10,0x06,0x23,0x08
-
-.Lenc4x_body:
-        movdqu  (%rsi),%xmm12
-        leaq    120(%rsi),%rsi
-        leaq    80(%rdi),%rdi
-
-.Lenc4x_loop_grande:
-        movl    %edx,24(%rsp)
-        xorl    %edx,%edx
-        movl    -64(%rdi),%ecx
-        movq    -80(%rdi),%r8
-        cmpl    %edx,%ecx
-        movq    -72(%rdi),%r12
-        cmovgl  %ecx,%edx
-        testl   %ecx,%ecx
-        movdqu  -56(%rdi),%xmm2
-        movl    %ecx,32(%rsp)
-        cmovleq %rsp,%r8
-        movl    -24(%rdi),%ecx
-        movq    -40(%rdi),%r9
-        cmpl    %edx,%ecx
-        movq    -32(%rdi),%r13
-        cmovgl  %ecx,%edx
-        testl   %ecx,%ecx
-        movdqu  -16(%rdi),%xmm3
-        movl    %ecx,36(%rsp)
-        cmovleq %rsp,%r9
-        movl    16(%rdi),%ecx
-        movq    0(%rdi),%r10
-        cmpl    %edx,%ecx
-        movq    8(%rdi),%r14
-        cmovgl  %ecx,%edx
-        testl   %ecx,%ecx
-        movdqu  24(%rdi),%xmm4
-        movl    %ecx,40(%rsp)
-        cmovleq %rsp,%r10
-        movl    56(%rdi),%ecx
-        movq    40(%rdi),%r11
-        cmpl    %edx,%ecx
-        movq    48(%rdi),%r15
-        cmovgl  %ecx,%edx
-        testl   %ecx,%ecx
-        movdqu  64(%rdi),%xmm5
-        movl    %ecx,44(%rsp)
-        cmovleq %rsp,%r11
-        testl   %edx,%edx
-        jz      .Lenc4x_done
-
-        movups  16-120(%rsi),%xmm1
-        pxor    %xmm12,%xmm2
-        movups  32-120(%rsi),%xmm0
-        pxor    %xmm12,%xmm3
-        movl    240-120(%rsi),%eax
-        pxor    %xmm12,%xmm4
-        movdqu  (%r8),%xmm6
-        pxor    %xmm12,%xmm5
-        movdqu  (%r9),%xmm7
-        pxor    %xmm6,%xmm2
-        movdqu  (%r10),%xmm8
-        pxor    %xmm7,%xmm3
-        movdqu  (%r11),%xmm9
-        pxor    %xmm8,%xmm4
-        pxor    %xmm9,%xmm5
-        movdqa  32(%rsp),%xmm10
-        xorq    %rbx,%rbx
-        jmp     .Loop_enc4x
-
-.align  32
-.Loop_enc4x:
-        addq    $16,%rbx
-        leaq    16(%rsp),%rbp
-        movl    $1,%ecx
-        subq    %rbx,%rbp
-
-.byte   102,15,56,220,209
-        prefetcht0      31(%r8,%rbx,1)
-        prefetcht0      31(%r9,%rbx,1)
-.byte   102,15,56,220,217
-        prefetcht0      31(%r10,%rbx,1)
-        prefetcht0      31(%r10,%rbx,1)
-.byte   102,15,56,220,225
-.byte   102,15,56,220,233
-        movups  48-120(%rsi),%xmm1
-        cmpl    32(%rsp),%ecx
-.byte   102,15,56,220,208
-.byte   102,15,56,220,216
-.byte   102,15,56,220,224
-        cmovgeq %rbp,%r8
-        cmovgq  %rbp,%r12
-.byte   102,15,56,220,232
-        movups  -56(%rsi),%xmm0
-        cmpl    36(%rsp),%ecx
-.byte   102,15,56,220,209
-.byte   102,15,56,220,217
-.byte   102,15,56,220,225
-        cmovgeq %rbp,%r9
-        cmovgq  %rbp,%r13
-.byte   102,15,56,220,233
-        movups  -40(%rsi),%xmm1
-        cmpl    40(%rsp),%ecx
-.byte   102,15,56,220,208
-.byte   102,15,56,220,216
-.byte   102,15,56,220,224
-        cmovgeq %rbp,%r10
-        cmovgq  %rbp,%r14
-.byte   102,15,56,220,232
-        movups  -24(%rsi),%xmm0
-        cmpl    44(%rsp),%ecx
-.byte   102,15,56,220,209
-.byte   102,15,56,220,217
-.byte   102,15,56,220,225
-        cmovgeq %rbp,%r11
-        cmovgq  %rbp,%r15
-.byte   102,15,56,220,233
-        movups  -8(%rsi),%xmm1
-        movdqa  %xmm10,%xmm11
-.byte   102,15,56,220,208
-        prefetcht0      15(%r12,%rbx,1)
-        prefetcht0      15(%r13,%rbx,1)
-.byte   102,15,56,220,216
-        prefetcht0      15(%r14,%rbx,1)
-        prefetcht0      15(%r15,%rbx,1)
-.byte   102,15,56,220,224
-.byte   102,15,56,220,232
-        movups  128-120(%rsi),%xmm0
-        pxor    %xmm12,%xmm12
-
-.byte   102,15,56,220,209
-        pcmpgtd %xmm12,%xmm11
-        movdqu  -120(%rsi),%xmm12
-.byte   102,15,56,220,217
-        paddd   %xmm11,%xmm10
-        movdqa  %xmm10,32(%rsp)
-.byte   102,15,56,220,225
-.byte   102,15,56,220,233
-        movups  144-120(%rsi),%xmm1
-
-        cmpl    $11,%eax
-
-.byte   102,15,56,220,208
-.byte   102,15,56,220,216
-.byte   102,15,56,220,224
-.byte   102,15,56,220,232
-        movups  160-120(%rsi),%xmm0
-
-        jb      .Lenc4x_tail
-
-.byte   102,15,56,220,209
-.byte   102,15,56,220,217
-.byte   102,15,56,220,225
-.byte   102,15,56,220,233
-        movups  176-120(%rsi),%xmm1
-
-.byte   102,15,56,220,208
-.byte   102,15,56,220,216
-.byte   102,15,56,220,224
-.byte   102,15,56,220,232
-        movups  192-120(%rsi),%xmm0
-
-        je      .Lenc4x_tail
-
-.byte   102,15,56,220,209
-.byte   102,15,56,220,217
-.byte   102,15,56,220,225
-.byte   102,15,56,220,233
-        movups  208-120(%rsi),%xmm1
-
-.byte   102,15,56,220,208
-.byte   102,15,56,220,216
-.byte   102,15,56,220,224
-.byte   102,15,56,220,232
-        movups  224-120(%rsi),%xmm0
-        jmp     .Lenc4x_tail
-
-.align  32
-.Lenc4x_tail:
-.byte   102,15,56,220,209
-.byte   102,15,56,220,217
-.byte   102,15,56,220,225
-.byte   102,15,56,220,233
-        movdqu  (%r8,%rbx,1),%xmm6
-        movdqu  16-120(%rsi),%xmm1
-
-.byte   102,15,56,221,208
-        movdqu  (%r9,%rbx,1),%xmm7
-        pxor    %xmm12,%xmm6
-.byte   102,15,56,221,216
-        movdqu  (%r10,%rbx,1),%xmm8
-        pxor    %xmm12,%xmm7
-.byte   102,15,56,221,224
-        movdqu  (%r11,%rbx,1),%xmm9
-        pxor    %xmm12,%xmm8
-.byte   102,15,56,221,232
-        movdqu  32-120(%rsi),%xmm0
-        pxor    %xmm12,%xmm9
-
-        movups  %xmm2,-16(%r12,%rbx,1)
-        pxor    %xmm6,%xmm2
-        movups  %xmm3,-16(%r13,%rbx,1)
-        pxor    %xmm7,%xmm3
-        movups  %xmm4,-16(%r14,%rbx,1)
-        pxor    %xmm8,%xmm4
-        movups  %xmm5,-16(%r15,%rbx,1)
-        pxor    %xmm9,%xmm5
-
-        decl    %edx
-        jnz     .Loop_enc4x
-
-        movq    16(%rsp),%rax
-.cfi_def_cfa    %rax,8
-        movl    24(%rsp),%edx
-
-
-
-
-
-
-
-
-
-
-        leaq    160(%rdi),%rdi
-        decl    %edx
-        jnz     .Lenc4x_loop_grande
-
-.Lenc4x_done:
-        movq    -48(%rax),%r15
-.cfi_restore    %r15
-        movq    -40(%rax),%r14
-.cfi_restore    %r14
-        movq    -32(%rax),%r13
-.cfi_restore    %r13
-        movq    -24(%rax),%r12
-.cfi_restore    %r12
-        movq    -16(%rax),%rbp
-.cfi_restore    %rbp
-        movq    -8(%rax),%rbx
-.cfi_restore    %rbx
-        leaq    (%rax),%rsp
-.cfi_def_cfa_register   %rsp
-.Lenc4x_epilogue:
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   aesni_multi_cbc_encrypt,.-aesni_multi_cbc_encrypt
-
-.globl  aesni_multi_cbc_decrypt
-.type   aesni_multi_cbc_decrypt, at function
-.align  32
-aesni_multi_cbc_decrypt:
-.cfi_startproc
-        movq    %rsp,%rax
-.cfi_def_cfa_register   %rax
-        pushq   %rbx
-.cfi_offset     %rbx,-16
-        pushq   %rbp
-.cfi_offset     %rbp,-24
-        pushq   %r12
-.cfi_offset     %r12,-32
-        pushq   %r13
-.cfi_offset     %r13,-40
-        pushq   %r14
-.cfi_offset     %r14,-48
-        pushq   %r15
-.cfi_offset     %r15,-56
-
-
-
-
-
-
-        subq    $48,%rsp
-        andq    $-64,%rsp
-        movq    %rax,16(%rsp)
-.cfi_escape     0x0f,0x05,0x77,0x10,0x06,0x23,0x08
-
-.Ldec4x_body:
-        movdqu  (%rsi),%xmm12
-        leaq    120(%rsi),%rsi
-        leaq    80(%rdi),%rdi
-
-.Ldec4x_loop_grande:
-        movl    %edx,24(%rsp)
-        xorl    %edx,%edx
-        movl    -64(%rdi),%ecx
-        movq    -80(%rdi),%r8
-        cmpl    %edx,%ecx
-        movq    -72(%rdi),%r12
-        cmovgl  %ecx,%edx
-        testl   %ecx,%ecx
-        movdqu  -56(%rdi),%xmm6
-        movl    %ecx,32(%rsp)
-        cmovleq %rsp,%r8
-        movl    -24(%rdi),%ecx
-        movq    -40(%rdi),%r9
-        cmpl    %edx,%ecx
-        movq    -32(%rdi),%r13
-        cmovgl  %ecx,%edx
-        testl   %ecx,%ecx
-        movdqu  -16(%rdi),%xmm7
-        movl    %ecx,36(%rsp)
-        cmovleq %rsp,%r9
-        movl    16(%rdi),%ecx
-        movq    0(%rdi),%r10
-        cmpl    %edx,%ecx
-        movq    8(%rdi),%r14
-        cmovgl  %ecx,%edx
-        testl   %ecx,%ecx
-        movdqu  24(%rdi),%xmm8
-        movl    %ecx,40(%rsp)
-        cmovleq %rsp,%r10
-        movl    56(%rdi),%ecx
-        movq    40(%rdi),%r11
-        cmpl    %edx,%ecx
-        movq    48(%rdi),%r15
-        cmovgl  %ecx,%edx
-        testl   %ecx,%ecx
-        movdqu  64(%rdi),%xmm9
-        movl    %ecx,44(%rsp)
-        cmovleq %rsp,%r11
-        testl   %edx,%edx
-        jz      .Ldec4x_done
-
-        movups  16-120(%rsi),%xmm1
-        movups  32-120(%rsi),%xmm0
-        movl    240-120(%rsi),%eax
-        movdqu  (%r8),%xmm2
-        movdqu  (%r9),%xmm3
-        pxor    %xmm12,%xmm2
-        movdqu  (%r10),%xmm4
-        pxor    %xmm12,%xmm3
-        movdqu  (%r11),%xmm5
-        pxor    %xmm12,%xmm4
-        pxor    %xmm12,%xmm5
-        movdqa  32(%rsp),%xmm10
-        xorq    %rbx,%rbx
-        jmp     .Loop_dec4x
-
-.align  32
-.Loop_dec4x:
-        addq    $16,%rbx
-        leaq    16(%rsp),%rbp
-        movl    $1,%ecx
-        subq    %rbx,%rbp
-
-.byte   102,15,56,222,209
-        prefetcht0      31(%r8,%rbx,1)
-        prefetcht0      31(%r9,%rbx,1)
-.byte   102,15,56,222,217
-        prefetcht0      31(%r10,%rbx,1)
-        prefetcht0      31(%r11,%rbx,1)
-.byte   102,15,56,222,225
-.byte   102,15,56,222,233
-        movups  48-120(%rsi),%xmm1
-        cmpl    32(%rsp),%ecx
-.byte   102,15,56,222,208
-.byte   102,15,56,222,216
-.byte   102,15,56,222,224
-        cmovgeq %rbp,%r8
-        cmovgq  %rbp,%r12
-.byte   102,15,56,222,232
-        movups  -56(%rsi),%xmm0
-        cmpl    36(%rsp),%ecx
-.byte   102,15,56,222,209
-.byte   102,15,56,222,217
-.byte   102,15,56,222,225
-        cmovgeq %rbp,%r9
-        cmovgq  %rbp,%r13
-.byte   102,15,56,222,233
-        movups  -40(%rsi),%xmm1
-        cmpl    40(%rsp),%ecx
-.byte   102,15,56,222,208
-.byte   102,15,56,222,216
-.byte   102,15,56,222,224
-        cmovgeq %rbp,%r10
-        cmovgq  %rbp,%r14
-.byte   102,15,56,222,232
-        movups  -24(%rsi),%xmm0
-        cmpl    44(%rsp),%ecx
-.byte   102,15,56,222,209
-.byte   102,15,56,222,217
-.byte   102,15,56,222,225
-        cmovgeq %rbp,%r11
-        cmovgq  %rbp,%r15
-.byte   102,15,56,222,233
-        movups  -8(%rsi),%xmm1
-        movdqa  %xmm10,%xmm11
-.byte   102,15,56,222,208
-        prefetcht0      15(%r12,%rbx,1)
-        prefetcht0      15(%r13,%rbx,1)
-.byte   102,15,56,222,216
-        prefetcht0      15(%r14,%rbx,1)
-        prefetcht0      15(%r15,%rbx,1)
-.byte   102,15,56,222,224
-.byte   102,15,56,222,232
-        movups  128-120(%rsi),%xmm0
-        pxor    %xmm12,%xmm12
-
-.byte   102,15,56,222,209
-        pcmpgtd %xmm12,%xmm11
-        movdqu  -120(%rsi),%xmm12
-.byte   102,15,56,222,217
-        paddd   %xmm11,%xmm10
-        movdqa  %xmm10,32(%rsp)
-.byte   102,15,56,222,225
-.byte   102,15,56,222,233
-        movups  144-120(%rsi),%xmm1
-
-        cmpl    $11,%eax
-
-.byte   102,15,56,222,208
-.byte   102,15,56,222,216
-.byte   102,15,56,222,224
-.byte   102,15,56,222,232
-        movups  160-120(%rsi),%xmm0
-
-        jb      .Ldec4x_tail
-
-.byte   102,15,56,222,209
-.byte   102,15,56,222,217
-.byte   102,15,56,222,225
-.byte   102,15,56,222,233
-        movups  176-120(%rsi),%xmm1
-
-.byte   102,15,56,222,208
-.byte   102,15,56,222,216
-.byte   102,15,56,222,224
-.byte   102,15,56,222,232
-        movups  192-120(%rsi),%xmm0
-
-        je      .Ldec4x_tail
-
-.byte   102,15,56,222,209
-.byte   102,15,56,222,217
-.byte   102,15,56,222,225
-.byte   102,15,56,222,233
-        movups  208-120(%rsi),%xmm1
-
-.byte   102,15,56,222,208
-.byte   102,15,56,222,216
-.byte   102,15,56,222,224
-.byte   102,15,56,222,232
-        movups  224-120(%rsi),%xmm0
-        jmp     .Ldec4x_tail
-
-.align  32
-.Ldec4x_tail:
-.byte   102,15,56,222,209
-.byte   102,15,56,222,217
-.byte   102,15,56,222,225
-        pxor    %xmm0,%xmm6
-        pxor    %xmm0,%xmm7
-.byte   102,15,56,222,233
-        movdqu  16-120(%rsi),%xmm1
-        pxor    %xmm0,%xmm8
-        pxor    %xmm0,%xmm9
-        movdqu  32-120(%rsi),%xmm0
-
-.byte   102,15,56,223,214
-.byte   102,15,56,223,223
-        movdqu  -16(%r8,%rbx,1),%xmm6
-        movdqu  -16(%r9,%rbx,1),%xmm7
-.byte   102,65,15,56,223,224
-.byte   102,65,15,56,223,233
-        movdqu  -16(%r10,%rbx,1),%xmm8
-        movdqu  -16(%r11,%rbx,1),%xmm9
-
-        movups  %xmm2,-16(%r12,%rbx,1)
-        movdqu  (%r8,%rbx,1),%xmm2
-        movups  %xmm3,-16(%r13,%rbx,1)
-        movdqu  (%r9,%rbx,1),%xmm3
-        pxor    %xmm12,%xmm2
-        movups  %xmm4,-16(%r14,%rbx,1)
-        movdqu  (%r10,%rbx,1),%xmm4
-        pxor    %xmm12,%xmm3
-        movups  %xmm5,-16(%r15,%rbx,1)
-        movdqu  (%r11,%rbx,1),%xmm5
-        pxor    %xmm12,%xmm4
-        pxor    %xmm12,%xmm5
-
-        decl    %edx
-        jnz     .Loop_dec4x
-
-        movq    16(%rsp),%rax
-.cfi_def_cfa    %rax,8
-        movl    24(%rsp),%edx
-
-        leaq    160(%rdi),%rdi
-        decl    %edx
-        jnz     .Ldec4x_loop_grande
-
-.Ldec4x_done:
-        movq    -48(%rax),%r15
-.cfi_restore    %r15
-        movq    -40(%rax),%r14
-.cfi_restore    %r14
-        movq    -32(%rax),%r13
-.cfi_restore    %r13
-        movq    -24(%rax),%r12
-.cfi_restore    %r12
-        movq    -16(%rax),%rbp
-.cfi_restore    %rbp
-        movq    -8(%rax),%rbx
-.cfi_restore    %rbx
-        leaq    (%rax),%rsp
-.cfi_def_cfa_register   %rsp
-.Ldec4x_epilogue:
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   aesni_multi_cbc_decrypt,.-aesni_multi_cbc_decrypt
diff --git a/CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/aesni-sha1-x86_64.S b/CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/aesni-sha1-x86_64.S
deleted file mode 100644
index ab763a2eec37..000000000000
--- a/CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/aesni-sha1-x86_64.S
+++ /dev/null
@@ -1,1719 +0,0 @@
-# WARNING: do not edit!
-# Generated from openssl/crypto/aes/asm/aesni-sha1-x86_64.pl
-#
-# Copyright 2011-2020 The OpenSSL Project Authors. All Rights Reserved.
-#
-# Licensed under the OpenSSL license (the "License").  You may not use
-# this file except in compliance with the License.  You can obtain a copy
-# in the file LICENSE in the source distribution or at
-# https://www.openssl.org/source/license.html
-
-.text
-
-
-.globl  aesni_cbc_sha1_enc
-.type   aesni_cbc_sha1_enc, at function
-.align  32
-aesni_cbc_sha1_enc:
-.cfi_startproc
-
-        movl    OPENSSL_ia32cap_P+0(%rip),%r10d
-        movq    OPENSSL_ia32cap_P+4(%rip),%r11
-        btq     $61,%r11
-        jc      aesni_cbc_sha1_enc_shaext
-        jmp     aesni_cbc_sha1_enc_ssse3
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   aesni_cbc_sha1_enc,.-aesni_cbc_sha1_enc
-.type   aesni_cbc_sha1_enc_ssse3, at function
-.align  32
-aesni_cbc_sha1_enc_ssse3:
-.cfi_startproc
-        movq    8(%rsp),%r10
-
-
-        pushq   %rbx
-.cfi_adjust_cfa_offset  8
-.cfi_offset     %rbx,-16
-        pushq   %rbp
-.cfi_adjust_cfa_offset  8
-.cfi_offset     %rbp,-24
-        pushq   %r12
-.cfi_adjust_cfa_offset  8
-.cfi_offset     %r12,-32
-        pushq   %r13
-.cfi_adjust_cfa_offset  8
-.cfi_offset     %r13,-40
-        pushq   %r14
-.cfi_adjust_cfa_offset  8
-.cfi_offset     %r14,-48
-        pushq   %r15
-.cfi_adjust_cfa_offset  8
-.cfi_offset     %r15,-56
-        leaq    -104(%rsp),%rsp
-.cfi_adjust_cfa_offset  104
-
-
-        movq    %rdi,%r12
-        movq    %rsi,%r13
-        movq    %rdx,%r14
-        leaq    112(%rcx),%r15
-        movdqu  (%r8),%xmm2
-        movq    %r8,88(%rsp)
-        shlq    $6,%r14
-        subq    %r12,%r13
-        movl    240-112(%r15),%r8d
-        addq    %r10,%r14
-
-        leaq    K_XX_XX(%rip),%r11
-        movl    0(%r9),%eax
-        movl    4(%r9),%ebx
-        movl    8(%r9),%ecx
-        movl    12(%r9),%edx
-        movl    %ebx,%esi
-        movl    16(%r9),%ebp
-        movl    %ecx,%edi
-        xorl    %edx,%edi
-        andl    %edi,%esi
-
-        movdqa  64(%r11),%xmm3
-        movdqa  0(%r11),%xmm13
-        movdqu  0(%r10),%xmm4
-        movdqu  16(%r10),%xmm5
-        movdqu  32(%r10),%xmm6
-        movdqu  48(%r10),%xmm7
-.byte   102,15,56,0,227
-.byte   102,15,56,0,235
-.byte   102,15,56,0,243
-        addq    $64,%r10
-        paddd   %xmm13,%xmm4
-.byte   102,15,56,0,251
-        paddd   %xmm13,%xmm5
-        paddd   %xmm13,%xmm6
-        movdqa  %xmm4,0(%rsp)
-        psubd   %xmm13,%xmm4
-        movdqa  %xmm5,16(%rsp)
-        psubd   %xmm13,%xmm5
-        movdqa  %xmm6,32(%rsp)
-        psubd   %xmm13,%xmm6
-        movups  -112(%r15),%xmm15
-        movups  16-112(%r15),%xmm0
-        jmp     .Loop_ssse3
-.align  32
-.Loop_ssse3:
-        rorl    $2,%ebx
-        movups  0(%r12),%xmm14
-        xorps   %xmm15,%xmm14
-        xorps   %xmm14,%xmm2
-        movups  -80(%r15),%xmm1
-.byte   102,15,56,220,208
-        pshufd  $238,%xmm4,%xmm8
-        xorl    %edx,%esi
-        movdqa  %xmm7,%xmm12
-        paddd   %xmm7,%xmm13
-        movl    %eax,%edi
-        addl    0(%rsp),%ebp
-        punpcklqdq      %xmm5,%xmm8
-        xorl    %ecx,%ebx
-        roll    $5,%eax
-        addl    %esi,%ebp
-        psrldq  $4,%xmm12
-        andl    %ebx,%edi
-        xorl    %ecx,%ebx
-        pxor    %xmm4,%xmm8
-        addl    %eax,%ebp
-        rorl    $7,%eax
-        pxor    %xmm6,%xmm12
-        xorl    %ecx,%edi
-        movl    %ebp,%esi
-        addl    4(%rsp),%edx
-        pxor    %xmm12,%xmm8
-        xorl    %ebx,%eax
-        roll    $5,%ebp
-        movdqa  %xmm13,48(%rsp)
-        addl    %edi,%edx
-        movups  -64(%r15),%xmm0
-.byte   102,15,56,220,209
-        andl    %eax,%esi
-        movdqa  %xmm8,%xmm3
-        xorl    %ebx,%eax
-        addl    %ebp,%edx
-        rorl    $7,%ebp
-        movdqa  %xmm8,%xmm12
-        xorl    %ebx,%esi
-        pslldq  $12,%xmm3
-        paddd   %xmm8,%xmm8
-        movl    %edx,%edi
-        addl    8(%rsp),%ecx
-        psrld   $31,%xmm12
-        xorl    %eax,%ebp
-        roll    $5,%edx
-        addl    %esi,%ecx
-        movdqa  %xmm3,%xmm13
-        andl    %ebp,%edi
-        xorl    %eax,%ebp
-        psrld   $30,%xmm3
-        addl    %edx,%ecx
-        rorl    $7,%edx
-        por     %xmm12,%xmm8
-        xorl    %eax,%edi
-        movl    %ecx,%esi
-        addl    12(%rsp),%ebx
-        movups  -48(%r15),%xmm1
-.byte   102,15,56,220,208
-        pslld   $2,%xmm13
-        pxor    %xmm3,%xmm8
-        xorl    %ebp,%edx
-        movdqa  0(%r11),%xmm3
-        roll    $5,%ecx
-        addl    %edi,%ebx
-        andl    %edx,%esi
-        pxor    %xmm13,%xmm8
-        xorl    %ebp,%edx
-        addl    %ecx,%ebx
-        rorl    $7,%ecx
-        pshufd  $238,%xmm5,%xmm9
-        xorl    %ebp,%esi
-        movdqa  %xmm8,%xmm13
-        paddd   %xmm8,%xmm3
-        movl    %ebx,%edi
-        addl    16(%rsp),%eax
-        punpcklqdq      %xmm6,%xmm9
-        xorl    %edx,%ecx
-        roll    $5,%ebx
-        addl    %esi,%eax
-        psrldq  $4,%xmm13
-        andl    %ecx,%edi
-        xorl    %edx,%ecx
-        pxor    %xmm5,%xmm9
-        addl    %ebx,%eax
-        rorl    $7,%ebx
-        movups  -32(%r15),%xmm0
-.byte   102,15,56,220,209
-        pxor    %xmm7,%xmm13
-        xorl    %edx,%edi
-        movl    %eax,%esi
-        addl    20(%rsp),%ebp
-        pxor    %xmm13,%xmm9
-        xorl    %ecx,%ebx
-        roll    $5,%eax
-        movdqa  %xmm3,0(%rsp)
-        addl    %edi,%ebp
-        andl    %ebx,%esi
-        movdqa  %xmm9,%xmm12
-        xorl    %ecx,%ebx
-        addl    %eax,%ebp
-        rorl    $7,%eax
-        movdqa  %xmm9,%xmm13
-        xorl    %ecx,%esi
-        pslldq  $12,%xmm12
-        paddd   %xmm9,%xmm9
-        movl    %ebp,%edi
-        addl    24(%rsp),%edx
-        psrld   $31,%xmm13
-        xorl    %ebx,%eax
-        roll    $5,%ebp
-        addl    %esi,%edx
-        movups  -16(%r15),%xmm1
-.byte   102,15,56,220,208
-        movdqa  %xmm12,%xmm3
-        andl    %eax,%edi
-        xorl    %ebx,%eax
-        psrld   $30,%xmm12
-        addl    %ebp,%edx
-        rorl    $7,%ebp
-        por     %xmm13,%xmm9
-        xorl    %ebx,%edi
-        movl    %edx,%esi
-        addl    28(%rsp),%ecx
-        pslld   $2,%xmm3
-        pxor    %xmm12,%xmm9
-        xorl    %eax,%ebp
-        movdqa  16(%r11),%xmm12
-        roll    $5,%edx
-        addl    %edi,%ecx
-        andl    %ebp,%esi
-        pxor    %xmm3,%xmm9
-        xorl    %eax,%ebp
-        addl    %edx,%ecx
-        rorl    $7,%edx
-        pshufd  $238,%xmm6,%xmm10
-        xorl    %eax,%esi
-        movdqa  %xmm9,%xmm3
-        paddd   %xmm9,%xmm12
-        movl    %ecx,%edi
-        addl    32(%rsp),%ebx
-        movups  0(%r15),%xmm0
-.byte   102,15,56,220,209
-        punpcklqdq      %xmm7,%xmm10
-        xorl    %ebp,%edx
-        roll    $5,%ecx
-        addl    %esi,%ebx
-        psrldq  $4,%xmm3
-        andl    %edx,%edi
-        xorl    %ebp,%edx
-        pxor    %xmm6,%xmm10
-        addl    %ecx,%ebx
-        rorl    $7,%ecx
-        pxor    %xmm8,%xmm3
-        xorl    %ebp,%edi
-        movl    %ebx,%esi
-        addl    36(%rsp),%eax
-        pxor    %xmm3,%xmm10
-        xorl    %edx,%ecx
-        roll    $5,%ebx
-        movdqa  %xmm12,16(%rsp)
-        addl    %edi,%eax
-        andl    %ecx,%esi
-        movdqa  %xmm10,%xmm13
-        xorl    %edx,%ecx
-        addl    %ebx,%eax
-        rorl    $7,%ebx
-        movups  16(%r15),%xmm1
-.byte   102,15,56,220,208
-        movdqa  %xmm10,%xmm3
-        xorl    %edx,%esi
-        pslldq  $12,%xmm13
-        paddd   %xmm10,%xmm10
-        movl    %eax,%edi
-        addl    40(%rsp),%ebp
-        psrld   $31,%xmm3
-        xorl    %ecx,%ebx
-        roll    $5,%eax
-        addl    %esi,%ebp
-        movdqa  %xmm13,%xmm12
-        andl    %ebx,%edi
-        xorl    %ecx,%ebx
-        psrld   $30,%xmm13
-        addl    %eax,%ebp
-        rorl    $7,%eax
-        por     %xmm3,%xmm10
-        xorl    %ecx,%edi
-        movl    %ebp,%esi
-        addl    44(%rsp),%edx
-        pslld   $2,%xmm12
-        pxor    %xmm13,%xmm10
-        xorl    %ebx,%eax
-        movdqa  16(%r11),%xmm13
-        roll    $5,%ebp
-        addl    %edi,%edx
-        movups  32(%r15),%xmm0
-.byte   102,15,56,220,209
-        andl    %eax,%esi
-        pxor    %xmm12,%xmm10
-        xorl    %ebx,%eax
-        addl    %ebp,%edx
-        rorl    $7,%ebp
-        pshufd  $238,%xmm7,%xmm11
-        xorl    %ebx,%esi
-        movdqa  %xmm10,%xmm12
-        paddd   %xmm10,%xmm13
-        movl    %edx,%edi
-        addl    48(%rsp),%ecx
-        punpcklqdq      %xmm8,%xmm11
-        xorl    %eax,%ebp
-        roll    $5,%edx
-        addl    %esi,%ecx
-        psrldq  $4,%xmm12
-        andl    %ebp,%edi
-        xorl    %eax,%ebp
-        pxor    %xmm7,%xmm11
-        addl    %edx,%ecx
-        rorl    $7,%edx
-        pxor    %xmm9,%xmm12
-        xorl    %eax,%edi
-        movl    %ecx,%esi
-        addl    52(%rsp),%ebx
-        movups  48(%r15),%xmm1
-.byte   102,15,56,220,208
-        pxor    %xmm12,%xmm11
-        xorl    %ebp,%edx
-        roll    $5,%ecx
-        movdqa  %xmm13,32(%rsp)
-        addl    %edi,%ebx
-        andl    %edx,%esi
-        movdqa  %xmm11,%xmm3
-        xorl    %ebp,%edx
-        addl    %ecx,%ebx
-        rorl    $7,%ecx
-        movdqa  %xmm11,%xmm12
-        xorl    %ebp,%esi
-        pslldq  $12,%xmm3
-        paddd   %xmm11,%xmm11
-        movl    %ebx,%edi
-        addl    56(%rsp),%eax
-        psrld   $31,%xmm12
-        xorl    %edx,%ecx
-        roll    $5,%ebx
-        addl    %esi,%eax
-        movdqa  %xmm3,%xmm13
-        andl    %ecx,%edi
-        xorl    %edx,%ecx
-        psrld   $30,%xmm3
-        addl    %ebx,%eax
-        rorl    $7,%ebx
-        cmpl    $11,%r8d
-        jb      .Laesenclast1
-        movups  64(%r15),%xmm0
-.byte   102,15,56,220,209
-        movups  80(%r15),%xmm1
-.byte   102,15,56,220,208
-        je      .Laesenclast1
-        movups  96(%r15),%xmm0
-.byte   102,15,56,220,209
-        movups  112(%r15),%xmm1
-.byte   102,15,56,220,208
-.Laesenclast1:
-.byte   102,15,56,221,209
-        movups  16-112(%r15),%xmm0
-        por     %xmm12,%xmm11
-        xorl    %edx,%edi
-        movl    %eax,%esi
-        addl    60(%rsp),%ebp
-        pslld   $2,%xmm13
-        pxor    %xmm3,%xmm11
-        xorl    %ecx,%ebx
-        movdqa  16(%r11),%xmm3
-        roll    $5,%eax
-        addl    %edi,%ebp
-        andl    %ebx,%esi
-        pxor    %xmm13,%xmm11
-        pshufd  $238,%xmm10,%xmm13
-        xorl    %ecx,%ebx
-        addl    %eax,%ebp
-        rorl    $7,%eax
-        pxor    %xmm8,%xmm4
-        xorl    %ecx,%esi
-        movl    %ebp,%edi
-        addl    0(%rsp),%edx
-        punpcklqdq      %xmm11,%xmm13
-        xorl    %ebx,%eax
-        roll    $5,%ebp
-        pxor    %xmm5,%xmm4
-        addl    %esi,%edx
-        movups  16(%r12),%xmm14
-        xorps   %xmm15,%xmm14
-        movups  %xmm2,0(%r12,%r13,1)
-        xorps   %xmm14,%xmm2
-        movups  -80(%r15),%xmm1
-.byte   102,15,56,220,208
-        andl    %eax,%edi
-        movdqa  %xmm3,%xmm12
-        xorl    %ebx,%eax
-        paddd   %xmm11,%xmm3
-        addl    %ebp,%edx
-        pxor    %xmm13,%xmm4
-        rorl    $7,%ebp
-        xorl    %ebx,%edi
-        movl    %edx,%esi
-        addl    4(%rsp),%ecx
-        movdqa  %xmm4,%xmm13
-        xorl    %eax,%ebp
-        roll    $5,%edx
-        movdqa  %xmm3,48(%rsp)
-        addl    %edi,%ecx
-        andl    %ebp,%esi
-        xorl    %eax,%ebp
-        pslld   $2,%xmm4
-        addl    %edx,%ecx
-        rorl    $7,%edx
-        psrld   $30,%xmm13
-        xorl    %eax,%esi
-        movl    %ecx,%edi
-        addl    8(%rsp),%ebx
-        movups  -64(%r15),%xmm0
-.byte   102,15,56,220,209
-        por     %xmm13,%xmm4
-        xorl    %ebp,%edx
-        roll    $5,%ecx
-        pshufd  $238,%xmm11,%xmm3
-        addl    %esi,%ebx
-        andl    %edx,%edi
-        xorl    %ebp,%edx
-        addl    %ecx,%ebx
-        addl    12(%rsp),%eax
-        xorl    %ebp,%edi
-        movl    %ebx,%esi
-        roll    $5,%ebx
-        addl    %edi,%eax
-        xorl    %edx,%esi
-        rorl    $7,%ecx
-        addl    %ebx,%eax
-        pxor    %xmm9,%xmm5
-        addl    16(%rsp),%ebp
-        movups  -48(%r15),%xmm1
-.byte   102,15,56,220,208
-        xorl    %ecx,%esi
-        punpcklqdq      %xmm4,%xmm3
-        movl    %eax,%edi
-        roll    $5,%eax
-        pxor    %xmm6,%xmm5
-        addl    %esi,%ebp
-        xorl    %ecx,%edi
-        movdqa  %xmm12,%xmm13
-        rorl    $7,%ebx
-        paddd   %xmm4,%xmm12
-        addl    %eax,%ebp
-        pxor    %xmm3,%xmm5
-        addl    20(%rsp),%edx
-        xorl    %ebx,%edi
-        movl    %ebp,%esi
-        roll    $5,%ebp
-        movdqa  %xmm5,%xmm3
-        addl    %edi,%edx
-        xorl    %ebx,%esi
-        movdqa  %xmm12,0(%rsp)
-        rorl    $7,%eax
-        addl    %ebp,%edx
-        addl    24(%rsp),%ecx
-        pslld   $2,%xmm5
-        xorl    %eax,%esi
-        movl    %edx,%edi
-        psrld   $30,%xmm3
-        roll    $5,%edx
-        addl    %esi,%ecx
-        movups  -32(%r15),%xmm0
-.byte   102,15,56,220,209
-        xorl    %eax,%edi
-        rorl    $7,%ebp
-        por     %xmm3,%xmm5
-        addl    %edx,%ecx
-        addl    28(%rsp),%ebx
-        pshufd  $238,%xmm4,%xmm12
-        xorl    %ebp,%edi
-        movl    %ecx,%esi
-        roll    $5,%ecx
-        addl    %edi,%ebx
-        xorl    %ebp,%esi
-        rorl    $7,%edx
-        addl    %ecx,%ebx
-        pxor    %xmm10,%xmm6
-        addl    32(%rsp),%eax
-        xorl    %edx,%esi
-        punpcklqdq      %xmm5,%xmm12
-        movl    %ebx,%edi
-        roll    $5,%ebx
-        pxor    %xmm7,%xmm6
-        addl    %esi,%eax
-        xorl    %edx,%edi
-        movdqa  32(%r11),%xmm3
-        rorl    $7,%ecx
-        paddd   %xmm5,%xmm13
-        addl    %ebx,%eax
-        pxor    %xmm12,%xmm6
-        addl    36(%rsp),%ebp
-        movups  -16(%r15),%xmm1
-.byte   102,15,56,220,208
-        xorl    %ecx,%edi
-        movl    %eax,%esi
-        roll    $5,%eax
-        movdqa  %xmm6,%xmm12
-        addl    %edi,%ebp
-        xorl    %ecx,%esi
-        movdqa  %xmm13,16(%rsp)
-        rorl    $7,%ebx
-        addl    %eax,%ebp
-        addl    40(%rsp),%edx
-        pslld   $2,%xmm6
-        xorl    %ebx,%esi
-        movl    %ebp,%edi
-        psrld   $30,%xmm12
-        roll    $5,%ebp
-        addl    %esi,%edx
-        xorl    %ebx,%edi
-        rorl    $7,%eax
-        por     %xmm12,%xmm6
-        addl    %ebp,%edx
-        addl    44(%rsp),%ecx
-        pshufd  $238,%xmm5,%xmm13
-        xorl    %eax,%edi
-        movl    %edx,%esi
-        roll    $5,%edx
-        addl    %edi,%ecx
-        movups  0(%r15),%xmm0
-.byte   102,15,56,220,209
-        xorl    %eax,%esi
-        rorl    $7,%ebp
-        addl    %edx,%ecx
-        pxor    %xmm11,%xmm7
-        addl    48(%rsp),%ebx
-        xorl    %ebp,%esi
-        punpcklqdq      %xmm6,%xmm13
-        movl    %ecx,%edi
-        roll    $5,%ecx
-        pxor    %xmm8,%xmm7
-        addl    %esi,%ebx
-        xorl    %ebp,%edi
-        movdqa  %xmm3,%xmm12
-        rorl    $7,%edx
-        paddd   %xmm6,%xmm3
-        addl    %ecx,%ebx
-        pxor    %xmm13,%xmm7
-        addl    52(%rsp),%eax
-        xorl    %edx,%edi
-        movl    %ebx,%esi
-        roll    $5,%ebx
-        movdqa  %xmm7,%xmm13
-        addl    %edi,%eax
-        xorl    %edx,%esi
-        movdqa  %xmm3,32(%rsp)
-        rorl    $7,%ecx
-        addl    %ebx,%eax
-        addl    56(%rsp),%ebp
-        movups  16(%r15),%xmm1
-.byte   102,15,56,220,208
-        pslld   $2,%xmm7
-        xorl    %ecx,%esi
-        movl    %eax,%edi
-        psrld   $30,%xmm13
-        roll    $5,%eax
-        addl    %esi,%ebp
-        xorl    %ecx,%edi
-        rorl    $7,%ebx
-        por     %xmm13,%xmm7
-        addl    %eax,%ebp
-        addl    60(%rsp),%edx
-        pshufd  $238,%xmm6,%xmm3
-        xorl    %ebx,%edi
-        movl    %ebp,%esi
-        roll    $5,%ebp
-        addl    %edi,%edx
-        xorl    %ebx,%esi
-        rorl    $7,%eax
-        addl    %ebp,%edx
-        pxor    %xmm4,%xmm8
-        addl    0(%rsp),%ecx
-        xorl    %eax,%esi
-        punpcklqdq      %xmm7,%xmm3
-        movl    %edx,%edi
-        roll    $5,%edx
-        pxor    %xmm9,%xmm8
-        addl    %esi,%ecx
-        movups  32(%r15),%xmm0
-.byte   102,15,56,220,209
-        xorl    %eax,%edi
-        movdqa  %xmm12,%xmm13
-        rorl    $7,%ebp
-        paddd   %xmm7,%xmm12
-        addl    %edx,%ecx
-        pxor    %xmm3,%xmm8
-        addl    4(%rsp),%ebx
-        xorl    %ebp,%edi
-        movl    %ecx,%esi
-        roll    $5,%ecx
-        movdqa  %xmm8,%xmm3
-        addl    %edi,%ebx
-        xorl    %ebp,%esi
-        movdqa  %xmm12,48(%rsp)
-        rorl    $7,%edx
-        addl    %ecx,%ebx
-        addl    8(%rsp),%eax
-        pslld   $2,%xmm8
-        xorl    %edx,%esi
-        movl    %ebx,%edi
-        psrld   $30,%xmm3
-        roll    $5,%ebx
-        addl    %esi,%eax
-        xorl    %edx,%edi
-        rorl    $7,%ecx
-        por     %xmm3,%xmm8
-        addl    %ebx,%eax
-        addl    12(%rsp),%ebp
-        movups  48(%r15),%xmm1
-.byte   102,15,56,220,208
-        pshufd  $238,%xmm7,%xmm12
-        xorl    %ecx,%edi
-        movl    %eax,%esi
-        roll    $5,%eax
-        addl    %edi,%ebp
-        xorl    %ecx,%esi
-        rorl    $7,%ebx
-        addl    %eax,%ebp
-        pxor    %xmm5,%xmm9
-        addl    16(%rsp),%edx
-        xorl    %ebx,%esi
-        punpcklqdq      %xmm8,%xmm12
-        movl    %ebp,%edi
-        roll    $5,%ebp
-        pxor    %xmm10,%xmm9
-        addl    %esi,%edx
-        xorl    %ebx,%edi
-        movdqa  %xmm13,%xmm3
-        rorl    $7,%eax
-        paddd   %xmm8,%xmm13
-        addl    %ebp,%edx
-        pxor    %xmm12,%xmm9
-        addl    20(%rsp),%ecx
-        xorl    %eax,%edi
-        movl    %edx,%esi
-        roll    $5,%edx
-        movdqa  %xmm9,%xmm12
-        addl    %edi,%ecx
-        cmpl    $11,%r8d
-        jb      .Laesenclast2
-        movups  64(%r15),%xmm0
-.byte   102,15,56,220,209
-        movups  80(%r15),%xmm1
-.byte   102,15,56,220,208
-        je      .Laesenclast2
-        movups  96(%r15),%xmm0
-.byte   102,15,56,220,209
-        movups  112(%r15),%xmm1
-.byte   102,15,56,220,208
-.Laesenclast2:
-.byte   102,15,56,221,209
-        movups  16-112(%r15),%xmm0
-        xorl    %eax,%esi
-        movdqa  %xmm13,0(%rsp)
-        rorl    $7,%ebp
-        addl    %edx,%ecx
-        addl    24(%rsp),%ebx
-        pslld   $2,%xmm9
-        xorl    %ebp,%esi
-        movl    %ecx,%edi
-        psrld   $30,%xmm12
-        roll    $5,%ecx
-        addl    %esi,%ebx
-        xorl    %ebp,%edi
-        rorl    $7,%edx
-        por     %xmm12,%xmm9
-        addl    %ecx,%ebx
-        addl    28(%rsp),%eax
-        pshufd  $238,%xmm8,%xmm13
-        rorl    $7,%ecx
-        movl    %ebx,%esi
-        xorl    %edx,%edi
-        roll    $5,%ebx
-        addl    %edi,%eax
-        xorl    %ecx,%esi
-        xorl    %edx,%ecx
-        addl    %ebx,%eax
-        pxor    %xmm6,%xmm10
-        addl    32(%rsp),%ebp
-        movups  32(%r12),%xmm14
-        xorps   %xmm15,%xmm14
-        movups  %xmm2,16(%r13,%r12,1)
-        xorps   %xmm14,%xmm2
-        movups  -80(%r15),%xmm1
-.byte   102,15,56,220,208
-        andl    %ecx,%esi
-        xorl    %edx,%ecx
-        rorl    $7,%ebx
-        punpcklqdq      %xmm9,%xmm13
-        movl    %eax,%edi
-        xorl    %ecx,%esi
-        pxor    %xmm11,%xmm10
-        roll    $5,%eax
-        addl    %esi,%ebp
-        movdqa  %xmm3,%xmm12
-        xorl    %ebx,%edi
-        paddd   %xmm9,%xmm3
-        xorl    %ecx,%ebx
-        pxor    %xmm13,%xmm10
-        addl    %eax,%ebp
-        addl    36(%rsp),%edx
-        andl    %ebx,%edi
-        xorl    %ecx,%ebx
-        rorl    $7,%eax
-        movdqa  %xmm10,%xmm13
-        movl    %ebp,%esi
-        xorl    %ebx,%edi
-        movdqa  %xmm3,16(%rsp)
-        roll    $5,%ebp
-        addl    %edi,%edx
-        movups  -64(%r15),%xmm0
-.byte   102,15,56,220,209
-        xorl    %eax,%esi
-        pslld   $2,%xmm10
-        xorl    %ebx,%eax
-        addl    %ebp,%edx
-        psrld   $30,%xmm13
-        addl    40(%rsp),%ecx
-        andl    %eax,%esi
-        xorl    %ebx,%eax
-        por     %xmm13,%xmm10
-        rorl    $7,%ebp
-        movl    %edx,%edi
-        xorl    %eax,%esi
-        roll    $5,%edx
-        pshufd  $238,%xmm9,%xmm3
-        addl    %esi,%ecx
-        xorl    %ebp,%edi
-        xorl    %eax,%ebp
-        addl    %edx,%ecx
-        addl    44(%rsp),%ebx
-        andl    %ebp,%edi
-        xorl    %eax,%ebp
-        rorl    $7,%edx
-        movups  -48(%r15),%xmm1
-.byte   102,15,56,220,208
-        movl    %ecx,%esi
-        xorl    %ebp,%edi
-        roll    $5,%ecx
-        addl    %edi,%ebx
-        xorl    %edx,%esi
-        xorl    %ebp,%edx
-        addl    %ecx,%ebx
-        pxor    %xmm7,%xmm11
-        addl    48(%rsp),%eax
-        andl    %edx,%esi
-        xorl    %ebp,%edx
-        rorl    $7,%ecx
-        punpcklqdq      %xmm10,%xmm3
-        movl    %ebx,%edi
-        xorl    %edx,%esi
-        pxor    %xmm4,%xmm11
-        roll    $5,%ebx
-        addl    %esi,%eax
-        movdqa  48(%r11),%xmm13
-        xorl    %ecx,%edi
-        paddd   %xmm10,%xmm12
-        xorl    %edx,%ecx
-        pxor    %xmm3,%xmm11
-        addl    %ebx,%eax
-        addl    52(%rsp),%ebp
-        movups  -32(%r15),%xmm0
-.byte   102,15,56,220,209
-        andl    %ecx,%edi
-        xorl    %edx,%ecx
-        rorl    $7,%ebx
-        movdqa  %xmm11,%xmm3
-        movl    %eax,%esi
-        xorl    %ecx,%edi
-        movdqa  %xmm12,32(%rsp)
-        roll    $5,%eax
-        addl    %edi,%ebp
-        xorl    %ebx,%esi
-        pslld   $2,%xmm11
-        xorl    %ecx,%ebx
-        addl    %eax,%ebp
-        psrld   $30,%xmm3
-        addl    56(%rsp),%edx
-        andl    %ebx,%esi
-        xorl    %ecx,%ebx
-        por     %xmm3,%xmm11
-        rorl    $7,%eax
-        movl    %ebp,%edi
-        xorl    %ebx,%esi
-        roll    $5,%ebp
-        pshufd  $238,%xmm10,%xmm12
-        addl    %esi,%edx
-        movups  -16(%r15),%xmm1
-.byte   102,15,56,220,208
-        xorl    %eax,%edi
-        xorl    %ebx,%eax
-        addl    %ebp,%edx
-        addl    60(%rsp),%ecx
-        andl    %eax,%edi
-        xorl    %ebx,%eax
-        rorl    $7,%ebp
-        movl    %edx,%esi
-        xorl    %eax,%edi
-        roll    $5,%edx
-        addl    %edi,%ecx
-        xorl    %ebp,%esi
-        xorl    %eax,%ebp
-        addl    %edx,%ecx
-        pxor    %xmm8,%xmm4
-        addl    0(%rsp),%ebx
-        andl    %ebp,%esi
-        xorl    %eax,%ebp
-        rorl    $7,%edx
-        movups  0(%r15),%xmm0
-.byte   102,15,56,220,209
-        punpcklqdq      %xmm11,%xmm12
-        movl    %ecx,%edi
-        xorl    %ebp,%esi
-        pxor    %xmm5,%xmm4
-        roll    $5,%ecx
-        addl    %esi,%ebx
-        movdqa  %xmm13,%xmm3
-        xorl    %edx,%edi
-        paddd   %xmm11,%xmm13
-        xorl    %ebp,%edx
-        pxor    %xmm12,%xmm4
-        addl    %ecx,%ebx
-        addl    4(%rsp),%eax
-        andl    %edx,%edi
-        xorl    %ebp,%edx
-        rorl    $7,%ecx
-        movdqa  %xmm4,%xmm12
-        movl    %ebx,%esi
-        xorl    %edx,%edi
-        movdqa  %xmm13,48(%rsp)
-        roll    $5,%ebx
-        addl    %edi,%eax
-        xorl    %ecx,%esi
-        pslld   $2,%xmm4
-        xorl    %edx,%ecx
-        addl    %ebx,%eax
-        psrld   $30,%xmm12
-        addl    8(%rsp),%ebp
-        movups  16(%r15),%xmm1
-.byte   102,15,56,220,208
-        andl    %ecx,%esi
-        xorl    %edx,%ecx
-        por     %xmm12,%xmm4
-        rorl    $7,%ebx
-        movl    %eax,%edi
-        xorl    %ecx,%esi
-        roll    $5,%eax
-        pshufd  $238,%xmm11,%xmm13
-        addl    %esi,%ebp
-        xorl    %ebx,%edi
-        xorl    %ecx,%ebx
-        addl    %eax,%ebp
-        addl    12(%rsp),%edx
-        andl    %ebx,%edi
-        xorl    %ecx,%ebx
-        rorl    $7,%eax
-        movl    %ebp,%esi
-        xorl    %ebx,%edi
-        roll    $5,%ebp
-        addl    %edi,%edx
-        movups  32(%r15),%xmm0
-.byte   102,15,56,220,209
-        xorl    %eax,%esi
-        xorl    %ebx,%eax
-        addl    %ebp,%edx
-        pxor    %xmm9,%xmm5
-        addl    16(%rsp),%ecx
-        andl    %eax,%esi
-        xorl    %ebx,%eax
-        rorl    $7,%ebp
-        punpcklqdq      %xmm4,%xmm13
-        movl    %edx,%edi
-        xorl    %eax,%esi
-        pxor    %xmm6,%xmm5
-        roll    $5,%edx
-        addl    %esi,%ecx
-        movdqa  %xmm3,%xmm12
-        xorl    %ebp,%edi
-        paddd   %xmm4,%xmm3
-        xorl    %eax,%ebp
-        pxor    %xmm13,%xmm5
-        addl    %edx,%ecx
-        addl    20(%rsp),%ebx
-        andl    %ebp,%edi
-        xorl    %eax,%ebp
-        rorl    $7,%edx
-        movups  48(%r15),%xmm1
-.byte   102,15,56,220,208
-        movdqa  %xmm5,%xmm13
-        movl    %ecx,%esi
-        xorl    %ebp,%edi
-        movdqa  %xmm3,0(%rsp)
-        roll    $5,%ecx
-        addl    %edi,%ebx
-        xorl    %edx,%esi
-        pslld   $2,%xmm5
-        xorl    %ebp,%edx
-        addl    %ecx,%ebx
-        psrld   $30,%xmm13
-        addl    24(%rsp),%eax
-        andl    %edx,%esi
-        xorl    %ebp,%edx
-        por     %xmm13,%xmm5
-        rorl    $7,%ecx
-        movl    %ebx,%edi
-        xorl    %edx,%esi
-        roll    $5,%ebx
-        pshufd  $238,%xmm4,%xmm3
-        addl    %esi,%eax
-        xorl    %ecx,%edi
-        xorl    %edx,%ecx
-        addl    %ebx,%eax
-        addl    28(%rsp),%ebp
-        cmpl    $11,%r8d
-        jb      .Laesenclast3
-        movups  64(%r15),%xmm0
-.byte   102,15,56,220,209
-        movups  80(%r15),%xmm1
-.byte   102,15,56,220,208
-        je      .Laesenclast3
-        movups  96(%r15),%xmm0
-.byte   102,15,56,220,209
-        movups  112(%r15),%xmm1
-.byte   102,15,56,220,208
-.Laesenclast3:
-.byte   102,15,56,221,209
-        movups  16-112(%r15),%xmm0
-        andl    %ecx,%edi
-        xorl    %edx,%ecx
-        rorl    $7,%ebx
-        movl    %eax,%esi
-        xorl    %ecx,%edi
-        roll    $5,%eax
-        addl    %edi,%ebp
-        xorl    %ebx,%esi
-        xorl    %ecx,%ebx
-        addl    %eax,%ebp
-        pxor    %xmm10,%xmm6
-        addl    32(%rsp),%edx
-        andl    %ebx,%esi
-        xorl    %ecx,%ebx
-        rorl    $7,%eax
-        punpcklqdq      %xmm5,%xmm3
-        movl    %ebp,%edi
-        xorl    %ebx,%esi
-        pxor    %xmm7,%xmm6
-        roll    $5,%ebp
-        addl    %esi,%edx
-        movups  48(%r12),%xmm14
-        xorps   %xmm15,%xmm14
-        movups  %xmm2,32(%r13,%r12,1)
-        xorps   %xmm14,%xmm2
-        movups  -80(%r15),%xmm1
-.byte   102,15,56,220,208
-        movdqa  %xmm12,%xmm13
-        xorl    %eax,%edi
-        paddd   %xmm5,%xmm12
-        xorl    %ebx,%eax
-        pxor    %xmm3,%xmm6
-        addl    %ebp,%edx
-        addl    36(%rsp),%ecx
-        andl    %eax,%edi
-        xorl    %ebx,%eax
-        rorl    $7,%ebp
-        movdqa  %xmm6,%xmm3
-        movl    %edx,%esi
-        xorl    %eax,%edi
-        movdqa  %xmm12,16(%rsp)
-        roll    $5,%edx
-        addl    %edi,%ecx
-        xorl    %ebp,%esi
-        pslld   $2,%xmm6
-        xorl    %eax,%ebp
-        addl    %edx,%ecx
-        psrld   $30,%xmm3
-        addl    40(%rsp),%ebx
-        andl    %ebp,%esi
-        xorl    %eax,%ebp
-        por     %xmm3,%xmm6
-        rorl    $7,%edx
-        movups  -64(%r15),%xmm0
-.byte   102,15,56,220,209
-        movl    %ecx,%edi
-        xorl    %ebp,%esi
-        roll    $5,%ecx
-        pshufd  $238,%xmm5,%xmm12
-        addl    %esi,%ebx
-        xorl    %edx,%edi
-        xorl    %ebp,%edx
-        addl    %ecx,%ebx
-        addl    44(%rsp),%eax
-        andl    %edx,%edi
-        xorl    %ebp,%edx
-        rorl    $7,%ecx
-        movl    %ebx,%esi
-        xorl    %edx,%edi
-        roll    $5,%ebx
-        addl    %edi,%eax
-        xorl    %edx,%esi
-        addl    %ebx,%eax
-        pxor    %xmm11,%xmm7
-        addl    48(%rsp),%ebp
-        movups  -48(%r15),%xmm1
-.byte   102,15,56,220,208
-        xorl    %ecx,%esi
-        punpcklqdq      %xmm6,%xmm12
-        movl    %eax,%edi
-        roll    $5,%eax
-        pxor    %xmm8,%xmm7
-        addl    %esi,%ebp
-        xorl    %ecx,%edi
-        movdqa  %xmm13,%xmm3
-        rorl    $7,%ebx
-        paddd   %xmm6,%xmm13
-        addl    %eax,%ebp
-        pxor    %xmm12,%xmm7
-        addl    52(%rsp),%edx
-        xorl    %ebx,%edi
-        movl    %ebp,%esi
-        roll    $5,%ebp
-        movdqa  %xmm7,%xmm12
-        addl    %edi,%edx
-        xorl    %ebx,%esi
-        movdqa  %xmm13,32(%rsp)
-        rorl    $7,%eax
-        addl    %ebp,%edx
-        addl    56(%rsp),%ecx
-        pslld   $2,%xmm7
-        xorl    %eax,%esi
-        movl    %edx,%edi
-        psrld   $30,%xmm12
-        roll    $5,%edx
-        addl    %esi,%ecx
-        movups  -32(%r15),%xmm0
-.byte   102,15,56,220,209
-        xorl    %eax,%edi
-        rorl    $7,%ebp
-        por     %xmm12,%xmm7
-        addl    %edx,%ecx
-        addl    60(%rsp),%ebx
-        xorl    %ebp,%edi
-        movl    %ecx,%esi
-        roll    $5,%ecx
-        addl    %edi,%ebx
-        xorl    %ebp,%esi
-        rorl    $7,%edx
-        addl    %ecx,%ebx
-        addl    0(%rsp),%eax
-        xorl    %edx,%esi
-        movl    %ebx,%edi
-        roll    $5,%ebx
-        paddd   %xmm7,%xmm3
-        addl    %esi,%eax
-        xorl    %edx,%edi
-        movdqa  %xmm3,48(%rsp)
-        rorl    $7,%ecx
-        addl    %ebx,%eax
-        addl    4(%rsp),%ebp
-        movups  -16(%r15),%xmm1
-.byte   102,15,56,220,208
-        xorl    %ecx,%edi
-        movl    %eax,%esi
-        roll    $5,%eax
-        addl    %edi,%ebp
-        xorl    %ecx,%esi
-        rorl    $7,%ebx
-        addl    %eax,%ebp
-        addl    8(%rsp),%edx
-        xorl    %ebx,%esi
-        movl    %ebp,%edi
-        roll    $5,%ebp
-        addl    %esi,%edx
-        xorl    %ebx,%edi
-        rorl    $7,%eax
-        addl    %ebp,%edx
-        addl    12(%rsp),%ecx
-        xorl    %eax,%edi
-        movl    %edx,%esi
-        roll    $5,%edx
-        addl    %edi,%ecx
-        movups  0(%r15),%xmm0
-.byte   102,15,56,220,209
-        xorl    %eax,%esi
-        rorl    $7,%ebp
-        addl    %edx,%ecx
-        cmpq    %r14,%r10
-        je      .Ldone_ssse3
-        movdqa  64(%r11),%xmm3
-        movdqa  0(%r11),%xmm13
-        movdqu  0(%r10),%xmm4
-        movdqu  16(%r10),%xmm5
-        movdqu  32(%r10),%xmm6
-        movdqu  48(%r10),%xmm7
-.byte   102,15,56,0,227
-        addq    $64,%r10
-        addl    16(%rsp),%ebx
-        xorl    %ebp,%esi
-        movl    %ecx,%edi
-.byte   102,15,56,0,235
-        roll    $5,%ecx
-        addl    %esi,%ebx
-        xorl    %ebp,%edi
-        rorl    $7,%edx
-        paddd   %xmm13,%xmm4
-        addl    %ecx,%ebx
-        addl    20(%rsp),%eax
-        xorl    %edx,%edi
-        movl    %ebx,%esi
-        movdqa  %xmm4,0(%rsp)
-        roll    $5,%ebx
-        addl    %edi,%eax
-        xorl    %edx,%esi
-        rorl    $7,%ecx
-        psubd   %xmm13,%xmm4
-        addl    %ebx,%eax
-        addl    24(%rsp),%ebp
-        movups  16(%r15),%xmm1
-.byte   102,15,56,220,208
-        xorl    %ecx,%esi
-        movl    %eax,%edi
-        roll    $5,%eax
-        addl    %esi,%ebp
-        xorl    %ecx,%edi
-        rorl    $7,%ebx
-        addl    %eax,%ebp
-        addl    28(%rsp),%edx
-        xorl    %ebx,%edi
-        movl    %ebp,%esi
-        roll    $5,%ebp
-        addl    %edi,%edx
-        xorl    %ebx,%esi
-        rorl    $7,%eax
-        addl    %ebp,%edx
-        addl    32(%rsp),%ecx
-        xorl    %eax,%esi
-        movl    %edx,%edi
-.byte   102,15,56,0,243
-        roll    $5,%edx
-        addl    %esi,%ecx
-        movups  32(%r15),%xmm0
-.byte   102,15,56,220,209
-        xorl    %eax,%edi
-        rorl    $7,%ebp
-        paddd   %xmm13,%xmm5
-        addl    %edx,%ecx
-        addl    36(%rsp),%ebx
-        xorl    %ebp,%edi
-        movl    %ecx,%esi
-        movdqa  %xmm5,16(%rsp)
-        roll    $5,%ecx
-        addl    %edi,%ebx
-        xorl    %ebp,%esi
-        rorl    $7,%edx
-        psubd   %xmm13,%xmm5
-        addl    %ecx,%ebx
-        addl    40(%rsp),%eax
-        xorl    %edx,%esi
-        movl    %ebx,%edi
-        roll    $5,%ebx
-        addl    %esi,%eax
-        xorl    %edx,%edi
-        rorl    $7,%ecx
-        addl    %ebx,%eax
-        addl    44(%rsp),%ebp
-        movups  48(%r15),%xmm1
-.byte   102,15,56,220,208
-        xorl    %ecx,%edi
-        movl    %eax,%esi
-        roll    $5,%eax
-        addl    %edi,%ebp
-        xorl    %ecx,%esi
-        rorl    $7,%ebx
-        addl    %eax,%ebp
-        addl    48(%rsp),%edx
-        xorl    %ebx,%esi
-        movl    %ebp,%edi
-.byte   102,15,56,0,251
-        roll    $5,%ebp
-        addl    %esi,%edx
-        xorl    %ebx,%edi
-        rorl    $7,%eax
-        paddd   %xmm13,%xmm6
-        addl    %ebp,%edx
-        addl    52(%rsp),%ecx
-        xorl    %eax,%edi
-        movl    %edx,%esi
-        movdqa  %xmm6,32(%rsp)
-        roll    $5,%edx
-        addl    %edi,%ecx
-        cmpl    $11,%r8d
-        jb      .Laesenclast4
-        movups  64(%r15),%xmm0
-.byte   102,15,56,220,209
-        movups  80(%r15),%xmm1
-.byte   102,15,56,220,208
-        je      .Laesenclast4
-        movups  96(%r15),%xmm0
-.byte   102,15,56,220,209
-        movups  112(%r15),%xmm1
-.byte   102,15,56,220,208
-.Laesenclast4:
-.byte   102,15,56,221,209
-        movups  16-112(%r15),%xmm0
-        xorl    %eax,%esi
-        rorl    $7,%ebp
-        psubd   %xmm13,%xmm6
-        addl    %edx,%ecx
-        addl    56(%rsp),%ebx
-        xorl    %ebp,%esi
-        movl    %ecx,%edi
-        roll    $5,%ecx
-        addl    %esi,%ebx
-        xorl    %ebp,%edi
-        rorl    $7,%edx
-        addl    %ecx,%ebx
-        addl    60(%rsp),%eax
-        xorl    %edx,%edi
-        movl    %ebx,%esi
-        roll    $5,%ebx
-        addl    %edi,%eax
-        rorl    $7,%ecx
-        addl    %ebx,%eax
-        movups  %xmm2,48(%r13,%r12,1)
-        leaq    64(%r12),%r12
-
-        addl    0(%r9),%eax
-        addl    4(%r9),%esi
-        addl    8(%r9),%ecx
-        addl    12(%r9),%edx
-        movl    %eax,0(%r9)
-        addl    16(%r9),%ebp
-        movl    %esi,4(%r9)
-        movl    %esi,%ebx
-        movl    %ecx,8(%r9)
-        movl    %ecx,%edi
-        movl    %edx,12(%r9)
-        xorl    %edx,%edi
-        movl    %ebp,16(%r9)
-        andl    %edi,%esi
-        jmp     .Loop_ssse3
-
-.Ldone_ssse3:
-        addl    16(%rsp),%ebx
-        xorl    %ebp,%esi
-        movl    %ecx,%edi
-        roll    $5,%ecx
-        addl    %esi,%ebx
-        xorl    %ebp,%edi
-        rorl    $7,%edx
-        addl    %ecx,%ebx
-        addl    20(%rsp),%eax
-        xorl    %edx,%edi
-        movl    %ebx,%esi
-        roll    $5,%ebx
-        addl    %edi,%eax
-        xorl    %edx,%esi
-        rorl    $7,%ecx
-        addl    %ebx,%eax
-        addl    24(%rsp),%ebp
-        movups  16(%r15),%xmm1
-.byte   102,15,56,220,208
-        xorl    %ecx,%esi
-        movl    %eax,%edi
-        roll    $5,%eax
-        addl    %esi,%ebp
-        xorl    %ecx,%edi
-        rorl    $7,%ebx
-        addl    %eax,%ebp
-        addl    28(%rsp),%edx
-        xorl    %ebx,%edi
-        movl    %ebp,%esi
-        roll    $5,%ebp
-        addl    %edi,%edx
-        xorl    %ebx,%esi
-        rorl    $7,%eax
-        addl    %ebp,%edx
-        addl    32(%rsp),%ecx
-        xorl    %eax,%esi
-        movl    %edx,%edi
-        roll    $5,%edx
-        addl    %esi,%ecx
-        movups  32(%r15),%xmm0
-.byte   102,15,56,220,209
-        xorl    %eax,%edi
-        rorl    $7,%ebp
-        addl    %edx,%ecx
-        addl    36(%rsp),%ebx
-        xorl    %ebp,%edi
-        movl    %ecx,%esi
-        roll    $5,%ecx
-        addl    %edi,%ebx
-        xorl    %ebp,%esi
-        rorl    $7,%edx
-        addl    %ecx,%ebx
-        addl    40(%rsp),%eax
-        xorl    %edx,%esi
-        movl    %ebx,%edi
-        roll    $5,%ebx
-        addl    %esi,%eax
-        xorl    %edx,%edi
-        rorl    $7,%ecx
-        addl    %ebx,%eax
-        addl    44(%rsp),%ebp
-        movups  48(%r15),%xmm1
-.byte   102,15,56,220,208
-        xorl    %ecx,%edi
-        movl    %eax,%esi
-        roll    $5,%eax
-        addl    %edi,%ebp
-        xorl    %ecx,%esi
-        rorl    $7,%ebx
-        addl    %eax,%ebp
-        addl    48(%rsp),%edx
-        xorl    %ebx,%esi
-        movl    %ebp,%edi
-        roll    $5,%ebp
-        addl    %esi,%edx
-        xorl    %ebx,%edi
-        rorl    $7,%eax
-        addl    %ebp,%edx
-        addl    52(%rsp),%ecx
-        xorl    %eax,%edi
-        movl    %edx,%esi
-        roll    $5,%edx
-        addl    %edi,%ecx
-        cmpl    $11,%r8d
-        jb      .Laesenclast5
-        movups  64(%r15),%xmm0
-.byte   102,15,56,220,209
-        movups  80(%r15),%xmm1
-.byte   102,15,56,220,208
-        je      .Laesenclast5
-        movups  96(%r15),%xmm0
-.byte   102,15,56,220,209
-        movups  112(%r15),%xmm1
-.byte   102,15,56,220,208
-.Laesenclast5:
-.byte   102,15,56,221,209
-        movups  16-112(%r15),%xmm0
-        xorl    %eax,%esi
-        rorl    $7,%ebp
-        addl    %edx,%ecx
-        addl    56(%rsp),%ebx
-        xorl    %ebp,%esi
-        movl    %ecx,%edi
-        roll    $5,%ecx
-        addl    %esi,%ebx
-        xorl    %ebp,%edi
-        rorl    $7,%edx
-        addl    %ecx,%ebx
-        addl    60(%rsp),%eax
-        xorl    %edx,%edi
-        movl    %ebx,%esi
-        roll    $5,%ebx
-        addl    %edi,%eax
-        rorl    $7,%ecx
-        addl    %ebx,%eax
-        movups  %xmm2,48(%r13,%r12,1)
-        movq    88(%rsp),%r8
-
-        addl    0(%r9),%eax
-        addl    4(%r9),%esi
-        addl    8(%r9),%ecx
-        movl    %eax,0(%r9)
-        addl    12(%r9),%edx
-        movl    %esi,4(%r9)
-        addl    16(%r9),%ebp
-        movl    %ecx,8(%r9)
-        movl    %edx,12(%r9)
-        movl    %ebp,16(%r9)
-        movups  %xmm2,(%r8)
-        leaq    104(%rsp),%rsi
-.cfi_def_cfa    %rsi,56
-        movq    0(%rsi),%r15
-.cfi_restore    %r15
-        movq    8(%rsi),%r14
-.cfi_restore    %r14
-        movq    16(%rsi),%r13
-.cfi_restore    %r13
-        movq    24(%rsi),%r12
-.cfi_restore    %r12
-        movq    32(%rsi),%rbp
-.cfi_restore    %rbp
-        movq    40(%rsi),%rbx
-.cfi_restore    %rbx
-        leaq    48(%rsi),%rsp
-.cfi_def_cfa    %rsp,8
-.Lepilogue_ssse3:
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   aesni_cbc_sha1_enc_ssse3,.-aesni_cbc_sha1_enc_ssse3
-.align  64
-K_XX_XX:
-.long   0x5a827999,0x5a827999,0x5a827999,0x5a827999
-.long   0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
-.long   0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
-.long   0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
-.long   0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
-.byte   0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0
-
-.byte   65,69,83,78,73,45,67,66,67,43,83,72,65,49,32,115,116,105,116,99,104,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
-.align  64
-.type   aesni_cbc_sha1_enc_shaext, at function
-.align  32
-aesni_cbc_sha1_enc_shaext:
-.cfi_startproc
-        movq    8(%rsp),%r10
-        movdqu  (%r9),%xmm8
-        movd    16(%r9),%xmm9
-        movdqa  K_XX_XX+80(%rip),%xmm7
-
-        movl    240(%rcx),%r11d
-        subq    %rdi,%rsi
-        movups  (%rcx),%xmm15
-        movups  (%r8),%xmm2
-        movups  16(%rcx),%xmm0
-        leaq    112(%rcx),%rcx
-
-        pshufd  $27,%xmm8,%xmm8
-        pshufd  $27,%xmm9,%xmm9
-        jmp     .Loop_shaext
-
-.align  16
-.Loop_shaext:
-        movups  0(%rdi),%xmm14
-        xorps   %xmm15,%xmm14
-        xorps   %xmm14,%xmm2
-        movups  -80(%rcx),%xmm1
-.byte   102,15,56,220,208
-        movdqu  (%r10),%xmm3
-        movdqa  %xmm9,%xmm12
-.byte   102,15,56,0,223
-        movdqu  16(%r10),%xmm4
-        movdqa  %xmm8,%xmm11
-        movups  -64(%rcx),%xmm0
-.byte   102,15,56,220,209
-.byte   102,15,56,0,231
-
-        paddd   %xmm3,%xmm9
-        movdqu  32(%r10),%xmm5
-        leaq    64(%r10),%r10
-        pxor    %xmm12,%xmm3
-        movups  -48(%rcx),%xmm1
-.byte   102,15,56,220,208
-        pxor    %xmm12,%xmm3
-        movdqa  %xmm8,%xmm10
-.byte   102,15,56,0,239
-.byte   69,15,58,204,193,0
-.byte   68,15,56,200,212
-        movups  -32(%rcx),%xmm0
-.byte   102,15,56,220,209
-.byte   15,56,201,220
-        movdqu  -16(%r10),%xmm6
-        movdqa  %xmm8,%xmm9
-.byte   102,15,56,0,247
-        movups  -16(%rcx),%xmm1
-.byte   102,15,56,220,208
-.byte   69,15,58,204,194,0
-.byte   68,15,56,200,205
-        pxor    %xmm5,%xmm3
-.byte   15,56,201,229
-        movups  0(%rcx),%xmm0
-.byte   102,15,56,220,209
-        movdqa  %xmm8,%xmm10
-.byte   69,15,58,204,193,0
-.byte   68,15,56,200,214
-        movups  16(%rcx),%xmm1
-.byte   102,15,56,220,208
-.byte   15,56,202,222
-        pxor    %xmm6,%xmm4
-.byte   15,56,201,238
-        movups  32(%rcx),%xmm0
-.byte   102,15,56,220,209
-        movdqa  %xmm8,%xmm9
-.byte   69,15,58,204,194,0
-.byte   68,15,56,200,203
-        movups  48(%rcx),%xmm1
-.byte   102,15,56,220,208
-.byte   15,56,202,227
-        pxor    %xmm3,%xmm5
-.byte   15,56,201,243
-        cmpl    $11,%r11d
-        jb      .Laesenclast6
-        movups  64(%rcx),%xmm0
-.byte   102,15,56,220,209
-        movups  80(%rcx),%xmm1
-.byte   102,15,56,220,208
-        je      .Laesenclast6
-        movups  96(%rcx),%xmm0
-.byte   102,15,56,220,209
-        movups  112(%rcx),%xmm1
-.byte   102,15,56,220,208
-.Laesenclast6:
-.byte   102,15,56,221,209
-        movups  16-112(%rcx),%xmm0
-        movdqa  %xmm8,%xmm10
-.byte   69,15,58,204,193,0
-.byte   68,15,56,200,212
-        movups  16(%rdi),%xmm14
-        xorps   %xmm15,%xmm14
-        movups  %xmm2,0(%rsi,%rdi,1)
-        xorps   %xmm14,%xmm2
-        movups  -80(%rcx),%xmm1
-.byte   102,15,56,220,208
-.byte   15,56,202,236
-        pxor    %xmm4,%xmm6
-.byte   15,56,201,220
-        movups  -64(%rcx),%xmm0
-.byte   102,15,56,220,209
-        movdqa  %xmm8,%xmm9
-.byte   69,15,58,204,194,1
-.byte   68,15,56,200,205
-        movups  -48(%rcx),%xmm1
-.byte   102,15,56,220,208
-.byte   15,56,202,245
-        pxor    %xmm5,%xmm3
-.byte   15,56,201,229
-        movups  -32(%rcx),%xmm0
-.byte   102,15,56,220,209
-        movdqa  %xmm8,%xmm10
-.byte   69,15,58,204,193,1
-.byte   68,15,56,200,214
-        movups  -16(%rcx),%xmm1
-.byte   102,15,56,220,208
-.byte   15,56,202,222
-        pxor    %xmm6,%xmm4
-.byte   15,56,201,238
-        movups  0(%rcx),%xmm0
-.byte   102,15,56,220,209
-        movdqa  %xmm8,%xmm9
-.byte   69,15,58,204,194,1
-.byte   68,15,56,200,203
-        movups  16(%rcx),%xmm1
-.byte   102,15,56,220,208
-.byte   15,56,202,227
-        pxor    %xmm3,%xmm5
-.byte   15,56,201,243
-        movups  32(%rcx),%xmm0
-.byte   102,15,56,220,209
-        movdqa  %xmm8,%xmm10
-.byte   69,15,58,204,193,1
-.byte   68,15,56,200,212
-        movups  48(%rcx),%xmm1
-.byte   102,15,56,220,208
-.byte   15,56,202,236
-        pxor    %xmm4,%xmm6
-.byte   15,56,201,220
-        cmpl    $11,%r11d
-        jb      .Laesenclast7
-        movups  64(%rcx),%xmm0
-.byte   102,15,56,220,209
-        movups  80(%rcx),%xmm1
-.byte   102,15,56,220,208
-        je      .Laesenclast7
-        movups  96(%rcx),%xmm0
-.byte   102,15,56,220,209
-        movups  112(%rcx),%xmm1
-.byte   102,15,56,220,208
-.Laesenclast7:
-.byte   102,15,56,221,209
-        movups  16-112(%rcx),%xmm0
-        movdqa  %xmm8,%xmm9
-.byte   69,15,58,204,194,1
-.byte   68,15,56,200,205
-        movups  32(%rdi),%xmm14
-        xorps   %xmm15,%xmm14
-        movups  %xmm2,16(%rsi,%rdi,1)
-        xorps   %xmm14,%xmm2
-        movups  -80(%rcx),%xmm1
-.byte   102,15,56,220,208
-.byte   15,56,202,245
-        pxor    %xmm5,%xmm3
-.byte   15,56,201,229
-        movups  -64(%rcx),%xmm0
-.byte   102,15,56,220,209
-        movdqa  %xmm8,%xmm10
-.byte   69,15,58,204,193,2
-.byte   68,15,56,200,214
-        movups  -48(%rcx),%xmm1
-.byte   102,15,56,220,208
-.byte   15,56,202,222
-        pxor    %xmm6,%xmm4
-.byte   15,56,201,238
-        movups  -32(%rcx),%xmm0
-.byte   102,15,56,220,209
-        movdqa  %xmm8,%xmm9
-.byte   69,15,58,204,194,2
-.byte   68,15,56,200,203
-        movups  -16(%rcx),%xmm1
-.byte   102,15,56,220,208
-.byte   15,56,202,227
-        pxor    %xmm3,%xmm5
-.byte   15,56,201,243
-        movups  0(%rcx),%xmm0
-.byte   102,15,56,220,209
-        movdqa  %xmm8,%xmm10
-.byte   69,15,58,204,193,2
-.byte   68,15,56,200,212
-        movups  16(%rcx),%xmm1
-.byte   102,15,56,220,208
-.byte   15,56,202,236
-        pxor    %xmm4,%xmm6
-.byte   15,56,201,220
-        movups  32(%rcx),%xmm0
-.byte   102,15,56,220,209
-        movdqa  %xmm8,%xmm9
-.byte   69,15,58,204,194,2
-.byte   68,15,56,200,205
-        movups  48(%rcx),%xmm1
-.byte   102,15,56,220,208
-.byte   15,56,202,245
-        pxor    %xmm5,%xmm3
-.byte   15,56,201,229
-        cmpl    $11,%r11d
-        jb      .Laesenclast8
-        movups  64(%rcx),%xmm0
-.byte   102,15,56,220,209
-        movups  80(%rcx),%xmm1
-.byte   102,15,56,220,208
-        je      .Laesenclast8
-        movups  96(%rcx),%xmm0
-.byte   102,15,56,220,209
-        movups  112(%rcx),%xmm1
-.byte   102,15,56,220,208
-.Laesenclast8:
-.byte   102,15,56,221,209
-        movups  16-112(%rcx),%xmm0
-        movdqa  %xmm8,%xmm10
-.byte   69,15,58,204,193,2
-.byte   68,15,56,200,214
-        movups  48(%rdi),%xmm14
-        xorps   %xmm15,%xmm14
-        movups  %xmm2,32(%rsi,%rdi,1)
-        xorps   %xmm14,%xmm2
-        movups  -80(%rcx),%xmm1
-.byte   102,15,56,220,208
-.byte   15,56,202,222
-        pxor    %xmm6,%xmm4
-.byte   15,56,201,238
-        movups  -64(%rcx),%xmm0
-.byte   102,15,56,220,209
-        movdqa  %xmm8,%xmm9
-.byte   69,15,58,204,194,3
-.byte   68,15,56,200,203
-        movups  -48(%rcx),%xmm1
-.byte   102,15,56,220,208
-.byte   15,56,202,227
-        pxor    %xmm3,%xmm5
-.byte   15,56,201,243
-        movups  -32(%rcx),%xmm0
-.byte   102,15,56,220,209
-        movdqa  %xmm8,%xmm10
-.byte   69,15,58,204,193,3
-.byte   68,15,56,200,212
-.byte   15,56,202,236
-        pxor    %xmm4,%xmm6
-        movups  -16(%rcx),%xmm1
-.byte   102,15,56,220,208
-        movdqa  %xmm8,%xmm9
-.byte   69,15,58,204,194,3
-.byte   68,15,56,200,205
-.byte   15,56,202,245
-        movups  0(%rcx),%xmm0
-.byte   102,15,56,220,209
-        movdqa  %xmm12,%xmm5
-        movdqa  %xmm8,%xmm10
-.byte   69,15,58,204,193,3
-.byte   68,15,56,200,214
-        movups  16(%rcx),%xmm1
-.byte   102,15,56,220,208
-        movdqa  %xmm8,%xmm9
-.byte   69,15,58,204,194,3
-.byte   68,15,56,200,205
-        movups  32(%rcx),%xmm0
-.byte   102,15,56,220,209
-        movups  48(%rcx),%xmm1
-.byte   102,15,56,220,208
-        cmpl    $11,%r11d
-        jb      .Laesenclast9
-        movups  64(%rcx),%xmm0
-.byte   102,15,56,220,209
-        movups  80(%rcx),%xmm1
-.byte   102,15,56,220,208
-        je      .Laesenclast9
-        movups  96(%rcx),%xmm0
-.byte   102,15,56,220,209
-        movups  112(%rcx),%xmm1
-.byte   102,15,56,220,208
-.Laesenclast9:
-.byte   102,15,56,221,209
-        movups  16-112(%rcx),%xmm0
-        decq    %rdx
-
-        paddd   %xmm11,%xmm8
-        movups  %xmm2,48(%rsi,%rdi,1)
-        leaq    64(%rdi),%rdi
-        jnz     .Loop_shaext
-
-        pshufd  $27,%xmm8,%xmm8
-        pshufd  $27,%xmm9,%xmm9
-        movups  %xmm2,(%r8)
-        movdqu  %xmm8,(%r9)
-        movd    %xmm9,16(%r9)
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   aesni_cbc_sha1_enc_shaext,.-aesni_cbc_sha1_enc_shaext
diff --git a/CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/aesni-sha256-x86_64.S b/CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/aesni-sha256-x86_64.S
deleted file mode 100644
index e25716928700..000000000000
--- a/CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/aesni-sha256-x86_64.S
+++ /dev/null
@@ -1,69 +0,0 @@
-# WARNING: do not edit!
-# Generated from openssl/crypto/aes/asm/aesni-sha256-x86_64.pl
-#
-# Copyright 2013-2020 The OpenSSL Project Authors. All Rights Reserved.
-#
-# Licensed under the OpenSSL license (the "License").  You may not use
-# this file except in compliance with the License.  You can obtain a copy
-# in the file LICENSE in the source distribution or at
-# https://www.openssl.org/source/license.html
-
-.text
-
-
-.globl  aesni_cbc_sha256_enc
-.type   aesni_cbc_sha256_enc, at function
-.align  16
-aesni_cbc_sha256_enc:
-.cfi_startproc
-        xorl    %eax,%eax
-        cmpq    $0,%rdi
-        je      .Lprobe
-        ud2
-.Lprobe:
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   aesni_cbc_sha256_enc,.-aesni_cbc_sha256_enc
-
-.align  64
-.type   K256, at object
-K256:
-.long   0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
-.long   0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
-.long   0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
-.long   0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
-.long   0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
-.long   0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
-.long   0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
-.long   0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
-.long   0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
-.long   0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
-.long   0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
-.long   0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
-.long   0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
-.long   0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
-.long   0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
-.long   0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
-.long   0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
-.long   0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
-.long   0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
-.long   0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
-.long   0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
-.long   0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
-.long   0xd192e819,0xd6990624,0xf40e3585,0x106aa070
-.long   0xd192e819,0xd6990624,0xf40e3585,0x106aa070
-.long   0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
-.long   0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
-.long   0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
-.long   0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
-.long   0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
-.long   0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
-.long   0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
-.long   0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
-
-.long   0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
-.long   0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
-.long   0,0,0,0,   0,0,0,0,   -1,-1,-1,-1
-.long   0,0,0,0,   0,0,0,0
-.byte   65,69,83,78,73,45,67,66,67,43,83,72,65,50,53,54,32,115,116,105,116,99,104,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
-.align  64
diff --git a/CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/aesni-x86_64.S b/CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/aesni-x86_64.S
deleted file mode 100644
index 2bdb5cf251dd..000000000000
--- a/CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/aesni-x86_64.S
+++ /dev/null
@@ -1,4484 +0,0 @@
-# WARNING: do not edit!
-# Generated from openssl/crypto/aes/asm/aesni-x86_64.pl
-#
-# Copyright 2009-2020 The OpenSSL Project Authors. All Rights Reserved.
-#
-# Licensed under the OpenSSL license (the "License").  You may not use
-# this file except in compliance with the License.  You can obtain a copy
-# in the file LICENSE in the source distribution or at
-# https://www.openssl.org/source/license.html
-
-.text
-
-.globl  aesni_encrypt
-.type   aesni_encrypt, at function
-.align  16
-aesni_encrypt:
-.cfi_startproc
-        movups  (%rdi),%xmm2
-        movl    240(%rdx),%eax
-        movups  (%rdx),%xmm0
-        movups  16(%rdx),%xmm1
-        leaq    32(%rdx),%rdx
-        xorps   %xmm0,%xmm2
-.Loop_enc1_1:
-.byte   102,15,56,220,209
-        decl    %eax
-        movups  (%rdx),%xmm1
-        leaq    16(%rdx),%rdx
-        jnz     .Loop_enc1_1
-.byte   102,15,56,221,209
-        pxor    %xmm0,%xmm0
-        pxor    %xmm1,%xmm1
-        movups  %xmm2,(%rsi)
-        pxor    %xmm2,%xmm2
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   aesni_encrypt,.-aesni_encrypt
-
-.globl  aesni_decrypt
-.type   aesni_decrypt, at function
-.align  16
-aesni_decrypt:
-.cfi_startproc
-        movups  (%rdi),%xmm2
-        movl    240(%rdx),%eax
-        movups  (%rdx),%xmm0
-        movups  16(%rdx),%xmm1
-        leaq    32(%rdx),%rdx
-        xorps   %xmm0,%xmm2
-.Loop_dec1_2:
-.byte   102,15,56,222,209
-        decl    %eax
-        movups  (%rdx),%xmm1
-        leaq    16(%rdx),%rdx
-        jnz     .Loop_dec1_2
-.byte   102,15,56,223,209
-        pxor    %xmm0,%xmm0
-        pxor    %xmm1,%xmm1
-        movups  %xmm2,(%rsi)
-        pxor    %xmm2,%xmm2
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   aesni_decrypt, .-aesni_decrypt
-.type   _aesni_encrypt2, at function
-.align  16
-_aesni_encrypt2:
-.cfi_startproc
-        movups  (%rcx),%xmm0
-        shll    $4,%eax
-        movups  16(%rcx),%xmm1
-        xorps   %xmm0,%xmm2
-        xorps   %xmm0,%xmm3
-        movups  32(%rcx),%xmm0
-        leaq    32(%rcx,%rax,1),%rcx
-        negq    %rax
-        addq    $16,%rax
-
-.Lenc_loop2:
-.byte   102,15,56,220,209
-.byte   102,15,56,220,217
-        movups  (%rcx,%rax,1),%xmm1
-        addq    $32,%rax
-.byte   102,15,56,220,208
-.byte   102,15,56,220,216
-        movups  -16(%rcx,%rax,1),%xmm0
-        jnz     .Lenc_loop2
-
-.byte   102,15,56,220,209
-.byte   102,15,56,220,217
-.byte   102,15,56,221,208
-.byte   102,15,56,221,216
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   _aesni_encrypt2,.-_aesni_encrypt2
-.type   _aesni_decrypt2, at function
-.align  16
-_aesni_decrypt2:
-.cfi_startproc
-        movups  (%rcx),%xmm0
-        shll    $4,%eax
-        movups  16(%rcx),%xmm1
-        xorps   %xmm0,%xmm2
-        xorps   %xmm0,%xmm3
-        movups  32(%rcx),%xmm0
-        leaq    32(%rcx,%rax,1),%rcx
-        negq    %rax
-        addq    $16,%rax
-
-.Ldec_loop2:
-.byte   102,15,56,222,209
-.byte   102,15,56,222,217
-        movups  (%rcx,%rax,1),%xmm1
-        addq    $32,%rax
-.byte   102,15,56,222,208
-.byte   102,15,56,222,216
-        movups  -16(%rcx,%rax,1),%xmm0
-        jnz     .Ldec_loop2
-
-.byte   102,15,56,222,209
-.byte   102,15,56,222,217
-.byte   102,15,56,223,208
-.byte   102,15,56,223,216
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   _aesni_decrypt2,.-_aesni_decrypt2
-.type   _aesni_encrypt3, at function
-.align  16
-_aesni_encrypt3:
-.cfi_startproc
-        movups  (%rcx),%xmm0
-        shll    $4,%eax
-        movups  16(%rcx),%xmm1
-        xorps   %xmm0,%xmm2
-        xorps   %xmm0,%xmm3
-        xorps   %xmm0,%xmm4
-        movups  32(%rcx),%xmm0
-        leaq    32(%rcx,%rax,1),%rcx
-        negq    %rax
-        addq    $16,%rax
-
-.Lenc_loop3:
-.byte   102,15,56,220,209
-.byte   102,15,56,220,217
-.byte   102,15,56,220,225
-        movups  (%rcx,%rax,1),%xmm1
-        addq    $32,%rax
-.byte   102,15,56,220,208
-.byte   102,15,56,220,216
-.byte   102,15,56,220,224
-        movups  -16(%rcx,%rax,1),%xmm0
-        jnz     .Lenc_loop3
-
-.byte   102,15,56,220,209
-.byte   102,15,56,220,217
-.byte   102,15,56,220,225
-.byte   102,15,56,221,208
-.byte   102,15,56,221,216
-.byte   102,15,56,221,224
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   _aesni_encrypt3,.-_aesni_encrypt3
-.type   _aesni_decrypt3, at function
-.align  16
-_aesni_decrypt3:
-.cfi_startproc
-        movups  (%rcx),%xmm0
-        shll    $4,%eax
-        movups  16(%rcx),%xmm1
-        xorps   %xmm0,%xmm2
-        xorps   %xmm0,%xmm3
-        xorps   %xmm0,%xmm4
-        movups  32(%rcx),%xmm0
-        leaq    32(%rcx,%rax,1),%rcx
-        negq    %rax
-        addq    $16,%rax
-
-.Ldec_loop3:
-.byte   102,15,56,222,209
-.byte   102,15,56,222,217
-.byte   102,15,56,222,225
-        movups  (%rcx,%rax,1),%xmm1
-        addq    $32,%rax
-.byte   102,15,56,222,208
-.byte   102,15,56,222,216
-.byte   102,15,56,222,224
-        movups  -16(%rcx,%rax,1),%xmm0
-        jnz     .Ldec_loop3
-
-.byte   102,15,56,222,209
-.byte   102,15,56,222,217
-.byte   102,15,56,222,225
-.byte   102,15,56,223,208
-.byte   102,15,56,223,216
-.byte   102,15,56,223,224
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   _aesni_decrypt3,.-_aesni_decrypt3
-.type   _aesni_encrypt4, at function
-.align  16
-_aesni_encrypt4:
-.cfi_startproc
-        movups  (%rcx),%xmm0
-        shll    $4,%eax
-        movups  16(%rcx),%xmm1
-        xorps   %xmm0,%xmm2
-        xorps   %xmm0,%xmm3
-        xorps   %xmm0,%xmm4
-        xorps   %xmm0,%xmm5
-        movups  32(%rcx),%xmm0
-        leaq    32(%rcx,%rax,1),%rcx
-        negq    %rax
-.byte   0x0f,0x1f,0x00
-        addq    $16,%rax
-
-.Lenc_loop4:
-.byte   102,15,56,220,209
-.byte   102,15,56,220,217
-.byte   102,15,56,220,225
-.byte   102,15,56,220,233
-        movups  (%rcx,%rax,1),%xmm1
-        addq    $32,%rax
-.byte   102,15,56,220,208
-.byte   102,15,56,220,216
-.byte   102,15,56,220,224
-.byte   102,15,56,220,232
-        movups  -16(%rcx,%rax,1),%xmm0
-        jnz     .Lenc_loop4
-
-.byte   102,15,56,220,209
-.byte   102,15,56,220,217
-.byte   102,15,56,220,225
-.byte   102,15,56,220,233
-.byte   102,15,56,221,208
-.byte   102,15,56,221,216
-.byte   102,15,56,221,224
-.byte   102,15,56,221,232
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   _aesni_encrypt4,.-_aesni_encrypt4
-.type   _aesni_decrypt4, at function
-.align  16
-_aesni_decrypt4:
-.cfi_startproc
-        movups  (%rcx),%xmm0
-        shll    $4,%eax
-        movups  16(%rcx),%xmm1
-        xorps   %xmm0,%xmm2
-        xorps   %xmm0,%xmm3
-        xorps   %xmm0,%xmm4
-        xorps   %xmm0,%xmm5
-        movups  32(%rcx),%xmm0
-        leaq    32(%rcx,%rax,1),%rcx
-        negq    %rax
-.byte   0x0f,0x1f,0x00
-        addq    $16,%rax
-
-.Ldec_loop4:
-.byte   102,15,56,222,209
-.byte   102,15,56,222,217
-.byte   102,15,56,222,225
-.byte   102,15,56,222,233
-        movups  (%rcx,%rax,1),%xmm1
-        addq    $32,%rax
-.byte   102,15,56,222,208
-.byte   102,15,56,222,216
-.byte   102,15,56,222,224
-.byte   102,15,56,222,232
-        movups  -16(%rcx,%rax,1),%xmm0
-        jnz     .Ldec_loop4
-
-.byte   102,15,56,222,209
-.byte   102,15,56,222,217
-.byte   102,15,56,222,225
-.byte   102,15,56,222,233
-.byte   102,15,56,223,208
-.byte   102,15,56,223,216
-.byte   102,15,56,223,224
-.byte   102,15,56,223,232
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   _aesni_decrypt4,.-_aesni_decrypt4
-.type   _aesni_encrypt6, at function
-.align  16
-_aesni_encrypt6:
-.cfi_startproc
-        movups  (%rcx),%xmm0
-        shll    $4,%eax
-        movups  16(%rcx),%xmm1
-        xorps   %xmm0,%xmm2
-        pxor    %xmm0,%xmm3
-        pxor    %xmm0,%xmm4
-.byte   102,15,56,220,209
-        leaq    32(%rcx,%rax,1),%rcx
-        negq    %rax
-.byte   102,15,56,220,217
-        pxor    %xmm0,%xmm5
-        pxor    %xmm0,%xmm6
-.byte   102,15,56,220,225
-        pxor    %xmm0,%xmm7
-        movups  (%rcx,%rax,1),%xmm0
-        addq    $16,%rax
-        jmp     .Lenc_loop6_enter
-.align  16
-.Lenc_loop6:
-.byte   102,15,56,220,209
-.byte   102,15,56,220,217
-.byte   102,15,56,220,225
-.Lenc_loop6_enter:
-.byte   102,15,56,220,233
-.byte   102,15,56,220,241
-.byte   102,15,56,220,249
-        movups  (%rcx,%rax,1),%xmm1
-        addq    $32,%rax
-.byte   102,15,56,220,208
-.byte   102,15,56,220,216
-.byte   102,15,56,220,224
-.byte   102,15,56,220,232
-.byte   102,15,56,220,240
-.byte   102,15,56,220,248
-        movups  -16(%rcx,%rax,1),%xmm0
-        jnz     .Lenc_loop6
-
-.byte   102,15,56,220,209
-.byte   102,15,56,220,217
-.byte   102,15,56,220,225
-.byte   102,15,56,220,233
-.byte   102,15,56,220,241
-.byte   102,15,56,220,249
-.byte   102,15,56,221,208
-.byte   102,15,56,221,216
-.byte   102,15,56,221,224
-.byte   102,15,56,221,232
-.byte   102,15,56,221,240
-.byte   102,15,56,221,248
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   _aesni_encrypt6,.-_aesni_encrypt6
-.type   _aesni_decrypt6, at function
-.align  16
-_aesni_decrypt6:
-.cfi_startproc
-        movups  (%rcx),%xmm0
-        shll    $4,%eax
-        movups  16(%rcx),%xmm1
-        xorps   %xmm0,%xmm2
-        pxor    %xmm0,%xmm3
-        pxor    %xmm0,%xmm4
-.byte   102,15,56,222,209
-        leaq    32(%rcx,%rax,1),%rcx
-        negq    %rax
-.byte   102,15,56,222,217
-        pxor    %xmm0,%xmm5
-        pxor    %xmm0,%xmm6
-.byte   102,15,56,222,225
-        pxor    %xmm0,%xmm7
-        movups  (%rcx,%rax,1),%xmm0
-        addq    $16,%rax
-        jmp     .Ldec_loop6_enter
-.align  16
-.Ldec_loop6:
-.byte   102,15,56,222,209
-.byte   102,15,56,222,217
-.byte   102,15,56,222,225
-.Ldec_loop6_enter:
-.byte   102,15,56,222,233
-.byte   102,15,56,222,241
-.byte   102,15,56,222,249
-        movups  (%rcx,%rax,1),%xmm1
-        addq    $32,%rax
-.byte   102,15,56,222,208
-.byte   102,15,56,222,216
-.byte   102,15,56,222,224
-.byte   102,15,56,222,232
-.byte   102,15,56,222,240
-.byte   102,15,56,222,248
-        movups  -16(%rcx,%rax,1),%xmm0
-        jnz     .Ldec_loop6
-
-.byte   102,15,56,222,209
-.byte   102,15,56,222,217
-.byte   102,15,56,222,225
-.byte   102,15,56,222,233
-.byte   102,15,56,222,241
-.byte   102,15,56,222,249
-.byte   102,15,56,223,208
-.byte   102,15,56,223,216
-.byte   102,15,56,223,224
-.byte   102,15,56,223,232
-.byte   102,15,56,223,240
-.byte   102,15,56,223,248
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   _aesni_decrypt6,.-_aesni_decrypt6
-.type   _aesni_encrypt8, at function
-.align  16
-_aesni_encrypt8:
-.cfi_startproc
-        movups  (%rcx),%xmm0
-        shll    $4,%eax
-        movups  16(%rcx),%xmm1
-        xorps   %xmm0,%xmm2
-        xorps   %xmm0,%xmm3
-        pxor    %xmm0,%xmm4
-        pxor    %xmm0,%xmm5
-        pxor    %xmm0,%xmm6
-        leaq    32(%rcx,%rax,1),%rcx
-        negq    %rax
-.byte   102,15,56,220,209
-        pxor    %xmm0,%xmm7
-        pxor    %xmm0,%xmm8
-.byte   102,15,56,220,217
-        pxor    %xmm0,%xmm9
-        movups  (%rcx,%rax,1),%xmm0
-        addq    $16,%rax
-        jmp     .Lenc_loop8_inner
-.align  16
-.Lenc_loop8:
-.byte   102,15,56,220,209
-.byte   102,15,56,220,217
-.Lenc_loop8_inner:
-.byte   102,15,56,220,225
-.byte   102,15,56,220,233
-.byte   102,15,56,220,241
-.byte   102,15,56,220,249
-.byte   102,68,15,56,220,193
-.byte   102,68,15,56,220,201
-.Lenc_loop8_enter:
-        movups  (%rcx,%rax,1),%xmm1
-        addq    $32,%rax
-.byte   102,15,56,220,208
-.byte   102,15,56,220,216
-.byte   102,15,56,220,224
-.byte   102,15,56,220,232
-.byte   102,15,56,220,240
-.byte   102,15,56,220,248
-.byte   102,68,15,56,220,192
-.byte   102,68,15,56,220,200
-        movups  -16(%rcx,%rax,1),%xmm0
-        jnz     .Lenc_loop8
-
-.byte   102,15,56,220,209
-.byte   102,15,56,220,217
-.byte   102,15,56,220,225
-.byte   102,15,56,220,233
-.byte   102,15,56,220,241
-.byte   102,15,56,220,249
-.byte   102,68,15,56,220,193
-.byte   102,68,15,56,220,201
-.byte   102,15,56,221,208
-.byte   102,15,56,221,216
-.byte   102,15,56,221,224
-.byte   102,15,56,221,232
-.byte   102,15,56,221,240
-.byte   102,15,56,221,248
-.byte   102,68,15,56,221,192
-.byte   102,68,15,56,221,200
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   _aesni_encrypt8,.-_aesni_encrypt8
-.type   _aesni_decrypt8, at function
-.align  16
-_aesni_decrypt8:
-.cfi_startproc
-        movups  (%rcx),%xmm0
-        shll    $4,%eax
-        movups  16(%rcx),%xmm1
-        xorps   %xmm0,%xmm2
-        xorps   %xmm0,%xmm3
-        pxor    %xmm0,%xmm4
-        pxor    %xmm0,%xmm5
-        pxor    %xmm0,%xmm6
-        leaq    32(%rcx,%rax,1),%rcx
-        negq    %rax
-.byte   102,15,56,222,209
-        pxor    %xmm0,%xmm7
-        pxor    %xmm0,%xmm8
-.byte   102,15,56,222,217
-        pxor    %xmm0,%xmm9
-        movups  (%rcx,%rax,1),%xmm0
-        addq    $16,%rax
-        jmp     .Ldec_loop8_inner
-.align  16
-.Ldec_loop8:
-.byte   102,15,56,222,209
-.byte   102,15,56,222,217
-.Ldec_loop8_inner:
-.byte   102,15,56,222,225
-.byte   102,15,56,222,233
-.byte   102,15,56,222,241
-.byte   102,15,56,222,249
-.byte   102,68,15,56,222,193
-.byte   102,68,15,56,222,201
-.Ldec_loop8_enter:
-        movups  (%rcx,%rax,1),%xmm1
-        addq    $32,%rax
-.byte   102,15,56,222,208
-.byte   102,15,56,222,216
-.byte   102,15,56,222,224
-.byte   102,15,56,222,232
-.byte   102,15,56,222,240
-.byte   102,15,56,222,248
-.byte   102,68,15,56,222,192
-.byte   102,68,15,56,222,200
-        movups  -16(%rcx,%rax,1),%xmm0
-        jnz     .Ldec_loop8
-
-.byte   102,15,56,222,209
-.byte   102,15,56,222,217
-.byte   102,15,56,222,225
-.byte   102,15,56,222,233
-.byte   102,15,56,222,241
-.byte   102,15,56,222,249
-.byte   102,68,15,56,222,193
-.byte   102,68,15,56,222,201
-.byte   102,15,56,223,208
-.byte   102,15,56,223,216
-.byte   102,15,56,223,224
-.byte   102,15,56,223,232
-.byte   102,15,56,223,240
-.byte   102,15,56,223,248
-.byte   102,68,15,56,223,192
-.byte   102,68,15,56,223,200
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   _aesni_decrypt8,.-_aesni_decrypt8
-.globl  aesni_ecb_encrypt
-.type   aesni_ecb_encrypt, at function
-.align  16
-aesni_ecb_encrypt:
-.cfi_startproc
-        andq    $-16,%rdx
-        jz      .Lecb_ret
-
-        movl    240(%rcx),%eax
-        movups  (%rcx),%xmm0
-        movq    %rcx,%r11
-        movl    %eax,%r10d
-        testl   %r8d,%r8d
-        jz      .Lecb_decrypt
-
-        cmpq    $0x80,%rdx
-        jb      .Lecb_enc_tail
-
-        movdqu  (%rdi),%xmm2
-        movdqu  16(%rdi),%xmm3
-        movdqu  32(%rdi),%xmm4
-        movdqu  48(%rdi),%xmm5
-        movdqu  64(%rdi),%xmm6
-        movdqu  80(%rdi),%xmm7
-        movdqu  96(%rdi),%xmm8
-        movdqu  112(%rdi),%xmm9
-        leaq    128(%rdi),%rdi
-        subq    $0x80,%rdx
-        jmp     .Lecb_enc_loop8_enter
-.align  16
-.Lecb_enc_loop8:
-        movups  %xmm2,(%rsi)
-        movq    %r11,%rcx
-        movdqu  (%rdi),%xmm2
-        movl    %r10d,%eax
-        movups  %xmm3,16(%rsi)
-        movdqu  16(%rdi),%xmm3
-        movups  %xmm4,32(%rsi)
-        movdqu  32(%rdi),%xmm4
-        movups  %xmm5,48(%rsi)
-        movdqu  48(%rdi),%xmm5
-        movups  %xmm6,64(%rsi)
-        movdqu  64(%rdi),%xmm6
-        movups  %xmm7,80(%rsi)
-        movdqu  80(%rdi),%xmm7
-        movups  %xmm8,96(%rsi)
-        movdqu  96(%rdi),%xmm8
-        movups  %xmm9,112(%rsi)
-        leaq    128(%rsi),%rsi
-        movdqu  112(%rdi),%xmm9
-        leaq    128(%rdi),%rdi
-.Lecb_enc_loop8_enter:
-
-        call    _aesni_encrypt8
-
-        subq    $0x80,%rdx
-        jnc     .Lecb_enc_loop8
-
-        movups  %xmm2,(%rsi)
-        movq    %r11,%rcx
-        movups  %xmm3,16(%rsi)
-        movl    %r10d,%eax
-        movups  %xmm4,32(%rsi)
-        movups  %xmm5,48(%rsi)
-        movups  %xmm6,64(%rsi)
-        movups  %xmm7,80(%rsi)
-        movups  %xmm8,96(%rsi)
-        movups  %xmm9,112(%rsi)
-        leaq    128(%rsi),%rsi
-        addq    $0x80,%rdx
-        jz      .Lecb_ret
-
-.Lecb_enc_tail:
-        movups  (%rdi),%xmm2
-        cmpq    $0x20,%rdx
-        jb      .Lecb_enc_one
-        movups  16(%rdi),%xmm3
-        je      .Lecb_enc_two
-        movups  32(%rdi),%xmm4
-        cmpq    $0x40,%rdx
-        jb      .Lecb_enc_three
-        movups  48(%rdi),%xmm5
-        je      .Lecb_enc_four
-        movups  64(%rdi),%xmm6
-        cmpq    $0x60,%rdx
-        jb      .Lecb_enc_five
-        movups  80(%rdi),%xmm7
-        je      .Lecb_enc_six
-        movdqu  96(%rdi),%xmm8
-        xorps   %xmm9,%xmm9
-        call    _aesni_encrypt8
-        movups  %xmm2,(%rsi)
-        movups  %xmm3,16(%rsi)
-        movups  %xmm4,32(%rsi)
-        movups  %xmm5,48(%rsi)
-        movups  %xmm6,64(%rsi)
-        movups  %xmm7,80(%rsi)
-        movups  %xmm8,96(%rsi)
-        jmp     .Lecb_ret
-.align  16
-.Lecb_enc_one:
-        movups  (%rcx),%xmm0
-        movups  16(%rcx),%xmm1
-        leaq    32(%rcx),%rcx
-        xorps   %xmm0,%xmm2
-.Loop_enc1_3:
-.byte   102,15,56,220,209
-        decl    %eax
-        movups  (%rcx),%xmm1
-        leaq    16(%rcx),%rcx
-        jnz     .Loop_enc1_3
-.byte   102,15,56,221,209
-        movups  %xmm2,(%rsi)
-        jmp     .Lecb_ret
-.align  16
-.Lecb_enc_two:
-        call    _aesni_encrypt2
-        movups  %xmm2,(%rsi)
-        movups  %xmm3,16(%rsi)
-        jmp     .Lecb_ret
-.align  16
-.Lecb_enc_three:
-        call    _aesni_encrypt3
-        movups  %xmm2,(%rsi)
-        movups  %xmm3,16(%rsi)
-        movups  %xmm4,32(%rsi)
-        jmp     .Lecb_ret
-.align  16
-.Lecb_enc_four:
-        call    _aesni_encrypt4
-        movups  %xmm2,(%rsi)
-        movups  %xmm3,16(%rsi)
-        movups  %xmm4,32(%rsi)
-        movups  %xmm5,48(%rsi)
-        jmp     .Lecb_ret
-.align  16
-.Lecb_enc_five:
-        xorps   %xmm7,%xmm7
-        call    _aesni_encrypt6
-        movups  %xmm2,(%rsi)
-        movups  %xmm3,16(%rsi)
-        movups  %xmm4,32(%rsi)
-        movups  %xmm5,48(%rsi)
-        movups  %xmm6,64(%rsi)
-        jmp     .Lecb_ret
-.align  16
-.Lecb_enc_six:
-        call    _aesni_encrypt6
-        movups  %xmm2,(%rsi)
-        movups  %xmm3,16(%rsi)
-        movups  %xmm4,32(%rsi)
-        movups  %xmm5,48(%rsi)
-        movups  %xmm6,64(%rsi)
-        movups  %xmm7,80(%rsi)
-        jmp     .Lecb_ret
-
-.align  16
-.Lecb_decrypt:
-        cmpq    $0x80,%rdx
-        jb      .Lecb_dec_tail
-
-        movdqu  (%rdi),%xmm2
-        movdqu  16(%rdi),%xmm3
-        movdqu  32(%rdi),%xmm4
-        movdqu  48(%rdi),%xmm5
-        movdqu  64(%rdi),%xmm6
-        movdqu  80(%rdi),%xmm7
-        movdqu  96(%rdi),%xmm8
-        movdqu  112(%rdi),%xmm9
-        leaq    128(%rdi),%rdi
-        subq    $0x80,%rdx
-        jmp     .Lecb_dec_loop8_enter
-.align  16
-.Lecb_dec_loop8:
-        movups  %xmm2,(%rsi)
-        movq    %r11,%rcx
-        movdqu  (%rdi),%xmm2
-        movl    %r10d,%eax
-        movups  %xmm3,16(%rsi)
-        movdqu  16(%rdi),%xmm3
-        movups  %xmm4,32(%rsi)
-        movdqu  32(%rdi),%xmm4
-        movups  %xmm5,48(%rsi)
-        movdqu  48(%rdi),%xmm5
-        movups  %xmm6,64(%rsi)
-        movdqu  64(%rdi),%xmm6
-        movups  %xmm7,80(%rsi)
-        movdqu  80(%rdi),%xmm7
-        movups  %xmm8,96(%rsi)
-        movdqu  96(%rdi),%xmm8
-        movups  %xmm9,112(%rsi)
-        leaq    128(%rsi),%rsi
-        movdqu  112(%rdi),%xmm9
-        leaq    128(%rdi),%rdi
-.Lecb_dec_loop8_enter:
-
-        call    _aesni_decrypt8
-
-        movups  (%r11),%xmm0
-        subq    $0x80,%rdx
-        jnc     .Lecb_dec_loop8
-
-        movups  %xmm2,(%rsi)
-        pxor    %xmm2,%xmm2
-        movq    %r11,%rcx
-        movups  %xmm3,16(%rsi)
-        pxor    %xmm3,%xmm3
-        movl    %r10d,%eax
-        movups  %xmm4,32(%rsi)
-        pxor    %xmm4,%xmm4
-        movups  %xmm5,48(%rsi)
-        pxor    %xmm5,%xmm5
-        movups  %xmm6,64(%rsi)
-        pxor    %xmm6,%xmm6
-        movups  %xmm7,80(%rsi)
-        pxor    %xmm7,%xmm7
-        movups  %xmm8,96(%rsi)
-        pxor    %xmm8,%xmm8
-        movups  %xmm9,112(%rsi)
-        pxor    %xmm9,%xmm9
-        leaq    128(%rsi),%rsi
-        addq    $0x80,%rdx
-        jz      .Lecb_ret
-
-.Lecb_dec_tail:
-        movups  (%rdi),%xmm2
-        cmpq    $0x20,%rdx
-        jb      .Lecb_dec_one
-        movups  16(%rdi),%xmm3
-        je      .Lecb_dec_two
-        movups  32(%rdi),%xmm4
-        cmpq    $0x40,%rdx
-        jb      .Lecb_dec_three
-        movups  48(%rdi),%xmm5
-        je      .Lecb_dec_four
-        movups  64(%rdi),%xmm6
-        cmpq    $0x60,%rdx
-        jb      .Lecb_dec_five
-        movups  80(%rdi),%xmm7
-        je      .Lecb_dec_six
-        movups  96(%rdi),%xmm8
-        movups  (%rcx),%xmm0
-        xorps   %xmm9,%xmm9
-        call    _aesni_decrypt8
-        movups  %xmm2,(%rsi)
-        pxor    %xmm2,%xmm2
-        movups  %xmm3,16(%rsi)
-        pxor    %xmm3,%xmm3
-        movups  %xmm4,32(%rsi)
-        pxor    %xmm4,%xmm4
-        movups  %xmm5,48(%rsi)
-        pxor    %xmm5,%xmm5
-        movups  %xmm6,64(%rsi)
-        pxor    %xmm6,%xmm6
-        movups  %xmm7,80(%rsi)
-        pxor    %xmm7,%xmm7
-        movups  %xmm8,96(%rsi)
-        pxor    %xmm8,%xmm8
-        pxor    %xmm9,%xmm9
-        jmp     .Lecb_ret
-.align  16
-.Lecb_dec_one:
-        movups  (%rcx),%xmm0
-        movups  16(%rcx),%xmm1
-        leaq    32(%rcx),%rcx
-        xorps   %xmm0,%xmm2
-.Loop_dec1_4:
-.byte   102,15,56,222,209
-        decl    %eax
-        movups  (%rcx),%xmm1
-        leaq    16(%rcx),%rcx
-        jnz     .Loop_dec1_4
-.byte   102,15,56,223,209
-        movups  %xmm2,(%rsi)
-        pxor    %xmm2,%xmm2
-        jmp     .Lecb_ret
-.align  16
-.Lecb_dec_two:
-        call    _aesni_decrypt2
-        movups  %xmm2,(%rsi)
-        pxor    %xmm2,%xmm2
-        movups  %xmm3,16(%rsi)
-        pxor    %xmm3,%xmm3
-        jmp     .Lecb_ret
-.align  16
-.Lecb_dec_three:
-        call    _aesni_decrypt3
-        movups  %xmm2,(%rsi)
-        pxor    %xmm2,%xmm2
-        movups  %xmm3,16(%rsi)
-        pxor    %xmm3,%xmm3
-        movups  %xmm4,32(%rsi)
-        pxor    %xmm4,%xmm4
-        jmp     .Lecb_ret
-.align  16
-.Lecb_dec_four:
-        call    _aesni_decrypt4
-        movups  %xmm2,(%rsi)
-        pxor    %xmm2,%xmm2
-        movups  %xmm3,16(%rsi)
-        pxor    %xmm3,%xmm3
-        movups  %xmm4,32(%rsi)
-        pxor    %xmm4,%xmm4
-        movups  %xmm5,48(%rsi)
-        pxor    %xmm5,%xmm5
-        jmp     .Lecb_ret
-.align  16
-.Lecb_dec_five:
-        xorps   %xmm7,%xmm7
-        call    _aesni_decrypt6
-        movups  %xmm2,(%rsi)
-        pxor    %xmm2,%xmm2
-        movups  %xmm3,16(%rsi)
-        pxor    %xmm3,%xmm3
-        movups  %xmm4,32(%rsi)
-        pxor    %xmm4,%xmm4
-        movups  %xmm5,48(%rsi)
-        pxor    %xmm5,%xmm5
-        movups  %xmm6,64(%rsi)
-        pxor    %xmm6,%xmm6
-        pxor    %xmm7,%xmm7
-        jmp     .Lecb_ret
-.align  16
-.Lecb_dec_six:
-        call    _aesni_decrypt6
-        movups  %xmm2,(%rsi)
-        pxor    %xmm2,%xmm2
-        movups  %xmm3,16(%rsi)
-        pxor    %xmm3,%xmm3
-        movups  %xmm4,32(%rsi)
-        pxor    %xmm4,%xmm4
-        movups  %xmm5,48(%rsi)
-        pxor    %xmm5,%xmm5
-        movups  %xmm6,64(%rsi)
-        pxor    %xmm6,%xmm6
-        movups  %xmm7,80(%rsi)
-        pxor    %xmm7,%xmm7
-
-.Lecb_ret:
-        xorps   %xmm0,%xmm0
-        pxor    %xmm1,%xmm1
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   aesni_ecb_encrypt,.-aesni_ecb_encrypt
-.globl  aesni_ccm64_encrypt_blocks
-.type   aesni_ccm64_encrypt_blocks, at function
-.align  16
-aesni_ccm64_encrypt_blocks:
-.cfi_startproc
-        movl    240(%rcx),%eax
-        movdqu  (%r8),%xmm6
-        movdqa  .Lincrement64(%rip),%xmm9
-        movdqa  .Lbswap_mask(%rip),%xmm7
-
-        shll    $4,%eax
-        movl    $16,%r10d
-        leaq    0(%rcx),%r11
-        movdqu  (%r9),%xmm3
-        movdqa  %xmm6,%xmm2
-        leaq    32(%rcx,%rax,1),%rcx
-.byte   102,15,56,0,247
-        subq    %rax,%r10
-        jmp     .Lccm64_enc_outer
-.align  16
-.Lccm64_enc_outer:
-        movups  (%r11),%xmm0
-        movq    %r10,%rax
-        movups  (%rdi),%xmm8
-
-        xorps   %xmm0,%xmm2
-        movups  16(%r11),%xmm1
-        xorps   %xmm8,%xmm0
-        xorps   %xmm0,%xmm3
-        movups  32(%r11),%xmm0
-
-.Lccm64_enc2_loop:
-.byte   102,15,56,220,209
-.byte   102,15,56,220,217
-        movups  (%rcx,%rax,1),%xmm1
-        addq    $32,%rax
-.byte   102,15,56,220,208
-.byte   102,15,56,220,216
-        movups  -16(%rcx,%rax,1),%xmm0
-        jnz     .Lccm64_enc2_loop
-.byte   102,15,56,220,209
-.byte   102,15,56,220,217
-        paddq   %xmm9,%xmm6
-        decq    %rdx
-.byte   102,15,56,221,208
-.byte   102,15,56,221,216
-
-        leaq    16(%rdi),%rdi
-        xorps   %xmm2,%xmm8
-        movdqa  %xmm6,%xmm2
-        movups  %xmm8,(%rsi)
-.byte   102,15,56,0,215
-        leaq    16(%rsi),%rsi
-        jnz     .Lccm64_enc_outer
-
-        pxor    %xmm0,%xmm0
-        pxor    %xmm1,%xmm1
-        pxor    %xmm2,%xmm2
-        movups  %xmm3,(%r9)
-        pxor    %xmm3,%xmm3
-        pxor    %xmm8,%xmm8
-        pxor    %xmm6,%xmm6
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   aesni_ccm64_encrypt_blocks,.-aesni_ccm64_encrypt_blocks
-.globl  aesni_ccm64_decrypt_blocks
-.type   aesni_ccm64_decrypt_blocks, at function
-.align  16
-aesni_ccm64_decrypt_blocks:
-.cfi_startproc
-        movl    240(%rcx),%eax
-        movups  (%r8),%xmm6
-        movdqu  (%r9),%xmm3
-        movdqa  .Lincrement64(%rip),%xmm9
-        movdqa  .Lbswap_mask(%rip),%xmm7
-
-        movaps  %xmm6,%xmm2
-        movl    %eax,%r10d
-        movq    %rcx,%r11
-.byte   102,15,56,0,247
-        movups  (%rcx),%xmm0
-        movups  16(%rcx),%xmm1
-        leaq    32(%rcx),%rcx
-        xorps   %xmm0,%xmm2
-.Loop_enc1_5:
-.byte   102,15,56,220,209
-        decl    %eax
-        movups  (%rcx),%xmm1
-        leaq    16(%rcx),%rcx
-        jnz     .Loop_enc1_5
-.byte   102,15,56,221,209
-        shll    $4,%r10d
-        movl    $16,%eax
-        movups  (%rdi),%xmm8
-        paddq   %xmm9,%xmm6
-        leaq    16(%rdi),%rdi
-        subq    %r10,%rax
-        leaq    32(%r11,%r10,1),%rcx
-        movq    %rax,%r10
-        jmp     .Lccm64_dec_outer
-.align  16
-.Lccm64_dec_outer:
-        xorps   %xmm2,%xmm8
-        movdqa  %xmm6,%xmm2
-        movups  %xmm8,(%rsi)
-        leaq    16(%rsi),%rsi
-.byte   102,15,56,0,215
-
-        subq    $1,%rdx
-        jz      .Lccm64_dec_break
-
-        movups  (%r11),%xmm0
-        movq    %r10,%rax
-        movups  16(%r11),%xmm1
-        xorps   %xmm0,%xmm8
-        xorps   %xmm0,%xmm2
-        xorps   %xmm8,%xmm3
-        movups  32(%r11),%xmm0
-        jmp     .Lccm64_dec2_loop
-.align  16
-.Lccm64_dec2_loop:
-.byte   102,15,56,220,209
-.byte   102,15,56,220,217
-        movups  (%rcx,%rax,1),%xmm1
-        addq    $32,%rax
-.byte   102,15,56,220,208
-.byte   102,15,56,220,216
-        movups  -16(%rcx,%rax,1),%xmm0
-        jnz     .Lccm64_dec2_loop
-        movups  (%rdi),%xmm8
-        paddq   %xmm9,%xmm6
-.byte   102,15,56,220,209
-.byte   102,15,56,220,217
-.byte   102,15,56,221,208
-.byte   102,15,56,221,216
-        leaq    16(%rdi),%rdi
-        jmp     .Lccm64_dec_outer
-
-.align  16
-.Lccm64_dec_break:
-
-        movl    240(%r11),%eax
-        movups  (%r11),%xmm0
-        movups  16(%r11),%xmm1
-        xorps   %xmm0,%xmm8
-        leaq    32(%r11),%r11
-        xorps   %xmm8,%xmm3
-.Loop_enc1_6:
-.byte   102,15,56,220,217
-        decl    %eax
-        movups  (%r11),%xmm1
-        leaq    16(%r11),%r11
-        jnz     .Loop_enc1_6
-.byte   102,15,56,221,217
-        pxor    %xmm0,%xmm0
-        pxor    %xmm1,%xmm1
-        pxor    %xmm2,%xmm2
-        movups  %xmm3,(%r9)
-        pxor    %xmm3,%xmm3
-        pxor    %xmm8,%xmm8
-        pxor    %xmm6,%xmm6
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   aesni_ccm64_decrypt_blocks,.-aesni_ccm64_decrypt_blocks
-.globl  aesni_ctr32_encrypt_blocks
-.type   aesni_ctr32_encrypt_blocks, at function
-.align  16
-aesni_ctr32_encrypt_blocks:
-.cfi_startproc
-        cmpq    $1,%rdx
-        jne     .Lctr32_bulk
-
-
-
-        movups  (%r8),%xmm2
-        movups  (%rdi),%xmm3
-        movl    240(%rcx),%edx
-        movups  (%rcx),%xmm0
-        movups  16(%rcx),%xmm1
-        leaq    32(%rcx),%rcx
-        xorps   %xmm0,%xmm2
-.Loop_enc1_7:
-.byte   102,15,56,220,209
-        decl    %edx
-        movups  (%rcx),%xmm1
-        leaq    16(%rcx),%rcx
-        jnz     .Loop_enc1_7
-.byte   102,15,56,221,209
-        pxor    %xmm0,%xmm0
-        pxor    %xmm1,%xmm1
-        xorps   %xmm3,%xmm2
-        pxor    %xmm3,%xmm3
-        movups  %xmm2,(%rsi)
-        xorps   %xmm2,%xmm2
-        jmp     .Lctr32_epilogue
-
-.align  16
-.Lctr32_bulk:
-        leaq    (%rsp),%r11
-.cfi_def_cfa_register   %r11
-        pushq   %rbp
-.cfi_offset     %rbp,-16
-        subq    $128,%rsp
-        andq    $-16,%rsp
-
-
-
-
-        movdqu  (%r8),%xmm2
-        movdqu  (%rcx),%xmm0
-        movl    12(%r8),%r8d
-        pxor    %xmm0,%xmm2
-        movl    12(%rcx),%ebp
-        movdqa  %xmm2,0(%rsp)
-        bswapl  %r8d
-        movdqa  %xmm2,%xmm3
-        movdqa  %xmm2,%xmm4
-        movdqa  %xmm2,%xmm5
-        movdqa  %xmm2,64(%rsp)
-        movdqa  %xmm2,80(%rsp)
-        movdqa  %xmm2,96(%rsp)
-        movq    %rdx,%r10
-        movdqa  %xmm2,112(%rsp)
-
-        leaq    1(%r8),%rax
-        leaq    2(%r8),%rdx
-        bswapl  %eax
-        bswapl  %edx
-        xorl    %ebp,%eax
-        xorl    %ebp,%edx
-.byte   102,15,58,34,216,3
-        leaq    3(%r8),%rax
-        movdqa  %xmm3,16(%rsp)
-.byte   102,15,58,34,226,3
-        bswapl  %eax
-        movq    %r10,%rdx
-        leaq    4(%r8),%r10
-        movdqa  %xmm4,32(%rsp)
-        xorl    %ebp,%eax
-        bswapl  %r10d
-.byte   102,15,58,34,232,3
-        xorl    %ebp,%r10d
-        movdqa  %xmm5,48(%rsp)
-        leaq    5(%r8),%r9
-        movl    %r10d,64+12(%rsp)
-        bswapl  %r9d
-        leaq    6(%r8),%r10
-        movl    240(%rcx),%eax
-        xorl    %ebp,%r9d
-        bswapl  %r10d
-        movl    %r9d,80+12(%rsp)
-        xorl    %ebp,%r10d
-        leaq    7(%r8),%r9
-        movl    %r10d,96+12(%rsp)
-        bswapl  %r9d
-        movl    OPENSSL_ia32cap_P+4(%rip),%r10d
-        xorl    %ebp,%r9d
-        andl    $71303168,%r10d
-        movl    %r9d,112+12(%rsp)
-
-        movups  16(%rcx),%xmm1
-
-        movdqa  64(%rsp),%xmm6
-        movdqa  80(%rsp),%xmm7
-
-        cmpq    $8,%rdx
-        jb      .Lctr32_tail
-
-        subq    $6,%rdx
-        cmpl    $4194304,%r10d
-        je      .Lctr32_6x
-
-        leaq    128(%rcx),%rcx
-        subq    $2,%rdx
-        jmp     .Lctr32_loop8
-
-.align  16
-.Lctr32_6x:
-        shll    $4,%eax
-        movl    $48,%r10d
-        bswapl  %ebp
-        leaq    32(%rcx,%rax,1),%rcx
-        subq    %rax,%r10
-        jmp     .Lctr32_loop6
-
-.align  16
-.Lctr32_loop6:
-        addl    $6,%r8d
-        movups  -48(%rcx,%r10,1),%xmm0
-.byte   102,15,56,220,209
-        movl    %r8d,%eax
-        xorl    %ebp,%eax
-.byte   102,15,56,220,217
-.byte   0x0f,0x38,0xf1,0x44,0x24,12
-        leal    1(%r8),%eax
-.byte   102,15,56,220,225
-        xorl    %ebp,%eax
-.byte   0x0f,0x38,0xf1,0x44,0x24,28
-.byte   102,15,56,220,233
-        leal    2(%r8),%eax
-        xorl    %ebp,%eax
-.byte   102,15,56,220,241
-.byte   0x0f,0x38,0xf1,0x44,0x24,44
-        leal    3(%r8),%eax
-.byte   102,15,56,220,249
-        movups  -32(%rcx,%r10,1),%xmm1
-        xorl    %ebp,%eax
-
-.byte   102,15,56,220,208
-.byte   0x0f,0x38,0xf1,0x44,0x24,60
-        leal    4(%r8),%eax
-.byte   102,15,56,220,216
-        xorl    %ebp,%eax
-.byte   0x0f,0x38,0xf1,0x44,0x24,76
-.byte   102,15,56,220,224
-        leal    5(%r8),%eax
-        xorl    %ebp,%eax
-.byte   102,15,56,220,232
-.byte   0x0f,0x38,0xf1,0x44,0x24,92
-        movq    %r10,%rax
-.byte   102,15,56,220,240
-.byte   102,15,56,220,248
-        movups  -16(%rcx,%r10,1),%xmm0
-
-        call    .Lenc_loop6
-
-        movdqu  (%rdi),%xmm8
-        movdqu  16(%rdi),%xmm9
-        movdqu  32(%rdi),%xmm10
-        movdqu  48(%rdi),%xmm11
-        movdqu  64(%rdi),%xmm12
-        movdqu  80(%rdi),%xmm13
-        leaq    96(%rdi),%rdi
-        movups  -64(%rcx,%r10,1),%xmm1
-        pxor    %xmm2,%xmm8
-        movaps  0(%rsp),%xmm2
-        pxor    %xmm3,%xmm9
-        movaps  16(%rsp),%xmm3
-        pxor    %xmm4,%xmm10
-        movaps  32(%rsp),%xmm4
-        pxor    %xmm5,%xmm11
-        movaps  48(%rsp),%xmm5
-        pxor    %xmm6,%xmm12
-        movaps  64(%rsp),%xmm6
-        pxor    %xmm7,%xmm13
-        movaps  80(%rsp),%xmm7
-        movdqu  %xmm8,(%rsi)
-        movdqu  %xmm9,16(%rsi)
-        movdqu  %xmm10,32(%rsi)
-        movdqu  %xmm11,48(%rsi)
-        movdqu  %xmm12,64(%rsi)
-        movdqu  %xmm13,80(%rsi)
-        leaq    96(%rsi),%rsi
-
-        subq    $6,%rdx
-        jnc     .Lctr32_loop6
-
-        addq    $6,%rdx
-        jz      .Lctr32_done
-
-        leal    -48(%r10),%eax
-        leaq    -80(%rcx,%r10,1),%rcx
-        negl    %eax
-        shrl    $4,%eax
-        jmp     .Lctr32_tail
-
-.align  32
-.Lctr32_loop8:
-        addl    $8,%r8d
-        movdqa  96(%rsp),%xmm8
-.byte   102,15,56,220,209
-        movl    %r8d,%r9d
-        movdqa  112(%rsp),%xmm9
-.byte   102,15,56,220,217
-        bswapl  %r9d
-        movups  32-128(%rcx),%xmm0
-.byte   102,15,56,220,225
-        xorl    %ebp,%r9d
-        nop
-.byte   102,15,56,220,233
-        movl    %r9d,0+12(%rsp)
-        leaq    1(%r8),%r9
-.byte   102,15,56,220,241
-.byte   102,15,56,220,249
-.byte   102,68,15,56,220,193
-.byte   102,68,15,56,220,201
-        movups  48-128(%rcx),%xmm1
-        bswapl  %r9d
-.byte   102,15,56,220,208
-.byte   102,15,56,220,216
-        xorl    %ebp,%r9d
-.byte   0x66,0x90
-.byte   102,15,56,220,224
-.byte   102,15,56,220,232
-        movl    %r9d,16+12(%rsp)
-        leaq    2(%r8),%r9
-.byte   102,15,56,220,240
-.byte   102,15,56,220,248
-.byte   102,68,15,56,220,192
-.byte   102,68,15,56,220,200
-        movups  64-128(%rcx),%xmm0
-        bswapl  %r9d
-.byte   102,15,56,220,209
-.byte   102,15,56,220,217
-        xorl    %ebp,%r9d
-.byte   0x66,0x90
-.byte   102,15,56,220,225
-.byte   102,15,56,220,233
-        movl    %r9d,32+12(%rsp)
-        leaq    3(%r8),%r9
-.byte   102,15,56,220,241
-.byte   102,15,56,220,249
-.byte   102,68,15,56,220,193
-.byte   102,68,15,56,220,201
-        movups  80-128(%rcx),%xmm1
-        bswapl  %r9d
-.byte   102,15,56,220,208
-.byte   102,15,56,220,216
-        xorl    %ebp,%r9d
-.byte   0x66,0x90
-.byte   102,15,56,220,224
-.byte   102,15,56,220,232
-        movl    %r9d,48+12(%rsp)
-        leaq    4(%r8),%r9
-.byte   102,15,56,220,240
-.byte   102,15,56,220,248
-.byte   102,68,15,56,220,192
-.byte   102,68,15,56,220,200
-        movups  96-128(%rcx),%xmm0
-        bswapl  %r9d
-.byte   102,15,56,220,209
-.byte   102,15,56,220,217
-        xorl    %ebp,%r9d
-.byte   0x66,0x90
-.byte   102,15,56,220,225
-.byte   102,15,56,220,233
-        movl    %r9d,64+12(%rsp)
-        leaq    5(%r8),%r9
-.byte   102,15,56,220,241
-.byte   102,15,56,220,249
-.byte   102,68,15,56,220,193
-.byte   102,68,15,56,220,201
-        movups  112-128(%rcx),%xmm1
-        bswapl  %r9d
-.byte   102,15,56,220,208
-.byte   102,15,56,220,216
-        xorl    %ebp,%r9d
-.byte   0x66,0x90
-.byte   102,15,56,220,224
-.byte   102,15,56,220,232
-        movl    %r9d,80+12(%rsp)
-        leaq    6(%r8),%r9
-.byte   102,15,56,220,240
-.byte   102,15,56,220,248
-.byte   102,68,15,56,220,192
-.byte   102,68,15,56,220,200
-        movups  128-128(%rcx),%xmm0
-        bswapl  %r9d
-.byte   102,15,56,220,209
-.byte   102,15,56,220,217
-        xorl    %ebp,%r9d
-.byte   0x66,0x90
-.byte   102,15,56,220,225
-.byte   102,15,56,220,233
-        movl    %r9d,96+12(%rsp)
-        leaq    7(%r8),%r9
-.byte   102,15,56,220,241
-.byte   102,15,56,220,249
-.byte   102,68,15,56,220,193
-.byte   102,68,15,56,220,201
-        movups  144-128(%rcx),%xmm1
-        bswapl  %r9d
-.byte   102,15,56,220,208
-.byte   102,15,56,220,216
-.byte   102,15,56,220,224
-        xorl    %ebp,%r9d
-        movdqu  0(%rdi),%xmm10
-.byte   102,15,56,220,232
-        movl    %r9d,112+12(%rsp)
-        cmpl    $11,%eax
-.byte   102,15,56,220,240
-.byte   102,15,56,220,248
-.byte   102,68,15,56,220,192
-.byte   102,68,15,56,220,200
-        movups  160-128(%rcx),%xmm0
-
-        jb      .Lctr32_enc_done
-
-.byte   102,15,56,220,209
-.byte   102,15,56,220,217
-.byte   102,15,56,220,225
-.byte   102,15,56,220,233
-.byte   102,15,56,220,241
-.byte   102,15,56,220,249
-.byte   102,68,15,56,220,193
-.byte   102,68,15,56,220,201
-        movups  176-128(%rcx),%xmm1
-
-.byte   102,15,56,220,208
-.byte   102,15,56,220,216
-.byte   102,15,56,220,224
-.byte   102,15,56,220,232
-.byte   102,15,56,220,240
-.byte   102,15,56,220,248
-.byte   102,68,15,56,220,192
-.byte   102,68,15,56,220,200
-        movups  192-128(%rcx),%xmm0
-        je      .Lctr32_enc_done
-
-.byte   102,15,56,220,209
-.byte   102,15,56,220,217
-.byte   102,15,56,220,225
-.byte   102,15,56,220,233
-.byte   102,15,56,220,241
-.byte   102,15,56,220,249
-.byte   102,68,15,56,220,193
-.byte   102,68,15,56,220,201
-        movups  208-128(%rcx),%xmm1
-
-.byte   102,15,56,220,208
-.byte   102,15,56,220,216
-.byte   102,15,56,220,224
-.byte   102,15,56,220,232
-.byte   102,15,56,220,240
-.byte   102,15,56,220,248
-.byte   102,68,15,56,220,192
-.byte   102,68,15,56,220,200
-        movups  224-128(%rcx),%xmm0
-        jmp     .Lctr32_enc_done
-
-.align  16
-.Lctr32_enc_done:
-        movdqu  16(%rdi),%xmm11
-        pxor    %xmm0,%xmm10
-        movdqu  32(%rdi),%xmm12
-        pxor    %xmm0,%xmm11
-        movdqu  48(%rdi),%xmm13
-        pxor    %xmm0,%xmm12
-        movdqu  64(%rdi),%xmm14
-        pxor    %xmm0,%xmm13
-        movdqu  80(%rdi),%xmm15
-        pxor    %xmm0,%xmm14
-        pxor    %xmm0,%xmm15
-.byte   102,15,56,220,209
-.byte   102,15,56,220,217
-.byte   102,15,56,220,225
-.byte   102,15,56,220,233
-.byte   102,15,56,220,241
-.byte   102,15,56,220,249
-.byte   102,68,15,56,220,193
-.byte   102,68,15,56,220,201
-        movdqu  96(%rdi),%xmm1
-        leaq    128(%rdi),%rdi
-
-.byte   102,65,15,56,221,210
-        pxor    %xmm0,%xmm1
-        movdqu  112-128(%rdi),%xmm10
-.byte   102,65,15,56,221,219
-        pxor    %xmm0,%xmm10
-        movdqa  0(%rsp),%xmm11
-.byte   102,65,15,56,221,228
-.byte   102,65,15,56,221,237
-        movdqa  16(%rsp),%xmm12
-        movdqa  32(%rsp),%xmm13
-.byte   102,65,15,56,221,246
-.byte   102,65,15,56,221,255
-        movdqa  48(%rsp),%xmm14
-        movdqa  64(%rsp),%xmm15
-.byte   102,68,15,56,221,193
-        movdqa  80(%rsp),%xmm0
-        movups  16-128(%rcx),%xmm1
-.byte   102,69,15,56,221,202
-
-        movups  %xmm2,(%rsi)
-        movdqa  %xmm11,%xmm2
-        movups  %xmm3,16(%rsi)
-        movdqa  %xmm12,%xmm3
-        movups  %xmm4,32(%rsi)
-        movdqa  %xmm13,%xmm4
-        movups  %xmm5,48(%rsi)
-        movdqa  %xmm14,%xmm5
-        movups  %xmm6,64(%rsi)
-        movdqa  %xmm15,%xmm6
-        movups  %xmm7,80(%rsi)
-        movdqa  %xmm0,%xmm7
-        movups  %xmm8,96(%rsi)
-        movups  %xmm9,112(%rsi)
-        leaq    128(%rsi),%rsi
-
-        subq    $8,%rdx
-        jnc     .Lctr32_loop8
-
-        addq    $8,%rdx
-        jz      .Lctr32_done
-        leaq    -128(%rcx),%rcx
-
-.Lctr32_tail:
-
-
-        leaq    16(%rcx),%rcx
-        cmpq    $4,%rdx
-        jb      .Lctr32_loop3
-        je      .Lctr32_loop4
-
-
-        shll    $4,%eax
-        movdqa  96(%rsp),%xmm8
-        pxor    %xmm9,%xmm9
-
-        movups  16(%rcx),%xmm0
-.byte   102,15,56,220,209
-.byte   102,15,56,220,217
-        leaq    32-16(%rcx,%rax,1),%rcx
-        negq    %rax
-.byte   102,15,56,220,225
-        addq    $16,%rax
-        movups  (%rdi),%xmm10
-.byte   102,15,56,220,233
-.byte   102,15,56,220,241
-        movups  16(%rdi),%xmm11
-        movups  32(%rdi),%xmm12
-.byte   102,15,56,220,249
-.byte   102,68,15,56,220,193
-
-        call    .Lenc_loop8_enter
-
-        movdqu  48(%rdi),%xmm13
-        pxor    %xmm10,%xmm2
-        movdqu  64(%rdi),%xmm10
-        pxor    %xmm11,%xmm3
-        movdqu  %xmm2,(%rsi)
-        pxor    %xmm12,%xmm4
-        movdqu  %xmm3,16(%rsi)
-        pxor    %xmm13,%xmm5
-        movdqu  %xmm4,32(%rsi)
-        pxor    %xmm10,%xmm6
-        movdqu  %xmm5,48(%rsi)
-        movdqu  %xmm6,64(%rsi)
-        cmpq    $6,%rdx
-        jb      .Lctr32_done
-
-        movups  80(%rdi),%xmm11
-        xorps   %xmm11,%xmm7
-        movups  %xmm7,80(%rsi)
-        je      .Lctr32_done
-
-        movups  96(%rdi),%xmm12
-        xorps   %xmm12,%xmm8
-        movups  %xmm8,96(%rsi)
-        jmp     .Lctr32_done
-
-.align  32
-.Lctr32_loop4:
-.byte   102,15,56,220,209
-        leaq    16(%rcx),%rcx
-        decl    %eax
-.byte   102,15,56,220,217
-.byte   102,15,56,220,225
-.byte   102,15,56,220,233
-        movups  (%rcx),%xmm1
-        jnz     .Lctr32_loop4
-.byte   102,15,56,221,209
-.byte   102,15,56,221,217
-        movups  (%rdi),%xmm10
-        movups  16(%rdi),%xmm11
-.byte   102,15,56,221,225
-.byte   102,15,56,221,233
-        movups  32(%rdi),%xmm12
-        movups  48(%rdi),%xmm13
-
-        xorps   %xmm10,%xmm2
-        movups  %xmm2,(%rsi)
-        xorps   %xmm11,%xmm3
-        movups  %xmm3,16(%rsi)
-        pxor    %xmm12,%xmm4
-        movdqu  %xmm4,32(%rsi)
-        pxor    %xmm13,%xmm5
-        movdqu  %xmm5,48(%rsi)
-        jmp     .Lctr32_done
-
-.align  32
-.Lctr32_loop3:
-.byte   102,15,56,220,209
-        leaq    16(%rcx),%rcx
-        decl    %eax
-.byte   102,15,56,220,217
-.byte   102,15,56,220,225
-        movups  (%rcx),%xmm1
-        jnz     .Lctr32_loop3
-.byte   102,15,56,221,209
-.byte   102,15,56,221,217
-.byte   102,15,56,221,225
-
-        movups  (%rdi),%xmm10
-        xorps   %xmm10,%xmm2
-        movups  %xmm2,(%rsi)
-        cmpq    $2,%rdx
-        jb      .Lctr32_done
-
-        movups  16(%rdi),%xmm11
-        xorps   %xmm11,%xmm3
-        movups  %xmm3,16(%rsi)
-        je      .Lctr32_done
-
-        movups  32(%rdi),%xmm12
-        xorps   %xmm12,%xmm4
-        movups  %xmm4,32(%rsi)
-
-.Lctr32_done:
-        xorps   %xmm0,%xmm0
-        xorl    %ebp,%ebp
-        pxor    %xmm1,%xmm1
-        pxor    %xmm2,%xmm2
-        pxor    %xmm3,%xmm3
-        pxor    %xmm4,%xmm4
-        pxor    %xmm5,%xmm5
-        pxor    %xmm6,%xmm6
-        pxor    %xmm7,%xmm7
-        movaps  %xmm0,0(%rsp)
-        pxor    %xmm8,%xmm8
-        movaps  %xmm0,16(%rsp)
-        pxor    %xmm9,%xmm9
-        movaps  %xmm0,32(%rsp)
-        pxor    %xmm10,%xmm10
-        movaps  %xmm0,48(%rsp)
-        pxor    %xmm11,%xmm11
-        movaps  %xmm0,64(%rsp)
-        pxor    %xmm12,%xmm12
-        movaps  %xmm0,80(%rsp)
-        pxor    %xmm13,%xmm13
-        movaps  %xmm0,96(%rsp)
-        pxor    %xmm14,%xmm14
-        movaps  %xmm0,112(%rsp)
-        pxor    %xmm15,%xmm15
-        movq    -8(%r11),%rbp
-.cfi_restore    %rbp
-        leaq    (%r11),%rsp
-.cfi_def_cfa_register   %rsp
-.Lctr32_epilogue:
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   aesni_ctr32_encrypt_blocks,.-aesni_ctr32_encrypt_blocks
-.globl  aesni_xts_encrypt
-.type   aesni_xts_encrypt, at function
-.align  16
-aesni_xts_encrypt:
-.cfi_startproc
-        leaq    (%rsp),%r11
-.cfi_def_cfa_register   %r11
-        pushq   %rbp
-.cfi_offset     %rbp,-16
-        subq    $112,%rsp
-        andq    $-16,%rsp
-        movups  (%r9),%xmm2
-        movl    240(%r8),%eax
-        movl    240(%rcx),%r10d
-        movups  (%r8),%xmm0
-        movups  16(%r8),%xmm1
-        leaq    32(%r8),%r8
-        xorps   %xmm0,%xmm2
-.Loop_enc1_8:
-.byte   102,15,56,220,209
-        decl    %eax
-        movups  (%r8),%xmm1
-        leaq    16(%r8),%r8
-        jnz     .Loop_enc1_8
-.byte   102,15,56,221,209
-        movups  (%rcx),%xmm0
-        movq    %rcx,%rbp
-        movl    %r10d,%eax
-        shll    $4,%r10d
-        movq    %rdx,%r9
-        andq    $-16,%rdx
-
-        movups  16(%rcx,%r10,1),%xmm1
-
-        movdqa  .Lxts_magic(%rip),%xmm8
-        movdqa  %xmm2,%xmm15
-        pshufd  $0x5f,%xmm2,%xmm9
-        pxor    %xmm0,%xmm1
-        movdqa  %xmm9,%xmm14
-        paddd   %xmm9,%xmm9
-        movdqa  %xmm15,%xmm10
-        psrad   $31,%xmm14
-        paddq   %xmm15,%xmm15
-        pand    %xmm8,%xmm14
-        pxor    %xmm0,%xmm10
-        pxor    %xmm14,%xmm15
-        movdqa  %xmm9,%xmm14
-        paddd   %xmm9,%xmm9
-        movdqa  %xmm15,%xmm11
-        psrad   $31,%xmm14
-        paddq   %xmm15,%xmm15
-        pand    %xmm8,%xmm14
-        pxor    %xmm0,%xmm11
-        pxor    %xmm14,%xmm15
-        movdqa  %xmm9,%xmm14
-        paddd   %xmm9,%xmm9
-        movdqa  %xmm15,%xmm12
-        psrad   $31,%xmm14
-        paddq   %xmm15,%xmm15
-        pand    %xmm8,%xmm14
-        pxor    %xmm0,%xmm12
-        pxor    %xmm14,%xmm15
-        movdqa  %xmm9,%xmm14
-        paddd   %xmm9,%xmm9
-        movdqa  %xmm15,%xmm13
-        psrad   $31,%xmm14
-        paddq   %xmm15,%xmm15
-        pand    %xmm8,%xmm14
-        pxor    %xmm0,%xmm13
-        pxor    %xmm14,%xmm15
-        movdqa  %xmm15,%xmm14
-        psrad   $31,%xmm9
-        paddq   %xmm15,%xmm15
-        pand    %xmm8,%xmm9
-        pxor    %xmm0,%xmm14
-        pxor    %xmm9,%xmm15
-        movaps  %xmm1,96(%rsp)
-
-        subq    $96,%rdx
-        jc      .Lxts_enc_short
-
-        movl    $16+96,%eax
-        leaq    32(%rbp,%r10,1),%rcx
-        subq    %r10,%rax
-        movups  16(%rbp),%xmm1
-        movq    %rax,%r10
-        leaq    .Lxts_magic(%rip),%r8
-        jmp     .Lxts_enc_grandloop
-
-.align  32
-.Lxts_enc_grandloop:
-        movdqu  0(%rdi),%xmm2
-        movdqa  %xmm0,%xmm8
-        movdqu  16(%rdi),%xmm3
-        pxor    %xmm10,%xmm2
-        movdqu  32(%rdi),%xmm4
-        pxor    %xmm11,%xmm3
-.byte   102,15,56,220,209
-        movdqu  48(%rdi),%xmm5
-        pxor    %xmm12,%xmm4
-.byte   102,15,56,220,217
-        movdqu  64(%rdi),%xmm6
-        pxor    %xmm13,%xmm5
-.byte   102,15,56,220,225
-        movdqu  80(%rdi),%xmm7
-        pxor    %xmm15,%xmm8
-        movdqa  96(%rsp),%xmm9
-        pxor    %xmm14,%xmm6
-.byte   102,15,56,220,233
-        movups  32(%rbp),%xmm0
-        leaq    96(%rdi),%rdi
-        pxor    %xmm8,%xmm7
-
-        pxor    %xmm9,%xmm10
-.byte   102,15,56,220,241
-        pxor    %xmm9,%xmm11
-        movdqa  %xmm10,0(%rsp)
-.byte   102,15,56,220,249
-        movups  48(%rbp),%xmm1
-        pxor    %xmm9,%xmm12
-
-.byte   102,15,56,220,208
-        pxor    %xmm9,%xmm13
-        movdqa  %xmm11,16(%rsp)
-.byte   102,15,56,220,216
-        pxor    %xmm9,%xmm14
-        movdqa  %xmm12,32(%rsp)
-.byte   102,15,56,220,224
-.byte   102,15,56,220,232
-        pxor    %xmm9,%xmm8
-        movdqa  %xmm14,64(%rsp)
-.byte   102,15,56,220,240
-.byte   102,15,56,220,248
-        movups  64(%rbp),%xmm0
-        movdqa  %xmm8,80(%rsp)
-        pshufd  $0x5f,%xmm15,%xmm9
-        jmp     .Lxts_enc_loop6
-.align  32
-.Lxts_enc_loop6:
-.byte   102,15,56,220,209
-.byte   102,15,56,220,217
-.byte   102,15,56,220,225
-.byte   102,15,56,220,233
-.byte   102,15,56,220,241
-.byte   102,15,56,220,249
-        movups  -64(%rcx,%rax,1),%xmm1
-        addq    $32,%rax
-
-.byte   102,15,56,220,208
-.byte   102,15,56,220,216
-.byte   102,15,56,220,224
-.byte   102,15,56,220,232
-.byte   102,15,56,220,240
-.byte   102,15,56,220,248
-        movups  -80(%rcx,%rax,1),%xmm0
-        jnz     .Lxts_enc_loop6
-
-        movdqa  (%r8),%xmm8
-        movdqa  %xmm9,%xmm14
-        paddd   %xmm9,%xmm9
-.byte   102,15,56,220,209
-        paddq   %xmm15,%xmm15
-        psrad   $31,%xmm14
-.byte   102,15,56,220,217
-        pand    %xmm8,%xmm14
-        movups  (%rbp),%xmm10
-.byte   102,15,56,220,225
-.byte   102,15,56,220,233
-.byte   102,15,56,220,241
-        pxor    %xmm14,%xmm15
-        movaps  %xmm10,%xmm11
-.byte   102,15,56,220,249
-        movups  -64(%rcx),%xmm1
-
-        movdqa  %xmm9,%xmm14
-.byte   102,15,56,220,208
-        paddd   %xmm9,%xmm9
-        pxor    %xmm15,%xmm10
-.byte   102,15,56,220,216
-        psrad   $31,%xmm14
-        paddq   %xmm15,%xmm15
-.byte   102,15,56,220,224
-.byte   102,15,56,220,232
-        pand    %xmm8,%xmm14
-        movaps  %xmm11,%xmm12
-.byte   102,15,56,220,240
-        pxor    %xmm14,%xmm15
-        movdqa  %xmm9,%xmm14
-.byte   102,15,56,220,248
-        movups  -48(%rcx),%xmm0
-
-        paddd   %xmm9,%xmm9
-.byte   102,15,56,220,209
-        pxor    %xmm15,%xmm11
-        psrad   $31,%xmm14
-.byte   102,15,56,220,217
-        paddq   %xmm15,%xmm15
-        pand    %xmm8,%xmm14
-.byte   102,15,56,220,225
-.byte   102,15,56,220,233
-        movdqa  %xmm13,48(%rsp)
-        pxor    %xmm14,%xmm15
-.byte   102,15,56,220,241
-        movaps  %xmm12,%xmm13
-        movdqa  %xmm9,%xmm14
-.byte   102,15,56,220,249
-        movups  -32(%rcx),%xmm1
-
-        paddd   %xmm9,%xmm9
-.byte   102,15,56,220,208
-        pxor    %xmm15,%xmm12
-        psrad   $31,%xmm14
-.byte   102,15,56,220,216
-        paddq   %xmm15,%xmm15
-        pand    %xmm8,%xmm14
-.byte   102,15,56,220,224
-.byte   102,15,56,220,232
-.byte   102,15,56,220,240
-        pxor    %xmm14,%xmm15
-        movaps  %xmm13,%xmm14
-.byte   102,15,56,220,248
-
-        movdqa  %xmm9,%xmm0
-        paddd   %xmm9,%xmm9
-.byte   102,15,56,220,209
-        pxor    %xmm15,%xmm13
-        psrad   $31,%xmm0
-.byte   102,15,56,220,217
-        paddq   %xmm15,%xmm15
-        pand    %xmm8,%xmm0
-.byte   102,15,56,220,225
-.byte   102,15,56,220,233
-        pxor    %xmm0,%xmm15
-        movups  (%rbp),%xmm0
-.byte   102,15,56,220,241
-.byte   102,15,56,220,249
-        movups  16(%rbp),%xmm1
-
-        pxor    %xmm15,%xmm14
-.byte   102,15,56,221,84,36,0
-        psrad   $31,%xmm9
-        paddq   %xmm15,%xmm15
-.byte   102,15,56,221,92,36,16
-.byte   102,15,56,221,100,36,32
-        pand    %xmm8,%xmm9
-        movq    %r10,%rax
-.byte   102,15,56,221,108,36,48
-.byte   102,15,56,221,116,36,64
-.byte   102,15,56,221,124,36,80
-        pxor    %xmm9,%xmm15
-
-        leaq    96(%rsi),%rsi
-        movups  %xmm2,-96(%rsi)
-        movups  %xmm3,-80(%rsi)
-        movups  %xmm4,-64(%rsi)
-        movups  %xmm5,-48(%rsi)
-        movups  %xmm6,-32(%rsi)
-        movups  %xmm7,-16(%rsi)
-        subq    $96,%rdx
-        jnc     .Lxts_enc_grandloop
-
-        movl    $16+96,%eax
-        subl    %r10d,%eax
-        movq    %rbp,%rcx
-        shrl    $4,%eax
-
-.Lxts_enc_short:
-
-        movl    %eax,%r10d
-        pxor    %xmm0,%xmm10
-        addq    $96,%rdx
-        jz      .Lxts_enc_done
-
-        pxor    %xmm0,%xmm11
-        cmpq    $0x20,%rdx
-        jb      .Lxts_enc_one
-        pxor    %xmm0,%xmm12
-        je      .Lxts_enc_two
-
-        pxor    %xmm0,%xmm13
-        cmpq    $0x40,%rdx
-        jb      .Lxts_enc_three
-        pxor    %xmm0,%xmm14
-        je      .Lxts_enc_four
-
-        movdqu  (%rdi),%xmm2
-        movdqu  16(%rdi),%xmm3
-        movdqu  32(%rdi),%xmm4
-        pxor    %xmm10,%xmm2
-        movdqu  48(%rdi),%xmm5
-        pxor    %xmm11,%xmm3
-        movdqu  64(%rdi),%xmm6
-        leaq    80(%rdi),%rdi
-        pxor    %xmm12,%xmm4
-        pxor    %xmm13,%xmm5
-        pxor    %xmm14,%xmm6
-        pxor    %xmm7,%xmm7
-
-        call    _aesni_encrypt6
-
-        xorps   %xmm10,%xmm2
-        movdqa  %xmm15,%xmm10
-        xorps   %xmm11,%xmm3
-        xorps   %xmm12,%xmm4
-        movdqu  %xmm2,(%rsi)
-        xorps   %xmm13,%xmm5
-        movdqu  %xmm3,16(%rsi)
-        xorps   %xmm14,%xmm6
-        movdqu  %xmm4,32(%rsi)
-        movdqu  %xmm5,48(%rsi)
-        movdqu  %xmm6,64(%rsi)
-        leaq    80(%rsi),%rsi
-        jmp     .Lxts_enc_done
-
-.align  16
-.Lxts_enc_one:
-        movups  (%rdi),%xmm2
-        leaq    16(%rdi),%rdi
-        xorps   %xmm10,%xmm2
-        movups  (%rcx),%xmm0
-        movups  16(%rcx),%xmm1
-        leaq    32(%rcx),%rcx
-        xorps   %xmm0,%xmm2
-.Loop_enc1_9:
-.byte   102,15,56,220,209
-        decl    %eax
-        movups  (%rcx),%xmm1
-        leaq    16(%rcx),%rcx
-        jnz     .Loop_enc1_9
-.byte   102,15,56,221,209
-        xorps   %xmm10,%xmm2
-        movdqa  %xmm11,%xmm10
-        movups  %xmm2,(%rsi)
-        leaq    16(%rsi),%rsi
-        jmp     .Lxts_enc_done
-
-.align  16
-.Lxts_enc_two:
-        movups  (%rdi),%xmm2
-        movups  16(%rdi),%xmm3
-        leaq    32(%rdi),%rdi
-        xorps   %xmm10,%xmm2
-        xorps   %xmm11,%xmm3
-
-        call    _aesni_encrypt2
-
-        xorps   %xmm10,%xmm2
-        movdqa  %xmm12,%xmm10
-        xorps   %xmm11,%xmm3
-        movups  %xmm2,(%rsi)
-        movups  %xmm3,16(%rsi)
-        leaq    32(%rsi),%rsi
-        jmp     .Lxts_enc_done
-
-.align  16
-.Lxts_enc_three:
-        movups  (%rdi),%xmm2
-        movups  16(%rdi),%xmm3
-        movups  32(%rdi),%xmm4
-        leaq    48(%rdi),%rdi
-        xorps   %xmm10,%xmm2
-        xorps   %xmm11,%xmm3
-        xorps   %xmm12,%xmm4
-
-        call    _aesni_encrypt3
-
-        xorps   %xmm10,%xmm2
-        movdqa  %xmm13,%xmm10
-        xorps   %xmm11,%xmm3
-        xorps   %xmm12,%xmm4
-        movups  %xmm2,(%rsi)
-        movups  %xmm3,16(%rsi)
-        movups  %xmm4,32(%rsi)
-        leaq    48(%rsi),%rsi
-        jmp     .Lxts_enc_done
-
-.align  16
-.Lxts_enc_four:
-        movups  (%rdi),%xmm2
-        movups  16(%rdi),%xmm3
-        movups  32(%rdi),%xmm4
-        xorps   %xmm10,%xmm2
-        movups  48(%rdi),%xmm5
-        leaq    64(%rdi),%rdi
-        xorps   %xmm11,%xmm3
-        xorps   %xmm12,%xmm4
-        xorps   %xmm13,%xmm5
-
-        call    _aesni_encrypt4
-
-        pxor    %xmm10,%xmm2
-        movdqa  %xmm14,%xmm10
-        pxor    %xmm11,%xmm3
-        pxor    %xmm12,%xmm4
-        movdqu  %xmm2,(%rsi)
-        pxor    %xmm13,%xmm5
-        movdqu  %xmm3,16(%rsi)
-        movdqu  %xmm4,32(%rsi)
-        movdqu  %xmm5,48(%rsi)
-        leaq    64(%rsi),%rsi
-        jmp     .Lxts_enc_done
-
-.align  16
-.Lxts_enc_done:
-        andq    $15,%r9
-        jz      .Lxts_enc_ret
-        movq    %r9,%rdx
-
-.Lxts_enc_steal:
-        movzbl  (%rdi),%eax
-        movzbl  -16(%rsi),%ecx
-        leaq    1(%rdi),%rdi
-        movb    %al,-16(%rsi)
-        movb    %cl,0(%rsi)
-        leaq    1(%rsi),%rsi
-        subq    $1,%rdx
-        jnz     .Lxts_enc_steal
-
-        subq    %r9,%rsi
-        movq    %rbp,%rcx
-        movl    %r10d,%eax
-
-        movups  -16(%rsi),%xmm2
-        xorps   %xmm10,%xmm2
-        movups  (%rcx),%xmm0
-        movups  16(%rcx),%xmm1
-        leaq    32(%rcx),%rcx
-        xorps   %xmm0,%xmm2
-.Loop_enc1_10:
-.byte   102,15,56,220,209
-        decl    %eax
-        movups  (%rcx),%xmm1
-        leaq    16(%rcx),%rcx
-        jnz     .Loop_enc1_10
-.byte   102,15,56,221,209
-        xorps   %xmm10,%xmm2
-        movups  %xmm2,-16(%rsi)
-
-.Lxts_enc_ret:
-        xorps   %xmm0,%xmm0
-        pxor    %xmm1,%xmm1
-        pxor    %xmm2,%xmm2
-        pxor    %xmm3,%xmm3
-        pxor    %xmm4,%xmm4
-        pxor    %xmm5,%xmm5
-        pxor    %xmm6,%xmm6
-        pxor    %xmm7,%xmm7
-        movaps  %xmm0,0(%rsp)
-        pxor    %xmm8,%xmm8
-        movaps  %xmm0,16(%rsp)
-        pxor    %xmm9,%xmm9
-        movaps  %xmm0,32(%rsp)
-        pxor    %xmm10,%xmm10
-        movaps  %xmm0,48(%rsp)
-        pxor    %xmm11,%xmm11
-        movaps  %xmm0,64(%rsp)
-        pxor    %xmm12,%xmm12
-        movaps  %xmm0,80(%rsp)
-        pxor    %xmm13,%xmm13
-        movaps  %xmm0,96(%rsp)
-        pxor    %xmm14,%xmm14
-        pxor    %xmm15,%xmm15
-        movq    -8(%r11),%rbp
-.cfi_restore    %rbp
-        leaq    (%r11),%rsp
-.cfi_def_cfa_register   %rsp
-.Lxts_enc_epilogue:
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   aesni_xts_encrypt,.-aesni_xts_encrypt
-.globl  aesni_xts_decrypt
-.type   aesni_xts_decrypt, at function
-.align  16
-aesni_xts_decrypt:
-.cfi_startproc
-        leaq    (%rsp),%r11
-.cfi_def_cfa_register   %r11
-        pushq   %rbp
-.cfi_offset     %rbp,-16
-        subq    $112,%rsp
-        andq    $-16,%rsp
-        movups  (%r9),%xmm2
-        movl    240(%r8),%eax
-        movl    240(%rcx),%r10d
-        movups  (%r8),%xmm0
-        movups  16(%r8),%xmm1
-        leaq    32(%r8),%r8
-        xorps   %xmm0,%xmm2
-.Loop_enc1_11:
-.byte   102,15,56,220,209
-        decl    %eax
-        movups  (%r8),%xmm1
-        leaq    16(%r8),%r8
-        jnz     .Loop_enc1_11
-.byte   102,15,56,221,209
-        xorl    %eax,%eax
-        testq   $15,%rdx
-        setnz   %al
-        shlq    $4,%rax
-        subq    %rax,%rdx
-
-        movups  (%rcx),%xmm0
-        movq    %rcx,%rbp
-        movl    %r10d,%eax
-        shll    $4,%r10d
-        movq    %rdx,%r9
-        andq    $-16,%rdx
-
-        movups  16(%rcx,%r10,1),%xmm1
-
-        movdqa  .Lxts_magic(%rip),%xmm8
-        movdqa  %xmm2,%xmm15
-        pshufd  $0x5f,%xmm2,%xmm9
-        pxor    %xmm0,%xmm1
-        movdqa  %xmm9,%xmm14
-        paddd   %xmm9,%xmm9
-        movdqa  %xmm15,%xmm10
-        psrad   $31,%xmm14
-        paddq   %xmm15,%xmm15
-        pand    %xmm8,%xmm14
-        pxor    %xmm0,%xmm10
-        pxor    %xmm14,%xmm15
-        movdqa  %xmm9,%xmm14
-        paddd   %xmm9,%xmm9
-        movdqa  %xmm15,%xmm11
-        psrad   $31,%xmm14
-        paddq   %xmm15,%xmm15
-        pand    %xmm8,%xmm14
-        pxor    %xmm0,%xmm11
-        pxor    %xmm14,%xmm15
-        movdqa  %xmm9,%xmm14
-        paddd   %xmm9,%xmm9
-        movdqa  %xmm15,%xmm12
-        psrad   $31,%xmm14
-        paddq   %xmm15,%xmm15
-        pand    %xmm8,%xmm14
-        pxor    %xmm0,%xmm12
-        pxor    %xmm14,%xmm15
-        movdqa  %xmm9,%xmm14
-        paddd   %xmm9,%xmm9
-        movdqa  %xmm15,%xmm13
-        psrad   $31,%xmm14
-        paddq   %xmm15,%xmm15
-        pand    %xmm8,%xmm14
-        pxor    %xmm0,%xmm13
-        pxor    %xmm14,%xmm15
-        movdqa  %xmm15,%xmm14
-        psrad   $31,%xmm9
-        paddq   %xmm15,%xmm15
-        pand    %xmm8,%xmm9
-        pxor    %xmm0,%xmm14
-        pxor    %xmm9,%xmm15
-        movaps  %xmm1,96(%rsp)
-
-        subq    $96,%rdx
-        jc      .Lxts_dec_short
-
-        movl    $16+96,%eax
-        leaq    32(%rbp,%r10,1),%rcx
-        subq    %r10,%rax
-        movups  16(%rbp),%xmm1
-        movq    %rax,%r10
-        leaq    .Lxts_magic(%rip),%r8
-        jmp     .Lxts_dec_grandloop
-
-.align  32
-.Lxts_dec_grandloop:
-        movdqu  0(%rdi),%xmm2
-        movdqa  %xmm0,%xmm8
-        movdqu  16(%rdi),%xmm3
-        pxor    %xmm10,%xmm2
-        movdqu  32(%rdi),%xmm4
-        pxor    %xmm11,%xmm3
-.byte   102,15,56,222,209
-        movdqu  48(%rdi),%xmm5
-        pxor    %xmm12,%xmm4
-.byte   102,15,56,222,217
-        movdqu  64(%rdi),%xmm6
-        pxor    %xmm13,%xmm5
-.byte   102,15,56,222,225
-        movdqu  80(%rdi),%xmm7
-        pxor    %xmm15,%xmm8
-        movdqa  96(%rsp),%xmm9
-        pxor    %xmm14,%xmm6
-.byte   102,15,56,222,233
-        movups  32(%rbp),%xmm0
-        leaq    96(%rdi),%rdi
-        pxor    %xmm8,%xmm7
-
-        pxor    %xmm9,%xmm10
-.byte   102,15,56,222,241
-        pxor    %xmm9,%xmm11
-        movdqa  %xmm10,0(%rsp)
-.byte   102,15,56,222,249
-        movups  48(%rbp),%xmm1
-        pxor    %xmm9,%xmm12
-
-.byte   102,15,56,222,208
-        pxor    %xmm9,%xmm13
-        movdqa  %xmm11,16(%rsp)
-.byte   102,15,56,222,216
-        pxor    %xmm9,%xmm14
-        movdqa  %xmm12,32(%rsp)
-.byte   102,15,56,222,224
-.byte   102,15,56,222,232
-        pxor    %xmm9,%xmm8
-        movdqa  %xmm14,64(%rsp)
-.byte   102,15,56,222,240
-.byte   102,15,56,222,248
-        movups  64(%rbp),%xmm0
-        movdqa  %xmm8,80(%rsp)
-        pshufd  $0x5f,%xmm15,%xmm9
-        jmp     .Lxts_dec_loop6
-.align  32
-.Lxts_dec_loop6:
-.byte   102,15,56,222,209
-.byte   102,15,56,222,217
-.byte   102,15,56,222,225
-.byte   102,15,56,222,233
-.byte   102,15,56,222,241
-.byte   102,15,56,222,249
-        movups  -64(%rcx,%rax,1),%xmm1
-        addq    $32,%rax
-
-.byte   102,15,56,222,208
-.byte   102,15,56,222,216
-.byte   102,15,56,222,224
-.byte   102,15,56,222,232
-.byte   102,15,56,222,240
-.byte   102,15,56,222,248
-        movups  -80(%rcx,%rax,1),%xmm0
-        jnz     .Lxts_dec_loop6
-
-        movdqa  (%r8),%xmm8
-        movdqa  %xmm9,%xmm14
-        paddd   %xmm9,%xmm9
-.byte   102,15,56,222,209
-        paddq   %xmm15,%xmm15
-        psrad   $31,%xmm14
-.byte   102,15,56,222,217
-        pand    %xmm8,%xmm14
-        movups  (%rbp),%xmm10
-.byte   102,15,56,222,225
-.byte   102,15,56,222,233
-.byte   102,15,56,222,241
-        pxor    %xmm14,%xmm15
-        movaps  %xmm10,%xmm11
-.byte   102,15,56,222,249
-        movups  -64(%rcx),%xmm1
-
-        movdqa  %xmm9,%xmm14
-.byte   102,15,56,222,208
-        paddd   %xmm9,%xmm9
-        pxor    %xmm15,%xmm10
-.byte   102,15,56,222,216
-        psrad   $31,%xmm14
-        paddq   %xmm15,%xmm15
-.byte   102,15,56,222,224
-.byte   102,15,56,222,232
-        pand    %xmm8,%xmm14
-        movaps  %xmm11,%xmm12
-.byte   102,15,56,222,240
-        pxor    %xmm14,%xmm15
-        movdqa  %xmm9,%xmm14
-.byte   102,15,56,222,248
-        movups  -48(%rcx),%xmm0
-
-        paddd   %xmm9,%xmm9
-.byte   102,15,56,222,209
-        pxor    %xmm15,%xmm11
-        psrad   $31,%xmm14
-.byte   102,15,56,222,217
-        paddq   %xmm15,%xmm15
-        pand    %xmm8,%xmm14
-.byte   102,15,56,222,225
-.byte   102,15,56,222,233
-        movdqa  %xmm13,48(%rsp)
-        pxor    %xmm14,%xmm15
-.byte   102,15,56,222,241
-        movaps  %xmm12,%xmm13
-        movdqa  %xmm9,%xmm14
-.byte   102,15,56,222,249
-        movups  -32(%rcx),%xmm1
-
-        paddd   %xmm9,%xmm9
-.byte   102,15,56,222,208
-        pxor    %xmm15,%xmm12
-        psrad   $31,%xmm14
-.byte   102,15,56,222,216
-        paddq   %xmm15,%xmm15
-        pand    %xmm8,%xmm14
-.byte   102,15,56,222,224
-.byte   102,15,56,222,232
-.byte   102,15,56,222,240
-        pxor    %xmm14,%xmm15
-        movaps  %xmm13,%xmm14
-.byte   102,15,56,222,248
-
-        movdqa  %xmm9,%xmm0
-        paddd   %xmm9,%xmm9
-.byte   102,15,56,222,209
-        pxor    %xmm15,%xmm13
-        psrad   $31,%xmm0
-.byte   102,15,56,222,217
-        paddq   %xmm15,%xmm15
-        pand    %xmm8,%xmm0
-.byte   102,15,56,222,225
-.byte   102,15,56,222,233
-        pxor    %xmm0,%xmm15
-        movups  (%rbp),%xmm0
-.byte   102,15,56,222,241
-.byte   102,15,56,222,249
-        movups  16(%rbp),%xmm1
-
-        pxor    %xmm15,%xmm14
-.byte   102,15,56,223,84,36,0
-        psrad   $31,%xmm9
-        paddq   %xmm15,%xmm15
-.byte   102,15,56,223,92,36,16
-.byte   102,15,56,223,100,36,32
-        pand    %xmm8,%xmm9
-        movq    %r10,%rax
-.byte   102,15,56,223,108,36,48
-.byte   102,15,56,223,116,36,64
-.byte   102,15,56,223,124,36,80
-        pxor    %xmm9,%xmm15
-
-        leaq    96(%rsi),%rsi
-        movups  %xmm2,-96(%rsi)
-        movups  %xmm3,-80(%rsi)
-        movups  %xmm4,-64(%rsi)
-        movups  %xmm5,-48(%rsi)
-        movups  %xmm6,-32(%rsi)
-        movups  %xmm7,-16(%rsi)
-        subq    $96,%rdx
-        jnc     .Lxts_dec_grandloop
-
-        movl    $16+96,%eax
-        subl    %r10d,%eax
-        movq    %rbp,%rcx
-        shrl    $4,%eax
-
-.Lxts_dec_short:
-
-        movl    %eax,%r10d
-        pxor    %xmm0,%xmm10
-        pxor    %xmm0,%xmm11
-        addq    $96,%rdx
-        jz      .Lxts_dec_done
-
-        pxor    %xmm0,%xmm12
-        cmpq    $0x20,%rdx
-        jb      .Lxts_dec_one
-        pxor    %xmm0,%xmm13
-        je      .Lxts_dec_two
-
-        pxor    %xmm0,%xmm14
-        cmpq    $0x40,%rdx
-        jb      .Lxts_dec_three
-        je      .Lxts_dec_four
-
-        movdqu  (%rdi),%xmm2
-        movdqu  16(%rdi),%xmm3
-        movdqu  32(%rdi),%xmm4
-        pxor    %xmm10,%xmm2
-        movdqu  48(%rdi),%xmm5
-        pxor    %xmm11,%xmm3
-        movdqu  64(%rdi),%xmm6
-        leaq    80(%rdi),%rdi
-        pxor    %xmm12,%xmm4
-        pxor    %xmm13,%xmm5
-        pxor    %xmm14,%xmm6
-
-        call    _aesni_decrypt6
-
-        xorps   %xmm10,%xmm2
-        xorps   %xmm11,%xmm3
-        xorps   %xmm12,%xmm4
-        movdqu  %xmm2,(%rsi)
-        xorps   %xmm13,%xmm5
-        movdqu  %xmm3,16(%rsi)
-        xorps   %xmm14,%xmm6
-        movdqu  %xmm4,32(%rsi)
-        pxor    %xmm14,%xmm14
-        movdqu  %xmm5,48(%rsi)
-        pcmpgtd %xmm15,%xmm14
-        movdqu  %xmm6,64(%rsi)
-        leaq    80(%rsi),%rsi
-        pshufd  $0x13,%xmm14,%xmm11
-        andq    $15,%r9
-        jz      .Lxts_dec_ret
-
-        movdqa  %xmm15,%xmm10
-        paddq   %xmm15,%xmm15
-        pand    %xmm8,%xmm11
-        pxor    %xmm15,%xmm11
-        jmp     .Lxts_dec_done2
-
-.align  16
-.Lxts_dec_one:
-        movups  (%rdi),%xmm2
-        leaq    16(%rdi),%rdi
-        xorps   %xmm10,%xmm2
-        movups  (%rcx),%xmm0
-        movups  16(%rcx),%xmm1
-        leaq    32(%rcx),%rcx
-        xorps   %xmm0,%xmm2
-.Loop_dec1_12:
-.byte   102,15,56,222,209
-        decl    %eax
-        movups  (%rcx),%xmm1
-        leaq    16(%rcx),%rcx
-        jnz     .Loop_dec1_12
-.byte   102,15,56,223,209
-        xorps   %xmm10,%xmm2
-        movdqa  %xmm11,%xmm10
-        movups  %xmm2,(%rsi)
-        movdqa  %xmm12,%xmm11
-        leaq    16(%rsi),%rsi
-        jmp     .Lxts_dec_done
-
-.align  16
-.Lxts_dec_two:
-        movups  (%rdi),%xmm2
-        movups  16(%rdi),%xmm3
-        leaq    32(%rdi),%rdi
-        xorps   %xmm10,%xmm2
-        xorps   %xmm11,%xmm3
-
-        call    _aesni_decrypt2
-
-        xorps   %xmm10,%xmm2
-        movdqa  %xmm12,%xmm10
-        xorps   %xmm11,%xmm3
-        movdqa  %xmm13,%xmm11
-        movups  %xmm2,(%rsi)
-        movups  %xmm3,16(%rsi)
-        leaq    32(%rsi),%rsi
-        jmp     .Lxts_dec_done
-
-.align  16
-.Lxts_dec_three:
-        movups  (%rdi),%xmm2
-        movups  16(%rdi),%xmm3
-        movups  32(%rdi),%xmm4
-        leaq    48(%rdi),%rdi
-        xorps   %xmm10,%xmm2
-        xorps   %xmm11,%xmm3
-        xorps   %xmm12,%xmm4
-
-        call    _aesni_decrypt3
-
-        xorps   %xmm10,%xmm2
-        movdqa  %xmm13,%xmm10
-        xorps   %xmm11,%xmm3
-        movdqa  %xmm14,%xmm11
-        xorps   %xmm12,%xmm4
-        movups  %xmm2,(%rsi)
-        movups  %xmm3,16(%rsi)
-        movups  %xmm4,32(%rsi)
-        leaq    48(%rsi),%rsi
-        jmp     .Lxts_dec_done
-
-.align  16
-.Lxts_dec_four:
-        movups  (%rdi),%xmm2
-        movups  16(%rdi),%xmm3
-        movups  32(%rdi),%xmm4
-        xorps   %xmm10,%xmm2
-        movups  48(%rdi),%xmm5
-        leaq    64(%rdi),%rdi
-        xorps   %xmm11,%xmm3
-        xorps   %xmm12,%xmm4
-        xorps   %xmm13,%xmm5
-
-        call    _aesni_decrypt4
-
-        pxor    %xmm10,%xmm2
-        movdqa  %xmm14,%xmm10
-        pxor    %xmm11,%xmm3
-        movdqa  %xmm15,%xmm11
-        pxor    %xmm12,%xmm4
-        movdqu  %xmm2,(%rsi)
-        pxor    %xmm13,%xmm5
-        movdqu  %xmm3,16(%rsi)
-        movdqu  %xmm4,32(%rsi)
-        movdqu  %xmm5,48(%rsi)
-        leaq    64(%rsi),%rsi
-        jmp     .Lxts_dec_done
-
-.align  16
-.Lxts_dec_done:
-        andq    $15,%r9
-        jz      .Lxts_dec_ret
-.Lxts_dec_done2:
-        movq    %r9,%rdx
-        movq    %rbp,%rcx
-        movl    %r10d,%eax
-
-        movups  (%rdi),%xmm2
-        xorps   %xmm11,%xmm2
-        movups  (%rcx),%xmm0
-        movups  16(%rcx),%xmm1
-        leaq    32(%rcx),%rcx
-        xorps   %xmm0,%xmm2
-.Loop_dec1_13:
-.byte   102,15,56,222,209
-        decl    %eax
-        movups  (%rcx),%xmm1
-        leaq    16(%rcx),%rcx
-        jnz     .Loop_dec1_13
-.byte   102,15,56,223,209
-        xorps   %xmm11,%xmm2
-        movups  %xmm2,(%rsi)
-
-.Lxts_dec_steal:
-        movzbl  16(%rdi),%eax
-        movzbl  (%rsi),%ecx
-        leaq    1(%rdi),%rdi
-        movb    %al,(%rsi)
-        movb    %cl,16(%rsi)
-        leaq    1(%rsi),%rsi
-        subq    $1,%rdx
-        jnz     .Lxts_dec_steal
-
-        subq    %r9,%rsi
-        movq    %rbp,%rcx
-        movl    %r10d,%eax
-
-        movups  (%rsi),%xmm2
-        xorps   %xmm10,%xmm2
-        movups  (%rcx),%xmm0
-        movups  16(%rcx),%xmm1
-        leaq    32(%rcx),%rcx
-        xorps   %xmm0,%xmm2
-.Loop_dec1_14:
-.byte   102,15,56,222,209
-        decl    %eax
-        movups  (%rcx),%xmm1
-        leaq    16(%rcx),%rcx
-        jnz     .Loop_dec1_14
-.byte   102,15,56,223,209
-        xorps   %xmm10,%xmm2
-        movups  %xmm2,(%rsi)
-
-.Lxts_dec_ret:
-        xorps   %xmm0,%xmm0
-        pxor    %xmm1,%xmm1
-        pxor    %xmm2,%xmm2
-        pxor    %xmm3,%xmm3
-        pxor    %xmm4,%xmm4
-        pxor    %xmm5,%xmm5
-        pxor    %xmm6,%xmm6
-        pxor    %xmm7,%xmm7
-        movaps  %xmm0,0(%rsp)
-        pxor    %xmm8,%xmm8
-        movaps  %xmm0,16(%rsp)
-        pxor    %xmm9,%xmm9
-        movaps  %xmm0,32(%rsp)
-        pxor    %xmm10,%xmm10
-        movaps  %xmm0,48(%rsp)
-        pxor    %xmm11,%xmm11
-        movaps  %xmm0,64(%rsp)
-        pxor    %xmm12,%xmm12
-        movaps  %xmm0,80(%rsp)
-        pxor    %xmm13,%xmm13
-        movaps  %xmm0,96(%rsp)
-        pxor    %xmm14,%xmm14
-        pxor    %xmm15,%xmm15
-        movq    -8(%r11),%rbp
-.cfi_restore    %rbp
-        leaq    (%r11),%rsp
-.cfi_def_cfa_register   %rsp
-.Lxts_dec_epilogue:
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   aesni_xts_decrypt,.-aesni_xts_decrypt
-.globl  aesni_ocb_encrypt
-.type   aesni_ocb_encrypt, at function
-.align  32
-aesni_ocb_encrypt:
-.cfi_startproc
-        leaq    (%rsp),%rax
-        pushq   %rbx
-.cfi_adjust_cfa_offset  8
-.cfi_offset     %rbx,-16
-        pushq   %rbp
-.cfi_adjust_cfa_offset  8
-.cfi_offset     %rbp,-24
-        pushq   %r12
-.cfi_adjust_cfa_offset  8
-.cfi_offset     %r12,-32
-        pushq   %r13
-.cfi_adjust_cfa_offset  8
-.cfi_offset     %r13,-40
-        pushq   %r14
-.cfi_adjust_cfa_offset  8
-.cfi_offset     %r14,-48
-        movq    8(%rax),%rbx
-        movq    8+8(%rax),%rbp
-
-        movl    240(%rcx),%r10d
-        movq    %rcx,%r11
-        shll    $4,%r10d
-        movups  (%rcx),%xmm9
-        movups  16(%rcx,%r10,1),%xmm1
-
-        movdqu  (%r9),%xmm15
-        pxor    %xmm1,%xmm9
-        pxor    %xmm1,%xmm15
-
-        movl    $16+32,%eax
-        leaq    32(%r11,%r10,1),%rcx
-        movups  16(%r11),%xmm1
-        subq    %r10,%rax
-        movq    %rax,%r10
-
-        movdqu  (%rbx),%xmm10
-        movdqu  (%rbp),%xmm8
-
-        testq   $1,%r8
-        jnz     .Locb_enc_odd
-
-        bsfq    %r8,%r12
-        addq    $1,%r8
-        shlq    $4,%r12
-        movdqu  (%rbx,%r12,1),%xmm7
-        movdqu  (%rdi),%xmm2
-        leaq    16(%rdi),%rdi
-
-        call    __ocb_encrypt1
-
-        movdqa  %xmm7,%xmm15
-        movups  %xmm2,(%rsi)
-        leaq    16(%rsi),%rsi
-        subq    $1,%rdx
-        jz      .Locb_enc_done
-
-.Locb_enc_odd:
-        leaq    1(%r8),%r12
-        leaq    3(%r8),%r13
-        leaq    5(%r8),%r14
-        leaq    6(%r8),%r8
-        bsfq    %r12,%r12
-        bsfq    %r13,%r13
-        bsfq    %r14,%r14
-        shlq    $4,%r12
-        shlq    $4,%r13
-        shlq    $4,%r14
-
-        subq    $6,%rdx
-        jc      .Locb_enc_short
-        jmp     .Locb_enc_grandloop
-
-.align  32
-.Locb_enc_grandloop:
-        movdqu  0(%rdi),%xmm2
-        movdqu  16(%rdi),%xmm3
-        movdqu  32(%rdi),%xmm4
-        movdqu  48(%rdi),%xmm5
-        movdqu  64(%rdi),%xmm6
-        movdqu  80(%rdi),%xmm7
-        leaq    96(%rdi),%rdi
-
-        call    __ocb_encrypt6
-
-        movups  %xmm2,0(%rsi)
-        movups  %xmm3,16(%rsi)
-        movups  %xmm4,32(%rsi)
-        movups  %xmm5,48(%rsi)
-        movups  %xmm6,64(%rsi)
-        movups  %xmm7,80(%rsi)
-        leaq    96(%rsi),%rsi
-        subq    $6,%rdx
-        jnc     .Locb_enc_grandloop
-
-.Locb_enc_short:
-        addq    $6,%rdx
-        jz      .Locb_enc_done
-
-        movdqu  0(%rdi),%xmm2
-        cmpq    $2,%rdx
-        jb      .Locb_enc_one
-        movdqu  16(%rdi),%xmm3
-        je      .Locb_enc_two
-
-        movdqu  32(%rdi),%xmm4
-        cmpq    $4,%rdx
-        jb      .Locb_enc_three
-        movdqu  48(%rdi),%xmm5
-        je      .Locb_enc_four
-
-        movdqu  64(%rdi),%xmm6
-        pxor    %xmm7,%xmm7
-
-        call    __ocb_encrypt6
-
-        movdqa  %xmm14,%xmm15
-        movups  %xmm2,0(%rsi)
-        movups  %xmm3,16(%rsi)
-        movups  %xmm4,32(%rsi)
-        movups  %xmm5,48(%rsi)
-        movups  %xmm6,64(%rsi)
-
-        jmp     .Locb_enc_done
-
-.align  16
-.Locb_enc_one:
-        movdqa  %xmm10,%xmm7
-
-        call    __ocb_encrypt1
-
-        movdqa  %xmm7,%xmm15
-        movups  %xmm2,0(%rsi)
-        jmp     .Locb_enc_done
-
-.align  16
-.Locb_enc_two:
-        pxor    %xmm4,%xmm4
-        pxor    %xmm5,%xmm5
-
-        call    __ocb_encrypt4
-
-        movdqa  %xmm11,%xmm15
-        movups  %xmm2,0(%rsi)
-        movups  %xmm3,16(%rsi)
-
-        jmp     .Locb_enc_done
-
-.align  16
-.Locb_enc_three:
-        pxor    %xmm5,%xmm5
-
-        call    __ocb_encrypt4
-
-        movdqa  %xmm12,%xmm15
-        movups  %xmm2,0(%rsi)
-        movups  %xmm3,16(%rsi)
-        movups  %xmm4,32(%rsi)
-
-        jmp     .Locb_enc_done
-
-.align  16
-.Locb_enc_four:
-        call    __ocb_encrypt4
-
-        movdqa  %xmm13,%xmm15
-        movups  %xmm2,0(%rsi)
-        movups  %xmm3,16(%rsi)
-        movups  %xmm4,32(%rsi)
-        movups  %xmm5,48(%rsi)
-
-.Locb_enc_done:
-        pxor    %xmm0,%xmm15
-        movdqu  %xmm8,(%rbp)
-        movdqu  %xmm15,(%r9)
-
-        xorps   %xmm0,%xmm0
-        pxor    %xmm1,%xmm1
-        pxor    %xmm2,%xmm2
-        pxor    %xmm3,%xmm3
-        pxor    %xmm4,%xmm4
-        pxor    %xmm5,%xmm5
-        pxor    %xmm6,%xmm6
-        pxor    %xmm7,%xmm7
-        pxor    %xmm8,%xmm8
-        pxor    %xmm9,%xmm9
-        pxor    %xmm10,%xmm10
-        pxor    %xmm11,%xmm11
-        pxor    %xmm12,%xmm12
-        pxor    %xmm13,%xmm13
-        pxor    %xmm14,%xmm14
-        pxor    %xmm15,%xmm15
-        leaq    40(%rsp),%rax
-.cfi_def_cfa    %rax,8
-        movq    -40(%rax),%r14
-.cfi_restore    %r14
-        movq    -32(%rax),%r13
-.cfi_restore    %r13
-        movq    -24(%rax),%r12
-.cfi_restore    %r12
-        movq    -16(%rax),%rbp
-.cfi_restore    %rbp
-        movq    -8(%rax),%rbx
-.cfi_restore    %rbx
-        leaq    (%rax),%rsp
-.cfi_def_cfa_register   %rsp
-.Locb_enc_epilogue:
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   aesni_ocb_encrypt,.-aesni_ocb_encrypt
-
-.type   __ocb_encrypt6, at function
-.align  32
-__ocb_encrypt6:
-.cfi_startproc
-        pxor    %xmm9,%xmm15
-        movdqu  (%rbx,%r12,1),%xmm11
-        movdqa  %xmm10,%xmm12
-        movdqu  (%rbx,%r13,1),%xmm13
-        movdqa  %xmm10,%xmm14
-        pxor    %xmm15,%xmm10
-        movdqu  (%rbx,%r14,1),%xmm15
-        pxor    %xmm10,%xmm11
-        pxor    %xmm2,%xmm8
-        pxor    %xmm10,%xmm2
-        pxor    %xmm11,%xmm12
-        pxor    %xmm3,%xmm8
-        pxor    %xmm11,%xmm3
-        pxor    %xmm12,%xmm13
-        pxor    %xmm4,%xmm8
-        pxor    %xmm12,%xmm4
-        pxor    %xmm13,%xmm14
-        pxor    %xmm5,%xmm8
-        pxor    %xmm13,%xmm5
-        pxor    %xmm14,%xmm15
-        pxor    %xmm6,%xmm8
-        pxor    %xmm14,%xmm6
-        pxor    %xmm7,%xmm8
-        pxor    %xmm15,%xmm7
-        movups  32(%r11),%xmm0
-
-        leaq    1(%r8),%r12
-        leaq    3(%r8),%r13
-        leaq    5(%r8),%r14
-        addq    $6,%r8
-        pxor    %xmm9,%xmm10
-        bsfq    %r12,%r12
-        bsfq    %r13,%r13
-        bsfq    %r14,%r14
-
-.byte   102,15,56,220,209
-.byte   102,15,56,220,217
-.byte   102,15,56,220,225
-.byte   102,15,56,220,233
-        pxor    %xmm9,%xmm11
-        pxor    %xmm9,%xmm12
-.byte   102,15,56,220,241
-        pxor    %xmm9,%xmm13
-        pxor    %xmm9,%xmm14
-.byte   102,15,56,220,249
-        movups  48(%r11),%xmm1
-        pxor    %xmm9,%xmm15
-
-.byte   102,15,56,220,208
-.byte   102,15,56,220,216
-.byte   102,15,56,220,224
-.byte   102,15,56,220,232
-.byte   102,15,56,220,240
-.byte   102,15,56,220,248
-        movups  64(%r11),%xmm0
-        shlq    $4,%r12
-        shlq    $4,%r13
-        jmp     .Locb_enc_loop6
-
-.align  32
-.Locb_enc_loop6:
-.byte   102,15,56,220,209
-.byte   102,15,56,220,217
-.byte   102,15,56,220,225
-.byte   102,15,56,220,233
-.byte   102,15,56,220,241
-.byte   102,15,56,220,249
-        movups  (%rcx,%rax,1),%xmm1
-        addq    $32,%rax
-
-.byte   102,15,56,220,208
-.byte   102,15,56,220,216
-.byte   102,15,56,220,224
-.byte   102,15,56,220,232
-.byte   102,15,56,220,240
-.byte   102,15,56,220,248
-        movups  -16(%rcx,%rax,1),%xmm0
-        jnz     .Locb_enc_loop6
-
-.byte   102,15,56,220,209
-.byte   102,15,56,220,217
-.byte   102,15,56,220,225
-.byte   102,15,56,220,233
-.byte   102,15,56,220,241
-.byte   102,15,56,220,249
-        movups  16(%r11),%xmm1
-        shlq    $4,%r14
-
-.byte   102,65,15,56,221,210
-        movdqu  (%rbx),%xmm10
-        movq    %r10,%rax
-.byte   102,65,15,56,221,219
-.byte   102,65,15,56,221,228
-.byte   102,65,15,56,221,237
-.byte   102,65,15,56,221,246
-.byte   102,65,15,56,221,255
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   __ocb_encrypt6,.-__ocb_encrypt6
-
-.type   __ocb_encrypt4, at function
-.align  32
-__ocb_encrypt4:
-.cfi_startproc
-        pxor    %xmm9,%xmm15
-        movdqu  (%rbx,%r12,1),%xmm11
-        movdqa  %xmm10,%xmm12
-        movdqu  (%rbx,%r13,1),%xmm13
-        pxor    %xmm15,%xmm10
-        pxor    %xmm10,%xmm11
-        pxor    %xmm2,%xmm8
-        pxor    %xmm10,%xmm2
-        pxor    %xmm11,%xmm12
-        pxor    %xmm3,%xmm8
-        pxor    %xmm11,%xmm3
-        pxor    %xmm12,%xmm13
-        pxor    %xmm4,%xmm8
-        pxor    %xmm12,%xmm4
-        pxor    %xmm5,%xmm8
-        pxor    %xmm13,%xmm5
-        movups  32(%r11),%xmm0
-
-        pxor    %xmm9,%xmm10
-        pxor    %xmm9,%xmm11
-        pxor    %xmm9,%xmm12
-        pxor    %xmm9,%xmm13
-
-.byte   102,15,56,220,209
-.byte   102,15,56,220,217
-.byte   102,15,56,220,225
-.byte   102,15,56,220,233
-        movups  48(%r11),%xmm1
-
-.byte   102,15,56,220,208
-.byte   102,15,56,220,216
-.byte   102,15,56,220,224
-.byte   102,15,56,220,232
-        movups  64(%r11),%xmm0
-        jmp     .Locb_enc_loop4
-
-.align  32
-.Locb_enc_loop4:
-.byte   102,15,56,220,209
-.byte   102,15,56,220,217
-.byte   102,15,56,220,225
-.byte   102,15,56,220,233
-        movups  (%rcx,%rax,1),%xmm1
-        addq    $32,%rax
-
-.byte   102,15,56,220,208
-.byte   102,15,56,220,216
-.byte   102,15,56,220,224
-.byte   102,15,56,220,232
-        movups  -16(%rcx,%rax,1),%xmm0
-        jnz     .Locb_enc_loop4
-
-.byte   102,15,56,220,209
-.byte   102,15,56,220,217
-.byte   102,15,56,220,225
-.byte   102,15,56,220,233
-        movups  16(%r11),%xmm1
-        movq    %r10,%rax
-
-.byte   102,65,15,56,221,210
-.byte   102,65,15,56,221,219
-.byte   102,65,15,56,221,228
-.byte   102,65,15,56,221,237
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   __ocb_encrypt4,.-__ocb_encrypt4
-
-.type   __ocb_encrypt1, at function
-.align  32
-__ocb_encrypt1:
-.cfi_startproc
-        pxor    %xmm15,%xmm7
-        pxor    %xmm9,%xmm7
-        pxor    %xmm2,%xmm8
-        pxor    %xmm7,%xmm2
-        movups  32(%r11),%xmm0
-
-.byte   102,15,56,220,209
-        movups  48(%r11),%xmm1
-        pxor    %xmm9,%xmm7
-
-.byte   102,15,56,220,208
-        movups  64(%r11),%xmm0
-        jmp     .Locb_enc_loop1
-
-.align  32
-.Locb_enc_loop1:
-.byte   102,15,56,220,209
-        movups  (%rcx,%rax,1),%xmm1
-        addq    $32,%rax
-
-.byte   102,15,56,220,208
-        movups  -16(%rcx,%rax,1),%xmm0
-        jnz     .Locb_enc_loop1
-
-.byte   102,15,56,220,209
-        movups  16(%r11),%xmm1
-        movq    %r10,%rax
-
-.byte   102,15,56,221,215
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   __ocb_encrypt1,.-__ocb_encrypt1
-
-.globl  aesni_ocb_decrypt
-.type   aesni_ocb_decrypt, at function
-.align  32
-aesni_ocb_decrypt:
-.cfi_startproc
-        leaq    (%rsp),%rax
-        pushq   %rbx
-.cfi_adjust_cfa_offset  8
-.cfi_offset     %rbx,-16
-        pushq   %rbp
-.cfi_adjust_cfa_offset  8
-.cfi_offset     %rbp,-24
-        pushq   %r12
-.cfi_adjust_cfa_offset  8
-.cfi_offset     %r12,-32
-        pushq   %r13
-.cfi_adjust_cfa_offset  8
-.cfi_offset     %r13,-40
-        pushq   %r14
-.cfi_adjust_cfa_offset  8
-.cfi_offset     %r14,-48
-        movq    8(%rax),%rbx
-        movq    8+8(%rax),%rbp
-
-        movl    240(%rcx),%r10d
-        movq    %rcx,%r11
-        shll    $4,%r10d
-        movups  (%rcx),%xmm9
-        movups  16(%rcx,%r10,1),%xmm1
-
-        movdqu  (%r9),%xmm15
-        pxor    %xmm1,%xmm9
-        pxor    %xmm1,%xmm15
-
-        movl    $16+32,%eax
-        leaq    32(%r11,%r10,1),%rcx
-        movups  16(%r11),%xmm1
-        subq    %r10,%rax
-        movq    %rax,%r10
-
-        movdqu  (%rbx),%xmm10
-        movdqu  (%rbp),%xmm8
-
-        testq   $1,%r8
-        jnz     .Locb_dec_odd
-
-        bsfq    %r8,%r12
-        addq    $1,%r8
-        shlq    $4,%r12
-        movdqu  (%rbx,%r12,1),%xmm7
-        movdqu  (%rdi),%xmm2
-        leaq    16(%rdi),%rdi
-
-        call    __ocb_decrypt1
-
-        movdqa  %xmm7,%xmm15
-        movups  %xmm2,(%rsi)
-        xorps   %xmm2,%xmm8
-        leaq    16(%rsi),%rsi
-        subq    $1,%rdx
-        jz      .Locb_dec_done
-
-.Locb_dec_odd:
-        leaq    1(%r8),%r12
-        leaq    3(%r8),%r13
-        leaq    5(%r8),%r14
-        leaq    6(%r8),%r8
-        bsfq    %r12,%r12
-        bsfq    %r13,%r13
-        bsfq    %r14,%r14
-        shlq    $4,%r12
-        shlq    $4,%r13
-        shlq    $4,%r14
-
-        subq    $6,%rdx
-        jc      .Locb_dec_short
-        jmp     .Locb_dec_grandloop
-
-.align  32
-.Locb_dec_grandloop:
-        movdqu  0(%rdi),%xmm2
-        movdqu  16(%rdi),%xmm3
-        movdqu  32(%rdi),%xmm4
-        movdqu  48(%rdi),%xmm5
-        movdqu  64(%rdi),%xmm6
-        movdqu  80(%rdi),%xmm7
-        leaq    96(%rdi),%rdi
-
-        call    __ocb_decrypt6
-
-        movups  %xmm2,0(%rsi)
-        pxor    %xmm2,%xmm8
-        movups  %xmm3,16(%rsi)
-        pxor    %xmm3,%xmm8
-        movups  %xmm4,32(%rsi)
-        pxor    %xmm4,%xmm8
-        movups  %xmm5,48(%rsi)
-        pxor    %xmm5,%xmm8
-        movups  %xmm6,64(%rsi)
-        pxor    %xmm6,%xmm8
-        movups  %xmm7,80(%rsi)
-        pxor    %xmm7,%xmm8
-        leaq    96(%rsi),%rsi
-        subq    $6,%rdx
-        jnc     .Locb_dec_grandloop
-
-.Locb_dec_short:
-        addq    $6,%rdx
-        jz      .Locb_dec_done
-
-        movdqu  0(%rdi),%xmm2
-        cmpq    $2,%rdx
-        jb      .Locb_dec_one
-        movdqu  16(%rdi),%xmm3
-        je      .Locb_dec_two
-
-        movdqu  32(%rdi),%xmm4
-        cmpq    $4,%rdx
-        jb      .Locb_dec_three
-        movdqu  48(%rdi),%xmm5
-        je      .Locb_dec_four
-
-        movdqu  64(%rdi),%xmm6
-        pxor    %xmm7,%xmm7
-
-        call    __ocb_decrypt6
-
-        movdqa  %xmm14,%xmm15
-        movups  %xmm2,0(%rsi)
-        pxor    %xmm2,%xmm8
-        movups  %xmm3,16(%rsi)
-        pxor    %xmm3,%xmm8
-        movups  %xmm4,32(%rsi)
-        pxor    %xmm4,%xmm8
-        movups  %xmm5,48(%rsi)
-        pxor    %xmm5,%xmm8
-        movups  %xmm6,64(%rsi)
-        pxor    %xmm6,%xmm8
-
-        jmp     .Locb_dec_done
-
-.align  16
-.Locb_dec_one:
-        movdqa  %xmm10,%xmm7
-
-        call    __ocb_decrypt1
-
-        movdqa  %xmm7,%xmm15
-        movups  %xmm2,0(%rsi)
-        xorps   %xmm2,%xmm8
-        jmp     .Locb_dec_done
-
-.align  16
-.Locb_dec_two:
-        pxor    %xmm4,%xmm4
-        pxor    %xmm5,%xmm5
-
-        call    __ocb_decrypt4
-
-        movdqa  %xmm11,%xmm15
-        movups  %xmm2,0(%rsi)
-        xorps   %xmm2,%xmm8
-        movups  %xmm3,16(%rsi)
-        xorps   %xmm3,%xmm8
-
-        jmp     .Locb_dec_done
-
-.align  16
-.Locb_dec_three:
-        pxor    %xmm5,%xmm5
-
-        call    __ocb_decrypt4
-
-        movdqa  %xmm12,%xmm15
-        movups  %xmm2,0(%rsi)
-        xorps   %xmm2,%xmm8
-        movups  %xmm3,16(%rsi)
-        xorps   %xmm3,%xmm8
-        movups  %xmm4,32(%rsi)
-        xorps   %xmm4,%xmm8
-
-        jmp     .Locb_dec_done
-
-.align  16
-.Locb_dec_four:
-        call    __ocb_decrypt4
-
-        movdqa  %xmm13,%xmm15
-        movups  %xmm2,0(%rsi)
-        pxor    %xmm2,%xmm8
-        movups  %xmm3,16(%rsi)
-        pxor    %xmm3,%xmm8
-        movups  %xmm4,32(%rsi)
-        pxor    %xmm4,%xmm8
-        movups  %xmm5,48(%rsi)
-        pxor    %xmm5,%xmm8
-
-.Locb_dec_done:
-        pxor    %xmm0,%xmm15
-        movdqu  %xmm8,(%rbp)
-        movdqu  %xmm15,(%r9)
-
-        xorps   %xmm0,%xmm0
-        pxor    %xmm1,%xmm1
-        pxor    %xmm2,%xmm2
-        pxor    %xmm3,%xmm3
-        pxor    %xmm4,%xmm4
-        pxor    %xmm5,%xmm5
-        pxor    %xmm6,%xmm6
-        pxor    %xmm7,%xmm7
-        pxor    %xmm8,%xmm8
-        pxor    %xmm9,%xmm9
-        pxor    %xmm10,%xmm10
-        pxor    %xmm11,%xmm11
-        pxor    %xmm12,%xmm12
-        pxor    %xmm13,%xmm13
-        pxor    %xmm14,%xmm14
-        pxor    %xmm15,%xmm15
-        leaq    40(%rsp),%rax
-.cfi_def_cfa    %rax,8
-        movq    -40(%rax),%r14
-.cfi_restore    %r14
-        movq    -32(%rax),%r13
-.cfi_restore    %r13
-        movq    -24(%rax),%r12
-.cfi_restore    %r12
-        movq    -16(%rax),%rbp
-.cfi_restore    %rbp
-        movq    -8(%rax),%rbx
-.cfi_restore    %rbx
-        leaq    (%rax),%rsp
-.cfi_def_cfa_register   %rsp
-.Locb_dec_epilogue:
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   aesni_ocb_decrypt,.-aesni_ocb_decrypt
-
-.type   __ocb_decrypt6, at function
-.align  32
-__ocb_decrypt6:
-.cfi_startproc
-        pxor    %xmm9,%xmm15
-        movdqu  (%rbx,%r12,1),%xmm11
-        movdqa  %xmm10,%xmm12
-        movdqu  (%rbx,%r13,1),%xmm13
-        movdqa  %xmm10,%xmm14
-        pxor    %xmm15,%xmm10
-        movdqu  (%rbx,%r14,1),%xmm15
-        pxor    %xmm10,%xmm11
-        pxor    %xmm10,%xmm2
-        pxor    %xmm11,%xmm12
-        pxor    %xmm11,%xmm3
-        pxor    %xmm12,%xmm13
-        pxor    %xmm12,%xmm4
-        pxor    %xmm13,%xmm14
-        pxor    %xmm13,%xmm5
-        pxor    %xmm14,%xmm15
-        pxor    %xmm14,%xmm6
-        pxor    %xmm15,%xmm7
-        movups  32(%r11),%xmm0
-
-        leaq    1(%r8),%r12
-        leaq    3(%r8),%r13
-        leaq    5(%r8),%r14
-        addq    $6,%r8
-        pxor    %xmm9,%xmm10
-        bsfq    %r12,%r12
-        bsfq    %r13,%r13
-        bsfq    %r14,%r14
-
-.byte   102,15,56,222,209
-.byte   102,15,56,222,217
-.byte   102,15,56,222,225
-.byte   102,15,56,222,233
-        pxor    %xmm9,%xmm11
-        pxor    %xmm9,%xmm12
-.byte   102,15,56,222,241
-        pxor    %xmm9,%xmm13
-        pxor    %xmm9,%xmm14
-.byte   102,15,56,222,249
-        movups  48(%r11),%xmm1
-        pxor    %xmm9,%xmm15
-
-.byte   102,15,56,222,208
-.byte   102,15,56,222,216
-.byte   102,15,56,222,224
-.byte   102,15,56,222,232
-.byte   102,15,56,222,240
-.byte   102,15,56,222,248
-        movups  64(%r11),%xmm0
-        shlq    $4,%r12
-        shlq    $4,%r13
-        jmp     .Locb_dec_loop6
-
-.align  32
-.Locb_dec_loop6:
-.byte   102,15,56,222,209
-.byte   102,15,56,222,217
-.byte   102,15,56,222,225
-.byte   102,15,56,222,233
-.byte   102,15,56,222,241
-.byte   102,15,56,222,249
-        movups  (%rcx,%rax,1),%xmm1
-        addq    $32,%rax
-
-.byte   102,15,56,222,208
-.byte   102,15,56,222,216
-.byte   102,15,56,222,224
-.byte   102,15,56,222,232
-.byte   102,15,56,222,240
-.byte   102,15,56,222,248
-        movups  -16(%rcx,%rax,1),%xmm0
-        jnz     .Locb_dec_loop6
-
-.byte   102,15,56,222,209
-.byte   102,15,56,222,217
-.byte   102,15,56,222,225
-.byte   102,15,56,222,233
-.byte   102,15,56,222,241
-.byte   102,15,56,222,249
-        movups  16(%r11),%xmm1
-        shlq    $4,%r14
-
-.byte   102,65,15,56,223,210
-        movdqu  (%rbx),%xmm10
-        movq    %r10,%rax
-.byte   102,65,15,56,223,219
-.byte   102,65,15,56,223,228
-.byte   102,65,15,56,223,237
-.byte   102,65,15,56,223,246
-.byte   102,65,15,56,223,255
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   __ocb_decrypt6,.-__ocb_decrypt6
-
-.type   __ocb_decrypt4, at function
-.align  32
-__ocb_decrypt4:
-.cfi_startproc
-        pxor    %xmm9,%xmm15
-        movdqu  (%rbx,%r12,1),%xmm11
-        movdqa  %xmm10,%xmm12
-        movdqu  (%rbx,%r13,1),%xmm13
-        pxor    %xmm15,%xmm10
-        pxor    %xmm10,%xmm11
-        pxor    %xmm10,%xmm2
-        pxor    %xmm11,%xmm12
-        pxor    %xmm11,%xmm3
-        pxor    %xmm12,%xmm13
-        pxor    %xmm12,%xmm4
-        pxor    %xmm13,%xmm5
-        movups  32(%r11),%xmm0
-
-        pxor    %xmm9,%xmm10
-        pxor    %xmm9,%xmm11
-        pxor    %xmm9,%xmm12
-        pxor    %xmm9,%xmm13
-
-.byte   102,15,56,222,209
-.byte   102,15,56,222,217
-.byte   102,15,56,222,225
-.byte   102,15,56,222,233
-        movups  48(%r11),%xmm1
-
-.byte   102,15,56,222,208
-.byte   102,15,56,222,216
-.byte   102,15,56,222,224
-.byte   102,15,56,222,232
-        movups  64(%r11),%xmm0
-        jmp     .Locb_dec_loop4
-
-.align  32
-.Locb_dec_loop4:
-.byte   102,15,56,222,209
-.byte   102,15,56,222,217
-.byte   102,15,56,222,225
-.byte   102,15,56,222,233
-        movups  (%rcx,%rax,1),%xmm1
-        addq    $32,%rax
-
-.byte   102,15,56,222,208
-.byte   102,15,56,222,216
-.byte   102,15,56,222,224
-.byte   102,15,56,222,232
-        movups  -16(%rcx,%rax,1),%xmm0
-        jnz     .Locb_dec_loop4
-
-.byte   102,15,56,222,209
-.byte   102,15,56,222,217
-.byte   102,15,56,222,225
-.byte   102,15,56,222,233
-        movups  16(%r11),%xmm1
-        movq    %r10,%rax
-
-.byte   102,65,15,56,223,210
-.byte   102,65,15,56,223,219
-.byte   102,65,15,56,223,228
-.byte   102,65,15,56,223,237
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   __ocb_decrypt4,.-__ocb_decrypt4
-
-.type   __ocb_decrypt1, at function
-.align  32
-__ocb_decrypt1:
-.cfi_startproc
-        pxor    %xmm15,%xmm7
-        pxor    %xmm9,%xmm7
-        pxor    %xmm7,%xmm2
-        movups  32(%r11),%xmm0
-
-.byte   102,15,56,222,209
-        movups  48(%r11),%xmm1
-        pxor    %xmm9,%xmm7
-
-.byte   102,15,56,222,208
-        movups  64(%r11),%xmm0
-        jmp     .Locb_dec_loop1
-
-.align  32
-.Locb_dec_loop1:
-.byte   102,15,56,222,209
-        movups  (%rcx,%rax,1),%xmm1
-        addq    $32,%rax
-
-.byte   102,15,56,222,208
-        movups  -16(%rcx,%rax,1),%xmm0
-        jnz     .Locb_dec_loop1
-
-.byte   102,15,56,222,209
-        movups  16(%r11),%xmm1
-        movq    %r10,%rax
-
-.byte   102,15,56,223,215
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   __ocb_decrypt1,.-__ocb_decrypt1
-.globl  aesni_cbc_encrypt
-.type   aesni_cbc_encrypt, at function
-.align  16
-aesni_cbc_encrypt:
-.cfi_startproc
-        testq   %rdx,%rdx
-        jz      .Lcbc_ret
-
-        movl    240(%rcx),%r10d
-        movq    %rcx,%r11
-        testl   %r9d,%r9d
-        jz      .Lcbc_decrypt
-
-        movups  (%r8),%xmm2
-        movl    %r10d,%eax
-        cmpq    $16,%rdx
-        jb      .Lcbc_enc_tail
-        subq    $16,%rdx
-        jmp     .Lcbc_enc_loop
-.align  16
-.Lcbc_enc_loop:
-        movups  (%rdi),%xmm3
-        leaq    16(%rdi),%rdi
-
-        movups  (%rcx),%xmm0
-        movups  16(%rcx),%xmm1
-        xorps   %xmm0,%xmm3
-        leaq    32(%rcx),%rcx
-        xorps   %xmm3,%xmm2
-.Loop_enc1_15:
-.byte   102,15,56,220,209
-        decl    %eax
-        movups  (%rcx),%xmm1
-        leaq    16(%rcx),%rcx
-        jnz     .Loop_enc1_15
-.byte   102,15,56,221,209
-        movl    %r10d,%eax
-        movq    %r11,%rcx
-        movups  %xmm2,0(%rsi)
-        leaq    16(%rsi),%rsi
-        subq    $16,%rdx
-        jnc     .Lcbc_enc_loop
-        addq    $16,%rdx
-        jnz     .Lcbc_enc_tail
-        pxor    %xmm0,%xmm0
-        pxor    %xmm1,%xmm1
-        movups  %xmm2,(%r8)
-        pxor    %xmm2,%xmm2
-        pxor    %xmm3,%xmm3
-        jmp     .Lcbc_ret
-
-.Lcbc_enc_tail:
-        movq    %rdx,%rcx
-        xchgq   %rdi,%rsi
-.long   0x9066A4F3
-        movl    $16,%ecx
-        subq    %rdx,%rcx
-        xorl    %eax,%eax
-.long   0x9066AAF3
-        leaq    -16(%rdi),%rdi
-        movl    %r10d,%eax
-        movq    %rdi,%rsi
-        movq    %r11,%rcx
-        xorq    %rdx,%rdx
-        jmp     .Lcbc_enc_loop
-
-.align  16
-.Lcbc_decrypt:
-        cmpq    $16,%rdx
-        jne     .Lcbc_decrypt_bulk
-
-
-
-        movdqu  (%rdi),%xmm2
-        movdqu  (%r8),%xmm3
-        movdqa  %xmm2,%xmm4
-        movups  (%rcx),%xmm0
-        movups  16(%rcx),%xmm1
-        leaq    32(%rcx),%rcx
-        xorps   %xmm0,%xmm2
-.Loop_dec1_16:
-.byte   102,15,56,222,209
-        decl    %r10d
-        movups  (%rcx),%xmm1
-        leaq    16(%rcx),%rcx
-        jnz     .Loop_dec1_16
-.byte   102,15,56,223,209
-        pxor    %xmm0,%xmm0
-        pxor    %xmm1,%xmm1
-        movdqu  %xmm4,(%r8)
-        xorps   %xmm3,%xmm2
-        pxor    %xmm3,%xmm3
-        movups  %xmm2,(%rsi)
-        pxor    %xmm2,%xmm2
-        jmp     .Lcbc_ret
-.align  16
-.Lcbc_decrypt_bulk:
-        leaq    (%rsp),%r11
-.cfi_def_cfa_register   %r11
-        pushq   %rbp
-.cfi_offset     %rbp,-16
-        subq    $16,%rsp
-        andq    $-16,%rsp
-        movq    %rcx,%rbp
-        movups  (%r8),%xmm10
-        movl    %r10d,%eax
-        cmpq    $0x50,%rdx
-        jbe     .Lcbc_dec_tail
-
-        movups  (%rcx),%xmm0
-        movdqu  0(%rdi),%xmm2
-        movdqu  16(%rdi),%xmm3
-        movdqa  %xmm2,%xmm11
-        movdqu  32(%rdi),%xmm4
-        movdqa  %xmm3,%xmm12
-        movdqu  48(%rdi),%xmm5
-        movdqa  %xmm4,%xmm13
-        movdqu  64(%rdi),%xmm6
-        movdqa  %xmm5,%xmm14
-        movdqu  80(%rdi),%xmm7
-        movdqa  %xmm6,%xmm15
-        movl    OPENSSL_ia32cap_P+4(%rip),%r9d
-        cmpq    $0x70,%rdx
-        jbe     .Lcbc_dec_six_or_seven
-
-        andl    $71303168,%r9d
-        subq    $0x50,%rdx
-        cmpl    $4194304,%r9d
-        je      .Lcbc_dec_loop6_enter
-        subq    $0x20,%rdx
-        leaq    112(%rcx),%rcx
-        jmp     .Lcbc_dec_loop8_enter
-.align  16
-.Lcbc_dec_loop8:
-        movups  %xmm9,(%rsi)
-        leaq    16(%rsi),%rsi
-.Lcbc_dec_loop8_enter:
-        movdqu  96(%rdi),%xmm8
-        pxor    %xmm0,%xmm2
-        movdqu  112(%rdi),%xmm9
-        pxor    %xmm0,%xmm3
-        movups  16-112(%rcx),%xmm1
-        pxor    %xmm0,%xmm4
-        movq    $-1,%rbp
-        cmpq    $0x70,%rdx
-        pxor    %xmm0,%xmm5
-        pxor    %xmm0,%xmm6
-        pxor    %xmm0,%xmm7
-        pxor    %xmm0,%xmm8
-
-.byte   102,15,56,222,209
-        pxor    %xmm0,%xmm9
-        movups  32-112(%rcx),%xmm0
-.byte   102,15,56,222,217
-.byte   102,15,56,222,225
-.byte   102,15,56,222,233
-.byte   102,15,56,222,241
-.byte   102,15,56,222,249
-.byte   102,68,15,56,222,193
-        adcq    $0,%rbp
-        andq    $128,%rbp
-.byte   102,68,15,56,222,201
-        addq    %rdi,%rbp
-        movups  48-112(%rcx),%xmm1
-.byte   102,15,56,222,208
-.byte   102,15,56,222,216
-.byte   102,15,56,222,224
-.byte   102,15,56,222,232
-.byte   102,15,56,222,240
-.byte   102,15,56,222,248
-.byte   102,68,15,56,222,192
-.byte   102,68,15,56,222,200
-        movups  64-112(%rcx),%xmm0
-        nop
-.byte   102,15,56,222,209
-.byte   102,15,56,222,217
-.byte   102,15,56,222,225
-.byte   102,15,56,222,233
-.byte   102,15,56,222,241
-.byte   102,15,56,222,249
-.byte   102,68,15,56,222,193
-.byte   102,68,15,56,222,201
-        movups  80-112(%rcx),%xmm1
-        nop
-.byte   102,15,56,222,208
-.byte   102,15,56,222,216
-.byte   102,15,56,222,224
-.byte   102,15,56,222,232
-.byte   102,15,56,222,240
-.byte   102,15,56,222,248
-.byte   102,68,15,56,222,192
-.byte   102,68,15,56,222,200
-        movups  96-112(%rcx),%xmm0
-        nop
-.byte   102,15,56,222,209
-.byte   102,15,56,222,217
-.byte   102,15,56,222,225
-.byte   102,15,56,222,233
-.byte   102,15,56,222,241
-.byte   102,15,56,222,249
-.byte   102,68,15,56,222,193
-.byte   102,68,15,56,222,201
-        movups  112-112(%rcx),%xmm1
-        nop
-.byte   102,15,56,222,208
-.byte   102,15,56,222,216
-.byte   102,15,56,222,224
-.byte   102,15,56,222,232
-.byte   102,15,56,222,240
-.byte   102,15,56,222,248
-.byte   102,68,15,56,222,192
-.byte   102,68,15,56,222,200
-        movups  128-112(%rcx),%xmm0
-        nop
-.byte   102,15,56,222,209
-.byte   102,15,56,222,217
-.byte   102,15,56,222,225
-.byte   102,15,56,222,233
-.byte   102,15,56,222,241
-.byte   102,15,56,222,249
-.byte   102,68,15,56,222,193
-.byte   102,68,15,56,222,201
-        movups  144-112(%rcx),%xmm1
-        cmpl    $11,%eax
-.byte   102,15,56,222,208
-.byte   102,15,56,222,216
-.byte   102,15,56,222,224
-.byte   102,15,56,222,232
-.byte   102,15,56,222,240
-.byte   102,15,56,222,248
-.byte   102,68,15,56,222,192
-.byte   102,68,15,56,222,200
-        movups  160-112(%rcx),%xmm0
-        jb      .Lcbc_dec_done
-.byte   102,15,56,222,209
-.byte   102,15,56,222,217
-.byte   102,15,56,222,225
-.byte   102,15,56,222,233
-.byte   102,15,56,222,241
-.byte   102,15,56,222,249
-.byte   102,68,15,56,222,193
-.byte   102,68,15,56,222,201
-        movups  176-112(%rcx),%xmm1
-        nop
-.byte   102,15,56,222,208
-.byte   102,15,56,222,216
-.byte   102,15,56,222,224
-.byte   102,15,56,222,232
-.byte   102,15,56,222,240
-.byte   102,15,56,222,248
-.byte   102,68,15,56,222,192
-.byte   102,68,15,56,222,200
-        movups  192-112(%rcx),%xmm0
-        je      .Lcbc_dec_done
-.byte   102,15,56,222,209
-.byte   102,15,56,222,217
-.byte   102,15,56,222,225
-.byte   102,15,56,222,233
-.byte   102,15,56,222,241
-.byte   102,15,56,222,249
-.byte   102,68,15,56,222,193
-.byte   102,68,15,56,222,201
-        movups  208-112(%rcx),%xmm1
-        nop
-.byte   102,15,56,222,208
-.byte   102,15,56,222,216
-.byte   102,15,56,222,224
-.byte   102,15,56,222,232
-.byte   102,15,56,222,240
-.byte   102,15,56,222,248
-.byte   102,68,15,56,222,192
-.byte   102,68,15,56,222,200
-        movups  224-112(%rcx),%xmm0
-        jmp     .Lcbc_dec_done
-.align  16
-.Lcbc_dec_done:
-.byte   102,15,56,222,209
-.byte   102,15,56,222,217
-        pxor    %xmm0,%xmm10
-        pxor    %xmm0,%xmm11
-.byte   102,15,56,222,225
-.byte   102,15,56,222,233
-        pxor    %xmm0,%xmm12
-        pxor    %xmm0,%xmm13
-.byte   102,15,56,222,241
-.byte   102,15,56,222,249
-        pxor    %xmm0,%xmm14
-        pxor    %xmm0,%xmm15
-.byte   102,68,15,56,222,193
-.byte   102,68,15,56,222,201
-        movdqu  80(%rdi),%xmm1
-
-.byte   102,65,15,56,223,210
-        movdqu  96(%rdi),%xmm10
-        pxor    %xmm0,%xmm1
-.byte   102,65,15,56,223,219
-        pxor    %xmm0,%xmm10
-        movdqu  112(%rdi),%xmm0
-.byte   102,65,15,56,223,228
-        leaq    128(%rdi),%rdi
-        movdqu  0(%rbp),%xmm11
-.byte   102,65,15,56,223,237
-.byte   102,65,15,56,223,246
-        movdqu  16(%rbp),%xmm12
-        movdqu  32(%rbp),%xmm13
-.byte   102,65,15,56,223,255
-.byte   102,68,15,56,223,193
-        movdqu  48(%rbp),%xmm14
-        movdqu  64(%rbp),%xmm15
-.byte   102,69,15,56,223,202
-        movdqa  %xmm0,%xmm10
-        movdqu  80(%rbp),%xmm1
-        movups  -112(%rcx),%xmm0
-
-        movups  %xmm2,(%rsi)
-        movdqa  %xmm11,%xmm2
-        movups  %xmm3,16(%rsi)
-        movdqa  %xmm12,%xmm3
-        movups  %xmm4,32(%rsi)
-        movdqa  %xmm13,%xmm4
-        movups  %xmm5,48(%rsi)
-        movdqa  %xmm14,%xmm5
-        movups  %xmm6,64(%rsi)
-        movdqa  %xmm15,%xmm6
-        movups  %xmm7,80(%rsi)
-        movdqa  %xmm1,%xmm7
-        movups  %xmm8,96(%rsi)
-        leaq    112(%rsi),%rsi
-
-        subq    $0x80,%rdx
-        ja      .Lcbc_dec_loop8
-
-        movaps  %xmm9,%xmm2
-        leaq    -112(%rcx),%rcx
-        addq    $0x70,%rdx
-        jle     .Lcbc_dec_clear_tail_collected
-        movups  %xmm9,(%rsi)
-        leaq    16(%rsi),%rsi
-        cmpq    $0x50,%rdx
-        jbe     .Lcbc_dec_tail
-
-        movaps  %xmm11,%xmm2
-.Lcbc_dec_six_or_seven:
-        cmpq    $0x60,%rdx
-        ja      .Lcbc_dec_seven
-
-        movaps  %xmm7,%xmm8
-        call    _aesni_decrypt6
-        pxor    %xmm10,%xmm2
-        movaps  %xmm8,%xmm10
-        pxor    %xmm11,%xmm3
-        movdqu  %xmm2,(%rsi)
-        pxor    %xmm12,%xmm4
-        movdqu  %xmm3,16(%rsi)
-        pxor    %xmm3,%xmm3
-        pxor    %xmm13,%xmm5
-        movdqu  %xmm4,32(%rsi)
-        pxor    %xmm4,%xmm4
-        pxor    %xmm14,%xmm6
-        movdqu  %xmm5,48(%rsi)
-        pxor    %xmm5,%xmm5
-        pxor    %xmm15,%xmm7
-        movdqu  %xmm6,64(%rsi)
-        pxor    %xmm6,%xmm6
-        leaq    80(%rsi),%rsi
-        movdqa  %xmm7,%xmm2
-        pxor    %xmm7,%xmm7
-        jmp     .Lcbc_dec_tail_collected
-
-.align  16
-.Lcbc_dec_seven:
-        movups  96(%rdi),%xmm8
-        xorps   %xmm9,%xmm9
-        call    _aesni_decrypt8
-        movups  80(%rdi),%xmm9
-        pxor    %xmm10,%xmm2
-        movups  96(%rdi),%xmm10
-        pxor    %xmm11,%xmm3
-        movdqu  %xmm2,(%rsi)
-        pxor    %xmm12,%xmm4
-        movdqu  %xmm3,16(%rsi)
-        pxor    %xmm3,%xmm3
-        pxor    %xmm13,%xmm5
-        movdqu  %xmm4,32(%rsi)
-        pxor    %xmm4,%xmm4
-        pxor    %xmm14,%xmm6
-        movdqu  %xmm5,48(%rsi)
-        pxor    %xmm5,%xmm5
-        pxor    %xmm15,%xmm7
-        movdqu  %xmm6,64(%rsi)
-        pxor    %xmm6,%xmm6
-        pxor    %xmm9,%xmm8
-        movdqu  %xmm7,80(%rsi)
-        pxor    %xmm7,%xmm7
-        leaq    96(%rsi),%rsi
-        movdqa  %xmm8,%xmm2
-        pxor    %xmm8,%xmm8
-        pxor    %xmm9,%xmm9
-        jmp     .Lcbc_dec_tail_collected
-
-.align  16
-.Lcbc_dec_loop6:
-        movups  %xmm7,(%rsi)
-        leaq    16(%rsi),%rsi
-        movdqu  0(%rdi),%xmm2
-        movdqu  16(%rdi),%xmm3
-        movdqa  %xmm2,%xmm11
-        movdqu  32(%rdi),%xmm4
-        movdqa  %xmm3,%xmm12
-        movdqu  48(%rdi),%xmm5
-        movdqa  %xmm4,%xmm13
-        movdqu  64(%rdi),%xmm6
-        movdqa  %xmm5,%xmm14
-        movdqu  80(%rdi),%xmm7
-        movdqa  %xmm6,%xmm15
-.Lcbc_dec_loop6_enter:
-        leaq    96(%rdi),%rdi
-        movdqa  %xmm7,%xmm8
-
-        call    _aesni_decrypt6
-
-        pxor    %xmm10,%xmm2
-        movdqa  %xmm8,%xmm10
-        pxor    %xmm11,%xmm3
-        movdqu  %xmm2,(%rsi)
-        pxor    %xmm12,%xmm4
-        movdqu  %xmm3,16(%rsi)
-        pxor    %xmm13,%xmm5
-        movdqu  %xmm4,32(%rsi)
-        pxor    %xmm14,%xmm6
-        movq    %rbp,%rcx
-        movdqu  %xmm5,48(%rsi)
-        pxor    %xmm15,%xmm7
-        movl    %r10d,%eax
-        movdqu  %xmm6,64(%rsi)
-        leaq    80(%rsi),%rsi
-        subq    $0x60,%rdx
-        ja      .Lcbc_dec_loop6
-
-        movdqa  %xmm7,%xmm2
-        addq    $0x50,%rdx
-        jle     .Lcbc_dec_clear_tail_collected
-        movups  %xmm7,(%rsi)
-        leaq    16(%rsi),%rsi
-
-.Lcbc_dec_tail:
-        movups  (%rdi),%xmm2
-        subq    $0x10,%rdx
-        jbe     .Lcbc_dec_one
-
-        movups  16(%rdi),%xmm3
-        movaps  %xmm2,%xmm11
-        subq    $0x10,%rdx
-        jbe     .Lcbc_dec_two
-
-        movups  32(%rdi),%xmm4
-        movaps  %xmm3,%xmm12
-        subq    $0x10,%rdx
-        jbe     .Lcbc_dec_three
-
-        movups  48(%rdi),%xmm5
-        movaps  %xmm4,%xmm13
-        subq    $0x10,%rdx
-        jbe     .Lcbc_dec_four
-
-        movups  64(%rdi),%xmm6
-        movaps  %xmm5,%xmm14
-        movaps  %xmm6,%xmm15
-        xorps   %xmm7,%xmm7
-        call    _aesni_decrypt6
-        pxor    %xmm10,%xmm2
-        movaps  %xmm15,%xmm10
-        pxor    %xmm11,%xmm3
-        movdqu  %xmm2,(%rsi)
-        pxor    %xmm12,%xmm4
-        movdqu  %xmm3,16(%rsi)
-        pxor    %xmm3,%xmm3
-        pxor    %xmm13,%xmm5
-        movdqu  %xmm4,32(%rsi)
-        pxor    %xmm4,%xmm4
-        pxor    %xmm14,%xmm6
-        movdqu  %xmm5,48(%rsi)
-        pxor    %xmm5,%xmm5
-        leaq    64(%rsi),%rsi
-        movdqa  %xmm6,%xmm2
-        pxor    %xmm6,%xmm6
-        pxor    %xmm7,%xmm7
-        subq    $0x10,%rdx
-        jmp     .Lcbc_dec_tail_collected
-
-.align  16
-.Lcbc_dec_one:
-        movaps  %xmm2,%xmm11
-        movups  (%rcx),%xmm0
-        movups  16(%rcx),%xmm1
-        leaq    32(%rcx),%rcx
-        xorps   %xmm0,%xmm2
-.Loop_dec1_17:
-.byte   102,15,56,222,209
-        decl    %eax
-        movups  (%rcx),%xmm1
-        leaq    16(%rcx),%rcx
-        jnz     .Loop_dec1_17
-.byte   102,15,56,223,209
-        xorps   %xmm10,%xmm2
-        movaps  %xmm11,%xmm10
-        jmp     .Lcbc_dec_tail_collected
-.align  16
-.Lcbc_dec_two:
-        movaps  %xmm3,%xmm12
-        call    _aesni_decrypt2
-        pxor    %xmm10,%xmm2
-        movaps  %xmm12,%xmm10
-        pxor    %xmm11,%xmm3
-        movdqu  %xmm2,(%rsi)
-        movdqa  %xmm3,%xmm2
-        pxor    %xmm3,%xmm3
-        leaq    16(%rsi),%rsi
-        jmp     .Lcbc_dec_tail_collected
-.align  16
-.Lcbc_dec_three:
-        movaps  %xmm4,%xmm13
-        call    _aesni_decrypt3
-        pxor    %xmm10,%xmm2
-        movaps  %xmm13,%xmm10
-        pxor    %xmm11,%xmm3
-        movdqu  %xmm2,(%rsi)
-        pxor    %xmm12,%xmm4
-        movdqu  %xmm3,16(%rsi)
-        pxor    %xmm3,%xmm3
-        movdqa  %xmm4,%xmm2
-        pxor    %xmm4,%xmm4
-        leaq    32(%rsi),%rsi
-        jmp     .Lcbc_dec_tail_collected
-.align  16
-.Lcbc_dec_four:
-        movaps  %xmm5,%xmm14
-        call    _aesni_decrypt4
-        pxor    %xmm10,%xmm2
-        movaps  %xmm14,%xmm10
-        pxor    %xmm11,%xmm3
-        movdqu  %xmm2,(%rsi)
-        pxor    %xmm12,%xmm4
-        movdqu  %xmm3,16(%rsi)
-        pxor    %xmm3,%xmm3
-        pxor    %xmm13,%xmm5
-        movdqu  %xmm4,32(%rsi)
-        pxor    %xmm4,%xmm4
-        movdqa  %xmm5,%xmm2
-        pxor    %xmm5,%xmm5
-        leaq    48(%rsi),%rsi
-        jmp     .Lcbc_dec_tail_collected
-
-.align  16
-.Lcbc_dec_clear_tail_collected:
-        pxor    %xmm3,%xmm3
-        pxor    %xmm4,%xmm4
-        pxor    %xmm5,%xmm5
-        pxor    %xmm6,%xmm6
-        pxor    %xmm7,%xmm7
-        pxor    %xmm8,%xmm8
-        pxor    %xmm9,%xmm9
-.Lcbc_dec_tail_collected:
-        movups  %xmm10,(%r8)
-        andq    $15,%rdx
-        jnz     .Lcbc_dec_tail_partial
-        movups  %xmm2,(%rsi)
-        pxor    %xmm2,%xmm2
-        jmp     .Lcbc_dec_ret
-.align  16
-.Lcbc_dec_tail_partial:
-        movaps  %xmm2,(%rsp)
-        pxor    %xmm2,%xmm2
-        movq    $16,%rcx
-        movq    %rsi,%rdi
-        subq    %rdx,%rcx
-        leaq    (%rsp),%rsi
-.long   0x9066A4F3
-        movdqa  %xmm2,(%rsp)
-
-.Lcbc_dec_ret:
-        xorps   %xmm0,%xmm0
-        pxor    %xmm1,%xmm1
-        movq    -8(%r11),%rbp
-.cfi_restore    %rbp
-        leaq    (%r11),%rsp
-.cfi_def_cfa_register   %rsp
-.Lcbc_ret:
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   aesni_cbc_encrypt,.-aesni_cbc_encrypt
-.globl  aesni_set_decrypt_key
-.type   aesni_set_decrypt_key, at function
-.align  16
-aesni_set_decrypt_key:
-.cfi_startproc
-.byte   0x48,0x83,0xEC,0x08
-.cfi_adjust_cfa_offset  8
-        call    __aesni_set_encrypt_key
-        shll    $4,%esi
-        testl   %eax,%eax
-        jnz     .Ldec_key_ret
-        leaq    16(%rdx,%rsi,1),%rdi
-
-        movups  (%rdx),%xmm0
-        movups  (%rdi),%xmm1
-        movups  %xmm0,(%rdi)
-        movups  %xmm1,(%rdx)
-        leaq    16(%rdx),%rdx
-        leaq    -16(%rdi),%rdi
-
-.Ldec_key_inverse:
-        movups  (%rdx),%xmm0
-        movups  (%rdi),%xmm1
-.byte   102,15,56,219,192
-.byte   102,15,56,219,201
-        leaq    16(%rdx),%rdx
-        leaq    -16(%rdi),%rdi
-        movups  %xmm0,16(%rdi)
-        movups  %xmm1,-16(%rdx)
-        cmpq    %rdx,%rdi
-        ja      .Ldec_key_inverse
-
-        movups  (%rdx),%xmm0
-.byte   102,15,56,219,192
-        pxor    %xmm1,%xmm1
-        movups  %xmm0,(%rdi)
-        pxor    %xmm0,%xmm0
-.Ldec_key_ret:
-        addq    $8,%rsp
-.cfi_adjust_cfa_offset  -8
-        .byte   0xf3,0xc3
-.cfi_endproc
-.LSEH_end_set_decrypt_key:
-.size   aesni_set_decrypt_key,.-aesni_set_decrypt_key
-.globl  aesni_set_encrypt_key
-.type   aesni_set_encrypt_key, at function
-.align  16
-aesni_set_encrypt_key:
-__aesni_set_encrypt_key:
-.cfi_startproc
-.byte   0x48,0x83,0xEC,0x08
-.cfi_adjust_cfa_offset  8
-        movq    $-1,%rax
-        testq   %rdi,%rdi
-        jz      .Lenc_key_ret
-        testq   %rdx,%rdx
-        jz      .Lenc_key_ret
-
-        movl    $268437504,%r10d
-        movups  (%rdi),%xmm0
-        xorps   %xmm4,%xmm4
-        andl    OPENSSL_ia32cap_P+4(%rip),%r10d
-        leaq    16(%rdx),%rax
-        cmpl    $256,%esi
-        je      .L14rounds
-        cmpl    $192,%esi
-        je      .L12rounds
-        cmpl    $128,%esi
-        jne     .Lbad_keybits
-
-.L10rounds:
-        movl    $9,%esi
-        cmpl    $268435456,%r10d
-        je      .L10rounds_alt
-
-        movups  %xmm0,(%rdx)
-.byte   102,15,58,223,200,1
-        call    .Lkey_expansion_128_cold
-.byte   102,15,58,223,200,2
-        call    .Lkey_expansion_128
-.byte   102,15,58,223,200,4
-        call    .Lkey_expansion_128
-.byte   102,15,58,223,200,8
-        call    .Lkey_expansion_128
-.byte   102,15,58,223,200,16
-        call    .Lkey_expansion_128
-.byte   102,15,58,223,200,32
-        call    .Lkey_expansion_128
-.byte   102,15,58,223,200,64
-        call    .Lkey_expansion_128
-.byte   102,15,58,223,200,128
-        call    .Lkey_expansion_128
-.byte   102,15,58,223,200,27
-        call    .Lkey_expansion_128
-.byte   102,15,58,223,200,54
-        call    .Lkey_expansion_128
-        movups  %xmm0,(%rax)
-        movl    %esi,80(%rax)
-        xorl    %eax,%eax
-        jmp     .Lenc_key_ret
-
-.align  16
-.L10rounds_alt:
-        movdqa  .Lkey_rotate(%rip),%xmm5
-        movl    $8,%r10d
-        movdqa  .Lkey_rcon1(%rip),%xmm4
-        movdqa  %xmm0,%xmm2
-        movdqu  %xmm0,(%rdx)
-        jmp     .Loop_key128
-
-.align  16
-.Loop_key128:
-.byte   102,15,56,0,197
-.byte   102,15,56,221,196
-        pslld   $1,%xmm4
-        leaq    16(%rax),%rax
-
-        movdqa  %xmm2,%xmm3
-        pslldq  $4,%xmm2
-        pxor    %xmm2,%xmm3
-        pslldq  $4,%xmm2
-        pxor    %xmm2,%xmm3
-        pslldq  $4,%xmm2
-        pxor    %xmm3,%xmm2
-
-        pxor    %xmm2,%xmm0
-        movdqu  %xmm0,-16(%rax)
-        movdqa  %xmm0,%xmm2
-
-        decl    %r10d
-        jnz     .Loop_key128
-
-        movdqa  .Lkey_rcon1b(%rip),%xmm4
-
-.byte   102,15,56,0,197
-.byte   102,15,56,221,196
-        pslld   $1,%xmm4
-
-        movdqa  %xmm2,%xmm3
-        pslldq  $4,%xmm2
-        pxor    %xmm2,%xmm3
-        pslldq  $4,%xmm2
-        pxor    %xmm2,%xmm3
-        pslldq  $4,%xmm2
-        pxor    %xmm3,%xmm2
-
-        pxor    %xmm2,%xmm0
-        movdqu  %xmm0,(%rax)
-
-        movdqa  %xmm0,%xmm2
-.byte   102,15,56,0,197
-.byte   102,15,56,221,196
-
-        movdqa  %xmm2,%xmm3
-        pslldq  $4,%xmm2
-        pxor    %xmm2,%xmm3
-        pslldq  $4,%xmm2
-        pxor    %xmm2,%xmm3
-        pslldq  $4,%xmm2
-        pxor    %xmm3,%xmm2
-
-        pxor    %xmm2,%xmm0
-        movdqu  %xmm0,16(%rax)
-
-        movl    %esi,96(%rax)
-        xorl    %eax,%eax
-        jmp     .Lenc_key_ret
-
-.align  16
-.L12rounds:
-        movq    16(%rdi),%xmm2
-        movl    $11,%esi
-        cmpl    $268435456,%r10d
-        je      .L12rounds_alt
-
-        movups  %xmm0,(%rdx)
-.byte   102,15,58,223,202,1
-        call    .Lkey_expansion_192a_cold
-.byte   102,15,58,223,202,2
-        call    .Lkey_expansion_192b
-.byte   102,15,58,223,202,4
-        call    .Lkey_expansion_192a
-.byte   102,15,58,223,202,8
-        call    .Lkey_expansion_192b
-.byte   102,15,58,223,202,16
-        call    .Lkey_expansion_192a
-.byte   102,15,58,223,202,32
-        call    .Lkey_expansion_192b
-.byte   102,15,58,223,202,64
-        call    .Lkey_expansion_192a
-.byte   102,15,58,223,202,128
-        call    .Lkey_expansion_192b
-        movups  %xmm0,(%rax)
-        movl    %esi,48(%rax)
-        xorq    %rax,%rax
-        jmp     .Lenc_key_ret
-
-.align  16
-.L12rounds_alt:
-        movdqa  .Lkey_rotate192(%rip),%xmm5
-        movdqa  .Lkey_rcon1(%rip),%xmm4
-        movl    $8,%r10d
-        movdqu  %xmm0,(%rdx)
-        jmp     .Loop_key192
-
-.align  16
-.Loop_key192:
-        movq    %xmm2,0(%rax)
-        movdqa  %xmm2,%xmm1
-.byte   102,15,56,0,213
-.byte   102,15,56,221,212
-        pslld   $1,%xmm4
-        leaq    24(%rax),%rax
-
-        movdqa  %xmm0,%xmm3
-        pslldq  $4,%xmm0
-        pxor    %xmm0,%xmm3
-        pslldq  $4,%xmm0
-        pxor    %xmm0,%xmm3
-        pslldq  $4,%xmm0
-        pxor    %xmm3,%xmm0
-
-        pshufd  $0xff,%xmm0,%xmm3
-        pxor    %xmm1,%xmm3
-        pslldq  $4,%xmm1
-        pxor    %xmm1,%xmm3
-
-        pxor    %xmm2,%xmm0
-        pxor    %xmm3,%xmm2
-        movdqu  %xmm0,-16(%rax)
-
-        decl    %r10d
-        jnz     .Loop_key192
-
-        movl    %esi,32(%rax)
-        xorl    %eax,%eax
-        jmp     .Lenc_key_ret
-
-.align  16
-.L14rounds:
-        movups  16(%rdi),%xmm2
-        movl    $13,%esi
-        leaq    16(%rax),%rax
-        cmpl    $268435456,%r10d
-        je      .L14rounds_alt
-
-        movups  %xmm0,(%rdx)
-        movups  %xmm2,16(%rdx)
-.byte   102,15,58,223,202,1
-        call    .Lkey_expansion_256a_cold
-.byte   102,15,58,223,200,1
-        call    .Lkey_expansion_256b
-.byte   102,15,58,223,202,2
-        call    .Lkey_expansion_256a
-.byte   102,15,58,223,200,2
-        call    .Lkey_expansion_256b
-.byte   102,15,58,223,202,4
-        call    .Lkey_expansion_256a
-.byte   102,15,58,223,200,4
-        call    .Lkey_expansion_256b
-.byte   102,15,58,223,202,8
-        call    .Lkey_expansion_256a
-.byte   102,15,58,223,200,8
-        call    .Lkey_expansion_256b
-.byte   102,15,58,223,202,16
-        call    .Lkey_expansion_256a
-.byte   102,15,58,223,200,16
-        call    .Lkey_expansion_256b
-.byte   102,15,58,223,202,32
-        call    .Lkey_expansion_256a
-.byte   102,15,58,223,200,32
-        call    .Lkey_expansion_256b
-.byte   102,15,58,223,202,64
-        call    .Lkey_expansion_256a
-        movups  %xmm0,(%rax)
-        movl    %esi,16(%rax)
-        xorq    %rax,%rax
-        jmp     .Lenc_key_ret
-
-.align  16
-.L14rounds_alt:
-        movdqa  .Lkey_rotate(%rip),%xmm5
-        movdqa  .Lkey_rcon1(%rip),%xmm4
-        movl    $7,%r10d
-        movdqu  %xmm0,0(%rdx)
-        movdqa  %xmm2,%xmm1
-        movdqu  %xmm2,16(%rdx)
-        jmp     .Loop_key256
-
-.align  16
-.Loop_key256:
-.byte   102,15,56,0,213
-.byte   102,15,56,221,212
-
-        movdqa  %xmm0,%xmm3
-        pslldq  $4,%xmm0
-        pxor    %xmm0,%xmm3
-        pslldq  $4,%xmm0
-        pxor    %xmm0,%xmm3
-        pslldq  $4,%xmm0
-        pxor    %xmm3,%xmm0
-        pslld   $1,%xmm4
-
-        pxor    %xmm2,%xmm0
-        movdqu  %xmm0,(%rax)
-
-        decl    %r10d
-        jz      .Ldone_key256
-
-        pshufd  $0xff,%xmm0,%xmm2
-        pxor    %xmm3,%xmm3
-.byte   102,15,56,221,211
-
-        movdqa  %xmm1,%xmm3
-        pslldq  $4,%xmm1
-        pxor    %xmm1,%xmm3
-        pslldq  $4,%xmm1
-        pxor    %xmm1,%xmm3
-        pslldq  $4,%xmm1
-        pxor    %xmm3,%xmm1
-
-        pxor    %xmm1,%xmm2
-        movdqu  %xmm2,16(%rax)
-        leaq    32(%rax),%rax
-        movdqa  %xmm2,%xmm1
-
-        jmp     .Loop_key256
-
-.Ldone_key256:
-        movl    %esi,16(%rax)
-        xorl    %eax,%eax
-        jmp     .Lenc_key_ret
-
-.align  16
-.Lbad_keybits:
-        movq    $-2,%rax
-.Lenc_key_ret:
-        pxor    %xmm0,%xmm0
-        pxor    %xmm1,%xmm1
-        pxor    %xmm2,%xmm2
-        pxor    %xmm3,%xmm3
-        pxor    %xmm4,%xmm4
-        pxor    %xmm5,%xmm5
-        addq    $8,%rsp
-.cfi_adjust_cfa_offset  -8
-        .byte   0xf3,0xc3
-.LSEH_end_set_encrypt_key:
-
-.align  16
-.Lkey_expansion_128:
-        movups  %xmm0,(%rax)
-        leaq    16(%rax),%rax
-.Lkey_expansion_128_cold:
-        shufps  $16,%xmm0,%xmm4
-        xorps   %xmm4,%xmm0
-        shufps  $140,%xmm0,%xmm4
-        xorps   %xmm4,%xmm0
-        shufps  $255,%xmm1,%xmm1
-        xorps   %xmm1,%xmm0
-        .byte   0xf3,0xc3
-
-.align  16
-.Lkey_expansion_192a:
-        movups  %xmm0,(%rax)
-        leaq    16(%rax),%rax
-.Lkey_expansion_192a_cold:
-        movaps  %xmm2,%xmm5
-.Lkey_expansion_192b_warm:
-        shufps  $16,%xmm0,%xmm4
-        movdqa  %xmm2,%xmm3
-        xorps   %xmm4,%xmm0
-        shufps  $140,%xmm0,%xmm4
-        pslldq  $4,%xmm3
-        xorps   %xmm4,%xmm0
-        pshufd  $85,%xmm1,%xmm1
-        pxor    %xmm3,%xmm2
-        pxor    %xmm1,%xmm0
-        pshufd  $255,%xmm0,%xmm3
-        pxor    %xmm3,%xmm2
-        .byte   0xf3,0xc3
-
-.align  16
-.Lkey_expansion_192b:
-        movaps  %xmm0,%xmm3
-        shufps  $68,%xmm0,%xmm5
-        movups  %xmm5,(%rax)
-        shufps  $78,%xmm2,%xmm3
-        movups  %xmm3,16(%rax)
-        leaq    32(%rax),%rax
-        jmp     .Lkey_expansion_192b_warm
-
-.align  16
-.Lkey_expansion_256a:
-        movups  %xmm2,(%rax)
-        leaq    16(%rax),%rax
-.Lkey_expansion_256a_cold:
-        shufps  $16,%xmm0,%xmm4
-        xorps   %xmm4,%xmm0
-        shufps  $140,%xmm0,%xmm4
-        xorps   %xmm4,%xmm0
-        shufps  $255,%xmm1,%xmm1
-        xorps   %xmm1,%xmm0
-        .byte   0xf3,0xc3
-
-.align  16
-.Lkey_expansion_256b:
-        movups  %xmm0,(%rax)
-        leaq    16(%rax),%rax
-
-        shufps  $16,%xmm2,%xmm4
-        xorps   %xmm4,%xmm2
-        shufps  $140,%xmm2,%xmm4
-        xorps   %xmm4,%xmm2
-        shufps  $170,%xmm1,%xmm1
-        xorps   %xmm1,%xmm2
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   aesni_set_encrypt_key,.-aesni_set_encrypt_key
-.size   __aesni_set_encrypt_key,.-__aesni_set_encrypt_key
-.align  64
-.Lbswap_mask:
-.byte   15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
-.Lincrement32:
-.long   6,6,6,0
-.Lincrement64:
-.long   1,0,0,0
-.Lxts_magic:
-.long   0x87,0,1,0
-.Lincrement1:
-.byte   0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
-.Lkey_rotate:
-.long   0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d
-.Lkey_rotate192:
-.long   0x04070605,0x04070605,0x04070605,0x04070605
-.Lkey_rcon1:
-.long   1,1,1,1
-.Lkey_rcon1b:
-.long   0x1b,0x1b,0x1b,0x1b
-
-.byte   65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69,83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
-.align  64
diff --git a/CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/vpaes-x86_64.S b/CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/vpaes-x86_64.S
deleted file mode 100644
index 982818f83b23..000000000000
--- a/CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/vpaes-x86_64.S
+++ /dev/null
@@ -1,863 +0,0 @@
-# WARNING: do not edit!
-# Generated from openssl/crypto/aes/asm/vpaes-x86_64.pl
-#
-# Copyright 2011-2020 The OpenSSL Project Authors. All Rights Reserved.
-#
-# Licensed under the OpenSSL license (the "License").  You may not use
-# this file except in compliance with the License.  You can obtain a copy
-# in the file LICENSE in the source distribution or at
-# https://www.openssl.org/source/license.html
-
-.text
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-.type   _vpaes_encrypt_core, at function
-.align  16
-_vpaes_encrypt_core:
-.cfi_startproc
-        movq    %rdx,%r9
-        movq    $16,%r11
-        movl    240(%rdx),%eax
-        movdqa  %xmm9,%xmm1
-        movdqa  .Lk_ipt(%rip),%xmm2
-        pandn   %xmm0,%xmm1
-        movdqu  (%r9),%xmm5
-        psrld   $4,%xmm1
-        pand    %xmm9,%xmm0
-.byte   102,15,56,0,208
-        movdqa  .Lk_ipt+16(%rip),%xmm0
-.byte   102,15,56,0,193
-        pxor    %xmm5,%xmm2
-        addq    $16,%r9
-        pxor    %xmm2,%xmm0
-        leaq    .Lk_mc_backward(%rip),%r10
-        jmp     .Lenc_entry
-
-.align  16
-.Lenc_loop:
-
-        movdqa  %xmm13,%xmm4
-        movdqa  %xmm12,%xmm0
-.byte   102,15,56,0,226
-.byte   102,15,56,0,195
-        pxor    %xmm5,%xmm4
-        movdqa  %xmm15,%xmm5
-        pxor    %xmm4,%xmm0
-        movdqa  -64(%r11,%r10,1),%xmm1
-.byte   102,15,56,0,234
-        movdqa  (%r11,%r10,1),%xmm4
-        movdqa  %xmm14,%xmm2
-.byte   102,15,56,0,211
-        movdqa  %xmm0,%xmm3
-        pxor    %xmm5,%xmm2
-.byte   102,15,56,0,193
-        addq    $16,%r9
-        pxor    %xmm2,%xmm0
-.byte   102,15,56,0,220
-        addq    $16,%r11
-        pxor    %xmm0,%xmm3
-.byte   102,15,56,0,193
-        andq    $0x30,%r11
-        subq    $1,%rax
-        pxor    %xmm3,%xmm0
-
-.Lenc_entry:
-
-        movdqa  %xmm9,%xmm1
-        movdqa  %xmm11,%xmm5
-        pandn   %xmm0,%xmm1
-        psrld   $4,%xmm1
-        pand    %xmm9,%xmm0
-.byte   102,15,56,0,232
-        movdqa  %xmm10,%xmm3
-        pxor    %xmm1,%xmm0
-.byte   102,15,56,0,217
-        movdqa  %xmm10,%xmm4
-        pxor    %xmm5,%xmm3
-.byte   102,15,56,0,224
-        movdqa  %xmm10,%xmm2
-        pxor    %xmm5,%xmm4
-.byte   102,15,56,0,211
-        movdqa  %xmm10,%xmm3
-        pxor    %xmm0,%xmm2
-.byte   102,15,56,0,220
-        movdqu  (%r9),%xmm5
-        pxor    %xmm1,%xmm3
-        jnz     .Lenc_loop
-
-
-        movdqa  -96(%r10),%xmm4
-        movdqa  -80(%r10),%xmm0
-.byte   102,15,56,0,226
-        pxor    %xmm5,%xmm4
-.byte   102,15,56,0,195
-        movdqa  64(%r11,%r10,1),%xmm1
-        pxor    %xmm4,%xmm0
-.byte   102,15,56,0,193
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   _vpaes_encrypt_core,.-_vpaes_encrypt_core
-
-
-
-
-
-
-.type   _vpaes_decrypt_core, at function
-.align  16
-_vpaes_decrypt_core:
-.cfi_startproc
-        movq    %rdx,%r9
-        movl    240(%rdx),%eax
-        movdqa  %xmm9,%xmm1
-        movdqa  .Lk_dipt(%rip),%xmm2
-        pandn   %xmm0,%xmm1
-        movq    %rax,%r11
-        psrld   $4,%xmm1
-        movdqu  (%r9),%xmm5
-        shlq    $4,%r11
-        pand    %xmm9,%xmm0
-.byte   102,15,56,0,208
-        movdqa  .Lk_dipt+16(%rip),%xmm0
-        xorq    $0x30,%r11
-        leaq    .Lk_dsbd(%rip),%r10
-.byte   102,15,56,0,193
-        andq    $0x30,%r11
-        pxor    %xmm5,%xmm2
-        movdqa  .Lk_mc_forward+48(%rip),%xmm5
-        pxor    %xmm2,%xmm0
-        addq    $16,%r9
-        addq    %r10,%r11
-        jmp     .Ldec_entry
-
-.align  16
-.Ldec_loop:
-
-
-
-        movdqa  -32(%r10),%xmm4
-        movdqa  -16(%r10),%xmm1
-.byte   102,15,56,0,226
-.byte   102,15,56,0,203
-        pxor    %xmm4,%xmm0
-        movdqa  0(%r10),%xmm4
-        pxor    %xmm1,%xmm0
-        movdqa  16(%r10),%xmm1
-
-.byte   102,15,56,0,226
-.byte   102,15,56,0,197
-.byte   102,15,56,0,203
-        pxor    %xmm4,%xmm0
-        movdqa  32(%r10),%xmm4
-        pxor    %xmm1,%xmm0
-        movdqa  48(%r10),%xmm1
-
-.byte   102,15,56,0,226
-.byte   102,15,56,0,197
-.byte   102,15,56,0,203
-        pxor    %xmm4,%xmm0
-        movdqa  64(%r10),%xmm4
-        pxor    %xmm1,%xmm0
-        movdqa  80(%r10),%xmm1
-
-.byte   102,15,56,0,226
-.byte   102,15,56,0,197
-.byte   102,15,56,0,203
-        pxor    %xmm4,%xmm0
-        addq    $16,%r9
-.byte   102,15,58,15,237,12
-        pxor    %xmm1,%xmm0
-        subq    $1,%rax
-
-.Ldec_entry:
-
-        movdqa  %xmm9,%xmm1
-        pandn   %xmm0,%xmm1
-        movdqa  %xmm11,%xmm2
-        psrld   $4,%xmm1
-        pand    %xmm9,%xmm0
-.byte   102,15,56,0,208
-        movdqa  %xmm10,%xmm3
-        pxor    %xmm1,%xmm0
-.byte   102,15,56,0,217
-        movdqa  %xmm10,%xmm4
-        pxor    %xmm2,%xmm3
-.byte   102,15,56,0,224
-        pxor    %xmm2,%xmm4
-        movdqa  %xmm10,%xmm2
-.byte   102,15,56,0,211
-        movdqa  %xmm10,%xmm3
-        pxor    %xmm0,%xmm2
-.byte   102,15,56,0,220
-        movdqu  (%r9),%xmm0
-        pxor    %xmm1,%xmm3
-        jnz     .Ldec_loop
-
-
-        movdqa  96(%r10),%xmm4
-.byte   102,15,56,0,226
-        pxor    %xmm0,%xmm4
-        movdqa  112(%r10),%xmm0
-        movdqa  -352(%r11),%xmm2
-.byte   102,15,56,0,195
-        pxor    %xmm4,%xmm0
-.byte   102,15,56,0,194
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   _vpaes_decrypt_core,.-_vpaes_decrypt_core
-
-
-
-
-
-
-.type   _vpaes_schedule_core, at function
-.align  16
-_vpaes_schedule_core:
-.cfi_startproc
-
-
-
-
-
-        call    _vpaes_preheat
-        movdqa  .Lk_rcon(%rip),%xmm8
-        movdqu  (%rdi),%xmm0
-
-
-        movdqa  %xmm0,%xmm3
-        leaq    .Lk_ipt(%rip),%r11
-        call    _vpaes_schedule_transform
-        movdqa  %xmm0,%xmm7
-
-        leaq    .Lk_sr(%rip),%r10
-        testq   %rcx,%rcx
-        jnz     .Lschedule_am_decrypting
-
-
-        movdqu  %xmm0,(%rdx)
-        jmp     .Lschedule_go
-
-.Lschedule_am_decrypting:
-
-        movdqa  (%r8,%r10,1),%xmm1
-.byte   102,15,56,0,217
-        movdqu  %xmm3,(%rdx)
-        xorq    $0x30,%r8
-
-.Lschedule_go:
-        cmpl    $192,%esi
-        ja      .Lschedule_256
-        je      .Lschedule_192
-
-
-
-
-
-
-
-
-
-
-.Lschedule_128:
-        movl    $10,%esi
-
-.Loop_schedule_128:
-        call    _vpaes_schedule_round
-        decq    %rsi
-        jz      .Lschedule_mangle_last
-        call    _vpaes_schedule_mangle
-        jmp     .Loop_schedule_128
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-.align  16
-.Lschedule_192:
-        movdqu  8(%rdi),%xmm0
-        call    _vpaes_schedule_transform
-        movdqa  %xmm0,%xmm6
-        pxor    %xmm4,%xmm4
-        movhlps %xmm4,%xmm6
-        movl    $4,%esi
-
-.Loop_schedule_192:
-        call    _vpaes_schedule_round
-.byte   102,15,58,15,198,8
-        call    _vpaes_schedule_mangle
-        call    _vpaes_schedule_192_smear
-        call    _vpaes_schedule_mangle
-        call    _vpaes_schedule_round
-        decq    %rsi
-        jz      .Lschedule_mangle_last
-        call    _vpaes_schedule_mangle
-        call    _vpaes_schedule_192_smear
-        jmp     .Loop_schedule_192
-
-
-
-
-
-
-
-
-
-
-
-.align  16
-.Lschedule_256:
-        movdqu  16(%rdi),%xmm0
-        call    _vpaes_schedule_transform
-        movl    $7,%esi
-
-.Loop_schedule_256:
-        call    _vpaes_schedule_mangle
-        movdqa  %xmm0,%xmm6
-
-
-        call    _vpaes_schedule_round
-        decq    %rsi
-        jz      .Lschedule_mangle_last
-        call    _vpaes_schedule_mangle
-
-
-        pshufd  $0xFF,%xmm0,%xmm0
-        movdqa  %xmm7,%xmm5
-        movdqa  %xmm6,%xmm7
-        call    _vpaes_schedule_low_round
-        movdqa  %xmm5,%xmm7
-
-        jmp     .Loop_schedule_256
-
-
-
-
-
-
-
-
-
-
-
-
-.align  16
-.Lschedule_mangle_last:
-
-        leaq    .Lk_deskew(%rip),%r11
-        testq   %rcx,%rcx
-        jnz     .Lschedule_mangle_last_dec
-
-
-        movdqa  (%r8,%r10,1),%xmm1
-.byte   102,15,56,0,193
-        leaq    .Lk_opt(%rip),%r11
-        addq    $32,%rdx
-
-.Lschedule_mangle_last_dec:
-        addq    $-16,%rdx
-        pxor    .Lk_s63(%rip),%xmm0
-        call    _vpaes_schedule_transform
-        movdqu  %xmm0,(%rdx)
-
-
-        pxor    %xmm0,%xmm0
-        pxor    %xmm1,%xmm1
-        pxor    %xmm2,%xmm2
-        pxor    %xmm3,%xmm3
-        pxor    %xmm4,%xmm4
-        pxor    %xmm5,%xmm5
-        pxor    %xmm6,%xmm6
-        pxor    %xmm7,%xmm7
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   _vpaes_schedule_core,.-_vpaes_schedule_core
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-.type   _vpaes_schedule_192_smear, at function
-.align  16
-_vpaes_schedule_192_smear:
-.cfi_startproc
-        pshufd  $0x80,%xmm6,%xmm1
-        pshufd  $0xFE,%xmm7,%xmm0
-        pxor    %xmm1,%xmm6
-        pxor    %xmm1,%xmm1
-        pxor    %xmm0,%xmm6
-        movdqa  %xmm6,%xmm0
-        movhlps %xmm1,%xmm6
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   _vpaes_schedule_192_smear,.-_vpaes_schedule_192_smear
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-.type   _vpaes_schedule_round, at function
-.align  16
-_vpaes_schedule_round:
-.cfi_startproc
-
-        pxor    %xmm1,%xmm1
-.byte   102,65,15,58,15,200,15
-.byte   102,69,15,58,15,192,15
-        pxor    %xmm1,%xmm7
-
-
-        pshufd  $0xFF,%xmm0,%xmm0
-.byte   102,15,58,15,192,1
-
-
-
-
-_vpaes_schedule_low_round:
-
-        movdqa  %xmm7,%xmm1
-        pslldq  $4,%xmm7
-        pxor    %xmm1,%xmm7
-        movdqa  %xmm7,%xmm1
-        pslldq  $8,%xmm7
-        pxor    %xmm1,%xmm7
-        pxor    .Lk_s63(%rip),%xmm7
-
-
-        movdqa  %xmm9,%xmm1
-        pandn   %xmm0,%xmm1
-        psrld   $4,%xmm1
-        pand    %xmm9,%xmm0
-        movdqa  %xmm11,%xmm2
-.byte   102,15,56,0,208
-        pxor    %xmm1,%xmm0
-        movdqa  %xmm10,%xmm3
-.byte   102,15,56,0,217
-        pxor    %xmm2,%xmm3
-        movdqa  %xmm10,%xmm4
-.byte   102,15,56,0,224
-        pxor    %xmm2,%xmm4
-        movdqa  %xmm10,%xmm2
-.byte   102,15,56,0,211
-        pxor    %xmm0,%xmm2
-        movdqa  %xmm10,%xmm3
-.byte   102,15,56,0,220
-        pxor    %xmm1,%xmm3
-        movdqa  %xmm13,%xmm4
-.byte   102,15,56,0,226
-        movdqa  %xmm12,%xmm0
-.byte   102,15,56,0,195
-        pxor    %xmm4,%xmm0
-
-
-        pxor    %xmm7,%xmm0
-        movdqa  %xmm0,%xmm7
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   _vpaes_schedule_round,.-_vpaes_schedule_round
-
-
-
-
-
-
-
-
-
-
-.type   _vpaes_schedule_transform, at function
-.align  16
-_vpaes_schedule_transform:
-.cfi_startproc
-        movdqa  %xmm9,%xmm1
-        pandn   %xmm0,%xmm1
-        psrld   $4,%xmm1
-        pand    %xmm9,%xmm0
-        movdqa  (%r11),%xmm2
-.byte   102,15,56,0,208
-        movdqa  16(%r11),%xmm0
-.byte   102,15,56,0,193
-        pxor    %xmm2,%xmm0
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   _vpaes_schedule_transform,.-_vpaes_schedule_transform
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-.type   _vpaes_schedule_mangle, at function
-.align  16
-_vpaes_schedule_mangle:
-.cfi_startproc
-        movdqa  %xmm0,%xmm4
-        movdqa  .Lk_mc_forward(%rip),%xmm5
-        testq   %rcx,%rcx
-        jnz     .Lschedule_mangle_dec
-
-
-        addq    $16,%rdx
-        pxor    .Lk_s63(%rip),%xmm4
-.byte   102,15,56,0,229
-        movdqa  %xmm4,%xmm3
-.byte   102,15,56,0,229
-        pxor    %xmm4,%xmm3
-.byte   102,15,56,0,229
-        pxor    %xmm4,%xmm3
-
-        jmp     .Lschedule_mangle_both
-.align  16
-.Lschedule_mangle_dec:
-
-        leaq    .Lk_dksd(%rip),%r11
-        movdqa  %xmm9,%xmm1
-        pandn   %xmm4,%xmm1
-        psrld   $4,%xmm1
-        pand    %xmm9,%xmm4
-
-        movdqa  0(%r11),%xmm2
-.byte   102,15,56,0,212
-        movdqa  16(%r11),%xmm3
-.byte   102,15,56,0,217
-        pxor    %xmm2,%xmm3
-.byte   102,15,56,0,221
-
-        movdqa  32(%r11),%xmm2
-.byte   102,15,56,0,212
-        pxor    %xmm3,%xmm2
-        movdqa  48(%r11),%xmm3
-.byte   102,15,56,0,217
-        pxor    %xmm2,%xmm3
-.byte   102,15,56,0,221
-
-        movdqa  64(%r11),%xmm2
-.byte   102,15,56,0,212
-        pxor    %xmm3,%xmm2
-        movdqa  80(%r11),%xmm3
-.byte   102,15,56,0,217
-        pxor    %xmm2,%xmm3
-.byte   102,15,56,0,221
-
-        movdqa  96(%r11),%xmm2
-.byte   102,15,56,0,212
-        pxor    %xmm3,%xmm2
-        movdqa  112(%r11),%xmm3
-.byte   102,15,56,0,217
-        pxor    %xmm2,%xmm3
-
-        addq    $-16,%rdx
-
-.Lschedule_mangle_both:
-        movdqa  (%r8,%r10,1),%xmm1
-.byte   102,15,56,0,217
-        addq    $-16,%r8
-        andq    $0x30,%r8
-        movdqu  %xmm3,(%rdx)
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   _vpaes_schedule_mangle,.-_vpaes_schedule_mangle
-
-
-
-
-.globl  vpaes_set_encrypt_key
-.type   vpaes_set_encrypt_key, at function
-.align  16
-vpaes_set_encrypt_key:
-.cfi_startproc
-        movl    %esi,%eax
-        shrl    $5,%eax
-        addl    $5,%eax
-        movl    %eax,240(%rdx)
-
-        movl    $0,%ecx
-        movl    $0x30,%r8d
-        call    _vpaes_schedule_core
-        xorl    %eax,%eax
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   vpaes_set_encrypt_key,.-vpaes_set_encrypt_key
-
-.globl  vpaes_set_decrypt_key
-.type   vpaes_set_decrypt_key, at function
-.align  16
-vpaes_set_decrypt_key:
-.cfi_startproc
-        movl    %esi,%eax
-        shrl    $5,%eax
-        addl    $5,%eax
-        movl    %eax,240(%rdx)
-        shll    $4,%eax
-        leaq    16(%rdx,%rax,1),%rdx
-
-        movl    $1,%ecx
-        movl    %esi,%r8d
-        shrl    $1,%r8d
-        andl    $32,%r8d
-        xorl    $32,%r8d
-        call    _vpaes_schedule_core
-        xorl    %eax,%eax
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   vpaes_set_decrypt_key,.-vpaes_set_decrypt_key
-
-.globl  vpaes_encrypt
-.type   vpaes_encrypt, at function
-.align  16
-vpaes_encrypt:
-.cfi_startproc
-        movdqu  (%rdi),%xmm0
-        call    _vpaes_preheat
-        call    _vpaes_encrypt_core
-        movdqu  %xmm0,(%rsi)
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   vpaes_encrypt,.-vpaes_encrypt
-
-.globl  vpaes_decrypt
-.type   vpaes_decrypt, at function
-.align  16
-vpaes_decrypt:
-.cfi_startproc
-        movdqu  (%rdi),%xmm0
-        call    _vpaes_preheat
-        call    _vpaes_decrypt_core
-        movdqu  %xmm0,(%rsi)
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   vpaes_decrypt,.-vpaes_decrypt
-.globl  vpaes_cbc_encrypt
-.type   vpaes_cbc_encrypt, at function
-.align  16
-vpaes_cbc_encrypt:
-.cfi_startproc
-        xchgq   %rcx,%rdx
-        subq    $16,%rcx
-        jc      .Lcbc_abort
-        movdqu  (%r8),%xmm6
-        subq    %rdi,%rsi
-        call    _vpaes_preheat
-        cmpl    $0,%r9d
-        je      .Lcbc_dec_loop
-        jmp     .Lcbc_enc_loop
-.align  16
-.Lcbc_enc_loop:
-        movdqu  (%rdi),%xmm0
-        pxor    %xmm6,%xmm0
-        call    _vpaes_encrypt_core
-        movdqa  %xmm0,%xmm6
-        movdqu  %xmm0,(%rsi,%rdi,1)
-        leaq    16(%rdi),%rdi
-        subq    $16,%rcx
-        jnc     .Lcbc_enc_loop
-        jmp     .Lcbc_done
-.align  16
-.Lcbc_dec_loop:
-        movdqu  (%rdi),%xmm0
-        movdqa  %xmm0,%xmm7
-        call    _vpaes_decrypt_core
-        pxor    %xmm6,%xmm0
-        movdqa  %xmm7,%xmm6
-        movdqu  %xmm0,(%rsi,%rdi,1)
-        leaq    16(%rdi),%rdi
-        subq    $16,%rcx
-        jnc     .Lcbc_dec_loop
-.Lcbc_done:
-        movdqu  %xmm6,(%r8)
-.Lcbc_abort:
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   vpaes_cbc_encrypt,.-vpaes_cbc_encrypt
-
-
-
-
-
-
-.type   _vpaes_preheat, at function
-.align  16
-_vpaes_preheat:
-.cfi_startproc
-        leaq    .Lk_s0F(%rip),%r10
-        movdqa  -32(%r10),%xmm10
-        movdqa  -16(%r10),%xmm11
-        movdqa  0(%r10),%xmm9
-        movdqa  48(%r10),%xmm13
-        movdqa  64(%r10),%xmm12
-        movdqa  80(%r10),%xmm15
-        movdqa  96(%r10),%xmm14
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   _vpaes_preheat,.-_vpaes_preheat
-
-
-
-
-
-.type   _vpaes_consts, at object
-.align  64
-_vpaes_consts:
-.Lk_inv:
-.quad   0x0E05060F0D080180, 0x040703090A0B0C02
-.quad   0x01040A060F0B0780, 0x030D0E0C02050809
-
-.Lk_s0F:
-.quad   0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F
-
-.Lk_ipt:
-.quad   0xC2B2E8985A2A7000, 0xCABAE09052227808
-.quad   0x4C01307D317C4D00, 0xCD80B1FCB0FDCC81
-
-.Lk_sb1:
-.quad   0xB19BE18FCB503E00, 0xA5DF7A6E142AF544
-.quad   0x3618D415FAE22300, 0x3BF7CCC10D2ED9EF
-.Lk_sb2:
-.quad   0xE27A93C60B712400, 0x5EB7E955BC982FCD
-.quad   0x69EB88400AE12900, 0xC2A163C8AB82234A
-.Lk_sbo:
-.quad   0xD0D26D176FBDC700, 0x15AABF7AC502A878
-.quad   0xCFE474A55FBB6A00, 0x8E1E90D1412B35FA
-
-.Lk_mc_forward:
-.quad   0x0407060500030201, 0x0C0F0E0D080B0A09
-.quad   0x080B0A0904070605, 0x000302010C0F0E0D
-.quad   0x0C0F0E0D080B0A09, 0x0407060500030201
-.quad   0x000302010C0F0E0D, 0x080B0A0904070605
-
-.Lk_mc_backward:
-.quad   0x0605040702010003, 0x0E0D0C0F0A09080B
-.quad   0x020100030E0D0C0F, 0x0A09080B06050407
-.quad   0x0E0D0C0F0A09080B, 0x0605040702010003
-.quad   0x0A09080B06050407, 0x020100030E0D0C0F
-
-.Lk_sr:
-.quad   0x0706050403020100, 0x0F0E0D0C0B0A0908
-.quad   0x030E09040F0A0500, 0x0B06010C07020D08
-.quad   0x0F060D040B020900, 0x070E050C030A0108
-.quad   0x0B0E0104070A0D00, 0x0306090C0F020508
-
-.Lk_rcon:
-.quad   0x1F8391B9AF9DEEB6, 0x702A98084D7C7D81
-
-.Lk_s63:
-.quad   0x5B5B5B5B5B5B5B5B, 0x5B5B5B5B5B5B5B5B
-
-.Lk_opt:
-.quad   0xFF9F4929D6B66000, 0xF7974121DEBE6808
-.quad   0x01EDBD5150BCEC00, 0xE10D5DB1B05C0CE0
-
-.Lk_deskew:
-.quad   0x07E4A34047A4E300, 0x1DFEB95A5DBEF91A
-.quad   0x5F36B5DC83EA6900, 0x2841C2ABF49D1E77
-
-
-
-
-
-.Lk_dksd:
-.quad   0xFEB91A5DA3E44700, 0x0740E3A45A1DBEF9
-.quad   0x41C277F4B5368300, 0x5FDC69EAAB289D1E
-.Lk_dksb:
-.quad   0x9A4FCA1F8550D500, 0x03D653861CC94C99
-.quad   0x115BEDA7B6FC4A00, 0xD993256F7E3482C8
-.Lk_dkse:
-.quad   0xD5031CCA1FC9D600, 0x53859A4C994F5086
-.quad   0xA23196054FDC7BE8, 0xCD5EF96A20B31487
-.Lk_dks9:
-.quad   0xB6116FC87ED9A700, 0x4AED933482255BFC
-.quad   0x4576516227143300, 0x8BB89FACE9DAFDCE
-
-
-
-
-
-.Lk_dipt:
-.quad   0x0F505B040B545F00, 0x154A411E114E451A
-.quad   0x86E383E660056500, 0x12771772F491F194
-
-.Lk_dsb9:
-.quad   0x851C03539A86D600, 0xCAD51F504F994CC9
-.quad   0xC03B1789ECD74900, 0x725E2C9EB2FBA565
-.Lk_dsbd:
-.quad   0x7D57CCDFE6B1A200, 0xF56E9B13882A4439
-.quad   0x3CE2FAF724C6CB00, 0x2931180D15DEEFD3
-.Lk_dsbb:
-.quad   0xD022649296B44200, 0x602646F6B0F2D404
-.quad   0xC19498A6CD596700, 0xF3FF0C3E3255AA6B
-.Lk_dsbe:
-.quad   0x46F2929626D4D000, 0x2242600464B4F6B0
-.quad   0x0C55A6CDFFAAC100, 0x9467F36B98593E32
-.Lk_dsbo:
-.quad   0x1387EA537EF94000, 0xC7AA6DB9D4943E2D
-.quad   0x12D7560F93441D00, 0xCA4B8159D8C58E9C
-.byte   86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105,111,110,32,65,69,83,32,102,111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117,114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105,118,101,114,115,105,116,121,41,0
-.align  64
-.size   _vpaes_consts,.-_vpaes_consts
diff --git a/CryptoPkg/Library/OpensslLib/X64Gcc/crypto/modes/aesni-gcm-x86_64.S b/CryptoPkg/Library/OpensslLib/X64Gcc/crypto/modes/aesni-gcm-x86_64.S
deleted file mode 100644
index 1201f3427a06..000000000000
--- a/CryptoPkg/Library/OpensslLib/X64Gcc/crypto/modes/aesni-gcm-x86_64.S
+++ /dev/null
@@ -1,29 +0,0 @@
-# WARNING: do not edit!
-# Generated from openssl/crypto/modes/asm/aesni-gcm-x86_64.pl
-#
-# Copyright 2013-2020 The OpenSSL Project Authors. All Rights Reserved.
-#
-# Licensed under the OpenSSL license (the "License").  You may not use
-# this file except in compliance with the License.  You can obtain a copy
-# in the file LICENSE in the source distribution or at
-# https://www.openssl.org/source/license.html
-
-.text
-
-.globl  aesni_gcm_encrypt
-.type   aesni_gcm_encrypt, at function
-aesni_gcm_encrypt:
-.cfi_startproc
-        xorl    %eax,%eax
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   aesni_gcm_encrypt,.-aesni_gcm_encrypt
-
-.globl  aesni_gcm_decrypt
-.type   aesni_gcm_decrypt, at function
-aesni_gcm_decrypt:
-.cfi_startproc
-        xorl    %eax,%eax
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   aesni_gcm_decrypt,.-aesni_gcm_decrypt
diff --git a/CryptoPkg/Library/OpensslLib/X64Gcc/crypto/modes/ghash-x86_64.S b/CryptoPkg/Library/OpensslLib/X64Gcc/crypto/modes/ghash-x86_64.S
deleted file mode 100644
index 3fcaa4b2ef5e..000000000000
--- a/CryptoPkg/Library/OpensslLib/X64Gcc/crypto/modes/ghash-x86_64.S
+++ /dev/null
@@ -1,1386 +0,0 @@
-# WARNING: do not edit!
-# Generated from openssl/crypto/modes/asm/ghash-x86_64.pl
-#
-# Copyright 2010-2020 The OpenSSL Project Authors. All Rights Reserved.
-#
-# Licensed under the OpenSSL license (the "License").  You may not use
-# this file except in compliance with the License.  You can obtain a copy
-# in the file LICENSE in the source distribution or at
-# https://www.openssl.org/source/license.html
-
-.text
-
-
-.globl  gcm_gmult_4bit
-.type   gcm_gmult_4bit, at function
-.align  16
-gcm_gmult_4bit:
-.cfi_startproc
-        pushq   %rbx
-.cfi_adjust_cfa_offset  8
-.cfi_offset     %rbx,-16
-        pushq   %rbp
-.cfi_adjust_cfa_offset  8
-.cfi_offset     %rbp,-24
-        pushq   %r12
-.cfi_adjust_cfa_offset  8
-.cfi_offset     %r12,-32
-        pushq   %r13
-.cfi_adjust_cfa_offset  8
-.cfi_offset     %r13,-40
-        pushq   %r14
-.cfi_adjust_cfa_offset  8
-.cfi_offset     %r14,-48
-        pushq   %r15
-.cfi_adjust_cfa_offset  8
-.cfi_offset     %r15,-56
-        subq    $280,%rsp
-.cfi_adjust_cfa_offset  280
-.Lgmult_prologue:
-
-        movzbq  15(%rdi),%r8
-        leaq    .Lrem_4bit(%rip),%r11
-        xorq    %rax,%rax
-        xorq    %rbx,%rbx
-        movb    %r8b,%al
-        movb    %r8b,%bl
-        shlb    $4,%al
-        movq    $14,%rcx
-        movq    8(%rsi,%rax,1),%r8
-        movq    (%rsi,%rax,1),%r9
-        andb    $0xf0,%bl
-        movq    %r8,%rdx
-        jmp     .Loop1
-
-.align  16
-.Loop1:
-        shrq    $4,%r8
-        andq    $0xf,%rdx
-        movq    %r9,%r10
-        movb    (%rdi,%rcx,1),%al
-        shrq    $4,%r9
-        xorq    8(%rsi,%rbx,1),%r8
-        shlq    $60,%r10
-        xorq    (%rsi,%rbx,1),%r9
-        movb    %al,%bl
-        xorq    (%r11,%rdx,8),%r9
-        movq    %r8,%rdx
-        shlb    $4,%al
-        xorq    %r10,%r8
-        decq    %rcx
-        js      .Lbreak1
-
-        shrq    $4,%r8
-        andq    $0xf,%rdx
-        movq    %r9,%r10
-        shrq    $4,%r9
-        xorq    8(%rsi,%rax,1),%r8
-        shlq    $60,%r10
-        xorq    (%rsi,%rax,1),%r9
-        andb    $0xf0,%bl
-        xorq    (%r11,%rdx,8),%r9
-        movq    %r8,%rdx
-        xorq    %r10,%r8
-        jmp     .Loop1
-
-.align  16
-.Lbreak1:
-        shrq    $4,%r8
-        andq    $0xf,%rdx
-        movq    %r9,%r10
-        shrq    $4,%r9
-        xorq    8(%rsi,%rax,1),%r8
-        shlq    $60,%r10
-        xorq    (%rsi,%rax,1),%r9
-        andb    $0xf0,%bl
-        xorq    (%r11,%rdx,8),%r9
-        movq    %r8,%rdx
-        xorq    %r10,%r8
-
-        shrq    $4,%r8
-        andq    $0xf,%rdx
-        movq    %r9,%r10
-        shrq    $4,%r9
-        xorq    8(%rsi,%rbx,1),%r8
-        shlq    $60,%r10
-        xorq    (%rsi,%rbx,1),%r9
-        xorq    %r10,%r8
-        xorq    (%r11,%rdx,8),%r9
-
-        bswapq  %r8
-        bswapq  %r9
-        movq    %r8,8(%rdi)
-        movq    %r9,(%rdi)
-
-        leaq    280+48(%rsp),%rsi
-.cfi_def_cfa    %rsi,8
-        movq    -8(%rsi),%rbx
-.cfi_restore    %rbx
-        leaq    (%rsi),%rsp
-.cfi_def_cfa_register   %rsp
-.Lgmult_epilogue:
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   gcm_gmult_4bit,.-gcm_gmult_4bit
-.globl  gcm_ghash_4bit
-.type   gcm_ghash_4bit, at function
-.align  16
-gcm_ghash_4bit:
-.cfi_startproc
-        pushq   %rbx
-.cfi_adjust_cfa_offset  8
-.cfi_offset     %rbx,-16
-        pushq   %rbp
-.cfi_adjust_cfa_offset  8
-.cfi_offset     %rbp,-24
-        pushq   %r12
-.cfi_adjust_cfa_offset  8
-.cfi_offset     %r12,-32
-        pushq   %r13
-.cfi_adjust_cfa_offset  8
-.cfi_offset     %r13,-40
-        pushq   %r14
-.cfi_adjust_cfa_offset  8
-.cfi_offset     %r14,-48
-        pushq   %r15
-.cfi_adjust_cfa_offset  8
-.cfi_offset     %r15,-56
-        subq    $280,%rsp
-.cfi_adjust_cfa_offset  280
-.Lghash_prologue:
-        movq    %rdx,%r14
-        movq    %rcx,%r15
-        subq    $-128,%rsi
-        leaq    16+128(%rsp),%rbp
-        xorl    %edx,%edx
-        movq    0+0-128(%rsi),%r8
-        movq    0+8-128(%rsi),%rax
-        movb    %al,%dl
-        shrq    $4,%rax
-        movq    %r8,%r10
-        shrq    $4,%r8
-        movq    16+0-128(%rsi),%r9
-        shlb    $4,%dl
-        movq    16+8-128(%rsi),%rbx
-        shlq    $60,%r10
-        movb    %dl,0(%rsp)
-        orq     %r10,%rax
-        movb    %bl,%dl
-        shrq    $4,%rbx
-        movq    %r9,%r10
-        shrq    $4,%r9
-        movq    %r8,0(%rbp)
-        movq    32+0-128(%rsi),%r8
-        shlb    $4,%dl
-        movq    %rax,0-128(%rbp)
-        movq    32+8-128(%rsi),%rax
-        shlq    $60,%r10
-        movb    %dl,1(%rsp)
-        orq     %r10,%rbx
-        movb    %al,%dl
-        shrq    $4,%rax
-        movq    %r8,%r10
-        shrq    $4,%r8
-        movq    %r9,8(%rbp)
-        movq    48+0-128(%rsi),%r9
-        shlb    $4,%dl
-        movq    %rbx,8-128(%rbp)
-        movq    48+8-128(%rsi),%rbx
-        shlq    $60,%r10
-        movb    %dl,2(%rsp)
-        orq     %r10,%rax
-        movb    %bl,%dl
-        shrq    $4,%rbx
-        movq    %r9,%r10
-        shrq    $4,%r9
-        movq    %r8,16(%rbp)
-        movq    64+0-128(%rsi),%r8
-        shlb    $4,%dl
-        movq    %rax,16-128(%rbp)
-        movq    64+8-128(%rsi),%rax
-        shlq    $60,%r10
-        movb    %dl,3(%rsp)
-        orq     %r10,%rbx
-        movb    %al,%dl
-        shrq    $4,%rax
-        movq    %r8,%r10
-        shrq    $4,%r8
-        movq    %r9,24(%rbp)
-        movq    80+0-128(%rsi),%r9
-        shlb    $4,%dl
-        movq    %rbx,24-128(%rbp)
-        movq    80+8-128(%rsi),%rbx
-        shlq    $60,%r10
-        movb    %dl,4(%rsp)
-        orq     %r10,%rax
-        movb    %bl,%dl
-        shrq    $4,%rbx
-        movq    %r9,%r10
-        shrq    $4,%r9
-        movq    %r8,32(%rbp)
-        movq    96+0-128(%rsi),%r8
-        shlb    $4,%dl
-        movq    %rax,32-128(%rbp)
-        movq    96+8-128(%rsi),%rax
-        shlq    $60,%r10
-        movb    %dl,5(%rsp)
-        orq     %r10,%rbx
-        movb    %al,%dl
-        shrq    $4,%rax
-        movq    %r8,%r10
-        shrq    $4,%r8
-        movq    %r9,40(%rbp)
-        movq    112+0-128(%rsi),%r9
-        shlb    $4,%dl
-        movq    %rbx,40-128(%rbp)
-        movq    112+8-128(%rsi),%rbx
-        shlq    $60,%r10
-        movb    %dl,6(%rsp)
-        orq     %r10,%rax
-        movb    %bl,%dl
-        shrq    $4,%rbx
-        movq    %r9,%r10
-        shrq    $4,%r9
-        movq    %r8,48(%rbp)
-        movq    128+0-128(%rsi),%r8
-        shlb    $4,%dl
-        movq    %rax,48-128(%rbp)
-        movq    128+8-128(%rsi),%rax
-        shlq    $60,%r10
-        movb    %dl,7(%rsp)
-        orq     %r10,%rbx
-        movb    %al,%dl
-        shrq    $4,%rax
-        movq    %r8,%r10
-        shrq    $4,%r8
-        movq    %r9,56(%rbp)
-        movq    144+0-128(%rsi),%r9
-        shlb    $4,%dl
-        movq    %rbx,56-128(%rbp)
-        movq    144+8-128(%rsi),%rbx
-        shlq    $60,%r10
-        movb    %dl,8(%rsp)
-        orq     %r10,%rax
-        movb    %bl,%dl
-        shrq    $4,%rbx
-        movq    %r9,%r10
-        shrq    $4,%r9
-        movq    %r8,64(%rbp)
-        movq    160+0-128(%rsi),%r8
-        shlb    $4,%dl
-        movq    %rax,64-128(%rbp)
-        movq    160+8-128(%rsi),%rax
-        shlq    $60,%r10
-        movb    %dl,9(%rsp)
-        orq     %r10,%rbx
-        movb    %al,%dl
-        shrq    $4,%rax
-        movq    %r8,%r10
-        shrq    $4,%r8
-        movq    %r9,72(%rbp)
-        movq    176+0-128(%rsi),%r9
-        shlb    $4,%dl
-        movq    %rbx,72-128(%rbp)
-        movq    176+8-128(%rsi),%rbx
-        shlq    $60,%r10
-        movb    %dl,10(%rsp)
-        orq     %r10,%rax
-        movb    %bl,%dl
-        shrq    $4,%rbx
-        movq    %r9,%r10
-        shrq    $4,%r9
-        movq    %r8,80(%rbp)
-        movq    192+0-128(%rsi),%r8
-        shlb    $4,%dl
-        movq    %rax,80-128(%rbp)
-        movq    192+8-128(%rsi),%rax
-        shlq    $60,%r10
-        movb    %dl,11(%rsp)
-        orq     %r10,%rbx
-        movb    %al,%dl
-        shrq    $4,%rax
-        movq    %r8,%r10
-        shrq    $4,%r8
-        movq    %r9,88(%rbp)
-        movq    208+0-128(%rsi),%r9
-        shlb    $4,%dl
-        movq    %rbx,88-128(%rbp)
-        movq    208+8-128(%rsi),%rbx
-        shlq    $60,%r10
-        movb    %dl,12(%rsp)
-        orq     %r10,%rax
-        movb    %bl,%dl
-        shrq    $4,%rbx
-        movq    %r9,%r10
-        shrq    $4,%r9
-        movq    %r8,96(%rbp)
-        movq    224+0-128(%rsi),%r8
-        shlb    $4,%dl
-        movq    %rax,96-128(%rbp)
-        movq    224+8-128(%rsi),%rax
-        shlq    $60,%r10
-        movb    %dl,13(%rsp)
-        orq     %r10,%rbx
-        movb    %al,%dl
-        shrq    $4,%rax
-        movq    %r8,%r10
-        shrq    $4,%r8
-        movq    %r9,104(%rbp)
-        movq    240+0-128(%rsi),%r9
-        shlb    $4,%dl
-        movq    %rbx,104-128(%rbp)
-        movq    240+8-128(%rsi),%rbx
-        shlq    $60,%r10
-        movb    %dl,14(%rsp)
-        orq     %r10,%rax
-        movb    %bl,%dl
-        shrq    $4,%rbx
-        movq    %r9,%r10
-        shrq    $4,%r9
-        movq    %r8,112(%rbp)
-        shlb    $4,%dl
-        movq    %rax,112-128(%rbp)
-        shlq    $60,%r10
-        movb    %dl,15(%rsp)
-        orq     %r10,%rbx
-        movq    %r9,120(%rbp)
-        movq    %rbx,120-128(%rbp)
-        addq    $-128,%rsi
-        movq    8(%rdi),%r8
-        movq    0(%rdi),%r9
-        addq    %r14,%r15
-        leaq    .Lrem_8bit(%rip),%r11
-        jmp     .Louter_loop
-.align  16
-.Louter_loop:
-        xorq    (%r14),%r9
-        movq    8(%r14),%rdx
-        leaq    16(%r14),%r14
-        xorq    %r8,%rdx
-        movq    %r9,(%rdi)
-        movq    %rdx,8(%rdi)
-        shrq    $32,%rdx
-        xorq    %rax,%rax
-        roll    $8,%edx
-        movb    %dl,%al
-        movzbl  %dl,%ebx
-        shlb    $4,%al
-        shrl    $4,%ebx
-        roll    $8,%edx
-        movq    8(%rsi,%rax,1),%r8
-        movq    (%rsi,%rax,1),%r9
-        movb    %dl,%al
-        movzbl  %dl,%ecx
-        shlb    $4,%al
-        movzbq  (%rsp,%rbx,1),%r12
-        shrl    $4,%ecx
-        xorq    %r8,%r12
-        movq    %r9,%r10
-        shrq    $8,%r8
-        movzbq  %r12b,%r12
-        shrq    $8,%r9
-        xorq    -128(%rbp,%rbx,8),%r8
-        shlq    $56,%r10
-        xorq    (%rbp,%rbx,8),%r9
-        roll    $8,%edx
-        xorq    8(%rsi,%rax,1),%r8
-        xorq    (%rsi,%rax,1),%r9
-        movb    %dl,%al
-        xorq    %r10,%r8
-        movzwq  (%r11,%r12,2),%r12
-        movzbl  %dl,%ebx
-        shlb    $4,%al
-        movzbq  (%rsp,%rcx,1),%r13
-        shrl    $4,%ebx
-        shlq    $48,%r12
-        xorq    %r8,%r13
-        movq    %r9,%r10
-        xorq    %r12,%r9
-        shrq    $8,%r8
-        movzbq  %r13b,%r13
-        shrq    $8,%r9
-        xorq    -128(%rbp,%rcx,8),%r8
-        shlq    $56,%r10
-        xorq    (%rbp,%rcx,8),%r9
-        roll    $8,%edx
-        xorq    8(%rsi,%rax,1),%r8
-        xorq    (%rsi,%rax,1),%r9
-        movb    %dl,%al
-        xorq    %r10,%r8
-        movzwq  (%r11,%r13,2),%r13
-        movzbl  %dl,%ecx
-        shlb    $4,%al
-        movzbq  (%rsp,%rbx,1),%r12
-        shrl    $4,%ecx
-        shlq    $48,%r13
-        xorq    %r8,%r12
-        movq    %r9,%r10
-        xorq    %r13,%r9
-        shrq    $8,%r8
-        movzbq  %r12b,%r12
-        movl    8(%rdi),%edx
-        shrq    $8,%r9
-        xorq    -128(%rbp,%rbx,8),%r8
-        shlq    $56,%r10
-        xorq    (%rbp,%rbx,8),%r9
-        roll    $8,%edx
-        xorq    8(%rsi,%rax,1),%r8
-        xorq    (%rsi,%rax,1),%r9
-        movb    %dl,%al
-        xorq    %r10,%r8
-        movzwq  (%r11,%r12,2),%r12
-        movzbl  %dl,%ebx
-        shlb    $4,%al
-        movzbq  (%rsp,%rcx,1),%r13
-        shrl    $4,%ebx
-        shlq    $48,%r12
-        xorq    %r8,%r13
-        movq    %r9,%r10
-        xorq    %r12,%r9
-        shrq    $8,%r8
-        movzbq  %r13b,%r13
-        shrq    $8,%r9
-        xorq    -128(%rbp,%rcx,8),%r8
-        shlq    $56,%r10
-        xorq    (%rbp,%rcx,8),%r9
-        roll    $8,%edx
-        xorq    8(%rsi,%rax,1),%r8
-        xorq    (%rsi,%rax,1),%r9
-        movb    %dl,%al
-        xorq    %r10,%r8
-        movzwq  (%r11,%r13,2),%r13
-        movzbl  %dl,%ecx
-        shlb    $4,%al
-        movzbq  (%rsp,%rbx,1),%r12
-        shrl    $4,%ecx
-        shlq    $48,%r13
-        xorq    %r8,%r12
-        movq    %r9,%r10
-        xorq    %r13,%r9
-        shrq    $8,%r8
-        movzbq  %r12b,%r12
-        shrq    $8,%r9
-        xorq    -128(%rbp,%rbx,8),%r8
-        shlq    $56,%r10
-        xorq    (%rbp,%rbx,8),%r9
-        roll    $8,%edx
-        xorq    8(%rsi,%rax,1),%r8
-        xorq    (%rsi,%rax,1),%r9
-        movb    %dl,%al
-        xorq    %r10,%r8
-        movzwq  (%r11,%r12,2),%r12
-        movzbl  %dl,%ebx
-        shlb    $4,%al
-        movzbq  (%rsp,%rcx,1),%r13
-        shrl    $4,%ebx
-        shlq    $48,%r12
-        xorq    %r8,%r13
-        movq    %r9,%r10
-        xorq    %r12,%r9
-        shrq    $8,%r8
-        movzbq  %r13b,%r13
-        shrq    $8,%r9
-        xorq    -128(%rbp,%rcx,8),%r8
-        shlq    $56,%r10
-        xorq    (%rbp,%rcx,8),%r9
-        roll    $8,%edx
-        xorq    8(%rsi,%rax,1),%r8
-        xorq    (%rsi,%rax,1),%r9
-        movb    %dl,%al
-        xorq    %r10,%r8
-        movzwq  (%r11,%r13,2),%r13
-        movzbl  %dl,%ecx
-        shlb    $4,%al
-        movzbq  (%rsp,%rbx,1),%r12
-        shrl    $4,%ecx
-        shlq    $48,%r13
-        xorq    %r8,%r12
-        movq    %r9,%r10
-        xorq    %r13,%r9
-        shrq    $8,%r8
-        movzbq  %r12b,%r12
-        movl    4(%rdi),%edx
-        shrq    $8,%r9
-        xorq    -128(%rbp,%rbx,8),%r8
-        shlq    $56,%r10
-        xorq    (%rbp,%rbx,8),%r9
-        roll    $8,%edx
-        xorq    8(%rsi,%rax,1),%r8
-        xorq    (%rsi,%rax,1),%r9
-        movb    %dl,%al
-        xorq    %r10,%r8
-        movzwq  (%r11,%r12,2),%r12
-        movzbl  %dl,%ebx
-        shlb    $4,%al
-        movzbq  (%rsp,%rcx,1),%r13
-        shrl    $4,%ebx
-        shlq    $48,%r12
-        xorq    %r8,%r13
-        movq    %r9,%r10
-        xorq    %r12,%r9
-        shrq    $8,%r8
-        movzbq  %r13b,%r13
-        shrq    $8,%r9
-        xorq    -128(%rbp,%rcx,8),%r8
-        shlq    $56,%r10
-        xorq    (%rbp,%rcx,8),%r9
-        roll    $8,%edx
-        xorq    8(%rsi,%rax,1),%r8
-        xorq    (%rsi,%rax,1),%r9
-        movb    %dl,%al
-        xorq    %r10,%r8
-        movzwq  (%r11,%r13,2),%r13
-        movzbl  %dl,%ecx
-        shlb    $4,%al
-        movzbq  (%rsp,%rbx,1),%r12
-        shrl    $4,%ecx
-        shlq    $48,%r13
-        xorq    %r8,%r12
-        movq    %r9,%r10
-        xorq    %r13,%r9
-        shrq    $8,%r8
-        movzbq  %r12b,%r12
-        shrq    $8,%r9
-        xorq    -128(%rbp,%rbx,8),%r8
-        shlq    $56,%r10
-        xorq    (%rbp,%rbx,8),%r9
-        roll    $8,%edx
-        xorq    8(%rsi,%rax,1),%r8
-        xorq    (%rsi,%rax,1),%r9
-        movb    %dl,%al
-        xorq    %r10,%r8
-        movzwq  (%r11,%r12,2),%r12
-        movzbl  %dl,%ebx
-        shlb    $4,%al
-        movzbq  (%rsp,%rcx,1),%r13
-        shrl    $4,%ebx
-        shlq    $48,%r12
-        xorq    %r8,%r13
-        movq    %r9,%r10
-        xorq    %r12,%r9
-        shrq    $8,%r8
-        movzbq  %r13b,%r13
-        shrq    $8,%r9
-        xorq    -128(%rbp,%rcx,8),%r8
-        shlq    $56,%r10
-        xorq    (%rbp,%rcx,8),%r9
-        roll    $8,%edx
-        xorq    8(%rsi,%rax,1),%r8
-        xorq    (%rsi,%rax,1),%r9
-        movb    %dl,%al
-        xorq    %r10,%r8
-        movzwq  (%r11,%r13,2),%r13
-        movzbl  %dl,%ecx
-        shlb    $4,%al
-        movzbq  (%rsp,%rbx,1),%r12
-        shrl    $4,%ecx
-        shlq    $48,%r13
-        xorq    %r8,%r12
-        movq    %r9,%r10
-        xorq    %r13,%r9
-        shrq    $8,%r8
-        movzbq  %r12b,%r12
-        movl    0(%rdi),%edx
-        shrq    $8,%r9
-        xorq    -128(%rbp,%rbx,8),%r8
-        shlq    $56,%r10
-        xorq    (%rbp,%rbx,8),%r9
-        roll    $8,%edx
-        xorq    8(%rsi,%rax,1),%r8
-        xorq    (%rsi,%rax,1),%r9
-        movb    %dl,%al
-        xorq    %r10,%r8
-        movzwq  (%r11,%r12,2),%r12
-        movzbl  %dl,%ebx
-        shlb    $4,%al
-        movzbq  (%rsp,%rcx,1),%r13
-        shrl    $4,%ebx
-        shlq    $48,%r12
-        xorq    %r8,%r13
-        movq    %r9,%r10
-        xorq    %r12,%r9
-        shrq    $8,%r8
-        movzbq  %r13b,%r13
-        shrq    $8,%r9
-        xorq    -128(%rbp,%rcx,8),%r8
-        shlq    $56,%r10
-        xorq    (%rbp,%rcx,8),%r9
-        roll    $8,%edx
-        xorq    8(%rsi,%rax,1),%r8
-        xorq    (%rsi,%rax,1),%r9
-        movb    %dl,%al
-        xorq    %r10,%r8
-        movzwq  (%r11,%r13,2),%r13
-        movzbl  %dl,%ecx
-        shlb    $4,%al
-        movzbq  (%rsp,%rbx,1),%r12
-        shrl    $4,%ecx
-        shlq    $48,%r13
-        xorq    %r8,%r12
-        movq    %r9,%r10
-        xorq    %r13,%r9
-        shrq    $8,%r8
-        movzbq  %r12b,%r12
-        shrq    $8,%r9
-        xorq    -128(%rbp,%rbx,8),%r8
-        shlq    $56,%r10
-        xorq    (%rbp,%rbx,8),%r9
-        roll    $8,%edx
-        xorq    8(%rsi,%rax,1),%r8
-        xorq    (%rsi,%rax,1),%r9
-        movb    %dl,%al
-        xorq    %r10,%r8
-        movzwq  (%r11,%r12,2),%r12
-        movzbl  %dl,%ebx
-        shlb    $4,%al
-        movzbq  (%rsp,%rcx,1),%r13
-        shrl    $4,%ebx
-        shlq    $48,%r12
-        xorq    %r8,%r13
-        movq    %r9,%r10
-        xorq    %r12,%r9
-        shrq    $8,%r8
-        movzbq  %r13b,%r13
-        shrq    $8,%r9
-        xorq    -128(%rbp,%rcx,8),%r8
-        shlq    $56,%r10
-        xorq    (%rbp,%rcx,8),%r9
-        roll    $8,%edx
-        xorq    8(%rsi,%rax,1),%r8
-        xorq    (%rsi,%rax,1),%r9
-        movb    %dl,%al
-        xorq    %r10,%r8
-        movzwq  (%r11,%r13,2),%r13
-        movzbl  %dl,%ecx
-        shlb    $4,%al
-        movzbq  (%rsp,%rbx,1),%r12
-        andl    $240,%ecx
-        shlq    $48,%r13
-        xorq    %r8,%r12
-        movq    %r9,%r10
-        xorq    %r13,%r9
-        shrq    $8,%r8
-        movzbq  %r12b,%r12
-        movl    -4(%rdi),%edx
-        shrq    $8,%r9
-        xorq    -128(%rbp,%rbx,8),%r8
-        shlq    $56,%r10
-        xorq    (%rbp,%rbx,8),%r9
-        movzwq  (%r11,%r12,2),%r12
-        xorq    8(%rsi,%rax,1),%r8
-        xorq    (%rsi,%rax,1),%r9
-        shlq    $48,%r12
-        xorq    %r10,%r8
-        xorq    %r12,%r9
-        movzbq  %r8b,%r13
-        shrq    $4,%r8
-        movq    %r9,%r10
-        shlb    $4,%r13b
-        shrq    $4,%r9
-        xorq    8(%rsi,%rcx,1),%r8
-        movzwq  (%r11,%r13,2),%r13
-        shlq    $60,%r10
-        xorq    (%rsi,%rcx,1),%r9
-        xorq    %r10,%r8
-        shlq    $48,%r13
-        bswapq  %r8
-        xorq    %r13,%r9
-        bswapq  %r9
-        cmpq    %r15,%r14
-        jb      .Louter_loop
-        movq    %r8,8(%rdi)
-        movq    %r9,(%rdi)
-
-        leaq    280+48(%rsp),%rsi
-.cfi_def_cfa    %rsi,8
-        movq    -48(%rsi),%r15
-.cfi_restore    %r15
-        movq    -40(%rsi),%r14
-.cfi_restore    %r14
-        movq    -32(%rsi),%r13
-.cfi_restore    %r13
-        movq    -24(%rsi),%r12
-.cfi_restore    %r12
-        movq    -16(%rsi),%rbp
-.cfi_restore    %rbp
-        movq    -8(%rsi),%rbx
-.cfi_restore    %rbx
-        leaq    0(%rsi),%rsp
-.cfi_def_cfa_register   %rsp
-.Lghash_epilogue:
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   gcm_ghash_4bit,.-gcm_ghash_4bit
-.globl  gcm_init_clmul
-.type   gcm_init_clmul, at function
-.align  16
-gcm_init_clmul:
-.cfi_startproc
-.L_init_clmul:
-        movdqu  (%rsi),%xmm2
-        pshufd  $78,%xmm2,%xmm2
-
-
-        pshufd  $255,%xmm2,%xmm4
-        movdqa  %xmm2,%xmm3
-        psllq   $1,%xmm2
-        pxor    %xmm5,%xmm5
-        psrlq   $63,%xmm3
-        pcmpgtd %xmm4,%xmm5
-        pslldq  $8,%xmm3
-        por     %xmm3,%xmm2
-
-
-        pand    .L0x1c2_polynomial(%rip),%xmm5
-        pxor    %xmm5,%xmm2
-
-
-        pshufd  $78,%xmm2,%xmm6
-        movdqa  %xmm2,%xmm0
-        pxor    %xmm2,%xmm6
-        movdqa  %xmm0,%xmm1
-        pshufd  $78,%xmm0,%xmm3
-        pxor    %xmm0,%xmm3
-.byte   102,15,58,68,194,0
-.byte   102,15,58,68,202,17
-.byte   102,15,58,68,222,0
-        pxor    %xmm0,%xmm3
-        pxor    %xmm1,%xmm3
-
-        movdqa  %xmm3,%xmm4
-        psrldq  $8,%xmm3
-        pslldq  $8,%xmm4
-        pxor    %xmm3,%xmm1
-        pxor    %xmm4,%xmm0
-
-        movdqa  %xmm0,%xmm4
-        movdqa  %xmm0,%xmm3
-        psllq   $5,%xmm0
-        pxor    %xmm0,%xmm3
-        psllq   $1,%xmm0
-        pxor    %xmm3,%xmm0
-        psllq   $57,%xmm0
-        movdqa  %xmm0,%xmm3
-        pslldq  $8,%xmm0
-        psrldq  $8,%xmm3
-        pxor    %xmm4,%xmm0
-        pxor    %xmm3,%xmm1
-
-
-        movdqa  %xmm0,%xmm4
-        psrlq   $1,%xmm0
-        pxor    %xmm4,%xmm1
-        pxor    %xmm0,%xmm4
-        psrlq   $5,%xmm0
-        pxor    %xmm4,%xmm0
-        psrlq   $1,%xmm0
-        pxor    %xmm1,%xmm0
-        pshufd  $78,%xmm2,%xmm3
-        pshufd  $78,%xmm0,%xmm4
-        pxor    %xmm2,%xmm3
-        movdqu  %xmm2,0(%rdi)
-        pxor    %xmm0,%xmm4
-        movdqu  %xmm0,16(%rdi)
-.byte   102,15,58,15,227,8
-        movdqu  %xmm4,32(%rdi)
-        movdqa  %xmm0,%xmm1
-        pshufd  $78,%xmm0,%xmm3
-        pxor    %xmm0,%xmm3
-.byte   102,15,58,68,194,0
-.byte   102,15,58,68,202,17
-.byte   102,15,58,68,222,0
-        pxor    %xmm0,%xmm3
-        pxor    %xmm1,%xmm3
-
-        movdqa  %xmm3,%xmm4
-        psrldq  $8,%xmm3
-        pslldq  $8,%xmm4
-        pxor    %xmm3,%xmm1
-        pxor    %xmm4,%xmm0
-
-        movdqa  %xmm0,%xmm4
-        movdqa  %xmm0,%xmm3
-        psllq   $5,%xmm0
-        pxor    %xmm0,%xmm3
-        psllq   $1,%xmm0
-        pxor    %xmm3,%xmm0
-        psllq   $57,%xmm0
-        movdqa  %xmm0,%xmm3
-        pslldq  $8,%xmm0
-        psrldq  $8,%xmm3
-        pxor    %xmm4,%xmm0
-        pxor    %xmm3,%xmm1
-
-
-        movdqa  %xmm0,%xmm4
-        psrlq   $1,%xmm0
-        pxor    %xmm4,%xmm1
-        pxor    %xmm0,%xmm4
-        psrlq   $5,%xmm0
-        pxor    %xmm4,%xmm0
-        psrlq   $1,%xmm0
-        pxor    %xmm1,%xmm0
-        movdqa  %xmm0,%xmm5
-        movdqa  %xmm0,%xmm1
-        pshufd  $78,%xmm0,%xmm3
-        pxor    %xmm0,%xmm3
-.byte   102,15,58,68,194,0
-.byte   102,15,58,68,202,17
-.byte   102,15,58,68,222,0
-        pxor    %xmm0,%xmm3
-        pxor    %xmm1,%xmm3
-
-        movdqa  %xmm3,%xmm4
-        psrldq  $8,%xmm3
-        pslldq  $8,%xmm4
-        pxor    %xmm3,%xmm1
-        pxor    %xmm4,%xmm0
-
-        movdqa  %xmm0,%xmm4
-        movdqa  %xmm0,%xmm3
-        psllq   $5,%xmm0
-        pxor    %xmm0,%xmm3
-        psllq   $1,%xmm0
-        pxor    %xmm3,%xmm0
-        psllq   $57,%xmm0
-        movdqa  %xmm0,%xmm3
-        pslldq  $8,%xmm0
-        psrldq  $8,%xmm3
-        pxor    %xmm4,%xmm0
-        pxor    %xmm3,%xmm1
-
-
-        movdqa  %xmm0,%xmm4
-        psrlq   $1,%xmm0
-        pxor    %xmm4,%xmm1
-        pxor    %xmm0,%xmm4
-        psrlq   $5,%xmm0
-        pxor    %xmm4,%xmm0
-        psrlq   $1,%xmm0
-        pxor    %xmm1,%xmm0
-        pshufd  $78,%xmm5,%xmm3
-        pshufd  $78,%xmm0,%xmm4
-        pxor    %xmm5,%xmm3
-        movdqu  %xmm5,48(%rdi)
-        pxor    %xmm0,%xmm4
-        movdqu  %xmm0,64(%rdi)
-.byte   102,15,58,15,227,8
-        movdqu  %xmm4,80(%rdi)
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   gcm_init_clmul,.-gcm_init_clmul
-.globl  gcm_gmult_clmul
-.type   gcm_gmult_clmul, at function
-.align  16
-gcm_gmult_clmul:
-.cfi_startproc
-.L_gmult_clmul:
-        movdqu  (%rdi),%xmm0
-        movdqa  .Lbswap_mask(%rip),%xmm5
-        movdqu  (%rsi),%xmm2
-        movdqu  32(%rsi),%xmm4
-.byte   102,15,56,0,197
-        movdqa  %xmm0,%xmm1
-        pshufd  $78,%xmm0,%xmm3
-        pxor    %xmm0,%xmm3
-.byte   102,15,58,68,194,0
-.byte   102,15,58,68,202,17
-.byte   102,15,58,68,220,0
-        pxor    %xmm0,%xmm3
-        pxor    %xmm1,%xmm3
-
-        movdqa  %xmm3,%xmm4
-        psrldq  $8,%xmm3
-        pslldq  $8,%xmm4
-        pxor    %xmm3,%xmm1
-        pxor    %xmm4,%xmm0
-
-        movdqa  %xmm0,%xmm4
-        movdqa  %xmm0,%xmm3
-        psllq   $5,%xmm0
-        pxor    %xmm0,%xmm3
-        psllq   $1,%xmm0
-        pxor    %xmm3,%xmm0
-        psllq   $57,%xmm0
-        movdqa  %xmm0,%xmm3
-        pslldq  $8,%xmm0
-        psrldq  $8,%xmm3
-        pxor    %xmm4,%xmm0
-        pxor    %xmm3,%xmm1
-
-
-        movdqa  %xmm0,%xmm4
-        psrlq   $1,%xmm0
-        pxor    %xmm4,%xmm1
-        pxor    %xmm0,%xmm4
-        psrlq   $5,%xmm0
-        pxor    %xmm4,%xmm0
-        psrlq   $1,%xmm0
-        pxor    %xmm1,%xmm0
-.byte   102,15,56,0,197
-        movdqu  %xmm0,(%rdi)
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   gcm_gmult_clmul,.-gcm_gmult_clmul
-.globl  gcm_ghash_clmul
-.type   gcm_ghash_clmul, at function
-.align  32
-gcm_ghash_clmul:
-.cfi_startproc
-.L_ghash_clmul:
-        movdqa  .Lbswap_mask(%rip),%xmm10
-
-        movdqu  (%rdi),%xmm0
-        movdqu  (%rsi),%xmm2
-        movdqu  32(%rsi),%xmm7
-.byte   102,65,15,56,0,194
-
-        subq    $0x10,%rcx
-        jz      .Lodd_tail
-
-        movdqu  16(%rsi),%xmm6
-        movl    OPENSSL_ia32cap_P+4(%rip),%eax
-        cmpq    $0x30,%rcx
-        jb      .Lskip4x
-
-        andl    $71303168,%eax
-        cmpl    $4194304,%eax
-        je      .Lskip4x
-
-        subq    $0x30,%rcx
-        movq    $0xA040608020C0E000,%rax
-        movdqu  48(%rsi),%xmm14
-        movdqu  64(%rsi),%xmm15
-
-
-
-
-        movdqu  48(%rdx),%xmm3
-        movdqu  32(%rdx),%xmm11
-.byte   102,65,15,56,0,218
-.byte   102,69,15,56,0,218
-        movdqa  %xmm3,%xmm5
-        pshufd  $78,%xmm3,%xmm4
-        pxor    %xmm3,%xmm4
-.byte   102,15,58,68,218,0
-.byte   102,15,58,68,234,17
-.byte   102,15,58,68,231,0
-
-        movdqa  %xmm11,%xmm13
-        pshufd  $78,%xmm11,%xmm12
-        pxor    %xmm11,%xmm12
-.byte   102,68,15,58,68,222,0
-.byte   102,68,15,58,68,238,17
-.byte   102,68,15,58,68,231,16
-        xorps   %xmm11,%xmm3
-        xorps   %xmm13,%xmm5
-        movups  80(%rsi),%xmm7
-        xorps   %xmm12,%xmm4
-
-        movdqu  16(%rdx),%xmm11
-        movdqu  0(%rdx),%xmm8
-.byte   102,69,15,56,0,218
-.byte   102,69,15,56,0,194
-        movdqa  %xmm11,%xmm13
-        pshufd  $78,%xmm11,%xmm12
-        pxor    %xmm8,%xmm0
-        pxor    %xmm11,%xmm12
-.byte   102,69,15,58,68,222,0
-        movdqa  %xmm0,%xmm1
-        pshufd  $78,%xmm0,%xmm8
-        pxor    %xmm0,%xmm8
-.byte   102,69,15,58,68,238,17
-.byte   102,68,15,58,68,231,0
-        xorps   %xmm11,%xmm3
-        xorps   %xmm13,%xmm5
-
-        leaq    64(%rdx),%rdx
-        subq    $0x40,%rcx
-        jc      .Ltail4x
-
-        jmp     .Lmod4_loop
-.align  32
-.Lmod4_loop:
-.byte   102,65,15,58,68,199,0
-        xorps   %xmm12,%xmm4
-        movdqu  48(%rdx),%xmm11
-.byte   102,69,15,56,0,218
-.byte   102,65,15,58,68,207,17
-        xorps   %xmm3,%xmm0
-        movdqu  32(%rdx),%xmm3
-        movdqa  %xmm11,%xmm13
-.byte   102,68,15,58,68,199,16
-        pshufd  $78,%xmm11,%xmm12
-        xorps   %xmm5,%xmm1
-        pxor    %xmm11,%xmm12
-.byte   102,65,15,56,0,218
-        movups  32(%rsi),%xmm7
-        xorps   %xmm4,%xmm8
-.byte   102,68,15,58,68,218,0
-        pshufd  $78,%xmm3,%xmm4
-
-        pxor    %xmm0,%xmm8
-        movdqa  %xmm3,%xmm5
-        pxor    %xmm1,%xmm8
-        pxor    %xmm3,%xmm4
-        movdqa  %xmm8,%xmm9
-.byte   102,68,15,58,68,234,17
-        pslldq  $8,%xmm8
-        psrldq  $8,%xmm9
-        pxor    %xmm8,%xmm0
-        movdqa  .L7_mask(%rip),%xmm8
-        pxor    %xmm9,%xmm1
-.byte   102,76,15,110,200
-
-        pand    %xmm0,%xmm8
-.byte   102,69,15,56,0,200
-        pxor    %xmm0,%xmm9
-.byte   102,68,15,58,68,231,0
-        psllq   $57,%xmm9
-        movdqa  %xmm9,%xmm8
-        pslldq  $8,%xmm9
-.byte   102,15,58,68,222,0
-        psrldq  $8,%xmm8
-        pxor    %xmm9,%xmm0
-        pxor    %xmm8,%xmm1
-        movdqu  0(%rdx),%xmm8
-
-        movdqa  %xmm0,%xmm9
-        psrlq   $1,%xmm0
-.byte   102,15,58,68,238,17
-        xorps   %xmm11,%xmm3
-        movdqu  16(%rdx),%xmm11
-.byte   102,69,15,56,0,218
-.byte   102,15,58,68,231,16
-        xorps   %xmm13,%xmm5
-        movups  80(%rsi),%xmm7
-.byte   102,69,15,56,0,194
-        pxor    %xmm9,%xmm1
-        pxor    %xmm0,%xmm9
-        psrlq   $5,%xmm0
-
-        movdqa  %xmm11,%xmm13
-        pxor    %xmm12,%xmm4
-        pshufd  $78,%xmm11,%xmm12
-        pxor    %xmm9,%xmm0
-        pxor    %xmm8,%xmm1
-        pxor    %xmm11,%xmm12
-.byte   102,69,15,58,68,222,0
-        psrlq   $1,%xmm0
-        pxor    %xmm1,%xmm0
-        movdqa  %xmm0,%xmm1
-.byte   102,69,15,58,68,238,17
-        xorps   %xmm11,%xmm3
-        pshufd  $78,%xmm0,%xmm8
-        pxor    %xmm0,%xmm8
-
-.byte   102,68,15,58,68,231,0
-        xorps   %xmm13,%xmm5
-
-        leaq    64(%rdx),%rdx
-        subq    $0x40,%rcx
-        jnc     .Lmod4_loop
-
-.Ltail4x:
-.byte   102,65,15,58,68,199,0
-.byte   102,65,15,58,68,207,17
-.byte   102,68,15,58,68,199,16
-        xorps   %xmm12,%xmm4
-        xorps   %xmm3,%xmm0
-        xorps   %xmm5,%xmm1
-        pxor    %xmm0,%xmm1
-        pxor    %xmm4,%xmm8
-
-        pxor    %xmm1,%xmm8
-        pxor    %xmm0,%xmm1
-
-        movdqa  %xmm8,%xmm9
-        psrldq  $8,%xmm8
-        pslldq  $8,%xmm9
-        pxor    %xmm8,%xmm1
-        pxor    %xmm9,%xmm0
-
-        movdqa  %xmm0,%xmm4
-        movdqa  %xmm0,%xmm3
-        psllq   $5,%xmm0
-        pxor    %xmm0,%xmm3
-        psllq   $1,%xmm0
-        pxor    %xmm3,%xmm0
-        psllq   $57,%xmm0
-        movdqa  %xmm0,%xmm3
-        pslldq  $8,%xmm0
-        psrldq  $8,%xmm3
-        pxor    %xmm4,%xmm0
-        pxor    %xmm3,%xmm1
-
-
-        movdqa  %xmm0,%xmm4
-        psrlq   $1,%xmm0
-        pxor    %xmm4,%xmm1
-        pxor    %xmm0,%xmm4
-        psrlq   $5,%xmm0
-        pxor    %xmm4,%xmm0
-        psrlq   $1,%xmm0
-        pxor    %xmm1,%xmm0
-        addq    $0x40,%rcx
-        jz      .Ldone
-        movdqu  32(%rsi),%xmm7
-        subq    $0x10,%rcx
-        jz      .Lodd_tail
-.Lskip4x:
-
-
-
-
-
-        movdqu  (%rdx),%xmm8
-        movdqu  16(%rdx),%xmm3
-.byte   102,69,15,56,0,194
-.byte   102,65,15,56,0,218
-        pxor    %xmm8,%xmm0
-
-        movdqa  %xmm3,%xmm5
-        pshufd  $78,%xmm3,%xmm4
-        pxor    %xmm3,%xmm4
-.byte   102,15,58,68,218,0
-.byte   102,15,58,68,234,17
-.byte   102,15,58,68,231,0
-
-        leaq    32(%rdx),%rdx
-        nop
-        subq    $0x20,%rcx
-        jbe     .Leven_tail
-        nop
-        jmp     .Lmod_loop
-
-.align  32
-.Lmod_loop:
-        movdqa  %xmm0,%xmm1
-        movdqa  %xmm4,%xmm8
-        pshufd  $78,%xmm0,%xmm4
-        pxor    %xmm0,%xmm4
-
-.byte   102,15,58,68,198,0
-.byte   102,15,58,68,206,17
-.byte   102,15,58,68,231,16
-
-        pxor    %xmm3,%xmm0
-        pxor    %xmm5,%xmm1
-        movdqu  (%rdx),%xmm9
-        pxor    %xmm0,%xmm8
-.byte   102,69,15,56,0,202
-        movdqu  16(%rdx),%xmm3
-
-        pxor    %xmm1,%xmm8
-        pxor    %xmm9,%xmm1
-        pxor    %xmm8,%xmm4
-.byte   102,65,15,56,0,218
-        movdqa  %xmm4,%xmm8
-        psrldq  $8,%xmm8
-        pslldq  $8,%xmm4
-        pxor    %xmm8,%xmm1
-        pxor    %xmm4,%xmm0
-
-        movdqa  %xmm3,%xmm5
-
-        movdqa  %xmm0,%xmm9
-        movdqa  %xmm0,%xmm8
-        psllq   $5,%xmm0
-        pxor    %xmm0,%xmm8
-.byte   102,15,58,68,218,0
-        psllq   $1,%xmm0
-        pxor    %xmm8,%xmm0
-        psllq   $57,%xmm0
-        movdqa  %xmm0,%xmm8
-        pslldq  $8,%xmm0
-        psrldq  $8,%xmm8
-        pxor    %xmm9,%xmm0
-        pshufd  $78,%xmm5,%xmm4
-        pxor    %xmm8,%xmm1
-        pxor    %xmm5,%xmm4
-
-        movdqa  %xmm0,%xmm9
-        psrlq   $1,%xmm0
-.byte   102,15,58,68,234,17
-        pxor    %xmm9,%xmm1
-        pxor    %xmm0,%xmm9
-        psrlq   $5,%xmm0
-        pxor    %xmm9,%xmm0
-        leaq    32(%rdx),%rdx
-        psrlq   $1,%xmm0
-.byte   102,15,58,68,231,0
-        pxor    %xmm1,%xmm0
-
-        subq    $0x20,%rcx
-        ja      .Lmod_loop
-
-.Leven_tail:
-        movdqa  %xmm0,%xmm1
-        movdqa  %xmm4,%xmm8
-        pshufd  $78,%xmm0,%xmm4
-        pxor    %xmm0,%xmm4
-
-.byte   102,15,58,68,198,0
-.byte   102,15,58,68,206,17
-.byte   102,15,58,68,231,16
-
-        pxor    %xmm3,%xmm0
-        pxor    %xmm5,%xmm1
-        pxor    %xmm0,%xmm8
-        pxor    %xmm1,%xmm8
-        pxor    %xmm8,%xmm4
-        movdqa  %xmm4,%xmm8
-        psrldq  $8,%xmm8
-        pslldq  $8,%xmm4
-        pxor    %xmm8,%xmm1
-        pxor    %xmm4,%xmm0
-
-        movdqa  %xmm0,%xmm4
-        movdqa  %xmm0,%xmm3
-        psllq   $5,%xmm0
-        pxor    %xmm0,%xmm3
-        psllq   $1,%xmm0
-        pxor    %xmm3,%xmm0
-        psllq   $57,%xmm0
-        movdqa  %xmm0,%xmm3
-        pslldq  $8,%xmm0
-        psrldq  $8,%xmm3
-        pxor    %xmm4,%xmm0
-        pxor    %xmm3,%xmm1
-
-
-        movdqa  %xmm0,%xmm4
-        psrlq   $1,%xmm0
-        pxor    %xmm4,%xmm1
-        pxor    %xmm0,%xmm4
-        psrlq   $5,%xmm0
-        pxor    %xmm4,%xmm0
-        psrlq   $1,%xmm0
-        pxor    %xmm1,%xmm0
-        testq   %rcx,%rcx
-        jnz     .Ldone
-
-.Lodd_tail:
-        movdqu  (%rdx),%xmm8
-.byte   102,69,15,56,0,194
-        pxor    %xmm8,%xmm0
-        movdqa  %xmm0,%xmm1
-        pshufd  $78,%xmm0,%xmm3
-        pxor    %xmm0,%xmm3
-.byte   102,15,58,68,194,0
-.byte   102,15,58,68,202,17
-.byte   102,15,58,68,223,0
-        pxor    %xmm0,%xmm3
-        pxor    %xmm1,%xmm3
-
-        movdqa  %xmm3,%xmm4
-        psrldq  $8,%xmm3
-        pslldq  $8,%xmm4
-        pxor    %xmm3,%xmm1
-        pxor    %xmm4,%xmm0
-
-        movdqa  %xmm0,%xmm4
-        movdqa  %xmm0,%xmm3
-        psllq   $5,%xmm0
-        pxor    %xmm0,%xmm3
-        psllq   $1,%xmm0
-        pxor    %xmm3,%xmm0
-        psllq   $57,%xmm0
-        movdqa  %xmm0,%xmm3
-        pslldq  $8,%xmm0
-        psrldq  $8,%xmm3
-        pxor    %xmm4,%xmm0
-        pxor    %xmm3,%xmm1
-
-
-        movdqa  %xmm0,%xmm4
-        psrlq   $1,%xmm0
-        pxor    %xmm4,%xmm1
-        pxor    %xmm0,%xmm4
-        psrlq   $5,%xmm0
-        pxor    %xmm4,%xmm0
-        psrlq   $1,%xmm0
-        pxor    %xmm1,%xmm0
-.Ldone:
-.byte   102,65,15,56,0,194
-        movdqu  %xmm0,(%rdi)
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   gcm_ghash_clmul,.-gcm_ghash_clmul
-.globl  gcm_init_avx
-.type   gcm_init_avx, at function
-.align  32
-gcm_init_avx:
-.cfi_startproc
-        jmp     .L_init_clmul
-.cfi_endproc
-.size   gcm_init_avx,.-gcm_init_avx
-.globl  gcm_gmult_avx
-.type   gcm_gmult_avx, at function
-.align  32
-gcm_gmult_avx:
-.cfi_startproc
-        jmp     .L_gmult_clmul
-.cfi_endproc
-.size   gcm_gmult_avx,.-gcm_gmult_avx
-.globl  gcm_ghash_avx
-.type   gcm_ghash_avx, at function
-.align  32
-gcm_ghash_avx:
-.cfi_startproc
-        jmp     .L_ghash_clmul
-.cfi_endproc
-.size   gcm_ghash_avx,.-gcm_ghash_avx
-.align  64
-.Lbswap_mask:
-.byte   15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
-.L0x1c2_polynomial:
-.byte   1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xc2
-.L7_mask:
-.long   7,0,7,0
-.L7_mask_poly:
-.long   7,0,450,0
-.align  64
-.type   .Lrem_4bit, at object
-.Lrem_4bit:
-.long   0,0,0,471859200,0,943718400,0,610271232
-.long   0,1887436800,0,1822425088,0,1220542464,0,1423966208
-.long   0,3774873600,0,4246732800,0,3644850176,0,3311403008
-.long   0,2441084928,0,2376073216,0,2847932416,0,3051356160
-.type   .Lrem_8bit, at object
-.Lrem_8bit:
-.value  0x0000,0x01C2,0x0384,0x0246,0x0708,0x06CA,0x048C,0x054E
-.value  0x0E10,0x0FD2,0x0D94,0x0C56,0x0918,0x08DA,0x0A9C,0x0B5E
-.value  0x1C20,0x1DE2,0x1FA4,0x1E66,0x1B28,0x1AEA,0x18AC,0x196E
-.value  0x1230,0x13F2,0x11B4,0x1076,0x1538,0x14FA,0x16BC,0x177E
-.value  0x3840,0x3982,0x3BC4,0x3A06,0x3F48,0x3E8A,0x3CCC,0x3D0E
-.value  0x3650,0x3792,0x35D4,0x3416,0x3158,0x309A,0x32DC,0x331E
-.value  0x2460,0x25A2,0x27E4,0x2626,0x2368,0x22AA,0x20EC,0x212E
-.value  0x2A70,0x2BB2,0x29F4,0x2836,0x2D78,0x2CBA,0x2EFC,0x2F3E
-.value  0x7080,0x7142,0x7304,0x72C6,0x7788,0x764A,0x740C,0x75CE
-.value  0x7E90,0x7F52,0x7D14,0x7CD6,0x7998,0x785A,0x7A1C,0x7BDE
-.value  0x6CA0,0x6D62,0x6F24,0x6EE6,0x6BA8,0x6A6A,0x682C,0x69EE
-.value  0x62B0,0x6372,0x6134,0x60F6,0x65B8,0x647A,0x663C,0x67FE
-.value  0x48C0,0x4902,0x4B44,0x4A86,0x4FC8,0x4E0A,0x4C4C,0x4D8E
-.value  0x46D0,0x4712,0x4554,0x4496,0x41D8,0x401A,0x425C,0x439E
-.value  0x54E0,0x5522,0x5764,0x56A6,0x53E8,0x522A,0x506C,0x51AE
-.value  0x5AF0,0x5B32,0x5974,0x58B6,0x5DF8,0x5C3A,0x5E7C,0x5FBE
-.value  0xE100,0xE0C2,0xE284,0xE346,0xE608,0xE7CA,0xE58C,0xE44E
-.value  0xEF10,0xEED2,0xEC94,0xED56,0xE818,0xE9DA,0xEB9C,0xEA5E
-.value  0xFD20,0xFCE2,0xFEA4,0xFF66,0xFA28,0xFBEA,0xF9AC,0xF86E
-.value  0xF330,0xF2F2,0xF0B4,0xF176,0xF438,0xF5FA,0xF7BC,0xF67E
-.value  0xD940,0xD882,0xDAC4,0xDB06,0xDE48,0xDF8A,0xDDCC,0xDC0E
-.value  0xD750,0xD692,0xD4D4,0xD516,0xD058,0xD19A,0xD3DC,0xD21E
-.value  0xC560,0xC4A2,0xC6E4,0xC726,0xC268,0xC3AA,0xC1EC,0xC02E
-.value  0xCB70,0xCAB2,0xC8F4,0xC936,0xCC78,0xCDBA,0xCFFC,0xCE3E
-.value  0x9180,0x9042,0x9204,0x93C6,0x9688,0x974A,0x950C,0x94CE
-.value  0x9F90,0x9E52,0x9C14,0x9DD6,0x9898,0x995A,0x9B1C,0x9ADE
-.value  0x8DA0,0x8C62,0x8E24,0x8FE6,0x8AA8,0x8B6A,0x892C,0x88EE
-.value  0x83B0,0x8272,0x8034,0x81F6,0x84B8,0x857A,0x873C,0x86FE
-.value  0xA9C0,0xA802,0xAA44,0xAB86,0xAEC8,0xAF0A,0xAD4C,0xAC8E
-.value  0xA7D0,0xA612,0xA454,0xA596,0xA0D8,0xA11A,0xA35C,0xA29E
-.value  0xB5E0,0xB422,0xB664,0xB7A6,0xB2E8,0xB32A,0xB16C,0xB0AE
-.value  0xBBF0,0xBA32,0xB874,0xB9B6,0xBCF8,0xBD3A,0xBF7C,0xBEBE
-
-.byte   71,72,65,83,72,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
-.align  64
diff --git a/CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha1-mb-x86_64.S b/CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha1-mb-x86_64.S
deleted file mode 100644
index 4572bc722780..000000000000
--- a/CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha1-mb-x86_64.S
+++ /dev/null
@@ -1,2962 +0,0 @@
-# WARNING: do not edit!
-# Generated from openssl/crypto/sha/asm/sha1-mb-x86_64.pl
-#
-# Copyright 2013-2020 The OpenSSL Project Authors. All Rights Reserved.
-#
-# Licensed under the OpenSSL license (the "License").  You may not use
-# this file except in compliance with the License.  You can obtain a copy
-# in the file LICENSE in the source distribution or at
-# https://www.openssl.org/source/license.html
-
-.text
-
-
-
-.globl  sha1_multi_block
-.type   sha1_multi_block, at function
-.align  32
-sha1_multi_block:
-.cfi_startproc
-        movq    OPENSSL_ia32cap_P+4(%rip),%rcx
-        btq     $61,%rcx
-        jc      _shaext_shortcut
-        movq    %rsp,%rax
-.cfi_def_cfa_register   %rax
-        pushq   %rbx
-.cfi_offset     %rbx,-16
-        pushq   %rbp
-.cfi_offset     %rbx,-24
-        subq    $288,%rsp
-        andq    $-256,%rsp
-        movq    %rax,272(%rsp)
-.cfi_escape     0x0f,0x06,0x77,0x90,0x02,0x06,0x23,0x08
-.Lbody:
-        leaq    K_XX_XX(%rip),%rbp
-        leaq    256(%rsp),%rbx
-
-.Loop_grande:
-        movl    %edx,280(%rsp)
-        xorl    %edx,%edx
-        movq    0(%rsi),%r8
-        movl    8(%rsi),%ecx
-        cmpl    %edx,%ecx
-        cmovgl  %ecx,%edx
-        testl   %ecx,%ecx
-        movl    %ecx,0(%rbx)
-        cmovleq %rbp,%r8
-        movq    16(%rsi),%r9
-        movl    24(%rsi),%ecx
-        cmpl    %edx,%ecx
-        cmovgl  %ecx,%edx
-        testl   %ecx,%ecx
-        movl    %ecx,4(%rbx)
-        cmovleq %rbp,%r9
-        movq    32(%rsi),%r10
-        movl    40(%rsi),%ecx
-        cmpl    %edx,%ecx
-        cmovgl  %ecx,%edx
-        testl   %ecx,%ecx
-        movl    %ecx,8(%rbx)
-        cmovleq %rbp,%r10
-        movq    48(%rsi),%r11
-        movl    56(%rsi),%ecx
-        cmpl    %edx,%ecx
-        cmovgl  %ecx,%edx
-        testl   %ecx,%ecx
-        movl    %ecx,12(%rbx)
-        cmovleq %rbp,%r11
-        testl   %edx,%edx
-        jz      .Ldone
-
-        movdqu  0(%rdi),%xmm10
-        leaq    128(%rsp),%rax
-        movdqu  32(%rdi),%xmm11
-        movdqu  64(%rdi),%xmm12
-        movdqu  96(%rdi),%xmm13
-        movdqu  128(%rdi),%xmm14
-        movdqa  96(%rbp),%xmm5
-        movdqa  -32(%rbp),%xmm15
-        jmp     .Loop
-
-.align  32
-.Loop:
-        movd    (%r8),%xmm0
-        leaq    64(%r8),%r8
-        movd    (%r9),%xmm2
-        leaq    64(%r9),%r9
-        movd    (%r10),%xmm3
-        leaq    64(%r10),%r10
-        movd    (%r11),%xmm4
-        leaq    64(%r11),%r11
-        punpckldq       %xmm3,%xmm0
-        movd    -60(%r8),%xmm1
-        punpckldq       %xmm4,%xmm2
-        movd    -60(%r9),%xmm9
-        punpckldq       %xmm2,%xmm0
-        movd    -60(%r10),%xmm8
-.byte   102,15,56,0,197
-        movd    -60(%r11),%xmm7
-        punpckldq       %xmm8,%xmm1
-        movdqa  %xmm10,%xmm8
-        paddd   %xmm15,%xmm14
-        punpckldq       %xmm7,%xmm9
-        movdqa  %xmm11,%xmm7
-        movdqa  %xmm11,%xmm6
-        pslld   $5,%xmm8
-        pandn   %xmm13,%xmm7
-        pand    %xmm12,%xmm6
-        punpckldq       %xmm9,%xmm1
-        movdqa  %xmm10,%xmm9
-
-        movdqa  %xmm0,0-128(%rax)
-        paddd   %xmm0,%xmm14
-        movd    -56(%r8),%xmm2
-        psrld   $27,%xmm9
-        pxor    %xmm7,%xmm6
-        movdqa  %xmm11,%xmm7
-
-        por     %xmm9,%xmm8
-        movd    -56(%r9),%xmm9
-        pslld   $30,%xmm7
-        paddd   %xmm6,%xmm14
-
-        psrld   $2,%xmm11
-        paddd   %xmm8,%xmm14
-.byte   102,15,56,0,205
-        movd    -56(%r10),%xmm8
-        por     %xmm7,%xmm11
-        movd    -56(%r11),%xmm7
-        punpckldq       %xmm8,%xmm2
-        movdqa  %xmm14,%xmm8
-        paddd   %xmm15,%xmm13
-        punpckldq       %xmm7,%xmm9
-        movdqa  %xmm10,%xmm7
-        movdqa  %xmm10,%xmm6
-        pslld   $5,%xmm8
-        pandn   %xmm12,%xmm7
-        pand    %xmm11,%xmm6
-        punpckldq       %xmm9,%xmm2
-        movdqa  %xmm14,%xmm9
-
-        movdqa  %xmm1,16-128(%rax)
-        paddd   %xmm1,%xmm13
-        movd    -52(%r8),%xmm3
-        psrld   $27,%xmm9
-        pxor    %xmm7,%xmm6
-        movdqa  %xmm10,%xmm7
-
-        por     %xmm9,%xmm8
-        movd    -52(%r9),%xmm9
-        pslld   $30,%xmm7
-        paddd   %xmm6,%xmm13
-
-        psrld   $2,%xmm10
-        paddd   %xmm8,%xmm13
-.byte   102,15,56,0,213
-        movd    -52(%r10),%xmm8
-        por     %xmm7,%xmm10
-        movd    -52(%r11),%xmm7
-        punpckldq       %xmm8,%xmm3
-        movdqa  %xmm13,%xmm8
-        paddd   %xmm15,%xmm12
-        punpckldq       %xmm7,%xmm9
-        movdqa  %xmm14,%xmm7
-        movdqa  %xmm14,%xmm6
-        pslld   $5,%xmm8
-        pandn   %xmm11,%xmm7
-        pand    %xmm10,%xmm6
-        punpckldq       %xmm9,%xmm3
-        movdqa  %xmm13,%xmm9
-
-        movdqa  %xmm2,32-128(%rax)
-        paddd   %xmm2,%xmm12
-        movd    -48(%r8),%xmm4
-        psrld   $27,%xmm9
-        pxor    %xmm7,%xmm6
-        movdqa  %xmm14,%xmm7
-
-        por     %xmm9,%xmm8
-        movd    -48(%r9),%xmm9
-        pslld   $30,%xmm7
-        paddd   %xmm6,%xmm12
-
-        psrld   $2,%xmm14
-        paddd   %xmm8,%xmm12
-.byte   102,15,56,0,221
-        movd    -48(%r10),%xmm8
-        por     %xmm7,%xmm14
-        movd    -48(%r11),%xmm7
-        punpckldq       %xmm8,%xmm4
-        movdqa  %xmm12,%xmm8
-        paddd   %xmm15,%xmm11
-        punpckldq       %xmm7,%xmm9
-        movdqa  %xmm13,%xmm7
-        movdqa  %xmm13,%xmm6
-        pslld   $5,%xmm8
-        pandn   %xmm10,%xmm7
-        pand    %xmm14,%xmm6
-        punpckldq       %xmm9,%xmm4
-        movdqa  %xmm12,%xmm9
-
-        movdqa  %xmm3,48-128(%rax)
-        paddd   %xmm3,%xmm11
-        movd    -44(%r8),%xmm0
-        psrld   $27,%xmm9
-        pxor    %xmm7,%xmm6
-        movdqa  %xmm13,%xmm7
-
-        por     %xmm9,%xmm8
-        movd    -44(%r9),%xmm9
-        pslld   $30,%xmm7
-        paddd   %xmm6,%xmm11
-
-        psrld   $2,%xmm13
-        paddd   %xmm8,%xmm11
-.byte   102,15,56,0,229
-        movd    -44(%r10),%xmm8
-        por     %xmm7,%xmm13
-        movd    -44(%r11),%xmm7
-        punpckldq       %xmm8,%xmm0
-        movdqa  %xmm11,%xmm8
-        paddd   %xmm15,%xmm10
-        punpckldq       %xmm7,%xmm9
-        movdqa  %xmm12,%xmm7
-        movdqa  %xmm12,%xmm6
-        pslld   $5,%xmm8
-        pandn   %xmm14,%xmm7
-        pand    %xmm13,%xmm6
-        punpckldq       %xmm9,%xmm0
-        movdqa  %xmm11,%xmm9
-
-        movdqa  %xmm4,64-128(%rax)
-        paddd   %xmm4,%xmm10
-        movd    -40(%r8),%xmm1
-        psrld   $27,%xmm9
-        pxor    %xmm7,%xmm6
-        movdqa  %xmm12,%xmm7
-
-        por     %xmm9,%xmm8
-        movd    -40(%r9),%xmm9
-        pslld   $30,%xmm7
-        paddd   %xmm6,%xmm10
-
-        psrld   $2,%xmm12
-        paddd   %xmm8,%xmm10
-.byte   102,15,56,0,197
-        movd    -40(%r10),%xmm8
-        por     %xmm7,%xmm12
-        movd    -40(%r11),%xmm7
-        punpckldq       %xmm8,%xmm1
-        movdqa  %xmm10,%xmm8
-        paddd   %xmm15,%xmm14
-        punpckldq       %xmm7,%xmm9
-        movdqa  %xmm11,%xmm7
-        movdqa  %xmm11,%xmm6
-        pslld   $5,%xmm8
-        pandn   %xmm13,%xmm7
-        pand    %xmm12,%xmm6
-        punpckldq       %xmm9,%xmm1
-        movdqa  %xmm10,%xmm9
-
-        movdqa  %xmm0,80-128(%rax)
-        paddd   %xmm0,%xmm14
-        movd    -36(%r8),%xmm2
-        psrld   $27,%xmm9
-        pxor    %xmm7,%xmm6
-        movdqa  %xmm11,%xmm7
-
-        por     %xmm9,%xmm8
-        movd    -36(%r9),%xmm9
-        pslld   $30,%xmm7
-        paddd   %xmm6,%xmm14
-
-        psrld   $2,%xmm11
-        paddd   %xmm8,%xmm14
-.byte   102,15,56,0,205
-        movd    -36(%r10),%xmm8
-        por     %xmm7,%xmm11
-        movd    -36(%r11),%xmm7
-        punpckldq       %xmm8,%xmm2
-        movdqa  %xmm14,%xmm8
-        paddd   %xmm15,%xmm13
-        punpckldq       %xmm7,%xmm9
-        movdqa  %xmm10,%xmm7
-        movdqa  %xmm10,%xmm6
-        pslld   $5,%xmm8
-        pandn   %xmm12,%xmm7
-        pand    %xmm11,%xmm6
-        punpckldq       %xmm9,%xmm2
-        movdqa  %xmm14,%xmm9
-
-        movdqa  %xmm1,96-128(%rax)
-        paddd   %xmm1,%xmm13
-        movd    -32(%r8),%xmm3
-        psrld   $27,%xmm9
-        pxor    %xmm7,%xmm6
-        movdqa  %xmm10,%xmm7
-
-        por     %xmm9,%xmm8
-        movd    -32(%r9),%xmm9
-        pslld   $30,%xmm7
-        paddd   %xmm6,%xmm13
-
-        psrld   $2,%xmm10
-        paddd   %xmm8,%xmm13
-.byte   102,15,56,0,213
-        movd    -32(%r10),%xmm8
-        por     %xmm7,%xmm10
-        movd    -32(%r11),%xmm7
-        punpckldq       %xmm8,%xmm3
-        movdqa  %xmm13,%xmm8
-        paddd   %xmm15,%xmm12
-        punpckldq       %xmm7,%xmm9
-        movdqa  %xmm14,%xmm7
-        movdqa  %xmm14,%xmm6
-        pslld   $5,%xmm8
-        pandn   %xmm11,%xmm7
-        pand    %xmm10,%xmm6
-        punpckldq       %xmm9,%xmm3
-        movdqa  %xmm13,%xmm9
-
-        movdqa  %xmm2,112-128(%rax)
-        paddd   %xmm2,%xmm12
-        movd    -28(%r8),%xmm4
-        psrld   $27,%xmm9
-        pxor    %xmm7,%xmm6
-        movdqa  %xmm14,%xmm7
-
-        por     %xmm9,%xmm8
-        movd    -28(%r9),%xmm9
-        pslld   $30,%xmm7
-        paddd   %xmm6,%xmm12
-
-        psrld   $2,%xmm14
-        paddd   %xmm8,%xmm12
-.byte   102,15,56,0,221
-        movd    -28(%r10),%xmm8
-        por     %xmm7,%xmm14
-        movd    -28(%r11),%xmm7
-        punpckldq       %xmm8,%xmm4
-        movdqa  %xmm12,%xmm8
-        paddd   %xmm15,%xmm11
-        punpckldq       %xmm7,%xmm9
-        movdqa  %xmm13,%xmm7
-        movdqa  %xmm13,%xmm6
-        pslld   $5,%xmm8
-        pandn   %xmm10,%xmm7
-        pand    %xmm14,%xmm6
-        punpckldq       %xmm9,%xmm4
-        movdqa  %xmm12,%xmm9
-
-        movdqa  %xmm3,128-128(%rax)
-        paddd   %xmm3,%xmm11
-        movd    -24(%r8),%xmm0
-        psrld   $27,%xmm9
-        pxor    %xmm7,%xmm6
-        movdqa  %xmm13,%xmm7
-
-        por     %xmm9,%xmm8
-        movd    -24(%r9),%xmm9
-        pslld   $30,%xmm7
-        paddd   %xmm6,%xmm11
-
-        psrld   $2,%xmm13
-        paddd   %xmm8,%xmm11
-.byte   102,15,56,0,229
-        movd    -24(%r10),%xmm8
-        por     %xmm7,%xmm13
-        movd    -24(%r11),%xmm7
-        punpckldq       %xmm8,%xmm0
-        movdqa  %xmm11,%xmm8
-        paddd   %xmm15,%xmm10
-        punpckldq       %xmm7,%xmm9
-        movdqa  %xmm12,%xmm7
-        movdqa  %xmm12,%xmm6
-        pslld   $5,%xmm8
-        pandn   %xmm14,%xmm7
-        pand    %xmm13,%xmm6
-        punpckldq       %xmm9,%xmm0
-        movdqa  %xmm11,%xmm9
-
-        movdqa  %xmm4,144-128(%rax)
-        paddd   %xmm4,%xmm10
-        movd    -20(%r8),%xmm1
-        psrld   $27,%xmm9
-        pxor    %xmm7,%xmm6
-        movdqa  %xmm12,%xmm7
-
-        por     %xmm9,%xmm8
-        movd    -20(%r9),%xmm9
-        pslld   $30,%xmm7
-        paddd   %xmm6,%xmm10
-
-        psrld   $2,%xmm12
-        paddd   %xmm8,%xmm10
-.byte   102,15,56,0,197
-        movd    -20(%r10),%xmm8
-        por     %xmm7,%xmm12
-        movd    -20(%r11),%xmm7
-        punpckldq       %xmm8,%xmm1
-        movdqa  %xmm10,%xmm8
-        paddd   %xmm15,%xmm14
-        punpckldq       %xmm7,%xmm9
-        movdqa  %xmm11,%xmm7
-        movdqa  %xmm11,%xmm6
-        pslld   $5,%xmm8
-        pandn   %xmm13,%xmm7
-        pand    %xmm12,%xmm6
-        punpckldq       %xmm9,%xmm1
-        movdqa  %xmm10,%xmm9
-
-        movdqa  %xmm0,160-128(%rax)
-        paddd   %xmm0,%xmm14
-        movd    -16(%r8),%xmm2
-        psrld   $27,%xmm9
-        pxor    %xmm7,%xmm6
-        movdqa  %xmm11,%xmm7
-
-        por     %xmm9,%xmm8
-        movd    -16(%r9),%xmm9
-        pslld   $30,%xmm7
-        paddd   %xmm6,%xmm14
-
-        psrld   $2,%xmm11
-        paddd   %xmm8,%xmm14
-.byte   102,15,56,0,205
-        movd    -16(%r10),%xmm8
-        por     %xmm7,%xmm11
-        movd    -16(%r11),%xmm7
-        punpckldq       %xmm8,%xmm2
-        movdqa  %xmm14,%xmm8
-        paddd   %xmm15,%xmm13
-        punpckldq       %xmm7,%xmm9
-        movdqa  %xmm10,%xmm7
-        movdqa  %xmm10,%xmm6
-        pslld   $5,%xmm8
-        pandn   %xmm12,%xmm7
-        pand    %xmm11,%xmm6
-        punpckldq       %xmm9,%xmm2
-        movdqa  %xmm14,%xmm9
-
-        movdqa  %xmm1,176-128(%rax)
-        paddd   %xmm1,%xmm13
-        movd    -12(%r8),%xmm3
-        psrld   $27,%xmm9
-        pxor    %xmm7,%xmm6
-        movdqa  %xmm10,%xmm7
-
-        por     %xmm9,%xmm8
-        movd    -12(%r9),%xmm9
-        pslld   $30,%xmm7
-        paddd   %xmm6,%xmm13
-
-        psrld   $2,%xmm10
-        paddd   %xmm8,%xmm13
-.byte   102,15,56,0,213
-        movd    -12(%r10),%xmm8
-        por     %xmm7,%xmm10
-        movd    -12(%r11),%xmm7
-        punpckldq       %xmm8,%xmm3
-        movdqa  %xmm13,%xmm8
-        paddd   %xmm15,%xmm12
-        punpckldq       %xmm7,%xmm9
-        movdqa  %xmm14,%xmm7
-        movdqa  %xmm14,%xmm6
-        pslld   $5,%xmm8
-        pandn   %xmm11,%xmm7
-        pand    %xmm10,%xmm6
-        punpckldq       %xmm9,%xmm3
-        movdqa  %xmm13,%xmm9
-
-        movdqa  %xmm2,192-128(%rax)
-        paddd   %xmm2,%xmm12
-        movd    -8(%r8),%xmm4
-        psrld   $27,%xmm9
-        pxor    %xmm7,%xmm6
-        movdqa  %xmm14,%xmm7
-
-        por     %xmm9,%xmm8
-        movd    -8(%r9),%xmm9
-        pslld   $30,%xmm7
-        paddd   %xmm6,%xmm12
-
-        psrld   $2,%xmm14
-        paddd   %xmm8,%xmm12
-.byte   102,15,56,0,221
-        movd    -8(%r10),%xmm8
-        por     %xmm7,%xmm14
-        movd    -8(%r11),%xmm7
-        punpckldq       %xmm8,%xmm4
-        movdqa  %xmm12,%xmm8
-        paddd   %xmm15,%xmm11
-        punpckldq       %xmm7,%xmm9
-        movdqa  %xmm13,%xmm7
-        movdqa  %xmm13,%xmm6
-        pslld   $5,%xmm8
-        pandn   %xmm10,%xmm7
-        pand    %xmm14,%xmm6
-        punpckldq       %xmm9,%xmm4
-        movdqa  %xmm12,%xmm9
-
-        movdqa  %xmm3,208-128(%rax)
-        paddd   %xmm3,%xmm11
-        movd    -4(%r8),%xmm0
-        psrld   $27,%xmm9
-        pxor    %xmm7,%xmm6
-        movdqa  %xmm13,%xmm7
-
-        por     %xmm9,%xmm8
-        movd    -4(%r9),%xmm9
-        pslld   $30,%xmm7
-        paddd   %xmm6,%xmm11
-
-        psrld   $2,%xmm13
-        paddd   %xmm8,%xmm11
-.byte   102,15,56,0,229
-        movd    -4(%r10),%xmm8
-        por     %xmm7,%xmm13
-        movdqa  0-128(%rax),%xmm1
-        movd    -4(%r11),%xmm7
-        punpckldq       %xmm8,%xmm0
-        movdqa  %xmm11,%xmm8
-        paddd   %xmm15,%xmm10
-        punpckldq       %xmm7,%xmm9
-        movdqa  %xmm12,%xmm7
-        movdqa  %xmm12,%xmm6
-        pslld   $5,%xmm8
-        prefetcht0      63(%r8)
-        pandn   %xmm14,%xmm7
-        pand    %xmm13,%xmm6
-        punpckldq       %xmm9,%xmm0
-        movdqa  %xmm11,%xmm9
-
-        movdqa  %xmm4,224-128(%rax)
-        paddd   %xmm4,%xmm10
-        psrld   $27,%xmm9
-        pxor    %xmm7,%xmm6
-        movdqa  %xmm12,%xmm7
-        prefetcht0      63(%r9)
-
-        por     %xmm9,%xmm8
-        pslld   $30,%xmm7
-        paddd   %xmm6,%xmm10
-        prefetcht0      63(%r10)
-
-        psrld   $2,%xmm12
-        paddd   %xmm8,%xmm10
-.byte   102,15,56,0,197
-        prefetcht0      63(%r11)
-        por     %xmm7,%xmm12
-        movdqa  16-128(%rax),%xmm2
-        pxor    %xmm3,%xmm1
-        movdqa  32-128(%rax),%xmm3
-
-        movdqa  %xmm10,%xmm8
-        pxor    128-128(%rax),%xmm1
-        paddd   %xmm15,%xmm14
-        movdqa  %xmm11,%xmm7
-        pslld   $5,%xmm8
-        pxor    %xmm3,%xmm1
-        movdqa  %xmm11,%xmm6
-        pandn   %xmm13,%xmm7
-        movdqa  %xmm1,%xmm5
-        pand    %xmm12,%xmm6
-        movdqa  %xmm10,%xmm9
-        psrld   $31,%xmm5
-        paddd   %xmm1,%xmm1
-
-        movdqa  %xmm0,240-128(%rax)
-        paddd   %xmm0,%xmm14
-        psrld   $27,%xmm9
-        pxor    %xmm7,%xmm6
-
-        movdqa  %xmm11,%xmm7
-        por     %xmm9,%xmm8
-        pslld   $30,%xmm7
-        paddd   %xmm6,%xmm14
-
-        psrld   $2,%xmm11
-        paddd   %xmm8,%xmm14
-        por     %xmm5,%xmm1
-        por     %xmm7,%xmm11
-        pxor    %xmm4,%xmm2
-        movdqa  48-128(%rax),%xmm4
-
-        movdqa  %xmm14,%xmm8
-        pxor    144-128(%rax),%xmm2
-        paddd   %xmm15,%xmm13
-        movdqa  %xmm10,%xmm7
-        pslld   $5,%xmm8
-        pxor    %xmm4,%xmm2
-        movdqa  %xmm10,%xmm6
-        pandn   %xmm12,%xmm7
-        movdqa  %xmm2,%xmm5
-        pand    %xmm11,%xmm6
-        movdqa  %xmm14,%xmm9
-        psrld   $31,%xmm5
-        paddd   %xmm2,%xmm2
-
-        movdqa  %xmm1,0-128(%rax)
-        paddd   %xmm1,%xmm13
-        psrld   $27,%xmm9
-        pxor    %xmm7,%xmm6
-
-        movdqa  %xmm10,%xmm7
-        por     %xmm9,%xmm8
-        pslld   $30,%xmm7
-        paddd   %xmm6,%xmm13
-
-        psrld   $2,%xmm10
-        paddd   %xmm8,%xmm13
-        por     %xmm5,%xmm2
-        por     %xmm7,%xmm10
-        pxor    %xmm0,%xmm3
-        movdqa  64-128(%rax),%xmm0
-
-        movdqa  %xmm13,%xmm8
-        pxor    160-128(%rax),%xmm3
-        paddd   %xmm15,%xmm12
-        movdqa  %xmm14,%xmm7
-        pslld   $5,%xmm8
-        pxor    %xmm0,%xmm3
-        movdqa  %xmm14,%xmm6
-        pandn   %xmm11,%xmm7
-        movdqa  %xmm3,%xmm5
-        pand    %xmm10,%xmm6
-        movdqa  %xmm13,%xmm9
-        psrld   $31,%xmm5
-        paddd   %xmm3,%xmm3
-
-        movdqa  %xmm2,16-128(%rax)
-        paddd   %xmm2,%xmm12
-        psrld   $27,%xmm9
-        pxor    %xmm7,%xmm6
-
-        movdqa  %xmm14,%xmm7
-        por     %xmm9,%xmm8
-        pslld   $30,%xmm7
-        paddd   %xmm6,%xmm12
-
-        psrld   $2,%xmm14
-        paddd   %xmm8,%xmm12
-        por     %xmm5,%xmm3
-        por     %xmm7,%xmm14
-        pxor    %xmm1,%xmm4
-        movdqa  80-128(%rax),%xmm1
-
-        movdqa  %xmm12,%xmm8
-        pxor    176-128(%rax),%xmm4
-        paddd   %xmm15,%xmm11
-        movdqa  %xmm13,%xmm7
-        pslld   $5,%xmm8
-        pxor    %xmm1,%xmm4
-        movdqa  %xmm13,%xmm6
-        pandn   %xmm10,%xmm7
-        movdqa  %xmm4,%xmm5
-        pand    %xmm14,%xmm6
-        movdqa  %xmm12,%xmm9
-        psrld   $31,%xmm5
-        paddd   %xmm4,%xmm4
-
-        movdqa  %xmm3,32-128(%rax)
-        paddd   %xmm3,%xmm11
-        psrld   $27,%xmm9
-        pxor    %xmm7,%xmm6
-
-        movdqa  %xmm13,%xmm7
-        por     %xmm9,%xmm8
-        pslld   $30,%xmm7
-        paddd   %xmm6,%xmm11
-
-        psrld   $2,%xmm13
-        paddd   %xmm8,%xmm11
-        por     %xmm5,%xmm4
-        por     %xmm7,%xmm13
-        pxor    %xmm2,%xmm0
-        movdqa  96-128(%rax),%xmm2
-
-        movdqa  %xmm11,%xmm8
-        pxor    192-128(%rax),%xmm0
-        paddd   %xmm15,%xmm10
-        movdqa  %xmm12,%xmm7
-        pslld   $5,%xmm8
-        pxor    %xmm2,%xmm0
-        movdqa  %xmm12,%xmm6
-        pandn   %xmm14,%xmm7
-        movdqa  %xmm0,%xmm5
-        pand    %xmm13,%xmm6
-        movdqa  %xmm11,%xmm9
-        psrld   $31,%xmm5
-        paddd   %xmm0,%xmm0
-
-        movdqa  %xmm4,48-128(%rax)
-        paddd   %xmm4,%xmm10
-        psrld   $27,%xmm9
-        pxor    %xmm7,%xmm6
-
-        movdqa  %xmm12,%xmm7
-        por     %xmm9,%xmm8
-        pslld   $30,%xmm7
-        paddd   %xmm6,%xmm10
-
-        psrld   $2,%xmm12
-        paddd   %xmm8,%xmm10
-        por     %xmm5,%xmm0
-        por     %xmm7,%xmm12
-        movdqa  0(%rbp),%xmm15
-        pxor    %xmm3,%xmm1
-        movdqa  112-128(%rax),%xmm3
-
-        movdqa  %xmm10,%xmm8
-        movdqa  %xmm13,%xmm6
-        pxor    208-128(%rax),%xmm1
-        paddd   %xmm15,%xmm14
-        pslld   $5,%xmm8
-        pxor    %xmm11,%xmm6
-
-        movdqa  %xmm10,%xmm9
-        movdqa  %xmm0,64-128(%rax)
-        paddd   %xmm0,%xmm14
-        pxor    %xmm3,%xmm1
-        psrld   $27,%xmm9
-        pxor    %xmm12,%xmm6
-        movdqa  %xmm11,%xmm7
-
-        pslld   $30,%xmm7
-        movdqa  %xmm1,%xmm5
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        paddd   %xmm6,%xmm14
-        paddd   %xmm1,%xmm1
-
-        psrld   $2,%xmm11
-        paddd   %xmm8,%xmm14
-        por     %xmm5,%xmm1
-        por     %xmm7,%xmm11
-        pxor    %xmm4,%xmm2
-        movdqa  128-128(%rax),%xmm4
-
-        movdqa  %xmm14,%xmm8
-        movdqa  %xmm12,%xmm6
-        pxor    224-128(%rax),%xmm2
-        paddd   %xmm15,%xmm13
-        pslld   $5,%xmm8
-        pxor    %xmm10,%xmm6
-
-        movdqa  %xmm14,%xmm9
-        movdqa  %xmm1,80-128(%rax)
-        paddd   %xmm1,%xmm13
-        pxor    %xmm4,%xmm2
-        psrld   $27,%xmm9
-        pxor    %xmm11,%xmm6
-        movdqa  %xmm10,%xmm7
-
-        pslld   $30,%xmm7
-        movdqa  %xmm2,%xmm5
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        paddd   %xmm6,%xmm13
-        paddd   %xmm2,%xmm2
-
-        psrld   $2,%xmm10
-        paddd   %xmm8,%xmm13
-        por     %xmm5,%xmm2
-        por     %xmm7,%xmm10
-        pxor    %xmm0,%xmm3
-        movdqa  144-128(%rax),%xmm0
-
-        movdqa  %xmm13,%xmm8
-        movdqa  %xmm11,%xmm6
-        pxor    240-128(%rax),%xmm3
-        paddd   %xmm15,%xmm12
-        pslld   $5,%xmm8
-        pxor    %xmm14,%xmm6
-
-        movdqa  %xmm13,%xmm9
-        movdqa  %xmm2,96-128(%rax)
-        paddd   %xmm2,%xmm12
-        pxor    %xmm0,%xmm3
-        psrld   $27,%xmm9
-        pxor    %xmm10,%xmm6
-        movdqa  %xmm14,%xmm7
-
-        pslld   $30,%xmm7
-        movdqa  %xmm3,%xmm5
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        paddd   %xmm6,%xmm12
-        paddd   %xmm3,%xmm3
-
-        psrld   $2,%xmm14
-        paddd   %xmm8,%xmm12
-        por     %xmm5,%xmm3
-        por     %xmm7,%xmm14
-        pxor    %xmm1,%xmm4
-        movdqa  160-128(%rax),%xmm1
-
-        movdqa  %xmm12,%xmm8
-        movdqa  %xmm10,%xmm6
-        pxor    0-128(%rax),%xmm4
-        paddd   %xmm15,%xmm11
-        pslld   $5,%xmm8
-        pxor    %xmm13,%xmm6
-
-        movdqa  %xmm12,%xmm9
-        movdqa  %xmm3,112-128(%rax)
-        paddd   %xmm3,%xmm11
-        pxor    %xmm1,%xmm4
-        psrld   $27,%xmm9
-        pxor    %xmm14,%xmm6
-        movdqa  %xmm13,%xmm7
-
-        pslld   $30,%xmm7
-        movdqa  %xmm4,%xmm5
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        paddd   %xmm6,%xmm11
-        paddd   %xmm4,%xmm4
-
-        psrld   $2,%xmm13
-        paddd   %xmm8,%xmm11
-        por     %xmm5,%xmm4
-        por     %xmm7,%xmm13
-        pxor    %xmm2,%xmm0
-        movdqa  176-128(%rax),%xmm2
-
-        movdqa  %xmm11,%xmm8
-        movdqa  %xmm14,%xmm6
-        pxor    16-128(%rax),%xmm0
-        paddd   %xmm15,%xmm10
-        pslld   $5,%xmm8
-        pxor    %xmm12,%xmm6
-
-        movdqa  %xmm11,%xmm9
-        movdqa  %xmm4,128-128(%rax)
-        paddd   %xmm4,%xmm10
-        pxor    %xmm2,%xmm0
-        psrld   $27,%xmm9
-        pxor    %xmm13,%xmm6
-        movdqa  %xmm12,%xmm7
-
-        pslld   $30,%xmm7
-        movdqa  %xmm0,%xmm5
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        paddd   %xmm6,%xmm10
-        paddd   %xmm0,%xmm0
-
-        psrld   $2,%xmm12
-        paddd   %xmm8,%xmm10
-        por     %xmm5,%xmm0
-        por     %xmm7,%xmm12
-        pxor    %xmm3,%xmm1
-        movdqa  192-128(%rax),%xmm3
-
-        movdqa  %xmm10,%xmm8
-        movdqa  %xmm13,%xmm6
-        pxor    32-128(%rax),%xmm1
-        paddd   %xmm15,%xmm14
-        pslld   $5,%xmm8
-        pxor    %xmm11,%xmm6
-
-        movdqa  %xmm10,%xmm9
-        movdqa  %xmm0,144-128(%rax)
-        paddd   %xmm0,%xmm14
-        pxor    %xmm3,%xmm1
-        psrld   $27,%xmm9
-        pxor    %xmm12,%xmm6
-        movdqa  %xmm11,%xmm7
-
-        pslld   $30,%xmm7
-        movdqa  %xmm1,%xmm5
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        paddd   %xmm6,%xmm14
-        paddd   %xmm1,%xmm1
-
-        psrld   $2,%xmm11
-        paddd   %xmm8,%xmm14
-        por     %xmm5,%xmm1
-        por     %xmm7,%xmm11
-        pxor    %xmm4,%xmm2
-        movdqa  208-128(%rax),%xmm4
-
-        movdqa  %xmm14,%xmm8
-        movdqa  %xmm12,%xmm6
-        pxor    48-128(%rax),%xmm2
-        paddd   %xmm15,%xmm13
-        pslld   $5,%xmm8
-        pxor    %xmm10,%xmm6
-
-        movdqa  %xmm14,%xmm9
-        movdqa  %xmm1,160-128(%rax)
-        paddd   %xmm1,%xmm13
-        pxor    %xmm4,%xmm2
-        psrld   $27,%xmm9
-        pxor    %xmm11,%xmm6
-        movdqa  %xmm10,%xmm7
-
-        pslld   $30,%xmm7
-        movdqa  %xmm2,%xmm5
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        paddd   %xmm6,%xmm13
-        paddd   %xmm2,%xmm2
-
-        psrld   $2,%xmm10
-        paddd   %xmm8,%xmm13
-        por     %xmm5,%xmm2
-        por     %xmm7,%xmm10
-        pxor    %xmm0,%xmm3
-        movdqa  224-128(%rax),%xmm0
-
-        movdqa  %xmm13,%xmm8
-        movdqa  %xmm11,%xmm6
-        pxor    64-128(%rax),%xmm3
-        paddd   %xmm15,%xmm12
-        pslld   $5,%xmm8
-        pxor    %xmm14,%xmm6
-
-        movdqa  %xmm13,%xmm9
-        movdqa  %xmm2,176-128(%rax)
-        paddd   %xmm2,%xmm12
-        pxor    %xmm0,%xmm3
-        psrld   $27,%xmm9
-        pxor    %xmm10,%xmm6
-        movdqa  %xmm14,%xmm7
-
-        pslld   $30,%xmm7
-        movdqa  %xmm3,%xmm5
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        paddd   %xmm6,%xmm12
-        paddd   %xmm3,%xmm3
-
-        psrld   $2,%xmm14
-        paddd   %xmm8,%xmm12
-        por     %xmm5,%xmm3
-        por     %xmm7,%xmm14
-        pxor    %xmm1,%xmm4
-        movdqa  240-128(%rax),%xmm1
-
-        movdqa  %xmm12,%xmm8
-        movdqa  %xmm10,%xmm6
-        pxor    80-128(%rax),%xmm4
-        paddd   %xmm15,%xmm11
-        pslld   $5,%xmm8
-        pxor    %xmm13,%xmm6
-
-        movdqa  %xmm12,%xmm9
-        movdqa  %xmm3,192-128(%rax)
-        paddd   %xmm3,%xmm11
-        pxor    %xmm1,%xmm4
-        psrld   $27,%xmm9
-        pxor    %xmm14,%xmm6
-        movdqa  %xmm13,%xmm7
-
-        pslld   $30,%xmm7
-        movdqa  %xmm4,%xmm5
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        paddd   %xmm6,%xmm11
-        paddd   %xmm4,%xmm4
-
-        psrld   $2,%xmm13
-        paddd   %xmm8,%xmm11
-        por     %xmm5,%xmm4
-        por     %xmm7,%xmm13
-        pxor    %xmm2,%xmm0
-        movdqa  0-128(%rax),%xmm2
-
-        movdqa  %xmm11,%xmm8
-        movdqa  %xmm14,%xmm6
-        pxor    96-128(%rax),%xmm0
-        paddd   %xmm15,%xmm10
-        pslld   $5,%xmm8
-        pxor    %xmm12,%xmm6
-
-        movdqa  %xmm11,%xmm9
-        movdqa  %xmm4,208-128(%rax)
-        paddd   %xmm4,%xmm10
-        pxor    %xmm2,%xmm0
-        psrld   $27,%xmm9
-        pxor    %xmm13,%xmm6
-        movdqa  %xmm12,%xmm7
-
-        pslld   $30,%xmm7
-        movdqa  %xmm0,%xmm5
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        paddd   %xmm6,%xmm10
-        paddd   %xmm0,%xmm0
-
-        psrld   $2,%xmm12
-        paddd   %xmm8,%xmm10
-        por     %xmm5,%xmm0
-        por     %xmm7,%xmm12
-        pxor    %xmm3,%xmm1
-        movdqa  16-128(%rax),%xmm3
-
-        movdqa  %xmm10,%xmm8
-        movdqa  %xmm13,%xmm6
-        pxor    112-128(%rax),%xmm1
-        paddd   %xmm15,%xmm14
-        pslld   $5,%xmm8
-        pxor    %xmm11,%xmm6
-
-        movdqa  %xmm10,%xmm9
-        movdqa  %xmm0,224-128(%rax)
-        paddd   %xmm0,%xmm14
-        pxor    %xmm3,%xmm1
-        psrld   $27,%xmm9
-        pxor    %xmm12,%xmm6
-        movdqa  %xmm11,%xmm7
-
-        pslld   $30,%xmm7
-        movdqa  %xmm1,%xmm5
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        paddd   %xmm6,%xmm14
-        paddd   %xmm1,%xmm1
-
-        psrld   $2,%xmm11
-        paddd   %xmm8,%xmm14
-        por     %xmm5,%xmm1
-        por     %xmm7,%xmm11
-        pxor    %xmm4,%xmm2
-        movdqa  32-128(%rax),%xmm4
-
-        movdqa  %xmm14,%xmm8
-        movdqa  %xmm12,%xmm6
-        pxor    128-128(%rax),%xmm2
-        paddd   %xmm15,%xmm13
-        pslld   $5,%xmm8
-        pxor    %xmm10,%xmm6
-
-        movdqa  %xmm14,%xmm9
-        movdqa  %xmm1,240-128(%rax)
-        paddd   %xmm1,%xmm13
-        pxor    %xmm4,%xmm2
-        psrld   $27,%xmm9
-        pxor    %xmm11,%xmm6
-        movdqa  %xmm10,%xmm7
-
-        pslld   $30,%xmm7
-        movdqa  %xmm2,%xmm5
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        paddd   %xmm6,%xmm13
-        paddd   %xmm2,%xmm2
-
-        psrld   $2,%xmm10
-        paddd   %xmm8,%xmm13
-        por     %xmm5,%xmm2
-        por     %xmm7,%xmm10
-        pxor    %xmm0,%xmm3
-        movdqa  48-128(%rax),%xmm0
-
-        movdqa  %xmm13,%xmm8
-        movdqa  %xmm11,%xmm6
-        pxor    144-128(%rax),%xmm3
-        paddd   %xmm15,%xmm12
-        pslld   $5,%xmm8
-        pxor    %xmm14,%xmm6
-
-        movdqa  %xmm13,%xmm9
-        movdqa  %xmm2,0-128(%rax)
-        paddd   %xmm2,%xmm12
-        pxor    %xmm0,%xmm3
-        psrld   $27,%xmm9
-        pxor    %xmm10,%xmm6
-        movdqa  %xmm14,%xmm7
-
-        pslld   $30,%xmm7
-        movdqa  %xmm3,%xmm5
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        paddd   %xmm6,%xmm12
-        paddd   %xmm3,%xmm3
-
-        psrld   $2,%xmm14
-        paddd   %xmm8,%xmm12
-        por     %xmm5,%xmm3
-        por     %xmm7,%xmm14
-        pxor    %xmm1,%xmm4
-        movdqa  64-128(%rax),%xmm1
-
-        movdqa  %xmm12,%xmm8
-        movdqa  %xmm10,%xmm6
-        pxor    160-128(%rax),%xmm4
-        paddd   %xmm15,%xmm11
-        pslld   $5,%xmm8
-        pxor    %xmm13,%xmm6
-
-        movdqa  %xmm12,%xmm9
-        movdqa  %xmm3,16-128(%rax)
-        paddd   %xmm3,%xmm11
-        pxor    %xmm1,%xmm4
-        psrld   $27,%xmm9
-        pxor    %xmm14,%xmm6
-        movdqa  %xmm13,%xmm7
-
-        pslld   $30,%xmm7
-        movdqa  %xmm4,%xmm5
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        paddd   %xmm6,%xmm11
-        paddd   %xmm4,%xmm4
-
-        psrld   $2,%xmm13
-        paddd   %xmm8,%xmm11
-        por     %xmm5,%xmm4
-        por     %xmm7,%xmm13
-        pxor    %xmm2,%xmm0
-        movdqa  80-128(%rax),%xmm2
-
-        movdqa  %xmm11,%xmm8
-        movdqa  %xmm14,%xmm6
-        pxor    176-128(%rax),%xmm0
-        paddd   %xmm15,%xmm10
-        pslld   $5,%xmm8
-        pxor    %xmm12,%xmm6
-
-        movdqa  %xmm11,%xmm9
-        movdqa  %xmm4,32-128(%rax)
-        paddd   %xmm4,%xmm10
-        pxor    %xmm2,%xmm0
-        psrld   $27,%xmm9
-        pxor    %xmm13,%xmm6
-        movdqa  %xmm12,%xmm7
-
-        pslld   $30,%xmm7
-        movdqa  %xmm0,%xmm5
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        paddd   %xmm6,%xmm10
-        paddd   %xmm0,%xmm0
-
-        psrld   $2,%xmm12
-        paddd   %xmm8,%xmm10
-        por     %xmm5,%xmm0
-        por     %xmm7,%xmm12
-        pxor    %xmm3,%xmm1
-        movdqa  96-128(%rax),%xmm3
-
-        movdqa  %xmm10,%xmm8
-        movdqa  %xmm13,%xmm6
-        pxor    192-128(%rax),%xmm1
-        paddd   %xmm15,%xmm14
-        pslld   $5,%xmm8
-        pxor    %xmm11,%xmm6
-
-        movdqa  %xmm10,%xmm9
-        movdqa  %xmm0,48-128(%rax)
-        paddd   %xmm0,%xmm14
-        pxor    %xmm3,%xmm1
-        psrld   $27,%xmm9
-        pxor    %xmm12,%xmm6
-        movdqa  %xmm11,%xmm7
-
-        pslld   $30,%xmm7
-        movdqa  %xmm1,%xmm5
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        paddd   %xmm6,%xmm14
-        paddd   %xmm1,%xmm1
-
-        psrld   $2,%xmm11
-        paddd   %xmm8,%xmm14
-        por     %xmm5,%xmm1
-        por     %xmm7,%xmm11
-        pxor    %xmm4,%xmm2
-        movdqa  112-128(%rax),%xmm4
-
-        movdqa  %xmm14,%xmm8
-        movdqa  %xmm12,%xmm6
-        pxor    208-128(%rax),%xmm2
-        paddd   %xmm15,%xmm13
-        pslld   $5,%xmm8
-        pxor    %xmm10,%xmm6
-
-        movdqa  %xmm14,%xmm9
-        movdqa  %xmm1,64-128(%rax)
-        paddd   %xmm1,%xmm13
-        pxor    %xmm4,%xmm2
-        psrld   $27,%xmm9
-        pxor    %xmm11,%xmm6
-        movdqa  %xmm10,%xmm7
-
-        pslld   $30,%xmm7
-        movdqa  %xmm2,%xmm5
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        paddd   %xmm6,%xmm13
-        paddd   %xmm2,%xmm2
-
-        psrld   $2,%xmm10
-        paddd   %xmm8,%xmm13
-        por     %xmm5,%xmm2
-        por     %xmm7,%xmm10
-        pxor    %xmm0,%xmm3
-        movdqa  128-128(%rax),%xmm0
-
-        movdqa  %xmm13,%xmm8
-        movdqa  %xmm11,%xmm6
-        pxor    224-128(%rax),%xmm3
-        paddd   %xmm15,%xmm12
-        pslld   $5,%xmm8
-        pxor    %xmm14,%xmm6
-
-        movdqa  %xmm13,%xmm9
-        movdqa  %xmm2,80-128(%rax)
-        paddd   %xmm2,%xmm12
-        pxor    %xmm0,%xmm3
-        psrld   $27,%xmm9
-        pxor    %xmm10,%xmm6
-        movdqa  %xmm14,%xmm7
-
-        pslld   $30,%xmm7
-        movdqa  %xmm3,%xmm5
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        paddd   %xmm6,%xmm12
-        paddd   %xmm3,%xmm3
-
-        psrld   $2,%xmm14
-        paddd   %xmm8,%xmm12
-        por     %xmm5,%xmm3
-        por     %xmm7,%xmm14
-        pxor    %xmm1,%xmm4
-        movdqa  144-128(%rax),%xmm1
-
-        movdqa  %xmm12,%xmm8
-        movdqa  %xmm10,%xmm6
-        pxor    240-128(%rax),%xmm4
-        paddd   %xmm15,%xmm11
-        pslld   $5,%xmm8
-        pxor    %xmm13,%xmm6
-
-        movdqa  %xmm12,%xmm9
-        movdqa  %xmm3,96-128(%rax)
-        paddd   %xmm3,%xmm11
-        pxor    %xmm1,%xmm4
-        psrld   $27,%xmm9
-        pxor    %xmm14,%xmm6
-        movdqa  %xmm13,%xmm7
-
-        pslld   $30,%xmm7
-        movdqa  %xmm4,%xmm5
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        paddd   %xmm6,%xmm11
-        paddd   %xmm4,%xmm4
-
-        psrld   $2,%xmm13
-        paddd   %xmm8,%xmm11
-        por     %xmm5,%xmm4
-        por     %xmm7,%xmm13
-        pxor    %xmm2,%xmm0
-        movdqa  160-128(%rax),%xmm2
-
-        movdqa  %xmm11,%xmm8
-        movdqa  %xmm14,%xmm6
-        pxor    0-128(%rax),%xmm0
-        paddd   %xmm15,%xmm10
-        pslld   $5,%xmm8
-        pxor    %xmm12,%xmm6
-
-        movdqa  %xmm11,%xmm9
-        movdqa  %xmm4,112-128(%rax)
-        paddd   %xmm4,%xmm10
-        pxor    %xmm2,%xmm0
-        psrld   $27,%xmm9
-        pxor    %xmm13,%xmm6
-        movdqa  %xmm12,%xmm7
-
-        pslld   $30,%xmm7
-        movdqa  %xmm0,%xmm5
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        paddd   %xmm6,%xmm10
-        paddd   %xmm0,%xmm0
-
-        psrld   $2,%xmm12
-        paddd   %xmm8,%xmm10
-        por     %xmm5,%xmm0
-        por     %xmm7,%xmm12
-        movdqa  32(%rbp),%xmm15
-        pxor    %xmm3,%xmm1
-        movdqa  176-128(%rax),%xmm3
-
-        movdqa  %xmm10,%xmm8
-        movdqa  %xmm13,%xmm7
-        pxor    16-128(%rax),%xmm1
-        pxor    %xmm3,%xmm1
-        paddd   %xmm15,%xmm14
-        pslld   $5,%xmm8
-        movdqa  %xmm10,%xmm9
-        pand    %xmm12,%xmm7
-
-        movdqa  %xmm13,%xmm6
-        movdqa  %xmm1,%xmm5
-        psrld   $27,%xmm9
-        paddd   %xmm7,%xmm14
-        pxor    %xmm12,%xmm6
-
-        movdqa  %xmm0,128-128(%rax)
-        paddd   %xmm0,%xmm14
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        pand    %xmm11,%xmm6
-        movdqa  %xmm11,%xmm7
-
-        pslld   $30,%xmm7
-        paddd   %xmm1,%xmm1
-        paddd   %xmm6,%xmm14
-
-        psrld   $2,%xmm11
-        paddd   %xmm8,%xmm14
-        por     %xmm5,%xmm1
-        por     %xmm7,%xmm11
-        pxor    %xmm4,%xmm2
-        movdqa  192-128(%rax),%xmm4
-
-        movdqa  %xmm14,%xmm8
-        movdqa  %xmm12,%xmm7
-        pxor    32-128(%rax),%xmm2
-        pxor    %xmm4,%xmm2
-        paddd   %xmm15,%xmm13
-        pslld   $5,%xmm8
-        movdqa  %xmm14,%xmm9
-        pand    %xmm11,%xmm7
-
-        movdqa  %xmm12,%xmm6
-        movdqa  %xmm2,%xmm5
-        psrld   $27,%xmm9
-        paddd   %xmm7,%xmm13
-        pxor    %xmm11,%xmm6
-
-        movdqa  %xmm1,144-128(%rax)
-        paddd   %xmm1,%xmm13
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        pand    %xmm10,%xmm6
-        movdqa  %xmm10,%xmm7
-
-        pslld   $30,%xmm7
-        paddd   %xmm2,%xmm2
-        paddd   %xmm6,%xmm13
-
-        psrld   $2,%xmm10
-        paddd   %xmm8,%xmm13
-        por     %xmm5,%xmm2
-        por     %xmm7,%xmm10
-        pxor    %xmm0,%xmm3
-        movdqa  208-128(%rax),%xmm0
-
-        movdqa  %xmm13,%xmm8
-        movdqa  %xmm11,%xmm7
-        pxor    48-128(%rax),%xmm3
-        pxor    %xmm0,%xmm3
-        paddd   %xmm15,%xmm12
-        pslld   $5,%xmm8
-        movdqa  %xmm13,%xmm9
-        pand    %xmm10,%xmm7
-
-        movdqa  %xmm11,%xmm6
-        movdqa  %xmm3,%xmm5
-        psrld   $27,%xmm9
-        paddd   %xmm7,%xmm12
-        pxor    %xmm10,%xmm6
-
-        movdqa  %xmm2,160-128(%rax)
-        paddd   %xmm2,%xmm12
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        pand    %xmm14,%xmm6
-        movdqa  %xmm14,%xmm7
-
-        pslld   $30,%xmm7
-        paddd   %xmm3,%xmm3
-        paddd   %xmm6,%xmm12
-
-        psrld   $2,%xmm14
-        paddd   %xmm8,%xmm12
-        por     %xmm5,%xmm3
-        por     %xmm7,%xmm14
-        pxor    %xmm1,%xmm4
-        movdqa  224-128(%rax),%xmm1
-
-        movdqa  %xmm12,%xmm8
-        movdqa  %xmm10,%xmm7
-        pxor    64-128(%rax),%xmm4
-        pxor    %xmm1,%xmm4
-        paddd   %xmm15,%xmm11
-        pslld   $5,%xmm8
-        movdqa  %xmm12,%xmm9
-        pand    %xmm14,%xmm7
-
-        movdqa  %xmm10,%xmm6
-        movdqa  %xmm4,%xmm5
-        psrld   $27,%xmm9
-        paddd   %xmm7,%xmm11
-        pxor    %xmm14,%xmm6
-
-        movdqa  %xmm3,176-128(%rax)
-        paddd   %xmm3,%xmm11
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        pand    %xmm13,%xmm6
-        movdqa  %xmm13,%xmm7
-
-        pslld   $30,%xmm7
-        paddd   %xmm4,%xmm4
-        paddd   %xmm6,%xmm11
-
-        psrld   $2,%xmm13
-        paddd   %xmm8,%xmm11
-        por     %xmm5,%xmm4
-        por     %xmm7,%xmm13
-        pxor    %xmm2,%xmm0
-        movdqa  240-128(%rax),%xmm2
-
-        movdqa  %xmm11,%xmm8
-        movdqa  %xmm14,%xmm7
-        pxor    80-128(%rax),%xmm0
-        pxor    %xmm2,%xmm0
-        paddd   %xmm15,%xmm10
-        pslld   $5,%xmm8
-        movdqa  %xmm11,%xmm9
-        pand    %xmm13,%xmm7
-
-        movdqa  %xmm14,%xmm6
-        movdqa  %xmm0,%xmm5
-        psrld   $27,%xmm9
-        paddd   %xmm7,%xmm10
-        pxor    %xmm13,%xmm6
-
-        movdqa  %xmm4,192-128(%rax)
-        paddd   %xmm4,%xmm10
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        pand    %xmm12,%xmm6
-        movdqa  %xmm12,%xmm7
-
-        pslld   $30,%xmm7
-        paddd   %xmm0,%xmm0
-        paddd   %xmm6,%xmm10
-
-        psrld   $2,%xmm12
-        paddd   %xmm8,%xmm10
-        por     %xmm5,%xmm0
-        por     %xmm7,%xmm12
-        pxor    %xmm3,%xmm1
-        movdqa  0-128(%rax),%xmm3
-
-        movdqa  %xmm10,%xmm8
-        movdqa  %xmm13,%xmm7
-        pxor    96-128(%rax),%xmm1
-        pxor    %xmm3,%xmm1
-        paddd   %xmm15,%xmm14
-        pslld   $5,%xmm8
-        movdqa  %xmm10,%xmm9
-        pand    %xmm12,%xmm7
-
-        movdqa  %xmm13,%xmm6
-        movdqa  %xmm1,%xmm5
-        psrld   $27,%xmm9
-        paddd   %xmm7,%xmm14
-        pxor    %xmm12,%xmm6
-
-        movdqa  %xmm0,208-128(%rax)
-        paddd   %xmm0,%xmm14
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        pand    %xmm11,%xmm6
-        movdqa  %xmm11,%xmm7
-
-        pslld   $30,%xmm7
-        paddd   %xmm1,%xmm1
-        paddd   %xmm6,%xmm14
-
-        psrld   $2,%xmm11
-        paddd   %xmm8,%xmm14
-        por     %xmm5,%xmm1
-        por     %xmm7,%xmm11
-        pxor    %xmm4,%xmm2
-        movdqa  16-128(%rax),%xmm4
-
-        movdqa  %xmm14,%xmm8
-        movdqa  %xmm12,%xmm7
-        pxor    112-128(%rax),%xmm2
-        pxor    %xmm4,%xmm2
-        paddd   %xmm15,%xmm13
-        pslld   $5,%xmm8
-        movdqa  %xmm14,%xmm9
-        pand    %xmm11,%xmm7
-
-        movdqa  %xmm12,%xmm6
-        movdqa  %xmm2,%xmm5
-        psrld   $27,%xmm9
-        paddd   %xmm7,%xmm13
-        pxor    %xmm11,%xmm6
-
-        movdqa  %xmm1,224-128(%rax)
-        paddd   %xmm1,%xmm13
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        pand    %xmm10,%xmm6
-        movdqa  %xmm10,%xmm7
-
-        pslld   $30,%xmm7
-        paddd   %xmm2,%xmm2
-        paddd   %xmm6,%xmm13
-
-        psrld   $2,%xmm10
-        paddd   %xmm8,%xmm13
-        por     %xmm5,%xmm2
-        por     %xmm7,%xmm10
-        pxor    %xmm0,%xmm3
-        movdqa  32-128(%rax),%xmm0
-
-        movdqa  %xmm13,%xmm8
-        movdqa  %xmm11,%xmm7
-        pxor    128-128(%rax),%xmm3
-        pxor    %xmm0,%xmm3
-        paddd   %xmm15,%xmm12
-        pslld   $5,%xmm8
-        movdqa  %xmm13,%xmm9
-        pand    %xmm10,%xmm7
-
-        movdqa  %xmm11,%xmm6
-        movdqa  %xmm3,%xmm5
-        psrld   $27,%xmm9
-        paddd   %xmm7,%xmm12
-        pxor    %xmm10,%xmm6
-
-        movdqa  %xmm2,240-128(%rax)
-        paddd   %xmm2,%xmm12
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        pand    %xmm14,%xmm6
-        movdqa  %xmm14,%xmm7
-
-        pslld   $30,%xmm7
-        paddd   %xmm3,%xmm3
-        paddd   %xmm6,%xmm12
-
-        psrld   $2,%xmm14
-        paddd   %xmm8,%xmm12
-        por     %xmm5,%xmm3
-        por     %xmm7,%xmm14
-        pxor    %xmm1,%xmm4
-        movdqa  48-128(%rax),%xmm1
-
-        movdqa  %xmm12,%xmm8
-        movdqa  %xmm10,%xmm7
-        pxor    144-128(%rax),%xmm4
-        pxor    %xmm1,%xmm4
-        paddd   %xmm15,%xmm11
-        pslld   $5,%xmm8
-        movdqa  %xmm12,%xmm9
-        pand    %xmm14,%xmm7
-
-        movdqa  %xmm10,%xmm6
-        movdqa  %xmm4,%xmm5
-        psrld   $27,%xmm9
-        paddd   %xmm7,%xmm11
-        pxor    %xmm14,%xmm6
-
-        movdqa  %xmm3,0-128(%rax)
-        paddd   %xmm3,%xmm11
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        pand    %xmm13,%xmm6
-        movdqa  %xmm13,%xmm7
-
-        pslld   $30,%xmm7
-        paddd   %xmm4,%xmm4
-        paddd   %xmm6,%xmm11
-
-        psrld   $2,%xmm13
-        paddd   %xmm8,%xmm11
-        por     %xmm5,%xmm4
-        por     %xmm7,%xmm13
-        pxor    %xmm2,%xmm0
-        movdqa  64-128(%rax),%xmm2
-
-        movdqa  %xmm11,%xmm8
-        movdqa  %xmm14,%xmm7
-        pxor    160-128(%rax),%xmm0
-        pxor    %xmm2,%xmm0
-        paddd   %xmm15,%xmm10
-        pslld   $5,%xmm8
-        movdqa  %xmm11,%xmm9
-        pand    %xmm13,%xmm7
-
-        movdqa  %xmm14,%xmm6
-        movdqa  %xmm0,%xmm5
-        psrld   $27,%xmm9
-        paddd   %xmm7,%xmm10
-        pxor    %xmm13,%xmm6
-
-        movdqa  %xmm4,16-128(%rax)
-        paddd   %xmm4,%xmm10
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        pand    %xmm12,%xmm6
-        movdqa  %xmm12,%xmm7
-
-        pslld   $30,%xmm7
-        paddd   %xmm0,%xmm0
-        paddd   %xmm6,%xmm10
-
-        psrld   $2,%xmm12
-        paddd   %xmm8,%xmm10
-        por     %xmm5,%xmm0
-        por     %xmm7,%xmm12
-        pxor    %xmm3,%xmm1
-        movdqa  80-128(%rax),%xmm3
-
-        movdqa  %xmm10,%xmm8
-        movdqa  %xmm13,%xmm7
-        pxor    176-128(%rax),%xmm1
-        pxor    %xmm3,%xmm1
-        paddd   %xmm15,%xmm14
-        pslld   $5,%xmm8
-        movdqa  %xmm10,%xmm9
-        pand    %xmm12,%xmm7
-
-        movdqa  %xmm13,%xmm6
-        movdqa  %xmm1,%xmm5
-        psrld   $27,%xmm9
-        paddd   %xmm7,%xmm14
-        pxor    %xmm12,%xmm6
-
-        movdqa  %xmm0,32-128(%rax)
-        paddd   %xmm0,%xmm14
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        pand    %xmm11,%xmm6
-        movdqa  %xmm11,%xmm7
-
-        pslld   $30,%xmm7
-        paddd   %xmm1,%xmm1
-        paddd   %xmm6,%xmm14
-
-        psrld   $2,%xmm11
-        paddd   %xmm8,%xmm14
-        por     %xmm5,%xmm1
-        por     %xmm7,%xmm11
-        pxor    %xmm4,%xmm2
-        movdqa  96-128(%rax),%xmm4
-
-        movdqa  %xmm14,%xmm8
-        movdqa  %xmm12,%xmm7
-        pxor    192-128(%rax),%xmm2
-        pxor    %xmm4,%xmm2
-        paddd   %xmm15,%xmm13
-        pslld   $5,%xmm8
-        movdqa  %xmm14,%xmm9
-        pand    %xmm11,%xmm7
-
-        movdqa  %xmm12,%xmm6
-        movdqa  %xmm2,%xmm5
-        psrld   $27,%xmm9
-        paddd   %xmm7,%xmm13
-        pxor    %xmm11,%xmm6
-
-        movdqa  %xmm1,48-128(%rax)
-        paddd   %xmm1,%xmm13
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        pand    %xmm10,%xmm6
-        movdqa  %xmm10,%xmm7
-
-        pslld   $30,%xmm7
-        paddd   %xmm2,%xmm2
-        paddd   %xmm6,%xmm13
-
-        psrld   $2,%xmm10
-        paddd   %xmm8,%xmm13
-        por     %xmm5,%xmm2
-        por     %xmm7,%xmm10
-        pxor    %xmm0,%xmm3
-        movdqa  112-128(%rax),%xmm0
-
-        movdqa  %xmm13,%xmm8
-        movdqa  %xmm11,%xmm7
-        pxor    208-128(%rax),%xmm3
-        pxor    %xmm0,%xmm3
-        paddd   %xmm15,%xmm12
-        pslld   $5,%xmm8
-        movdqa  %xmm13,%xmm9
-        pand    %xmm10,%xmm7
-
-        movdqa  %xmm11,%xmm6
-        movdqa  %xmm3,%xmm5
-        psrld   $27,%xmm9
-        paddd   %xmm7,%xmm12
-        pxor    %xmm10,%xmm6
-
-        movdqa  %xmm2,64-128(%rax)
-        paddd   %xmm2,%xmm12
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        pand    %xmm14,%xmm6
-        movdqa  %xmm14,%xmm7
-
-        pslld   $30,%xmm7
-        paddd   %xmm3,%xmm3
-        paddd   %xmm6,%xmm12
-
-        psrld   $2,%xmm14
-        paddd   %xmm8,%xmm12
-        por     %xmm5,%xmm3
-        por     %xmm7,%xmm14
-        pxor    %xmm1,%xmm4
-        movdqa  128-128(%rax),%xmm1
-
-        movdqa  %xmm12,%xmm8
-        movdqa  %xmm10,%xmm7
-        pxor    224-128(%rax),%xmm4
-        pxor    %xmm1,%xmm4
-        paddd   %xmm15,%xmm11
-        pslld   $5,%xmm8
-        movdqa  %xmm12,%xmm9
-        pand    %xmm14,%xmm7
-
-        movdqa  %xmm10,%xmm6
-        movdqa  %xmm4,%xmm5
-        psrld   $27,%xmm9
-        paddd   %xmm7,%xmm11
-        pxor    %xmm14,%xmm6
-
-        movdqa  %xmm3,80-128(%rax)
-        paddd   %xmm3,%xmm11
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        pand    %xmm13,%xmm6
-        movdqa  %xmm13,%xmm7
-
-        pslld   $30,%xmm7
-        paddd   %xmm4,%xmm4
-        paddd   %xmm6,%xmm11
-
-        psrld   $2,%xmm13
-        paddd   %xmm8,%xmm11
-        por     %xmm5,%xmm4
-        por     %xmm7,%xmm13
-        pxor    %xmm2,%xmm0
-        movdqa  144-128(%rax),%xmm2
-
-        movdqa  %xmm11,%xmm8
-        movdqa  %xmm14,%xmm7
-        pxor    240-128(%rax),%xmm0
-        pxor    %xmm2,%xmm0
-        paddd   %xmm15,%xmm10
-        pslld   $5,%xmm8
-        movdqa  %xmm11,%xmm9
-        pand    %xmm13,%xmm7
-
-        movdqa  %xmm14,%xmm6
-        movdqa  %xmm0,%xmm5
-        psrld   $27,%xmm9
-        paddd   %xmm7,%xmm10
-        pxor    %xmm13,%xmm6
-
-        movdqa  %xmm4,96-128(%rax)
-        paddd   %xmm4,%xmm10
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        pand    %xmm12,%xmm6
-        movdqa  %xmm12,%xmm7
-
-        pslld   $30,%xmm7
-        paddd   %xmm0,%xmm0
-        paddd   %xmm6,%xmm10
-
-        psrld   $2,%xmm12
-        paddd   %xmm8,%xmm10
-        por     %xmm5,%xmm0
-        por     %xmm7,%xmm12
-        pxor    %xmm3,%xmm1
-        movdqa  160-128(%rax),%xmm3
-
-        movdqa  %xmm10,%xmm8
-        movdqa  %xmm13,%xmm7
-        pxor    0-128(%rax),%xmm1
-        pxor    %xmm3,%xmm1
-        paddd   %xmm15,%xmm14
-        pslld   $5,%xmm8
-        movdqa  %xmm10,%xmm9
-        pand    %xmm12,%xmm7
-
-        movdqa  %xmm13,%xmm6
-        movdqa  %xmm1,%xmm5
-        psrld   $27,%xmm9
-        paddd   %xmm7,%xmm14
-        pxor    %xmm12,%xmm6
-
-        movdqa  %xmm0,112-128(%rax)
-        paddd   %xmm0,%xmm14
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        pand    %xmm11,%xmm6
-        movdqa  %xmm11,%xmm7
-
-        pslld   $30,%xmm7
-        paddd   %xmm1,%xmm1
-        paddd   %xmm6,%xmm14
-
-        psrld   $2,%xmm11
-        paddd   %xmm8,%xmm14
-        por     %xmm5,%xmm1
-        por     %xmm7,%xmm11
-        pxor    %xmm4,%xmm2
-        movdqa  176-128(%rax),%xmm4
-
-        movdqa  %xmm14,%xmm8
-        movdqa  %xmm12,%xmm7
-        pxor    16-128(%rax),%xmm2
-        pxor    %xmm4,%xmm2
-        paddd   %xmm15,%xmm13
-        pslld   $5,%xmm8
-        movdqa  %xmm14,%xmm9
-        pand    %xmm11,%xmm7
-
-        movdqa  %xmm12,%xmm6
-        movdqa  %xmm2,%xmm5
-        psrld   $27,%xmm9
-        paddd   %xmm7,%xmm13
-        pxor    %xmm11,%xmm6
-
-        movdqa  %xmm1,128-128(%rax)
-        paddd   %xmm1,%xmm13
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        pand    %xmm10,%xmm6
-        movdqa  %xmm10,%xmm7
-
-        pslld   $30,%xmm7
-        paddd   %xmm2,%xmm2
-        paddd   %xmm6,%xmm13
-
-        psrld   $2,%xmm10
-        paddd   %xmm8,%xmm13
-        por     %xmm5,%xmm2
-        por     %xmm7,%xmm10
-        pxor    %xmm0,%xmm3
-        movdqa  192-128(%rax),%xmm0
-
-        movdqa  %xmm13,%xmm8
-        movdqa  %xmm11,%xmm7
-        pxor    32-128(%rax),%xmm3
-        pxor    %xmm0,%xmm3
-        paddd   %xmm15,%xmm12
-        pslld   $5,%xmm8
-        movdqa  %xmm13,%xmm9
-        pand    %xmm10,%xmm7
-
-        movdqa  %xmm11,%xmm6
-        movdqa  %xmm3,%xmm5
-        psrld   $27,%xmm9
-        paddd   %xmm7,%xmm12
-        pxor    %xmm10,%xmm6
-
-        movdqa  %xmm2,144-128(%rax)
-        paddd   %xmm2,%xmm12
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        pand    %xmm14,%xmm6
-        movdqa  %xmm14,%xmm7
-
-        pslld   $30,%xmm7
-        paddd   %xmm3,%xmm3
-        paddd   %xmm6,%xmm12
-
-        psrld   $2,%xmm14
-        paddd   %xmm8,%xmm12
-        por     %xmm5,%xmm3
-        por     %xmm7,%xmm14
-        pxor    %xmm1,%xmm4
-        movdqa  208-128(%rax),%xmm1
-
-        movdqa  %xmm12,%xmm8
-        movdqa  %xmm10,%xmm7
-        pxor    48-128(%rax),%xmm4
-        pxor    %xmm1,%xmm4
-        paddd   %xmm15,%xmm11
-        pslld   $5,%xmm8
-        movdqa  %xmm12,%xmm9
-        pand    %xmm14,%xmm7
-
-        movdqa  %xmm10,%xmm6
-        movdqa  %xmm4,%xmm5
-        psrld   $27,%xmm9
-        paddd   %xmm7,%xmm11
-        pxor    %xmm14,%xmm6
-
-        movdqa  %xmm3,160-128(%rax)
-        paddd   %xmm3,%xmm11
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        pand    %xmm13,%xmm6
-        movdqa  %xmm13,%xmm7
-
-        pslld   $30,%xmm7
-        paddd   %xmm4,%xmm4
-        paddd   %xmm6,%xmm11
-
-        psrld   $2,%xmm13
-        paddd   %xmm8,%xmm11
-        por     %xmm5,%xmm4
-        por     %xmm7,%xmm13
-        pxor    %xmm2,%xmm0
-        movdqa  224-128(%rax),%xmm2
-
-        movdqa  %xmm11,%xmm8
-        movdqa  %xmm14,%xmm7
-        pxor    64-128(%rax),%xmm0
-        pxor    %xmm2,%xmm0
-        paddd   %xmm15,%xmm10
-        pslld   $5,%xmm8
-        movdqa  %xmm11,%xmm9
-        pand    %xmm13,%xmm7
-
-        movdqa  %xmm14,%xmm6
-        movdqa  %xmm0,%xmm5
-        psrld   $27,%xmm9
-        paddd   %xmm7,%xmm10
-        pxor    %xmm13,%xmm6
-
-        movdqa  %xmm4,176-128(%rax)
-        paddd   %xmm4,%xmm10
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        pand    %xmm12,%xmm6
-        movdqa  %xmm12,%xmm7
-
-        pslld   $30,%xmm7
-        paddd   %xmm0,%xmm0
-        paddd   %xmm6,%xmm10
-
-        psrld   $2,%xmm12
-        paddd   %xmm8,%xmm10
-        por     %xmm5,%xmm0
-        por     %xmm7,%xmm12
-        movdqa  64(%rbp),%xmm15
-        pxor    %xmm3,%xmm1
-        movdqa  240-128(%rax),%xmm3
-
-        movdqa  %xmm10,%xmm8
-        movdqa  %xmm13,%xmm6
-        pxor    80-128(%rax),%xmm1
-        paddd   %xmm15,%xmm14
-        pslld   $5,%xmm8
-        pxor    %xmm11,%xmm6
-
-        movdqa  %xmm10,%xmm9
-        movdqa  %xmm0,192-128(%rax)
-        paddd   %xmm0,%xmm14
-        pxor    %xmm3,%xmm1
-        psrld   $27,%xmm9
-        pxor    %xmm12,%xmm6
-        movdqa  %xmm11,%xmm7
-
-        pslld   $30,%xmm7
-        movdqa  %xmm1,%xmm5
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        paddd   %xmm6,%xmm14
-        paddd   %xmm1,%xmm1
-
-        psrld   $2,%xmm11
-        paddd   %xmm8,%xmm14
-        por     %xmm5,%xmm1
-        por     %xmm7,%xmm11
-        pxor    %xmm4,%xmm2
-        movdqa  0-128(%rax),%xmm4
-
-        movdqa  %xmm14,%xmm8
-        movdqa  %xmm12,%xmm6
-        pxor    96-128(%rax),%xmm2
-        paddd   %xmm15,%xmm13
-        pslld   $5,%xmm8
-        pxor    %xmm10,%xmm6
-
-        movdqa  %xmm14,%xmm9
-        movdqa  %xmm1,208-128(%rax)
-        paddd   %xmm1,%xmm13
-        pxor    %xmm4,%xmm2
-        psrld   $27,%xmm9
-        pxor    %xmm11,%xmm6
-        movdqa  %xmm10,%xmm7
-
-        pslld   $30,%xmm7
-        movdqa  %xmm2,%xmm5
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        paddd   %xmm6,%xmm13
-        paddd   %xmm2,%xmm2
-
-        psrld   $2,%xmm10
-        paddd   %xmm8,%xmm13
-        por     %xmm5,%xmm2
-        por     %xmm7,%xmm10
-        pxor    %xmm0,%xmm3
-        movdqa  16-128(%rax),%xmm0
-
-        movdqa  %xmm13,%xmm8
-        movdqa  %xmm11,%xmm6
-        pxor    112-128(%rax),%xmm3
-        paddd   %xmm15,%xmm12
-        pslld   $5,%xmm8
-        pxor    %xmm14,%xmm6
-
-        movdqa  %xmm13,%xmm9
-        movdqa  %xmm2,224-128(%rax)
-        paddd   %xmm2,%xmm12
-        pxor    %xmm0,%xmm3
-        psrld   $27,%xmm9
-        pxor    %xmm10,%xmm6
-        movdqa  %xmm14,%xmm7
-
-        pslld   $30,%xmm7
-        movdqa  %xmm3,%xmm5
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        paddd   %xmm6,%xmm12
-        paddd   %xmm3,%xmm3
-
-        psrld   $2,%xmm14
-        paddd   %xmm8,%xmm12
-        por     %xmm5,%xmm3
-        por     %xmm7,%xmm14
-        pxor    %xmm1,%xmm4
-        movdqa  32-128(%rax),%xmm1
-
-        movdqa  %xmm12,%xmm8
-        movdqa  %xmm10,%xmm6
-        pxor    128-128(%rax),%xmm4
-        paddd   %xmm15,%xmm11
-        pslld   $5,%xmm8
-        pxor    %xmm13,%xmm6
-
-        movdqa  %xmm12,%xmm9
-        movdqa  %xmm3,240-128(%rax)
-        paddd   %xmm3,%xmm11
-        pxor    %xmm1,%xmm4
-        psrld   $27,%xmm9
-        pxor    %xmm14,%xmm6
-        movdqa  %xmm13,%xmm7
-
-        pslld   $30,%xmm7
-        movdqa  %xmm4,%xmm5
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        paddd   %xmm6,%xmm11
-        paddd   %xmm4,%xmm4
-
-        psrld   $2,%xmm13
-        paddd   %xmm8,%xmm11
-        por     %xmm5,%xmm4
-        por     %xmm7,%xmm13
-        pxor    %xmm2,%xmm0
-        movdqa  48-128(%rax),%xmm2
-
-        movdqa  %xmm11,%xmm8
-        movdqa  %xmm14,%xmm6
-        pxor    144-128(%rax),%xmm0
-        paddd   %xmm15,%xmm10
-        pslld   $5,%xmm8
-        pxor    %xmm12,%xmm6
-
-        movdqa  %xmm11,%xmm9
-        movdqa  %xmm4,0-128(%rax)
-        paddd   %xmm4,%xmm10
-        pxor    %xmm2,%xmm0
-        psrld   $27,%xmm9
-        pxor    %xmm13,%xmm6
-        movdqa  %xmm12,%xmm7
-
-        pslld   $30,%xmm7
-        movdqa  %xmm0,%xmm5
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        paddd   %xmm6,%xmm10
-        paddd   %xmm0,%xmm0
-
-        psrld   $2,%xmm12
-        paddd   %xmm8,%xmm10
-        por     %xmm5,%xmm0
-        por     %xmm7,%xmm12
-        pxor    %xmm3,%xmm1
-        movdqa  64-128(%rax),%xmm3
-
-        movdqa  %xmm10,%xmm8
-        movdqa  %xmm13,%xmm6
-        pxor    160-128(%rax),%xmm1
-        paddd   %xmm15,%xmm14
-        pslld   $5,%xmm8
-        pxor    %xmm11,%xmm6
-
-        movdqa  %xmm10,%xmm9
-        movdqa  %xmm0,16-128(%rax)
-        paddd   %xmm0,%xmm14
-        pxor    %xmm3,%xmm1
-        psrld   $27,%xmm9
-        pxor    %xmm12,%xmm6
-        movdqa  %xmm11,%xmm7
-
-        pslld   $30,%xmm7
-        movdqa  %xmm1,%xmm5
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        paddd   %xmm6,%xmm14
-        paddd   %xmm1,%xmm1
-
-        psrld   $2,%xmm11
-        paddd   %xmm8,%xmm14
-        por     %xmm5,%xmm1
-        por     %xmm7,%xmm11
-        pxor    %xmm4,%xmm2
-        movdqa  80-128(%rax),%xmm4
-
-        movdqa  %xmm14,%xmm8
-        movdqa  %xmm12,%xmm6
-        pxor    176-128(%rax),%xmm2
-        paddd   %xmm15,%xmm13
-        pslld   $5,%xmm8
-        pxor    %xmm10,%xmm6
-
-        movdqa  %xmm14,%xmm9
-        movdqa  %xmm1,32-128(%rax)
-        paddd   %xmm1,%xmm13
-        pxor    %xmm4,%xmm2
-        psrld   $27,%xmm9
-        pxor    %xmm11,%xmm6
-        movdqa  %xmm10,%xmm7
-
-        pslld   $30,%xmm7
-        movdqa  %xmm2,%xmm5
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        paddd   %xmm6,%xmm13
-        paddd   %xmm2,%xmm2
-
-        psrld   $2,%xmm10
-        paddd   %xmm8,%xmm13
-        por     %xmm5,%xmm2
-        por     %xmm7,%xmm10
-        pxor    %xmm0,%xmm3
-        movdqa  96-128(%rax),%xmm0
-
-        movdqa  %xmm13,%xmm8
-        movdqa  %xmm11,%xmm6
-        pxor    192-128(%rax),%xmm3
-        paddd   %xmm15,%xmm12
-        pslld   $5,%xmm8
-        pxor    %xmm14,%xmm6
-
-        movdqa  %xmm13,%xmm9
-        movdqa  %xmm2,48-128(%rax)
-        paddd   %xmm2,%xmm12
-        pxor    %xmm0,%xmm3
-        psrld   $27,%xmm9
-        pxor    %xmm10,%xmm6
-        movdqa  %xmm14,%xmm7
-
-        pslld   $30,%xmm7
-        movdqa  %xmm3,%xmm5
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        paddd   %xmm6,%xmm12
-        paddd   %xmm3,%xmm3
-
-        psrld   $2,%xmm14
-        paddd   %xmm8,%xmm12
-        por     %xmm5,%xmm3
-        por     %xmm7,%xmm14
-        pxor    %xmm1,%xmm4
-        movdqa  112-128(%rax),%xmm1
-
-        movdqa  %xmm12,%xmm8
-        movdqa  %xmm10,%xmm6
-        pxor    208-128(%rax),%xmm4
-        paddd   %xmm15,%xmm11
-        pslld   $5,%xmm8
-        pxor    %xmm13,%xmm6
-
-        movdqa  %xmm12,%xmm9
-        movdqa  %xmm3,64-128(%rax)
-        paddd   %xmm3,%xmm11
-        pxor    %xmm1,%xmm4
-        psrld   $27,%xmm9
-        pxor    %xmm14,%xmm6
-        movdqa  %xmm13,%xmm7
-
-        pslld   $30,%xmm7
-        movdqa  %xmm4,%xmm5
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        paddd   %xmm6,%xmm11
-        paddd   %xmm4,%xmm4
-
-        psrld   $2,%xmm13
-        paddd   %xmm8,%xmm11
-        por     %xmm5,%xmm4
-        por     %xmm7,%xmm13
-        pxor    %xmm2,%xmm0
-        movdqa  128-128(%rax),%xmm2
-
-        movdqa  %xmm11,%xmm8
-        movdqa  %xmm14,%xmm6
-        pxor    224-128(%rax),%xmm0
-        paddd   %xmm15,%xmm10
-        pslld   $5,%xmm8
-        pxor    %xmm12,%xmm6
-
-        movdqa  %xmm11,%xmm9
-        movdqa  %xmm4,80-128(%rax)
-        paddd   %xmm4,%xmm10
-        pxor    %xmm2,%xmm0
-        psrld   $27,%xmm9
-        pxor    %xmm13,%xmm6
-        movdqa  %xmm12,%xmm7
-
-        pslld   $30,%xmm7
-        movdqa  %xmm0,%xmm5
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        paddd   %xmm6,%xmm10
-        paddd   %xmm0,%xmm0
-
-        psrld   $2,%xmm12
-        paddd   %xmm8,%xmm10
-        por     %xmm5,%xmm0
-        por     %xmm7,%xmm12
-        pxor    %xmm3,%xmm1
-        movdqa  144-128(%rax),%xmm3
-
-        movdqa  %xmm10,%xmm8
-        movdqa  %xmm13,%xmm6
-        pxor    240-128(%rax),%xmm1
-        paddd   %xmm15,%xmm14
-        pslld   $5,%xmm8
-        pxor    %xmm11,%xmm6
-
-        movdqa  %xmm10,%xmm9
-        movdqa  %xmm0,96-128(%rax)
-        paddd   %xmm0,%xmm14
-        pxor    %xmm3,%xmm1
-        psrld   $27,%xmm9
-        pxor    %xmm12,%xmm6
-        movdqa  %xmm11,%xmm7
-
-        pslld   $30,%xmm7
-        movdqa  %xmm1,%xmm5
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        paddd   %xmm6,%xmm14
-        paddd   %xmm1,%xmm1
-
-        psrld   $2,%xmm11
-        paddd   %xmm8,%xmm14
-        por     %xmm5,%xmm1
-        por     %xmm7,%xmm11
-        pxor    %xmm4,%xmm2
-        movdqa  160-128(%rax),%xmm4
-
-        movdqa  %xmm14,%xmm8
-        movdqa  %xmm12,%xmm6
-        pxor    0-128(%rax),%xmm2
-        paddd   %xmm15,%xmm13
-        pslld   $5,%xmm8
-        pxor    %xmm10,%xmm6
-
-        movdqa  %xmm14,%xmm9
-        movdqa  %xmm1,112-128(%rax)
-        paddd   %xmm1,%xmm13
-        pxor    %xmm4,%xmm2
-        psrld   $27,%xmm9
-        pxor    %xmm11,%xmm6
-        movdqa  %xmm10,%xmm7
-
-        pslld   $30,%xmm7
-        movdqa  %xmm2,%xmm5
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        paddd   %xmm6,%xmm13
-        paddd   %xmm2,%xmm2
-
-        psrld   $2,%xmm10
-        paddd   %xmm8,%xmm13
-        por     %xmm5,%xmm2
-        por     %xmm7,%xmm10
-        pxor    %xmm0,%xmm3
-        movdqa  176-128(%rax),%xmm0
-
-        movdqa  %xmm13,%xmm8
-        movdqa  %xmm11,%xmm6
-        pxor    16-128(%rax),%xmm3
-        paddd   %xmm15,%xmm12
-        pslld   $5,%xmm8
-        pxor    %xmm14,%xmm6
-
-        movdqa  %xmm13,%xmm9
-        paddd   %xmm2,%xmm12
-        pxor    %xmm0,%xmm3
-        psrld   $27,%xmm9
-        pxor    %xmm10,%xmm6
-        movdqa  %xmm14,%xmm7
-
-        pslld   $30,%xmm7
-        movdqa  %xmm3,%xmm5
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        paddd   %xmm6,%xmm12
-        paddd   %xmm3,%xmm3
-
-        psrld   $2,%xmm14
-        paddd   %xmm8,%xmm12
-        por     %xmm5,%xmm3
-        por     %xmm7,%xmm14
-        pxor    %xmm1,%xmm4
-        movdqa  192-128(%rax),%xmm1
-
-        movdqa  %xmm12,%xmm8
-        movdqa  %xmm10,%xmm6
-        pxor    32-128(%rax),%xmm4
-        paddd   %xmm15,%xmm11
-        pslld   $5,%xmm8
-        pxor    %xmm13,%xmm6
-
-        movdqa  %xmm12,%xmm9
-        paddd   %xmm3,%xmm11
-        pxor    %xmm1,%xmm4
-        psrld   $27,%xmm9
-        pxor    %xmm14,%xmm6
-        movdqa  %xmm13,%xmm7
-
-        pslld   $30,%xmm7
-        movdqa  %xmm4,%xmm5
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        paddd   %xmm6,%xmm11
-        paddd   %xmm4,%xmm4
-
-        psrld   $2,%xmm13
-        paddd   %xmm8,%xmm11
-        por     %xmm5,%xmm4
-        por     %xmm7,%xmm13
-        pxor    %xmm2,%xmm0
-        movdqa  208-128(%rax),%xmm2
-
-        movdqa  %xmm11,%xmm8
-        movdqa  %xmm14,%xmm6
-        pxor    48-128(%rax),%xmm0
-        paddd   %xmm15,%xmm10
-        pslld   $5,%xmm8
-        pxor    %xmm12,%xmm6
-
-        movdqa  %xmm11,%xmm9
-        paddd   %xmm4,%xmm10
-        pxor    %xmm2,%xmm0
-        psrld   $27,%xmm9
-        pxor    %xmm13,%xmm6
-        movdqa  %xmm12,%xmm7
-
-        pslld   $30,%xmm7
-        movdqa  %xmm0,%xmm5
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        paddd   %xmm6,%xmm10
-        paddd   %xmm0,%xmm0
-
-        psrld   $2,%xmm12
-        paddd   %xmm8,%xmm10
-        por     %xmm5,%xmm0
-        por     %xmm7,%xmm12
-        pxor    %xmm3,%xmm1
-        movdqa  224-128(%rax),%xmm3
-
-        movdqa  %xmm10,%xmm8
-        movdqa  %xmm13,%xmm6
-        pxor    64-128(%rax),%xmm1
-        paddd   %xmm15,%xmm14
-        pslld   $5,%xmm8
-        pxor    %xmm11,%xmm6
-
-        movdqa  %xmm10,%xmm9
-        paddd   %xmm0,%xmm14
-        pxor    %xmm3,%xmm1
-        psrld   $27,%xmm9
-        pxor    %xmm12,%xmm6
-        movdqa  %xmm11,%xmm7
-
-        pslld   $30,%xmm7
-        movdqa  %xmm1,%xmm5
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        paddd   %xmm6,%xmm14
-        paddd   %xmm1,%xmm1
-
-        psrld   $2,%xmm11
-        paddd   %xmm8,%xmm14
-        por     %xmm5,%xmm1
-        por     %xmm7,%xmm11
-        pxor    %xmm4,%xmm2
-        movdqa  240-128(%rax),%xmm4
-
-        movdqa  %xmm14,%xmm8
-        movdqa  %xmm12,%xmm6
-        pxor    80-128(%rax),%xmm2
-        paddd   %xmm15,%xmm13
-        pslld   $5,%xmm8
-        pxor    %xmm10,%xmm6
-
-        movdqa  %xmm14,%xmm9
-        paddd   %xmm1,%xmm13
-        pxor    %xmm4,%xmm2
-        psrld   $27,%xmm9
-        pxor    %xmm11,%xmm6
-        movdqa  %xmm10,%xmm7
-
-        pslld   $30,%xmm7
-        movdqa  %xmm2,%xmm5
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        paddd   %xmm6,%xmm13
-        paddd   %xmm2,%xmm2
-
-        psrld   $2,%xmm10
-        paddd   %xmm8,%xmm13
-        por     %xmm5,%xmm2
-        por     %xmm7,%xmm10
-        pxor    %xmm0,%xmm3
-        movdqa  0-128(%rax),%xmm0
-
-        movdqa  %xmm13,%xmm8
-        movdqa  %xmm11,%xmm6
-        pxor    96-128(%rax),%xmm3
-        paddd   %xmm15,%xmm12
-        pslld   $5,%xmm8
-        pxor    %xmm14,%xmm6
-
-        movdqa  %xmm13,%xmm9
-        paddd   %xmm2,%xmm12
-        pxor    %xmm0,%xmm3
-        psrld   $27,%xmm9
-        pxor    %xmm10,%xmm6
-        movdqa  %xmm14,%xmm7
-
-        pslld   $30,%xmm7
-        movdqa  %xmm3,%xmm5
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        paddd   %xmm6,%xmm12
-        paddd   %xmm3,%xmm3
-
-        psrld   $2,%xmm14
-        paddd   %xmm8,%xmm12
-        por     %xmm5,%xmm3
-        por     %xmm7,%xmm14
-        pxor    %xmm1,%xmm4
-        movdqa  16-128(%rax),%xmm1
-
-        movdqa  %xmm12,%xmm8
-        movdqa  %xmm10,%xmm6
-        pxor    112-128(%rax),%xmm4
-        paddd   %xmm15,%xmm11
-        pslld   $5,%xmm8
-        pxor    %xmm13,%xmm6
-
-        movdqa  %xmm12,%xmm9
-        paddd   %xmm3,%xmm11
-        pxor    %xmm1,%xmm4
-        psrld   $27,%xmm9
-        pxor    %xmm14,%xmm6
-        movdqa  %xmm13,%xmm7
-
-        pslld   $30,%xmm7
-        movdqa  %xmm4,%xmm5
-        por     %xmm9,%xmm8
-        psrld   $31,%xmm5
-        paddd   %xmm6,%xmm11
-        paddd   %xmm4,%xmm4
-
-        psrld   $2,%xmm13
-        paddd   %xmm8,%xmm11
-        por     %xmm5,%xmm4
-        por     %xmm7,%xmm13
-        movdqa  %xmm11,%xmm8
-        paddd   %xmm15,%xmm10
-        movdqa  %xmm14,%xmm6
-        pslld   $5,%xmm8
-        pxor    %xmm12,%xmm6
-
-        movdqa  %xmm11,%xmm9
-        paddd   %xmm4,%xmm10
-        psrld   $27,%xmm9
-        movdqa  %xmm12,%xmm7
-        pxor    %xmm13,%xmm6
-
-        pslld   $30,%xmm7
-        por     %xmm9,%xmm8
-        paddd   %xmm6,%xmm10
-
-        psrld   $2,%xmm12
-        paddd   %xmm8,%xmm10
-        por     %xmm7,%xmm12
-        movdqa  (%rbx),%xmm0
-        movl    $1,%ecx
-        cmpl    0(%rbx),%ecx
-        pxor    %xmm8,%xmm8
-        cmovgeq %rbp,%r8
-        cmpl    4(%rbx),%ecx
-        movdqa  %xmm0,%xmm1
-        cmovgeq %rbp,%r9
-        cmpl    8(%rbx),%ecx
-        pcmpgtd %xmm8,%xmm1
-        cmovgeq %rbp,%r10
-        cmpl    12(%rbx),%ecx
-        paddd   %xmm1,%xmm0
-        cmovgeq %rbp,%r11
-
-        movdqu  0(%rdi),%xmm6
-        pand    %xmm1,%xmm10
-        movdqu  32(%rdi),%xmm7
-        pand    %xmm1,%xmm11
-        paddd   %xmm6,%xmm10
-        movdqu  64(%rdi),%xmm8
-        pand    %xmm1,%xmm12
-        paddd   %xmm7,%xmm11
-        movdqu  96(%rdi),%xmm9
-        pand    %xmm1,%xmm13
-        paddd   %xmm8,%xmm12
-        movdqu  128(%rdi),%xmm5
-        pand    %xmm1,%xmm14
-        movdqu  %xmm10,0(%rdi)
-        paddd   %xmm9,%xmm13
-        movdqu  %xmm11,32(%rdi)
-        paddd   %xmm5,%xmm14
-        movdqu  %xmm12,64(%rdi)
-        movdqu  %xmm13,96(%rdi)
-        movdqu  %xmm14,128(%rdi)
-
-        movdqa  %xmm0,(%rbx)
-        movdqa  96(%rbp),%xmm5
-        movdqa  -32(%rbp),%xmm15
-        decl    %edx
-        jnz     .Loop
-
-        movl    280(%rsp),%edx
-        leaq    16(%rdi),%rdi
-        leaq    64(%rsi),%rsi
-        decl    %edx
-        jnz     .Loop_grande
-
-.Ldone:
-        movq    272(%rsp),%rax
-.cfi_def_cfa    %rax,8
-        movq    -16(%rax),%rbp
-.cfi_restore    %rbp
-        movq    -8(%rax),%rbx
-.cfi_restore    %rbx
-        leaq    (%rax),%rsp
-.cfi_def_cfa_register   %rsp
-.Lepilogue:
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   sha1_multi_block,.-sha1_multi_block
-.type   sha1_multi_block_shaext, at function
-.align  32
-sha1_multi_block_shaext:
-.cfi_startproc
-_shaext_shortcut:
-        movq    %rsp,%rax
-.cfi_def_cfa_register   %rax
-        pushq   %rbx
-.cfi_offset     %rbx,-16
-        pushq   %rbp
-.cfi_offset     %rbp,-24
-        subq    $288,%rsp
-        shll    $1,%edx
-        andq    $-256,%rsp
-        leaq    64(%rdi),%rdi
-        movq    %rax,272(%rsp)
-.Lbody_shaext:
-        leaq    256(%rsp),%rbx
-        movdqa  K_XX_XX+128(%rip),%xmm3
-
-.Loop_grande_shaext:
-        movl    %edx,280(%rsp)
-        xorl    %edx,%edx
-        movq    0(%rsi),%r8
-        movl    8(%rsi),%ecx
-        cmpl    %edx,%ecx
-        cmovgl  %ecx,%edx
-        testl   %ecx,%ecx
-        movl    %ecx,0(%rbx)
-        cmovleq %rsp,%r8
-        movq    16(%rsi),%r9
-        movl    24(%rsi),%ecx
-        cmpl    %edx,%ecx
-        cmovgl  %ecx,%edx
-        testl   %ecx,%ecx
-        movl    %ecx,4(%rbx)
-        cmovleq %rsp,%r9
-        testl   %edx,%edx
-        jz      .Ldone_shaext
-
-        movq    0-64(%rdi),%xmm0
-        movq    32-64(%rdi),%xmm4
-        movq    64-64(%rdi),%xmm5
-        movq    96-64(%rdi),%xmm6
-        movq    128-64(%rdi),%xmm7
-
-        punpckldq       %xmm4,%xmm0
-        punpckldq       %xmm6,%xmm5
-
-        movdqa  %xmm0,%xmm8
-        punpcklqdq      %xmm5,%xmm0
-        punpckhqdq      %xmm5,%xmm8
-
-        pshufd  $63,%xmm7,%xmm1
-        pshufd  $127,%xmm7,%xmm9
-        pshufd  $27,%xmm0,%xmm0
-        pshufd  $27,%xmm8,%xmm8
-        jmp     .Loop_shaext
-
-.align  32
-.Loop_shaext:
-        movdqu  0(%r8),%xmm4
-        movdqu  0(%r9),%xmm11
-        movdqu  16(%r8),%xmm5
-        movdqu  16(%r9),%xmm12
-        movdqu  32(%r8),%xmm6
-.byte   102,15,56,0,227
-        movdqu  32(%r9),%xmm13
-.byte   102,68,15,56,0,219
-        movdqu  48(%r8),%xmm7
-        leaq    64(%r8),%r8
-.byte   102,15,56,0,235
-        movdqu  48(%r9),%xmm14
-        leaq    64(%r9),%r9
-.byte   102,68,15,56,0,227
-
-        movdqa  %xmm1,80(%rsp)
-        paddd   %xmm4,%xmm1
-        movdqa  %xmm9,112(%rsp)
-        paddd   %xmm11,%xmm9
-        movdqa  %xmm0,64(%rsp)
-        movdqa  %xmm0,%xmm2
-        movdqa  %xmm8,96(%rsp)
-        movdqa  %xmm8,%xmm10
-.byte   15,58,204,193,0
-.byte   15,56,200,213
-.byte   69,15,58,204,193,0
-.byte   69,15,56,200,212
-.byte   102,15,56,0,243
-        prefetcht0      127(%r8)
-.byte   15,56,201,229
-.byte   102,68,15,56,0,235
-        prefetcht0      127(%r9)
-.byte   69,15,56,201,220
-
-.byte   102,15,56,0,251
-        movdqa  %xmm0,%xmm1
-.byte   102,68,15,56,0,243
-        movdqa  %xmm8,%xmm9
-.byte   15,58,204,194,0
-.byte   15,56,200,206
-.byte   69,15,58,204,194,0
-.byte   69,15,56,200,205
-        pxor    %xmm6,%xmm4
-.byte   15,56,201,238
-        pxor    %xmm13,%xmm11
-.byte   69,15,56,201,229
-        movdqa  %xmm0,%xmm2
-        movdqa  %xmm8,%xmm10
-.byte   15,58,204,193,0
-.byte   15,56,200,215
-.byte   69,15,58,204,193,0
-.byte   69,15,56,200,214
-.byte   15,56,202,231
-.byte   69,15,56,202,222
-        pxor    %xmm7,%xmm5
-.byte   15,56,201,247
-        pxor    %xmm14,%xmm12
-.byte   69,15,56,201,238
-        movdqa  %xmm0,%xmm1
-        movdqa  %xmm8,%xmm9
-.byte   15,58,204,194,0
-.byte   15,56,200,204
-.byte   69,15,58,204,194,0
-.byte   69,15,56,200,203
-.byte   15,56,202,236
-.byte   69,15,56,202,227
-        pxor    %xmm4,%xmm6
-.byte   15,56,201,252
-        pxor    %xmm11,%xmm13
-.byte   69,15,56,201,243
-        movdqa  %xmm0,%xmm2
-        movdqa  %xmm8,%xmm10
-.byte   15,58,204,193,0
-.byte   15,56,200,213
-.byte   69,15,58,204,193,0
-.byte   69,15,56,200,212
-.byte   15,56,202,245
-.byte   69,15,56,202,236
-        pxor    %xmm5,%xmm7
-.byte   15,56,201,229
-        pxor    %xmm12,%xmm14
-.byte   69,15,56,201,220
-        movdqa  %xmm0,%xmm1
-        movdqa  %xmm8,%xmm9
-.byte   15,58,204,194,1
-.byte   15,56,200,206
-.byte   69,15,58,204,194,1
-.byte   69,15,56,200,205
-.byte   15,56,202,254
-.byte   69,15,56,202,245
-        pxor    %xmm6,%xmm4
-.byte   15,56,201,238
-        pxor    %xmm13,%xmm11
-.byte   69,15,56,201,229
-        movdqa  %xmm0,%xmm2
-        movdqa  %xmm8,%xmm10
-.byte   15,58,204,193,1
-.byte   15,56,200,215
-.byte   69,15,58,204,193,1
-.byte   69,15,56,200,214
-.byte   15,56,202,231
-.byte   69,15,56,202,222
-        pxor    %xmm7,%xmm5
-.byte   15,56,201,247
-        pxor    %xmm14,%xmm12
-.byte   69,15,56,201,238
-        movdqa  %xmm0,%xmm1
-        movdqa  %xmm8,%xmm9
-.byte   15,58,204,194,1
-.byte   15,56,200,204
-.byte   69,15,58,204,194,1
-.byte   69,15,56,200,203
-.byte   15,56,202,236
-.byte   69,15,56,202,227
-        pxor    %xmm4,%xmm6
-.byte   15,56,201,252
-        pxor    %xmm11,%xmm13
-.byte   69,15,56,201,243
-        movdqa  %xmm0,%xmm2
-        movdqa  %xmm8,%xmm10
-.byte   15,58,204,193,1
-.byte   15,56,200,213
-.byte   69,15,58,204,193,1
-.byte   69,15,56,200,212
-.byte   15,56,202,245
-.byte   69,15,56,202,236
-        pxor    %xmm5,%xmm7
-.byte   15,56,201,229
-        pxor    %xmm12,%xmm14
-.byte   69,15,56,201,220
-        movdqa  %xmm0,%xmm1
-        movdqa  %xmm8,%xmm9
-.byte   15,58,204,194,1
-.byte   15,56,200,206
-.byte   69,15,58,204,194,1
-.byte   69,15,56,200,205
-.byte   15,56,202,254
-.byte   69,15,56,202,245
-        pxor    %xmm6,%xmm4
-.byte   15,56,201,238
-        pxor    %xmm13,%xmm11
-.byte   69,15,56,201,229
-        movdqa  %xmm0,%xmm2
-        movdqa  %xmm8,%xmm10
-.byte   15,58,204,193,2
-.byte   15,56,200,215
-.byte   69,15,58,204,193,2
-.byte   69,15,56,200,214
-.byte   15,56,202,231
-.byte   69,15,56,202,222
-        pxor    %xmm7,%xmm5
-.byte   15,56,201,247
-        pxor    %xmm14,%xmm12
-.byte   69,15,56,201,238
-        movdqa  %xmm0,%xmm1
-        movdqa  %xmm8,%xmm9
-.byte   15,58,204,194,2
-.byte   15,56,200,204
-.byte   69,15,58,204,194,2
-.byte   69,15,56,200,203
-.byte   15,56,202,236
-.byte   69,15,56,202,227
-        pxor    %xmm4,%xmm6
-.byte   15,56,201,252
-        pxor    %xmm11,%xmm13
-.byte   69,15,56,201,243
-        movdqa  %xmm0,%xmm2
-        movdqa  %xmm8,%xmm10
-.byte   15,58,204,193,2
-.byte   15,56,200,213
-.byte   69,15,58,204,193,2
-.byte   69,15,56,200,212
-.byte   15,56,202,245
-.byte   69,15,56,202,236
-        pxor    %xmm5,%xmm7
-.byte   15,56,201,229
-        pxor    %xmm12,%xmm14
-.byte   69,15,56,201,220
-        movdqa  %xmm0,%xmm1
-        movdqa  %xmm8,%xmm9
-.byte   15,58,204,194,2
-.byte   15,56,200,206
-.byte   69,15,58,204,194,2
-.byte   69,15,56,200,205
-.byte   15,56,202,254
-.byte   69,15,56,202,245
-        pxor    %xmm6,%xmm4
-.byte   15,56,201,238
-        pxor    %xmm13,%xmm11
-.byte   69,15,56,201,229
-        movdqa  %xmm0,%xmm2
-        movdqa  %xmm8,%xmm10
-.byte   15,58,204,193,2
-.byte   15,56,200,215
-.byte   69,15,58,204,193,2
-.byte   69,15,56,200,214
-.byte   15,56,202,231
-.byte   69,15,56,202,222
-        pxor    %xmm7,%xmm5
-.byte   15,56,201,247
-        pxor    %xmm14,%xmm12
-.byte   69,15,56,201,238
-        movdqa  %xmm0,%xmm1
-        movdqa  %xmm8,%xmm9
-.byte   15,58,204,194,3
-.byte   15,56,200,204
-.byte   69,15,58,204,194,3
-.byte   69,15,56,200,203
-.byte   15,56,202,236
-.byte   69,15,56,202,227
-        pxor    %xmm4,%xmm6
-.byte   15,56,201,252
-        pxor    %xmm11,%xmm13
-.byte   69,15,56,201,243
-        movdqa  %xmm0,%xmm2
-        movdqa  %xmm8,%xmm10
-.byte   15,58,204,193,3
-.byte   15,56,200,213
-.byte   69,15,58,204,193,3
-.byte   69,15,56,200,212
-.byte   15,56,202,245
-.byte   69,15,56,202,236
-        pxor    %xmm5,%xmm7
-        pxor    %xmm12,%xmm14
-
-        movl    $1,%ecx
-        pxor    %xmm4,%xmm4
-        cmpl    0(%rbx),%ecx
-        cmovgeq %rsp,%r8
-
-        movdqa  %xmm0,%xmm1
-        movdqa  %xmm8,%xmm9
-.byte   15,58,204,194,3
-.byte   15,56,200,206
-.byte   69,15,58,204,194,3
-.byte   69,15,56,200,205
-.byte   15,56,202,254
-.byte   69,15,56,202,245
-
-        cmpl    4(%rbx),%ecx
-        cmovgeq %rsp,%r9
-        movq    (%rbx),%xmm6
-
-        movdqa  %xmm0,%xmm2
-        movdqa  %xmm8,%xmm10
-.byte   15,58,204,193,3
-.byte   15,56,200,215
-.byte   69,15,58,204,193,3
-.byte   69,15,56,200,214
-
-        pshufd  $0x00,%xmm6,%xmm11
-        pshufd  $0x55,%xmm6,%xmm12
-        movdqa  %xmm6,%xmm7
-        pcmpgtd %xmm4,%xmm11
-        pcmpgtd %xmm4,%xmm12
-
-        movdqa  %xmm0,%xmm1
-        movdqa  %xmm8,%xmm9
-.byte   15,58,204,194,3
-.byte   15,56,200,204
-.byte   69,15,58,204,194,3
-.byte   68,15,56,200,204
-
-        pcmpgtd %xmm4,%xmm7
-        pand    %xmm11,%xmm0
-        pand    %xmm11,%xmm1
-        pand    %xmm12,%xmm8
-        pand    %xmm12,%xmm9
-        paddd   %xmm7,%xmm6
-
-        paddd   64(%rsp),%xmm0
-        paddd   80(%rsp),%xmm1
-        paddd   96(%rsp),%xmm8
-        paddd   112(%rsp),%xmm9
-
-        movq    %xmm6,(%rbx)
-        decl    %edx
-        jnz     .Loop_shaext
-
-        movl    280(%rsp),%edx
-
-        pshufd  $27,%xmm0,%xmm0
-        pshufd  $27,%xmm8,%xmm8
-
-        movdqa  %xmm0,%xmm6
-        punpckldq       %xmm8,%xmm0
-        punpckhdq       %xmm8,%xmm6
-        punpckhdq       %xmm9,%xmm1
-        movq    %xmm0,0-64(%rdi)
-        psrldq  $8,%xmm0
-        movq    %xmm6,64-64(%rdi)
-        psrldq  $8,%xmm6
-        movq    %xmm0,32-64(%rdi)
-        psrldq  $8,%xmm1
-        movq    %xmm6,96-64(%rdi)
-        movq    %xmm1,128-64(%rdi)
-
-        leaq    8(%rdi),%rdi
-        leaq    32(%rsi),%rsi
-        decl    %edx
-        jnz     .Loop_grande_shaext
-
-.Ldone_shaext:
-
-        movq    -16(%rax),%rbp
-.cfi_restore    %rbp
-        movq    -8(%rax),%rbx
-.cfi_restore    %rbx
-        leaq    (%rax),%rsp
-.cfi_def_cfa_register   %rsp
-.Lepilogue_shaext:
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   sha1_multi_block_shaext,.-sha1_multi_block_shaext
-
-.align  256
-.long   0x5a827999,0x5a827999,0x5a827999,0x5a827999
-.long   0x5a827999,0x5a827999,0x5a827999,0x5a827999
-K_XX_XX:
-.long   0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
-.long   0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
-.long   0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
-.long   0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
-.long   0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
-.long   0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
-.long   0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
-.long   0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
-.byte   0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0
-.byte   83,72,65,49,32,109,117,108,116,105,45,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
diff --git a/CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha1-x86_64.S b/CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha1-x86_64.S
deleted file mode 100644
index 0b59726ae4e3..000000000000
--- a/CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha1-x86_64.S
+++ /dev/null
@@ -1,2631 +0,0 @@
-# WARNING: do not edit!
-# Generated from openssl/crypto/sha/asm/sha1-x86_64.pl
-#
-# Copyright 2006-2020 The OpenSSL Project Authors. All Rights Reserved.
-#
-# Licensed under the OpenSSL license (the "License").  You may not use
-# this file except in compliance with the License.  You can obtain a copy
-# in the file LICENSE in the source distribution or at
-# https://www.openssl.org/source/license.html
-
-.text
-
-
-.globl  sha1_block_data_order
-.type   sha1_block_data_order, at function
-.align  16
-sha1_block_data_order:
-.cfi_startproc
-        movl    OPENSSL_ia32cap_P+0(%rip),%r9d
-        movl    OPENSSL_ia32cap_P+4(%rip),%r8d
-        movl    OPENSSL_ia32cap_P+8(%rip),%r10d
-        testl   $512,%r8d
-        jz      .Lialu
-        testl   $536870912,%r10d
-        jnz     _shaext_shortcut
-        jmp     _ssse3_shortcut
-
-.align  16
-.Lialu:
-        movq    %rsp,%rax
-.cfi_def_cfa_register   %rax
-        pushq   %rbx
-.cfi_offset     %rbx,-16
-        pushq   %rbp
-.cfi_offset     %rbp,-24
-        pushq   %r12
-.cfi_offset     %r12,-32
-        pushq   %r13
-.cfi_offset     %r13,-40
-        pushq   %r14
-.cfi_offset     %r14,-48
-        movq    %rdi,%r8
-        subq    $72,%rsp
-        movq    %rsi,%r9
-        andq    $-64,%rsp
-        movq    %rdx,%r10
-        movq    %rax,64(%rsp)
-.cfi_escape     0x0f,0x06,0x77,0xc0,0x00,0x06,0x23,0x08
-.Lprologue:
-
-        movl    0(%r8),%esi
-        movl    4(%r8),%edi
-        movl    8(%r8),%r11d
-        movl    12(%r8),%r12d
-        movl    16(%r8),%r13d
-        jmp     .Lloop
-
-.align  16
-.Lloop:
-        movl    0(%r9),%edx
-        bswapl  %edx
-        movl    4(%r9),%ebp
-        movl    %r12d,%eax
-        movl    %edx,0(%rsp)
-        movl    %esi,%ecx
-        bswapl  %ebp
-        xorl    %r11d,%eax
-        roll    $5,%ecx
-        andl    %edi,%eax
-        leal    1518500249(%rdx,%r13,1),%r13d
-        addl    %ecx,%r13d
-        xorl    %r12d,%eax
-        roll    $30,%edi
-        addl    %eax,%r13d
-        movl    8(%r9),%r14d
-        movl    %r11d,%eax
-        movl    %ebp,4(%rsp)
-        movl    %r13d,%ecx
-        bswapl  %r14d
-        xorl    %edi,%eax
-        roll    $5,%ecx
-        andl    %esi,%eax
-        leal    1518500249(%rbp,%r12,1),%r12d
-        addl    %ecx,%r12d
-        xorl    %r11d,%eax
-        roll    $30,%esi
-        addl    %eax,%r12d
-        movl    12(%r9),%edx
-        movl    %edi,%eax
-        movl    %r14d,8(%rsp)
-        movl    %r12d,%ecx
-        bswapl  %edx
-        xorl    %esi,%eax
-        roll    $5,%ecx
-        andl    %r13d,%eax
-        leal    1518500249(%r14,%r11,1),%r11d
-        addl    %ecx,%r11d
-        xorl    %edi,%eax
-        roll    $30,%r13d
-        addl    %eax,%r11d
-        movl    16(%r9),%ebp
-        movl    %esi,%eax
-        movl    %edx,12(%rsp)
-        movl    %r11d,%ecx
-        bswapl  %ebp
-        xorl    %r13d,%eax
-        roll    $5,%ecx
-        andl    %r12d,%eax
-        leal    1518500249(%rdx,%rdi,1),%edi
-        addl    %ecx,%edi
-        xorl    %esi,%eax
-        roll    $30,%r12d
-        addl    %eax,%edi
-        movl    20(%r9),%r14d
-        movl    %r13d,%eax
-        movl    %ebp,16(%rsp)
-        movl    %edi,%ecx
-        bswapl  %r14d
-        xorl    %r12d,%eax
-        roll    $5,%ecx
-        andl    %r11d,%eax
-        leal    1518500249(%rbp,%rsi,1),%esi
-        addl    %ecx,%esi
-        xorl    %r13d,%eax
-        roll    $30,%r11d
-        addl    %eax,%esi
-        movl    24(%r9),%edx
-        movl    %r12d,%eax
-        movl    %r14d,20(%rsp)
-        movl    %esi,%ecx
-        bswapl  %edx
-        xorl    %r11d,%eax
-        roll    $5,%ecx
-        andl    %edi,%eax
-        leal    1518500249(%r14,%r13,1),%r13d
-        addl    %ecx,%r13d
-        xorl    %r12d,%eax
-        roll    $30,%edi
-        addl    %eax,%r13d
-        movl    28(%r9),%ebp
-        movl    %r11d,%eax
-        movl    %edx,24(%rsp)
-        movl    %r13d,%ecx
-        bswapl  %ebp
-        xorl    %edi,%eax
-        roll    $5,%ecx
-        andl    %esi,%eax
-        leal    1518500249(%rdx,%r12,1),%r12d
-        addl    %ecx,%r12d
-        xorl    %r11d,%eax
-        roll    $30,%esi
-        addl    %eax,%r12d
-        movl    32(%r9),%r14d
-        movl    %edi,%eax
-        movl    %ebp,28(%rsp)
-        movl    %r12d,%ecx
-        bswapl  %r14d
-        xorl    %esi,%eax
-        roll    $5,%ecx
-        andl    %r13d,%eax
-        leal    1518500249(%rbp,%r11,1),%r11d
-        addl    %ecx,%r11d
-        xorl    %edi,%eax
-        roll    $30,%r13d
-        addl    %eax,%r11d
-        movl    36(%r9),%edx
-        movl    %esi,%eax
-        movl    %r14d,32(%rsp)
-        movl    %r11d,%ecx
-        bswapl  %edx
-        xorl    %r13d,%eax
-        roll    $5,%ecx
-        andl    %r12d,%eax
-        leal    1518500249(%r14,%rdi,1),%edi
-        addl    %ecx,%edi
-        xorl    %esi,%eax
-        roll    $30,%r12d
-        addl    %eax,%edi
-        movl    40(%r9),%ebp
-        movl    %r13d,%eax
-        movl    %edx,36(%rsp)
-        movl    %edi,%ecx
-        bswapl  %ebp
-        xorl    %r12d,%eax
-        roll    $5,%ecx
-        andl    %r11d,%eax
-        leal    1518500249(%rdx,%rsi,1),%esi
-        addl    %ecx,%esi
-        xorl    %r13d,%eax
-        roll    $30,%r11d
-        addl    %eax,%esi
-        movl    44(%r9),%r14d
-        movl    %r12d,%eax
-        movl    %ebp,40(%rsp)
-        movl    %esi,%ecx
-        bswapl  %r14d
-        xorl    %r11d,%eax
-        roll    $5,%ecx
-        andl    %edi,%eax
-        leal    1518500249(%rbp,%r13,1),%r13d
-        addl    %ecx,%r13d
-        xorl    %r12d,%eax
-        roll    $30,%edi
-        addl    %eax,%r13d
-        movl    48(%r9),%edx
-        movl    %r11d,%eax
-        movl    %r14d,44(%rsp)
-        movl    %r13d,%ecx
-        bswapl  %edx
-        xorl    %edi,%eax
-        roll    $5,%ecx
-        andl    %esi,%eax
-        leal    1518500249(%r14,%r12,1),%r12d
-        addl    %ecx,%r12d
-        xorl    %r11d,%eax
-        roll    $30,%esi
-        addl    %eax,%r12d
-        movl    52(%r9),%ebp
-        movl    %edi,%eax
-        movl    %edx,48(%rsp)
-        movl    %r12d,%ecx
-        bswapl  %ebp
-        xorl    %esi,%eax
-        roll    $5,%ecx
-        andl    %r13d,%eax
-        leal    1518500249(%rdx,%r11,1),%r11d
-        addl    %ecx,%r11d
-        xorl    %edi,%eax
-        roll    $30,%r13d
-        addl    %eax,%r11d
-        movl    56(%r9),%r14d
-        movl    %esi,%eax
-        movl    %ebp,52(%rsp)
-        movl    %r11d,%ecx
-        bswapl  %r14d
-        xorl    %r13d,%eax
-        roll    $5,%ecx
-        andl    %r12d,%eax
-        leal    1518500249(%rbp,%rdi,1),%edi
-        addl    %ecx,%edi
-        xorl    %esi,%eax
-        roll    $30,%r12d
-        addl    %eax,%edi
-        movl    60(%r9),%edx
-        movl    %r13d,%eax
-        movl    %r14d,56(%rsp)
-        movl    %edi,%ecx
-        bswapl  %edx
-        xorl    %r12d,%eax
-        roll    $5,%ecx
-        andl    %r11d,%eax
-        leal    1518500249(%r14,%rsi,1),%esi
-        addl    %ecx,%esi
-        xorl    %r13d,%eax
-        roll    $30,%r11d
-        addl    %eax,%esi
-        xorl    0(%rsp),%ebp
-        movl    %r12d,%eax
-        movl    %edx,60(%rsp)
-        movl    %esi,%ecx
-        xorl    8(%rsp),%ebp
-        xorl    %r11d,%eax
-        roll    $5,%ecx
-        xorl    32(%rsp),%ebp
-        andl    %edi,%eax
-        leal    1518500249(%rdx,%r13,1),%r13d
-        roll    $30,%edi
-        xorl    %r12d,%eax
-        addl    %ecx,%r13d
-        roll    $1,%ebp
-        addl    %eax,%r13d
-        xorl    4(%rsp),%r14d
-        movl    %r11d,%eax
-        movl    %ebp,0(%rsp)
-        movl    %r13d,%ecx
-        xorl    12(%rsp),%r14d
-        xorl    %edi,%eax
-        roll    $5,%ecx
-        xorl    36(%rsp),%r14d
-        andl    %esi,%eax
-        leal    1518500249(%rbp,%r12,1),%r12d
-        roll    $30,%esi
-        xorl    %r11d,%eax
-        addl    %ecx,%r12d
-        roll    $1,%r14d
-        addl    %eax,%r12d
-        xorl    8(%rsp),%edx
-        movl    %edi,%eax
-        movl    %r14d,4(%rsp)
-        movl    %r12d,%ecx
-        xorl    16(%rsp),%edx
-        xorl    %esi,%eax
-        roll    $5,%ecx
-        xorl    40(%rsp),%edx
-        andl    %r13d,%eax
-        leal    1518500249(%r14,%r11,1),%r11d
-        roll    $30,%r13d
-        xorl    %edi,%eax
-        addl    %ecx,%r11d
-        roll    $1,%edx
-        addl    %eax,%r11d
-        xorl    12(%rsp),%ebp
-        movl    %esi,%eax
-        movl    %edx,8(%rsp)
-        movl    %r11d,%ecx
-        xorl    20(%rsp),%ebp
-        xorl    %r13d,%eax
-        roll    $5,%ecx
-        xorl    44(%rsp),%ebp
-        andl    %r12d,%eax
-        leal    1518500249(%rdx,%rdi,1),%edi
-        roll    $30,%r12d
-        xorl    %esi,%eax
-        addl    %ecx,%edi
-        roll    $1,%ebp
-        addl    %eax,%edi
-        xorl    16(%rsp),%r14d
-        movl    %r13d,%eax
-        movl    %ebp,12(%rsp)
-        movl    %edi,%ecx
-        xorl    24(%rsp),%r14d
-        xorl    %r12d,%eax
-        roll    $5,%ecx
-        xorl    48(%rsp),%r14d
-        andl    %r11d,%eax
-        leal    1518500249(%rbp,%rsi,1),%esi
-        roll    $30,%r11d
-        xorl    %r13d,%eax
-        addl    %ecx,%esi
-        roll    $1,%r14d
-        addl    %eax,%esi
-        xorl    20(%rsp),%edx
-        movl    %edi,%eax
-        movl    %r14d,16(%rsp)
-        movl    %esi,%ecx
-        xorl    28(%rsp),%edx
-        xorl    %r12d,%eax
-        roll    $5,%ecx
-        xorl    52(%rsp),%edx
-        leal    1859775393(%r14,%r13,1),%r13d
-        xorl    %r11d,%eax
-        addl    %ecx,%r13d
-        roll    $30,%edi
-        addl    %eax,%r13d
-        roll    $1,%edx
-        xorl    24(%rsp),%ebp
-        movl    %esi,%eax
-        movl    %edx,20(%rsp)
-        movl    %r13d,%ecx
-        xorl    32(%rsp),%ebp
-        xorl    %r11d,%eax
-        roll    $5,%ecx
-        xorl    56(%rsp),%ebp
-        leal    1859775393(%rdx,%r12,1),%r12d
-        xorl    %edi,%eax
-        addl    %ecx,%r12d
-        roll    $30,%esi
-        addl    %eax,%r12d
-        roll    $1,%ebp
-        xorl    28(%rsp),%r14d
-        movl    %r13d,%eax
-        movl    %ebp,24(%rsp)
-        movl    %r12d,%ecx
-        xorl    36(%rsp),%r14d
-        xorl    %edi,%eax
-        roll    $5,%ecx
-        xorl    60(%rsp),%r14d
-        leal    1859775393(%rbp,%r11,1),%r11d
-        xorl    %esi,%eax
-        addl    %ecx,%r11d
-        roll    $30,%r13d
-        addl    %eax,%r11d
-        roll    $1,%r14d
-        xorl    32(%rsp),%edx
-        movl    %r12d,%eax
-        movl    %r14d,28(%rsp)
-        movl    %r11d,%ecx
-        xorl    40(%rsp),%edx
-        xorl    %esi,%eax
-        roll    $5,%ecx
-        xorl    0(%rsp),%edx
-        leal    1859775393(%r14,%rdi,1),%edi
-        xorl    %r13d,%eax
-        addl    %ecx,%edi
-        roll    $30,%r12d
-        addl    %eax,%edi
-        roll    $1,%edx
-        xorl    36(%rsp),%ebp
-        movl    %r11d,%eax
-        movl    %edx,32(%rsp)
-        movl    %edi,%ecx
-        xorl    44(%rsp),%ebp
-        xorl    %r13d,%eax
-        roll    $5,%ecx
-        xorl    4(%rsp),%ebp
-        leal    1859775393(%rdx,%rsi,1),%esi
-        xorl    %r12d,%eax
-        addl    %ecx,%esi
-        roll    $30,%r11d
-        addl    %eax,%esi
-        roll    $1,%ebp
-        xorl    40(%rsp),%r14d
-        movl    %edi,%eax
-        movl    %ebp,36(%rsp)
-        movl    %esi,%ecx
-        xorl    48(%rsp),%r14d
-        xorl    %r12d,%eax
-        roll    $5,%ecx
-        xorl    8(%rsp),%r14d
-        leal    1859775393(%rbp,%r13,1),%r13d
-        xorl    %r11d,%eax
-        addl    %ecx,%r13d
-        roll    $30,%edi
-        addl    %eax,%r13d
-        roll    $1,%r14d
-        xorl    44(%rsp),%edx
-        movl    %esi,%eax
-        movl    %r14d,40(%rsp)
-        movl    %r13d,%ecx
-        xorl    52(%rsp),%edx
-        xorl    %r11d,%eax
-        roll    $5,%ecx
-        xorl    12(%rsp),%edx
-        leal    1859775393(%r14,%r12,1),%r12d
-        xorl    %edi,%eax
-        addl    %ecx,%r12d
-        roll    $30,%esi
-        addl    %eax,%r12d
-        roll    $1,%edx
-        xorl    48(%rsp),%ebp
-        movl    %r13d,%eax
-        movl    %edx,44(%rsp)
-        movl    %r12d,%ecx
-        xorl    56(%rsp),%ebp
-        xorl    %edi,%eax
-        roll    $5,%ecx
-        xorl    16(%rsp),%ebp
-        leal    1859775393(%rdx,%r11,1),%r11d
-        xorl    %esi,%eax
-        addl    %ecx,%r11d
-        roll    $30,%r13d
-        addl    %eax,%r11d
-        roll    $1,%ebp
-        xorl    52(%rsp),%r14d
-        movl    %r12d,%eax
-        movl    %ebp,48(%rsp)
-        movl    %r11d,%ecx
-        xorl    60(%rsp),%r14d
-        xorl    %esi,%eax
-        roll    $5,%ecx
-        xorl    20(%rsp),%r14d
-        leal    1859775393(%rbp,%rdi,1),%edi
-        xorl    %r13d,%eax
-        addl    %ecx,%edi
-        roll    $30,%r12d
-        addl    %eax,%edi
-        roll    $1,%r14d
-        xorl    56(%rsp),%edx
-        movl    %r11d,%eax
-        movl    %r14d,52(%rsp)
-        movl    %edi,%ecx
-        xorl    0(%rsp),%edx
-        xorl    %r13d,%eax
-        roll    $5,%ecx
-        xorl    24(%rsp),%edx
-        leal    1859775393(%r14,%rsi,1),%esi
-        xorl    %r12d,%eax
-        addl    %ecx,%esi
-        roll    $30,%r11d
-        addl    %eax,%esi
-        roll    $1,%edx
-        xorl    60(%rsp),%ebp
-        movl    %edi,%eax
-        movl    %edx,56(%rsp)
-        movl    %esi,%ecx
-        xorl    4(%rsp),%ebp
-        xorl    %r12d,%eax
-        roll    $5,%ecx
-        xorl    28(%rsp),%ebp
-        leal    1859775393(%rdx,%r13,1),%r13d
-        xorl    %r11d,%eax
-        addl    %ecx,%r13d
-        roll    $30,%edi
-        addl    %eax,%r13d
-        roll    $1,%ebp
-        xorl    0(%rsp),%r14d
-        movl    %esi,%eax
-        movl    %ebp,60(%rsp)
-        movl    %r13d,%ecx
-        xorl    8(%rsp),%r14d
-        xorl    %r11d,%eax
-        roll    $5,%ecx
-        xorl    32(%rsp),%r14d
-        leal    1859775393(%rbp,%r12,1),%r12d
-        xorl    %edi,%eax
-        addl    %ecx,%r12d
-        roll    $30,%esi
-        addl    %eax,%r12d
-        roll    $1,%r14d
-        xorl    4(%rsp),%edx
-        movl    %r13d,%eax
-        movl    %r14d,0(%rsp)
-        movl    %r12d,%ecx
-        xorl    12(%rsp),%edx
-        xorl    %edi,%eax
-        roll    $5,%ecx
-        xorl    36(%rsp),%edx
-        leal    1859775393(%r14,%r11,1),%r11d
-        xorl    %esi,%eax
-        addl    %ecx,%r11d
-        roll    $30,%r13d
-        addl    %eax,%r11d
-        roll    $1,%edx
-        xorl    8(%rsp),%ebp
-        movl    %r12d,%eax
-        movl    %edx,4(%rsp)
-        movl    %r11d,%ecx
-        xorl    16(%rsp),%ebp
-        xorl    %esi,%eax
-        roll    $5,%ecx
-        xorl    40(%rsp),%ebp
-        leal    1859775393(%rdx,%rdi,1),%edi
-        xorl    %r13d,%eax
-        addl    %ecx,%edi
-        roll    $30,%r12d
-        addl    %eax,%edi
-        roll    $1,%ebp
-        xorl    12(%rsp),%r14d
-        movl    %r11d,%eax
-        movl    %ebp,8(%rsp)
-        movl    %edi,%ecx
-        xorl    20(%rsp),%r14d
-        xorl    %r13d,%eax
-        roll    $5,%ecx
-        xorl    44(%rsp),%r14d
-        leal    1859775393(%rbp,%rsi,1),%esi
-        xorl    %r12d,%eax
-        addl    %ecx,%esi
-        roll    $30,%r11d
-        addl    %eax,%esi
-        roll    $1,%r14d
-        xorl    16(%rsp),%edx
-        movl    %edi,%eax
-        movl    %r14d,12(%rsp)
-        movl    %esi,%ecx
-        xorl    24(%rsp),%edx
-        xorl    %r12d,%eax
-        roll    $5,%ecx
-        xorl    48(%rsp),%edx
-        leal    1859775393(%r14,%r13,1),%r13d
-        xorl    %r11d,%eax
-        addl    %ecx,%r13d
-        roll    $30,%edi
-        addl    %eax,%r13d
-        roll    $1,%edx
-        xorl    20(%rsp),%ebp
-        movl    %esi,%eax
-        movl    %edx,16(%rsp)
-        movl    %r13d,%ecx
-        xorl    28(%rsp),%ebp
-        xorl    %r11d,%eax
-        roll    $5,%ecx
-        xorl    52(%rsp),%ebp
-        leal    1859775393(%rdx,%r12,1),%r12d
-        xorl    %edi,%eax
-        addl    %ecx,%r12d
-        roll    $30,%esi
-        addl    %eax,%r12d
-        roll    $1,%ebp
-        xorl    24(%rsp),%r14d
-        movl    %r13d,%eax
-        movl    %ebp,20(%rsp)
-        movl    %r12d,%ecx
-        xorl    32(%rsp),%r14d
-        xorl    %edi,%eax
-        roll    $5,%ecx
-        xorl    56(%rsp),%r14d
-        leal    1859775393(%rbp,%r11,1),%r11d
-        xorl    %esi,%eax
-        addl    %ecx,%r11d
-        roll    $30,%r13d
-        addl    %eax,%r11d
-        roll    $1,%r14d
-        xorl    28(%rsp),%edx
-        movl    %r12d,%eax
-        movl    %r14d,24(%rsp)
-        movl    %r11d,%ecx
-        xorl    36(%rsp),%edx
-        xorl    %esi,%eax
-        roll    $5,%ecx
-        xorl    60(%rsp),%edx
-        leal    1859775393(%r14,%rdi,1),%edi
-        xorl    %r13d,%eax
-        addl    %ecx,%edi
-        roll    $30,%r12d
-        addl    %eax,%edi
-        roll    $1,%edx
-        xorl    32(%rsp),%ebp
-        movl    %r11d,%eax
-        movl    %edx,28(%rsp)
-        movl    %edi,%ecx
-        xorl    40(%rsp),%ebp
-        xorl    %r13d,%eax
-        roll    $5,%ecx
-        xorl    0(%rsp),%ebp
-        leal    1859775393(%rdx,%rsi,1),%esi
-        xorl    %r12d,%eax
-        addl    %ecx,%esi
-        roll    $30,%r11d
-        addl    %eax,%esi
-        roll    $1,%ebp
-        xorl    36(%rsp),%r14d
-        movl    %r12d,%eax
-        movl    %ebp,32(%rsp)
-        movl    %r12d,%ebx
-        xorl    44(%rsp),%r14d
-        andl    %r11d,%eax
-        movl    %esi,%ecx
-        xorl    4(%rsp),%r14d
-        leal    -1894007588(%rbp,%r13,1),%r13d
-        xorl    %r11d,%ebx
-        roll    $5,%ecx
-        addl    %eax,%r13d
-        roll    $1,%r14d
-        andl    %edi,%ebx
-        addl    %ecx,%r13d
-        roll    $30,%edi
-        addl    %ebx,%r13d
-        xorl    40(%rsp),%edx
-        movl    %r11d,%eax
-        movl    %r14d,36(%rsp)
-        movl    %r11d,%ebx
-        xorl    48(%rsp),%edx
-        andl    %edi,%eax
-        movl    %r13d,%ecx
-        xorl    8(%rsp),%edx
-        leal    -1894007588(%r14,%r12,1),%r12d
-        xorl    %edi,%ebx
-        roll    $5,%ecx
-        addl    %eax,%r12d
-        roll    $1,%edx
-        andl    %esi,%ebx
-        addl    %ecx,%r12d
-        roll    $30,%esi
-        addl    %ebx,%r12d
-        xorl    44(%rsp),%ebp
-        movl    %edi,%eax
-        movl    %edx,40(%rsp)
-        movl    %edi,%ebx
-        xorl    52(%rsp),%ebp
-        andl    %esi,%eax
-        movl    %r12d,%ecx
-        xorl    12(%rsp),%ebp
-        leal    -1894007588(%rdx,%r11,1),%r11d
-        xorl    %esi,%ebx
-        roll    $5,%ecx
-        addl    %eax,%r11d
-        roll    $1,%ebp
-        andl    %r13d,%ebx
-        addl    %ecx,%r11d
-        roll    $30,%r13d
-        addl    %ebx,%r11d
-        xorl    48(%rsp),%r14d
-        movl    %esi,%eax
-        movl    %ebp,44(%rsp)
-        movl    %esi,%ebx
-        xorl    56(%rsp),%r14d
-        andl    %r13d,%eax
-        movl    %r11d,%ecx
-        xorl    16(%rsp),%r14d
-        leal    -1894007588(%rbp,%rdi,1),%edi
-        xorl    %r13d,%ebx
-        roll    $5,%ecx
-        addl    %eax,%edi
-        roll    $1,%r14d
-        andl    %r12d,%ebx
-        addl    %ecx,%edi
-        roll    $30,%r12d
-        addl    %ebx,%edi
-        xorl    52(%rsp),%edx
-        movl    %r13d,%eax
-        movl    %r14d,48(%rsp)
-        movl    %r13d,%ebx
-        xorl    60(%rsp),%edx
-        andl    %r12d,%eax
-        movl    %edi,%ecx
-        xorl    20(%rsp),%edx
-        leal    -1894007588(%r14,%rsi,1),%esi
-        xorl    %r12d,%ebx
-        roll    $5,%ecx
-        addl    %eax,%esi
-        roll    $1,%edx
-        andl    %r11d,%ebx
-        addl    %ecx,%esi
-        roll    $30,%r11d
-        addl    %ebx,%esi
-        xorl    56(%rsp),%ebp
-        movl    %r12d,%eax
-        movl    %edx,52(%rsp)
-        movl    %r12d,%ebx
-        xorl    0(%rsp),%ebp
-        andl    %r11d,%eax
-        movl    %esi,%ecx
-        xorl    24(%rsp),%ebp
-        leal    -1894007588(%rdx,%r13,1),%r13d
-        xorl    %r11d,%ebx
-        roll    $5,%ecx
-        addl    %eax,%r13d
-        roll    $1,%ebp
-        andl    %edi,%ebx
-        addl    %ecx,%r13d
-        roll    $30,%edi
-        addl    %ebx,%r13d
-        xorl    60(%rsp),%r14d
-        movl    %r11d,%eax
-        movl    %ebp,56(%rsp)
-        movl    %r11d,%ebx
-        xorl    4(%rsp),%r14d
-        andl    %edi,%eax
-        movl    %r13d,%ecx
-        xorl    28(%rsp),%r14d
-        leal    -1894007588(%rbp,%r12,1),%r12d
-        xorl    %edi,%ebx
-        roll    $5,%ecx
-        addl    %eax,%r12d
-        roll    $1,%r14d
-        andl    %esi,%ebx
-        addl    %ecx,%r12d
-        roll    $30,%esi
-        addl    %ebx,%r12d
-        xorl    0(%rsp),%edx
-        movl    %edi,%eax
-        movl    %r14d,60(%rsp)
-        movl    %edi,%ebx
-        xorl    8(%rsp),%edx
-        andl    %esi,%eax
-        movl    %r12d,%ecx
-        xorl    32(%rsp),%edx
-        leal    -1894007588(%r14,%r11,1),%r11d
-        xorl    %esi,%ebx
-        roll    $5,%ecx
-        addl    %eax,%r11d
-        roll    $1,%edx
-        andl    %r13d,%ebx
-        addl    %ecx,%r11d
-        roll    $30,%r13d
-        addl    %ebx,%r11d
-        xorl    4(%rsp),%ebp
-        movl    %esi,%eax
-        movl    %edx,0(%rsp)
-        movl    %esi,%ebx
-        xorl    12(%rsp),%ebp
-        andl    %r13d,%eax
-        movl    %r11d,%ecx
-        xorl    36(%rsp),%ebp
-        leal    -1894007588(%rdx,%rdi,1),%edi
-        xorl    %r13d,%ebx
-        roll    $5,%ecx
-        addl    %eax,%edi
-        roll    $1,%ebp
-        andl    %r12d,%ebx
-        addl    %ecx,%edi
-        roll    $30,%r12d
-        addl    %ebx,%edi
-        xorl    8(%rsp),%r14d
-        movl    %r13d,%eax
-        movl    %ebp,4(%rsp)
-        movl    %r13d,%ebx
-        xorl    16(%rsp),%r14d
-        andl    %r12d,%eax
-        movl    %edi,%ecx
-        xorl    40(%rsp),%r14d
-        leal    -1894007588(%rbp,%rsi,1),%esi
-        xorl    %r12d,%ebx
-        roll    $5,%ecx
-        addl    %eax,%esi
-        roll    $1,%r14d
-        andl    %r11d,%ebx
-        addl    %ecx,%esi
-        roll    $30,%r11d
-        addl    %ebx,%esi
-        xorl    12(%rsp),%edx
-        movl    %r12d,%eax
-        movl    %r14d,8(%rsp)
-        movl    %r12d,%ebx
-        xorl    20(%rsp),%edx
-        andl    %r11d,%eax
-        movl    %esi,%ecx
-        xorl    44(%rsp),%edx
-        leal    -1894007588(%r14,%r13,1),%r13d
-        xorl    %r11d,%ebx
-        roll    $5,%ecx
-        addl    %eax,%r13d
-        roll    $1,%edx
-        andl    %edi,%ebx
-        addl    %ecx,%r13d
-        roll    $30,%edi
-        addl    %ebx,%r13d
-        xorl    16(%rsp),%ebp
-        movl    %r11d,%eax
-        movl    %edx,12(%rsp)
-        movl    %r11d,%ebx
-        xorl    24(%rsp),%ebp
-        andl    %edi,%eax
-        movl    %r13d,%ecx
-        xorl    48(%rsp),%ebp
-        leal    -1894007588(%rdx,%r12,1),%r12d
-        xorl    %edi,%ebx
-        roll    $5,%ecx
-        addl    %eax,%r12d
-        roll    $1,%ebp
-        andl    %esi,%ebx
-        addl    %ecx,%r12d
-        roll    $30,%esi
-        addl    %ebx,%r12d
-        xorl    20(%rsp),%r14d
-        movl    %edi,%eax
-        movl    %ebp,16(%rsp)
-        movl    %edi,%ebx
-        xorl    28(%rsp),%r14d
-        andl    %esi,%eax
-        movl    %r12d,%ecx
-        xorl    52(%rsp),%r14d
-        leal    -1894007588(%rbp,%r11,1),%r11d
-        xorl    %esi,%ebx
-        roll    $5,%ecx
-        addl    %eax,%r11d
-        roll    $1,%r14d
-        andl    %r13d,%ebx
-        addl    %ecx,%r11d
-        roll    $30,%r13d
-        addl    %ebx,%r11d
-        xorl    24(%rsp),%edx
-        movl    %esi,%eax
-        movl    %r14d,20(%rsp)
-        movl    %esi,%ebx
-        xorl    32(%rsp),%edx
-        andl    %r13d,%eax
-        movl    %r11d,%ecx
-        xorl    56(%rsp),%edx
-        leal    -1894007588(%r14,%rdi,1),%edi
-        xorl    %r13d,%ebx
-        roll    $5,%ecx
-        addl    %eax,%edi
-        roll    $1,%edx
-        andl    %r12d,%ebx
-        addl    %ecx,%edi
-        roll    $30,%r12d
-        addl    %ebx,%edi
-        xorl    28(%rsp),%ebp
-        movl    %r13d,%eax
-        movl    %edx,24(%rsp)
-        movl    %r13d,%ebx
-        xorl    36(%rsp),%ebp
-        andl    %r12d,%eax
-        movl    %edi,%ecx
-        xorl    60(%rsp),%ebp
-        leal    -1894007588(%rdx,%rsi,1),%esi
-        xorl    %r12d,%ebx
-        roll    $5,%ecx
-        addl    %eax,%esi
-        roll    $1,%ebp
-        andl    %r11d,%ebx
-        addl    %ecx,%esi
-        roll    $30,%r11d
-        addl    %ebx,%esi
-        xorl    32(%rsp),%r14d
-        movl    %r12d,%eax
-        movl    %ebp,28(%rsp)
-        movl    %r12d,%ebx
-        xorl    40(%rsp),%r14d
-        andl    %r11d,%eax
-        movl    %esi,%ecx
-        xorl    0(%rsp),%r14d
-        leal    -1894007588(%rbp,%r13,1),%r13d
-        xorl    %r11d,%ebx
-        roll    $5,%ecx
-        addl    %eax,%r13d
-        roll    $1,%r14d
-        andl    %edi,%ebx
-        addl    %ecx,%r13d
-        roll    $30,%edi
-        addl    %ebx,%r13d
-        xorl    36(%rsp),%edx
-        movl    %r11d,%eax
-        movl    %r14d,32(%rsp)
-        movl    %r11d,%ebx
-        xorl    44(%rsp),%edx
-        andl    %edi,%eax
-        movl    %r13d,%ecx
-        xorl    4(%rsp),%edx
-        leal    -1894007588(%r14,%r12,1),%r12d
-        xorl    %edi,%ebx
-        roll    $5,%ecx
-        addl    %eax,%r12d
-        roll    $1,%edx
-        andl    %esi,%ebx
-        addl    %ecx,%r12d
-        roll    $30,%esi
-        addl    %ebx,%r12d
-        xorl    40(%rsp),%ebp
-        movl    %edi,%eax
-        movl    %edx,36(%rsp)
-        movl    %edi,%ebx
-        xorl    48(%rsp),%ebp
-        andl    %esi,%eax
-        movl    %r12d,%ecx
-        xorl    8(%rsp),%ebp
-        leal    -1894007588(%rdx,%r11,1),%r11d
-        xorl    %esi,%ebx
-        roll    $5,%ecx
-        addl    %eax,%r11d
-        roll    $1,%ebp
-        andl    %r13d,%ebx
-        addl    %ecx,%r11d
-        roll    $30,%r13d
-        addl    %ebx,%r11d
-        xorl    44(%rsp),%r14d
-        movl    %esi,%eax
-        movl    %ebp,40(%rsp)
-        movl    %esi,%ebx
-        xorl    52(%rsp),%r14d
-        andl    %r13d,%eax
-        movl    %r11d,%ecx
-        xorl    12(%rsp),%r14d
-        leal    -1894007588(%rbp,%rdi,1),%edi
-        xorl    %r13d,%ebx
-        roll    $5,%ecx
-        addl    %eax,%edi
-        roll    $1,%r14d
-        andl    %r12d,%ebx
-        addl    %ecx,%edi
-        roll    $30,%r12d
-        addl    %ebx,%edi
-        xorl    48(%rsp),%edx
-        movl    %r13d,%eax
-        movl    %r14d,44(%rsp)
-        movl    %r13d,%ebx
-        xorl    56(%rsp),%edx
-        andl    %r12d,%eax
-        movl    %edi,%ecx
-        xorl    16(%rsp),%edx
-        leal    -1894007588(%r14,%rsi,1),%esi
-        xorl    %r12d,%ebx
-        roll    $5,%ecx
-        addl    %eax,%esi
-        roll    $1,%edx
-        andl    %r11d,%ebx
-        addl    %ecx,%esi
-        roll    $30,%r11d
-        addl    %ebx,%esi
-        xorl    52(%rsp),%ebp
-        movl    %edi,%eax
-        movl    %edx,48(%rsp)
-        movl    %esi,%ecx
-        xorl    60(%rsp),%ebp
-        xorl    %r12d,%eax
-        roll    $5,%ecx
-        xorl    20(%rsp),%ebp
-        leal    -899497514(%rdx,%r13,1),%r13d
-        xorl    %r11d,%eax
-        addl    %ecx,%r13d
-        roll    $30,%edi
-        addl    %eax,%r13d
-        roll    $1,%ebp
-        xorl    56(%rsp),%r14d
-        movl    %esi,%eax
-        movl    %ebp,52(%rsp)
-        movl    %r13d,%ecx
-        xorl    0(%rsp),%r14d
-        xorl    %r11d,%eax
-        roll    $5,%ecx
-        xorl    24(%rsp),%r14d
-        leal    -899497514(%rbp,%r12,1),%r12d
-        xorl    %edi,%eax
-        addl    %ecx,%r12d
-        roll    $30,%esi
-        addl    %eax,%r12d
-        roll    $1,%r14d
-        xorl    60(%rsp),%edx
-        movl    %r13d,%eax
-        movl    %r14d,56(%rsp)
-        movl    %r12d,%ecx
-        xorl    4(%rsp),%edx
-        xorl    %edi,%eax
-        roll    $5,%ecx
-        xorl    28(%rsp),%edx
-        leal    -899497514(%r14,%r11,1),%r11d
-        xorl    %esi,%eax
-        addl    %ecx,%r11d
-        roll    $30,%r13d
-        addl    %eax,%r11d
-        roll    $1,%edx
-        xorl    0(%rsp),%ebp
-        movl    %r12d,%eax
-        movl    %edx,60(%rsp)
-        movl    %r11d,%ecx
-        xorl    8(%rsp),%ebp
-        xorl    %esi,%eax
-        roll    $5,%ecx
-        xorl    32(%rsp),%ebp
-        leal    -899497514(%rdx,%rdi,1),%edi
-        xorl    %r13d,%eax
-        addl    %ecx,%edi
-        roll    $30,%r12d
-        addl    %eax,%edi
-        roll    $1,%ebp
-        xorl    4(%rsp),%r14d
-        movl    %r11d,%eax
-        movl    %ebp,0(%rsp)
-        movl    %edi,%ecx
-        xorl    12(%rsp),%r14d
-        xorl    %r13d,%eax
-        roll    $5,%ecx
-        xorl    36(%rsp),%r14d
-        leal    -899497514(%rbp,%rsi,1),%esi
-        xorl    %r12d,%eax
-        addl    %ecx,%esi
-        roll    $30,%r11d
-        addl    %eax,%esi
-        roll    $1,%r14d
-        xorl    8(%rsp),%edx
-        movl    %edi,%eax
-        movl    %r14d,4(%rsp)
-        movl    %esi,%ecx
-        xorl    16(%rsp),%edx
-        xorl    %r12d,%eax
-        roll    $5,%ecx
-        xorl    40(%rsp),%edx
-        leal    -899497514(%r14,%r13,1),%r13d
-        xorl    %r11d,%eax
-        addl    %ecx,%r13d
-        roll    $30,%edi
-        addl    %eax,%r13d
-        roll    $1,%edx
-        xorl    12(%rsp),%ebp
-        movl    %esi,%eax
-        movl    %edx,8(%rsp)
-        movl    %r13d,%ecx
-        xorl    20(%rsp),%ebp
-        xorl    %r11d,%eax
-        roll    $5,%ecx
-        xorl    44(%rsp),%ebp
-        leal    -899497514(%rdx,%r12,1),%r12d
-        xorl    %edi,%eax
-        addl    %ecx,%r12d
-        roll    $30,%esi
-        addl    %eax,%r12d
-        roll    $1,%ebp
-        xorl    16(%rsp),%r14d
-        movl    %r13d,%eax
-        movl    %ebp,12(%rsp)
-        movl    %r12d,%ecx
-        xorl    24(%rsp),%r14d
-        xorl    %edi,%eax
-        roll    $5,%ecx
-        xorl    48(%rsp),%r14d
-        leal    -899497514(%rbp,%r11,1),%r11d
-        xorl    %esi,%eax
-        addl    %ecx,%r11d
-        roll    $30,%r13d
-        addl    %eax,%r11d
-        roll    $1,%r14d
-        xorl    20(%rsp),%edx
-        movl    %r12d,%eax
-        movl    %r14d,16(%rsp)
-        movl    %r11d,%ecx
-        xorl    28(%rsp),%edx
-        xorl    %esi,%eax
-        roll    $5,%ecx
-        xorl    52(%rsp),%edx
-        leal    -899497514(%r14,%rdi,1),%edi
-        xorl    %r13d,%eax
-        addl    %ecx,%edi
-        roll    $30,%r12d
-        addl    %eax,%edi
-        roll    $1,%edx
-        xorl    24(%rsp),%ebp
-        movl    %r11d,%eax
-        movl    %edx,20(%rsp)
-        movl    %edi,%ecx
-        xorl    32(%rsp),%ebp
-        xorl    %r13d,%eax
-        roll    $5,%ecx
-        xorl    56(%rsp),%ebp
-        leal    -899497514(%rdx,%rsi,1),%esi
-        xorl    %r12d,%eax
-        addl    %ecx,%esi
-        roll    $30,%r11d
-        addl    %eax,%esi
-        roll    $1,%ebp
-        xorl    28(%rsp),%r14d
-        movl    %edi,%eax
-        movl    %ebp,24(%rsp)
-        movl    %esi,%ecx
-        xorl    36(%rsp),%r14d
-        xorl    %r12d,%eax
-        roll    $5,%ecx
-        xorl    60(%rsp),%r14d
-        leal    -899497514(%rbp,%r13,1),%r13d
-        xorl    %r11d,%eax
-        addl    %ecx,%r13d
-        roll    $30,%edi
-        addl    %eax,%r13d
-        roll    $1,%r14d
-        xorl    32(%rsp),%edx
-        movl    %esi,%eax
-        movl    %r14d,28(%rsp)
-        movl    %r13d,%ecx
-        xorl    40(%rsp),%edx
-        xorl    %r11d,%eax
-        roll    $5,%ecx
-        xorl    0(%rsp),%edx
-        leal    -899497514(%r14,%r12,1),%r12d
-        xorl    %edi,%eax
-        addl    %ecx,%r12d
-        roll    $30,%esi
-        addl    %eax,%r12d
-        roll    $1,%edx
-        xorl    36(%rsp),%ebp
-        movl    %r13d,%eax
-
-        movl    %r12d,%ecx
-        xorl    44(%rsp),%ebp
-        xorl    %edi,%eax
-        roll    $5,%ecx
-        xorl    4(%rsp),%ebp
-        leal    -899497514(%rdx,%r11,1),%r11d
-        xorl    %esi,%eax
-        addl    %ecx,%r11d
-        roll    $30,%r13d
-        addl    %eax,%r11d
-        roll    $1,%ebp
-        xorl    40(%rsp),%r14d
-        movl    %r12d,%eax
-
-        movl    %r11d,%ecx
-        xorl    48(%rsp),%r14d
-        xorl    %esi,%eax
-        roll    $5,%ecx
-        xorl    8(%rsp),%r14d
-        leal    -899497514(%rbp,%rdi,1),%edi
-        xorl    %r13d,%eax
-        addl    %ecx,%edi
-        roll    $30,%r12d
-        addl    %eax,%edi
-        roll    $1,%r14d
-        xorl    44(%rsp),%edx
-        movl    %r11d,%eax
-
-        movl    %edi,%ecx
-        xorl    52(%rsp),%edx
-        xorl    %r13d,%eax
-        roll    $5,%ecx
-        xorl    12(%rsp),%edx
-        leal    -899497514(%r14,%rsi,1),%esi
-        xorl    %r12d,%eax
-        addl    %ecx,%esi
-        roll    $30,%r11d
-        addl    %eax,%esi
-        roll    $1,%edx
-        xorl    48(%rsp),%ebp
-        movl    %edi,%eax
-
-        movl    %esi,%ecx
-        xorl    56(%rsp),%ebp
-        xorl    %r12d,%eax
-        roll    $5,%ecx
-        xorl    16(%rsp),%ebp
-        leal    -899497514(%rdx,%r13,1),%r13d
-        xorl    %r11d,%eax
-        addl    %ecx,%r13d
-        roll    $30,%edi
-        addl    %eax,%r13d
-        roll    $1,%ebp
-        xorl    52(%rsp),%r14d
-        movl    %esi,%eax
-
-        movl    %r13d,%ecx
-        xorl    60(%rsp),%r14d
-        xorl    %r11d,%eax
-        roll    $5,%ecx
-        xorl    20(%rsp),%r14d
-        leal    -899497514(%rbp,%r12,1),%r12d
-        xorl    %edi,%eax
-        addl    %ecx,%r12d
-        roll    $30,%esi
-        addl    %eax,%r12d
-        roll    $1,%r14d
-        xorl    56(%rsp),%edx
-        movl    %r13d,%eax
-
-        movl    %r12d,%ecx
-        xorl    0(%rsp),%edx
-        xorl    %edi,%eax
-        roll    $5,%ecx
-        xorl    24(%rsp),%edx
-        leal    -899497514(%r14,%r11,1),%r11d
-        xorl    %esi,%eax
-        addl    %ecx,%r11d
-        roll    $30,%r13d
-        addl    %eax,%r11d
-        roll    $1,%edx
-        xorl    60(%rsp),%ebp
-        movl    %r12d,%eax
-
-        movl    %r11d,%ecx
-        xorl    4(%rsp),%ebp
-        xorl    %esi,%eax
-        roll    $5,%ecx
-        xorl    28(%rsp),%ebp
-        leal    -899497514(%rdx,%rdi,1),%edi
-        xorl    %r13d,%eax
-        addl    %ecx,%edi
-        roll    $30,%r12d
-        addl    %eax,%edi
-        roll    $1,%ebp
-        movl    %r11d,%eax
-        movl    %edi,%ecx
-        xorl    %r13d,%eax
-        leal    -899497514(%rbp,%rsi,1),%esi
-        roll    $5,%ecx
-        xorl    %r12d,%eax
-        addl    %ecx,%esi
-        roll    $30,%r11d
-        addl    %eax,%esi
-        addl    0(%r8),%esi
-        addl    4(%r8),%edi
-        addl    8(%r8),%r11d
-        addl    12(%r8),%r12d
-        addl    16(%r8),%r13d
-        movl    %esi,0(%r8)
-        movl    %edi,4(%r8)
-        movl    %r11d,8(%r8)
-        movl    %r12d,12(%r8)
-        movl    %r13d,16(%r8)
-
-        subq    $1,%r10
-        leaq    64(%r9),%r9
-        jnz     .Lloop
-
-        movq    64(%rsp),%rsi
-.cfi_def_cfa    %rsi,8
-        movq    -40(%rsi),%r14
-.cfi_restore    %r14
-        movq    -32(%rsi),%r13
-.cfi_restore    %r13
-        movq    -24(%rsi),%r12
-.cfi_restore    %r12
-        movq    -16(%rsi),%rbp
-.cfi_restore    %rbp
-        movq    -8(%rsi),%rbx
-.cfi_restore    %rbx
-        leaq    (%rsi),%rsp
-.cfi_def_cfa_register   %rsp
-.Lepilogue:
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   sha1_block_data_order,.-sha1_block_data_order
-.type   sha1_block_data_order_shaext, at function
-.align  32
-sha1_block_data_order_shaext:
-_shaext_shortcut:
-.cfi_startproc
-        movdqu  (%rdi),%xmm0
-        movd    16(%rdi),%xmm1
-        movdqa  K_XX_XX+160(%rip),%xmm3
-
-        movdqu  (%rsi),%xmm4
-        pshufd  $27,%xmm0,%xmm0
-        movdqu  16(%rsi),%xmm5
-        pshufd  $27,%xmm1,%xmm1
-        movdqu  32(%rsi),%xmm6
-.byte   102,15,56,0,227
-        movdqu  48(%rsi),%xmm7
-.byte   102,15,56,0,235
-.byte   102,15,56,0,243
-        movdqa  %xmm1,%xmm9
-.byte   102,15,56,0,251
-        jmp     .Loop_shaext
-
-.align  16
-.Loop_shaext:
-        decq    %rdx
-        leaq    64(%rsi),%r8
-        paddd   %xmm4,%xmm1
-        cmovneq %r8,%rsi
-        movdqa  %xmm0,%xmm8
-.byte   15,56,201,229
-        movdqa  %xmm0,%xmm2
-.byte   15,58,204,193,0
-.byte   15,56,200,213
-        pxor    %xmm6,%xmm4
-.byte   15,56,201,238
-.byte   15,56,202,231
-
-        movdqa  %xmm0,%xmm1
-.byte   15,58,204,194,0
-.byte   15,56,200,206
-        pxor    %xmm7,%xmm5
-.byte   15,56,202,236
-.byte   15,56,201,247
-        movdqa  %xmm0,%xmm2
-.byte   15,58,204,193,0
-.byte   15,56,200,215
-        pxor    %xmm4,%xmm6
-.byte   15,56,201,252
-.byte   15,56,202,245
-
-        movdqa  %xmm0,%xmm1
-.byte   15,58,204,194,0
-.byte   15,56,200,204
-        pxor    %xmm5,%xmm7
-.byte   15,56,202,254
-.byte   15,56,201,229
-        movdqa  %xmm0,%xmm2
-.byte   15,58,204,193,0
-.byte   15,56,200,213
-        pxor    %xmm6,%xmm4
-.byte   15,56,201,238
-.byte   15,56,202,231
-
-        movdqa  %xmm0,%xmm1
-.byte   15,58,204,194,1
-.byte   15,56,200,206
-        pxor    %xmm7,%xmm5
-.byte   15,56,202,236
-.byte   15,56,201,247
-        movdqa  %xmm0,%xmm2
-.byte   15,58,204,193,1
-.byte   15,56,200,215
-        pxor    %xmm4,%xmm6
-.byte   15,56,201,252
-.byte   15,56,202,245
-
-        movdqa  %xmm0,%xmm1
-.byte   15,58,204,194,1
-.byte   15,56,200,204
-        pxor    %xmm5,%xmm7
-.byte   15,56,202,254
-.byte   15,56,201,229
-        movdqa  %xmm0,%xmm2
-.byte   15,58,204,193,1
-.byte   15,56,200,213
-        pxor    %xmm6,%xmm4
-.byte   15,56,201,238
-.byte   15,56,202,231
-
-        movdqa  %xmm0,%xmm1
-.byte   15,58,204,194,1
-.byte   15,56,200,206
-        pxor    %xmm7,%xmm5
-.byte   15,56,202,236
-.byte   15,56,201,247
-        movdqa  %xmm0,%xmm2
-.byte   15,58,204,193,2
-.byte   15,56,200,215
-        pxor    %xmm4,%xmm6
-.byte   15,56,201,252
-.byte   15,56,202,245
-
-        movdqa  %xmm0,%xmm1
-.byte   15,58,204,194,2
-.byte   15,56,200,204
-        pxor    %xmm5,%xmm7
-.byte   15,56,202,254
-.byte   15,56,201,229
-        movdqa  %xmm0,%xmm2
-.byte   15,58,204,193,2
-.byte   15,56,200,213
-        pxor    %xmm6,%xmm4
-.byte   15,56,201,238
-.byte   15,56,202,231
-
-        movdqa  %xmm0,%xmm1
-.byte   15,58,204,194,2
-.byte   15,56,200,206
-        pxor    %xmm7,%xmm5
-.byte   15,56,202,236
-.byte   15,56,201,247
-        movdqa  %xmm0,%xmm2
-.byte   15,58,204,193,2
-.byte   15,56,200,215
-        pxor    %xmm4,%xmm6
-.byte   15,56,201,252
-.byte   15,56,202,245
-
-        movdqa  %xmm0,%xmm1
-.byte   15,58,204,194,3
-.byte   15,56,200,204
-        pxor    %xmm5,%xmm7
-.byte   15,56,202,254
-        movdqu  (%rsi),%xmm4
-        movdqa  %xmm0,%xmm2
-.byte   15,58,204,193,3
-.byte   15,56,200,213
-        movdqu  16(%rsi),%xmm5
-.byte   102,15,56,0,227
-
-        movdqa  %xmm0,%xmm1
-.byte   15,58,204,194,3
-.byte   15,56,200,206
-        movdqu  32(%rsi),%xmm6
-.byte   102,15,56,0,235
-
-        movdqa  %xmm0,%xmm2
-.byte   15,58,204,193,3
-.byte   15,56,200,215
-        movdqu  48(%rsi),%xmm7
-.byte   102,15,56,0,243
-
-        movdqa  %xmm0,%xmm1
-.byte   15,58,204,194,3
-.byte   65,15,56,200,201
-.byte   102,15,56,0,251
-
-        paddd   %xmm8,%xmm0
-        movdqa  %xmm1,%xmm9
-
-        jnz     .Loop_shaext
-
-        pshufd  $27,%xmm0,%xmm0
-        pshufd  $27,%xmm1,%xmm1
-        movdqu  %xmm0,(%rdi)
-        movd    %xmm1,16(%rdi)
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   sha1_block_data_order_shaext,.-sha1_block_data_order_shaext
-.type   sha1_block_data_order_ssse3, at function
-.align  16
-sha1_block_data_order_ssse3:
-_ssse3_shortcut:
-.cfi_startproc
-        movq    %rsp,%r11
-.cfi_def_cfa_register   %r11
-        pushq   %rbx
-.cfi_offset     %rbx,-16
-        pushq   %rbp
-.cfi_offset     %rbp,-24
-        pushq   %r12
-.cfi_offset     %r12,-32
-        pushq   %r13
-.cfi_offset     %r13,-40
-        pushq   %r14
-.cfi_offset     %r14,-48
-        leaq    -64(%rsp),%rsp
-        andq    $-64,%rsp
-        movq    %rdi,%r8
-        movq    %rsi,%r9
-        movq    %rdx,%r10
-
-        shlq    $6,%r10
-        addq    %r9,%r10
-        leaq    K_XX_XX+64(%rip),%r14
-
-        movl    0(%r8),%eax
-        movl    4(%r8),%ebx
-        movl    8(%r8),%ecx
-        movl    12(%r8),%edx
-        movl    %ebx,%esi
-        movl    16(%r8),%ebp
-        movl    %ecx,%edi
-        xorl    %edx,%edi
-        andl    %edi,%esi
-
-        movdqa  64(%r14),%xmm6
-        movdqa  -64(%r14),%xmm9
-        movdqu  0(%r9),%xmm0
-        movdqu  16(%r9),%xmm1
-        movdqu  32(%r9),%xmm2
-        movdqu  48(%r9),%xmm3
-.byte   102,15,56,0,198
-.byte   102,15,56,0,206
-.byte   102,15,56,0,214
-        addq    $64,%r9
-        paddd   %xmm9,%xmm0
-.byte   102,15,56,0,222
-        paddd   %xmm9,%xmm1
-        paddd   %xmm9,%xmm2
-        movdqa  %xmm0,0(%rsp)
-        psubd   %xmm9,%xmm0
-        movdqa  %xmm1,16(%rsp)
-        psubd   %xmm9,%xmm1
-        movdqa  %xmm2,32(%rsp)
-        psubd   %xmm9,%xmm2
-        jmp     .Loop_ssse3
-.align  16
-.Loop_ssse3:
-        rorl    $2,%ebx
-        pshufd  $238,%xmm0,%xmm4
-        xorl    %edx,%esi
-        movdqa  %xmm3,%xmm8
-        paddd   %xmm3,%xmm9
-        movl    %eax,%edi
-        addl    0(%rsp),%ebp
-        punpcklqdq      %xmm1,%xmm4
-        xorl    %ecx,%ebx
-        roll    $5,%eax
-        addl    %esi,%ebp
-        psrldq  $4,%xmm8
-        andl    %ebx,%edi
-        xorl    %ecx,%ebx
-        pxor    %xmm0,%xmm4
-        addl    %eax,%ebp
-        rorl    $7,%eax
-        pxor    %xmm2,%xmm8
-        xorl    %ecx,%edi
-        movl    %ebp,%esi
-        addl    4(%rsp),%edx
-        pxor    %xmm8,%xmm4
-        xorl    %ebx,%eax
-        roll    $5,%ebp
-        movdqa  %xmm9,48(%rsp)
-        addl    %edi,%edx
-        andl    %eax,%esi
-        movdqa  %xmm4,%xmm10
-        xorl    %ebx,%eax
-        addl    %ebp,%edx
-        rorl    $7,%ebp
-        movdqa  %xmm4,%xmm8
-        xorl    %ebx,%esi
-        pslldq  $12,%xmm10
-        paddd   %xmm4,%xmm4
-        movl    %edx,%edi
-        addl    8(%rsp),%ecx
-        psrld   $31,%xmm8
-        xorl    %eax,%ebp
-        roll    $5,%edx
-        addl    %esi,%ecx
-        movdqa  %xmm10,%xmm9
-        andl    %ebp,%edi
-        xorl    %eax,%ebp
-        psrld   $30,%xmm10
-        addl    %edx,%ecx
-        rorl    $7,%edx
-        por     %xmm8,%xmm4
-        xorl    %eax,%edi
-        movl    %ecx,%esi
-        addl    12(%rsp),%ebx
-        pslld   $2,%xmm9
-        pxor    %xmm10,%xmm4
-        xorl    %ebp,%edx
-        movdqa  -64(%r14),%xmm10
-        roll    $5,%ecx
-        addl    %edi,%ebx
-        andl    %edx,%esi
-        pxor    %xmm9,%xmm4
-        xorl    %ebp,%edx
-        addl    %ecx,%ebx
-        rorl    $7,%ecx
-        pshufd  $238,%xmm1,%xmm5
-        xorl    %ebp,%esi
-        movdqa  %xmm4,%xmm9
-        paddd   %xmm4,%xmm10
-        movl    %ebx,%edi
-        addl    16(%rsp),%eax
-        punpcklqdq      %xmm2,%xmm5
-        xorl    %edx,%ecx
-        roll    $5,%ebx
-        addl    %esi,%eax
-        psrldq  $4,%xmm9
-        andl    %ecx,%edi
-        xorl    %edx,%ecx
-        pxor    %xmm1,%xmm5
-        addl    %ebx,%eax
-        rorl    $7,%ebx
-        pxor    %xmm3,%xmm9
-        xorl    %edx,%edi
-        movl    %eax,%esi
-        addl    20(%rsp),%ebp
-        pxor    %xmm9,%xmm5
-        xorl    %ecx,%ebx
-        roll    $5,%eax
-        movdqa  %xmm10,0(%rsp)
-        addl    %edi,%ebp
-        andl    %ebx,%esi
-        movdqa  %xmm5,%xmm8
-        xorl    %ecx,%ebx
-        addl    %eax,%ebp
-        rorl    $7,%eax
-        movdqa  %xmm5,%xmm9
-        xorl    %ecx,%esi
-        pslldq  $12,%xmm8
-        paddd   %xmm5,%xmm5
-        movl    %ebp,%edi
-        addl    24(%rsp),%edx
-        psrld   $31,%xmm9
-        xorl    %ebx,%eax
-        roll    $5,%ebp
-        addl    %esi,%edx
-        movdqa  %xmm8,%xmm10
-        andl    %eax,%edi
-        xorl    %ebx,%eax
-        psrld   $30,%xmm8
-        addl    %ebp,%edx
-        rorl    $7,%ebp
-        por     %xmm9,%xmm5
-        xorl    %ebx,%edi
-        movl    %edx,%esi
-        addl    28(%rsp),%ecx
-        pslld   $2,%xmm10
-        pxor    %xmm8,%xmm5
-        xorl    %eax,%ebp
-        movdqa  -32(%r14),%xmm8
-        roll    $5,%edx
-        addl    %edi,%ecx
-        andl    %ebp,%esi
-        pxor    %xmm10,%xmm5
-        xorl    %eax,%ebp
-        addl    %edx,%ecx
-        rorl    $7,%edx
-        pshufd  $238,%xmm2,%xmm6
-        xorl    %eax,%esi
-        movdqa  %xmm5,%xmm10
-        paddd   %xmm5,%xmm8
-        movl    %ecx,%edi
-        addl    32(%rsp),%ebx
-        punpcklqdq      %xmm3,%xmm6
-        xorl    %ebp,%edx
-        roll    $5,%ecx
-        addl    %esi,%ebx
-        psrldq  $4,%xmm10
-        andl    %edx,%edi
-        xorl    %ebp,%edx
-        pxor    %xmm2,%xmm6
-        addl    %ecx,%ebx
-        rorl    $7,%ecx
-        pxor    %xmm4,%xmm10
-        xorl    %ebp,%edi
-        movl    %ebx,%esi
-        addl    36(%rsp),%eax
-        pxor    %xmm10,%xmm6
-        xorl    %edx,%ecx
-        roll    $5,%ebx
-        movdqa  %xmm8,16(%rsp)
-        addl    %edi,%eax
-        andl    %ecx,%esi
-        movdqa  %xmm6,%xmm9
-        xorl    %edx,%ecx
-        addl    %ebx,%eax
-        rorl    $7,%ebx
-        movdqa  %xmm6,%xmm10
-        xorl    %edx,%esi
-        pslldq  $12,%xmm9
-        paddd   %xmm6,%xmm6
-        movl    %eax,%edi
-        addl    40(%rsp),%ebp
-        psrld   $31,%xmm10
-        xorl    %ecx,%ebx
-        roll    $5,%eax
-        addl    %esi,%ebp
-        movdqa  %xmm9,%xmm8
-        andl    %ebx,%edi
-        xorl    %ecx,%ebx
-        psrld   $30,%xmm9
-        addl    %eax,%ebp
-        rorl    $7,%eax
-        por     %xmm10,%xmm6
-        xorl    %ecx,%edi
-        movl    %ebp,%esi
-        addl    44(%rsp),%edx
-        pslld   $2,%xmm8
-        pxor    %xmm9,%xmm6
-        xorl    %ebx,%eax
-        movdqa  -32(%r14),%xmm9
-        roll    $5,%ebp
-        addl    %edi,%edx
-        andl    %eax,%esi
-        pxor    %xmm8,%xmm6
-        xorl    %ebx,%eax
-        addl    %ebp,%edx
-        rorl    $7,%ebp
-        pshufd  $238,%xmm3,%xmm7
-        xorl    %ebx,%esi
-        movdqa  %xmm6,%xmm8
-        paddd   %xmm6,%xmm9
-        movl    %edx,%edi
-        addl    48(%rsp),%ecx
-        punpcklqdq      %xmm4,%xmm7
-        xorl    %eax,%ebp
-        roll    $5,%edx
-        addl    %esi,%ecx
-        psrldq  $4,%xmm8
-        andl    %ebp,%edi
-        xorl    %eax,%ebp
-        pxor    %xmm3,%xmm7
-        addl    %edx,%ecx
-        rorl    $7,%edx
-        pxor    %xmm5,%xmm8
-        xorl    %eax,%edi
-        movl    %ecx,%esi
-        addl    52(%rsp),%ebx
-        pxor    %xmm8,%xmm7
-        xorl    %ebp,%edx
-        roll    $5,%ecx
-        movdqa  %xmm9,32(%rsp)
-        addl    %edi,%ebx
-        andl    %edx,%esi
-        movdqa  %xmm7,%xmm10
-        xorl    %ebp,%edx
-        addl    %ecx,%ebx
-        rorl    $7,%ecx
-        movdqa  %xmm7,%xmm8
-        xorl    %ebp,%esi
-        pslldq  $12,%xmm10
-        paddd   %xmm7,%xmm7
-        movl    %ebx,%edi
-        addl    56(%rsp),%eax
-        psrld   $31,%xmm8
-        xorl    %edx,%ecx
-        roll    $5,%ebx
-        addl    %esi,%eax
-        movdqa  %xmm10,%xmm9
-        andl    %ecx,%edi
-        xorl    %edx,%ecx
-        psrld   $30,%xmm10
-        addl    %ebx,%eax
-        rorl    $7,%ebx
-        por     %xmm8,%xmm7
-        xorl    %edx,%edi
-        movl    %eax,%esi
-        addl    60(%rsp),%ebp
-        pslld   $2,%xmm9
-        pxor    %xmm10,%xmm7
-        xorl    %ecx,%ebx
-        movdqa  -32(%r14),%xmm10
-        roll    $5,%eax
-        addl    %edi,%ebp
-        andl    %ebx,%esi
-        pxor    %xmm9,%xmm7
-        pshufd  $238,%xmm6,%xmm9
-        xorl    %ecx,%ebx
-        addl    %eax,%ebp
-        rorl    $7,%eax
-        pxor    %xmm4,%xmm0
-        xorl    %ecx,%esi
-        movl    %ebp,%edi
-        addl    0(%rsp),%edx
-        punpcklqdq      %xmm7,%xmm9
-        xorl    %ebx,%eax
-        roll    $5,%ebp
-        pxor    %xmm1,%xmm0
-        addl    %esi,%edx
-        andl    %eax,%edi
-        movdqa  %xmm10,%xmm8
-        xorl    %ebx,%eax
-        paddd   %xmm7,%xmm10
-        addl    %ebp,%edx
-        pxor    %xmm9,%xmm0
-        rorl    $7,%ebp
-        xorl    %ebx,%edi
-        movl    %edx,%esi
-        addl    4(%rsp),%ecx
-        movdqa  %xmm0,%xmm9
-        xorl    %eax,%ebp
-        roll    $5,%edx
-        movdqa  %xmm10,48(%rsp)
-        addl    %edi,%ecx
-        andl    %ebp,%esi
-        xorl    %eax,%ebp
-        pslld   $2,%xmm0
-        addl    %edx,%ecx
-        rorl    $7,%edx
-        psrld   $30,%xmm9
-        xorl    %eax,%esi
-        movl    %ecx,%edi
-        addl    8(%rsp),%ebx
-        por     %xmm9,%xmm0
-        xorl    %ebp,%edx
-        roll    $5,%ecx
-        pshufd  $238,%xmm7,%xmm10
-        addl    %esi,%ebx
-        andl    %edx,%edi
-        xorl    %ebp,%edx
-        addl    %ecx,%ebx
-        addl    12(%rsp),%eax
-        xorl    %ebp,%edi
-        movl    %ebx,%esi
-        roll    $5,%ebx
-        addl    %edi,%eax
-        xorl    %edx,%esi
-        rorl    $7,%ecx
-        addl    %ebx,%eax
-        pxor    %xmm5,%xmm1
-        addl    16(%rsp),%ebp
-        xorl    %ecx,%esi
-        punpcklqdq      %xmm0,%xmm10
-        movl    %eax,%edi
-        roll    $5,%eax
-        pxor    %xmm2,%xmm1
-        addl    %esi,%ebp
-        xorl    %ecx,%edi
-        movdqa  %xmm8,%xmm9
-        rorl    $7,%ebx
-        paddd   %xmm0,%xmm8
-        addl    %eax,%ebp
-        pxor    %xmm10,%xmm1
-        addl    20(%rsp),%edx
-        xorl    %ebx,%edi
-        movl    %ebp,%esi
-        roll    $5,%ebp
-        movdqa  %xmm1,%xmm10
-        addl    %edi,%edx
-        xorl    %ebx,%esi
-        movdqa  %xmm8,0(%rsp)
-        rorl    $7,%eax
-        addl    %ebp,%edx
-        addl    24(%rsp),%ecx
-        pslld   $2,%xmm1
-        xorl    %eax,%esi
-        movl    %edx,%edi
-        psrld   $30,%xmm10
-        roll    $5,%edx
-        addl    %esi,%ecx
-        xorl    %eax,%edi
-        rorl    $7,%ebp
-        por     %xmm10,%xmm1
-        addl    %edx,%ecx
-        addl    28(%rsp),%ebx
-        pshufd  $238,%xmm0,%xmm8
-        xorl    %ebp,%edi
-        movl    %ecx,%esi
-        roll    $5,%ecx
-        addl    %edi,%ebx
-        xorl    %ebp,%esi
-        rorl    $7,%edx
-        addl    %ecx,%ebx
-        pxor    %xmm6,%xmm2
-        addl    32(%rsp),%eax
-        xorl    %edx,%esi
-        punpcklqdq      %xmm1,%xmm8
-        movl    %ebx,%edi
-        roll    $5,%ebx
-        pxor    %xmm3,%xmm2
-        addl    %esi,%eax
-        xorl    %edx,%edi
-        movdqa  0(%r14),%xmm10
-        rorl    $7,%ecx
-        paddd   %xmm1,%xmm9
-        addl    %ebx,%eax
-        pxor    %xmm8,%xmm2
-        addl    36(%rsp),%ebp
-        xorl    %ecx,%edi
-        movl    %eax,%esi
-        roll    $5,%eax
-        movdqa  %xmm2,%xmm8
-        addl    %edi,%ebp
-        xorl    %ecx,%esi
-        movdqa  %xmm9,16(%rsp)
-        rorl    $7,%ebx
-        addl    %eax,%ebp
-        addl    40(%rsp),%edx
-        pslld   $2,%xmm2
-        xorl    %ebx,%esi
-        movl    %ebp,%edi
-        psrld   $30,%xmm8
-        roll    $5,%ebp
-        addl    %esi,%edx
-        xorl    %ebx,%edi
-        rorl    $7,%eax
-        por     %xmm8,%xmm2
-        addl    %ebp,%edx
-        addl    44(%rsp),%ecx
-        pshufd  $238,%xmm1,%xmm9
-        xorl    %eax,%edi
-        movl    %edx,%esi
-        roll    $5,%edx
-        addl    %edi,%ecx
-        xorl    %eax,%esi
-        rorl    $7,%ebp
-        addl    %edx,%ecx
-        pxor    %xmm7,%xmm3
-        addl    48(%rsp),%ebx
-        xorl    %ebp,%esi
-        punpcklqdq      %xmm2,%xmm9
-        movl    %ecx,%edi
-        roll    $5,%ecx
-        pxor    %xmm4,%xmm3
-        addl    %esi,%ebx
-        xorl    %ebp,%edi
-        movdqa  %xmm10,%xmm8
-        rorl    $7,%edx
-        paddd   %xmm2,%xmm10
-        addl    %ecx,%ebx
-        pxor    %xmm9,%xmm3
-        addl    52(%rsp),%eax
-        xorl    %edx,%edi
-        movl    %ebx,%esi
-        roll    $5,%ebx
-        movdqa  %xmm3,%xmm9
-        addl    %edi,%eax
-        xorl    %edx,%esi
-        movdqa  %xmm10,32(%rsp)
-        rorl    $7,%ecx
-        addl    %ebx,%eax
-        addl    56(%rsp),%ebp
-        pslld   $2,%xmm3
-        xorl    %ecx,%esi
-        movl    %eax,%edi
-        psrld   $30,%xmm9
-        roll    $5,%eax
-        addl    %esi,%ebp
-        xorl    %ecx,%edi
-        rorl    $7,%ebx
-        por     %xmm9,%xmm3
-        addl    %eax,%ebp
-        addl    60(%rsp),%edx
-        pshufd  $238,%xmm2,%xmm10
-        xorl    %ebx,%edi
-        movl    %ebp,%esi
-        roll    $5,%ebp
-        addl    %edi,%edx
-        xorl    %ebx,%esi
-        rorl    $7,%eax
-        addl    %ebp,%edx
-        pxor    %xmm0,%xmm4
-        addl    0(%rsp),%ecx
-        xorl    %eax,%esi
-        punpcklqdq      %xmm3,%xmm10
-        movl    %edx,%edi
-        roll    $5,%edx
-        pxor    %xmm5,%xmm4
-        addl    %esi,%ecx
-        xorl    %eax,%edi
-        movdqa  %xmm8,%xmm9
-        rorl    $7,%ebp
-        paddd   %xmm3,%xmm8
-        addl    %edx,%ecx
-        pxor    %xmm10,%xmm4
-        addl    4(%rsp),%ebx
-        xorl    %ebp,%edi
-        movl    %ecx,%esi
-        roll    $5,%ecx
-        movdqa  %xmm4,%xmm10
-        addl    %edi,%ebx
-        xorl    %ebp,%esi
-        movdqa  %xmm8,48(%rsp)
-        rorl    $7,%edx
-        addl    %ecx,%ebx
-        addl    8(%rsp),%eax
-        pslld   $2,%xmm4
-        xorl    %edx,%esi
-        movl    %ebx,%edi
-        psrld   $30,%xmm10
-        roll    $5,%ebx
-        addl    %esi,%eax
-        xorl    %edx,%edi
-        rorl    $7,%ecx
-        por     %xmm10,%xmm4
-        addl    %ebx,%eax
-        addl    12(%rsp),%ebp
-        pshufd  $238,%xmm3,%xmm8
-        xorl    %ecx,%edi
-        movl    %eax,%esi
-        roll    $5,%eax
-        addl    %edi,%ebp
-        xorl    %ecx,%esi
-        rorl    $7,%ebx
-        addl    %eax,%ebp
-        pxor    %xmm1,%xmm5
-        addl    16(%rsp),%edx
-        xorl    %ebx,%esi
-        punpcklqdq      %xmm4,%xmm8
-        movl    %ebp,%edi
-        roll    $5,%ebp
-        pxor    %xmm6,%xmm5
-        addl    %esi,%edx
-        xorl    %ebx,%edi
-        movdqa  %xmm9,%xmm10
-        rorl    $7,%eax
-        paddd   %xmm4,%xmm9
-        addl    %ebp,%edx
-        pxor    %xmm8,%xmm5
-        addl    20(%rsp),%ecx
-        xorl    %eax,%edi
-        movl    %edx,%esi
-        roll    $5,%edx
-        movdqa  %xmm5,%xmm8
-        addl    %edi,%ecx
-        xorl    %eax,%esi
-        movdqa  %xmm9,0(%rsp)
-        rorl    $7,%ebp
-        addl    %edx,%ecx
-        addl    24(%rsp),%ebx
-        pslld   $2,%xmm5
-        xorl    %ebp,%esi
-        movl    %ecx,%edi
-        psrld   $30,%xmm8
-        roll    $5,%ecx
-        addl    %esi,%ebx
-        xorl    %ebp,%edi
-        rorl    $7,%edx
-        por     %xmm8,%xmm5
-        addl    %ecx,%ebx
-        addl    28(%rsp),%eax
-        pshufd  $238,%xmm4,%xmm9
-        rorl    $7,%ecx
-        movl    %ebx,%esi
-        xorl    %edx,%edi
-        roll    $5,%ebx
-        addl    %edi,%eax
-        xorl    %ecx,%esi
-        xorl    %edx,%ecx
-        addl    %ebx,%eax
-        pxor    %xmm2,%xmm6
-        addl    32(%rsp),%ebp
-        andl    %ecx,%esi
-        xorl    %edx,%ecx
-        rorl    $7,%ebx
-        punpcklqdq      %xmm5,%xmm9
-        movl    %eax,%edi
-        xorl    %ecx,%esi
-        pxor    %xmm7,%xmm6
-        roll    $5,%eax
-        addl    %esi,%ebp
-        movdqa  %xmm10,%xmm8
-        xorl    %ebx,%edi
-        paddd   %xmm5,%xmm10
-        xorl    %ecx,%ebx
-        pxor    %xmm9,%xmm6
-        addl    %eax,%ebp
-        addl    36(%rsp),%edx
-        andl    %ebx,%edi
-        xorl    %ecx,%ebx
-        rorl    $7,%eax
-        movdqa  %xmm6,%xmm9
-        movl    %ebp,%esi
-        xorl    %ebx,%edi
-        movdqa  %xmm10,16(%rsp)
-        roll    $5,%ebp
-        addl    %edi,%edx
-        xorl    %eax,%esi
-        pslld   $2,%xmm6
-        xorl    %ebx,%eax
-        addl    %ebp,%edx
-        psrld   $30,%xmm9
-        addl    40(%rsp),%ecx
-        andl    %eax,%esi
-        xorl    %ebx,%eax
-        por     %xmm9,%xmm6
-        rorl    $7,%ebp
-        movl    %edx,%edi
-        xorl    %eax,%esi
-        roll    $5,%edx
-        pshufd  $238,%xmm5,%xmm10
-        addl    %esi,%ecx
-        xorl    %ebp,%edi
-        xorl    %eax,%ebp
-        addl    %edx,%ecx
-        addl    44(%rsp),%ebx
-        andl    %ebp,%edi
-        xorl    %eax,%ebp
-        rorl    $7,%edx
-        movl    %ecx,%esi
-        xorl    %ebp,%edi
-        roll    $5,%ecx
-        addl    %edi,%ebx
-        xorl    %edx,%esi
-        xorl    %ebp,%edx
-        addl    %ecx,%ebx
-        pxor    %xmm3,%xmm7
-        addl    48(%rsp),%eax
-        andl    %edx,%esi
-        xorl    %ebp,%edx
-        rorl    $7,%ecx
-        punpcklqdq      %xmm6,%xmm10
-        movl    %ebx,%edi
-        xorl    %edx,%esi
-        pxor    %xmm0,%xmm7
-        roll    $5,%ebx
-        addl    %esi,%eax
-        movdqa  32(%r14),%xmm9
-        xorl    %ecx,%edi
-        paddd   %xmm6,%xmm8
-        xorl    %edx,%ecx
-        pxor    %xmm10,%xmm7
-        addl    %ebx,%eax
-        addl    52(%rsp),%ebp
-        andl    %ecx,%edi
-        xorl    %edx,%ecx
-        rorl    $7,%ebx
-        movdqa  %xmm7,%xmm10
-        movl    %eax,%esi
-        xorl    %ecx,%edi
-        movdqa  %xmm8,32(%rsp)
-        roll    $5,%eax
-        addl    %edi,%ebp
-        xorl    %ebx,%esi
-        pslld   $2,%xmm7
-        xorl    %ecx,%ebx
-        addl    %eax,%ebp
-        psrld   $30,%xmm10
-        addl    56(%rsp),%edx
-        andl    %ebx,%esi
-        xorl    %ecx,%ebx
-        por     %xmm10,%xmm7
-        rorl    $7,%eax
-        movl    %ebp,%edi
-        xorl    %ebx,%esi
-        roll    $5,%ebp
-        pshufd  $238,%xmm6,%xmm8
-        addl    %esi,%edx
-        xorl    %eax,%edi
-        xorl    %ebx,%eax
-        addl    %ebp,%edx
-        addl    60(%rsp),%ecx
-        andl    %eax,%edi
-        xorl    %ebx,%eax
-        rorl    $7,%ebp
-        movl    %edx,%esi
-        xorl    %eax,%edi
-        roll    $5,%edx
-        addl    %edi,%ecx
-        xorl    %ebp,%esi
-        xorl    %eax,%ebp
-        addl    %edx,%ecx
-        pxor    %xmm4,%xmm0
-        addl    0(%rsp),%ebx
-        andl    %ebp,%esi
-        xorl    %eax,%ebp
-        rorl    $7,%edx
-        punpcklqdq      %xmm7,%xmm8
-        movl    %ecx,%edi
-        xorl    %ebp,%esi
-        pxor    %xmm1,%xmm0
-        roll    $5,%ecx
-        addl    %esi,%ebx
-        movdqa  %xmm9,%xmm10
-        xorl    %edx,%edi
-        paddd   %xmm7,%xmm9
-        xorl    %ebp,%edx
-        pxor    %xmm8,%xmm0
-        addl    %ecx,%ebx
-        addl    4(%rsp),%eax
-        andl    %edx,%edi
-        xorl    %ebp,%edx
-        rorl    $7,%ecx
-        movdqa  %xmm0,%xmm8
-        movl    %ebx,%esi
-        xorl    %edx,%edi
-        movdqa  %xmm9,48(%rsp)
-        roll    $5,%ebx
-        addl    %edi,%eax
-        xorl    %ecx,%esi
-        pslld   $2,%xmm0
-        xorl    %edx,%ecx
-        addl    %ebx,%eax
-        psrld   $30,%xmm8
-        addl    8(%rsp),%ebp
-        andl    %ecx,%esi
-        xorl    %edx,%ecx
-        por     %xmm8,%xmm0
-        rorl    $7,%ebx
-        movl    %eax,%edi
-        xorl    %ecx,%esi
-        roll    $5,%eax
-        pshufd  $238,%xmm7,%xmm9
-        addl    %esi,%ebp
-        xorl    %ebx,%edi
-        xorl    %ecx,%ebx
-        addl    %eax,%ebp
-        addl    12(%rsp),%edx
-        andl    %ebx,%edi
-        xorl    %ecx,%ebx
-        rorl    $7,%eax
-        movl    %ebp,%esi
-        xorl    %ebx,%edi
-        roll    $5,%ebp
-        addl    %edi,%edx
-        xorl    %eax,%esi
-        xorl    %ebx,%eax
-        addl    %ebp,%edx
-        pxor    %xmm5,%xmm1
-        addl    16(%rsp),%ecx
-        andl    %eax,%esi
-        xorl    %ebx,%eax
-        rorl    $7,%ebp
-        punpcklqdq      %xmm0,%xmm9
-        movl    %edx,%edi
-        xorl    %eax,%esi
-        pxor    %xmm2,%xmm1
-        roll    $5,%edx
-        addl    %esi,%ecx
-        movdqa  %xmm10,%xmm8
-        xorl    %ebp,%edi
-        paddd   %xmm0,%xmm10
-        xorl    %eax,%ebp
-        pxor    %xmm9,%xmm1
-        addl    %edx,%ecx
-        addl    20(%rsp),%ebx
-        andl    %ebp,%edi
-        xorl    %eax,%ebp
-        rorl    $7,%edx
-        movdqa  %xmm1,%xmm9
-        movl    %ecx,%esi
-        xorl    %ebp,%edi
-        movdqa  %xmm10,0(%rsp)
-        roll    $5,%ecx
-        addl    %edi,%ebx
-        xorl    %edx,%esi
-        pslld   $2,%xmm1
-        xorl    %ebp,%edx
-        addl    %ecx,%ebx
-        psrld   $30,%xmm9
-        addl    24(%rsp),%eax
-        andl    %edx,%esi
-        xorl    %ebp,%edx
-        por     %xmm9,%xmm1
-        rorl    $7,%ecx
-        movl    %ebx,%edi
-        xorl    %edx,%esi
-        roll    $5,%ebx
-        pshufd  $238,%xmm0,%xmm10
-        addl    %esi,%eax
-        xorl    %ecx,%edi
-        xorl    %edx,%ecx
-        addl    %ebx,%eax
-        addl    28(%rsp),%ebp
-        andl    %ecx,%edi
-        xorl    %edx,%ecx
-        rorl    $7,%ebx
-        movl    %eax,%esi
-        xorl    %ecx,%edi
-        roll    $5,%eax
-        addl    %edi,%ebp
-        xorl    %ebx,%esi
-        xorl    %ecx,%ebx
-        addl    %eax,%ebp
-        pxor    %xmm6,%xmm2
-        addl    32(%rsp),%edx
-        andl    %ebx,%esi
-        xorl    %ecx,%ebx
-        rorl    $7,%eax
-        punpcklqdq      %xmm1,%xmm10
-        movl    %ebp,%edi
-        xorl    %ebx,%esi
-        pxor    %xmm3,%xmm2
-        roll    $5,%ebp
-        addl    %esi,%edx
-        movdqa  %xmm8,%xmm9
-        xorl    %eax,%edi
-        paddd   %xmm1,%xmm8
-        xorl    %ebx,%eax
-        pxor    %xmm10,%xmm2
-        addl    %ebp,%edx
-        addl    36(%rsp),%ecx
-        andl    %eax,%edi
-        xorl    %ebx,%eax
-        rorl    $7,%ebp
-        movdqa  %xmm2,%xmm10
-        movl    %edx,%esi
-        xorl    %eax,%edi
-        movdqa  %xmm8,16(%rsp)
-        roll    $5,%edx
-        addl    %edi,%ecx
-        xorl    %ebp,%esi
-        pslld   $2,%xmm2
-        xorl    %eax,%ebp
-        addl    %edx,%ecx
-        psrld   $30,%xmm10
-        addl    40(%rsp),%ebx
-        andl    %ebp,%esi
-        xorl    %eax,%ebp
-        por     %xmm10,%xmm2
-        rorl    $7,%edx
-        movl    %ecx,%edi
-        xorl    %ebp,%esi
-        roll    $5,%ecx
-        pshufd  $238,%xmm1,%xmm8
-        addl    %esi,%ebx
-        xorl    %edx,%edi
-        xorl    %ebp,%edx
-        addl    %ecx,%ebx
-        addl    44(%rsp),%eax
-        andl    %edx,%edi
-        xorl    %ebp,%edx
-        rorl    $7,%ecx
-        movl    %ebx,%esi
-        xorl    %edx,%edi
-        roll    $5,%ebx
-        addl    %edi,%eax
-        xorl    %edx,%esi
-        addl    %ebx,%eax
-        pxor    %xmm7,%xmm3
-        addl    48(%rsp),%ebp
-        xorl    %ecx,%esi
-        punpcklqdq      %xmm2,%xmm8
-        movl    %eax,%edi
-        roll    $5,%eax
-        pxor    %xmm4,%xmm3
-        addl    %esi,%ebp
-        xorl    %ecx,%edi
-        movdqa  %xmm9,%xmm10
-        rorl    $7,%ebx
-        paddd   %xmm2,%xmm9
-        addl    %eax,%ebp
-        pxor    %xmm8,%xmm3
-        addl    52(%rsp),%edx
-        xorl    %ebx,%edi
-        movl    %ebp,%esi
-        roll    $5,%ebp
-        movdqa  %xmm3,%xmm8
-        addl    %edi,%edx
-        xorl    %ebx,%esi
-        movdqa  %xmm9,32(%rsp)
-        rorl    $7,%eax
-        addl    %ebp,%edx
-        addl    56(%rsp),%ecx
-        pslld   $2,%xmm3
-        xorl    %eax,%esi
-        movl    %edx,%edi
-        psrld   $30,%xmm8
-        roll    $5,%edx
-        addl    %esi,%ecx
-        xorl    %eax,%edi
-        rorl    $7,%ebp
-        por     %xmm8,%xmm3
-        addl    %edx,%ecx
-        addl    60(%rsp),%ebx
-        xorl    %ebp,%edi
-        movl    %ecx,%esi
-        roll    $5,%ecx
-        addl    %edi,%ebx
-        xorl    %ebp,%esi
-        rorl    $7,%edx
-        addl    %ecx,%ebx
-        addl    0(%rsp),%eax
-        xorl    %edx,%esi
-        movl    %ebx,%edi
-        roll    $5,%ebx
-        paddd   %xmm3,%xmm10
-        addl    %esi,%eax
-        xorl    %edx,%edi
-        movdqa  %xmm10,48(%rsp)
-        rorl    $7,%ecx
-        addl    %ebx,%eax
-        addl    4(%rsp),%ebp
-        xorl    %ecx,%edi
-        movl    %eax,%esi
-        roll    $5,%eax
-        addl    %edi,%ebp
-        xorl    %ecx,%esi
-        rorl    $7,%ebx
-        addl    %eax,%ebp
-        addl    8(%rsp),%edx
-        xorl    %ebx,%esi
-        movl    %ebp,%edi
-        roll    $5,%ebp
-        addl    %esi,%edx
-        xorl    %ebx,%edi
-        rorl    $7,%eax
-        addl    %ebp,%edx
-        addl    12(%rsp),%ecx
-        xorl    %eax,%edi
-        movl    %edx,%esi
-        roll    $5,%edx
-        addl    %edi,%ecx
-        xorl    %eax,%esi
-        rorl    $7,%ebp
-        addl    %edx,%ecx
-        cmpq    %r10,%r9
-        je      .Ldone_ssse3
-        movdqa  64(%r14),%xmm6
-        movdqa  -64(%r14),%xmm9
-        movdqu  0(%r9),%xmm0
-        movdqu  16(%r9),%xmm1
-        movdqu  32(%r9),%xmm2
-        movdqu  48(%r9),%xmm3
-.byte   102,15,56,0,198
-        addq    $64,%r9
-        addl    16(%rsp),%ebx
-        xorl    %ebp,%esi
-        movl    %ecx,%edi
-.byte   102,15,56,0,206
-        roll    $5,%ecx
-        addl    %esi,%ebx
-        xorl    %ebp,%edi
-        rorl    $7,%edx
-        paddd   %xmm9,%xmm0
-        addl    %ecx,%ebx
-        addl    20(%rsp),%eax
-        xorl    %edx,%edi
-        movl    %ebx,%esi
-        movdqa  %xmm0,0(%rsp)
-        roll    $5,%ebx
-        addl    %edi,%eax
-        xorl    %edx,%esi
-        rorl    $7,%ecx
-        psubd   %xmm9,%xmm0
-        addl    %ebx,%eax
-        addl    24(%rsp),%ebp
-        xorl    %ecx,%esi
-        movl    %eax,%edi
-        roll    $5,%eax
-        addl    %esi,%ebp
-        xorl    %ecx,%edi
-        rorl    $7,%ebx
-        addl    %eax,%ebp
-        addl    28(%rsp),%edx
-        xorl    %ebx,%edi
-        movl    %ebp,%esi
-        roll    $5,%ebp
-        addl    %edi,%edx
-        xorl    %ebx,%esi
-        rorl    $7,%eax
-        addl    %ebp,%edx
-        addl    32(%rsp),%ecx
-        xorl    %eax,%esi
-        movl    %edx,%edi
-.byte   102,15,56,0,214
-        roll    $5,%edx
-        addl    %esi,%ecx
-        xorl    %eax,%edi
-        rorl    $7,%ebp
-        paddd   %xmm9,%xmm1
-        addl    %edx,%ecx
-        addl    36(%rsp),%ebx
-        xorl    %ebp,%edi
-        movl    %ecx,%esi
-        movdqa  %xmm1,16(%rsp)
-        roll    $5,%ecx
-        addl    %edi,%ebx
-        xorl    %ebp,%esi
-        rorl    $7,%edx
-        psubd   %xmm9,%xmm1
-        addl    %ecx,%ebx
-        addl    40(%rsp),%eax
-        xorl    %edx,%esi
-        movl    %ebx,%edi
-        roll    $5,%ebx
-        addl    %esi,%eax
-        xorl    %edx,%edi
-        rorl    $7,%ecx
-        addl    %ebx,%eax
-        addl    44(%rsp),%ebp
-        xorl    %ecx,%edi
-        movl    %eax,%esi
-        roll    $5,%eax
-        addl    %edi,%ebp
-        xorl    %ecx,%esi
-        rorl    $7,%ebx
-        addl    %eax,%ebp
-        addl    48(%rsp),%edx
-        xorl    %ebx,%esi
-        movl    %ebp,%edi
-.byte   102,15,56,0,222
-        roll    $5,%ebp
-        addl    %esi,%edx
-        xorl    %ebx,%edi
-        rorl    $7,%eax
-        paddd   %xmm9,%xmm2
-        addl    %ebp,%edx
-        addl    52(%rsp),%ecx
-        xorl    %eax,%edi
-        movl    %edx,%esi
-        movdqa  %xmm2,32(%rsp)
-        roll    $5,%edx
-        addl    %edi,%ecx
-        xorl    %eax,%esi
-        rorl    $7,%ebp
-        psubd   %xmm9,%xmm2
-        addl    %edx,%ecx
-        addl    56(%rsp),%ebx
-        xorl    %ebp,%esi
-        movl    %ecx,%edi
-        roll    $5,%ecx
-        addl    %esi,%ebx
-        xorl    %ebp,%edi
-        rorl    $7,%edx
-        addl    %ecx,%ebx
-        addl    60(%rsp),%eax
-        xorl    %edx,%edi
-        movl    %ebx,%esi
-        roll    $5,%ebx
-        addl    %edi,%eax
-        rorl    $7,%ecx
-        addl    %ebx,%eax
-        addl    0(%r8),%eax
-        addl    4(%r8),%esi
-        addl    8(%r8),%ecx
-        addl    12(%r8),%edx
-        movl    %eax,0(%r8)
-        addl    16(%r8),%ebp
-        movl    %esi,4(%r8)
-        movl    %esi,%ebx
-        movl    %ecx,8(%r8)
-        movl    %ecx,%edi
-        movl    %edx,12(%r8)
-        xorl    %edx,%edi
-        movl    %ebp,16(%r8)
-        andl    %edi,%esi
-        jmp     .Loop_ssse3
-
-.align  16
-.Ldone_ssse3:
-        addl    16(%rsp),%ebx
-        xorl    %ebp,%esi
-        movl    %ecx,%edi
-        roll    $5,%ecx
-        addl    %esi,%ebx
-        xorl    %ebp,%edi
-        rorl    $7,%edx
-        addl    %ecx,%ebx
-        addl    20(%rsp),%eax
-        xorl    %edx,%edi
-        movl    %ebx,%esi
-        roll    $5,%ebx
-        addl    %edi,%eax
-        xorl    %edx,%esi
-        rorl    $7,%ecx
-        addl    %ebx,%eax
-        addl    24(%rsp),%ebp
-        xorl    %ecx,%esi
-        movl    %eax,%edi
-        roll    $5,%eax
-        addl    %esi,%ebp
-        xorl    %ecx,%edi
-        rorl    $7,%ebx
-        addl    %eax,%ebp
-        addl    28(%rsp),%edx
-        xorl    %ebx,%edi
-        movl    %ebp,%esi
-        roll    $5,%ebp
-        addl    %edi,%edx
-        xorl    %ebx,%esi
-        rorl    $7,%eax
-        addl    %ebp,%edx
-        addl    32(%rsp),%ecx
-        xorl    %eax,%esi
-        movl    %edx,%edi
-        roll    $5,%edx
-        addl    %esi,%ecx
-        xorl    %eax,%edi
-        rorl    $7,%ebp
-        addl    %edx,%ecx
-        addl    36(%rsp),%ebx
-        xorl    %ebp,%edi
-        movl    %ecx,%esi
-        roll    $5,%ecx
-        addl    %edi,%ebx
-        xorl    %ebp,%esi
-        rorl    $7,%edx
-        addl    %ecx,%ebx
-        addl    40(%rsp),%eax
-        xorl    %edx,%esi
-        movl    %ebx,%edi
-        roll    $5,%ebx
-        addl    %esi,%eax
-        xorl    %edx,%edi
-        rorl    $7,%ecx
-        addl    %ebx,%eax
-        addl    44(%rsp),%ebp
-        xorl    %ecx,%edi
-        movl    %eax,%esi
-        roll    $5,%eax
-        addl    %edi,%ebp
-        xorl    %ecx,%esi
-        rorl    $7,%ebx
-        addl    %eax,%ebp
-        addl    48(%rsp),%edx
-        xorl    %ebx,%esi
-        movl    %ebp,%edi
-        roll    $5,%ebp
-        addl    %esi,%edx
-        xorl    %ebx,%edi
-        rorl    $7,%eax
-        addl    %ebp,%edx
-        addl    52(%rsp),%ecx
-        xorl    %eax,%edi
-        movl    %edx,%esi
-        roll    $5,%edx
-        addl    %edi,%ecx
-        xorl    %eax,%esi
-        rorl    $7,%ebp
-        addl    %edx,%ecx
-        addl    56(%rsp),%ebx
-        xorl    %ebp,%esi
-        movl    %ecx,%edi
-        roll    $5,%ecx
-        addl    %esi,%ebx
-        xorl    %ebp,%edi
-        rorl    $7,%edx
-        addl    %ecx,%ebx
-        addl    60(%rsp),%eax
-        xorl    %edx,%edi
-        movl    %ebx,%esi
-        roll    $5,%ebx
-        addl    %edi,%eax
-        rorl    $7,%ecx
-        addl    %ebx,%eax
-        addl    0(%r8),%eax
-        addl    4(%r8),%esi
-        addl    8(%r8),%ecx
-        movl    %eax,0(%r8)
-        addl    12(%r8),%edx
-        movl    %esi,4(%r8)
-        addl    16(%r8),%ebp
-        movl    %ecx,8(%r8)
-        movl    %edx,12(%r8)
-        movl    %ebp,16(%r8)
-        movq    -40(%r11),%r14
-.cfi_restore    %r14
-        movq    -32(%r11),%r13
-.cfi_restore    %r13
-        movq    -24(%r11),%r12
-.cfi_restore    %r12
-        movq    -16(%r11),%rbp
-.cfi_restore    %rbp
-        movq    -8(%r11),%rbx
-.cfi_restore    %rbx
-        leaq    (%r11),%rsp
-.cfi_def_cfa_register   %rsp
-.Lepilogue_ssse3:
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   sha1_block_data_order_ssse3,.-sha1_block_data_order_ssse3
-.align  64
-K_XX_XX:
-.long   0x5a827999,0x5a827999,0x5a827999,0x5a827999
-.long   0x5a827999,0x5a827999,0x5a827999,0x5a827999
-.long   0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
-.long   0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
-.long   0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
-.long   0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
-.long   0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
-.long   0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
-.long   0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
-.long   0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
-.byte   0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0
-.byte   83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
-.align  64
diff --git a/CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha256-mb-x86_64.S b/CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha256-mb-x86_64.S
deleted file mode 100644
index 25dee488b866..000000000000
--- a/CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha256-mb-x86_64.S
+++ /dev/null
@@ -1,3286 +0,0 @@
-# WARNING: do not edit!
-# Generated from openssl/crypto/sha/asm/sha256-mb-x86_64.pl
-#
-# Copyright 2013-2020 The OpenSSL Project Authors. All Rights Reserved.
-#
-# Licensed under the OpenSSL license (the "License").  You may not use
-# this file except in compliance with the License.  You can obtain a copy
-# in the file LICENSE in the source distribution or at
-# https://www.openssl.org/source/license.html
-
-.text
-
-
-
-.globl  sha256_multi_block
-.type   sha256_multi_block, at function
-.align  32
-sha256_multi_block:
-.cfi_startproc
-        movq    OPENSSL_ia32cap_P+4(%rip),%rcx
-        btq     $61,%rcx
-        jc      _shaext_shortcut
-        movq    %rsp,%rax
-.cfi_def_cfa_register   %rax
-        pushq   %rbx
-.cfi_offset     %rbx,-16
-        pushq   %rbp
-.cfi_offset     %rbp,-24
-        subq    $288,%rsp
-        andq    $-256,%rsp
-        movq    %rax,272(%rsp)
-.cfi_escape     0x0f,0x06,0x77,0x90,0x02,0x06,0x23,0x08
-.Lbody:
-        leaq    K256+128(%rip),%rbp
-        leaq    256(%rsp),%rbx
-        leaq    128(%rdi),%rdi
-
-.Loop_grande:
-        movl    %edx,280(%rsp)
-        xorl    %edx,%edx
-        movq    0(%rsi),%r8
-        movl    8(%rsi),%ecx
-        cmpl    %edx,%ecx
-        cmovgl  %ecx,%edx
-        testl   %ecx,%ecx
-        movl    %ecx,0(%rbx)
-        cmovleq %rbp,%r8
-        movq    16(%rsi),%r9
-        movl    24(%rsi),%ecx
-        cmpl    %edx,%ecx
-        cmovgl  %ecx,%edx
-        testl   %ecx,%ecx
-        movl    %ecx,4(%rbx)
-        cmovleq %rbp,%r9
-        movq    32(%rsi),%r10
-        movl    40(%rsi),%ecx
-        cmpl    %edx,%ecx
-        cmovgl  %ecx,%edx
-        testl   %ecx,%ecx
-        movl    %ecx,8(%rbx)
-        cmovleq %rbp,%r10
-        movq    48(%rsi),%r11
-        movl    56(%rsi),%ecx
-        cmpl    %edx,%ecx
-        cmovgl  %ecx,%edx
-        testl   %ecx,%ecx
-        movl    %ecx,12(%rbx)
-        cmovleq %rbp,%r11
-        testl   %edx,%edx
-        jz      .Ldone
-
-        movdqu  0-128(%rdi),%xmm8
-        leaq    128(%rsp),%rax
-        movdqu  32-128(%rdi),%xmm9
-        movdqu  64-128(%rdi),%xmm10
-        movdqu  96-128(%rdi),%xmm11
-        movdqu  128-128(%rdi),%xmm12
-        movdqu  160-128(%rdi),%xmm13
-        movdqu  192-128(%rdi),%xmm14
-        movdqu  224-128(%rdi),%xmm15
-        movdqu  .Lpbswap(%rip),%xmm6
-        jmp     .Loop
-
-.align  32
-.Loop:
-        movdqa  %xmm10,%xmm4
-        pxor    %xmm9,%xmm4
-        movd    0(%r8),%xmm5
-        movd    0(%r9),%xmm0
-        movd    0(%r10),%xmm1
-        movd    0(%r11),%xmm2
-        punpckldq       %xmm1,%xmm5
-        punpckldq       %xmm2,%xmm0
-        punpckldq       %xmm0,%xmm5
-        movdqa  %xmm12,%xmm7
-.byte   102,15,56,0,238
-        movdqa  %xmm12,%xmm2
-
-        psrld   $6,%xmm7
-        movdqa  %xmm12,%xmm1
-        pslld   $7,%xmm2
-        movdqa  %xmm5,0-128(%rax)
-        paddd   %xmm15,%xmm5
-
-        psrld   $11,%xmm1
-        pxor    %xmm2,%xmm7
-        pslld   $21-7,%xmm2
-        paddd   -128(%rbp),%xmm5
-        pxor    %xmm1,%xmm7
-
-        psrld   $25-11,%xmm1
-        movdqa  %xmm12,%xmm0
-
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm12,%xmm3
-        pslld   $26-21,%xmm2
-        pandn   %xmm14,%xmm0
-        pand    %xmm13,%xmm3
-        pxor    %xmm1,%xmm7
-
-
-        movdqa  %xmm8,%xmm1
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm8,%xmm2
-        psrld   $2,%xmm1
-        paddd   %xmm7,%xmm5
-        pxor    %xmm3,%xmm0
-        movdqa  %xmm9,%xmm3
-        movdqa  %xmm8,%xmm7
-        pslld   $10,%xmm2
-        pxor    %xmm8,%xmm3
-
-
-        psrld   $13,%xmm7
-        pxor    %xmm2,%xmm1
-        paddd   %xmm0,%xmm5
-        pslld   $19-10,%xmm2
-        pand    %xmm3,%xmm4
-        pxor    %xmm7,%xmm1
-
-
-        psrld   $22-13,%xmm7
-        pxor    %xmm2,%xmm1
-        movdqa  %xmm9,%xmm15
-        pslld   $30-19,%xmm2
-        pxor    %xmm1,%xmm7
-        pxor    %xmm4,%xmm15
-        paddd   %xmm5,%xmm11
-        pxor    %xmm2,%xmm7
-
-        paddd   %xmm5,%xmm15
-        paddd   %xmm7,%xmm15
-        movd    4(%r8),%xmm5
-        movd    4(%r9),%xmm0
-        movd    4(%r10),%xmm1
-        movd    4(%r11),%xmm2
-        punpckldq       %xmm1,%xmm5
-        punpckldq       %xmm2,%xmm0
-        punpckldq       %xmm0,%xmm5
-        movdqa  %xmm11,%xmm7
-
-        movdqa  %xmm11,%xmm2
-.byte   102,15,56,0,238
-        psrld   $6,%xmm7
-        movdqa  %xmm11,%xmm1
-        pslld   $7,%xmm2
-        movdqa  %xmm5,16-128(%rax)
-        paddd   %xmm14,%xmm5
-
-        psrld   $11,%xmm1
-        pxor    %xmm2,%xmm7
-        pslld   $21-7,%xmm2
-        paddd   -96(%rbp),%xmm5
-        pxor    %xmm1,%xmm7
-
-        psrld   $25-11,%xmm1
-        movdqa  %xmm11,%xmm0
-
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm11,%xmm4
-        pslld   $26-21,%xmm2
-        pandn   %xmm13,%xmm0
-        pand    %xmm12,%xmm4
-        pxor    %xmm1,%xmm7
-
-
-        movdqa  %xmm15,%xmm1
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm15,%xmm2
-        psrld   $2,%xmm1
-        paddd   %xmm7,%xmm5
-        pxor    %xmm4,%xmm0
-        movdqa  %xmm8,%xmm4
-        movdqa  %xmm15,%xmm7
-        pslld   $10,%xmm2
-        pxor    %xmm15,%xmm4
-
-
-        psrld   $13,%xmm7
-        pxor    %xmm2,%xmm1
-        paddd   %xmm0,%xmm5
-        pslld   $19-10,%xmm2
-        pand    %xmm4,%xmm3
-        pxor    %xmm7,%xmm1
-
-
-        psrld   $22-13,%xmm7
-        pxor    %xmm2,%xmm1
-        movdqa  %xmm8,%xmm14
-        pslld   $30-19,%xmm2
-        pxor    %xmm1,%xmm7
-        pxor    %xmm3,%xmm14
-        paddd   %xmm5,%xmm10
-        pxor    %xmm2,%xmm7
-
-        paddd   %xmm5,%xmm14
-        paddd   %xmm7,%xmm14
-        movd    8(%r8),%xmm5
-        movd    8(%r9),%xmm0
-        movd    8(%r10),%xmm1
-        movd    8(%r11),%xmm2
-        punpckldq       %xmm1,%xmm5
-        punpckldq       %xmm2,%xmm0
-        punpckldq       %xmm0,%xmm5
-        movdqa  %xmm10,%xmm7
-.byte   102,15,56,0,238
-        movdqa  %xmm10,%xmm2
-
-        psrld   $6,%xmm7
-        movdqa  %xmm10,%xmm1
-        pslld   $7,%xmm2
-        movdqa  %xmm5,32-128(%rax)
-        paddd   %xmm13,%xmm5
-
-        psrld   $11,%xmm1
-        pxor    %xmm2,%xmm7
-        pslld   $21-7,%xmm2
-        paddd   -64(%rbp),%xmm5
-        pxor    %xmm1,%xmm7
-
-        psrld   $25-11,%xmm1
-        movdqa  %xmm10,%xmm0
-
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm10,%xmm3
-        pslld   $26-21,%xmm2
-        pandn   %xmm12,%xmm0
-        pand    %xmm11,%xmm3
-        pxor    %xmm1,%xmm7
-
-
-        movdqa  %xmm14,%xmm1
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm14,%xmm2
-        psrld   $2,%xmm1
-        paddd   %xmm7,%xmm5
-        pxor    %xmm3,%xmm0
-        movdqa  %xmm15,%xmm3
-        movdqa  %xmm14,%xmm7
-        pslld   $10,%xmm2
-        pxor    %xmm14,%xmm3
-
-
-        psrld   $13,%xmm7
-        pxor    %xmm2,%xmm1
-        paddd   %xmm0,%xmm5
-        pslld   $19-10,%xmm2
-        pand    %xmm3,%xmm4
-        pxor    %xmm7,%xmm1
-
-
-        psrld   $22-13,%xmm7
-        pxor    %xmm2,%xmm1
-        movdqa  %xmm15,%xmm13
-        pslld   $30-19,%xmm2
-        pxor    %xmm1,%xmm7
-        pxor    %xmm4,%xmm13
-        paddd   %xmm5,%xmm9
-        pxor    %xmm2,%xmm7
-
-        paddd   %xmm5,%xmm13
-        paddd   %xmm7,%xmm13
-        movd    12(%r8),%xmm5
-        movd    12(%r9),%xmm0
-        movd    12(%r10),%xmm1
-        movd    12(%r11),%xmm2
-        punpckldq       %xmm1,%xmm5
-        punpckldq       %xmm2,%xmm0
-        punpckldq       %xmm0,%xmm5
-        movdqa  %xmm9,%xmm7
-
-        movdqa  %xmm9,%xmm2
-.byte   102,15,56,0,238
-        psrld   $6,%xmm7
-        movdqa  %xmm9,%xmm1
-        pslld   $7,%xmm2
-        movdqa  %xmm5,48-128(%rax)
-        paddd   %xmm12,%xmm5
-
-        psrld   $11,%xmm1
-        pxor    %xmm2,%xmm7
-        pslld   $21-7,%xmm2
-        paddd   -32(%rbp),%xmm5
-        pxor    %xmm1,%xmm7
-
-        psrld   $25-11,%xmm1
-        movdqa  %xmm9,%xmm0
-
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm9,%xmm4
-        pslld   $26-21,%xmm2
-        pandn   %xmm11,%xmm0
-        pand    %xmm10,%xmm4
-        pxor    %xmm1,%xmm7
-
-
-        movdqa  %xmm13,%xmm1
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm13,%xmm2
-        psrld   $2,%xmm1
-        paddd   %xmm7,%xmm5
-        pxor    %xmm4,%xmm0
-        movdqa  %xmm14,%xmm4
-        movdqa  %xmm13,%xmm7
-        pslld   $10,%xmm2
-        pxor    %xmm13,%xmm4
-
-
-        psrld   $13,%xmm7
-        pxor    %xmm2,%xmm1
-        paddd   %xmm0,%xmm5
-        pslld   $19-10,%xmm2
-        pand    %xmm4,%xmm3
-        pxor    %xmm7,%xmm1
-
-
-        psrld   $22-13,%xmm7
-        pxor    %xmm2,%xmm1
-        movdqa  %xmm14,%xmm12
-        pslld   $30-19,%xmm2
-        pxor    %xmm1,%xmm7
-        pxor    %xmm3,%xmm12
-        paddd   %xmm5,%xmm8
-        pxor    %xmm2,%xmm7
-
-        paddd   %xmm5,%xmm12
-        paddd   %xmm7,%xmm12
-        movd    16(%r8),%xmm5
-        movd    16(%r9),%xmm0
-        movd    16(%r10),%xmm1
-        movd    16(%r11),%xmm2
-        punpckldq       %xmm1,%xmm5
-        punpckldq       %xmm2,%xmm0
-        punpckldq       %xmm0,%xmm5
-        movdqa  %xmm8,%xmm7
-.byte   102,15,56,0,238
-        movdqa  %xmm8,%xmm2
-
-        psrld   $6,%xmm7
-        movdqa  %xmm8,%xmm1
-        pslld   $7,%xmm2
-        movdqa  %xmm5,64-128(%rax)
-        paddd   %xmm11,%xmm5
-
-        psrld   $11,%xmm1
-        pxor    %xmm2,%xmm7
-        pslld   $21-7,%xmm2
-        paddd   0(%rbp),%xmm5
-        pxor    %xmm1,%xmm7
-
-        psrld   $25-11,%xmm1
-        movdqa  %xmm8,%xmm0
-
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm8,%xmm3
-        pslld   $26-21,%xmm2
-        pandn   %xmm10,%xmm0
-        pand    %xmm9,%xmm3
-        pxor    %xmm1,%xmm7
-
-
-        movdqa  %xmm12,%xmm1
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm12,%xmm2
-        psrld   $2,%xmm1
-        paddd   %xmm7,%xmm5
-        pxor    %xmm3,%xmm0
-        movdqa  %xmm13,%xmm3
-        movdqa  %xmm12,%xmm7
-        pslld   $10,%xmm2
-        pxor    %xmm12,%xmm3
-
-
-        psrld   $13,%xmm7
-        pxor    %xmm2,%xmm1
-        paddd   %xmm0,%xmm5
-        pslld   $19-10,%xmm2
-        pand    %xmm3,%xmm4
-        pxor    %xmm7,%xmm1
-
-
-        psrld   $22-13,%xmm7
-        pxor    %xmm2,%xmm1
-        movdqa  %xmm13,%xmm11
-        pslld   $30-19,%xmm2
-        pxor    %xmm1,%xmm7
-        pxor    %xmm4,%xmm11
-        paddd   %xmm5,%xmm15
-        pxor    %xmm2,%xmm7
-
-        paddd   %xmm5,%xmm11
-        paddd   %xmm7,%xmm11
-        movd    20(%r8),%xmm5
-        movd    20(%r9),%xmm0
-        movd    20(%r10),%xmm1
-        movd    20(%r11),%xmm2
-        punpckldq       %xmm1,%xmm5
-        punpckldq       %xmm2,%xmm0
-        punpckldq       %xmm0,%xmm5
-        movdqa  %xmm15,%xmm7
-
-        movdqa  %xmm15,%xmm2
-.byte   102,15,56,0,238
-        psrld   $6,%xmm7
-        movdqa  %xmm15,%xmm1
-        pslld   $7,%xmm2
-        movdqa  %xmm5,80-128(%rax)
-        paddd   %xmm10,%xmm5
-
-        psrld   $11,%xmm1
-        pxor    %xmm2,%xmm7
-        pslld   $21-7,%xmm2
-        paddd   32(%rbp),%xmm5
-        pxor    %xmm1,%xmm7
-
-        psrld   $25-11,%xmm1
-        movdqa  %xmm15,%xmm0
-
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm15,%xmm4
-        pslld   $26-21,%xmm2
-        pandn   %xmm9,%xmm0
-        pand    %xmm8,%xmm4
-        pxor    %xmm1,%xmm7
-
-
-        movdqa  %xmm11,%xmm1
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm11,%xmm2
-        psrld   $2,%xmm1
-        paddd   %xmm7,%xmm5
-        pxor    %xmm4,%xmm0
-        movdqa  %xmm12,%xmm4
-        movdqa  %xmm11,%xmm7
-        pslld   $10,%xmm2
-        pxor    %xmm11,%xmm4
-
-
-        psrld   $13,%xmm7
-        pxor    %xmm2,%xmm1
-        paddd   %xmm0,%xmm5
-        pslld   $19-10,%xmm2
-        pand    %xmm4,%xmm3
-        pxor    %xmm7,%xmm1
-
-
-        psrld   $22-13,%xmm7
-        pxor    %xmm2,%xmm1
-        movdqa  %xmm12,%xmm10
-        pslld   $30-19,%xmm2
-        pxor    %xmm1,%xmm7
-        pxor    %xmm3,%xmm10
-        paddd   %xmm5,%xmm14
-        pxor    %xmm2,%xmm7
-
-        paddd   %xmm5,%xmm10
-        paddd   %xmm7,%xmm10
-        movd    24(%r8),%xmm5
-        movd    24(%r9),%xmm0
-        movd    24(%r10),%xmm1
-        movd    24(%r11),%xmm2
-        punpckldq       %xmm1,%xmm5
-        punpckldq       %xmm2,%xmm0
-        punpckldq       %xmm0,%xmm5
-        movdqa  %xmm14,%xmm7
-.byte   102,15,56,0,238
-        movdqa  %xmm14,%xmm2
-
-        psrld   $6,%xmm7
-        movdqa  %xmm14,%xmm1
-        pslld   $7,%xmm2
-        movdqa  %xmm5,96-128(%rax)
-        paddd   %xmm9,%xmm5
-
-        psrld   $11,%xmm1
-        pxor    %xmm2,%xmm7
-        pslld   $21-7,%xmm2
-        paddd   64(%rbp),%xmm5
-        pxor    %xmm1,%xmm7
-
-        psrld   $25-11,%xmm1
-        movdqa  %xmm14,%xmm0
-
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm14,%xmm3
-        pslld   $26-21,%xmm2
-        pandn   %xmm8,%xmm0
-        pand    %xmm15,%xmm3
-        pxor    %xmm1,%xmm7
-
-
-        movdqa  %xmm10,%xmm1
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm10,%xmm2
-        psrld   $2,%xmm1
-        paddd   %xmm7,%xmm5
-        pxor    %xmm3,%xmm0
-        movdqa  %xmm11,%xmm3
-        movdqa  %xmm10,%xmm7
-        pslld   $10,%xmm2
-        pxor    %xmm10,%xmm3
-
-
-        psrld   $13,%xmm7
-        pxor    %xmm2,%xmm1
-        paddd   %xmm0,%xmm5
-        pslld   $19-10,%xmm2
-        pand    %xmm3,%xmm4
-        pxor    %xmm7,%xmm1
-
-
-        psrld   $22-13,%xmm7
-        pxor    %xmm2,%xmm1
-        movdqa  %xmm11,%xmm9
-        pslld   $30-19,%xmm2
-        pxor    %xmm1,%xmm7
-        pxor    %xmm4,%xmm9
-        paddd   %xmm5,%xmm13
-        pxor    %xmm2,%xmm7
-
-        paddd   %xmm5,%xmm9
-        paddd   %xmm7,%xmm9
-        movd    28(%r8),%xmm5
-        movd    28(%r9),%xmm0
-        movd    28(%r10),%xmm1
-        movd    28(%r11),%xmm2
-        punpckldq       %xmm1,%xmm5
-        punpckldq       %xmm2,%xmm0
-        punpckldq       %xmm0,%xmm5
-        movdqa  %xmm13,%xmm7
-
-        movdqa  %xmm13,%xmm2
-.byte   102,15,56,0,238
-        psrld   $6,%xmm7
-        movdqa  %xmm13,%xmm1
-        pslld   $7,%xmm2
-        movdqa  %xmm5,112-128(%rax)
-        paddd   %xmm8,%xmm5
-
-        psrld   $11,%xmm1
-        pxor    %xmm2,%xmm7
-        pslld   $21-7,%xmm2
-        paddd   96(%rbp),%xmm5
-        pxor    %xmm1,%xmm7
-
-        psrld   $25-11,%xmm1
-        movdqa  %xmm13,%xmm0
-
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm13,%xmm4
-        pslld   $26-21,%xmm2
-        pandn   %xmm15,%xmm0
-        pand    %xmm14,%xmm4
-        pxor    %xmm1,%xmm7
-
-
-        movdqa  %xmm9,%xmm1
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm9,%xmm2
-        psrld   $2,%xmm1
-        paddd   %xmm7,%xmm5
-        pxor    %xmm4,%xmm0
-        movdqa  %xmm10,%xmm4
-        movdqa  %xmm9,%xmm7
-        pslld   $10,%xmm2
-        pxor    %xmm9,%xmm4
-
-
-        psrld   $13,%xmm7
-        pxor    %xmm2,%xmm1
-        paddd   %xmm0,%xmm5
-        pslld   $19-10,%xmm2
-        pand    %xmm4,%xmm3
-        pxor    %xmm7,%xmm1
-
-
-        psrld   $22-13,%xmm7
-        pxor    %xmm2,%xmm1
-        movdqa  %xmm10,%xmm8
-        pslld   $30-19,%xmm2
-        pxor    %xmm1,%xmm7
-        pxor    %xmm3,%xmm8
-        paddd   %xmm5,%xmm12
-        pxor    %xmm2,%xmm7
-
-        paddd   %xmm5,%xmm8
-        paddd   %xmm7,%xmm8
-        leaq    256(%rbp),%rbp
-        movd    32(%r8),%xmm5
-        movd    32(%r9),%xmm0
-        movd    32(%r10),%xmm1
-        movd    32(%r11),%xmm2
-        punpckldq       %xmm1,%xmm5
-        punpckldq       %xmm2,%xmm0
-        punpckldq       %xmm0,%xmm5
-        movdqa  %xmm12,%xmm7
-.byte   102,15,56,0,238
-        movdqa  %xmm12,%xmm2
-
-        psrld   $6,%xmm7
-        movdqa  %xmm12,%xmm1
-        pslld   $7,%xmm2
-        movdqa  %xmm5,128-128(%rax)
-        paddd   %xmm15,%xmm5
-
-        psrld   $11,%xmm1
-        pxor    %xmm2,%xmm7
-        pslld   $21-7,%xmm2
-        paddd   -128(%rbp),%xmm5
-        pxor    %xmm1,%xmm7
-
-        psrld   $25-11,%xmm1
-        movdqa  %xmm12,%xmm0
-
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm12,%xmm3
-        pslld   $26-21,%xmm2
-        pandn   %xmm14,%xmm0
-        pand    %xmm13,%xmm3
-        pxor    %xmm1,%xmm7
-
-
-        movdqa  %xmm8,%xmm1
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm8,%xmm2
-        psrld   $2,%xmm1
-        paddd   %xmm7,%xmm5
-        pxor    %xmm3,%xmm0
-        movdqa  %xmm9,%xmm3
-        movdqa  %xmm8,%xmm7
-        pslld   $10,%xmm2
-        pxor    %xmm8,%xmm3
-
-
-        psrld   $13,%xmm7
-        pxor    %xmm2,%xmm1
-        paddd   %xmm0,%xmm5
-        pslld   $19-10,%xmm2
-        pand    %xmm3,%xmm4
-        pxor    %xmm7,%xmm1
-
-
-        psrld   $22-13,%xmm7
-        pxor    %xmm2,%xmm1
-        movdqa  %xmm9,%xmm15
-        pslld   $30-19,%xmm2
-        pxor    %xmm1,%xmm7
-        pxor    %xmm4,%xmm15
-        paddd   %xmm5,%xmm11
-        pxor    %xmm2,%xmm7
-
-        paddd   %xmm5,%xmm15
-        paddd   %xmm7,%xmm15
-        movd    36(%r8),%xmm5
-        movd    36(%r9),%xmm0
-        movd    36(%r10),%xmm1
-        movd    36(%r11),%xmm2
-        punpckldq       %xmm1,%xmm5
-        punpckldq       %xmm2,%xmm0
-        punpckldq       %xmm0,%xmm5
-        movdqa  %xmm11,%xmm7
-
-        movdqa  %xmm11,%xmm2
-.byte   102,15,56,0,238
-        psrld   $6,%xmm7
-        movdqa  %xmm11,%xmm1
-        pslld   $7,%xmm2
-        movdqa  %xmm5,144-128(%rax)
-        paddd   %xmm14,%xmm5
-
-        psrld   $11,%xmm1
-        pxor    %xmm2,%xmm7
-        pslld   $21-7,%xmm2
-        paddd   -96(%rbp),%xmm5
-        pxor    %xmm1,%xmm7
-
-        psrld   $25-11,%xmm1
-        movdqa  %xmm11,%xmm0
-
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm11,%xmm4
-        pslld   $26-21,%xmm2
-        pandn   %xmm13,%xmm0
-        pand    %xmm12,%xmm4
-        pxor    %xmm1,%xmm7
-
-
-        movdqa  %xmm15,%xmm1
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm15,%xmm2
-        psrld   $2,%xmm1
-        paddd   %xmm7,%xmm5
-        pxor    %xmm4,%xmm0
-        movdqa  %xmm8,%xmm4
-        movdqa  %xmm15,%xmm7
-        pslld   $10,%xmm2
-        pxor    %xmm15,%xmm4
-
-
-        psrld   $13,%xmm7
-        pxor    %xmm2,%xmm1
-        paddd   %xmm0,%xmm5
-        pslld   $19-10,%xmm2
-        pand    %xmm4,%xmm3
-        pxor    %xmm7,%xmm1
-
-
-        psrld   $22-13,%xmm7
-        pxor    %xmm2,%xmm1
-        movdqa  %xmm8,%xmm14
-        pslld   $30-19,%xmm2
-        pxor    %xmm1,%xmm7
-        pxor    %xmm3,%xmm14
-        paddd   %xmm5,%xmm10
-        pxor    %xmm2,%xmm7
-
-        paddd   %xmm5,%xmm14
-        paddd   %xmm7,%xmm14
-        movd    40(%r8),%xmm5
-        movd    40(%r9),%xmm0
-        movd    40(%r10),%xmm1
-        movd    40(%r11),%xmm2
-        punpckldq       %xmm1,%xmm5
-        punpckldq       %xmm2,%xmm0
-        punpckldq       %xmm0,%xmm5
-        movdqa  %xmm10,%xmm7
-.byte   102,15,56,0,238
-        movdqa  %xmm10,%xmm2
-
-        psrld   $6,%xmm7
-        movdqa  %xmm10,%xmm1
-        pslld   $7,%xmm2
-        movdqa  %xmm5,160-128(%rax)
-        paddd   %xmm13,%xmm5
-
-        psrld   $11,%xmm1
-        pxor    %xmm2,%xmm7
-        pslld   $21-7,%xmm2
-        paddd   -64(%rbp),%xmm5
-        pxor    %xmm1,%xmm7
-
-        psrld   $25-11,%xmm1
-        movdqa  %xmm10,%xmm0
-
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm10,%xmm3
-        pslld   $26-21,%xmm2
-        pandn   %xmm12,%xmm0
-        pand    %xmm11,%xmm3
-        pxor    %xmm1,%xmm7
-
-
-        movdqa  %xmm14,%xmm1
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm14,%xmm2
-        psrld   $2,%xmm1
-        paddd   %xmm7,%xmm5
-        pxor    %xmm3,%xmm0
-        movdqa  %xmm15,%xmm3
-        movdqa  %xmm14,%xmm7
-        pslld   $10,%xmm2
-        pxor    %xmm14,%xmm3
-
-
-        psrld   $13,%xmm7
-        pxor    %xmm2,%xmm1
-        paddd   %xmm0,%xmm5
-        pslld   $19-10,%xmm2
-        pand    %xmm3,%xmm4
-        pxor    %xmm7,%xmm1
-
-
-        psrld   $22-13,%xmm7
-        pxor    %xmm2,%xmm1
-        movdqa  %xmm15,%xmm13
-        pslld   $30-19,%xmm2
-        pxor    %xmm1,%xmm7
-        pxor    %xmm4,%xmm13
-        paddd   %xmm5,%xmm9
-        pxor    %xmm2,%xmm7
-
-        paddd   %xmm5,%xmm13
-        paddd   %xmm7,%xmm13
-        movd    44(%r8),%xmm5
-        movd    44(%r9),%xmm0
-        movd    44(%r10),%xmm1
-        movd    44(%r11),%xmm2
-        punpckldq       %xmm1,%xmm5
-        punpckldq       %xmm2,%xmm0
-        punpckldq       %xmm0,%xmm5
-        movdqa  %xmm9,%xmm7
-
-        movdqa  %xmm9,%xmm2
-.byte   102,15,56,0,238
-        psrld   $6,%xmm7
-        movdqa  %xmm9,%xmm1
-        pslld   $7,%xmm2
-        movdqa  %xmm5,176-128(%rax)
-        paddd   %xmm12,%xmm5
-
-        psrld   $11,%xmm1
-        pxor    %xmm2,%xmm7
-        pslld   $21-7,%xmm2
-        paddd   -32(%rbp),%xmm5
-        pxor    %xmm1,%xmm7
-
-        psrld   $25-11,%xmm1
-        movdqa  %xmm9,%xmm0
-
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm9,%xmm4
-        pslld   $26-21,%xmm2
-        pandn   %xmm11,%xmm0
-        pand    %xmm10,%xmm4
-        pxor    %xmm1,%xmm7
-
-
-        movdqa  %xmm13,%xmm1
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm13,%xmm2
-        psrld   $2,%xmm1
-        paddd   %xmm7,%xmm5
-        pxor    %xmm4,%xmm0
-        movdqa  %xmm14,%xmm4
-        movdqa  %xmm13,%xmm7
-        pslld   $10,%xmm2
-        pxor    %xmm13,%xmm4
-
-
-        psrld   $13,%xmm7
-        pxor    %xmm2,%xmm1
-        paddd   %xmm0,%xmm5
-        pslld   $19-10,%xmm2
-        pand    %xmm4,%xmm3
-        pxor    %xmm7,%xmm1
-
-
-        psrld   $22-13,%xmm7
-        pxor    %xmm2,%xmm1
-        movdqa  %xmm14,%xmm12
-        pslld   $30-19,%xmm2
-        pxor    %xmm1,%xmm7
-        pxor    %xmm3,%xmm12
-        paddd   %xmm5,%xmm8
-        pxor    %xmm2,%xmm7
-
-        paddd   %xmm5,%xmm12
-        paddd   %xmm7,%xmm12
-        movd    48(%r8),%xmm5
-        movd    48(%r9),%xmm0
-        movd    48(%r10),%xmm1
-        movd    48(%r11),%xmm2
-        punpckldq       %xmm1,%xmm5
-        punpckldq       %xmm2,%xmm0
-        punpckldq       %xmm0,%xmm5
-        movdqa  %xmm8,%xmm7
-.byte   102,15,56,0,238
-        movdqa  %xmm8,%xmm2
-
-        psrld   $6,%xmm7
-        movdqa  %xmm8,%xmm1
-        pslld   $7,%xmm2
-        movdqa  %xmm5,192-128(%rax)
-        paddd   %xmm11,%xmm5
-
-        psrld   $11,%xmm1
-        pxor    %xmm2,%xmm7
-        pslld   $21-7,%xmm2
-        paddd   0(%rbp),%xmm5
-        pxor    %xmm1,%xmm7
-
-        psrld   $25-11,%xmm1
-        movdqa  %xmm8,%xmm0
-
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm8,%xmm3
-        pslld   $26-21,%xmm2
-        pandn   %xmm10,%xmm0
-        pand    %xmm9,%xmm3
-        pxor    %xmm1,%xmm7
-
-
-        movdqa  %xmm12,%xmm1
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm12,%xmm2
-        psrld   $2,%xmm1
-        paddd   %xmm7,%xmm5
-        pxor    %xmm3,%xmm0
-        movdqa  %xmm13,%xmm3
-        movdqa  %xmm12,%xmm7
-        pslld   $10,%xmm2
-        pxor    %xmm12,%xmm3
-
-
-        psrld   $13,%xmm7
-        pxor    %xmm2,%xmm1
-        paddd   %xmm0,%xmm5
-        pslld   $19-10,%xmm2
-        pand    %xmm3,%xmm4
-        pxor    %xmm7,%xmm1
-
-
-        psrld   $22-13,%xmm7
-        pxor    %xmm2,%xmm1
-        movdqa  %xmm13,%xmm11
-        pslld   $30-19,%xmm2
-        pxor    %xmm1,%xmm7
-        pxor    %xmm4,%xmm11
-        paddd   %xmm5,%xmm15
-        pxor    %xmm2,%xmm7
-
-        paddd   %xmm5,%xmm11
-        paddd   %xmm7,%xmm11
-        movd    52(%r8),%xmm5
-        movd    52(%r9),%xmm0
-        movd    52(%r10),%xmm1
-        movd    52(%r11),%xmm2
-        punpckldq       %xmm1,%xmm5
-        punpckldq       %xmm2,%xmm0
-        punpckldq       %xmm0,%xmm5
-        movdqa  %xmm15,%xmm7
-
-        movdqa  %xmm15,%xmm2
-.byte   102,15,56,0,238
-        psrld   $6,%xmm7
-        movdqa  %xmm15,%xmm1
-        pslld   $7,%xmm2
-        movdqa  %xmm5,208-128(%rax)
-        paddd   %xmm10,%xmm5
-
-        psrld   $11,%xmm1
-        pxor    %xmm2,%xmm7
-        pslld   $21-7,%xmm2
-        paddd   32(%rbp),%xmm5
-        pxor    %xmm1,%xmm7
-
-        psrld   $25-11,%xmm1
-        movdqa  %xmm15,%xmm0
-
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm15,%xmm4
-        pslld   $26-21,%xmm2
-        pandn   %xmm9,%xmm0
-        pand    %xmm8,%xmm4
-        pxor    %xmm1,%xmm7
-
-
-        movdqa  %xmm11,%xmm1
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm11,%xmm2
-        psrld   $2,%xmm1
-        paddd   %xmm7,%xmm5
-        pxor    %xmm4,%xmm0
-        movdqa  %xmm12,%xmm4
-        movdqa  %xmm11,%xmm7
-        pslld   $10,%xmm2
-        pxor    %xmm11,%xmm4
-
-
-        psrld   $13,%xmm7
-        pxor    %xmm2,%xmm1
-        paddd   %xmm0,%xmm5
-        pslld   $19-10,%xmm2
-        pand    %xmm4,%xmm3
-        pxor    %xmm7,%xmm1
-
-
-        psrld   $22-13,%xmm7
-        pxor    %xmm2,%xmm1
-        movdqa  %xmm12,%xmm10
-        pslld   $30-19,%xmm2
-        pxor    %xmm1,%xmm7
-        pxor    %xmm3,%xmm10
-        paddd   %xmm5,%xmm14
-        pxor    %xmm2,%xmm7
-
-        paddd   %xmm5,%xmm10
-        paddd   %xmm7,%xmm10
-        movd    56(%r8),%xmm5
-        movd    56(%r9),%xmm0
-        movd    56(%r10),%xmm1
-        movd    56(%r11),%xmm2
-        punpckldq       %xmm1,%xmm5
-        punpckldq       %xmm2,%xmm0
-        punpckldq       %xmm0,%xmm5
-        movdqa  %xmm14,%xmm7
-.byte   102,15,56,0,238
-        movdqa  %xmm14,%xmm2
-
-        psrld   $6,%xmm7
-        movdqa  %xmm14,%xmm1
-        pslld   $7,%xmm2
-        movdqa  %xmm5,224-128(%rax)
-        paddd   %xmm9,%xmm5
-
-        psrld   $11,%xmm1
-        pxor    %xmm2,%xmm7
-        pslld   $21-7,%xmm2
-        paddd   64(%rbp),%xmm5
-        pxor    %xmm1,%xmm7
-
-        psrld   $25-11,%xmm1
-        movdqa  %xmm14,%xmm0
-
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm14,%xmm3
-        pslld   $26-21,%xmm2
-        pandn   %xmm8,%xmm0
-        pand    %xmm15,%xmm3
-        pxor    %xmm1,%xmm7
-
-
-        movdqa  %xmm10,%xmm1
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm10,%xmm2
-        psrld   $2,%xmm1
-        paddd   %xmm7,%xmm5
-        pxor    %xmm3,%xmm0
-        movdqa  %xmm11,%xmm3
-        movdqa  %xmm10,%xmm7
-        pslld   $10,%xmm2
-        pxor    %xmm10,%xmm3
-
-
-        psrld   $13,%xmm7
-        pxor    %xmm2,%xmm1
-        paddd   %xmm0,%xmm5
-        pslld   $19-10,%xmm2
-        pand    %xmm3,%xmm4
-        pxor    %xmm7,%xmm1
-
-
-        psrld   $22-13,%xmm7
-        pxor    %xmm2,%xmm1
-        movdqa  %xmm11,%xmm9
-        pslld   $30-19,%xmm2
-        pxor    %xmm1,%xmm7
-        pxor    %xmm4,%xmm9
-        paddd   %xmm5,%xmm13
-        pxor    %xmm2,%xmm7
-
-        paddd   %xmm5,%xmm9
-        paddd   %xmm7,%xmm9
-        movd    60(%r8),%xmm5
-        leaq    64(%r8),%r8
-        movd    60(%r9),%xmm0
-        leaq    64(%r9),%r9
-        movd    60(%r10),%xmm1
-        leaq    64(%r10),%r10
-        movd    60(%r11),%xmm2
-        leaq    64(%r11),%r11
-        punpckldq       %xmm1,%xmm5
-        punpckldq       %xmm2,%xmm0
-        punpckldq       %xmm0,%xmm5
-        movdqa  %xmm13,%xmm7
-
-        movdqa  %xmm13,%xmm2
-.byte   102,15,56,0,238
-        psrld   $6,%xmm7
-        movdqa  %xmm13,%xmm1
-        pslld   $7,%xmm2
-        movdqa  %xmm5,240-128(%rax)
-        paddd   %xmm8,%xmm5
-
-        psrld   $11,%xmm1
-        pxor    %xmm2,%xmm7
-        pslld   $21-7,%xmm2
-        paddd   96(%rbp),%xmm5
-        pxor    %xmm1,%xmm7
-
-        psrld   $25-11,%xmm1
-        movdqa  %xmm13,%xmm0
-        prefetcht0      63(%r8)
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm13,%xmm4
-        pslld   $26-21,%xmm2
-        pandn   %xmm15,%xmm0
-        pand    %xmm14,%xmm4
-        pxor    %xmm1,%xmm7
-
-        prefetcht0      63(%r9)
-        movdqa  %xmm9,%xmm1
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm9,%xmm2
-        psrld   $2,%xmm1
-        paddd   %xmm7,%xmm5
-        pxor    %xmm4,%xmm0
-        movdqa  %xmm10,%xmm4
-        movdqa  %xmm9,%xmm7
-        pslld   $10,%xmm2
-        pxor    %xmm9,%xmm4
-
-        prefetcht0      63(%r10)
-        psrld   $13,%xmm7
-        pxor    %xmm2,%xmm1
-        paddd   %xmm0,%xmm5
-        pslld   $19-10,%xmm2
-        pand    %xmm4,%xmm3
-        pxor    %xmm7,%xmm1
-
-        prefetcht0      63(%r11)
-        psrld   $22-13,%xmm7
-        pxor    %xmm2,%xmm1
-        movdqa  %xmm10,%xmm8
-        pslld   $30-19,%xmm2
-        pxor    %xmm1,%xmm7
-        pxor    %xmm3,%xmm8
-        paddd   %xmm5,%xmm12
-        pxor    %xmm2,%xmm7
-
-        paddd   %xmm5,%xmm8
-        paddd   %xmm7,%xmm8
-        leaq    256(%rbp),%rbp
-        movdqu  0-128(%rax),%xmm5
-        movl    $3,%ecx
-        jmp     .Loop_16_xx
-.align  32
-.Loop_16_xx:
-        movdqa  16-128(%rax),%xmm6
-        paddd   144-128(%rax),%xmm5
-
-        movdqa  %xmm6,%xmm7
-        movdqa  %xmm6,%xmm1
-        psrld   $3,%xmm7
-        movdqa  %xmm6,%xmm2
-
-        psrld   $7,%xmm1
-        movdqa  224-128(%rax),%xmm0
-        pslld   $14,%xmm2
-        pxor    %xmm1,%xmm7
-        psrld   $18-7,%xmm1
-        movdqa  %xmm0,%xmm3
-        pxor    %xmm2,%xmm7
-        pslld   $25-14,%xmm2
-        pxor    %xmm1,%xmm7
-        psrld   $10,%xmm0
-        movdqa  %xmm3,%xmm1
-
-        psrld   $17,%xmm3
-        pxor    %xmm2,%xmm7
-        pslld   $13,%xmm1
-        paddd   %xmm7,%xmm5
-        pxor    %xmm3,%xmm0
-        psrld   $19-17,%xmm3
-        pxor    %xmm1,%xmm0
-        pslld   $15-13,%xmm1
-        pxor    %xmm3,%xmm0
-        pxor    %xmm1,%xmm0
-        paddd   %xmm0,%xmm5
-        movdqa  %xmm12,%xmm7
-
-        movdqa  %xmm12,%xmm2
-
-        psrld   $6,%xmm7
-        movdqa  %xmm12,%xmm1
-        pslld   $7,%xmm2
-        movdqa  %xmm5,0-128(%rax)
-        paddd   %xmm15,%xmm5
-
-        psrld   $11,%xmm1
-        pxor    %xmm2,%xmm7
-        pslld   $21-7,%xmm2
-        paddd   -128(%rbp),%xmm5
-        pxor    %xmm1,%xmm7
-
-        psrld   $25-11,%xmm1
-        movdqa  %xmm12,%xmm0
-
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm12,%xmm3
-        pslld   $26-21,%xmm2
-        pandn   %xmm14,%xmm0
-        pand    %xmm13,%xmm3
-        pxor    %xmm1,%xmm7
-
-
-        movdqa  %xmm8,%xmm1
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm8,%xmm2
-        psrld   $2,%xmm1
-        paddd   %xmm7,%xmm5
-        pxor    %xmm3,%xmm0
-        movdqa  %xmm9,%xmm3
-        movdqa  %xmm8,%xmm7
-        pslld   $10,%xmm2
-        pxor    %xmm8,%xmm3
-
-
-        psrld   $13,%xmm7
-        pxor    %xmm2,%xmm1
-        paddd   %xmm0,%xmm5
-        pslld   $19-10,%xmm2
-        pand    %xmm3,%xmm4
-        pxor    %xmm7,%xmm1
-
-
-        psrld   $22-13,%xmm7
-        pxor    %xmm2,%xmm1
-        movdqa  %xmm9,%xmm15
-        pslld   $30-19,%xmm2
-        pxor    %xmm1,%xmm7
-        pxor    %xmm4,%xmm15
-        paddd   %xmm5,%xmm11
-        pxor    %xmm2,%xmm7
-
-        paddd   %xmm5,%xmm15
-        paddd   %xmm7,%xmm15
-        movdqa  32-128(%rax),%xmm5
-        paddd   160-128(%rax),%xmm6
-
-        movdqa  %xmm5,%xmm7
-        movdqa  %xmm5,%xmm1
-        psrld   $3,%xmm7
-        movdqa  %xmm5,%xmm2
-
-        psrld   $7,%xmm1
-        movdqa  240-128(%rax),%xmm0
-        pslld   $14,%xmm2
-        pxor    %xmm1,%xmm7
-        psrld   $18-7,%xmm1
-        movdqa  %xmm0,%xmm4
-        pxor    %xmm2,%xmm7
-        pslld   $25-14,%xmm2
-        pxor    %xmm1,%xmm7
-        psrld   $10,%xmm0
-        movdqa  %xmm4,%xmm1
-
-        psrld   $17,%xmm4
-        pxor    %xmm2,%xmm7
-        pslld   $13,%xmm1
-        paddd   %xmm7,%xmm6
-        pxor    %xmm4,%xmm0
-        psrld   $19-17,%xmm4
-        pxor    %xmm1,%xmm0
-        pslld   $15-13,%xmm1
-        pxor    %xmm4,%xmm0
-        pxor    %xmm1,%xmm0
-        paddd   %xmm0,%xmm6
-        movdqa  %xmm11,%xmm7
-
-        movdqa  %xmm11,%xmm2
-
-        psrld   $6,%xmm7
-        movdqa  %xmm11,%xmm1
-        pslld   $7,%xmm2
-        movdqa  %xmm6,16-128(%rax)
-        paddd   %xmm14,%xmm6
-
-        psrld   $11,%xmm1
-        pxor    %xmm2,%xmm7
-        pslld   $21-7,%xmm2
-        paddd   -96(%rbp),%xmm6
-        pxor    %xmm1,%xmm7
-
-        psrld   $25-11,%xmm1
-        movdqa  %xmm11,%xmm0
-
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm11,%xmm4
-        pslld   $26-21,%xmm2
-        pandn   %xmm13,%xmm0
-        pand    %xmm12,%xmm4
-        pxor    %xmm1,%xmm7
-
-
-        movdqa  %xmm15,%xmm1
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm15,%xmm2
-        psrld   $2,%xmm1
-        paddd   %xmm7,%xmm6
-        pxor    %xmm4,%xmm0
-        movdqa  %xmm8,%xmm4
-        movdqa  %xmm15,%xmm7
-        pslld   $10,%xmm2
-        pxor    %xmm15,%xmm4
-
-
-        psrld   $13,%xmm7
-        pxor    %xmm2,%xmm1
-        paddd   %xmm0,%xmm6
-        pslld   $19-10,%xmm2
-        pand    %xmm4,%xmm3
-        pxor    %xmm7,%xmm1
-
-
-        psrld   $22-13,%xmm7
-        pxor    %xmm2,%xmm1
-        movdqa  %xmm8,%xmm14
-        pslld   $30-19,%xmm2
-        pxor    %xmm1,%xmm7
-        pxor    %xmm3,%xmm14
-        paddd   %xmm6,%xmm10
-        pxor    %xmm2,%xmm7
-
-        paddd   %xmm6,%xmm14
-        paddd   %xmm7,%xmm14
-        movdqa  48-128(%rax),%xmm6
-        paddd   176-128(%rax),%xmm5
-
-        movdqa  %xmm6,%xmm7
-        movdqa  %xmm6,%xmm1
-        psrld   $3,%xmm7
-        movdqa  %xmm6,%xmm2
-
-        psrld   $7,%xmm1
-        movdqa  0-128(%rax),%xmm0
-        pslld   $14,%xmm2
-        pxor    %xmm1,%xmm7
-        psrld   $18-7,%xmm1
-        movdqa  %xmm0,%xmm3
-        pxor    %xmm2,%xmm7
-        pslld   $25-14,%xmm2
-        pxor    %xmm1,%xmm7
-        psrld   $10,%xmm0
-        movdqa  %xmm3,%xmm1
-
-        psrld   $17,%xmm3
-        pxor    %xmm2,%xmm7
-        pslld   $13,%xmm1
-        paddd   %xmm7,%xmm5
-        pxor    %xmm3,%xmm0
-        psrld   $19-17,%xmm3
-        pxor    %xmm1,%xmm0
-        pslld   $15-13,%xmm1
-        pxor    %xmm3,%xmm0
-        pxor    %xmm1,%xmm0
-        paddd   %xmm0,%xmm5
-        movdqa  %xmm10,%xmm7
-
-        movdqa  %xmm10,%xmm2
-
-        psrld   $6,%xmm7
-        movdqa  %xmm10,%xmm1
-        pslld   $7,%xmm2
-        movdqa  %xmm5,32-128(%rax)
-        paddd   %xmm13,%xmm5
-
-        psrld   $11,%xmm1
-        pxor    %xmm2,%xmm7
-        pslld   $21-7,%xmm2
-        paddd   -64(%rbp),%xmm5
-        pxor    %xmm1,%xmm7
-
-        psrld   $25-11,%xmm1
-        movdqa  %xmm10,%xmm0
-
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm10,%xmm3
-        pslld   $26-21,%xmm2
-        pandn   %xmm12,%xmm0
-        pand    %xmm11,%xmm3
-        pxor    %xmm1,%xmm7
-
-
-        movdqa  %xmm14,%xmm1
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm14,%xmm2
-        psrld   $2,%xmm1
-        paddd   %xmm7,%xmm5
-        pxor    %xmm3,%xmm0
-        movdqa  %xmm15,%xmm3
-        movdqa  %xmm14,%xmm7
-        pslld   $10,%xmm2
-        pxor    %xmm14,%xmm3
-
-
-        psrld   $13,%xmm7
-        pxor    %xmm2,%xmm1
-        paddd   %xmm0,%xmm5
-        pslld   $19-10,%xmm2
-        pand    %xmm3,%xmm4
-        pxor    %xmm7,%xmm1
-
-
-        psrld   $22-13,%xmm7
-        pxor    %xmm2,%xmm1
-        movdqa  %xmm15,%xmm13
-        pslld   $30-19,%xmm2
-        pxor    %xmm1,%xmm7
-        pxor    %xmm4,%xmm13
-        paddd   %xmm5,%xmm9
-        pxor    %xmm2,%xmm7
-
-        paddd   %xmm5,%xmm13
-        paddd   %xmm7,%xmm13
-        movdqa  64-128(%rax),%xmm5
-        paddd   192-128(%rax),%xmm6
-
-        movdqa  %xmm5,%xmm7
-        movdqa  %xmm5,%xmm1
-        psrld   $3,%xmm7
-        movdqa  %xmm5,%xmm2
-
-        psrld   $7,%xmm1
-        movdqa  16-128(%rax),%xmm0
-        pslld   $14,%xmm2
-        pxor    %xmm1,%xmm7
-        psrld   $18-7,%xmm1
-        movdqa  %xmm0,%xmm4
-        pxor    %xmm2,%xmm7
-        pslld   $25-14,%xmm2
-        pxor    %xmm1,%xmm7
-        psrld   $10,%xmm0
-        movdqa  %xmm4,%xmm1
-
-        psrld   $17,%xmm4
-        pxor    %xmm2,%xmm7
-        pslld   $13,%xmm1
-        paddd   %xmm7,%xmm6
-        pxor    %xmm4,%xmm0
-        psrld   $19-17,%xmm4
-        pxor    %xmm1,%xmm0
-        pslld   $15-13,%xmm1
-        pxor    %xmm4,%xmm0
-        pxor    %xmm1,%xmm0
-        paddd   %xmm0,%xmm6
-        movdqa  %xmm9,%xmm7
-
-        movdqa  %xmm9,%xmm2
-
-        psrld   $6,%xmm7
-        movdqa  %xmm9,%xmm1
-        pslld   $7,%xmm2
-        movdqa  %xmm6,48-128(%rax)
-        paddd   %xmm12,%xmm6
-
-        psrld   $11,%xmm1
-        pxor    %xmm2,%xmm7
-        pslld   $21-7,%xmm2
-        paddd   -32(%rbp),%xmm6
-        pxor    %xmm1,%xmm7
-
-        psrld   $25-11,%xmm1
-        movdqa  %xmm9,%xmm0
-
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm9,%xmm4
-        pslld   $26-21,%xmm2
-        pandn   %xmm11,%xmm0
-        pand    %xmm10,%xmm4
-        pxor    %xmm1,%xmm7
-
-
-        movdqa  %xmm13,%xmm1
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm13,%xmm2
-        psrld   $2,%xmm1
-        paddd   %xmm7,%xmm6
-        pxor    %xmm4,%xmm0
-        movdqa  %xmm14,%xmm4
-        movdqa  %xmm13,%xmm7
-        pslld   $10,%xmm2
-        pxor    %xmm13,%xmm4
-
-
-        psrld   $13,%xmm7
-        pxor    %xmm2,%xmm1
-        paddd   %xmm0,%xmm6
-        pslld   $19-10,%xmm2
-        pand    %xmm4,%xmm3
-        pxor    %xmm7,%xmm1
-
-
-        psrld   $22-13,%xmm7
-        pxor    %xmm2,%xmm1
-        movdqa  %xmm14,%xmm12
-        pslld   $30-19,%xmm2
-        pxor    %xmm1,%xmm7
-        pxor    %xmm3,%xmm12
-        paddd   %xmm6,%xmm8
-        pxor    %xmm2,%xmm7
-
-        paddd   %xmm6,%xmm12
-        paddd   %xmm7,%xmm12
-        movdqa  80-128(%rax),%xmm6
-        paddd   208-128(%rax),%xmm5
-
-        movdqa  %xmm6,%xmm7
-        movdqa  %xmm6,%xmm1
-        psrld   $3,%xmm7
-        movdqa  %xmm6,%xmm2
-
-        psrld   $7,%xmm1
-        movdqa  32-128(%rax),%xmm0
-        pslld   $14,%xmm2
-        pxor    %xmm1,%xmm7
-        psrld   $18-7,%xmm1
-        movdqa  %xmm0,%xmm3
-        pxor    %xmm2,%xmm7
-        pslld   $25-14,%xmm2
-        pxor    %xmm1,%xmm7
-        psrld   $10,%xmm0
-        movdqa  %xmm3,%xmm1
-
-        psrld   $17,%xmm3
-        pxor    %xmm2,%xmm7
-        pslld   $13,%xmm1
-        paddd   %xmm7,%xmm5
-        pxor    %xmm3,%xmm0
-        psrld   $19-17,%xmm3
-        pxor    %xmm1,%xmm0
-        pslld   $15-13,%xmm1
-        pxor    %xmm3,%xmm0
-        pxor    %xmm1,%xmm0
-        paddd   %xmm0,%xmm5
-        movdqa  %xmm8,%xmm7
-
-        movdqa  %xmm8,%xmm2
-
-        psrld   $6,%xmm7
-        movdqa  %xmm8,%xmm1
-        pslld   $7,%xmm2
-        movdqa  %xmm5,64-128(%rax)
-        paddd   %xmm11,%xmm5
-
-        psrld   $11,%xmm1
-        pxor    %xmm2,%xmm7
-        pslld   $21-7,%xmm2
-        paddd   0(%rbp),%xmm5
-        pxor    %xmm1,%xmm7
-
-        psrld   $25-11,%xmm1
-        movdqa  %xmm8,%xmm0
-
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm8,%xmm3
-        pslld   $26-21,%xmm2
-        pandn   %xmm10,%xmm0
-        pand    %xmm9,%xmm3
-        pxor    %xmm1,%xmm7
-
-
-        movdqa  %xmm12,%xmm1
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm12,%xmm2
-        psrld   $2,%xmm1
-        paddd   %xmm7,%xmm5
-        pxor    %xmm3,%xmm0
-        movdqa  %xmm13,%xmm3
-        movdqa  %xmm12,%xmm7
-        pslld   $10,%xmm2
-        pxor    %xmm12,%xmm3
-
-
-        psrld   $13,%xmm7
-        pxor    %xmm2,%xmm1
-        paddd   %xmm0,%xmm5
-        pslld   $19-10,%xmm2
-        pand    %xmm3,%xmm4
-        pxor    %xmm7,%xmm1
-
-
-        psrld   $22-13,%xmm7
-        pxor    %xmm2,%xmm1
-        movdqa  %xmm13,%xmm11
-        pslld   $30-19,%xmm2
-        pxor    %xmm1,%xmm7
-        pxor    %xmm4,%xmm11
-        paddd   %xmm5,%xmm15
-        pxor    %xmm2,%xmm7
-
-        paddd   %xmm5,%xmm11
-        paddd   %xmm7,%xmm11
-        movdqa  96-128(%rax),%xmm5
-        paddd   224-128(%rax),%xmm6
-
-        movdqa  %xmm5,%xmm7
-        movdqa  %xmm5,%xmm1
-        psrld   $3,%xmm7
-        movdqa  %xmm5,%xmm2
-
-        psrld   $7,%xmm1
-        movdqa  48-128(%rax),%xmm0
-        pslld   $14,%xmm2
-        pxor    %xmm1,%xmm7
-        psrld   $18-7,%xmm1
-        movdqa  %xmm0,%xmm4
-        pxor    %xmm2,%xmm7
-        pslld   $25-14,%xmm2
-        pxor    %xmm1,%xmm7
-        psrld   $10,%xmm0
-        movdqa  %xmm4,%xmm1
-
-        psrld   $17,%xmm4
-        pxor    %xmm2,%xmm7
-        pslld   $13,%xmm1
-        paddd   %xmm7,%xmm6
-        pxor    %xmm4,%xmm0
-        psrld   $19-17,%xmm4
-        pxor    %xmm1,%xmm0
-        pslld   $15-13,%xmm1
-        pxor    %xmm4,%xmm0
-        pxor    %xmm1,%xmm0
-        paddd   %xmm0,%xmm6
-        movdqa  %xmm15,%xmm7
-
-        movdqa  %xmm15,%xmm2
-
-        psrld   $6,%xmm7
-        movdqa  %xmm15,%xmm1
-        pslld   $7,%xmm2
-        movdqa  %xmm6,80-128(%rax)
-        paddd   %xmm10,%xmm6
-
-        psrld   $11,%xmm1
-        pxor    %xmm2,%xmm7
-        pslld   $21-7,%xmm2
-        paddd   32(%rbp),%xmm6
-        pxor    %xmm1,%xmm7
-
-        psrld   $25-11,%xmm1
-        movdqa  %xmm15,%xmm0
-
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm15,%xmm4
-        pslld   $26-21,%xmm2
-        pandn   %xmm9,%xmm0
-        pand    %xmm8,%xmm4
-        pxor    %xmm1,%xmm7
-
-
-        movdqa  %xmm11,%xmm1
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm11,%xmm2
-        psrld   $2,%xmm1
-        paddd   %xmm7,%xmm6
-        pxor    %xmm4,%xmm0
-        movdqa  %xmm12,%xmm4
-        movdqa  %xmm11,%xmm7
-        pslld   $10,%xmm2
-        pxor    %xmm11,%xmm4
-
-
-        psrld   $13,%xmm7
-        pxor    %xmm2,%xmm1
-        paddd   %xmm0,%xmm6
-        pslld   $19-10,%xmm2
-        pand    %xmm4,%xmm3
-        pxor    %xmm7,%xmm1
-
-
-        psrld   $22-13,%xmm7
-        pxor    %xmm2,%xmm1
-        movdqa  %xmm12,%xmm10
-        pslld   $30-19,%xmm2
-        pxor    %xmm1,%xmm7
-        pxor    %xmm3,%xmm10
-        paddd   %xmm6,%xmm14
-        pxor    %xmm2,%xmm7
-
-        paddd   %xmm6,%xmm10
-        paddd   %xmm7,%xmm10
-        movdqa  112-128(%rax),%xmm6
-        paddd   240-128(%rax),%xmm5
-
-        movdqa  %xmm6,%xmm7
-        movdqa  %xmm6,%xmm1
-        psrld   $3,%xmm7
-        movdqa  %xmm6,%xmm2
-
-        psrld   $7,%xmm1
-        movdqa  64-128(%rax),%xmm0
-        pslld   $14,%xmm2
-        pxor    %xmm1,%xmm7
-        psrld   $18-7,%xmm1
-        movdqa  %xmm0,%xmm3
-        pxor    %xmm2,%xmm7
-        pslld   $25-14,%xmm2
-        pxor    %xmm1,%xmm7
-        psrld   $10,%xmm0
-        movdqa  %xmm3,%xmm1
-
-        psrld   $17,%xmm3
-        pxor    %xmm2,%xmm7
-        pslld   $13,%xmm1
-        paddd   %xmm7,%xmm5
-        pxor    %xmm3,%xmm0
-        psrld   $19-17,%xmm3
-        pxor    %xmm1,%xmm0
-        pslld   $15-13,%xmm1
-        pxor    %xmm3,%xmm0
-        pxor    %xmm1,%xmm0
-        paddd   %xmm0,%xmm5
-        movdqa  %xmm14,%xmm7
-
-        movdqa  %xmm14,%xmm2
-
-        psrld   $6,%xmm7
-        movdqa  %xmm14,%xmm1
-        pslld   $7,%xmm2
-        movdqa  %xmm5,96-128(%rax)
-        paddd   %xmm9,%xmm5
-
-        psrld   $11,%xmm1
-        pxor    %xmm2,%xmm7
-        pslld   $21-7,%xmm2
-        paddd   64(%rbp),%xmm5
-        pxor    %xmm1,%xmm7
-
-        psrld   $25-11,%xmm1
-        movdqa  %xmm14,%xmm0
-
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm14,%xmm3
-        pslld   $26-21,%xmm2
-        pandn   %xmm8,%xmm0
-        pand    %xmm15,%xmm3
-        pxor    %xmm1,%xmm7
-
-
-        movdqa  %xmm10,%xmm1
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm10,%xmm2
-        psrld   $2,%xmm1
-        paddd   %xmm7,%xmm5
-        pxor    %xmm3,%xmm0
-        movdqa  %xmm11,%xmm3
-        movdqa  %xmm10,%xmm7
-        pslld   $10,%xmm2
-        pxor    %xmm10,%xmm3
-
-
-        psrld   $13,%xmm7
-        pxor    %xmm2,%xmm1
-        paddd   %xmm0,%xmm5
-        pslld   $19-10,%xmm2
-        pand    %xmm3,%xmm4
-        pxor    %xmm7,%xmm1
-
-
-        psrld   $22-13,%xmm7
-        pxor    %xmm2,%xmm1
-        movdqa  %xmm11,%xmm9
-        pslld   $30-19,%xmm2
-        pxor    %xmm1,%xmm7
-        pxor    %xmm4,%xmm9
-        paddd   %xmm5,%xmm13
-        pxor    %xmm2,%xmm7
-
-        paddd   %xmm5,%xmm9
-        paddd   %xmm7,%xmm9
-        movdqa  128-128(%rax),%xmm5
-        paddd   0-128(%rax),%xmm6
-
-        movdqa  %xmm5,%xmm7
-        movdqa  %xmm5,%xmm1
-        psrld   $3,%xmm7
-        movdqa  %xmm5,%xmm2
-
-        psrld   $7,%xmm1
-        movdqa  80-128(%rax),%xmm0
-        pslld   $14,%xmm2
-        pxor    %xmm1,%xmm7
-        psrld   $18-7,%xmm1
-        movdqa  %xmm0,%xmm4
-        pxor    %xmm2,%xmm7
-        pslld   $25-14,%xmm2
-        pxor    %xmm1,%xmm7
-        psrld   $10,%xmm0
-        movdqa  %xmm4,%xmm1
-
-        psrld   $17,%xmm4
-        pxor    %xmm2,%xmm7
-        pslld   $13,%xmm1
-        paddd   %xmm7,%xmm6
-        pxor    %xmm4,%xmm0
-        psrld   $19-17,%xmm4
-        pxor    %xmm1,%xmm0
-        pslld   $15-13,%xmm1
-        pxor    %xmm4,%xmm0
-        pxor    %xmm1,%xmm0
-        paddd   %xmm0,%xmm6
-        movdqa  %xmm13,%xmm7
-
-        movdqa  %xmm13,%xmm2
-
-        psrld   $6,%xmm7
-        movdqa  %xmm13,%xmm1
-        pslld   $7,%xmm2
-        movdqa  %xmm6,112-128(%rax)
-        paddd   %xmm8,%xmm6
-
-        psrld   $11,%xmm1
-        pxor    %xmm2,%xmm7
-        pslld   $21-7,%xmm2
-        paddd   96(%rbp),%xmm6
-        pxor    %xmm1,%xmm7
-
-        psrld   $25-11,%xmm1
-        movdqa  %xmm13,%xmm0
-
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm13,%xmm4
-        pslld   $26-21,%xmm2
-        pandn   %xmm15,%xmm0
-        pand    %xmm14,%xmm4
-        pxor    %xmm1,%xmm7
-
-
-        movdqa  %xmm9,%xmm1
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm9,%xmm2
-        psrld   $2,%xmm1
-        paddd   %xmm7,%xmm6
-        pxor    %xmm4,%xmm0
-        movdqa  %xmm10,%xmm4
-        movdqa  %xmm9,%xmm7
-        pslld   $10,%xmm2
-        pxor    %xmm9,%xmm4
-
-
-        psrld   $13,%xmm7
-        pxor    %xmm2,%xmm1
-        paddd   %xmm0,%xmm6
-        pslld   $19-10,%xmm2
-        pand    %xmm4,%xmm3
-        pxor    %xmm7,%xmm1
-
-
-        psrld   $22-13,%xmm7
-        pxor    %xmm2,%xmm1
-        movdqa  %xmm10,%xmm8
-        pslld   $30-19,%xmm2
-        pxor    %xmm1,%xmm7
-        pxor    %xmm3,%xmm8
-        paddd   %xmm6,%xmm12
-        pxor    %xmm2,%xmm7
-
-        paddd   %xmm6,%xmm8
-        paddd   %xmm7,%xmm8
-        leaq    256(%rbp),%rbp
-        movdqa  144-128(%rax),%xmm6
-        paddd   16-128(%rax),%xmm5
-
-        movdqa  %xmm6,%xmm7
-        movdqa  %xmm6,%xmm1
-        psrld   $3,%xmm7
-        movdqa  %xmm6,%xmm2
-
-        psrld   $7,%xmm1
-        movdqa  96-128(%rax),%xmm0
-        pslld   $14,%xmm2
-        pxor    %xmm1,%xmm7
-        psrld   $18-7,%xmm1
-        movdqa  %xmm0,%xmm3
-        pxor    %xmm2,%xmm7
-        pslld   $25-14,%xmm2
-        pxor    %xmm1,%xmm7
-        psrld   $10,%xmm0
-        movdqa  %xmm3,%xmm1
-
-        psrld   $17,%xmm3
-        pxor    %xmm2,%xmm7
-        pslld   $13,%xmm1
-        paddd   %xmm7,%xmm5
-        pxor    %xmm3,%xmm0
-        psrld   $19-17,%xmm3
-        pxor    %xmm1,%xmm0
-        pslld   $15-13,%xmm1
-        pxor    %xmm3,%xmm0
-        pxor    %xmm1,%xmm0
-        paddd   %xmm0,%xmm5
-        movdqa  %xmm12,%xmm7
-
-        movdqa  %xmm12,%xmm2
-
-        psrld   $6,%xmm7
-        movdqa  %xmm12,%xmm1
-        pslld   $7,%xmm2
-        movdqa  %xmm5,128-128(%rax)
-        paddd   %xmm15,%xmm5
-
-        psrld   $11,%xmm1
-        pxor    %xmm2,%xmm7
-        pslld   $21-7,%xmm2
-        paddd   -128(%rbp),%xmm5
-        pxor    %xmm1,%xmm7
-
-        psrld   $25-11,%xmm1
-        movdqa  %xmm12,%xmm0
-
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm12,%xmm3
-        pslld   $26-21,%xmm2
-        pandn   %xmm14,%xmm0
-        pand    %xmm13,%xmm3
-        pxor    %xmm1,%xmm7
-
-
-        movdqa  %xmm8,%xmm1
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm8,%xmm2
-        psrld   $2,%xmm1
-        paddd   %xmm7,%xmm5
-        pxor    %xmm3,%xmm0
-        movdqa  %xmm9,%xmm3
-        movdqa  %xmm8,%xmm7
-        pslld   $10,%xmm2
-        pxor    %xmm8,%xmm3
-
-
-        psrld   $13,%xmm7
-        pxor    %xmm2,%xmm1
-        paddd   %xmm0,%xmm5
-        pslld   $19-10,%xmm2
-        pand    %xmm3,%xmm4
-        pxor    %xmm7,%xmm1
-
-
-        psrld   $22-13,%xmm7
-        pxor    %xmm2,%xmm1
-        movdqa  %xmm9,%xmm15
-        pslld   $30-19,%xmm2
-        pxor    %xmm1,%xmm7
-        pxor    %xmm4,%xmm15
-        paddd   %xmm5,%xmm11
-        pxor    %xmm2,%xmm7
-
-        paddd   %xmm5,%xmm15
-        paddd   %xmm7,%xmm15
-        movdqa  160-128(%rax),%xmm5
-        paddd   32-128(%rax),%xmm6
-
-        movdqa  %xmm5,%xmm7
-        movdqa  %xmm5,%xmm1
-        psrld   $3,%xmm7
-        movdqa  %xmm5,%xmm2
-
-        psrld   $7,%xmm1
-        movdqa  112-128(%rax),%xmm0
-        pslld   $14,%xmm2
-        pxor    %xmm1,%xmm7
-        psrld   $18-7,%xmm1
-        movdqa  %xmm0,%xmm4
-        pxor    %xmm2,%xmm7
-        pslld   $25-14,%xmm2
-        pxor    %xmm1,%xmm7
-        psrld   $10,%xmm0
-        movdqa  %xmm4,%xmm1
-
-        psrld   $17,%xmm4
-        pxor    %xmm2,%xmm7
-        pslld   $13,%xmm1
-        paddd   %xmm7,%xmm6
-        pxor    %xmm4,%xmm0
-        psrld   $19-17,%xmm4
-        pxor    %xmm1,%xmm0
-        pslld   $15-13,%xmm1
-        pxor    %xmm4,%xmm0
-        pxor    %xmm1,%xmm0
-        paddd   %xmm0,%xmm6
-        movdqa  %xmm11,%xmm7
-
-        movdqa  %xmm11,%xmm2
-
-        psrld   $6,%xmm7
-        movdqa  %xmm11,%xmm1
-        pslld   $7,%xmm2
-        movdqa  %xmm6,144-128(%rax)
-        paddd   %xmm14,%xmm6
-
-        psrld   $11,%xmm1
-        pxor    %xmm2,%xmm7
-        pslld   $21-7,%xmm2
-        paddd   -96(%rbp),%xmm6
-        pxor    %xmm1,%xmm7
-
-        psrld   $25-11,%xmm1
-        movdqa  %xmm11,%xmm0
-
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm11,%xmm4
-        pslld   $26-21,%xmm2
-        pandn   %xmm13,%xmm0
-        pand    %xmm12,%xmm4
-        pxor    %xmm1,%xmm7
-
-
-        movdqa  %xmm15,%xmm1
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm15,%xmm2
-        psrld   $2,%xmm1
-        paddd   %xmm7,%xmm6
-        pxor    %xmm4,%xmm0
-        movdqa  %xmm8,%xmm4
-        movdqa  %xmm15,%xmm7
-        pslld   $10,%xmm2
-        pxor    %xmm15,%xmm4
-
-
-        psrld   $13,%xmm7
-        pxor    %xmm2,%xmm1
-        paddd   %xmm0,%xmm6
-        pslld   $19-10,%xmm2
-        pand    %xmm4,%xmm3
-        pxor    %xmm7,%xmm1
-
-
-        psrld   $22-13,%xmm7
-        pxor    %xmm2,%xmm1
-        movdqa  %xmm8,%xmm14
-        pslld   $30-19,%xmm2
-        pxor    %xmm1,%xmm7
-        pxor    %xmm3,%xmm14
-        paddd   %xmm6,%xmm10
-        pxor    %xmm2,%xmm7
-
-        paddd   %xmm6,%xmm14
-        paddd   %xmm7,%xmm14
-        movdqa  176-128(%rax),%xmm6
-        paddd   48-128(%rax),%xmm5
-
-        movdqa  %xmm6,%xmm7
-        movdqa  %xmm6,%xmm1
-        psrld   $3,%xmm7
-        movdqa  %xmm6,%xmm2
-
-        psrld   $7,%xmm1
-        movdqa  128-128(%rax),%xmm0
-        pslld   $14,%xmm2
-        pxor    %xmm1,%xmm7
-        psrld   $18-7,%xmm1
-        movdqa  %xmm0,%xmm3
-        pxor    %xmm2,%xmm7
-        pslld   $25-14,%xmm2
-        pxor    %xmm1,%xmm7
-        psrld   $10,%xmm0
-        movdqa  %xmm3,%xmm1
-
-        psrld   $17,%xmm3
-        pxor    %xmm2,%xmm7
-        pslld   $13,%xmm1
-        paddd   %xmm7,%xmm5
-        pxor    %xmm3,%xmm0
-        psrld   $19-17,%xmm3
-        pxor    %xmm1,%xmm0
-        pslld   $15-13,%xmm1
-        pxor    %xmm3,%xmm0
-        pxor    %xmm1,%xmm0
-        paddd   %xmm0,%xmm5
-        movdqa  %xmm10,%xmm7
-
-        movdqa  %xmm10,%xmm2
-
-        psrld   $6,%xmm7
-        movdqa  %xmm10,%xmm1
-        pslld   $7,%xmm2
-        movdqa  %xmm5,160-128(%rax)
-        paddd   %xmm13,%xmm5
-
-        psrld   $11,%xmm1
-        pxor    %xmm2,%xmm7
-        pslld   $21-7,%xmm2
-        paddd   -64(%rbp),%xmm5
-        pxor    %xmm1,%xmm7
-
-        psrld   $25-11,%xmm1
-        movdqa  %xmm10,%xmm0
-
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm10,%xmm3
-        pslld   $26-21,%xmm2
-        pandn   %xmm12,%xmm0
-        pand    %xmm11,%xmm3
-        pxor    %xmm1,%xmm7
-
-
-        movdqa  %xmm14,%xmm1
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm14,%xmm2
-        psrld   $2,%xmm1
-        paddd   %xmm7,%xmm5
-        pxor    %xmm3,%xmm0
-        movdqa  %xmm15,%xmm3
-        movdqa  %xmm14,%xmm7
-        pslld   $10,%xmm2
-        pxor    %xmm14,%xmm3
-
-
-        psrld   $13,%xmm7
-        pxor    %xmm2,%xmm1
-        paddd   %xmm0,%xmm5
-        pslld   $19-10,%xmm2
-        pand    %xmm3,%xmm4
-        pxor    %xmm7,%xmm1
-
-
-        psrld   $22-13,%xmm7
-        pxor    %xmm2,%xmm1
-        movdqa  %xmm15,%xmm13
-        pslld   $30-19,%xmm2
-        pxor    %xmm1,%xmm7
-        pxor    %xmm4,%xmm13
-        paddd   %xmm5,%xmm9
-        pxor    %xmm2,%xmm7
-
-        paddd   %xmm5,%xmm13
-        paddd   %xmm7,%xmm13
-        movdqa  192-128(%rax),%xmm5
-        paddd   64-128(%rax),%xmm6
-
-        movdqa  %xmm5,%xmm7
-        movdqa  %xmm5,%xmm1
-        psrld   $3,%xmm7
-        movdqa  %xmm5,%xmm2
-
-        psrld   $7,%xmm1
-        movdqa  144-128(%rax),%xmm0
-        pslld   $14,%xmm2
-        pxor    %xmm1,%xmm7
-        psrld   $18-7,%xmm1
-        movdqa  %xmm0,%xmm4
-        pxor    %xmm2,%xmm7
-        pslld   $25-14,%xmm2
-        pxor    %xmm1,%xmm7
-        psrld   $10,%xmm0
-        movdqa  %xmm4,%xmm1
-
-        psrld   $17,%xmm4
-        pxor    %xmm2,%xmm7
-        pslld   $13,%xmm1
-        paddd   %xmm7,%xmm6
-        pxor    %xmm4,%xmm0
-        psrld   $19-17,%xmm4
-        pxor    %xmm1,%xmm0
-        pslld   $15-13,%xmm1
-        pxor    %xmm4,%xmm0
-        pxor    %xmm1,%xmm0
-        paddd   %xmm0,%xmm6
-        movdqa  %xmm9,%xmm7
-
-        movdqa  %xmm9,%xmm2
-
-        psrld   $6,%xmm7
-        movdqa  %xmm9,%xmm1
-        pslld   $7,%xmm2
-        movdqa  %xmm6,176-128(%rax)
-        paddd   %xmm12,%xmm6
-
-        psrld   $11,%xmm1
-        pxor    %xmm2,%xmm7
-        pslld   $21-7,%xmm2
-        paddd   -32(%rbp),%xmm6
-        pxor    %xmm1,%xmm7
-
-        psrld   $25-11,%xmm1
-        movdqa  %xmm9,%xmm0
-
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm9,%xmm4
-        pslld   $26-21,%xmm2
-        pandn   %xmm11,%xmm0
-        pand    %xmm10,%xmm4
-        pxor    %xmm1,%xmm7
-
-
-        movdqa  %xmm13,%xmm1
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm13,%xmm2
-        psrld   $2,%xmm1
-        paddd   %xmm7,%xmm6
-        pxor    %xmm4,%xmm0
-        movdqa  %xmm14,%xmm4
-        movdqa  %xmm13,%xmm7
-        pslld   $10,%xmm2
-        pxor    %xmm13,%xmm4
-
-
-        psrld   $13,%xmm7
-        pxor    %xmm2,%xmm1
-        paddd   %xmm0,%xmm6
-        pslld   $19-10,%xmm2
-        pand    %xmm4,%xmm3
-        pxor    %xmm7,%xmm1
-
-
-        psrld   $22-13,%xmm7
-        pxor    %xmm2,%xmm1
-        movdqa  %xmm14,%xmm12
-        pslld   $30-19,%xmm2
-        pxor    %xmm1,%xmm7
-        pxor    %xmm3,%xmm12
-        paddd   %xmm6,%xmm8
-        pxor    %xmm2,%xmm7
-
-        paddd   %xmm6,%xmm12
-        paddd   %xmm7,%xmm12
-        movdqa  208-128(%rax),%xmm6
-        paddd   80-128(%rax),%xmm5
-
-        movdqa  %xmm6,%xmm7
-        movdqa  %xmm6,%xmm1
-        psrld   $3,%xmm7
-        movdqa  %xmm6,%xmm2
-
-        psrld   $7,%xmm1
-        movdqa  160-128(%rax),%xmm0
-        pslld   $14,%xmm2
-        pxor    %xmm1,%xmm7
-        psrld   $18-7,%xmm1
-        movdqa  %xmm0,%xmm3
-        pxor    %xmm2,%xmm7
-        pslld   $25-14,%xmm2
-        pxor    %xmm1,%xmm7
-        psrld   $10,%xmm0
-        movdqa  %xmm3,%xmm1
-
-        psrld   $17,%xmm3
-        pxor    %xmm2,%xmm7
-        pslld   $13,%xmm1
-        paddd   %xmm7,%xmm5
-        pxor    %xmm3,%xmm0
-        psrld   $19-17,%xmm3
-        pxor    %xmm1,%xmm0
-        pslld   $15-13,%xmm1
-        pxor    %xmm3,%xmm0
-        pxor    %xmm1,%xmm0
-        paddd   %xmm0,%xmm5
-        movdqa  %xmm8,%xmm7
-
-        movdqa  %xmm8,%xmm2
-
-        psrld   $6,%xmm7
-        movdqa  %xmm8,%xmm1
-        pslld   $7,%xmm2
-        movdqa  %xmm5,192-128(%rax)
-        paddd   %xmm11,%xmm5
-
-        psrld   $11,%xmm1
-        pxor    %xmm2,%xmm7
-        pslld   $21-7,%xmm2
-        paddd   0(%rbp),%xmm5
-        pxor    %xmm1,%xmm7
-
-        psrld   $25-11,%xmm1
-        movdqa  %xmm8,%xmm0
-
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm8,%xmm3
-        pslld   $26-21,%xmm2
-        pandn   %xmm10,%xmm0
-        pand    %xmm9,%xmm3
-        pxor    %xmm1,%xmm7
-
-
-        movdqa  %xmm12,%xmm1
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm12,%xmm2
-        psrld   $2,%xmm1
-        paddd   %xmm7,%xmm5
-        pxor    %xmm3,%xmm0
-        movdqa  %xmm13,%xmm3
-        movdqa  %xmm12,%xmm7
-        pslld   $10,%xmm2
-        pxor    %xmm12,%xmm3
-
-
-        psrld   $13,%xmm7
-        pxor    %xmm2,%xmm1
-        paddd   %xmm0,%xmm5
-        pslld   $19-10,%xmm2
-        pand    %xmm3,%xmm4
-        pxor    %xmm7,%xmm1
-
-
-        psrld   $22-13,%xmm7
-        pxor    %xmm2,%xmm1
-        movdqa  %xmm13,%xmm11
-        pslld   $30-19,%xmm2
-        pxor    %xmm1,%xmm7
-        pxor    %xmm4,%xmm11
-        paddd   %xmm5,%xmm15
-        pxor    %xmm2,%xmm7
-
-        paddd   %xmm5,%xmm11
-        paddd   %xmm7,%xmm11
-        movdqa  224-128(%rax),%xmm5
-        paddd   96-128(%rax),%xmm6
-
-        movdqa  %xmm5,%xmm7
-        movdqa  %xmm5,%xmm1
-        psrld   $3,%xmm7
-        movdqa  %xmm5,%xmm2
-
-        psrld   $7,%xmm1
-        movdqa  176-128(%rax),%xmm0
-        pslld   $14,%xmm2
-        pxor    %xmm1,%xmm7
-        psrld   $18-7,%xmm1
-        movdqa  %xmm0,%xmm4
-        pxor    %xmm2,%xmm7
-        pslld   $25-14,%xmm2
-        pxor    %xmm1,%xmm7
-        psrld   $10,%xmm0
-        movdqa  %xmm4,%xmm1
-
-        psrld   $17,%xmm4
-        pxor    %xmm2,%xmm7
-        pslld   $13,%xmm1
-        paddd   %xmm7,%xmm6
-        pxor    %xmm4,%xmm0
-        psrld   $19-17,%xmm4
-        pxor    %xmm1,%xmm0
-        pslld   $15-13,%xmm1
-        pxor    %xmm4,%xmm0
-        pxor    %xmm1,%xmm0
-        paddd   %xmm0,%xmm6
-        movdqa  %xmm15,%xmm7
-
-        movdqa  %xmm15,%xmm2
-
-        psrld   $6,%xmm7
-        movdqa  %xmm15,%xmm1
-        pslld   $7,%xmm2
-        movdqa  %xmm6,208-128(%rax)
-        paddd   %xmm10,%xmm6
-
-        psrld   $11,%xmm1
-        pxor    %xmm2,%xmm7
-        pslld   $21-7,%xmm2
-        paddd   32(%rbp),%xmm6
-        pxor    %xmm1,%xmm7
-
-        psrld   $25-11,%xmm1
-        movdqa  %xmm15,%xmm0
-
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm15,%xmm4
-        pslld   $26-21,%xmm2
-        pandn   %xmm9,%xmm0
-        pand    %xmm8,%xmm4
-        pxor    %xmm1,%xmm7
-
-
-        movdqa  %xmm11,%xmm1
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm11,%xmm2
-        psrld   $2,%xmm1
-        paddd   %xmm7,%xmm6
-        pxor    %xmm4,%xmm0
-        movdqa  %xmm12,%xmm4
-        movdqa  %xmm11,%xmm7
-        pslld   $10,%xmm2
-        pxor    %xmm11,%xmm4
-
-
-        psrld   $13,%xmm7
-        pxor    %xmm2,%xmm1
-        paddd   %xmm0,%xmm6
-        pslld   $19-10,%xmm2
-        pand    %xmm4,%xmm3
-        pxor    %xmm7,%xmm1
-
-
-        psrld   $22-13,%xmm7
-        pxor    %xmm2,%xmm1
-        movdqa  %xmm12,%xmm10
-        pslld   $30-19,%xmm2
-        pxor    %xmm1,%xmm7
-        pxor    %xmm3,%xmm10
-        paddd   %xmm6,%xmm14
-        pxor    %xmm2,%xmm7
-
-        paddd   %xmm6,%xmm10
-        paddd   %xmm7,%xmm10
-        movdqa  240-128(%rax),%xmm6
-        paddd   112-128(%rax),%xmm5
-
-        movdqa  %xmm6,%xmm7
-        movdqa  %xmm6,%xmm1
-        psrld   $3,%xmm7
-        movdqa  %xmm6,%xmm2
-
-        psrld   $7,%xmm1
-        movdqa  192-128(%rax),%xmm0
-        pslld   $14,%xmm2
-        pxor    %xmm1,%xmm7
-        psrld   $18-7,%xmm1
-        movdqa  %xmm0,%xmm3
-        pxor    %xmm2,%xmm7
-        pslld   $25-14,%xmm2
-        pxor    %xmm1,%xmm7
-        psrld   $10,%xmm0
-        movdqa  %xmm3,%xmm1
-
-        psrld   $17,%xmm3
-        pxor    %xmm2,%xmm7
-        pslld   $13,%xmm1
-        paddd   %xmm7,%xmm5
-        pxor    %xmm3,%xmm0
-        psrld   $19-17,%xmm3
-        pxor    %xmm1,%xmm0
-        pslld   $15-13,%xmm1
-        pxor    %xmm3,%xmm0
-        pxor    %xmm1,%xmm0
-        paddd   %xmm0,%xmm5
-        movdqa  %xmm14,%xmm7
-
-        movdqa  %xmm14,%xmm2
-
-        psrld   $6,%xmm7
-        movdqa  %xmm14,%xmm1
-        pslld   $7,%xmm2
-        movdqa  %xmm5,224-128(%rax)
-        paddd   %xmm9,%xmm5
-
-        psrld   $11,%xmm1
-        pxor    %xmm2,%xmm7
-        pslld   $21-7,%xmm2
-        paddd   64(%rbp),%xmm5
-        pxor    %xmm1,%xmm7
-
-        psrld   $25-11,%xmm1
-        movdqa  %xmm14,%xmm0
-
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm14,%xmm3
-        pslld   $26-21,%xmm2
-        pandn   %xmm8,%xmm0
-        pand    %xmm15,%xmm3
-        pxor    %xmm1,%xmm7
-
-
-        movdqa  %xmm10,%xmm1
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm10,%xmm2
-        psrld   $2,%xmm1
-        paddd   %xmm7,%xmm5
-        pxor    %xmm3,%xmm0
-        movdqa  %xmm11,%xmm3
-        movdqa  %xmm10,%xmm7
-        pslld   $10,%xmm2
-        pxor    %xmm10,%xmm3
-
-
-        psrld   $13,%xmm7
-        pxor    %xmm2,%xmm1
-        paddd   %xmm0,%xmm5
-        pslld   $19-10,%xmm2
-        pand    %xmm3,%xmm4
-        pxor    %xmm7,%xmm1
-
-
-        psrld   $22-13,%xmm7
-        pxor    %xmm2,%xmm1
-        movdqa  %xmm11,%xmm9
-        pslld   $30-19,%xmm2
-        pxor    %xmm1,%xmm7
-        pxor    %xmm4,%xmm9
-        paddd   %xmm5,%xmm13
-        pxor    %xmm2,%xmm7
-
-        paddd   %xmm5,%xmm9
-        paddd   %xmm7,%xmm9
-        movdqa  0-128(%rax),%xmm5
-        paddd   128-128(%rax),%xmm6
-
-        movdqa  %xmm5,%xmm7
-        movdqa  %xmm5,%xmm1
-        psrld   $3,%xmm7
-        movdqa  %xmm5,%xmm2
-
-        psrld   $7,%xmm1
-        movdqa  208-128(%rax),%xmm0
-        pslld   $14,%xmm2
-        pxor    %xmm1,%xmm7
-        psrld   $18-7,%xmm1
-        movdqa  %xmm0,%xmm4
-        pxor    %xmm2,%xmm7
-        pslld   $25-14,%xmm2
-        pxor    %xmm1,%xmm7
-        psrld   $10,%xmm0
-        movdqa  %xmm4,%xmm1
-
-        psrld   $17,%xmm4
-        pxor    %xmm2,%xmm7
-        pslld   $13,%xmm1
-        paddd   %xmm7,%xmm6
-        pxor    %xmm4,%xmm0
-        psrld   $19-17,%xmm4
-        pxor    %xmm1,%xmm0
-        pslld   $15-13,%xmm1
-        pxor    %xmm4,%xmm0
-        pxor    %xmm1,%xmm0
-        paddd   %xmm0,%xmm6
-        movdqa  %xmm13,%xmm7
-
-        movdqa  %xmm13,%xmm2
-
-        psrld   $6,%xmm7
-        movdqa  %xmm13,%xmm1
-        pslld   $7,%xmm2
-        movdqa  %xmm6,240-128(%rax)
-        paddd   %xmm8,%xmm6
-
-        psrld   $11,%xmm1
-        pxor    %xmm2,%xmm7
-        pslld   $21-7,%xmm2
-        paddd   96(%rbp),%xmm6
-        pxor    %xmm1,%xmm7
-
-        psrld   $25-11,%xmm1
-        movdqa  %xmm13,%xmm0
-
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm13,%xmm4
-        pslld   $26-21,%xmm2
-        pandn   %xmm15,%xmm0
-        pand    %xmm14,%xmm4
-        pxor    %xmm1,%xmm7
-
-
-        movdqa  %xmm9,%xmm1
-        pxor    %xmm2,%xmm7
-        movdqa  %xmm9,%xmm2
-        psrld   $2,%xmm1
-        paddd   %xmm7,%xmm6
-        pxor    %xmm4,%xmm0
-        movdqa  %xmm10,%xmm4
-        movdqa  %xmm9,%xmm7
-        pslld   $10,%xmm2
-        pxor    %xmm9,%xmm4
-
-
-        psrld   $13,%xmm7
-        pxor    %xmm2,%xmm1
-        paddd   %xmm0,%xmm6
-        pslld   $19-10,%xmm2
-        pand    %xmm4,%xmm3
-        pxor    %xmm7,%xmm1
-
-
-        psrld   $22-13,%xmm7
-        pxor    %xmm2,%xmm1
-        movdqa  %xmm10,%xmm8
-        pslld   $30-19,%xmm2
-        pxor    %xmm1,%xmm7
-        pxor    %xmm3,%xmm8
-        paddd   %xmm6,%xmm12
-        pxor    %xmm2,%xmm7
-
-        paddd   %xmm6,%xmm8
-        paddd   %xmm7,%xmm8
-        leaq    256(%rbp),%rbp
-        decl    %ecx
-        jnz     .Loop_16_xx
-
-        movl    $1,%ecx
-        leaq    K256+128(%rip),%rbp
-
-        movdqa  (%rbx),%xmm7
-        cmpl    0(%rbx),%ecx
-        pxor    %xmm0,%xmm0
-        cmovgeq %rbp,%r8
-        cmpl    4(%rbx),%ecx
-        movdqa  %xmm7,%xmm6
-        cmovgeq %rbp,%r9
-        cmpl    8(%rbx),%ecx
-        pcmpgtd %xmm0,%xmm6
-        cmovgeq %rbp,%r10
-        cmpl    12(%rbx),%ecx
-        paddd   %xmm6,%xmm7
-        cmovgeq %rbp,%r11
-
-        movdqu  0-128(%rdi),%xmm0
-        pand    %xmm6,%xmm8
-        movdqu  32-128(%rdi),%xmm1
-        pand    %xmm6,%xmm9
-        movdqu  64-128(%rdi),%xmm2
-        pand    %xmm6,%xmm10
-        movdqu  96-128(%rdi),%xmm5
-        pand    %xmm6,%xmm11
-        paddd   %xmm0,%xmm8
-        movdqu  128-128(%rdi),%xmm0
-        pand    %xmm6,%xmm12
-        paddd   %xmm1,%xmm9
-        movdqu  160-128(%rdi),%xmm1
-        pand    %xmm6,%xmm13
-        paddd   %xmm2,%xmm10
-        movdqu  192-128(%rdi),%xmm2
-        pand    %xmm6,%xmm14
-        paddd   %xmm5,%xmm11
-        movdqu  224-128(%rdi),%xmm5
-        pand    %xmm6,%xmm15
-        paddd   %xmm0,%xmm12
-        paddd   %xmm1,%xmm13
-        movdqu  %xmm8,0-128(%rdi)
-        paddd   %xmm2,%xmm14
-        movdqu  %xmm9,32-128(%rdi)
-        paddd   %xmm5,%xmm15
-        movdqu  %xmm10,64-128(%rdi)
-        movdqu  %xmm11,96-128(%rdi)
-        movdqu  %xmm12,128-128(%rdi)
-        movdqu  %xmm13,160-128(%rdi)
-        movdqu  %xmm14,192-128(%rdi)
-        movdqu  %xmm15,224-128(%rdi)
-
-        movdqa  %xmm7,(%rbx)
-        movdqa  .Lpbswap(%rip),%xmm6
-        decl    %edx
-        jnz     .Loop
-
-        movl    280(%rsp),%edx
-        leaq    16(%rdi),%rdi
-        leaq    64(%rsi),%rsi
-        decl    %edx
-        jnz     .Loop_grande
-
-.Ldone:
-        movq    272(%rsp),%rax
-.cfi_def_cfa    %rax,8
-        movq    -16(%rax),%rbp
-.cfi_restore    %rbp
-        movq    -8(%rax),%rbx
-.cfi_restore    %rbx
-        leaq    (%rax),%rsp
-.cfi_def_cfa_register   %rsp
-.Lepilogue:
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   sha256_multi_block,.-sha256_multi_block
-.type   sha256_multi_block_shaext, at function
-.align  32
-sha256_multi_block_shaext:
-.cfi_startproc
-_shaext_shortcut:
-        movq    %rsp,%rax
-.cfi_def_cfa_register   %rax
-        pushq   %rbx
-.cfi_offset     %rbx,-16
-        pushq   %rbp
-.cfi_offset     %rbp,-24
-        subq    $288,%rsp
-        shll    $1,%edx
-        andq    $-256,%rsp
-        leaq    128(%rdi),%rdi
-        movq    %rax,272(%rsp)
-.Lbody_shaext:
-        leaq    256(%rsp),%rbx
-        leaq    K256_shaext+128(%rip),%rbp
-
-.Loop_grande_shaext:
-        movl    %edx,280(%rsp)
-        xorl    %edx,%edx
-        movq    0(%rsi),%r8
-        movl    8(%rsi),%ecx
-        cmpl    %edx,%ecx
-        cmovgl  %ecx,%edx
-        testl   %ecx,%ecx
-        movl    %ecx,0(%rbx)
-        cmovleq %rsp,%r8
-        movq    16(%rsi),%r9
-        movl    24(%rsi),%ecx
-        cmpl    %edx,%ecx
-        cmovgl  %ecx,%edx
-        testl   %ecx,%ecx
-        movl    %ecx,4(%rbx)
-        cmovleq %rsp,%r9
-        testl   %edx,%edx
-        jz      .Ldone_shaext
-
-        movq    0-128(%rdi),%xmm12
-        movq    32-128(%rdi),%xmm4
-        movq    64-128(%rdi),%xmm13
-        movq    96-128(%rdi),%xmm5
-        movq    128-128(%rdi),%xmm8
-        movq    160-128(%rdi),%xmm9
-        movq    192-128(%rdi),%xmm10
-        movq    224-128(%rdi),%xmm11
-
-        punpckldq       %xmm4,%xmm12
-        punpckldq       %xmm5,%xmm13
-        punpckldq       %xmm9,%xmm8
-        punpckldq       %xmm11,%xmm10
-        movdqa  K256_shaext-16(%rip),%xmm3
-
-        movdqa  %xmm12,%xmm14
-        movdqa  %xmm13,%xmm15
-        punpcklqdq      %xmm8,%xmm12
-        punpcklqdq      %xmm10,%xmm13
-        punpckhqdq      %xmm8,%xmm14
-        punpckhqdq      %xmm10,%xmm15
-
-        pshufd  $27,%xmm12,%xmm12
-        pshufd  $27,%xmm13,%xmm13
-        pshufd  $27,%xmm14,%xmm14
-        pshufd  $27,%xmm15,%xmm15
-        jmp     .Loop_shaext
-
-.align  32
-.Loop_shaext:
-        movdqu  0(%r8),%xmm4
-        movdqu  0(%r9),%xmm8
-        movdqu  16(%r8),%xmm5
-        movdqu  16(%r9),%xmm9
-        movdqu  32(%r8),%xmm6
-.byte   102,15,56,0,227
-        movdqu  32(%r9),%xmm10
-.byte   102,68,15,56,0,195
-        movdqu  48(%r8),%xmm7
-        leaq    64(%r8),%r8
-        movdqu  48(%r9),%xmm11
-        leaq    64(%r9),%r9
-
-        movdqa  0-128(%rbp),%xmm0
-.byte   102,15,56,0,235
-        paddd   %xmm4,%xmm0
-        pxor    %xmm12,%xmm4
-        movdqa  %xmm0,%xmm1
-        movdqa  0-128(%rbp),%xmm2
-.byte   102,68,15,56,0,203
-        paddd   %xmm8,%xmm2
-        movdqa  %xmm13,80(%rsp)
-.byte   69,15,56,203,236
-        pxor    %xmm14,%xmm8
-        movdqa  %xmm2,%xmm0
-        movdqa  %xmm15,112(%rsp)
-.byte   69,15,56,203,254
-        pshufd  $0x0e,%xmm1,%xmm0
-        pxor    %xmm12,%xmm4
-        movdqa  %xmm12,64(%rsp)
-.byte   69,15,56,203,229
-        pshufd  $0x0e,%xmm2,%xmm0
-        pxor    %xmm14,%xmm8
-        movdqa  %xmm14,96(%rsp)
-        movdqa  16-128(%rbp),%xmm1
-        paddd   %xmm5,%xmm1
-.byte   102,15,56,0,243
-.byte   69,15,56,203,247
-
-        movdqa  %xmm1,%xmm0
-        movdqa  16-128(%rbp),%xmm2
-        paddd   %xmm9,%xmm2
-.byte   69,15,56,203,236
-        movdqa  %xmm2,%xmm0
-        prefetcht0      127(%r8)
-.byte   102,15,56,0,251
-.byte   102,68,15,56,0,211
-        prefetcht0      127(%r9)
-.byte   69,15,56,203,254
-        pshufd  $0x0e,%xmm1,%xmm0
-.byte   102,68,15,56,0,219
-.byte   15,56,204,229
-.byte   69,15,56,203,229
-        pshufd  $0x0e,%xmm2,%xmm0
-        movdqa  32-128(%rbp),%xmm1
-        paddd   %xmm6,%xmm1
-.byte   69,15,56,203,247
-
-        movdqa  %xmm1,%xmm0
-        movdqa  32-128(%rbp),%xmm2
-        paddd   %xmm10,%xmm2
-.byte   69,15,56,203,236
-.byte   69,15,56,204,193
-        movdqa  %xmm2,%xmm0
-        movdqa  %xmm7,%xmm3
-.byte   69,15,56,203,254
-        pshufd  $0x0e,%xmm1,%xmm0
-.byte   102,15,58,15,222,4
-        paddd   %xmm3,%xmm4
-        movdqa  %xmm11,%xmm3
-.byte   102,65,15,58,15,218,4
-.byte   15,56,204,238
-.byte   69,15,56,203,229
-        pshufd  $0x0e,%xmm2,%xmm0
-        movdqa  48-128(%rbp),%xmm1
-        paddd   %xmm7,%xmm1
-.byte   69,15,56,203,247
-.byte   69,15,56,204,202
-
-        movdqa  %xmm1,%xmm0
-        movdqa  48-128(%rbp),%xmm2
-        paddd   %xmm3,%xmm8
-        paddd   %xmm11,%xmm2
-.byte   15,56,205,231
-.byte   69,15,56,203,236
-        movdqa  %xmm2,%xmm0
-        movdqa  %xmm4,%xmm3
-.byte   102,15,58,15,223,4
-.byte   69,15,56,203,254
-.byte   69,15,56,205,195
-        pshufd  $0x0e,%xmm1,%xmm0
-        paddd   %xmm3,%xmm5
-        movdqa  %xmm8,%xmm3
-.byte   102,65,15,58,15,219,4
-.byte   15,56,204,247
-.byte   69,15,56,203,229
-        pshufd  $0x0e,%xmm2,%xmm0
-        movdqa  64-128(%rbp),%xmm1
-        paddd   %xmm4,%xmm1
-.byte   69,15,56,203,247
-.byte   69,15,56,204,211
-        movdqa  %xmm1,%xmm0
-        movdqa  64-128(%rbp),%xmm2
-        paddd   %xmm3,%xmm9
-        paddd   %xmm8,%xmm2
-.byte   15,56,205,236
-.byte   69,15,56,203,236
-        movdqa  %xmm2,%xmm0
-        movdqa  %xmm5,%xmm3
-.byte   102,15,58,15,220,4
-.byte   69,15,56,203,254
-.byte   69,15,56,205,200
-        pshufd  $0x0e,%xmm1,%xmm0
-        paddd   %xmm3,%xmm6
-        movdqa  %xmm9,%xmm3
-.byte   102,65,15,58,15,216,4
-.byte   15,56,204,252
-.byte   69,15,56,203,229
-        pshufd  $0x0e,%xmm2,%xmm0
-        movdqa  80-128(%rbp),%xmm1
-        paddd   %xmm5,%xmm1
-.byte   69,15,56,203,247
-.byte   69,15,56,204,216
-        movdqa  %xmm1,%xmm0
-        movdqa  80-128(%rbp),%xmm2
-        paddd   %xmm3,%xmm10
-        paddd   %xmm9,%xmm2
-.byte   15,56,205,245
-.byte   69,15,56,203,236
-        movdqa  %xmm2,%xmm0
-        movdqa  %xmm6,%xmm3
-.byte   102,15,58,15,221,4
-.byte   69,15,56,203,254
-.byte   69,15,56,205,209
-        pshufd  $0x0e,%xmm1,%xmm0
-        paddd   %xmm3,%xmm7
-        movdqa  %xmm10,%xmm3
-.byte   102,65,15,58,15,217,4
-.byte   15,56,204,229
-.byte   69,15,56,203,229
-        pshufd  $0x0e,%xmm2,%xmm0
-        movdqa  96-128(%rbp),%xmm1
-        paddd   %xmm6,%xmm1
-.byte   69,15,56,203,247
-.byte   69,15,56,204,193
-        movdqa  %xmm1,%xmm0
-        movdqa  96-128(%rbp),%xmm2
-        paddd   %xmm3,%xmm11
-        paddd   %xmm10,%xmm2
-.byte   15,56,205,254
-.byte   69,15,56,203,236
-        movdqa  %xmm2,%xmm0
-        movdqa  %xmm7,%xmm3
-.byte   102,15,58,15,222,4
-.byte   69,15,56,203,254
-.byte   69,15,56,205,218
-        pshufd  $0x0e,%xmm1,%xmm0
-        paddd   %xmm3,%xmm4
-        movdqa  %xmm11,%xmm3
-.byte   102,65,15,58,15,218,4
-.byte   15,56,204,238
-.byte   69,15,56,203,229
-        pshufd  $0x0e,%xmm2,%xmm0
-        movdqa  112-128(%rbp),%xmm1
-        paddd   %xmm7,%xmm1
-.byte   69,15,56,203,247
-.byte   69,15,56,204,202
-        movdqa  %xmm1,%xmm0
-        movdqa  112-128(%rbp),%xmm2
-        paddd   %xmm3,%xmm8
-        paddd   %xmm11,%xmm2
-.byte   15,56,205,231
-.byte   69,15,56,203,236
-        movdqa  %xmm2,%xmm0
-        movdqa  %xmm4,%xmm3
-.byte   102,15,58,15,223,4
-.byte   69,15,56,203,254
-.byte   69,15,56,205,195
-        pshufd  $0x0e,%xmm1,%xmm0
-        paddd   %xmm3,%xmm5
-        movdqa  %xmm8,%xmm3
-.byte   102,65,15,58,15,219,4
-.byte   15,56,204,247
-.byte   69,15,56,203,229
-        pshufd  $0x0e,%xmm2,%xmm0
-        movdqa  128-128(%rbp),%xmm1
-        paddd   %xmm4,%xmm1
-.byte   69,15,56,203,247
-.byte   69,15,56,204,211
-        movdqa  %xmm1,%xmm0
-        movdqa  128-128(%rbp),%xmm2
-        paddd   %xmm3,%xmm9
-        paddd   %xmm8,%xmm2
-.byte   15,56,205,236
-.byte   69,15,56,203,236
-        movdqa  %xmm2,%xmm0
-        movdqa  %xmm5,%xmm3
-.byte   102,15,58,15,220,4
-.byte   69,15,56,203,254
-.byte   69,15,56,205,200
-        pshufd  $0x0e,%xmm1,%xmm0
-        paddd   %xmm3,%xmm6
-        movdqa  %xmm9,%xmm3
-.byte   102,65,15,58,15,216,4
-.byte   15,56,204,252
-.byte   69,15,56,203,229
-        pshufd  $0x0e,%xmm2,%xmm0
-        movdqa  144-128(%rbp),%xmm1
-        paddd   %xmm5,%xmm1
-.byte   69,15,56,203,247
-.byte   69,15,56,204,216
-        movdqa  %xmm1,%xmm0
-        movdqa  144-128(%rbp),%xmm2
-        paddd   %xmm3,%xmm10
-        paddd   %xmm9,%xmm2
-.byte   15,56,205,245
-.byte   69,15,56,203,236
-        movdqa  %xmm2,%xmm0
-        movdqa  %xmm6,%xmm3
-.byte   102,15,58,15,221,4
-.byte   69,15,56,203,254
-.byte   69,15,56,205,209
-        pshufd  $0x0e,%xmm1,%xmm0
-        paddd   %xmm3,%xmm7
-        movdqa  %xmm10,%xmm3
-.byte   102,65,15,58,15,217,4
-.byte   15,56,204,229
-.byte   69,15,56,203,229
-        pshufd  $0x0e,%xmm2,%xmm0
-        movdqa  160-128(%rbp),%xmm1
-        paddd   %xmm6,%xmm1
-.byte   69,15,56,203,247
-.byte   69,15,56,204,193
-        movdqa  %xmm1,%xmm0
-        movdqa  160-128(%rbp),%xmm2
-        paddd   %xmm3,%xmm11
-        paddd   %xmm10,%xmm2
-.byte   15,56,205,254
-.byte   69,15,56,203,236
-        movdqa  %xmm2,%xmm0
-        movdqa  %xmm7,%xmm3
-.byte   102,15,58,15,222,4
-.byte   69,15,56,203,254
-.byte   69,15,56,205,218
-        pshufd  $0x0e,%xmm1,%xmm0
-        paddd   %xmm3,%xmm4
-        movdqa  %xmm11,%xmm3
-.byte   102,65,15,58,15,218,4
-.byte   15,56,204,238
-.byte   69,15,56,203,229
-        pshufd  $0x0e,%xmm2,%xmm0
-        movdqa  176-128(%rbp),%xmm1
-        paddd   %xmm7,%xmm1
-.byte   69,15,56,203,247
-.byte   69,15,56,204,202
-        movdqa  %xmm1,%xmm0
-        movdqa  176-128(%rbp),%xmm2
-        paddd   %xmm3,%xmm8
-        paddd   %xmm11,%xmm2
-.byte   15,56,205,231
-.byte   69,15,56,203,236
-        movdqa  %xmm2,%xmm0
-        movdqa  %xmm4,%xmm3
-.byte   102,15,58,15,223,4
-.byte   69,15,56,203,254
-.byte   69,15,56,205,195
-        pshufd  $0x0e,%xmm1,%xmm0
-        paddd   %xmm3,%xmm5
-        movdqa  %xmm8,%xmm3
-.byte   102,65,15,58,15,219,4
-.byte   15,56,204,247
-.byte   69,15,56,203,229
-        pshufd  $0x0e,%xmm2,%xmm0
-        movdqa  192-128(%rbp),%xmm1
-        paddd   %xmm4,%xmm1
-.byte   69,15,56,203,247
-.byte   69,15,56,204,211
-        movdqa  %xmm1,%xmm0
-        movdqa  192-128(%rbp),%xmm2
-        paddd   %xmm3,%xmm9
-        paddd   %xmm8,%xmm2
-.byte   15,56,205,236
-.byte   69,15,56,203,236
-        movdqa  %xmm2,%xmm0
-        movdqa  %xmm5,%xmm3
-.byte   102,15,58,15,220,4
-.byte   69,15,56,203,254
-.byte   69,15,56,205,200
-        pshufd  $0x0e,%xmm1,%xmm0
-        paddd   %xmm3,%xmm6
-        movdqa  %xmm9,%xmm3
-.byte   102,65,15,58,15,216,4
-.byte   15,56,204,252
-.byte   69,15,56,203,229
-        pshufd  $0x0e,%xmm2,%xmm0
-        movdqa  208-128(%rbp),%xmm1
-        paddd   %xmm5,%xmm1
-.byte   69,15,56,203,247
-.byte   69,15,56,204,216
-        movdqa  %xmm1,%xmm0
-        movdqa  208-128(%rbp),%xmm2
-        paddd   %xmm3,%xmm10
-        paddd   %xmm9,%xmm2
-.byte   15,56,205,245
-.byte   69,15,56,203,236
-        movdqa  %xmm2,%xmm0
-        movdqa  %xmm6,%xmm3
-.byte   102,15,58,15,221,4
-.byte   69,15,56,203,254
-.byte   69,15,56,205,209
-        pshufd  $0x0e,%xmm1,%xmm0
-        paddd   %xmm3,%xmm7
-        movdqa  %xmm10,%xmm3
-.byte   102,65,15,58,15,217,4
-        nop
-.byte   69,15,56,203,229
-        pshufd  $0x0e,%xmm2,%xmm0
-        movdqa  224-128(%rbp),%xmm1
-        paddd   %xmm6,%xmm1
-.byte   69,15,56,203,247
-
-        movdqa  %xmm1,%xmm0
-        movdqa  224-128(%rbp),%xmm2
-        paddd   %xmm3,%xmm11
-        paddd   %xmm10,%xmm2
-.byte   15,56,205,254
-        nop
-.byte   69,15,56,203,236
-        movdqa  %xmm2,%xmm0
-        movl    $1,%ecx
-        pxor    %xmm6,%xmm6
-.byte   69,15,56,203,254
-.byte   69,15,56,205,218
-        pshufd  $0x0e,%xmm1,%xmm0
-        movdqa  240-128(%rbp),%xmm1
-        paddd   %xmm7,%xmm1
-        movq    (%rbx),%xmm7
-        nop
-.byte   69,15,56,203,229
-        pshufd  $0x0e,%xmm2,%xmm0
-        movdqa  240-128(%rbp),%xmm2
-        paddd   %xmm11,%xmm2
-.byte   69,15,56,203,247
-
-        movdqa  %xmm1,%xmm0
-        cmpl    0(%rbx),%ecx
-        cmovgeq %rsp,%r8
-        cmpl    4(%rbx),%ecx
-        cmovgeq %rsp,%r9
-        pshufd  $0x00,%xmm7,%xmm9
-.byte   69,15,56,203,236
-        movdqa  %xmm2,%xmm0
-        pshufd  $0x55,%xmm7,%xmm10
-        movdqa  %xmm7,%xmm11
-.byte   69,15,56,203,254
-        pshufd  $0x0e,%xmm1,%xmm0
-        pcmpgtd %xmm6,%xmm9
-        pcmpgtd %xmm6,%xmm10
-.byte   69,15,56,203,229
-        pshufd  $0x0e,%xmm2,%xmm0
-        pcmpgtd %xmm6,%xmm11
-        movdqa  K256_shaext-16(%rip),%xmm3
-.byte   69,15,56,203,247
-
-        pand    %xmm9,%xmm13
-        pand    %xmm10,%xmm15
-        pand    %xmm9,%xmm12
-        pand    %xmm10,%xmm14
-        paddd   %xmm7,%xmm11
-
-        paddd   80(%rsp),%xmm13
-        paddd   112(%rsp),%xmm15
-        paddd   64(%rsp),%xmm12
-        paddd   96(%rsp),%xmm14
-
-        movq    %xmm11,(%rbx)
-        decl    %edx
-        jnz     .Loop_shaext
-
-        movl    280(%rsp),%edx
-
-        pshufd  $27,%xmm12,%xmm12
-        pshufd  $27,%xmm13,%xmm13
-        pshufd  $27,%xmm14,%xmm14
-        pshufd  $27,%xmm15,%xmm15
-
-        movdqa  %xmm12,%xmm5
-        movdqa  %xmm13,%xmm6
-        punpckldq       %xmm14,%xmm12
-        punpckhdq       %xmm14,%xmm5
-        punpckldq       %xmm15,%xmm13
-        punpckhdq       %xmm15,%xmm6
-
-        movq    %xmm12,0-128(%rdi)
-        psrldq  $8,%xmm12
-        movq    %xmm5,128-128(%rdi)
-        psrldq  $8,%xmm5
-        movq    %xmm12,32-128(%rdi)
-        movq    %xmm5,160-128(%rdi)
-
-        movq    %xmm13,64-128(%rdi)
-        psrldq  $8,%xmm13
-        movq    %xmm6,192-128(%rdi)
-        psrldq  $8,%xmm6
-        movq    %xmm13,96-128(%rdi)
-        movq    %xmm6,224-128(%rdi)
-
-        leaq    8(%rdi),%rdi
-        leaq    32(%rsi),%rsi
-        decl    %edx
-        jnz     .Loop_grande_shaext
-
-.Ldone_shaext:
-
-        movq    -16(%rax),%rbp
-.cfi_restore    %rbp
-        movq    -8(%rax),%rbx
-.cfi_restore    %rbx
-        leaq    (%rax),%rsp
-.cfi_def_cfa_register   %rsp
-.Lepilogue_shaext:
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   sha256_multi_block_shaext,.-sha256_multi_block_shaext
-.align  256
-K256:
-.long   1116352408,1116352408,1116352408,1116352408
-.long   1116352408,1116352408,1116352408,1116352408
-.long   1899447441,1899447441,1899447441,1899447441
-.long   1899447441,1899447441,1899447441,1899447441
-.long   3049323471,3049323471,3049323471,3049323471
-.long   3049323471,3049323471,3049323471,3049323471
-.long   3921009573,3921009573,3921009573,3921009573
-.long   3921009573,3921009573,3921009573,3921009573
-.long   961987163,961987163,961987163,961987163
-.long   961987163,961987163,961987163,961987163
-.long   1508970993,1508970993,1508970993,1508970993
-.long   1508970993,1508970993,1508970993,1508970993
-.long   2453635748,2453635748,2453635748,2453635748
-.long   2453635748,2453635748,2453635748,2453635748
-.long   2870763221,2870763221,2870763221,2870763221
-.long   2870763221,2870763221,2870763221,2870763221
-.long   3624381080,3624381080,3624381080,3624381080
-.long   3624381080,3624381080,3624381080,3624381080
-.long   310598401,310598401,310598401,310598401
-.long   310598401,310598401,310598401,310598401
-.long   607225278,607225278,607225278,607225278
-.long   607225278,607225278,607225278,607225278
-.long   1426881987,1426881987,1426881987,1426881987
-.long   1426881987,1426881987,1426881987,1426881987
-.long   1925078388,1925078388,1925078388,1925078388
-.long   1925078388,1925078388,1925078388,1925078388
-.long   2162078206,2162078206,2162078206,2162078206
-.long   2162078206,2162078206,2162078206,2162078206
-.long   2614888103,2614888103,2614888103,2614888103
-.long   2614888103,2614888103,2614888103,2614888103
-.long   3248222580,3248222580,3248222580,3248222580
-.long   3248222580,3248222580,3248222580,3248222580
-.long   3835390401,3835390401,3835390401,3835390401
-.long   3835390401,3835390401,3835390401,3835390401
-.long   4022224774,4022224774,4022224774,4022224774
-.long   4022224774,4022224774,4022224774,4022224774
-.long   264347078,264347078,264347078,264347078
-.long   264347078,264347078,264347078,264347078
-.long   604807628,604807628,604807628,604807628
-.long   604807628,604807628,604807628,604807628
-.long   770255983,770255983,770255983,770255983
-.long   770255983,770255983,770255983,770255983
-.long   1249150122,1249150122,1249150122,1249150122
-.long   1249150122,1249150122,1249150122,1249150122
-.long   1555081692,1555081692,1555081692,1555081692
-.long   1555081692,1555081692,1555081692,1555081692
-.long   1996064986,1996064986,1996064986,1996064986
-.long   1996064986,1996064986,1996064986,1996064986
-.long   2554220882,2554220882,2554220882,2554220882
-.long   2554220882,2554220882,2554220882,2554220882
-.long   2821834349,2821834349,2821834349,2821834349
-.long   2821834349,2821834349,2821834349,2821834349
-.long   2952996808,2952996808,2952996808,2952996808
-.long   2952996808,2952996808,2952996808,2952996808
-.long   3210313671,3210313671,3210313671,3210313671
-.long   3210313671,3210313671,3210313671,3210313671
-.long   3336571891,3336571891,3336571891,3336571891
-.long   3336571891,3336571891,3336571891,3336571891
-.long   3584528711,3584528711,3584528711,3584528711
-.long   3584528711,3584528711,3584528711,3584528711
-.long   113926993,113926993,113926993,113926993
-.long   113926993,113926993,113926993,113926993
-.long   338241895,338241895,338241895,338241895
-.long   338241895,338241895,338241895,338241895
-.long   666307205,666307205,666307205,666307205
-.long   666307205,666307205,666307205,666307205
-.long   773529912,773529912,773529912,773529912
-.long   773529912,773529912,773529912,773529912
-.long   1294757372,1294757372,1294757372,1294757372
-.long   1294757372,1294757372,1294757372,1294757372
-.long   1396182291,1396182291,1396182291,1396182291
-.long   1396182291,1396182291,1396182291,1396182291
-.long   1695183700,1695183700,1695183700,1695183700
-.long   1695183700,1695183700,1695183700,1695183700
-.long   1986661051,1986661051,1986661051,1986661051
-.long   1986661051,1986661051,1986661051,1986661051
-.long   2177026350,2177026350,2177026350,2177026350
-.long   2177026350,2177026350,2177026350,2177026350
-.long   2456956037,2456956037,2456956037,2456956037
-.long   2456956037,2456956037,2456956037,2456956037
-.long   2730485921,2730485921,2730485921,2730485921
-.long   2730485921,2730485921,2730485921,2730485921
-.long   2820302411,2820302411,2820302411,2820302411
-.long   2820302411,2820302411,2820302411,2820302411
-.long   3259730800,3259730800,3259730800,3259730800
-.long   3259730800,3259730800,3259730800,3259730800
-.long   3345764771,3345764771,3345764771,3345764771
-.long   3345764771,3345764771,3345764771,3345764771
-.long   3516065817,3516065817,3516065817,3516065817
-.long   3516065817,3516065817,3516065817,3516065817
-.long   3600352804,3600352804,3600352804,3600352804
-.long   3600352804,3600352804,3600352804,3600352804
-.long   4094571909,4094571909,4094571909,4094571909
-.long   4094571909,4094571909,4094571909,4094571909
-.long   275423344,275423344,275423344,275423344
-.long   275423344,275423344,275423344,275423344
-.long   430227734,430227734,430227734,430227734
-.long   430227734,430227734,430227734,430227734
-.long   506948616,506948616,506948616,506948616
-.long   506948616,506948616,506948616,506948616
-.long   659060556,659060556,659060556,659060556
-.long   659060556,659060556,659060556,659060556
-.long   883997877,883997877,883997877,883997877
-.long   883997877,883997877,883997877,883997877
-.long   958139571,958139571,958139571,958139571
-.long   958139571,958139571,958139571,958139571
-.long   1322822218,1322822218,1322822218,1322822218
-.long   1322822218,1322822218,1322822218,1322822218
-.long   1537002063,1537002063,1537002063,1537002063
-.long   1537002063,1537002063,1537002063,1537002063
-.long   1747873779,1747873779,1747873779,1747873779
-.long   1747873779,1747873779,1747873779,1747873779
-.long   1955562222,1955562222,1955562222,1955562222
-.long   1955562222,1955562222,1955562222,1955562222
-.long   2024104815,2024104815,2024104815,2024104815
-.long   2024104815,2024104815,2024104815,2024104815
-.long   2227730452,2227730452,2227730452,2227730452
-.long   2227730452,2227730452,2227730452,2227730452
-.long   2361852424,2361852424,2361852424,2361852424
-.long   2361852424,2361852424,2361852424,2361852424
-.long   2428436474,2428436474,2428436474,2428436474
-.long   2428436474,2428436474,2428436474,2428436474
-.long   2756734187,2756734187,2756734187,2756734187
-.long   2756734187,2756734187,2756734187,2756734187
-.long   3204031479,3204031479,3204031479,3204031479
-.long   3204031479,3204031479,3204031479,3204031479
-.long   3329325298,3329325298,3329325298,3329325298
-.long   3329325298,3329325298,3329325298,3329325298
-.Lpbswap:
-.long   0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
-.long   0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
-K256_shaext:
-.long   0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
-.long   0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
-.long   0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
-.long   0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
-.long   0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
-.long   0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
-.long   0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
-.long   0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
-.long   0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
-.long   0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
-.long   0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
-.long   0xd192e819,0xd6990624,0xf40e3585,0x106aa070
-.long   0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
-.long   0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
-.long   0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
-.long   0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
-.byte   83,72,65,50,53,54,32,109,117,108,116,105,45,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
diff --git a/CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha256-x86_64.S b/CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha256-x86_64.S
deleted file mode 100644
index a5d3cf506819..000000000000
--- a/CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha256-x86_64.S
+++ /dev/null
@@ -1,3097 +0,0 @@
-# WARNING: do not edit!
-# Generated from openssl/crypto/sha/asm/sha512-x86_64.pl
-#
-# Copyright 2005-2020 The OpenSSL Project Authors. All Rights Reserved.
-#
-# Licensed under the OpenSSL license (the "License").  You may not use
-# this file except in compliance with the License.  You can obtain a copy
-# in the file LICENSE in the source distribution or at
-# https://www.openssl.org/source/license.html
-
-.text
-
-
-.globl  sha256_block_data_order
-.type   sha256_block_data_order, at function
-.align  16
-sha256_block_data_order:
-.cfi_startproc
-        leaq    OPENSSL_ia32cap_P(%rip),%r11
-        movl    0(%r11),%r9d
-        movl    4(%r11),%r10d
-        movl    8(%r11),%r11d
-        testl   $536870912,%r11d
-        jnz     _shaext_shortcut
-        testl   $512,%r10d
-        jnz     .Lssse3_shortcut
-        movq    %rsp,%rax
-.cfi_def_cfa_register   %rax
-        pushq   %rbx
-.cfi_offset     %rbx,-16
-        pushq   %rbp
-.cfi_offset     %rbp,-24
-        pushq   %r12
-.cfi_offset     %r12,-32
-        pushq   %r13
-.cfi_offset     %r13,-40
-        pushq   %r14
-.cfi_offset     %r14,-48
-        pushq   %r15
-.cfi_offset     %r15,-56
-        shlq    $4,%rdx
-        subq    $64+32,%rsp
-        leaq    (%rsi,%rdx,4),%rdx
-        andq    $-64,%rsp
-        movq    %rdi,64+0(%rsp)
-        movq    %rsi,64+8(%rsp)
-        movq    %rdx,64+16(%rsp)
-        movq    %rax,88(%rsp)
-.cfi_escape     0x0f,0x06,0x77,0xd8,0x00,0x06,0x23,0x08
-.Lprologue:
-
-        movl    0(%rdi),%eax
-        movl    4(%rdi),%ebx
-        movl    8(%rdi),%ecx
-        movl    12(%rdi),%edx
-        movl    16(%rdi),%r8d
-        movl    20(%rdi),%r9d
-        movl    24(%rdi),%r10d
-        movl    28(%rdi),%r11d
-        jmp     .Lloop
-
-.align  16
-.Lloop:
-        movl    %ebx,%edi
-        leaq    K256(%rip),%rbp
-        xorl    %ecx,%edi
-        movl    0(%rsi),%r12d
-        movl    %r8d,%r13d
-        movl    %eax,%r14d
-        bswapl  %r12d
-        rorl    $14,%r13d
-        movl    %r9d,%r15d
-
-        xorl    %r8d,%r13d
-        rorl    $9,%r14d
-        xorl    %r10d,%r15d
-
-        movl    %r12d,0(%rsp)
-        xorl    %eax,%r14d
-        andl    %r8d,%r15d
-
-        rorl    $5,%r13d
-        addl    %r11d,%r12d
-        xorl    %r10d,%r15d
-
-        rorl    $11,%r14d
-        xorl    %r8d,%r13d
-        addl    %r15d,%r12d
-
-        movl    %eax,%r15d
-        addl    (%rbp),%r12d
-        xorl    %eax,%r14d
-
-        xorl    %ebx,%r15d
-        rorl    $6,%r13d
-        movl    %ebx,%r11d
-
-        andl    %r15d,%edi
-        rorl    $2,%r14d
-        addl    %r13d,%r12d
-
-        xorl    %edi,%r11d
-        addl    %r12d,%edx
-        addl    %r12d,%r11d
-
-        leaq    4(%rbp),%rbp
-        addl    %r14d,%r11d
-        movl    4(%rsi),%r12d
-        movl    %edx,%r13d
-        movl    %r11d,%r14d
-        bswapl  %r12d
-        rorl    $14,%r13d
-        movl    %r8d,%edi
-
-        xorl    %edx,%r13d
-        rorl    $9,%r14d
-        xorl    %r9d,%edi
-
-        movl    %r12d,4(%rsp)
-        xorl    %r11d,%r14d
-        andl    %edx,%edi
-
-        rorl    $5,%r13d
-        addl    %r10d,%r12d
-        xorl    %r9d,%edi
-
-        rorl    $11,%r14d
-        xorl    %edx,%r13d
-        addl    %edi,%r12d
-
-        movl    %r11d,%edi
-        addl    (%rbp),%r12d
-        xorl    %r11d,%r14d
-
-        xorl    %eax,%edi
-        rorl    $6,%r13d
-        movl    %eax,%r10d
-
-        andl    %edi,%r15d
-        rorl    $2,%r14d
-        addl    %r13d,%r12d
-
-        xorl    %r15d,%r10d
-        addl    %r12d,%ecx
-        addl    %r12d,%r10d
-
-        leaq    4(%rbp),%rbp
-        addl    %r14d,%r10d
-        movl    8(%rsi),%r12d
-        movl    %ecx,%r13d
-        movl    %r10d,%r14d
-        bswapl  %r12d
-        rorl    $14,%r13d
-        movl    %edx,%r15d
-
-        xorl    %ecx,%r13d
-        rorl    $9,%r14d
-        xorl    %r8d,%r15d
-
-        movl    %r12d,8(%rsp)
-        xorl    %r10d,%r14d
-        andl    %ecx,%r15d
-
-        rorl    $5,%r13d
-        addl    %r9d,%r12d
-        xorl    %r8d,%r15d
-
-        rorl    $11,%r14d
-        xorl    %ecx,%r13d
-        addl    %r15d,%r12d
-
-        movl    %r10d,%r15d
-        addl    (%rbp),%r12d
-        xorl    %r10d,%r14d
-
-        xorl    %r11d,%r15d
-        rorl    $6,%r13d
-        movl    %r11d,%r9d
-
-        andl    %r15d,%edi
-        rorl    $2,%r14d
-        addl    %r13d,%r12d
-
-        xorl    %edi,%r9d
-        addl    %r12d,%ebx
-        addl    %r12d,%r9d
-
-        leaq    4(%rbp),%rbp
-        addl    %r14d,%r9d
-        movl    12(%rsi),%r12d
-        movl    %ebx,%r13d
-        movl    %r9d,%r14d
-        bswapl  %r12d
-        rorl    $14,%r13d
-        movl    %ecx,%edi
-
-        xorl    %ebx,%r13d
-        rorl    $9,%r14d
-        xorl    %edx,%edi
-
-        movl    %r12d,12(%rsp)
-        xorl    %r9d,%r14d
-        andl    %ebx,%edi
-
-        rorl    $5,%r13d
-        addl    %r8d,%r12d
-        xorl    %edx,%edi
-
-        rorl    $11,%r14d
-        xorl    %ebx,%r13d
-        addl    %edi,%r12d
-
-        movl    %r9d,%edi
-        addl    (%rbp),%r12d
-        xorl    %r9d,%r14d
-
-        xorl    %r10d,%edi
-        rorl    $6,%r13d
-        movl    %r10d,%r8d
-
-        andl    %edi,%r15d
-        rorl    $2,%r14d
-        addl    %r13d,%r12d
-
-        xorl    %r15d,%r8d
-        addl    %r12d,%eax
-        addl    %r12d,%r8d
-
-        leaq    20(%rbp),%rbp
-        addl    %r14d,%r8d
-        movl    16(%rsi),%r12d
-        movl    %eax,%r13d
-        movl    %r8d,%r14d
-        bswapl  %r12d
-        rorl    $14,%r13d
-        movl    %ebx,%r15d
-
-        xorl    %eax,%r13d
-        rorl    $9,%r14d
-        xorl    %ecx,%r15d
-
-        movl    %r12d,16(%rsp)
-        xorl    %r8d,%r14d
-        andl    %eax,%r15d
-
-        rorl    $5,%r13d
-        addl    %edx,%r12d
-        xorl    %ecx,%r15d
-
-        rorl    $11,%r14d
-        xorl    %eax,%r13d
-        addl    %r15d,%r12d
-
-        movl    %r8d,%r15d
-        addl    (%rbp),%r12d
-        xorl    %r8d,%r14d
-
-        xorl    %r9d,%r15d
-        rorl    $6,%r13d
-        movl    %r9d,%edx
-
-        andl    %r15d,%edi
-        rorl    $2,%r14d
-        addl    %r13d,%r12d
-
-        xorl    %edi,%edx
-        addl    %r12d,%r11d
-        addl    %r12d,%edx
-
-        leaq    4(%rbp),%rbp
-        addl    %r14d,%edx
-        movl    20(%rsi),%r12d
-        movl    %r11d,%r13d
-        movl    %edx,%r14d
-        bswapl  %r12d
-        rorl    $14,%r13d
-        movl    %eax,%edi
-
-        xorl    %r11d,%r13d
-        rorl    $9,%r14d
-        xorl    %ebx,%edi
-
-        movl    %r12d,20(%rsp)
-        xorl    %edx,%r14d
-        andl    %r11d,%edi
-
-        rorl    $5,%r13d
-        addl    %ecx,%r12d
-        xorl    %ebx,%edi
-
-        rorl    $11,%r14d
-        xorl    %r11d,%r13d
-        addl    %edi,%r12d
-
-        movl    %edx,%edi
-        addl    (%rbp),%r12d
-        xorl    %edx,%r14d
-
-        xorl    %r8d,%edi
-        rorl    $6,%r13d
-        movl    %r8d,%ecx
-
-        andl    %edi,%r15d
-        rorl    $2,%r14d
-        addl    %r13d,%r12d
-
-        xorl    %r15d,%ecx
-        addl    %r12d,%r10d
-        addl    %r12d,%ecx
-
-        leaq    4(%rbp),%rbp
-        addl    %r14d,%ecx
-        movl    24(%rsi),%r12d
-        movl    %r10d,%r13d
-        movl    %ecx,%r14d
-        bswapl  %r12d
-        rorl    $14,%r13d
-        movl    %r11d,%r15d
-
-        xorl    %r10d,%r13d
-        rorl    $9,%r14d
-        xorl    %eax,%r15d
-
-        movl    %r12d,24(%rsp)
-        xorl    %ecx,%r14d
-        andl    %r10d,%r15d
-
-        rorl    $5,%r13d
-        addl    %ebx,%r12d
-        xorl    %eax,%r15d
-
-        rorl    $11,%r14d
-        xorl    %r10d,%r13d
-        addl    %r15d,%r12d
-
-        movl    %ecx,%r15d
-        addl    (%rbp),%r12d
-        xorl    %ecx,%r14d
-
-        xorl    %edx,%r15d
-        rorl    $6,%r13d
-        movl    %edx,%ebx
-
-        andl    %r15d,%edi
-        rorl    $2,%r14d
-        addl    %r13d,%r12d
-
-        xorl    %edi,%ebx
-        addl    %r12d,%r9d
-        addl    %r12d,%ebx
-
-        leaq    4(%rbp),%rbp
-        addl    %r14d,%ebx
-        movl    28(%rsi),%r12d
-        movl    %r9d,%r13d
-        movl    %ebx,%r14d
-        bswapl  %r12d
-        rorl    $14,%r13d
-        movl    %r10d,%edi
-
-        xorl    %r9d,%r13d
-        rorl    $9,%r14d
-        xorl    %r11d,%edi
-
-        movl    %r12d,28(%rsp)
-        xorl    %ebx,%r14d
-        andl    %r9d,%edi
-
-        rorl    $5,%r13d
-        addl    %eax,%r12d
-        xorl    %r11d,%edi
-
-        rorl    $11,%r14d
-        xorl    %r9d,%r13d
-        addl    %edi,%r12d
-
-        movl    %ebx,%edi
-        addl    (%rbp),%r12d
-        xorl    %ebx,%r14d
-
-        xorl    %ecx,%edi
-        rorl    $6,%r13d
-        movl    %ecx,%eax
-
-        andl    %edi,%r15d
-        rorl    $2,%r14d
-        addl    %r13d,%r12d
-
-        xorl    %r15d,%eax
-        addl    %r12d,%r8d
-        addl    %r12d,%eax
-
-        leaq    20(%rbp),%rbp
-        addl    %r14d,%eax
-        movl    32(%rsi),%r12d
-        movl    %r8d,%r13d
-        movl    %eax,%r14d
-        bswapl  %r12d
-        rorl    $14,%r13d
-        movl    %r9d,%r15d
-
-        xorl    %r8d,%r13d
-        rorl    $9,%r14d
-        xorl    %r10d,%r15d
-
-        movl    %r12d,32(%rsp)
-        xorl    %eax,%r14d
-        andl    %r8d,%r15d
-
-        rorl    $5,%r13d
-        addl    %r11d,%r12d
-        xorl    %r10d,%r15d
-
-        rorl    $11,%r14d
-        xorl    %r8d,%r13d
-        addl    %r15d,%r12d
-
-        movl    %eax,%r15d
-        addl    (%rbp),%r12d
-        xorl    %eax,%r14d
-
-        xorl    %ebx,%r15d
-        rorl    $6,%r13d
-        movl    %ebx,%r11d
-
-        andl    %r15d,%edi
-        rorl    $2,%r14d
-        addl    %r13d,%r12d
-
-        xorl    %edi,%r11d
-        addl    %r12d,%edx
-        addl    %r12d,%r11d
-
-        leaq    4(%rbp),%rbp
-        addl    %r14d,%r11d
-        movl    36(%rsi),%r12d
-        movl    %edx,%r13d
-        movl    %r11d,%r14d
-        bswapl  %r12d
-        rorl    $14,%r13d
-        movl    %r8d,%edi
-
-        xorl    %edx,%r13d
-        rorl    $9,%r14d
-        xorl    %r9d,%edi
-
-        movl    %r12d,36(%rsp)
-        xorl    %r11d,%r14d
-        andl    %edx,%edi
-
-        rorl    $5,%r13d
-        addl    %r10d,%r12d
-        xorl    %r9d,%edi
-
-        rorl    $11,%r14d
-        xorl    %edx,%r13d
-        addl    %edi,%r12d
-
-        movl    %r11d,%edi
-        addl    (%rbp),%r12d
-        xorl    %r11d,%r14d
-
-        xorl    %eax,%edi
-        rorl    $6,%r13d
-        movl    %eax,%r10d
-
-        andl    %edi,%r15d
-        rorl    $2,%r14d
-        addl    %r13d,%r12d
-
-        xorl    %r15d,%r10d
-        addl    %r12d,%ecx
-        addl    %r12d,%r10d
-
-        leaq    4(%rbp),%rbp
-        addl    %r14d,%r10d
-        movl    40(%rsi),%r12d
-        movl    %ecx,%r13d
-        movl    %r10d,%r14d
-        bswapl  %r12d
-        rorl    $14,%r13d
-        movl    %edx,%r15d
-
-        xorl    %ecx,%r13d
-        rorl    $9,%r14d
-        xorl    %r8d,%r15d
-
-        movl    %r12d,40(%rsp)
-        xorl    %r10d,%r14d
-        andl    %ecx,%r15d
-
-        rorl    $5,%r13d
-        addl    %r9d,%r12d
-        xorl    %r8d,%r15d
-
-        rorl    $11,%r14d
-        xorl    %ecx,%r13d
-        addl    %r15d,%r12d
-
-        movl    %r10d,%r15d
-        addl    (%rbp),%r12d
-        xorl    %r10d,%r14d
-
-        xorl    %r11d,%r15d
-        rorl    $6,%r13d
-        movl    %r11d,%r9d
-
-        andl    %r15d,%edi
-        rorl    $2,%r14d
-        addl    %r13d,%r12d
-
-        xorl    %edi,%r9d
-        addl    %r12d,%ebx
-        addl    %r12d,%r9d
-
-        leaq    4(%rbp),%rbp
-        addl    %r14d,%r9d
-        movl    44(%rsi),%r12d
-        movl    %ebx,%r13d
-        movl    %r9d,%r14d
-        bswapl  %r12d
-        rorl    $14,%r13d
-        movl    %ecx,%edi
-
-        xorl    %ebx,%r13d
-        rorl    $9,%r14d
-        xorl    %edx,%edi
-
-        movl    %r12d,44(%rsp)
-        xorl    %r9d,%r14d
-        andl    %ebx,%edi
-
-        rorl    $5,%r13d
-        addl    %r8d,%r12d
-        xorl    %edx,%edi
-
-        rorl    $11,%r14d
-        xorl    %ebx,%r13d
-        addl    %edi,%r12d
-
-        movl    %r9d,%edi
-        addl    (%rbp),%r12d
-        xorl    %r9d,%r14d
-
-        xorl    %r10d,%edi
-        rorl    $6,%r13d
-        movl    %r10d,%r8d
-
-        andl    %edi,%r15d
-        rorl    $2,%r14d
-        addl    %r13d,%r12d
-
-        xorl    %r15d,%r8d
-        addl    %r12d,%eax
-        addl    %r12d,%r8d
-
-        leaq    20(%rbp),%rbp
-        addl    %r14d,%r8d
-        movl    48(%rsi),%r12d
-        movl    %eax,%r13d
-        movl    %r8d,%r14d
-        bswapl  %r12d
-        rorl    $14,%r13d
-        movl    %ebx,%r15d
-
-        xorl    %eax,%r13d
-        rorl    $9,%r14d
-        xorl    %ecx,%r15d
-
-        movl    %r12d,48(%rsp)
-        xorl    %r8d,%r14d
-        andl    %eax,%r15d
-
-        rorl    $5,%r13d
-        addl    %edx,%r12d
-        xorl    %ecx,%r15d
-
-        rorl    $11,%r14d
-        xorl    %eax,%r13d
-        addl    %r15d,%r12d
-
-        movl    %r8d,%r15d
-        addl    (%rbp),%r12d
-        xorl    %r8d,%r14d
-
-        xorl    %r9d,%r15d
-        rorl    $6,%r13d
-        movl    %r9d,%edx
-
-        andl    %r15d,%edi
-        rorl    $2,%r14d
-        addl    %r13d,%r12d
-
-        xorl    %edi,%edx
-        addl    %r12d,%r11d
-        addl    %r12d,%edx
-
-        leaq    4(%rbp),%rbp
-        addl    %r14d,%edx
-        movl    52(%rsi),%r12d
-        movl    %r11d,%r13d
-        movl    %edx,%r14d
-        bswapl  %r12d
-        rorl    $14,%r13d
-        movl    %eax,%edi
-
-        xorl    %r11d,%r13d
-        rorl    $9,%r14d
-        xorl    %ebx,%edi
-
-        movl    %r12d,52(%rsp)
-        xorl    %edx,%r14d
-        andl    %r11d,%edi
-
-        rorl    $5,%r13d
-        addl    %ecx,%r12d
-        xorl    %ebx,%edi
-
-        rorl    $11,%r14d
-        xorl    %r11d,%r13d
-        addl    %edi,%r12d
-
-        movl    %edx,%edi
-        addl    (%rbp),%r12d
-        xorl    %edx,%r14d
-
-        xorl    %r8d,%edi
-        rorl    $6,%r13d
-        movl    %r8d,%ecx
-
-        andl    %edi,%r15d
-        rorl    $2,%r14d
-        addl    %r13d,%r12d
-
-        xorl    %r15d,%ecx
-        addl    %r12d,%r10d
-        addl    %r12d,%ecx
-
-        leaq    4(%rbp),%rbp
-        addl    %r14d,%ecx
-        movl    56(%rsi),%r12d
-        movl    %r10d,%r13d
-        movl    %ecx,%r14d
-        bswapl  %r12d
-        rorl    $14,%r13d
-        movl    %r11d,%r15d
-
-        xorl    %r10d,%r13d
-        rorl    $9,%r14d
-        xorl    %eax,%r15d
-
-        movl    %r12d,56(%rsp)
-        xorl    %ecx,%r14d
-        andl    %r10d,%r15d
-
-        rorl    $5,%r13d
-        addl    %ebx,%r12d
-        xorl    %eax,%r15d
-
-        rorl    $11,%r14d
-        xorl    %r10d,%r13d
-        addl    %r15d,%r12d
-
-        movl    %ecx,%r15d
-        addl    (%rbp),%r12d
-        xorl    %ecx,%r14d
-
-        xorl    %edx,%r15d
-        rorl    $6,%r13d
-        movl    %edx,%ebx
-
-        andl    %r15d,%edi
-        rorl    $2,%r14d
-        addl    %r13d,%r12d
-
-        xorl    %edi,%ebx
-        addl    %r12d,%r9d
-        addl    %r12d,%ebx
-
-        leaq    4(%rbp),%rbp
-        addl    %r14d,%ebx
-        movl    60(%rsi),%r12d
-        movl    %r9d,%r13d
-        movl    %ebx,%r14d
-        bswapl  %r12d
-        rorl    $14,%r13d
-        movl    %r10d,%edi
-
-        xorl    %r9d,%r13d
-        rorl    $9,%r14d
-        xorl    %r11d,%edi
-
-        movl    %r12d,60(%rsp)
-        xorl    %ebx,%r14d
-        andl    %r9d,%edi
-
-        rorl    $5,%r13d
-        addl    %eax,%r12d
-        xorl    %r11d,%edi
-
-        rorl    $11,%r14d
-        xorl    %r9d,%r13d
-        addl    %edi,%r12d
-
-        movl    %ebx,%edi
-        addl    (%rbp),%r12d
-        xorl    %ebx,%r14d
-
-        xorl    %ecx,%edi
-        rorl    $6,%r13d
-        movl    %ecx,%eax
-
-        andl    %edi,%r15d
-        rorl    $2,%r14d
-        addl    %r13d,%r12d
-
-        xorl    %r15d,%eax
-        addl    %r12d,%r8d
-        addl    %r12d,%eax
-
-        leaq    20(%rbp),%rbp
-        jmp     .Lrounds_16_xx
-.align  16
-.Lrounds_16_xx:
-        movl    4(%rsp),%r13d
-        movl    56(%rsp),%r15d
-
-        movl    %r13d,%r12d
-        rorl    $11,%r13d
-        addl    %r14d,%eax
-        movl    %r15d,%r14d
-        rorl    $2,%r15d
-
-        xorl    %r12d,%r13d
-        shrl    $3,%r12d
-        rorl    $7,%r13d
-        xorl    %r14d,%r15d
-        shrl    $10,%r14d
-
-        rorl    $17,%r15d
-        xorl    %r13d,%r12d
-        xorl    %r14d,%r15d
-        addl    36(%rsp),%r12d
-
-        addl    0(%rsp),%r12d
-        movl    %r8d,%r13d
-        addl    %r15d,%r12d
-        movl    %eax,%r14d
-        rorl    $14,%r13d
-        movl    %r9d,%r15d
-
-        xorl    %r8d,%r13d
-        rorl    $9,%r14d
-        xorl    %r10d,%r15d
-
-        movl    %r12d,0(%rsp)
-        xorl    %eax,%r14d
-        andl    %r8d,%r15d
-
-        rorl    $5,%r13d
-        addl    %r11d,%r12d
-        xorl    %r10d,%r15d
-
-        rorl    $11,%r14d
-        xorl    %r8d,%r13d
-        addl    %r15d,%r12d
-
-        movl    %eax,%r15d
-        addl    (%rbp),%r12d
-        xorl    %eax,%r14d
-
-        xorl    %ebx,%r15d
-        rorl    $6,%r13d
-        movl    %ebx,%r11d
-
-        andl    %r15d,%edi
-        rorl    $2,%r14d
-        addl    %r13d,%r12d
-
-        xorl    %edi,%r11d
-        addl    %r12d,%edx
-        addl    %r12d,%r11d
-
-        leaq    4(%rbp),%rbp
-        movl    8(%rsp),%r13d
-        movl    60(%rsp),%edi
-
-        movl    %r13d,%r12d
-        rorl    $11,%r13d
-        addl    %r14d,%r11d
-        movl    %edi,%r14d
-        rorl    $2,%edi
-
-        xorl    %r12d,%r13d
-        shrl    $3,%r12d
-        rorl    $7,%r13d
-        xorl    %r14d,%edi
-        shrl    $10,%r14d
-
-        rorl    $17,%edi
-        xorl    %r13d,%r12d
-        xorl    %r14d,%edi
-        addl    40(%rsp),%r12d
-
-        addl    4(%rsp),%r12d
-        movl    %edx,%r13d
-        addl    %edi,%r12d
-        movl    %r11d,%r14d
-        rorl    $14,%r13d
-        movl    %r8d,%edi
-
-        xorl    %edx,%r13d
-        rorl    $9,%r14d
-        xorl    %r9d,%edi
-
-        movl    %r12d,4(%rsp)
-        xorl    %r11d,%r14d
-        andl    %edx,%edi
-
-        rorl    $5,%r13d
-        addl    %r10d,%r12d
-        xorl    %r9d,%edi
-
-        rorl    $11,%r14d
-        xorl    %edx,%r13d
-        addl    %edi,%r12d
-
-        movl    %r11d,%edi
-        addl    (%rbp),%r12d
-        xorl    %r11d,%r14d
-
-        xorl    %eax,%edi
-        rorl    $6,%r13d
-        movl    %eax,%r10d
-
-        andl    %edi,%r15d
-        rorl    $2,%r14d
-        addl    %r13d,%r12d
-
-        xorl    %r15d,%r10d
-        addl    %r12d,%ecx
-        addl    %r12d,%r10d
-
-        leaq    4(%rbp),%rbp
-        movl    12(%rsp),%r13d
-        movl    0(%rsp),%r15d
-
-        movl    %r13d,%r12d
-        rorl    $11,%r13d
-        addl    %r14d,%r10d
-        movl    %r15d,%r14d
-        rorl    $2,%r15d
-
-        xorl    %r12d,%r13d
-        shrl    $3,%r12d
-        rorl    $7,%r13d
-        xorl    %r14d,%r15d
-        shrl    $10,%r14d
-
-        rorl    $17,%r15d
-        xorl    %r13d,%r12d
-        xorl    %r14d,%r15d
-        addl    44(%rsp),%r12d
-
-        addl    8(%rsp),%r12d
-        movl    %ecx,%r13d
-        addl    %r15d,%r12d
-        movl    %r10d,%r14d
-        rorl    $14,%r13d
-        movl    %edx,%r15d
-
-        xorl    %ecx,%r13d
-        rorl    $9,%r14d
-        xorl    %r8d,%r15d
-
-        movl    %r12d,8(%rsp)
-        xorl    %r10d,%r14d
-        andl    %ecx,%r15d
-
-        rorl    $5,%r13d
-        addl    %r9d,%r12d
-        xorl    %r8d,%r15d
-
-        rorl    $11,%r14d
-        xorl    %ecx,%r13d
-        addl    %r15d,%r12d
-
-        movl    %r10d,%r15d
-        addl    (%rbp),%r12d
-        xorl    %r10d,%r14d
-
-        xorl    %r11d,%r15d
-        rorl    $6,%r13d
-        movl    %r11d,%r9d
-
-        andl    %r15d,%edi
-        rorl    $2,%r14d
-        addl    %r13d,%r12d
-
-        xorl    %edi,%r9d
-        addl    %r12d,%ebx
-        addl    %r12d,%r9d
-
-        leaq    4(%rbp),%rbp
-        movl    16(%rsp),%r13d
-        movl    4(%rsp),%edi
-
-        movl    %r13d,%r12d
-        rorl    $11,%r13d
-        addl    %r14d,%r9d
-        movl    %edi,%r14d
-        rorl    $2,%edi
-
-        xorl    %r12d,%r13d
-        shrl    $3,%r12d
-        rorl    $7,%r13d
-        xorl    %r14d,%edi
-        shrl    $10,%r14d
-
-        rorl    $17,%edi
-        xorl    %r13d,%r12d
-        xorl    %r14d,%edi
-        addl    48(%rsp),%r12d
-
-        addl    12(%rsp),%r12d
-        movl    %ebx,%r13d
-        addl    %edi,%r12d
-        movl    %r9d,%r14d
-        rorl    $14,%r13d
-        movl    %ecx,%edi
-
-        xorl    %ebx,%r13d
-        rorl    $9,%r14d
-        xorl    %edx,%edi
-
-        movl    %r12d,12(%rsp)
-        xorl    %r9d,%r14d
-        andl    %ebx,%edi
-
-        rorl    $5,%r13d
-        addl    %r8d,%r12d
-        xorl    %edx,%edi
-
-        rorl    $11,%r14d
-        xorl    %ebx,%r13d
-        addl    %edi,%r12d
-
-        movl    %r9d,%edi
-        addl    (%rbp),%r12d
-        xorl    %r9d,%r14d
-
-        xorl    %r10d,%edi
-        rorl    $6,%r13d
-        movl    %r10d,%r8d
-
-        andl    %edi,%r15d
-        rorl    $2,%r14d
-        addl    %r13d,%r12d
-
-        xorl    %r15d,%r8d
-        addl    %r12d,%eax
-        addl    %r12d,%r8d
-
-        leaq    20(%rbp),%rbp
-        movl    20(%rsp),%r13d
-        movl    8(%rsp),%r15d
-
-        movl    %r13d,%r12d
-        rorl    $11,%r13d
-        addl    %r14d,%r8d
-        movl    %r15d,%r14d
-        rorl    $2,%r15d
-
-        xorl    %r12d,%r13d
-        shrl    $3,%r12d
-        rorl    $7,%r13d
-        xorl    %r14d,%r15d
-        shrl    $10,%r14d
-
-        rorl    $17,%r15d
-        xorl    %r13d,%r12d
-        xorl    %r14d,%r15d
-        addl    52(%rsp),%r12d
-
-        addl    16(%rsp),%r12d
-        movl    %eax,%r13d
-        addl    %r15d,%r12d
-        movl    %r8d,%r14d
-        rorl    $14,%r13d
-        movl    %ebx,%r15d
-
-        xorl    %eax,%r13d
-        rorl    $9,%r14d
-        xorl    %ecx,%r15d
-
-        movl    %r12d,16(%rsp)
-        xorl    %r8d,%r14d
-        andl    %eax,%r15d
-
-        rorl    $5,%r13d
-        addl    %edx,%r12d
-        xorl    %ecx,%r15d
-
-        rorl    $11,%r14d
-        xorl    %eax,%r13d
-        addl    %r15d,%r12d
-
-        movl    %r8d,%r15d
-        addl    (%rbp),%r12d
-        xorl    %r8d,%r14d
-
-        xorl    %r9d,%r15d
-        rorl    $6,%r13d
-        movl    %r9d,%edx
-
-        andl    %r15d,%edi
-        rorl    $2,%r14d
-        addl    %r13d,%r12d
-
-        xorl    %edi,%edx
-        addl    %r12d,%r11d
-        addl    %r12d,%edx
-
-        leaq    4(%rbp),%rbp
-        movl    24(%rsp),%r13d
-        movl    12(%rsp),%edi
-
-        movl    %r13d,%r12d
-        rorl    $11,%r13d
-        addl    %r14d,%edx
-        movl    %edi,%r14d
-        rorl    $2,%edi
-
-        xorl    %r12d,%r13d
-        shrl    $3,%r12d
-        rorl    $7,%r13d
-        xorl    %r14d,%edi
-        shrl    $10,%r14d
-
-        rorl    $17,%edi
-        xorl    %r13d,%r12d
-        xorl    %r14d,%edi
-        addl    56(%rsp),%r12d
-
-        addl    20(%rsp),%r12d
-        movl    %r11d,%r13d
-        addl    %edi,%r12d
-        movl    %edx,%r14d
-        rorl    $14,%r13d
-        movl    %eax,%edi
-
-        xorl    %r11d,%r13d
-        rorl    $9,%r14d
-        xorl    %ebx,%edi
-
-        movl    %r12d,20(%rsp)
-        xorl    %edx,%r14d
-        andl    %r11d,%edi
-
-        rorl    $5,%r13d
-        addl    %ecx,%r12d
-        xorl    %ebx,%edi
-
-        rorl    $11,%r14d
-        xorl    %r11d,%r13d
-        addl    %edi,%r12d
-
-        movl    %edx,%edi
-        addl    (%rbp),%r12d
-        xorl    %edx,%r14d
-
-        xorl    %r8d,%edi
-        rorl    $6,%r13d
-        movl    %r8d,%ecx
-
-        andl    %edi,%r15d
-        rorl    $2,%r14d
-        addl    %r13d,%r12d
-
-        xorl    %r15d,%ecx
-        addl    %r12d,%r10d
-        addl    %r12d,%ecx
-
-        leaq    4(%rbp),%rbp
-        movl    28(%rsp),%r13d
-        movl    16(%rsp),%r15d
-
-        movl    %r13d,%r12d
-        rorl    $11,%r13d
-        addl    %r14d,%ecx
-        movl    %r15d,%r14d
-        rorl    $2,%r15d
-
-        xorl    %r12d,%r13d
-        shrl    $3,%r12d
-        rorl    $7,%r13d
-        xorl    %r14d,%r15d
-        shrl    $10,%r14d
-
-        rorl    $17,%r15d
-        xorl    %r13d,%r12d
-        xorl    %r14d,%r15d
-        addl    60(%rsp),%r12d
-
-        addl    24(%rsp),%r12d
-        movl    %r10d,%r13d
-        addl    %r15d,%r12d
-        movl    %ecx,%r14d
-        rorl    $14,%r13d
-        movl    %r11d,%r15d
-
-        xorl    %r10d,%r13d
-        rorl    $9,%r14d
-        xorl    %eax,%r15d
-
-        movl    %r12d,24(%rsp)
-        xorl    %ecx,%r14d
-        andl    %r10d,%r15d
-
-        rorl    $5,%r13d
-        addl    %ebx,%r12d
-        xorl    %eax,%r15d
-
-        rorl    $11,%r14d
-        xorl    %r10d,%r13d
-        addl    %r15d,%r12d
-
-        movl    %ecx,%r15d
-        addl    (%rbp),%r12d
-        xorl    %ecx,%r14d
-
-        xorl    %edx,%r15d
-        rorl    $6,%r13d
-        movl    %edx,%ebx
-
-        andl    %r15d,%edi
-        rorl    $2,%r14d
-        addl    %r13d,%r12d
-
-        xorl    %edi,%ebx
-        addl    %r12d,%r9d
-        addl    %r12d,%ebx
-
-        leaq    4(%rbp),%rbp
-        movl    32(%rsp),%r13d
-        movl    20(%rsp),%edi
-
-        movl    %r13d,%r12d
-        rorl    $11,%r13d
-        addl    %r14d,%ebx
-        movl    %edi,%r14d
-        rorl    $2,%edi
-
-        xorl    %r12d,%r13d
-        shrl    $3,%r12d
-        rorl    $7,%r13d
-        xorl    %r14d,%edi
-        shrl    $10,%r14d
-
-        rorl    $17,%edi
-        xorl    %r13d,%r12d
-        xorl    %r14d,%edi
-        addl    0(%rsp),%r12d
-
-        addl    28(%rsp),%r12d
-        movl    %r9d,%r13d
-        addl    %edi,%r12d
-        movl    %ebx,%r14d
-        rorl    $14,%r13d
-        movl    %r10d,%edi
-
-        xorl    %r9d,%r13d
-        rorl    $9,%r14d
-        xorl    %r11d,%edi
-
-        movl    %r12d,28(%rsp)
-        xorl    %ebx,%r14d
-        andl    %r9d,%edi
-
-        rorl    $5,%r13d
-        addl    %eax,%r12d
-        xorl    %r11d,%edi
-
-        rorl    $11,%r14d
-        xorl    %r9d,%r13d
-        addl    %edi,%r12d
-
-        movl    %ebx,%edi
-        addl    (%rbp),%r12d
-        xorl    %ebx,%r14d
-
-        xorl    %ecx,%edi
-        rorl    $6,%r13d
-        movl    %ecx,%eax
-
-        andl    %edi,%r15d
-        rorl    $2,%r14d
-        addl    %r13d,%r12d
-
-        xorl    %r15d,%eax
-        addl    %r12d,%r8d
-        addl    %r12d,%eax
-
-        leaq    20(%rbp),%rbp
-        movl    36(%rsp),%r13d
-        movl    24(%rsp),%r15d
-
-        movl    %r13d,%r12d
-        rorl    $11,%r13d
-        addl    %r14d,%eax
-        movl    %r15d,%r14d
-        rorl    $2,%r15d
-
-        xorl    %r12d,%r13d
-        shrl    $3,%r12d
-        rorl    $7,%r13d
-        xorl    %r14d,%r15d
-        shrl    $10,%r14d
-
-        rorl    $17,%r15d
-        xorl    %r13d,%r12d
-        xorl    %r14d,%r15d
-        addl    4(%rsp),%r12d
-
-        addl    32(%rsp),%r12d
-        movl    %r8d,%r13d
-        addl    %r15d,%r12d
-        movl    %eax,%r14d
-        rorl    $14,%r13d
-        movl    %r9d,%r15d
-
-        xorl    %r8d,%r13d
-        rorl    $9,%r14d
-        xorl    %r10d,%r15d
-
-        movl    %r12d,32(%rsp)
-        xorl    %eax,%r14d
-        andl    %r8d,%r15d
-
-        rorl    $5,%r13d
-        addl    %r11d,%r12d
-        xorl    %r10d,%r15d
-
-        rorl    $11,%r14d
-        xorl    %r8d,%r13d
-        addl    %r15d,%r12d
-
-        movl    %eax,%r15d
-        addl    (%rbp),%r12d
-        xorl    %eax,%r14d
-
-        xorl    %ebx,%r15d
-        rorl    $6,%r13d
-        movl    %ebx,%r11d
-
-        andl    %r15d,%edi
-        rorl    $2,%r14d
-        addl    %r13d,%r12d
-
-        xorl    %edi,%r11d
-        addl    %r12d,%edx
-        addl    %r12d,%r11d
-
-        leaq    4(%rbp),%rbp
-        movl    40(%rsp),%r13d
-        movl    28(%rsp),%edi
-
-        movl    %r13d,%r12d
-        rorl    $11,%r13d
-        addl    %r14d,%r11d
-        movl    %edi,%r14d
-        rorl    $2,%edi
-
-        xorl    %r12d,%r13d
-        shrl    $3,%r12d
-        rorl    $7,%r13d
-        xorl    %r14d,%edi
-        shrl    $10,%r14d
-
-        rorl    $17,%edi
-        xorl    %r13d,%r12d
-        xorl    %r14d,%edi
-        addl    8(%rsp),%r12d
-
-        addl    36(%rsp),%r12d
-        movl    %edx,%r13d
-        addl    %edi,%r12d
-        movl    %r11d,%r14d
-        rorl    $14,%r13d
-        movl    %r8d,%edi
-
-        xorl    %edx,%r13d
-        rorl    $9,%r14d
-        xorl    %r9d,%edi
-
-        movl    %r12d,36(%rsp)
-        xorl    %r11d,%r14d
-        andl    %edx,%edi
-
-        rorl    $5,%r13d
-        addl    %r10d,%r12d
-        xorl    %r9d,%edi
-
-        rorl    $11,%r14d
-        xorl    %edx,%r13d
-        addl    %edi,%r12d
-
-        movl    %r11d,%edi
-        addl    (%rbp),%r12d
-        xorl    %r11d,%r14d
-
-        xorl    %eax,%edi
-        rorl    $6,%r13d
-        movl    %eax,%r10d
-
-        andl    %edi,%r15d
-        rorl    $2,%r14d
-        addl    %r13d,%r12d
-
-        xorl    %r15d,%r10d
-        addl    %r12d,%ecx
-        addl    %r12d,%r10d
-
-        leaq    4(%rbp),%rbp
-        movl    44(%rsp),%r13d
-        movl    32(%rsp),%r15d
-
-        movl    %r13d,%r12d
-        rorl    $11,%r13d
-        addl    %r14d,%r10d
-        movl    %r15d,%r14d
-        rorl    $2,%r15d
-
-        xorl    %r12d,%r13d
-        shrl    $3,%r12d
-        rorl    $7,%r13d
-        xorl    %r14d,%r15d
-        shrl    $10,%r14d
-
-        rorl    $17,%r15d
-        xorl    %r13d,%r12d
-        xorl    %r14d,%r15d
-        addl    12(%rsp),%r12d
-
-        addl    40(%rsp),%r12d
-        movl    %ecx,%r13d
-        addl    %r15d,%r12d
-        movl    %r10d,%r14d
-        rorl    $14,%r13d
-        movl    %edx,%r15d
-
-        xorl    %ecx,%r13d
-        rorl    $9,%r14d
-        xorl    %r8d,%r15d
-
-        movl    %r12d,40(%rsp)
-        xorl    %r10d,%r14d
-        andl    %ecx,%r15d
-
-        rorl    $5,%r13d
-        addl    %r9d,%r12d
-        xorl    %r8d,%r15d
-
-        rorl    $11,%r14d
-        xorl    %ecx,%r13d
-        addl    %r15d,%r12d
-
-        movl    %r10d,%r15d
-        addl    (%rbp),%r12d
-        xorl    %r10d,%r14d
-
-        xorl    %r11d,%r15d
-        rorl    $6,%r13d
-        movl    %r11d,%r9d
-
-        andl    %r15d,%edi
-        rorl    $2,%r14d
-        addl    %r13d,%r12d
-
-        xorl    %edi,%r9d
-        addl    %r12d,%ebx
-        addl    %r12d,%r9d
-
-        leaq    4(%rbp),%rbp
-        movl    48(%rsp),%r13d
-        movl    36(%rsp),%edi
-
-        movl    %r13d,%r12d
-        rorl    $11,%r13d
-        addl    %r14d,%r9d
-        movl    %edi,%r14d
-        rorl    $2,%edi
-
-        xorl    %r12d,%r13d
-        shrl    $3,%r12d
-        rorl    $7,%r13d
-        xorl    %r14d,%edi
-        shrl    $10,%r14d
-
-        rorl    $17,%edi
-        xorl    %r13d,%r12d
-        xorl    %r14d,%edi
-        addl    16(%rsp),%r12d
-
-        addl    44(%rsp),%r12d
-        movl    %ebx,%r13d
-        addl    %edi,%r12d
-        movl    %r9d,%r14d
-        rorl    $14,%r13d
-        movl    %ecx,%edi
-
-        xorl    %ebx,%r13d
-        rorl    $9,%r14d
-        xorl    %edx,%edi
-
-        movl    %r12d,44(%rsp)
-        xorl    %r9d,%r14d
-        andl    %ebx,%edi
-
-        rorl    $5,%r13d
-        addl    %r8d,%r12d
-        xorl    %edx,%edi
-
-        rorl    $11,%r14d
-        xorl    %ebx,%r13d
-        addl    %edi,%r12d
-
-        movl    %r9d,%edi
-        addl    (%rbp),%r12d
-        xorl    %r9d,%r14d
-
-        xorl    %r10d,%edi
-        rorl    $6,%r13d
-        movl    %r10d,%r8d
-
-        andl    %edi,%r15d
-        rorl    $2,%r14d
-        addl    %r13d,%r12d
-
-        xorl    %r15d,%r8d
-        addl    %r12d,%eax
-        addl    %r12d,%r8d
-
-        leaq    20(%rbp),%rbp
-        movl    52(%rsp),%r13d
-        movl    40(%rsp),%r15d
-
-        movl    %r13d,%r12d
-        rorl    $11,%r13d
-        addl    %r14d,%r8d
-        movl    %r15d,%r14d
-        rorl    $2,%r15d
-
-        xorl    %r12d,%r13d
-        shrl    $3,%r12d
-        rorl    $7,%r13d
-        xorl    %r14d,%r15d
-        shrl    $10,%r14d
-
-        rorl    $17,%r15d
-        xorl    %r13d,%r12d
-        xorl    %r14d,%r15d
-        addl    20(%rsp),%r12d
-
-        addl    48(%rsp),%r12d
-        movl    %eax,%r13d
-        addl    %r15d,%r12d
-        movl    %r8d,%r14d
-        rorl    $14,%r13d
-        movl    %ebx,%r15d
-
-        xorl    %eax,%r13d
-        rorl    $9,%r14d
-        xorl    %ecx,%r15d
-
-        movl    %r12d,48(%rsp)
-        xorl    %r8d,%r14d
-        andl    %eax,%r15d
-
-        rorl    $5,%r13d
-        addl    %edx,%r12d
-        xorl    %ecx,%r15d
-
-        rorl    $11,%r14d
-        xorl    %eax,%r13d
-        addl    %r15d,%r12d
-
-        movl    %r8d,%r15d
-        addl    (%rbp),%r12d
-        xorl    %r8d,%r14d
-
-        xorl    %r9d,%r15d
-        rorl    $6,%r13d
-        movl    %r9d,%edx
-
-        andl    %r15d,%edi
-        rorl    $2,%r14d
-        addl    %r13d,%r12d
-
-        xorl    %edi,%edx
-        addl    %r12d,%r11d
-        addl    %r12d,%edx
-
-        leaq    4(%rbp),%rbp
-        movl    56(%rsp),%r13d
-        movl    44(%rsp),%edi
-
-        movl    %r13d,%r12d
-        rorl    $11,%r13d
-        addl    %r14d,%edx
-        movl    %edi,%r14d
-        rorl    $2,%edi
-
-        xorl    %r12d,%r13d
-        shrl    $3,%r12d
-        rorl    $7,%r13d
-        xorl    %r14d,%edi
-        shrl    $10,%r14d
-
-        rorl    $17,%edi
-        xorl    %r13d,%r12d
-        xorl    %r14d,%edi
-        addl    24(%rsp),%r12d
-
-        addl    52(%rsp),%r12d
-        movl    %r11d,%r13d
-        addl    %edi,%r12d
-        movl    %edx,%r14d
-        rorl    $14,%r13d
-        movl    %eax,%edi
-
-        xorl    %r11d,%r13d
-        rorl    $9,%r14d
-        xorl    %ebx,%edi
-
-        movl    %r12d,52(%rsp)
-        xorl    %edx,%r14d
-        andl    %r11d,%edi
-
-        rorl    $5,%r13d
-        addl    %ecx,%r12d
-        xorl    %ebx,%edi
-
-        rorl    $11,%r14d
-        xorl    %r11d,%r13d
-        addl    %edi,%r12d
-
-        movl    %edx,%edi
-        addl    (%rbp),%r12d
-        xorl    %edx,%r14d
-
-        xorl    %r8d,%edi
-        rorl    $6,%r13d
-        movl    %r8d,%ecx
-
-        andl    %edi,%r15d
-        rorl    $2,%r14d
-        addl    %r13d,%r12d
-
-        xorl    %r15d,%ecx
-        addl    %r12d,%r10d
-        addl    %r12d,%ecx
-
-        leaq    4(%rbp),%rbp
-        movl    60(%rsp),%r13d
-        movl    48(%rsp),%r15d
-
-        movl    %r13d,%r12d
-        rorl    $11,%r13d
-        addl    %r14d,%ecx
-        movl    %r15d,%r14d
-        rorl    $2,%r15d
-
-        xorl    %r12d,%r13d
-        shrl    $3,%r12d
-        rorl    $7,%r13d
-        xorl    %r14d,%r15d
-        shrl    $10,%r14d
-
-        rorl    $17,%r15d
-        xorl    %r13d,%r12d
-        xorl    %r14d,%r15d
-        addl    28(%rsp),%r12d
-
-        addl    56(%rsp),%r12d
-        movl    %r10d,%r13d
-        addl    %r15d,%r12d
-        movl    %ecx,%r14d
-        rorl    $14,%r13d
-        movl    %r11d,%r15d
-
-        xorl    %r10d,%r13d
-        rorl    $9,%r14d
-        xorl    %eax,%r15d
-
-        movl    %r12d,56(%rsp)
-        xorl    %ecx,%r14d
-        andl    %r10d,%r15d
-
-        rorl    $5,%r13d
-        addl    %ebx,%r12d
-        xorl    %eax,%r15d
-
-        rorl    $11,%r14d
-        xorl    %r10d,%r13d
-        addl    %r15d,%r12d
-
-        movl    %ecx,%r15d
-        addl    (%rbp),%r12d
-        xorl    %ecx,%r14d
-
-        xorl    %edx,%r15d
-        rorl    $6,%r13d
-        movl    %edx,%ebx
-
-        andl    %r15d,%edi
-        rorl    $2,%r14d
-        addl    %r13d,%r12d
-
-        xorl    %edi,%ebx
-        addl    %r12d,%r9d
-        addl    %r12d,%ebx
-
-        leaq    4(%rbp),%rbp
-        movl    0(%rsp),%r13d
-        movl    52(%rsp),%edi
-
-        movl    %r13d,%r12d
-        rorl    $11,%r13d
-        addl    %r14d,%ebx
-        movl    %edi,%r14d
-        rorl    $2,%edi
-
-        xorl    %r12d,%r13d
-        shrl    $3,%r12d
-        rorl    $7,%r13d
-        xorl    %r14d,%edi
-        shrl    $10,%r14d
-
-        rorl    $17,%edi
-        xorl    %r13d,%r12d
-        xorl    %r14d,%edi
-        addl    32(%rsp),%r12d
-
-        addl    60(%rsp),%r12d
-        movl    %r9d,%r13d
-        addl    %edi,%r12d
-        movl    %ebx,%r14d
-        rorl    $14,%r13d
-        movl    %r10d,%edi
-
-        xorl    %r9d,%r13d
-        rorl    $9,%r14d
-        xorl    %r11d,%edi
-
-        movl    %r12d,60(%rsp)
-        xorl    %ebx,%r14d
-        andl    %r9d,%edi
-
-        rorl    $5,%r13d
-        addl    %eax,%r12d
-        xorl    %r11d,%edi
-
-        rorl    $11,%r14d
-        xorl    %r9d,%r13d
-        addl    %edi,%r12d
-
-        movl    %ebx,%edi
-        addl    (%rbp),%r12d
-        xorl    %ebx,%r14d
-
-        xorl    %ecx,%edi
-        rorl    $6,%r13d
-        movl    %ecx,%eax
-
-        andl    %edi,%r15d
-        rorl    $2,%r14d
-        addl    %r13d,%r12d
-
-        xorl    %r15d,%eax
-        addl    %r12d,%r8d
-        addl    %r12d,%eax
-
-        leaq    20(%rbp),%rbp
-        cmpb    $0,3(%rbp)
-        jnz     .Lrounds_16_xx
-
-        movq    64+0(%rsp),%rdi
-        addl    %r14d,%eax
-        leaq    64(%rsi),%rsi
-
-        addl    0(%rdi),%eax
-        addl    4(%rdi),%ebx
-        addl    8(%rdi),%ecx
-        addl    12(%rdi),%edx
-        addl    16(%rdi),%r8d
-        addl    20(%rdi),%r9d
-        addl    24(%rdi),%r10d
-        addl    28(%rdi),%r11d
-
-        cmpq    64+16(%rsp),%rsi
-
-        movl    %eax,0(%rdi)
-        movl    %ebx,4(%rdi)
-        movl    %ecx,8(%rdi)
-        movl    %edx,12(%rdi)
-        movl    %r8d,16(%rdi)
-        movl    %r9d,20(%rdi)
-        movl    %r10d,24(%rdi)
-        movl    %r11d,28(%rdi)
-        jb      .Lloop
-
-        movq    88(%rsp),%rsi
-.cfi_def_cfa    %rsi,8
-        movq    -48(%rsi),%r15
-.cfi_restore    %r15
-        movq    -40(%rsi),%r14
-.cfi_restore    %r14
-        movq    -32(%rsi),%r13
-.cfi_restore    %r13
-        movq    -24(%rsi),%r12
-.cfi_restore    %r12
-        movq    -16(%rsi),%rbp
-.cfi_restore    %rbp
-        movq    -8(%rsi),%rbx
-.cfi_restore    %rbx
-        leaq    (%rsi),%rsp
-.cfi_def_cfa_register   %rsp
-.Lepilogue:
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   sha256_block_data_order,.-sha256_block_data_order
-.align  64
-.type   K256, at object
-K256:
-.long   0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
-.long   0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
-.long   0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
-.long   0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
-.long   0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
-.long   0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
-.long   0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
-.long   0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
-.long   0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
-.long   0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
-.long   0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
-.long   0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
-.long   0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
-.long   0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
-.long   0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
-.long   0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
-.long   0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
-.long   0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
-.long   0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
-.long   0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
-.long   0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
-.long   0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
-.long   0xd192e819,0xd6990624,0xf40e3585,0x106aa070
-.long   0xd192e819,0xd6990624,0xf40e3585,0x106aa070
-.long   0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
-.long   0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
-.long   0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
-.long   0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
-.long   0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
-.long   0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
-.long   0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
-.long   0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
-
-.long   0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
-.long   0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
-.long   0x03020100,0x0b0a0908,0xffffffff,0xffffffff
-.long   0x03020100,0x0b0a0908,0xffffffff,0xffffffff
-.long   0xffffffff,0xffffffff,0x03020100,0x0b0a0908
-.long   0xffffffff,0xffffffff,0x03020100,0x0b0a0908
-.byte   83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
-.type   sha256_block_data_order_shaext, at function
-.align  64
-sha256_block_data_order_shaext:
-_shaext_shortcut:
-.cfi_startproc
-        leaq    K256+128(%rip),%rcx
-        movdqu  (%rdi),%xmm1
-        movdqu  16(%rdi),%xmm2
-        movdqa  512-128(%rcx),%xmm7
-
-        pshufd  $0x1b,%xmm1,%xmm0
-        pshufd  $0xb1,%xmm1,%xmm1
-        pshufd  $0x1b,%xmm2,%xmm2
-        movdqa  %xmm7,%xmm8
-.byte   102,15,58,15,202,8
-        punpcklqdq      %xmm0,%xmm2
-        jmp     .Loop_shaext
-
-.align  16
-.Loop_shaext:
-        movdqu  (%rsi),%xmm3
-        movdqu  16(%rsi),%xmm4
-        movdqu  32(%rsi),%xmm5
-.byte   102,15,56,0,223
-        movdqu  48(%rsi),%xmm6
-
-        movdqa  0-128(%rcx),%xmm0
-        paddd   %xmm3,%xmm0
-.byte   102,15,56,0,231
-        movdqa  %xmm2,%xmm10
-.byte   15,56,203,209
-        pshufd  $0x0e,%xmm0,%xmm0
-        nop
-        movdqa  %xmm1,%xmm9
-.byte   15,56,203,202
-
-        movdqa  32-128(%rcx),%xmm0
-        paddd   %xmm4,%xmm0
-.byte   102,15,56,0,239
-.byte   15,56,203,209
-        pshufd  $0x0e,%xmm0,%xmm0
-        leaq    64(%rsi),%rsi
-.byte   15,56,204,220
-.byte   15,56,203,202
-
-        movdqa  64-128(%rcx),%xmm0
-        paddd   %xmm5,%xmm0
-.byte   102,15,56,0,247
-.byte   15,56,203,209
-        pshufd  $0x0e,%xmm0,%xmm0
-        movdqa  %xmm6,%xmm7
-.byte   102,15,58,15,253,4
-        nop
-        paddd   %xmm7,%xmm3
-.byte   15,56,204,229
-.byte   15,56,203,202
-
-        movdqa  96-128(%rcx),%xmm0
-        paddd   %xmm6,%xmm0
-.byte   15,56,205,222
-.byte   15,56,203,209
-        pshufd  $0x0e,%xmm0,%xmm0
-        movdqa  %xmm3,%xmm7
-.byte   102,15,58,15,254,4
-        nop
-        paddd   %xmm7,%xmm4
-.byte   15,56,204,238
-.byte   15,56,203,202
-        movdqa  128-128(%rcx),%xmm0
-        paddd   %xmm3,%xmm0
-.byte   15,56,205,227
-.byte   15,56,203,209
-        pshufd  $0x0e,%xmm0,%xmm0
-        movdqa  %xmm4,%xmm7
-.byte   102,15,58,15,251,4
-        nop
-        paddd   %xmm7,%xmm5
-.byte   15,56,204,243
-.byte   15,56,203,202
-        movdqa  160-128(%rcx),%xmm0
-        paddd   %xmm4,%xmm0
-.byte   15,56,205,236
-.byte   15,56,203,209
-        pshufd  $0x0e,%xmm0,%xmm0
-        movdqa  %xmm5,%xmm7
-.byte   102,15,58,15,252,4
-        nop
-        paddd   %xmm7,%xmm6
-.byte   15,56,204,220
-.byte   15,56,203,202
-        movdqa  192-128(%rcx),%xmm0
-        paddd   %xmm5,%xmm0
-.byte   15,56,205,245
-.byte   15,56,203,209
-        pshufd  $0x0e,%xmm0,%xmm0
-        movdqa  %xmm6,%xmm7
-.byte   102,15,58,15,253,4
-        nop
-        paddd   %xmm7,%xmm3
-.byte   15,56,204,229
-.byte   15,56,203,202
-        movdqa  224-128(%rcx),%xmm0
-        paddd   %xmm6,%xmm0
-.byte   15,56,205,222
-.byte   15,56,203,209
-        pshufd  $0x0e,%xmm0,%xmm0
-        movdqa  %xmm3,%xmm7
-.byte   102,15,58,15,254,4
-        nop
-        paddd   %xmm7,%xmm4
-.byte   15,56,204,238
-.byte   15,56,203,202
-        movdqa  256-128(%rcx),%xmm0
-        paddd   %xmm3,%xmm0
-.byte   15,56,205,227
-.byte   15,56,203,209
-        pshufd  $0x0e,%xmm0,%xmm0
-        movdqa  %xmm4,%xmm7
-.byte   102,15,58,15,251,4
-        nop
-        paddd   %xmm7,%xmm5
-.byte   15,56,204,243
-.byte   15,56,203,202
-        movdqa  288-128(%rcx),%xmm0
-        paddd   %xmm4,%xmm0
-.byte   15,56,205,236
-.byte   15,56,203,209
-        pshufd  $0x0e,%xmm0,%xmm0
-        movdqa  %xmm5,%xmm7
-.byte   102,15,58,15,252,4
-        nop
-        paddd   %xmm7,%xmm6
-.byte   15,56,204,220
-.byte   15,56,203,202
-        movdqa  320-128(%rcx),%xmm0
-        paddd   %xmm5,%xmm0
-.byte   15,56,205,245
-.byte   15,56,203,209
-        pshufd  $0x0e,%xmm0,%xmm0
-        movdqa  %xmm6,%xmm7
-.byte   102,15,58,15,253,4
-        nop
-        paddd   %xmm7,%xmm3
-.byte   15,56,204,229
-.byte   15,56,203,202
-        movdqa  352-128(%rcx),%xmm0
-        paddd   %xmm6,%xmm0
-.byte   15,56,205,222
-.byte   15,56,203,209
-        pshufd  $0x0e,%xmm0,%xmm0
-        movdqa  %xmm3,%xmm7
-.byte   102,15,58,15,254,4
-        nop
-        paddd   %xmm7,%xmm4
-.byte   15,56,204,238
-.byte   15,56,203,202
-        movdqa  384-128(%rcx),%xmm0
-        paddd   %xmm3,%xmm0
-.byte   15,56,205,227
-.byte   15,56,203,209
-        pshufd  $0x0e,%xmm0,%xmm0
-        movdqa  %xmm4,%xmm7
-.byte   102,15,58,15,251,4
-        nop
-        paddd   %xmm7,%xmm5
-.byte   15,56,204,243
-.byte   15,56,203,202
-        movdqa  416-128(%rcx),%xmm0
-        paddd   %xmm4,%xmm0
-.byte   15,56,205,236
-.byte   15,56,203,209
-        pshufd  $0x0e,%xmm0,%xmm0
-        movdqa  %xmm5,%xmm7
-.byte   102,15,58,15,252,4
-.byte   15,56,203,202
-        paddd   %xmm7,%xmm6
-
-        movdqa  448-128(%rcx),%xmm0
-        paddd   %xmm5,%xmm0
-.byte   15,56,203,209
-        pshufd  $0x0e,%xmm0,%xmm0
-.byte   15,56,205,245
-        movdqa  %xmm8,%xmm7
-.byte   15,56,203,202
-
-        movdqa  480-128(%rcx),%xmm0
-        paddd   %xmm6,%xmm0
-        nop
-.byte   15,56,203,209
-        pshufd  $0x0e,%xmm0,%xmm0
-        decq    %rdx
-        nop
-.byte   15,56,203,202
-
-        paddd   %xmm10,%xmm2
-        paddd   %xmm9,%xmm1
-        jnz     .Loop_shaext
-
-        pshufd  $0xb1,%xmm2,%xmm2
-        pshufd  $0x1b,%xmm1,%xmm7
-        pshufd  $0xb1,%xmm1,%xmm1
-        punpckhqdq      %xmm2,%xmm1
-.byte   102,15,58,15,215,8
-
-        movdqu  %xmm1,(%rdi)
-        movdqu  %xmm2,16(%rdi)
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   sha256_block_data_order_shaext,.-sha256_block_data_order_shaext
-.type   sha256_block_data_order_ssse3, at function
-.align  64
-sha256_block_data_order_ssse3:
-.cfi_startproc
-.Lssse3_shortcut:
-        movq    %rsp,%rax
-.cfi_def_cfa_register   %rax
-        pushq   %rbx
-.cfi_offset     %rbx,-16
-        pushq   %rbp
-.cfi_offset     %rbp,-24
-        pushq   %r12
-.cfi_offset     %r12,-32
-        pushq   %r13
-.cfi_offset     %r13,-40
-        pushq   %r14
-.cfi_offset     %r14,-48
-        pushq   %r15
-.cfi_offset     %r15,-56
-        shlq    $4,%rdx
-        subq    $96,%rsp
-        leaq    (%rsi,%rdx,4),%rdx
-        andq    $-64,%rsp
-        movq    %rdi,64+0(%rsp)
-        movq    %rsi,64+8(%rsp)
-        movq    %rdx,64+16(%rsp)
-        movq    %rax,88(%rsp)
-.cfi_escape     0x0f,0x06,0x77,0xd8,0x00,0x06,0x23,0x08
-.Lprologue_ssse3:
-
-        movl    0(%rdi),%eax
-        movl    4(%rdi),%ebx
-        movl    8(%rdi),%ecx
-        movl    12(%rdi),%edx
-        movl    16(%rdi),%r8d
-        movl    20(%rdi),%r9d
-        movl    24(%rdi),%r10d
-        movl    28(%rdi),%r11d
-
-
-        jmp     .Lloop_ssse3
-.align  16
-.Lloop_ssse3:
-        movdqa  K256+512(%rip),%xmm7
-        movdqu  0(%rsi),%xmm0
-        movdqu  16(%rsi),%xmm1
-        movdqu  32(%rsi),%xmm2
-.byte   102,15,56,0,199
-        movdqu  48(%rsi),%xmm3
-        leaq    K256(%rip),%rbp
-.byte   102,15,56,0,207
-        movdqa  0(%rbp),%xmm4
-        movdqa  32(%rbp),%xmm5
-.byte   102,15,56,0,215
-        paddd   %xmm0,%xmm4
-        movdqa  64(%rbp),%xmm6
-.byte   102,15,56,0,223
-        movdqa  96(%rbp),%xmm7
-        paddd   %xmm1,%xmm5
-        paddd   %xmm2,%xmm6
-        paddd   %xmm3,%xmm7
-        movdqa  %xmm4,0(%rsp)
-        movl    %eax,%r14d
-        movdqa  %xmm5,16(%rsp)
-        movl    %ebx,%edi
-        movdqa  %xmm6,32(%rsp)
-        xorl    %ecx,%edi
-        movdqa  %xmm7,48(%rsp)
-        movl    %r8d,%r13d
-        jmp     .Lssse3_00_47
-
-.align  16
-.Lssse3_00_47:
-        subq    $-128,%rbp
-        rorl    $14,%r13d
-        movdqa  %xmm1,%xmm4
-        movl    %r14d,%eax
-        movl    %r9d,%r12d
-        movdqa  %xmm3,%xmm7
-        rorl    $9,%r14d
-        xorl    %r8d,%r13d
-        xorl    %r10d,%r12d
-        rorl    $5,%r13d
-        xorl    %eax,%r14d
-.byte   102,15,58,15,224,4
-        andl    %r8d,%r12d
-        xorl    %r8d,%r13d
-.byte   102,15,58,15,250,4
-        addl    0(%rsp),%r11d
-        movl    %eax,%r15d
-        xorl    %r10d,%r12d
-        rorl    $11,%r14d
-        movdqa  %xmm4,%xmm5
-        xorl    %ebx,%r15d
-        addl    %r12d,%r11d
-        movdqa  %xmm4,%xmm6
-        rorl    $6,%r13d
-        andl    %r15d,%edi
-        psrld   $3,%xmm4
-        xorl    %eax,%r14d
-        addl    %r13d,%r11d
-        xorl    %ebx,%edi
-        paddd   %xmm7,%xmm0
-        rorl    $2,%r14d
-        addl    %r11d,%edx
-        psrld   $7,%xmm6
-        addl    %edi,%r11d
-        movl    %edx,%r13d
-        pshufd  $250,%xmm3,%xmm7
-        addl    %r11d,%r14d
-        rorl    $14,%r13d
-        pslld   $14,%xmm5
-        movl    %r14d,%r11d
-        movl    %r8d,%r12d
-        pxor    %xmm6,%xmm4
-        rorl    $9,%r14d
-        xorl    %edx,%r13d
-        xorl    %r9d,%r12d
-        rorl    $5,%r13d
-        psrld   $11,%xmm6
-        xorl    %r11d,%r14d
-        pxor    %xmm5,%xmm4
-        andl    %edx,%r12d
-        xorl    %edx,%r13d
-        pslld   $11,%xmm5
-        addl    4(%rsp),%r10d
-        movl    %r11d,%edi
-        pxor    %xmm6,%xmm4
-        xorl    %r9d,%r12d
-        rorl    $11,%r14d
-        movdqa  %xmm7,%xmm6
-        xorl    %eax,%edi
-        addl    %r12d,%r10d
-        pxor    %xmm5,%xmm4
-        rorl    $6,%r13d
-        andl    %edi,%r15d
-        xorl    %r11d,%r14d
-        psrld   $10,%xmm7
-        addl    %r13d,%r10d
-        xorl    %eax,%r15d
-        paddd   %xmm4,%xmm0
-        rorl    $2,%r14d
-        addl    %r10d,%ecx
-        psrlq   $17,%xmm6
-        addl    %r15d,%r10d
-        movl    %ecx,%r13d
-        addl    %r10d,%r14d
-        pxor    %xmm6,%xmm7
-        rorl    $14,%r13d
-        movl    %r14d,%r10d
-        movl    %edx,%r12d
-        rorl    $9,%r14d
-        psrlq   $2,%xmm6
-        xorl    %ecx,%r13d
-        xorl    %r8d,%r12d
-        pxor    %xmm6,%xmm7
-        rorl    $5,%r13d
-        xorl    %r10d,%r14d
-        andl    %ecx,%r12d
-        pshufd  $128,%xmm7,%xmm7
-        xorl    %ecx,%r13d
-        addl    8(%rsp),%r9d
-        movl    %r10d,%r15d
-        psrldq  $8,%xmm7
-        xorl    %r8d,%r12d
-        rorl    $11,%r14d
-        xorl    %r11d,%r15d
-        addl    %r12d,%r9d
-        rorl    $6,%r13d
-        paddd   %xmm7,%xmm0
-        andl    %r15d,%edi
-        xorl    %r10d,%r14d
-        addl    %r13d,%r9d
-        pshufd  $80,%xmm0,%xmm7
-        xorl    %r11d,%edi
-        rorl    $2,%r14d
-        addl    %r9d,%ebx
-        movdqa  %xmm7,%xmm6
-        addl    %edi,%r9d
-        movl    %ebx,%r13d
-        psrld   $10,%xmm7
-        addl    %r9d,%r14d
-        rorl    $14,%r13d
-        psrlq   $17,%xmm6
-        movl    %r14d,%r9d
-        movl    %ecx,%r12d
-        pxor    %xmm6,%xmm7
-        rorl    $9,%r14d
-        xorl    %ebx,%r13d
-        xorl    %edx,%r12d
-        rorl    $5,%r13d
-        xorl    %r9d,%r14d
-        psrlq   $2,%xmm6
-        andl    %ebx,%r12d
-        xorl    %ebx,%r13d
-        addl    12(%rsp),%r8d
-        pxor    %xmm6,%xmm7
-        movl    %r9d,%edi
-        xorl    %edx,%r12d
-        rorl    $11,%r14d
-        pshufd  $8,%xmm7,%xmm7
-        xorl    %r10d,%edi
-        addl    %r12d,%r8d
-        movdqa  0(%rbp),%xmm6
-        rorl    $6,%r13d
-        andl    %edi,%r15d
-        pslldq  $8,%xmm7
-        xorl    %r9d,%r14d
-        addl    %r13d,%r8d
-        xorl    %r10d,%r15d
-        paddd   %xmm7,%xmm0
-        rorl    $2,%r14d
-        addl    %r8d,%eax
-        addl    %r15d,%r8d
-        paddd   %xmm0,%xmm6
-        movl    %eax,%r13d
-        addl    %r8d,%r14d
-        movdqa  %xmm6,0(%rsp)
-        rorl    $14,%r13d
-        movdqa  %xmm2,%xmm4
-        movl    %r14d,%r8d
-        movl    %ebx,%r12d
-        movdqa  %xmm0,%xmm7
-        rorl    $9,%r14d
-        xorl    %eax,%r13d
-        xorl    %ecx,%r12d
-        rorl    $5,%r13d
-        xorl    %r8d,%r14d
-.byte   102,15,58,15,225,4
-        andl    %eax,%r12d
-        xorl    %eax,%r13d
-.byte   102,15,58,15,251,4
-        addl    16(%rsp),%edx
-        movl    %r8d,%r15d
-        xorl    %ecx,%r12d
-        rorl    $11,%r14d
-        movdqa  %xmm4,%xmm5
-        xorl    %r9d,%r15d
-        addl    %r12d,%edx
-        movdqa  %xmm4,%xmm6
-        rorl    $6,%r13d
-        andl    %r15d,%edi
-        psrld   $3,%xmm4
-        xorl    %r8d,%r14d
-        addl    %r13d,%edx
-        xorl    %r9d,%edi
-        paddd   %xmm7,%xmm1
-        rorl    $2,%r14d
-        addl    %edx,%r11d
-        psrld   $7,%xmm6
-        addl    %edi,%edx
-        movl    %r11d,%r13d
-        pshufd  $250,%xmm0,%xmm7
-        addl    %edx,%r14d
-        rorl    $14,%r13d
-        pslld   $14,%xmm5
-        movl    %r14d,%edx
-        movl    %eax,%r12d
-        pxor    %xmm6,%xmm4
-        rorl    $9,%r14d
-        xorl    %r11d,%r13d
-        xorl    %ebx,%r12d
-        rorl    $5,%r13d
-        psrld   $11,%xmm6
-        xorl    %edx,%r14d
-        pxor    %xmm5,%xmm4
-        andl    %r11d,%r12d
-        xorl    %r11d,%r13d
-        pslld   $11,%xmm5
-        addl    20(%rsp),%ecx
-        movl    %edx,%edi
-        pxor    %xmm6,%xmm4
-        xorl    %ebx,%r12d
-        rorl    $11,%r14d
-        movdqa  %xmm7,%xmm6
-        xorl    %r8d,%edi
-        addl    %r12d,%ecx
-        pxor    %xmm5,%xmm4
-        rorl    $6,%r13d
-        andl    %edi,%r15d
-        xorl    %edx,%r14d
-        psrld   $10,%xmm7
-        addl    %r13d,%ecx
-        xorl    %r8d,%r15d
-        paddd   %xmm4,%xmm1
-        rorl    $2,%r14d
-        addl    %ecx,%r10d
-        psrlq   $17,%xmm6
-        addl    %r15d,%ecx
-        movl    %r10d,%r13d
-        addl    %ecx,%r14d
-        pxor    %xmm6,%xmm7
-        rorl    $14,%r13d
-        movl    %r14d,%ecx
-        movl    %r11d,%r12d
-        rorl    $9,%r14d
-        psrlq   $2,%xmm6
-        xorl    %r10d,%r13d
-        xorl    %eax,%r12d
-        pxor    %xmm6,%xmm7
-        rorl    $5,%r13d
-        xorl    %ecx,%r14d
-        andl    %r10d,%r12d
-        pshufd  $128,%xmm7,%xmm7
-        xorl    %r10d,%r13d
-        addl    24(%rsp),%ebx
-        movl    %ecx,%r15d
-        psrldq  $8,%xmm7
-        xorl    %eax,%r12d
-        rorl    $11,%r14d
-        xorl    %edx,%r15d
-        addl    %r12d,%ebx
-        rorl    $6,%r13d
-        paddd   %xmm7,%xmm1
-        andl    %r15d,%edi
-        xorl    %ecx,%r14d
-        addl    %r13d,%ebx
-        pshufd  $80,%xmm1,%xmm7
-        xorl    %edx,%edi
-        rorl    $2,%r14d
-        addl    %ebx,%r9d
-        movdqa  %xmm7,%xmm6
-        addl    %edi,%ebx
-        movl    %r9d,%r13d
-        psrld   $10,%xmm7
-        addl    %ebx,%r14d
-        rorl    $14,%r13d
-        psrlq   $17,%xmm6
-        movl    %r14d,%ebx
-        movl    %r10d,%r12d
-        pxor    %xmm6,%xmm7
-        rorl    $9,%r14d
-        xorl    %r9d,%r13d
-        xorl    %r11d,%r12d
-        rorl    $5,%r13d
-        xorl    %ebx,%r14d
-        psrlq   $2,%xmm6
-        andl    %r9d,%r12d
-        xorl    %r9d,%r13d
-        addl    28(%rsp),%eax
-        pxor    %xmm6,%xmm7
-        movl    %ebx,%edi
-        xorl    %r11d,%r12d
-        rorl    $11,%r14d
-        pshufd  $8,%xmm7,%xmm7
-        xorl    %ecx,%edi
-        addl    %r12d,%eax
-        movdqa  32(%rbp),%xmm6
-        rorl    $6,%r13d
-        andl    %edi,%r15d
-        pslldq  $8,%xmm7
-        xorl    %ebx,%r14d
-        addl    %r13d,%eax
-        xorl    %ecx,%r15d
-        paddd   %xmm7,%xmm1
-        rorl    $2,%r14d
-        addl    %eax,%r8d
-        addl    %r15d,%eax
-        paddd   %xmm1,%xmm6
-        movl    %r8d,%r13d
-        addl    %eax,%r14d
-        movdqa  %xmm6,16(%rsp)
-        rorl    $14,%r13d
-        movdqa  %xmm3,%xmm4
-        movl    %r14d,%eax
-        movl    %r9d,%r12d
-        movdqa  %xmm1,%xmm7
-        rorl    $9,%r14d
-        xorl    %r8d,%r13d
-        xorl    %r10d,%r12d
-        rorl    $5,%r13d
-        xorl    %eax,%r14d
-.byte   102,15,58,15,226,4
-        andl    %r8d,%r12d
-        xorl    %r8d,%r13d
-.byte   102,15,58,15,248,4
-        addl    32(%rsp),%r11d
-        movl    %eax,%r15d
-        xorl    %r10d,%r12d
-        rorl    $11,%r14d
-        movdqa  %xmm4,%xmm5
-        xorl    %ebx,%r15d
-        addl    %r12d,%r11d
-        movdqa  %xmm4,%xmm6
-        rorl    $6,%r13d
-        andl    %r15d,%edi
-        psrld   $3,%xmm4
-        xorl    %eax,%r14d
-        addl    %r13d,%r11d
-        xorl    %ebx,%edi
-        paddd   %xmm7,%xmm2
-        rorl    $2,%r14d
-        addl    %r11d,%edx
-        psrld   $7,%xmm6
-        addl    %edi,%r11d
-        movl    %edx,%r13d
-        pshufd  $250,%xmm1,%xmm7
-        addl    %r11d,%r14d
-        rorl    $14,%r13d
-        pslld   $14,%xmm5
-        movl    %r14d,%r11d
-        movl    %r8d,%r12d
-        pxor    %xmm6,%xmm4
-        rorl    $9,%r14d
-        xorl    %edx,%r13d
-        xorl    %r9d,%r12d
-        rorl    $5,%r13d
-        psrld   $11,%xmm6
-        xorl    %r11d,%r14d
-        pxor    %xmm5,%xmm4
-        andl    %edx,%r12d
-        xorl    %edx,%r13d
-        pslld   $11,%xmm5
-        addl    36(%rsp),%r10d
-        movl    %r11d,%edi
-        pxor    %xmm6,%xmm4
-        xorl    %r9d,%r12d
-        rorl    $11,%r14d
-        movdqa  %xmm7,%xmm6
-        xorl    %eax,%edi
-        addl    %r12d,%r10d
-        pxor    %xmm5,%xmm4
-        rorl    $6,%r13d
-        andl    %edi,%r15d
-        xorl    %r11d,%r14d
-        psrld   $10,%xmm7
-        addl    %r13d,%r10d
-        xorl    %eax,%r15d
-        paddd   %xmm4,%xmm2
-        rorl    $2,%r14d
-        addl    %r10d,%ecx
-        psrlq   $17,%xmm6
-        addl    %r15d,%r10d
-        movl    %ecx,%r13d
-        addl    %r10d,%r14d
-        pxor    %xmm6,%xmm7
-        rorl    $14,%r13d
-        movl    %r14d,%r10d
-        movl    %edx,%r12d
-        rorl    $9,%r14d
-        psrlq   $2,%xmm6
-        xorl    %ecx,%r13d
-        xorl    %r8d,%r12d
-        pxor    %xmm6,%xmm7
-        rorl    $5,%r13d
-        xorl    %r10d,%r14d
-        andl    %ecx,%r12d
-        pshufd  $128,%xmm7,%xmm7
-        xorl    %ecx,%r13d
-        addl    40(%rsp),%r9d
-        movl    %r10d,%r15d
-        psrldq  $8,%xmm7
-        xorl    %r8d,%r12d
-        rorl    $11,%r14d
-        xorl    %r11d,%r15d
-        addl    %r12d,%r9d
-        rorl    $6,%r13d
-        paddd   %xmm7,%xmm2
-        andl    %r15d,%edi
-        xorl    %r10d,%r14d
-        addl    %r13d,%r9d
-        pshufd  $80,%xmm2,%xmm7
-        xorl    %r11d,%edi
-        rorl    $2,%r14d
-        addl    %r9d,%ebx
-        movdqa  %xmm7,%xmm6
-        addl    %edi,%r9d
-        movl    %ebx,%r13d
-        psrld   $10,%xmm7
-        addl    %r9d,%r14d
-        rorl    $14,%r13d
-        psrlq   $17,%xmm6
-        movl    %r14d,%r9d
-        movl    %ecx,%r12d
-        pxor    %xmm6,%xmm7
-        rorl    $9,%r14d
-        xorl    %ebx,%r13d
-        xorl    %edx,%r12d
-        rorl    $5,%r13d
-        xorl    %r9d,%r14d
-        psrlq   $2,%xmm6
-        andl    %ebx,%r12d
-        xorl    %ebx,%r13d
-        addl    44(%rsp),%r8d
-        pxor    %xmm6,%xmm7
-        movl    %r9d,%edi
-        xorl    %edx,%r12d
-        rorl    $11,%r14d
-        pshufd  $8,%xmm7,%xmm7
-        xorl    %r10d,%edi
-        addl    %r12d,%r8d
-        movdqa  64(%rbp),%xmm6
-        rorl    $6,%r13d
-        andl    %edi,%r15d
-        pslldq  $8,%xmm7
-        xorl    %r9d,%r14d
-        addl    %r13d,%r8d
-        xorl    %r10d,%r15d
-        paddd   %xmm7,%xmm2
-        rorl    $2,%r14d
-        addl    %r8d,%eax
-        addl    %r15d,%r8d
-        paddd   %xmm2,%xmm6
-        movl    %eax,%r13d
-        addl    %r8d,%r14d
-        movdqa  %xmm6,32(%rsp)
-        rorl    $14,%r13d
-        movdqa  %xmm0,%xmm4
-        movl    %r14d,%r8d
-        movl    %ebx,%r12d
-        movdqa  %xmm2,%xmm7
-        rorl    $9,%r14d
-        xorl    %eax,%r13d
-        xorl    %ecx,%r12d
-        rorl    $5,%r13d
-        xorl    %r8d,%r14d
-.byte   102,15,58,15,227,4
-        andl    %eax,%r12d
-        xorl    %eax,%r13d
-.byte   102,15,58,15,249,4
-        addl    48(%rsp),%edx
-        movl    %r8d,%r15d
-        xorl    %ecx,%r12d
-        rorl    $11,%r14d
-        movdqa  %xmm4,%xmm5
-        xorl    %r9d,%r15d
-        addl    %r12d,%edx
-        movdqa  %xmm4,%xmm6
-        rorl    $6,%r13d
-        andl    %r15d,%edi
-        psrld   $3,%xmm4
-        xorl    %r8d,%r14d
-        addl    %r13d,%edx
-        xorl    %r9d,%edi
-        paddd   %xmm7,%xmm3
-        rorl    $2,%r14d
-        addl    %edx,%r11d
-        psrld   $7,%xmm6
-        addl    %edi,%edx
-        movl    %r11d,%r13d
-        pshufd  $250,%xmm2,%xmm7
-        addl    %edx,%r14d
-        rorl    $14,%r13d
-        pslld   $14,%xmm5
-        movl    %r14d,%edx
-        movl    %eax,%r12d
-        pxor    %xmm6,%xmm4
-        rorl    $9,%r14d
-        xorl    %r11d,%r13d
-        xorl    %ebx,%r12d
-        rorl    $5,%r13d
-        psrld   $11,%xmm6
-        xorl    %edx,%r14d
-        pxor    %xmm5,%xmm4
-        andl    %r11d,%r12d
-        xorl    %r11d,%r13d
-        pslld   $11,%xmm5
-        addl    52(%rsp),%ecx
-        movl    %edx,%edi
-        pxor    %xmm6,%xmm4
-        xorl    %ebx,%r12d
-        rorl    $11,%r14d
-        movdqa  %xmm7,%xmm6
-        xorl    %r8d,%edi
-        addl    %r12d,%ecx
-        pxor    %xmm5,%xmm4
-        rorl    $6,%r13d
-        andl    %edi,%r15d
-        xorl    %edx,%r14d
-        psrld   $10,%xmm7
-        addl    %r13d,%ecx
-        xorl    %r8d,%r15d
-        paddd   %xmm4,%xmm3
-        rorl    $2,%r14d
-        addl    %ecx,%r10d
-        psrlq   $17,%xmm6
-        addl    %r15d,%ecx
-        movl    %r10d,%r13d
-        addl    %ecx,%r14d
-        pxor    %xmm6,%xmm7
-        rorl    $14,%r13d
-        movl    %r14d,%ecx
-        movl    %r11d,%r12d
-        rorl    $9,%r14d
-        psrlq   $2,%xmm6
-        xorl    %r10d,%r13d
-        xorl    %eax,%r12d
-        pxor    %xmm6,%xmm7
-        rorl    $5,%r13d
-        xorl    %ecx,%r14d
-        andl    %r10d,%r12d
-        pshufd  $128,%xmm7,%xmm7
-        xorl    %r10d,%r13d
-        addl    56(%rsp),%ebx
-        movl    %ecx,%r15d
-        psrldq  $8,%xmm7
-        xorl    %eax,%r12d
-        rorl    $11,%r14d
-        xorl    %edx,%r15d
-        addl    %r12d,%ebx
-        rorl    $6,%r13d
-        paddd   %xmm7,%xmm3
-        andl    %r15d,%edi
-        xorl    %ecx,%r14d
-        addl    %r13d,%ebx
-        pshufd  $80,%xmm3,%xmm7
-        xorl    %edx,%edi
-        rorl    $2,%r14d
-        addl    %ebx,%r9d
-        movdqa  %xmm7,%xmm6
-        addl    %edi,%ebx
-        movl    %r9d,%r13d
-        psrld   $10,%xmm7
-        addl    %ebx,%r14d
-        rorl    $14,%r13d
-        psrlq   $17,%xmm6
-        movl    %r14d,%ebx
-        movl    %r10d,%r12d
-        pxor    %xmm6,%xmm7
-        rorl    $9,%r14d
-        xorl    %r9d,%r13d
-        xorl    %r11d,%r12d
-        rorl    $5,%r13d
-        xorl    %ebx,%r14d
-        psrlq   $2,%xmm6
-        andl    %r9d,%r12d
-        xorl    %r9d,%r13d
-        addl    60(%rsp),%eax
-        pxor    %xmm6,%xmm7
-        movl    %ebx,%edi
-        xorl    %r11d,%r12d
-        rorl    $11,%r14d
-        pshufd  $8,%xmm7,%xmm7
-        xorl    %ecx,%edi
-        addl    %r12d,%eax
-        movdqa  96(%rbp),%xmm6
-        rorl    $6,%r13d
-        andl    %edi,%r15d
-        pslldq  $8,%xmm7
-        xorl    %ebx,%r14d
-        addl    %r13d,%eax
-        xorl    %ecx,%r15d
-        paddd   %xmm7,%xmm3
-        rorl    $2,%r14d
-        addl    %eax,%r8d
-        addl    %r15d,%eax
-        paddd   %xmm3,%xmm6
-        movl    %r8d,%r13d
-        addl    %eax,%r14d
-        movdqa  %xmm6,48(%rsp)
-        cmpb    $0,131(%rbp)
-        jne     .Lssse3_00_47
-        rorl    $14,%r13d
-        movl    %r14d,%eax
-        movl    %r9d,%r12d
-        rorl    $9,%r14d
-        xorl    %r8d,%r13d
-        xorl    %r10d,%r12d
-        rorl    $5,%r13d
-        xorl    %eax,%r14d
-        andl    %r8d,%r12d
-        xorl    %r8d,%r13d
-        addl    0(%rsp),%r11d
-        movl    %eax,%r15d
-        xorl    %r10d,%r12d
-        rorl    $11,%r14d
-        xorl    %ebx,%r15d
-        addl    %r12d,%r11d
-        rorl    $6,%r13d
-        andl    %r15d,%edi
-        xorl    %eax,%r14d
-        addl    %r13d,%r11d
-        xorl    %ebx,%edi
-        rorl    $2,%r14d
-        addl    %r11d,%edx
-        addl    %edi,%r11d
-        movl    %edx,%r13d
-        addl    %r11d,%r14d
-        rorl    $14,%r13d
-        movl    %r14d,%r11d
-        movl    %r8d,%r12d
-        rorl    $9,%r14d
-        xorl    %edx,%r13d
-        xorl    %r9d,%r12d
-        rorl    $5,%r13d
-        xorl    %r11d,%r14d
-        andl    %edx,%r12d
-        xorl    %edx,%r13d
-        addl    4(%rsp),%r10d
-        movl    %r11d,%edi
-        xorl    %r9d,%r12d
-        rorl    $11,%r14d
-        xorl    %eax,%edi
-        addl    %r12d,%r10d
-        rorl    $6,%r13d
-        andl    %edi,%r15d
-        xorl    %r11d,%r14d
-        addl    %r13d,%r10d
-        xorl    %eax,%r15d
-        rorl    $2,%r14d
-        addl    %r10d,%ecx
-        addl    %r15d,%r10d
-        movl    %ecx,%r13d
-        addl    %r10d,%r14d
-        rorl    $14,%r13d
-        movl    %r14d,%r10d
-        movl    %edx,%r12d
-        rorl    $9,%r14d
-        xorl    %ecx,%r13d
-        xorl    %r8d,%r12d
-        rorl    $5,%r13d
-        xorl    %r10d,%r14d
-        andl    %ecx,%r12d
-        xorl    %ecx,%r13d
-        addl    8(%rsp),%r9d
-        movl    %r10d,%r15d
-        xorl    %r8d,%r12d
-        rorl    $11,%r14d
-        xorl    %r11d,%r15d
-        addl    %r12d,%r9d
-        rorl    $6,%r13d
-        andl    %r15d,%edi
-        xorl    %r10d,%r14d
-        addl    %r13d,%r9d
-        xorl    %r11d,%edi
-        rorl    $2,%r14d
-        addl    %r9d,%ebx
-        addl    %edi,%r9d
-        movl    %ebx,%r13d
-        addl    %r9d,%r14d
-        rorl    $14,%r13d
-        movl    %r14d,%r9d
-        movl    %ecx,%r12d
-        rorl    $9,%r14d
-        xorl    %ebx,%r13d
-        xorl    %edx,%r12d
-        rorl    $5,%r13d
-        xorl    %r9d,%r14d
-        andl    %ebx,%r12d
-        xorl    %ebx,%r13d
-        addl    12(%rsp),%r8d
-        movl    %r9d,%edi
-        xorl    %edx,%r12d
-        rorl    $11,%r14d
-        xorl    %r10d,%edi
-        addl    %r12d,%r8d
-        rorl    $6,%r13d
-        andl    %edi,%r15d
-        xorl    %r9d,%r14d
-        addl    %r13d,%r8d
-        xorl    %r10d,%r15d
-        rorl    $2,%r14d
-        addl    %r8d,%eax
-        addl    %r15d,%r8d
-        movl    %eax,%r13d
-        addl    %r8d,%r14d
-        rorl    $14,%r13d
-        movl    %r14d,%r8d
-        movl    %ebx,%r12d
-        rorl    $9,%r14d
-        xorl    %eax,%r13d
-        xorl    %ecx,%r12d
-        rorl    $5,%r13d
-        xorl    %r8d,%r14d
-        andl    %eax,%r12d
-        xorl    %eax,%r13d
-        addl    16(%rsp),%edx
-        movl    %r8d,%r15d
-        xorl    %ecx,%r12d
-        rorl    $11,%r14d
-        xorl    %r9d,%r15d
-        addl    %r12d,%edx
-        rorl    $6,%r13d
-        andl    %r15d,%edi
-        xorl    %r8d,%r14d
-        addl    %r13d,%edx
-        xorl    %r9d,%edi
-        rorl    $2,%r14d
-        addl    %edx,%r11d
-        addl    %edi,%edx
-        movl    %r11d,%r13d
-        addl    %edx,%r14d
-        rorl    $14,%r13d
-        movl    %r14d,%edx
-        movl    %eax,%r12d
-        rorl    $9,%r14d
-        xorl    %r11d,%r13d
-        xorl    %ebx,%r12d
-        rorl    $5,%r13d
-        xorl    %edx,%r14d
-        andl    %r11d,%r12d
-        xorl    %r11d,%r13d
-        addl    20(%rsp),%ecx
-        movl    %edx,%edi
-        xorl    %ebx,%r12d
-        rorl    $11,%r14d
-        xorl    %r8d,%edi
-        addl    %r12d,%ecx
-        rorl    $6,%r13d
-        andl    %edi,%r15d
-        xorl    %edx,%r14d
-        addl    %r13d,%ecx
-        xorl    %r8d,%r15d
-        rorl    $2,%r14d
-        addl    %ecx,%r10d
-        addl    %r15d,%ecx
-        movl    %r10d,%r13d
-        addl    %ecx,%r14d
-        rorl    $14,%r13d
-        movl    %r14d,%ecx
-        movl    %r11d,%r12d
-        rorl    $9,%r14d
-        xorl    %r10d,%r13d
-        xorl    %eax,%r12d
-        rorl    $5,%r13d
-        xorl    %ecx,%r14d
-        andl    %r10d,%r12d
-        xorl    %r10d,%r13d
-        addl    24(%rsp),%ebx
-        movl    %ecx,%r15d
-        xorl    %eax,%r12d
-        rorl    $11,%r14d
-        xorl    %edx,%r15d
-        addl    %r12d,%ebx
-        rorl    $6,%r13d
-        andl    %r15d,%edi
-        xorl    %ecx,%r14d
-        addl    %r13d,%ebx
-        xorl    %edx,%edi
-        rorl    $2,%r14d
-        addl    %ebx,%r9d
-        addl    %edi,%ebx
-        movl    %r9d,%r13d
-        addl    %ebx,%r14d
-        rorl    $14,%r13d
-        movl    %r14d,%ebx
-        movl    %r10d,%r12d
-        rorl    $9,%r14d
-        xorl    %r9d,%r13d
-        xorl    %r11d,%r12d
-        rorl    $5,%r13d
-        xorl    %ebx,%r14d
-        andl    %r9d,%r12d
-        xorl    %r9d,%r13d
-        addl    28(%rsp),%eax
-        movl    %ebx,%edi
-        xorl    %r11d,%r12d
-        rorl    $11,%r14d
-        xorl    %ecx,%edi
-        addl    %r12d,%eax
-        rorl    $6,%r13d
-        andl    %edi,%r15d
-        xorl    %ebx,%r14d
-        addl    %r13d,%eax
-        xorl    %ecx,%r15d
-        rorl    $2,%r14d
-        addl    %eax,%r8d
-        addl    %r15d,%eax
-        movl    %r8d,%r13d
-        addl    %eax,%r14d
-        rorl    $14,%r13d
-        movl    %r14d,%eax
-        movl    %r9d,%r12d
-        rorl    $9,%r14d
-        xorl    %r8d,%r13d
-        xorl    %r10d,%r12d
-        rorl    $5,%r13d
-        xorl    %eax,%r14d
-        andl    %r8d,%r12d
-        xorl    %r8d,%r13d
-        addl    32(%rsp),%r11d
-        movl    %eax,%r15d
-        xorl    %r10d,%r12d
-        rorl    $11,%r14d
-        xorl    %ebx,%r15d
-        addl    %r12d,%r11d
-        rorl    $6,%r13d
-        andl    %r15d,%edi
-        xorl    %eax,%r14d
-        addl    %r13d,%r11d
-        xorl    %ebx,%edi
-        rorl    $2,%r14d
-        addl    %r11d,%edx
-        addl    %edi,%r11d
-        movl    %edx,%r13d
-        addl    %r11d,%r14d
-        rorl    $14,%r13d
-        movl    %r14d,%r11d
-        movl    %r8d,%r12d
-        rorl    $9,%r14d
-        xorl    %edx,%r13d
-        xorl    %r9d,%r12d
-        rorl    $5,%r13d
-        xorl    %r11d,%r14d
-        andl    %edx,%r12d
-        xorl    %edx,%r13d
-        addl    36(%rsp),%r10d
-        movl    %r11d,%edi
-        xorl    %r9d,%r12d
-        rorl    $11,%r14d
-        xorl    %eax,%edi
-        addl    %r12d,%r10d
-        rorl    $6,%r13d
-        andl    %edi,%r15d
-        xorl    %r11d,%r14d
-        addl    %r13d,%r10d
-        xorl    %eax,%r15d
-        rorl    $2,%r14d
-        addl    %r10d,%ecx
-        addl    %r15d,%r10d
-        movl    %ecx,%r13d
-        addl    %r10d,%r14d
-        rorl    $14,%r13d
-        movl    %r14d,%r10d
-        movl    %edx,%r12d
-        rorl    $9,%r14d
-        xorl    %ecx,%r13d
-        xorl    %r8d,%r12d
-        rorl    $5,%r13d
-        xorl    %r10d,%r14d
-        andl    %ecx,%r12d
-        xorl    %ecx,%r13d
-        addl    40(%rsp),%r9d
-        movl    %r10d,%r15d
-        xorl    %r8d,%r12d
-        rorl    $11,%r14d
-        xorl    %r11d,%r15d
-        addl    %r12d,%r9d
-        rorl    $6,%r13d
-        andl    %r15d,%edi
-        xorl    %r10d,%r14d
-        addl    %r13d,%r9d
-        xorl    %r11d,%edi
-        rorl    $2,%r14d
-        addl    %r9d,%ebx
-        addl    %edi,%r9d
-        movl    %ebx,%r13d
-        addl    %r9d,%r14d
-        rorl    $14,%r13d
-        movl    %r14d,%r9d
-        movl    %ecx,%r12d
-        rorl    $9,%r14d
-        xorl    %ebx,%r13d
-        xorl    %edx,%r12d
-        rorl    $5,%r13d
-        xorl    %r9d,%r14d
-        andl    %ebx,%r12d
-        xorl    %ebx,%r13d
-        addl    44(%rsp),%r8d
-        movl    %r9d,%edi
-        xorl    %edx,%r12d
-        rorl    $11,%r14d
-        xorl    %r10d,%edi
-        addl    %r12d,%r8d
-        rorl    $6,%r13d
-        andl    %edi,%r15d
-        xorl    %r9d,%r14d
-        addl    %r13d,%r8d
-        xorl    %r10d,%r15d
-        rorl    $2,%r14d
-        addl    %r8d,%eax
-        addl    %r15d,%r8d
-        movl    %eax,%r13d
-        addl    %r8d,%r14d
-        rorl    $14,%r13d
-        movl    %r14d,%r8d
-        movl    %ebx,%r12d
-        rorl    $9,%r14d
-        xorl    %eax,%r13d
-        xorl    %ecx,%r12d
-        rorl    $5,%r13d
-        xorl    %r8d,%r14d
-        andl    %eax,%r12d
-        xorl    %eax,%r13d
-        addl    48(%rsp),%edx
-        movl    %r8d,%r15d
-        xorl    %ecx,%r12d
-        rorl    $11,%r14d
-        xorl    %r9d,%r15d
-        addl    %r12d,%edx
-        rorl    $6,%r13d
-        andl    %r15d,%edi
-        xorl    %r8d,%r14d
-        addl    %r13d,%edx
-        xorl    %r9d,%edi
-        rorl    $2,%r14d
-        addl    %edx,%r11d
-        addl    %edi,%edx
-        movl    %r11d,%r13d
-        addl    %edx,%r14d
-        rorl    $14,%r13d
-        movl    %r14d,%edx
-        movl    %eax,%r12d
-        rorl    $9,%r14d
-        xorl    %r11d,%r13d
-        xorl    %ebx,%r12d
-        rorl    $5,%r13d
-        xorl    %edx,%r14d
-        andl    %r11d,%r12d
-        xorl    %r11d,%r13d
-        addl    52(%rsp),%ecx
-        movl    %edx,%edi
-        xorl    %ebx,%r12d
-        rorl    $11,%r14d
-        xorl    %r8d,%edi
-        addl    %r12d,%ecx
-        rorl    $6,%r13d
-        andl    %edi,%r15d
-        xorl    %edx,%r14d
-        addl    %r13d,%ecx
-        xorl    %r8d,%r15d
-        rorl    $2,%r14d
-        addl    %ecx,%r10d
-        addl    %r15d,%ecx
-        movl    %r10d,%r13d
-        addl    %ecx,%r14d
-        rorl    $14,%r13d
-        movl    %r14d,%ecx
-        movl    %r11d,%r12d
-        rorl    $9,%r14d
-        xorl    %r10d,%r13d
-        xorl    %eax,%r12d
-        rorl    $5,%r13d
-        xorl    %ecx,%r14d
-        andl    %r10d,%r12d
-        xorl    %r10d,%r13d
-        addl    56(%rsp),%ebx
-        movl    %ecx,%r15d
-        xorl    %eax,%r12d
-        rorl    $11,%r14d
-        xorl    %edx,%r15d
-        addl    %r12d,%ebx
-        rorl    $6,%r13d
-        andl    %r15d,%edi
-        xorl    %ecx,%r14d
-        addl    %r13d,%ebx
-        xorl    %edx,%edi
-        rorl    $2,%r14d
-        addl    %ebx,%r9d
-        addl    %edi,%ebx
-        movl    %r9d,%r13d
-        addl    %ebx,%r14d
-        rorl    $14,%r13d
-        movl    %r14d,%ebx
-        movl    %r10d,%r12d
-        rorl    $9,%r14d
-        xorl    %r9d,%r13d
-        xorl    %r11d,%r12d
-        rorl    $5,%r13d
-        xorl    %ebx,%r14d
-        andl    %r9d,%r12d
-        xorl    %r9d,%r13d
-        addl    60(%rsp),%eax
-        movl    %ebx,%edi
-        xorl    %r11d,%r12d
-        rorl    $11,%r14d
-        xorl    %ecx,%edi
-        addl    %r12d,%eax
-        rorl    $6,%r13d
-        andl    %edi,%r15d
-        xorl    %ebx,%r14d
-        addl    %r13d,%eax
-        xorl    %ecx,%r15d
-        rorl    $2,%r14d
-        addl    %eax,%r8d
-        addl    %r15d,%eax
-        movl    %r8d,%r13d
-        addl    %eax,%r14d
-        movq    64+0(%rsp),%rdi
-        movl    %r14d,%eax
-
-        addl    0(%rdi),%eax
-        leaq    64(%rsi),%rsi
-        addl    4(%rdi),%ebx
-        addl    8(%rdi),%ecx
-        addl    12(%rdi),%edx
-        addl    16(%rdi),%r8d
-        addl    20(%rdi),%r9d
-        addl    24(%rdi),%r10d
-        addl    28(%rdi),%r11d
-
-        cmpq    64+16(%rsp),%rsi
-
-        movl    %eax,0(%rdi)
-        movl    %ebx,4(%rdi)
-        movl    %ecx,8(%rdi)
-        movl    %edx,12(%rdi)
-        movl    %r8d,16(%rdi)
-        movl    %r9d,20(%rdi)
-        movl    %r10d,24(%rdi)
-        movl    %r11d,28(%rdi)
-        jb      .Lloop_ssse3
-
-        movq    88(%rsp),%rsi
-.cfi_def_cfa    %rsi,8
-        movq    -48(%rsi),%r15
-.cfi_restore    %r15
-        movq    -40(%rsi),%r14
-.cfi_restore    %r14
-        movq    -32(%rsi),%r13
-.cfi_restore    %r13
-        movq    -24(%rsi),%r12
-.cfi_restore    %r12
-        movq    -16(%rsi),%rbp
-.cfi_restore    %rbp
-        movq    -8(%rsi),%rbx
-.cfi_restore    %rbx
-        leaq    (%rsi),%rsp
-.cfi_def_cfa_register   %rsp
-.Lepilogue_ssse3:
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   sha256_block_data_order_ssse3,.-sha256_block_data_order_ssse3
diff --git a/CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha512-x86_64.S b/CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha512-x86_64.S
deleted file mode 100644
index 11e67e5ba1c6..000000000000
--- a/CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha512-x86_64.S
+++ /dev/null
@@ -1,1811 +0,0 @@
-# WARNING: do not edit!
-# Generated from openssl/crypto/sha/asm/sha512-x86_64.pl
-#
-# Copyright 2005-2020 The OpenSSL Project Authors. All Rights Reserved.
-#
-# Licensed under the OpenSSL license (the "License").  You may not use
-# this file except in compliance with the License.  You can obtain a copy
-# in the file LICENSE in the source distribution or at
-# https://www.openssl.org/source/license.html
-
-.text
-
-
-.globl  sha512_block_data_order
-.type   sha512_block_data_order, at function
-.align  16
-sha512_block_data_order:
-.cfi_startproc
-        movq    %rsp,%rax
-.cfi_def_cfa_register   %rax
-        pushq   %rbx
-.cfi_offset     %rbx,-16
-        pushq   %rbp
-.cfi_offset     %rbp,-24
-        pushq   %r12
-.cfi_offset     %r12,-32
-        pushq   %r13
-.cfi_offset     %r13,-40
-        pushq   %r14
-.cfi_offset     %r14,-48
-        pushq   %r15
-.cfi_offset     %r15,-56
-        shlq    $4,%rdx
-        subq    $128+32,%rsp
-        leaq    (%rsi,%rdx,8),%rdx
-        andq    $-64,%rsp
-        movq    %rdi,128+0(%rsp)
-        movq    %rsi,128+8(%rsp)
-        movq    %rdx,128+16(%rsp)
-        movq    %rax,152(%rsp)
-.cfi_escape     0x0f,0x06,0x77,0x98,0x01,0x06,0x23,0x08
-.Lprologue:
-
-        movq    0(%rdi),%rax
-        movq    8(%rdi),%rbx
-        movq    16(%rdi),%rcx
-        movq    24(%rdi),%rdx
-        movq    32(%rdi),%r8
-        movq    40(%rdi),%r9
-        movq    48(%rdi),%r10
-        movq    56(%rdi),%r11
-        jmp     .Lloop
-
-.align  16
-.Lloop:
-        movq    %rbx,%rdi
-        leaq    K512(%rip),%rbp
-        xorq    %rcx,%rdi
-        movq    0(%rsi),%r12
-        movq    %r8,%r13
-        movq    %rax,%r14
-        bswapq  %r12
-        rorq    $23,%r13
-        movq    %r9,%r15
-
-        xorq    %r8,%r13
-        rorq    $5,%r14
-        xorq    %r10,%r15
-
-        movq    %r12,0(%rsp)
-        xorq    %rax,%r14
-        andq    %r8,%r15
-
-        rorq    $4,%r13
-        addq    %r11,%r12
-        xorq    %r10,%r15
-
-        rorq    $6,%r14
-        xorq    %r8,%r13
-        addq    %r15,%r12
-
-        movq    %rax,%r15
-        addq    (%rbp),%r12
-        xorq    %rax,%r14
-
-        xorq    %rbx,%r15
-        rorq    $14,%r13
-        movq    %rbx,%r11
-
-        andq    %r15,%rdi
-        rorq    $28,%r14
-        addq    %r13,%r12
-
-        xorq    %rdi,%r11
-        addq    %r12,%rdx
-        addq    %r12,%r11
-
-        leaq    8(%rbp),%rbp
-        addq    %r14,%r11
-        movq    8(%rsi),%r12
-        movq    %rdx,%r13
-        movq    %r11,%r14
-        bswapq  %r12
-        rorq    $23,%r13
-        movq    %r8,%rdi
-
-        xorq    %rdx,%r13
-        rorq    $5,%r14
-        xorq    %r9,%rdi
-
-        movq    %r12,8(%rsp)
-        xorq    %r11,%r14
-        andq    %rdx,%rdi
-
-        rorq    $4,%r13
-        addq    %r10,%r12
-        xorq    %r9,%rdi
-
-        rorq    $6,%r14
-        xorq    %rdx,%r13
-        addq    %rdi,%r12
-
-        movq    %r11,%rdi
-        addq    (%rbp),%r12
-        xorq    %r11,%r14
-
-        xorq    %rax,%rdi
-        rorq    $14,%r13
-        movq    %rax,%r10
-
-        andq    %rdi,%r15
-        rorq    $28,%r14
-        addq    %r13,%r12
-
-        xorq    %r15,%r10
-        addq    %r12,%rcx
-        addq    %r12,%r10
-
-        leaq    24(%rbp),%rbp
-        addq    %r14,%r10
-        movq    16(%rsi),%r12
-        movq    %rcx,%r13
-        movq    %r10,%r14
-        bswapq  %r12
-        rorq    $23,%r13
-        movq    %rdx,%r15
-
-        xorq    %rcx,%r13
-        rorq    $5,%r14
-        xorq    %r8,%r15
-
-        movq    %r12,16(%rsp)
-        xorq    %r10,%r14
-        andq    %rcx,%r15
-
-        rorq    $4,%r13
-        addq    %r9,%r12
-        xorq    %r8,%r15
-
-        rorq    $6,%r14
-        xorq    %rcx,%r13
-        addq    %r15,%r12
-
-        movq    %r10,%r15
-        addq    (%rbp),%r12
-        xorq    %r10,%r14
-
-        xorq    %r11,%r15
-        rorq    $14,%r13
-        movq    %r11,%r9
-
-        andq    %r15,%rdi
-        rorq    $28,%r14
-        addq    %r13,%r12
-
-        xorq    %rdi,%r9
-        addq    %r12,%rbx
-        addq    %r12,%r9
-
-        leaq    8(%rbp),%rbp
-        addq    %r14,%r9
-        movq    24(%rsi),%r12
-        movq    %rbx,%r13
-        movq    %r9,%r14
-        bswapq  %r12
-        rorq    $23,%r13
-        movq    %rcx,%rdi
-
-        xorq    %rbx,%r13
-        rorq    $5,%r14
-        xorq    %rdx,%rdi
-
-        movq    %r12,24(%rsp)
-        xorq    %r9,%r14
-        andq    %rbx,%rdi
-
-        rorq    $4,%r13
-        addq    %r8,%r12
-        xorq    %rdx,%rdi
-
-        rorq    $6,%r14
-        xorq    %rbx,%r13
-        addq    %rdi,%r12
-
-        movq    %r9,%rdi
-        addq    (%rbp),%r12
-        xorq    %r9,%r14
-
-        xorq    %r10,%rdi
-        rorq    $14,%r13
-        movq    %r10,%r8
-
-        andq    %rdi,%r15
-        rorq    $28,%r14
-        addq    %r13,%r12
-
-        xorq    %r15,%r8
-        addq    %r12,%rax
-        addq    %r12,%r8
-
-        leaq    24(%rbp),%rbp
-        addq    %r14,%r8
-        movq    32(%rsi),%r12
-        movq    %rax,%r13
-        movq    %r8,%r14
-        bswapq  %r12
-        rorq    $23,%r13
-        movq    %rbx,%r15
-
-        xorq    %rax,%r13
-        rorq    $5,%r14
-        xorq    %rcx,%r15
-
-        movq    %r12,32(%rsp)
-        xorq    %r8,%r14
-        andq    %rax,%r15
-
-        rorq    $4,%r13
-        addq    %rdx,%r12
-        xorq    %rcx,%r15
-
-        rorq    $6,%r14
-        xorq    %rax,%r13
-        addq    %r15,%r12
-
-        movq    %r8,%r15
-        addq    (%rbp),%r12
-        xorq    %r8,%r14
-
-        xorq    %r9,%r15
-        rorq    $14,%r13
-        movq    %r9,%rdx
-
-        andq    %r15,%rdi
-        rorq    $28,%r14
-        addq    %r13,%r12
-
-        xorq    %rdi,%rdx
-        addq    %r12,%r11
-        addq    %r12,%rdx
-
-        leaq    8(%rbp),%rbp
-        addq    %r14,%rdx
-        movq    40(%rsi),%r12
-        movq    %r11,%r13
-        movq    %rdx,%r14
-        bswapq  %r12
-        rorq    $23,%r13
-        movq    %rax,%rdi
-
-        xorq    %r11,%r13
-        rorq    $5,%r14
-        xorq    %rbx,%rdi
-
-        movq    %r12,40(%rsp)
-        xorq    %rdx,%r14
-        andq    %r11,%rdi
-
-        rorq    $4,%r13
-        addq    %rcx,%r12
-        xorq    %rbx,%rdi
-
-        rorq    $6,%r14
-        xorq    %r11,%r13
-        addq    %rdi,%r12
-
-        movq    %rdx,%rdi
-        addq    (%rbp),%r12
-        xorq    %rdx,%r14
-
-        xorq    %r8,%rdi
-        rorq    $14,%r13
-        movq    %r8,%rcx
-
-        andq    %rdi,%r15
-        rorq    $28,%r14
-        addq    %r13,%r12
-
-        xorq    %r15,%rcx
-        addq    %r12,%r10
-        addq    %r12,%rcx
-
-        leaq    24(%rbp),%rbp
-        addq    %r14,%rcx
-        movq    48(%rsi),%r12
-        movq    %r10,%r13
-        movq    %rcx,%r14
-        bswapq  %r12
-        rorq    $23,%r13
-        movq    %r11,%r15
-
-        xorq    %r10,%r13
-        rorq    $5,%r14
-        xorq    %rax,%r15
-
-        movq    %r12,48(%rsp)
-        xorq    %rcx,%r14
-        andq    %r10,%r15
-
-        rorq    $4,%r13
-        addq    %rbx,%r12
-        xorq    %rax,%r15
-
-        rorq    $6,%r14
-        xorq    %r10,%r13
-        addq    %r15,%r12
-
-        movq    %rcx,%r15
-        addq    (%rbp),%r12
-        xorq    %rcx,%r14
-
-        xorq    %rdx,%r15
-        rorq    $14,%r13
-        movq    %rdx,%rbx
-
-        andq    %r15,%rdi
-        rorq    $28,%r14
-        addq    %r13,%r12
-
-        xorq    %rdi,%rbx
-        addq    %r12,%r9
-        addq    %r12,%rbx
-
-        leaq    8(%rbp),%rbp
-        addq    %r14,%rbx
-        movq    56(%rsi),%r12
-        movq    %r9,%r13
-        movq    %rbx,%r14
-        bswapq  %r12
-        rorq    $23,%r13
-        movq    %r10,%rdi
-
-        xorq    %r9,%r13
-        rorq    $5,%r14
-        xorq    %r11,%rdi
-
-        movq    %r12,56(%rsp)
-        xorq    %rbx,%r14
-        andq    %r9,%rdi
-
-        rorq    $4,%r13
-        addq    %rax,%r12
-        xorq    %r11,%rdi
-
-        rorq    $6,%r14
-        xorq    %r9,%r13
-        addq    %rdi,%r12
-
-        movq    %rbx,%rdi
-        addq    (%rbp),%r12
-        xorq    %rbx,%r14
-
-        xorq    %rcx,%rdi
-        rorq    $14,%r13
-        movq    %rcx,%rax
-
-        andq    %rdi,%r15
-        rorq    $28,%r14
-        addq    %r13,%r12
-
-        xorq    %r15,%rax
-        addq    %r12,%r8
-        addq    %r12,%rax
-
-        leaq    24(%rbp),%rbp
-        addq    %r14,%rax
-        movq    64(%rsi),%r12
-        movq    %r8,%r13
-        movq    %rax,%r14
-        bswapq  %r12
-        rorq    $23,%r13
-        movq    %r9,%r15
-
-        xorq    %r8,%r13
-        rorq    $5,%r14
-        xorq    %r10,%r15
-
-        movq    %r12,64(%rsp)
-        xorq    %rax,%r14
-        andq    %r8,%r15
-
-        rorq    $4,%r13
-        addq    %r11,%r12
-        xorq    %r10,%r15
-
-        rorq    $6,%r14
-        xorq    %r8,%r13
-        addq    %r15,%r12
-
-        movq    %rax,%r15
-        addq    (%rbp),%r12
-        xorq    %rax,%r14
-
-        xorq    %rbx,%r15
-        rorq    $14,%r13
-        movq    %rbx,%r11
-
-        andq    %r15,%rdi
-        rorq    $28,%r14
-        addq    %r13,%r12
-
-        xorq    %rdi,%r11
-        addq    %r12,%rdx
-        addq    %r12,%r11
-
-        leaq    8(%rbp),%rbp
-        addq    %r14,%r11
-        movq    72(%rsi),%r12
-        movq    %rdx,%r13
-        movq    %r11,%r14
-        bswapq  %r12
-        rorq    $23,%r13
-        movq    %r8,%rdi
-
-        xorq    %rdx,%r13
-        rorq    $5,%r14
-        xorq    %r9,%rdi
-
-        movq    %r12,72(%rsp)
-        xorq    %r11,%r14
-        andq    %rdx,%rdi
-
-        rorq    $4,%r13
-        addq    %r10,%r12
-        xorq    %r9,%rdi
-
-        rorq    $6,%r14
-        xorq    %rdx,%r13
-        addq    %rdi,%r12
-
-        movq    %r11,%rdi
-        addq    (%rbp),%r12
-        xorq    %r11,%r14
-
-        xorq    %rax,%rdi
-        rorq    $14,%r13
-        movq    %rax,%r10
-
-        andq    %rdi,%r15
-        rorq    $28,%r14
-        addq    %r13,%r12
-
-        xorq    %r15,%r10
-        addq    %r12,%rcx
-        addq    %r12,%r10
-
-        leaq    24(%rbp),%rbp
-        addq    %r14,%r10
-        movq    80(%rsi),%r12
-        movq    %rcx,%r13
-        movq    %r10,%r14
-        bswapq  %r12
-        rorq    $23,%r13
-        movq    %rdx,%r15
-
-        xorq    %rcx,%r13
-        rorq    $5,%r14
-        xorq    %r8,%r15
-
-        movq    %r12,80(%rsp)
-        xorq    %r10,%r14
-        andq    %rcx,%r15
-
-        rorq    $4,%r13
-        addq    %r9,%r12
-        xorq    %r8,%r15
-
-        rorq    $6,%r14
-        xorq    %rcx,%r13
-        addq    %r15,%r12
-
-        movq    %r10,%r15
-        addq    (%rbp),%r12
-        xorq    %r10,%r14
-
-        xorq    %r11,%r15
-        rorq    $14,%r13
-        movq    %r11,%r9
-
-        andq    %r15,%rdi
-        rorq    $28,%r14
-        addq    %r13,%r12
-
-        xorq    %rdi,%r9
-        addq    %r12,%rbx
-        addq    %r12,%r9
-
-        leaq    8(%rbp),%rbp
-        addq    %r14,%r9
-        movq    88(%rsi),%r12
-        movq    %rbx,%r13
-        movq    %r9,%r14
-        bswapq  %r12
-        rorq    $23,%r13
-        movq    %rcx,%rdi
-
-        xorq    %rbx,%r13
-        rorq    $5,%r14
-        xorq    %rdx,%rdi
-
-        movq    %r12,88(%rsp)
-        xorq    %r9,%r14
-        andq    %rbx,%rdi
-
-        rorq    $4,%r13
-        addq    %r8,%r12
-        xorq    %rdx,%rdi
-
-        rorq    $6,%r14
-        xorq    %rbx,%r13
-        addq    %rdi,%r12
-
-        movq    %r9,%rdi
-        addq    (%rbp),%r12
-        xorq    %r9,%r14
-
-        xorq    %r10,%rdi
-        rorq    $14,%r13
-        movq    %r10,%r8
-
-        andq    %rdi,%r15
-        rorq    $28,%r14
-        addq    %r13,%r12
-
-        xorq    %r15,%r8
-        addq    %r12,%rax
-        addq    %r12,%r8
-
-        leaq    24(%rbp),%rbp
-        addq    %r14,%r8
-        movq    96(%rsi),%r12
-        movq    %rax,%r13
-        movq    %r8,%r14
-        bswapq  %r12
-        rorq    $23,%r13
-        movq    %rbx,%r15
-
-        xorq    %rax,%r13
-        rorq    $5,%r14
-        xorq    %rcx,%r15
-
-        movq    %r12,96(%rsp)
-        xorq    %r8,%r14
-        andq    %rax,%r15
-
-        rorq    $4,%r13
-        addq    %rdx,%r12
-        xorq    %rcx,%r15
-
-        rorq    $6,%r14
-        xorq    %rax,%r13
-        addq    %r15,%r12
-
-        movq    %r8,%r15
-        addq    (%rbp),%r12
-        xorq    %r8,%r14
-
-        xorq    %r9,%r15
-        rorq    $14,%r13
-        movq    %r9,%rdx
-
-        andq    %r15,%rdi
-        rorq    $28,%r14
-        addq    %r13,%r12
-
-        xorq    %rdi,%rdx
-        addq    %r12,%r11
-        addq    %r12,%rdx
-
-        leaq    8(%rbp),%rbp
-        addq    %r14,%rdx
-        movq    104(%rsi),%r12
-        movq    %r11,%r13
-        movq    %rdx,%r14
-        bswapq  %r12
-        rorq    $23,%r13
-        movq    %rax,%rdi
-
-        xorq    %r11,%r13
-        rorq    $5,%r14
-        xorq    %rbx,%rdi
-
-        movq    %r12,104(%rsp)
-        xorq    %rdx,%r14
-        andq    %r11,%rdi
-
-        rorq    $4,%r13
-        addq    %rcx,%r12
-        xorq    %rbx,%rdi
-
-        rorq    $6,%r14
-        xorq    %r11,%r13
-        addq    %rdi,%r12
-
-        movq    %rdx,%rdi
-        addq    (%rbp),%r12
-        xorq    %rdx,%r14
-
-        xorq    %r8,%rdi
-        rorq    $14,%r13
-        movq    %r8,%rcx
-
-        andq    %rdi,%r15
-        rorq    $28,%r14
-        addq    %r13,%r12
-
-        xorq    %r15,%rcx
-        addq    %r12,%r10
-        addq    %r12,%rcx
-
-        leaq    24(%rbp),%rbp
-        addq    %r14,%rcx
-        movq    112(%rsi),%r12
-        movq    %r10,%r13
-        movq    %rcx,%r14
-        bswapq  %r12
-        rorq    $23,%r13
-        movq    %r11,%r15
-
-        xorq    %r10,%r13
-        rorq    $5,%r14
-        xorq    %rax,%r15
-
-        movq    %r12,112(%rsp)
-        xorq    %rcx,%r14
-        andq    %r10,%r15
-
-        rorq    $4,%r13
-        addq    %rbx,%r12
-        xorq    %rax,%r15
-
-        rorq    $6,%r14
-        xorq    %r10,%r13
-        addq    %r15,%r12
-
-        movq    %rcx,%r15
-        addq    (%rbp),%r12
-        xorq    %rcx,%r14
-
-        xorq    %rdx,%r15
-        rorq    $14,%r13
-        movq    %rdx,%rbx
-
-        andq    %r15,%rdi
-        rorq    $28,%r14
-        addq    %r13,%r12
-
-        xorq    %rdi,%rbx
-        addq    %r12,%r9
-        addq    %r12,%rbx
-
-        leaq    8(%rbp),%rbp
-        addq    %r14,%rbx
-        movq    120(%rsi),%r12
-        movq    %r9,%r13
-        movq    %rbx,%r14
-        bswapq  %r12
-        rorq    $23,%r13
-        movq    %r10,%rdi
-
-        xorq    %r9,%r13
-        rorq    $5,%r14
-        xorq    %r11,%rdi
-
-        movq    %r12,120(%rsp)
-        xorq    %rbx,%r14
-        andq    %r9,%rdi
-
-        rorq    $4,%r13
-        addq    %rax,%r12
-        xorq    %r11,%rdi
-
-        rorq    $6,%r14
-        xorq    %r9,%r13
-        addq    %rdi,%r12
-
-        movq    %rbx,%rdi
-        addq    (%rbp),%r12
-        xorq    %rbx,%r14
-
-        xorq    %rcx,%rdi
-        rorq    $14,%r13
-        movq    %rcx,%rax
-
-        andq    %rdi,%r15
-        rorq    $28,%r14
-        addq    %r13,%r12
-
-        xorq    %r15,%rax
-        addq    %r12,%r8
-        addq    %r12,%rax
-
-        leaq    24(%rbp),%rbp
-        jmp     .Lrounds_16_xx
-.align  16
-.Lrounds_16_xx:
-        movq    8(%rsp),%r13
-        movq    112(%rsp),%r15
-
-        movq    %r13,%r12
-        rorq    $7,%r13
-        addq    %r14,%rax
-        movq    %r15,%r14
-        rorq    $42,%r15
-
-        xorq    %r12,%r13
-        shrq    $7,%r12
-        rorq    $1,%r13
-        xorq    %r14,%r15
-        shrq    $6,%r14
-
-        rorq    $19,%r15
-        xorq    %r13,%r12
-        xorq    %r14,%r15
-        addq    72(%rsp),%r12
-
-        addq    0(%rsp),%r12
-        movq    %r8,%r13
-        addq    %r15,%r12
-        movq    %rax,%r14
-        rorq    $23,%r13
-        movq    %r9,%r15
-
-        xorq    %r8,%r13
-        rorq    $5,%r14
-        xorq    %r10,%r15
-
-        movq    %r12,0(%rsp)
-        xorq    %rax,%r14
-        andq    %r8,%r15
-
-        rorq    $4,%r13
-        addq    %r11,%r12
-        xorq    %r10,%r15
-
-        rorq    $6,%r14
-        xorq    %r8,%r13
-        addq    %r15,%r12
-
-        movq    %rax,%r15
-        addq    (%rbp),%r12
-        xorq    %rax,%r14
-
-        xorq    %rbx,%r15
-        rorq    $14,%r13
-        movq    %rbx,%r11
-
-        andq    %r15,%rdi
-        rorq    $28,%r14
-        addq    %r13,%r12
-
-        xorq    %rdi,%r11
-        addq    %r12,%rdx
-        addq    %r12,%r11
-
-        leaq    8(%rbp),%rbp
-        movq    16(%rsp),%r13
-        movq    120(%rsp),%rdi
-
-        movq    %r13,%r12
-        rorq    $7,%r13
-        addq    %r14,%r11
-        movq    %rdi,%r14
-        rorq    $42,%rdi
-
-        xorq    %r12,%r13
-        shrq    $7,%r12
-        rorq    $1,%r13
-        xorq    %r14,%rdi
-        shrq    $6,%r14
-
-        rorq    $19,%rdi
-        xorq    %r13,%r12
-        xorq    %r14,%rdi
-        addq    80(%rsp),%r12
-
-        addq    8(%rsp),%r12
-        movq    %rdx,%r13
-        addq    %rdi,%r12
-        movq    %r11,%r14
-        rorq    $23,%r13
-        movq    %r8,%rdi
-
-        xorq    %rdx,%r13
-        rorq    $5,%r14
-        xorq    %r9,%rdi
-
-        movq    %r12,8(%rsp)
-        xorq    %r11,%r14
-        andq    %rdx,%rdi
-
-        rorq    $4,%r13
-        addq    %r10,%r12
-        xorq    %r9,%rdi
-
-        rorq    $6,%r14
-        xorq    %rdx,%r13
-        addq    %rdi,%r12
-
-        movq    %r11,%rdi
-        addq    (%rbp),%r12
-        xorq    %r11,%r14
-
-        xorq    %rax,%rdi
-        rorq    $14,%r13
-        movq    %rax,%r10
-
-        andq    %rdi,%r15
-        rorq    $28,%r14
-        addq    %r13,%r12
-
-        xorq    %r15,%r10
-        addq    %r12,%rcx
-        addq    %r12,%r10
-
-        leaq    24(%rbp),%rbp
-        movq    24(%rsp),%r13
-        movq    0(%rsp),%r15
-
-        movq    %r13,%r12
-        rorq    $7,%r13
-        addq    %r14,%r10
-        movq    %r15,%r14
-        rorq    $42,%r15
-
-        xorq    %r12,%r13
-        shrq    $7,%r12
-        rorq    $1,%r13
-        xorq    %r14,%r15
-        shrq    $6,%r14
-
-        rorq    $19,%r15
-        xorq    %r13,%r12
-        xorq    %r14,%r15
-        addq    88(%rsp),%r12
-
-        addq    16(%rsp),%r12
-        movq    %rcx,%r13
-        addq    %r15,%r12
-        movq    %r10,%r14
-        rorq    $23,%r13
-        movq    %rdx,%r15
-
-        xorq    %rcx,%r13
-        rorq    $5,%r14
-        xorq    %r8,%r15
-
-        movq    %r12,16(%rsp)
-        xorq    %r10,%r14
-        andq    %rcx,%r15
-
-        rorq    $4,%r13
-        addq    %r9,%r12
-        xorq    %r8,%r15
-
-        rorq    $6,%r14
-        xorq    %rcx,%r13
-        addq    %r15,%r12
-
-        movq    %r10,%r15
-        addq    (%rbp),%r12
-        xorq    %r10,%r14
-
-        xorq    %r11,%r15
-        rorq    $14,%r13
-        movq    %r11,%r9
-
-        andq    %r15,%rdi
-        rorq    $28,%r14
-        addq    %r13,%r12
-
-        xorq    %rdi,%r9
-        addq    %r12,%rbx
-        addq    %r12,%r9
-
-        leaq    8(%rbp),%rbp
-        movq    32(%rsp),%r13
-        movq    8(%rsp),%rdi
-
-        movq    %r13,%r12
-        rorq    $7,%r13
-        addq    %r14,%r9
-        movq    %rdi,%r14
-        rorq    $42,%rdi
-
-        xorq    %r12,%r13
-        shrq    $7,%r12
-        rorq    $1,%r13
-        xorq    %r14,%rdi
-        shrq    $6,%r14
-
-        rorq    $19,%rdi
-        xorq    %r13,%r12
-        xorq    %r14,%rdi
-        addq    96(%rsp),%r12
-
-        addq    24(%rsp),%r12
-        movq    %rbx,%r13
-        addq    %rdi,%r12
-        movq    %r9,%r14
-        rorq    $23,%r13
-        movq    %rcx,%rdi
-
-        xorq    %rbx,%r13
-        rorq    $5,%r14
-        xorq    %rdx,%rdi
-
-        movq    %r12,24(%rsp)
-        xorq    %r9,%r14
-        andq    %rbx,%rdi
-
-        rorq    $4,%r13
-        addq    %r8,%r12
-        xorq    %rdx,%rdi
-
-        rorq    $6,%r14
-        xorq    %rbx,%r13
-        addq    %rdi,%r12
-
-        movq    %r9,%rdi
-        addq    (%rbp),%r12
-        xorq    %r9,%r14
-
-        xorq    %r10,%rdi
-        rorq    $14,%r13
-        movq    %r10,%r8
-
-        andq    %rdi,%r15
-        rorq    $28,%r14
-        addq    %r13,%r12
-
-        xorq    %r15,%r8
-        addq    %r12,%rax
-        addq    %r12,%r8
-
-        leaq    24(%rbp),%rbp
-        movq    40(%rsp),%r13
-        movq    16(%rsp),%r15
-
-        movq    %r13,%r12
-        rorq    $7,%r13
-        addq    %r14,%r8
-        movq    %r15,%r14
-        rorq    $42,%r15
-
-        xorq    %r12,%r13
-        shrq    $7,%r12
-        rorq    $1,%r13
-        xorq    %r14,%r15
-        shrq    $6,%r14
-
-        rorq    $19,%r15
-        xorq    %r13,%r12
-        xorq    %r14,%r15
-        addq    104(%rsp),%r12
-
-        addq    32(%rsp),%r12
-        movq    %rax,%r13
-        addq    %r15,%r12
-        movq    %r8,%r14
-        rorq    $23,%r13
-        movq    %rbx,%r15
-
-        xorq    %rax,%r13
-        rorq    $5,%r14
-        xorq    %rcx,%r15
-
-        movq    %r12,32(%rsp)
-        xorq    %r8,%r14
-        andq    %rax,%r15
-
-        rorq    $4,%r13
-        addq    %rdx,%r12
-        xorq    %rcx,%r15
-
-        rorq    $6,%r14
-        xorq    %rax,%r13
-        addq    %r15,%r12
-
-        movq    %r8,%r15
-        addq    (%rbp),%r12
-        xorq    %r8,%r14
-
-        xorq    %r9,%r15
-        rorq    $14,%r13
-        movq    %r9,%rdx
-
-        andq    %r15,%rdi
-        rorq    $28,%r14
-        addq    %r13,%r12
-
-        xorq    %rdi,%rdx
-        addq    %r12,%r11
-        addq    %r12,%rdx
-
-        leaq    8(%rbp),%rbp
-        movq    48(%rsp),%r13
-        movq    24(%rsp),%rdi
-
-        movq    %r13,%r12
-        rorq    $7,%r13
-        addq    %r14,%rdx
-        movq    %rdi,%r14
-        rorq    $42,%rdi
-
-        xorq    %r12,%r13
-        shrq    $7,%r12
-        rorq    $1,%r13
-        xorq    %r14,%rdi
-        shrq    $6,%r14
-
-        rorq    $19,%rdi
-        xorq    %r13,%r12
-        xorq    %r14,%rdi
-        addq    112(%rsp),%r12
-
-        addq    40(%rsp),%r12
-        movq    %r11,%r13
-        addq    %rdi,%r12
-        movq    %rdx,%r14
-        rorq    $23,%r13
-        movq    %rax,%rdi
-
-        xorq    %r11,%r13
-        rorq    $5,%r14
-        xorq    %rbx,%rdi
-
-        movq    %r12,40(%rsp)
-        xorq    %rdx,%r14
-        andq    %r11,%rdi
-
-        rorq    $4,%r13
-        addq    %rcx,%r12
-        xorq    %rbx,%rdi
-
-        rorq    $6,%r14
-        xorq    %r11,%r13
-        addq    %rdi,%r12
-
-        movq    %rdx,%rdi
-        addq    (%rbp),%r12
-        xorq    %rdx,%r14
-
-        xorq    %r8,%rdi
-        rorq    $14,%r13
-        movq    %r8,%rcx
-
-        andq    %rdi,%r15
-        rorq    $28,%r14
-        addq    %r13,%r12
-
-        xorq    %r15,%rcx
-        addq    %r12,%r10
-        addq    %r12,%rcx
-
-        leaq    24(%rbp),%rbp
-        movq    56(%rsp),%r13
-        movq    32(%rsp),%r15
-
-        movq    %r13,%r12
-        rorq    $7,%r13
-        addq    %r14,%rcx
-        movq    %r15,%r14
-        rorq    $42,%r15
-
-        xorq    %r12,%r13
-        shrq    $7,%r12
-        rorq    $1,%r13
-        xorq    %r14,%r15
-        shrq    $6,%r14
-
-        rorq    $19,%r15
-        xorq    %r13,%r12
-        xorq    %r14,%r15
-        addq    120(%rsp),%r12
-
-        addq    48(%rsp),%r12
-        movq    %r10,%r13
-        addq    %r15,%r12
-        movq    %rcx,%r14
-        rorq    $23,%r13
-        movq    %r11,%r15
-
-        xorq    %r10,%r13
-        rorq    $5,%r14
-        xorq    %rax,%r15
-
-        movq    %r12,48(%rsp)
-        xorq    %rcx,%r14
-        andq    %r10,%r15
-
-        rorq    $4,%r13
-        addq    %rbx,%r12
-        xorq    %rax,%r15
-
-        rorq    $6,%r14
-        xorq    %r10,%r13
-        addq    %r15,%r12
-
-        movq    %rcx,%r15
-        addq    (%rbp),%r12
-        xorq    %rcx,%r14
-
-        xorq    %rdx,%r15
-        rorq    $14,%r13
-        movq    %rdx,%rbx
-
-        andq    %r15,%rdi
-        rorq    $28,%r14
-        addq    %r13,%r12
-
-        xorq    %rdi,%rbx
-        addq    %r12,%r9
-        addq    %r12,%rbx
-
-        leaq    8(%rbp),%rbp
-        movq    64(%rsp),%r13
-        movq    40(%rsp),%rdi
-
-        movq    %r13,%r12
-        rorq    $7,%r13
-        addq    %r14,%rbx
-        movq    %rdi,%r14
-        rorq    $42,%rdi
-
-        xorq    %r12,%r13
-        shrq    $7,%r12
-        rorq    $1,%r13
-        xorq    %r14,%rdi
-        shrq    $6,%r14
-
-        rorq    $19,%rdi
-        xorq    %r13,%r12
-        xorq    %r14,%rdi
-        addq    0(%rsp),%r12
-
-        addq    56(%rsp),%r12
-        movq    %r9,%r13
-        addq    %rdi,%r12
-        movq    %rbx,%r14
-        rorq    $23,%r13
-        movq    %r10,%rdi
-
-        xorq    %r9,%r13
-        rorq    $5,%r14
-        xorq    %r11,%rdi
-
-        movq    %r12,56(%rsp)
-        xorq    %rbx,%r14
-        andq    %r9,%rdi
-
-        rorq    $4,%r13
-        addq    %rax,%r12
-        xorq    %r11,%rdi
-
-        rorq    $6,%r14
-        xorq    %r9,%r13
-        addq    %rdi,%r12
-
-        movq    %rbx,%rdi
-        addq    (%rbp),%r12
-        xorq    %rbx,%r14
-
-        xorq    %rcx,%rdi
-        rorq    $14,%r13
-        movq    %rcx,%rax
-
-        andq    %rdi,%r15
-        rorq    $28,%r14
-        addq    %r13,%r12
-
-        xorq    %r15,%rax
-        addq    %r12,%r8
-        addq    %r12,%rax
-
-        leaq    24(%rbp),%rbp
-        movq    72(%rsp),%r13
-        movq    48(%rsp),%r15
-
-        movq    %r13,%r12
-        rorq    $7,%r13
-        addq    %r14,%rax
-        movq    %r15,%r14
-        rorq    $42,%r15
-
-        xorq    %r12,%r13
-        shrq    $7,%r12
-        rorq    $1,%r13
-        xorq    %r14,%r15
-        shrq    $6,%r14
-
-        rorq    $19,%r15
-        xorq    %r13,%r12
-        xorq    %r14,%r15
-        addq    8(%rsp),%r12
-
-        addq    64(%rsp),%r12
-        movq    %r8,%r13
-        addq    %r15,%r12
-        movq    %rax,%r14
-        rorq    $23,%r13
-        movq    %r9,%r15
-
-        xorq    %r8,%r13
-        rorq    $5,%r14
-        xorq    %r10,%r15
-
-        movq    %r12,64(%rsp)
-        xorq    %rax,%r14
-        andq    %r8,%r15
-
-        rorq    $4,%r13
-        addq    %r11,%r12
-        xorq    %r10,%r15
-
-        rorq    $6,%r14
-        xorq    %r8,%r13
-        addq    %r15,%r12
-
-        movq    %rax,%r15
-        addq    (%rbp),%r12
-        xorq    %rax,%r14
-
-        xorq    %rbx,%r15
-        rorq    $14,%r13
-        movq    %rbx,%r11
-
-        andq    %r15,%rdi
-        rorq    $28,%r14
-        addq    %r13,%r12
-
-        xorq    %rdi,%r11
-        addq    %r12,%rdx
-        addq    %r12,%r11
-
-        leaq    8(%rbp),%rbp
-        movq    80(%rsp),%r13
-        movq    56(%rsp),%rdi
-
-        movq    %r13,%r12
-        rorq    $7,%r13
-        addq    %r14,%r11
-        movq    %rdi,%r14
-        rorq    $42,%rdi
-
-        xorq    %r12,%r13
-        shrq    $7,%r12
-        rorq    $1,%r13
-        xorq    %r14,%rdi
-        shrq    $6,%r14
-
-        rorq    $19,%rdi
-        xorq    %r13,%r12
-        xorq    %r14,%rdi
-        addq    16(%rsp),%r12
-
-        addq    72(%rsp),%r12
-        movq    %rdx,%r13
-        addq    %rdi,%r12
-        movq    %r11,%r14
-        rorq    $23,%r13
-        movq    %r8,%rdi
-
-        xorq    %rdx,%r13
-        rorq    $5,%r14
-        xorq    %r9,%rdi
-
-        movq    %r12,72(%rsp)
-        xorq    %r11,%r14
-        andq    %rdx,%rdi
-
-        rorq    $4,%r13
-        addq    %r10,%r12
-        xorq    %r9,%rdi
-
-        rorq    $6,%r14
-        xorq    %rdx,%r13
-        addq    %rdi,%r12
-
-        movq    %r11,%rdi
-        addq    (%rbp),%r12
-        xorq    %r11,%r14
-
-        xorq    %rax,%rdi
-        rorq    $14,%r13
-        movq    %rax,%r10
-
-        andq    %rdi,%r15
-        rorq    $28,%r14
-        addq    %r13,%r12
-
-        xorq    %r15,%r10
-        addq    %r12,%rcx
-        addq    %r12,%r10
-
-        leaq    24(%rbp),%rbp
-        movq    88(%rsp),%r13
-        movq    64(%rsp),%r15
-
-        movq    %r13,%r12
-        rorq    $7,%r13
-        addq    %r14,%r10
-        movq    %r15,%r14
-        rorq    $42,%r15
-
-        xorq    %r12,%r13
-        shrq    $7,%r12
-        rorq    $1,%r13
-        xorq    %r14,%r15
-        shrq    $6,%r14
-
-        rorq    $19,%r15
-        xorq    %r13,%r12
-        xorq    %r14,%r15
-        addq    24(%rsp),%r12
-
-        addq    80(%rsp),%r12
-        movq    %rcx,%r13
-        addq    %r15,%r12
-        movq    %r10,%r14
-        rorq    $23,%r13
-        movq    %rdx,%r15
-
-        xorq    %rcx,%r13
-        rorq    $5,%r14
-        xorq    %r8,%r15
-
-        movq    %r12,80(%rsp)
-        xorq    %r10,%r14
-        andq    %rcx,%r15
-
-        rorq    $4,%r13
-        addq    %r9,%r12
-        xorq    %r8,%r15
-
-        rorq    $6,%r14
-        xorq    %rcx,%r13
-        addq    %r15,%r12
-
-        movq    %r10,%r15
-        addq    (%rbp),%r12
-        xorq    %r10,%r14
-
-        xorq    %r11,%r15
-        rorq    $14,%r13
-        movq    %r11,%r9
-
-        andq    %r15,%rdi
-        rorq    $28,%r14
-        addq    %r13,%r12
-
-        xorq    %rdi,%r9
-        addq    %r12,%rbx
-        addq    %r12,%r9
-
-        leaq    8(%rbp),%rbp
-        movq    96(%rsp),%r13
-        movq    72(%rsp),%rdi
-
-        movq    %r13,%r12
-        rorq    $7,%r13
-        addq    %r14,%r9
-        movq    %rdi,%r14
-        rorq    $42,%rdi
-
-        xorq    %r12,%r13
-        shrq    $7,%r12
-        rorq    $1,%r13
-        xorq    %r14,%rdi
-        shrq    $6,%r14
-
-        rorq    $19,%rdi
-        xorq    %r13,%r12
-        xorq    %r14,%rdi
-        addq    32(%rsp),%r12
-
-        addq    88(%rsp),%r12
-        movq    %rbx,%r13
-        addq    %rdi,%r12
-        movq    %r9,%r14
-        rorq    $23,%r13
-        movq    %rcx,%rdi
-
-        xorq    %rbx,%r13
-        rorq    $5,%r14
-        xorq    %rdx,%rdi
-
-        movq    %r12,88(%rsp)
-        xorq    %r9,%r14
-        andq    %rbx,%rdi
-
-        rorq    $4,%r13
-        addq    %r8,%r12
-        xorq    %rdx,%rdi
-
-        rorq    $6,%r14
-        xorq    %rbx,%r13
-        addq    %rdi,%r12
-
-        movq    %r9,%rdi
-        addq    (%rbp),%r12
-        xorq    %r9,%r14
-
-        xorq    %r10,%rdi
-        rorq    $14,%r13
-        movq    %r10,%r8
-
-        andq    %rdi,%r15
-        rorq    $28,%r14
-        addq    %r13,%r12
-
-        xorq    %r15,%r8
-        addq    %r12,%rax
-        addq    %r12,%r8
-
-        leaq    24(%rbp),%rbp
-        movq    104(%rsp),%r13
-        movq    80(%rsp),%r15
-
-        movq    %r13,%r12
-        rorq    $7,%r13
-        addq    %r14,%r8
-        movq    %r15,%r14
-        rorq    $42,%r15
-
-        xorq    %r12,%r13
-        shrq    $7,%r12
-        rorq    $1,%r13
-        xorq    %r14,%r15
-        shrq    $6,%r14
-
-        rorq    $19,%r15
-        xorq    %r13,%r12
-        xorq    %r14,%r15
-        addq    40(%rsp),%r12
-
-        addq    96(%rsp),%r12
-        movq    %rax,%r13
-        addq    %r15,%r12
-        movq    %r8,%r14
-        rorq    $23,%r13
-        movq    %rbx,%r15
-
-        xorq    %rax,%r13
-        rorq    $5,%r14
-        xorq    %rcx,%r15
-
-        movq    %r12,96(%rsp)
-        xorq    %r8,%r14
-        andq    %rax,%r15
-
-        rorq    $4,%r13
-        addq    %rdx,%r12
-        xorq    %rcx,%r15
-
-        rorq    $6,%r14
-        xorq    %rax,%r13
-        addq    %r15,%r12
-
-        movq    %r8,%r15
-        addq    (%rbp),%r12
-        xorq    %r8,%r14
-
-        xorq    %r9,%r15
-        rorq    $14,%r13
-        movq    %r9,%rdx
-
-        andq    %r15,%rdi
-        rorq    $28,%r14
-        addq    %r13,%r12
-
-        xorq    %rdi,%rdx
-        addq    %r12,%r11
-        addq    %r12,%rdx
-
-        leaq    8(%rbp),%rbp
-        movq    112(%rsp),%r13
-        movq    88(%rsp),%rdi
-
-        movq    %r13,%r12
-        rorq    $7,%r13
-        addq    %r14,%rdx
-        movq    %rdi,%r14
-        rorq    $42,%rdi
-
-        xorq    %r12,%r13
-        shrq    $7,%r12
-        rorq    $1,%r13
-        xorq    %r14,%rdi
-        shrq    $6,%r14
-
-        rorq    $19,%rdi
-        xorq    %r13,%r12
-        xorq    %r14,%rdi
-        addq    48(%rsp),%r12
-
-        addq    104(%rsp),%r12
-        movq    %r11,%r13
-        addq    %rdi,%r12
-        movq    %rdx,%r14
-        rorq    $23,%r13
-        movq    %rax,%rdi
-
-        xorq    %r11,%r13
-        rorq    $5,%r14
-        xorq    %rbx,%rdi
-
-        movq    %r12,104(%rsp)
-        xorq    %rdx,%r14
-        andq    %r11,%rdi
-
-        rorq    $4,%r13
-        addq    %rcx,%r12
-        xorq    %rbx,%rdi
-
-        rorq    $6,%r14
-        xorq    %r11,%r13
-        addq    %rdi,%r12
-
-        movq    %rdx,%rdi
-        addq    (%rbp),%r12
-        xorq    %rdx,%r14
-
-        xorq    %r8,%rdi
-        rorq    $14,%r13
-        movq    %r8,%rcx
-
-        andq    %rdi,%r15
-        rorq    $28,%r14
-        addq    %r13,%r12
-
-        xorq    %r15,%rcx
-        addq    %r12,%r10
-        addq    %r12,%rcx
-
-        leaq    24(%rbp),%rbp
-        movq    120(%rsp),%r13
-        movq    96(%rsp),%r15
-
-        movq    %r13,%r12
-        rorq    $7,%r13
-        addq    %r14,%rcx
-        movq    %r15,%r14
-        rorq    $42,%r15
-
-        xorq    %r12,%r13
-        shrq    $7,%r12
-        rorq    $1,%r13
-        xorq    %r14,%r15
-        shrq    $6,%r14
-
-        rorq    $19,%r15
-        xorq    %r13,%r12
-        xorq    %r14,%r15
-        addq    56(%rsp),%r12
-
-        addq    112(%rsp),%r12
-        movq    %r10,%r13
-        addq    %r15,%r12
-        movq    %rcx,%r14
-        rorq    $23,%r13
-        movq    %r11,%r15
-
-        xorq    %r10,%r13
-        rorq    $5,%r14
-        xorq    %rax,%r15
-
-        movq    %r12,112(%rsp)
-        xorq    %rcx,%r14
-        andq    %r10,%r15
-
-        rorq    $4,%r13
-        addq    %rbx,%r12
-        xorq    %rax,%r15
-
-        rorq    $6,%r14
-        xorq    %r10,%r13
-        addq    %r15,%r12
-
-        movq    %rcx,%r15
-        addq    (%rbp),%r12
-        xorq    %rcx,%r14
-
-        xorq    %rdx,%r15
-        rorq    $14,%r13
-        movq    %rdx,%rbx
-
-        andq    %r15,%rdi
-        rorq    $28,%r14
-        addq    %r13,%r12
-
-        xorq    %rdi,%rbx
-        addq    %r12,%r9
-        addq    %r12,%rbx
-
-        leaq    8(%rbp),%rbp
-        movq    0(%rsp),%r13
-        movq    104(%rsp),%rdi
-
-        movq    %r13,%r12
-        rorq    $7,%r13
-        addq    %r14,%rbx
-        movq    %rdi,%r14
-        rorq    $42,%rdi
-
-        xorq    %r12,%r13
-        shrq    $7,%r12
-        rorq    $1,%r13
-        xorq    %r14,%rdi
-        shrq    $6,%r14
-
-        rorq    $19,%rdi
-        xorq    %r13,%r12
-        xorq    %r14,%rdi
-        addq    64(%rsp),%r12
-
-        addq    120(%rsp),%r12
-        movq    %r9,%r13
-        addq    %rdi,%r12
-        movq    %rbx,%r14
-        rorq    $23,%r13
-        movq    %r10,%rdi
-
-        xorq    %r9,%r13
-        rorq    $5,%r14
-        xorq    %r11,%rdi
-
-        movq    %r12,120(%rsp)
-        xorq    %rbx,%r14
-        andq    %r9,%rdi
-
-        rorq    $4,%r13
-        addq    %rax,%r12
-        xorq    %r11,%rdi
-
-        rorq    $6,%r14
-        xorq    %r9,%r13
-        addq    %rdi,%r12
-
-        movq    %rbx,%rdi
-        addq    (%rbp),%r12
-        xorq    %rbx,%r14
-
-        xorq    %rcx,%rdi
-        rorq    $14,%r13
-        movq    %rcx,%rax
-
-        andq    %rdi,%r15
-        rorq    $28,%r14
-        addq    %r13,%r12
-
-        xorq    %r15,%rax
-        addq    %r12,%r8
-        addq    %r12,%rax
-
-        leaq    24(%rbp),%rbp
-        cmpb    $0,7(%rbp)
-        jnz     .Lrounds_16_xx
-
-        movq    128+0(%rsp),%rdi
-        addq    %r14,%rax
-        leaq    128(%rsi),%rsi
-
-        addq    0(%rdi),%rax
-        addq    8(%rdi),%rbx
-        addq    16(%rdi),%rcx
-        addq    24(%rdi),%rdx
-        addq    32(%rdi),%r8
-        addq    40(%rdi),%r9
-        addq    48(%rdi),%r10
-        addq    56(%rdi),%r11
-
-        cmpq    128+16(%rsp),%rsi
-
-        movq    %rax,0(%rdi)
-        movq    %rbx,8(%rdi)
-        movq    %rcx,16(%rdi)
-        movq    %rdx,24(%rdi)
-        movq    %r8,32(%rdi)
-        movq    %r9,40(%rdi)
-        movq    %r10,48(%rdi)
-        movq    %r11,56(%rdi)
-        jb      .Lloop
-
-        movq    152(%rsp),%rsi
-.cfi_def_cfa    %rsi,8
-        movq    -48(%rsi),%r15
-.cfi_restore    %r15
-        movq    -40(%rsi),%r14
-.cfi_restore    %r14
-        movq    -32(%rsi),%r13
-.cfi_restore    %r13
-        movq    -24(%rsi),%r12
-.cfi_restore    %r12
-        movq    -16(%rsi),%rbp
-.cfi_restore    %rbp
-        movq    -8(%rsi),%rbx
-.cfi_restore    %rbx
-        leaq    (%rsi),%rsp
-.cfi_def_cfa_register   %rsp
-.Lepilogue:
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   sha512_block_data_order,.-sha512_block_data_order
-.align  64
-.type   K512, at object
-K512:
-.quad   0x428a2f98d728ae22,0x7137449123ef65cd
-.quad   0x428a2f98d728ae22,0x7137449123ef65cd
-.quad   0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
-.quad   0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
-.quad   0x3956c25bf348b538,0x59f111f1b605d019
-.quad   0x3956c25bf348b538,0x59f111f1b605d019
-.quad   0x923f82a4af194f9b,0xab1c5ed5da6d8118
-.quad   0x923f82a4af194f9b,0xab1c5ed5da6d8118
-.quad   0xd807aa98a3030242,0x12835b0145706fbe
-.quad   0xd807aa98a3030242,0x12835b0145706fbe
-.quad   0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
-.quad   0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
-.quad   0x72be5d74f27b896f,0x80deb1fe3b1696b1
-.quad   0x72be5d74f27b896f,0x80deb1fe3b1696b1
-.quad   0x9bdc06a725c71235,0xc19bf174cf692694
-.quad   0x9bdc06a725c71235,0xc19bf174cf692694
-.quad   0xe49b69c19ef14ad2,0xefbe4786384f25e3
-.quad   0xe49b69c19ef14ad2,0xefbe4786384f25e3
-.quad   0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
-.quad   0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
-.quad   0x2de92c6f592b0275,0x4a7484aa6ea6e483
-.quad   0x2de92c6f592b0275,0x4a7484aa6ea6e483
-.quad   0x5cb0a9dcbd41fbd4,0x76f988da831153b5
-.quad   0x5cb0a9dcbd41fbd4,0x76f988da831153b5
-.quad   0x983e5152ee66dfab,0xa831c66d2db43210
-.quad   0x983e5152ee66dfab,0xa831c66d2db43210
-.quad   0xb00327c898fb213f,0xbf597fc7beef0ee4
-.quad   0xb00327c898fb213f,0xbf597fc7beef0ee4
-.quad   0xc6e00bf33da88fc2,0xd5a79147930aa725
-.quad   0xc6e00bf33da88fc2,0xd5a79147930aa725
-.quad   0x06ca6351e003826f,0x142929670a0e6e70
-.quad   0x06ca6351e003826f,0x142929670a0e6e70
-.quad   0x27b70a8546d22ffc,0x2e1b21385c26c926
-.quad   0x27b70a8546d22ffc,0x2e1b21385c26c926
-.quad   0x4d2c6dfc5ac42aed,0x53380d139d95b3df
-.quad   0x4d2c6dfc5ac42aed,0x53380d139d95b3df
-.quad   0x650a73548baf63de,0x766a0abb3c77b2a8
-.quad   0x650a73548baf63de,0x766a0abb3c77b2a8
-.quad   0x81c2c92e47edaee6,0x92722c851482353b
-.quad   0x81c2c92e47edaee6,0x92722c851482353b
-.quad   0xa2bfe8a14cf10364,0xa81a664bbc423001
-.quad   0xa2bfe8a14cf10364,0xa81a664bbc423001
-.quad   0xc24b8b70d0f89791,0xc76c51a30654be30
-.quad   0xc24b8b70d0f89791,0xc76c51a30654be30
-.quad   0xd192e819d6ef5218,0xd69906245565a910
-.quad   0xd192e819d6ef5218,0xd69906245565a910
-.quad   0xf40e35855771202a,0x106aa07032bbd1b8
-.quad   0xf40e35855771202a,0x106aa07032bbd1b8
-.quad   0x19a4c116b8d2d0c8,0x1e376c085141ab53
-.quad   0x19a4c116b8d2d0c8,0x1e376c085141ab53
-.quad   0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
-.quad   0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
-.quad   0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
-.quad   0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
-.quad   0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
-.quad   0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
-.quad   0x748f82ee5defb2fc,0x78a5636f43172f60
-.quad   0x748f82ee5defb2fc,0x78a5636f43172f60
-.quad   0x84c87814a1f0ab72,0x8cc702081a6439ec
-.quad   0x84c87814a1f0ab72,0x8cc702081a6439ec
-.quad   0x90befffa23631e28,0xa4506cebde82bde9
-.quad   0x90befffa23631e28,0xa4506cebde82bde9
-.quad   0xbef9a3f7b2c67915,0xc67178f2e372532b
-.quad   0xbef9a3f7b2c67915,0xc67178f2e372532b
-.quad   0xca273eceea26619c,0xd186b8c721c0c207
-.quad   0xca273eceea26619c,0xd186b8c721c0c207
-.quad   0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
-.quad   0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
-.quad   0x06f067aa72176fba,0x0a637dc5a2c898a6
-.quad   0x06f067aa72176fba,0x0a637dc5a2c898a6
-.quad   0x113f9804bef90dae,0x1b710b35131c471b
-.quad   0x113f9804bef90dae,0x1b710b35131c471b
-.quad   0x28db77f523047d84,0x32caab7b40c72493
-.quad   0x28db77f523047d84,0x32caab7b40c72493
-.quad   0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
-.quad   0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
-.quad   0x4cc5d4becb3e42b6,0x597f299cfc657e2a
-.quad   0x4cc5d4becb3e42b6,0x597f299cfc657e2a
-.quad   0x5fcb6fab3ad6faec,0x6c44198c4a475817
-.quad   0x5fcb6fab3ad6faec,0x6c44198c4a475817
-
-.quad   0x0001020304050607,0x08090a0b0c0d0e0f
-.quad   0x0001020304050607,0x08090a0b0c0d0e0f
-.byte   83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
diff --git a/CryptoPkg/Library/OpensslLib/X64Gcc/crypto/x86_64cpuid.S b/CryptoPkg/Library/OpensslLib/X64Gcc/crypto/x86_64cpuid.S
deleted file mode 100644
index cac5f8f32c54..000000000000
--- a/CryptoPkg/Library/OpensslLib/X64Gcc/crypto/x86_64cpuid.S
+++ /dev/null
@@ -1,491 +0,0 @@
-# WARNING: do not edit!
-# Generated from openssl/crypto/x86_64cpuid.pl
-#
-# Copyright 2005-2020 The OpenSSL Project Authors. All Rights Reserved.
-#
-# Licensed under the OpenSSL license (the "License").  You may not use
-# this file except in compliance with the License.  You can obtain a copy
-# in the file LICENSE in the source distribution or at
-# https://www.openssl.org/source/license.html
-
-
-.hidden OPENSSL_cpuid_setup
-.section        .init
-        call    OPENSSL_cpuid_setup
-
-.hidden OPENSSL_ia32cap_P
-.comm   OPENSSL_ia32cap_P,16,4
-
-.text
-
-.globl  OPENSSL_atomic_add
-.type   OPENSSL_atomic_add, at function
-.align  16
-OPENSSL_atomic_add:
-.cfi_startproc
-        movl    (%rdi),%eax
-.Lspin: leaq    (%rsi,%rax,1),%r8
-.byte   0xf0
-        cmpxchgl        %r8d,(%rdi)
-        jne     .Lspin
-        movl    %r8d,%eax
-.byte   0x48,0x98
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   OPENSSL_atomic_add,.-OPENSSL_atomic_add
-
-.globl  OPENSSL_rdtsc
-.type   OPENSSL_rdtsc, at function
-.align  16
-OPENSSL_rdtsc:
-.cfi_startproc
-        rdtsc
-        shlq    $32,%rdx
-        orq     %rdx,%rax
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   OPENSSL_rdtsc,.-OPENSSL_rdtsc
-
-.globl  OPENSSL_ia32_cpuid
-.type   OPENSSL_ia32_cpuid, at function
-.align  16
-OPENSSL_ia32_cpuid:
-.cfi_startproc
-        movq    %rbx,%r8
-.cfi_register   %rbx,%r8
-
-        xorl    %eax,%eax
-        movq    %rax,8(%rdi)
-        cpuid
-        movl    %eax,%r11d
-
-        xorl    %eax,%eax
-        cmpl    $0x756e6547,%ebx
-        setne   %al
-        movl    %eax,%r9d
-        cmpl    $0x49656e69,%edx
-        setne   %al
-        orl     %eax,%r9d
-        cmpl    $0x6c65746e,%ecx
-        setne   %al
-        orl     %eax,%r9d
-        jz      .Lintel
-
-        cmpl    $0x68747541,%ebx
-        setne   %al
-        movl    %eax,%r10d
-        cmpl    $0x69746E65,%edx
-        setne   %al
-        orl     %eax,%r10d
-        cmpl    $0x444D4163,%ecx
-        setne   %al
-        orl     %eax,%r10d
-        jnz     .Lintel
-
-
-        movl    $0x80000000,%eax
-        cpuid
-        cmpl    $0x80000001,%eax
-        jb      .Lintel
-        movl    %eax,%r10d
-        movl    $0x80000001,%eax
-        cpuid
-        orl     %ecx,%r9d
-        andl    $0x00000801,%r9d
-
-        cmpl    $0x80000008,%r10d
-        jb      .Lintel
-
-        movl    $0x80000008,%eax
-        cpuid
-        movzbq  %cl,%r10
-        incq    %r10
-
-        movl    $1,%eax
-        cpuid
-        btl     $28,%edx
-        jnc     .Lgeneric
-        shrl    $16,%ebx
-        cmpb    %r10b,%bl
-        ja      .Lgeneric
-        andl    $0xefffffff,%edx
-        jmp     .Lgeneric
-
-.Lintel:
-        cmpl    $4,%r11d
-        movl    $-1,%r10d
-        jb      .Lnocacheinfo
-
-        movl    $4,%eax
-        movl    $0,%ecx
-        cpuid
-        movl    %eax,%r10d
-        shrl    $14,%r10d
-        andl    $0xfff,%r10d
-
-.Lnocacheinfo:
-        movl    $1,%eax
-        cpuid
-        movd    %eax,%xmm0
-        andl    $0xbfefffff,%edx
-        cmpl    $0,%r9d
-        jne     .Lnotintel
-        orl     $0x40000000,%edx
-        andb    $15,%ah
-        cmpb    $15,%ah
-        jne     .LnotP4
-        orl     $0x00100000,%edx
-.LnotP4:
-        cmpb    $6,%ah
-        jne     .Lnotintel
-        andl    $0x0fff0ff0,%eax
-        cmpl    $0x00050670,%eax
-        je      .Lknights
-        cmpl    $0x00080650,%eax
-        jne     .Lnotintel
-.Lknights:
-        andl    $0xfbffffff,%ecx
-
-.Lnotintel:
-        btl     $28,%edx
-        jnc     .Lgeneric
-        andl    $0xefffffff,%edx
-        cmpl    $0,%r10d
-        je      .Lgeneric
-
-        orl     $0x10000000,%edx
-        shrl    $16,%ebx
-        cmpb    $1,%bl
-        ja      .Lgeneric
-        andl    $0xefffffff,%edx
-.Lgeneric:
-        andl    $0x00000800,%r9d
-        andl    $0xfffff7ff,%ecx
-        orl     %ecx,%r9d
-
-        movl    %edx,%r10d
-
-        cmpl    $7,%r11d
-        jb      .Lno_extended_info
-        movl    $7,%eax
-        xorl    %ecx,%ecx
-        cpuid
-        btl     $26,%r9d
-        jc      .Lnotknights
-        andl    $0xfff7ffff,%ebx
-.Lnotknights:
-        movd    %xmm0,%eax
-        andl    $0x0fff0ff0,%eax
-        cmpl    $0x00050650,%eax
-        jne     .Lnotskylakex
-        andl    $0xfffeffff,%ebx
-
-.Lnotskylakex:
-        movl    %ebx,8(%rdi)
-        movl    %ecx,12(%rdi)
-.Lno_extended_info:
-
-        btl     $27,%r9d
-        jnc     .Lclear_avx
-        xorl    %ecx,%ecx
-.byte   0x0f,0x01,0xd0
-        andl    $0xe6,%eax
-        cmpl    $0xe6,%eax
-        je      .Ldone
-        andl    $0x3fdeffff,8(%rdi)
-
-
-
-
-        andl    $6,%eax
-        cmpl    $6,%eax
-        je      .Ldone
-.Lclear_avx:
-        movl    $0xefffe7ff,%eax
-        andl    %eax,%r9d
-        movl    $0x3fdeffdf,%eax
-        andl    %eax,8(%rdi)
-.Ldone:
-        shlq    $32,%r9
-        movl    %r10d,%eax
-        movq    %r8,%rbx
-.cfi_restore    %rbx
-        orq     %r9,%rax
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   OPENSSL_ia32_cpuid,.-OPENSSL_ia32_cpuid
-
-.globl  OPENSSL_cleanse
-.type   OPENSSL_cleanse, at function
-.align  16
-OPENSSL_cleanse:
-.cfi_startproc
-        xorq    %rax,%rax
-        cmpq    $15,%rsi
-        jae     .Lot
-        cmpq    $0,%rsi
-        je      .Lret
-.Little:
-        movb    %al,(%rdi)
-        subq    $1,%rsi
-        leaq    1(%rdi),%rdi
-        jnz     .Little
-.Lret:
-        .byte   0xf3,0xc3
-.align  16
-.Lot:
-        testq   $7,%rdi
-        jz      .Laligned
-        movb    %al,(%rdi)
-        leaq    -1(%rsi),%rsi
-        leaq    1(%rdi),%rdi
-        jmp     .Lot
-.Laligned:
-        movq    %rax,(%rdi)
-        leaq    -8(%rsi),%rsi
-        testq   $-8,%rsi
-        leaq    8(%rdi),%rdi
-        jnz     .Laligned
-        cmpq    $0,%rsi
-        jne     .Little
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   OPENSSL_cleanse,.-OPENSSL_cleanse
-
-.globl  CRYPTO_memcmp
-.type   CRYPTO_memcmp, at function
-.align  16
-CRYPTO_memcmp:
-.cfi_startproc
-        xorq    %rax,%rax
-        xorq    %r10,%r10
-        cmpq    $0,%rdx
-        je      .Lno_data
-        cmpq    $16,%rdx
-        jne     .Loop_cmp
-        movq    (%rdi),%r10
-        movq    8(%rdi),%r11
-        movq    $1,%rdx
-        xorq    (%rsi),%r10
-        xorq    8(%rsi),%r11
-        orq     %r11,%r10
-        cmovnzq %rdx,%rax
-        .byte   0xf3,0xc3
-
-.align  16
-.Loop_cmp:
-        movb    (%rdi),%r10b
-        leaq    1(%rdi),%rdi
-        xorb    (%rsi),%r10b
-        leaq    1(%rsi),%rsi
-        orb     %r10b,%al
-        decq    %rdx
-        jnz     .Loop_cmp
-        negq    %rax
-        shrq    $63,%rax
-.Lno_data:
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   CRYPTO_memcmp,.-CRYPTO_memcmp
-.globl  OPENSSL_wipe_cpu
-.type   OPENSSL_wipe_cpu, at function
-.align  16
-OPENSSL_wipe_cpu:
-.cfi_startproc
-        pxor    %xmm0,%xmm0
-        pxor    %xmm1,%xmm1
-        pxor    %xmm2,%xmm2
-        pxor    %xmm3,%xmm3
-        pxor    %xmm4,%xmm4
-        pxor    %xmm5,%xmm5
-        pxor    %xmm6,%xmm6
-        pxor    %xmm7,%xmm7
-        pxor    %xmm8,%xmm8
-        pxor    %xmm9,%xmm9
-        pxor    %xmm10,%xmm10
-        pxor    %xmm11,%xmm11
-        pxor    %xmm12,%xmm12
-        pxor    %xmm13,%xmm13
-        pxor    %xmm14,%xmm14
-        pxor    %xmm15,%xmm15
-        xorq    %rcx,%rcx
-        xorq    %rdx,%rdx
-        xorq    %rsi,%rsi
-        xorq    %rdi,%rdi
-        xorq    %r8,%r8
-        xorq    %r9,%r9
-        xorq    %r10,%r10
-        xorq    %r11,%r11
-        leaq    8(%rsp),%rax
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   OPENSSL_wipe_cpu,.-OPENSSL_wipe_cpu
-.globl  OPENSSL_instrument_bus
-.type   OPENSSL_instrument_bus, at function
-.align  16
-OPENSSL_instrument_bus:
-.cfi_startproc
-        movq    %rdi,%r10
-        movq    %rsi,%rcx
-        movq    %rsi,%r11
-
-        rdtsc
-        movl    %eax,%r8d
-        movl    $0,%r9d
-        clflush (%r10)
-.byte   0xf0
-        addl    %r9d,(%r10)
-        jmp     .Loop
-.align  16
-.Loop:  rdtsc
-        movl    %eax,%edx
-        subl    %r8d,%eax
-        movl    %edx,%r8d
-        movl    %eax,%r9d
-        clflush (%r10)
-.byte   0xf0
-        addl    %eax,(%r10)
-        leaq    4(%r10),%r10
-        subq    $1,%rcx
-        jnz     .Loop
-
-        movq    %r11,%rax
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   OPENSSL_instrument_bus,.-OPENSSL_instrument_bus
-
-.globl  OPENSSL_instrument_bus2
-.type   OPENSSL_instrument_bus2, at function
-.align  16
-OPENSSL_instrument_bus2:
-.cfi_startproc
-        movq    %rdi,%r10
-        movq    %rsi,%rcx
-        movq    %rdx,%r11
-        movq    %rcx,8(%rsp)
-
-        rdtsc
-        movl    %eax,%r8d
-        movl    $0,%r9d
-
-        clflush (%r10)
-.byte   0xf0
-        addl    %r9d,(%r10)
-
-        rdtsc
-        movl    %eax,%edx
-        subl    %r8d,%eax
-        movl    %edx,%r8d
-        movl    %eax,%r9d
-.Loop2:
-        clflush (%r10)
-.byte   0xf0
-        addl    %eax,(%r10)
-
-        subq    $1,%r11
-        jz      .Ldone2
-
-        rdtsc
-        movl    %eax,%edx
-        subl    %r8d,%eax
-        movl    %edx,%r8d
-        cmpl    %r9d,%eax
-        movl    %eax,%r9d
-        movl    $0,%edx
-        setne   %dl
-        subq    %rdx,%rcx
-        leaq    (%r10,%rdx,4),%r10
-        jnz     .Loop2
-
-.Ldone2:
-        movq    8(%rsp),%rax
-        subq    %rcx,%rax
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   OPENSSL_instrument_bus2,.-OPENSSL_instrument_bus2
-.globl  OPENSSL_ia32_rdrand_bytes
-.type   OPENSSL_ia32_rdrand_bytes, at function
-.align  16
-OPENSSL_ia32_rdrand_bytes:
-.cfi_startproc
-        xorq    %rax,%rax
-        cmpq    $0,%rsi
-        je      .Ldone_rdrand_bytes
-
-        movq    $8,%r11
-.Loop_rdrand_bytes:
-.byte   73,15,199,242
-        jc      .Lbreak_rdrand_bytes
-        decq    %r11
-        jnz     .Loop_rdrand_bytes
-        jmp     .Ldone_rdrand_bytes
-
-.align  16
-.Lbreak_rdrand_bytes:
-        cmpq    $8,%rsi
-        jb      .Ltail_rdrand_bytes
-        movq    %r10,(%rdi)
-        leaq    8(%rdi),%rdi
-        addq    $8,%rax
-        subq    $8,%rsi
-        jz      .Ldone_rdrand_bytes
-        movq    $8,%r11
-        jmp     .Loop_rdrand_bytes
-
-.align  16
-.Ltail_rdrand_bytes:
-        movb    %r10b,(%rdi)
-        leaq    1(%rdi),%rdi
-        incq    %rax
-        shrq    $8,%r10
-        decq    %rsi
-        jnz     .Ltail_rdrand_bytes
-
-.Ldone_rdrand_bytes:
-        xorq    %r10,%r10
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   OPENSSL_ia32_rdrand_bytes,.-OPENSSL_ia32_rdrand_bytes
-.globl  OPENSSL_ia32_rdseed_bytes
-.type   OPENSSL_ia32_rdseed_bytes, at function
-.align  16
-OPENSSL_ia32_rdseed_bytes:
-.cfi_startproc
-        xorq    %rax,%rax
-        cmpq    $0,%rsi
-        je      .Ldone_rdseed_bytes
-
-        movq    $8,%r11
-.Loop_rdseed_bytes:
-.byte   73,15,199,250
-        jc      .Lbreak_rdseed_bytes
-        decq    %r11
-        jnz     .Loop_rdseed_bytes
-        jmp     .Ldone_rdseed_bytes
-
-.align  16
-.Lbreak_rdseed_bytes:
-        cmpq    $8,%rsi
-        jb      .Ltail_rdseed_bytes
-        movq    %r10,(%rdi)
-        leaq    8(%rdi),%rdi
-        addq    $8,%rax
-        subq    $8,%rsi
-        jz      .Ldone_rdseed_bytes
-        movq    $8,%r11
-        jmp     .Loop_rdseed_bytes
-
-.align  16
-.Ltail_rdseed_bytes:
-        movb    %r10b,(%rdi)
-        leaq    1(%rdi),%rdi
-        incq    %rax
-        shrq    $8,%r10
-        decq    %rsi
-        jnz     .Ltail_rdseed_bytes
-
-.Ldone_rdseed_bytes:
-        xorq    %r10,%r10
-        .byte   0xf3,0xc3
-.cfi_endproc
-.size   OPENSSL_ia32_rdseed_bytes,.-OPENSSL_ia32_rdseed_bytes
diff --git a/CryptoPkg/Library/OpensslLib/process_files.pl b/CryptoPkg/Library/OpensslLib/process_files.pl
deleted file mode 100755
index fba97e7c39a7..000000000000
--- a/CryptoPkg/Library/OpensslLib/process_files.pl
+++ /dev/null
@@ -1,529 +0,0 @@
-#!/usr/bin/perl -w
-#
-# This script runs the OpenSSL Configure script, then processes the
-# resulting file list into our local OpensslLib[Crypto].inf and also
-# takes copies of opensslconf.h and dso_conf.h.
-#
-# This only needs to be done once by a developer when updating to a
-# new version of OpenSSL (or changing options, etc.). Normal users
-# do not need to do this, since the results are stored in the EDK2
-# git repository for them.
-#
-# Due to the script wrapping required to process the OpenSSL
-# configuration data, each native architecture must be processed
-# individually by the maintainer (in addition to the standard version):
-#   ./process_files.pl
-#   ./process_files.pl X64
-#   ./process_files.pl [Arch]
-#
-# Follow the command below to update the INF file:
-# 1. OpensslLib.inf ,OpensslLibCrypto.inf and OpensslLibFull.inf
-# ./process_files.pl
-# 2. OpensslLibAccel.inf and OpensslLibFullAccel.inf
-# ./process_files.pl X64
-# ./process_files.pl X64Gcc
-# ./process_files.pl IA32
-# ./process_files.pl IA32Gcc
-
-use strict;
-use Cwd;
-use File::Copy;
-use File::Basename;
-use File::Path qw(make_path remove_tree);
-use Text::Tabs;
-
-my $comment_character;
-
-#
-# OpenSSL perlasm generator script does not transfer the copyright header
-#
-sub copy_license_header
-{
-    my @args = split / /, shift;    #Separate args by spaces
-    my $source = $args[1];          #Source file is second (after "perl")
-    my $target = pop @args;         #Target file is always last
-    chop ($target);                 #Remove newline char
-
-    my $temp_file_name = "license.tmp";
-    open (my $source_file, "<" . $source) || die $source;
-    open (my $target_file, "<" . $target) || die $target;
-    open (my $temp_file, ">" . $temp_file_name) || die $temp_file_name;
-
-    #Add "generated file" warning
-    $source =~ s/^..//;             #Remove leading "./"
-    print ($temp_file "$comment_character WARNING: do not edit!\r\n");
-    print ($temp_file "$comment_character Generated from $source\r\n");
-    print ($temp_file "$comment_character\r\n");
-
-    #Copy source file header to temp file
-    while (my $line = <$source_file>) {
-        next if ($line =~ /#!/);    #Ignore shebang line
-        $line =~ s/#/$comment_character/;            #Fix comment character for assembly
-        $line =~ s/\s+$/\r\n/;      #Trim trailing whitepsace, fixup line endings
-        print ($temp_file $line);
-        last if ($line =~ /http/);  #Last line of copyright header contains a web link
-    }
-    print ($temp_file "\r\n");
-    #Retrieve generated assembly contents
-    while (my $line = <$target_file>) {
-        $line =~ s/\s+$/\r\n/;      #Trim trailing whitepsace, fixup line endings
-        print ($temp_file expand ($line));  #expand() replaces tabs with spaces
-    }
-
-    close ($source_file);
-    close ($target_file);
-    close ($temp_file);
-
-    move ($temp_file_name, $target) ||
-        die "Cannot replace \"" . $target . "\"!";
-}
-
-#
-# Find the openssl directory name for use lib. We have to do this
-# inside of BEGIN. The variables we create here, however, don't seem
-# to be available to the main script, so we have to repeat the
-# exercise.
-#
-my $inf_file;
-my $OPENSSL_PATH;
-my $uefi_config;
-my $extension;
-my $compile;
-my $arch;
-my @inf;
-
-BEGIN {
-    $inf_file = "OpensslLib.inf";
-    $uefi_config = "UEFI";
-    $arch = shift;
-
-    if (defined $arch) {
-        if (uc ($arch) eq "X64") {
-            $arch = "X64";
-            $uefi_config = "UEFI-x86_64";
-            $extension = "nasm";
-            $compile = "MSFT";
-            $comment_character = ";";
-        } elsif (uc ($arch) eq "X64GCC") {
-            $arch = "X64Gcc";
-            $uefi_config = "UEFI-x86_64-GCC";
-            $extension = "S";
-            $compile = "GCC";
-            $comment_character = "#";
-        } elsif (uc ($arch) eq "IA32") {
-            $arch = "IA32";
-            $uefi_config = "UEFI-x86";
-            $extension = "nasm";
-            $compile = "MSFT";
-            $comment_character = ";";
-        } elsif (uc ($arch) eq "IA32GCC") {
-            $arch = "IA32Gcc";
-            $uefi_config = "UEFI-x86-GCC";
-            $extension = "S";
-            $compile = "GCC";
-            $comment_character = "#";
-        } else {
-            die "Unsupported architecture \"" . $arch . "\"!";
-        }
-        $inf_file = "OpensslLibAccel.inf";
-        if ($extension eq "nasm") {
-            if (`nasm -v 2>&1`) {
-                #Presence of nasm executable will trigger inclusion of AVX instructions
-                die "\nCannot run assembly generators with NASM in path!\n\n";
-            }
-        }
-
-        # Prepare assembly folder
-        if (-d $arch) {
-            opendir my $dir, $arch ||
-                die "Cannot open assembly folder \"" . $arch . "\"!";
-            while (defined (my $file = readdir $dir)) {
-                if (-d "$arch/$file") {
-                    next if $file eq ".";
-                    next if $file eq "..";
-                    remove_tree ("$arch/$file", {safe => 1}) ||
-                       die "Cannot clean assembly folder \"" . "$arch/$file" . "\"!";
-                }
-            }
-
-        } else {
-            mkdir $arch ||
-                die "Cannot create assembly folder \"" . $arch . "\"!";
-        }
-    }
-
-    # Read the contents of the inf file
-    open( FD, "<" . $inf_file ) ||
-        die "Cannot open \"" . $inf_file . "\"!";
-    @inf = (<FD>);
-    close(FD) ||
-        die "Cannot close \"" . $inf_file . "\"!";
-
-    foreach (@inf) {
-        if (/DEFINE\s+OPENSSL_PATH\s*=\s*([a-z]+)/) {
-
-            # We need to run Configure before we can include its result...
-            $OPENSSL_PATH = $1;
-
-            my $basedir = getcwd();
-
-            chdir($OPENSSL_PATH) ||
-                die "Cannot change to OpenSSL directory \"" . $OPENSSL_PATH . "\"";
-
-            # Configure UEFI
-            system(
-                "./Configure",
-                "--config=../UefiAsm.conf",
-                "$uefi_config",
-                "no-afalgeng",
-                "no-async",
-                "no-autoerrinit",
-                "no-autoload-config",
-                "no-bf",
-                "no-blake2",
-                "no-camellia",
-                "no-capieng",
-                "no-cast",
-                "no-chacha",
-                "no-cms",
-                "no-ct",
-                "no-deprecated",
-                "no-des",
-                "no-dgram",
-                "no-dsa",
-                "no-dynamic-engine",
-                "no-ec2m",
-                "no-engine",
-                "no-err",
-                "no-filenames",
-                "no-gost",
-                "no-hw",
-                "no-idea",
-                "no-md4",
-                "no-mdc2",
-                "no-pic",
-                "no-ocb",
-                "no-poly1305",
-                "no-posix-io",
-                "no-rc2",
-                "no-rc4",
-                "no-rfc3779",
-                "no-rmd160",
-                "no-scrypt",
-                "no-seed",
-                "no-sock",
-                "no-srp",
-                "no-ssl",
-                "no-stdio",
-                "no-threads",
-                "no-ts",
-                "no-ui",
-                "no-whirlpool",
-                # OpenSSL1_1_1b doesn't support default rand-seed-os for UEFI
-                # UEFI only support --with-rand-seed=none
-                "--with-rand-seed=none"
-                ) == 0 ||
-                    die "OpenSSL Configure failed!\n";
-
-            # Generate opensslconf.h per config data
-            system(
-                "perl -I. -Mconfigdata util/dofile.pl " .
-                "include/openssl/opensslconf.h.in " .
-                "> include/openssl/opensslconf.h"
-                ) == 0 ||
-                    die "Failed to generate opensslconf.h!\n";
-
-            # Generate dso_conf.h per config data
-            system(
-                "perl -I. -Mconfigdata util/dofile.pl " .
-                "include/crypto/dso_conf.h.in " .
-                "> include/crypto/dso_conf.h"
-                ) == 0 ||
-                    die "Failed to generate dso_conf.h!\n";
-
-            chdir($basedir) ||
-                die "Cannot change to base directory \"" . $basedir . "\"";
-
-            push @INC, $1;
-            last;
-        }
-    }
-}
-
-#
-# Retrieve file lists from OpenSSL configdata
-#
-use configdata qw/%unified_info/;
-use configdata qw/%config/;
-use configdata qw/%target/;
-
-#
-# Collect build flags from configdata
-#
-my $flags = "";
-foreach my $f (@{$config{lib_defines}}) {
-    $flags .= " -D$f";
-}
-
-my @cryptofilelist = ();
-my @sslfilelist = ();
-my @ecfilelist = ();
-my @asmfilelist = ();
-my @asmbuild = ();
-foreach my $product ((@{$unified_info{libraries}},
-                      @{$unified_info{engines}})) {
-    foreach my $o (@{$unified_info{sources}->{$product}}) {
-        foreach my $s (@{$unified_info{sources}->{$o}}) {
-            # No need to add unused files in UEFI.
-            # So it can reduce porting time, compile time, library size.
-            next if $s =~ "crypto/bio/b_print.c";
-            next if $s =~ "crypto/rand/randfile.c";
-            next if $s =~ "crypto/store/";
-            next if $s =~ "crypto/err/err_all.c";
-            next if $s =~ "crypto/aes/aes_ecb.c";
-
-            if ($unified_info{generate}->{$s}) {
-                if (defined $arch) {
-                    my $buildstring = "perl";
-                    foreach my $arg (@{$unified_info{generate}->{$s}}) {
-                        if ($arg =~ ".pl") {
-                            $buildstring .= " ./openssl/$arg";
-                        } elsif ($arg =~ "PERLASM_SCHEME") {
-                            $buildstring .= " $target{perlasm_scheme}";
-                        } elsif ($arg =~ "LIB_CFLAGS") {
-                            $buildstring .= "$flags";
-                        }
-                    }
-                    ($s, my $path, undef) = fileparse($s, qr/\.[^.]*/);
-                    $buildstring .= " ./$arch/$path$s.$extension";
-                    make_path ("./$arch/$path");
-                    push @asmbuild, "$buildstring\n";
-                    push @asmfilelist, "  $arch/$path$s.$extension  |$compile\r\n";
-                }
-                next;
-            }
-            if ($s =~ "/ec/" || $s =~ "/sm2/") {
-                push @ecfilelist, '  $(OPENSSL_PATH)/' . $s . "\r\n";
-                next;
-            }
-            if ($product =~ "libssl") {
-                push @sslfilelist, '  $(OPENSSL_PATH)/' . $s . "\r\n";
-                next;
-            }
-            push @cryptofilelist, '  $(OPENSSL_PATH)/' . $s . "\r\n";
-        }
-    }
-}
-
-
-#
-# Update the perl script to generate the missing header files
-#
-my @dir_list = ();
-for (sort keys %{$unified_info{dirinfo}}){
-  push @dir_list,$_;
-}
-
-my $dir = getcwd();
-my @files = ();
-my @headers = ();
-chdir ("openssl");
-foreach(@dir_list){
-  @files = glob($_."/*.h");
-  push @headers, @files;
-}
-chdir ($dir);
-
-foreach (@headers){
-  if(/ssl/){
-    push @sslfilelist, '  $(OPENSSL_PATH)/' . $_ . "\r\n";
-    next;
-  }
-  if ($_ =~ "/ec/" || $_ =~ "/sm2/") {
-    push @ecfilelist, '  $(OPENSSL_PATH)/' . $_ . "\r\n";
-    next;
-  }
-  push @cryptofilelist, '  $(OPENSSL_PATH)/' . $_ . "\r\n";
-}
-
-
-#
-# Generate assembly files
-#
-if (@asmbuild) {
-    print "\n--> Generating assembly files ... ";
-    foreach my $buildstring (@asmbuild) {
-        system ("$buildstring");
-        copy_license_header ($buildstring);
-    }
-    print "Done!";
-}
-
-#
-# Update OpensslLib.inf with autogenerated file list
-#
-my @new_inf = ();
-my $subbing = 0;
-print "\n--> Updating $inf_file ... ";
-foreach (@inf) {
-    if ($_ =~ "DEFINE OPENSSL_FLAGS_CONFIG") {
-        push @new_inf, "  DEFINE OPENSSL_FLAGS_CONFIG    =" . $flags . "\r\n";
-        next;
-    }
-    if ( $_ =~ "# Autogenerated files list starts here" ) {
-        push @new_inf, $_, @cryptofilelist, @sslfilelist;
-        $subbing = 1;
-        next;
-    }
-    if (defined $arch) {
-        my $arch_asmfile_flag = "# Autogenerated " . $arch . " files list starts here";
-        if ($_ =~ $arch_asmfile_flag) {
-            push @new_inf, $_, @asmfilelist;
-            $subbing = 1;
-            next;
-        }
-    }
-    if ( $_ =~ "# Autogenerated files list ends here" ) {
-        push @new_inf, $_;
-        $subbing = 0;
-        next;
-    }
-
-    push @new_inf, $_
-        unless ($subbing);
-}
-
-my $new_inf_file = $inf_file . ".new";
-open( FD, ">" . $new_inf_file ) ||
-    die $new_inf_file;
-print( FD @new_inf ) ||
-    die $new_inf_file;
-close(FD) ||
-    die $new_inf_file;
-rename( $new_inf_file, $inf_file ) ||
-    die "rename $inf_file";
-print "Done!";
-
-if (!defined $arch) {
-    #
-    # Update OpensslLibCrypto.inf with auto-generated file list (no libssl)
-    #
-    $inf_file = "OpensslLibCrypto.inf";
-
-    # Read the contents of the inf file
-    @inf = ();
-    @new_inf = ();
-    open( FD, "<" . $inf_file ) ||
-        die "Cannot open \"" . $inf_file . "\"!";
-    @inf = (<FD>);
-    close(FD) ||
-        die "Cannot close \"" . $inf_file . "\"!";
-
-    $subbing = 0;
-    print "\n--> Updating OpensslLibCrypto.inf ... ";
-    foreach (@inf) {
-        if ( $_ =~ "# Autogenerated files list starts here" ) {
-            push @new_inf, $_, @cryptofilelist;
-            $subbing = 1;
-            next;
-        }
-        if ( $_ =~ "# Autogenerated files list ends here" ) {
-            push @new_inf, $_;
-            $subbing = 0;
-            next;
-        }
-
-        push @new_inf, $_
-            unless ($subbing);
-    }
-
-    $new_inf_file = $inf_file . ".new";
-    open( FD, ">" . $new_inf_file ) ||
-        die $new_inf_file;
-    print( FD @new_inf ) ||
-        die $new_inf_file;
-    close(FD) ||
-        die $new_inf_file;
-    rename( $new_inf_file, $inf_file ) ||
-        die "rename $inf_file";
-    print "Done!";
-}
-
-#
-# Update OpensslLibFull.inf with autogenerated file list
-#
-if (!defined $arch) {
-    $inf_file = "OpensslLibFull.inf";
-} else {
-    $inf_file = "OpensslLibFullAccel.inf";
-}
-# Read the contents of the inf file
- at inf = ();
- at new_inf = ();
-open( FD, "<" . $inf_file ) ||
-    die "Cannot open \"" . $inf_file . "\"!";
- at inf = (<FD>);
-close(FD) ||
-    die "Cannot close \"" . $inf_file . "\"!";
-$subbing = 0;
-print "\n--> Updating $inf_file ... ";
-foreach (@inf) {
-    if ( $_ =~ "# Autogenerated files list starts here" ) {
-        push @new_inf, $_, @cryptofilelist, @sslfilelist, @ecfilelist;
-        $subbing = 1;
-        next;
-    }
-    if (defined $arch) {
-        my $arch_asmfile_flag = "# Autogenerated " . $arch . " files list starts here";
-        if ($_ =~ $arch_asmfile_flag) {
-            push @new_inf, $_, @asmfilelist;
-            $subbing = 1;
-            next;
-        }
-    }
-    if ( $_ =~ "# Autogenerated files list ends here" ) {
-        push @new_inf, $_;
-        $subbing = 0;
-        next;
-    }
-
-    push @new_inf, $_
-        unless ($subbing);
-}
-
-$new_inf_file = $inf_file . ".new";
-open( FD, ">" . $new_inf_file ) ||
-    die $new_inf_file;
-print( FD @new_inf ) ||
-    die $new_inf_file;
-close(FD) ||
-    die $new_inf_file;
-rename( $new_inf_file, $inf_file ) ||
-    die "rename $inf_file";
-print "Done!";
-
-#
-# Copy opensslconf.h and dso_conf.h generated from OpenSSL Configuration
-#
-print "\n--> Duplicating opensslconf.h into Include/openssl ... ";
-system(
-    "perl -pe 's/\\n/\\r\\n/' " .
-    "< " . $OPENSSL_PATH . "/include/openssl/opensslconf.h " .
-    "> " . $OPENSSL_PATH . "/../../Include/openssl/opensslconf.h"
-    ) == 0 ||
-    die "Cannot copy opensslconf.h!";
-print "Done!";
-
-print "\n--> Duplicating dso_conf.h into Include/crypto ... ";
-system(
-    "perl -pe 's/\\n/\\r\\n/' " .
-    "< " . $OPENSSL_PATH . "/include/crypto/dso_conf.h" .
-    "> " . $OPENSSL_PATH . "/../../Include/crypto/dso_conf.h"
-    ) == 0 ||
-    die "Cannot copy dso_conf.h!";
-print "Done!\n";
-
-print "\nProcessing Files Done!\n";
-
-exit(0);
-
-- 
2.39.2



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#101081): https://edk2.groups.io/g/devel/message/101081
Mute This Topic: https://groups.io/mt/97576433/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-




More information about the edk2-devel-archive mailing list