| diff -burN android-openssl.orig/import_openssl.sh android-openssl/import_openssl.sh |
| --- android-openssl.orig/import_openssl.sh 2014-04-03 13:23:34.925663547 +0200 |
| +++ android-openssl/import_openssl.sh 2014-04-03 14:13:56.497704796 +0200 |
| @@ -118,6 +118,13 @@ |
| fi |
| } |
| |
| +function default_asm_mac_ia32_file () { |
| + if [ "$2" ]; then |
| + echo "$2" |
| + else |
| + echo "${1%%.pl}-mac.S" |
| + fi |
| +} |
| # Generate an ARM assembly file. |
| # $1: generator (perl script) |
| # $2: [optional] output file name |
| @@ -148,6 +155,11 @@ |
| perl "$1" elf "$OUT" > "$OUT" |
| } |
| |
| +function gen_asm_mac_ia32 () { |
| + local OUT |
| + OUT=$(default_asm_mac_ia32_file "$@") |
| + perl "$1" macosx "$OUT" > "$OUT" |
| +} |
| |
| # Filter all items in a list that match a given pattern. |
| # $1: space-separated list |
| @@ -415,6 +427,24 @@ |
| gen_asm_x86_64 crypto/rc4/asm/rc4-x86_64.pl |
| gen_asm_x86_64 crypto/rc4/asm/rc4-md5-x86_64.pl |
| |
| + # Generate mac_ia32 asm |
| + gen_asm_mac_ia32 crypto/x86cpuid.pl |
| + gen_asm_mac_ia32 crypto/aes/asm/aes-586.pl |
| + gen_asm_mac_ia32 crypto/aes/asm/vpaes-x86.pl |
| + gen_asm_mac_ia32 crypto/aes/asm/aesni-x86.pl |
| + gen_asm_mac_ia32 crypto/bn/asm/bn-586.pl |
| + gen_asm_mac_ia32 crypto/bn/asm/co-586.pl |
| + gen_asm_mac_ia32 crypto/bn/asm/x86-mont.pl |
| + gen_asm_mac_ia32 crypto/bn/asm/x86-gf2m.pl |
| + gen_asm_mac_ia32 crypto/modes/asm/ghash-x86.pl |
| + gen_asm_mac_ia32 crypto/sha/asm/sha1-586.pl |
| + gen_asm_mac_ia32 crypto/sha/asm/sha256-586.pl |
| + gen_asm_mac_ia32 crypto/sha/asm/sha512-586.pl |
| + gen_asm_mac_ia32 crypto/md5/asm/md5-586.pl |
| + gen_asm_mac_ia32 crypto/des/asm/des-586.pl |
| + gen_asm_mac_ia32 crypto/des/asm/crypt586.pl |
| + gen_asm_mac_ia32 crypto/bf/asm/bf-586.pl |
| + |
| # Setup android.testssl directory |
| mkdir android.testssl |
| cat test/testssl | \ |
| diff -burN android-openssl.orig/openssl.config android-openssl/openssl.config |
| --- android-openssl.orig/openssl.config 2014-04-03 13:23:34.989663548 +0200 |
| +++ android-openssl/openssl.config 2014-04-03 14:14:40.309705394 +0200 |
| @@ -270,6 +270,22 @@ |
| OPENSSL_CPUID_OBJ \ |
| " |
| |
| +OPENSSL_CRYPTO_DEFINES_mac_ia32="\ |
| +OPENSSL_BN_ASM_GF2m \ |
| +OPENSSL_BN_ASM_MONT \ |
| +OPENSSL_BN_ASM_PART_WORDS \ |
| +AES_ASM \ |
| +GHASH_ASM \ |
| +SHA1_ASM \ |
| +SHA256_ASM \ |
| +SHA512_ASM \ |
| +MD5_ASM \ |
| +DES_PTR \ |
| +DES_RISC1 \ |
| +DES_UNROLL \ |
| +OPENSSL_CPUID_OBJ \ |
| +" |
| + |
| OPENSSL_CRYPTO_INCLUDES="\ |
| . \ |
| include \ |
| @@ -848,6 +864,35 @@ |
| crypto/mem_clr.c \ |
| " |
| |
| +OPENSSL_CRYPTO_SOURCES_mac_ia32="\ |
| +crypto/aes/asm/aes-586-mac.S \ |
| +crypto/aes/asm/aesni-x86-mac.S \ |
| +crypto/aes/asm/vpaes-x86-mac.S \ |
| +crypto/bf/asm/bf-586-mac.S \ |
| +crypto/bn/asm/bn-586-mac.S \ |
| +crypto/bn/asm/co-586-mac.S \ |
| +crypto/bn/asm/x86-gf2m-mac.S \ |
| +crypto/bn/asm/x86-mont-mac.S \ |
| +crypto/des/asm/crypt586-mac.S \ |
| +crypto/des/asm/des-586-mac.S \ |
| +crypto/md5/asm/md5-586-mac.S \ |
| +crypto/modes/asm/ghash-x86-mac.S \ |
| +crypto/sha/asm/sha1-586-mac.S \ |
| +crypto/sha/asm/sha256-586-mac.S \ |
| +crypto/sha/asm/sha512-586-mac.S \ |
| +crypto/x86cpuid-mac.S \ |
| +" |
| + |
| +OPENSSL_CRYPTO_SOURCES_EXCLUDES_mac_ia32="\ |
| +crypto/aes/aes_core.c \ |
| +crypto/aes/aes_cbc.c \ |
| +crypto/bf/bf_enc.c \ |
| +crypto/bn/bn_asm.c \ |
| +crypto/des/des_enc.c \ |
| +crypto/des/fcrypt_b.c \ |
| +crypto/mem_clr.c \ |
| +" |
| + |
| OPENSSL_CRYPTO_SOURCES_x86_64="\ |
| crypto/aes/asm/aes-x86_64.S \ |
| crypto/aes/asm/aesni-x86_64.S \ |
| @@ -1016,6 +1061,7 @@ |
| chacha20poly1305.patch \ |
| neon_runtime.patch \ |
| paddingext.patch \ |
| +mac_ia32_assembly.patch \ |
| " |
| |
| OPENSSL_PATCHES_progs_SOURCES="\ |
| @@ -1089,3 +1135,22 @@ |
| include/openssl/lhash.h |
| ssl/ssl_sess.c |
| " |
| + |
| +OPENSSL_PATCHES_mac_ia32_assembly_SOURCES="\ |
| +crypto/aes/asm/aes-586-mac.S \ |
| +crypto/aes/asm/aesni-x86-mac.S \ |
| +crypto/aes/asm/vpaes-x86-mac.S \ |
| +crypto/bf/asm/bf-586-mac.S \ |
| +crypto/bn/asm/bn-586-mac.S \ |
| +crypto/bn/asm/co-586-mac.S \ |
| +crypto/bn/asm/x86-gf2m-mac.S \ |
| +crypto/bn/asm/x86-mont-mac.S \ |
| +crypto/des/asm/crypt586-mac.S \ |
| +crypto/des/asm/des-586-mac.S \ |
| +crypto/md5/asm/md5-586-mac.S \ |
| +crypto/modes/asm/ghash-x86-mac.S \ |
| +crypto/sha/asm/sha1-586-mac.S \ |
| +crypto/sha/asm/sha256-586-mac.S \ |
| +crypto/sha/asm/sha512-586-mac.S \ |
| +crypto/x86cpuid-mac.S \ |
| +" |
| diff -burN android-openssl.orig/patches/mac_ia32_assembly.patch android-openssl/patches/mac_ia32_assembly.patch |
| --- android-openssl.orig/patches/mac_ia32_assembly.patch 1970-01-01 01:00:00.000000000 +0100 |
| +++ android-openssl/patches/mac_ia32_assembly.patch 2014-04-03 14:13:56.505704796 +0200 |
| @@ -0,0 +1,16865 @@ |
| +From dee77b350211c7b5980f03cc67e30ebf616b029e Mon Sep 17 00:00:00 2001 |
| +From: =?UTF-8?q?H=C3=A5vard=20Molland?= <haavardm@opera.com> |
| +Date: Thu, 3 Apr 2014 10:58:22 +0200 |
| +Subject: [PATCH 4/4] Assembly files for OSX-32. |
| + |
| +Needed for compiling 32 bit OSX with assembly support. |
| +--- |
| + crypto/aes/asm/aes-586-mac.S | 3200 +++++++++++++++++++++++++++ |
| + crypto/aes/asm/aesni-x86-mac.S | 2107 ++++++++++++++++++ |
| + crypto/aes/asm/vpaes-x86-mac.S | 635 ++++++ |
| + crypto/bf/asm/bf-586-mac.S | 890 ++++++++ |
| + crypto/bn/asm/bn-586-mac.S | 1370 ++++++++++++ |
| + crypto/bn/asm/co-586-mac.S | 1246 +++++++++++ |
| + crypto/bn/asm/x86-gf2m-mac.S | 332 +++ |
| + crypto/bn/asm/x86-mont-mac.S | 336 +++ |
| + crypto/des/asm/crypt586-mac.S | 880 ++++++++ |
| + crypto/des/asm/des-586-mac.S | 1821 +++++++++++++++ |
| + crypto/md5/asm/md5-586-mac.S | 677 ++++++ |
| + crypto/modes/asm/ghash-x86-mac.S | 718 ++++++ |
| + crypto/sha/asm/sha1-586-mac.S | 1378 ++++++++++++ |
| + crypto/sha/asm/sha256-586-mac.S | 256 +++ |
| + crypto/sha/asm/sha512-586-mac.S | 561 +++++ |
| + crypto/x86cpuid-mac.S | 316 +++ |
| + import_openssl.sh | 32 +- |
| + openssl.config | 29 - |
| + 18 files changed, 16724 insertions(+), 60 deletions(-) |
| + create mode 100644 crypto/aes/asm/aes-586-mac.S |
| + create mode 100644 crypto/aes/asm/aesni-x86-mac.S |
| + create mode 100644 crypto/aes/asm/vpaes-x86-mac.S |
| + create mode 100644 crypto/bf/asm/bf-586-mac.S |
| + create mode 100644 crypto/bn/asm/bn-586-mac.S |
| + create mode 100644 crypto/bn/asm/co-586-mac.S |
| + create mode 100644 crypto/bn/asm/x86-gf2m-mac.S |
| + create mode 100644 crypto/bn/asm/x86-mont-mac.S |
| + create mode 100644 crypto/des/asm/crypt586-mac.S |
| + create mode 100644 crypto/des/asm/des-586-mac.S |
| + create mode 100644 crypto/md5/asm/md5-586-mac.S |
| + create mode 100644 crypto/modes/asm/ghash-x86-mac.S |
| + create mode 100644 crypto/sha/asm/sha1-586-mac.S |
| + create mode 100644 crypto/sha/asm/sha256-586-mac.S |
| + create mode 100644 crypto/sha/asm/sha512-586-mac.S |
| + create mode 100644 crypto/x86cpuid-mac.S |
| + |
| +diff --git a/crypto/aes/asm/aes-586-mac.S b/crypto/aes/asm/aes-586-mac.S |
| +new file mode 100644 |
| +index 0000000..15d5d7b |
| +--- /dev/null |
| ++++ b/crypto/aes/asm/aes-586-mac.S |
| +@@ -0,0 +1,3200 @@ |
| ++.file "aes-586.s" |
| ++.text |
| ++.align 4 |
| ++__x86_AES_encrypt_compact: |
| ++ movl %edi,20(%esp) |
| ++ xorl (%edi),%eax |
| ++ xorl 4(%edi),%ebx |
| ++ xorl 8(%edi),%ecx |
| ++ xorl 12(%edi),%edx |
| ++ movl 240(%edi),%esi |
| ++ leal -2(%esi,%esi,1),%esi |
| ++ leal (%edi,%esi,8),%esi |
| ++ movl %esi,24(%esp) |
| ++ movl -128(%ebp),%edi |
| ++ movl -96(%ebp),%esi |
| ++ movl -64(%ebp),%edi |
| ++ movl -32(%ebp),%esi |
| ++ movl (%ebp),%edi |
| ++ movl 32(%ebp),%esi |
| ++ movl 64(%ebp),%edi |
| ++ movl 96(%ebp),%esi |
| ++.align 4,0x90 |
| ++L000loop: |
| ++ movl %eax,%esi |
| ++ andl $255,%esi |
| ++ movzbl -128(%ebp,%esi,1),%esi |
| ++ movzbl %bh,%edi |
| ++ movzbl -128(%ebp,%edi,1),%edi |
| ++ shll $8,%edi |
| ++ xorl %edi,%esi |
| ++ movl %ecx,%edi |
| ++ shrl $16,%edi |
| ++ andl $255,%edi |
| ++ movzbl -128(%ebp,%edi,1),%edi |
| ++ shll $16,%edi |
| ++ xorl %edi,%esi |
| ++ movl %edx,%edi |
| ++ shrl $24,%edi |
| ++ movzbl -128(%ebp,%edi,1),%edi |
| ++ shll $24,%edi |
| ++ xorl %edi,%esi |
| ++ movl %esi,4(%esp) |
| ++ movl %ebx,%esi |
| ++ andl $255,%esi |
| ++ shrl $16,%ebx |
| ++ movzbl -128(%ebp,%esi,1),%esi |
| ++ movzbl %ch,%edi |
| ++ movzbl -128(%ebp,%edi,1),%edi |
| ++ shll $8,%edi |
| ++ xorl %edi,%esi |
| ++ movl %edx,%edi |
| ++ shrl $16,%edi |
| ++ andl $255,%edi |
| ++ movzbl -128(%ebp,%edi,1),%edi |
| ++ shll $16,%edi |
| ++ xorl %edi,%esi |
| ++ movl %eax,%edi |
| ++ shrl $24,%edi |
| ++ movzbl -128(%ebp,%edi,1),%edi |
| ++ shll $24,%edi |
| ++ xorl %edi,%esi |
| ++ movl %esi,8(%esp) |
| ++ movl %ecx,%esi |
| ++ andl $255,%esi |
| ++ shrl $24,%ecx |
| ++ movzbl -128(%ebp,%esi,1),%esi |
| ++ movzbl %dh,%edi |
| ++ movzbl -128(%ebp,%edi,1),%edi |
| ++ shll $8,%edi |
| ++ xorl %edi,%esi |
| ++ movl %eax,%edi |
| ++ shrl $16,%edi |
| ++ andl $255,%edx |
| ++ andl $255,%edi |
| ++ movzbl -128(%ebp,%edi,1),%edi |
| ++ shll $16,%edi |
| ++ xorl %edi,%esi |
| ++ movzbl %bh,%edi |
| ++ movzbl -128(%ebp,%edi,1),%edi |
| ++ shll $24,%edi |
| ++ xorl %edi,%esi |
| ++ andl $255,%edx |
| ++ movzbl -128(%ebp,%edx,1),%edx |
| ++ movzbl %ah,%eax |
| ++ movzbl -128(%ebp,%eax,1),%eax |
| ++ shll $8,%eax |
| ++ xorl %eax,%edx |
| ++ movl 4(%esp),%eax |
| ++ andl $255,%ebx |
| ++ movzbl -128(%ebp,%ebx,1),%ebx |
| ++ shll $16,%ebx |
| ++ xorl %ebx,%edx |
| ++ movl 8(%esp),%ebx |
| ++ movzbl -128(%ebp,%ecx,1),%ecx |
| ++ shll $24,%ecx |
| ++ xorl %ecx,%edx |
| ++ movl %esi,%ecx |
| ++ movl %ecx,%esi |
| ++ andl $2155905152,%esi |
| ++ movl %esi,%ebp |
| ++ shrl $7,%ebp |
| ++ leal (%ecx,%ecx,1),%edi |
| ++ subl %ebp,%esi |
| ++ andl $4278124286,%edi |
| ++ andl $454761243,%esi |
| ++ movl %ecx,%ebp |
| ++ xorl %edi,%esi |
| ++ xorl %esi,%ecx |
| ++ roll $24,%ecx |
| ++ xorl %esi,%ecx |
| ++ rorl $16,%ebp |
| ++ xorl %ebp,%ecx |
| ++ rorl $8,%ebp |
| ++ xorl %ebp,%ecx |
| ++ movl %edx,%esi |
| ++ andl $2155905152,%esi |
| ++ movl %esi,%ebp |
| ++ shrl $7,%ebp |
| ++ leal (%edx,%edx,1),%edi |
| ++ subl %ebp,%esi |
| ++ andl $4278124286,%edi |
| ++ andl $454761243,%esi |
| ++ movl %edx,%ebp |
| ++ xorl %edi,%esi |
| ++ xorl %esi,%edx |
| ++ roll $24,%edx |
| ++ xorl %esi,%edx |
| ++ rorl $16,%ebp |
| ++ xorl %ebp,%edx |
| ++ rorl $8,%ebp |
| ++ xorl %ebp,%edx |
| ++ movl %eax,%esi |
| ++ andl $2155905152,%esi |
| ++ movl %esi,%ebp |
| ++ shrl $7,%ebp |
| ++ leal (%eax,%eax,1),%edi |
| ++ subl %ebp,%esi |
| ++ andl $4278124286,%edi |
| ++ andl $454761243,%esi |
| ++ movl %eax,%ebp |
| ++ xorl %edi,%esi |
| ++ xorl %esi,%eax |
| ++ roll $24,%eax |
| ++ xorl %esi,%eax |
| ++ rorl $16,%ebp |
| ++ xorl %ebp,%eax |
| ++ rorl $8,%ebp |
| ++ xorl %ebp,%eax |
| ++ movl %ebx,%esi |
| ++ andl $2155905152,%esi |
| ++ movl %esi,%ebp |
| ++ shrl $7,%ebp |
| ++ leal (%ebx,%ebx,1),%edi |
| ++ subl %ebp,%esi |
| ++ andl $4278124286,%edi |
| ++ andl $454761243,%esi |
| ++ movl %ebx,%ebp |
| ++ xorl %edi,%esi |
| ++ xorl %esi,%ebx |
| ++ roll $24,%ebx |
| ++ xorl %esi,%ebx |
| ++ rorl $16,%ebp |
| ++ xorl %ebp,%ebx |
| ++ rorl $8,%ebp |
| ++ xorl %ebp,%ebx |
| ++ movl 20(%esp),%edi |
| ++ movl 28(%esp),%ebp |
| ++ addl $16,%edi |
| ++ xorl (%edi),%eax |
| ++ xorl 4(%edi),%ebx |
| ++ xorl 8(%edi),%ecx |
| ++ xorl 12(%edi),%edx |
| ++ cmpl 24(%esp),%edi |
| ++ movl %edi,20(%esp) |
| ++ jb L000loop |
| ++ movl %eax,%esi |
| ++ andl $255,%esi |
| ++ movzbl -128(%ebp,%esi,1),%esi |
| ++ movzbl %bh,%edi |
| ++ movzbl -128(%ebp,%edi,1),%edi |
| ++ shll $8,%edi |
| ++ xorl %edi,%esi |
| ++ movl %ecx,%edi |
| ++ shrl $16,%edi |
| ++ andl $255,%edi |
| ++ movzbl -128(%ebp,%edi,1),%edi |
| ++ shll $16,%edi |
| ++ xorl %edi,%esi |
| ++ movl %edx,%edi |
| ++ shrl $24,%edi |
| ++ movzbl -128(%ebp,%edi,1),%edi |
| ++ shll $24,%edi |
| ++ xorl %edi,%esi |
| ++ movl %esi,4(%esp) |
| ++ movl %ebx,%esi |
| ++ andl $255,%esi |
| ++ shrl $16,%ebx |
| ++ movzbl -128(%ebp,%esi,1),%esi |
| ++ movzbl %ch,%edi |
| ++ movzbl -128(%ebp,%edi,1),%edi |
| ++ shll $8,%edi |
| ++ xorl %edi,%esi |
| ++ movl %edx,%edi |
| ++ shrl $16,%edi |
| ++ andl $255,%edi |
| ++ movzbl -128(%ebp,%edi,1),%edi |
| ++ shll $16,%edi |
| ++ xorl %edi,%esi |
| ++ movl %eax,%edi |
| ++ shrl $24,%edi |
| ++ movzbl -128(%ebp,%edi,1),%edi |
| ++ shll $24,%edi |
| ++ xorl %edi,%esi |
| ++ movl %esi,8(%esp) |
| ++ movl %ecx,%esi |
| ++ andl $255,%esi |
| ++ shrl $24,%ecx |
| ++ movzbl -128(%ebp,%esi,1),%esi |
| ++ movzbl %dh,%edi |
| ++ movzbl -128(%ebp,%edi,1),%edi |
| ++ shll $8,%edi |
| ++ xorl %edi,%esi |
| ++ movl %eax,%edi |
| ++ shrl $16,%edi |
| ++ andl $255,%edx |
| ++ andl $255,%edi |
| ++ movzbl -128(%ebp,%edi,1),%edi |
| ++ shll $16,%edi |
| ++ xorl %edi,%esi |
| ++ movzbl %bh,%edi |
| ++ movzbl -128(%ebp,%edi,1),%edi |
| ++ shll $24,%edi |
| ++ xorl %edi,%esi |
| ++ movl 20(%esp),%edi |
| ++ andl $255,%edx |
| ++ movzbl -128(%ebp,%edx,1),%edx |
| ++ movzbl %ah,%eax |
| ++ movzbl -128(%ebp,%eax,1),%eax |
| ++ shll $8,%eax |
| ++ xorl %eax,%edx |
| ++ movl 4(%esp),%eax |
| ++ andl $255,%ebx |
| ++ movzbl -128(%ebp,%ebx,1),%ebx |
| ++ shll $16,%ebx |
| ++ xorl %ebx,%edx |
| ++ movl 8(%esp),%ebx |
| ++ movzbl -128(%ebp,%ecx,1),%ecx |
| ++ shll $24,%ecx |
| ++ xorl %ecx,%edx |
| ++ movl %esi,%ecx |
| ++ xorl 16(%edi),%eax |
| ++ xorl 20(%edi),%ebx |
| ++ xorl 24(%edi),%ecx |
| ++ xorl 28(%edi),%edx |
| ++ ret |
| ++.align 4 |
| ++__sse_AES_encrypt_compact: |
| ++ pxor (%edi),%mm0 |
| ++ pxor 8(%edi),%mm4 |
| ++ movl 240(%edi),%esi |
| ++ leal -2(%esi,%esi,1),%esi |
| ++ leal (%edi,%esi,8),%esi |
| ++ movl %esi,24(%esp) |
| ++ movl $454761243,%eax |
| ++ movl %eax,8(%esp) |
| ++ movl %eax,12(%esp) |
| ++ movl -128(%ebp),%eax |
| ++ movl -96(%ebp),%ebx |
| ++ movl -64(%ebp),%ecx |
| ++ movl -32(%ebp),%edx |
| ++ movl (%ebp),%eax |
| ++ movl 32(%ebp),%ebx |
| ++ movl 64(%ebp),%ecx |
| ++ movl 96(%ebp),%edx |
| ++.align 4,0x90 |
| ++L001loop: |
| ++ pshufw $8,%mm0,%mm1 |
| ++ pshufw $13,%mm4,%mm5 |
| ++ movd %mm1,%eax |
| ++ movd %mm5,%ebx |
| ++ movzbl %al,%esi |
| ++ movzbl -128(%ebp,%esi,1),%ecx |
| ++ pshufw $13,%mm0,%mm2 |
| ++ movzbl %ah,%edx |
| ++ movzbl -128(%ebp,%edx,1),%edx |
| ++ shll $8,%edx |
| ++ shrl $16,%eax |
| ++ movzbl %bl,%esi |
| ++ movzbl -128(%ebp,%esi,1),%esi |
| ++ shll $16,%esi |
| ++ orl %esi,%ecx |
| ++ pshufw $8,%mm4,%mm6 |
| ++ movzbl %bh,%esi |
| ++ movzbl -128(%ebp,%esi,1),%esi |
| ++ shll $24,%esi |
| ++ orl %esi,%edx |
| ++ shrl $16,%ebx |
| ++ movzbl %ah,%esi |
| ++ movzbl -128(%ebp,%esi,1),%esi |
| ++ shll $8,%esi |
| ++ orl %esi,%ecx |
| ++ movzbl %bh,%esi |
| ++ movzbl -128(%ebp,%esi,1),%esi |
| ++ shll $24,%esi |
| ++ orl %esi,%ecx |
| ++ movd %ecx,%mm0 |
| ++ movzbl %al,%esi |
| ++ movzbl -128(%ebp,%esi,1),%ecx |
| ++ movd %mm2,%eax |
| ++ movzbl %bl,%esi |
| ++ movzbl -128(%ebp,%esi,1),%esi |
| ++ shll $16,%esi |
| ++ orl %esi,%ecx |
| ++ movd %mm6,%ebx |
| ++ movzbl %ah,%esi |
| ++ movzbl -128(%ebp,%esi,1),%esi |
| ++ shll $24,%esi |
| ++ orl %esi,%ecx |
| ++ movzbl %bh,%esi |
| ++ movzbl -128(%ebp,%esi,1),%esi |
| ++ shll $8,%esi |
| ++ orl %esi,%ecx |
| ++ movd %ecx,%mm1 |
| ++ movzbl %bl,%esi |
| ++ movzbl -128(%ebp,%esi,1),%ecx |
| ++ shrl $16,%ebx |
| ++ movzbl %al,%esi |
| ++ movzbl -128(%ebp,%esi,1),%esi |
| ++ shll $16,%esi |
| ++ orl %esi,%ecx |
| ++ shrl $16,%eax |
| ++ punpckldq %mm1,%mm0 |
| ++ movzbl %ah,%esi |
| ++ movzbl -128(%ebp,%esi,1),%esi |
| ++ shll $24,%esi |
| ++ orl %esi,%ecx |
| ++ andl $255,%eax |
| ++ movzbl -128(%ebp,%eax,1),%eax |
| ++ shll $16,%eax |
| ++ orl %eax,%edx |
| ++ movzbl %bh,%esi |
| ++ movzbl -128(%ebp,%esi,1),%esi |
| ++ shll $8,%esi |
| ++ orl %esi,%ecx |
| ++ movd %ecx,%mm4 |
| ++ andl $255,%ebx |
| ++ movzbl -128(%ebp,%ebx,1),%ebx |
| ++ orl %ebx,%edx |
| ++ movd %edx,%mm5 |
| ++ punpckldq %mm5,%mm4 |
| ++ addl $16,%edi |
| ++ cmpl 24(%esp),%edi |
| ++ ja L002out |
| ++ movq 8(%esp),%mm2 |
| ++ pxor %mm3,%mm3 |
| ++ pxor %mm7,%mm7 |
| ++ movq %mm0,%mm1 |
| ++ movq %mm4,%mm5 |
| ++ pcmpgtb %mm0,%mm3 |
| ++ pcmpgtb %mm4,%mm7 |
| ++ pand %mm2,%mm3 |
| ++ pand %mm2,%mm7 |
| ++ pshufw $177,%mm0,%mm2 |
| ++ pshufw $177,%mm4,%mm6 |
| ++ paddb %mm0,%mm0 |
| ++ paddb %mm4,%mm4 |
| ++ pxor %mm3,%mm0 |
| ++ pxor %mm7,%mm4 |
| ++ pshufw $177,%mm2,%mm3 |
| ++ pshufw $177,%mm6,%mm7 |
| ++ pxor %mm0,%mm1 |
| ++ pxor %mm4,%mm5 |
| ++ pxor %mm2,%mm0 |
| ++ pxor %mm6,%mm4 |
| ++ movq %mm3,%mm2 |
| ++ movq %mm7,%mm6 |
| ++ pslld $8,%mm3 |
| ++ pslld $8,%mm7 |
| ++ psrld $24,%mm2 |
| ++ psrld $24,%mm6 |
| ++ pxor %mm3,%mm0 |
| ++ pxor %mm7,%mm4 |
| ++ pxor %mm2,%mm0 |
| ++ pxor %mm6,%mm4 |
| ++ movq %mm1,%mm3 |
| ++ movq %mm5,%mm7 |
| ++ movq (%edi),%mm2 |
| ++ movq 8(%edi),%mm6 |
| ++ psrld $8,%mm1 |
| ++ psrld $8,%mm5 |
| ++ movl -128(%ebp),%eax |
| ++ pslld $24,%mm3 |
| ++ pslld $24,%mm7 |
| ++ movl -64(%ebp),%ebx |
| ++ pxor %mm1,%mm0 |
| ++ pxor %mm5,%mm4 |
| ++ movl (%ebp),%ecx |
| ++ pxor %mm3,%mm0 |
| ++ pxor %mm7,%mm4 |
| ++ movl 64(%ebp),%edx |
| ++ pxor %mm2,%mm0 |
| ++ pxor %mm6,%mm4 |
| ++ jmp L001loop |
| ++.align 4,0x90 |
| ++L002out: |
| ++ pxor (%edi),%mm0 |
| ++ pxor 8(%edi),%mm4 |
| ++ ret |
| ++.align 4 |
| ++__x86_AES_encrypt: |
| ++ movl %edi,20(%esp) |
| ++ xorl (%edi),%eax |
| ++ xorl 4(%edi),%ebx |
| ++ xorl 8(%edi),%ecx |
| ++ xorl 12(%edi),%edx |
| ++ movl 240(%edi),%esi |
| ++ leal -2(%esi,%esi,1),%esi |
| ++ leal (%edi,%esi,8),%esi |
| ++ movl %esi,24(%esp) |
| ++.align 4,0x90 |
| ++L003loop: |
| ++ movl %eax,%esi |
| ++ andl $255,%esi |
| ++ movl (%ebp,%esi,8),%esi |
| ++ movzbl %bh,%edi |
| ++ xorl 3(%ebp,%edi,8),%esi |
| ++ movl %ecx,%edi |
| ++ shrl $16,%edi |
| ++ andl $255,%edi |
| ++ xorl 2(%ebp,%edi,8),%esi |
| ++ movl %edx,%edi |
| ++ shrl $24,%edi |
| ++ xorl 1(%ebp,%edi,8),%esi |
| ++ movl %esi,4(%esp) |
| ++ movl %ebx,%esi |
| ++ andl $255,%esi |
| ++ shrl $16,%ebx |
| ++ movl (%ebp,%esi,8),%esi |
| ++ movzbl %ch,%edi |
| ++ xorl 3(%ebp,%edi,8),%esi |
| ++ movl %edx,%edi |
| ++ shrl $16,%edi |
| ++ andl $255,%edi |
| ++ xorl 2(%ebp,%edi,8),%esi |
| ++ movl %eax,%edi |
| ++ shrl $24,%edi |
| ++ xorl 1(%ebp,%edi,8),%esi |
| ++ movl %esi,8(%esp) |
| ++ movl %ecx,%esi |
| ++ andl $255,%esi |
| ++ shrl $24,%ecx |
| ++ movl (%ebp,%esi,8),%esi |
| ++ movzbl %dh,%edi |
| ++ xorl 3(%ebp,%edi,8),%esi |
| ++ movl %eax,%edi |
| ++ shrl $16,%edi |
| ++ andl $255,%edx |
| ++ andl $255,%edi |
| ++ xorl 2(%ebp,%edi,8),%esi |
| ++ movzbl %bh,%edi |
| ++ xorl 1(%ebp,%edi,8),%esi |
| ++ movl 20(%esp),%edi |
| ++ movl (%ebp,%edx,8),%edx |
| ++ movzbl %ah,%eax |
| ++ xorl 3(%ebp,%eax,8),%edx |
| ++ movl 4(%esp),%eax |
| ++ andl $255,%ebx |
| ++ xorl 2(%ebp,%ebx,8),%edx |
| ++ movl 8(%esp),%ebx |
| ++ xorl 1(%ebp,%ecx,8),%edx |
| ++ movl %esi,%ecx |
| ++ addl $16,%edi |
| ++ xorl (%edi),%eax |
| ++ xorl 4(%edi),%ebx |
| ++ xorl 8(%edi),%ecx |
| ++ xorl 12(%edi),%edx |
| ++ cmpl 24(%esp),%edi |
| ++ movl %edi,20(%esp) |
| ++ jb L003loop |
| ++ movl %eax,%esi |
| ++ andl $255,%esi |
| ++ movl 2(%ebp,%esi,8),%esi |
| ++ andl $255,%esi |
| ++ movzbl %bh,%edi |
| ++ movl (%ebp,%edi,8),%edi |
| ++ andl $65280,%edi |
| ++ xorl %edi,%esi |
| ++ movl %ecx,%edi |
| ++ shrl $16,%edi |
| ++ andl $255,%edi |
| ++ movl (%ebp,%edi,8),%edi |
| ++ andl $16711680,%edi |
| ++ xorl %edi,%esi |
| ++ movl %edx,%edi |
| ++ shrl $24,%edi |
| ++ movl 2(%ebp,%edi,8),%edi |
| ++ andl $4278190080,%edi |
| ++ xorl %edi,%esi |
| ++ movl %esi,4(%esp) |
| ++ movl %ebx,%esi |
| ++ andl $255,%esi |
| ++ shrl $16,%ebx |
| ++ movl 2(%ebp,%esi,8),%esi |
| ++ andl $255,%esi |
| ++ movzbl %ch,%edi |
| ++ movl (%ebp,%edi,8),%edi |
| ++ andl $65280,%edi |
| ++ xorl %edi,%esi |
| ++ movl %edx,%edi |
| ++ shrl $16,%edi |
| ++ andl $255,%edi |
| ++ movl (%ebp,%edi,8),%edi |
| ++ andl $16711680,%edi |
| ++ xorl %edi,%esi |
| ++ movl %eax,%edi |
| ++ shrl $24,%edi |
| ++ movl 2(%ebp,%edi,8),%edi |
| ++ andl $4278190080,%edi |
| ++ xorl %edi,%esi |
| ++ movl %esi,8(%esp) |
| ++ movl %ecx,%esi |
| ++ andl $255,%esi |
| ++ shrl $24,%ecx |
| ++ movl 2(%ebp,%esi,8),%esi |
| ++ andl $255,%esi |
| ++ movzbl %dh,%edi |
| ++ movl (%ebp,%edi,8),%edi |
| ++ andl $65280,%edi |
| ++ xorl %edi,%esi |
| ++ movl %eax,%edi |
| ++ shrl $16,%edi |
| ++ andl $255,%edx |
| ++ andl $255,%edi |
| ++ movl (%ebp,%edi,8),%edi |
| ++ andl $16711680,%edi |
| ++ xorl %edi,%esi |
| ++ movzbl %bh,%edi |
| ++ movl 2(%ebp,%edi,8),%edi |
| ++ andl $4278190080,%edi |
| ++ xorl %edi,%esi |
| ++ movl 20(%esp),%edi |
| ++ andl $255,%edx |
| ++ movl 2(%ebp,%edx,8),%edx |
| ++ andl $255,%edx |
| ++ movzbl %ah,%eax |
| ++ movl (%ebp,%eax,8),%eax |
| ++ andl $65280,%eax |
| ++ xorl %eax,%edx |
| ++ movl 4(%esp),%eax |
| ++ andl $255,%ebx |
| ++ movl (%ebp,%ebx,8),%ebx |
| ++ andl $16711680,%ebx |
| ++ xorl %ebx,%edx |
| ++ movl 8(%esp),%ebx |
| ++ movl 2(%ebp,%ecx,8),%ecx |
| ++ andl $4278190080,%ecx |
| ++ xorl %ecx,%edx |
| ++ movl %esi,%ecx |
| ++ addl $16,%edi |
| ++ xorl (%edi),%eax |
| ++ xorl 4(%edi),%ebx |
| ++ xorl 8(%edi),%ecx |
| ++ xorl 12(%edi),%edx |
| ++ ret |
| ++.align 6,0x90 |
| ++LAES_Te: |
| ++.long 2774754246,2774754246 |
| ++.long 2222750968,2222750968 |
| ++.long 2574743534,2574743534 |
| ++.long 2373680118,2373680118 |
| ++.long 234025727,234025727 |
| ++.long 3177933782,3177933782 |
| ++.long 2976870366,2976870366 |
| ++.long 1422247313,1422247313 |
| ++.long 1345335392,1345335392 |
| ++.long 50397442,50397442 |
| ++.long 2842126286,2842126286 |
| ++.long 2099981142,2099981142 |
| ++.long 436141799,436141799 |
| ++.long 1658312629,1658312629 |
| ++.long 3870010189,3870010189 |
| ++.long 2591454956,2591454956 |
| ++.long 1170918031,1170918031 |
| ++.long 2642575903,2642575903 |
| ++.long 1086966153,1086966153 |
| ++.long 2273148410,2273148410 |
| ++.long 368769775,368769775 |
| ++.long 3948501426,3948501426 |
| ++.long 3376891790,3376891790 |
| ++.long 200339707,200339707 |
| ++.long 3970805057,3970805057 |
| ++.long 1742001331,1742001331 |
| ++.long 4255294047,4255294047 |
| ++.long 3937382213,3937382213 |
| ++.long 3214711843,3214711843 |
| ++.long 4154762323,4154762323 |
| ++.long 2524082916,2524082916 |
| ++.long 1539358875,1539358875 |
| ++.long 3266819957,3266819957 |
| ++.long 486407649,486407649 |
| ++.long 2928907069,2928907069 |
| ++.long 1780885068,1780885068 |
| ++.long 1513502316,1513502316 |
| ++.long 1094664062,1094664062 |
| ++.long 49805301,49805301 |
| ++.long 1338821763,1338821763 |
| ++.long 1546925160,1546925160 |
| ++.long 4104496465,4104496465 |
| ++.long 887481809,887481809 |
| ++.long 150073849,150073849 |
| ++.long 2473685474,2473685474 |
| ++.long 1943591083,1943591083 |
| ++.long 1395732834,1395732834 |
| ++.long 1058346282,1058346282 |
| ++.long 201589768,201589768 |
| ++.long 1388824469,1388824469 |
| ++.long 1696801606,1696801606 |
| ++.long 1589887901,1589887901 |
| ++.long 672667696,672667696 |
| ++.long 2711000631,2711000631 |
| ++.long 251987210,251987210 |
| ++.long 3046808111,3046808111 |
| ++.long 151455502,151455502 |
| ++.long 907153956,907153956 |
| ++.long 2608889883,2608889883 |
| ++.long 1038279391,1038279391 |
| ++.long 652995533,652995533 |
| ++.long 1764173646,1764173646 |
| ++.long 3451040383,3451040383 |
| ++.long 2675275242,2675275242 |
| ++.long 453576978,453576978 |
| ++.long 2659418909,2659418909 |
| ++.long 1949051992,1949051992 |
| ++.long 773462580,773462580 |
| ++.long 756751158,756751158 |
| ++.long 2993581788,2993581788 |
| ++.long 3998898868,3998898868 |
| ++.long 4221608027,4221608027 |
| ++.long 4132590244,4132590244 |
| ++.long 1295727478,1295727478 |
| ++.long 1641469623,1641469623 |
| ++.long 3467883389,3467883389 |
| ++.long 2066295122,2066295122 |
| ++.long 1055122397,1055122397 |
| ++.long 1898917726,1898917726 |
| ++.long 2542044179,2542044179 |
| ++.long 4115878822,4115878822 |
| ++.long 1758581177,1758581177 |
| ++.long 0,0 |
| ++.long 753790401,753790401 |
| ++.long 1612718144,1612718144 |
| ++.long 536673507,536673507 |
| ++.long 3367088505,3367088505 |
| ++.long 3982187446,3982187446 |
| ++.long 3194645204,3194645204 |
| ++.long 1187761037,1187761037 |
| ++.long 3653156455,3653156455 |
| ++.long 1262041458,1262041458 |
| ++.long 3729410708,3729410708 |
| ++.long 3561770136,3561770136 |
| ++.long 3898103984,3898103984 |
| ++.long 1255133061,1255133061 |
| ++.long 1808847035,1808847035 |
| ++.long 720367557,720367557 |
| ++.long 3853167183,3853167183 |
| ++.long 385612781,385612781 |
| ++.long 3309519750,3309519750 |
| ++.long 3612167578,3612167578 |
| ++.long 1429418854,1429418854 |
| ++.long 2491778321,2491778321 |
| ++.long 3477423498,3477423498 |
| ++.long 284817897,284817897 |
| ++.long 100794884,100794884 |
| ++.long 2172616702,2172616702 |
| ++.long 4031795360,4031795360 |
| ++.long 1144798328,1144798328 |
| ++.long 3131023141,3131023141 |
| ++.long 3819481163,3819481163 |
| ++.long 4082192802,4082192802 |
| ++.long 4272137053,4272137053 |
| ++.long 3225436288,3225436288 |
| ++.long 2324664069,2324664069 |
| ++.long 2912064063,2912064063 |
| ++.long 3164445985,3164445985 |
| ++.long 1211644016,1211644016 |
| ++.long 83228145,83228145 |
| ++.long 3753688163,3753688163 |
| ++.long 3249976951,3249976951 |
| ++.long 1977277103,1977277103 |
| ++.long 1663115586,1663115586 |
| ++.long 806359072,806359072 |
| ++.long 452984805,452984805 |
| ++.long 250868733,250868733 |
| ++.long 1842533055,1842533055 |
| ++.long 1288555905,1288555905 |
| ++.long 336333848,336333848 |
| ++.long 890442534,890442534 |
| ++.long 804056259,804056259 |
| ++.long 3781124030,3781124030 |
| ++.long 2727843637,2727843637 |
| ++.long 3427026056,3427026056 |
| ++.long 957814574,957814574 |
| ++.long 1472513171,1472513171 |
| ++.long 4071073621,4071073621 |
| ++.long 2189328124,2189328124 |
| ++.long 1195195770,1195195770 |
| ++.long 2892260552,2892260552 |
| ++.long 3881655738,3881655738 |
| ++.long 723065138,723065138 |
| ++.long 2507371494,2507371494 |
| ++.long 2690670784,2690670784 |
| ++.long 2558624025,2558624025 |
| ++.long 3511635870,3511635870 |
| ++.long 2145180835,2145180835 |
| ++.long 1713513028,1713513028 |
| ++.long 2116692564,2116692564 |
| ++.long 2878378043,2878378043 |
| ++.long 2206763019,2206763019 |
| ++.long 3393603212,3393603212 |
| ++.long 703524551,703524551 |
| ++.long 3552098411,3552098411 |
| ++.long 1007948840,1007948840 |
| ++.long 2044649127,2044649127 |
| ++.long 3797835452,3797835452 |
| ++.long 487262998,487262998 |
| ++.long 1994120109,1994120109 |
| ++.long 1004593371,1004593371 |
| ++.long 1446130276,1446130276 |
| ++.long 1312438900,1312438900 |
| ++.long 503974420,503974420 |
| ++.long 3679013266,3679013266 |
| ++.long 168166924,168166924 |
| ++.long 1814307912,1814307912 |
| ++.long 3831258296,3831258296 |
| ++.long 1573044895,1573044895 |
| ++.long 1859376061,1859376061 |
| ++.long 4021070915,4021070915 |
| ++.long 2791465668,2791465668 |
| ++.long 2828112185,2828112185 |
| ++.long 2761266481,2761266481 |
| ++.long 937747667,937747667 |
| ++.long 2339994098,2339994098 |
| ++.long 854058965,854058965 |
| ++.long 1137232011,1137232011 |
| ++.long 1496790894,1496790894 |
| ++.long 3077402074,3077402074 |
| ++.long 2358086913,2358086913 |
| ++.long 1691735473,1691735473 |
| ++.long 3528347292,3528347292 |
| ++.long 3769215305,3769215305 |
| ++.long 3027004632,3027004632 |
| ++.long 4199962284,4199962284 |
| ++.long 133494003,133494003 |
| ++.long 636152527,636152527 |
| ++.long 2942657994,2942657994 |
| ++.long 2390391540,2390391540 |
| ++.long 3920539207,3920539207 |
| ++.long 403179536,403179536 |
| ++.long 3585784431,3585784431 |
| ++.long 2289596656,2289596656 |
| ++.long 1864705354,1864705354 |
| ++.long 1915629148,1915629148 |
| ++.long 605822008,605822008 |
| ++.long 4054230615,4054230615 |
| ++.long 3350508659,3350508659 |
| ++.long 1371981463,1371981463 |
| ++.long 602466507,602466507 |
| ++.long 2094914977,2094914977 |
| ++.long 2624877800,2624877800 |
| ++.long 555687742,555687742 |
| ++.long 3712699286,3712699286 |
| ++.long 3703422305,3703422305 |
| ++.long 2257292045,2257292045 |
| ++.long 2240449039,2240449039 |
| ++.long 2423288032,2423288032 |
| ++.long 1111375484,1111375484 |
| ++.long 3300242801,3300242801 |
| ++.long 2858837708,2858837708 |
| ++.long 3628615824,3628615824 |
| ++.long 84083462,84083462 |
| ++.long 32962295,32962295 |
| ++.long 302911004,302911004 |
| ++.long 2741068226,2741068226 |
| ++.long 1597322602,1597322602 |
| ++.long 4183250862,4183250862 |
| ++.long 3501832553,3501832553 |
| ++.long 2441512471,2441512471 |
| ++.long 1489093017,1489093017 |
| ++.long 656219450,656219450 |
| ++.long 3114180135,3114180135 |
| ++.long 954327513,954327513 |
| ++.long 335083755,335083755 |
| ++.long 3013122091,3013122091 |
| ++.long 856756514,856756514 |
| ++.long 3144247762,3144247762 |
| ++.long 1893325225,1893325225 |
| ++.long 2307821063,2307821063 |
| ++.long 2811532339,2811532339 |
| ++.long 3063651117,3063651117 |
| ++.long 572399164,572399164 |
| ++.long 2458355477,2458355477 |
| ++.long 552200649,552200649 |
| ++.long 1238290055,1238290055 |
| ++.long 4283782570,4283782570 |
| ++.long 2015897680,2015897680 |
| ++.long 2061492133,2061492133 |
| ++.long 2408352771,2408352771 |
| ++.long 4171342169,4171342169 |
| ++.long 2156497161,2156497161 |
| ++.long 386731290,386731290 |
| ++.long 3669999461,3669999461 |
| ++.long 837215959,837215959 |
| ++.long 3326231172,3326231172 |
| ++.long 3093850320,3093850320 |
| ++.long 3275833730,3275833730 |
| ++.long 2962856233,2962856233 |
| ++.long 1999449434,1999449434 |
| ++.long 286199582,286199582 |
| ++.long 3417354363,3417354363 |
| ++.long 4233385128,4233385128 |
| ++.long 3602627437,3602627437 |
| ++.long 974525996,974525996 |
| ++.byte 99,124,119,123,242,107,111,197 |
| ++.byte 48,1,103,43,254,215,171,118 |
| ++.byte 202,130,201,125,250,89,71,240 |
| ++.byte 173,212,162,175,156,164,114,192 |
| ++.byte 183,253,147,38,54,63,247,204 |
| ++.byte 52,165,229,241,113,216,49,21 |
| ++.byte 4,199,35,195,24,150,5,154 |
| ++.byte 7,18,128,226,235,39,178,117 |
| ++.byte 9,131,44,26,27,110,90,160 |
| ++.byte 82,59,214,179,41,227,47,132 |
| ++.byte 83,209,0,237,32,252,177,91 |
| ++.byte 106,203,190,57,74,76,88,207 |
| ++.byte 208,239,170,251,67,77,51,133 |
| ++.byte 69,249,2,127,80,60,159,168 |
| ++.byte 81,163,64,143,146,157,56,245 |
| ++.byte 188,182,218,33,16,255,243,210 |
| ++.byte 205,12,19,236,95,151,68,23 |
| ++.byte 196,167,126,61,100,93,25,115 |
| ++.byte 96,129,79,220,34,42,144,136 |
| ++.byte 70,238,184,20,222,94,11,219 |
| ++.byte 224,50,58,10,73,6,36,92 |
| ++.byte 194,211,172,98,145,149,228,121 |
| ++.byte 231,200,55,109,141,213,78,169 |
| ++.byte 108,86,244,234,101,122,174,8 |
| ++.byte 186,120,37,46,28,166,180,198 |
| ++.byte 232,221,116,31,75,189,139,138 |
| ++.byte 112,62,181,102,72,3,246,14 |
| ++.byte 97,53,87,185,134,193,29,158 |
| ++.byte 225,248,152,17,105,217,142,148 |
| ++.byte 155,30,135,233,206,85,40,223 |
| ++.byte 140,161,137,13,191,230,66,104 |
| ++.byte 65,153,45,15,176,84,187,22 |
| ++.byte 99,124,119,123,242,107,111,197 |
| ++.byte 48,1,103,43,254,215,171,118 |
| ++.byte 202,130,201,125,250,89,71,240 |
| ++.byte 173,212,162,175,156,164,114,192 |
| ++.byte 183,253,147,38,54,63,247,204 |
| ++.byte 52,165,229,241,113,216,49,21 |
| ++.byte 4,199,35,195,24,150,5,154 |
| ++.byte 7,18,128,226,235,39,178,117 |
| ++.byte 9,131,44,26,27,110,90,160 |
| ++.byte 82,59,214,179,41,227,47,132 |
| ++.byte 83,209,0,237,32,252,177,91 |
| ++.byte 106,203,190,57,74,76,88,207 |
| ++.byte 208,239,170,251,67,77,51,133 |
| ++.byte 69,249,2,127,80,60,159,168 |
| ++.byte 81,163,64,143,146,157,56,245 |
| ++.byte 188,182,218,33,16,255,243,210 |
| ++.byte 205,12,19,236,95,151,68,23 |
| ++.byte 196,167,126,61,100,93,25,115 |
| ++.byte 96,129,79,220,34,42,144,136 |
| ++.byte 70,238,184,20,222,94,11,219 |
| ++.byte 224,50,58,10,73,6,36,92 |
| ++.byte 194,211,172,98,145,149,228,121 |
| ++.byte 231,200,55,109,141,213,78,169 |
| ++.byte 108,86,244,234,101,122,174,8 |
| ++.byte 186,120,37,46,28,166,180,198 |
| ++.byte 232,221,116,31,75,189,139,138 |
| ++.byte 112,62,181,102,72,3,246,14 |
| ++.byte 97,53,87,185,134,193,29,158 |
| ++.byte 225,248,152,17,105,217,142,148 |
| ++.byte 155,30,135,233,206,85,40,223 |
| ++.byte 140,161,137,13,191,230,66,104 |
| ++.byte 65,153,45,15,176,84,187,22 |
| ++.byte 99,124,119,123,242,107,111,197 |
| ++.byte 48,1,103,43,254,215,171,118 |
| ++.byte 202,130,201,125,250,89,71,240 |
| ++.byte 173,212,162,175,156,164,114,192 |
| ++.byte 183,253,147,38,54,63,247,204 |
| ++.byte 52,165,229,241,113,216,49,21 |
| ++.byte 4,199,35,195,24,150,5,154 |
| ++.byte 7,18,128,226,235,39,178,117 |
| ++.byte 9,131,44,26,27,110,90,160 |
| ++.byte 82,59,214,179,41,227,47,132 |
| ++.byte 83,209,0,237,32,252,177,91 |
| ++.byte 106,203,190,57,74,76,88,207 |
| ++.byte 208,239,170,251,67,77,51,133 |
| ++.byte 69,249,2,127,80,60,159,168 |
| ++.byte 81,163,64,143,146,157,56,245 |
| ++.byte 188,182,218,33,16,255,243,210 |
| ++.byte 205,12,19,236,95,151,68,23 |
| ++.byte 196,167,126,61,100,93,25,115 |
| ++.byte 96,129,79,220,34,42,144,136 |
| ++.byte 70,238,184,20,222,94,11,219 |
| ++.byte 224,50,58,10,73,6,36,92 |
| ++.byte 194,211,172,98,145,149,228,121 |
| ++.byte 231,200,55,109,141,213,78,169 |
| ++.byte 108,86,244,234,101,122,174,8 |
| ++.byte 186,120,37,46,28,166,180,198 |
| ++.byte 232,221,116,31,75,189,139,138 |
| ++.byte 112,62,181,102,72,3,246,14 |
| ++.byte 97,53,87,185,134,193,29,158 |
| ++.byte 225,248,152,17,105,217,142,148 |
| ++.byte 155,30,135,233,206,85,40,223 |
| ++.byte 140,161,137,13,191,230,66,104 |
| ++.byte 65,153,45,15,176,84,187,22 |
| ++.byte 99,124,119,123,242,107,111,197 |
| ++.byte 48,1,103,43,254,215,171,118 |
| ++.byte 202,130,201,125,250,89,71,240 |
| ++.byte 173,212,162,175,156,164,114,192 |
| ++.byte 183,253,147,38,54,63,247,204 |
| ++.byte 52,165,229,241,113,216,49,21 |
| ++.byte 4,199,35,195,24,150,5,154 |
| ++.byte 7,18,128,226,235,39,178,117 |
| ++.byte 9,131,44,26,27,110,90,160 |
| ++.byte 82,59,214,179,41,227,47,132 |
| ++.byte 83,209,0,237,32,252,177,91 |
| ++.byte 106,203,190,57,74,76,88,207 |
| ++.byte 208,239,170,251,67,77,51,133 |
| ++.byte 69,249,2,127,80,60,159,168 |
| ++.byte 81,163,64,143,146,157,56,245 |
| ++.byte 188,182,218,33,16,255,243,210 |
| ++.byte 205,12,19,236,95,151,68,23 |
| ++.byte 196,167,126,61,100,93,25,115 |
| ++.byte 96,129,79,220,34,42,144,136 |
| ++.byte 70,238,184,20,222,94,11,219 |
| ++.byte 224,50,58,10,73,6,36,92 |
| ++.byte 194,211,172,98,145,149,228,121 |
| ++.byte 231,200,55,109,141,213,78,169 |
| ++.byte 108,86,244,234,101,122,174,8 |
| ++.byte 186,120,37,46,28,166,180,198 |
| ++.byte 232,221,116,31,75,189,139,138 |
| ++.byte 112,62,181,102,72,3,246,14 |
| ++.byte 97,53,87,185,134,193,29,158 |
| ++.byte 225,248,152,17,105,217,142,148 |
| ++.byte 155,30,135,233,206,85,40,223 |
| ++.byte 140,161,137,13,191,230,66,104 |
| ++.byte 65,153,45,15,176,84,187,22 |
| ++.long 1,2,4,8 |
| ++.long 16,32,64,128 |
| ++.long 27,54,0,0 |
| ++.long 0,0,0,0 |
| ++.globl _AES_encrypt |
| ++.align 4 |
| ++_AES_encrypt: |
| ++L_AES_encrypt_begin: |
| ++ pushl %ebp |
| ++ pushl %ebx |
| ++ pushl %esi |
| ++ pushl %edi |
| ++ movl 20(%esp),%esi |
| ++ movl 28(%esp),%edi |
| ++ movl %esp,%eax |
| ++ subl $36,%esp |
| ++ andl $-64,%esp |
| ++ leal -127(%edi),%ebx |
| ++ subl %esp,%ebx |
| ++ negl %ebx |
| ++ andl $960,%ebx |
| ++ subl %ebx,%esp |
| ++ addl $4,%esp |
| ++ movl %eax,28(%esp) |
| ++ call L004pic_point |
| ++L004pic_point: |
| ++ popl %ebp |
| ++ movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L004pic_point(%ebp),%eax |
| ++ leal LAES_Te-L004pic_point(%ebp),%ebp |
| ++ leal 764(%esp),%ebx |
| ++ subl %ebp,%ebx |
| ++ andl $768,%ebx |
| ++ leal 2176(%ebp,%ebx,1),%ebp |
| ++ btl $25,(%eax) |
| ++ jnc L005x86 |
| ++ movq (%esi),%mm0 |
| ++ movq 8(%esi),%mm4 |
| ++ call __sse_AES_encrypt_compact |
| ++ movl 28(%esp),%esp |
| ++ movl 24(%esp),%esi |
| ++ movq %mm0,(%esi) |
| ++ movq %mm4,8(%esi) |
| ++ emms |
| ++ popl %edi |
| ++ popl %esi |
| ++ popl %ebx |
| ++ popl %ebp |
| ++ ret |
| ++.align 4,0x90 |
| ++L005x86: |
| ++ movl %ebp,24(%esp) |
| ++ movl (%esi),%eax |
| ++ movl 4(%esi),%ebx |
| ++ movl 8(%esi),%ecx |
| ++ movl 12(%esi),%edx |
| ++ call __x86_AES_encrypt_compact |
| ++ movl 28(%esp),%esp |
| ++ movl 24(%esp),%esi |
| ++ movl %eax,(%esi) |
| ++ movl %ebx,4(%esi) |
| ++ movl %ecx,8(%esi) |
| ++ movl %edx,12(%esi) |
| ++ popl %edi |
| ++ popl %esi |
| ++ popl %ebx |
| ++ popl %ebp |
| ++ ret |
| ++.align 4 |
| ++__x86_AES_decrypt_compact: |
| ++ movl %edi,20(%esp) |
| ++ xorl (%edi),%eax |
| ++ xorl 4(%edi),%ebx |
| ++ xorl 8(%edi),%ecx |
| ++ xorl 12(%edi),%edx |
| ++ movl 240(%edi),%esi |
| ++ leal -2(%esi,%esi,1),%esi |
| ++ leal (%edi,%esi,8),%esi |
| ++ movl %esi,24(%esp) |
| ++ movl -128(%ebp),%edi |
| ++ movl -96(%ebp),%esi |
| ++ movl -64(%ebp),%edi |
| ++ movl -32(%ebp),%esi |
| ++ movl (%ebp),%edi |
| ++ movl 32(%ebp),%esi |
| ++ movl 64(%ebp),%edi |
| ++ movl 96(%ebp),%esi |
| ++.align 4,0x90 |
| ++L006loop: |
| ++ movl %eax,%esi |
| ++ andl $255,%esi |
| ++ movzbl -128(%ebp,%esi,1),%esi |
| ++ movzbl %dh,%edi |
| ++ movzbl -128(%ebp,%edi,1),%edi |
| ++ shll $8,%edi |
| ++ xorl %edi,%esi |
| ++ movl %ecx,%edi |
| ++ shrl $16,%edi |
| ++ andl $255,%edi |
| ++ movzbl -128(%ebp,%edi,1),%edi |
| ++ shll $16,%edi |
| ++ xorl %edi,%esi |
| ++ movl %ebx,%edi |
| ++ shrl $24,%edi |
| ++ movzbl -128(%ebp,%edi,1),%edi |
| ++ shll $24,%edi |
| ++ xorl %edi,%esi |
| ++ movl %esi,4(%esp) |
| ++ movl %ebx,%esi |
| ++ andl $255,%esi |
| ++ movzbl -128(%ebp,%esi,1),%esi |
| ++ movzbl %ah,%edi |
| ++ movzbl -128(%ebp,%edi,1),%edi |
| ++ shll $8,%edi |
| ++ xorl %edi,%esi |
| ++ movl %edx,%edi |
| ++ shrl $16,%edi |
| ++ andl $255,%edi |
| ++ movzbl -128(%ebp,%edi,1),%edi |
| ++ shll $16,%edi |
| ++ xorl %edi,%esi |
| ++ movl %ecx,%edi |
| ++ shrl $24,%edi |
| ++ movzbl -128(%ebp,%edi,1),%edi |
| ++ shll $24,%edi |
| ++ xorl %edi,%esi |
| ++ movl %esi,8(%esp) |
| ++ movl %ecx,%esi |
| ++ andl $255,%esi |
| ++ movzbl -128(%ebp,%esi,1),%esi |
| ++ movzbl %bh,%edi |
| ++ movzbl -128(%ebp,%edi,1),%edi |
| ++ shll $8,%edi |
| ++ xorl %edi,%esi |
| ++ movl %eax,%edi |
| ++ shrl $16,%edi |
| ++ andl $255,%edi |
| ++ movzbl -128(%ebp,%edi,1),%edi |
| ++ shll $16,%edi |
| ++ xorl %edi,%esi |
| ++ movl %edx,%edi |
| ++ shrl $24,%edi |
| ++ movzbl -128(%ebp,%edi,1),%edi |
| ++ shll $24,%edi |
| ++ xorl %edi,%esi |
| ++ andl $255,%edx |
| ++ movzbl -128(%ebp,%edx,1),%edx |
| ++ movzbl %ch,%ecx |
| ++ movzbl -128(%ebp,%ecx,1),%ecx |
| ++ shll $8,%ecx |
| ++ xorl %ecx,%edx |
| ++ movl %esi,%ecx |
| ++ shrl $16,%ebx |
| ++ andl $255,%ebx |
| ++ movzbl -128(%ebp,%ebx,1),%ebx |
| ++ shll $16,%ebx |
| ++ xorl %ebx,%edx |
| ++ shrl $24,%eax |
| ++ movzbl -128(%ebp,%eax,1),%eax |
| ++ shll $24,%eax |
| ++ xorl %eax,%edx |
| ++ movl %ecx,%esi |
| ++ andl $2155905152,%esi |
| ++ movl %esi,%edi |
| ++ shrl $7,%edi |
| ++ leal (%ecx,%ecx,1),%eax |
| ++ subl %edi,%esi |
| ++ andl $4278124286,%eax |
| ++ andl $454761243,%esi |
| ++ xorl %eax,%esi |
| ++ movl %esi,%eax |
| ++ andl $2155905152,%esi |
| ++ movl %esi,%edi |
| ++ shrl $7,%edi |
| ++ leal (%eax,%eax,1),%ebx |
| ++ subl %edi,%esi |
| ++ andl $4278124286,%ebx |
| ++ andl $454761243,%esi |
| ++ xorl %ecx,%eax |
| ++ xorl %ebx,%esi |
| ++ movl %esi,%ebx |
| ++ andl $2155905152,%esi |
| ++ movl %esi,%edi |
| ++ shrl $7,%edi |
| ++ leal (%ebx,%ebx,1),%ebp |
| ++ subl %edi,%esi |
| ++ andl $4278124286,%ebp |
| ++ andl $454761243,%esi |
| ++ xorl %ecx,%ebx |
| ++ roll $8,%ecx |
| ++ xorl %esi,%ebp |
| ++ xorl %eax,%ecx |
| ++ xorl %ebp,%eax |
| ++ roll $24,%eax |
| ++ xorl %ebx,%ecx |
| ++ xorl %ebp,%ebx |
| ++ roll $16,%ebx |
| ++ xorl %ebp,%ecx |
| ++ roll $8,%ebp |
| ++ xorl %eax,%ecx |
| ++ xorl %ebx,%ecx |
| ++ movl 4(%esp),%eax |
| ++ xorl %ebp,%ecx |
| ++ movl %ecx,12(%esp) |
| ++ movl %edx,%esi |
| ++ andl $2155905152,%esi |
| ++ movl %esi,%edi |
| ++ shrl $7,%edi |
| ++ leal (%edx,%edx,1),%ebx |
| ++ subl %edi,%esi |
| ++ andl $4278124286,%ebx |
| ++ andl $454761243,%esi |
| ++ xorl %ebx,%esi |
| ++ movl %esi,%ebx |
| ++ andl $2155905152,%esi |
| ++ movl %esi,%edi |
| ++ shrl $7,%edi |
| ++ leal (%ebx,%ebx,1),%ecx |
| ++ subl %edi,%esi |
| ++ andl $4278124286,%ecx |
| ++ andl $454761243,%esi |
| ++ xorl %edx,%ebx |
| ++ xorl %ecx,%esi |
| ++ movl %esi,%ecx |
| ++ andl $2155905152,%esi |
| ++ movl %esi,%edi |
| ++ shrl $7,%edi |
| ++ leal (%ecx,%ecx,1),%ebp |
| ++ subl %edi,%esi |
| ++ andl $4278124286,%ebp |
| ++ andl $454761243,%esi |
| ++ xorl %edx,%ecx |
| ++ roll $8,%edx |
| ++ xorl %esi,%ebp |
| ++ xorl %ebx,%edx |
| ++ xorl %ebp,%ebx |
| ++ roll $24,%ebx |
| ++ xorl %ecx,%edx |
| ++ xorl %ebp,%ecx |
| ++ roll $16,%ecx |
| ++ xorl %ebp,%edx |
| ++ roll $8,%ebp |
| ++ xorl %ebx,%edx |
| ++ xorl %ecx,%edx |
| ++ movl 8(%esp),%ebx |
| ++ xorl %ebp,%edx |
| ++ movl %edx,16(%esp) |
| ++ movl %eax,%esi |
| ++ andl $2155905152,%esi |
| ++ movl %esi,%edi |
| ++ shrl $7,%edi |
| ++ leal (%eax,%eax,1),%ecx |
| ++ subl %edi,%esi |
| ++ andl $4278124286,%ecx |
| ++ andl $454761243,%esi |
| ++ xorl %ecx,%esi |
| ++ movl %esi,%ecx |
| ++ andl $2155905152,%esi |
| ++ movl %esi,%edi |
| ++ shrl $7,%edi |
| ++ leal (%ecx,%ecx,1),%edx |
| ++ subl %edi,%esi |
| ++ andl $4278124286,%edx |
| ++ andl $454761243,%esi |
| ++ xorl %eax,%ecx |
| ++ xorl %edx,%esi |
| ++ movl %esi,%edx |
| ++ andl $2155905152,%esi |
| ++ movl %esi,%edi |
| ++ shrl $7,%edi |
| ++ leal (%edx,%edx,1),%ebp |
| ++ subl %edi,%esi |
| ++ andl $4278124286,%ebp |
| ++ andl $454761243,%esi |
| ++ xorl %eax,%edx |
| ++ roll $8,%eax |
| ++ xorl %esi,%ebp |
| ++ xorl %ecx,%eax |
| ++ xorl %ebp,%ecx |
| ++ roll $24,%ecx |
| ++ xorl %edx,%eax |
| ++ xorl %ebp,%edx |
| ++ roll $16,%edx |
| ++ xorl %ebp,%eax |
| ++ roll $8,%ebp |
| ++ xorl %ecx,%eax |
| ++ xorl %edx,%eax |
| ++ xorl %ebp,%eax |
| ++ movl %ebx,%esi |
| ++ andl $2155905152,%esi |
| ++ movl %esi,%edi |
| ++ shrl $7,%edi |
| ++ leal (%ebx,%ebx,1),%ecx |
| ++ subl %edi,%esi |
| ++ andl $4278124286,%ecx |
| ++ andl $454761243,%esi |
| ++ xorl %ecx,%esi |
| ++ movl %esi,%ecx |
| ++ andl $2155905152,%esi |
| ++ movl %esi,%edi |
| ++ shrl $7,%edi |
| ++ leal (%ecx,%ecx,1),%edx |
| ++ subl %edi,%esi |
| ++ andl $4278124286,%edx |
| ++ andl $454761243,%esi |
| ++ xorl %ebx,%ecx |
| ++ xorl %edx,%esi |
| ++ movl %esi,%edx |
| ++ andl $2155905152,%esi |
| ++ movl %esi,%edi |
| ++ shrl $7,%edi |
| ++ leal (%edx,%edx,1),%ebp |
| ++ subl %edi,%esi |
| ++ andl $4278124286,%ebp |
| ++ andl $454761243,%esi |
| ++ xorl %ebx,%edx |
| ++ roll $8,%ebx |
| ++ xorl %esi,%ebp |
| ++ xorl %ecx,%ebx |
| ++ xorl %ebp,%ecx |
| ++ roll $24,%ecx |
| ++ xorl %edx,%ebx |
| ++ xorl %ebp,%edx |
| ++ roll $16,%edx |
| ++ xorl %ebp,%ebx |
| ++ roll $8,%ebp |
| ++ xorl %ecx,%ebx |
| ++ xorl %edx,%ebx |
| ++ movl 12(%esp),%ecx |
| ++ xorl %ebp,%ebx |
| ++ movl 16(%esp),%edx |
| ++ movl 20(%esp),%edi |
| ++ movl 28(%esp),%ebp |
| ++ addl $16,%edi |
| ++ xorl (%edi),%eax |
| ++ xorl 4(%edi),%ebx |
| ++ xorl 8(%edi),%ecx |
| ++ xorl 12(%edi),%edx |
| ++ cmpl 24(%esp),%edi |
| ++ movl %edi,20(%esp) |
| ++ jb L006loop |
| ++ movl %eax,%esi |
| ++ andl $255,%esi |
| ++ movzbl -128(%ebp,%esi,1),%esi |
| ++ movzbl %dh,%edi |
| ++ movzbl -128(%ebp,%edi,1),%edi |
| ++ shll $8,%edi |
| ++ xorl %edi,%esi |
| ++ movl %ecx,%edi |
| ++ shrl $16,%edi |
| ++ andl $255,%edi |
| ++ movzbl -128(%ebp,%edi,1),%edi |
| ++ shll $16,%edi |
| ++ xorl %edi,%esi |
| ++ movl %ebx,%edi |
| ++ shrl $24,%edi |
| ++ movzbl -128(%ebp,%edi,1),%edi |
| ++ shll $24,%edi |
| ++ xorl %edi,%esi |
| ++ movl %esi,4(%esp) |
| ++ movl %ebx,%esi |
| ++ andl $255,%esi |
| ++ movzbl -128(%ebp,%esi,1),%esi |
| ++ movzbl %ah,%edi |
| ++ movzbl -128(%ebp,%edi,1),%edi |
| ++ shll $8,%edi |
| ++ xorl %edi,%esi |
| ++ movl %edx,%edi |
| ++ shrl $16,%edi |
| ++ andl $255,%edi |
| ++ movzbl -128(%ebp,%edi,1),%edi |
| ++ shll $16,%edi |
| ++ xorl %edi,%esi |
| ++ movl %ecx,%edi |
| ++ shrl $24,%edi |
| ++ movzbl -128(%ebp,%edi,1),%edi |
| ++ shll $24,%edi |
| ++ xorl %edi,%esi |
| ++ movl %esi,8(%esp) |
| ++ movl %ecx,%esi |
| ++ andl $255,%esi |
| ++ movzbl -128(%ebp,%esi,1),%esi |
| ++ movzbl %bh,%edi |
| ++ movzbl -128(%ebp,%edi,1),%edi |
| ++ shll $8,%edi |
| ++ xorl %edi,%esi |
| ++ movl %eax,%edi |
| ++ shrl $16,%edi |
| ++ andl $255,%edi |
| ++ movzbl -128(%ebp,%edi,1),%edi |
| ++ shll $16,%edi |
| ++ xorl %edi,%esi |
| ++ movl %edx,%edi |
| ++ shrl $24,%edi |
| ++ movzbl -128(%ebp,%edi,1),%edi |
| ++ shll $24,%edi |
| ++ xorl %edi,%esi |
| ++ movl 20(%esp),%edi |
| ++ andl $255,%edx |
| ++ movzbl -128(%ebp,%edx,1),%edx |
| ++ movzbl %ch,%ecx |
| ++ movzbl -128(%ebp,%ecx,1),%ecx |
| ++ shll $8,%ecx |
| ++ xorl %ecx,%edx |
| ++ movl %esi,%ecx |
| ++ shrl $16,%ebx |
| ++ andl $255,%ebx |
| ++ movzbl -128(%ebp,%ebx,1),%ebx |
| ++ shll $16,%ebx |
| ++ xorl %ebx,%edx |
| ++ movl 8(%esp),%ebx |
| ++ shrl $24,%eax |
| ++ movzbl -128(%ebp,%eax,1),%eax |
| ++ shll $24,%eax |
| ++ xorl %eax,%edx |
| ++ movl 4(%esp),%eax |
| ++ xorl 16(%edi),%eax |
| ++ xorl 20(%edi),%ebx |
| ++ xorl 24(%edi),%ecx |
| ++ xorl 28(%edi),%edx |
| ++ ret |
| ++.align 4 |
| ++__sse_AES_decrypt_compact: |
| ++ pxor (%edi),%mm0 |
| ++ pxor 8(%edi),%mm4 |
| ++ movl 240(%edi),%esi |
| ++ leal -2(%esi,%esi,1),%esi |
| ++ leal (%edi,%esi,8),%esi |
| ++ movl %esi,24(%esp) |
| ++ movl $454761243,%eax |
| ++ movl %eax,8(%esp) |
| ++ movl %eax,12(%esp) |
| ++ movl -128(%ebp),%eax |
| ++ movl -96(%ebp),%ebx |
| ++ movl -64(%ebp),%ecx |
| ++ movl -32(%ebp),%edx |
| ++ movl (%ebp),%eax |
| ++ movl 32(%ebp),%ebx |
| ++ movl 64(%ebp),%ecx |
| ++ movl 96(%ebp),%edx |
| ++.align 4,0x90 |
| ++L007loop: |
| ++ pshufw $12,%mm0,%mm1 |
| ++ movd %mm1,%eax |
| ++ pshufw $9,%mm4,%mm5 |
| ++ movzbl %al,%esi |
| ++ movzbl -128(%ebp,%esi,1),%ecx |
| ++ movd %mm5,%ebx |
| ++ movzbl %ah,%edx |
| ++ movzbl -128(%ebp,%edx,1),%edx |
| ++ shll $8,%edx |
| ++ pshufw $6,%mm0,%mm2 |
| ++ movzbl %bl,%esi |
| ++ movzbl -128(%ebp,%esi,1),%esi |
| ++ shll $16,%esi |
| ++ orl %esi,%ecx |
| ++ shrl $16,%eax |
| ++ movzbl %bh,%esi |
| ++ movzbl -128(%ebp,%esi,1),%esi |
| ++ shll $24,%esi |
| ++ orl %esi,%edx |
| ++ shrl $16,%ebx |
| ++ pshufw $3,%mm4,%mm6 |
| ++ movzbl %ah,%esi |
| ++ movzbl -128(%ebp,%esi,1),%esi |
| ++ shll $24,%esi |
| ++ orl %esi,%ecx |
| ++ movzbl %bh,%esi |
| ++ movzbl -128(%ebp,%esi,1),%esi |
| ++ shll $8,%esi |
| ++ orl %esi,%ecx |
| ++ movd %ecx,%mm0 |
| ++ movzbl %al,%esi |
| ++ movd %mm2,%eax |
| ++ movzbl -128(%ebp,%esi,1),%ecx |
| ++ shll $16,%ecx |
| ++ movzbl %bl,%esi |
| ++ movd %mm6,%ebx |
| ++ movzbl -128(%ebp,%esi,1),%esi |
| ++ orl %esi,%ecx |
| ++ movzbl %al,%esi |
| ++ movzbl -128(%ebp,%esi,1),%esi |
| ++ orl %esi,%edx |
| ++ movzbl %bl,%esi |
| ++ movzbl -128(%ebp,%esi,1),%esi |
| ++ shll $16,%esi |
| ++ orl %esi,%edx |
| ++ movd %edx,%mm1 |
| ++ movzbl %ah,%esi |
| ++ movzbl -128(%ebp,%esi,1),%edx |
| ++ shll $8,%edx |
| ++ movzbl %bh,%esi |
| ++ shrl $16,%eax |
| ++ movzbl -128(%ebp,%esi,1),%esi |
| ++ shll $24,%esi |
| ++ orl %esi,%edx |
| ++ shrl $16,%ebx |
| ++ punpckldq %mm1,%mm0 |
| ++ movzbl %bh,%esi |
| ++ movzbl -128(%ebp,%esi,1),%esi |
| ++ shll $8,%esi |
| ++ orl %esi,%ecx |
| ++ andl $255,%ebx |
| ++ movzbl -128(%ebp,%ebx,1),%ebx |
| ++ orl %ebx,%edx |
| ++ movzbl %al,%esi |
| ++ movzbl -128(%ebp,%esi,1),%esi |
| ++ shll $16,%esi |
| ++ orl %esi,%edx |
| ++ movd %edx,%mm4 |
| ++ movzbl %ah,%eax |
| ++ movzbl -128(%ebp,%eax,1),%eax |
| ++ shll $24,%eax |
| ++ orl %eax,%ecx |
| ++ movd %ecx,%mm5 |
| ++ punpckldq %mm5,%mm4 |
| ++ addl $16,%edi |
| ++ cmpl 24(%esp),%edi |
| ++ ja L008out |
| ++ movq %mm0,%mm3 |
| ++ movq %mm4,%mm7 |
| ++ pshufw $228,%mm0,%mm2 |
| ++ pshufw $228,%mm4,%mm6 |
| ++ movq %mm0,%mm1 |
| ++ movq %mm4,%mm5 |
| ++ pshufw $177,%mm0,%mm0 |
| ++ pshufw $177,%mm4,%mm4 |
| ++ pslld $8,%mm2 |
| ++ pslld $8,%mm6 |
| ++ psrld $8,%mm3 |
| ++ psrld $8,%mm7 |
| ++ pxor %mm2,%mm0 |
| ++ pxor %mm6,%mm4 |
| ++ pxor %mm3,%mm0 |
| ++ pxor %mm7,%mm4 |
| ++ pslld $16,%mm2 |
| ++ pslld $16,%mm6 |
| ++ psrld $16,%mm3 |
| ++ psrld $16,%mm7 |
| ++ pxor %mm2,%mm0 |
| ++ pxor %mm6,%mm4 |
| ++ pxor %mm3,%mm0 |
| ++ pxor %mm7,%mm4 |
| ++ movq 8(%esp),%mm3 |
| ++ pxor %mm2,%mm2 |
| ++ pxor %mm6,%mm6 |
| ++ pcmpgtb %mm1,%mm2 |
| ++ pcmpgtb %mm5,%mm6 |
| ++ pand %mm3,%mm2 |
| ++ pand %mm3,%mm6 |
| ++ paddb %mm1,%mm1 |
| ++ paddb %mm5,%mm5 |
| ++ pxor %mm2,%mm1 |
| ++ pxor %mm6,%mm5 |
| ++ movq %mm1,%mm3 |
| ++ movq %mm5,%mm7 |
| ++ movq %mm1,%mm2 |
| ++ movq %mm5,%mm6 |
| ++ pxor %mm1,%mm0 |
| ++ pxor %mm5,%mm4 |
| ++ pslld $24,%mm3 |
| ++ pslld $24,%mm7 |
| ++ psrld $8,%mm2 |
| ++ psrld $8,%mm6 |
| ++ pxor %mm3,%mm0 |
| ++ pxor %mm7,%mm4 |
| ++ pxor %mm2,%mm0 |
| ++ pxor %mm6,%mm4 |
| ++ movq 8(%esp),%mm2 |
| ++ pxor %mm3,%mm3 |
| ++ pxor %mm7,%mm7 |
| ++ pcmpgtb %mm1,%mm3 |
| ++ pcmpgtb %mm5,%mm7 |
| ++ pand %mm2,%mm3 |
| ++ pand %mm2,%mm7 |
| ++ paddb %mm1,%mm1 |
| ++ paddb %mm5,%mm5 |
| ++ pxor %mm3,%mm1 |
| ++ pxor %mm7,%mm5 |
| ++ pshufw $177,%mm1,%mm3 |
| ++ pshufw $177,%mm5,%mm7 |
| ++ pxor %mm1,%mm0 |
| ++ pxor %mm5,%mm4 |
| ++ pxor %mm3,%mm0 |
| ++ pxor %mm7,%mm4 |
| ++ pxor %mm3,%mm3 |
| ++ pxor %mm7,%mm7 |
| ++ pcmpgtb %mm1,%mm3 |
| ++ pcmpgtb %mm5,%mm7 |
| ++ pand %mm2,%mm3 |
| ++ pand %mm2,%mm7 |
| ++ paddb %mm1,%mm1 |
| ++ paddb %mm5,%mm5 |
| ++ pxor %mm3,%mm1 |
| ++ pxor %mm7,%mm5 |
| ++ pxor %mm1,%mm0 |
| ++ pxor %mm5,%mm4 |
| ++ movq %mm1,%mm3 |
| ++ movq %mm5,%mm7 |
| ++ pshufw $177,%mm1,%mm2 |
| ++ pshufw $177,%mm5,%mm6 |
| ++ pxor %mm2,%mm0 |
| ++ pxor %mm6,%mm4 |
| ++ pslld $8,%mm1 |
| ++ pslld $8,%mm5 |
| ++ psrld $8,%mm3 |
| ++ psrld $8,%mm7 |
| ++ movq (%edi),%mm2 |
| ++ movq 8(%edi),%mm6 |
| ++ pxor %mm1,%mm0 |
| ++ pxor %mm5,%mm4 |
| ++ pxor %mm3,%mm0 |
| ++ pxor %mm7,%mm4 |
| ++ movl -128(%ebp),%eax |
| ++ pslld $16,%mm1 |
| ++ pslld $16,%mm5 |
| ++ movl -64(%ebp),%ebx |
| ++ psrld $16,%mm3 |
| ++ psrld $16,%mm7 |
| ++ movl (%ebp),%ecx |
| ++ pxor %mm1,%mm0 |
| ++ pxor %mm5,%mm4 |
| ++ movl 64(%ebp),%edx |
| ++ pxor %mm3,%mm0 |
| ++ pxor %mm7,%mm4 |
| ++ pxor %mm2,%mm0 |
| ++ pxor %mm6,%mm4 |
| ++ jmp L007loop |
| ++.align 4,0x90 |
| ++L008out: |
| ++ pxor (%edi),%mm0 |
| ++ pxor 8(%edi),%mm4 |
| ++ ret |
| ++.align 4 |
| ++__x86_AES_decrypt: |
| ++ movl %edi,20(%esp) |
| ++ xorl (%edi),%eax |
| ++ xorl 4(%edi),%ebx |
| ++ xorl 8(%edi),%ecx |
| ++ xorl 12(%edi),%edx |
| ++ movl 240(%edi),%esi |
| ++ leal -2(%esi,%esi,1),%esi |
| ++ leal (%edi,%esi,8),%esi |
| ++ movl %esi,24(%esp) |
| ++.align 4,0x90 |
| ++L009loop: |
| ++ movl %eax,%esi |
| ++ andl $255,%esi |
| ++ movl (%ebp,%esi,8),%esi |
| ++ movzbl %dh,%edi |
| ++ xorl 3(%ebp,%edi,8),%esi |
| ++ movl %ecx,%edi |
| ++ shrl $16,%edi |
| ++ andl $255,%edi |
| ++ xorl 2(%ebp,%edi,8),%esi |
| ++ movl %ebx,%edi |
| ++ shrl $24,%edi |
| ++ xorl 1(%ebp,%edi,8),%esi |
| ++ movl %esi,4(%esp) |
| ++ movl %ebx,%esi |
| ++ andl $255,%esi |
| ++ movl (%ebp,%esi,8),%esi |
| ++ movzbl %ah,%edi |
| ++ xorl 3(%ebp,%edi,8),%esi |
| ++ movl %edx,%edi |
| ++ shrl $16,%edi |
| ++ andl $255,%edi |
| ++ xorl 2(%ebp,%edi,8),%esi |
| ++ movl %ecx,%edi |
| ++ shrl $24,%edi |
| ++ xorl 1(%ebp,%edi,8),%esi |
| ++ movl %esi,8(%esp) |
| ++ movl %ecx,%esi |
| ++ andl $255,%esi |
| ++ movl (%ebp,%esi,8),%esi |
| ++ movzbl %bh,%edi |
| ++ xorl 3(%ebp,%edi,8),%esi |
| ++ movl %eax,%edi |
| ++ shrl $16,%edi |
| ++ andl $255,%edi |
| ++ xorl 2(%ebp,%edi,8),%esi |
| ++ movl %edx,%edi |
| ++ shrl $24,%edi |
| ++ xorl 1(%ebp,%edi,8),%esi |
| ++ movl 20(%esp),%edi |
| ++ andl $255,%edx |
| ++ movl (%ebp,%edx,8),%edx |
| ++ movzbl %ch,%ecx |
| ++ xorl 3(%ebp,%ecx,8),%edx |
| ++ movl %esi,%ecx |
| ++ shrl $16,%ebx |
| ++ andl $255,%ebx |
| ++ xorl 2(%ebp,%ebx,8),%edx |
| ++ movl 8(%esp),%ebx |
| ++ shrl $24,%eax |
| ++ xorl 1(%ebp,%eax,8),%edx |
| ++ movl 4(%esp),%eax |
| ++ addl $16,%edi |
| ++ xorl (%edi),%eax |
| ++ xorl 4(%edi),%ebx |
| ++ xorl 8(%edi),%ecx |
| ++ xorl 12(%edi),%edx |
| ++ cmpl 24(%esp),%edi |
| ++ movl %edi,20(%esp) |
| ++ jb L009loop |
| ++ leal 2176(%ebp),%ebp |
| ++ movl -128(%ebp),%edi |
| ++ movl -96(%ebp),%esi |
| ++ movl -64(%ebp),%edi |
| ++ movl -32(%ebp),%esi |
| ++ movl (%ebp),%edi |
| ++ movl 32(%ebp),%esi |
| ++ movl 64(%ebp),%edi |
| ++ movl 96(%ebp),%esi |
| ++ leal -128(%ebp),%ebp |
| ++ movl %eax,%esi |
| ++ andl $255,%esi |
| ++ movzbl (%ebp,%esi,1),%esi |
| ++ movzbl %dh,%edi |
| ++ movzbl (%ebp,%edi,1),%edi |
| ++ shll $8,%edi |
| ++ xorl %edi,%esi |
| ++ movl %ecx,%edi |
| ++ shrl $16,%edi |
| ++ andl $255,%edi |
| ++ movzbl (%ebp,%edi,1),%edi |
| ++ shll $16,%edi |
| ++ xorl %edi,%esi |
| ++ movl %ebx,%edi |
| ++ shrl $24,%edi |
| ++ movzbl (%ebp,%edi,1),%edi |
| ++ shll $24,%edi |
| ++ xorl %edi,%esi |
| ++ movl %esi,4(%esp) |
| ++ movl %ebx,%esi |
| ++ andl $255,%esi |
| ++ movzbl (%ebp,%esi,1),%esi |
| ++ movzbl %ah,%edi |
| ++ movzbl (%ebp,%edi,1),%edi |
| ++ shll $8,%edi |
| ++ xorl %edi,%esi |
| ++ movl %edx,%edi |
| ++ shrl $16,%edi |
| ++ andl $255,%edi |
| ++ movzbl (%ebp,%edi,1),%edi |
| ++ shll $16,%edi |
| ++ xorl %edi,%esi |
| ++ movl %ecx,%edi |
| ++ shrl $24,%edi |
| ++ movzbl (%ebp,%edi,1),%edi |
| ++ shll $24,%edi |
| ++ xorl %edi,%esi |
| ++ movl %esi,8(%esp) |
| ++ movl %ecx,%esi |
| ++ andl $255,%esi |
| ++ movzbl (%ebp,%esi,1),%esi |
| ++ movzbl %bh,%edi |
| ++ movzbl (%ebp,%edi,1),%edi |
| ++ shll $8,%edi |
| ++ xorl %edi,%esi |
| ++ movl %eax,%edi |
| ++ shrl $16,%edi |
| ++ andl $255,%edi |
| ++ movzbl (%ebp,%edi,1),%edi |
| ++ shll $16,%edi |
| ++ xorl %edi,%esi |
| ++ movl %edx,%edi |
| ++ shrl $24,%edi |
| ++ movzbl (%ebp,%edi,1),%edi |
| ++ shll $24,%edi |
| ++ xorl %edi,%esi |
| ++ movl 20(%esp),%edi |
| ++ andl $255,%edx |
| ++ movzbl (%ebp,%edx,1),%edx |
| ++ movzbl %ch,%ecx |
| ++ movzbl (%ebp,%ecx,1),%ecx |
| ++ shll $8,%ecx |
| ++ xorl %ecx,%edx |
| ++ movl %esi,%ecx |
| ++ shrl $16,%ebx |
| ++ andl $255,%ebx |
| ++ movzbl (%ebp,%ebx,1),%ebx |
| ++ shll $16,%ebx |
| ++ xorl %ebx,%edx |
| ++ movl 8(%esp),%ebx |
| ++ shrl $24,%eax |
| ++ movzbl (%ebp,%eax,1),%eax |
| ++ shll $24,%eax |
| ++ xorl %eax,%edx |
| ++ movl 4(%esp),%eax |
| ++ leal -2048(%ebp),%ebp |
| ++ addl $16,%edi |
| ++ xorl (%edi),%eax |
| ++ xorl 4(%edi),%ebx |
| ++ xorl 8(%edi),%ecx |
| ++ xorl 12(%edi),%edx |
| ++ ret |
| ++.align 6,0x90 |
| ++LAES_Td: |
| ++.long 1353184337,1353184337 |
| ++.long 1399144830,1399144830 |
| ++.long 3282310938,3282310938 |
| ++.long 2522752826,2522752826 |
| ++.long 3412831035,3412831035 |
| ++.long 4047871263,4047871263 |
| ++.long 2874735276,2874735276 |
| ++.long 2466505547,2466505547 |
| ++.long 1442459680,1442459680 |
| ++.long 4134368941,4134368941 |
| ++.long 2440481928,2440481928 |
| ++.long 625738485,625738485 |
| ++.long 4242007375,4242007375 |
| ++.long 3620416197,3620416197 |
| ++.long 2151953702,2151953702 |
| ++.long 2409849525,2409849525 |
| ++.long 1230680542,1230680542 |
| ++.long 1729870373,1729870373 |
| ++.long 2551114309,2551114309 |
| ++.long 3787521629,3787521629 |
| ++.long 41234371,41234371 |
| ++.long 317738113,317738113 |
| ++.long 2744600205,2744600205 |
| ++.long 3338261355,3338261355 |
| ++.long 3881799427,3881799427 |
| ++.long 2510066197,2510066197 |
| ++.long 3950669247,3950669247 |
| ++.long 3663286933,3663286933 |
| ++.long 763608788,763608788 |
| ++.long 3542185048,3542185048 |
| ++.long 694804553,694804553 |
| ++.long 1154009486,1154009486 |
| ++.long 1787413109,1787413109 |
| ++.long 2021232372,2021232372 |
| ++.long 1799248025,1799248025 |
| ++.long 3715217703,3715217703 |
| ++.long 3058688446,3058688446 |
| ++.long 397248752,397248752 |
| ++.long 1722556617,1722556617 |
| ++.long 3023752829,3023752829 |
| ++.long 407560035,407560035 |
| ++.long 2184256229,2184256229 |
| ++.long 1613975959,1613975959 |
| ++.long 1165972322,1165972322 |
| ++.long 3765920945,3765920945 |
| ++.long 2226023355,2226023355 |
| ++.long 480281086,480281086 |
| ++.long 2485848313,2485848313 |
| ++.long 1483229296,1483229296 |
| ++.long 436028815,436028815 |
| ++.long 2272059028,2272059028 |
| ++.long 3086515026,3086515026 |
| ++.long 601060267,601060267 |
| ++.long 3791801202,3791801202 |
| ++.long 1468997603,1468997603 |
| ++.long 715871590,715871590 |
| ++.long 120122290,120122290 |
| ++.long 63092015,63092015 |
| ++.long 2591802758,2591802758 |
| ++.long 2768779219,2768779219 |
| ++.long 4068943920,4068943920 |
| ++.long 2997206819,2997206819 |
| ++.long 3127509762,3127509762 |
| ++.long 1552029421,1552029421 |
| ++.long 723308426,723308426 |
| ++.long 2461301159,2461301159 |
| ++.long 4042393587,4042393587 |
| ++.long 2715969870,2715969870 |
| ++.long 3455375973,3455375973 |
| ++.long 3586000134,3586000134 |
| ++.long 526529745,526529745 |
| ++.long 2331944644,2331944644 |
| ++.long 2639474228,2639474228 |
| ++.long 2689987490,2689987490 |
| ++.long 853641733,853641733 |
| ++.long 1978398372,1978398372 |
| ++.long 971801355,971801355 |
| ++.long 2867814464,2867814464 |
| ++.long 111112542,111112542 |
| ++.long 1360031421,1360031421 |
| ++.long 4186579262,4186579262 |
| ++.long 1023860118,1023860118 |
| ++.long 2919579357,2919579357 |
| ++.long 1186850381,1186850381 |
| ++.long 3045938321,3045938321 |
| ++.long 90031217,90031217 |
| ++.long 1876166148,1876166148 |
| ++.long 4279586912,4279586912 |
| ++.long 620468249,620468249 |
| ++.long 2548678102,2548678102 |
| ++.long 3426959497,3426959497 |
| ++.long 2006899047,2006899047 |
| ++.long 3175278768,3175278768 |
| ++.long 2290845959,2290845959 |
| ++.long 945494503,945494503 |
| ++.long 3689859193,3689859193 |
| ++.long 1191869601,1191869601 |
| ++.long 3910091388,3910091388 |
| ++.long 3374220536,3374220536 |
| ++.long 0,0 |
| ++.long 2206629897,2206629897 |
| ++.long 1223502642,1223502642 |
| ++.long 2893025566,2893025566 |
| ++.long 1316117100,1316117100 |
| ++.long 4227796733,4227796733 |
| ++.long 1446544655,1446544655 |
| ++.long 517320253,517320253 |
| ++.long 658058550,658058550 |
| ++.long 1691946762,1691946762 |
| ++.long 564550760,564550760 |
| ++.long 3511966619,3511966619 |
| ++.long 976107044,976107044 |
| ++.long 2976320012,2976320012 |
| ++.long 266819475,266819475 |
| ++.long 3533106868,3533106868 |
| ++.long 2660342555,2660342555 |
| ++.long 1338359936,1338359936 |
| ++.long 2720062561,2720062561 |
| ++.long 1766553434,1766553434 |
| ++.long 370807324,370807324 |
| ++.long 179999714,179999714 |
| ++.long 3844776128,3844776128 |
| ++.long 1138762300,1138762300 |
| ++.long 488053522,488053522 |
| ++.long 185403662,185403662 |
| ++.long 2915535858,2915535858 |
| ++.long 3114841645,3114841645 |
| ++.long 3366526484,3366526484 |
| ++.long 2233069911,2233069911 |
| ++.long 1275557295,1275557295 |
| ++.long 3151862254,3151862254 |
| ++.long 4250959779,4250959779 |
| ++.long 2670068215,2670068215 |
| ++.long 3170202204,3170202204 |
| ++.long 3309004356,3309004356 |
| ++.long 880737115,880737115 |
| ++.long 1982415755,1982415755 |
| ++.long 3703972811,3703972811 |
| ++.long 1761406390,1761406390 |
| ++.long 1676797112,1676797112 |
| ++.long 3403428311,3403428311 |
| ++.long 277177154,277177154 |
| ++.long 1076008723,1076008723 |
| ++.long 538035844,538035844 |
| ++.long 2099530373,2099530373 |
| ++.long 4164795346,4164795346 |
| ++.long 288553390,288553390 |
| ++.long 1839278535,1839278535 |
| ++.long 1261411869,1261411869 |
| ++.long 4080055004,4080055004 |
| ++.long 3964831245,3964831245 |
| ++.long 3504587127,3504587127 |
| ++.long 1813426987,1813426987 |
| ++.long 2579067049,2579067049 |
| ++.long 4199060497,4199060497 |
| ++.long 577038663,577038663 |
| ++.long 3297574056,3297574056 |
| ++.long 440397984,440397984 |
| ++.long 3626794326,3626794326 |
| ++.long 4019204898,4019204898 |
| ++.long 3343796615,3343796615 |
| ++.long 3251714265,3251714265 |
| ++.long 4272081548,4272081548 |
| ++.long 906744984,906744984 |
| ++.long 3481400742,3481400742 |
| ++.long 685669029,685669029 |
| ++.long 646887386,646887386 |
| ++.long 2764025151,2764025151 |
| ++.long 3835509292,3835509292 |
| ++.long 227702864,227702864 |
| ++.long 2613862250,2613862250 |
| ++.long 1648787028,1648787028 |
| ++.long 3256061430,3256061430 |
| ++.long 3904428176,3904428176 |
| ++.long 1593260334,1593260334 |
| ++.long 4121936770,4121936770 |
| ++.long 3196083615,3196083615 |
| ++.long 2090061929,2090061929 |
| ++.long 2838353263,2838353263 |
| ++.long 3004310991,3004310991 |
| ++.long 999926984,999926984 |
| ++.long 2809993232,2809993232 |
| ++.long 1852021992,1852021992 |
| ++.long 2075868123,2075868123 |
| ++.long 158869197,158869197 |
| ++.long 4095236462,4095236462 |
| ++.long 28809964,28809964 |
| ++.long 2828685187,2828685187 |
| ++.long 1701746150,1701746150 |
| ++.long 2129067946,2129067946 |
| ++.long 147831841,147831841 |
| ++.long 3873969647,3873969647 |
| ++.long 3650873274,3650873274 |
| ++.long 3459673930,3459673930 |
| ++.long 3557400554,3557400554 |
| ++.long 3598495785,3598495785 |
| ++.long 2947720241,2947720241 |
| ++.long 824393514,824393514 |
| ++.long 815048134,815048134 |
| ++.long 3227951669,3227951669 |
| ++.long 935087732,935087732 |
| ++.long 2798289660,2798289660 |
| ++.long 2966458592,2966458592 |
| ++.long 366520115,366520115 |
| ++.long 1251476721,1251476721 |
| ++.long 4158319681,4158319681 |
| ++.long 240176511,240176511 |
| ++.long 804688151,804688151 |
| ++.long 2379631990,2379631990 |
| ++.long 1303441219,1303441219 |
| ++.long 1414376140,1414376140 |
| ++.long 3741619940,3741619940 |
| ++.long 3820343710,3820343710 |
| ++.long 461924940,461924940 |
| ++.long 3089050817,3089050817 |
| ++.long 2136040774,2136040774 |
| ++.long 82468509,82468509 |
| ++.long 1563790337,1563790337 |
| ++.long 1937016826,1937016826 |
| ++.long 776014843,776014843 |
| ++.long 1511876531,1511876531 |
| ++.long 1389550482,1389550482 |
| ++.long 861278441,861278441 |
| ++.long 323475053,323475053 |
| ++.long 2355222426,2355222426 |
| ++.long 2047648055,2047648055 |
| ++.long 2383738969,2383738969 |
| ++.long 2302415851,2302415851 |
| ++.long 3995576782,3995576782 |
| ++.long 902390199,902390199 |
| ++.long 3991215329,3991215329 |
| ++.long 1018251130,1018251130 |
| ++.long 1507840668,1507840668 |
| ++.long 1064563285,1064563285 |
| ++.long 2043548696,2043548696 |
| ++.long 3208103795,3208103795 |
| ++.long 3939366739,3939366739 |
| ++.long 1537932639,1537932639 |
| ++.long 342834655,342834655 |
| ++.long 2262516856,2262516856 |
| ++.long 2180231114,2180231114 |
| ++.long 1053059257,1053059257 |
| ++.long 741614648,741614648 |
| ++.long 1598071746,1598071746 |
| ++.long 1925389590,1925389590 |
| ++.long 203809468,203809468 |
| ++.long 2336832552,2336832552 |
| ++.long 1100287487,1100287487 |
| ++.long 1895934009,1895934009 |
| ++.long 3736275976,3736275976 |
| ++.long 2632234200,2632234200 |
| ++.long 2428589668,2428589668 |
| ++.long 1636092795,1636092795 |
| ++.long 1890988757,1890988757 |
| ++.long 1952214088,1952214088 |
| ++.long 1113045200,1113045200 |
| ++.byte 82,9,106,213,48,54,165,56 |
| ++.byte 191,64,163,158,129,243,215,251 |
| ++.byte 124,227,57,130,155,47,255,135 |
| ++.byte 52,142,67,68,196,222,233,203 |
| ++.byte 84,123,148,50,166,194,35,61 |
| ++.byte 238,76,149,11,66,250,195,78 |
| ++.byte 8,46,161,102,40,217,36,178 |
| ++.byte 118,91,162,73,109,139,209,37 |
| ++.byte 114,248,246,100,134,104,152,22 |
| ++.byte 212,164,92,204,93,101,182,146 |
| ++.byte 108,112,72,80,253,237,185,218 |
| ++.byte 94,21,70,87,167,141,157,132 |
| ++.byte 144,216,171,0,140,188,211,10 |
| ++.byte 247,228,88,5,184,179,69,6 |
| ++.byte 208,44,30,143,202,63,15,2 |
| ++.byte 193,175,189,3,1,19,138,107 |
| ++.byte 58,145,17,65,79,103,220,234 |
| ++.byte 151,242,207,206,240,180,230,115 |
| ++.byte 150,172,116,34,231,173,53,133 |
| ++.byte 226,249,55,232,28,117,223,110 |
| ++.byte 71,241,26,113,29,41,197,137 |
| ++.byte 111,183,98,14,170,24,190,27 |
| ++.byte 252,86,62,75,198,210,121,32 |
| ++.byte 154,219,192,254,120,205,90,244 |
| ++.byte 31,221,168,51,136,7,199,49 |
| ++.byte 177,18,16,89,39,128,236,95 |
| ++.byte 96,81,127,169,25,181,74,13 |
| ++.byte 45,229,122,159,147,201,156,239 |
| ++.byte 160,224,59,77,174,42,245,176 |
| ++.byte 200,235,187,60,131,83,153,97 |
| ++.byte 23,43,4,126,186,119,214,38 |
| ++.byte 225,105,20,99,85,33,12,125 |
| ++.byte 82,9,106,213,48,54,165,56 |
| ++.byte 191,64,163,158,129,243,215,251 |
| ++.byte 124,227,57,130,155,47,255,135 |
| ++.byte 52,142,67,68,196,222,233,203 |
| ++.byte 84,123,148,50,166,194,35,61 |
| ++.byte 238,76,149,11,66,250,195,78 |
| ++.byte 8,46,161,102,40,217,36,178 |
| ++.byte 118,91,162,73,109,139,209,37 |
| ++.byte 114,248,246,100,134,104,152,22 |
| ++.byte 212,164,92,204,93,101,182,146 |
| ++.byte 108,112,72,80,253,237,185,218 |
| ++.byte 94,21,70,87,167,141,157,132 |
| ++.byte 144,216,171,0,140,188,211,10 |
| ++.byte 247,228,88,5,184,179,69,6 |
| ++.byte 208,44,30,143,202,63,15,2 |
| ++.byte 193,175,189,3,1,19,138,107 |
| ++.byte 58,145,17,65,79,103,220,234 |
| ++.byte 151,242,207,206,240,180,230,115 |
| ++.byte 150,172,116,34,231,173,53,133 |
| ++.byte 226,249,55,232,28,117,223,110 |
| ++.byte 71,241,26,113,29,41,197,137 |
| ++.byte 111,183,98,14,170,24,190,27 |
| ++.byte 252,86,62,75,198,210,121,32 |
| ++.byte 154,219,192,254,120,205,90,244 |
| ++.byte 31,221,168,51,136,7,199,49 |
| ++.byte 177,18,16,89,39,128,236,95 |
| ++.byte 96,81,127,169,25,181,74,13 |
| ++.byte 45,229,122,159,147,201,156,239 |
| ++.byte 160,224,59,77,174,42,245,176 |
| ++.byte 200,235,187,60,131,83,153,97 |
| ++.byte 23,43,4,126,186,119,214,38 |
| ++.byte 225,105,20,99,85,33,12,125 |
| ++.byte 82,9,106,213,48,54,165,56 |
| ++.byte 191,64,163,158,129,243,215,251 |
| ++.byte 124,227,57,130,155,47,255,135 |
| ++.byte 52,142,67,68,196,222,233,203 |
| ++.byte 84,123,148,50,166,194,35,61 |
| ++.byte 238,76,149,11,66,250,195,78 |
| ++.byte 8,46,161,102,40,217,36,178 |
| ++.byte 118,91,162,73,109,139,209,37 |
| ++.byte 114,248,246,100,134,104,152,22 |
| ++.byte 212,164,92,204,93,101,182,146 |
| ++.byte 108,112,72,80,253,237,185,218 |
| ++.byte 94,21,70,87,167,141,157,132 |
| ++.byte 144,216,171,0,140,188,211,10 |
| ++.byte 247,228,88,5,184,179,69,6 |
| ++.byte 208,44,30,143,202,63,15,2 |
| ++.byte 193,175,189,3,1,19,138,107 |
| ++.byte 58,145,17,65,79,103,220,234 |
| ++.byte 151,242,207,206,240,180,230,115 |
| ++.byte 150,172,116,34,231,173,53,133 |
| ++.byte 226,249,55,232,28,117,223,110 |
| ++.byte 71,241,26,113,29,41,197,137 |
| ++.byte 111,183,98,14,170,24,190,27 |
| ++.byte 252,86,62,75,198,210,121,32 |
| ++.byte 154,219,192,254,120,205,90,244 |
| ++.byte 31,221,168,51,136,7,199,49 |
| ++.byte 177,18,16,89,39,128,236,95 |
| ++.byte 96,81,127,169,25,181,74,13 |
| ++.byte 45,229,122,159,147,201,156,239 |
| ++.byte 160,224,59,77,174,42,245,176 |
| ++.byte 200,235,187,60,131,83,153,97 |
| ++.byte 23,43,4,126,186,119,214,38 |
| ++.byte 225,105,20,99,85,33,12,125 |
| ++.byte 82,9,106,213,48,54,165,56 |
| ++.byte 191,64,163,158,129,243,215,251 |
| ++.byte 124,227,57,130,155,47,255,135 |
| ++.byte 52,142,67,68,196,222,233,203 |
| ++.byte 84,123,148,50,166,194,35,61 |
| ++.byte 238,76,149,11,66,250,195,78 |
| ++.byte 8,46,161,102,40,217,36,178 |
| ++.byte 118,91,162,73,109,139,209,37 |
| ++.byte 114,248,246,100,134,104,152,22 |
| ++.byte 212,164,92,204,93,101,182,146 |
| ++.byte 108,112,72,80,253,237,185,218 |
| ++.byte 94,21,70,87,167,141,157,132 |
| ++.byte 144,216,171,0,140,188,211,10 |
| ++.byte 247,228,88,5,184,179,69,6 |
| ++.byte 208,44,30,143,202,63,15,2 |
| ++.byte 193,175,189,3,1,19,138,107 |
| ++.byte 58,145,17,65,79,103,220,234 |
| ++.byte 151,242,207,206,240,180,230,115 |
| ++.byte 150,172,116,34,231,173,53,133 |
| ++.byte 226,249,55,232,28,117,223,110 |
| ++.byte 71,241,26,113,29,41,197,137 |
| ++.byte 111,183,98,14,170,24,190,27 |
| ++.byte 252,86,62,75,198,210,121,32 |
| ++.byte 154,219,192,254,120,205,90,244 |
| ++.byte 31,221,168,51,136,7,199,49 |
| ++.byte 177,18,16,89,39,128,236,95 |
| ++.byte 96,81,127,169,25,181,74,13 |
| ++.byte 45,229,122,159,147,201,156,239 |
| ++.byte 160,224,59,77,174,42,245,176 |
| ++.byte 200,235,187,60,131,83,153,97 |
| ++.byte 23,43,4,126,186,119,214,38 |
| ++.byte 225,105,20,99,85,33,12,125 |
| ++.globl _AES_decrypt |
| ++.align 4 |
| ++_AES_decrypt: |
| ++L_AES_decrypt_begin: |
| ++ pushl %ebp |
| ++ pushl %ebx |
| ++ pushl %esi |
| ++ pushl %edi |
| ++ movl 20(%esp),%esi |
| ++ movl 28(%esp),%edi |
| ++ movl %esp,%eax |
| ++ subl $36,%esp |
| ++ andl $-64,%esp |
| ++ leal -127(%edi),%ebx |
| ++ subl %esp,%ebx |
| ++ negl %ebx |
| ++ andl $960,%ebx |
| ++ subl %ebx,%esp |
| ++ addl $4,%esp |
| ++ movl %eax,28(%esp) |
| ++ call L010pic_point |
| ++L010pic_point: |
| ++ popl %ebp |
| ++ movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L010pic_point(%ebp),%eax |
| ++ leal LAES_Td-L010pic_point(%ebp),%ebp |
| ++ leal 764(%esp),%ebx |
| ++ subl %ebp,%ebx |
| ++ andl $768,%ebx |
| ++ leal 2176(%ebp,%ebx,1),%ebp |
| ++ btl $25,(%eax) |
| ++ jnc L011x86 |
| ++ movq (%esi),%mm0 |
| ++ movq 8(%esi),%mm4 |
| ++ call __sse_AES_decrypt_compact |
| ++ movl 28(%esp),%esp |
| ++ movl 24(%esp),%esi |
| ++ movq %mm0,(%esi) |
| ++ movq %mm4,8(%esi) |
| ++ emms |
| ++ popl %edi |
| ++ popl %esi |
| ++ popl %ebx |
| ++ popl %ebp |
| ++ ret |
| ++.align 4,0x90 |
| ++L011x86: |
| ++ movl %ebp,24(%esp) |
| ++ movl (%esi),%eax |
| ++ movl 4(%esi),%ebx |
| ++ movl 8(%esi),%ecx |
| ++ movl 12(%esi),%edx |
| ++ call __x86_AES_decrypt_compact |
| ++ movl 28(%esp),%esp |
| ++ movl 24(%esp),%esi |
| ++ movl %eax,(%esi) |
| ++ movl %ebx,4(%esi) |
| ++ movl %ecx,8(%esi) |
| ++ movl %edx,12(%esi) |
| ++ popl %edi |
| ++ popl %esi |
| ++ popl %ebx |
| ++ popl %ebp |
| ++ ret |
| ++.globl _AES_cbc_encrypt |
| ++.align 4 |
| ++_AES_cbc_encrypt: |
| ++L_AES_cbc_encrypt_begin: |
| ++ pushl %ebp |
| ++ pushl %ebx |
| ++ pushl %esi |
| ++ pushl %edi |
| ++ movl 28(%esp),%ecx |
| ++ cmpl $0,%ecx |
| ++ je L012drop_out |
| ++ call L013pic_point |
| ++L013pic_point: |
| ++ popl %ebp |
| ++ movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L013pic_point(%ebp),%eax |
| ++ cmpl $0,40(%esp) |
| ++ leal LAES_Te-L013pic_point(%ebp),%ebp |
| ++ jne L014picked_te |
| ++ leal LAES_Td-LAES_Te(%ebp),%ebp |
| ++L014picked_te: |
| ++ pushfl |
| ++ cld |
| ++ cmpl $512,%ecx |
| ++ jb L015slow_way |
| ++ testl $15,%ecx |
| ++ jnz L015slow_way |
| ++ btl $28,(%eax) |
| ++ jc L015slow_way |
| ++ leal -324(%esp),%esi |
| ++ andl $-64,%esi |
| ++ movl %ebp,%eax |
| ++ leal 2304(%ebp),%ebx |
| ++ movl %esi,%edx |
| ++ andl $4095,%eax |
| ++ andl $4095,%ebx |
| ++ andl $4095,%edx |
| ++ cmpl %ebx,%edx |
| ++ jb L016tbl_break_out |
| ++ subl %ebx,%edx |
| ++ subl %edx,%esi |
| ++ jmp L017tbl_ok |
| ++.align 2,0x90 |
| ++L016tbl_break_out: |
| ++ subl %eax,%edx |
| ++ andl $4095,%edx |
| ++ addl $384,%edx |
| ++ subl %edx,%esi |
| ++.align 2,0x90 |
| ++L017tbl_ok: |
| ++ leal 24(%esp),%edx |
| ++ xchgl %esi,%esp |
| ++ addl $4,%esp |
| ++ movl %ebp,24(%esp) |
| ++ movl %esi,28(%esp) |
| ++ movl (%edx),%eax |
| ++ movl 4(%edx),%ebx |
| ++ movl 12(%edx),%edi |
| ++ movl 16(%edx),%esi |
| ++ movl 20(%edx),%edx |
| ++ movl %eax,32(%esp) |
| ++ movl %ebx,36(%esp) |
| ++ movl %ecx,40(%esp) |
| ++ movl %edi,44(%esp) |
| ++ movl %esi,48(%esp) |
| ++ movl $0,316(%esp) |
| ++ movl %edi,%ebx |
| ++ movl $61,%ecx |
| ++ subl %ebp,%ebx |
| ++ movl %edi,%esi |
| ++ andl $4095,%ebx |
| ++ leal 76(%esp),%edi |
| ++ cmpl $2304,%ebx |
| ++ jb L018do_copy |
| ++ cmpl $3852,%ebx |
| ++ jb L019skip_copy |
| ++.align 2,0x90 |
| ++L018do_copy: |
| ++ movl %edi,44(%esp) |
| ++.long 2784229001 |
| ++L019skip_copy: |
| ++ movl $16,%edi |
| ++.align 2,0x90 |
| ++L020prefetch_tbl: |
| ++ movl (%ebp),%eax |
| ++ movl 32(%ebp),%ebx |
| ++ movl 64(%ebp),%ecx |
| ++ movl 96(%ebp),%esi |
| ++ leal 128(%ebp),%ebp |
| ++ subl $1,%edi |
| ++ jnz L020prefetch_tbl |
| ++ subl $2048,%ebp |
| ++ movl 32(%esp),%esi |
| ++ movl 48(%esp),%edi |
| ++ cmpl $0,%edx |
| ++ je L021fast_decrypt |
| ++ movl (%edi),%eax |
| ++ movl 4(%edi),%ebx |
| ++.align 4,0x90 |
| ++L022fast_enc_loop: |
| ++ movl 8(%edi),%ecx |
| ++ movl 12(%edi),%edx |
| ++ xorl (%esi),%eax |
| ++ xorl 4(%esi),%ebx |
| ++ xorl 8(%esi),%ecx |
| ++ xorl 12(%esi),%edx |
| ++ movl 44(%esp),%edi |
| ++ call __x86_AES_encrypt |
| ++ movl 32(%esp),%esi |
| ++ movl 36(%esp),%edi |
| ++ movl %eax,(%edi) |
| ++ movl %ebx,4(%edi) |
| ++ movl %ecx,8(%edi) |
| ++ movl %edx,12(%edi) |
| ++ leal 16(%esi),%esi |
| ++ movl 40(%esp),%ecx |
| ++ movl %esi,32(%esp) |
| ++ leal 16(%edi),%edx |
| ++ movl %edx,36(%esp) |
| ++ subl $16,%ecx |
| ++ movl %ecx,40(%esp) |
| ++ jnz L022fast_enc_loop |
| ++ movl 48(%esp),%esi |
| ++ movl 8(%edi),%ecx |
| ++ movl 12(%edi),%edx |
| ++ movl %eax,(%esi) |
| ++ movl %ebx,4(%esi) |
| ++ movl %ecx,8(%esi) |
| ++ movl %edx,12(%esi) |
| ++ cmpl $0,316(%esp) |
| ++ movl 44(%esp),%edi |
| ++ je L023skip_ezero |
| ++ movl $60,%ecx |
| ++ xorl %eax,%eax |
| ++.align 2,0x90 |
| ++.long 2884892297 |
| ++L023skip_ezero: |
| ++ movl 28(%esp),%esp |
| ++ popfl |
| ++L012drop_out: |
| ++ popl %edi |
| ++ popl %esi |
| ++ popl %ebx |
| ++ popl %ebp |
| ++ ret |
| ++ pushfl |
| ++.align 4,0x90 |
| ++L021fast_decrypt: |
| ++ cmpl 36(%esp),%esi |
| ++ je L024fast_dec_in_place |
| ++ movl %edi,52(%esp) |
| ++.align 2,0x90 |
| ++.align 4,0x90 |
| ++L025fast_dec_loop: |
| ++ movl (%esi),%eax |
| ++ movl 4(%esi),%ebx |
| ++ movl 8(%esi),%ecx |
| ++ movl 12(%esi),%edx |
| ++ movl 44(%esp),%edi |
| ++ call __x86_AES_decrypt |
| ++ movl 52(%esp),%edi |
| ++ movl 40(%esp),%esi |
| ++ xorl (%edi),%eax |
| ++ xorl 4(%edi),%ebx |
| ++ xorl 8(%edi),%ecx |
| ++ xorl 12(%edi),%edx |
| ++ movl 36(%esp),%edi |
| ++ movl 32(%esp),%esi |
| ++ movl %eax,(%edi) |
| ++ movl %ebx,4(%edi) |
| ++ movl %ecx,8(%edi) |
| ++ movl %edx,12(%edi) |
| ++ movl 40(%esp),%ecx |
| ++ movl %esi,52(%esp) |
| ++ leal 16(%esi),%esi |
| ++ movl %esi,32(%esp) |
| ++ leal 16(%edi),%edi |
| ++ movl %edi,36(%esp) |
| ++ subl $16,%ecx |
| ++ movl %ecx,40(%esp) |
| ++ jnz L025fast_dec_loop |
| ++ movl 52(%esp),%edi |
| ++ movl 48(%esp),%esi |
| ++ movl (%edi),%eax |
| ++ movl 4(%edi),%ebx |
| ++ movl 8(%edi),%ecx |
| ++ movl 12(%edi),%edx |
| ++ movl %eax,(%esi) |
| ++ movl %ebx,4(%esi) |
| ++ movl %ecx,8(%esi) |
| ++ movl %edx,12(%esi) |
| ++ jmp L026fast_dec_out |
| ++.align 4,0x90 |
| ++L024fast_dec_in_place: |
| ++L027fast_dec_in_place_loop: |
| ++ movl (%esi),%eax |
| ++ movl 4(%esi),%ebx |
| ++ movl 8(%esi),%ecx |
| ++ movl 12(%esi),%edx |
| ++ leal 60(%esp),%edi |
| ++ movl %eax,(%edi) |
| ++ movl %ebx,4(%edi) |
| ++ movl %ecx,8(%edi) |
| ++ movl %edx,12(%edi) |
| ++ movl 44(%esp),%edi |
| ++ call __x86_AES_decrypt |
| ++ movl 48(%esp),%edi |
| ++ movl 36(%esp),%esi |
| ++ xorl (%edi),%eax |
| ++ xorl 4(%edi),%ebx |
| ++ xorl 8(%edi),%ecx |
| ++ xorl 12(%edi),%edx |
| ++ movl %eax,(%esi) |
| ++ movl %ebx,4(%esi) |
| ++ movl %ecx,8(%esi) |
| ++ movl %edx,12(%esi) |
| ++ leal 16(%esi),%esi |
| ++ movl %esi,36(%esp) |
| ++ leal 60(%esp),%esi |
| ++ movl (%esi),%eax |
| ++ movl 4(%esi),%ebx |
| ++ movl 8(%esi),%ecx |
| ++ movl 12(%esi),%edx |
| ++ movl %eax,(%edi) |
| ++ movl %ebx,4(%edi) |
| ++ movl %ecx,8(%edi) |
| ++ movl %edx,12(%edi) |
| ++ movl 32(%esp),%esi |
| ++ movl 40(%esp),%ecx |
| ++ leal 16(%esi),%esi |
| ++ movl %esi,32(%esp) |
| ++ subl $16,%ecx |
| ++ movl %ecx,40(%esp) |
| ++ jnz L027fast_dec_in_place_loop |
| ++.align 2,0x90 |
| ++L026fast_dec_out: |
| ++ cmpl $0,316(%esp) |
| ++ movl 44(%esp),%edi |
| ++ je L028skip_dzero |
| ++ movl $60,%ecx |
| ++ xorl %eax,%eax |
| ++.align 2,0x90 |
| ++.long 2884892297 |
| ++L028skip_dzero: |
| ++ movl 28(%esp),%esp |
| ++ popfl |
| ++ popl %edi |
| ++ popl %esi |
| ++ popl %ebx |
| ++ popl %ebp |
| ++ ret |
| ++ pushfl |
| ++.align 4,0x90 |
| ++L015slow_way: |
| ++ movl (%eax),%eax |
| ++ movl 36(%esp),%edi |
| ++ leal -80(%esp),%esi |
| ++ andl $-64,%esi |
| ++ leal -143(%edi),%ebx |
| ++ subl %esi,%ebx |
| ++ negl %ebx |
| ++ andl $960,%ebx |
| ++ subl %ebx,%esi |
| ++ leal 768(%esi),%ebx |
| ++ subl %ebp,%ebx |
| ++ andl $768,%ebx |
| ++ leal 2176(%ebp,%ebx,1),%ebp |
| ++ leal 24(%esp),%edx |
| ++ xchgl %esi,%esp |
| ++ addl $4,%esp |
| ++ movl %ebp,24(%esp) |
| ++ movl %esi,28(%esp) |
| ++ movl %eax,52(%esp) |
| ++ movl (%edx),%eax |
| ++ movl 4(%edx),%ebx |
| ++ movl 16(%edx),%esi |
| ++ movl 20(%edx),%edx |
| ++ movl %eax,32(%esp) |
| ++ movl %ebx,36(%esp) |
| ++ movl %ecx,40(%esp) |
| ++ movl %edi,44(%esp) |
| ++ movl %esi,48(%esp) |
| ++ movl %esi,%edi |
| ++ movl %eax,%esi |
| ++ cmpl $0,%edx |
| ++ je L029slow_decrypt |
| ++ cmpl $16,%ecx |
| ++ movl %ebx,%edx |
| ++ jb L030slow_enc_tail |
| ++ btl $25,52(%esp) |
| ++ jnc L031slow_enc_x86 |
| ++ movq (%edi),%mm0 |
| ++ movq 8(%edi),%mm4 |
| ++.align 4,0x90 |
| ++L032slow_enc_loop_sse: |
| ++ pxor (%esi),%mm0 |
| ++ pxor 8(%esi),%mm4 |
| ++ movl 44(%esp),%edi |
| ++ call __sse_AES_encrypt_compact |
| ++ movl 32(%esp),%esi |
| ++ movl 36(%esp),%edi |
| ++ movl 40(%esp),%ecx |
| ++ movq %mm0,(%edi) |
| ++ movq %mm4,8(%edi) |
| ++ leal 16(%esi),%esi |
| ++ movl %esi,32(%esp) |
| ++ leal 16(%edi),%edx |
| ++ movl %edx,36(%esp) |
| ++ subl $16,%ecx |
| ++ cmpl $16,%ecx |
| ++ movl %ecx,40(%esp) |
| ++ jae L032slow_enc_loop_sse |
| ++ testl $15,%ecx |
| ++ jnz L030slow_enc_tail |
| ++ movl 48(%esp),%esi |
| ++ movq %mm0,(%esi) |
| ++ movq %mm4,8(%esi) |
| ++ emms |
| ++ movl 28(%esp),%esp |
| ++ popfl |
| ++ popl %edi |
| ++ popl %esi |
| ++ popl %ebx |
| ++ popl %ebp |
| ++ ret |
| ++ pushfl |
| ++.align 4,0x90 |
| ++L031slow_enc_x86: |
| ++ movl (%edi),%eax |
| ++ movl 4(%edi),%ebx |
| ++.align 2,0x90 |
| ++L033slow_enc_loop_x86: |
| ++ movl 8(%edi),%ecx |
| ++ movl 12(%edi),%edx |
| ++ xorl (%esi),%eax |
| ++ xorl 4(%esi),%ebx |
| ++ xorl 8(%esi),%ecx |
| ++ xorl 12(%esi),%edx |
| ++ movl 44(%esp),%edi |
| ++ call __x86_AES_encrypt_compact |
| ++ movl 32(%esp),%esi |
| ++ movl 36(%esp),%edi |
| ++ movl %eax,(%edi) |
| ++ movl %ebx,4(%edi) |
| ++ movl %ecx,8(%edi) |
| ++ movl %edx,12(%edi) |
| ++ movl 40(%esp),%ecx |
| ++ leal 16(%esi),%esi |
| ++ movl %esi,32(%esp) |
| ++ leal 16(%edi),%edx |
| ++ movl %edx,36(%esp) |
| ++ subl $16,%ecx |
| ++ cmpl $16,%ecx |
| ++ movl %ecx,40(%esp) |
| ++ jae L033slow_enc_loop_x86 |
| ++ testl $15,%ecx |
| ++ jnz L030slow_enc_tail |
| ++ movl 48(%esp),%esi |
| ++ movl 8(%edi),%ecx |
| ++ movl 12(%edi),%edx |
| ++ movl %eax,(%esi) |
| ++ movl %ebx,4(%esi) |
| ++ movl %ecx,8(%esi) |
| ++ movl %edx,12(%esi) |
| ++ movl 28(%esp),%esp |
| ++ popfl |
| ++ popl %edi |
| ++ popl %esi |
| ++ popl %ebx |
| ++ popl %ebp |
| ++ ret |
| ++ pushfl |
| ++.align 4,0x90 |
| ++L030slow_enc_tail: |
| ++ emms |
| ++ movl %edx,%edi |
| ++ movl $16,%ebx |
| ++ subl %ecx,%ebx |
| ++ cmpl %esi,%edi |
| ++ je L034enc_in_place |
| ++.align 2,0x90 |
| ++.long 2767451785 |
| ++ jmp L035enc_skip_in_place |
| ++L034enc_in_place: |
| ++ leal (%edi,%ecx,1),%edi |
| ++L035enc_skip_in_place: |
| ++ movl %ebx,%ecx |
| ++ xorl %eax,%eax |
| ++.align 2,0x90 |
| ++.long 2868115081 |
| ++ movl 48(%esp),%edi |
| ++ movl %edx,%esi |
| ++ movl (%edi),%eax |
| ++ movl 4(%edi),%ebx |
| ++ movl $16,40(%esp) |
| ++ jmp L033slow_enc_loop_x86 |
| ++.align 4,0x90 |
| ++L029slow_decrypt: |
| ++ btl $25,52(%esp) |
| ++ jnc L036slow_dec_loop_x86 |
| ++.align 2,0x90 |
| ++L037slow_dec_loop_sse: |
| ++ movq (%esi),%mm0 |
| ++ movq 8(%esi),%mm4 |
| ++ movl 44(%esp),%edi |
| ++ call __sse_AES_decrypt_compact |
| ++ movl 32(%esp),%esi |
| ++ leal 60(%esp),%eax |
| ++ movl 36(%esp),%ebx |
| ++ movl 40(%esp),%ecx |
| ++ movl 48(%esp),%edi |
| ++ movq (%esi),%mm1 |
| ++ movq 8(%esi),%mm5 |
| ++ pxor (%edi),%mm0 |
| ++ pxor 8(%edi),%mm4 |
| ++ movq %mm1,(%edi) |
| ++ movq %mm5,8(%edi) |
| ++ subl $16,%ecx |
| ++ jc L038slow_dec_partial_sse |
| ++ movq %mm0,(%ebx) |
| ++ movq %mm4,8(%ebx) |
| ++ leal 16(%ebx),%ebx |
| ++ movl %ebx,36(%esp) |
| ++ leal 16(%esi),%esi |
| ++ movl %esi,32(%esp) |
| ++ movl %ecx,40(%esp) |
| ++ jnz L037slow_dec_loop_sse |
| ++ emms |
| ++ movl 28(%esp),%esp |
| ++ popfl |
| ++ popl %edi |
| ++ popl %esi |
| ++ popl %ebx |
| ++ popl %ebp |
| ++ ret |
| ++ pushfl |
| ++.align 4,0x90 |
| ++L038slow_dec_partial_sse: |
| ++ movq %mm0,(%eax) |
| ++ movq %mm4,8(%eax) |
| ++ emms |
| ++ addl $16,%ecx |
| ++ movl %ebx,%edi |
| ++ movl %eax,%esi |
| ++.align 2,0x90 |
| ++.long 2767451785 |
| ++ movl 28(%esp),%esp |
| ++ popfl |
| ++ popl %edi |
| ++ popl %esi |
| ++ popl %ebx |
| ++ popl %ebp |
| ++ ret |
| ++ pushfl |
| ++.align 4,0x90 |
| ++L036slow_dec_loop_x86: |
| ++ movl (%esi),%eax |
| ++ movl 4(%esi),%ebx |
| ++ movl 8(%esi),%ecx |
| ++ movl 12(%esi),%edx |
| ++ leal 60(%esp),%edi |
| ++ movl %eax,(%edi) |
| ++ movl %ebx,4(%edi) |
| ++ movl %ecx,8(%edi) |
| ++ movl %edx,12(%edi) |
| ++ movl 44(%esp),%edi |
| ++ call __x86_AES_decrypt_compact |
| ++ movl 48(%esp),%edi |
| ++ movl 40(%esp),%esi |
| ++ xorl (%edi),%eax |
| ++ xorl 4(%edi),%ebx |
| ++ xorl 8(%edi),%ecx |
| ++ xorl 12(%edi),%edx |
| ++ subl $16,%esi |
| ++ jc L039slow_dec_partial_x86 |
| ++ movl %esi,40(%esp) |
| ++ movl 36(%esp),%esi |
| ++ movl %eax,(%esi) |
| ++ movl %ebx,4(%esi) |
| ++ movl %ecx,8(%esi) |
| ++ movl %edx,12(%esi) |
| ++ leal 16(%esi),%esi |
| ++ movl %esi,36(%esp) |
| ++ leal 60(%esp),%esi |
| ++ movl (%esi),%eax |
| ++ movl 4(%esi),%ebx |
| ++ movl 8(%esi),%ecx |
| ++ movl 12(%esi),%edx |
| ++ movl %eax,(%edi) |
| ++ movl %ebx,4(%edi) |
| ++ movl %ecx,8(%edi) |
| ++ movl %edx,12(%edi) |
| ++ movl 32(%esp),%esi |
| ++ leal 16(%esi),%esi |
| ++ movl %esi,32(%esp) |
| ++ jnz L036slow_dec_loop_x86 |
| ++ movl 28(%esp),%esp |
| ++ popfl |
| ++ popl %edi |
| ++ popl %esi |
| ++ popl %ebx |
| ++ popl %ebp |
| ++ ret |
| ++ pushfl |
| ++.align 4,0x90 |
| ++L039slow_dec_partial_x86: |
| ++ leal 60(%esp),%esi |
| ++ movl %eax,(%esi) |
| ++ movl %ebx,4(%esi) |
| ++ movl %ecx,8(%esi) |
| ++ movl %edx,12(%esi) |
| ++ movl 32(%esp),%esi |
| ++ movl (%esi),%eax |
| ++ movl 4(%esi),%ebx |
| ++ movl 8(%esi),%ecx |
| ++ movl 12(%esi),%edx |
| ++ movl %eax,(%edi) |
| ++ movl %ebx,4(%edi) |
| ++ movl %ecx,8(%edi) |
| ++ movl %edx,12(%edi) |
| ++ movl 40(%esp),%ecx |
| ++ movl 36(%esp),%edi |
| ++ leal 60(%esp),%esi |
| ++.align 2,0x90 |
| ++.long 2767451785 |
| ++ movl 28(%esp),%esp |
| ++ popfl |
| ++ popl %edi |
| ++ popl %esi |
| ++ popl %ebx |
| ++ popl %ebp |
| ++ ret |
| ++.align 4 |
| ++__x86_AES_set_encrypt_key: |
| ++ pushl %ebp |
| ++ pushl %ebx |
| ++ pushl %esi |
| ++ pushl %edi |
| ++ movl 24(%esp),%esi |
| ++ movl 32(%esp),%edi |
| ++ testl $-1,%esi |
| ++ jz L040badpointer |
| ++ testl $-1,%edi |
| ++ jz L040badpointer |
| ++ call L041pic_point |
| ++L041pic_point: |
| ++ popl %ebp |
| ++ leal LAES_Te-L041pic_point(%ebp),%ebp |
| ++ leal 2176(%ebp),%ebp |
| ++ movl -128(%ebp),%eax |
| ++ movl -96(%ebp),%ebx |
| ++ movl -64(%ebp),%ecx |
| ++ movl -32(%ebp),%edx |
| ++ movl (%ebp),%eax |
| ++ movl 32(%ebp),%ebx |
| ++ movl 64(%ebp),%ecx |
| ++ movl 96(%ebp),%edx |
| ++ movl 28(%esp),%ecx |
| ++ cmpl $128,%ecx |
| ++ je L04210rounds |
| ++ cmpl $192,%ecx |
| ++ je L04312rounds |
| ++ cmpl $256,%ecx |
| ++ je L04414rounds |
| ++ movl $-2,%eax |
| ++ jmp L045exit |
| ++L04210rounds: |
| ++ movl (%esi),%eax |
| ++ movl 4(%esi),%ebx |
| ++ movl 8(%esi),%ecx |
| ++ movl 12(%esi),%edx |
| ++ movl %eax,(%edi) |
| ++ movl %ebx,4(%edi) |
| ++ movl %ecx,8(%edi) |
| ++ movl %edx,12(%edi) |
| ++ xorl %ecx,%ecx |
| ++ jmp L04610shortcut |
| ++.align 2,0x90 |
| ++L04710loop: |
| ++ movl (%edi),%eax |
| ++ movl 12(%edi),%edx |
| ++L04610shortcut: |
| ++ movzbl %dl,%esi |
| ++ movzbl -128(%ebp,%esi,1),%ebx |
| ++ movzbl %dh,%esi |
| ++ shll $24,%ebx |
| ++ xorl %ebx,%eax |
| ++ movzbl -128(%ebp,%esi,1),%ebx |
| ++ shrl $16,%edx |
| ++ movzbl %dl,%esi |
| ++ xorl %ebx,%eax |
| ++ movzbl -128(%ebp,%esi,1),%ebx |
| ++ movzbl %dh,%esi |
| ++ shll $8,%ebx |
| ++ xorl %ebx,%eax |
| ++ movzbl -128(%ebp,%esi,1),%ebx |
| ++ shll $16,%ebx |
| ++ xorl %ebx,%eax |
| ++ xorl 896(%ebp,%ecx,4),%eax |
| ++ movl %eax,16(%edi) |
| ++ xorl 4(%edi),%eax |
| ++ movl %eax,20(%edi) |
| ++ xorl 8(%edi),%eax |
| ++ movl %eax,24(%edi) |
| ++ xorl 12(%edi),%eax |
| ++ movl %eax,28(%edi) |
| ++ incl %ecx |
| ++ addl $16,%edi |
| ++ cmpl $10,%ecx |
| ++ jl L04710loop |
| ++ movl $10,80(%edi) |
| ++ xorl %eax,%eax |
| ++ jmp L045exit |
| ++L04312rounds: |
| ++ movl (%esi),%eax |
| ++ movl 4(%esi),%ebx |
| ++ movl 8(%esi),%ecx |
| ++ movl 12(%esi),%edx |
| ++ movl %eax,(%edi) |
| ++ movl %ebx,4(%edi) |
| ++ movl %ecx,8(%edi) |
| ++ movl %edx,12(%edi) |
| ++ movl 16(%esi),%ecx |
| ++ movl 20(%esi),%edx |
| ++ movl %ecx,16(%edi) |
| ++ movl %edx,20(%edi) |
| ++ xorl %ecx,%ecx |
| ++ jmp L04812shortcut |
| ++.align 2,0x90 |
| ++L04912loop: |
| ++ movl (%edi),%eax |
| ++ movl 20(%edi),%edx |
| ++L04812shortcut: |
| ++ movzbl %dl,%esi |
| ++ movzbl -128(%ebp,%esi,1),%ebx |
| ++ movzbl %dh,%esi |
| ++ shll $24,%ebx |
| ++ xorl %ebx,%eax |
| ++ movzbl -128(%ebp,%esi,1),%ebx |
| ++ shrl $16,%edx |
| ++ movzbl %dl,%esi |
| ++ xorl %ebx,%eax |
| ++ movzbl -128(%ebp,%esi,1),%ebx |
| ++ movzbl %dh,%esi |
| ++ shll $8,%ebx |
| ++ xorl %ebx,%eax |
| ++ movzbl -128(%ebp,%esi,1),%ebx |
| ++ shll $16,%ebx |
| ++ xorl %ebx,%eax |
| ++ xorl 896(%ebp,%ecx,4),%eax |
| ++ movl %eax,24(%edi) |
| ++ xorl 4(%edi),%eax |
| ++ movl %eax,28(%edi) |
| ++ xorl 8(%edi),%eax |
| ++ movl %eax,32(%edi) |
| ++ xorl 12(%edi),%eax |
| ++ movl %eax,36(%edi) |
| ++ cmpl $7,%ecx |
| ++ je L05012break |
| ++ incl %ecx |
| ++ xorl 16(%edi),%eax |
| ++ movl %eax,40(%edi) |
| ++ xorl 20(%edi),%eax |
| ++ movl %eax,44(%edi) |
| ++ addl $24,%edi |
| ++ jmp L04912loop |
| ++L05012break: |
| ++ movl $12,72(%edi) |
| ++ xorl %eax,%eax |
| ++ jmp L045exit |
| ++L04414rounds: |
| ++ movl (%esi),%eax |
| ++ movl 4(%esi),%ebx |
| ++ movl 8(%esi),%ecx |
| ++ movl 12(%esi),%edx |
| ++ movl %eax,(%edi) |
| ++ movl %ebx,4(%edi) |
| ++ movl %ecx,8(%edi) |
| ++ movl %edx,12(%edi) |
| ++ movl 16(%esi),%eax |
| ++ movl 20(%esi),%ebx |
| ++ movl 24(%esi),%ecx |
| ++ movl 28(%esi),%edx |
| ++ movl %eax,16(%edi) |
| ++ movl %ebx,20(%edi) |
| ++ movl %ecx,24(%edi) |
| ++ movl %edx,28(%edi) |
| ++ xorl %ecx,%ecx |
| ++ jmp L05114shortcut |
| ++.align 2,0x90 |
| ++L05214loop: |
| ++ movl 28(%edi),%edx |
| ++L05114shortcut: |
| ++ movl (%edi),%eax |
| ++ movzbl %dl,%esi |
| ++ movzbl -128(%ebp,%esi,1),%ebx |
| ++ movzbl %dh,%esi |
| ++ shll $24,%ebx |
| ++ xorl %ebx,%eax |
| ++ movzbl -128(%ebp,%esi,1),%ebx |
| ++ shrl $16,%edx |
| ++ movzbl %dl,%esi |
| ++ xorl %ebx,%eax |
| ++ movzbl -128(%ebp,%esi,1),%ebx |
| ++ movzbl %dh,%esi |
| ++ shll $8,%ebx |
| ++ xorl %ebx,%eax |
| ++ movzbl -128(%ebp,%esi,1),%ebx |
| ++ shll $16,%ebx |
| ++ xorl %ebx,%eax |
| ++ xorl 896(%ebp,%ecx,4),%eax |
| ++ movl %eax,32(%edi) |
| ++ xorl 4(%edi),%eax |
| ++ movl %eax,36(%edi) |
| ++ xorl 8(%edi),%eax |
| ++ movl %eax,40(%edi) |
| ++ xorl 12(%edi),%eax |
| ++ movl %eax,44(%edi) |
| ++ cmpl $6,%ecx |
| ++ je L05314break |
| ++ incl %ecx |
| ++ movl %eax,%edx |
| ++ movl 16(%edi),%eax |
| ++ movzbl %dl,%esi |
| ++ movzbl -128(%ebp,%esi,1),%ebx |
| ++ movzbl %dh,%esi |
| ++ xorl %ebx,%eax |
| ++ movzbl -128(%ebp,%esi,1),%ebx |
| ++ shrl $16,%edx |
| ++ shll $8,%ebx |
| ++ movzbl %dl,%esi |
| ++ xorl %ebx,%eax |
| ++ movzbl -128(%ebp,%esi,1),%ebx |
| ++ movzbl %dh,%esi |
| ++ shll $16,%ebx |
| ++ xorl %ebx,%eax |
| ++ movzbl -128(%ebp,%esi,1),%ebx |
| ++ shll $24,%ebx |
| ++ xorl %ebx,%eax |
| ++ movl %eax,48(%edi) |
| ++ xorl 20(%edi),%eax |
| ++ movl %eax,52(%edi) |
| ++ xorl 24(%edi),%eax |
| ++ movl %eax,56(%edi) |
| ++ xorl 28(%edi),%eax |
| ++ movl %eax,60(%edi) |
| ++ addl $32,%edi |
| ++ jmp L05214loop |
| ++L05314break: |
| ++ movl $14,48(%edi) |
| ++ xorl %eax,%eax |
| ++ jmp L045exit |
| ++L040badpointer: |
| ++ movl $-1,%eax |
| ++L045exit: |
| ++ popl %edi |
| ++ popl %esi |
| ++ popl %ebx |
| ++ popl %ebp |
| ++ ret |
| ++.globl _private_AES_set_encrypt_key |
| ++.align 4 |
| ++_private_AES_set_encrypt_key: |
| ++L_private_AES_set_encrypt_key_begin: |
| ++ call __x86_AES_set_encrypt_key |
| ++ ret |
| ++.globl _private_AES_set_decrypt_key |
| ++.align 4 |
| ++_private_AES_set_decrypt_key: |
| ++L_private_AES_set_decrypt_key_begin: |
| ++ call __x86_AES_set_encrypt_key |
| ++ cmpl $0,%eax |
| ++ je L054proceed |
| ++ ret |
| ++L054proceed: |
| ++ pushl %ebp |
| ++ pushl %ebx |
| ++ pushl %esi |
| ++ pushl %edi |
| ++ movl 28(%esp),%esi |
| ++ movl 240(%esi),%ecx |
| ++ leal (,%ecx,4),%ecx |
| ++ leal (%esi,%ecx,4),%edi |
| ++.align 2,0x90 |
| ++L055invert: |
| ++ movl (%esi),%eax |
| ++ movl 4(%esi),%ebx |
| ++ movl (%edi),%ecx |
| ++ movl 4(%edi),%edx |
| ++ movl %eax,(%edi) |
| ++ movl %ebx,4(%edi) |
| ++ movl %ecx,(%esi) |
| ++ movl %edx,4(%esi) |
| ++ movl 8(%esi),%eax |
| ++ movl 12(%esi),%ebx |
| ++ movl 8(%edi),%ecx |
| ++ movl 12(%edi),%edx |
| ++ movl %eax,8(%edi) |
| ++ movl %ebx,12(%edi) |
| ++ movl %ecx,8(%esi) |
| ++ movl %edx,12(%esi) |
| ++ addl $16,%esi |
| ++ subl $16,%edi |
| ++ cmpl %edi,%esi |
| ++ jne L055invert |
| ++ movl 28(%esp),%edi |
| ++ movl 240(%edi),%esi |
| ++ leal -2(%esi,%esi,1),%esi |
| ++ leal (%edi,%esi,8),%esi |
| ++ movl %esi,28(%esp) |
| ++ movl 16(%edi),%eax |
| ++.align 2,0x90 |
| ++L056permute: |
| ++ addl $16,%edi |
| ++ movl %eax,%esi |
| ++ andl $2155905152,%esi |
| ++ movl %esi,%ebp |
| ++ shrl $7,%ebp |
| ++ leal (%eax,%eax,1),%ebx |
| ++ subl %ebp,%esi |
| ++ andl $4278124286,%ebx |
| ++ andl $454761243,%esi |
| ++ xorl %ebx,%esi |
| ++ movl %esi,%ebx |
| ++ andl $2155905152,%esi |
| ++ movl %esi,%ebp |
| ++ shrl $7,%ebp |
| ++ leal (%ebx,%ebx,1),%ecx |
| ++ subl %ebp,%esi |
| ++ andl $4278124286,%ecx |
| ++ andl $454761243,%esi |
| ++ xorl %eax,%ebx |
| ++ xorl %ecx,%esi |
| ++ movl %esi,%ecx |
| ++ andl $2155905152,%esi |
| ++ movl %esi,%ebp |
| ++ shrl $7,%ebp |
| ++ leal (%ecx,%ecx,1),%edx |
| ++ xorl %eax,%ecx |
| ++ subl %ebp,%esi |
| ++ andl $4278124286,%edx |
| ++ andl $454761243,%esi |
| ++ roll $8,%eax |
| ++ xorl %esi,%edx |
| ++ movl 4(%edi),%ebp |
| ++ xorl %ebx,%eax |
| ++ xorl %edx,%ebx |
| ++ xorl %ecx,%eax |
| ++ roll $24,%ebx |
| ++ xorl %edx,%ecx |
| ++ xorl %edx,%eax |
| ++ roll $16,%ecx |
| ++ xorl %ebx,%eax |
| ++ roll $8,%edx |
| ++ xorl %ecx,%eax |
| ++ movl %ebp,%ebx |
| ++ xorl %edx,%eax |
| ++ movl %eax,(%edi) |
| ++ movl %ebx,%esi |
| ++ andl $2155905152,%esi |
| ++ movl %esi,%ebp |
| ++ shrl $7,%ebp |
| ++ leal (%ebx,%ebx,1),%ecx |
| ++ subl %ebp,%esi |
| ++ andl $4278124286,%ecx |
| ++ andl $454761243,%esi |
| ++ xorl %ecx,%esi |
| ++ movl %esi,%ecx |
| ++ andl $2155905152,%esi |
| ++ movl %esi,%ebp |
| ++ shrl $7,%ebp |
| ++ leal (%ecx,%ecx,1),%edx |
| ++ subl %ebp,%esi |
| ++ andl $4278124286,%edx |
| ++ andl $454761243,%esi |
| ++ xorl %ebx,%ecx |
| ++ xorl %edx,%esi |
| ++ movl %esi,%edx |
| ++ andl $2155905152,%esi |
| ++ movl %esi,%ebp |
| ++ shrl $7,%ebp |
| ++ leal (%edx,%edx,1),%eax |
| ++ xorl %ebx,%edx |
| ++ subl %ebp,%esi |
| ++ andl $4278124286,%eax |
| ++ andl $454761243,%esi |
| ++ roll $8,%ebx |
| ++ xorl %esi,%eax |
| ++ movl 8(%edi),%ebp |
| ++ xorl %ecx,%ebx |
| ++ xorl %eax,%ecx |
| ++ xorl %edx,%ebx |
| ++ roll $24,%ecx |
| ++ xorl %eax,%edx |
| ++ xorl %eax,%ebx |
| ++ roll $16,%edx |
| ++ xorl %ecx,%ebx |
| ++ roll $8,%eax |
| ++ xorl %edx,%ebx |
| ++ movl %ebp,%ecx |
| ++ xorl %eax,%ebx |
| ++ movl %ebx,4(%edi) |
| ++ movl %ecx,%esi |
| ++ andl $2155905152,%esi |
| ++ movl %esi,%ebp |
| ++ shrl $7,%ebp |
| ++ leal (%ecx,%ecx,1),%edx |
| ++ subl %ebp,%esi |
| ++ andl $4278124286,%edx |
| ++ andl $454761243,%esi |
| ++ xorl %edx,%esi |
| ++ movl %esi,%edx |
| ++ andl $2155905152,%esi |
| ++ movl %esi,%ebp |
| ++ shrl $7,%ebp |
| ++ leal (%edx,%edx,1),%eax |
| ++ subl %ebp,%esi |
| ++ andl $4278124286,%eax |
| ++ andl $454761243,%esi |
| ++ xorl %ecx,%edx |
| ++ xorl %eax,%esi |
| ++ movl %esi,%eax |
| ++ andl $2155905152,%esi |
| ++ movl %esi,%ebp |
| ++ shrl $7,%ebp |
| ++ leal (%eax,%eax,1),%ebx |
| ++ xorl %ecx,%eax |
| ++ subl %ebp,%esi |
| ++ andl $4278124286,%ebx |
| ++ andl $454761243,%esi |
| ++ roll $8,%ecx |
| ++ xorl %esi,%ebx |
| ++ movl 12(%edi),%ebp |
| ++ xorl %edx,%ecx |
| ++ xorl %ebx,%edx |
| ++ xorl %eax,%ecx |
| ++ roll $24,%edx |
| ++ xorl %ebx,%eax |
| ++ xorl %ebx,%ecx |
| ++ roll $16,%eax |
| ++ xorl %edx,%ecx |
| ++ roll $8,%ebx |
| ++ xorl %eax,%ecx |
| ++ movl %ebp,%edx |
| ++ xorl %ebx,%ecx |
| ++ movl %ecx,8(%edi) |
| ++ movl %edx,%esi |
| ++ andl $2155905152,%esi |
| ++ movl %esi,%ebp |
| ++ shrl $7,%ebp |
| ++ leal (%edx,%edx,1),%eax |
| ++ subl %ebp,%esi |
| ++ andl $4278124286,%eax |
| ++ andl $454761243,%esi |
| ++ xorl %eax,%esi |
| ++ movl %esi,%eax |
| ++ andl $2155905152,%esi |
| ++ movl %esi,%ebp |
| ++ shrl $7,%ebp |
| ++ leal (%eax,%eax,1),%ebx |
| ++ subl %ebp,%esi |
| ++ andl $4278124286,%ebx |
| ++ andl $454761243,%esi |
| ++ xorl %edx,%eax |
| ++ xorl %ebx,%esi |
| ++ movl %esi,%ebx |
| ++ andl $2155905152,%esi |
| ++ movl %esi,%ebp |
| ++ shrl $7,%ebp |
| ++ leal (%ebx,%ebx,1),%ecx |
| ++ xorl %edx,%ebx |
| ++ subl %ebp,%esi |
| ++ andl $4278124286,%ecx |
| ++ andl $454761243,%esi |
| ++ roll $8,%edx |
| ++ xorl %esi,%ecx |
| ++ movl 16(%edi),%ebp |
| ++ xorl %eax,%edx |
| ++ xorl %ecx,%eax |
| ++ xorl %ebx,%edx |
| ++ roll $24,%eax |
| ++ xorl %ecx,%ebx |
| ++ xorl %ecx,%edx |
| ++ roll $16,%ebx |
| ++ xorl %eax,%edx |
| ++ roll $8,%ecx |
| ++ xorl %ebx,%edx |
| ++ movl %ebp,%eax |
| ++ xorl %ecx,%edx |
| ++ movl %edx,12(%edi) |
| ++ cmpl 28(%esp),%edi |
| ++ jb L056permute |
| ++ xorl %eax,%eax |
| ++ popl %edi |
| ++ popl %esi |
| ++ popl %ebx |
| ++ popl %ebp |
| ++ ret |
| ++.byte 65,69,83,32,102,111,114,32,120,56,54,44,32,67,82,89 |
| ++.byte 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114 |
| ++.byte 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 |
| ++.section __IMPORT,__pointers,non_lazy_symbol_pointers |
| ++L_OPENSSL_ia32cap_P$non_lazy_ptr: |
| ++.indirect_symbol _OPENSSL_ia32cap_P |
| ++.long 0 |
| ++.comm _OPENSSL_ia32cap_P,8,2 |
| +diff --git a/crypto/aes/asm/aesni-x86-mac.S b/crypto/aes/asm/aesni-x86-mac.S |
| +new file mode 100644 |
| +index 0000000..2bf45c6 |
| +--- /dev/null |
| ++++ b/crypto/aes/asm/aesni-x86-mac.S |
| +@@ -0,0 +1,2107 @@ |
| ++.file "crypto/aes/asm/aesni-x86.s" |
| ++.text |
| ++.globl _aesni_encrypt |
| ++.align 4 |
| ++_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 |
| ++ movups %xmm2,(%eax) |
| ++ ret |
| ++.globl _aesni_decrypt |
| ++.align 4 |
| ++_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 |
| ++ movups %xmm2,(%eax) |
| ++ ret |
| ++.align 4 |
| ++__aesni_encrypt3: |
| ++ movups (%edx),%xmm0 |
| ++ shrl $1,%ecx |
| ++ movups 16(%edx),%xmm1 |
| ++ leal 32(%edx),%edx |
| ++ xorps %xmm0,%xmm2 |
| ++ pxor %xmm0,%xmm3 |
| ++ pxor %xmm0,%xmm4 |
| ++ movups (%edx),%xmm0 |
| ++L002enc3_loop: |
| ++.byte 102,15,56,220,209 |
| ++.byte 102,15,56,220,217 |
| ++ decl %ecx |
| ++.byte 102,15,56,220,225 |
| ++ movups 16(%edx),%xmm1 |
| ++.byte 102,15,56,220,208 |
| ++.byte 102,15,56,220,216 |
| ++ leal 32(%edx),%edx |
| ++.byte 102,15,56,220,224 |
| ++ movups (%edx),%xmm0 |
| ++ jnz L002enc3_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 |
| ++.align 4 |
| ++__aesni_decrypt3: |
| ++ movups (%edx),%xmm0 |
| ++ shrl $1,%ecx |
| ++ movups 16(%edx),%xmm1 |
| ++ leal 32(%edx),%edx |
| ++ xorps %xmm0,%xmm2 |
| ++ pxor %xmm0,%xmm3 |
| ++ pxor %xmm0,%xmm4 |
| ++ movups (%edx),%xmm0 |
| ++L003dec3_loop: |
| ++.byte 102,15,56,222,209 |
| ++.byte 102,15,56,222,217 |
| ++ decl %ecx |
| ++.byte 102,15,56,222,225 |
| ++ movups 16(%edx),%xmm1 |
| ++.byte 102,15,56,222,208 |
| ++.byte 102,15,56,222,216 |
| ++ leal 32(%edx),%edx |
| ++.byte 102,15,56,222,224 |
| ++ movups (%edx),%xmm0 |
| ++ jnz L003dec3_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 |
| ++.align 4 |
| ++__aesni_encrypt4: |
| ++ movups (%edx),%xmm0 |
| ++ movups 16(%edx),%xmm1 |
| ++ shrl $1,%ecx |
| ++ leal 32(%edx),%edx |
| ++ xorps %xmm0,%xmm2 |
| ++ pxor %xmm0,%xmm3 |
| ++ pxor %xmm0,%xmm4 |
| ++ pxor %xmm0,%xmm5 |
| ++ movups (%edx),%xmm0 |
| ++L004enc4_loop: |
| ++.byte 102,15,56,220,209 |
| ++.byte 102,15,56,220,217 |
| ++ decl %ecx |
| ++.byte 102,15,56,220,225 |
| ++.byte 102,15,56,220,233 |
| ++ movups 16(%edx),%xmm1 |
| ++.byte 102,15,56,220,208 |
| ++.byte 102,15,56,220,216 |
| ++ leal 32(%edx),%edx |
| ++.byte 102,15,56,220,224 |
| ++.byte 102,15,56,220,232 |
| ++ movups (%edx),%xmm0 |
| ++ jnz L004enc4_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 |
| ++.align 4 |
| ++__aesni_decrypt4: |
| ++ movups (%edx),%xmm0 |
| ++ movups 16(%edx),%xmm1 |
| ++ shrl $1,%ecx |
| ++ leal 32(%edx),%edx |
| ++ xorps %xmm0,%xmm2 |
| ++ pxor %xmm0,%xmm3 |
| ++ pxor %xmm0,%xmm4 |
| ++ pxor %xmm0,%xmm5 |
| ++ movups (%edx),%xmm0 |
| ++L005dec4_loop: |
| ++.byte 102,15,56,222,209 |
| ++.byte 102,15,56,222,217 |
| ++ decl %ecx |
| ++.byte 102,15,56,222,225 |
| ++.byte 102,15,56,222,233 |
| ++ movups 16(%edx),%xmm1 |
| ++.byte 102,15,56,222,208 |
| ++.byte 102,15,56,222,216 |
| ++ leal 32(%edx),%edx |
| ++.byte 102,15,56,222,224 |
| ++.byte 102,15,56,222,232 |
| ++ movups (%edx),%xmm0 |
| ++ jnz L005dec4_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 |
| ++.align 4 |
| ++__aesni_encrypt6: |
| ++ movups (%edx),%xmm0 |
| ++ shrl $1,%ecx |
| ++ movups 16(%edx),%xmm1 |
| ++ leal 32(%edx),%edx |
| ++ xorps %xmm0,%xmm2 |
| ++ pxor %xmm0,%xmm3 |
| ++.byte 102,15,56,220,209 |
| ++ pxor %xmm0,%xmm4 |
| ++.byte 102,15,56,220,217 |
| ++ pxor %xmm0,%xmm5 |
| ++ decl %ecx |
| ++.byte 102,15,56,220,225 |
| ++ pxor %xmm0,%xmm6 |
| ++.byte 102,15,56,220,233 |
| ++ pxor %xmm0,%xmm7 |
| ++.byte 102,15,56,220,241 |
| ++ movups (%edx),%xmm0 |
| ++.byte 102,15,56,220,249 |
| ++ jmp L_aesni_encrypt6_enter |
| ++.align 4,0x90 |
| ++L006enc6_loop: |
| ++.byte 102,15,56,220,209 |
| ++.byte 102,15,56,220,217 |
| ++ decl %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 |
| ++.align 4,0x90 |
| ++L_aesni_encrypt6_enter: |
| ++ movups 16(%edx),%xmm1 |
| ++.byte 102,15,56,220,208 |
| ++.byte 102,15,56,220,216 |
| ++ leal 32(%edx),%edx |
| ++.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 (%edx),%xmm0 |
| ++ jnz L006enc6_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 |
| ++.align 4 |
| ++__aesni_decrypt6: |
| ++ movups (%edx),%xmm0 |
| ++ shrl $1,%ecx |
| ++ movups 16(%edx),%xmm1 |
| ++ leal 32(%edx),%edx |
| ++ xorps %xmm0,%xmm2 |
| ++ pxor %xmm0,%xmm3 |
| ++.byte 102,15,56,222,209 |
| ++ pxor %xmm0,%xmm4 |
| ++.byte 102,15,56,222,217 |
| ++ pxor %xmm0,%xmm5 |
| ++ decl %ecx |
| ++.byte 102,15,56,222,225 |
| ++ pxor %xmm0,%xmm6 |
| ++.byte 102,15,56,222,233 |
| ++ pxor %xmm0,%xmm7 |
| ++.byte 102,15,56,222,241 |
| ++ movups (%edx),%xmm0 |
| ++.byte 102,15,56,222,249 |
| ++ jmp L_aesni_decrypt6_enter |
| ++.align 4,0x90 |
| ++L007dec6_loop: |
| ++.byte 102,15,56,222,209 |
| ++.byte 102,15,56,222,217 |
| ++ decl %ecx |
| ++.byte 102,15,56,222,225 |
| ++.byte 102,15,56,222,233 |
| ++.byte 102,15,56,222,241 |
| ++.byte 102,15,56,222,249 |
| ++.align 4,0x90 |
| ++L_aesni_decrypt6_enter: |
| ++ movups 16(%edx),%xmm1 |
| ++.byte 102,15,56,222,208 |
| ++.byte 102,15,56,222,216 |
| ++ leal 32(%edx),%edx |
| ++.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 (%edx),%xmm0 |
| ++ jnz L007dec6_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 |
| ++.globl _aesni_ecb_encrypt |
| ++.align 4 |
| ++_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 L008ecb_ret |
| ++ movl 240(%edx),%ecx |
| ++ testl %ebx,%ebx |
| ++ jz L009ecb_decrypt |
| ++ movl %edx,%ebp |
| ++ movl %ecx,%ebx |
| ++ cmpl $96,%eax |
| ++ jb L010ecb_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 L011ecb_enc_loop6_enter |
| ++.align 4,0x90 |
| ++L012ecb_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 |
| ++L011ecb_enc_loop6_enter: |
| ++ call __aesni_encrypt6 |
| ++ movl %ebp,%edx |
| ++ movl %ebx,%ecx |
| ++ subl $96,%eax |
| ++ jnc L012ecb_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 L008ecb_ret |
| ++L010ecb_enc_tail: |
| ++ movups (%esi),%xmm2 |
| ++ cmpl $32,%eax |
| ++ jb L013ecb_enc_one |
| ++ movups 16(%esi),%xmm3 |
| ++ je L014ecb_enc_two |
| ++ movups 32(%esi),%xmm4 |
| ++ cmpl $64,%eax |
| ++ jb L015ecb_enc_three |
| ++ movups 48(%esi),%xmm5 |
| ++ je L016ecb_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 L008ecb_ret |
| ++.align 4,0x90 |
| ++L013ecb_enc_one: |
| ++ movups (%edx),%xmm0 |
| ++ movups 16(%edx),%xmm1 |
| ++ leal 32(%edx),%edx |
| ++ xorps %xmm0,%xmm2 |
| ++L017enc1_loop_3: |
| ++.byte 102,15,56,220,209 |
| ++ decl %ecx |
| ++ movups (%edx),%xmm1 |
| ++ leal 16(%edx),%edx |
| ++ jnz L017enc1_loop_3 |
| ++.byte 102,15,56,221,209 |
| ++ movups %xmm2,(%edi) |
| ++ jmp L008ecb_ret |
| ++.align 4,0x90 |
| ++L014ecb_enc_two: |
| ++ xorps %xmm4,%xmm4 |
| ++ call __aesni_encrypt3 |
| ++ movups %xmm2,(%edi) |
| ++ movups %xmm3,16(%edi) |
| ++ jmp L008ecb_ret |
| ++.align 4,0x90 |
| ++L015ecb_enc_three: |
| ++ call __aesni_encrypt3 |
| ++ movups %xmm2,(%edi) |
| ++ movups %xmm3,16(%edi) |
| ++ movups %xmm4,32(%edi) |
| ++ jmp L008ecb_ret |
| ++.align 4,0x90 |
| ++L016ecb_enc_four: |
| ++ call __aesni_encrypt4 |
| ++ movups %xmm2,(%edi) |
| ++ movups %xmm3,16(%edi) |
| ++ movups %xmm4,32(%edi) |
| ++ movups %xmm5,48(%edi) |
| ++ jmp L008ecb_ret |
| ++.align 4,0x90 |
| ++L009ecb_decrypt: |
| ++ movl %edx,%ebp |
| ++ movl %ecx,%ebx |
| ++ cmpl $96,%eax |
| ++ jb L018ecb_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 L019ecb_dec_loop6_enter |
| ++.align 4,0x90 |
| ++L020ecb_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 |
| ++L019ecb_dec_loop6_enter: |
| ++ call __aesni_decrypt6 |
| ++ movl %ebp,%edx |
| ++ movl %ebx,%ecx |
| ++ subl $96,%eax |
| ++ jnc L020ecb_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 L008ecb_ret |
| ++L018ecb_dec_tail: |
| ++ movups (%esi),%xmm2 |
| ++ cmpl $32,%eax |
| ++ jb L021ecb_dec_one |
| ++ movups 16(%esi),%xmm3 |
| ++ je L022ecb_dec_two |
| ++ movups 32(%esi),%xmm4 |
| ++ cmpl $64,%eax |
| ++ jb L023ecb_dec_three |
| ++ movups 48(%esi),%xmm5 |
| ++ je L024ecb_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 L008ecb_ret |
| ++.align 4,0x90 |
| ++L021ecb_dec_one: |
| ++ movups (%edx),%xmm0 |
| ++ movups 16(%edx),%xmm1 |
| ++ leal 32(%edx),%edx |
| ++ xorps %xmm0,%xmm2 |
| ++L025dec1_loop_4: |
| ++.byte 102,15,56,222,209 |
| ++ decl %ecx |
| ++ movups (%edx),%xmm1 |
| ++ leal 16(%edx),%edx |
| ++ jnz L025dec1_loop_4 |
| ++.byte 102,15,56,223,209 |
| ++ movups %xmm2,(%edi) |
| ++ jmp L008ecb_ret |
| ++.align 4,0x90 |
| ++L022ecb_dec_two: |
| ++ xorps %xmm4,%xmm4 |
| ++ call __aesni_decrypt3 |
| ++ movups %xmm2,(%edi) |
| ++ movups %xmm3,16(%edi) |
| ++ jmp L008ecb_ret |
| ++.align 4,0x90 |
| ++L023ecb_dec_three: |
| ++ call __aesni_decrypt3 |
| ++ movups %xmm2,(%edi) |
| ++ movups %xmm3,16(%edi) |
| ++ movups %xmm4,32(%edi) |
| ++ jmp L008ecb_ret |
| ++.align 4,0x90 |
| ++L024ecb_dec_four: |
| ++ call __aesni_decrypt4 |
| ++ movups %xmm2,(%edi) |
| ++ movups %xmm3,16(%edi) |
| ++ movups %xmm4,32(%edi) |
| ++ movups %xmm5,48(%edi) |
| ++L008ecb_ret: |
| ++ popl %edi |
| ++ popl %esi |
| ++ popl %ebx |
| ++ popl %ebp |
| ++ ret |
| ++.globl _aesni_ccm64_encrypt_blocks |
| ++.align 4 |
| ++_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) |
| ++ shrl $1,%ecx |
| ++ leal (%edx),%ebp |
| ++ movdqa (%esp),%xmm5 |
| ++ movdqa %xmm7,%xmm2 |
| ++ movl %ecx,%ebx |
| ++.byte 102,15,56,0,253 |
| ++L026ccm64_enc_outer: |
| ++ movups (%ebp),%xmm0 |
| ++ movl %ebx,%ecx |
| ++ movups (%esi),%xmm6 |
| ++ xorps %xmm0,%xmm2 |
| ++ movups 16(%ebp),%xmm1 |
| ++ xorps %xmm6,%xmm0 |
| ++ leal 32(%ebp),%edx |
| ++ xorps %xmm0,%xmm3 |
| ++ movups (%edx),%xmm0 |
| ++L027ccm64_enc2_loop: |
| ++.byte 102,15,56,220,209 |
| ++ decl %ecx |
| ++.byte 102,15,56,220,217 |
| ++ movups 16(%edx),%xmm1 |
| ++.byte 102,15,56,220,208 |
| ++ leal 32(%edx),%edx |
| ++.byte 102,15,56,220,216 |
| ++ movups (%edx),%xmm0 |
| ++ jnz L027ccm64_enc2_loop |
| ++.byte 102,15,56,220,209 |
| ++.byte 102,15,56,220,217 |
| ++ paddq 16(%esp),%xmm7 |
| ++.byte 102,15,56,221,208 |
| ++.byte 102,15,56,221,216 |
| ++ decl %eax |
| ++ leal 16(%esi),%esi |
| ++ xorps %xmm2,%xmm6 |
| ++ movdqa %xmm7,%xmm2 |
| ++ movups %xmm6,(%edi) |
| ++ leal 16(%edi),%edi |
| ++.byte 102,15,56,0,213 |
| ++ jnz L026ccm64_enc_outer |
| ++ movl 48(%esp),%esp |
| ++ movl 40(%esp),%edi |
| ++ movups %xmm3,(%edi) |
| ++ popl %edi |
| ++ popl %esi |
| ++ popl %ebx |
| ++ popl %ebp |
| ++ ret |
| ++.globl _aesni_ccm64_decrypt_blocks |
| ++.align 4 |
| ++_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 |
| ++L028enc1_loop_5: |
| ++.byte 102,15,56,220,209 |
| ++ decl %ecx |
| ++ movups (%edx),%xmm1 |
| ++ leal 16(%edx),%edx |
| ++ jnz L028enc1_loop_5 |
| ++.byte 102,15,56,221,209 |
| ++ movups (%esi),%xmm6 |
| ++ paddq 16(%esp),%xmm7 |
| ++ leal 16(%esi),%esi |
| ++ jmp L029ccm64_dec_outer |
| ++.align 4,0x90 |
| ++L029ccm64_dec_outer: |
| ++ xorps %xmm2,%xmm6 |
| ++ movdqa %xmm7,%xmm2 |
| ++ movl %ebx,%ecx |
| ++ movups %xmm6,(%edi) |
| ++ leal 16(%edi),%edi |
| ++.byte 102,15,56,0,213 |
| ++ subl $1,%eax |
| ++ jz L030ccm64_dec_break |
| ++ movups (%ebp),%xmm0 |
| ++ shrl $1,%ecx |
| ++ movups 16(%ebp),%xmm1 |
| ++ xorps %xmm0,%xmm6 |
| ++ leal 32(%ebp),%edx |
| ++ xorps %xmm0,%xmm2 |
| ++ xorps %xmm6,%xmm3 |
| ++ movups (%edx),%xmm0 |
| ++L031ccm64_dec2_loop: |
| ++.byte 102,15,56,220,209 |
| ++ decl %ecx |
| ++.byte 102,15,56,220,217 |
| ++ movups 16(%edx),%xmm1 |
| ++.byte 102,15,56,220,208 |
| ++ leal 32(%edx),%edx |
| ++.byte 102,15,56,220,216 |
| ++ movups (%edx),%xmm0 |
| ++ jnz L031ccm64_dec2_loop |
| ++ movups (%esi),%xmm6 |
| ++ paddq 16(%esp),%xmm7 |
| ++.byte 102,15,56,220,209 |
| ++.byte 102,15,56,220,217 |
| ++ leal 16(%esi),%esi |
| ++.byte 102,15,56,221,208 |
| ++.byte 102,15,56,221,216 |
| ++ jmp L029ccm64_dec_outer |
| ++.align 4,0x90 |
| ++L030ccm64_dec_break: |
| ++ movl %ebp,%edx |
| ++ movups (%edx),%xmm0 |
| ++ movups 16(%edx),%xmm1 |
| ++ xorps %xmm0,%xmm6 |
| ++ leal 32(%edx),%edx |
| ++ xorps %xmm6,%xmm3 |
| ++L032enc1_loop_6: |
| ++.byte 102,15,56,220,217 |
| ++ decl %ecx |
| ++ movups (%edx),%xmm1 |
| ++ leal 16(%edx),%edx |
| ++ jnz L032enc1_loop_6 |
| ++.byte 102,15,56,221,217 |
| ++ movl 48(%esp),%esp |
| ++ movl 40(%esp),%edi |
| ++ movups %xmm3,(%edi) |
| ++ popl %edi |
| ++ popl %esi |
| ++ popl %ebx |
| ++ popl %ebp |
| ++ ret |
| ++.globl _aesni_ctr32_encrypt_blocks |
| ++.align 4 |
| ++_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 L033ctr32_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 %xmm1,%xmm1 |
| ++ pxor %xmm0,%xmm0 |
| ++ movdqa (%esp),%xmm2 |
| ++.byte 102,15,58,34,203,0 |
| ++ leal 3(%ebx),%ebp |
| ++.byte 102,15,58,34,197,0 |
| ++ incl %ebx |
| ++.byte 102,15,58,34,203,1 |
| ++ incl %ebp |
| ++.byte 102,15,58,34,197,1 |
| ++ incl %ebx |
| ++.byte 102,15,58,34,203,2 |
| ++ incl %ebp |
| ++.byte 102,15,58,34,197,2 |
| ++ movdqa %xmm1,48(%esp) |
| ++.byte 102,15,56,0,202 |
| ++ movdqa %xmm0,64(%esp) |
| ++.byte 102,15,56,0,194 |
| ++ pshufd $192,%xmm1,%xmm2 |
| ++ pshufd $128,%xmm1,%xmm3 |
| ++ cmpl $6,%eax |
| ++ jb L034ctr32_tail |
| ++ movdqa %xmm7,32(%esp) |
| ++ shrl $1,%ecx |
| ++ movl %edx,%ebp |
| ++ movl %ecx,%ebx |
| ++ subl $6,%eax |
| ++ jmp L035ctr32_loop6 |
| ++.align 4,0x90 |
| ++L035ctr32_loop6: |
| ++ pshufd $64,%xmm1,%xmm4 |
| ++ movdqa 32(%esp),%xmm1 |
| ++ pshufd $192,%xmm0,%xmm5 |
| ++ por %xmm1,%xmm2 |
| ++ pshufd $128,%xmm0,%xmm6 |
| ++ por %xmm1,%xmm3 |
| ++ pshufd $64,%xmm0,%xmm7 |
| ++ por %xmm1,%xmm4 |
| ++ por %xmm1,%xmm5 |
| ++ por %xmm1,%xmm6 |
| ++ por %xmm1,%xmm7 |
| ++ movups (%ebp),%xmm0 |
| ++ movups 16(%ebp),%xmm1 |
| ++ leal 32(%ebp),%edx |
| ++ decl %ecx |
| ++ pxor %xmm0,%xmm2 |
| ++ pxor %xmm0,%xmm3 |
| ++.byte 102,15,56,220,209 |
| ++ pxor %xmm0,%xmm4 |
| ++.byte 102,15,56,220,217 |
| ++ pxor %xmm0,%xmm5 |
| ++.byte 102,15,56,220,225 |
| ++ pxor %xmm0,%xmm6 |
| ++.byte 102,15,56,220,233 |
| ++ pxor %xmm0,%xmm7 |
| ++.byte 102,15,56,220,241 |
| ++ movups (%edx),%xmm0 |
| ++.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 48(%esp),%xmm1 |
| ++ movups %xmm3,16(%edi) |
| ++ movups %xmm4,32(%edi) |
| ++ paddd %xmm0,%xmm1 |
| ++ paddd 64(%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 %xmm1,48(%esp) |
| ++.byte 102,15,56,0,202 |
| ++ xorps %xmm4,%xmm6 |
| ++ movups %xmm5,48(%edi) |
| ++ xorps %xmm3,%xmm7 |
| ++ movdqa %xmm0,64(%esp) |
| ++.byte 102,15,56,0,194 |
| ++ movups %xmm6,64(%edi) |
| ++ pshufd $192,%xmm1,%xmm2 |
| ++ movups %xmm7,80(%edi) |
| ++ leal 96(%edi),%edi |
| ++ movl %ebx,%ecx |
| ++ pshufd $128,%xmm1,%xmm3 |
| ++ subl $6,%eax |
| ++ jnc L035ctr32_loop6 |
| ++ addl $6,%eax |
| ++ jz L036ctr32_ret |
| ++ movl %ebp,%edx |
| ++ leal 1(,%ecx,2),%ecx |
| ++ movdqa 32(%esp),%xmm7 |
| ++L034ctr32_tail: |
| ++ por %xmm7,%xmm2 |
| ++ cmpl $2,%eax |
| ++ jb L037ctr32_one |
| ++ pshufd $64,%xmm1,%xmm4 |
| ++ por %xmm7,%xmm3 |
| ++ je L038ctr32_two |
| ++ pshufd $192,%xmm0,%xmm5 |
| ++ por %xmm7,%xmm4 |
| ++ cmpl $4,%eax |
| ++ jb L039ctr32_three |
| ++ pshufd $128,%xmm0,%xmm6 |
| ++ por %xmm7,%xmm5 |
| ++ je L040ctr32_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 L036ctr32_ret |
| ++.align 4,0x90 |
| ++L033ctr32_one_shortcut: |
| ++ movups (%ebx),%xmm2 |
| ++ movl 240(%edx),%ecx |
| ++L037ctr32_one: |
| ++ movups (%edx),%xmm0 |
| ++ movups 16(%edx),%xmm1 |
| ++ leal 32(%edx),%edx |
| ++ xorps %xmm0,%xmm2 |
| ++L041enc1_loop_7: |
| ++.byte 102,15,56,220,209 |
| ++ decl %ecx |
| ++ movups (%edx),%xmm1 |
| ++ leal 16(%edx),%edx |
| ++ jnz L041enc1_loop_7 |
| ++.byte 102,15,56,221,209 |
| ++ movups (%esi),%xmm6 |
| ++ xorps %xmm2,%xmm6 |
| ++ movups %xmm6,(%edi) |
| ++ jmp L036ctr32_ret |
| ++.align 4,0x90 |
| ++L038ctr32_two: |
| ++ call __aesni_encrypt3 |
| ++ movups (%esi),%xmm5 |
| ++ movups 16(%esi),%xmm6 |
| ++ xorps %xmm5,%xmm2 |
| ++ xorps %xmm6,%xmm3 |
| ++ movups %xmm2,(%edi) |
| ++ movups %xmm3,16(%edi) |
| ++ jmp L036ctr32_ret |
| ++.align 4,0x90 |
| ++L039ctr32_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 L036ctr32_ret |
| ++.align 4,0x90 |
| ++L040ctr32_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) |
| ++L036ctr32_ret: |
| ++ movl 80(%esp),%esp |
| ++ popl %edi |
| ++ popl %esi |
| ++ popl %ebx |
| ++ popl %ebp |
| ++ ret |
| ++.globl _aesni_xts_encrypt |
| ++.align 4 |
| ++_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 |
| ++L042enc1_loop_8: |
| ++.byte 102,15,56,220,209 |
| ++ decl %ecx |
| ++ movups (%edx),%xmm1 |
| ++ leal 16(%edx),%edx |
| ++ jnz L042enc1_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 L043xts_enc_short |
| ++ shrl $1,%ecx |
| ++ movl %ecx,%ebx |
| ++ jmp L044xts_enc_loop6 |
| ++.align 4,0x90 |
| ++L044xts_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 |
| ++ 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 |
| ++ leal 32(%ebp),%edx |
| ++ pxor 16(%esp),%xmm3 |
| ++.byte 102,15,56,220,209 |
| ++ pxor 32(%esp),%xmm4 |
| ++.byte 102,15,56,220,217 |
| ++ pxor 48(%esp),%xmm5 |
| ++ decl %ecx |
| ++.byte 102,15,56,220,225 |
| ++ pxor 64(%esp),%xmm6 |
| ++.byte 102,15,56,220,233 |
| ++ pxor %xmm0,%xmm7 |
| ++.byte 102,15,56,220,241 |
| ++ movups (%edx),%xmm0 |
| ++.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 |
| ++ movl %ebx,%ecx |
| ++ pxor %xmm2,%xmm1 |
| ++ subl $96,%eax |
| ++ jnc L044xts_enc_loop6 |
| ++ leal 1(,%ecx,2),%ecx |
| ++ movl %ebp,%edx |
| ++ movl %ecx,%ebx |
| ++L043xts_enc_short: |
| ++ addl $96,%eax |
| ++ jz L045xts_enc_done6x |
| ++ movdqa %xmm1,%xmm5 |
| ++ cmpl $32,%eax |
| ++ jb L046xts_enc_one |
| ++ pshufd $19,%xmm0,%xmm2 |
| ++ pxor %xmm0,%xmm0 |
| ++ paddq %xmm1,%xmm1 |
| ++ pand %xmm3,%xmm2 |
| ++ pcmpgtd %xmm1,%xmm0 |
| ++ pxor %xmm2,%xmm1 |
| ++ je L047xts_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 L048xts_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 L049xts_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 L050xts_enc_done |
| ++.align 4,0x90 |
| ++L046xts_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 |
| ++L051enc1_loop_9: |
| ++.byte 102,15,56,220,209 |
| ++ decl %ecx |
| ++ movups (%edx),%xmm1 |
| ++ leal 16(%edx),%edx |
| ++ jnz L051enc1_loop_9 |
| ++.byte 102,15,56,221,209 |
| ++ xorps %xmm5,%xmm2 |
| ++ movups %xmm2,(%edi) |
| ++ leal 16(%edi),%edi |
| ++ movdqa %xmm5,%xmm1 |
| ++ jmp L050xts_enc_done |
| ++.align 4,0x90 |
| ++L047xts_enc_two: |
| ++ movaps %xmm1,%xmm6 |
| ++ movups (%esi),%xmm2 |
| ++ movups 16(%esi),%xmm3 |
| ++ leal 32(%esi),%esi |
| ++ xorps %xmm5,%xmm2 |
| ++ xorps %xmm6,%xmm3 |
| ++ xorps %xmm4,%xmm4 |
| ++ call __aesni_encrypt3 |
| ++ xorps %xmm5,%xmm2 |
| ++ xorps %xmm6,%xmm3 |
| ++ movups %xmm2,(%edi) |
| ++ movups %xmm3,16(%edi) |
| ++ leal 32(%edi),%edi |
| ++ movdqa %xmm6,%xmm1 |
| ++ jmp L050xts_enc_done |
| ++.align 4,0x90 |
| ++L048xts_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 L050xts_enc_done |
| ++.align 4,0x90 |
| ++L049xts_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 L050xts_enc_done |
| ++.align 4,0x90 |
| ++L045xts_enc_done6x: |
| ++ movl 112(%esp),%eax |
| ++ andl $15,%eax |
| ++ jz L052xts_enc_ret |
| ++ movdqa %xmm1,%xmm5 |
| ++ movl %eax,112(%esp) |
| ++ jmp L053xts_enc_steal |
| ++.align 4,0x90 |
| ++L050xts_enc_done: |
| ++ movl 112(%esp),%eax |
| ++ pxor %xmm0,%xmm0 |
| ++ andl $15,%eax |
| ++ jz L052xts_enc_ret |
| ++ pcmpgtd %xmm1,%xmm0 |
| ++ movl %eax,112(%esp) |
| ++ pshufd $19,%xmm0,%xmm5 |
| ++ paddq %xmm1,%xmm1 |
| ++ pand 96(%esp),%xmm5 |
| ++ pxor %xmm1,%xmm5 |
| ++L053xts_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 L053xts_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 |
| ++L054enc1_loop_10: |
| ++.byte 102,15,56,220,209 |
| ++ decl %ecx |
| ++ movups (%edx),%xmm1 |
| ++ leal 16(%edx),%edx |
| ++ jnz L054enc1_loop_10 |
| ++.byte 102,15,56,221,209 |
| ++ xorps %xmm5,%xmm2 |
| ++ movups %xmm2,-16(%edi) |
| ++L052xts_enc_ret: |
| ++ movl 116(%esp),%esp |
| ++ popl %edi |
| ++ popl %esi |
| ++ popl %ebx |
| ++ popl %ebp |
| ++ ret |
| ++.globl _aesni_xts_decrypt |
| ++.align 4 |
| ++_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 |
| ++L055enc1_loop_11: |
| ++.byte 102,15,56,220,209 |
| ++ decl %ecx |
| ++ movups (%edx),%xmm1 |
| ++ leal 16(%edx),%edx |
| ++ jnz L055enc1_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 L056xts_dec_short |
| ++ shrl $1,%ecx |
| ++ movl %ecx,%ebx |
| ++ jmp L057xts_dec_loop6 |
| ++.align 4,0x90 |
| ++L057xts_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 |
| ++ 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 |
| ++ leal 32(%ebp),%edx |
| ++ pxor 16(%esp),%xmm3 |
| ++.byte 102,15,56,222,209 |
| ++ pxor 32(%esp),%xmm4 |
| ++.byte 102,15,56,222,217 |
| ++ pxor 48(%esp),%xmm5 |
| ++ decl %ecx |
| ++.byte 102,15,56,222,225 |
| ++ pxor 64(%esp),%xmm6 |
| ++.byte 102,15,56,222,233 |
| ++ pxor %xmm0,%xmm7 |
| ++.byte 102,15,56,222,241 |
| ++ movups (%edx),%xmm0 |
| ++.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 |
| ++ movl %ebx,%ecx |
| ++ pxor %xmm2,%xmm1 |
| ++ subl $96,%eax |
| ++ jnc L057xts_dec_loop6 |
| ++ leal 1(,%ecx,2),%ecx |
| ++ movl %ebp,%edx |
| ++ movl %ecx,%ebx |
| ++L056xts_dec_short: |
| ++ addl $96,%eax |
| ++ jz L058xts_dec_done6x |
| ++ movdqa %xmm1,%xmm5 |
| ++ cmpl $32,%eax |
| ++ jb L059xts_dec_one |
| ++ pshufd $19,%xmm0,%xmm2 |
| ++ pxor %xmm0,%xmm0 |
| ++ paddq %xmm1,%xmm1 |
| ++ pand %xmm3,%xmm2 |
| ++ pcmpgtd %xmm1,%xmm0 |
| ++ pxor %xmm2,%xmm1 |
| ++ je L060xts_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 L061xts_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 L062xts_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 L063xts_dec_done |
| ++.align 4,0x90 |
| ++L059xts_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 |
| ++L064dec1_loop_12: |
| ++.byte 102,15,56,222,209 |
| ++ decl %ecx |
| ++ movups (%edx),%xmm1 |
| ++ leal 16(%edx),%edx |
| ++ jnz L064dec1_loop_12 |
| ++.byte 102,15,56,223,209 |
| ++ xorps %xmm5,%xmm2 |
| ++ movups %xmm2,(%edi) |
| ++ leal 16(%edi),%edi |
| ++ movdqa %xmm5,%xmm1 |
| ++ jmp L063xts_dec_done |
| ++.align 4,0x90 |
| ++L060xts_dec_two: |
| ++ movaps %xmm1,%xmm6 |
| ++ movups (%esi),%xmm2 |
| ++ movups 16(%esi),%xmm3 |
| ++ leal 32(%esi),%esi |
| ++ xorps %xmm5,%xmm2 |
| ++ xorps %xmm6,%xmm3 |
| ++ call __aesni_decrypt3 |
| ++ xorps %xmm5,%xmm2 |
| ++ xorps %xmm6,%xmm3 |
| ++ movups %xmm2,(%edi) |
| ++ movups %xmm3,16(%edi) |
| ++ leal 32(%edi),%edi |
| ++ movdqa %xmm6,%xmm1 |
| ++ jmp L063xts_dec_done |
| ++.align 4,0x90 |
| ++L061xts_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 L063xts_dec_done |
| ++.align 4,0x90 |
| ++L062xts_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 L063xts_dec_done |
| ++.align 4,0x90 |
| ++L058xts_dec_done6x: |
| ++ movl 112(%esp),%eax |
| ++ andl $15,%eax |
| ++ jz L065xts_dec_ret |
| ++ movl %eax,112(%esp) |
| ++ jmp L066xts_dec_only_one_more |
| ++.align 4,0x90 |
| ++L063xts_dec_done: |
| ++ movl 112(%esp),%eax |
| ++ pxor %xmm0,%xmm0 |
| ++ andl $15,%eax |
| ++ jz L065xts_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 |
| ++L066xts_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 |
| ++L067dec1_loop_13: |
| ++.byte 102,15,56,222,209 |
| ++ decl %ecx |
| ++ movups (%edx),%xmm1 |
| ++ leal 16(%edx),%edx |
| ++ jnz L067dec1_loop_13 |
| ++.byte 102,15,56,223,209 |
| ++ xorps %xmm5,%xmm2 |
| ++ movups %xmm2,(%edi) |
| ++L068xts_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 L068xts_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 |
| ++L069dec1_loop_14: |
| ++.byte 102,15,56,222,209 |
| ++ decl %ecx |
| ++ movups (%edx),%xmm1 |
| ++ leal 16(%edx),%edx |
| ++ jnz L069dec1_loop_14 |
| ++.byte 102,15,56,223,209 |
| ++ xorps %xmm6,%xmm2 |
| ++ movups %xmm2,(%edi) |
| ++L065xts_dec_ret: |
| ++ movl 116(%esp),%esp |
| ++ popl %edi |
| ++ popl %esi |
| ++ popl %ebx |
| ++ popl %ebp |
| ++ ret |
| ++.globl _aesni_cbc_encrypt |
| ++.align 4 |
| ++_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 L070cbc_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 L071cbc_decrypt |
| ++ movaps %xmm7,%xmm2 |
| ++ cmpl $16,%eax |
| ++ jb L072cbc_enc_tail |
| ++ subl $16,%eax |
| ++ jmp L073cbc_enc_loop |
| ++.align 4,0x90 |
| ++L073cbc_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 |
| ++L074enc1_loop_15: |
| ++.byte 102,15,56,220,209 |
| ++ decl %ecx |
| ++ movups (%edx),%xmm1 |
| ++ leal 16(%edx),%edx |
| ++ jnz L074enc1_loop_15 |
| ++.byte 102,15,56,221,209 |
| ++ movl %ebx,%ecx |
| ++ movl %ebp,%edx |
| ++ movups %xmm2,(%edi) |
| ++ leal 16(%edi),%edi |
| ++ subl $16,%eax |
| ++ jnc L073cbc_enc_loop |
| ++ addl $16,%eax |
| ++ jnz L072cbc_enc_tail |
| ++ movaps %xmm2,%xmm7 |
| ++ jmp L075cbc_ret |
| ++L072cbc_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 L073cbc_enc_loop |
| ++.align 4,0x90 |
| ++L071cbc_decrypt: |
| ++ cmpl $80,%eax |
| ++ jbe L076cbc_dec_tail |
| ++ movaps %xmm7,(%esp) |
| ++ subl $80,%eax |
| ++ jmp L077cbc_dec_loop6_enter |
| ++.align 4,0x90 |
| ++L078cbc_dec_loop6: |
| ++ movaps %xmm0,(%esp) |
| ++ movups %xmm7,(%edi) |
| ++ leal 16(%edi),%edi |
| ++L077cbc_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 L078cbc_dec_loop6 |
| ++ movaps %xmm7,%xmm2 |
| ++ movaps %xmm0,%xmm7 |
| ++ addl $80,%eax |
| ++ jle L079cbc_dec_tail_collected |
| ++ movups %xmm2,(%edi) |
| ++ leal 16(%edi),%edi |
| ++L076cbc_dec_tail: |
| ++ movups (%esi),%xmm2 |
| ++ movaps %xmm2,%xmm6 |
| ++ cmpl $16,%eax |
| ++ jbe L080cbc_dec_one |
| ++ movups 16(%esi),%xmm3 |
| ++ movaps %xmm3,%xmm5 |
| ++ cmpl $32,%eax |
| ++ jbe L081cbc_dec_two |
| ++ movups 32(%esi),%xmm4 |
| ++ cmpl $48,%eax |
| ++ jbe L082cbc_dec_three |
| ++ movups 48(%esi),%xmm5 |
| ++ cmpl $64,%eax |
| ++ jbe L083cbc_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) |
| ++ movups %xmm4,32(%edi) |
| ++ movups %xmm5,48(%edi) |
| ++ leal 64(%edi),%edi |
| ++ movaps %xmm6,%xmm2 |
| ++ subl $80,%eax |
| ++ jmp L079cbc_dec_tail_collected |
| ++.align 4,0x90 |
| ++L080cbc_dec_one: |
| ++ movups (%edx),%xmm0 |
| ++ movups 16(%edx),%xmm1 |
| ++ leal 32(%edx),%edx |
| ++ xorps %xmm0,%xmm2 |
| ++L084dec1_loop_16: |
| ++.byte 102,15,56,222,209 |
| ++ decl %ecx |
| ++ movups (%edx),%xmm1 |
| ++ leal 16(%edx),%edx |
| ++ jnz L084dec1_loop_16 |
| ++.byte 102,15,56,223,209 |
| ++ xorps %xmm7,%xmm2 |
| ++ movaps %xmm6,%xmm7 |
| ++ subl $16,%eax |
| ++ jmp L079cbc_dec_tail_collected |
| ++.align 4,0x90 |
| ++L081cbc_dec_two: |
| ++ xorps %xmm4,%xmm4 |
| ++ call __aesni_decrypt3 |
| ++ xorps %xmm7,%xmm2 |
| ++ xorps %xmm6,%xmm3 |
| ++ movups %xmm2,(%edi) |
| ++ movaps %xmm3,%xmm2 |
| ++ leal 16(%edi),%edi |
| ++ movaps %xmm5,%xmm7 |
| ++ subl $32,%eax |
| ++ jmp L079cbc_dec_tail_collected |
| ++.align 4,0x90 |
| ++L082cbc_dec_three: |
| ++ call __aesni_decrypt3 |
| ++ xorps %xmm7,%xmm2 |
| ++ xorps %xmm6,%xmm3 |
| ++ xorps %xmm5,%xmm4 |
| ++ movups %xmm2,(%edi) |
| ++ movaps %xmm4,%xmm2 |
| ++ movups %xmm3,16(%edi) |
| ++ leal 32(%edi),%edi |
| ++ movups 32(%esi),%xmm7 |
| ++ subl $48,%eax |
| ++ jmp L079cbc_dec_tail_collected |
| ++.align 4,0x90 |
| ++L083cbc_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) |
| ++ xorps %xmm0,%xmm5 |
| ++ movups %xmm4,32(%edi) |
| ++ leal 48(%edi),%edi |
| ++ movaps %xmm5,%xmm2 |
| ++ subl $64,%eax |
| ++L079cbc_dec_tail_collected: |
| ++ andl $15,%eax |
| ++ jnz L085cbc_dec_tail_partial |
| ++ movups %xmm2,(%edi) |
| ++ jmp L075cbc_ret |
| ++.align 4,0x90 |
| ++L085cbc_dec_tail_partial: |
| ++ movaps %xmm2,(%esp) |
| ++ movl $16,%ecx |
| ++ movl %esp,%esi |
| ++ subl %eax,%ecx |
| ++.long 2767451785 |
| ++L075cbc_ret: |
| ++ movl 16(%esp),%esp |
| ++ movl 36(%esp),%ebp |
| ++ movups %xmm7,(%ebp) |
| ++L070cbc_abort: |
| ++ popl %edi |
| ++ popl %esi |
| ++ popl %ebx |
| ++ popl %ebp |
| ++ ret |
| ++.align 4 |
| ++__aesni_set_encrypt_key: |
| ++ testl %eax,%eax |
| ++ jz L086bad_pointer |
| ++ testl %edx,%edx |
| ++ jz L086bad_pointer |
| ++ movups (%eax),%xmm0 |
| ++ xorps %xmm4,%xmm4 |
| ++ leal 16(%edx),%edx |
| ++ cmpl $256,%ecx |
| ++ je L08714rounds |
| ++ cmpl $192,%ecx |
| ++ je L08812rounds |
| ++ cmpl $128,%ecx |
| ++ jne L089bad_keybits |
| ++.align 4,0x90 |
| ++L09010rounds: |
| ++ movl $9,%ecx |
| ++ movups %xmm0,-16(%edx) |
| ++.byte 102,15,58,223,200,1 |
| ++ call L091key_128_cold |
| ++.byte 102,15,58,223,200,2 |
| ++ call L092key_128 |
| ++.byte 102,15,58,223,200,4 |
| ++ call L092key_128 |
| ++.byte 102,15,58,223,200,8 |
| ++ call L092key_128 |
| ++.byte 102,15,58,223,200,16 |
| ++ call L092key_128 |
| ++.byte 102,15,58,223,200,32 |
| ++ call L092key_128 |
| ++.byte 102,15,58,223,200,64 |
| ++ call L092key_128 |
| ++.byte 102,15,58,223,200,128 |
| ++ call L092key_128 |
| ++.byte 102,15,58,223,200,27 |
| ++ call L092key_128 |
| ++.byte 102,15,58,223,200,54 |
| ++ call L092key_128 |
| ++ movups %xmm0,(%edx) |
| ++ movl %ecx,80(%edx) |
| ++ xorl %eax,%eax |
| ++ ret |
| ++.align 4,0x90 |
| ++L092key_128: |
| ++ movups %xmm0,(%edx) |
| ++ leal 16(%edx),%edx |
| ++L091key_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 4,0x90 |
| ++L08812rounds: |
| ++ movq 16(%eax),%xmm2 |
| ++ movl $11,%ecx |
| ++ movups %xmm0,-16(%edx) |
| ++.byte 102,15,58,223,202,1 |
| ++ call L093key_192a_cold |
| ++.byte 102,15,58,223,202,2 |
| ++ call L094key_192b |
| ++.byte 102,15,58,223,202,4 |
| ++ call L095key_192a |
| ++.byte 102,15,58,223,202,8 |
| ++ call L094key_192b |
| ++.byte 102,15,58,223,202,16 |
| ++ call L095key_192a |
| ++.byte 102,15,58,223,202,32 |
| ++ call L094key_192b |
| ++.byte 102,15,58,223,202,64 |
| ++ call L095key_192a |
| ++.byte 102,15,58,223,202,128 |
| ++ call L094key_192b |
| ++ movups %xmm0,(%edx) |
| ++ movl %ecx,48(%edx) |
| ++ xorl %eax,%eax |
| ++ ret |
| ++.align 4,0x90 |
| ++L095key_192a: |
| ++ movups %xmm0,(%edx) |
| ++ leal 16(%edx),%edx |
| ++.align 4,0x90 |
| ++L093key_192a_cold: |
| ++ movaps %xmm2,%xmm5 |
| ++L096key_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 4,0x90 |
| ++L094key_192b: |
| ++ movaps %xmm0,%xmm3 |
| ++ shufps $68,%xmm0,%xmm5 |
| ++ movups %xmm5,(%edx) |
| ++ shufps $78,%xmm2,%xmm3 |
| ++ movups %xmm3,16(%edx) |
| ++ leal 32(%edx),%edx |
| ++ jmp L096key_192b_warm |
| ++.align 4,0x90 |
| ++L08714rounds: |
| ++ movups 16(%eax),%xmm2 |
| ++ movl $13,%ecx |
| ++ leal 16(%edx),%edx |
| ++ movups %xmm0,-32(%edx) |
| ++ movups %xmm2,-16(%edx) |
| ++.byte 102,15,58,223,202,1 |
| ++ call L097key_256a_cold |
| ++.byte 102,15,58,223,200,1 |
| ++ call L098key_256b |
| ++.byte 102,15,58,223,202,2 |
| ++ call L099key_256a |
| ++.byte 102,15,58,223,200,2 |
| ++ call L098key_256b |
| ++.byte 102,15,58,223,202,4 |
| ++ call L099key_256a |
| ++.byte 102,15,58,223,200,4 |
| ++ call L098key_256b |
| ++.byte 102,15,58,223,202,8 |
| ++ call L099key_256a |
| ++.byte 102,15,58,223,200,8 |
| ++ call L098key_256b |
| ++.byte 102,15,58,223,202,16 |
| ++ call L099key_256a |
| ++.byte 102,15,58,223,200,16 |
| ++ call L098key_256b |
| ++.byte 102,15,58,223,202,32 |
| ++ call L099key_256a |
| ++.byte 102,15,58,223,200,32 |
| ++ call L098key_256b |
| ++.byte 102,15,58,223,202,64 |
| ++ call L099key_256a |
| ++ movups %xmm0,(%edx) |
| ++ movl %ecx,16(%edx) |
| ++ xorl %eax,%eax |
| ++ ret |
| ++.align 4,0x90 |
| ++L099key_256a: |
| ++ movups %xmm2,(%edx) |
| ++ leal 16(%edx),%edx |
| ++L097key_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 4,0x90 |
| ++L098key_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 2,0x90 |
| ++L086bad_pointer: |
| ++ movl $-1,%eax |
| ++ ret |
| ++.align 2,0x90 |
| ++L089bad_keybits: |
| ++ movl $-2,%eax |
| ++ ret |
| ++.globl _aesni_set_encrypt_key |
| ++.align 4 |
| ++_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 |
| ++.globl _aesni_set_decrypt_key |
| ++.align 4 |
| ++_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 L100dec_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 |
| ++L101dec_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 L101dec_key_inverse |
| ++ movups (%edx),%xmm0 |
| ++.byte 102,15,56,219,192 |
| ++ movups %xmm0,(%edx) |
| ++ xorl %eax,%eax |
| ++L100dec_key_ret: |
| ++ ret |
| ++.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 |
| +diff --git a/crypto/aes/asm/vpaes-x86-mac.S b/crypto/aes/asm/vpaes-x86-mac.S |
| +new file mode 100644 |
| +index 0000000..f6d164f |
| +--- /dev/null |
| ++++ b/crypto/aes/asm/vpaes-x86-mac.S |
| +@@ -0,0 +1,635 @@ |
| ++.file "vpaes-x86.s" |
| ++.text |
| ++.align 6,0x90 |
| ++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 6,0x90 |
| ++.align 4 |
| ++__vpaes_preheat: |
| ++ addl (%esp),%ebp |
| ++ movdqa -48(%ebp),%xmm7 |
| ++ movdqa -16(%ebp),%xmm6 |
| ++ ret |
| ++.align 4 |
| ++__vpaes_encrypt_core: |
| ++ movl $16,%ecx |
| ++ movl 240(%edx),%eax |
| ++ movdqa %xmm6,%xmm1 |
| ++ movdqa (%ebp),%xmm2 |
| ++ pandn %xmm0,%xmm1 |
| ++ movdqu (%edx),%xmm5 |
| ++ psrld $4,%xmm1 |
| ++ pand %xmm6,%xmm0 |
| ++.byte 102,15,56,0,208 |
| ++ movdqa 16(%ebp),%xmm0 |
| ++.byte 102,15,56,0,193 |
| ++ pxor %xmm5,%xmm2 |
| ++ pxor %xmm2,%xmm0 |
| ++ addl $16,%edx |
| ++ leal 192(%ebp),%ebx |
| ++ jmp L000enc_entry |
| ++.align 4,0x90 |
| ++L001enc_loop: |
| ++ movdqa 32(%ebp),%xmm4 |
| ++.byte 102,15,56,0,226 |
| ++ pxor %xmm5,%xmm4 |
| ++ movdqa 48(%ebp),%xmm0 |
| ++.byte 102,15,56,0,195 |
| ++ pxor %xmm4,%xmm0 |
| ++ movdqa 64(%ebp),%xmm5 |
| ++.byte 102,15,56,0,234 |
| ++ movdqa -64(%ebx,%ecx,1),%xmm1 |
| ++ movdqa 80(%ebp),%xmm2 |
| ++.byte 102,15,56,0,211 |
| ++ pxor %xmm5,%xmm2 |
| ++ movdqa (%ebx,%ecx,1),%xmm4 |
| ++ movdqa %xmm0,%xmm3 |
| ++.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 |
| ++ pxor %xmm3,%xmm0 |
| ++ subl $1,%eax |
| ++L000enc_entry: |
| ++ movdqa %xmm6,%xmm1 |
| ++ pandn %xmm0,%xmm1 |
| ++ psrld $4,%xmm1 |
| ++ pand %xmm6,%xmm0 |
| ++ movdqa -32(%ebp),%xmm5 |
| ++.byte 102,15,56,0,232 |
| ++ pxor %xmm1,%xmm0 |
| ++ movdqa %xmm7,%xmm3 |
| ++.byte 102,15,56,0,217 |
| ++ pxor %xmm5,%xmm3 |
| ++ movdqa %xmm7,%xmm4 |
| ++.byte 102,15,56,0,224 |
| ++ pxor %xmm5,%xmm4 |
| ++ movdqa %xmm7,%xmm2 |
| ++.byte 102,15,56,0,211 |
| ++ pxor %xmm0,%xmm2 |
| ++ movdqa %xmm7,%xmm3 |
| ++ movdqu (%edx),%xmm5 |
| ++.byte 102,15,56,0,220 |
| ++ 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 |
| ++.align 4 |
| ++__vpaes_decrypt_core: |
| ++ movl 240(%edx),%eax |
| ++ leal 608(%ebp),%ebx |
| ++ 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 4,0x90 |
| ++L003dec_loop: |
| ++ movdqa -32(%ebx),%xmm4 |
| ++.byte 102,15,56,0,226 |
| ++ pxor %xmm0,%xmm4 |
| ++ movdqa -16(%ebx),%xmm0 |
| ++.byte 102,15,56,0,195 |
| ++ pxor %xmm4,%xmm0 |
| ++ addl $16,%edx |
| ++.byte 102,15,56,0,197 |
| ++ movdqa (%ebx),%xmm4 |
| ++.byte 102,15,56,0,226 |
| ++ pxor %xmm0,%xmm4 |
| ++ movdqa 16(%ebx),%xmm0 |
| ++.byte 102,15,56,0,195 |
| ++ pxor %xmm4,%xmm0 |
| ++ subl $1,%eax |
| ++.byte 102,15,56,0,197 |
| ++ movdqa 32(%ebx),%xmm4 |
| ++.byte 102,15,56,0,226 |
| ++ pxor %xmm0,%xmm4 |
| ++ movdqa 48(%ebx),%xmm0 |
| ++.byte 102,15,56,0,195 |
| ++ pxor %xmm4,%xmm0 |
| ++.byte 102,15,56,0,197 |
| ++ movdqa 64(%ebx),%xmm4 |
| ++.byte 102,15,56,0,226 |
| ++ pxor %xmm0,%xmm4 |
| ++ movdqa 80(%ebx),%xmm0 |
| ++.byte 102,15,56,0,195 |
| ++ pxor %xmm4,%xmm0 |
| ++.byte 102,15,58,15,237,12 |
| ++L002dec_entry: |
| ++ movdqa %xmm6,%xmm1 |
| ++ pandn %xmm0,%xmm1 |
| ++ psrld $4,%xmm1 |
| ++ pand %xmm6,%xmm0 |
| ++ movdqa -32(%ebp),%xmm2 |
| ++.byte 102,15,56,0,208 |
| ++ pxor %xmm1,%xmm0 |
| ++ movdqa %xmm7,%xmm3 |
| ++.byte 102,15,56,0,217 |
| ++ pxor %xmm2,%xmm3 |
| ++ movdqa %xmm7,%xmm4 |
| ++.byte 102,15,56,0,224 |
| ++ pxor %xmm2,%xmm4 |
| ++ movdqa %xmm7,%xmm2 |
| ++.byte 102,15,56,0,211 |
| ++ pxor %xmm0,%xmm2 |
| ++ movdqa %xmm7,%xmm3 |
| ++.byte 102,15,56,0,220 |
| ++ pxor %xmm1,%xmm3 |
| ++ movdqu (%edx),%xmm0 |
| ++ 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 |
| ++.align 4 |
| ++__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 4,0x90 |
| ++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 4,0x90 |
| ++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 4,0x90 |
| ++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 |
| ++.align 4 |
| ++__vpaes_schedule_192_smear: |
| ++ pshufd $128,%xmm6,%xmm0 |
| ++ pxor %xmm0,%xmm6 |
| ++ pshufd $254,%xmm7,%xmm0 |
| ++ pxor %xmm0,%xmm6 |
| ++ movdqa %xmm6,%xmm0 |
| ++ pxor %xmm1,%xmm1 |
| ++ movhlps %xmm1,%xmm6 |
| ++ ret |
| ++.align 4 |
| ++__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 |
| ++.align 4 |
| ++__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 |
| ++.align 4 |
| ++__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 4,0x90 |
| ++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 |
| ++.globl _vpaes_set_encrypt_key |
| ++.align 4 |
| ++_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 |
| ++.globl _vpaes_set_decrypt_key |
| ++.align 4 |
| ++_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 |
| ++.globl _vpaes_encrypt |
| ++.align 4 |
| ++_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 |
| ++.globl _vpaes_decrypt |
| ++.align 4 |
| ++_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 |
| ++.globl _vpaes_cbc_encrypt |
| ++.align 4 |
| ++_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 4,0x90 |
| ++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 4,0x90 |
| ++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 |
| +diff --git a/crypto/bf/asm/bf-586-mac.S b/crypto/bf/asm/bf-586-mac.S |
| +new file mode 100644 |
| +index 0000000..bf02384 |
| +--- /dev/null |
| ++++ b/crypto/bf/asm/bf-586-mac.S |
| +@@ -0,0 +1,890 @@ |
| ++.file "bf-586.s" |
| ++.text |
| ++.globl _BF_encrypt |
| ++.align 4 |
| ++_BF_encrypt: |
| ++L_BF_encrypt_begin: |
| ++ |
| ++ pushl %ebp |
| ++ pushl %ebx |
| ++ movl 12(%esp),%ebx |
| ++ movl 16(%esp),%ebp |
| ++ pushl %esi |
| ++ pushl %edi |
| ++ # Load the 2 words |
| ++ movl (%ebx),%edi |
| ++ movl 4(%ebx),%esi |
| ++ xorl %eax,%eax |
| ++ movl (%ebp),%ebx |
| ++ xorl %ecx,%ecx |
| ++ xorl %ebx,%edi |
| ++ |
| ++ # Round 0 |
| ++ movl 4(%ebp),%edx |
| ++ movl %edi,%ebx |
| ++ xorl %edx,%esi |
| ++ shrl $16,%ebx |
| ++ movl %edi,%edx |
| ++ movb %bh,%al |
| ++ andl $255,%ebx |
| ++ movb %dh,%cl |
| ++ andl $255,%edx |
| ++ movl 72(%ebp,%eax,4),%eax |
| ++ movl 1096(%ebp,%ebx,4),%ebx |
| ++ addl %eax,%ebx |
| ++ movl 2120(%ebp,%ecx,4),%eax |
| ++ xorl %eax,%ebx |
| ++ movl 3144(%ebp,%edx,4),%edx |
| ++ addl %edx,%ebx |
| ++ xorl %eax,%eax |
| ++ xorl %ebx,%esi |
| ++ |
| ++ # Round 1 |
| ++ movl 8(%ebp),%edx |
| ++ movl %esi,%ebx |
| ++ xorl %edx,%edi |
| ++ shrl $16,%ebx |
| ++ movl %esi,%edx |
| ++ movb %bh,%al |
| ++ andl $255,%ebx |
| ++ movb %dh,%cl |
| ++ andl $255,%edx |
| ++ movl 72(%ebp,%eax,4),%eax |
| ++ movl 1096(%ebp,%ebx,4),%ebx |
| ++ addl %eax,%ebx |
| ++ movl 2120(%ebp,%ecx,4),%eax |
| ++ xorl %eax,%ebx |
| ++ movl 3144(%ebp,%edx,4),%edx |
| ++ addl %edx,%ebx |
| ++ xorl %eax,%eax |
| ++ xorl %ebx,%edi |
| ++ |
| ++ # Round 2 |
| ++ movl 12(%ebp),%edx |
| ++ movl %edi,%ebx |
| ++ xorl %edx,%esi |
| ++ shrl $16,%ebx |
| ++ movl %edi,%edx |
| ++ movb %bh,%al |
| ++ andl $255,%ebx |
| ++ movb %dh,%cl |
| ++ andl $255,%edx |
| ++ movl 72(%ebp,%eax,4),%eax |
| ++ movl 1096(%ebp,%ebx,4),%ebx |
| ++ addl %eax,%ebx |
| ++ movl 2120(%ebp,%ecx,4),%eax |
| ++ xorl %eax,%ebx |
| ++ movl 3144(%ebp,%edx,4),%edx |
| ++ addl %edx,%ebx |
| ++ xorl %eax,%eax |
| ++ xorl %ebx,%esi |
| ++ |
| ++ # Round 3 |
| ++ movl 16(%ebp),%edx |
| ++ movl %esi,%ebx |
| ++ xorl %edx,%edi |
| ++ shrl $16,%ebx |
| ++ movl %esi,%edx |
| ++ movb %bh,%al |
| ++ andl $255,%ebx |
| ++ movb %dh,%cl |
| ++ andl $255,%edx |
| ++ movl 72(%ebp,%eax,4),%eax |
| ++ movl 1096(%ebp,%ebx,4),%ebx |
| ++ addl %eax,%ebx |
| ++ movl 2120(%ebp,%ecx,4),%eax |
| ++ xorl %eax,%ebx |
| ++ movl 3144(%ebp,%edx,4),%edx |
| ++ addl %edx,%ebx |
| ++ xorl %eax,%eax |
| ++ xorl %ebx,%edi |
| ++ |
| ++ # Round 4 |
| ++ movl 20(%ebp),%edx |
| ++ movl %edi,%ebx |
| ++ xorl %edx,%esi |
| ++ shrl $16,%ebx |
| ++ movl %edi,%edx |
| ++ movb %bh,%al |
| ++ andl $255,%ebx |
| ++ movb %dh,%cl |
| ++ andl $255,%edx |
| ++ movl 72(%ebp,%eax,4),%eax |
| ++ movl 1096(%ebp,%ebx,4),%ebx |
| ++ addl %eax,%ebx |
| ++ movl 2120(%ebp,%ecx,4),%eax |
| ++ xorl %eax,%ebx |
| ++ movl 3144(%ebp,%edx,4),%edx |
| ++ addl %edx,%ebx |
| ++ xorl %eax,%eax |
| ++ xorl %ebx,%esi |
| ++ |
| ++ # Round 5 |
| ++ movl 24(%ebp),%edx |
| ++ movl %esi,%ebx |
| ++ xorl %edx,%edi |
| ++ shrl $16,%ebx |
| ++ movl %esi,%edx |
| ++ movb %bh,%al |
| ++ andl $255,%ebx |
| ++ movb %dh,%cl |
| ++ andl $255,%edx |
| ++ movl 72(%ebp,%eax,4),%eax |
| ++ movl 1096(%ebp,%ebx,4),%ebx |
| ++ addl %eax,%ebx |
| ++ movl 2120(%ebp,%ecx,4),%eax |
| ++ xorl %eax,%ebx |
| ++ movl 3144(%ebp,%edx,4),%edx |
| ++ addl %edx,%ebx |
| ++ xorl %eax,%eax |
| ++ xorl %ebx,%edi |
| ++ |
| ++ # Round 6 |
| ++ movl 28(%ebp),%edx |
| ++ movl %edi,%ebx |
| ++ xorl %edx,%esi |
| ++ shrl $16,%ebx |
| ++ movl %edi,%edx |
| ++ movb %bh,%al |
| ++ andl $255,%ebx |
| ++ movb %dh,%cl |
| ++ andl $255,%edx |
| ++ movl 72(%ebp,%eax,4),%eax |
| ++ movl 1096(%ebp,%ebx,4),%ebx |
| ++ addl %eax,%ebx |
| ++ movl 2120(%ebp,%ecx,4),%eax |
| ++ xorl %eax,%ebx |
| ++ movl 3144(%ebp,%edx,4),%edx |
| ++ addl %edx,%ebx |
| ++ xorl %eax,%eax |
| ++ xorl %ebx,%esi |
| ++ |
| ++ # Round 7 |
| ++ movl 32(%ebp),%edx |
| ++ movl %esi,%ebx |
| ++ xorl %edx,%edi |
| ++ shrl $16,%ebx |
| ++ movl %esi,%edx |
| ++ movb %bh,%al |
| ++ andl $255,%ebx |
| ++ movb %dh,%cl |
| ++ andl $255,%edx |
| ++ movl 72(%ebp,%eax,4),%eax |
| ++ movl 1096(%ebp,%ebx,4),%ebx |
| ++ addl %eax,%ebx |
| ++ movl 2120(%ebp,%ecx,4),%eax |
| ++ xorl %eax,%ebx |
| ++ movl 3144(%ebp,%edx,4),%edx |
| ++ addl %edx,%ebx |
| ++ xorl %eax,%eax |
| ++ xorl %ebx,%edi |
| ++ |
| ++ # Round 8 |
| ++ movl 36(%ebp),%edx |
| ++ movl %edi,%ebx |
| ++ xorl %edx,%esi |
| ++ shrl $16,%ebx |
| ++ movl %edi,%edx |
| ++ movb %bh,%al |
| ++ andl $255,%ebx |
| ++ movb %dh,%cl |
| ++ andl $255,%edx |
| ++ movl 72(%ebp,%eax,4),%eax |
| ++ movl 1096(%ebp,%ebx,4),%ebx |
| ++ addl %eax,%ebx |
| ++ movl 2120(%ebp,%ecx,4),%eax |
| ++ xorl %eax,%ebx |
| ++ movl 3144(%ebp,%edx,4),%edx |
| ++ addl %edx,%ebx |
| ++ xorl %eax,%eax |
| ++ xorl %ebx,%esi |
| ++ |
| ++ # Round 9 |
| ++ movl 40(%ebp),%edx |
| ++ movl %esi,%ebx |
| ++ xorl %edx,%edi |
| ++ shrl $16,%ebx |
| ++ movl %esi,%edx |
| ++ movb %bh,%al |
| ++ andl $255,%ebx |
| ++ movb %dh,%cl |
| ++ andl $255,%edx |
| ++ movl 72(%ebp,%eax,4),%eax |
| ++ movl 1096(%ebp,%ebx,4),%ebx |
| ++ addl %eax,%ebx |
| ++ movl 2120(%ebp,%ecx,4),%eax |
| ++ xorl %eax,%ebx |
| ++ movl 3144(%ebp,%edx,4),%edx |
| ++ addl %edx,%ebx |
| ++ xorl %eax,%eax |
| ++ xorl %ebx,%edi |
| ++ |
| ++ # Round 10 |
| ++ movl 44(%ebp),%edx |
| ++ movl %edi,%ebx |
| ++ xorl %edx,%esi |
| ++ shrl $16,%ebx |
| ++ movl %edi,%edx |
| ++ movb %bh,%al |
| ++ andl $255,%ebx |
| ++ movb %dh,%cl |
| ++ andl $255,%edx |
| ++ movl 72(%ebp,%eax,4),%eax |
| ++ movl 1096(%ebp,%ebx,4),%ebx |
| ++ addl %eax,%ebx |
| ++ movl 2120(%ebp,%ecx,4),%eax |
| ++ xorl %eax,%ebx |
| ++ movl 3144(%ebp,%edx,4),%edx |
| ++ addl %edx,%ebx |
| ++ xorl %eax,%eax |
| ++ xorl %ebx,%esi |
| ++ |
| ++ # Round 11 |
| ++ movl 48(%ebp),%edx |
| ++ movl %esi,%ebx |
| ++ xorl %edx,%edi |
| ++ shrl $16,%ebx |
| ++ movl %esi,%edx |
| ++ movb %bh,%al |
| ++ andl $255,%ebx |
| ++ movb %dh,%cl |
| ++ andl $255,%edx |
| ++ movl 72(%ebp,%eax,4),%eax |
| ++ movl 1096(%ebp,%ebx,4),%ebx |
| ++ addl %eax,%ebx |
| ++ movl 2120(%ebp,%ecx,4),%eax |
| ++ xorl %eax,%ebx |
| ++ movl 3144(%ebp,%edx,4),%edx |
| ++ addl %edx,%ebx |
| ++ xorl %eax,%eax |
| ++ xorl %ebx,%edi |
| ++ |
| ++ # Round 12 |
| ++ movl 52(%ebp),%edx |
| ++ movl %edi,%ebx |
| ++ xorl %edx,%esi |
| ++ shrl $16,%ebx |
| ++ movl %edi,%edx |
| ++ movb %bh,%al |
| ++ andl $255,%ebx |
| ++ movb %dh,%cl |
| ++ andl $255,%edx |
| ++ movl 72(%ebp,%eax,4),%eax |
| ++ movl 1096(%ebp,%ebx,4),%ebx |
| ++ addl %eax,%ebx |
| ++ movl 2120(%ebp,%ecx,4),%eax |
| ++ xorl %eax,%ebx |
| ++ movl 3144(%ebp,%edx,4),%edx |
| ++ addl %edx,%ebx |
| ++ xorl %eax,%eax |
| ++ xorl %ebx,%esi |
| ++ |
| ++ # Round 13 |
| ++ movl 56(%ebp),%edx |
| ++ movl %esi,%ebx |
| ++ xorl %edx,%edi |
| ++ shrl $16,%ebx |
| ++ movl %esi,%edx |
| ++ movb %bh,%al |
| ++ andl $255,%ebx |
| ++ movb %dh,%cl |
| ++ andl $255,%edx |
| ++ movl 72(%ebp,%eax,4),%eax |
| ++ movl 1096(%ebp,%ebx,4),%ebx |
| ++ addl %eax,%ebx |
| ++ movl 2120(%ebp,%ecx,4),%eax |
| ++ xorl %eax,%ebx |
| ++ movl 3144(%ebp,%edx,4),%edx |
| ++ addl %edx,%ebx |
| ++ xorl %eax,%eax |
| ++ xorl %ebx,%edi |
| ++ |
| ++ # Round 14 |
| ++ movl 60(%ebp),%edx |
| ++ movl %edi,%ebx |
| ++ xorl %edx,%esi |
| ++ shrl $16,%ebx |
| ++ movl %edi,%edx |
| ++ movb %bh,%al |
| ++ andl $255,%ebx |
| ++ movb %dh,%cl |
| ++ andl $255,%edx |
| ++ movl 72(%ebp,%eax,4),%eax |
| ++ movl 1096(%ebp,%ebx,4),%ebx |
| ++ addl %eax,%ebx |
| ++ movl 2120(%ebp,%ecx,4),%eax |
| ++ xorl %eax,%ebx |
| ++ movl 3144(%ebp,%edx,4),%edx |
| ++ addl %edx,%ebx |
| ++ xorl %eax,%eax |
| ++ xorl %ebx,%esi |
| ++ |
| ++ # Round 15 |
| ++ movl 64(%ebp),%edx |
| ++ movl %esi,%ebx |
| ++ xorl %edx,%edi |
| ++ shrl $16,%ebx |
| ++ movl %esi,%edx |
| ++ movb %bh,%al |
| ++ andl $255,%ebx |
| ++ movb %dh,%cl |
| ++ andl $255,%edx |
| ++ movl 72(%ebp,%eax,4),%eax |
| ++ movl 1096(%ebp,%ebx,4),%ebx |
| ++ addl %eax,%ebx |
| ++ movl 2120(%ebp,%ecx,4),%eax |
| ++ xorl %eax,%ebx |
| ++ movl 3144(%ebp,%edx,4),%edx |
| ++ addl %edx,%ebx |
| ++ # Load parameter 0 (16) enc=1 |
| ++ movl 20(%esp),%eax |
| ++ xorl %ebx,%edi |
| ++ movl 68(%ebp),%edx |
| ++ xorl %edx,%esi |
| ++ movl %edi,4(%eax) |
| ++ movl %esi,(%eax) |
| ++ popl %edi |
| ++ popl %esi |
| ++ popl %ebx |
| ++ popl %ebp |
| ++ ret |
| ++.globl _BF_decrypt |
| ++.align 4 |
| ++_BF_decrypt: |
| ++L_BF_decrypt_begin: |
| ++ |
| ++ pushl %ebp |
| ++ pushl %ebx |
| ++ movl 12(%esp),%ebx |
| ++ movl 16(%esp),%ebp |
| ++ pushl %esi |
| ++ pushl %edi |
| ++ # Load the 2 words |
| ++ movl (%ebx),%edi |
| ++ movl 4(%ebx),%esi |
| ++ xorl %eax,%eax |
| ++ movl 68(%ebp),%ebx |
| ++ xorl %ecx,%ecx |
| ++ xorl %ebx,%edi |
| ++ |
| ++ # Round 16 |
| ++ movl 64(%ebp),%edx |
| ++ movl %edi,%ebx |
| ++ xorl %edx,%esi |
| ++ shrl $16,%ebx |
| ++ movl %edi,%edx |
| ++ movb %bh,%al |
| ++ andl $255,%ebx |
| ++ movb %dh,%cl |
| ++ andl $255,%edx |
| ++ movl 72(%ebp,%eax,4),%eax |
| ++ movl 1096(%ebp,%ebx,4),%ebx |
| ++ addl %eax,%ebx |
| ++ movl 2120(%ebp,%ecx,4),%eax |
| ++ xorl %eax,%ebx |
| ++ movl 3144(%ebp,%edx,4),%edx |
| ++ addl %edx,%ebx |
| ++ xorl %eax,%eax |
| ++ xorl %ebx,%esi |
| ++ |
| ++ # Round 15 |
| ++ movl 60(%ebp),%edx |
| ++ movl %esi,%ebx |
| ++ xorl %edx,%edi |
| ++ shrl $16,%ebx |
| ++ movl %esi,%edx |
| ++ movb %bh,%al |
| ++ andl $255,%ebx |
| ++ movb %dh,%cl |
| ++ andl $255,%edx |
| ++ movl 72(%ebp,%eax,4),%eax |
| ++ movl 1096(%ebp,%ebx,4),%ebx |
| ++ addl %eax,%ebx |
| ++ movl 2120(%ebp,%ecx,4),%eax |
| ++ xorl %eax,%ebx |
| ++ movl 3144(%ebp,%edx,4),%edx |
| ++ addl %edx,%ebx |
| ++ xorl %eax,%eax |
| ++ xorl %ebx,%edi |
| ++ |
| ++ # Round 14 |
| ++ movl 56(%ebp),%edx |
| ++ movl %edi,%ebx |
| ++ xorl %edx,%esi |
| ++ shrl $16,%ebx |
| ++ movl %edi,%edx |
| ++ movb %bh,%al |
| ++ andl $255,%ebx |
| ++ movb %dh,%cl |
| ++ andl $255,%edx |
| ++ movl 72(%ebp,%eax,4),%eax |
| ++ movl 1096(%ebp,%ebx,4),%ebx |
| ++ addl %eax,%ebx |
| ++ movl 2120(%ebp,%ecx,4),%eax |
| ++ xorl %eax,%ebx |
| ++ movl 3144(%ebp,%edx,4),%edx |
| ++ addl %edx,%ebx |
| ++ xorl %eax,%eax |
| ++ xorl %ebx,%esi |
| ++ |
| ++ # Round 13 |
| ++ movl 52(%ebp),%edx |
| ++ movl %esi,%ebx |
| ++ xorl %edx,%edi |
| ++ shrl $16,%ebx |
| ++ movl %esi,%edx |
| ++ movb %bh,%al |
| ++ andl $255,%ebx |
| ++ movb %dh,%cl |
| ++ andl $255,%edx |
| ++ movl 72(%ebp,%eax,4),%eax |
| ++ movl 1096(%ebp,%ebx,4),%ebx |
| ++ addl %eax,%ebx |
| ++ movl 2120(%ebp,%ecx,4),%eax |
| ++ xorl %eax,%ebx |
| ++ movl 3144(%ebp,%edx,4),%edx |
| ++ addl %edx,%ebx |
| ++ xorl %eax,%eax |
| ++ xorl %ebx,%edi |
| ++ |
| ++ # Round 12 |
| ++ movl 48(%ebp),%edx |
| ++ movl %edi,%ebx |
| ++ xorl %edx,%esi |
| ++ shrl $16,%ebx |
| ++ movl %edi,%edx |
| ++ movb %bh,%al |
| ++ andl $255,%ebx |
| ++ movb %dh,%cl |
| ++ andl $255,%edx |
| ++ movl 72(%ebp,%eax,4),%eax |
| ++ movl 1096(%ebp,%ebx,4),%ebx |
| ++ addl %eax,%ebx |
| ++ movl 2120(%ebp,%ecx,4),%eax |
| ++ xorl %eax,%ebx |
| ++ movl 3144(%ebp,%edx,4),%edx |
| ++ addl %edx,%ebx |
| ++ xorl %eax,%eax |
| ++ xorl %ebx,%esi |
| ++ |
| ++ # Round 11 |
| ++ movl 44(%ebp),%edx |
| ++ movl %esi,%ebx |
| ++ xorl %edx,%edi |
| ++ shrl $16,%ebx |
| ++ movl %esi,%edx |
| ++ movb %bh,%al |
| ++ andl $255,%ebx |
| ++ movb %dh,%cl |
| ++ andl $255,%edx |
| ++ movl 72(%ebp,%eax,4),%eax |
| ++ movl 1096(%ebp,%ebx,4),%ebx |
| ++ addl %eax,%ebx |
| ++ movl 2120(%ebp,%ecx,4),%eax |
| ++ xorl %eax,%ebx |
| ++ movl 3144(%ebp,%edx,4),%edx |
| ++ addl %edx,%ebx |
| ++ xorl %eax,%eax |
| ++ xorl %ebx,%edi |
| ++ |
| ++ # Round 10 |
| ++ movl 40(%ebp),%edx |
| ++ movl %edi,%ebx |
| ++ xorl %edx,%esi |
| ++ shrl $16,%ebx |
| ++ movl %edi,%edx |
| ++ movb %bh,%al |
| ++ andl $255,%ebx |
| ++ movb %dh,%cl |
| ++ andl $255,%edx |
| ++ movl 72(%ebp,%eax,4),%eax |
| ++ movl 1096(%ebp,%ebx,4),%ebx |
| ++ addl %eax,%ebx |
| ++ movl 2120(%ebp,%ecx,4),%eax |
| ++ xorl %eax,%ebx |
| ++ movl 3144(%ebp,%edx,4),%edx |
| ++ addl %edx,%ebx |
| ++ xorl %eax,%eax |
| ++ xorl %ebx,%esi |
| ++ |
| ++ # Round 9 |
| ++ movl 36(%ebp),%edx |
| ++ movl %esi,%ebx |
| ++ xorl %edx,%edi |
| ++ shrl $16,%ebx |
| ++ movl %esi,%edx |
| ++ movb %bh,%al |
| ++ andl $255,%ebx |
| ++ movb %dh,%cl |
| ++ andl $255,%edx |
| ++ movl 72(%ebp,%eax,4),%eax |
| ++ movl 1096(%ebp,%ebx,4),%ebx |
| ++ addl %eax,%ebx |
| ++ movl 2120(%ebp,%ecx,4),%eax |
| ++ xorl %eax,%ebx |
| ++ movl 3144(%ebp,%edx,4),%edx |
| ++ addl %edx,%ebx |
| ++ xorl %eax,%eax |
| ++ xorl %ebx,%edi |
| ++ |
| ++ # Round 8 |
| ++ movl 32(%ebp),%edx |
| ++ movl %edi,%ebx |
| ++ xorl %edx,%esi |
| ++ shrl $16,%ebx |
| ++ movl %edi,%edx |
| ++ movb %bh,%al |
| ++ andl $255,%ebx |
| ++ movb %dh,%cl |
| ++ andl $255,%edx |
| ++ movl 72(%ebp,%eax,4),%eax |
| ++ movl 1096(%ebp,%ebx,4),%ebx |
| ++ addl %eax,%ebx |
| ++ movl 2120(%ebp,%ecx,4),%eax |
| ++ xorl %eax,%ebx |
| ++ movl 3144(%ebp,%edx,4),%edx |
| ++ addl %edx,%ebx |
| ++ xorl %eax,%eax |
| ++ xorl %ebx,%esi |
| ++ |
| ++ # Round 7 |
| ++ movl 28(%ebp),%edx |
| ++ movl %esi,%ebx |
| ++ xorl %edx,%edi |
| ++ shrl $16,%ebx |
| ++ movl %esi,%edx |
| ++ movb %bh,%al |
| ++ andl $255,%ebx |
| ++ movb %dh,%cl |
| ++ andl $255,%edx |
| ++ movl 72(%ebp,%eax,4),%eax |
| ++ movl 1096(%ebp,%ebx,4),%ebx |
| ++ addl %eax,%ebx |
| ++ movl 2120(%ebp,%ecx,4),%eax |
| ++ xorl %eax,%ebx |
| ++ movl 3144(%ebp,%edx,4),%edx |
| ++ addl %edx,%ebx |
| ++ xorl %eax,%eax |
| ++ xorl %ebx,%edi |
| ++ |
| ++ # Round 6 |
| ++ movl 24(%ebp),%edx |
| ++ movl %edi,%ebx |
| ++ xorl %edx,%esi |
| ++ shrl $16,%ebx |
| ++ movl %edi,%edx |
| ++ movb %bh,%al |
| ++ andl $255,%ebx |
| ++ movb %dh,%cl |
| ++ andl $255,%edx |
| ++ movl 72(%ebp,%eax,4),%eax |
| ++ movl 1096(%ebp,%ebx,4),%ebx |
| ++ addl %eax,%ebx |
| ++ movl 2120(%ebp,%ecx,4),%eax |
| ++ xorl %eax,%ebx |
| ++ movl 3144(%ebp,%edx,4),%edx |
| ++ addl %edx,%ebx |
| ++ xorl %eax,%eax |
| ++ xorl %ebx,%esi |
| ++ |
| ++ # Round 5 |
| ++ movl 20(%ebp),%edx |
| ++ movl %esi,%ebx |
| ++ xorl %edx,%edi |
| ++ shrl $16,%ebx |
| ++ movl %esi,%edx |
| ++ movb %bh,%al |
| ++ andl $255,%ebx |
| ++ movb %dh,%cl |
| ++ andl $255,%edx |
| ++ movl 72(%ebp,%eax,4),%eax |
| ++ movl 1096(%ebp,%ebx,4),%ebx |
| ++ addl %eax,%ebx |
| ++ movl 2120(%ebp,%ecx,4),%eax |
| ++ xorl %eax,%ebx |
| ++ movl 3144(%ebp,%edx,4),%edx |
| ++ addl %edx,%ebx |
| ++ xorl %eax,%eax |
| ++ xorl %ebx,%edi |
| ++ |
| ++ # Round 4 |
| ++ movl 16(%ebp),%edx |
| ++ movl %edi,%ebx |
| ++ xorl %edx,%esi |
| ++ shrl $16,%ebx |
| ++ movl %edi,%edx |
| ++ movb %bh,%al |
| ++ andl $255,%ebx |
| ++ movb %dh,%cl |
| ++ andl $255,%edx |
| ++ movl 72(%ebp,%eax,4),%eax |
| ++ movl 1096(%ebp,%ebx,4),%ebx |
| ++ addl %eax,%ebx |
| ++ movl 2120(%ebp,%ecx,4),%eax |
| ++ xorl %eax,%ebx |
| ++ movl 3144(%ebp,%edx,4),%edx |
| ++ addl %edx,%ebx |
| ++ xorl %eax,%eax |
| ++ xorl %ebx,%esi |
| ++ |
| ++ # Round 3 |
| ++ movl 12(%ebp),%edx |
| ++ movl %esi,%ebx |
| ++ xorl %edx,%edi |
| ++ shrl $16,%ebx |
| ++ movl %esi,%edx |
| ++ movb %bh,%al |
| ++ andl $255,%ebx |
| ++ movb %dh,%cl |
| ++ andl $255,%edx |
| ++ movl 72(%ebp,%eax,4),%eax |
| ++ movl 1096(%ebp,%ebx,4),%ebx |
| ++ addl %eax,%ebx |
| ++ movl 2120(%ebp,%ecx,4),%eax |
| ++ xorl %eax,%ebx |
| ++ movl 3144(%ebp,%edx,4),%edx |
| ++ addl %edx,%ebx |
| ++ xorl %eax,%eax |
| ++ xorl %ebx,%edi |
| ++ |
| ++ # Round 2 |
| ++ movl 8(%ebp),%edx |
| ++ movl %edi,%ebx |
| ++ xorl %edx,%esi |
| ++ shrl $16,%ebx |
| ++ movl %edi,%edx |
| ++ movb %bh,%al |
| ++ andl $255,%ebx |
| ++ movb %dh,%cl |
| ++ andl $255,%edx |
| ++ movl 72(%ebp,%eax,4),%eax |
| ++ movl 1096(%ebp,%ebx,4),%ebx |
| ++ addl %eax,%ebx |
| ++ movl 2120(%ebp,%ecx,4),%eax |
| ++ xorl %eax,%ebx |
| ++ movl 3144(%ebp,%edx,4),%edx |
| ++ addl %edx,%ebx |
| ++ xorl %eax,%eax |
| ++ xorl %ebx,%esi |
| ++ |
| ++ # Round 1 |
| ++ movl 4(%ebp),%edx |
| ++ movl %esi,%ebx |
| ++ xorl %edx,%edi |
| ++ shrl $16,%ebx |
| ++ movl %esi,%edx |
| ++ movb %bh,%al |
| ++ andl $255,%ebx |
| ++ movb %dh,%cl |
| ++ andl $255,%edx |
| ++ movl 72(%ebp,%eax,4),%eax |
| ++ movl 1096(%ebp,%ebx,4),%ebx |
| ++ addl %eax,%ebx |
| ++ movl 2120(%ebp,%ecx,4),%eax |
| ++ xorl %eax,%ebx |
| ++ movl 3144(%ebp,%edx,4),%edx |
| ++ addl %edx,%ebx |
| ++ # Load parameter 0 (1) enc=0 |
| ++ movl 20(%esp),%eax |
| ++ xorl %ebx,%edi |
| ++ movl (%ebp),%edx |
| ++ xorl %edx,%esi |
| ++ movl %edi,4(%eax) |
| ++ movl %esi,(%eax) |
| ++ popl %edi |
| ++ popl %esi |
| ++ popl %ebx |
| ++ popl %ebp |
| ++ ret |
| ++.globl _BF_cbc_encrypt |
| ++.align 4 |
| ++_BF_cbc_encrypt: |
| ++L_BF_cbc_encrypt_begin: |
| ++ |
| ++ pushl %ebp |
| ++ pushl %ebx |
| ++ pushl %esi |
| ++ pushl %edi |
| ++ movl 28(%esp),%ebp |
| ++ # getting iv ptr from parameter 4 |
| ++ movl 36(%esp),%ebx |
| ++ movl (%ebx),%esi |
| ++ movl 4(%ebx),%edi |
| ++ pushl %edi |
| ++ pushl %esi |
| ++ pushl %edi |
| ++ pushl %esi |
| ++ movl %esp,%ebx |
| ++ movl 36(%esp),%esi |
| ++ movl 40(%esp),%edi |
| ++ # getting encrypt flag from parameter 5 |
| ++ movl 56(%esp),%ecx |
| ++ # get and push parameter 3 |
| ++ movl 48(%esp),%eax |
| ++ pushl %eax |
| ++ pushl %ebx |
| ++ cmpl $0,%ecx |
| ++ jz L000decrypt |
| ++ andl $4294967288,%ebp |
| ++ movl 8(%esp),%eax |
| ++ movl 12(%esp),%ebx |
| ++ jz L001encrypt_finish |
| ++L002encrypt_loop: |
| ++ movl (%esi),%ecx |
| ++ movl 4(%esi),%edx |
| ++ xorl %ecx,%eax |
| ++ xorl %edx,%ebx |
| ++ bswap %eax |
| ++ bswap %ebx |
| ++ movl %eax,8(%esp) |
| ++ movl %ebx,12(%esp) |
| ++ call L_BF_encrypt_begin |
| ++ movl 8(%esp),%eax |
| ++ movl 12(%esp),%ebx |
| ++ bswap %eax |
| ++ bswap %ebx |
| ++ movl %eax,(%edi) |
| ++ movl %ebx,4(%edi) |
| ++ addl $8,%esi |
| ++ addl $8,%edi |
| ++ subl $8,%ebp |
| ++ jnz L002encrypt_loop |
| ++L001encrypt_finish: |
| ++ movl 52(%esp),%ebp |
| ++ andl $7,%ebp |
| ++ jz L003finish |
| ++ call L004PIC_point |
| ++L004PIC_point: |
| ++ popl %edx |
| ++ leal L005cbc_enc_jmp_table-L004PIC_point(%edx),%ecx |
| ++ movl (%ecx,%ebp,4),%ebp |
| ++ addl %edx,%ebp |
| ++ xorl %ecx,%ecx |
| ++ xorl %edx,%edx |
| ++ jmp *%ebp |
| ++L006ej7: |
| ++ movb 6(%esi),%dh |
| ++ shll $8,%edx |
| ++L007ej6: |
| ++ movb 5(%esi),%dh |
| ++L008ej5: |
| ++ movb 4(%esi),%dl |
| ++L009ej4: |
| ++ movl (%esi),%ecx |
| ++ jmp L010ejend |
| ++L011ej3: |
| ++ movb 2(%esi),%ch |
| ++ shll $8,%ecx |
| ++L012ej2: |
| ++ movb 1(%esi),%ch |
| ++L013ej1: |
| ++ movb (%esi),%cl |
| ++L010ejend: |
| ++ xorl %ecx,%eax |
| ++ xorl %edx,%ebx |
| ++ bswap %eax |
| ++ bswap %ebx |
| ++ movl %eax,8(%esp) |
| ++ movl %ebx,12(%esp) |
| ++ call L_BF_encrypt_begin |
| ++ movl 8(%esp),%eax |
| ++ movl 12(%esp),%ebx |
| ++ bswap %eax |
| ++ bswap %ebx |
| ++ movl %eax,(%edi) |
| ++ movl %ebx,4(%edi) |
| ++ jmp L003finish |
| ++L000decrypt: |
| ++ andl $4294967288,%ebp |
| ++ movl 16(%esp),%eax |
| ++ movl 20(%esp),%ebx |
| ++ jz L014decrypt_finish |
| ++L015decrypt_loop: |
| ++ movl (%esi),%eax |
| ++ movl 4(%esi),%ebx |
| ++ bswap %eax |
| ++ bswap %ebx |
| ++ movl %eax,8(%esp) |
| ++ movl %ebx,12(%esp) |
| ++ call L_BF_decrypt_begin |
| ++ movl 8(%esp),%eax |
| ++ movl 12(%esp),%ebx |
| ++ bswap %eax |
| ++ bswap %ebx |
| ++ movl 16(%esp),%ecx |
| ++ movl 20(%esp),%edx |
| ++ xorl %eax,%ecx |
| ++ xorl %ebx,%edx |
| ++ movl (%esi),%eax |
| ++ movl 4(%esi),%ebx |
| ++ movl %ecx,(%edi) |
| ++ movl %edx,4(%edi) |
| ++ movl %eax,16(%esp) |
| ++ movl %ebx,20(%esp) |
| ++ addl $8,%esi |
| ++ addl $8,%edi |
| ++ subl $8,%ebp |
| ++ jnz L015decrypt_loop |
| ++L014decrypt_finish: |
| ++ movl 52(%esp),%ebp |
| ++ andl $7,%ebp |
| ++ jz L003finish |
| ++ movl (%esi),%eax |
| ++ movl 4(%esi),%ebx |
| ++ bswap %eax |
| ++ bswap %ebx |
| ++ movl %eax,8(%esp) |
| ++ movl %ebx,12(%esp) |
| ++ call L_BF_decrypt_begin |
| ++ movl 8(%esp),%eax |
| ++ movl 12(%esp),%ebx |
| ++ bswap %eax |
| ++ bswap %ebx |
| ++ movl 16(%esp),%ecx |
| ++ movl 20(%esp),%edx |
| ++ xorl %eax,%ecx |
| ++ xorl %ebx,%edx |
| ++ movl (%esi),%eax |
| ++ movl 4(%esi),%ebx |
| ++L016dj7: |
| ++ rorl $16,%edx |
| ++ movb %dl,6(%edi) |
| ++ shrl $16,%edx |
| ++L017dj6: |
| ++ movb %dh,5(%edi) |
| ++L018dj5: |
| ++ movb %dl,4(%edi) |
| ++L019dj4: |
| ++ movl %ecx,(%edi) |
| ++ jmp L020djend |
| ++L021dj3: |
| ++ rorl $16,%ecx |
| ++ movb %cl,2(%edi) |
| ++ shll $16,%ecx |
| ++L022dj2: |
| ++ movb %ch,1(%esi) |
| ++L023dj1: |
| ++ movb %cl,(%esi) |
| ++L020djend: |
| ++ jmp L003finish |
| ++L003finish: |
| ++ movl 60(%esp),%ecx |
| ++ addl $24,%esp |
| ++ movl %eax,(%ecx) |
| ++ movl %ebx,4(%ecx) |
| ++ popl %edi |
| ++ popl %esi |
| ++ popl %ebx |
| ++ popl %ebp |
| ++ ret |
| ++.align 6,0x90 |
| ++L005cbc_enc_jmp_table: |
| ++.long 0 |
| ++.long L013ej1-L004PIC_point |
| ++.long L012ej2-L004PIC_point |
| ++.long L011ej3-L004PIC_point |
| ++.long L009ej4-L004PIC_point |
| ++.long L008ej5-L004PIC_point |
| ++.long L007ej6-L004PIC_point |
| ++.long L006ej7-L004PIC_point |
| ++.align 6,0x90 |
| +diff --git a/crypto/bn/asm/bn-586-mac.S b/crypto/bn/asm/bn-586-mac.S |
| +new file mode 100644 |
| +index 0000000..05a81aa |
| +--- /dev/null |
| ++++ b/crypto/bn/asm/bn-586-mac.S |
| +@@ -0,0 +1,1370 @@ |
| ++.file "crypto/bn/asm/bn-586.s" |
| ++.text |
| ++.globl _bn_mul_add_words |
| ++.align 4 |
| ++_bn_mul_add_words: |
| ++L_bn_mul_add_words_begin: |
| ++ pushl %ebp |
| ++ pushl %ebx |
| ++ pushl %esi |
| ++ pushl %edi |
| ++ |
| ++ xorl %esi,%esi |
| ++ movl 20(%esp),%edi |
| ++ movl 28(%esp),%ecx |
| ++ movl 24(%esp),%ebx |
| ++ andl $4294967288,%ecx |
| ++ movl 32(%esp),%ebp |
| ++ pushl %ecx |
| ++ jz L000maw_finish |
| ++.align 4,0x90 |
| ++L001maw_loop: |
| ++ # Round 0 |
| ++ movl (%ebx),%eax |
| ++ mull %ebp |
| ++ addl %esi,%eax |
| ++ adcl $0,%edx |
| ++ addl (%edi),%eax |
| ++ adcl $0,%edx |
| ++ movl %eax,(%edi) |
| ++ movl %edx,%esi |
| ++ # Round 4 |
| ++ movl 4(%ebx),%eax |
| ++ mull %ebp |
| ++ addl %esi,%eax |
| ++ adcl $0,%edx |
| ++ addl 4(%edi),%eax |
| ++ adcl $0,%edx |
| ++ movl %eax,4(%edi) |
| ++ movl %edx,%esi |
| ++ # Round 8 |
| ++ movl 8(%ebx),%eax |
| ++ mull %ebp |
| ++ addl %esi,%eax |
| ++ adcl $0,%edx |
| ++ addl 8(%edi),%eax |
| ++ adcl $0,%edx |
| ++ movl %eax,8(%edi) |
| ++ movl %edx,%esi |
| ++ # Round 12 |
| ++ movl 12(%ebx),%eax |
| ++ mull %ebp |
| ++ addl %esi,%eax |
| ++ adcl $0,%edx |
| ++ addl 12(%edi),%eax |
| ++ adcl $0,%edx |
| ++ movl %eax,12(%edi) |
| ++ movl %edx,%esi |
| ++ # Round 16 |
| ++ movl 16(%ebx),%eax |
| ++ mull %ebp |
| ++ addl %esi,%eax |
| ++ adcl $0,%edx |
| ++ addl 16(%edi),%eax |
| ++ adcl $0,%edx |
| ++ movl %eax,16(%edi) |
| ++ movl %edx,%esi |
| ++ # Round 20 |
| ++ movl 20(%ebx),%eax |
| ++ mull %ebp |
| ++ addl %esi,%eax |
| ++ adcl $0,%edx |
| ++ addl 20(%edi),%eax |
| ++ adcl $0,%edx |
| ++ movl %eax,20(%edi) |
| ++ movl %edx,%esi |
| ++ # Round 24 |
| ++ movl 24(%ebx),%eax |
| ++ mull %ebp |
| ++ addl %esi,%eax |
| ++ adcl $0,%edx |
| ++ addl 24(%edi),%eax |
| ++ adcl $0,%edx |
| ++ movl %eax,24(%edi) |
| ++ movl %edx,%esi |
| ++ # Round 28 |
| ++ movl 28(%ebx),%eax |
| ++ mull %ebp |
| ++ addl %esi,%eax |
| ++ adcl $0,%edx |
| ++ addl 28(%edi),%eax |
| ++ adcl $0,%edx |
| ++ movl %eax,28(%edi) |
| ++ movl %edx,%esi |
| ++ |
| ++ subl $8,%ecx |
| ++ leal 32(%ebx),%ebx |
| ++ leal 32(%edi),%edi |
| ++ jnz L001maw_loop |
| ++L000maw_finish: |
| ++ movl 32(%esp),%ecx |
| ++ andl $7,%ecx |
| ++ jnz L002maw_finish2 |
| ++ jmp L003maw_end |
| ++L002maw_finish2: |
| ++ # Tail Round 0 |
| ++ movl (%ebx),%eax |
| ++ mull %ebp |
| ++ addl %esi,%eax |
| ++ adcl $0,%edx |
| ++ addl (%edi),%eax |
| ++ adcl $0,%edx |
| ++ decl %ecx |
| ++ movl %eax,(%edi) |
| ++ movl %edx,%esi |
| ++ jz L003maw_end |
| ++ # Tail Round 1 |
| ++ movl 4(%ebx),%eax |
| ++ mull %ebp |
| ++ addl %esi,%eax |
| ++ adcl $0,%edx |
| ++ addl 4(%edi),%eax |
| ++ adcl $0,%edx |
| ++ decl %ecx |
| ++ movl %eax,4(%edi) |
| ++ movl %edx,%esi |
| ++ jz L003maw_end |
| ++ # Tail Round 2 |
| ++ movl 8(%ebx),%eax |
| ++ mull %ebp |
| ++ addl %esi,%eax |
| ++ adcl $0,%edx |
| ++ addl 8(%edi),%eax |
| ++ adcl $0,%edx |
| ++ decl %ecx |
| ++ movl %eax,8(%edi) |
| ++ movl %edx,%esi |
| ++ jz L003maw_end |
| ++ # Tail Round 3 |
| ++ movl 12(%ebx),%eax |
| ++ mull %ebp |
| ++ addl %esi,%eax |
| ++ adcl $0,%edx |
| ++ addl 12(%edi),%eax |
| ++ adcl $0,%edx |
| ++ decl %ecx |
| ++ movl %eax,12(%edi) |
| ++ movl %edx,%esi |
| ++ jz L003maw_end |
| ++ # Tail Round 4 |
| ++ movl 16(%ebx),%eax |
| ++ mull %ebp |
| ++ addl %esi,%eax |
| ++ adcl $0,%edx |
| ++ addl 16(%edi),%eax |
| ++ adcl $0,%edx |
| ++ decl %ecx |
| ++ movl %eax,16(%edi) |
| ++ movl %edx,%esi |
| ++ jz L003maw_end |
| ++ # Tail Round 5 |
| ++ movl 20(%ebx),%eax |
| ++ mull %ebp |
| ++ addl %esi,%eax |
| ++ adcl $0,%edx |
| ++ addl 20(%edi),%eax |
| ++ adcl $0,%edx |
| ++ decl %ecx |
| ++ movl %eax,20(%edi) |
| ++ movl %edx,%esi |
| ++ jz L003maw_end |
| ++ # Tail Round 6 |
| ++ movl 24(%ebx),%eax |
| ++ mull %ebp |
| ++ addl %esi,%eax |
| ++ adcl $0,%edx |
| ++ addl 24(%edi),%eax |
| ++ adcl $0,%edx |
| ++ movl %eax,24(%edi) |
| ++ movl %edx,%esi |
| ++L003maw_end: |
| ++ movl %esi,%eax |
| ++ popl %ecx |
| ++ popl %edi |
| ++ popl %esi |
| ++ popl %ebx |
| ++ popl %ebp |
| ++ ret |
| ++.globl _bn_mul_words |
| ++.align 4 |
| ++_bn_mul_words: |
| ++L_bn_mul_words_begin: |
| ++ pushl %ebp |
| ++ pushl %ebx |
| ++ pushl %esi |
| ++ pushl %edi |
| ++ |
| ++ xorl %esi,%esi |
| ++ movl 20(%esp),%edi |
| ++ movl 24(%esp),%ebx |
| ++ movl 28(%esp),%ebp |
| ++ movl 32(%esp),%ecx |
| ++ andl $4294967288,%ebp |
| ++ jz L004mw_finish |
| ++L005mw_loop: |
| ++ # Round 0 |
| ++ movl (%ebx),%eax |
| ++ mull %ecx |
| ++ addl %esi,%eax |
| ++ adcl $0,%edx |
| ++ movl %eax,(%edi) |
| ++ movl %edx,%esi |
| ++ # Round 4 |
| ++ movl 4(%ebx),%eax |
| ++ mull %ecx |
| ++ addl %esi,%eax |
| ++ adcl $0,%edx |
| ++ movl %eax,4(%edi) |
| ++ movl %edx,%esi |
| ++ # Round 8 |
| ++ movl 8(%ebx),%eax |
| ++ mull %ecx |
| ++ addl %esi,%eax |
| ++ adcl $0,%edx |
| ++ movl %eax,8(%edi) |
| ++ movl %edx,%esi |
| ++ # Round 12 |
| ++ movl 12(%ebx),%eax |
| ++ mull %ecx |
| ++ addl %esi,%eax |
| ++ adcl $0,%edx |
| ++ movl %eax,12(%edi) |
| ++ movl %edx,%esi |
| ++ # Round 16 |
| ++ movl 16(%ebx),%eax |
| ++ mull %ecx |
| ++ addl %esi,%eax |
| ++ adcl $0,%edx |
| ++ movl %eax,16(%edi) |
| ++ movl %edx,%esi |
| ++ # Round 20 |
| ++ movl 20(%ebx),%eax |
| ++ mull %ecx |
| ++ addl %esi,%eax |
| ++ adcl $0,%edx |
| ++ movl %eax,20(%edi) |
| ++ movl %edx,%esi |
| ++ # Round 24 |
| ++ movl 24(%ebx),%eax |
| ++ mull %ecx |
| ++ addl %esi,%eax |
| ++ adcl $0,%edx |
| ++ movl %eax,24(%edi) |
| ++ movl %edx,%esi |
| ++ # Round 28 |
| ++ movl 28(%ebx),%eax |
| ++ mull %ecx |
| ++ addl %esi,%eax |
| ++ adcl $0,%edx |
| ++ movl %eax,28(%edi) |
| ++ movl %edx,%esi |
| ++ |
| ++ addl $32,%ebx |
| ++ addl $32,%edi |
| ++ subl $8,%ebp |
| ++ jz L004mw_finish |
| ++ jmp L005mw_loop |
| ++L004mw_finish: |
| ++ movl 28(%esp),%ebp |
| ++ andl $7,%ebp |
| ++ jnz L006mw_finish2 |
| ++ jmp L007mw_end |
| ++L006mw_finish2: |
| ++ # Tail Round 0 |
| ++ movl (%ebx),%eax |
| ++ mull %ecx |
| ++ addl %esi,%eax |
| ++ adcl $0,%edx |
| ++ movl %eax,(%edi) |
| ++ movl %edx,%esi |
| ++ decl %ebp |
| ++ jz L007mw_end |
| ++ # Tail Round 1 |
| ++ movl 4(%ebx),%eax |
| ++ mull %ecx |
| ++ addl %esi,%eax |
| ++ adcl $0,%edx |
| ++ movl %eax,4(%edi) |
| ++ movl %edx,%esi |
| ++ decl %ebp |
| ++ jz L007mw_end |
| ++ # Tail Round 2 |
| ++ movl 8(%ebx),%eax |
| ++ mull %ecx |
| ++ addl %esi,%eax |
| ++ adcl $0,%edx |
| ++ movl %eax,8(%edi) |
| ++ movl %edx,%esi |
| ++ decl %ebp |
| ++ jz L007mw_end |
| ++ # Tail Round 3 |
| ++ movl 12(%ebx),%eax |
| ++ mull %ecx |
| ++ addl %esi,%eax |
| ++ adcl $0,%edx |
| ++ movl %eax,12(%edi) |
| ++ movl %edx,%esi |
| ++ decl %ebp |
| ++ jz L007mw_end |
| ++ # Tail Round 4 |
| ++ movl 16(%ebx),%eax |
| ++ mull %ecx |
| ++ addl %esi,%eax |
| ++ adcl $0,%edx |
| ++ movl %eax,16(%edi) |
| ++ movl %edx,%esi |
| ++ decl %ebp |
| ++ jz L007mw_end |
| ++ # Tail Round 5 |
| ++ movl 20(%ebx),%eax |
| ++ mull %ecx |
| ++ addl %esi,%eax |
| ++ adcl $0,%edx |
| ++ movl %eax,20(%edi) |
| ++ movl %edx,%esi |
| ++ decl %ebp |
| ++ jz L007mw_end |
| ++ # Tail Round 6 |
| ++ movl 24(%ebx),%eax |
| ++ mull %ecx |
| ++ addl %esi,%eax |
| ++ adcl $0,%edx |
| ++ movl %eax,24(%edi) |
| ++ movl %edx,%esi |
| ++L007mw_end: |
| ++ movl %esi,%eax |
| ++ popl %edi |
| ++ popl %esi |
| ++ popl %ebx |
| ++ popl %ebp |
| ++ ret |
| ++.globl _bn_sqr_words |
| ++.align 4 |
| ++_bn_sqr_words: |
| ++L_bn_sqr_words_begin: |
| ++ pushl %ebp |
| ++ pushl %ebx |
| ++ pushl %esi |
| ++ pushl %edi |
| ++ |
| ++ movl 20(%esp),%esi |
| ++ movl 24(%esp),%edi |
| ++ movl 28(%esp),%ebx |
| ++ andl $4294967288,%ebx |
| ++ jz L008sw_finish |
| ++L009sw_loop: |
| ++ # Round 0 |
| ++ movl (%edi),%eax |
| ++ mull %eax |
| ++ movl %eax,(%esi) |
| ++ movl %edx,4(%esi) |
| ++ # Round 4 |
| ++ movl 4(%edi),%eax |
| ++ mull %eax |
| ++ movl %eax,8(%esi) |
| ++ movl %edx,12(%esi) |
| ++ # Round 8 |
| ++ movl 8(%edi),%eax |
| ++ mull %eax |
| ++ movl %eax,16(%esi) |
| ++ movl %edx,20(%esi) |
| ++ # Round 12 |
| ++ movl 12(%edi),%eax |
| ++ mull %eax |
| ++ movl %eax,24(%esi) |
| ++ movl %edx,28(%esi) |
| ++ # Round 16 |
| ++ movl 16(%edi),%eax |
| ++ mull %eax |
| ++ movl %eax,32(%esi) |
| ++ movl %edx,36(%esi) |
| ++ # Round 20 |
| ++ movl 20(%edi),%eax |
| ++ mull %eax |
| ++ movl %eax,40(%esi) |
| ++ movl %edx,44(%esi) |
| ++ # Round 24 |
| ++ movl 24(%edi),%eax |
| ++ mull %eax |
| ++ movl %eax,48(%esi) |
| ++ movl %edx,52(%esi) |
| ++ # Round 28 |
| ++ movl 28(%edi),%eax |
| ++ mull %eax |
| ++ movl %eax,56(%esi) |
| ++ movl %edx,60(%esi) |
| ++ |
| ++ addl $32,%edi |
| ++ addl $64,%esi |
| ++ subl $8,%ebx |
| ++ jnz L009sw_loop |
| ++L008sw_finish: |
| ++ movl 28(%esp),%ebx |
| ++ andl $7,%ebx |
| ++ jz L010sw_end |
| ++ # Tail Round 0 |
| ++ movl (%edi),%eax |
| ++ mull %eax |
| ++ movl %eax,(%esi) |
| ++ decl %ebx |
| ++ movl %edx,4(%esi) |
| ++ jz L010sw_end |
| ++ # Tail Round 1 |
| ++ movl 4(%edi),%eax |
| ++ mull %eax |
| ++ movl %eax,8(%esi) |
| ++ decl %ebx |
| ++ movl %edx,12(%esi) |
| ++ jz L010sw_end |
| ++ # Tail Round 2 |
| ++ movl 8(%edi),%eax |
| ++ mull %eax |
| ++ movl %eax,16(%esi) |
| ++ decl %ebx |
| ++ movl %edx,20(%esi) |
| ++ jz L010sw_end |
| ++ # Tail Round 3 |
| ++ movl 12(%edi),%eax |
| ++ mull %eax |
| ++ movl %eax,24(%esi) |
| ++ decl %ebx |
| ++ movl %edx,28(%esi) |
| ++ jz L010sw_end |
| ++ # Tail Round 4 |
| ++ movl 16(%edi),%eax |
| ++ mull %eax |
| ++ movl %eax,32(%esi) |
| ++ decl %ebx |
| ++ movl %edx,36(%esi) |
| ++ jz L010sw_end |
| ++ # Tail Round 5 |
| ++ movl 20(%edi),%eax |
| ++ mull %eax |
| ++ movl %eax,40(%esi) |
| ++ decl %ebx |
| ++ movl %edx,44(%esi) |
| ++ jz L010sw_end |
| ++ # Tail Round 6 |
| ++ movl 24(%edi),%eax |
| ++ mull %eax |
| ++ movl %eax,48(%esi) |
| ++ movl %edx,52(%esi) |
| ++L010sw_end: |
| ++ popl %edi |
| ++ popl %esi |
| ++ popl %ebx |
| ++ popl %ebp |
| ++ ret |
| ++.globl _bn_div_words |
| ++.align 4 |
| ++_bn_div_words: |
| ++L_bn_div_words_begin: |
| ++ movl 4(%esp),%edx |
| ++ movl 8(%esp),%eax |
| ++ movl 12(%esp),%ecx |
| ++ divl %ecx |
| ++ ret |
| ++.globl _bn_add_words |
| ++.align 4 |
| ++_bn_add_words: |
| ++L_bn_add_words_begin: |
| ++ pushl %ebp |
| ++ pushl %ebx |
| ++ pushl %esi |
| ++ pushl %edi |
| ++ |
| ++ movl 20(%esp),%ebx |
| ++ movl 24(%esp),%esi |
| ++ movl 28(%esp),%edi |
| ++ movl 32(%esp),%ebp |
| ++ xorl %eax,%eax |
| ++ andl $4294967288,%ebp |
| ++ jz L011aw_finish |
| ++L012aw_loop: |
| ++ # Round 0 |
| ++ movl (%esi),%ecx |
| ++ movl (%edi),%edx |
| ++ addl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ addl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ movl %ecx,(%ebx) |
| ++ # Round 1 |
| ++ movl 4(%esi),%ecx |
| ++ movl 4(%edi),%edx |
| ++ addl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ addl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ movl %ecx,4(%ebx) |
| ++ # Round 2 |
| ++ movl 8(%esi),%ecx |
| ++ movl 8(%edi),%edx |
| ++ addl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ addl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ movl %ecx,8(%ebx) |
| ++ # Round 3 |
| ++ movl 12(%esi),%ecx |
| ++ movl 12(%edi),%edx |
| ++ addl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ addl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ movl %ecx,12(%ebx) |
| ++ # Round 4 |
| ++ movl 16(%esi),%ecx |
| ++ movl 16(%edi),%edx |
| ++ addl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ addl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ movl %ecx,16(%ebx) |
| ++ # Round 5 |
| ++ movl 20(%esi),%ecx |
| ++ movl 20(%edi),%edx |
| ++ addl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ addl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ movl %ecx,20(%ebx) |
| ++ # Round 6 |
| ++ movl 24(%esi),%ecx |
| ++ movl 24(%edi),%edx |
| ++ addl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ addl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ movl %ecx,24(%ebx) |
| ++ # Round 7 |
| ++ movl 28(%esi),%ecx |
| ++ movl 28(%edi),%edx |
| ++ addl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ addl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ movl %ecx,28(%ebx) |
| ++ |
| ++ addl $32,%esi |
| ++ addl $32,%edi |
| ++ addl $32,%ebx |
| ++ subl $8,%ebp |
| ++ jnz L012aw_loop |
| ++L011aw_finish: |
| ++ movl 32(%esp),%ebp |
| ++ andl $7,%ebp |
| ++ jz L013aw_end |
| ++ # Tail Round 0 |
| ++ movl (%esi),%ecx |
| ++ movl (%edi),%edx |
| ++ addl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ addl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ decl %ebp |
| ++ movl %ecx,(%ebx) |
| ++ jz L013aw_end |
| ++ # Tail Round 1 |
| ++ movl 4(%esi),%ecx |
| ++ movl 4(%edi),%edx |
| ++ addl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ addl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ decl %ebp |
| ++ movl %ecx,4(%ebx) |
| ++ jz L013aw_end |
| ++ # Tail Round 2 |
| ++ movl 8(%esi),%ecx |
| ++ movl 8(%edi),%edx |
| ++ addl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ addl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ decl %ebp |
| ++ movl %ecx,8(%ebx) |
| ++ jz L013aw_end |
| ++ # Tail Round 3 |
| ++ movl 12(%esi),%ecx |
| ++ movl 12(%edi),%edx |
| ++ addl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ addl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ decl %ebp |
| ++ movl %ecx,12(%ebx) |
| ++ jz L013aw_end |
| ++ # Tail Round 4 |
| ++ movl 16(%esi),%ecx |
| ++ movl 16(%edi),%edx |
| ++ addl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ addl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ decl %ebp |
| ++ movl %ecx,16(%ebx) |
| ++ jz L013aw_end |
| ++ # Tail Round 5 |
| ++ movl 20(%esi),%ecx |
| ++ movl 20(%edi),%edx |
| ++ addl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ addl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ decl %ebp |
| ++ movl %ecx,20(%ebx) |
| ++ jz L013aw_end |
| ++ # Tail Round 6 |
| ++ movl 24(%esi),%ecx |
| ++ movl 24(%edi),%edx |
| ++ addl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ addl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ movl %ecx,24(%ebx) |
| ++L013aw_end: |
| ++ popl %edi |
| ++ popl %esi |
| ++ popl %ebx |
| ++ popl %ebp |
| ++ ret |
| ++.globl _bn_sub_words |
| ++.align 4 |
| ++_bn_sub_words: |
| ++L_bn_sub_words_begin: |
| ++ pushl %ebp |
| ++ pushl %ebx |
| ++ pushl %esi |
| ++ pushl %edi |
| ++ |
| ++ movl 20(%esp),%ebx |
| ++ movl 24(%esp),%esi |
| ++ movl 28(%esp),%edi |
| ++ movl 32(%esp),%ebp |
| ++ xorl %eax,%eax |
| ++ andl $4294967288,%ebp |
| ++ jz L014aw_finish |
| ++L015aw_loop: |
| ++ # Round 0 |
| ++ movl (%esi),%ecx |
| ++ movl (%edi),%edx |
| ++ subl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ subl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ movl %ecx,(%ebx) |
| ++ # Round 1 |
| ++ movl 4(%esi),%ecx |
| ++ movl 4(%edi),%edx |
| ++ subl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ subl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ movl %ecx,4(%ebx) |
| ++ # Round 2 |
| ++ movl 8(%esi),%ecx |
| ++ movl 8(%edi),%edx |
| ++ subl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ subl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ movl %ecx,8(%ebx) |
| ++ # Round 3 |
| ++ movl 12(%esi),%ecx |
| ++ movl 12(%edi),%edx |
| ++ subl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ subl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ movl %ecx,12(%ebx) |
| ++ # Round 4 |
| ++ movl 16(%esi),%ecx |
| ++ movl 16(%edi),%edx |
| ++ subl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ subl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ movl %ecx,16(%ebx) |
| ++ # Round 5 |
| ++ movl 20(%esi),%ecx |
| ++ movl 20(%edi),%edx |
| ++ subl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ subl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ movl %ecx,20(%ebx) |
| ++ # Round 6 |
| ++ movl 24(%esi),%ecx |
| ++ movl 24(%edi),%edx |
| ++ subl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ subl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ movl %ecx,24(%ebx) |
| ++ # Round 7 |
| ++ movl 28(%esi),%ecx |
| ++ movl 28(%edi),%edx |
| ++ subl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ subl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ movl %ecx,28(%ebx) |
| ++ |
| ++ addl $32,%esi |
| ++ addl $32,%edi |
| ++ addl $32,%ebx |
| ++ subl $8,%ebp |
| ++ jnz L015aw_loop |
| ++L014aw_finish: |
| ++ movl 32(%esp),%ebp |
| ++ andl $7,%ebp |
| ++ jz L016aw_end |
| ++ # Tail Round 0 |
| ++ movl (%esi),%ecx |
| ++ movl (%edi),%edx |
| ++ subl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ subl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ decl %ebp |
| ++ movl %ecx,(%ebx) |
| ++ jz L016aw_end |
| ++ # Tail Round 1 |
| ++ movl 4(%esi),%ecx |
| ++ movl 4(%edi),%edx |
| ++ subl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ subl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ decl %ebp |
| ++ movl %ecx,4(%ebx) |
| ++ jz L016aw_end |
| ++ # Tail Round 2 |
| ++ movl 8(%esi),%ecx |
| ++ movl 8(%edi),%edx |
| ++ subl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ subl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ decl %ebp |
| ++ movl %ecx,8(%ebx) |
| ++ jz L016aw_end |
| ++ # Tail Round 3 |
| ++ movl 12(%esi),%ecx |
| ++ movl 12(%edi),%edx |
| ++ subl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ subl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ decl %ebp |
| ++ movl %ecx,12(%ebx) |
| ++ jz L016aw_end |
| ++ # Tail Round 4 |
| ++ movl 16(%esi),%ecx |
| ++ movl 16(%edi),%edx |
| ++ subl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ subl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ decl %ebp |
| ++ movl %ecx,16(%ebx) |
| ++ jz L016aw_end |
| ++ # Tail Round 5 |
| ++ movl 20(%esi),%ecx |
| ++ movl 20(%edi),%edx |
| ++ subl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ subl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ decl %ebp |
| ++ movl %ecx,20(%ebx) |
| ++ jz L016aw_end |
| ++ # Tail Round 6 |
| ++ movl 24(%esi),%ecx |
| ++ movl 24(%edi),%edx |
| ++ subl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ subl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ movl %ecx,24(%ebx) |
| ++L016aw_end: |
| ++ popl %edi |
| ++ popl %esi |
| ++ popl %ebx |
| ++ popl %ebp |
| ++ ret |
| ++.globl _bn_sub_part_words |
| ++.align 4 |
| ++_bn_sub_part_words: |
| ++L_bn_sub_part_words_begin: |
| ++ pushl %ebp |
| ++ pushl %ebx |
| ++ pushl %esi |
| ++ pushl %edi |
| ++ |
| ++ movl 20(%esp),%ebx |
| ++ movl 24(%esp),%esi |
| ++ movl 28(%esp),%edi |
| ++ movl 32(%esp),%ebp |
| ++ xorl %eax,%eax |
| ++ andl $4294967288,%ebp |
| ++ jz L017aw_finish |
| ++L018aw_loop: |
| ++ # Round 0 |
| ++ movl (%esi),%ecx |
| ++ movl (%edi),%edx |
| ++ subl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ subl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ movl %ecx,(%ebx) |
| ++ # Round 1 |
| ++ movl 4(%esi),%ecx |
| ++ movl 4(%edi),%edx |
| ++ subl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ subl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ movl %ecx,4(%ebx) |
| ++ # Round 2 |
| ++ movl 8(%esi),%ecx |
| ++ movl 8(%edi),%edx |
| ++ subl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ subl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ movl %ecx,8(%ebx) |
| ++ # Round 3 |
| ++ movl 12(%esi),%ecx |
| ++ movl 12(%edi),%edx |
| ++ subl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ subl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ movl %ecx,12(%ebx) |
| ++ # Round 4 |
| ++ movl 16(%esi),%ecx |
| ++ movl 16(%edi),%edx |
| ++ subl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ subl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ movl %ecx,16(%ebx) |
| ++ # Round 5 |
| ++ movl 20(%esi),%ecx |
| ++ movl 20(%edi),%edx |
| ++ subl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ subl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ movl %ecx,20(%ebx) |
| ++ # Round 6 |
| ++ movl 24(%esi),%ecx |
| ++ movl 24(%edi),%edx |
| ++ subl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ subl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ movl %ecx,24(%ebx) |
| ++ # Round 7 |
| ++ movl 28(%esi),%ecx |
| ++ movl 28(%edi),%edx |
| ++ subl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ subl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ movl %ecx,28(%ebx) |
| ++ |
| ++ addl $32,%esi |
| ++ addl $32,%edi |
| ++ addl $32,%ebx |
| ++ subl $8,%ebp |
| ++ jnz L018aw_loop |
| ++L017aw_finish: |
| ++ movl 32(%esp),%ebp |
| ++ andl $7,%ebp |
| ++ jz L019aw_end |
| ++ # Tail Round 0 |
| ++ movl (%esi),%ecx |
| ++ movl (%edi),%edx |
| ++ subl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ subl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ movl %ecx,(%ebx) |
| ++ addl $4,%esi |
| ++ addl $4,%edi |
| ++ addl $4,%ebx |
| ++ decl %ebp |
| ++ jz L019aw_end |
| ++ # Tail Round 1 |
| ++ movl (%esi),%ecx |
| ++ movl (%edi),%edx |
| ++ subl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ subl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ movl %ecx,(%ebx) |
| ++ addl $4,%esi |
| ++ addl $4,%edi |
| ++ addl $4,%ebx |
| ++ decl %ebp |
| ++ jz L019aw_end |
| ++ # Tail Round 2 |
| ++ movl (%esi),%ecx |
| ++ movl (%edi),%edx |
| ++ subl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ subl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ movl %ecx,(%ebx) |
| ++ addl $4,%esi |
| ++ addl $4,%edi |
| ++ addl $4,%ebx |
| ++ decl %ebp |
| ++ jz L019aw_end |
| ++ # Tail Round 3 |
| ++ movl (%esi),%ecx |
| ++ movl (%edi),%edx |
| ++ subl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ subl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ movl %ecx,(%ebx) |
| ++ addl $4,%esi |
| ++ addl $4,%edi |
| ++ addl $4,%ebx |
| ++ decl %ebp |
| ++ jz L019aw_end |
| ++ # Tail Round 4 |
| ++ movl (%esi),%ecx |
| ++ movl (%edi),%edx |
| ++ subl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ subl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ movl %ecx,(%ebx) |
| ++ addl $4,%esi |
| ++ addl $4,%edi |
| ++ addl $4,%ebx |
| ++ decl %ebp |
| ++ jz L019aw_end |
| ++ # Tail Round 5 |
| ++ movl (%esi),%ecx |
| ++ movl (%edi),%edx |
| ++ subl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ subl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ movl %ecx,(%ebx) |
| ++ addl $4,%esi |
| ++ addl $4,%edi |
| ++ addl $4,%ebx |
| ++ decl %ebp |
| ++ jz L019aw_end |
| ++ # Tail Round 6 |
| ++ movl (%esi),%ecx |
| ++ movl (%edi),%edx |
| ++ subl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ subl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ movl %ecx,(%ebx) |
| ++ addl $4,%esi |
| ++ addl $4,%edi |
| ++ addl $4,%ebx |
| ++L019aw_end: |
| ++ cmpl $0,36(%esp) |
| ++ je L020pw_end |
| ++ movl 36(%esp),%ebp |
| ++ cmpl $0,%ebp |
| ++ je L020pw_end |
| ++ jge L021pw_pos |
| ++ # pw_neg |
| ++ movl $0,%edx |
| ++ subl %ebp,%edx |
| ++ movl %edx,%ebp |
| ++ andl $4294967288,%ebp |
| ++ jz L022pw_neg_finish |
| ++L023pw_neg_loop: |
| ++ # dl<0 Round 0 |
| ++ movl $0,%ecx |
| ++ movl (%edi),%edx |
| ++ subl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ subl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ movl %ecx,(%ebx) |
| ++ # dl<0 Round 1 |
| ++ movl $0,%ecx |
| ++ movl 4(%edi),%edx |
| ++ subl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ subl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ movl %ecx,4(%ebx) |
| ++ # dl<0 Round 2 |
| ++ movl $0,%ecx |
| ++ movl 8(%edi),%edx |
| ++ subl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ subl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ movl %ecx,8(%ebx) |
| ++ # dl<0 Round 3 |
| ++ movl $0,%ecx |
| ++ movl 12(%edi),%edx |
| ++ subl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ subl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ movl %ecx,12(%ebx) |
| ++ # dl<0 Round 4 |
| ++ movl $0,%ecx |
| ++ movl 16(%edi),%edx |
| ++ subl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ subl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ movl %ecx,16(%ebx) |
| ++ # dl<0 Round 5 |
| ++ movl $0,%ecx |
| ++ movl 20(%edi),%edx |
| ++ subl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ subl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ movl %ecx,20(%ebx) |
| ++ # dl<0 Round 6 |
| ++ movl $0,%ecx |
| ++ movl 24(%edi),%edx |
| ++ subl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ subl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ movl %ecx,24(%ebx) |
| ++ # dl<0 Round 7 |
| ++ movl $0,%ecx |
| ++ movl 28(%edi),%edx |
| ++ subl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ subl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ movl %ecx,28(%ebx) |
| ++ |
| ++ addl $32,%edi |
| ++ addl $32,%ebx |
| ++ subl $8,%ebp |
| ++ jnz L023pw_neg_loop |
| ++L022pw_neg_finish: |
| ++ movl 36(%esp),%edx |
| ++ movl $0,%ebp |
| ++ subl %edx,%ebp |
| ++ andl $7,%ebp |
| ++ jz L020pw_end |
| ++ # dl<0 Tail Round 0 |
| ++ movl $0,%ecx |
| ++ movl (%edi),%edx |
| ++ subl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ subl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ decl %ebp |
| ++ movl %ecx,(%ebx) |
| ++ jz L020pw_end |
| ++ # dl<0 Tail Round 1 |
| ++ movl $0,%ecx |
| ++ movl 4(%edi),%edx |
| ++ subl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ subl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ decl %ebp |
| ++ movl %ecx,4(%ebx) |
| ++ jz L020pw_end |
| ++ # dl<0 Tail Round 2 |
| ++ movl $0,%ecx |
| ++ movl 8(%edi),%edx |
| ++ subl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ subl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ decl %ebp |
| ++ movl %ecx,8(%ebx) |
| ++ jz L020pw_end |
| ++ # dl<0 Tail Round 3 |
| ++ movl $0,%ecx |
| ++ movl 12(%edi),%edx |
| ++ subl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ subl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ decl %ebp |
| ++ movl %ecx,12(%ebx) |
| ++ jz L020pw_end |
| ++ # dl<0 Tail Round 4 |
| ++ movl $0,%ecx |
| ++ movl 16(%edi),%edx |
| ++ subl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ subl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ decl %ebp |
| ++ movl %ecx,16(%ebx) |
| ++ jz L020pw_end |
| ++ # dl<0 Tail Round 5 |
| ++ movl $0,%ecx |
| ++ movl 20(%edi),%edx |
| ++ subl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ subl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ decl %ebp |
| ++ movl %ecx,20(%ebx) |
| ++ jz L020pw_end |
| ++ # dl<0 Tail Round 6 |
| ++ movl $0,%ecx |
| ++ movl 24(%edi),%edx |
| ++ subl %eax,%ecx |
| ++ movl $0,%eax |
| ++ adcl %eax,%eax |
| ++ subl %edx,%ecx |
| ++ adcl $0,%eax |
| ++ movl %ecx,24(%ebx) |
| ++ jmp L020pw_end |
| ++L021pw_pos: |
| ++ andl $4294967288,%ebp |
| ++ jz L024pw_pos_finish |
| ++L025pw_pos_loop: |
| ++ # dl>0 Round 0 |
| ++ movl (%esi),%ecx |
| ++ subl %eax,%ecx |
| ++ movl %ecx,(%ebx) |
| ++ jnc L026pw_nc0 |
| ++ # dl>0 Round 1 |
| ++ movl 4(%esi),%ecx |
| ++ subl %eax,%ecx |
| ++ movl %ecx,4(%ebx) |
| ++ jnc L027pw_nc1 |
| ++ # dl>0 Round 2 |
| ++ movl 8(%esi),%ecx |
| ++ subl %eax,%ecx |
| ++ movl %ecx,8(%ebx) |
| ++ jnc L028pw_nc2 |
| ++ # dl>0 Round 3 |
| ++ movl 12(%esi),%ecx |
| ++ subl %eax,%ecx |
| ++ movl %ecx,12(%ebx) |
| ++ jnc L029pw_nc3 |
| ++ # dl>0 Round 4 |
| ++ movl 16(%esi),%ecx |
| ++ subl %eax,%ecx |
| ++ movl %ecx,16(%ebx) |
| ++ jnc L030pw_nc4 |
| ++ # dl>0 Round 5 |
| ++ movl 20(%esi),%ecx |
| ++ subl %eax,%ecx |
| ++ movl %ecx,20(%ebx) |
| ++ jnc L031pw_nc5 |
| ++ # dl>0 Round 6 |
| ++ movl 24(%esi),%ecx |
| ++ subl %eax,%ecx |
| ++ movl %ecx,24(%ebx) |
| ++ jnc L032pw_nc6 |
| ++ # dl>0 Round 7 |
| ++ movl 28(%esi),%ecx |
| ++ subl %eax,%ecx |
| ++ movl %ecx,28(%ebx) |
| ++ jnc L033pw_nc7 |
| ++ |
| ++ addl $32,%esi |
| ++ addl $32,%ebx |
| ++ subl $8,%ebp |
| ++ jnz L025pw_pos_loop |
| ++L024pw_pos_finish: |
| ++ movl 36(%esp),%ebp |
| ++ andl $7,%ebp |
| ++ jz L020pw_end |
| ++ # dl>0 Tail Round 0 |
| ++ movl (%esi),%ecx |
| ++ subl %eax,%ecx |
| ++ movl %ecx,(%ebx) |
| ++ jnc L034pw_tail_nc0 |
| ++ decl %ebp |
| ++ jz L020pw_end |
| ++ # dl>0 Tail Round 1 |
| ++ movl 4(%esi),%ecx |
| ++ subl %eax,%ecx |
| ++ movl %ecx,4(%ebx) |
| ++ jnc L035pw_tail_nc1 |
| ++ decl %ebp |
| ++ jz L020pw_end |
| ++ # dl>0 Tail Round 2 |
| ++ movl 8(%esi),%ecx |
| ++ subl %eax,%ecx |
| ++ movl %ecx,8(%ebx) |
| ++ jnc L036pw_tail_nc2 |
| ++ decl %ebp |
| ++ jz L020pw_end |
| ++ # dl>0 Tail Round 3 |
| ++ movl 12(%esi),%ecx |
| ++ subl %eax,%ecx |
| ++ movl %ecx,12(%ebx) |
| ++ jnc L037pw_tail_nc3 |
| ++ decl %ebp |
| ++ jz L020pw_end |
| ++ # dl>0 Tail Round 4 |
| ++ movl 16(%esi),%ecx |
| ++ subl %eax,%ecx |
| ++ movl %ecx,16(%ebx) |
| ++ jnc L038pw_tail_nc4 |
| ++ decl %ebp |
| ++ jz L020pw_end |
| ++ # dl>0 Tail Round 5 |
| ++ movl 20(%esi),%ecx |
| ++ subl %eax,%ecx |
| ++ movl %ecx,20(%ebx) |
| ++ jnc L039pw_tail_nc5 |
| ++ decl %ebp |
| ++ jz L020pw_end |
| ++ # dl>0 Tail Round 6 |
| ++ movl 24(%esi),%ecx |
| ++ subl %eax,%ecx |
| ++ movl %ecx,24(%ebx) |
| ++ jnc L040pw_tail_nc6 |
| ++ movl $1,%eax |
| ++ jmp L020pw_end |
| ++L041pw_nc_loop: |
| ++ movl (%esi),%ecx |
| ++ movl %ecx,(%ebx) |
| ++L026pw_nc0: |
| ++ movl 4(%esi),%ecx |
| ++ movl %ecx,4(%ebx) |
| ++L027pw_nc1: |
| ++ movl 8(%esi),%ecx |
| ++ movl %ecx,8(%ebx) |
| ++L028pw_nc2: |
| ++ movl 12(%esi),%ecx |
| ++ movl %ecx,12(%ebx) |
| ++L029pw_nc3: |
| ++ movl 16(%esi),%ecx |
| ++ movl %ecx,16(%ebx) |
| ++L030pw_nc4: |
| ++ movl 20(%esi),%ecx |
| ++ movl %ecx,20(%ebx) |
| ++L031pw_nc5: |
| ++ movl 24(%esi),%ecx |
| ++ movl %ecx,24(%ebx) |
| ++L032pw_nc6: |
| ++ movl 28(%esi),%ecx |
| ++ movl %ecx,28(%ebx) |
| ++L033pw_nc7: |
| ++ |
| ++ addl $32,%esi |
| ++ addl $32,%ebx |
| ++ subl $8,%ebp |
| ++ jnz L041pw_nc_loop |
| ++ movl 36(%esp),%ebp |
| ++ andl $7,%ebp |
| ++ jz L042pw_nc_end |
| ++ movl (%esi),%ecx |
| ++ movl %ecx,(%ebx) |
| ++L034pw_tail_nc0: |
| ++ decl %ebp |
| ++ jz L042pw_nc_end |
| ++ movl 4(%esi),%ecx |
| ++ movl %ecx,4(%ebx) |
| ++L035pw_tail_nc1: |
| ++ decl %ebp |
| ++ jz L042pw_nc_end |
| ++ movl 8(%esi),%ecx |
| ++ movl %ecx,8(%ebx) |
| ++L036pw_tail_nc2: |
| ++ decl %ebp |
| ++ jz L042pw_nc_end |
| ++ movl 12(%esi),%ecx |
| ++ movl %ecx,12(%ebx) |
| ++L037pw_tail_nc3: |
| ++ decl %ebp |
| ++ jz L042pw_nc_end |
| ++ movl 16(%esi),%ecx |
| ++ movl %ecx,16(%ebx) |
| ++L038pw_tail_nc4: |
| ++ decl %ebp |
| ++ jz L042pw_nc_end |
| ++ movl 20(%esi),%ecx |
| ++ movl %ecx,20(%ebx) |
| ++L039pw_tail_nc5: |
| ++ decl %ebp |
| ++ jz L042pw_nc_end |
| ++ movl 24(%esi),%ecx |
| ++ movl %ecx,24(%ebx) |
| ++L040pw_tail_nc6: |
| ++L042pw_nc_end: |
| ++ movl $0,%eax |
| ++L020pw_end: |
| ++ popl %edi |
| ++ popl %esi |
| ++ popl %ebx |
| ++ popl %ebp |
| ++ ret |
| +diff --git a/crypto/bn/asm/co-586-mac.S b/crypto/bn/asm/co-586-mac.S |
| +new file mode 100644 |
| +index 0000000..d82fdcb |
| +--- /dev/null |
| ++++ b/crypto/bn/asm/co-586-mac.S |
| +@@ -0,0 +1,1246 @@ |
| ++.file "crypto/bn/asm/co-586.s" |
| ++.text |
| ++.globl _bn_mul_comba8 |
| ++.align 4 |
| ++_bn_mul_comba8: |
| ++L_bn_mul_comba8_begin: |
| ++ pushl %esi |
| ++ movl 12(%esp),%esi |
| ++ pushl %edi |
| ++ movl 20(%esp),%edi |
| ++ pushl %ebp |
| ++ pushl %ebx |
| ++ xorl %ebx,%ebx |
| ++ movl (%esi),%eax |
| ++ xorl %ecx,%ecx |
| ++ movl (%edi),%edx |
| ++ # ################## Calculate word 0 |
| ++ xorl %ebp,%ebp |
| ++ # mul a[0]*b[0] |
| ++ mull %edx |
| ++ addl %eax,%ebx |
| ++ movl 20(%esp),%eax |
| ++ adcl %edx,%ecx |
| ++ movl (%edi),%edx |
| ++ adcl $0,%ebp |
| ++ movl %ebx,(%eax) |
| ++ movl 4(%esi),%eax |
| ++ # saved r[0] |
| ++ # ################## Calculate word 1 |
| ++ xorl %ebx,%ebx |
| ++ # mul a[1]*b[0] |
| ++ mull %edx |
| ++ addl %eax,%ecx |
| ++ movl (%esi),%eax |
| ++ adcl %edx,%ebp |
| ++ movl 4(%edi),%edx |
| ++ adcl $0,%ebx |
| ++ # mul a[0]*b[1] |
| ++ mull %edx |
| ++ addl %eax,%ecx |
| ++ movl 20(%esp),%eax |
| ++ adcl %edx,%ebp |
| ++ movl (%edi),%edx |
| ++ adcl $0,%ebx |
| ++ movl %ecx,4(%eax) |
| ++ movl 8(%esi),%eax |
| ++ # saved r[1] |
| ++ # ################## Calculate word 2 |
| ++ xorl %ecx,%ecx |
| ++ # mul a[2]*b[0] |
| ++ mull %edx |
| ++ addl %eax,%ebp |
| ++ movl 4(%esi),%eax |
| ++ adcl %edx,%ebx |
| ++ movl 4(%edi),%edx |
| ++ adcl $0,%ecx |
| ++ # mul a[1]*b[1] |
| ++ mull %edx |
| ++ addl %eax,%ebp |
| ++ movl (%esi),%eax |
| ++ adcl %edx,%ebx |
| ++ movl 8(%edi),%edx |
| ++ adcl $0,%ecx |
| ++ # mul a[0]*b[2] |
| ++ mull %edx |
| ++ addl %eax,%ebp |
| ++ movl 20(%esp),%eax |
| ++ adcl %edx,%ebx |
| ++ movl (%edi),%edx |
| ++ adcl $0,%ecx |
| ++ movl %ebp,8(%eax) |
| ++ movl 12(%esi),%eax |
| ++ # saved r[2] |
| ++ # ################## Calculate word 3 |
| ++ xorl %ebp,%ebp |
| ++ # mul a[3]*b[0] |
| ++ mull %edx |
| ++ addl %eax,%ebx |
| ++ movl 8(%esi),%eax |
| ++ adcl %edx,%ecx |
| ++ movl 4(%edi),%edx |
| ++ adcl $0,%ebp |
| ++ # mul a[2]*b[1] |
| ++ mull %edx |
| ++ addl %eax,%ebx |
| ++ movl 4(%esi),%eax |
| ++ adcl %edx,%ecx |
| ++ movl 8(%edi),%edx |
| ++ adcl $0,%ebp |
| ++ # mul a[1]*b[2] |
| ++ mull %edx |
| ++ addl %eax,%ebx |
| ++ movl (%esi),%eax |
| ++ adcl %edx,%ecx |
| ++ movl 12(%edi),%edx |
| ++ adcl $0,%ebp |
| ++ # mul a[0]*b[3] |
| ++ mull %edx |
| ++ addl %eax,%ebx |
| ++ movl 20(%esp),%eax |
| ++ adcl %edx,%ecx |
| ++ movl (%edi),%edx |
| ++ adcl $0,%ebp |
| ++ movl %ebx,12(%eax) |
| ++ movl 16(%esi),%eax |
| ++ # saved r[3] |
| ++ # ################## Calculate word 4 |
| ++ xorl %ebx,%ebx |
| ++ # mul a[4]*b[0] |
| ++ mull %edx |
| ++ addl %eax,%ecx |
| ++ movl 12(%esi),%eax |
| ++ adcl %edx,%ebp |
| ++ movl 4(%edi),%edx |
| ++ adcl $0,%ebx |
| ++ # mul a[3]*b[1] |
| ++ mull %edx |
| ++ addl %eax,%ecx |
| ++ movl 8(%esi),%eax |
| ++ adcl %edx,%ebp |
| ++ movl 8(%edi),%edx |
| ++ adcl $0,%ebx |
| ++ # mul a[2]*b[2] |
| ++ mull %edx |
| ++ addl %eax,%ecx |
| ++ movl 4(%esi),%eax |
| ++ adcl %edx,%ebp |
| ++ movl 12(%edi),%edx |
| ++ adcl $0,%ebx |
| ++ # mul a[1]*b[3] |
| ++ mull %edx |
| ++ addl %eax,%ecx |
| ++ movl (%esi),%eax |
| ++ adcl %edx,%ebp |
| ++ movl 16(%edi),%edx |
| ++ adcl $0,%ebx |
| ++ # mul a[0]*b[4] |
| ++ mull %edx |
| ++ addl %eax,%ecx |
| ++ movl 20(%esp),%eax |
| ++ adcl %edx,%ebp |
| ++ movl (%edi),%edx |
| ++ adcl $0,%ebx |
| ++ movl %ecx,16(%eax) |
| ++ movl 20(%esi),%eax |
| ++ # saved r[4] |
| ++ # ################## Calculate word 5 |
| ++ xorl %ecx,%ecx |
| ++ # mul a[5]*b[0] |
| ++ mull %edx |
| ++ addl %eax,%ebp |
| ++ movl 16(%esi),%eax |
| ++ adcl %edx,%ebx |
| ++ movl 4(%edi),%edx |
| ++ adcl $0,%ecx |
| ++ # mul a[4]*b[1] |
| ++ mull %edx |
| ++ addl %eax,%ebp |
| ++ movl 12(%esi),%eax |
| ++ adcl %edx,%ebx |
| ++ movl 8(%edi),%edx |
| ++ adcl $0,%ecx |
| ++ # mul a[3]*b[2] |
| ++ mull %edx |
| ++ addl %eax,%ebp |
| ++ movl 8(%esi),%eax |
| ++ adcl %edx,%ebx |
| ++ movl 12(%edi),%edx |
| ++ adcl $0,%ecx |
| ++ # mul a[2]*b[3] |
| ++ mull %edx |
| ++ addl %eax,%ebp |
| ++ movl 4(%esi),%eax |
| ++ adcl %edx,%ebx |
| ++ movl 16(%edi),%edx |
| ++ adcl $0,%ecx |
| ++ # mul a[1]*b[4] |
| ++ mull %edx |
| ++ addl %eax,%ebp |
| ++ movl (%esi),%eax |
| ++ adcl %edx,%ebx |
| ++ movl 20(%edi),%edx |
| ++ adcl $0,%ecx |
| ++ # mul a[0]*b[5] |
| ++ mull %edx |
| ++ addl %eax,%ebp |
| ++ movl 20(%esp),%eax |
| ++ adcl %edx,%ebx |
| ++ movl (%edi),%edx |
| ++ adcl $0,%ecx |
| ++ movl %ebp,20(%eax) |
| ++ movl 24(%esi),%eax |
| ++ # saved r[5] |
| ++ # ################## Calculate word 6 |
| ++ xorl %ebp,%ebp |
| ++ # mul a[6]*b[0] |
| ++ mull %edx |
| ++ addl %eax,%ebx |
| ++ movl 20(%esi),%eax |
| ++ adcl %edx,%ecx |
| ++ movl 4(%edi),%edx |
| ++ adcl $0,%ebp |
| ++ # mul a[5]*b[1] |
| ++ mull %edx |
| ++ addl %eax,%ebx |
| ++ movl 16(%esi),%eax |
| ++ adcl %edx,%ecx |
| ++ movl 8(%edi),%edx |
| ++ adcl $0,%ebp |
| ++ # mul a[4]*b[2] |
| ++ mull %edx |
| ++ addl %eax,%ebx |
| ++ movl 12(%esi),%eax |
| ++ adcl %edx,%ecx |
| ++ movl 12(%edi),%edx |
| ++ adcl $0,%ebp |
| ++ # mul a[3]*b[3] |
| ++ mull %edx |
| ++ addl %eax,%ebx |
| ++ movl 8(%esi),%eax |
| ++ adcl %edx,%ecx |
| ++ movl 16(%edi),%edx |
| ++ adcl $0,%ebp |
| ++ # mul a[2]*b[4] |
| ++ mull %edx |
| ++ addl %eax,%ebx |
| ++ movl 4(%esi),%eax |
| ++ adcl %edx,%ecx |
| ++ movl 20(%edi),%edx |
| ++ adcl $0,%ebp |
| ++ # mul a[1]*b[5] |
| ++ mull %edx |
| ++ addl %eax,%ebx |
| ++ movl (%esi),%eax |
| ++ adcl %edx,%ecx |
| ++ movl 24(%edi),%edx |
| ++ adcl $0,%ebp |
| ++ # mul a[0]*b[6] |
| ++ mull %edx |
| ++ addl %eax,%ebx |
| ++ movl 20(%esp),%eax |
| ++ adcl %edx,%ecx |
| ++ movl (%edi),%edx |
| ++ adcl $0,%ebp |
| ++ movl %ebx,24(%eax) |
| ++ movl 28(%esi),%eax |
| ++ # saved r[6] |
| ++ # ################## Calculate word 7 |
| ++ xorl %ebx,%ebx |
| ++ # mul a[7]*b[0] |
| ++ mull %edx |
| ++ addl %eax,%ecx |
| ++ movl 24(%esi),%eax |
| ++ adcl %edx,%ebp |
| ++ movl 4(%edi),%edx |
| ++ adcl $0,%ebx |
| ++ # mul a[6]*b[1] |
| ++ mull %edx |
| ++ addl %eax,%ecx |
| ++ movl 20(%esi),%eax |
| ++ adcl %edx,%ebp |
| ++ movl 8(%edi),%edx |
| ++ adcl $0,%ebx |
| ++ # mul a[5]*b[2] |
| ++ mull %edx |
| ++ addl %eax,%ecx |
| ++ movl 16(%esi),%eax |
| ++ adcl %edx,%ebp |
| ++ movl 12(%edi),%edx |
| ++ adcl $0,%ebx |
| ++ # mul a[4]*b[3] |
| ++ mull %edx |
| ++ addl %eax,%ecx |
| ++ movl 12(%esi),%eax |
| ++ adcl %edx,%ebp |
| ++ movl 16(%edi),%edx |
| ++ adcl $0,%ebx |
| ++ # mul a[3]*b[4] |
| ++ mull %edx |
| ++ addl %eax,%ecx |
| ++ movl 8(%esi),%eax |
| ++ adcl %edx,%ebp |
| ++ movl 20(%edi),%edx |
| ++ adcl $0,%ebx |
| ++ # mul a[2]*b[5] |
| ++ mull %edx |
| ++ addl %eax,%ecx |
| ++ movl 4(%esi),%eax |
| ++ adcl %edx,%ebp |
| ++ movl 24(%edi),%edx |
| ++ adcl $0,%ebx |
| ++ # mul a[1]*b[6] |
| ++ mull %edx |
| ++ addl %eax,%ecx |
| ++ movl (%esi),%eax |
| ++ adcl %edx,%ebp |
| ++ movl 28(%edi),%edx |
| ++ adcl $0,%ebx |
| ++ # mul a[0]*b[7] |
| ++ mull %edx |
| ++ addl %eax,%ecx |
| ++ movl 20(%esp),%eax |
| ++ adcl %edx,%ebp |
| ++ movl 4(%edi),%edx |
| ++ adcl $0,%ebx |
| ++ movl %ecx,28(%eax) |
| ++ movl 28(%esi),%eax |
| ++ # saved r[7] |
| ++ # ################## Calculate word 8 |
| ++ xorl %ecx,%ecx |
| ++ # mul a[7]*b[1] |
| ++ mull %edx |
| ++ addl %eax,%ebp |
| ++ movl 24(%esi),%eax |
| ++ adcl %edx,%ebx |
| ++ movl 8(%edi),%edx |
| ++ adcl $0,%ecx |
| ++ # mul a[6]*b[2] |
| ++ mull %edx |
| ++ addl %eax,%ebp |
| ++ movl 20(%esi),%eax |
| ++ adcl %edx,%ebx |
| ++ movl 12(%edi),%edx |
| ++ adcl $0,%ecx |
| ++ # mul a[5]*b[3] |
| ++ mull %edx |
| ++ addl %eax,%ebp |
| ++ movl 16(%esi),%eax |
| ++ adcl %edx,%ebx |
| ++ movl 16(%edi),%edx |
| ++ adcl $0,%ecx |
| ++ # mul a[4]*b[4] |
| ++ mull %edx |
| ++ addl %eax,%ebp |
| ++ movl 12(%esi),%eax |
| ++ adcl %edx,%ebx |
| ++ movl 20(%edi),%edx |
| ++ adcl $0,%ecx |
| ++ # mul a[3]*b[5] |
| ++ mull %edx |
| ++ addl %eax,%ebp |
| ++ movl 8(%esi),%eax |
| ++ adcl %edx,%ebx |
| ++ movl 24(%edi),%edx |
| ++ adcl $0,%ecx |
| ++ # mul a[2]*b[6] |
| ++ mull %edx |
| ++ addl %eax,%ebp |
| ++ movl 4(%esi),%eax |
| ++ adcl %edx,%ebx |
| ++ movl 28(%edi),%edx |
| ++ adcl $0,%ecx |
| ++ # mul a[1]*b[7] |
| ++ mull %edx |
| ++ addl %eax,%ebp |
| ++ movl 20(%esp),%eax |
| ++ adcl %edx,%ebx |
| ++ movl 8(%edi),%edx |
| ++ adcl $0,%ecx |
| ++ movl %ebp,32(%eax) |
| ++ movl 28(%esi),%eax |
| ++ # saved r[8] |
| ++ # ################## Calculate word 9 |
| ++ xorl %ebp,%ebp |
| ++ # mul a[7]*b[2] |
| ++ mull %edx |
| ++ addl %eax,%ebx |
| ++ movl 24(%esi),%eax |
| ++ adcl %edx,%ecx |
| ++ movl 12(%edi),%edx |
| ++ adcl $0,%ebp |
| ++ # mul a[6]*b[3] |
| ++ mull %edx |
| ++ addl %eax,%ebx |
| ++ movl 20(%esi),%eax |
| ++ adcl %edx,%ecx |
| ++ movl 16(%edi),%edx |
| ++ adcl $0,%ebp |
| ++ # mul a[5]*b[4] |
| ++ mull %edx |
| ++ addl %eax,%ebx |
| ++ movl 16(%esi),%eax |
| ++ adcl %edx,%ecx |
| ++ movl 20(%edi),%edx |
| ++ adcl $0,%ebp |
| ++ # mul a[4]*b[5] |
| ++ mull %edx |
| ++ addl %eax,%ebx |
| ++ movl 12(%esi),%eax |
| ++ adcl %edx,%ecx |
| ++ movl 24(%edi),%edx |
| ++ adcl $0,%ebp |
| ++ # mul a[3]*b[6] |
| ++ mull %edx |
| ++ addl %eax,%ebx |
| ++ movl 8(%esi),%eax |
| ++ adcl %edx,%ecx |
| ++ movl 28(%edi),%edx |
| ++ adcl $0,%ebp |
| ++ # mul a[2]*b[7] |
| ++ mull %edx |
| ++ addl %eax,%ebx |
| ++ movl 20(%esp),%eax |
| ++ adcl %edx,%ecx |
| ++ movl 12(%edi),%edx |
| ++ adcl $0,%ebp |
| ++ movl %ebx,36(%eax) |
| ++ movl 28(%esi),%eax |
| ++ # saved r[9] |
| ++ # ################## Calculate word 10 |
| ++ xorl %ebx,%ebx |
| ++ # mul a[7]*b[3] |
| ++ mull %edx |
| ++ addl %eax,%ecx |
| ++ movl 24(%esi),%eax |
| ++ adcl %edx,%ebp |
| ++ movl 16(%edi),%edx |
| ++ adcl $0,%ebx |
| ++ # mul a[6]*b[4] |
| ++ mull %edx |
| ++ addl %eax,%ecx |
| ++ movl 20(%esi),%eax |
| ++ adcl %edx,%ebp |
| ++ movl 20(%edi),%edx |
| ++ adcl $0,%ebx |
| ++ # mul a[5]*b[5] |
| ++ mull %edx |
| ++ addl %eax,%ecx |
| ++ movl 16(%esi),%eax |
| ++ adcl %edx,%ebp |
| ++ movl 24(%edi),%edx |
| ++ adcl $0,%ebx |
| ++ # mul a[4]*b[6] |
| ++ mull %edx |
| ++ addl %eax,%ecx |
| ++ movl 12(%esi),%eax |
| ++ adcl %edx,%ebp |
| ++ movl 28(%edi),%edx |
| ++ adcl $0,%ebx |
| ++ # mul a[3]*b[7] |
| ++ mull %edx |
| ++ addl %eax,%ecx |
| ++ movl 20(%esp),%eax |
| ++ adcl %edx,%ebp |
| ++ movl 16(%edi),%edx |
| ++ adcl $0,%ebx |
| ++ movl %ecx,40(%eax) |
| ++ movl 28(%esi),%eax |
| ++ # saved r[10] |
| ++ # ################## Calculate word 11 |
| ++ xorl %ecx,%ecx |
| ++ # mul a[7]*b[4] |
| ++ mull %edx |
| ++ addl %eax,%ebp |
| ++ movl 24(%esi),%eax |
| ++ adcl %edx,%ebx |
| ++ movl 20(%edi),%edx |
| ++ adcl $0,%ecx |
| ++ # mul a[6]*b[5] |
| ++ mull %edx |
| ++ addl %eax,%ebp |
| ++ movl 20(%esi),%eax |
| ++ adcl %edx,%ebx |
| ++ movl 24(%edi),%edx |
| ++ adcl $0,%ecx |
| ++ # mul a[5]*b[6] |
| ++ mull %edx |
| ++ addl %eax,%ebp |
| ++ movl 16(%esi),%eax |
| ++ adcl %edx,%ebx |
| ++ movl 28(%edi),%edx |
| ++ adcl $0,%ecx |
| ++ # mul a[4]*b[7] |
| ++ mull %edx |
| ++ addl %eax,%ebp |
| ++ movl 20(%esp),%eax |
| ++ adcl %edx,%ebx |
| ++ movl 20(%edi),%edx |
| ++ adcl $0,%ecx |
| ++ movl %ebp,44(%eax) |
| ++ movl 28(%esi),%eax |
| ++ # saved r[11] |
| ++ # ################## Calculate word 12 |
| ++ xorl %ebp,%ebp |
| ++ # mul a[7]*b[5] |
| ++ mull %edx |
| ++ addl %eax,%ebx |
| ++ movl 24(%esi),%eax |
| ++ adcl %edx,%ecx |
| ++ movl 24(%edi),%edx |
| ++ adcl $0,%ebp |
| ++ # mul a[6]*b[6] |
| ++ mull %edx |
| ++ addl %eax,%ebx |
| ++ movl 20(%esi),%eax |
| ++ adcl %edx,%ecx |
| ++ movl 28(%edi),%edx |
| ++ adcl $0,%ebp |
| ++ # mul a[5]*b[7] |
| ++ mull %edx |
| ++ addl %eax,%ebx |
| ++ movl 20(%esp),%eax |
| ++ adcl %edx,%ecx |
| ++ movl 24(%edi),%edx |
| ++ adcl $0,%ebp |
| ++ movl %ebx,48(%eax) |
| ++ movl 28(%esi),%eax |
| ++ # saved r[12] |
| ++ # ################## Calculate word 13 |
| ++ xorl %ebx,%ebx |
| ++ # mul a[7]*b[6] |
| ++ mull %edx |
| ++ addl %eax,%ecx |
| ++ movl 24(%esi),%eax |
| ++ adcl %edx,%ebp |
| ++ movl 28(%edi),%edx |
| ++ adcl $0,%ebx |
| ++ # mul a[6]*b[7] |
| ++ mull %edx |
| ++ addl %eax,%ecx |
| ++ movl 20(%esp),%eax |
| ++ adcl %edx,%ebp |
| ++ movl 28(%edi),%edx |
| ++ adcl $0,%ebx |
| ++ movl %ecx,52(%eax) |
| ++ movl 28(%esi),%eax |
| ++ # saved r[13] |
| ++ # ################## Calculate word 14 |
| ++ xorl %ecx,%ecx |
| ++ # mul a[7]*b[7] |
| ++ mull %edx |
| ++ addl %eax,%ebp |
| ++ movl 20(%esp),%eax |
| ++ adcl %edx,%ebx |
| ++ adcl $0,%ecx |
| ++ movl %ebp,56(%eax) |
| ++ # saved r[14] |
| ++ # save r[15] |
| ++ movl %ebx,60(%eax) |
| ++ popl %ebx |
| ++ popl %ebp |
| ++ popl %edi |
| ++ popl %esi |
| ++ ret |
| ++.globl _bn_mul_comba4 |
| ++.align 4 |
| ++_bn_mul_comba4: |
| ++L_bn_mul_comba4_begin: |
| ++ pushl %esi |
| ++ movl 12(%esp),%esi |
| ++ pushl %edi |
| ++ movl 20(%esp),%edi |
| ++ pushl %ebp |
| ++ pushl %ebx |
| ++ xorl %ebx,%ebx |
| ++ movl (%esi),%eax |
| ++ xorl %ecx,%ecx |
| ++ movl (%edi),%edx |
| ++ # ################## Calculate word 0 |
| ++ xorl %ebp,%ebp |
| ++ # mul a[0]*b[0] |
| ++ mull %edx |
| ++ addl %eax,%ebx |
| ++ movl 20(%esp),%eax |
| ++ adcl %edx,%ecx |
| ++ movl (%edi),%edx |
| ++ adcl $0,%ebp |
| ++ movl %ebx,(%eax) |
| ++ movl 4(%esi),%eax |
| ++ # saved r[0] |
| ++ # ################## Calculate word 1 |
| ++ xorl %ebx,%ebx |
| ++ # mul a[1]*b[0] |
| ++ mull %edx |
| ++ addl %eax,%ecx |
| ++ movl (%esi),%eax |
| ++ adcl %edx,%ebp |
| ++ movl 4(%edi),%edx |
| ++ adcl $0,%ebx |
| ++ # mul a[0]*b[1] |
| ++ mull %edx |
| ++ addl %eax,%ecx |
| ++ movl 20(%esp),%eax |
| ++ adcl %edx,%ebp |
| ++ movl (%edi),%edx |
| ++ adcl $0,%ebx |
| ++ movl %ecx,4(%eax) |
| ++ movl 8(%esi),%eax |
| ++ # saved r[1] |
| ++ # ################## Calculate word 2 |
| ++ xorl %ecx,%ecx |
| ++ # mul a[2]*b[0] |
| ++ mull %edx |
| ++ addl %eax,%ebp |
| ++ movl 4(%esi),%eax |
| ++ adcl %edx,%ebx |
| ++ movl 4(%edi),%edx |
| ++ adcl $0,%ecx |
| ++ # mul a[1]*b[1] |
| ++ mull %edx |
| ++ addl %eax,%ebp |
| ++ movl (%esi),%eax |
| ++ adcl %edx,%ebx |
| ++ movl 8(%edi),%edx |
| ++ adcl $0,%ecx |
| ++ # mul a[0]*b[2] |
| ++ mull %edx |
| ++ addl %eax,%ebp |
| ++ movl 20(%esp),%eax |
| ++ adcl %edx,%ebx |
| ++ movl (%edi),%edx |
| ++ adcl $0,%ecx |
| ++ movl %ebp,8(%eax) |
| ++ movl 12(%esi),%eax |
| ++ # saved r[2] |
| ++ # ################## Calculate word 3 |
| ++ xorl %ebp,%ebp |
| ++ # mul a[3]*b[0] |
| ++ mull %edx |
| ++ addl %eax,%ebx |
| ++ movl 8(%esi),%eax |
| ++ adcl %edx,%ecx |
| ++ movl 4(%edi),%edx |
| ++ adcl $0,%ebp |
| ++ # mul a[2]*b[1] |
| ++ mull %edx |
| ++ addl %eax,%ebx |
| ++ movl 4(%esi),%eax |
| ++ adcl %edx,%ecx |
| ++ movl 8(%edi),%edx |
| ++ adcl $0,%ebp |
| ++ # mul a[1]*b[2] |
| ++ mull %edx |
| ++ addl %eax,%ebx |
| ++ movl (%esi),%eax |
| ++ adcl %edx,%ecx |
| ++ movl 12(%edi),%edx |
| ++ adcl $0,%ebp |
| ++ # mul a[0]*b[3] |
| ++ mull %edx |
| ++ addl %eax,%ebx |
| ++ movl 20(%esp),%eax |
| ++ adcl %edx,%ecx |
| ++ movl 4(%edi),%edx |
| ++ adcl $0,%ebp |
| ++ movl %ebx,12(%eax) |
| ++ movl 12(%esi),%eax |
| ++ # saved r[3] |
| ++ # ################## Calculate word 4 |
| ++ xorl %ebx,%ebx |
| ++ # mul a[3]*b[1] |
| ++ mull %edx |
| ++ addl %eax,%ecx |
| ++ movl 8(%esi),%eax |
| ++ adcl %edx,%ebp |
| ++ movl 8(%edi),%edx |
| ++ adcl $0,%ebx |
| ++ # mul a[2]*b[2] |
| ++ mull %edx |
| ++ addl %eax,%ecx |
| ++ movl 4(%esi),%eax |
| ++ adcl %edx,%ebp |
| ++ movl 12(%edi),%edx |
| ++ adcl $0,%ebx |
| ++ # mul a[1]*b[3] |
| ++ mull %edx |
| ++ addl %eax,%ecx |
| ++ movl 20(%esp),%eax |
| ++ adcl %edx,%ebp |
| ++ movl 8(%edi),%edx |
| ++ adcl $0,%ebx |
| ++ movl %ecx,16(%eax) |
| ++ movl 12(%esi),%eax |
| ++ # saved r[4] |
| ++ # ################## Calculate word 5 |
| ++ xorl %ecx,%ecx |
| ++ # mul a[3]*b[2] |
| ++ mull %edx |
| ++ addl %eax,%ebp |
| ++ movl 8(%esi),%eax |
| ++ adcl %edx,%ebx |
| ++ movl 12(%edi),%edx |
| ++ adcl $0,%ecx |
| ++ # mul a[2]*b[3] |
| ++ mull %edx |
| ++ addl %eax,%ebp |
| ++ movl 20(%esp),%eax |
| ++ adcl %edx,%ebx |
| ++ movl 12(%edi),%edx |
| ++ adcl $0,%ecx |
| ++ movl %ebp,20(%eax) |
| ++ movl 12(%esi),%eax |
| ++ # saved r[5] |
| ++ # ################## Calculate word 6 |
| ++ xorl %ebp,%ebp |
| ++ # mul a[3]*b[3] |
| ++ mull %edx |
| ++ addl %eax,%ebx |
| ++ movl 20(%esp),%eax |
| ++ adcl %edx,%ecx |
| ++ adcl $0,%ebp |
| ++ movl %ebx,24(%eax) |
| ++ # saved r[6] |
| ++ # save r[7] |
| ++ movl %ecx,28(%eax) |
| ++ popl %ebx |
| ++ popl %ebp |
| ++ popl %edi |
| ++ popl %esi |
| ++ ret |
| ++.globl _bn_sqr_comba8 |
| ++.align 4 |
| ++_bn_sqr_comba8: |
| ++L_bn_sqr_comba8_begin: |
| ++ pushl %esi |
| ++ pushl %edi |
| ++ pushl %ebp |
| ++ pushl %ebx |
| ++ movl 20(%esp),%edi |
| ++ movl 24(%esp),%esi |
| ++ xorl %ebx,%ebx |
| ++ xorl %ecx,%ecx |
| ++ movl (%esi),%eax |
| ++ # ############### Calculate word 0 |
| ++ xorl %ebp,%ebp |
| ++ # sqr a[0]*a[0] |
| ++ mull %eax |
| ++ addl %eax,%ebx |
| ++ adcl %edx,%ecx |
| ++ movl (%esi),%edx |
| ++ adcl $0,%ebp |
| ++ movl %ebx,(%edi) |
| ++ movl 4(%esi),%eax |
| ++ # saved r[0] |
| ++ # ############### Calculate word 1 |
| ++ xorl %ebx,%ebx |
| ++ # sqr a[1]*a[0] |
| ++ mull %edx |
| ++ addl %eax,%eax |
| ++ adcl %edx,%edx |
| ++ adcl $0,%ebx |
| ++ addl %eax,%ecx |
| ++ adcl %edx,%ebp |
| ++ movl 8(%esi),%eax |
| ++ adcl $0,%ebx |
| ++ movl %ecx,4(%edi) |
| ++ movl (%esi),%edx |
| ++ # saved r[1] |
| ++ # ############### Calculate word 2 |
| ++ xorl %ecx,%ecx |
| ++ # sqr a[2]*a[0] |
| ++ mull %edx |
| ++ addl %eax,%eax |
| ++ adcl %edx,%edx |
| ++ adcl $0,%ecx |
| ++ addl %eax,%ebp |
| ++ adcl %edx,%ebx |
| ++ movl 4(%esi),%eax |
| ++ adcl $0,%ecx |
| ++ # sqr a[1]*a[1] |
| ++ mull %eax |
| ++ addl %eax,%ebp |
| ++ adcl %edx,%ebx |
| ++ movl (%esi),%edx |
| ++ adcl $0,%ecx |
| ++ movl %ebp,8(%edi) |
| ++ movl 12(%esi),%eax |
| ++ # saved r[2] |
| ++ # ############### Calculate word 3 |
| ++ xorl %ebp,%ebp |
| ++ # sqr a[3]*a[0] |
| ++ mull %edx |
| ++ addl %eax,%eax |
| ++ adcl %edx,%edx |
| ++ adcl $0,%ebp |
| ++ addl %eax,%ebx |
| ++ adcl %edx,%ecx |
| ++ movl 8(%esi),%eax |
| ++ adcl $0,%ebp |
| ++ movl 4(%esi),%edx |
| ++ # sqr a[2]*a[1] |
| ++ mull %edx |
| ++ addl %eax,%eax |
| ++ adcl %edx,%edx |
| ++ adcl $0,%ebp |
| ++ addl %eax,%ebx |
| ++ adcl %edx,%ecx |
| ++ movl 16(%esi),%eax |
| ++ adcl $0,%ebp |
| ++ movl %ebx,12(%edi) |
| ++ movl (%esi),%edx |
| ++ # saved r[3] |
| ++ # ############### Calculate word 4 |
| ++ xorl %ebx,%ebx |
| ++ # sqr a[4]*a[0] |
| ++ mull %edx |
| ++ addl %eax,%eax |
| ++ adcl %edx,%edx |
| ++ adcl $0,%ebx |
| ++ addl %eax,%ecx |
| ++ adcl %edx,%ebp |
| ++ movl 12(%esi),%eax |
| ++ adcl $0,%ebx |
| ++ movl 4(%esi),%edx |
| ++ # sqr a[3]*a[1] |
| ++ mull %edx |
| ++ addl %eax,%eax |
| ++ adcl %edx,%edx |
| ++ adcl $0,%ebx |
| ++ addl %eax,%ecx |
| ++ adcl %edx,%ebp |
| ++ movl 8(%esi),%eax |
| ++ adcl $0,%ebx |
| ++ # sqr a[2]*a[2] |
| ++ mull %eax |
| ++ addl %eax,%ecx |
| ++ adcl %edx,%ebp |
| ++ movl (%esi),%edx |
| ++ adcl $0,%ebx |
| ++ movl %ecx,16(%edi) |
| ++ movl 20(%esi),%eax |
| ++ # saved r[4] |
| ++ # ############### Calculate word 5 |
| ++ xorl %ecx,%ecx |
| ++ # sqr a[5]*a[0] |
| ++ mull %edx |
| ++ addl %eax,%eax |
| ++ adcl %edx,%edx |
| ++ adcl $0,%ecx |
| ++ addl %eax,%ebp |
| ++ adcl %edx,%ebx |
| ++ movl 16(%esi),%eax |
| ++ adcl $0,%ecx |
| ++ movl 4(%esi),%edx |
| ++ # sqr a[4]*a[1] |
| ++ mull %edx |
| ++ addl %eax,%eax |
| ++ adcl %edx,%edx |
| ++ adcl $0,%ecx |
| ++ addl %eax,%ebp |
| ++ adcl %edx,%ebx |
| ++ movl 12(%esi),%eax |
| ++ adcl $0,%ecx |
| ++ movl 8(%esi),%edx |
| ++ # sqr a[3]*a[2] |
| ++ mull %edx |
| ++ addl %eax,%eax |
| ++ adcl %edx,%edx |
| ++ adcl $0,%ecx |
| ++ addl %eax,%ebp |
| ++ adcl %edx,%ebx |
| ++ movl 24(%esi),%eax |
| ++ adcl $0,%ecx |
| ++ movl %ebp,20(%edi) |
| ++ movl (%esi),%edx |
| ++ # saved r[5] |
| ++ # ############### Calculate word 6 |
| ++ xorl %ebp,%ebp |
| ++ # sqr a[6]*a[0] |
| ++ mull %edx |
| ++ addl %eax,%eax |
| ++ adcl %edx,%edx |
| ++ adcl $0,%ebp |
| ++ addl %eax,%ebx |
| ++ adcl %edx,%ecx |
| ++ movl 20(%esi),%eax |
| ++ adcl $0,%ebp |
| ++ movl 4(%esi),%edx |
| ++ # sqr a[5]*a[1] |
| ++ mull %edx |
| ++ addl %eax,%eax |
| ++ adcl %edx,%edx |
| ++ adcl $0,%ebp |
| ++ addl %eax,%ebx |
| ++ adcl %edx,%ecx |
| ++ movl 16(%esi),%eax |
| ++ adcl $0,%ebp |
| ++ movl 8(%esi),%edx |
| ++ # sqr a[4]*a[2] |
| ++ mull %edx |
| ++ addl %eax,%eax |
| ++ adcl %edx,%edx |
| ++ adcl $0,%ebp |
| ++ addl %eax,%ebx |
| ++ adcl %edx,%ecx |
| ++ movl 12(%esi),%eax |
| ++ adcl $0,%ebp |
| ++ # sqr a[3]*a[3] |
| ++ mull %eax |
| ++ addl %eax,%ebx |
| ++ adcl %edx,%ecx |
| ++ movl (%esi),%edx |
| ++ adcl $0,%ebp |
| ++ movl %ebx,24(%edi) |
| ++ movl 28(%esi),%eax |
| ++ # saved r[6] |
| ++ # ############### Calculate word 7 |
| ++ xorl %ebx,%ebx |
| ++ # sqr a[7]*a[0] |
| ++ mull %edx |
| ++ addl %eax,%eax |
| ++ adcl %edx,%edx |
| ++ adcl $0,%ebx |
| ++ addl %eax,%ecx |
| ++ adcl %edx,%ebp |
| ++ movl 24(%esi),%eax |
| ++ adcl $0,%ebx |
| ++ movl 4(%esi),%edx |
| ++ # sqr a[6]*a[1] |
| ++ mull %edx |
| ++ addl %eax,%eax |
| ++ adcl %edx,%edx |
| ++ adcl $0,%ebx |
| ++ addl %eax,%ecx |
| ++ adcl %edx,%ebp |
| ++ movl 20(%esi),%eax |
| ++ adcl $0,%ebx |
| ++ movl 8(%esi),%edx |
| ++ # sqr a[5]*a[2] |
| ++ mull %edx |
| ++ addl %eax,%eax |
| ++ adcl %edx,%edx |
| ++ adcl $0,%ebx |
| ++ addl %eax,%ecx |
| ++ adcl %edx,%ebp |
| ++ movl 16(%esi),%eax |
| ++ adcl $0,%ebx |
| ++ movl 12(%esi),%edx |
| ++ # sqr a[4]*a[3] |
| ++ mull %edx |
| ++ addl %eax,%eax |
| ++ adcl %edx,%edx |
| ++ adcl $0,%ebx |
| ++ addl %eax,%ecx |
| ++ adcl %edx,%ebp |
| ++ movl 28(%esi),%eax |
| ++ adcl $0,%ebx |
| ++ movl %ecx,28(%edi) |
| ++ movl 4(%esi),%edx |
| ++ # saved r[7] |
| ++ # ############### Calculate word 8 |
| ++ xorl %ecx,%ecx |
| ++ # sqr a[7]*a[1] |
| ++ mull %edx |
| ++ addl %eax,%eax |
| ++ adcl %edx,%edx |
| ++ adcl $0,%ecx |
| ++ addl %eax,%ebp |
| ++ adcl %edx,%ebx |
| ++ movl 24(%esi),%eax |
| ++ adcl $0,%ecx |
| ++ movl 8(%esi),%edx |
| ++ # sqr a[6]*a[2] |
| ++ mull %edx |
| ++ addl %eax,%eax |
| ++ adcl %edx,%edx |
| ++ adcl $0,%ecx |
| ++ addl %eax,%ebp |
| ++ adcl %edx,%ebx |
| ++ movl 20(%esi),%eax |
| ++ adcl $0,%ecx |
| ++ movl 12(%esi),%edx |
| ++ # sqr a[5]*a[3] |
| ++ mull %edx |
| ++ addl %eax,%eax |
| ++ adcl %edx,%edx |
| ++ adcl $0,%ecx |
| ++ addl %eax,%ebp |
| ++ adcl %edx,%ebx |
| ++ movl 16(%esi),%eax |
| ++ adcl $0,%ecx |
| ++ # sqr a[4]*a[4] |
| ++ mull %eax |
| ++ addl %eax,%ebp |
| ++ adcl %edx,%ebx |
| ++ movl 8(%esi),%edx |
| ++ adcl $0,%ecx |
| ++ movl %ebp,32(%edi) |
| ++ movl 28(%esi),%eax |
| ++ # saved r[8] |
| ++ # ############### Calculate word 9 |
| ++ xorl %ebp,%ebp |
| ++ # sqr a[7]*a[2] |
| ++ mull %edx |
| ++ addl %eax,%eax |
| ++ adcl %edx,%edx |
| ++ adcl $0,%ebp |
| ++ addl %eax,%ebx |
| ++ adcl %edx,%ecx |
| ++ movl 24(%esi),%eax |
| ++ adcl $0,%ebp |
| ++ movl 12(%esi),%edx |
| ++ # sqr a[6]*a[3] |
| ++ mull %edx |
| ++ addl %eax,%eax |
| ++ adcl %edx,%edx |
| ++ adcl $0,%ebp |
| ++ addl %eax,%ebx |
| ++ adcl %edx,%ecx |
| ++ movl 20(%esi),%eax |
| ++ adcl $0,%ebp |
| ++ movl 16(%esi),%edx |
| ++ # sqr a[5]*a[4] |
| ++ mull %edx |
| ++ addl %eax,%eax |
| ++ adcl %edx,%edx |
| ++ adcl $0,%ebp |
| ++ addl %eax,%ebx |
| ++ adcl %edx,%ecx |
| ++ movl 28(%esi),%eax |
| ++ adcl $0,%ebp |
| ++ movl %ebx,36(%edi) |
| ++ movl 12(%esi),%edx |
| ++ # saved r[9] |
| ++ # ############### Calculate word 10 |
| ++ xorl %ebx,%ebx |
| ++ # sqr a[7]*a[3] |
| ++ mull %edx |
| ++ addl %eax,%eax |
| ++ adcl %edx,%edx |
| ++ adcl $0,%ebx |
| ++ addl %eax,%ecx |
| ++ adcl %edx,%ebp |
| ++ movl 24(%esi),%eax |
| ++ adcl $0,%ebx |
| ++ movl 16(%esi),%edx |
| ++ # sqr a[6]*a[4] |
| ++ mull %edx |
| ++ addl %eax,%eax |
| ++ adcl %edx,%edx |
| ++ adcl $0,%ebx |
| ++ addl %eax,%ecx |
| ++ adcl %edx,%ebp |
| ++ movl 20(%esi),%eax |
| ++ adcl $0,%ebx |
| ++ # sqr a[5]*a[5] |
| ++ mull %eax |
| ++ addl %eax,%ecx |
| ++ adcl %edx,%ebp |
| ++ movl 16(%esi),%edx |
| ++ adcl $0,%ebx |
| ++ movl %ecx,40(%edi) |
| ++ movl 28(%esi),%eax |
| ++ # saved r[10] |
| ++ # ############### Calculate word 11 |
| ++ xorl %ecx,%ecx |
| ++ # sqr a[7]*a[4] |
| ++ mull %edx |
| ++ addl %eax,%eax |
| ++ adcl %edx,%edx |
| ++ adcl $0,%ecx |
| ++ addl %eax,%ebp |
| ++ adcl %edx,%ebx |
| ++ movl 24(%esi),%eax |
| ++ adcl $0,%ecx |
| ++ movl 20(%esi),%edx |
| ++ # sqr a[6]*a[5] |
| ++ mull %edx |
| ++ addl %eax,%eax |
| ++ adcl %edx,%edx |
| ++ adcl $0,%ecx |
| ++ addl %eax,%ebp |
| ++ adcl %edx,%ebx |
| ++ movl 28(%esi),%eax |
| ++ adcl $0,%ecx |
| ++ movl %ebp,44(%edi) |
| ++ movl 20(%esi),%edx |
| ++ # saved r[11] |
| ++ # ############### Calculate word 12 |
| ++ xorl %ebp,%ebp |
| ++ # sqr a[7]*a[5] |
| ++ mull %edx |
| ++ addl %eax,%eax |
| ++ adcl %edx,%edx |
| ++ adcl $0,%ebp |
| ++ addl %eax,%ebx |
| ++ adcl %edx,%ecx |
| ++ movl 24(%esi),%eax |
| ++ adcl $0,%ebp |
| ++ # sqr a[6]*a[6] |
| ++ mull %eax |
| ++ addl %eax,%ebx |
| ++ adcl %edx,%ecx |
| ++ movl 24(%esi),%edx |
| ++ adcl $0,%ebp |
| ++ movl %ebx,48(%edi) |
| ++ movl 28(%esi),%eax |
| ++ # saved r[12] |
| ++ # ############### Calculate word 13 |
| ++ xorl %ebx,%ebx |
| ++ # sqr a[7]*a[6] |
| ++ mull %edx |
| ++ addl %eax,%eax |
| ++ adcl %edx,%edx |
| ++ adcl $0,%ebx |
| ++ addl %eax,%ecx |
| ++ adcl %edx,%ebp |
| ++ movl 28(%esi),%eax |
| ++ adcl $0,%ebx |
| ++ movl %ecx,52(%edi) |
| ++ # saved r[13] |
| ++ # ############### Calculate word 14 |
| ++ xorl %ecx,%ecx |
| ++ # sqr a[7]*a[7] |
| ++ mull %eax |
| ++ addl %eax,%ebp |
| ++ adcl %edx,%ebx |
| ++ adcl $0,%ecx |
| ++ movl %ebp,56(%edi) |
| ++ # saved r[14] |
| ++ movl %ebx,60(%edi) |
| ++ popl %ebx |
| ++ popl %ebp |
| ++ popl %edi |
| ++ popl %esi |
| ++ ret |
| ++.globl _bn_sqr_comba4 |
| ++.align 4 |
| ++_bn_sqr_comba4: |
| ++L_bn_sqr_comba4_begin: |
| ++ pushl %esi |
| ++ pushl %edi |
| ++ pushl %ebp |
| ++ pushl %ebx |
| ++ movl 20(%esp),%edi |
| ++ movl 24(%esp),%esi |
| ++ xorl %ebx,%ebx |
| ++ xorl %ecx,%ecx |
| ++ movl (%esi),%eax |
| ++ # ############### Calculate word 0 |
| ++ xorl %ebp,%ebp |
| ++ # sqr a[0]*a[0] |
| ++ mull %eax |
| ++ addl %eax,%ebx |
| ++ adcl %edx,%ecx |
| ++ movl (%esi),%edx |
| ++ adcl $0,%ebp |
| ++ movl %ebx,(%edi) |
| ++ movl 4(%esi),%eax |
| ++ # saved r[0] |
| ++ # ############### Calculate word 1 |
| ++ xorl %ebx,%ebx |
| ++ # sqr a[1]*a[0] |
| ++ mull %edx |
| ++ addl %eax,%eax |
| ++ adcl %edx,%edx |
| ++ adcl $0,%ebx |
| ++ addl %eax,%ecx |
| ++ adcl %edx,%ebp |
| ++ movl 8(%esi),%eax |
| ++ adcl $0,%ebx |
| ++ movl %ecx,4(%edi) |
| ++ movl (%esi),%edx |
| ++ # saved r[1] |
| ++ # ############### Calculate word 2 |
| ++ xorl %ecx,%ecx |
| ++ # sqr a[2]*a[0] |
| ++ mull %edx |
| ++ addl %eax,%eax |
| ++ adcl %edx,%edx |
| ++ adcl $0,%ecx |
| ++ addl %eax,%ebp |
| ++ adcl %edx,%ebx |
| ++ movl 4(%esi),%eax |
| ++ adcl $0,%ecx |
| ++ # sqr a[1]*a[1] |
| ++ mull %eax |
| ++ addl %eax,%ebp |
| ++ adcl %edx,%ebx |
| ++ movl (%esi),%edx |
| ++ adcl $0,%ecx |
| ++ movl %ebp,8(%edi) |
| ++ movl 12(%esi),%eax |
| ++ # saved r[2] |
| ++ # ############### Calculate word 3 |
| ++ xorl %ebp,%ebp |
| ++ # sqr a[3]*a[0] |
| ++ mull %edx |
| ++ addl %eax,%eax |
| ++ adcl %edx,%edx |
| ++ adcl $0,%ebp |
| ++ addl %eax,%ebx |
| ++ adcl %edx,%ecx |
| ++ movl 8(%esi),%eax |
| ++ adcl $0,%ebp |
| ++ movl 4(%esi),%edx |
| ++ # sqr a[2]*a[1] |
| ++ mull %edx |
| ++ addl %eax,%eax |
| ++ adcl %edx,%edx |
| ++ adcl $0,%ebp |
| ++ addl %eax,%ebx |
| ++ adcl %edx,%ecx |
| ++ movl 12(%esi),%eax |
| ++ adcl $0,%ebp |
| ++ movl %ebx,12(%edi) |
| ++ movl 4(%esi),%edx |
| ++ # saved r[3] |
| ++ # ############### Calculate word 4 |
| ++ xorl %ebx,%ebx |
| ++ # sqr a[3]*a[1] |
| ++ mull %edx |
| ++ addl %eax,%eax |
| ++ adcl %edx,%edx |
| ++ adcl $0,%ebx |
| ++ addl %eax,%ecx |
| ++ adcl %edx,%ebp |
| ++ movl 8(%esi),%eax |
| ++ adcl $0,%ebx |
| ++ # sqr a[2]*a[2] |
| ++ mull %eax |
| ++ addl %eax,%ecx |
| ++ adcl %edx,%ebp |
| ++ movl 8(%esi),%edx |
| ++ adcl $0,%ebx |
| ++ movl %ecx,16(%edi) |
| ++ movl 12(%esi),%eax |
| ++ # saved r[4] |
| ++ # ############### Calculate word 5 |
| ++ xorl %ecx,%ecx |
| ++ # sqr a[3]*a[2] |
| ++ mull %edx |
| ++ addl %eax,%eax |
| ++ adcl %edx,%edx |
| ++ adcl $0,%ecx |
| ++ addl %eax,%ebp |
| ++ adcl %edx,%ebx |
| ++ movl 12(%esi),%eax |
| ++ adcl $0,%ecx |
| ++ movl %ebp,20(%edi) |
| ++ # saved r[5] |
| ++ # ############### Calculate word 6 |
| ++ xorl %ebp,%ebp |
| ++ # sqr a[3]*a[3] |
| ++ mull %eax |
| ++ addl %eax,%ebx |
| ++ adcl %edx,%ecx |
| ++ adcl $0,%ebp |
| ++ movl %ebx,24(%edi) |
| ++ # saved r[6] |
| ++ movl %ecx,28(%edi) |
| ++ popl %ebx |
| ++ popl %ebp |
| ++ popl %edi |
| ++ popl %esi |
| ++ ret |
| +diff --git a/crypto/bn/asm/x86-gf2m-mac.S b/crypto/bn/asm/x86-gf2m-mac.S |
| +new file mode 100644 |
| +index 0000000..31718e0 |
| +--- /dev/null |
| ++++ b/crypto/bn/asm/x86-gf2m-mac.S |
| +@@ -0,0 +1,332 @@ |
| ++.file "crypto/bn/asm/x86-gf2m.s" |
| ++.text |
| ++.align 4 |
| ++__mul_1x1_mmx: |
| ++ subl $36,%esp |
| ++ movl %eax,%ecx |
| ++ leal (%eax,%eax,1),%edx |
| ++ andl $1073741823,%ecx |
| ++ leal (%edx,%edx,1),%ebp |
| ++ movl $0,(%esp) |
| ++ andl $2147483647,%edx |
| ++ movd %eax,%mm2 |
| ++ movd %ebx,%mm3 |
| ++ movl %ecx,4(%esp) |
| ++ xorl %edx,%ecx |
| ++ pxor %mm5,%mm5 |
| ++ pxor %mm4,%mm4 |
| ++ movl %edx,8(%esp) |
| ++ xorl %ebp,%edx |
| ++ movl %ecx,12(%esp) |
| ++ pcmpgtd %mm2,%mm5 |
| ++ paddd %mm2,%mm2 |
| ++ xorl %edx,%ecx |
| ++ movl %ebp,16(%esp) |
| ++ xorl %edx,%ebp |
| ++ pand %mm3,%mm5 |
| ++ pcmpgtd %mm2,%mm4 |
| ++ movl %ecx,20(%esp) |
| ++ xorl %ecx,%ebp |
| ++ psllq $31,%mm5 |
| ++ pand %mm3,%mm4 |
| ++ movl %edx,24(%esp) |
| ++ movl $7,%esi |
| ++ movl %ebp,28(%esp) |
| ++ movl %esi,%ebp |
| ++ andl %ebx,%esi |
| ++ shrl $3,%ebx |
| ++ movl %ebp,%edi |
| ++ psllq $30,%mm4 |
| ++ andl %ebx,%edi |
| ++ shrl $3,%ebx |
| ++ movd (%esp,%esi,4),%mm0 |
| ++ movl %ebp,%esi |
| ++ andl %ebx,%esi |
| ++ shrl $3,%ebx |
| ++ movd (%esp,%edi,4),%mm2 |
| ++ movl %ebp,%edi |
| ++ psllq $3,%mm2 |
| ++ andl %ebx,%edi |
| ++ shrl $3,%ebx |
| ++ pxor %mm2,%mm0 |
| ++ movd (%esp,%esi,4),%mm1 |
| ++ movl %ebp,%esi |
| ++ psllq $6,%mm1 |
| ++ andl %ebx,%esi |
| ++ shrl $3,%ebx |
| ++ pxor %mm1,%mm0 |
| ++ movd (%esp,%edi,4),%mm2 |
| ++ movl %ebp,%edi |
| ++ psllq $9,%mm2 |
| ++ andl %ebx,%edi |
| ++ shrl $3,%ebx |
| ++ pxor %mm2,%mm0 |
| ++ movd (%esp,%esi,4),%mm1 |
| ++ movl %ebp,%esi |
| ++ psllq $12,%mm1 |
| ++ andl %ebx,%esi |
| ++ shrl $3,%ebx |
| ++ pxor %mm1,%mm0 |
| ++ movd (%esp,%edi,4),%mm2 |
| ++ movl %ebp,%edi |
| ++ psllq $15,%mm2 |
| ++ andl %ebx,%edi |
| ++ shrl $3,%ebx |
| ++ pxor %mm2,%mm0 |
| ++ movd (%esp,%esi,4),%mm1 |
| ++ movl %ebp,%esi |
| ++ psllq $18,%mm1 |
| ++ andl %ebx,%esi |
| ++ shrl $3,%ebx |
| ++ pxor %mm1,%mm0 |
| ++ movd (%esp,%edi,4),%mm2 |
| ++ movl %ebp,%edi |
| ++ psllq $21,%mm2 |
| ++ andl %ebx,%edi |
| ++ shrl $3,%ebx |
| ++ pxor %mm2,%mm0 |
| ++ movd (%esp,%esi,4),%mm1 |
| ++ movl %ebp,%esi |
| ++ psllq $24,%mm1 |
| ++ andl %ebx,%esi |
| ++ shrl $3,%ebx |
| ++ pxor %mm1,%mm0 |
| ++ movd (%esp,%edi,4),%mm2 |
| ++ pxor %mm4,%mm0 |
| ++ psllq $27,%mm2 |
| ++ pxor %mm2,%mm0 |
| ++ movd (%esp,%esi,4),%mm1 |
| ++ pxor %mm5,%mm0 |
| ++ psllq $30,%mm1 |
| ++ addl $36,%esp |
| ++ pxor %mm1,%mm0 |
| ++ ret |
| ++.align 4 |
| ++__mul_1x1_ialu: |
| ++ subl $36,%esp |
| ++ movl %eax,%ecx |
| ++ leal (%eax,%eax,1),%edx |
| ++ leal (,%eax,4),%ebp |
| ++ andl $1073741823,%ecx |
| ++ leal (%eax,%eax,1),%edi |
| ++ sarl $31,%eax |
| ++ movl $0,(%esp) |
| ++ andl $2147483647,%edx |
| ++ movl %ecx,4(%esp) |
| ++ xorl %edx,%ecx |
| ++ movl %edx,8(%esp) |
| ++ xorl %ebp,%edx |
| ++ movl %ecx,12(%esp) |
| ++ xorl %edx,%ecx |
| ++ movl %ebp,16(%esp) |
| ++ xorl %edx,%ebp |
| ++ movl %ecx,20(%esp) |
| ++ xorl %ecx,%ebp |
| ++ sarl $31,%edi |
| ++ andl %ebx,%eax |
| ++ movl %edx,24(%esp) |
| ++ andl %ebx,%edi |
| ++ movl %ebp,28(%esp) |
| ++ movl %eax,%edx |
| ++ shll $31,%eax |
| ++ movl %edi,%ecx |
| ++ shrl $1,%edx |
| ++ movl $7,%esi |
| ++ shll $30,%edi |
| ++ andl %ebx,%esi |
| ++ shrl $2,%ecx |
| ++ xorl %edi,%eax |
| ++ shrl $3,%ebx |
| ++ movl $7,%edi |
| ++ andl %ebx,%edi |
| ++ shrl $3,%ebx |
| ++ xorl %ecx,%edx |
| ++ xorl (%esp,%esi,4),%eax |
| ++ movl $7,%esi |
| ++ andl %ebx,%esi |
| ++ shrl $3,%ebx |
| ++ movl (%esp,%edi,4),%ebp |
| ++ movl $7,%edi |
| ++ movl %ebp,%ecx |
| ++ shll $3,%ebp |
| ++ andl %ebx,%edi |
| ++ shrl $29,%ecx |
| ++ xorl %ebp,%eax |
| ++ shrl $3,%ebx |
| ++ xorl %ecx,%edx |
| ++ movl (%esp,%esi,4),%ecx |
| ++ movl $7,%esi |
| ++ movl %ecx,%ebp |
| ++ shll $6,%ecx |
| ++ andl %ebx,%esi |
| ++ shrl $26,%ebp |
| ++ xorl %ecx,%eax |
| ++ shrl $3,%ebx |
| ++ xorl %ebp,%edx |
| ++ movl (%esp,%edi,4),%ebp |
| ++ movl $7,%edi |
| ++ movl %ebp,%ecx |
| ++ shll $9,%ebp |
| ++ andl %ebx,%edi |
| ++ shrl $23,%ecx |
| ++ xorl %ebp,%eax |
| ++ shrl $3,%ebx |
| ++ xorl %ecx,%edx |
| ++ movl (%esp,%esi,4),%ecx |
| ++ movl $7,%esi |
| ++ movl %ecx,%ebp |
| ++ shll $12,%ecx |
| ++ andl %ebx,%esi |
| ++ shrl $20,%ebp |
| ++ xorl %ecx,%eax |
| ++ shrl $3,%ebx |
| ++ xorl %ebp,%edx |
| ++ movl (%esp,%edi,4),%ebp |
| ++ movl $7,%edi |
| ++ movl %ebp,%ecx |
| ++ shll $15,%ebp |
| ++ andl %ebx,%edi |
| ++ shrl $17,%ecx |
| ++ xorl %ebp,%eax |
| ++ shrl $3,%ebx |
| ++ xorl %ecx,%edx |
| ++ movl (%esp,%esi,4),%ecx |
| ++ movl $7,%esi |
| ++ movl %ecx,%ebp |
| ++ shll $18,%ecx |
| ++ andl %ebx,%esi |
| ++ shrl $14,%ebp |
| ++ xorl %ecx,%eax |
| ++ shrl $3,%ebx |
| ++ xorl %ebp,%edx |
| ++ movl (%esp,%edi,4),%ebp |
| ++ movl $7,%edi |
| ++ movl %ebp,%ecx |
| ++ shll $21,%ebp |
| ++ andl %ebx,%edi |
| ++ shrl $11,%ecx |
| ++ xorl %ebp,%eax |
| ++ shrl $3,%ebx |
| ++ xorl %ecx,%edx |
| ++ movl (%esp,%esi,4),%ecx |
| ++ movl $7,%esi |
| ++ movl %ecx,%ebp |
| ++ shll $24,%ecx |
| ++ andl %ebx,%esi |
| ++ shrl $8,%ebp |
| ++ xorl %ecx,%eax |
| ++ shrl $3,%ebx |
| ++ xorl %ebp,%edx |
| ++ movl (%esp,%edi,4),%ebp |
| ++ movl %ebp,%ecx |
| ++ shll $27,%ebp |
| ++ movl (%esp,%esi,4),%edi |
| ++ shrl $5,%ecx |
| ++ movl %edi,%esi |
| ++ xorl %ebp,%eax |
| ++ shll $30,%edi |
| ++ xorl %ecx,%edx |
| ++ shrl $2,%esi |
| ++ xorl %edi,%eax |
| ++ xorl %esi,%edx |
| ++ addl $36,%esp |
| ++ ret |
| ++.globl _bn_GF2m_mul_2x2 |
| ++.align 4 |
| ++_bn_GF2m_mul_2x2: |
| ++L_bn_GF2m_mul_2x2_begin: |
| ++ call L000PIC_me_up |
| ++L000PIC_me_up: |
| ++ popl %edx |
| ++ movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L000PIC_me_up(%edx),%edx |
| ++ movl (%edx),%eax |
| ++ movl 4(%edx),%edx |
| ++ testl $8388608,%eax |
| ++ jz L001ialu |
| ++ pushl %ebp |
| ++ pushl %ebx |
| ++ pushl %esi |
| ++ pushl %edi |
| ++ movl 24(%esp),%eax |
| ++ movl 32(%esp),%ebx |
| ++ call __mul_1x1_mmx |
| ++ movq %mm0,%mm7 |
| ++ movl 28(%esp),%eax |
| ++ movl 36(%esp),%ebx |
| ++ call __mul_1x1_mmx |
| ++ movq %mm0,%mm6 |
| ++ movl 24(%esp),%eax |
| ++ movl 32(%esp),%ebx |
| ++ xorl 28(%esp),%eax |
| ++ xorl 36(%esp),%ebx |
| ++ call __mul_1x1_mmx |
| ++ pxor %mm7,%mm0 |
| ++ movl 20(%esp),%eax |
| ++ pxor %mm6,%mm0 |
| ++ movq %mm0,%mm2 |
| ++ psllq $32,%mm0 |
| ++ popl %edi |
| ++ psrlq $32,%mm2 |
| ++ popl %esi |
| ++ pxor %mm6,%mm0 |
| ++ popl %ebx |
| ++ pxor %mm7,%mm2 |
| ++ movq %mm0,(%eax) |
| ++ popl %ebp |
| ++ movq %mm2,8(%eax) |
| ++ emms |
| ++ ret |
| ++.align 4,0x90 |
| ++L001ialu: |
| ++ pushl %ebp |
| ++ pushl %ebx |
| ++ pushl %esi |
| ++ pushl %edi |
| ++ subl $20,%esp |
| ++ movl 44(%esp),%eax |
| ++ movl 52(%esp),%ebx |
| ++ call __mul_1x1_ialu |
| ++ movl %eax,8(%esp) |
| ++ movl %edx,12(%esp) |
| ++ movl 48(%esp),%eax |
| ++ movl 56(%esp),%ebx |
| ++ call __mul_1x1_ialu |
| ++ movl %eax,(%esp) |
| ++ movl %edx,4(%esp) |
| ++ movl 44(%esp),%eax |
| ++ movl 52(%esp),%ebx |
| ++ xorl 48(%esp),%eax |
| ++ xorl 56(%esp),%ebx |
| ++ call __mul_1x1_ialu |
| ++ movl 40(%esp),%ebp |
| ++ movl (%esp),%ebx |
| ++ movl 4(%esp),%ecx |
| ++ movl 8(%esp),%edi |
| ++ movl 12(%esp),%esi |
| ++ xorl %edx,%eax |
| ++ xorl %ecx,%edx |
| ++ xorl %ebx,%eax |
| ++ movl %ebx,(%ebp) |
| ++ xorl %edi,%edx |
| ++ movl %esi,12(%ebp) |
| ++ xorl %esi,%eax |
| ++ addl $20,%esp |
| ++ xorl %esi,%edx |
| ++ popl %edi |
| ++ xorl %edx,%eax |
| ++ popl %esi |
| ++ movl %edx,8(%ebp) |
| ++ popl %ebx |
| ++ movl %eax,4(%ebp) |
| ++ popl %ebp |
| ++ ret |
| ++.byte 71,70,40,50,94,109,41,32,77,117,108,116,105,112,108,105 |
| ++.byte 99,97,116,105,111,110,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 |
| ++.section __IMPORT,__pointers,non_lazy_symbol_pointers |
| ++L_OPENSSL_ia32cap_P$non_lazy_ptr: |
| ++.indirect_symbol _OPENSSL_ia32cap_P |
| ++.long 0 |
| ++.comm _OPENSSL_ia32cap_P,8,2 |
| +diff --git a/crypto/bn/asm/x86-mont-mac.S b/crypto/bn/asm/x86-mont-mac.S |
| +new file mode 100644 |
| +index 0000000..aab259a |
| +--- /dev/null |
| ++++ b/crypto/bn/asm/x86-mont-mac.S |
| +@@ -0,0 +1,336 @@ |
| ++.file "crypto/bn/asm/x86-mont.s" |
| ++.text |
| ++.globl _bn_mul_mont |
| ++.align 4 |
| ++_bn_mul_mont: |
| ++L_bn_mul_mont_begin: |
| ++ pushl %ebp |
| ++ pushl %ebx |
| ++ pushl %esi |
| ++ pushl %edi |
| ++ xorl %eax,%eax |
| ++ movl 40(%esp),%edi |
| ++ cmpl $4,%edi |
| ++ jl L000just_leave |
| ++ leal 20(%esp),%esi |
| ++ leal 24(%esp),%edx |
| ++ movl %esp,%ebp |
| ++ addl $2,%edi |
| ++ negl %edi |
| ++ leal -32(%esp,%edi,4),%esp |
| ++ negl %edi |
| ++ movl %esp,%eax |
| ++ subl %edx,%eax |
| ++ andl $2047,%eax |
| ++ subl %eax,%esp |
| ++ xorl %esp,%edx |
| ++ andl $2048,%edx |
| ++ xorl $2048,%edx |
| ++ subl %edx,%esp |
| ++ andl $-64,%esp |
| ++ movl (%esi),%eax |
| ++ movl 4(%esi),%ebx |
| ++ movl 8(%esi),%ecx |
| ++ movl 12(%esi),%edx |
| ++ movl 16(%esi),%esi |
| ++ movl (%esi),%esi |
| ++ movl %eax,4(%esp) |
| ++ movl %ebx,8(%esp) |
| ++ movl %ecx,12(%esp) |
| ++ movl %edx,16(%esp) |
| ++ movl %esi,20(%esp) |
| ++ leal -3(%edi),%ebx |
| ++ movl %ebp,24(%esp) |
| ++ movl 8(%esp),%esi |
| ++ leal 1(%ebx),%ebp |
| ++ movl 12(%esp),%edi |
| ++ xorl %ecx,%ecx |
| ++ movl %esi,%edx |
| ++ andl $1,%ebp |
| ++ subl %edi,%edx |
| ++ leal 4(%edi,%ebx,4),%eax |
| ++ orl %edx,%ebp |
| ++ movl (%edi),%edi |
| ++ jz L001bn_sqr_mont |
| ++ movl %eax,28(%esp) |
| ++ movl (%esi),%eax |
| ++ xorl %edx,%edx |
| ++.align 4,0x90 |
| ++L002mull: |
| ++ movl %edx,%ebp |
| ++ mull %edi |
| ++ addl %eax,%ebp |
| ++ leal 1(%ecx),%ecx |
| ++ adcl $0,%edx |
| ++ movl (%esi,%ecx,4),%eax |
| ++ cmpl %ebx,%ecx |
| ++ movl %ebp,28(%esp,%ecx,4) |
| ++ jl L002mull |
| ++ movl %edx,%ebp |
| ++ mull %edi |
| ++ movl 20(%esp),%edi |
| ++ addl %ebp,%eax |
| ++ movl 16(%esp),%esi |
| ++ adcl $0,%edx |
| ++ imull 32(%esp),%edi |
| ++ movl %eax,32(%esp,%ebx,4) |
| ++ xorl %ecx,%ecx |
| ++ movl %edx,36(%esp,%ebx,4) |
| ++ movl %ecx,40(%esp,%ebx,4) |
| ++ movl (%esi),%eax |
| ++ mull %edi |
| ++ addl 32(%esp),%eax |
| ++ movl 4(%esi),%eax |
| ++ adcl $0,%edx |
| ++ incl %ecx |
| ++ jmp L0032ndmadd |
| ++.align 4,0x90 |
| ++L0041stmadd: |
| ++ movl %edx,%ebp |
| ++ mull %edi |
| ++ addl 32(%esp,%ecx,4),%ebp |
| ++ leal 1(%ecx),%ecx |
| ++ adcl $0,%edx |
| ++ addl %eax,%ebp |
| ++ movl (%esi,%ecx,4),%eax |
| ++ adcl $0,%edx |
| ++ cmpl %ebx,%ecx |
| ++ movl %ebp,28(%esp,%ecx,4) |
| ++ jl L0041stmadd |
| ++ movl %edx,%ebp |
| ++ mull %edi |
| ++ addl 32(%esp,%ebx,4),%eax |
| ++ movl 20(%esp),%edi |
| ++ adcl $0,%edx |
| ++ movl 16(%esp),%esi |
| ++ addl %eax,%ebp |
| ++ adcl $0,%edx |
| ++ imull 32(%esp),%edi |
| ++ xorl %ecx,%ecx |
| ++ addl 36(%esp,%ebx,4),%edx |
| ++ movl %ebp,32(%esp,%ebx,4) |
| ++ adcl $0,%ecx |
| ++ movl (%esi),%eax |
| ++ movl %edx,36(%esp,%ebx,4) |
| ++ movl %ecx,40(%esp,%ebx,4) |
| ++ mull %edi |
| ++ addl 32(%esp),%eax |
| ++ movl 4(%esi),%eax |
| ++ adcl $0,%edx |
| ++ movl $1,%ecx |
| ++.align 4,0x90 |
| ++L0032ndmadd: |
| ++ movl %edx,%ebp |
| ++ mull %edi |
| ++ addl 32(%esp,%ecx,4),%ebp |
| ++ leal 1(%ecx),%ecx |
| ++ adcl $0,%edx |
| ++ addl %eax,%ebp |
| ++ movl (%esi,%ecx,4),%eax |
| ++ adcl $0,%edx |
| ++ cmpl %ebx,%ecx |
| ++ movl %ebp,24(%esp,%ecx,4) |
| ++ jl L0032ndmadd |
| ++ movl %edx,%ebp |
| ++ mull %edi |
| ++ addl 32(%esp,%ebx,4),%ebp |
| ++ adcl $0,%edx |
| ++ addl %eax,%ebp |
| ++ adcl $0,%edx |
| ++ movl %ebp,28(%esp,%ebx,4) |
| ++ xorl %eax,%eax |
| ++ movl 12(%esp),%ecx |
| ++ addl 36(%esp,%ebx,4),%edx |
| ++ adcl 40(%esp,%ebx,4),%eax |
| ++ leal 4(%ecx),%ecx |
| ++ movl %edx,32(%esp,%ebx,4) |
| ++ cmpl 28(%esp),%ecx |
| ++ movl %eax,36(%esp,%ebx,4) |
| ++ je L005common_tail |
| ++ movl (%ecx),%edi |
| ++ movl 8(%esp),%esi |
| ++ movl %ecx,12(%esp) |
| ++ xorl %ecx,%ecx |
| ++ xorl %edx,%edx |
| ++ movl (%esi),%eax |
| ++ jmp L0041stmadd |
| ++.align 4,0x90 |
| ++L001bn_sqr_mont: |
| ++ movl %ebx,(%esp) |
| ++ movl %ecx,12(%esp) |
| ++ movl %edi,%eax |
| ++ mull %edi |
| ++ movl %eax,32(%esp) |
| ++ movl %edx,%ebx |
| ++ shrl $1,%edx |
| ++ andl $1,%ebx |
| ++ incl %ecx |
| ++.align 4,0x90 |
| ++L006sqr: |
| ++ movl (%esi,%ecx,4),%eax |
| ++ movl %edx,%ebp |
| ++ mull %edi |
| ++ addl %ebp,%eax |
| ++ leal 1(%ecx),%ecx |
| ++ adcl $0,%edx |
| ++ leal (%ebx,%eax,2),%ebp |
| ++ shrl $31,%eax |
| ++ cmpl (%esp),%ecx |
| ++ movl %eax,%ebx |
| ++ movl %ebp,28(%esp,%ecx,4) |
| ++ jl L006sqr |
| ++ movl (%esi,%ecx,4),%eax |
| ++ movl %edx,%ebp |
| ++ mull %edi |
| ++ addl %ebp,%eax |
| ++ movl 20(%esp),%edi |
| ++ adcl $0,%edx |
| ++ movl 16(%esp),%esi |
| ++ leal (%ebx,%eax,2),%ebp |
| ++ imull 32(%esp),%edi |
| ++ shrl $31,%eax |
| ++ movl %ebp,32(%esp,%ecx,4) |
| ++ leal (%eax,%edx,2),%ebp |
| ++ movl (%esi),%eax |
| ++ shrl $31,%edx |
| ++ movl %ebp,36(%esp,%ecx,4) |
| ++ movl %edx,40(%esp,%ecx,4) |
| ++ mull %edi |
| ++ addl 32(%esp),%eax |
| ++ movl %ecx,%ebx |
| ++ adcl $0,%edx |
| ++ movl 4(%esi),%eax |
| ++ movl $1,%ecx |
| ++.align 4,0x90 |
| ++L0073rdmadd: |
| ++ movl %edx,%ebp |
| ++ mull %edi |
| ++ addl 32(%esp,%ecx,4),%ebp |
| ++ adcl $0,%edx |
| ++ addl %eax,%ebp |
| ++ movl 4(%esi,%ecx,4),%eax |
| ++ adcl $0,%edx |
| ++ movl %ebp,28(%esp,%ecx,4) |
| ++ movl %edx,%ebp |
| ++ mull %edi |
| ++ addl 36(%esp,%ecx,4),%ebp |
| ++ leal 2(%ecx),%ecx |
| ++ adcl $0,%edx |
| ++ addl %eax,%ebp |
| ++ movl (%esi,%ecx,4),%eax |
| ++ adcl $0,%edx |
| ++ cmpl %ebx,%ecx |
| ++ movl %ebp,24(%esp,%ecx,4) |
| ++ jl L0073rdmadd |
| ++ movl %edx,%ebp |
| ++ mull %edi |
| ++ addl 32(%esp,%ebx,4),%ebp |
| ++ adcl $0,%edx |
| ++ addl %eax,%ebp |
| ++ adcl $0,%edx |
| ++ movl %ebp,28(%esp,%ebx,4) |
| ++ movl 12(%esp),%ecx |
| ++ xorl %eax,%eax |
| ++ movl 8(%esp),%esi |
| ++ addl 36(%esp,%ebx,4),%edx |
| ++ adcl 40(%esp,%ebx,4),%eax |
| ++ movl %edx,32(%esp,%ebx,4) |
| ++ cmpl %ebx,%ecx |
| ++ movl %eax,36(%esp,%ebx,4) |
| ++ je L005common_tail |
| ++ movl 4(%esi,%ecx,4),%edi |
| ++ leal 1(%ecx),%ecx |
| ++ movl %edi,%eax |
| ++ movl %ecx,12(%esp) |
| ++ mull %edi |
| ++ addl 32(%esp,%ecx,4),%eax |
| ++ adcl $0,%edx |
| ++ movl %eax,32(%esp,%ecx,4) |
| ++ xorl %ebp,%ebp |
| ++ cmpl %ebx,%ecx |
| ++ leal 1(%ecx),%ecx |
| ++ je L008sqrlast |
| ++ movl %edx,%ebx |
| ++ shrl $1,%edx |
| ++ andl $1,%ebx |
| ++.align 4,0x90 |
| ++L009sqradd: |
| ++ movl (%esi,%ecx,4),%eax |
| ++ movl %edx,%ebp |
| ++ mull %edi |
| ++ addl %ebp,%eax |
| ++ leal (%eax,%eax,1),%ebp |
| ++ adcl $0,%edx |
| ++ shrl $31,%eax |
| ++ addl 32(%esp,%ecx,4),%ebp |
| ++ leal 1(%ecx),%ecx |
| ++ adcl $0,%eax |
| ++ addl %ebx,%ebp |
| ++ adcl $0,%eax |
| ++ cmpl (%esp),%ecx |
| ++ movl %ebp,28(%esp,%ecx,4) |
| ++ movl %eax,%ebx |
| ++ jle L009sqradd |
| ++ movl %edx,%ebp |
| ++ addl %edx,%edx |
| ++ shrl $31,%ebp |
| ++ addl %ebx,%edx |
| ++ adcl $0,%ebp |
| ++L008sqrlast: |
| ++ movl 20(%esp),%edi |
| ++ movl 16(%esp),%esi |
| ++ imull 32(%esp),%edi |
| ++ addl 32(%esp,%ecx,4),%edx |
| ++ movl (%esi),%eax |
| ++ adcl $0,%ebp |
| ++ movl %edx,32(%esp,%ecx,4) |
| ++ movl %ebp,36(%esp,%ecx,4) |
| ++ mull %edi |
| ++ addl 32(%esp),%eax |
| ++ leal -1(%ecx),%ebx |
| ++ adcl $0,%edx |
| ++ movl $1,%ecx |
| ++ movl 4(%esi),%eax |
| ++ jmp L0073rdmadd |
| ++.align 4,0x90 |
| ++L005common_tail: |
| ++ movl 16(%esp),%ebp |
| ++ movl 4(%esp),%edi |
| ++ leal 32(%esp),%esi |
| ++ movl (%esi),%eax |
| ++ movl %ebx,%ecx |
| ++ xorl %edx,%edx |
| ++.align 4,0x90 |
| ++L010sub: |
| ++ sbbl (%ebp,%edx,4),%eax |
| ++ movl %eax,(%edi,%edx,4) |
| ++ decl %ecx |
| ++ movl 4(%esi,%edx,4),%eax |
| ++ leal 1(%edx),%edx |
| ++ jge L010sub |
| ++ sbbl $0,%eax |
| ++ andl %eax,%esi |
| ++ notl %eax |
| ++ movl %edi,%ebp |
| ++ andl %eax,%ebp |
| ++ orl %ebp,%esi |
| ++.align 4,0x90 |
| ++L011copy: |
| ++ movl (%esi,%ebx,4),%eax |
| ++ movl %eax,(%edi,%ebx,4) |
| ++ movl %ecx,32(%esp,%ebx,4) |
| ++ decl %ebx |
| ++ jge L011copy |
| ++ movl 24(%esp),%esp |
| ++ movl $1,%eax |
| ++L000just_leave: |
| ++ popl %edi |
| ++ popl %esi |
| ++ popl %ebx |
| ++ popl %ebp |
| ++ ret |
| ++.byte 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105 |
| ++.byte 112,108,105,99,97,116,105,111,110,32,102,111,114,32,120,56 |
| ++.byte 54,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121 |
| ++.byte 32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46 |
| ++.byte 111,114,103,62,0 |
| +diff --git a/crypto/des/asm/crypt586-mac.S b/crypto/des/asm/crypt586-mac.S |
| +new file mode 100644 |
| +index 0000000..9156a65 |
| +--- /dev/null |
| ++++ b/crypto/des/asm/crypt586-mac.S |
| +@@ -0,0 +1,880 @@ |
| ++.file "crypt586.s" |
| ++.text |
| ++.globl _fcrypt_body |
| ++.align 4 |
| ++_fcrypt_body: |
| ++L_fcrypt_body_begin: |
| ++ pushl %ebp |
| ++ pushl %ebx |
| ++ pushl %esi |
| ++ pushl %edi |
| ++ |
| ++ # Load the 2 words |
| ++ xorl %edi,%edi |
| ++ xorl %esi,%esi |
| ++ call L000PIC_me_up |
| ++L000PIC_me_up: |
| ++ popl %edx |
| ++ movl L_DES_SPtrans$non_lazy_ptr-L000PIC_me_up(%edx),%edx |
| ++ pushl %edx |
| ++ movl 28(%esp),%ebp |
| ++ pushl $25 |
| ++L001start: |
| ++ |
| ++ # Round 0 |
| ++ movl 36(%esp),%eax |
| ++ movl %esi,%edx |
| ++ shrl $16,%edx |
| ++ movl 40(%esp),%ecx |
| ++ xorl %esi,%edx |
| ++ andl %edx,%eax |
| ++ andl %ecx,%edx |
| ++ movl %eax,%ebx |
| ++ shll $16,%ebx |
| ++ movl %edx,%ecx |
| ++ shll $16,%ecx |
| ++ xorl %ebx,%eax |
| ++ xorl %ecx,%edx |
| ++ movl (%ebp),%ebx |
| ++ xorl %ebx,%eax |
| ++ movl 4(%ebp),%ecx |
| ++ xorl %esi,%eax |
| ++ xorl %esi,%edx |
| ++ xorl %ecx,%edx |
| ++ andl $0xfcfcfcfc,%eax |
| ++ xorl %ebx,%ebx |
| ++ andl $0xcfcfcfcf,%edx |
| ++ xorl %ecx,%ecx |
| ++ movb %al,%bl |
| ++ movb %ah,%cl |
| ++ rorl $4,%edx |
| ++ movl 4(%esp),%ebp |
| ++ xorl (%ebp,%ebx,1),%edi |
| ++ movb %dl,%bl |
| ++ xorl 0x200(%ebp,%ecx,1),%edi |
| ++ movb %dh,%cl |
| ++ shrl $16,%eax |
| ++ xorl 0x100(%ebp,%ebx,1),%edi |
| ++ movb %ah,%bl |
| ++ shrl $16,%edx |
| ++ xorl 0x300(%ebp,%ecx,1),%edi |
| ++ movb %dh,%cl |
| ++ andl $0xff,%eax |
| ++ andl $0xff,%edx |
| ++ movl 0x600(%ebp,%ebx,1),%ebx |
| ++ xorl %ebx,%edi |
| ++ movl 0x700(%ebp,%ecx,1),%ebx |
| ++ xorl %ebx,%edi |
| ++ movl 0x400(%ebp,%eax,1),%ebx |
| ++ xorl %ebx,%edi |
| ++ movl 0x500(%ebp,%edx,1),%ebx |
| ++ xorl %ebx,%edi |
| ++ movl 32(%esp),%ebp |
| ++ |
| ++ # Round 1 |
| ++ movl 36(%esp),%eax |
| ++ movl %edi,%edx |
| ++ shrl $16,%edx |
| ++ movl 40(%esp),%ecx |
| ++ xorl %edi,%edx |
| ++ andl %edx,%eax |
| ++ andl %ecx,%edx |
| ++ movl %eax,%ebx |
| ++ shll $16,%ebx |
| ++ movl %edx,%ecx |
| ++ shll $16,%ecx |
| ++ xorl %ebx,%eax |
| ++ xorl %ecx,%edx |
| ++ movl 8(%ebp),%ebx |
| ++ xorl %ebx,%eax |
| ++ movl 12(%ebp),%ecx |
| ++ xorl %edi,%eax |
| ++ xorl %edi,%edx |
| ++ xorl %ecx,%edx |
| ++ andl $0xfcfcfcfc,%eax |
| ++ xorl %ebx,%ebx |
| ++ andl $0xcfcfcfcf,%edx |
| ++ xorl %ecx,%ecx |
| ++ movb %al,%bl |
| ++ movb %ah,%cl |
| ++ rorl $4,%edx |
| ++ movl 4(%esp),%ebp |
| ++ xorl (%ebp,%ebx,1),%esi |
| ++ movb %dl,%bl |
| ++ xorl 0x200(%ebp,%ecx,1),%esi |
| ++ movb %dh,%cl |
| ++ shrl $16,%eax |
| ++ xorl 0x100(%ebp,%ebx,1),%esi |
| ++ movb %ah,%bl |
| ++ shrl $16,%edx |
| ++ xorl 0x300(%ebp,%ecx,1),%esi |
| ++ movb %dh,%cl |
| ++ andl $0xff,%eax |
| ++ andl $0xff,%edx |
| ++ movl 0x600(%ebp,%ebx,1),%ebx |
| ++ xorl %ebx,%esi |
| ++ movl 0x700(%ebp,%ecx,1),%ebx |
| ++ xorl %ebx,%esi |
| ++ movl 0x400(%ebp,%eax,1),%ebx |
| ++ xorl %ebx,%esi |
| ++ movl 0x500(%ebp,%edx,1),%ebx |
| ++ xorl %ebx,%esi |
| ++ movl 32(%esp),%ebp |
| ++ |
| ++ # Round 2 |
| ++ movl 36(%esp),%eax |
| ++ movl %esi,%edx |
| ++ shrl $16,%edx |
| ++ movl 40(%esp),%ecx |
| ++ xorl %esi,%edx |
| ++ andl %edx,%eax |
| ++ andl %ecx,%edx |
| ++ movl %eax,%ebx |
| ++ shll $16,%ebx |
| ++ movl %edx,%ecx |
| ++ shll $16,%ecx |
| ++ xorl %ebx,%eax |
| ++ xorl %ecx,%edx |
| ++ movl 16(%ebp),%ebx |
| ++ xorl %ebx,%eax |
| ++ movl 20(%ebp),%ecx |
| ++ xorl %esi,%eax |
| ++ xorl %esi,%edx |
| ++ xorl %ecx,%edx |
| ++ andl $0xfcfcfcfc,%eax |
| ++ xorl %ebx,%ebx |
| ++ andl $0xcfcfcfcf,%edx |
| ++ xorl %ecx,%ecx |
| ++ movb %al,%bl |
| ++ movb %ah,%cl |
| ++ rorl $4,%edx |
| ++ movl 4(%esp),%ebp |
| ++ xorl (%ebp,%ebx,1),%edi |
| ++ movb %dl,%bl |
| ++ xorl 0x200(%ebp,%ecx,1),%edi |
| ++ movb %dh,%cl |
| ++ shrl $16,%eax |
| ++ xorl 0x100(%ebp,%ebx,1),%edi |
| ++ movb %ah,%bl |
| ++ shrl $16,%edx |
| ++ xorl 0x300(%ebp,%ecx,1),%edi |
| ++ movb %dh,%cl |
| ++ andl $0xff,%eax |
| ++ andl $0xff,%edx |
| ++ movl 0x600(%ebp,%ebx,1),%ebx |
| ++ xorl %ebx,%edi |
| ++ movl 0x700(%ebp,%ecx,1),%ebx |
| ++ xorl %ebx,%edi |
| ++ movl 0x400(%ebp,%eax,1),%ebx |
| ++ xorl %ebx,%edi |
| ++ movl 0x500(%ebp,%edx,1),%ebx |
| ++ xorl %ebx,%edi |
| ++ movl 32(%esp),%ebp |
| ++ |
| ++ # Round 3 |
| ++ movl 36(%esp),%eax |
| ++ movl %edi,%edx |
| ++ shrl $16,%edx |
| ++ movl 40(%esp),%ecx |
| ++ xorl %edi,%edx |
| ++ andl %edx,%eax |
| ++ andl %ecx,%edx |
| ++ movl %eax,%ebx |
| ++ shll $16,%ebx |
| ++ movl %edx,%ecx |
| ++ shll $16,%ecx |
| ++ xorl %ebx,%eax |
| ++ xorl %ecx,%edx |
| ++ movl 24(%ebp),%ebx |
| ++ xorl %ebx,%eax |
| ++ movl 28(%ebp),%ecx |
| ++ xorl %edi,%eax |
| ++ xorl %edi,%edx |
| ++ xorl %ecx,%edx |
| ++ andl $0xfcfcfcfc,%eax |
| ++ xorl %ebx,%ebx |
| ++ andl $0xcfcfcfcf,%edx |
| ++ xorl %ecx,%ecx |
| ++ movb %al,%bl |
| ++ movb %ah,%cl |
| ++ rorl $4,%edx |
| ++ movl 4(%esp),%ebp |
| ++ xorl (%ebp,%ebx,1),%esi |
| ++ movb %dl,%bl |
| ++ xorl 0x200(%ebp,%ecx,1),%esi |
| ++ movb %dh,%cl |
| ++ shrl $16,%eax |
| ++ xorl 0x100(%ebp,%ebx,1),%esi |
| ++ movb %ah,%bl |
| ++ shrl $16,%edx |
| ++ xorl 0x300(%ebp,%ecx,1),%esi |
| ++ movb %dh,%cl |
| ++ andl $0xff,%eax |
| ++ andl $0xff,%edx |
| ++ movl 0x600(%ebp,%ebx,1),%ebx |
| ++ xorl %ebx,%esi |
| ++ movl 0x700(%ebp,%ecx,1),%ebx |
| ++ xorl %ebx,%esi |
| ++ movl 0x400(%ebp,%eax,1),%ebx |
| ++ xorl %ebx,%esi |
| ++ movl 0x500(%ebp,%edx,1),%ebx |
| ++ xorl %ebx,%esi |
| ++ movl 32(%esp),%ebp |
| ++ |
| ++ # Round 4 |
| ++ movl 36(%esp),%eax |
| ++ movl %esi,%edx |
| ++ shrl $16,%edx |
| ++ movl 40(%esp),%ecx |
| ++ xorl %esi,%edx |
| ++ andl %edx,%eax |
| ++ andl %ecx,%edx |
| ++ movl %eax,%ebx |
| ++ shll $16,%ebx |
| ++ movl %edx,%ecx |
| ++ shll $16,%ecx |
| ++ xorl %ebx,%eax |
| ++ xorl %ecx,%edx |
| ++ movl 32(%ebp),%ebx |
| ++ xorl %ebx,%eax |
| ++ movl 36(%ebp),%ecx |
| ++ xorl %esi,%eax |
| ++ xorl %esi,%edx |
| ++ xorl %ecx,%edx |
| ++ andl $0xfcfcfcfc,%eax |
| ++ xorl %ebx,%ebx |
| ++ andl $0xcfcfcfcf,%edx |
| ++ xorl %ecx,%ecx |
| ++ movb %al,%bl |
| ++ movb %ah,%cl |
| ++ rorl $4,%edx |
| ++ movl 4(%esp),%ebp |
| ++ xorl (%ebp,%ebx,1),%edi |
| ++ movb %dl,%bl |
| ++ xorl 0x200(%ebp,%ecx,1),%edi |
| ++ movb %dh,%cl |
| ++ shrl $16,%eax |
| ++ xorl 0x100(%ebp,%ebx,1),%edi |
| ++ movb %ah,%bl |
| ++ shrl $16,%edx |
| ++ xorl 0x300(%ebp,%ecx,1),%edi |
| ++ movb %dh,%cl |
| ++ andl $0xff,%eax |
| ++ andl $0xff,%edx |
| ++ movl 0x600(%ebp,%ebx,1),%ebx |
| ++ xorl %ebx,%edi |
| ++ movl 0x700(%ebp,%ecx,1),%ebx |
| ++ xorl %ebx,%edi |
| ++ movl 0x400(%ebp,%eax,1),%ebx |
| ++ xorl %ebx,%edi |
| ++ movl 0x500(%ebp,%edx,1),%ebx |
| ++ xorl %ebx,%edi |
| ++ movl 32(%esp),%ebp |
| ++ |
| ++ # Round 5 |
| ++ movl 36(%esp),%eax |
| ++ movl %edi,%edx |
| ++ shrl $16,%edx |
| ++ movl 40(%esp),%ecx |
| ++ xorl %edi,%edx |
| ++ andl %edx,%eax |
| ++ andl %ecx,%edx |
| ++ movl %eax,%ebx |
| ++ shll $16,%ebx |
| ++ movl %edx,%ecx |
| ++ shll $16,%ecx |
| ++ xorl %ebx,%eax |
| ++ xorl %ecx,%edx |
| ++ movl 40(%ebp),%ebx |
| ++ xorl %ebx,%eax |
| ++ movl 44(%ebp),%ecx |
| ++ xorl %edi,%eax |
| ++ xorl %edi,%edx |
| ++ xorl %ecx,%edx |
| ++ andl $0xfcfcfcfc,%eax |
| ++ xorl %ebx,%ebx |
| ++ andl $0xcfcfcfcf,%edx |
| ++ xorl %ecx,%ecx |
| ++ movb %al,%bl |
| ++ movb %ah,%cl |
| ++ rorl $4,%edx |
| ++ movl 4(%esp),%ebp |
| ++ xorl (%ebp,%ebx,1),%esi |
| ++ movb %dl,%bl |
| ++ xorl 0x200(%ebp,%ecx,1),%esi |
| ++ movb %dh,%cl |
| ++ shrl $16,%eax |
| ++ xorl 0x100(%ebp,%ebx,1),%esi |
| ++ movb %ah,%bl |
| ++ shrl $16,%edx |
| ++ xorl 0x300(%ebp,%ecx,1),%esi |
| ++ movb %dh,%cl |
| ++ andl $0xff,%eax |
| ++ andl $0xff,%edx |
| ++ movl 0x600(%ebp,%ebx,1),%ebx |
| ++ xorl %ebx,%esi |
| ++ movl 0x700(%ebp,%ecx,1),%ebx |
| ++ xorl %ebx,%esi |
| ++ movl 0x400(%ebp,%eax,1),%ebx |
| ++ xorl %ebx,%esi |
| ++ movl 0x500(%ebp,%edx,1),%ebx |
| ++ xorl %ebx,%esi |
| ++ movl 32(%esp),%ebp |
| ++ |
| ++ # Round 6 |
| ++ movl 36(%esp),%eax |
| ++ movl %esi,%edx |
| ++ shrl $16,%edx |
| ++ movl 40(%esp),%ecx |
| ++ xorl %esi,%edx |
| ++ andl %edx,%eax |
| ++ andl %ecx,%edx |
| ++ movl %eax,%ebx |
| ++ shll $16,%ebx |
| ++ movl %edx,%ecx |
| ++ shll $16,%ecx |
| ++ xorl %ebx,%eax |
| ++ xorl %ecx,%edx |
| ++ movl 48(%ebp),%ebx |
| ++ xorl %ebx,%eax |
| ++ movl 52(%ebp),%ecx |
| ++ xorl %esi,%eax |
| ++ xorl %esi,%edx |
| ++ xorl %ecx,%edx |
| ++ andl $0xfcfcfcfc,%eax |
| ++ xorl %ebx,%ebx |
| ++ andl $0xcfcfcfcf,%edx |
| ++ xorl %ecx,%ecx |
| ++ movb %al,%bl |
| ++ movb %ah,%cl |
| ++ rorl $4,%edx |
| ++ movl 4(%esp),%ebp |
| ++ xorl (%ebp,%ebx,1),%edi |
| ++ movb %dl,%bl |
| ++ xorl 0x200(%ebp,%ecx,1),%edi |
| ++ movb %dh,%cl |
| ++ shrl $16,%eax |
| ++ xorl 0x100(%ebp,%ebx,1),%edi |
| ++ movb %ah,%bl |
| ++ shrl $16,%edx |
| ++ xorl 0x300(%ebp,%ecx,1),%edi |
| ++ movb %dh,%cl |
| ++ andl $0xff,%eax |
| ++ andl $0xff,%edx |
| ++ movl 0x600(%ebp,%ebx,1),%ebx |
| ++ xorl %ebx,%edi |
| ++ movl 0x700(%ebp,%ecx,1),%ebx |
| ++ xorl %ebx,%edi |
| ++ movl 0x400(%ebp,%eax,1),%ebx |
| ++ xorl %ebx,%edi |
| ++ movl 0x500(%ebp,%edx,1),%ebx |
| ++ xorl %ebx,%edi |
| ++ movl 32(%esp),%ebp |
| ++ |
| ++ # Round 7 |
| ++ movl 36(%esp),%eax |
| ++ movl %edi,%edx |
| ++ shrl $16,%edx |
| ++ movl 40(%esp),%ecx |
| ++ xorl %edi,%edx |
| ++ andl %edx,%eax |
| ++ andl %ecx,%edx |
| ++ movl %eax,%ebx |
| ++ shll $16,%ebx |
| ++ movl %edx,%ecx |
| ++ shll $16,%ecx |
| ++ xorl %ebx,%eax |
| ++ xorl %ecx,%edx |
| ++ movl 56(%ebp),%ebx |
| ++ xorl %ebx,%eax |
| ++ movl 60(%ebp),%ecx |
| ++ xorl %edi,%eax |
| ++ xorl %edi,%edx |
| ++ xorl %ecx,%edx |
| ++ andl $0xfcfcfcfc,%eax |
| ++ xorl %ebx,%ebx |
| ++ andl $0xcfcfcfcf,%edx |
| ++ xorl %ecx,%ecx |
| ++ movb %al,%bl |
| ++ movb %ah,%cl |
| ++ rorl $4,%edx |
| ++ movl 4(%esp),%ebp |
| ++ xorl (%ebp,%ebx,1),%esi |
| ++ movb %dl,%bl |
| ++ xorl 0x200(%ebp,%ecx,1),%esi |
| ++ movb %dh,%cl |
| ++ shrl $16,%eax |
| ++ xorl 0x100(%ebp,%ebx,1),%esi |
| ++ movb %ah,%bl |
| ++ shrl $16,%edx |
| ++ xorl 0x300(%ebp,%ecx,1),%esi |
| ++ movb %dh,%cl |
| ++ andl $0xff,%eax |
| ++ andl $0xff,%edx |
| ++ movl 0x600(%ebp,%ebx,1),%ebx |
| ++ xorl %ebx,%esi |
| ++ movl 0x700(%ebp,%ecx,1),%ebx |
| ++ xorl %ebx,%esi |
| ++ movl 0x400(%ebp,%eax,1),%ebx |
| ++ xorl %ebx,%esi |
| ++ movl 0x500(%ebp,%edx,1),%ebx |
| ++ xorl %ebx,%esi |
| ++ movl 32(%esp),%ebp |
| ++ |
| ++ # Round 8 |
| ++ movl 36(%esp),%eax |
| ++ movl %esi,%edx |
| ++ shrl $16,%edx |
| ++ movl 40(%esp),%ecx |
| ++ xorl %esi,%edx |
| ++ andl %edx,%eax |
| ++ andl %ecx,%edx |
| ++ movl %eax,%ebx |
| ++ shll $16,%ebx |
| ++ movl %edx,%ecx |
| ++ shll $16,%ecx |
| ++ xorl %ebx,%eax |
| ++ xorl %ecx,%edx |
| ++ movl 64(%ebp),%ebx |
| ++ xorl %ebx,%eax |
| ++ movl 68(%ebp),%ecx |
| ++ xorl %esi,%eax |
| ++ xorl %esi,%edx |
| ++ xorl %ecx,%edx |
| ++ andl $0xfcfcfcfc,%eax |
| ++ xorl %ebx,%ebx |
| ++ andl $0xcfcfcfcf,%edx |
| ++ xorl %ecx,%ecx |
| ++ movb %al,%bl |
| ++ movb %ah,%cl |
| ++ rorl $4,%edx |
| ++ movl 4(%esp),%ebp |
| ++ xorl (%ebp,%ebx,1),%edi |
| ++ movb %dl,%bl |
| ++ xorl 0x200(%ebp,%ecx,1),%edi |
| ++ movb %dh,%cl |
| ++ shrl $16,%eax |
| ++ xorl 0x100(%ebp,%ebx,1),%edi |
| ++ movb %ah,%bl |
| ++ shrl $16,%edx |
| ++ xorl 0x300(%ebp,%ecx,1),%edi |
| ++ movb %dh,%cl |
| ++ andl $0xff,%eax |
| ++ andl $0xff,%edx |
| ++ movl 0x600(%ebp,%ebx,1),%ebx |
| ++ xorl %ebx,%edi |
| ++ movl 0x700(%ebp,%ecx,1),%ebx |
| ++ xorl %ebx,%edi |
| ++ movl 0x400(%ebp,%eax,1),%ebx |
| ++ xorl %ebx,%edi |
| ++ movl 0x500(%ebp,%edx,1),%ebx |
| ++ xorl %ebx,%edi |
| ++ movl 32(%esp),%ebp |
| ++ |
| ++ # Round 9 |
| ++ movl 36(%esp),%eax |
| ++ movl %edi,%edx |
| ++ shrl $16,%edx |
| ++ movl 40(%esp),%ecx |
| ++ xorl %edi,%edx |
| ++ andl %edx,%eax |
| ++ andl %ecx,%edx |
| ++ movl %eax,%ebx |
| ++ shll $16,%ebx |
| ++ movl %edx,%ecx |
| ++ shll $16,%ecx |
| ++ xorl %ebx,%eax |
| ++ xorl %ecx,%edx |
| ++ movl 72(%ebp),%ebx |
| ++ xorl %ebx,%eax |
| ++ movl 76(%ebp),%ecx |
| ++ xorl %edi,%eax |
| ++ xorl %edi,%edx |
| ++ xorl %ecx,%edx |
| ++ andl $0xfcfcfcfc,%eax |
| ++ xorl %ebx,%ebx |
| ++ andl $0xcfcfcfcf,%edx |
| ++ xorl %ecx,%ecx |
| ++ movb %al,%bl |
| ++ movb %ah,%cl |
| ++ rorl $4,%edx |
| ++ movl 4(%esp),%ebp |
| ++ xorl (%ebp,%ebx,1),%esi |
| ++ movb %dl,%bl |
| ++ xorl 0x200(%ebp,%ecx,1),%esi |
| ++ movb %dh,%cl |
| ++ shrl $16,%eax |
| ++ xorl 0x100(%ebp,%ebx,1),%esi |
| ++ movb %ah,%bl |
| ++ shrl $16,%edx |
| ++ xorl 0x300(%ebp,%ecx,1),%esi |
| ++ movb %dh,%cl |
| ++ andl $0xff,%eax |
| ++ andl $0xff,%edx |
| ++ movl 0x600(%ebp,%ebx,1),%ebx |
| ++ xorl %ebx,%esi |
| ++ movl 0x700(%ebp,%ecx,1),%ebx |
| ++ xorl %ebx,%esi |
| ++ movl 0x400(%ebp,%eax,1),%ebx |
| ++ xorl %ebx,%esi |
| ++ movl 0x500(%ebp,%edx,1),%ebx |
| ++ xorl %ebx,%esi |
| ++ movl 32(%esp),%ebp |
| ++ |
| ++ # Round 10 |
| ++ movl 36(%esp),%eax |
| ++ movl %esi,%edx |
| ++ shrl $16,%edx |
| ++ movl 40(%esp),%ecx |
| ++ xorl %esi,%edx |
| ++ andl %edx,%eax |
| ++ andl %ecx,%edx |
| ++ movl %eax,%ebx |
| ++ shll $16,%ebx |
| ++ movl %edx,%ecx |
| ++ shll $16,%ecx |
| ++ xorl %ebx,%eax |
| ++ xorl %ecx,%edx |
| ++ movl 80(%ebp),%ebx |
| ++ xorl %ebx,%eax |
| ++ movl 84(%ebp),%ecx |
| ++ xorl %esi,%eax |
| ++ xorl %esi,%edx |
| ++ xorl %ecx,%edx |
| ++ andl $0xfcfcfcfc,%eax |
| ++ xorl %ebx,%ebx |
| ++ andl $0xcfcfcfcf,%edx |
| ++ xorl %ecx,%ecx |
| ++ movb %al,%bl |
| ++ movb %ah,%cl |
| ++ rorl $4,%edx |
| ++ movl 4(%esp),%ebp |
| ++ xorl (%ebp,%ebx,1),%edi |
| ++ movb %dl,%bl |
| ++ xorl 0x200(%ebp,%ecx,1),%edi |
| ++ movb %dh,%cl |
| ++ shrl $16,%eax |
| ++ xorl 0x100(%ebp,%ebx,1),%edi |
| ++ movb %ah,%bl |
| ++ shrl $16,%edx |
| ++ xorl 0x300(%ebp,%ecx,1),%edi |
| ++ movb %dh,%cl |
| ++ andl $0xff,%eax |
| ++ andl $0xff,%edx |
| ++ movl 0x600(%ebp,%ebx,1),%ebx |
| ++ xorl %ebx,%edi |
| ++ movl 0x700(%ebp,%ecx,1),%ebx |
| ++ xorl %ebx,%edi |
| ++ movl 0x400(%ebp,%eax,1),%ebx |
| ++ xorl %ebx,%edi |
| ++ movl 0x500(%ebp,%edx,1),%ebx |
| ++ xorl %ebx,%edi |
| ++ movl 32(%esp),%ebp |
| ++ |
| ++ # Round 11 |
| ++ movl 36(%esp),%eax |
| ++ movl %edi,%edx |
| ++ shrl $16,%edx |
| ++ movl 40(%esp),%ecx |
| ++ xorl %edi,%edx |
| ++ andl %edx,%eax |
| ++ andl %ecx,%edx |
| ++ movl %eax,%ebx |
| ++ shll $16,%ebx |
| ++ movl %edx,%ecx |
| ++ shll $16,%ecx |
| ++ xorl %ebx,%eax |
| ++ xorl %ecx,%edx |
| ++ movl 88(%ebp),%ebx |
| ++ xorl %ebx,%eax |
| ++ movl 92(%ebp),%ecx |
| ++ xorl %edi,%eax |
| ++ xorl %edi,%edx |
| ++ xorl %ecx,%edx |
| ++ andl $0xfcfcfcfc,%eax |
| ++ xorl %ebx,%ebx |
| ++ andl $0xcfcfcfcf,%edx |
| ++ xorl %ecx,%ecx |
| ++ movb %al,%bl |
| ++ movb %ah,%cl |
| ++ rorl $4,%edx |
| ++ movl 4(%esp),%ebp |
| ++ xorl (%ebp,%ebx,1),%esi |
| ++ movb %dl,%bl |
| ++ xorl 0x200(%ebp,%ecx,1),%esi |
| ++ movb %dh,%cl |
| ++ shrl $16,%eax |
| ++ xorl 0x100(%ebp,%ebx,1),%esi |
| ++ movb %ah,%bl |
| ++ shrl $16,%edx |
| ++ xorl 0x300(%ebp,%ecx,1),%esi |
| ++ movb %dh,%cl |
| ++ andl $0xff,%eax |
| ++ andl $0xff,%edx |
| ++ movl 0x600(%ebp,%ebx,1),%ebx |
| ++ xorl %ebx,%esi |
| ++ movl 0x700(%ebp,%ecx,1),%ebx |
| ++ xorl %ebx,%esi |
| ++ movl 0x400(%ebp,%eax,1),%ebx |
| ++ xorl %ebx,%esi |
| ++ movl 0x500(%ebp,%edx,1),%ebx |
| ++ xorl %ebx,%esi |
| ++ movl 32(%esp),%ebp |
| ++ |
| ++ # Round 12 |
| ++ movl 36(%esp),%eax |
| ++ movl %esi,%edx |
| ++ shrl $16,%edx |
| ++ movl 40(%esp),%ecx |
| ++ xorl %esi,%edx |
| ++ andl %edx,%eax |
| ++ andl %ecx,%edx |
| ++ movl %eax,%ebx |
| ++ shll $16,%ebx |
| ++ movl %edx,%ecx |
| ++ shll $16,%ecx |
| ++ xorl %ebx,%eax |
| ++ xorl %ecx,%edx |
| ++ movl 96(%ebp),%ebx |
| ++ xorl %ebx,%eax |
| ++ movl 100(%ebp),%ecx |
| ++ xorl %esi,%eax |
| ++ xorl %esi,%edx |
| ++ xorl %ecx,%edx |
| ++ andl $0xfcfcfcfc,%eax |
| ++ xorl %ebx,%ebx |
| ++ andl $0xcfcfcfcf,%edx |
| ++ xorl %ecx,%ecx |
| ++ movb %al,%bl |
| ++ movb %ah,%cl |
| ++ rorl $4,%edx |
| ++ movl 4(%esp),%ebp |
| ++ xorl (%ebp,%ebx,1),%edi |
| ++ movb %dl,%bl |
| ++ xorl 0x200(%ebp,%ecx,1),%edi |
| ++ movb %dh,%cl |
| ++ shrl $16,%eax |
| ++ xorl 0x100(%ebp,%ebx,1),%edi |
| ++ movb %ah,%bl |
| ++ shrl $16,%edx |
| ++ xorl 0x300(%ebp,%ecx,1),%edi |
| ++ movb %dh,%cl |
| ++ andl $0xff,%eax |
| ++ andl $0xff,%edx |
| ++ movl 0x600(%ebp,%ebx,1),%ebx |
| ++ xorl %ebx,%edi |
| ++ movl 0x700(%ebp,%ecx,1),%ebx |
| ++ xorl %ebx,%edi |
| ++ movl 0x400(%ebp,%eax,1),%ebx |
| ++ xorl %ebx,%edi |
| ++ movl 0x500(%ebp,%edx,1),%ebx |
| ++ xorl %ebx,%edi |
| ++ movl 32(%esp),%ebp |
| ++ |
| ++ # Round 13 |
| ++ movl 36(%esp),%eax |
| ++ movl %edi,%edx |
| ++ shrl $16,%edx |
| ++ movl 40(%esp),%ecx |
| ++ xorl %edi,%edx |
| ++ andl %edx,%eax |
| ++ andl %ecx,%edx |
| ++ movl %eax,%ebx |
| ++ shll $16,%ebx |
| ++ movl %edx,%ecx |
| ++ shll $16,%ecx |
| ++ xorl %ebx,%eax |
| ++ xorl %ecx,%edx |
| ++ movl 104(%ebp),%ebx |
| ++ xorl %ebx,%eax |
| ++ movl 108(%ebp),%ecx |
| ++ xorl %edi,%eax |
| ++ xorl %edi,%edx |
| ++ xorl %ecx,%edx |
| ++ andl $0xfcfcfcfc,%eax |
| ++ xorl %ebx,%ebx |
| ++ andl $0xcfcfcfcf,%edx |
| ++ xorl %ecx,%ecx |
| ++ movb %al,%bl |
| ++ movb %ah,%cl |
| ++ rorl $4,%edx |
| ++ movl 4(%esp),%ebp |
| ++ xorl (%ebp,%ebx,1),%esi |
| ++ movb %dl,%bl |
| ++ xorl 0x200(%ebp,%ecx,1),%esi |
| ++ movb %dh,%cl |
| ++ shrl $16,%eax |
| ++ xorl 0x100(%ebp,%ebx,1),%esi |
| ++ movb %ah,%bl |
| ++ shrl $16,%edx |
| ++ xorl 0x300(%ebp,%ecx,1),%esi |
| ++ movb %dh,%cl |
| ++ andl $0xff,%eax |
| ++ andl $0xff,%edx |
| ++ movl 0x600(%ebp,%ebx,1),%ebx |
| ++ xorl %ebx,%esi |
| ++ movl 0x700(%ebp,%ecx,1),%ebx |
| ++ xorl %ebx,%esi |
| ++ movl 0x400(%ebp,%eax,1),%ebx |
| ++ xorl %ebx,%esi |
| ++ movl 0x500(%ebp,%edx,1),%ebx |
| ++ xorl %ebx,%esi |
| ++ movl 32(%esp),%ebp |
| ++ |
| ++ # Round 14 |
| ++ movl 36(%esp),%eax |
| ++ movl %esi,%edx |
| ++ shrl $16,%edx |
| ++ movl 40(%esp),%ecx |
| ++ xorl %esi,%edx |
| ++ andl %edx,%eax |
| ++ andl %ecx,%edx |
| ++ movl %eax,%ebx |
| ++ shll $16,%ebx |
| ++ movl %edx,%ecx |
| ++ shll $16,%ecx |
| ++ xorl %ebx,%eax |
| ++ xorl %ecx,%edx |
| ++ movl 112(%ebp),%ebx |
| ++ xorl %ebx,%eax |
| ++ movl 116(%ebp),%ecx |
| ++ xorl %esi,%eax |
| ++ xorl %esi,%edx |
| ++ xorl %ecx,%edx |
| ++ andl $0xfcfcfcfc,%eax |
| ++ xorl %ebx,%ebx |
| ++ andl $0xcfcfcfcf,%edx |
| ++ xorl %ecx,%ecx |
| ++ movb %al,%bl |
| ++ movb %ah,%cl |
| ++ rorl $4,%edx |
| ++ movl 4(%esp),%ebp |
| ++ xorl (%ebp,%ebx,1),%edi |
| ++ movb %dl,%bl |
| ++ xorl 0x200(%ebp,%ecx,1),%edi |
| ++ movb %dh,%cl |
| ++ shrl $16,%eax |
| ++ xorl 0x100(%ebp,%ebx,1),%edi |
| ++ movb %ah,%bl |
| ++ shrl $16,%edx |
| ++ xorl 0x300(%ebp,%ecx,1),%edi |
| ++ movb %dh,%cl |
| ++ andl $0xff,%eax |
| ++ andl $0xff,%edx |
| ++ movl 0x600(%ebp,%ebx,1),%ebx |
| ++ xorl %ebx,%edi |
| ++ movl 0x700(%ebp,%ecx,1),%ebx |
| ++ xorl %ebx,%edi |
| ++ movl 0x400(%ebp,%eax,1),%ebx |
| ++ xorl %ebx,%edi |
| ++ movl 0x500(%ebp,%edx,1),%ebx |
| ++ xorl %ebx,%edi |
| ++ movl 32(%esp),%ebp |
| ++ |
| ++ # Round 15 |
| ++ movl 36(%esp),%eax |
| ++ movl %edi,%edx |
| ++ shrl $16,%edx |
| ++ movl 40(%esp),%ecx |
| ++ xorl %edi,%edx |
| ++ andl %edx,%eax |
| ++ andl %ecx,%edx |
| ++ movl %eax,%ebx |
| ++ shll $16,%ebx |
| ++ movl %edx,%ecx |
| ++ shll $16,%ecx |
| ++ xorl %ebx,%eax |
| ++ xorl %ecx,%edx |
| ++ movl 120(%ebp),%ebx |
| ++ xorl %ebx,%eax |
| ++ movl 124(%ebp),%ecx |
| ++ xorl %edi,%eax |
| ++ xorl %edi,%edx |
| ++ xorl %ecx,%edx |
| ++ andl $0xfcfcfcfc,%eax |
| ++ xorl %ebx,%ebx |
| ++ andl $0xcfcfcfcf,%edx |
| ++ xorl %ecx,%ecx |
| ++ movb %al,%bl |
| ++ movb %ah,%cl |
| ++ rorl $4,%edx |
| ++ movl 4(%esp),%ebp |
| ++ xorl (%ebp,%ebx,1),%esi |
| ++ movb %dl,%bl |
| ++ xorl 0x200(%ebp,%ecx,1),%esi |
| ++ movb %dh,%cl |
| ++ shrl $16,%eax |
| ++ xorl 0x100(%ebp,%ebx,1),%esi |
| ++ movb %ah,%bl |
| ++ shrl $16,%edx |
| ++ xorl 0x300(%ebp,%ecx,1),%esi |
| ++ movb %dh,%cl |
| ++ andl $0xff,%eax |
| ++ andl $0xff,%edx |
| ++ movl 0x600(%ebp,%ebx,1),%ebx |
| ++ xorl %ebx,%esi |
| ++ movl 0x700(%ebp,%ecx,1),%ebx |
| ++ xorl %ebx,%esi |
| ++ movl 0x400(%ebp,%eax,1),%ebx |
| ++ xorl %ebx,%esi |
| ++ movl 0x500(%ebp,%edx,1),%ebx |
| ++ xorl %ebx,%esi |
| ++ movl 32(%esp),%ebp |
| ++ movl (%esp),%ebx |
| ++ movl %edi,%eax |
| ++ decl %ebx |
| ++ movl %esi,%edi |
| ++ movl %eax,%esi |
| ++ movl %ebx,(%esp) |
| ++ jnz L001start |
| ++ |
| ++ # FP |
| ++ movl 28(%esp),%edx |
| ++ rorl $1,%edi |
| ++ movl %esi,%eax |
| ++ xorl %edi,%esi |
| ++ andl $0xaaaaaaaa,%esi |
| ++ xorl %esi,%eax |
| ++ xorl %esi,%edi |
| ++ |
| ++ roll $23,%eax |
| ++ movl %eax,%esi |
| ++ xorl %edi,%eax |
| ++ andl $0x03fc03fc,%eax |
| ++ xorl %eax,%esi |
| ++ xorl %eax,%edi |
| ++ |
| ++ roll $10,%esi |
| ++ movl %esi,%eax |
| ++ xorl %edi,%esi |
| ++ andl $0x33333333,%esi |
| ++ xorl %esi,%eax |
| ++ xorl %esi,%edi |
| ++ |
| ++ roll $18,%edi |
| ++ movl %edi,%esi |
| ++ xorl %eax,%edi |
| ++ andl $0xfff0000f,%edi |
| ++ xorl %edi,%esi |
| ++ xorl %edi,%eax |
| ++ |
| ++ roll $12,%esi |
| ++ movl %esi,%edi |
| ++ xorl %eax,%esi |
| ++ andl $0xf0f0f0f0,%esi |
| ++ xorl %esi,%edi |
| ++ xorl %esi,%eax |
| ++ |
| ++ rorl $4,%eax |
| ++ movl %eax,(%edx) |
| ++ movl %edi,4(%edx) |
| ++ addl $8,%esp |
| ++ popl %edi |
| ++ popl %esi |
| ++ popl %ebx |
| ++ popl %ebp |
| ++ ret |
| ++.section __IMPORT,__pointers,non_lazy_symbol_pointers |
| ++L_DES_SPtrans$non_lazy_ptr: |
| ++.indirect_symbol _DES_SPtrans |
| ++.long 0 |
| +diff --git a/crypto/des/asm/des-586-mac.S b/crypto/des/asm/des-586-mac.S |
| +new file mode 100644 |
| +index 0000000..4969416 |
| +--- /dev/null |
| ++++ b/crypto/des/asm/des-586-mac.S |
| +@@ -0,0 +1,1821 @@ |
| ++.file "des-586.s" |
| ++.text |
| ++.globl _DES_SPtrans |
| ++.align 4 |
| ++__x86_DES_encrypt: |
| ++ pushl %ecx |
| ++ # Round 0 |
| ++ movl (%ecx),%eax |
| ++ xorl %ebx,%ebx |
| ++ movl 4(%ecx),%edx |
| ++ xorl %esi,%eax |
| ++ xorl %ecx,%ecx |
| ++ xorl %esi,%edx |
| ++ andl $0xfcfcfcfc,%eax |
| ++ andl $0xcfcfcfcf,%edx |
| ++ movb %al,%bl |
| ++ movb %ah,%cl |
| ++ rorl $4,%edx |
| ++ xorl (%ebp,%ebx,1),%edi |
| ++ movb %dl,%bl |
| ++ xorl 0x200(%ebp,%ecx,1),%edi |
| ++ movb %dh,%cl |
| ++ shrl $16,%eax |
| ++ xorl 0x100(%ebp,%ebx,1),%edi |
| ++ movb %ah,%bl |
| ++ shrl $16,%edx |
| ++ xorl 0x300(%ebp,%ecx,1),%edi |
| ++ movb %dh,%cl |
| ++ andl $0xff,%eax |
| ++ andl $0xff,%edx |
| ++ xorl 0x600(%ebp,%ebx,1),%edi |
| ++ xorl 0x700(%ebp,%ecx,1),%edi |
| ++ movl (%esp),%ecx |
| ++ xorl 0x400(%ebp,%eax,1),%edi |
| ++ xorl 0x500(%ebp,%edx,1),%edi |
| ++ # Round 1 |
| ++ movl 8(%ecx),%eax |
| ++ xorl %ebx,%ebx |
| ++ movl 12(%ecx),%edx |
| ++ xorl %edi,%eax |
| ++ xorl %ecx,%ecx |
| ++ xorl %edi,%edx |
| ++ andl $0xfcfcfcfc,%eax |
| ++ andl $0xcfcfcfcf,%edx |
| ++ movb %al,%bl |
| ++ movb %ah,%cl |
| ++ rorl $4,%edx |
| ++ xorl (%ebp,%ebx,1),%esi |
| ++ movb %dl,%bl |
| ++ xorl 0x200(%ebp,%ecx,1),%esi |
| ++ movb %dh,%cl |
| ++ shrl $16,%eax |
| ++ xorl 0x100(%ebp,%ebx,1),%esi |
| ++ movb %ah,%bl |
| ++ shrl $16,%edx |
| ++ xorl 0x300(%ebp,%ecx,1),%esi |
| ++ movb %dh,%cl |
| ++ andl $0xff,%eax |
| ++ andl $0xff,%edx |
| ++ xorl 0x600(%ebp,%ebx,1),%esi |
| ++ xorl 0x700(%ebp,%ecx,1),%esi |
| ++ movl (%esp),%ecx |
| ++ xorl 0x400(%ebp,%eax,1),%esi |
| ++ xorl 0x500(%ebp,%edx,1),%esi |
| ++ # Round 2 |
| ++ movl 16(%ecx),%eax |
| ++ xorl %ebx,%ebx |
| ++ movl 20(%ecx),%edx |
| ++ xorl %esi,%eax |
| ++ xorl %ecx,%ecx |
| ++ xorl %esi,%edx |
| ++ andl $0xfcfcfcfc,%eax |
| ++ andl $0xcfcfcfcf,%edx |
| ++ movb %al,%bl |
| ++ movb %ah,%cl |
| ++ rorl $4,%edx |
| ++ xorl (%ebp,%ebx,1),%edi |
| ++ movb %dl,%bl |
| ++ xorl 0x200(%ebp,%ecx,1),%edi |
| ++ movb %dh,%cl |
| ++ shrl $16,%eax |
| ++ xorl 0x100(%ebp,%ebx,1),%edi |
| ++ movb %ah,%bl |
| ++ shrl $16,%edx |
| ++ xorl 0x300(%ebp,%ecx,1),%edi |
| ++ movb %dh,%cl |
| ++ andl $0xff,%eax |
| ++ andl $0xff,%edx |
| ++ xorl 0x600(%ebp,%ebx,1),%edi |
| ++ xorl 0x700(%ebp,%ecx,1),%edi |
| ++ movl (%esp),%ecx |
| ++ xorl 0x400(%ebp,%eax,1),%edi |
| ++ xorl 0x500(%ebp,%edx,1),%edi |
| ++ # Round 3 |
| ++ movl 24(%ecx),%eax |
| ++ xorl %ebx,%ebx |
| ++ movl 28(%ecx),%edx |
| ++ xorl %edi,%eax |
| ++ xorl %ecx,%ecx |
| ++ xorl %edi,%edx |
| ++ andl $0xfcfcfcfc,%eax |
| ++ andl $0xcfcfcfcf,%edx |
| ++ movb %al,%bl |
| ++ movb %ah,%cl |
| ++ rorl $4,%edx |
| ++ xorl (%ebp,%ebx,1),%esi |
| ++ movb %dl,%bl |
| ++ xorl 0x200(%ebp,%ecx,1),%esi |
| ++ movb %dh,%cl |
| ++ shrl $16,%eax |
| ++ xorl 0x100(%ebp,%ebx,1),%esi |
| ++ movb %ah,%bl |
| ++ shrl $16,%edx |
| ++ xorl 0x300(%ebp,%ecx,1),%esi |
| ++ movb %dh,%cl |
| ++ andl $0xff,%eax |
| ++ andl $0xff,%edx |
| ++ xorl 0x600(%ebp,%ebx,1),%esi |
| ++ xorl 0x700(%ebp,%ecx,1),%esi |
| ++ movl (%esp),%ecx |
| ++ xorl 0x400(%ebp,%eax,1),%esi |
| ++ xorl 0x500(%ebp,%edx,1),%esi |
| ++ # Round 4 |
| ++ movl 32(%ecx),%eax |
| ++ xorl %ebx,%ebx |
| ++ movl 36(%ecx),%edx |
| ++ xorl %esi,%eax |
| ++ xorl %ecx,%ecx |
| ++ xorl %esi,%edx |
| ++ andl $0xfcfcfcfc,%eax |
| ++ andl $0xcfcfcfcf,%edx |
| ++ movb %al,%bl |
| ++ movb %ah,%cl |
| ++ rorl $4,%edx |
| ++ xorl (%ebp,%ebx,1),%edi |
| ++ movb %dl,%bl |
| ++ xorl 0x200(%ebp,%ecx,1),%edi |
| ++ movb %dh,%cl |
| ++ shrl $16,%eax |
| ++ xorl 0x100(%ebp,%ebx,1),%edi |
| ++ movb %ah,%bl |
| ++ shrl $16,%edx |
| ++ xorl 0x300(%ebp,%ecx,1),%edi |
| ++ movb %dh,%cl |
| ++ andl $0xff,%eax |
| ++ andl $0xff,%edx |
| ++ xorl 0x600(%ebp,%ebx,1),%edi |
| ++ xorl 0x700(%ebp,%ecx,1),%edi |
| ++ movl (%esp),%ecx |
| ++ xorl 0x400(%ebp,%eax,1),%edi |
| ++ xorl 0x500(%ebp,%edx,1),%edi |
| ++ # Round 5 |
| ++ movl 40(%ecx),%eax |
| ++ xorl %ebx,%ebx |
| ++ movl 44(%ecx),%edx |
| ++ xorl %edi,%eax |
| ++ xorl %ecx,%ecx |
| ++ xorl %edi,%edx |
| ++ andl $0xfcfcfcfc,%eax |
| ++ andl $0xcfcfcfcf,%edx |
| ++ movb %al,%bl |
| ++ movb %ah,%cl |
| ++ rorl $4,%edx |
| ++ xorl (%ebp,%ebx,1),%esi |
| ++ movb %dl,%bl |
| ++ xorl 0x200(%ebp,%ecx,1),%esi |
| ++ movb %dh,%cl |
| ++ shrl $16,%eax |
| ++ xorl 0x100(%ebp,%ebx,1),%esi |
| ++ movb %ah,%bl |
| ++ shrl $16,%edx |
| ++ xorl 0x300(%ebp,%ecx,1),%esi |
| ++ movb %dh,%cl |
| ++ andl $0xff,%eax |
| ++ andl $0xff,%edx |
| ++ xorl 0x600(%ebp,%ebx,1),%esi |
| ++ xorl 0x700(%ebp,%ecx,1),%esi |
| ++ movl (%esp),%ecx |
| ++ xorl 0x400(%ebp,%eax,1),%esi |
| ++ xorl 0x500(%ebp,%edx,1),%esi |
| ++ # Round 6 |
| ++ movl 48(%ecx),%eax |
| ++ xorl %ebx,%ebx |
| ++ movl 52(%ecx),%edx |
| ++ xorl %esi,%eax |
| ++ xorl %ecx,%ecx |
| ++ xorl %esi,%edx |
| ++ andl $0xfcfcfcfc,%eax |
| ++ andl $0xcfcfcfcf,%edx |
| ++ movb %al,%bl |
| ++ movb %ah,%cl |
| ++ rorl $4,%edx |
| ++ xorl (%ebp,%ebx,1),%edi |
| ++ movb %dl,%bl |
| ++ xorl 0x200(%ebp,%ecx,1),%edi |
| ++ movb %dh,%cl |
| ++ shrl $16,%eax |
| ++ xorl 0x100(%ebp,%ebx,1),%edi |
| ++ movb %ah,%bl |
| ++ shrl $16,%edx |
| ++ xorl 0x300(%ebp,%ecx,1),%edi |
| ++ movb %dh,%cl |
| ++ andl $0xff,%eax |
| ++ andl $0xff,%edx |
| ++ xorl 0x600(%ebp,%ebx,1),%edi |
| ++ xorl 0x700(%ebp,%ecx,1),%edi |
| ++ movl (%esp),%ecx |
| ++ xorl 0x400(%ebp,%eax,1),%edi |
| ++ xorl 0x500(%ebp,%edx,1),%edi |
| ++ # Round 7 |
| ++ movl 56(%ecx),%eax |
| ++ xorl %ebx,%ebx |
| ++ movl 60(%ecx),%edx |
| ++ xorl %edi,%eax |
| ++ xorl %ecx,%ecx |
| ++ xorl %edi,%edx |
| ++ andl $0xfcfcfcfc,%eax |
| ++ andl $0xcfcfcfcf,%edx |
| ++ movb %al,%bl |
| ++ movb %ah,%cl |
| ++ rorl $4,%edx |
| ++ xorl (%ebp,%ebx,1),%esi |
| ++ movb %dl,%bl |
| ++ xorl 0x200(%ebp,%ecx,1),%esi |
| ++ movb %dh,%cl |
| ++ shrl $16,%eax |
| ++ xorl 0x100(%ebp,%ebx,1),%esi |
| ++ movb %ah,%bl |
| ++ shrl $16,%edx |
| ++ xorl 0x300(%ebp,%ecx,1),%esi |
| ++ movb %dh,%cl |
| ++ andl $0xff,%eax |
| ++ andl $0xff,%edx |
| ++ xorl 0x600(%ebp,%ebx,1),%esi |
| ++ xorl 0x700(%ebp,%ecx,1),%esi |
| ++ movl (%esp),%ecx |
| ++ xorl 0x400(%ebp,%eax,1),%esi |
| ++ xorl 0x500(%ebp,%edx,1),%esi |
| ++ # Round 8 |
| ++ movl 64(%ecx),%eax |
| ++ xorl %ebx,%ebx |
| ++ movl 68(%ecx),%edx |
| ++ xorl %esi,%eax |
| ++ xorl %ecx,%ecx |
| ++ xorl %esi,%edx |
| ++ andl $0xfcfcfcfc,%eax |
| ++ andl $0xcfcfcfcf,%edx |
| ++ movb %al,%bl |
| ++ movb %ah,%cl |
| ++ rorl $4,%edx |
| ++ xorl (%ebp,%ebx,1),%edi |
| ++ movb %dl,%bl |
| ++ xorl 0x200(%ebp,%ecx,1),%edi |
| ++ movb %dh,%cl |
| ++ shrl $16,%eax |
| ++ xorl 0x100(%ebp,%ebx,1),%edi |
| ++ movb %ah,%bl |
| ++ shrl $16,%edx |
| ++ xorl 0x300(%ebp,%ecx,1),%edi |
| ++ movb %dh,%cl |
| ++ andl $0xff,%eax |
| ++ andl $0xff,%edx |
| ++ xorl 0x600(%ebp,%ebx,1),%edi |
| ++ xorl 0x700(%ebp,%ecx,1),%edi |
| ++ movl (%esp),%ecx |
| ++ xorl 0x400(%ebp,%eax,1),%edi |
| ++ xorl 0x500(%ebp,%edx,1),%edi |
| ++ # Round 9 |
| ++ movl 72(%ecx),%eax |
| ++ xorl %ebx,%ebx |
| ++ movl 76(%ecx),%edx |
| ++ xorl %edi,%eax |
| ++ xorl %ecx,%ecx |
| ++ xorl %edi,%edx |
| ++ andl $0xfcfcfcfc,%eax |
| ++ andl $0xcfcfcfcf,%edx |
| ++ movb %al,%bl |
| ++ movb %ah,%cl |
| ++ rorl $4,%edx |
| ++ xorl (%ebp,%ebx,1),%esi |
| ++ movb %dl,%bl |
| ++ xorl 0x200(%ebp,%ecx,1),%esi |
| ++ movb %dh,%cl |
| ++ shrl $16,%eax |
| ++ xorl 0x100(%ebp,%ebx,1),%esi |
| ++ movb %ah,%bl |
| ++ shrl $16,%edx |
| ++ xorl 0x300(%ebp,%ecx,1),%esi |
| ++ movb %dh,%cl |
| ++ andl $0xff,%eax |
| ++ andl $0xff,%edx |
| ++ xorl 0x600(%ebp,%ebx,1),%esi |
| ++ xorl 0x700(%ebp,%ecx,1),%esi |
| ++ movl (%esp),%ecx |
| ++ xorl 0x400(%ebp,%eax,1),%esi |
| ++ xorl 0x500(%ebp,%edx,1),%esi |
| ++ # Round 10 |
| ++ movl 80(%ecx),%eax |
| ++ xorl %ebx,%ebx |
| ++ movl 84(%ecx),%edx |
| ++ xorl %esi,%eax |
| ++ xorl %ecx,%ecx |
| ++ xorl %esi,%edx |
| ++ andl $0xfcfcfcfc,%eax |
| ++ andl $0xcfcfcfcf,%edx |
| ++ movb %al,%bl |
| ++ movb %ah,%cl |
| ++ rorl $4,%edx |
| ++ xorl (%ebp,%ebx,1),%edi |
| ++ movb %dl,%bl |
| ++ xorl 0x200(%ebp,%ecx,1),%edi |
| ++ movb %dh,%cl |
| ++ shrl $16,%eax |
| ++ xorl 0x100(%ebp,%ebx,1),%edi |
| ++ movb %ah,%bl |
| ++ shrl $16,%edx |
| ++ xorl 0x300(%ebp,%ecx,1),%edi |
| ++ movb %dh,%cl |
| ++ andl $0xff,%eax |
| ++ andl $0xff,%edx |
| ++ xorl 0x600(%ebp,%ebx,1),%edi |
| ++ xorl 0x700(%ebp,%ecx,1),%edi |
| ++ movl (%esp),%ecx |
| ++ xorl 0x400(%ebp,%eax,1),%edi |
| ++ xorl 0x500(%ebp,%edx,1),%edi |
| ++ # Round 11 |
| ++ movl 88(%ecx),%eax |
| ++ xorl %ebx,%ebx |
| ++ movl 92(%ecx),%edx |
| ++ xorl %edi,%eax |
| ++ xorl %ecx,%ecx |
| ++ xorl %edi,%edx |
| ++ andl $0xfcfcfcfc,%eax |
| ++ andl $0xcfcfcfcf,%edx |
| ++ movb %al,%bl |
| ++ movb %ah,%cl |
| ++ rorl $4,%edx |
| ++ xorl (%ebp,%ebx,1),%esi |
| ++ movb %dl,%bl |
| ++ xorl 0x200(%ebp,%ecx,1),%esi |
| ++ movb %dh,%cl |
| ++ shrl $16,%eax |
| ++ xorl 0x100(%ebp,%ebx,1),%esi |
| ++ movb %ah,%bl |
| ++ shrl $16,%edx |
| ++ xorl 0x300(%ebp,%ecx,1),%esi |
| ++ movb %dh,%cl |
| ++ andl $0xff,%eax |
| ++ andl $0xff,%edx |
| ++ xorl 0x600(%ebp,%ebx,1),%esi |
| ++ xorl 0x700(%ebp,%ecx,1),%esi |
| ++ movl (%esp),%ecx |
| ++ xorl 0x400(%ebp,%eax,1),%esi |
| ++ xorl 0x500(%ebp,%edx,1),%esi |
| ++ # Round 12 |
| ++ movl 96(%ecx),%eax |
| ++ xorl %ebx,%ebx |
| ++ movl 100(%ecx),%edx |
| ++ xorl %esi,%eax |
| ++ xorl %ecx,%ecx |
| ++ xorl %esi,%edx |
| ++ andl $0xfcfcfcfc,%eax |
| ++ andl $0xcfcfcfcf,%edx |
| ++ movb %al,%bl |
| ++ movb %ah,%cl |
| ++ rorl $4,%edx |
| ++ xorl (%ebp,%ebx,1),%edi |
| ++ movb %dl,%bl |
| ++ xorl 0x200(%ebp,%ecx,1),%edi |
| ++ movb %dh,%cl |
| ++ shrl $16,%eax |
| ++ xorl 0x100(%ebp,%ebx,1),%edi |
| ++ movb %ah,%bl |
| ++ shrl $16,%edx |
| ++ xorl 0x300(%ebp,%ecx,1),%edi |
| ++ movb %dh,%cl |
| ++ andl $0xff,%eax |
| ++ andl $0xff,%edx |
| ++ xorl 0x600(%ebp,%ebx,1),%edi |
| ++ xorl 0x700(%ebp,%ecx,1),%edi |
| ++ movl (%esp),%ecx |
| ++ xorl 0x400(%ebp,%eax,1),%edi |
| ++ xorl 0x500(%ebp,%edx,1),%edi |
| ++ # Round 13 |
| ++ movl 104(%ecx),%eax |
| ++ xorl %ebx,%ebx |
| ++ movl 108(%ecx),%edx |
| ++ xorl %edi,%eax |
| ++ xorl %ecx,%ecx |
| ++ xorl %edi,%edx |
| ++ andl $0xfcfcfcfc,%eax |
| ++ andl $0xcfcfcfcf,%edx |
| ++ movb %al,%bl |
| ++ movb %ah,%cl |
| ++ rorl $4,%edx |
| ++ xorl (%ebp,%ebx,1),%esi |
| ++ movb %dl,%bl |
| ++ xorl 0x200(%ebp,%ecx,1),%esi |
| ++ movb %dh,%cl |
| ++ shrl $16,%eax |
| ++ xorl 0x100(%ebp,%ebx,1),%esi |
| ++ movb %ah,%bl |
| ++ shrl $16,%edx |
| ++ xorl 0x300(%ebp,%ecx,1),%esi |
| ++ movb %dh,%cl |
| ++ andl $0xff,%eax |
| ++ andl $0xff,%edx |
| ++ xorl 0x600(%ebp,%ebx,1),%esi |
| ++ xorl 0x700(%ebp,%ecx,1),%esi |
| ++ movl (%esp),%ecx |
| ++ xorl 0x400(%ebp,%eax,1),%esi |
| ++ xorl 0x500(%ebp,%edx,1),%esi |
| ++ # Round 14 |
| ++ movl 112(%ecx),%eax |
| ++ xorl %ebx,%ebx |
| ++ movl 116(%ecx),%edx |
| ++ xorl %esi,%eax |
| ++ xorl %ecx,%ecx |
| ++ xorl %esi,%edx |
| ++ andl $0xfcfcfcfc,%eax |
| ++ andl $0xcfcfcfcf,%edx |
| ++ movb %al,%bl |
| ++ movb %ah,%cl |
| ++ rorl $4,%edx |
| ++ xorl (%ebp,%ebx,1),%edi |
| ++ movb %dl,%bl |
| ++ xorl 0x200(%ebp,%ecx,1),%edi |
| ++ movb %dh,%cl |
| ++ shrl $16,%eax |
| ++ xorl 0x100(%ebp,%ebx,1),%edi |
| ++ movb %ah,%bl |
| ++ shrl $16,%edx |
| ++ xorl 0x300(%ebp,%ecx,1),%edi |
| ++ movb %dh,%cl |
| ++ andl $0xff,%eax |
| ++ andl $0xff,%edx |
| ++ xorl 0x600(%ebp,%ebx,1),%edi |
| ++ xorl 0x700(%ebp,%ecx,1),%edi |
| ++ movl (%esp),%ecx |
| ++ xorl 0x400(%ebp,%eax,1),%edi |
| ++ xorl 0x500(%ebp,%edx,1),%edi |
| ++ # Round 15 |
| ++ movl 120(%ecx),%eax |
| ++ xorl %ebx,%ebx |
| ++ movl 124(%ecx),%edx |
| ++ xorl %edi,%eax |
| ++ xorl %ecx,%ecx |
| ++ xorl %edi,%edx |
| ++ andl $0xfcfcfcfc,%eax |
| ++ andl $0xcfcfcfcf,%edx |
| ++ movb %al,%bl |
| ++ movb %ah,%cl |
| ++ rorl $4,%edx |
| ++ xorl (%ebp,%ebx,1),%esi |
| ++ movb %dl,%bl |
| ++ xorl 0x200(%ebp,%ecx,1),%esi |
| ++ movb %dh,%cl |
| ++ shrl $16,%eax |
| ++ xorl 0x100(%ebp,%ebx,1),%esi |
| ++ movb %ah,%bl |
| ++ shrl $16,%edx |
| ++ xorl 0x300(%ebp,%ecx,1),%esi |
| ++ movb %dh,%cl |
| ++ andl $0xff,%eax |
| ++ andl $0xff,%edx |
| ++ xorl 0x600(%ebp,%ebx,1),%esi |
| ++ xorl 0x700(%ebp,%ecx,1),%esi |
| ++ movl (%esp),%ecx |
| ++ xorl 0x400(%ebp,%eax,1),%esi |
| ++ xorl 0x500(%ebp,%edx,1),%esi |
| ++ addl $4,%esp |
| ++ ret |
| ++.align 4 |
| ++__x86_DES_decrypt: |
| ++ pushl %ecx |
| ++ # Round 15 |
| ++ movl 120(%ecx),%eax |
| ++ xorl %ebx,%ebx |
| ++ movl 124(%ecx),%edx |
| ++ xorl %esi,%eax |
| ++ xorl %ecx,%ecx |
| ++ xorl %esi,%edx |
| ++ andl $0xfcfcfcfc,%eax |
| ++ andl $0xcfcfcfcf,%edx |
| ++ movb %al,%bl |
| ++ movb %ah,%cl |
| ++ rorl $4,%edx |
| ++ xorl (%ebp,%ebx,1),%edi |
| ++ movb %dl,%bl |
| ++ xorl 0x200(%ebp,%ecx,1),%edi |
| ++ movb %dh,%cl |
| ++ shrl $16,%eax |
| ++ xorl 0x100(%ebp,%ebx,1),%edi |
| ++ movb %ah,%bl |
| ++ shrl $16,%edx |
| ++ xorl 0x300(%ebp,%ecx,1),%edi |
| ++ movb %dh,%cl |
| ++ andl $0xff,%eax |
| ++ andl $0xff,%edx |
| ++ xorl 0x600(%ebp,%ebx,1),%edi |
| ++ xorl 0x700(%ebp,%ecx,1),%edi |
| ++ movl (%esp),%ecx |
| ++ xorl 0x400(%ebp,%eax,1),%edi |
| ++ xorl 0x500(%ebp,%edx,1),%edi |
| ++ # Round 14 |
| ++ movl 112(%ecx),%eax |
| ++ xorl %ebx,%ebx |
| ++ movl 116(%ecx),%edx |
| ++ xorl %edi,%eax |
| ++ xorl %ecx,%ecx |
| ++ xorl %edi,%edx |
| ++ andl $0xfcfcfcfc,%eax |
| ++ andl $0xcfcfcfcf,%edx |
| ++ movb %al,%bl |
| ++ movb %ah,%cl |
| ++ rorl $4,%edx |
| ++ xorl (%ebp,%ebx,1),%esi |
| ++ movb %dl,%bl |
| ++ xorl 0x200(%ebp,%ecx,1),%esi |
| ++ movb %dh,%cl |
| ++ shrl $16,%eax |
| ++ xorl 0x100(%ebp,%ebx,1),%esi |
| ++ movb %ah,%bl |
| ++ shrl $16,%edx |
| ++ xorl 0x300(%ebp,%ecx,1),%esi |
| ++ movb %dh,%cl |
| ++ andl $0xff,%eax |
| ++ andl $0xff,%edx |
| ++ xorl 0x600(%ebp,%ebx,1),%esi |
| ++ xorl 0x700(%ebp,%ecx,1),%esi |
| ++ movl (%esp),%ecx |
| ++ xorl 0x400(%ebp,%eax,1),%esi |
| ++ xorl 0x500(%ebp,%edx,1),%esi |
| ++ # Round 13 |
| ++ movl 104(%ecx),%eax |
| ++ xorl %ebx,%ebx |
| ++ movl 108(%ecx),%edx |
| ++ xorl %esi,%eax |
| ++ xorl %ecx,%ecx |
| ++ xorl %esi,%edx |
| ++ andl $0xfcfcfcfc,%eax |
| ++ andl $0xcfcfcfcf,%edx |
| ++ movb %al,%bl |
| ++ movb %ah,%cl |
| ++ rorl $4,%edx |
| ++ xorl (%ebp,%ebx,1),%edi |
| ++ movb %dl,%bl |
| ++ xorl 0x200(%ebp,%ecx,1),%edi |
| ++ movb %dh,%cl |
| ++ shrl $16,%eax |
| ++ xorl 0x100(%ebp,%ebx,1),%edi |
| ++ movb %ah,%bl |
| ++ shrl $16,%edx |
| ++ xorl 0x300(%ebp,%ecx,1),%edi |
| ++ movb %dh,%cl |
| ++ andl $0xff,%eax |
| ++ andl $0xff,%edx |
| ++ xorl 0x600(%ebp,%ebx,1),%edi |
| ++ xorl 0x700(%ebp,%ecx,1),%edi |
| ++ movl (%esp),%ecx |
| ++ xorl 0x400(%ebp,%eax,1),%edi |
| ++ xorl 0x500(%ebp,%edx,1),%edi |
| ++ # Round 12 |
| ++ movl 96(%ecx),%eax |
| ++ xorl %ebx,%ebx |
| ++ movl 100(%ecx),%edx |
| ++ xorl %edi,%eax |
| ++ xorl %ecx,%ecx |
| ++ xorl %edi,%edx |
| ++ andl $0xfcfcfcfc,%eax |
| ++ andl $0xcfcfcfcf,%edx |
| ++ movb %al,%bl |
| ++ movb %ah,%cl |
| ++ rorl $4,%edx |
| ++ xorl (%ebp,%ebx,1),%esi |
| ++ movb %dl,%bl |
| ++ xorl 0x200(%ebp,%ecx,1),%esi |
| ++ movb %dh,%cl |
| ++ shrl $16,%eax |
| ++ xorl 0x100(%ebp,%ebx,1),%esi |
| ++ movb %ah,%bl |
| ++ shrl $16,%edx |
| ++ xorl 0x300(%ebp,%ecx,1),%esi |
| ++ movb %dh,%cl |
| ++ andl $0xff,%eax |
| ++ andl $0xff,%edx |
| ++ xorl 0x600(%ebp,%ebx,1),%esi |
| ++ xorl 0x700(%ebp,%ecx,1),%esi |
| ++ movl (%esp),%ecx |
| ++ xorl 0x400(%ebp,%eax,1),%esi |
| ++ xorl 0x500(%ebp,%edx,1),%esi |
| ++ # Round 11 |
| ++ movl 88(%ecx),%eax |
| ++ xorl %ebx,%ebx |
| ++ movl 92(%ecx),%edx |
| ++ xorl %esi,%eax |
| ++ xorl %ecx,%ecx |
| ++ xorl %esi,%edx |
| ++ andl $0xfcfcfcfc,%eax |
| ++ andl $0xcfcfcfcf,%edx |
| ++ movb %al,%bl |
| ++ movb %ah,%cl |
| ++ rorl $4,%edx |
| ++ xorl (%ebp,%ebx,1),%edi |
| ++ movb %dl,%bl |
| ++ xorl 0x200(%ebp,%ecx,1),%edi |
| ++ movb %dh,%cl |
| ++ shrl $16,%eax |
| ++ xorl 0x100(%ebp,%ebx,1),%edi |
| ++ movb %ah,%bl |
| ++ shrl $16,%edx |
| ++ xorl 0x300(%ebp,%ecx,1),%edi |
| ++ movb %dh,%cl |
| ++ andl $0xff,%eax |
| ++ andl $0xff,%edx |
| ++ xorl 0x600(%ebp,%ebx,1),%edi |
| ++ xorl 0x700(%ebp,%ecx,1),%edi |
| ++ movl (%esp),%ecx |
| ++ xorl 0x400(%ebp,%eax,1),%edi |
| ++ xorl 0x500(%ebp,%edx,1),%edi |
| ++ # Round 10 |
| ++ movl 80(%ecx),%eax |
| ++ xorl %ebx,%ebx |
| ++ movl 84(%ecx),%edx |
| ++ xorl %edi,%eax |
| ++ xorl %ecx,%ecx |
| ++ xorl %edi,%edx |
| ++ andl $0xfcfcfcfc,%eax |
| ++ andl $0xcfcfcfcf,%edx |
| ++ movb %al,%bl |
| ++ movb %ah,%cl |
| ++ rorl $4,%edx |
| ++ xorl (%ebp,%ebx,1),%esi |
| ++ movb %dl,%bl |
| ++ xorl 0x200(%ebp,%ecx,1),%esi |
| ++ movb %dh,%cl |
| ++ shrl $16,%eax |
| ++ xorl 0x100(%ebp,%ebx,1),%esi |
| ++ movb %ah,%bl |
| ++ shrl $16,%edx |
| ++ xorl 0x300(%ebp,%ecx,1),%esi |
| ++ movb %dh,%cl |
| ++ andl $0xff,%eax |
| ++ andl $0xff,%edx |
| ++ xorl 0x600(%ebp,%ebx,1),%esi |
| ++ xorl 0x700(%ebp,%ecx,1),%esi |
| ++ movl (%esp),%ecx |
| ++ xorl 0x400(%ebp,%eax,1),%esi |
| ++ xorl 0x500(%ebp,%edx,1),%esi |
| ++ # Round 9 |
| ++ movl 72(%ecx),%eax |
| ++ xorl %ebx,%ebx |
| ++ movl 76(%ecx),%edx |
| ++ xorl %esi,%eax |
| ++ xorl %ecx,%ecx |
| ++ xorl %esi,%edx |
| ++ andl $0xfcfcfcfc,%eax |
| ++ andl $0xcfcfcfcf,%edx |
| ++ movb %al,%bl |
| ++ movb %ah,%cl |
| ++ rorl $4,%edx |
| ++ xorl (%ebp,%ebx,1),%edi |
| ++ movb %dl,%bl |
| ++ xorl 0x200(%ebp,%ecx,1),%edi |
| ++ movb %dh,%cl |
| ++ shrl $16,%eax |
| ++ xorl 0x100(%ebp,%ebx,1),%edi |
| ++ movb %ah,%bl |
| ++ shrl $16,%edx |
| ++ xorl 0x300(%ebp,%ecx,1),%edi |
| ++ movb %dh,%cl |
| ++ andl $0xff,%eax |
| ++ andl $0xff,%edx |
| ++ xorl 0x600(%ebp,%ebx,1),%edi |
| ++ xorl 0x700(%ebp,%ecx,1),%edi |
| ++ movl (%esp),%ecx |
| ++ xorl 0x400(%ebp,%eax,1),%edi |
| ++ xorl 0x500(%ebp,%edx,1),%edi |
| ++ # Round 8 |
| ++ movl 64(%ecx),%eax |
| ++ xorl %ebx,%ebx |
| ++ movl 68(%ecx),%edx |
| ++ xorl %edi,%eax |
| ++ xorl %ecx,%ecx |
| ++ xorl %edi,%edx |
| ++ andl $0xfcfcfcfc,%eax |
| ++ andl $0xcfcfcfcf,%edx |
| ++ movb %al,%bl |
| ++ movb %ah,%cl |
| ++ rorl $4,%edx |
| ++ xorl (%ebp,%ebx,1),%esi |
| ++ movb %dl,%bl |
| ++ xorl 0x200(%ebp,%ecx,1),%esi |
| ++ movb %dh,%cl |
| ++ shrl $16,%eax |
| ++ xorl 0x100(%ebp,%ebx,1),%esi |
| ++ movb %ah,%bl |
| ++ shrl $16,%edx |
| ++ xorl 0x300(%ebp,%ecx,1),%esi |
| ++ movb %dh,%cl |
| ++ andl $0xff,%eax |
| ++ andl $0xff,%edx |
| ++ xorl 0x600(%ebp,%ebx,1),%esi |
| ++ xorl 0x700(%ebp,%ecx,1),%esi |
| ++ movl (%esp),%ecx |
| ++ xorl 0x400(%ebp,%eax,1),%esi |
| ++ xorl 0x500(%ebp,%edx,1),%esi |
| ++ # Round 7 |
| ++ movl 56(%ecx),%eax |
| ++ xorl %ebx,%ebx |
| ++ movl 60(%ecx),%edx |
| ++ xorl %esi,%eax |
| ++ xorl %ecx,%ecx |
| ++ xorl %esi,%edx |
| ++ andl $0xfcfcfcfc,%eax |
| ++ andl $0xcfcfcfcf,%edx |
| ++ movb %al,%bl |
| ++ movb %ah,%cl |
| ++ rorl $4,%edx |
| ++ xorl (%ebp,%ebx,1),%edi |
| ++ movb %dl,%bl |
| ++ xorl 0x200(%ebp,%ecx,1),%edi |
| ++ movb %dh,%cl |
| ++ shrl $16,%eax |
| ++ xorl 0x100(%ebp,%ebx,1),%edi |
| ++ movb %ah,%bl |
| ++ shrl $16,%edx |
| ++ xorl 0x300(%ebp,%ecx,1),%edi |
| ++ movb %dh,%cl |
| ++ andl $0xff,%eax |
| ++ andl $0xff,%edx |
| ++ xorl 0x600(%ebp,%ebx,1),%edi |
| ++ xorl 0x700(%ebp,%ecx,1),%edi |
| ++ movl (%esp),%ecx |
| ++ xorl 0x400(%ebp,%eax,1),%edi |
| ++ xorl 0x500(%ebp,%edx,1),%edi |
| ++ # Round 6 |
| ++ movl 48(%ecx),%eax |
| ++ xorl %ebx,%ebx |
| ++ movl 52(%ecx),%edx |
| ++ xorl %edi,%eax |
| ++ xorl %ecx,%ecx |
| ++ xorl %edi,%edx |
| ++ andl $0xfcfcfcfc,%eax |
| ++ andl $0xcfcfcfcf,%edx |
| ++ movb %al,%bl |
| ++ movb %ah,%cl |
| ++ rorl $4,%edx |
| ++ xorl (%ebp,%ebx,1),%esi |
| ++ movb %dl,%bl |
| ++ xorl 0x200(%ebp,%ecx,1),%esi |
| ++ movb %dh,%cl |
| ++ shrl $16,%eax |
| ++ xorl 0x100(%ebp,%ebx,1),%esi |
| ++ movb %ah,%bl |
| ++ shrl $16,%edx |
| ++ xorl 0x300(%ebp,%ecx,1),%esi |
| ++ movb %dh,%cl |
| ++ andl $0xff,%eax |
| ++ andl $0xff,%edx |
| ++ xorl 0x600(%ebp,%ebx,1),%esi |
| ++ xorl 0x700(%ebp,%ecx,1),%esi |
| ++ movl (%esp),%ecx |
| ++ xorl 0x400(%ebp,%eax,1),%esi |
| ++ xorl 0x500(%ebp,%edx,1),%esi |
| ++ # Round 5 |
| ++ movl 40(%ecx),%eax |
| ++ xorl %ebx,%ebx |
| ++ movl 44(%ecx),%edx |
| ++ xorl %esi,%eax |
| ++ xorl %ecx,%ecx |
| ++ xorl %esi,%edx |
| ++ andl $0xfcfcfcfc,%eax |
| ++ andl $0xcfcfcfcf,%edx |
| ++ movb %al,%bl |
| ++ movb %ah,%cl |
| ++ rorl $4,%edx |
| ++ xorl (%ebp,%ebx,1),%edi |
| ++ movb %dl,%bl |
| ++ xorl 0x200(%ebp,%ecx,1),%edi |
| ++ movb %dh,%cl |
| ++ shrl $16,%eax |
| ++ xorl 0x100(%ebp,%ebx,1),%edi |
| ++ movb %ah,%bl |
| ++ shrl $16,%edx |
| ++ xorl 0x300(%ebp,%ecx,1),%edi |
| ++ movb %dh,%cl |
| ++ andl $0xff,%eax |
| ++ andl $0xff,%edx |
| ++ xorl 0x600(%ebp,%ebx,1),%edi |
| ++ xorl 0x700(%ebp,%ecx,1),%edi |
| ++ movl (%esp),%ecx |
| ++ xorl 0x400(%ebp,%eax,1),%edi |
| ++ xorl 0x500(%ebp,%edx,1),%edi |
| ++ # Round 4 |
| ++ movl 32(%ecx),%eax |
| ++ xorl %ebx,%ebx |
| ++ movl 36(%ecx),%edx |
| ++ xorl %edi,%eax |
| ++ xorl %ecx,%ecx |
| ++ xorl %edi,%edx |
| ++ andl $0xfcfcfcfc,%eax |
| ++ andl $0xcfcfcfcf,%edx |
| ++ movb %al,%bl |
| ++ movb %ah,%cl |
| ++ rorl $4,%edx |
| ++ xorl (%ebp,%ebx,1),%esi |
| ++ movb %dl,%bl |
| ++ xorl 0x200(%ebp,%ecx,1),%esi |
| ++ movb %dh,%cl |
| ++ shrl $16,%eax |
| ++ xorl 0x100(%ebp,%ebx,1),%esi |
| ++ movb %ah,%bl |
| ++ shrl $16,%edx |
| ++ xorl 0x300(%ebp,%ecx,1),%esi |
| ++ movb %dh,%cl |
| ++ andl $0xff,%eax |
| ++ andl $0xff,%edx |
| ++ xorl 0x600(%ebp,%ebx,1),%esi |
| ++ xorl 0x700(%ebp,%ecx,1),%esi |
| ++ movl (%esp),%ecx |
| ++ xorl 0x400(%ebp,%eax,1),%esi |
| ++ xorl 0x500(%ebp,%edx,1),%esi |
| ++ # Round 3 |
| ++ movl 24(%ecx),%eax |
| ++ xorl %ebx,%ebx |
| ++ movl 28(%ecx),%edx |
| ++ xorl %esi,%eax |
| ++ xorl %ecx,%ecx |
| ++ xorl %esi,%edx |
| ++ andl $0xfcfcfcfc,%eax |
| ++ andl $0xcfcfcfcf,%edx |
| ++ movb %al,%bl |
| ++ movb %ah,%cl |
| ++ rorl $4,%edx |
| ++ xorl (%ebp,%ebx,1),%edi |
| ++ movb %dl,%bl |
| ++ xorl 0x200(%ebp,%ecx,1),%edi |
| ++ movb %dh,%cl |
| ++ shrl $16,%eax |
| ++ xorl 0x100(%ebp,%ebx,1),%edi |
| ++ movb %ah,%bl |
| ++ shrl $16,%edx |
| ++ xorl 0x300(%ebp,%ecx,1),%edi |
| ++ movb %dh,%cl |
| ++ andl $0xff,%eax |
| ++ andl $0xff,%edx |
| ++ xorl 0x600(%ebp,%ebx,1),%edi |
| ++ xorl 0x700(%ebp,%ecx,1),%edi |
| ++ movl (%esp),%ecx |
| ++ xorl 0x400(%ebp,%eax,1),%edi |
| ++ xorl 0x500(%ebp,%edx,1),%edi |
| ++ # Round 2 |
| ++ movl 16(%ecx),%eax |
| ++ xorl %ebx,%ebx |
| ++ movl 20(%ecx),%edx |
| ++ xorl %edi,%eax |
| ++ xorl %ecx,%ecx |
| ++ xorl %edi,%edx |
| ++ andl $0xfcfcfcfc,%eax |
| ++ andl $0xcfcfcfcf,%edx |
| ++ movb %al,%bl |
| ++ movb %ah,%cl |
| ++ rorl $4,%edx |
| ++ xorl (%ebp,%ebx,1),%esi |
| ++ movb %dl,%bl |
| ++ xorl 0x200(%ebp,%ecx,1),%esi |
| ++ movb %dh,%cl |
| ++ shrl $16,%eax |
| ++ xorl 0x100(%ebp,%ebx,1),%esi |
| ++ movb %ah,%bl |
| ++ shrl $16,%edx |
| ++ xorl 0x300(%ebp,%ecx,1),%esi |
| ++ movb %dh,%cl |
| ++ andl $0xff,%eax |
| ++ andl $0xff,%edx |
| ++ xorl 0x600(%ebp,%ebx,1),%esi |
| ++ xorl 0x700(%ebp,%ecx,1),%esi |
| ++ movl (%esp),%ecx |
| ++ xorl 0x400(%ebp,%eax,1),%esi |
| ++ xorl 0x500(%ebp,%edx,1),%esi |
| ++ # Round 1 |
| ++ movl 8(%ecx),%eax |
| ++ xorl %ebx,%ebx |
| ++ movl 12(%ecx),%edx |
| ++ xorl %esi,%eax |
| ++ xorl %ecx,%ecx |
| ++ xorl %esi,%edx |
| ++ andl $0xfcfcfcfc,%eax |
| ++ andl $0xcfcfcfcf,%edx |
| ++ movb %al,%bl |
| ++ movb %ah,%cl |
| ++ rorl $4,%edx |
| ++ xorl (%ebp,%ebx,1),%edi |
| ++ movb %dl,%bl |
| ++ xorl 0x200(%ebp,%ecx,1),%edi |
| ++ movb %dh,%cl |
| ++ shrl $16,%eax |
| ++ xorl 0x100(%ebp,%ebx,1),%edi |
| ++ movb %ah,%bl |
| ++ shrl $16,%edx |
| ++ xorl 0x300(%ebp,%ecx,1),%edi |
| ++ movb %dh,%cl |
| ++ andl $0xff,%eax |
| ++ andl $0xff,%edx |
| ++ xorl 0x600(%ebp,%ebx,1),%edi |
| ++ xorl 0x700(%ebp,%ecx,1),%edi |
| ++ movl (%esp),%ecx |
| ++ xorl 0x400(%ebp,%eax,1),%edi |
| ++ xorl 0x500(%ebp,%edx,1),%edi |
| ++ # Round 0 |
| ++ movl (%ecx),%eax |
| ++ xorl %ebx,%ebx |
| ++ movl 4(%ecx),%edx |
| ++ xorl %edi,%eax |
| ++ xorl %ecx,%ecx |
| ++ xorl %edi,%edx |
| ++ andl $0xfcfcfcfc,%eax |
| ++ andl $0xcfcfcfcf,%edx |
| ++ movb %al,%bl |
| ++ movb %ah,%cl |
| ++ rorl $4,%edx |
| ++ xorl (%ebp,%ebx,1),%esi |
| ++ movb %dl,%bl |
| ++ xorl 0x200(%ebp,%ecx,1),%esi |
| ++ movb %dh,%cl |
| ++ shrl $16,%eax |
| ++ xorl 0x100(%ebp,%ebx,1),%esi |
| ++ movb %ah,%bl |
| ++ shrl $16,%edx |
| ++ xorl 0x300(%ebp,%ecx,1),%esi |
| ++ movb %dh,%cl |
| ++ andl $0xff,%eax |
| ++ andl $0xff,%edx |
| ++ xorl 0x600(%ebp,%ebx,1),%esi |
| ++ xorl 0x700(%ebp,%ecx,1),%esi |
| ++ movl (%esp),%ecx |
| ++ xorl 0x400(%ebp,%eax,1),%esi |
| ++ xorl 0x500(%ebp,%edx,1),%esi |
| ++ addl $4,%esp |
| ++ ret |
| ++.globl _DES_encrypt1 |
| ++.align 4 |
| ++_DES_encrypt1: |
| ++L_DES_encrypt1_begin: |
| ++ pushl %esi |
| ++ pushl %edi |
| ++ |
| ++ # Load the 2 words |
| ++ movl 12(%esp),%esi |
| ++ xorl %ecx,%ecx |
| ++ pushl %ebx |
| ++ pushl %ebp |
| ++ movl (%esi),%eax |
| ++ movl 28(%esp),%ebx |
| ++ movl 4(%esi),%edi |
| ++ |
| ++ # IP |
| ++ roll $4,%eax |
| ++ movl %eax,%esi |
| ++ xorl %edi,%eax |
| ++ andl $0xf0f0f0f0,%eax |
| ++ xorl %eax,%esi |
| ++ xorl %eax,%edi |
| ++ |
| ++ roll $20,%edi |
| ++ movl %edi,%eax |
| ++ xorl %esi,%edi |
| ++ andl $0xfff0000f,%edi |
| ++ xorl %edi,%eax |
| ++ xorl %edi,%esi |
| ++ |
| ++ roll $14,%eax |
| ++ movl %eax,%edi |
| ++ xorl %esi,%eax |
| ++ andl $0x33333333,%eax |
| ++ xorl %eax,%edi |
| ++ xorl %eax,%esi |
| ++ |
| ++ roll $22,%esi |
| ++ movl %esi,%eax |
| ++ xorl %edi,%esi |
| ++ andl $0x03fc03fc,%esi |
| ++ xorl %esi,%eax |
| ++ xorl %esi,%edi |
| ++ |
| ++ roll $9,%eax |
| ++ movl %eax,%esi |
| ++ xorl %edi,%eax |
| ++ andl $0xaaaaaaaa,%eax |
| ++ xorl %eax,%esi |
| ++ xorl %eax,%edi |
| ++ |
| ++ roll $1,%edi |
| ++ call L000pic_point |
| ++L000pic_point: |
| ++ popl %ebp |
| ++ leal _DES_SPtrans-L000pic_point(%ebp),%ebp |
| ++ movl 24(%esp),%ecx |
| ++ cmpl $0,%ebx |
| ++ je L001decrypt |
| ++ call __x86_DES_encrypt |
| ++ jmp L002done |
| ++L001decrypt: |
| ++ call __x86_DES_decrypt |
| ++L002done: |
| ++ |
| ++ # FP |
| ++ movl 20(%esp),%edx |
| ++ rorl $1,%esi |
| ++ movl %edi,%eax |
| ++ xorl %esi,%edi |
| ++ andl $0xaaaaaaaa,%edi |
| ++ xorl %edi,%eax |
| ++ xorl %edi,%esi |
| ++ |
| ++ roll $23,%eax |
| ++ movl %eax,%edi |
| ++ xorl %esi,%eax |
| ++ andl $0x03fc03fc,%eax |
| ++ xorl %eax,%edi |
| ++ xorl %eax,%esi |
| ++ |
| ++ roll $10,%edi |
| ++ movl %edi,%eax |
| ++ xorl %esi,%edi |
| ++ andl $0x33333333,%edi |
| ++ xorl %edi,%eax |
| ++ xorl %edi,%esi |
| ++ |
| ++ roll $18,%esi |
| ++ movl %esi,%edi |
| ++ xorl %eax,%esi |
| ++ andl $0xfff0000f,%esi |
| ++ xorl %esi,%edi |
| ++ xorl %esi,%eax |
| ++ |
| ++ roll $12,%edi |
| ++ movl %edi,%esi |
| ++ xorl %eax,%edi |
| ++ andl $0xf0f0f0f0,%edi |
| ++ xorl %edi,%esi |
| ++ xorl %edi,%eax |
| ++ |
| ++ rorl $4,%eax |
| ++ movl %eax,(%edx) |
| ++ movl %esi,4(%edx) |
| ++ popl %ebp |
| ++ popl %ebx |
| ++ popl %edi |
| ++ popl %esi |
| ++ ret |
| ++.globl _DES_encrypt2 |
| ++.align 4 |
| ++_DES_encrypt2: |
| ++L_DES_encrypt2_begin: |
| ++ pushl %esi |
| ++ pushl %edi |
| ++ |
| ++ # Load the 2 words |
| ++ movl 12(%esp),%eax |
| ++ xorl %ecx,%ecx |
| ++ pushl %ebx |
| ++ pushl %ebp |
| ++ movl (%eax),%esi |
| ++ movl 28(%esp),%ebx |
| ++ roll $3,%esi |
| ++ movl 4(%eax),%edi |
| ++ roll $3,%edi |
| ++ call L003pic_point |
| ++L003pic_point: |
| ++ popl %ebp |
| ++ leal _DES_SPtrans-L003pic_point(%ebp),%ebp |
| ++ movl 24(%esp),%ecx |
| ++ cmpl $0,%ebx |
| ++ je L004decrypt |
| ++ call __x86_DES_encrypt |
| ++ jmp L005done |
| ++L004decrypt: |
| ++ call __x86_DES_decrypt |
| ++L005done: |
| ++ |
| ++ # Fixup |
| ++ rorl $3,%edi |
| ++ movl 20(%esp),%eax |
| ++ rorl $3,%esi |
| ++ movl %edi,(%eax) |
| ++ movl %esi,4(%eax) |
| ++ popl %ebp |
| ++ popl %ebx |
| ++ popl %edi |
| ++ popl %esi |
| ++ ret |
| ++.globl _DES_encrypt3 |
| ++.align 4 |
| ++_DES_encrypt3: |
| ++L_DES_encrypt3_begin: |
| ++ pushl %ebx |
| ++ movl 8(%esp),%ebx |
| ++ pushl %ebp |
| ++ pushl %esi |
| ++ pushl %edi |
| ++ |
| ++ # Load the data words |
| ++ movl (%ebx),%edi |
| ++ movl 4(%ebx),%esi |
| ++ subl $12,%esp |
| ++ |
| ++ # IP |
| ++ roll $4,%edi |
| ++ movl %edi,%edx |
| ++ xorl %esi,%edi |
| ++ andl $0xf0f0f0f0,%edi |
| ++ xorl %edi,%edx |
| ++ xorl %edi,%esi |
| ++ |
| ++ roll $20,%esi |
| ++ movl %esi,%edi |
| ++ xorl %edx,%esi |
| ++ andl $0xfff0000f,%esi |
| ++ xorl %esi,%edi |
| ++ xorl %esi,%edx |
| ++ |
| ++ roll $14,%edi |
| ++ movl %edi,%esi |
| ++ xorl %edx,%edi |
| ++ andl $0x33333333,%edi |
| ++ xorl %edi,%esi |
| ++ xorl %edi,%edx |
| ++ |
| ++ roll $22,%edx |
| ++ movl %edx,%edi |
| ++ xorl %esi,%edx |
| ++ andl $0x03fc03fc,%edx |
| ++ xorl %edx,%edi |
| ++ xorl %edx,%esi |
| ++ |
| ++ roll $9,%edi |
| ++ movl %edi,%edx |
| ++ xorl %esi,%edi |
| ++ andl $0xaaaaaaaa,%edi |
| ++ xorl %edi,%edx |
| ++ xorl %edi,%esi |
| ++ |
| ++ rorl $3,%edx |
| ++ rorl $2,%esi |
| ++ movl %esi,4(%ebx) |
| ++ movl 36(%esp),%eax |
| ++ movl %edx,(%ebx) |
| ++ movl 40(%esp),%edi |
| ++ movl 44(%esp),%esi |
| ++ movl $1,8(%esp) |
| ++ movl %eax,4(%esp) |
| ++ movl %ebx,(%esp) |
| ++ call L_DES_encrypt2_begin |
| ++ movl $0,8(%esp) |
| ++ movl %edi,4(%esp) |
| ++ movl %ebx,(%esp) |
| ++ call L_DES_encrypt2_begin |
| ++ movl $1,8(%esp) |
| ++ movl %esi,4(%esp) |
| ++ movl %ebx,(%esp) |
| ++ call L_DES_encrypt2_begin |
| ++ addl $12,%esp |
| ++ movl (%ebx),%edi |
| ++ movl 4(%ebx),%esi |
| ++ |
| ++ # FP |
| ++ roll $2,%esi |
| ++ roll $3,%edi |
| ++ movl %edi,%eax |
| ++ xorl %esi,%edi |
| ++ andl $0xaaaaaaaa,%edi |
| ++ xorl %edi,%eax |
| ++ xorl %edi,%esi |
| ++ |
| ++ roll $23,%eax |
| ++ movl %eax,%edi |
| ++ xorl %esi,%eax |
| ++ andl $0x03fc03fc,%eax |
| ++ xorl %eax,%edi |
| ++ xorl %eax,%esi |
| ++ |
| ++ roll $10,%edi |
| ++ movl %edi,%eax |
| ++ xorl %esi,%edi |
| ++ andl $0x33333333,%edi |
| ++ xorl %edi,%eax |
| ++ xorl %edi,%esi |
| ++ |
| ++ roll $18,%esi |
| ++ movl %esi,%edi |
| ++ xorl %eax,%esi |
| ++ andl $0xfff0000f,%esi |
| ++ xorl %esi,%edi |
| ++ xorl %esi,%eax |
| ++ |
| ++ roll $12,%edi |
| ++ movl %edi,%esi |
| ++ xorl %eax,%edi |
| ++ andl $0xf0f0f0f0,%edi |
| ++ xorl %edi,%esi |
| ++ xorl %edi,%eax |
| ++ |
| ++ rorl $4,%eax |
| ++ movl %eax,(%ebx) |
| ++ movl %esi,4(%ebx) |
| ++ popl %edi |
| ++ popl %esi |
| ++ popl %ebp |
| ++ popl %ebx |
| ++ ret |
| ++.globl _DES_decrypt3 |
| ++.align 4 |
| ++_DES_decrypt3: |
| ++L_DES_decrypt3_begin: |
| ++ pushl %ebx |
| ++ movl 8(%esp),%ebx |
| ++ pushl %ebp |
| ++ pushl %esi |
| ++ pushl %edi |
| ++ |
| ++ # Load the data words |
| ++ movl (%ebx),%edi |
| ++ movl 4(%ebx),%esi |
| ++ subl $12,%esp |
| ++ |
| ++ # IP |
| ++ roll $4,%edi |
| ++ movl %edi,%edx |
| ++ xorl %esi,%edi |
| ++ andl $0xf0f0f0f0,%edi |
| ++ xorl %edi,%edx |
| ++ xorl %edi,%esi |
| ++ |
| ++ roll $20,%esi |
| ++ movl %esi,%edi |
| ++ xorl %edx,%esi |
| ++ andl $0xfff0000f,%esi |
| ++ xorl %esi,%edi |
| ++ xorl %esi,%edx |
| ++ |
| ++ roll $14,%edi |
| ++ movl %edi,%esi |
| ++ xorl %edx,%edi |
| ++ andl $0x33333333,%edi |
| ++ xorl %edi,%esi |
| ++ xorl %edi,%edx |
| ++ |
| ++ roll $22,%edx |
| ++ movl %edx,%edi |
| ++ xorl %esi,%edx |
| ++ andl $0x03fc03fc,%edx |
| ++ xorl %edx,%edi |
| ++ xorl %edx,%esi |
| ++ |
| ++ roll $9,%edi |
| ++ movl %edi,%edx |
| ++ xorl %esi,%edi |
| ++ andl $0xaaaaaaaa,%edi |
| ++ xorl %edi,%edx |
| ++ xorl %edi,%esi |
| ++ |
| ++ rorl $3,%edx |
| ++ rorl $2,%esi |
| ++ movl %esi,4(%ebx) |
| ++ movl 36(%esp),%esi |
| ++ movl %edx,(%ebx) |
| ++ movl 40(%esp),%edi |
| ++ movl 44(%esp),%eax |
| ++ movl $0,8(%esp) |
| ++ movl %eax,4(%esp) |
| ++ movl %ebx,(%esp) |
| ++ call L_DES_encrypt2_begin |
| ++ movl $1,8(%esp) |
| ++ movl %edi,4(%esp) |
| ++ movl %ebx,(%esp) |
| ++ call L_DES_encrypt2_begin |
| ++ movl $0,8(%esp) |
| ++ movl %esi,4(%esp) |
| ++ movl %ebx,(%esp) |
| ++ call L_DES_encrypt2_begin |
| ++ addl $12,%esp |
| ++ movl (%ebx),%edi |
| ++ movl 4(%ebx),%esi |
| ++ |
| ++ # FP |
| ++ roll $2,%esi |
| ++ roll $3,%edi |
| ++ movl %edi,%eax |
| ++ xorl %esi,%edi |
| ++ andl $0xaaaaaaaa,%edi |
| ++ xorl %edi,%eax |
| ++ xorl %edi,%esi |
| ++ |
| ++ roll $23,%eax |
| ++ movl %eax,%edi |
| ++ xorl %esi,%eax |
| ++ andl $0x03fc03fc,%eax |
| ++ xorl %eax,%edi |
| ++ xorl %eax,%esi |
| ++ |
| ++ roll $10,%edi |
| ++ movl %edi,%eax |
| ++ xorl %esi,%edi |
| ++ andl $0x33333333,%edi |
| ++ xorl %edi,%eax |
| ++ xorl %edi,%esi |
| ++ |
| ++ roll $18,%esi |
| ++ movl %esi,%edi |
| ++ xorl %eax,%esi |
| ++ andl $0xfff0000f,%esi |
| ++ xorl %esi,%edi |
| ++ xorl %esi,%eax |
| ++ |
| ++ roll $12,%edi |
| ++ movl %edi,%esi |
| ++ xorl %eax,%edi |
| ++ andl $0xf0f0f0f0,%edi |
| ++ xorl %edi,%esi |
| ++ xorl %edi,%eax |
| ++ |
| ++ rorl $4,%eax |
| ++ movl %eax,(%ebx) |
| ++ movl %esi,4(%ebx) |
| ++ popl %edi |
| ++ popl %esi |
| ++ popl %ebp |
| ++ popl %ebx |
| ++ ret |
| ++.globl _DES_ncbc_encrypt |
| ++.align 4 |
| ++_DES_ncbc_encrypt: |
| ++L_DES_ncbc_encrypt_begin: |
| ++ |
| ++ pushl %ebp |
| ++ pushl %ebx |
| ++ pushl %esi |
| ++ pushl %edi |
| ++ movl 28(%esp),%ebp |
| ++ # getting iv ptr from parameter 4 |
| ++ movl 36(%esp),%ebx |
| ++ movl (%ebx),%esi |
| ++ movl 4(%ebx),%edi |
| ++ pushl %edi |
| ++ pushl %esi |
| ++ pushl %edi |
| ++ pushl %esi |
| ++ movl %esp,%ebx |
| ++ movl 36(%esp),%esi |
| ++ movl 40(%esp),%edi |
| ++ # getting encrypt flag from parameter 5 |
| ++ movl 56(%esp),%ecx |
| ++ # get and push parameter 5 |
| ++ pushl %ecx |
| ++ # get and push parameter 3 |
| ++ movl 52(%esp),%eax |
| ++ pushl %eax |
| ++ pushl %ebx |
| ++ cmpl $0,%ecx |
| ++ jz L006decrypt |
| ++ andl $4294967288,%ebp |
| ++ movl 12(%esp),%eax |
| ++ movl 16(%esp),%ebx |
| ++ jz L007encrypt_finish |
| ++L008encrypt_loop: |
| ++ movl (%esi),%ecx |
| ++ movl 4(%esi),%edx |
| ++ xorl %ecx,%eax |
| ++ xorl %edx,%ebx |
| ++ movl %eax,12(%esp) |
| ++ movl %ebx,16(%esp) |
| ++ call L_DES_encrypt1_begin |
| ++ movl 12(%esp),%eax |
| ++ movl 16(%esp),%ebx |
| ++ movl %eax,(%edi) |
| ++ movl %ebx,4(%edi) |
| ++ addl $8,%esi |
| ++ addl $8,%edi |
| ++ subl $8,%ebp |
| ++ jnz L008encrypt_loop |
| ++L007encrypt_finish: |
| ++ movl 56(%esp),%ebp |
| ++ andl $7,%ebp |
| ++ jz L009finish |
| ++ call L010PIC_point |
| ++L010PIC_point: |
| ++ popl %edx |
| ++ leal L011cbc_enc_jmp_table-L010PIC_point(%edx),%ecx |
| ++ movl (%ecx,%ebp,4),%ebp |
| ++ addl %edx,%ebp |
| ++ xorl %ecx,%ecx |
| ++ xorl %edx,%edx |
| ++ jmp *%ebp |
| ++L012ej7: |
| ++ movb 6(%esi),%dh |
| ++ shll $8,%edx |
| ++L013ej6: |
| ++ movb 5(%esi),%dh |
| ++L014ej5: |
| ++ movb 4(%esi),%dl |
| ++L015ej4: |
| ++ movl (%esi),%ecx |
| ++ jmp L016ejend |
| ++L017ej3: |
| ++ movb 2(%esi),%ch |
| ++ shll $8,%ecx |
| ++L018ej2: |
| ++ movb 1(%esi),%ch |
| ++L019ej1: |
| ++ movb (%esi),%cl |
| ++L016ejend: |
| ++ xorl %ecx,%eax |
| ++ xorl %edx,%ebx |
| ++ movl %eax,12(%esp) |
| ++ movl %ebx,16(%esp) |
| ++ call L_DES_encrypt1_begin |
| ++ movl 12(%esp),%eax |
| ++ movl 16(%esp),%ebx |
| ++ movl %eax,(%edi) |
| ++ movl %ebx,4(%edi) |
| ++ jmp L009finish |
| ++L006decrypt: |
| ++ andl $4294967288,%ebp |
| ++ movl 20(%esp),%eax |
| ++ movl 24(%esp),%ebx |
| ++ jz L020decrypt_finish |
| ++L021decrypt_loop: |
| ++ movl (%esi),%eax |
| ++ movl 4(%esi),%ebx |
| ++ movl %eax,12(%esp) |
| ++ movl %ebx,16(%esp) |
| ++ call L_DES_encrypt1_begin |
| ++ movl 12(%esp),%eax |
| ++ movl 16(%esp),%ebx |
| ++ movl 20(%esp),%ecx |
| ++ movl 24(%esp),%edx |
| ++ xorl %eax,%ecx |
| ++ xorl %ebx,%edx |
| ++ movl (%esi),%eax |
| ++ movl 4(%esi),%ebx |
| ++ movl %ecx,(%edi) |
| ++ movl %edx,4(%edi) |
| ++ movl %eax,20(%esp) |
| ++ movl %ebx,24(%esp) |
| ++ addl $8,%esi |
| ++ addl $8,%edi |
| ++ subl $8,%ebp |
| ++ jnz L021decrypt_loop |
| ++L020decrypt_finish: |
| ++ movl 56(%esp),%ebp |
| ++ andl $7,%ebp |
| ++ jz L009finish |
| ++ movl (%esi),%eax |
| ++ movl 4(%esi),%ebx |
| ++ movl %eax,12(%esp) |
| ++ movl %ebx,16(%esp) |
| ++ call L_DES_encrypt1_begin |
| ++ movl 12(%esp),%eax |
| ++ movl 16(%esp),%ebx |
| ++ movl 20(%esp),%ecx |
| ++ movl 24(%esp),%edx |
| ++ xorl %eax,%ecx |
| ++ xorl %ebx,%edx |
| ++ movl (%esi),%eax |
| ++ movl 4(%esi),%ebx |
| ++L022dj7: |
| ++ rorl $16,%edx |
| ++ movb %dl,6(%edi) |
| ++ shrl $16,%edx |
| ++L023dj6: |
| ++ movb %dh,5(%edi) |
| ++L024dj5: |
| ++ movb %dl,4(%edi) |
| ++L025dj4: |
| ++ movl %ecx,(%edi) |
| ++ jmp L026djend |
| ++L027dj3: |
| ++ rorl $16,%ecx |
| ++ movb %cl,2(%edi) |
| ++ shll $16,%ecx |
| ++L028dj2: |
| ++ movb %ch,1(%esi) |
| ++L029dj1: |
| ++ movb %cl,(%esi) |
| ++L026djend: |
| ++ jmp L009finish |
| ++L009finish: |
| ++ movl 64(%esp),%ecx |
| ++ addl $28,%esp |
| ++ movl %eax,(%ecx) |
| ++ movl %ebx,4(%ecx) |
| ++ popl %edi |
| ++ popl %esi |
| ++ popl %ebx |
| ++ popl %ebp |
| ++ ret |
| ++.align 6,0x90 |
| ++L011cbc_enc_jmp_table: |
| ++.long 0 |
| ++.long L019ej1-L010PIC_point |
| ++.long L018ej2-L010PIC_point |
| ++.long L017ej3-L010PIC_point |
| ++.long L015ej4-L010PIC_point |
| ++.long L014ej5-L010PIC_point |
| ++.long L013ej6-L010PIC_point |
| ++.long L012ej7-L010PIC_point |
| ++.align 6,0x90 |
| ++.globl _DES_ede3_cbc_encrypt |
| ++.align 4 |
| ++_DES_ede3_cbc_encrypt: |
| ++L_DES_ede3_cbc_encrypt_begin: |
| ++ |
| ++ pushl %ebp |
| ++ pushl %ebx |
| ++ pushl %esi |
| ++ pushl %edi |
| ++ movl 28(%esp),%ebp |
| ++ # getting iv ptr from parameter 6 |
| ++ movl 44(%esp),%ebx |
| ++ movl (%ebx),%esi |
| ++ movl 4(%ebx),%edi |
| ++ pushl %edi |
| ++ pushl %esi |
| ++ pushl %edi |
| ++ pushl %esi |
| ++ movl %esp,%ebx |
| ++ movl 36(%esp),%esi |
| ++ movl 40(%esp),%edi |
| ++ # getting encrypt flag from parameter 7 |
| ++ movl 64(%esp),%ecx |
| ++ # get and push parameter 5 |
| ++ movl 56(%esp),%eax |
| ++ pushl %eax |
| ++ # get and push parameter 4 |
| ++ movl 56(%esp),%eax |
| ++ pushl %eax |
| ++ # get and push parameter 3 |
| ++ movl 56(%esp),%eax |
| ++ pushl %eax |
| ++ pushl %ebx |
| ++ cmpl $0,%ecx |
| ++ jz L030decrypt |
| ++ andl $4294967288,%ebp |
| ++ movl 16(%esp),%eax |
| ++ movl 20(%esp),%ebx |
| ++ jz L031encrypt_finish |
| ++L032encrypt_loop: |
| ++ movl (%esi),%ecx |
| ++ movl 4(%esi),%edx |
| ++ xorl %ecx,%eax |
| ++ xorl %edx,%ebx |
| ++ movl %eax,16(%esp) |
| ++ movl %ebx,20(%esp) |
| ++ call L_DES_encrypt3_begin |
| ++ movl 16(%esp),%eax |
| ++ movl 20(%esp),%ebx |
| ++ movl %eax,(%edi) |
| ++ movl %ebx,4(%edi) |
| ++ addl $8,%esi |
| ++ addl $8,%edi |
| ++ subl $8,%ebp |
| ++ jnz L032encrypt_loop |
| ++L031encrypt_finish: |
| ++ movl 60(%esp),%ebp |
| ++ andl $7,%ebp |
| ++ jz L033finish |
| ++ call L034PIC_point |
| ++L034PIC_point: |
| ++ popl %edx |
| ++ leal L035cbc_enc_jmp_table-L034PIC_point(%edx),%ecx |
| ++ movl (%ecx,%ebp,4),%ebp |
| ++ addl %edx,%ebp |
| ++ xorl %ecx,%ecx |
| ++ xorl %edx,%edx |
| ++ jmp *%ebp |
| ++L036ej7: |
| ++ movb 6(%esi),%dh |
| ++ shll $8,%edx |
| ++L037ej6: |
| ++ movb 5(%esi),%dh |
| ++L038ej5: |
| ++ movb 4(%esi),%dl |
| ++L039ej4: |
| ++ movl (%esi),%ecx |
| ++ jmp L040ejend |
| ++L041ej3: |
| ++ movb 2(%esi),%ch |
| ++ shll $8,%ecx |
| ++L042ej2: |
| ++ movb 1(%esi),%ch |
| ++L043ej1: |
| ++ movb (%esi),%cl |
| ++L040ejend: |
| ++ xorl %ecx,%eax |
| ++ xorl %edx,%ebx |
| ++ movl %eax,16(%esp) |
| ++ movl %ebx,20(%esp) |
| ++ call L_DES_encrypt3_begin |
| ++ movl 16(%esp),%eax |
| ++ movl 20(%esp),%ebx |
| ++ movl %eax,(%edi) |
| ++ movl %ebx,4(%edi) |
| ++ jmp L033finish |
| ++L030decrypt: |
| ++ andl $4294967288,%ebp |
| ++ movl 24(%esp),%eax |
| ++ movl 28(%esp),%ebx |
| ++ jz L044decrypt_finish |
| ++L045decrypt_loop: |
| ++ movl (%esi),%eax |
| ++ movl 4(%esi),%ebx |
| ++ movl %eax,16(%esp) |
| ++ movl %ebx,20(%esp) |
| ++ call L_DES_decrypt3_begin |
| ++ movl 16(%esp),%eax |
| ++ movl 20(%esp),%ebx |
| ++ movl 24(%esp),%ecx |
| ++ movl 28(%esp),%edx |
| ++ xorl %eax,%ecx |
| ++ xorl %ebx,%edx |
| ++ movl (%esi),%eax |
| ++ movl 4(%esi),%ebx |
| ++ movl %ecx,(%edi) |
| ++ movl %edx,4(%edi) |
| ++ movl %eax,24(%esp) |
| ++ movl %ebx,28(%esp) |
| ++ addl $8,%esi |
| ++ addl $8,%edi |
| ++ subl $8,%ebp |
| ++ jnz L045decrypt_loop |
| ++L044decrypt_finish: |
| ++ movl 60(%esp),%ebp |
| ++ andl $7,%ebp |
| ++ jz L033finish |
| ++ movl (%esi),%eax |
| ++ movl 4(%esi),%ebx |
| ++ movl %eax,16(%esp) |
| ++ movl %ebx,20(%esp) |
| ++ call L_DES_decrypt3_begin |
| ++ movl 16(%esp),%eax |
| ++ movl 20(%esp),%ebx |
| ++ movl 24(%esp),%ecx |
| ++ movl 28(%esp),%edx |
| ++ xorl %eax,%ecx |
| ++ xorl %ebx,%edx |
| ++ movl (%esi),%eax |
| ++ movl 4(%esi),%ebx |
| ++L046dj7: |
| ++ rorl $16,%edx |
| ++ movb %dl,6(%edi) |
| ++ shrl $16,%edx |
| ++L047dj6: |
| ++ movb %dh,5(%edi) |
| ++L048dj5: |
| ++ movb %dl,4(%edi) |
| ++L049dj4: |
| ++ movl %ecx,(%edi) |
| ++ jmp L050djend |
| ++L051dj3: |
| ++ rorl $16,%ecx |
| ++ movb %cl,2(%edi) |
| ++ shll $16,%ecx |
| ++L052dj2: |
| ++ movb %ch,1(%esi) |
| ++L053dj1: |
| ++ movb %cl,(%esi) |
| ++L050djend: |
| ++ jmp L033finish |
| ++L033finish: |
| ++ movl 76(%esp),%ecx |
| ++ addl $32,%esp |
| ++ movl %eax,(%ecx) |
| ++ movl %ebx,4(%ecx) |
| ++ popl %edi |
| ++ popl %esi |
| ++ popl %ebx |
| ++ popl %ebp |
| ++ ret |
| ++.align 6,0x90 |
| ++L035cbc_enc_jmp_table: |
| ++.long 0 |
| ++.long L043ej1-L034PIC_point |
| ++.long L042ej2-L034PIC_point |
| ++.long L041ej3-L034PIC_point |
| ++.long L039ej4-L034PIC_point |
| ++.long L038ej5-L034PIC_point |
| ++.long L037ej6-L034PIC_point |
| ++.long L036ej7-L034PIC_point |
| ++.align 6,0x90 |
| ++.align 6,0x90 |
| ++_DES_SPtrans: |
| ++.long 34080768,524288,33554434,34080770 |
| ++.long 33554432,526338,524290,33554434 |
| ++.long 526338,34080768,34078720,2050 |
| ++.long 33556482,33554432,0,524290 |
| ++.long 524288,2,33556480,526336 |
| ++.long 34080770,34078720,2050,33556480 |
| ++.long 2,2048,526336,34078722 |
| ++.long 2048,33556482,34078722,0 |
| ++.long 0,34080770,33556480,524290 |
| ++.long 34080768,524288,2050,33556480 |
| ++.long 34078722,2048,526336,33554434 |
| ++.long 526338,2,33554434,34078720 |
| ++.long 34080770,526336,34078720,33556482 |
| ++.long 33554432,2050,524290,0 |
| ++.long 524288,33554432,33556482,34080768 |
| ++.long 2,34078722,2048,526338 |
| ++.long 1074823184,0,1081344,1074790400 |
| ++.long 1073741840,32784,1073774592,1081344 |
| ++.long 32768,1074790416,16,1073774592 |
| ++.long 1048592,1074823168,1074790400,16 |
| ++.long 1048576,1073774608,1074790416,32768 |
| ++.long 1081360,1073741824,0,1048592 |
| ++.long 1073774608,1081360,1074823168,1073741840 |
| ++.long 1073741824,1048576,32784,1074823184 |
| ++.long 1048592,1074823168,1073774592,1081360 |
| ++.long 1074823184,1048592,1073741840,0 |
| ++.long 1073741824,32784,1048576,1074790416 |
| ++.long 32768,1073741824,1081360,1073774608 |
| ++.long 1074823168,32768,0,1073741840 |
| ++.long 16,1074823184,1081344,1074790400 |
| ++.long 1074790416,1048576,32784,1073774592 |
| ++.long 1073774608,16,1074790400,1081344 |
| ++.long 67108865,67371264,256,67109121 |
| ++.long 262145,67108864,67109121,262400 |
| ++.long 67109120,262144,67371008,1 |
| ++.long 67371265,257,1,67371009 |
| ++.long 0,262145,67371264,256 |
| ++.long 257,67371265,262144,67108865 |
| ++.long 67371009,67109120,262401,67371008 |
| ++.long 262400,0,67108864,262401 |
| ++.long 67371264,256,1,262144 |
| ++.long 257,262145,67371008,67109121 |
| ++.long 0,67371264,262400,67371009 |
| ++.long 262145,67108864,67371265,1 |
| ++.long 262401,67108865,67108864,67371265 |
| ++.long 262144,67109120,67109121,262400 |
| ++.long 67109120,0,67371009,257 |
| ++.long 67108865,262401,256,67371008 |
| ++.long 4198408,268439552,8,272633864 |
| ++.long 0,272629760,268439560,4194312 |
| ++.long 272633856,268435464,268435456,4104 |
| ++.long 268435464,4198408,4194304,268435456 |
| ++.long 272629768,4198400,4096,8 |
| ++.long 4198400,268439560,272629760,4096 |
| ++.long 4104,0,4194312,272633856 |
| ++.long 268439552,272629768,272633864,4194304 |
| ++.long 272629768,4104,4194304,268435464 |
| ++.long 4198400,268439552,8,272629760 |
| ++.long 268439560,0,4096,4194312 |
| ++.long 0,272629768,272633856,4096 |
| ++.long 268435456,272633864,4198408,4194304 |
| ++.long 272633864,8,268439552,4198408 |
| ++.long 4194312,4198400,272629760,268439560 |
| ++.long 4104,268435456,268435464,272633856 |
| ++.long 134217728,65536,1024,134284320 |
| ++.long 134283296,134218752,66592,134283264 |
| ++.long 65536,32,134217760,66560 |
| ++.long 134218784,134283296,134284288,0 |
| ++.long 66560,134217728,65568,1056 |
| ++.long 134218752,66592,0,134217760 |
| ++.long 32,134218784,134284320,65568 |
| ++.long 134283264,1024,1056,134284288 |
| ++.long 134284288,134218784,65568,134283264 |
| ++.long 65536,32,134217760,134218752 |
| ++.long 134217728,66560,134284320,0 |
| ++.long 66592,134217728,1024,65568 |
| ++.long 134218784,1024,0,134284320 |
| ++.long 134283296,134284288,1056,65536 |
| ++.long 66560,134283296,134218752,1056 |
| ++.long 32,66592,134283264,134217760 |
| ++.long 2147483712,2097216,0,2149588992 |
| ++.long 2097216,8192,2147491904,2097152 |
| ++.long 8256,2149589056,2105344,2147483648 |
| ++.long 2147491840,2147483712,2149580800,2105408 |
| ++.long 2097152,2147491904,2149580864,0 |
| ++.long 8192,64,2149588992,2149580864 |
| ++.long 2149589056,2149580800,2147483648,8256 |
| ++.long 64,2105344,2105408,2147491840 |
| ++.long 8256,2147483648,2147491840,2105408 |
| ++.long 2149588992,2097216,0,2147491840 |
| ++.long 2147483648,8192,2149580864,2097152 |
| ++.long 2097216,2149589056,2105344,64 |
| ++.long 2149589056,2105344,2097152,2147491904 |
| ++.long 2147483712,2149580800,2105408,0 |
| ++.long 8192,2147483712,2147491904,2149588992 |
| ++.long 2149580800,8256,64,2149580864 |
| ++.long 16384,512,16777728,16777220 |
| ++.long 16794116,16388,16896,0 |
| ++.long 16777216,16777732,516,16793600 |
| ++.long 4,16794112,16793600,516 |
| ++.long 16777732,16384,16388,16794116 |
| ++.long 0,16777728,16777220,16896 |
| ++.long 16793604,16900,16794112,4 |
| ++.long 16900,16793604,512,16777216 |
| ++.long 16900,16793600,16793604,516 |
| ++.long 16384,512,16777216,16793604 |
| ++.long 16777732,16900,16896,0 |
| ++.long 512,16777220,4,16777728 |
| ++.long 0,16777732,16777728,16896 |
| ++.long 516,16384,16794116,16777216 |
| ++.long 16794112,4,16388,16794116 |
| ++.long 16777220,16794112,16793600,16388 |
| ++.long 545259648,545390592,131200,0 |
| ++.long 537001984,8388736,545259520,545390720 |
| ++.long 128,536870912,8519680,131200 |
| ++.long 8519808,537002112,536871040,545259520 |
| ++.long 131072,8519808,8388736,537001984 |
| ++.long 545390720,536871040,0,8519680 |
| ++.long 536870912,8388608,537002112,545259648 |
| ++.long 8388608,131072,545390592,128 |
| ++.long 8388608,131072,536871040,545390720 |
| ++.long 131200,536870912,0,8519680 |
| ++.long 545259648,537002112,537001984,8388736 |
| ++.long 545390592,128,8388736,537001984 |
| ++.long 545390720,8388608,545259520,536871040 |
| ++.long 8519680,131200,537002112,545259520 |
| ++.long 128,545390592,8519808,0 |
| ++.long 536870912,545259648,131072,8519808 |
| +diff --git a/crypto/md5/asm/md5-586-mac.S b/crypto/md5/asm/md5-586-mac.S |
| +new file mode 100644 |
| +index 0000000..8413d0c |
| +--- /dev/null |
| ++++ b/crypto/md5/asm/md5-586-mac.S |
| +@@ -0,0 +1,677 @@ |
| ++.file "crypto/md5/asm/md5-586.s" |
| ++.text |
| ++.globl _md5_block_asm_data_order |
| ++.align 4 |
| ++_md5_block_asm_data_order: |
| ++L_md5_block_asm_data_order_begin: |
| ++ pushl %esi |
| ++ pushl %edi |
| ++ movl 12(%esp),%edi |
| ++ movl 16(%esp),%esi |
| ++ movl 20(%esp),%ecx |
| ++ pushl %ebp |
| ++ shll $6,%ecx |
| ++ pushl %ebx |
| ++ addl %esi,%ecx |
| ++ subl $64,%ecx |
| ++ movl (%edi),%eax |
| ++ pushl %ecx |
| ++ movl 4(%edi),%ebx |
| ++ movl 8(%edi),%ecx |
| ++ movl 12(%edi),%edx |
| ++L000start: |
| ++ |
| ++ # R0 section |
| ++ movl %ecx,%edi |
| ++ movl (%esi),%ebp |
| ++ # R0 0 |
| ++ xorl %edx,%edi |
| ++ andl %ebx,%edi |
| ++ leal 3614090360(%eax,%ebp,1),%eax |
| ++ xorl %edx,%edi |
| ++ addl %edi,%eax |
| ++ movl %ebx,%edi |
| ++ roll $7,%eax |
| ++ movl 4(%esi),%ebp |
| ++ addl %ebx,%eax |
| ++ # R0 1 |
| ++ xorl %ecx,%edi |
| ++ andl %eax,%edi |
| ++ leal 3905402710(%edx,%ebp,1),%edx |
| ++ xorl %ecx,%edi |
| ++ addl %edi,%edx |
| ++ movl %eax,%edi |
| ++ roll $12,%edx |
| ++ movl 8(%esi),%ebp |
| ++ addl %eax,%edx |
| ++ # R0 2 |
| ++ xorl %ebx,%edi |
| ++ andl %edx,%edi |
| ++ leal 606105819(%ecx,%ebp,1),%ecx |
| ++ xorl %ebx,%edi |
| ++ addl %edi,%ecx |
| ++ movl %edx,%edi |
| ++ roll $17,%ecx |
| ++ movl 12(%esi),%ebp |
| ++ addl %edx,%ecx |
| ++ # R0 3 |
| ++ xorl %eax,%edi |
| ++ andl %ecx,%edi |
| ++ leal 3250441966(%ebx,%ebp,1),%ebx |
| ++ xorl %eax,%edi |
| ++ addl %edi,%ebx |
| ++ movl %ecx,%edi |
| ++ roll $22,%ebx |
| ++ movl 16(%esi),%ebp |
| ++ addl %ecx,%ebx |
| ++ # R0 4 |
| ++ xorl %edx,%edi |
| ++ andl %ebx,%edi |
| ++ leal 4118548399(%eax,%ebp,1),%eax |
| ++ xorl %edx,%edi |
| ++ addl %edi,%eax |
| ++ movl %ebx,%edi |
| ++ roll $7,%eax |
| ++ movl 20(%esi),%ebp |
| ++ addl %ebx,%eax |
| ++ # R0 5 |
| ++ xorl %ecx,%edi |
| ++ andl %eax,%edi |
| ++ leal 1200080426(%edx,%ebp,1),%edx |
| ++ xorl %ecx,%edi |
| ++ addl %edi,%edx |
| ++ movl %eax,%edi |
| ++ roll $12,%edx |
| ++ movl 24(%esi),%ebp |
| ++ addl %eax,%edx |
| ++ # R0 6 |
| ++ xorl %ebx,%edi |
| ++ andl %edx,%edi |
| ++ leal 2821735955(%ecx,%ebp,1),%ecx |
| ++ xorl %ebx,%edi |
| ++ addl %edi,%ecx |
| ++ movl %edx,%edi |
| ++ roll $17,%ecx |
| ++ movl 28(%esi),%ebp |
| ++ addl %edx,%ecx |
| ++ # R0 7 |
| ++ xorl %eax,%edi |
| ++ andl %ecx,%edi |
| ++ leal 4249261313(%ebx,%ebp,1),%ebx |
| ++ xorl %eax,%edi |
| ++ addl %edi,%ebx |
| ++ movl %ecx,%edi |
| ++ roll $22,%ebx |
| ++ movl 32(%esi),%ebp |
| ++ addl %ecx,%ebx |
| ++ # R0 8 |
| ++ xorl %edx,%edi |
| ++ andl %ebx,%edi |
| ++ leal 1770035416(%eax,%ebp,1),%eax |
| ++ xorl %edx,%edi |
| ++ addl %edi,%eax |
| ++ movl %ebx,%edi |
| ++ roll $7,%eax |
| ++ movl 36(%esi),%ebp |
| ++ addl %ebx,%eax |
| ++ # R0 9 |
| ++ xorl %ecx,%edi |
| ++ andl %eax,%edi |
| ++ leal 2336552879(%edx,%ebp,1),%edx |
| ++ xorl %ecx,%edi |
| ++ addl %edi,%edx |
| ++ movl %eax,%edi |
| ++ roll $12,%edx |
| ++ movl 40(%esi),%ebp |
| ++ addl %eax,%edx |
| ++ # R0 10 |
| ++ xorl %ebx,%edi |
| ++ andl %edx,%edi |
| ++ leal 4294925233(%ecx,%ebp,1),%ecx |
| ++ xorl %ebx,%edi |
| ++ addl %edi,%ecx |
| ++ movl %edx,%edi |
| ++ roll $17,%ecx |
| ++ movl 44(%esi),%ebp |
| ++ addl %edx,%ecx |
| ++ # R0 11 |
| ++ xorl %eax,%edi |
| ++ andl %ecx,%edi |
| ++ leal 2304563134(%ebx,%ebp,1),%ebx |
| ++ xorl %eax,%edi |
| ++ addl %edi,%ebx |
| ++ movl %ecx,%edi |
| ++ roll $22,%ebx |
| ++ movl 48(%esi),%ebp |
| ++ addl %ecx,%ebx |
| ++ # R0 12 |
| ++ xorl %edx,%edi |
| ++ andl %ebx,%edi |
| ++ leal 1804603682(%eax,%ebp,1),%eax |
| ++ xorl %edx,%edi |
| ++ addl %edi,%eax |
| ++ movl %ebx,%edi |
| ++ roll $7,%eax |
| ++ movl 52(%esi),%ebp |
| ++ addl %ebx,%eax |
| ++ # R0 13 |
| ++ xorl %ecx,%edi |
| ++ andl %eax,%edi |
| ++ leal 4254626195(%edx,%ebp,1),%edx |
| ++ xorl %ecx,%edi |
| ++ addl %edi,%edx |
| ++ movl %eax,%edi |
| ++ roll $12,%edx |
| ++ movl 56(%esi),%ebp |
| ++ addl %eax,%edx |
| ++ # R0 14 |
| ++ xorl %ebx,%edi |
| ++ andl %edx,%edi |
| ++ leal 2792965006(%ecx,%ebp,1),%ecx |
| ++ xorl %ebx,%edi |
| ++ addl %edi,%ecx |
| ++ movl %edx,%edi |
| ++ roll $17,%ecx |
| ++ movl 60(%esi),%ebp |
| ++ addl %edx,%ecx |
| ++ # R0 15 |
| ++ xorl %eax,%edi |
| ++ andl %ecx,%edi |
| ++ leal 1236535329(%ebx,%ebp,1),%ebx |
| ++ xorl %eax,%edi |
| ++ addl %edi,%ebx |
| ++ movl %ecx,%edi |
| ++ roll $22,%ebx |
| ++ movl 4(%esi),%ebp |
| ++ addl %ecx,%ebx |
| ++ |
| ++ # R1 section |
| ++ # R1 16 |
| ++ leal 4129170786(%eax,%ebp,1),%eax |
| ++ xorl %ebx,%edi |
| ++ andl %edx,%edi |
| ++ movl 24(%esi),%ebp |
| ++ xorl %ecx,%edi |
| ++ addl %edi,%eax |
| ++ movl %ebx,%edi |
| ++ roll $5,%eax |
| ++ addl %ebx,%eax |
| ++ # R1 17 |
| ++ leal 3225465664(%edx,%ebp,1),%edx |
| ++ xorl %eax,%edi |
| ++ andl %ecx,%edi |
| ++ movl 44(%esi),%ebp |
| ++ xorl %ebx,%edi |
| ++ addl %edi,%edx |
| ++ movl %eax,%edi |
| ++ roll $9,%edx |
| ++ addl %eax,%edx |
| ++ # R1 18 |
| ++ leal 643717713(%ecx,%ebp,1),%ecx |
| ++ xorl %edx,%edi |
| ++ andl %ebx,%edi |
| ++ movl (%esi),%ebp |
| ++ xorl %eax,%edi |
| ++ addl %edi,%ecx |
| ++ movl %edx,%edi |
| ++ roll $14,%ecx |
| ++ addl %edx,%ecx |
| ++ # R1 19 |
| ++ leal 3921069994(%ebx,%ebp,1),%ebx |
| ++ xorl %ecx,%edi |
| ++ andl %eax,%edi |
| ++ movl 20(%esi),%ebp |
| ++ xorl %edx,%edi |
| ++ addl %edi,%ebx |
| ++ movl %ecx,%edi |
| ++ roll $20,%ebx |
| ++ addl %ecx,%ebx |
| ++ # R1 20 |
| ++ leal 3593408605(%eax,%ebp,1),%eax |
| ++ xorl %ebx,%edi |
| ++ andl %edx,%edi |
| ++ movl 40(%esi),%ebp |
| ++ xorl %ecx,%edi |
| ++ addl %edi,%eax |
| ++ movl %ebx,%edi |
| ++ roll $5,%eax |
| ++ addl %ebx,%eax |
| ++ # R1 21 |
| ++ leal 38016083(%edx,%ebp,1),%edx |
| ++ xorl %eax,%edi |
| ++ andl %ecx,%edi |
| ++ movl 60(%esi),%ebp |
| ++ xorl %ebx,%edi |
| ++ addl %edi,%edx |
| ++ movl %eax,%edi |
| ++ roll $9,%edx |
| ++ addl %eax,%edx |
| ++ # R1 22 |
| ++ leal 3634488961(%ecx,%ebp,1),%ecx |
| ++ xorl %edx,%edi |
| ++ andl %ebx,%edi |
| ++ movl 16(%esi),%ebp |
| ++ xorl %eax,%edi |
| ++ addl %edi,%ecx |
| ++ movl %edx,%edi |
| ++ roll $14,%ecx |
| ++ addl %edx,%ecx |
| ++ # R1 23 |
| ++ leal 3889429448(%ebx,%ebp,1),%ebx |
| ++ xorl %ecx,%edi |
| ++ andl %eax,%edi |
| ++ movl 36(%esi),%ebp |
| ++ xorl %edx,%edi |
| ++ addl %edi,%ebx |
| ++ movl %ecx,%edi |
| ++ roll $20,%ebx |
| ++ addl %ecx,%ebx |
| ++ # R1 24 |
| ++ leal 568446438(%eax,%ebp,1),%eax |
| ++ xorl %ebx,%edi |
| ++ andl %edx,%edi |
| ++ movl 56(%esi),%ebp |
| ++ xorl %ecx,%edi |
| ++ addl %edi,%eax |
| ++ movl %ebx,%edi |
| ++ roll $5,%eax |
| ++ addl %ebx,%eax |
| ++ # R1 25 |
| ++ leal 3275163606(%edx,%ebp,1),%edx |
| ++ xorl %eax,%edi |
| ++ andl %ecx,%edi |
| ++ movl 12(%esi),%ebp |
| ++ xorl %ebx,%edi |
| ++ addl %edi,%edx |
| ++ movl %eax,%edi |
| ++ roll $9,%edx |
| ++ addl %eax,%edx |
| ++ # R1 26 |
| ++ leal 4107603335(%ecx,%ebp,1),%ecx |
| ++ xorl %edx,%edi |
| ++ andl %ebx,%edi |
| ++ movl 32(%esi),%ebp |
| ++ xorl %eax,%edi |
| ++ addl %edi,%ecx |
| ++ movl %edx,%edi |
| ++ roll $14,%ecx |
| ++ addl %edx,%ecx |
| ++ # R1 27 |
| ++ leal 1163531501(%ebx,%ebp,1),%ebx |
| ++ xorl %ecx,%edi |
| ++ andl %eax,%edi |
| ++ movl 52(%esi),%ebp |
| ++ xorl %edx,%edi |
| ++ addl %edi,%ebx |
| ++ movl %ecx,%edi |
| ++ roll $20,%ebx |
| ++ addl %ecx,%ebx |
| ++ # R1 28 |
| ++ leal 2850285829(%eax,%ebp,1),%eax |
| ++ xorl %ebx,%edi |
| ++ andl %edx,%edi |
| ++ movl 8(%esi),%ebp |
| ++ xorl %ecx,%edi |
| ++ addl %edi,%eax |
| ++ movl %ebx,%edi |
| ++ roll $5,%eax |
| ++ addl %ebx,%eax |
| ++ # R1 29 |
| ++ leal 4243563512(%edx,%ebp,1),%edx |
| ++ xorl %eax,%edi |
| ++ andl %ecx,%edi |
| ++ movl 28(%esi),%ebp |
| ++ xorl %ebx,%edi |
| ++ addl %edi,%edx |
| ++ movl %eax,%edi |
| ++ roll $9,%edx |
| ++ addl %eax,%edx |
| ++ # R1 30 |
| ++ leal 1735328473(%ecx,%ebp,1),%ecx |
| ++ xorl %edx,%edi |
| ++ andl %ebx,%edi |
| ++ movl 48(%esi),%ebp |
| ++ xorl %eax,%edi |
| ++ addl %edi,%ecx |
| ++ movl %edx,%edi |
| ++ roll $14,%ecx |
| ++ addl %edx,%ecx |
| ++ # R1 31 |
| ++ leal 2368359562(%ebx,%ebp,1),%ebx |
| ++ xorl %ecx,%edi |
| ++ andl %eax,%edi |
| ++ movl 20(%esi),%ebp |
| ++ xorl %edx,%edi |
| ++ addl %edi,%ebx |
| ++ movl %ecx,%edi |
| ++ roll $20,%ebx |
| ++ addl %ecx,%ebx |
| ++ |
| ++ # R2 section |
| ++ # R2 32 |
| ++ xorl %edx,%edi |
| ++ xorl %ebx,%edi |
| ++ leal 4294588738(%eax,%ebp,1),%eax |
| ++ addl %edi,%eax |
| ++ roll $4,%eax |
| ++ movl 32(%esi),%ebp |
| ++ movl %ebx,%edi |
| ++ # R2 33 |
| ++ leal 2272392833(%edx,%ebp,1),%edx |
| ++ addl %ebx,%eax |
| ++ xorl %ecx,%edi |
| ++ xorl %eax,%edi |
| ++ movl 44(%esi),%ebp |
| ++ addl %edi,%edx |
| ++ movl %eax,%edi |
| ++ roll $11,%edx |
| ++ addl %eax,%edx |
| ++ # R2 34 |
| ++ xorl %ebx,%edi |
| ++ xorl %edx,%edi |
| ++ leal 1839030562(%ecx,%ebp,1),%ecx |
| ++ addl %edi,%ecx |
| ++ roll $16,%ecx |
| ++ movl 56(%esi),%ebp |
| ++ movl %edx,%edi |
| ++ # R2 35 |
| ++ leal 4259657740(%ebx,%ebp,1),%ebx |
| ++ addl %edx,%ecx |
| ++ xorl %eax,%edi |
| ++ xorl %ecx,%edi |
| ++ movl 4(%esi),%ebp |
| ++ addl %edi,%ebx |
| ++ movl %ecx,%edi |
| ++ roll $23,%ebx |
| ++ addl %ecx,%ebx |
| ++ # R2 36 |
| ++ xorl %edx,%edi |
| ++ xorl %ebx,%edi |
| ++ leal 2763975236(%eax,%ebp,1),%eax |
| ++ addl %edi,%eax |
| ++ roll $4,%eax |
| ++ movl 16(%esi),%ebp |
| ++ movl %ebx,%edi |
| ++ # R2 37 |
| ++ leal 1272893353(%edx,%ebp,1),%edx |
| ++ addl %ebx,%eax |
| ++ xorl %ecx,%edi |
| ++ xorl %eax,%edi |
| ++ movl 28(%esi),%ebp |
| ++ addl %edi,%edx |
| ++ movl %eax,%edi |
| ++ roll $11,%edx |
| ++ addl %eax,%edx |
| ++ # R2 38 |
| ++ xorl %ebx,%edi |
| ++ xorl %edx,%edi |
| ++ leal 4139469664(%ecx,%ebp,1),%ecx |
| ++ addl %edi,%ecx |
| ++ roll $16,%ecx |
| ++ movl 40(%esi),%ebp |
| ++ movl %edx,%edi |
| ++ # R2 39 |
| ++ leal 3200236656(%ebx,%ebp,1),%ebx |
| ++ addl %edx,%ecx |
| ++ xorl %eax,%edi |
| ++ xorl %ecx,%edi |
| ++ movl 52(%esi),%ebp |
| ++ addl %edi,%ebx |
| ++ movl %ecx,%edi |
| ++ roll $23,%ebx |
| ++ addl %ecx,%ebx |
| ++ # R2 40 |
| ++ xorl %edx,%edi |
| ++ xorl %ebx,%edi |
| ++ leal 681279174(%eax,%ebp,1),%eax |
| ++ addl %edi,%eax |
| ++ roll $4,%eax |
| ++ movl (%esi),%ebp |
| ++ movl %ebx,%edi |
| ++ # R2 41 |
| ++ leal 3936430074(%edx,%ebp,1),%edx |
| ++ addl %ebx,%eax |
| ++ xorl %ecx,%edi |
| ++ xorl %eax,%edi |
| ++ movl 12(%esi),%ebp |
| ++ addl %edi,%edx |
| ++ movl %eax,%edi |
| ++ roll $11,%edx |
| ++ addl %eax,%edx |
| ++ # R2 42 |
| ++ xorl %ebx,%edi |
| ++ xorl %edx,%edi |
| ++ leal 3572445317(%ecx,%ebp,1),%ecx |
| ++ addl %edi,%ecx |
| ++ roll $16,%ecx |
| ++ movl 24(%esi),%ebp |
| ++ movl %edx,%edi |
| ++ # R2 43 |
| ++ leal 76029189(%ebx,%ebp,1),%ebx |
| ++ addl %edx,%ecx |
| ++ xorl %eax,%edi |
| ++ xorl %ecx,%edi |
| ++ movl 36(%esi),%ebp |
| ++ addl %edi,%ebx |
| ++ movl %ecx,%edi |
| ++ roll $23,%ebx |
| ++ addl %ecx,%ebx |
| ++ # R2 44 |
| ++ xorl %edx,%edi |
| ++ xorl %ebx,%edi |
| ++ leal 3654602809(%eax,%ebp,1),%eax |
| ++ addl %edi,%eax |
| ++ roll $4,%eax |
| ++ movl 48(%esi),%ebp |
| ++ movl %ebx,%edi |
| ++ # R2 45 |
| ++ leal 3873151461(%edx,%ebp,1),%edx |
| ++ addl %ebx,%eax |
| ++ xorl %ecx,%edi |
| ++ xorl %eax,%edi |
| ++ movl 60(%esi),%ebp |
| ++ addl %edi,%edx |
| ++ movl %eax,%edi |
| ++ roll $11,%edx |
| ++ addl %eax,%edx |
| ++ # R2 46 |
| ++ xorl %ebx,%edi |
| ++ xorl %edx,%edi |
| ++ leal 530742520(%ecx,%ebp,1),%ecx |
| ++ addl %edi,%ecx |
| ++ roll $16,%ecx |
| ++ movl 8(%esi),%ebp |
| ++ movl %edx,%edi |
| ++ # R2 47 |
| ++ leal 3299628645(%ebx,%ebp,1),%ebx |
| ++ addl %edx,%ecx |
| ++ xorl %eax,%edi |
| ++ xorl %ecx,%edi |
| ++ movl (%esi),%ebp |
| ++ addl %edi,%ebx |
| ++ movl $-1,%edi |
| ++ roll $23,%ebx |
| ++ addl %ecx,%ebx |
| ++ |
| ++ # R3 section |
| ++ # R3 48 |
| ++ xorl %edx,%edi |
| ++ orl %ebx,%edi |
| ++ leal 4096336452(%eax,%ebp,1),%eax |
| ++ xorl %ecx,%edi |
| ++ movl 28(%esi),%ebp |
| ++ addl %edi,%eax |
| ++ movl $-1,%edi |
| ++ roll $6,%eax |
| ++ xorl %ecx,%edi |
| ++ addl %ebx,%eax |
| ++ # R3 49 |
| ++ orl %eax,%edi |
| ++ leal 1126891415(%edx,%ebp,1),%edx |
| ++ xorl %ebx,%edi |
| ++ movl 56(%esi),%ebp |
| ++ addl %edi,%edx |
| ++ movl $-1,%edi |
| ++ roll $10,%edx |
| ++ xorl %ebx,%edi |
| ++ addl %eax,%edx |
| ++ # R3 50 |
| ++ orl %edx,%edi |
| ++ leal 2878612391(%ecx,%ebp,1),%ecx |
| ++ xorl %eax,%edi |
| ++ movl 20(%esi),%ebp |
| ++ addl %edi,%ecx |
| ++ movl $-1,%edi |
| ++ roll $15,%ecx |
| ++ xorl %eax,%edi |
| ++ addl %edx,%ecx |
| ++ # R3 51 |
| ++ orl %ecx,%edi |
| ++ leal 4237533241(%ebx,%ebp,1),%ebx |
| ++ xorl %edx,%edi |
| ++ movl 48(%esi),%ebp |
| ++ addl %edi,%ebx |
| ++ movl $-1,%edi |
| ++ roll $21,%ebx |
| ++ xorl %edx,%edi |
| ++ addl %ecx,%ebx |
| ++ # R3 52 |
| ++ orl %ebx,%edi |
| ++ leal 1700485571(%eax,%ebp,1),%eax |
| ++ xorl %ecx,%edi |
| ++ movl 12(%esi),%ebp |
| ++ addl %edi,%eax |
| ++ movl $-1,%edi |
| ++ roll $6,%eax |
| ++ xorl %ecx,%edi |
| ++ addl %ebx,%eax |
| ++ # R3 53 |
| ++ orl %eax,%edi |
| ++ leal 2399980690(%edx,%ebp,1),%edx |
| ++ xorl %ebx,%edi |
| ++ movl 40(%esi),%ebp |
| ++ addl %edi,%edx |
| ++ movl $-1,%edi |
| ++ roll $10,%edx |
| ++ xorl %ebx,%edi |
| ++ addl %eax,%edx |
| ++ # R3 54 |
| ++ orl %edx,%edi |
| ++ leal 4293915773(%ecx,%ebp,1),%ecx |
| ++ xorl %eax,%edi |
| ++ movl 4(%esi),%ebp |
| ++ addl %edi,%ecx |
| ++ movl $-1,%edi |
| ++ roll $15,%ecx |
| ++ xorl %eax,%edi |
| ++ addl %edx,%ecx |
| ++ # R3 55 |
| ++ orl %ecx,%edi |
| ++ leal 2240044497(%ebx,%ebp,1),%ebx |
| ++ xorl %edx,%edi |
| ++ movl 32(%esi),%ebp |
| ++ addl %edi,%ebx |
| ++ movl $-1,%edi |
| ++ roll $21,%ebx |
| ++ xorl %edx,%edi |
| ++ addl %ecx,%ebx |
| ++ # R3 56 |
| ++ orl %ebx,%edi |
| ++ leal 1873313359(%eax,%ebp,1),%eax |
| ++ xorl %ecx,%edi |
| ++ movl 60(%esi),%ebp |
| ++ addl %edi,%eax |
| ++ movl $-1,%edi |
| ++ roll $6,%eax |
| ++ xorl %ecx,%edi |
| ++ addl %ebx,%eax |
| ++ # R3 57 |
| ++ orl %eax,%edi |
| ++ leal 4264355552(%edx,%ebp,1),%edx |
| ++ xorl %ebx,%edi |
| ++ movl 24(%esi),%ebp |
| ++ addl %edi,%edx |
| ++ movl $-1,%edi |
| ++ roll $10,%edx |
| ++ xorl %ebx,%edi |
| ++ addl %eax,%edx |
| ++ # R3 58 |
| ++ orl %edx,%edi |
| ++ leal 2734768916(%ecx,%ebp,1),%ecx |
| ++ xorl %eax,%edi |
| ++ movl 52(%esi),%ebp |
| ++ addl %edi,%ecx |
| ++ movl $-1,%edi |
| ++ roll $15,%ecx |
| ++ xorl %eax,%edi |
| ++ addl %edx,%ecx |
| ++ # R3 59 |
| ++ orl %ecx,%edi |
| ++ leal 1309151649(%ebx,%ebp,1),%ebx |
| ++ xorl %edx,%edi |
| ++ movl 16(%esi),%ebp |
| ++ addl %edi,%ebx |
| ++ movl $-1,%edi |
| ++ roll $21,%ebx |
| ++ xorl %edx,%edi |
| ++ addl %ecx,%ebx |
| ++ # R3 60 |
| ++ orl %ebx,%edi |
| ++ leal 4149444226(%eax,%ebp,1),%eax |
| ++ xorl %ecx,%edi |
| ++ movl 44(%esi),%ebp |
| ++ addl %edi,%eax |
| ++ movl $-1,%edi |
| ++ roll $6,%eax |
| ++ xorl %ecx,%edi |
| ++ addl %ebx,%eax |
| ++ # R3 61 |
| ++ orl %eax,%edi |
| ++ leal 3174756917(%edx,%ebp,1),%edx |
| ++ xorl %ebx,%edi |
| ++ movl 8(%esi),%ebp |
| ++ addl %edi,%edx |
| ++ movl $-1,%edi |
| ++ roll $10,%edx |
| ++ xorl %ebx,%edi |
| ++ addl %eax,%edx |
| ++ # R3 62 |
| ++ orl %edx,%edi |
| ++ leal 718787259(%ecx,%ebp,1),%ecx |
| ++ xorl %eax,%edi |
| ++ movl 36(%esi),%ebp |
| ++ addl %edi,%ecx |
| ++ movl $-1,%edi |
| ++ roll $15,%ecx |
| ++ xorl %eax,%edi |
| ++ addl %edx,%ecx |
| ++ # R3 63 |
| ++ orl %ecx,%edi |
| ++ leal 3951481745(%ebx,%ebp,1),%ebx |
| ++ xorl %edx,%edi |
| ++ movl 24(%esp),%ebp |
| ++ addl %edi,%ebx |
| ++ addl $64,%esi |
| ++ roll $21,%ebx |
| ++ movl (%ebp),%edi |
| ++ addl %ecx,%ebx |
| ++ addl %edi,%eax |
| ++ movl 4(%ebp),%edi |
| ++ addl %edi,%ebx |
| ++ movl 8(%ebp),%edi |
| ++ addl %edi,%ecx |
| ++ movl 12(%ebp),%edi |
| ++ addl %edi,%edx |
| ++ movl %eax,(%ebp) |
| ++ movl %ebx,4(%ebp) |
| ++ movl (%esp),%edi |
| ++ movl %ecx,8(%ebp) |
| ++ movl %edx,12(%ebp) |
| ++ cmpl %esi,%edi |
| ++ jae L000start |
| ++ popl %eax |
| ++ popl %ebx |
| ++ popl %ebp |
| ++ popl %edi |
| ++ popl %esi |
| ++ ret |
| +diff --git a/crypto/modes/asm/ghash-x86-mac.S b/crypto/modes/asm/ghash-x86-mac.S |
| +new file mode 100644 |
| +index 0000000..dc6ba14 |
| +--- /dev/null |
| ++++ b/crypto/modes/asm/ghash-x86-mac.S |
| +@@ -0,0 +1,718 @@ |
| ++.file "ghash-x86.s" |
| ++.text |
| ++.globl _gcm_gmult_4bit_x86 |
| ++.align 4 |
| ++_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 4,0x90 |
| ++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 4,0x90 |
| ++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 |
| ++.globl _gcm_ghash_4bit_x86 |
| ++.align 4 |
| ++_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 4,0x90 |
| ++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 4,0x90 |
| ++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 4,0x90 |
| ++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 |
| ++.align 4 |
| ++__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 |
| ++.globl _gcm_gmult_4bit_mmx |
| ++.align 4 |
| ++_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 |
| ++.globl _gcm_ghash_4bit_mmx |
| ++.align 4 |
| ++_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 4,0x90 |
| ++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 |
| ++.align 6,0x90 |
| ++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 |
| ++.align 6,0x90 |
| ++L008rem_8bit: |
| ++.value 0,450,900,582,1800,1738,1164,1358 |
| ++.value 3600,4050,3476,3158,2328,2266,2716,2910 |
| ++.value 7200,7650,8100,7782,6952,6890,6316,6510 |
| ++.value 4656,5106,4532,4214,5432,5370,5820,6014 |
| ++.value 14400,14722,15300,14854,16200,16010,15564,15630 |
| ++.value 13904,14226,13780,13334,12632,12442,13020,13086 |
| ++.value 9312,9634,10212,9766,9064,8874,8428,8494 |
| ++.value 10864,11186,10740,10294,11640,11450,12028,12094 |
| ++.value 28800,28994,29444,29382,30600,30282,29708,30158 |
| ++.value 32400,32594,32020,31958,31128,30810,31260,31710 |
| ++.value 27808,28002,28452,28390,27560,27242,26668,27118 |
| ++.value 25264,25458,24884,24822,26040,25722,26172,26622 |
| ++.value 18624,18690,19268,19078,20424,19978,19532,19854 |
| ++.value 18128,18194,17748,17558,16856,16410,16988,17310 |
| ++.value 21728,21794,22372,22182,21480,21034,20588,20910 |
| ++.value 23280,23346,22900,22710,24056,23610,24188,24510 |
| ++.value 57600,57538,57988,58182,58888,59338,58764,58446 |
| ++.value 61200,61138,60564,60758,59416,59866,60316,59998 |
| ++.value 64800,64738,65188,65382,64040,64490,63916,63598 |
| ++.value 62256,62194,61620,61814,62520,62970,63420,63102 |
| ++.value 55616,55426,56004,56070,56904,57226,56780,56334 |
| ++.value 55120,54930,54484,54550,53336,53658,54236,53790 |
| ++.value 50528,50338,50916,50982,49768,50090,49644,49198 |
| ++.value 52080,51890,51444,51510,52344,52666,53244,52798 |
| ++.value 37248,36930,37380,37830,38536,38730,38156,38094 |
| ++.value 40848,40530,39956,40406,39064,39258,39708,39646 |
| ++.value 36256,35938,36388,36838,35496,35690,35116,35054 |
| ++.value 33712,33394,32820,33270,33976,34170,34620,34558 |
| ++.value 43456,43010,43588,43910,44744,44810,44364,44174 |
| ++.value 42960,42514,42068,42390,41176,41242,41820,41630 |
| ++.value 46560,46114,46692,47014,45800,45866,45420,45230 |
| ++.value 48112,47666,47220,47542,48376,48442,49020,48830 |
| ++.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/crypto/sha/asm/sha1-586-mac.S b/crypto/sha/asm/sha1-586-mac.S |
| +new file mode 100644 |
| +index 0000000..b843b80 |
| +--- /dev/null |
| ++++ b/crypto/sha/asm/sha1-586-mac.S |
| +@@ -0,0 +1,1378 @@ |
| ++.file "sha1-586.s" |
| ++.text |
| ++.globl _sha1_block_data_order |
| ++.align 4 |
| ++_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 4,0x90 |
| ++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 |
| ++ # 00_15 0 |
| ++ 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 |
| ++ # 00_15 1 |
| ++ 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 |
| ++ # 00_15 2 |
| ++ 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 |
| ++ # 00_15 3 |
| ++ 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 |
| ++ # 00_15 4 |
| ++ 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 |
| ++ # 00_15 5 |
| ++ 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 |
| ++ # 00_15 6 |
| ++ 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 |
| ++ # 00_15 7 |
| ++ 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 |
| ++ # 00_15 8 |
| ++ 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 |
| ++ # 00_15 9 |
| ++ 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 |
| ++ # 00_15 10 |
| ++ 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 |
| ++ # 00_15 11 |
| ++ 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 |
| ++ # 00_15 12 |
| ++ 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 |
| ++ # 00_15 13 |
| ++ 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 |
| ++ # 00_15 14 |
| ++ 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 |
| ++ # 00_15 15 |
| ++ 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 |
| ++ # 16_19 16 |
| ++ 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 |
| ++ # 16_19 17 |
| ++ 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 |
| ++ # 16_19 18 |
| ++ 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 |
| ++ # 16_19 19 |
| ++ 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 |
| ++ # 20_39 20 |
| ++ 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 |
| ++ # 20_39 21 |
| ++ 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 |
| ++ # 20_39 22 |
| ++ 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 |
| ++ # 20_39 23 |
| ++ 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 |
| ++ # 20_39 24 |
| ++ 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 |
| ++ # 20_39 25 |
| ++ 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 |
| ++ # 20_39 26 |
| ++ 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 |
| ++ # 20_39 27 |
| ++ 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 |
| ++ # 20_39 28 |
| ++ 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 |
| ++ # 20_39 29 |
| ++ 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 |
| ++ # 20_39 30 |
| ++ 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 |
| ++ # 20_39 31 |
| ++ 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 |
| ++ # 20_39 32 |
| ++ 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 |
| ++ # 20_39 33 |
| ++ 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 |
| ++ # 20_39 34 |
| ++ 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 |
| ++ # 20_39 35 |
| ++ 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 |
| ++ # 20_39 36 |
| ++ 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 |
| ++ # 20_39 37 |
| ++ 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 |
| ++ # 20_39 38 |
| ++ 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 |
| ++ # 20_39 39 |
| ++ 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 |
| ++ # 40_59 40 |
| ++ 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 |
| ++ # 40_59 41 |
| ++ 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 |
| ++ # 40_59 42 |
| ++ 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 |
| ++ # 40_59 43 |
| ++ 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 |
| ++ # 40_59 44 |
| ++ 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 |
| ++ # 40_59 45 |
| ++ 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 |
| ++ # 40_59 46 |
| ++ 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 |
| ++ # 40_59 47 |
| ++ 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 |
| ++ # 40_59 48 |
| ++ 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 |
| ++ # 40_59 49 |
| ++ 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 |
| ++ # 40_59 50 |
| ++ 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 |
| ++ # 40_59 51 |
| ++ 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 |
| ++ # 40_59 52 |
| ++ 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 |
| ++ # 40_59 53 |
| ++ 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 |
| ++ # 40_59 54 |
| ++ 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 |
| ++ # 40_59 55 |
| ++ 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 |
| ++ # 40_59 56 |
| ++ 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 |
| ++ # 40_59 57 |
| ++ 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 |
| ++ # 40_59 58 |
| ++ 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 |
| ++ # 40_59 59 |
| ++ 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 |
| ++ # 20_39 60 |
| ++ 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 |
| ++ # 20_39 61 |
| ++ 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 |
| ++ # 20_39 62 |
| ++ 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 |
| ++ # 20_39 63 |
| ++ 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 |
| ++ # 20_39 64 |
| ++ 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 |
| ++ # 20_39 65 |
| ++ 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 |
| ++ # 20_39 66 |
| ++ 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 |
| ++ # 20_39 67 |
| ++ 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 |
| ++ # 20_39 68 |
| ++ 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 |
| ++ # 20_39 69 |
| ++ 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 |
| ++ # 20_39 70 |
| ++ 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 |
| ++ # 20_39 71 |
| ++ 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 |
| ++ # 20_39 72 |
| ++ 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 |
| ++ # 20_39 73 |
| ++ 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 |
| ++ # 20_39 74 |
| ++ 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 |
| ++ # 20_39 75 |
| ++ 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 |
| ++ # 20_39 76 |
| ++ 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 |
| ++ # 20_39 77 |
| ++ 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 |
| ++ # 20_39 78 |
| ++ 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 |
| ++ # 20_39 79 |
| ++ 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 |
| ++.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/crypto/sha/asm/sha256-586-mac.S b/crypto/sha/asm/sha256-586-mac.S |
| +new file mode 100644 |
| +index 0000000..67c7a96 |
| +--- /dev/null |
| ++++ b/crypto/sha/asm/sha256-586-mac.S |
| +@@ -0,0 +1,256 @@ |
| ++.file "sha512-586.s" |
| ++.text |
| ++.globl _sha256_block_data_order |
| ++.align 4 |
| ++_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) |
| ++.align 4,0x90 |
| ++L002loop: |
| ++ 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 |
| ++ addl $64,%edi |
| ++ subl $32,%esp |
| ++ movl %edi,100(%esp) |
| ++ movl (%esi),%eax |
| ++ movl 4(%esi),%ebx |
| ++ movl 8(%esi),%ecx |
| ++ movl 12(%esi),%edi |
| ++ movl %ebx,4(%esp) |
| ++ movl %ecx,8(%esp) |
| ++ movl %edi,12(%esp) |
| ++ movl 16(%esi),%edx |
| ++ movl 20(%esi),%ebx |
| ++ movl 24(%esi),%ecx |
| ++ movl 28(%esi),%edi |
| ++ movl %ebx,20(%esp) |
| ++ movl %ecx,24(%esp) |
| ++ movl %edi,28(%esp) |
| ++.align 4,0x90 |
| ++L00300_15: |
| ++ movl 92(%esp),%ebx |
| ++ movl %edx,%ecx |
| ++ rorl $14,%ecx |
| ++ movl 20(%esp),%esi |
| ++ xorl %edx,%ecx |
| ++ rorl $5,%ecx |
| ++ xorl %edx,%ecx |
| ++ rorl $6,%ecx |
| ++ movl 24(%esp),%edi |
| ++ addl %ecx,%ebx |
| ++ xorl %edi,%esi |
| ++ movl %edx,16(%esp) |
| ++ movl %eax,%ecx |
| ++ andl %edx,%esi |
| ++ movl 12(%esp),%edx |
| ++ xorl %edi,%esi |
| ++ movl %eax,%edi |
| ++ addl %esi,%ebx |
| ++ rorl $9,%ecx |
| ++ addl 28(%esp),%ebx |
| ++ xorl %eax,%ecx |
| ++ rorl $11,%ecx |
| ++ movl 4(%esp),%esi |
| ++ xorl %eax,%ecx |
| ++ rorl $2,%ecx |
| ++ addl %ebx,%edx |
| ++ movl 8(%esp),%edi |
| ++ addl %ecx,%ebx |
| ++ movl %eax,(%esp) |
| ++ movl %eax,%ecx |
| ++ subl $4,%esp |
| ++ orl %esi,%eax |
| ++ andl %esi,%ecx |
| ++ andl %edi,%eax |
| ++ movl (%ebp),%esi |
| ++ orl %ecx,%eax |
| ++ addl $4,%ebp |
| ++ addl %ebx,%eax |
| ++ addl %esi,%edx |
| ++ addl %esi,%eax |
| ++ cmpl $3248222580,%esi |
| ++ jne L00300_15 |
| ++ movl 152(%esp),%ebx |
| ++.align 4,0x90 |
| ++L00416_63: |
| ++ movl %ebx,%esi |
| ++ movl 100(%esp),%ecx |
| ++ rorl $11,%esi |
| ++ movl %ecx,%edi |
| ++ xorl %ebx,%esi |
| ++ rorl $7,%esi |
| ++ shrl $3,%ebx |
| ++ rorl $2,%edi |
| ++ xorl %esi,%ebx |
| ++ xorl %ecx,%edi |
| ++ rorl $17,%edi |
| ++ shrl $10,%ecx |
| ++ addl 156(%esp),%ebx |
| ++ xorl %ecx,%edi |
| ++ addl 120(%esp),%ebx |
| ++ movl %edx,%ecx |
| ++ addl %edi,%ebx |
| ++ rorl $14,%ecx |
| ++ movl 20(%esp),%esi |
| ++ xorl %edx,%ecx |
| ++ rorl $5,%ecx |
| ++ movl %ebx,92(%esp) |
| ++ xorl %edx,%ecx |
| ++ rorl $6,%ecx |
| ++ movl 24(%esp),%edi |
| ++ addl %ecx,%ebx |
| ++ xorl %edi,%esi |
| ++ movl %edx,16(%esp) |
| ++ movl %eax,%ecx |
| ++ andl %edx,%esi |
| ++ movl 12(%esp),%edx |
| ++ xorl %edi,%esi |
| ++ movl %eax,%edi |
| ++ addl %esi,%ebx |
| ++ rorl $9,%ecx |
| ++ addl 28(%esp),%ebx |
| ++ xorl %eax,%ecx |
| ++ rorl $11,%ecx |
| ++ movl 4(%esp),%esi |
| ++ xorl %eax,%ecx |
| ++ rorl $2,%ecx |
| ++ addl %ebx,%edx |
| ++ movl 8(%esp),%edi |
| ++ addl %ecx,%ebx |
| ++ movl %eax,(%esp) |
| ++ movl %eax,%ecx |
| ++ subl $4,%esp |
| ++ orl %esi,%eax |
| ++ andl %esi,%ecx |
| ++ andl %edi,%eax |
| ++ movl (%ebp),%esi |
| ++ orl %ecx,%eax |
| ++ addl $4,%ebp |
| ++ addl %ebx,%eax |
| ++ movl 152(%esp),%ebx |
| ++ addl %esi,%edx |
| ++ addl %esi,%eax |
| ++ cmpl $3329325298,%esi |
| ++ jne L00416_63 |
| ++ movl 352(%esp),%esi |
| ++ movl 4(%esp),%ebx |
| ++ movl 8(%esp),%ecx |
| ++ movl 12(%esp),%edi |
| ++ addl (%esi),%eax |
| ++ addl 4(%esi),%ebx |
| ++ addl 8(%esi),%ecx |
| ++ addl 12(%esi),%edi |
| ++ movl %eax,(%esi) |
| ++ movl %ebx,4(%esi) |
| ++ movl %ecx,8(%esi) |
| ++ movl %edi,12(%esi) |
| ++ movl 20(%esp),%eax |
| ++ movl 24(%esp),%ebx |
| ++ movl 28(%esp),%ecx |
| ++ movl 356(%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) |
| ++ addl $352,%esp |
| ++ subl $256,%ebp |
| ++ cmpl 8(%esp),%edi |
| ++ jb L002loop |
| ++ movl 12(%esp),%esp |
| ++ popl %edi |
| ++ popl %esi |
| ++ popl %ebx |
| ++ popl %ebp |
| ++ ret |
| ++.align 6,0x90 |
| ++L001K256: |
| ++.long 1116352408,1899447441,3049323471,3921009573 |
| ++.long 961987163,1508970993,2453635748,2870763221 |
| ++.long 3624381080,310598401,607225278,1426881987 |
| ++.long 1925078388,2162078206,2614888103,3248222580 |
| ++.long 3835390401,4022224774,264347078,604807628 |
| ++.long 770255983,1249150122,1555081692,1996064986 |
| ++.long 2554220882,2821834349,2952996808,3210313671 |
| ++.long 3336571891,3584528711,113926993,338241895 |
| ++.long 666307205,773529912,1294757372,1396182291 |
| ++.long 1695183700,1986661051,2177026350,2456956037 |
| ++.long 2730485921,2820302411,3259730800,3345764771 |
| ++.long 3516065817,3600352804,4094571909,275423344 |
| ++.long 430227734,506948616,659060556,883997877 |
| ++.long 958139571,1322822218,1537002063,1747873779 |
| ++.long 1955562222,2024104815,2227730452,2361852424 |
| ++.long 2428436474,2756734187,3204031479,3329325298 |
| ++.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 |
| +diff --git a/crypto/sha/asm/sha512-586-mac.S b/crypto/sha/asm/sha512-586-mac.S |
| +new file mode 100644 |
| +index 0000000..2c99753 |
| +--- /dev/null |
| ++++ b/crypto/sha/asm/sha512-586-mac.S |
| +@@ -0,0 +1,561 @@ |
| ++.file "sha512-586.s" |
| ++.text |
| ++.globl _sha512_block_data_order |
| ++.align 4 |
| ++_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 4,0x90 |
| ++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 4,0x90 |
| ++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 4,0x90 |
| ++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 6,0x90 |
| ++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 |
| ++.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/crypto/x86cpuid-mac.S b/crypto/x86cpuid-mac.S |
| +new file mode 100644 |
| +index 0000000..db36e6f |
| +--- /dev/null |
| ++++ b/crypto/x86cpuid-mac.S |
| +@@ -0,0 +1,316 @@ |
| ++.file "x86cpuid.s" |
| ++.text |
| ++.globl _OPENSSL_ia32_cpuid |
| ++.align 4 |
| ++_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 |
| ++ 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 |
| ++ .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,%edi |
| ++ jb L003nocacheinfo |
| ++ movl $4,%eax |
| ++ movl $0,%ecx |
| ++ .byte 0x0f,0xa2 |
| ++ movl %eax,%edi |
| ++ shrl $14,%edi |
| ++ andl $4095,%edi |
| ++L003nocacheinfo: |
| ++ movl $1,%eax |
| ++ .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,%edi |
| ++ 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 |
| ++ btl $27,%ecx |
| ++ jnc L005clear_avx |
| ++ xorl %ecx,%ecx |
| ++.byte 15,1,208 |
| ++ andl $6,%eax |
| ++ cmpl $6,%eax |
| ++ je L006done |
| ++ cmpl $2,%eax |
| ++ je L005clear_avx |
| ++L007clear_xmm: |
| ++ andl $4261412861,%ebp |
| ++ andl $4278190079,%esi |
| ++L005clear_avx: |
| ++ andl $4026525695,%ebp |
| ++L006done: |
| ++ movl %esi,%eax |
| ++ movl %ebp,%edx |
| ++L000nocpuid: |
| ++ popl %edi |
| ++ popl %esi |
| ++ popl %ebx |
| ++ popl %ebp |
| ++ ret |
| ++.globl _OPENSSL_rdtsc |
| ++.align 4 |
| ++_OPENSSL_rdtsc: |
| ++L_OPENSSL_rdtsc_begin: |
| ++ xorl %eax,%eax |
| ++ xorl %edx,%edx |
| ++ call L008PIC_me_up |
| ++L008PIC_me_up: |
| ++ popl %ecx |
| ++ movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L008PIC_me_up(%ecx),%ecx |
| ++ btl $4,(%ecx) |
| ++ jnc L009notsc |
| ++ .byte 0x0f,0x31 |
| ++L009notsc: |
| ++ ret |
| ++.globl _OPENSSL_instrument_halt |
| ++.align 4 |
| ++_OPENSSL_instrument_halt: |
| ++L_OPENSSL_instrument_halt_begin: |
| ++ call L010PIC_me_up |
| ++L010PIC_me_up: |
| ++ popl %ecx |
| ++ movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L010PIC_me_up(%ecx),%ecx |
| ++ btl $4,(%ecx) |
| ++ jnc L011nohalt |
| ++.long 2421723150 |
| ++ andl $3,%eax |
| ++ jnz L011nohalt |
| ++ pushfl |
| ++ popl %eax |
| ++ btl $9,%eax |
| ++ jnc L011nohalt |
| ++ .byte 0x0f,0x31 |
| ++ pushl %edx |
| ++ pushl %eax |
| ++ hlt |
| ++ .byte 0x0f,0x31 |
| ++ subl (%esp),%eax |
| ++ sbbl 4(%esp),%edx |
| ++ addl $8,%esp |
| ++ ret |
| ++L011nohalt: |
| ++ xorl %eax,%eax |
| ++ xorl %edx,%edx |
| ++ ret |
| ++.globl _OPENSSL_far_spin |
| ++.align 4 |
| ++_OPENSSL_far_spin: |
| ++L_OPENSSL_far_spin_begin: |
| ++ pushfl |
| ++ popl %eax |
| ++ btl $9,%eax |
| ++ jnc L012nospin |
| ++ movl 4(%esp),%eax |
| ++ movl 8(%esp),%ecx |
| ++.long 2430111262 |
| ++ xorl %eax,%eax |
| ++ movl (%ecx),%edx |
| ++ jmp L013spin |
| ++.align 4,0x90 |
| ++L013spin: |
| ++ incl %eax |
| ++ cmpl (%ecx),%edx |
| ++ je L013spin |
| ++.long 529567888 |
| ++ ret |
| ++L012nospin: |
| ++ xorl %eax,%eax |
| ++ xorl %edx,%edx |
| ++ ret |
| ++.globl _OPENSSL_wipe_cpu |
| ++.align 4 |
| ++_OPENSSL_wipe_cpu: |
| ++L_OPENSSL_wipe_cpu_begin: |
| ++ xorl %eax,%eax |
| ++ xorl %edx,%edx |
| ++ call L014PIC_me_up |
| ++L014PIC_me_up: |
| ++ popl %ecx |
| ++ movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L014PIC_me_up(%ecx),%ecx |
| ++ movl (%ecx),%ecx |
| ++ btl $1,(%ecx) |
| ++ jnc L015no_x87 |
| ++.long 4007259865,4007259865,4007259865,4007259865,2430851995 |
| ++L015no_x87: |
| ++ leal 4(%esp),%eax |
| ++ ret |
| ++.globl _OPENSSL_atomic_add |
| ++.align 4 |
| ++_OPENSSL_atomic_add: |
| ++L_OPENSSL_atomic_add_begin: |
| ++ movl 4(%esp),%edx |
| ++ movl 8(%esp),%ecx |
| ++ pushl %ebx |
| ++ nop |
| ++ movl (%edx),%eax |
| ++L016spin: |
| ++ leal (%eax,%ecx,1),%ebx |
| ++ nop |
| ++.long 447811568 |
| ++ jne L016spin |
| ++ movl %ebx,%eax |
| ++ popl %ebx |
| ++ ret |
| ++.globl _OPENSSL_indirect_call |
| ++.align 4 |
| ++_OPENSSL_indirect_call: |
| ++L_OPENSSL_indirect_call_begin: |
| ++ pushl %ebp |
| ++ movl %esp,%ebp |
| ++ subl $28,%esp |
| ++ movl 12(%ebp),%ecx |
| ++ movl %ecx,(%esp) |
| ++ movl 16(%ebp),%edx |
| ++ movl %edx,4(%esp) |
| ++ movl 20(%ebp),%eax |
| ++ movl %eax,8(%esp) |
| ++ movl 24(%ebp),%eax |
| ++ movl %eax,12(%esp) |
| ++ movl 28(%ebp),%eax |
| ++ movl %eax,16(%esp) |
| ++ movl 32(%ebp),%eax |
| ++ movl %eax,20(%esp) |
| ++ movl 36(%ebp),%eax |
| ++ movl %eax,24(%esp) |
| ++ call *8(%ebp) |
| ++ movl %ebp,%esp |
| ++ popl %ebp |
| ++ ret |
| ++.globl _OPENSSL_cleanse |
| ++.align 4 |
| ++_OPENSSL_cleanse: |
| ++L_OPENSSL_cleanse_begin: |
| ++ movl 4(%esp),%edx |
| ++ movl 8(%esp),%ecx |
| ++ xorl %eax,%eax |
| ++ cmpl $7,%ecx |
| ++ jae L017lot |
| ++ cmpl $0,%ecx |
| ++ je L018ret |
| ++L019little: |
| ++ movb %al,(%edx) |
| ++ subl $1,%ecx |
| ++ leal 1(%edx),%edx |
| ++ jnz L019little |
| ++L018ret: |
| ++ ret |
| ++.align 4,0x90 |
| ++L017lot: |
| ++ testl $3,%edx |
| ++ jz L020aligned |
| ++ movb %al,(%edx) |
| ++ leal -1(%ecx),%ecx |
| ++ leal 1(%edx),%edx |
| ++ jmp L017lot |
| ++L020aligned: |
| ++ movl %eax,(%edx) |
| ++ leal -4(%ecx),%ecx |
| ++ testl $-4,%ecx |
| ++ leal 4(%edx),%edx |
| ++ jnz L020aligned |
| ++ cmpl $0,%ecx |
| ++ jne L019little |
| ++ ret |
| ++.globl _OPENSSL_ia32_rdrand |
| ++.align 4 |
| ++_OPENSSL_ia32_rdrand: |
| ++L_OPENSSL_ia32_rdrand_begin: |
| ++ movl $8,%ecx |
| ++L021loop: |
| ++.byte 15,199,240 |
| ++ jc L022break |
| ++ loop L021loop |
| ++L022break: |
| ++ cmpl $0,%eax |
| ++ cmovel %ecx,%eax |
| ++ ret |
| ++.section __IMPORT,__pointers,non_lazy_symbol_pointers |
| ++L_OPENSSL_ia32cap_P$non_lazy_ptr: |
| ++.indirect_symbol _OPENSSL_ia32cap_P |
| ++.long 0 |
| ++.comm _OPENSSL_ia32cap_P,8,2 |
| ++.mod_init_func |
| ++.align 2 |
| ++.long _OPENSSL_cpuid_setup |
| +-- |
| +1.8.3.2 |
| + |